Workforce Management
- OpenAPI Version:
3.1.1 - API Version:
2
Workforce Management
Servers
- URL:
https://api.zoom.us/v2
Operations
List filter groups
- Method:
GET - Path:
/workforce-management/filter-groups - Tags: Filter groups
Get all filter groups
Granular Scopes: workforce_management:read:list_filter_groups:admin
Rate Limit Label: LIGHT
Responses
Status: 200 The list of filter groups
Content-Type: application/json
-
filter_groups(required)array— List of filter groups.Items:
-
filter_group_id(required)string— The ID of the filter group. -
name(required)string— The name of the filter group.
-
-
page_size(required)integer— The number of items returned per page. -
total_records(required)string— The total number of items available across all pages. -
next_page_tokenstring— Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size.
Example:
{
"next_page_token": "cm2n7z2vl000e9cllp4ckoc45",
"page_size": 15,
"total_records": "45",
"filter_groups": [
{
"filter_group_id": "cmgoyz7mb00002f6obth9ojea",
"name": "Support staff group"
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
List forecasts
- Method:
GET - Path:
/workforce-management/forecasts - Tags: Forecasts
List forecasts.
Scopes: workforce_management:read:admin
Granular Scopes: workforce_management:read:forecasts:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Responses
Status: 200 Forecast list response.
Content-Type: application/json
-
forecasts(required)array— List of forecasts.Items:
-
create_time(required)string, format:date-time— The forecast request create time. -
description(required)string— The forecast description. -
end(required)string, format:date-time— The forecast end. -
forecast_id(required)string— The forecast ID. -
forecast_profile_id(required)object— The forecast profile ID. -
interval_minutes(required)number— The forecast granularity length, in minutes. -
modify_time(required)string, format:date-time— The forecast request modify time. -
name(required)string— The forecast name. -
scheduling_groups(required)array— List of scheduling groups present in the forecast.Items:
-
asa(required)integer, default:-1— Average speed of answer in seconds. `-1` if not set. -
color_code(required)object— The RGB hexadecimal color code. -
deferrable_sla(required)number, default:-1— Deferrable channels interactions' percentage. `-1` if not set. -
deferrable_sla_target_time(required)integer, default:-1— Deferrable channels interactions' target time in hours. `-1` if not set. -
dynamic_shrinkage(required)object— Dynamic shrinkage value to use, based on configured days. -
fixed_shrinkage(required)object— Fixed shrinkage value to use for all days. -
name(required)string— The scheduling group name. -
occupancy(required)number, default:0— Occupancy percentage. `0` if not set. -
scheduling_group_id(required)string— The scheduling group ID. -
sla(required)number, default:-1— Service level target goal percentage. `-1` if not set. -
sla_target_time(required)integer, default:-1— Service level target time in seconds. `-1` if not set.
-
-
start(required)string, format:date-time— The forecast start. -
status(required)string, possible values:"ready_step_1", "processing", "ready_step_2", "completed", "failed", "applied", "generating", "generating_failed", "reforecasting", "reforecasting_failed"— The forecast status. -
type(required)string, possible values:"SHORT_TERM", "LONG_TERM"— The forecast type.
-
-
next_page_token(required)object— Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. -
page_size(required)integer— The number of items returned per page. -
total_records(required)integer— The total number of items available across all pages.
Example:
{
"next_page_token": "cm2n7z2vl000e9cllp4ckoc45",
"page_size": 10,
"total_records": 100,
"forecasts": [
{
"forecast_id": "cm2n7z2vl000e9cllp4ckoc45",
"name": "Weekday forecast",
"description": "Forecast for business days",
"type": "SHORT_TERM",
"status": "ready_step_1",
"start": "2025-01-01T00:00:00Z",
"end": "2025-01-06T23:59:59Z",
"create_time": "2024-12-16T04:21:23.207Z",
"modify_time": "2024-12-16T04:21:23.207Z",
"interval_minutes": 15,
"forecast_profile_id": "cm2n7z2vl000e9cllp4ckoc45",
"scheduling_groups": [
{
"scheduling_group_id": "cm2n7z2vl000e9cllp4ckoc45",
"name": "Infra support",
"color_code": "#c0106f",
"sla": 75,
"sla_target_time": 30,
"asa": 30,
"occupancy": 85,
"fixed_shrinkage": 20,
"dynamic_shrinkage": {
"default_shrinkage": 20,
"dynamic_config": [
{
"days": [
1
],
"start_time": 600,
"end_time": 660,
"value": 20
}
]
},
"deferrable_sla": 75,
"deferrable_sla_target_time": 30
}
]
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
Get a forecast for a scheduling group
- Method:
GET - Path:
/workforce-management/forecasts/{forecastId}/scheduling-groups/{schedulingGroupId} - Tags: Forecasts
List forecasted values for a scheduling group within a forecast.
Scopes: workforce_management:read:admin
Granular Scopes: workforce_management:read:forecasts:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 Forecast scheduling group response.
Content-Type: application/json
-
forecast_id(required)string— The forecast ID. -
forecast_intervals(required)array— List of forecasted values per interval.Items:
-
forecast(required)object— Forecasted values.-
agents(required)number— The forecasted staffing count. -
deferrableobject— Interval forecast for all queues in scheduling group of channel category `deferrable`.-
aht(required)number— The forecasted average handle time, in seconds. -
e_aht(required)number— The edited average handle time, in seconds. `-1` if not edited. -
e_vol(required)number— The edited volume. `-1` if not edited. -
vol(required)number— The forecasted volume.
-
-
messagingobject— Interval forecast for all queues in scheduling group of channel category `messaging`.-
aht(required)number— The forecasted average handle time, in seconds. -
e_aht(required)number— The edited average handle time, in seconds. `-1` if not edited. -
e_vol(required)number— The edited volume. `-1` if not edited. -
vol(required)number— The forecasted volume.
-
-
voiceobject— Interval forecast for all queues in scheduling group of channel category `voice`.-
aht(required)number— The forecasted average handle time, in seconds. -
e_aht(required)number— The edited average handle time, in seconds. `-1` if not edited. -
e_vol(required)number— The edited volume. `-1` if not edited. -
vol(required)number— The forecasted volume.
-
-
-
timestamp(required)string, format:date-time— The interval's starting timestamp. -
reforecastobject— Re-forecasted values.-
agents(required)number— The forecasted staffing count. -
deferrableobject— Interval forecast for all queues in scheduling group of channel category `deferrable`.-
aht(required)number— The forecasted average handle time, in seconds. -
e_aht(required)number— The edited average handle time, in seconds. `-1` if not edited. -
e_vol(required)number— The edited volume. `-1` if not edited. -
vol(required)number— The forecasted volume.
-
-
messagingobject— Interval forecast for all queues in scheduling group of channel category `messaging`.-
aht(required)number— The forecasted average handle time, in seconds. -
e_aht(required)number— The edited average handle time, in seconds. `-1` if not edited. -
e_vol(required)number— The edited volume. `-1` if not edited. -
vol(required)number— The forecasted volume.
-
-
voiceobject— Interval forecast for all queues in scheduling group of channel category `voice`.-
aht(required)number— The forecasted average handle time, in seconds. -
e_aht(required)number— The edited average handle time, in seconds. `-1` if not edited. -
e_vol(required)number— The edited volume. `-1` if not edited. -
vol(required)number— The forecasted volume.
-
-
-
-
scheduling_group_id(required)string— The scheduling group ID.
Example:
{
"forecast_id": "cm2n7z2vl000e9cllp4ckoc45",
"scheduling_group_id": "cm2n7z2vl000e9cllp4ckoc45",
"forecast_intervals": [
{
"timestamp": "2025-01-01T00:00:00Z",
"forecast": {
"agents": 5,
"voice": {
"aht": 40,
"e_aht": 38,
"vol": 10,
"e_vol": 12
},
"messaging": {
"aht": 40,
"e_aht": 38,
"vol": 10,
"e_vol": 12
},
"deferrable": {
"aht": 40,
"e_aht": 38,
"vol": 10,
"e_vol": 12
}
},
"reforecast": {
"agents": 5,
"voice": {
"aht": 40,
"e_aht": 38,
"vol": 10,
"e_vol": 12
},
"messaging": {
"aht": 40,
"e_aht": 38,
"vol": 10,
"e_vol": 12
},
"deferrable": {
"aht": 40,
"e_aht": 38,
"vol": 10,
"e_vol": 12
}
}
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/).
Upload historical queue metrics
- Method:
POST - Path:
/workforce-management/imports/historical-queue-metrics - Tags: Imports
Import historical queue metrics to Workforce Management (WFM).
Scopes: workforce_management:write:admin
Granular Scopes: workforce_management:write:queue_metrics:admin
Rate Limit Label: HEAVY
Not supported in Gov cluster
Request Body
Content-Type: multipart/form-data
-
allow_overwriteboolean— When set to `false`, the import fails if existing data conflicts with the uploaded data. -
filestring— Attachment file. Only CSV format is supported. For format details, log in to WFM and visit **Forecasting -> Historical data -> Import historical data**. -
timezonestring— The timezone of the intervals in the CSV file. The default is `UTC`.
Example:
{
"file": "Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZadGNFSmxSbGw1VTJ0V1ZXSkhhRzlVVmxaM1ZsWmFkR05GU214U2JHdzFWVEowVjFaWFNraGhSemxWVm14YU0xWnNXbUZrUjA1R1UyMTRVMkpIZHpGV1ZFb3dWakZhV0ZOcmFHaFNlbXhXVm0xNFlVMHhXbk5YYlVaclVqQTFSMVV5TVRSVk1rcElaSHBHVjFaRmIzZFdha1poVjBaT2NtRkhhRk5sYlhoWFZtMHhORmxWTUhoWGJrNVlZbFZhY2xWcVFURlNNVlY1VFZSU1ZrMXJjRWxhU0hCSFZqRmFSbUl6WkZkaGExcG9WakJhVDJOdFJraGhSazVzWWxob1dGWnRNSGhPUm14V1RVaG9XR0pyTlZsWmJGWmhZMnhXY1ZGVVJsTk5WbFkxVkZaU1UxWnJNWEpqUld4aFUwaENTRlpxUm1GU2JVbDZXa1prYUdFeGNHOVdha0poVkRKT2RGSnJhR2hTYXpWeldXeG9iMWRHV25STlNHaFBVbTE0VjFSVmFHOVhSMHB5VGxac1dtSkdXbWhaTW5oWFkxWkdWVkpzVGs1V2JGa3hWa1phVTFVeFduSk5XRXBxVWxkNGFGVXdhRU5UUmxweFVtMUdVMkpWYkRaWGExcHJZVWRGZUdOSE9WZGhhMHBvVmtSS1QyUkdTbkpoUjJoVFlYcFdlbGRYZUc5aU1XUkhWMjVTVGxOSGFGQlZiVEUwVmpGU1ZtRkhPVmhTTUhCNVZHeGFjMWR0U2tkWGJXaGFUVzVvV0ZreFdrZFdWa3B6VkdzMVYySkdhM2hXYTFwaFZURlZlRmR1U2s1WFJYQnhWV3hrTkdGR1ZYZGhSVTVVVW14d2VGVnRNVWRWTWtwV1lrUmFXR0V4Y0hKWlZXUkdaVWRPU0U5V1pHaGhNSEJ2Vm10U1MxUXlVa2RUYmtwb1VqSm9WRmxZY0ZkbGJHUllaVWM1YVUxWFVraFdNalZUVkd4T1NHRkdRbFppVkVVd1ZtcEdVMVp0UmtoUFZtaFRUVWhDTlZaSGVHRmpNV1IwVTJ0a1dHSlhhR0ZVVnpWdlYwWnJlRmRyWkZkV2EzQjZWa2R6TVZZeVNrZGhNMmhYWVRGd2FGWlVSbFpsUm1SMVUyczFXRkpZUW5oV1YzaHJUa2RHUjFaWVpHaFNWVFZWVlcxNGQyVkdWblJOVldSV1RXdHdWMWxyVW1GWFIwVjRZMGhLV2xaWFVrZGFWV1JQVTBVNVYxcEhhR2hOU0VKMlZtMTBVMU14VVhsVmEyUlVZbXR3YjFWcVNtOVdSbXhaWTBaa2JHSkhVbGxhVldNMVlWVXhXRlZyYUZkTmFsWlVWa2Q0VDFOSFJrZFJiRnBwVmtWVmQxWnRjRWRWTVZwMFVtdG9VRlp0YUZSVVZXaERUbFphU0dWSFJtcE5WMUl3VlRKMGExZEhTbGhoUjBaVlZteHdNMWxWV25kU2JIQkhWR3hTVTJFelFqVldSM2hoVkRKR1YxTnVVbEJXUlRWWVZGYzFiMWRHWkZkWGJFcHNVbTFTZWxsVldsTmhWa3AxVVc1b1YxWXphSEpXVkVaelZqRldjMWRzYUdsV1ZuQlFWa1phWVdReVZrZFdXR3hyVWtWS1dGUldXbmRsVm10M1YyNWtXRkl3VmpSWk1GSlBWakpHY2xkcmVGZGhhM0JRVlRGa1MxSXhjRWRhUms1WFYwVktNbFp0TVRCVk1VMTRWVmhzVlZkSGVGWlpWRVozWWpGV2NWUnJUbGRTYlhoNVZtMDFhMVl4V25OalJFSmhWbGROTVZaWGMzaFhSbFoxWTBaa1RsWXlhREpXYWtKclV6RktjazVXWkZaaVJscFlWRlJLYjFOV1draGxSMFpYVFd4S1NWWlhkRzloTVVsNVlVaENWbUpIYUVOYVJFWmhZekZ3UlZWdGNFNVdNVWwzVmxSS01HRXhaRWhUYkdob1VqQmFWbFp1Y0Zka2JGbDNWMjVPVDJKRmNIcFhhMlIzWVZaT1JsTnJiRmROYmxKeVdYcEdWbVZXVG5WVGJGSnBWbFp3V1ZaR1l6RmlNV1JIV2taa1dHSkZjSE5WYlRGVFpXeHNWbGRzVG1oV2EzQXhWVmQ0ZDFZeVNsbFZiR2hoVWtWYVlWcFZaRXRUVms1ellVZG9UazFWY0ZkV2JHTjRUa2RSZVZaclpGZFhSM2h5VldwQ1lXTkdWblJsU0dSc1lrWnNOVnBWYUd0WFJrbDNWbXBTV2sxR1NsQldNakZHWlZaV2NscEhSbGROTW1oSlYxUkplRk14U1hsU2EyUm9VbXhLVkZac2FFTlRNVnAwVFZSQ1ZrMVZNVFJXYkdodlYwWmtTR0ZHYkZwaVdHaG9WbXBHYzJNeGNFaFBWbVJUWWxob1lWZFVRbUZoTWtwSVUydG9WbUpIZUdoV2JHUk9UVlpzVjFaWWFGaFNiRnA1V1ZWYWExUnRSbk5YYkZaWFlUSlJNRlpFUms5U01WcDFWbXhXYVZKdVFuWlhWbEpEWkRBMWMxZHJhR3RTTUZwWVdXeGFZVmRXV2xoa1J6bG9UVlZ3TUZsVldsTldWbHBZWVVWU1ZrMXVhR2haZWtaM1VsWldkR05GTlZkTlZXd3pWbXhTUzAxSFJYaGFSV2hVWWtkb2IxVnFRbUZXYkZwMFpVaGtUazFYZUZkV01qVnJWVEpLU1ZGcmFGZFNNMmhVVmxSS1JtVnNSbkZXYkdSVFRUSm9iMVpyVWt0U01WbDRWRzVXVm1KRlNsaFZiRkpYVjFaYVIxbDZSbWxOVjFKSVdXdG9SMVpIUlhoalNFNVdZbFJHVkZZeWVHdGpiRnBWVW14a1RsWnVRalpYVkVKaFZqRmtSMWR1VGxSaE1taG9WV3RXWVZsV2NGWmFSWFJVVm1zMWVsbFZaRzlVYXpGV1kwWmtWMkpIVGpSVWEyUlNaVlphY2xwR1pHbGlSWEJRVm0xNGExVXhXWGhWYkdoclUwZFNXRlJXWkRSbFZscFlUVlZrV0ZKcmJETldiWEJUVjJzeFNHRkZlRmROYm1ob1ZqQmFWMk5zY0VoU2JHUlhUVlZ3VWxac1VrTldhelZYVjFob2FsSlhhRzlWYWtwdlZERlZkMVpyZEU1aVJuQXdWRlpTUTFack1WWk5WRkpYVm0xb2VsWnRNVVpsVmxaelZteHdhVmRHU1hwWFYzQkhWakpPVjFSdVVsQldiVkpVV1d4b2IxbFdaRlZSYlVab1RXdHdTVlV5ZEc5V2JVcElaVWRvVjJKSFVrOVVWbHB6VmpGYVdXRkdhRk5pUm5BMVYxWldZV0V4VW5SU2JrNVlZa1phV0ZsVVNsSk5SbXhWVW1zNVUwMVdjREZXUjNodllWWktjMk5HYkZoV00xSjJWVlJHVDFZeFpISmFSbHBvVFd4S1dGWkdXbUZrTURGSFZtNVNhMUo2YkZkVmJYaHpUbFpzVm1GRlRsZGlWWEJKV1ZWV1UxWlhTbGxoU0VwWFlrWndTRnBGV2t0a1IwNUdUbFprVGxaWGQzcFdiWGhUVXpBeFNGSllhR0ZTVjJoVldXdGtiMkl4Vm5GUmJVWlhZa1p3TUZwVmFHdFVhekZZWlVaa1YwMXFWbkpXVkVwTFUxWkdjbUZHWkZOTk1taFZWbXhTUzFKdFZuTlNia1pYWWtkU1ZGUlVTbTlpTVZweVZXdDBVMDFXYkRSV1J6VlhWbTFLUmxOc2FGWmlSa3BZVmpGYVlWSXhiRFpTYld4T1ZqRktTVmRYZEc5U01WcElVbGhvYWxORk5WZFpiRkpIVmtaWmVXVkhkR3BpUm5CV1ZXMTRhMVJzV25WUmFscFlWa1ZLYUZacVJtdFNNV1IxVkd4U2FFMXRhRzlXVjNSWFdWWnNWMk5HV21GU1dGSlZWbTF6TVdWc2JGWmFSemxWWVhwR1Yxa3dXbXRXTWtwSVZHcFNWV0V5VWxOYVZscGhZMnh3UjFwSGJHbFNXRUpSVm0weE5HRXhWWGhYV0doV1lrZG9jbFV3WkZOWFJsSlhXa1JTYkZac2NGbFVWbFpyVjBaS2NtSkVUbGRpV0VKVVZqSnplRk5IUmtabFJtUk9ZbTFvYjFacVFtRldNazV6WTBWb1UySkhVbGhVVmxaM1ZXeGFjMVZyVGxkaGVsWllWakZvYjJGc1NsaGhSemxXWVd0d2RsWkVSbFprTVZweVpFVTFhVkp1UVhkV1JscFRVVEZhY2sxV1drNVdSa3BZVm0weGIyVnNXblJOVlZwc1ZteGFlbFp0ZUhkaFZtUkhVMWh3V0ZZelFraFdha3BQVmpGU2RWVnNRbGRpVmtwVlYxZDRiMkl4YkZkYVJsWlNZbFZhYjFSWGRIZFRWbFY1WkVjNVYySlZjRWxhVldSdlZqSktTRlZyT1ZWV2JIQjZWbXBHWVZkWFJrZGhSazVwVW01Qk1WWXhXbGRaVjBWNFZXNVNVMkpyTlZsWmExcGhWMFpzVlZOc1NrNVNiSEJHVlcxek5WWkdTbkpqU0d4WVlURndURmxXV2t0a1ZrWjFXa1prYVZkR1NsbFdiVEI0VlcxV1IxcElWbFppV0VKVVZtcEdTMWRHV2tkWGJVWnJUVVJHU0ZadE5WTmhNVW8yWWtaa1ZtSllhRE5VVlZwelZteGtjMVJzWkZkaVNFSmFWMVpXVjFVeFdsaFRhMlJxVWpKb1YxUlZaRk5YUmxWM1YydDBhMUl3TlVkVWJGcHJWR3hhV0dRemNGZGlXR2hVVlhwQmVGTkdTbGxoUjBaVFZqSm9WbGRYZEd0aU1rbDRWbTVHVW1KVldsaFphMXAzVFZacmQxZHRkR2hOYTNCSVdXdFNUMVl3TVhGV2EzaGFZVEZ3VEZwRldsZGtWMHBIWVVkb1RsZEZTalZXYlRGM1V6RktkRlp1VGxOaWExcFpXV3RrVTJJeFVsaGxSWEJPWWtad1NGWXlNVWRYUjBwWFVtcE9WVlpzY0hKV01HUkxWMGRXU1ZSc2NGZFNWbTk2Vm1wR1lXRXhaRWhXYTJoUVZtdHdUMVp0ZEhkVFZscHpXWHBHVkUxWFVrbFZNblJoWVd4T1JrNVdaRnBpUmtwSVZtdGFkMWRIVmtsVWJHUnBVakZLTmxaclkzaGlNVmw1VWxod1VsZEhhRmhXYlRGU1RVWndSVkpzY0d4V2F6VjZXV3RhWVdGV1NYbGhSemxYVmpOU1dGZFdXbk5XTWs1SFYyMUdVMWRHU2xaV2JURjZUVmRXYzJKR1dtRlNlbXhXV1Zod1IxWXhhM2RYYlhSWFRXdHdTVlpIY0ZOV1YwVjVWV3hPWVZac2NHaFpNbmgzVWpGd1NHSkhiRk5YUlVwU1ZtMHdlRTVIUlhoV1dHaFlWMGRvVjFsclpHOWpiRlYzV2taT1dGSnNTbGhYYTFKVFlrWmFjMk5HYkZWV2JGcHlWakJhUzJOdFNrVlViR1JwVjBWS1ZWWnFTbnBsUms1SVVtdGFiRkp0VWs5WmJURnZZakZhY1ZGdFJsZE5helY2V1RCV2IxVXlTa2hWYkdoVlZteGFNMVpYZUdGak1WWnlWR3hrYUdWc1dsbFdha1p2WWpKR2MxTnNhR2hTZW14WFdWZDBkMlJzV2tWU2JGcHJUVlp3ZVZwRlZURmhWa3AxVVZoa1YxSnNjRlJWVkVaaFkyc3hWMWRyTlZkU2EzQlpWbTB3ZUdJeVZuTlhibEpPVmxad2MxWnRlR0ZsYkZwMFpVaGthRlp0VWtoVk1XaDNWMFpaZWxGcmFGZGhhM0JRVm1wR1UyUldWbk5SYkdScFZtdHdWbFl4WkRSaU1rbDRZa1prWVZKc1dsTlpiRlpoWWpGU1dHUklaRlJXYkZZMVdrVmpOVll5U2xaalJXeGhWbGRTZGxacVNrdFRSbFp5VDFaV1YySklRalpXYlhCSFdWWmtXRkpyWkdoU2F6VndWVzAxUWsxV1dYaFhiR1JhVmpCV05GWlhOVk5WTWtweVRsWnNXbUV4Y0doV01GcHpWbFpPYzFOck5WTmlXR2hYVmxjeGVrNVdWWGROVm1ScVVrVmFXRlZxVG05a2JHeFhWMnQwYWsxck5VaFphMXB2VmpBd2VGTnFTbGRXYkVwSVZrUkdXbVZHY0VsVGJVWlRZa2hDZGxaR1pEUlRNV1JIVjJ0a1dHSlZXbkpVVlZKSFUwWmFkRTVXVG1oTlZXOHlXV3RhYTFadFNsbGhTSEJWWWtad2VsWnRNVWRTYkZKeldrZHNWMWRGU2t0V01WcFhWakZWZUZkc2FGUmlSM2h2VlRCV2QxZEdiSEpYYm1SVVVtNUNSMVl5ZERCaE1VbDNUbFZrVldKR2NISldSM2hoVjBkUmVtTkdaR2xYUjJoVlZsaHdRbVZHVGtkVGJHeG9VakJhVkZacVNtOVdiR1JZWkVkMGFVMXJiRFJXYlRWSFZXMUtWbGRzYUZwaE1YQXpWRlphY21ReFpIUmtSMmhPWVROQ1NWZFhkRk5VTVZsM1RWaEdWMkV6YUdGWlZFWjNWRVp3Umxkc1pHdFdNSEJJV1ZWa2IxUnNaRVpUYWxaWFlsUkdNMVY2Umt0a1JscDFWR3hPYVdFeGNGcFhWM1JyVlRKSmVGVnNhR3hTV0VKUFdXdGFkMU5HV1hsTlZXUm9VbFJHVjFsclVsTldNVW8yVm14Q1YwMUhVa3hXTVZwSFl6RldjMXBIYUdobGJGbDVWbTF3UjFsWFJYaGFSV2hYWVRKb1VWWnRkSGRVTVZwMFpFaGtWRlpzY0hwWFdIQkhWa1V4V0ZWcmJGWk5ibEpvV1ZkNFQxSnJOVmRhUm5CcFVtdHdTVlp0ZEdGa01XUklWbXRzVldKSFVuQlZha1pMVG14YWNsa3phR2xOVmxZMFZqSjBZVmRIUm5OalJtaFhZVEZhZVZwVlduTmpWa3B6WTBkNFUySldTalJXYWtvMFV6SkdTRk5yV21wU2JWSlpWbTE0UzFSR1dsVlNhemxUVFZad01WVnRlRTloVmxwWFkwWndWMkpVUVhoVlZFWlBWakpLUjFkc2FHaGxiWGhaVmtaYVlXUXhUa2RYV0d4c1VqTlNXRlJYZEhkVFZscElZMFpPVjFZd1ZqVldWM2hQV1ZaYWMyTkhhRnBOYm1nelZXcEdkMU5IU2toaVJrNVlVbFZ3VTFadE1IZGxSVFZJVWxob1YxZEhhRmxXTUdSdlZqRnNjbHBIT1dwaVJsWXpWMnRhVDFkR1NuTlRiR2hZWVRGS1ZGbHJXbUZqTWs1SFlrWldWMkpHY0hsV2FrSmhVekpPZEZOclZsVmlSMUp3VmpCV1MxWldXbkZUYm5Cc1VtczFTVlZ0ZEdGaVJrcDBWV3M1V21KVVJuWlpha1poWTFaR2RGSnNaRTVoZWxZMlYxUkNWMkl4VlhsVGEyaFdZa2RvVmxadGVHRk5NVnBZWlVkR2FrMVdXbmxXUjNocllVZFdjMWRzYkZkaGExcDJXV3BLUjJNeFRuTmhSMmhUWlcxNFdGZFdaREJrTWxKelYydFdVMkpHY0hKVVZscDNaVlp3UmxaVVJtaFdhM0F4VlZab2ExWXhTbk5qUmxKV1ZrVmFhRmt5YzNoV01XUnlUbFprVTJFelFscFdiVEIzWlVkSmVWWnVUbGhpYkVwUFZteGFkMk14V25SbFIwWnNZa1p3TUZwVmFHdGhSbHAwVld0b1ZrMVhhRE5XTUZwYVpXeEdjbUZHWkdoaE0wSlJWbTF3UjFVeVVsZFdiazVTWWtkU2NGWnRkSGRXYkZsNFdrUlNhVTFyYkRSWmExcHJXVlpLYzFkc1RscGlSbHBvV1dwR1UxZEhVa2xhUmxKWFlrWlpNVmRyVm1wT1ZsbDVVMnhhYWxKWGVHaFdiR1JUWkd4YWNWTnJkRlJTYkZwNVZERmFWMVl5U2tsUmFscFhZbGhDU0ZkV1dtdFhSa3B5V2tkb1UyRjZWbmRXVnpBeFVXc3hWMWRZYUZoaVIxSmhWbXBDVjA1R1dsaE9WazVXVFd0d2VWUnNXbk5YYlVWNFkwZG9WMDFHY0hwV2JGcFBZekZPY2s1V1RtbFRSVXBJVm14amVHVnJOVmRYYTJSVVltdHdjVlV3WkRSWFZteFZVbTVrVlZKdGVGaFdNblF3WVRGYWNsZHFSbGhoTVhCeVdWWmFhMUl4VG5OaVJtUnBWa1ZKTUZac1kzaFdNVWw0WTBWc1YySkdjSEJXTUZaTFZsWmFkR05GWkZSTlYxSklWakowYTFkSFNsWlhia3BWVmxaS1NGVXdXbUZrUlRWWFZHMW9UbFpYT0hsWFYzUmhZVEZhZEZOc2JHaFNSVFZXVm14YWQyVnNXblJsUjNScVRWWktlbGRyV210aFZrNUdVMjFHVjAxV2NGaFdha1pXWlVaa2MyRkdVbWhOYkVwNFZsZHdTMkl4V1hoVmJGcGhVbXMxV1ZWdGVGZE5NVmw1WkVSQ2FFMVZiRE5VYkZaclZsZEtSMk5JU2xkU00yaG9WakJrVW1WdFRrZGFSMnhZVWpKb1ZsWnNhSGRSYlZaSFZHdGtWR0pIZUc5VmFrSmhWa1phY1ZOdE9WZGlSMUpaV2tWa01HRlZNWEppUkZKWFlsUldTRlpYTVV0V2JHUnpZVVp3YUUxWVFYcFdSbHBoWTIxUmVGcElVbXRTTW1oUFdWUk9RMU5XWkZoa1JrNVZUVlpzTTFSV2FFZFdNa1Y2WVVkR1dsWkZXak5XUlZwM1VteGtjMXBIZEZkTlNFSkpWMVpXYTJJeFVuTmFSVnBVWVd4YVdGbHNVa2ROTVZZMlVtdDBhMUpzY0RGV1IzaFBZVmRGZUdOR2NGaFdNMUp5VmxSS1NtVkdWbk5oUjNoVFYwVktVRmRYZEdGa01VNUhWMWhzVGxaWFVtOVZiRkpIVmpGc2NsVnNUbGROVlc4eVZtMTRRMVl3TVVoVmEzaFhUVlp3U0ZsNlJsZGpNWEJJWVVkb2JHSkdiRFZXYlRGM1VqRnNXRkpZYUdGU1YyaFlXVlJLYjFWV1duUmtTR1JWVFZad01GcEZhR3RXUmxwelkwaHdXRmRJUWtoV2ExVjRWMFpXY21KR1drNWliRXB2VjFaa05GUXhTbkpPVm1SaFVtNUNjRlZ0ZEhkVFZscDBaRWRHYTAxWFVrbFdiWFJ6VmxkS1NGVnVRbFpoYTFwTVZHMTRZV05zYTNwaFIyeE9WbXhaTUZacVNqQlpWbVJJVW01T2FsSnRhRmhaVkVaaFpWWndWbGR1VG1wV2EzQjZXVEJrTkZVeVNsZFRhbEpYWVd0dk1GWkVSbHBsUms1elYyMXdVMlZ0ZUZsV2JYQlBWVEZrUjFwR1pHRlNWR3h4VkZaYWQwMVdWblJsUms1b1VsUkNORlV5ZUdGV01rcFZVbFJDVm1WclJqUlZha3BMVWpGa2MyRkhhR3hpV0dneVZteGtkMUl4YkZoV2JrNVlWMGQ0YzFWc1pGTlhSbEpZWkVaa1QxSnRkRE5YYTJNMVYwWktjMk5FUWxkV00yaFFWMVphWVdNeVRraGhSbkJPWW0xbmVsWlhjRWRrTVVsNVVtdGtWV0Y2Vms5WmJHUnFaVVphZEUxVVVtaE5SRVpJVmpGb2IxWldaRWhoUjJoV1lrZFNWRlpxUm5OamJIQkhWR3hvVjJKWVozZFdSbHBoVkRKR2NrMVdaR3BTUlVwV1ZtMTRTMUpHV2toak0yaFhUV3R3UmxadGVGZGhWa2w0VW1wT1YyRnJTbWhWZWtwUFpFWk9jbFpzVm1sU01VcDNWbXBDVjFNeFdsZFhia1pVWW01Q2MxVnRkSE5PUmxwSVRsVTVWbUpWY0VsV1Z6QTFWMnhhUms1VlVsWk5WbkJ5Vm14YVQyTldWblJoUlRWb1pXeFdNMVp0TUhoTlIwVjRZa1prVkZkSGVHOVZibkJ6Vm14YWNsWnJkRlZTYkhCWldsVmtSMkZyTVZkWGJteFlZVEpTZGxaSGVHRldWa3BWVVd4a1YxSldjREpYVjNCTFVqSk5lRlJ1VG1oU2JIQndWbXBLYjFkR1pGaGxSemxWWWxaYVNGWXhhR3RYUjBwSlVXNUtWVlpzY0ROYVZscDNVbXhhVlZKdGFGZGhNMEY0VmxaYWIyRXhXWGhUYms1cVVteEtWMVpyVm1GaFJtdDVZek5vVjAxWFVubFViRnByVlRKRmVsRnNjRmRpVkVJeldsVmtTbVZXV25WVWJHaHBZWHBXV2xkWGVHOVZNVnBYVm01R1UySlZXbFZWYlhoelRsWndWbUZIZEZkTlJFWlhXVEJhYjFkdFJuSk9WRTVYVFVad1lWcFhlRWRqYlVaSFdrZG9hRTB3U2xKV2JURjNVakZaZVZWc1pGVmlhelZZV1d4a05GWkdVbGRXYm1SWFlrWnNORmRyVWxOaFZURnlZa1JTV21FeGNISlhWbHBMWXpGa2MxUnNjR2xTYkhCdlYxZHdSMVV4V1hoalJXUlZZa1pLVkZsclpETk5WbHBJWlVaYVQxWXdXa2xWTW5SaFlXeEtSbE50YUZkaVIxSlVWVEJhWVdNeFpIUlNiR1JPWVhwV1NWWXlkR0ZXTVZsNVUydHNVbUZzY0ZoWmJHaERVMFprVjFkdGRGaFNhM0I1V1ZWa2QxVXdNWFZoUm14WFlXdEtXRlY2Ums5U01XUjFWVzE0VTAweFNsRldWM0JEVmpBMVIxZHNhRTlXYXpWWFZGZDBkMlZXVW5OWGJrNVlZbFZXTkZrd1pHOVdNREZIWTBod1YySkdjRkJaZWtaUFkyczFWMVJ0YkZoU01taFpWbTE0YW1WSFZuSk9WbVJYVjBkU1QxWnRNVk5qVmxaeVZtMUdXRkpzV25oV1J6QTFZVEpLU0dWR2FGZE5ibEYzV1ZkemVHTnJOVlpoUm5Cb1RWaENNbFp0Y0VKa01sWkhWRzVHVkdKSFVsaFphMVozVTFaa1YxVnJaRmhpVmxwSVdUQldjMVpIU2xoaFJsSlZWa1ZhVEZac1dtRlNNVnAwVW0xMFRsWXhTbGxXTW5SaFlqSktSMU5ZWkZoaVZWcFlXV3hvVG1WR1dYZFhiVVpyVWxSV1dGWkhNVzlVYkZwWVQwaHNXRll6VW1oWlZFWmhaRVpPYzJKSGFGUlRSVXBYVjFkMFlXUXlWbk5YYmxKT1ZsZFNWRmxyV2t0bGJHUnlXa2hPVjAxWFVrZFZNblF3VmpBeFYyTkdhRmRoYTFwWFdsVmFhMk15UmtkVmJXeFRUVEpvTWxac1VrTldNbEY0V2tWa2FWTkZjRmxaYlRGVFZsWldkRTVWVGxOTlZtdzFXa1ZTUTJGRk1WWmlSRTVWWWtaYWNsWnNaRXRTTWs1SlUyeGtVMDB5YUc5V2FrSnJWVzFXZEZSclpHRlNNbmhaVldwS2IxWnNXbk5oU0dSU1lsWmFTRlpIZEd0V1IwcElaVWM1Vm1GclNtaFdhMXBoWTFaT2RFOVdaR2xTTVVwYVYydFdhMDFIUmxaTldFcHBVa1pLV0Zsc1VsZFRSbHBZVFZWMFYySkhVbnBaVlZwM1lVVXhXVkZZY0ZkU2JIQm9XVEl4VW1WR2NFbFZiWFJUVFcxb1VGZFdVazlSTVU1WFdrWm9hMUpyTlZaVVZscHpUVEZTVjJGRlpGZE5hMVkyV1ZWa1IxZHNXa1pYYWs1WFVsWndNMVZ0ZUd0ak1YQklaRVprVGxORlNrcFdNVnBYWVRKSmVGVnVUbUZTVm5CVldWZDRZVmRHYkhOVmEyUk9UVlpaTWxWdGREQmhNVXB6WTBSR1YxSXphRkJaVm1SR1pVZE9SMk5HYUZkTk1VcDVWbXhTUzFOdFZrZFdiazVvVWpOb1ZGWXdWa3RWUm1SWVpFZEdhMDFWTlVoV01XaHpWR3hhV0ZWc2JGWmhhMG96VmpCYVYyUkhUa1pQVm1SWFlraENObGRVUW05VE1WbDNUVlZvVm1FemFGaFVWV1JUVjBaVmVGZHNUbXBOYXpWSVYydGFUMVl5U2xWaGVrcFhZbFJHTTFWcVJuTlhSa3BaWVVkR1UxWXlhRmxYVmxKTFlqRldWMWR1VW10VFIxSldWRlphZDJWc1dsaGtSMFpWWWtWd2Vsa3dhSGRYUjBWNFUyeFNXbFpXVmpSV01HUlhVakpHUjFkck5XbGlWMmcxVmpGYWEwNUdVWGhUYmtwUFZtMVNhRlZ0TlVOalJsWjBaRWhrVkZac2NEQmFSV1JIVjBkS1YxZHNiRmRpV0ZKMldWUkdTbVZzUm5WUmJGcHBWa1phUlZadGNFZFpWbVJHVFZaV1ZtSlhhRTlXYlhSM1RteGFjVk5VUmxkTlZsb3dWVzAxVDJGc1NuUmxSbWhhVmtWYWFGWkZXbk5XYkdSMFVtMXdWMkV6UVhkWGExWmhWREZTYzFkWWFGUmlWVnBaVm10V1MyRkdaRmRhUldSWVVtdHdXbGt3V2t0aFZrbDZZVVpzV0ZZemFIWldWRVpyVWpGd1IxcEhSbE5pVmtwNFZrWmFhMVV3TVZkV2JsSnNVbFJzYjFadGRITk9SbFY1VGxjNVYwMVZjSHBaTUdoTFZqRmFSbU5HYUZwbGEzQk1WV3BHYTJSR1NuTlZiRTVYVW14d1lWWnRkR0ZaVm14WVZWaGtUbFp0VWxoWmEyUnZZekZXYzFwR1RsaFNiRXBaV2tWYWExUXhTblJrUkU1WVlUSk5NVll3V2t0ak1rNUZVV3hrVjAweWFGRldNVnBoV1ZkTmVWUnJhR2hTYmtKUFdXMHhibVZzV2xoalJXUnJUVlZzTlZWdGRHdFdWMFkyVm1zNVdtSkhVbkZhVlZwaFpFVXhWVlZ0YUU1U1JWcEpWbXBHYjJJeFdsZGFSV2hvVWpKb1YxbHJaRk5XUmxweFVtNU9hbUpJUWtoV1IzaHZWakpLV1ZvelpGZFNiSEJvVmtSS1IyTnJNVmRhUjNCVFVsVndWMVp0TVRSVE1VcEhWMnRvYWsweWFGaFVWM1IzVW14YWRHVkdaR2hXYTJ3MFZXMXdUMVl5Um5KVGJXaFdaV3R3VUZwRldrOWpiRnB6Vm0xc1UwMVZjRE5XYlhCRFZqRk5lRmRzWkZoaWExcFZXVzAxUTJNeFZuUmpla1pVVm14YU1GcEZaRWRoVmtweVkwUkNWMVl6VFRGV01qRkxWbFpLZFZkc2NHaGhNWEJ2VjFSR1lWSXlVa2RUYms1aFVsUldiMXBYZUZwTmJGbDRWV3RPVjAxcmJEUldiR2h6VmtkRmVXRkdaRnBoTWxKMlZtMTRZV1JIVmtoU2F6Vk9WbTVDV2xkc1ZtdFNNa1p5VFZac1VtRXpRbGxaVkVaM1ZrWmFTR1ZIUmxkV2EzQldWVmQ0YTFZeFNsZGpSRXBZVjBoQ1NGWnRNVmRXTVU1ellrZHNVMDF0YUZWWGJHTjRUa1prUjFwR2FHdFNNRnBWVkZaa1UxTkdXWGhoUjNSWVVqQndlVlJzYUV0V2JVWnlWMnQ0Vm1GcldqTlZiWGhoVmxaS2RHRkdaR2hOTUVZMFZteGFZV0l5UlhoWFdHaFVZbXMxY1ZWdGVFdFdNVnB5Vm0xR2FGSnRkRFZaZWs1dlZqQXhXRlZ1YkZWaVJuQnlWbFJLUm1Wc1JuTmpSbVJwVmtWR05GZHJVa2RYYlZaSFdraEtZVkp0YUhCWlZFWjNWbXhrVjFWclpHdE5hekUwVmpJMVUySkdTWGRYYXpsWFlsaG9hRlJWV25kV2JIQkdXa2RvVTJKSVFqVlhWM1JUVlRGYWRGTnJhR2hUUlhCWVdWZDBkMVJHV25OWGEzUlhWbXRhZWxrd1pEUmhSVEIzVTJ4R1YwMXVhRmhaVkVaU1pVWk9kVlZzVG1oTmJFcFVWMWQwYTFVeVRrZFhibEpyVTBkU1dGbHJXbk5PUm1SeVZXdE9WMDFFUm5wVmJYQlRWMGRGZVdGR1FsZE5SMUpIV2xaa1IxTldVbk5YYldob1pXeGFSbFp0ZUZkWlZteFlWV3RvVjJFeWVGWlpXSEJ6Vmtac2NscEVUazVXYkhCSldsVmFZVlF4V1hkWGEyeFdUVzVTYUZsWGVFdGtSMVpJVW14a2FWSnVRWHBYYkdRMFdWZE9WMVJ1U2xoaVdHaFVXV3RvUTFsV1pGZFdiWFJUVFZaV00xUlZhSE5oUmtwSFkwWm9XbUpIYUVSVk1GcHJWakZrZEdSR2FGTmhNMEkxVmpKMGEySXhWWGxTYWxwWFltMVNXRlp1Y0VOTk1WSnpWbFJHVTAxWFVscFpWVnBoWVVVeFJWWnRhRmRpV0VKRVZtcEJNVkl4WkhOaFJUbFhWa2Q0V2xaWE1IaFZNVTVYWTBaYVdtVnNXbGhaYkZaWFRrWlplV05GT1ZkTlJFWklXVEJhVTFZeVJuSlhia3BoVW14d00xVXdaRWRTTVZKMFlrWk9hVmRHUlhoV2JURTBZVzFXUmsxVmFGWlhSM2hWV1ZSS1UxWldiSFJqZWtaWFZtMTRXVnBGWkVkWFJrcDBaVWh3V2xaWFRURldiRnBMWkVkV1IyRkdaRTVpYkVZelYxWmtlbVZIVG5KT1ZscG9VbTVDYjFSV2FFTmxWbHB6Vld0MFZFMVZjREJXUjNSaFlWWktkRlZzYkZaTlJscE1WV3RhWVZJeFpIUmtSbFpwVm14d1NWZFVRbGRqTVZwSVUyeG9hRkpzU2xaV2ExWjNaR3hhYzFkdFJsTk5WbkF3VlcweE1GUnRSWGhqUld4WFlXdHJlRlpVU2tkak1VNXpZVVphYVZKc2NGZFdiVEUwV1ZkV2MxVnVTbGhpVlZwWlZXeFNWMVl4VVhoWGJUbFdUVVJHU2xWWGVHOVdNa1p5WW5wQ1dsWkZXbWhhUlZwUFl6SktTR0ZHVGxOV1JscFlWbTB4TkZsWFVYbFNhMlJZVjBkU1dGWnJWbUZYUm14eVYydDBiR0pIVW5sV2JGSkhZVVpLVlZGcVRsWk5ibEYzVm1wQmVGWXlUa2RoUm1Sb1lURndXRmRzVm1GaE1sSlhWRzVLVDFadFVuQldiWFIzVGtaYWMxcElaRlJOYTJ3MFdXdGFhMVp0U2toVmJHeGFZbFJHVkZacVJsZGtSVEZWVVdzNVUySkhkekZYYkZaclRVZEdTRkpxV2xOaVIzaFlWbTV3VjJWc1duTmFSWFJUVFdzMVNsVXllR3RWTURCNVlVYzVWMkZyU25KV1Z6RlhaRVpTY2xwSFJsTk5ibWhhVmxkd1MySXhXbk5YYms1b1UwZFNVMWxzV21GVFJscElaRWQwVjFJd2NFbGFWV00xVm0xR2NsTnRhRmRoTVhCb1dURmFUMlJGT1ZkYVIyeFRUVlZ3WVZZeWRGZGhNREZJVW14YVRsZEZjSEJWYTFwTFYwWnNjMVZzWkZSU2JIQlpWRlpXTUZZeVNraFZibkJhVmxad00xbFZWWGhYVmtaWlkwWmtVMkpJUW05WFZFbDRWVzFXUjJORmJGWmlXRkpVVkZjeGIxVkdaRmRWYXpsU1RWVTFXRmRyV205aE1VcHlUbFphVlZac2NIcFVWRVpUVmpKR1JscEdaRTVoTVZreVYxWldhMUl4WkhOWGExcFlZV3MxV0ZWc1duZE5NVlowWlVkMGFrMVlRa2xhUlZwclZHeE9SbE5yY0ZkTlZuQllXVlJLU21WR1ZuVlViVVpUVm01Q1ZsZFdaRFJaVm1SSFlraE9WbUV5VWs5VVZscGFUV3hXZEdSRVFtaE5WWEI2V1RCU1IxWXhTWHBoUmtKYVZtMVNSMXBWWkU5U01rNUhZVVprVGsxVmNEVldiWGhUVXpGT2RGWnJaRmRpYXpWdlZXcE9iMVpHV1hkV2EzUldVbTFTV1ZwRlpFZGhNREZXVGxWb1YwMVhhSHBXUjNoaFYwWldjMkpHV21oaE1HOTZWbXBDWVZZeVVraFVhMXBRVm0xU1dGbHJhRU5PYkdSVlVXMDVWRTFXYkROVVZsWnZWbTFGZW1GR2FGVldWMUpVVmpCYVZtVkdaSE5VYlhCT1lYcFdTVll5ZEdGVU1WbDVVMnhXYUdWcmNGaFpiRkpIVFRGV2NWSnVUbGhTYTNCYVdWVmtSMVV4V1hsaFJteFlWbXhLVEZscVJsZFdNV1IxVlcxMFZGSXhTbGRXUmxwaFpEQXhSMk5GV21oU00xSllWVzE0ZDJWc2EzZGhTR1JZVW0xU1NsVlhkRzlXTWtWNFZtcFNWMDFHY0ZoWk1qRkxVakZrY2s1WGJHbFNXRUl5Vm1wR1lXRXdOVWRWV0doVVltdHdVRlp0TVZOaFJsWjBUbFZPYWxKc1dqQmFSV2hyVmtaYWMyTkVRbUZTVjFKSVdWUkJlRmRHVm5KaVJtUnBWMFpLTmxadGVHdFRNVTVIVm01V1VtSkdjRzlaVkVaM1ZGWmFTRTFVVWxwV01EVjZXVlJPZDJGR1NYbGxSVGxYWWxSRmVsUldXbUZYUjFaSVQxZDBUbFpzY0RaV01uUlhZakpHUjFOdVVtaFNiV2hoV1d0YVMxTkdXa1ZTYm1SWFlrZFNNVlpITVhkV01rVjZVV3BhV0ZaRlNuSlVhMXBXWlZaT2MxcEdVbWxXVm5CYVZtMTBWMU15VG5OaVNFWlRZbFZhVkZSV1ZURmxiR3h5VjJ0MGFGWnJiRFpaVlZwelYwWlplbUZJV2xkV1JWcHlWV3BHZDFJeGNFaFNiRTVwVm10d05GWnJXbUZoTVZWM1RWWmtWMkpzU25OVmJGSnpZakZhZEdSSVRrOVNiRlkxVkd4ak5WWXdNVlpqU0hCYVRVZG9URlpxUm1GU2JVNUhZVVp3YkdFelFrMVdWM0JIWVRKU1IxTnVUbFppUlRWWVZXMTRkMWxXV25Sa1IwWmFWbTE0V1ZaV2FHdFViRnAwVld4b1dtRXlVblpaZWtaWFl6RndSMVJzYUZOaVJYQmFWMnRXWVdFeFVYaFRibEpyVWtVMVdWbFVTazVOVmxsM1YydDBhazFyTlVaVlYzaHJWakF3ZVdGR1JsZE5WbkJvVjFaa1RtVldVbkpoUjJoVFltdEtVRmRYTUhoaWJWWnpWMnhvYWxKWFVuSlVWbFp6VGxaV2RHUkhkRmRXTUZreVZtMXpOVmR0U2toVmJrWmhWbFp3YUZwRlZYaFdWbFowWVVVMVUxSldjRXBXYlhCSFlqSkplRmRzWkdGU1YyaHZWV3BLYjFZeGJISmFSazVYVW14d2VGVnROVTloYlVwSlVXdG9WMUl6YUhaV2FrcExWMVp2ZWxwR1pGTmlTRUp2Vm10U1MxSXlUbkpOVm1SaFVqTkNWRlZzVm5kV01WcDBUVlJTVkUxVmNFaFdNblJ2WVdzd2VXRkdhRlZXTTFJelZXMTRZV1JIVmtkYVIyaFhZVEozTUZaWE1YZFVNVmw1VW01S1ZHSlhhRmRhVjNSM1ZVWndSbGRyT1dwaVJuQjZWbTB4YzFVd01WWmpSRTVYWWxoQ1JGWnFSazVsUm1SeldrWm9hV0V4Y0ZaWFZ6QXhVVEpOZUZadVVtcGxhMXBWVm0xNFlVMUdjRVphUldSb1ZtdHdlVmt3VWtOV01WbDZWRlJHVjAxcVJreFdiRnBMWkZaa2MyTkhhR2hOV0VKMlZqRlNSMWxXU1hsVmEyUlVZbXMxYUZWc1VsZGlNWEJZWlVad1RtSkdiRFJXVjNSUFZqQXhjbUpFVWxkaVIyaDZWbXRrUm1WWFJrZGFSbkJvVFd4S01sWnRNVFJaVjFKSVZtdG9VMkY2Vms5V2JUVkRWMnhrYzFadGRGTk5hMXA1VkZaYWMxVnRSWHBSYkd4YVZrVmFNMVpyV21GVFIxWklVbXhrVjJFelFsZFdWbVEwWVRGWmVGTnNaR3BTUlhCWlZqQm9RMU5HV25STlZtUlhUVlUxZWxsclpITlZNREYwWVVaV1dHSkhUalJVYTFwclVqRndSMkZIZEZOTlJuQldWa1phYTFVeFRrZFhXR2hvVWpOU1dWVnFRbmRsVmxKellVVjBWMkpWV25sV01uUTBWbTFHY2xkcVRsWmlXR2hvVm14YVMyUkhSa2RhUjJoT1RVVlpNRlp0ZUdGWlYwbDVVbGhvV0ZkSGFGVlpiWE14WTFaV2RHVkZkRmROVm5CNVZtMHhSMkZHU25Sa1JGWmFaV3MxZGxacVFYaFhSbFoxWWtaV2FWSnVRbmxXYkZKTFVtMVdjMUp1VG1wU2JWSndWbXRXU21Wc1pITldiWFJVWWxaYVdGWXlOVmRXVjBwSVlVaENXbGRJUWxoV01uaHJWMGRXU0U5V1drNVdia0paVm0wd01WSXhWWGxUYkZwWVlrWmFWMWxzYUc5bGJGSnpWMjVrVjJKVldrbGFSVnByVkd4S1JsZHNhRmhXUlVwb1dXcEdhMlJHU25WVGF6bFhVbFJXV1ZaR1ZtRmtNa1pIWWtSYVUySllVbkpWYWtKaFUwWmtjbHBIT1doU1ZFSXpWVEo0UzFZeVNsVlNhazVXWVd0YVYxcFdXbGRqTVhCSFdrZHNhR1ZzV2xWV01XUXdZVEZWZVZSclpGaGliRXB5VlRCa1UxZEdiSEpYYms1UFVtMVNlVlpYZEU5V01ERkZVbTV3Vm1KWVFsUldNR1JHWlZkR1IxRnNaRTVTTVVwSVYyeGFhMUl4VGxkVmJrNVlZbGRvYjFwWGVHRlNiRnAwWlVaa1dsWnRlRmxXVjNSdlZqSkZlV1ZHV2xwWFNFSjZWbXRhYzJOc2NFVlVhelZYWWtoQ1NsZHNWbUZaVmxGNFYxaGtXR0V5ZUZkVVZ6VlRZVVpzV0dWRmRHdFNNVnBKVlcxNGEyRldTblZSV0hCWVlrZFJNRmRXWkU5V01WSjFVMnhvYVZkSGFGVlhWM1J2VVRGc1YxcEdaRmRpV0ZKVVZGWmFWMDB4VWxaaFNFNW9VbXR3U0Zrd1dtOVhiVXBJWVVWU1ZrMUdjSEpXYWtaclpFZFNSMkZHVG1oTk1Fa3hWakZhVjJFeVVYaFdXR1JPVjBaYWIxVnRNVFJYUm14WVpFVjBXRkpzV1RKVmJYTTFWVEF4V0ZWcVJsZFdla1V3VmxSQmQyVkdUbk5TYkdSWFRUQktSVlp0Y0VKTlZrbDRXa2hPYUZKVWJGaFdhMlEwVjJ4YVdFMUlhRlpOVlRWWVdUQmFZVmR0Vm5OWGJHaGFZa1phV0ZScldscGxWMDVHVDFaa1RsSkZXa2xYVkVKdlpERlpkMDFWYUZaaVJrcFhXV3hTUjFaR1ZYZGFSVGxVVWpCd1NGWkhNWE5WTURCNFVsaG9WMkpVUlRCWlZ6RlhVbXN4Vmxkck5WZFdNbWhWVjFjeE5GTXhXa2RpUm1oc1UwZFNXVlZ0TVRSbFZtUnlXWHBXV0ZKc2NEQmFWVnBoVm0xS1ZWWnVTbHBXVm5CTVdrVmtWMUl5UmtkYVJUVnBZa1ZaZWxZeFdtdGxiVlpJVkc1S1QxWnNjRzlWYlRWRFlqRlNWMkZGVGs1aVJuQXdXVEJXUzJFd01YTlhiR3hXWWxoU2RsWlZXbUZrUmxaellVZEdWMDB4U2t4V1JsWmhXVmROZUdFemNHaFNiVkpQVm14a00wMUdaRlZSYkdScVRWWnNOVlV5ZEd0aGJFNUdVMnhvVlZaV2NHaFdSVnBoWXpGa2RGSnRkRk5OUkZaSVZqSjBZVlV4VW5OWFdHaFVZVEo0V0ZsWGRIWmtNV3hWVW0xMFZGSnJOWHBXTW5odllWZEZlbEZzWkZkaVdHaG9WWHBHVDFJeFdsbGFSbWhwVmxad2VWWlhlRk5XTVdSSFYydG9UbFo2YkZaWmExcDNWMVpSZDJGSVRsaFNiR3cyVmxjeGIxZHNXa1pYYldoaFVsWndVRmw2U2t0VFIwWkhWR3hPVjFKc2NGbFdiVEI0VGtac1dGVlliRmRpYXpWWldXMTRTMk14Vm5GVWJFNXFWbXhLV0ZZeWREQmlSMHBJVlc1c1YwMXFSWGRaVlZwaFkyczFWbHBHV2s1aGExcEpWbTF3UW1WR1dYbFVhMlJvVW0xU2IxbFVSbmRYUm1SelZtMUdhRTFyTVRWVmJYUnJWbTFLV0dGRk9WcGhNVm96Vkd0YVlXTXhjRWxhUmxKT1lUSjNNRlpxUm05aU1WcDBVMnRrYWxJeWFGZFpiR2hPWlVaWmVGZHNaR3RTTVZwSVYydFZNVlJzV25Sa2VrWllZVEZhVkZWVVNrZFNhekZYVjIxc1UxSlVWbGRYVjNSaFdWZE9jMWR1VG1GU1dGSlVWRmR6TVZOc1ZYbGxSM1JXVFVSQ05WbFZZelZXTWtaeVUyNUtWMVo2UmxoYVJWcFRZMnh3U0ZKc1RrNWliV2hoVm14a2QxTXlTWGhYYms1WVltczFiMVV3WkZOVk1XeHpWMjFHVkZKc2NFbGFSV1F3VmpGWmQyTkZiR0ZXVjJoRVZtMHhTMWRXVWxsaFJuQm9ZVEZ3VlZacVFtdFdNVXAwVld0a1lWSXllRlJVVmxaM1dWWmFjbGR0Um1sTmJFWTBWbGMxVDFkSFNuSk9XRVpXWWxSR2RsZFdXbk5XVms1MFQxWldVMkpXU2xsV2Frb3dUVVpSZVZOc1dtcFNWMmhoVm14YWQwMHhiRlpXV0doWVZtdGFXbGt3V205aFZrbDRVbGhrVjJGcmJEUldha1poWTJzMVYxcEhhRk5OTVVwVlYxZDBZV1F5VW5OYVNFNWhVa1ZLWVZadE1WTlhSbVJ5VjJ4a1ZtSlZjRlpaYTJoSFZsWmFjMk5JY0ZWV1JWcFVWbXBLUjFKc2NFZFhhelZvVFZacmVGWXhXbGRoTVVsNFYxaHNVMkpyY0ZCV01GcDNXVlphYzFkdVpHeFdia0pZVjJ0Vk5WUXlTa1pqU0hCYVZsWndjbFpIZUU5U2JFNXlZMFprVGxadVFsbFhWbEpMVTIxV1IxWnVWbFZpVlZwVVZtMDFRMVpzWkZoa1JtUnJUVmRTU0ZaWGVHdFhSMHAwVlcwNVZtSlVSbFJXTUZwYVpWZE9ObEp0YkZOaVNFSTJWbFJLZDFJeFdYaFhXSEJvVW0xb1lWWnNXbGRPUmxweFUyczVVMDFyTlVoWlZWcHJWR3N4Vm1ORVZsZGlXR2hVVlhwR1VtVkdUbGxoUm1ocFlrWndWVmRYZEZka01XUkhWbTVPVjJKdFVsZFZiWGgzVjFaU1ZtRkhPVmRoZWtaWlZsYzFkMWRzV2taT1dFcFhZV3R3VEZZeFdsZGpNa1pIVm14a1RrMVZiRFpXYlhCRFdWWlplVlZyYUZWaE1YQlJWbTB4VTFkR2JISmhSVTVQWWtad2VGVXhVa2RoTURGWVZXNXdWMDF1YUhKWlYzaExWMWRHU0ZKc1ZsZGxiRnBRVjJ4V1lWZHRVWGhYYkZaWFlrZFNUMWxZY0ZkVGJHUlhWbXhhVGxZd1dsaFdNV2h6WVVaS1dGVnNhRnBpUmtwSVZGUkdWMk5XU25WVWJHaFRZVE5DWVZkV1ZtRmlNV1JIVTFoc2FGTkhhRmhXYWs1dllVWmtWMWRzV214U01IQktWa2N4YjFVeVJqWldibWhYVm5wRk1GcEVRWGhTTWs1R1YyeG9hV0pXU2xkWFYzUlhaREpXYzJFelpHaFNlbXhZV1Zod1IwMVdWbGhsUms1WFRXdGFlVlZ0Y0ZOV01rWnlWMjFvV2sxV2NHaFpla1pyWTJzMVdHSkhiRk5YUlVWNFZtMXdSMWxYUlhkT1ZXUldWMGRvVlZsdGRIZFZSbHAwVFZaT2FGSnNXakJVYkZaUFlXeEtjMWRxUW1GU1YyaHlWbXRhWVdNeVRrVlJiVVpUVmpGS1NWWnRNWHBsUmxsNVUydFdWbUpIYUc5VVZ6RnZWVlphY1ZGdGRGUk5WMUpaVlcxMGEyRkdTbk5YYkdoWFlsaFNNMVpyV210ak1XUjBVbXh3VjJKV1NraFdSbHBoVmpGYWRGTnNhR3hTVkd4WVdXeG9iMWxXVWxkWGJVWllVakZhU1ZReFpEQlViRnB6WWpOa1YxWkZiekJYVmxwclUwWk9jbUZIYUZOaVYyaG9WMWQwWVZNeFRrZFhhMVpUWW0xU1dGbHJaRk5OVmxwSVRWaGtWMDFyVmpaVlYzQmhWMFphUmxOdVNsVmhNWEJYV2xaYVQyTXhjRWRWYld4WFZtNUNZVlp0TVRCV01VMTVWRzVPYVZORldsUlpiRlpoVmtaU1YxWlVSbXhpUjNoNVZqSjBNR0ZHV25KaVJGSldUVzVvTTFacVNrdFdWa3BWVVd4YWJHRXhjRlZXVjNCSFlUSk5lRmR1VGxWaVYyaHpXV3hvYjFac1duSlhiVVphVmpGR00xUldXbXRXTWtwelUyNU9WbUpHU25wWmFrWmhaRWRXU1ZwR2FGTmlXRkY2Vm1wSk1XRXhXWGROV0VwcVVteHdWMVp0TVc5a2JGcDBaVWRHVTJKSFVucFZWM2hyWVVkRmVsRnJNVmRXTTBKSVdWUktUbVZXU25KaFIyaFRUVEpvZDFacVFtdGlNV3hYVjI1U2ExSXdXbUZXYlRFMFYxWmFWMkZIT1ZkV01GWTFWbGQ0YzFZd01VaFZWRUphWld0YVdGa3hXbE5qTVZKellVWk9hVkpZUW1GV01uUlhZakpGZUZkclpGaGlhelZ4Vld4a05GbFdVbFpYYm1SV1VteHdlRlZ0ZUhkaE1ERlhZMGhvVjJKWWFISldha0YzWlZkR1IxSnNaRTVXYmtKdlZqRmFhMVJ0VmxkVmJrcG9VakpvVkZsdGRFdFZSbVJZVFVob2FXSldXbnBXTW5odllXeEtXRlZ1U2xWV2JGcDZWR3hhVjJSSFVraGtSbVJYVFVacmVWWnRNWHBPVm1SMFUydG9WbUpyV21oV2JGcDNZVVp3UmxaWWFGZFdiRm93V1ZWVk1XRldTbGRoTTJSWFlrZFJNRmxxU2twbFZrcHpXa1pTYVdKRmNIWldWekUwWkRGc1YxZHVTbGRpYlZKWVZXMTRjMDB4V1hsT1ZUbG9UVlZzTkZZeWRHdFpWa3BZVldwT1YxSXphR2haZWtaclYxZE9SMXBGTldsaVJYQjJWbTEwVTFNeFNYbFVia3BPVm0xU2IxVnFUbTlXVmxaeFZHMDVXRlpzY0VoWGEyaHJWakF4VjFkcmFGZE5ibEpZVmxSS1MxWnNaSFZUYkdScFYwWktiMWRzWkRSaE1rNXpXa2hXWVZKdFVrOVdiVEV6VFVaYVdFMVlaRlZOVm13MVZXMDFTMVpIU2xoaFJtUmhWak5TTTFaVlduZFNiR1J5VDFkd2FWSnVRalpXYlRCNFl6RlZkMDFXV21wU1JUVllXV3hvUTFKR1duRlNhelZzVW0xU2VsZHJXbTloVjBWNFkwWmFXRlo2UVhoVlZFcE9aVVphZFZWdGRGUlNWRlpSVmxjeE5HUXhUbGRWYms1WFZrWmFXRmxzVm5kV01XdDNWbTVPVjAxV2JEWldSbEpIVmpBeGRXRkhSbUZXTTJoWVdrVmtSMUl4WkhKT1ZrNXBZVEJ2TVZacVJtOWtNVWw1VWxoc1ZtRXlVbFZaYlhNeFlVWldjMVZzWkdsTldFSlpXbFZhZDFSdFNrZGlSRkpYVmpOU1VGWnFRWGhqYlVwRlZXeGthVkl5YURaV2JYUnJVbTFXV0ZKclpHRlNia0paVlRCV1MwNXNXblJOVkZKYVZqRktXVlpIZEdGWlZrbDZWVzVDVm1KWWFHRlVWbHByWXpGYWRGSnRkRTVoTTBKSlZsUkpNVlF4WkVoVGJsSnNVakJhVmxac1pGTlZNVkpXVjIxR1YxWnJOWGxYYTFVMVlWWktXVkZzWkZkV2JWRXdXVlJHV21WR1RuTmFSM0JUVWxoQ1dsWnRjRTlSTVZKSFZtNUdWR0Y2Vm5OVmJYaExUVlphU0UxWE9WWk5SRVl3V1ZWYVlWWXhXWHBoUm1oaFVrVmFjbFZxUm5kU01rWklaVVpPYUdWc1dsWldhMXByVGtaTmVWWnVUbGhYUjNoUVZteG9VMWRXVm5GUmJtUlhUVlpzTlZSc1ZtdFdNVnB6WWtSYVYxWjZSblpXYlRGSFkyeGtkR0ZHV2s1U01VcFpWbGR3UjFVeVRYaFhibEpwVW1zMWNGbFVRbHBOUmxwMFpVZEdXbFl3YkRWVmJHaHZWMFprU0dGR1ZscGlXRTE0V1RGYVYyUkhWa1prUm1ST1ZtNUNOVlp0TUhoU01rWkhVMjVTYTFKR1dtRmFWM014Wkd4YWNWRllhRmhTYkZveFdXdGFWMkZXU25WUmJteFhZa1pLVEZWdE1WZGpNVXAxVkcxd1UySldTbEJXYlhCSFVqQXdlRnBHWkZaaE0xSlZXV3hhWVZkR1duUk9WbVJYVmpCd1NWbFZXbk5XYlVaeVYydDRWMDF1YUhKV01HUlhVMFU1VjFkck5WZGlhMHBhVm0wd2QwMVdTWGhXYmxKVVlrWndXVmxyV21GV01XeHpWV3RhVGxKdVFsaFdNbmgzWWtaYVZWWnNiR0ZTVjFKMlZsUktTMU5XUmxsYVJtUnBVakZHTTFkWWNFZGhNazE0V2toT2FGSnNXbGhWYkZwM1YxWmtWMXBFUW10TlZrcElWakkxVDFkSFJYcFZiR2hYWWxoU2FGcFhlSEprTVhCRlZXMW9VMVpGU1hwV1ZFbzBVekZaZDAxV2FHaFNSVFZYV2xkMFlWVXhjRlpYYXpsclZteGFlbFpITVc5VWJVcEdZMFpXVjAxWFVYZFpWRVpXWlVaV1dXRkdXbWxTYmtKWlYxY3dlRlV4WkVkaVNFcFlZbXMxVUZWdE1WTmxWbHBZWkVVNWFGSnNjRlpWYlhoclZqSktXVkZzUWxkaVIxSk1WV3BHYTJSV1RuTmFSVFZUVFZWd1RsWXhVa3BsUmxGNFZHdGtWR0pyTlZoWmEyUlRWa1paZDFacmRGZGlSbkF3V2xWYWExZHNXblJsUm14WFZqTlNkbFpxU2tabFYxWkhWMnh3V0ZORlNqWldiWFJoWXpKT2MyTkZWbFZoZWxaWVdXdG9RMU5zWkhOV2JVWmFWbXhHTkZZeGFHdFhSMFY1WlVaa1ZWWjZWbFJaVlZwelYwZFdSbVJIZEZOTlZuQktWbGN4TkdFeVJsZFRibFpTVjBoQ1dWbHJaRkpOUm1SWFdrVTVWMDFXU2pGVk1uaHZZVlprU0dGR1ZsaFdNMUoyVlZSR2MxWXhjRWRhUm1ScFYwWktWVlpHV21GV01EQjRWV3hhYUZORk5XOVZiWFIzVTBacmQxZHRPVmhpVlhCSldWVldVMVpyTVVkalNFcFhZV3RhY2xwRlpGTlNNa1pIVkcxb1RrMUZhM2hXYlhCTFRVZEZlVk5ZYUZkWFIzaFVXVmQ0ZDFkR2JIUk5WazVZVW14d01Wa3dWa3RpUmtwelYyeHNXbVZyTlhaV2FrRjRWMFpXYzJOR2NGZFdia0l5VjFaYVlWTnRWa2RVYmxKb1VtMVNjRll3Vmt0U1ZscDBZMFZLVGxacmJEUlhhMmhQWVVaS1ZXSkdhRnBYU0VKWVZqQmFZVkl4Y0VWUmJYUk9Za1p3V1Zac1l6RlVNV1JJVTI1S1QxWnRlR0ZaYTFwaFYwWlNjbGR1U210TldFSkpWREZhYTFSc1NrWlhhMnhZVmtWS2RscEVSbHBsVms1eVdrZHdVMkV3Y0doWGJHUXdXVlpXUjJFemJHcGxhMXBZVkZaYVMwMUdiSEpYYlhSb1VsUkNNMVV5TVc5V01rcFZVV3BTWVZKRldrOWFSRUY0Vm14a2NrNVdaRmROYldoV1ZqRmplRTFIVVhoVldHaFlZbXhLVDFadGN6RlhSbHAwVFZSU1dGWnVRa2RYYTFaclYwWktjbU5JY0ZkTmJrSklWakp6ZUZJeFpIVlRiSEJYVWxoQ1RWWlhjRXRVTVVsNFdraE9XR0Y2Vm5CWmExWmFaV3hhZEdWR1RsSmlWbHBKVmtjMVMxUXhXbk5qUnpsV1lsUldSRmxxUmxOV01rWkdWRzE0VjJKSVFqWldiR1F3VFVaYVJrMVdXbXBTUlVwWVZXcE9VMkZHV2tobFIwWnJVakJhU0ZsVldsZFdNVXBXWTBVeFYxWkZXbWhYVm1SUFl6RmFkVk50UmxOaVYyaDNWbTB4TkdReFRsZGFSbFpTWWtkU2NWUldXbmRUVmxWNVpVYzVhRkpyY0hwVk1uaGhWakpGZUZkcVRtRlNNMmhvV1hwR2EyUkdTbk5VYXpWWFltdEdNMVpzWTNkbFJURkhWVzVTVTFkSGFIRlZiR1EwVjBac1dHUklTbXhTYkhCV1ZXMTRUMkZyTVZkVGJteGFWbGRTZGxaVVNrdFdNVTV6V2taa2FWWkZWWGRXTVZwclZqSk5lRlp1VmxSaVIyaHdWbXhhZDFkc1dsaGxSazVYVFZac05GWldhRzlYUjBwVllrWmtWVlpXU2toVk1uaFhWMGRXU0U5V1pFNWhNWEExVjFjMWQxRXhaSE5YYTFwWVlsZG9hRlZzV25kVlJtdzJVMnQwVkZJd1draFdSM2hQVmpGS2MyTkdiRmRpVkVJMFZHdGFjMWRHVmxsaVJtUnBZWHBXV2xkWE1UUlRNazE0Vm01R1ZXSkZOWEZXYlhoTFYwWlplV1JFUW1sU01IQkpWbGMxYzFZd01YRlNXR1JhVmxad2FGa3ljekZXYkhCSFYyczFhV0pYWkRaV2JURjNVVzFXUjFkWWFGVmlhM0JYV1d0b1ExZEdWbk5YYm1SVlVtMVNlbFp0TVVkaFJURnlUVlJTV2sxR1duSlpWVnBLWlZkV1NFOVhSbGROTW1odlZrZDBZVmxYVFhoalJXeGhVbXhLVDFsVVNqTk5SbVJZWkVkR2FFMXJXbnBWTWpWVFlVWk9SbU5HWkZwV00xSk1XVlZhWVZKV1NuTlViR1JPVmpGSmQxWlhNSGhPUjBaWFUyNVNhMlZyV2xsWmExcGhZMnhTVmxwRlpGTmhla1pZVmpJeGMxVXhTbFZXYkdSWVZqTlNhRmRXWkU5ak1XUjFWRzFHVTFkR1NsVldSbVI2VFZaT2MxWlliR3hTTTFKWFZGVlNRMDVXYkZaWmVsWlhUV3RhZVZVeU5VdFdNVm8yVW14b1lWSldjRlJaTW5oM1UwWktjMVJyTldsaVYyaG9WbTE0YTJReFRYbFRXR2hZWW1zMVdWbHRjekZpTVZWM1drWk9WazFYZUhwV01qRkhWa1pLYzJORmJHRlNWMUYzVm1wR1NtUXlUa1ppUjBaWFZqQXdlRlp0TUhoU01rNXpWRzVTYUZKdFVtOVVWbWhEWWpGa1ZWSnRSbFZOYkVwSFZERmFhMWxXU1hsbFJsSlZWbXhhTTFkV1dscGxWMUpIV2tkb1RsSkZXa3BXVnpFMFdWWlNjMXBGV21wVFJVcFhXVlJHZDFSR1dYZFhiazVxVFZaYWVsZHJXbE5WTWtwSlVXeHdWMUpzY0ZoVVZWcGFaVlpPY21GR1dtbGlhMHBvVm0xNFlXUXdNSGhpUmxwWFYwZG9XVlp0ZEdGWGJHdDNWMjEwVmsxcmNFaFpNR00xVjBkRmVGTnJhRmhXYlZKVVZXcEdUMlJXVG5SaFJrNU9UVlZ3VmxZeFpEQlpWMUY1Vlc1T1lWTkZOV2hWYTFaTFdWWmFkRTFXVGxoU2JWSjVWako0YTFadFNsWmpSbHBhWVRKb1NGWnNXbUZqTWs1SlkwWldWMUpXY0ZWV2JYQkxVakZLYzJORlpGaGhlbFp2VkZaYWNtVkdXWGhYYkdSb1RWVnNORll4YUhOVk1rcHlZMFpDVjAxR2NETlhWbHBoWXpGa2RWcEhlRmRpYTBwWlZtMTRiMkl4V1hsU2FscHBVbTFvV0ZWcVRtOWpiR3hXVmxob1dGSlViRlpXUjNocllWWkpkMDVFUWxkU00xSm9WbGN4VjFJeGNFZGlSMFpUVmtaYVdWZFhkRzlSTVdSelYyNUdVbUpVYkZOVVZtUlRVMFpzY21GRk9WZGlWVlkxVmxkek5WWldXbk5qUjBaVlZqTm9XRnBGWkU5T2JFcDBZa1pPYVZORlNUSldiRkpMWkRGSmVGZFlhRlJYU0VKdlZXMHhiMWxXV25STlZrNVRUVmhDV1ZwVlZtdGhNVnAwVlc1d1dHRXhjSEpaYTJSR1pESkZlbHBHWkdsWFIyaFZWbGR3UjJNeFdYaFViR3hvVW0xU2NGbFljRmRYVm1SWVpFZEdWRTFyTlVoV01qVkxXVlpLUjFOdVNsVldiSEF6VlRCYVdtVlZNVlphUjJoT1VrVmFObFpxU2pSaU1WbDNUVmhXYUZOR2NHRldhMVpoVkVaV2RHVkZPV3BOV0VKSVZtMTRhMVl5UlhwUmEzQlhZbGhDUkZkV1pFNWxWbEoxVkd4a2FXRjZWbGRYVjNSclZURlJlRmR1VGxwbGJFcHpWbTE0ZDAxR1VsZFZiRTVvVmxSR1dGbHJVbGRXYXpGMVlVWm9WMVpGY0VkYVZ6RkhVakZ3UjJOSGJGTk5iV2Q1Vm0xNFYxbFhUWGRPV0U1VlltdHdhRlZ0Y3pGVU1WcHhVbXR3YTAxWFVsbGFSV1JIVmxVeGNsZHJaRlZXVjJoeVZtdGtTMVpzWkhOaFJuQnBVbXR3U1ZaR1VrZFdNazVYVTI1V1ZXSkhVazlaVkU1RFUxWlplV1JIUmxaTlYxSklWVEZvYzJGR1RraFZiR2hYWVdzMVZGbFZXbmRTVmtwMFVteE9UbUV6UWt0V2EyTjRVakZWZUZOdVNtcFNiVkpZVlcxNGQyRkdjRVZUYkdSVFRWWndNVlpYTVRCVk1VcFdZMFpzVjFaNlJUQmFSRUY0VWpGa2MyRkhlRlJTVkZab1ZtMHhNR1F4WkZkWGJHaHJVbnBzV0ZSWGRHRmxWbFowWTBaT1YwMXJXbmxXTWpWTFdWWktkRlZzUWxaaGEzQklWVEJrUjFKck5WZGFSMnhvVFVacmVGWnRNWGRTTVd4WFYxaG9hVkp0VWxaV01HUTBWbXhaZDFwSE9WZGlSM2d3V1ROd1IxZEdXblJsU0d4WVlURndVRmxYZUV0ak1rNUpZa1prYVZaRldrbFdiWEJIV1ZkTmVWUnJWbEppVlZwVVZtcEdTMU5XWkZkVmEwcHNVbTFTU0ZadE5VdGhWa3AwVlc1Q1YwMUdjRXhVYlhoaFpFZFdTR1JHVWs1V1ZGWkpWbTB3TVZZeFZuUlRhMlJxVW5wc1lWWnJWbUZOTVZwSFYyMUdWRkpVUmxaV1YzaDNWakF4UlZacVdsaFdiRXBRV2tSS1IxSXhUbGxpUjNoVFZrZDRXVmRYZUc5aU1XeFhWV3hhV0dKVlduRldiWE14WlVaV1dHVklaRmROYTNCWVZUSjBkMVl4V2paUldHaFhVa1Z3U0ZsNlJrOWtWbFowWVVaT2FWWXlhRzlXYlRFd1ZqRnNXRkpyWkdwU2JWSlpXVzB4VTFkR2JISmFSazVPVm14d1NWUldhR3RXTURGeVZtcGFWbFl6UW1oV01GcGhVbXhPZFZOc1ZtaE5XRUpZVjJ4YVlWUXlUWGhqUldSV1lsZDRXRlp0TlVOWlZscDBUVlJDVjAxVk1UVlZiWFJyV1ZaS2RGVnRhRlppUjFKVVZqQmFVMVl4V2xWU2JHaHBVak5vTlZZeWRHcE9WbHB5VFZoS2FsTkhlRmRVVnpWdlpXeFpkMWRzY0d4aVZWcElWbGQ0WVdGV1pFWk9SRUpYVmpOQ1RGWkVSa3RqTVdSMVZHeFdhVll6YUhaWGJHUTBXVlprYzFkdVNsaGlXRkp6V1Zod1IxZEdXa2hrUjNSWVVtMVNTVnBWYUU5V2JVcDFVVzV3V21GcldtaGFSVlY0VmpGU2MxVnNUbWxTYkd0NFZtdGtOR0l4VVhoWFdHUk9WMFZ3Y1ZWdGVIZFdNV3h5V2tjNWFtSkhVbGhXTW5Rd1ZUSktWazVWYUZwV1ZuQXpXV3RrUm1WSFRrbGlSbWhvVFZoQ2IxWnRjRXRVTWs1eVRsWmtZVkl5YUZSWldIQlhWMVphV0UxVVVtdE5WM2hZVmpJMVUyRXhTWGRYYlVaWFlsaG9lbFJzV21GU01rWklaRVpXVGxZeFNraFdSM2h2VVRGYWRGTnNiR2hTUlRWWVdWZDBZV1ZzYTNsbFNHUlRUVlpLZWxsVldrOWhWa3BaVVd4c1YySllhSEpVVldSR1pVWndSbHBHYUdsaGVsWjRWbGN3ZUdJeGJGZFhiazVoVW10d2NsUldXbk5OTVZsNVpFUkNhR0Y2Um5sVWJGWmhWbXhaZW1GSVNsZGhhMFl6V2xaa1IxSXhTbk5hUlRWWFltdEtkbFpxUm1GaE1WSjBWbXhrVm1KcmNHOVZha3B2Vmtac2RHUkZkRlpTYlZKWlZGVm9iMkZYU2xkWGJuQlhUVzVvZGxsWGVFdFhSbFoxVTJ4V1YySkdWalJXVkVaaFZtMVdXRlZyYUZCV01taFlXVlJPUTA1V1draGxSMFpxVFZad01GVXlkR3RYUjBwMFpVZG9WMkpHY0ROWlZWcDNVbXhhV1dGR1pGZGlSbTkzVjFaV1ZrMVdWWGhUYkdScVVsaENXRmxzYUVOVFJteHhVMnR3YkZKdFVucFhhMlJIVlRGWmVXRkljRmRXZWtVd1YxWmFhMUl4Vm5OWGJVWlRZWHBXZVZkWGRHdE5SVEI0VjFoc2JGSXpVbTlVVmxaM1ZteFdkR1ZIUmxkTlZtOHlWVzF3VDFZeVJuSmpSWGhXWVd0d1VGVnNXbXRqTVhCR1RsZHNhVkpZUWpKV2JURXdWVEZOZUZOWWJGVmlhM0JQVm0weFUyRkdWbkZVYTA1WFVteGFlbFp0Tld0aFZURlhZMFJDWVZaWFVraFdNR1JMVmpGS2NWVnNjR2hOYldoTlZqRmFZVk14WkZkV2JrNVdZa1phV0ZSVVFYaE9SbHBZVFZSU1YwMVhVa2xXYlhScldWWktkRlZyT1ZkaVZGWkVWR3hhYTFaV1JuUlNiWEJPVm0xM01WWlhNREZUTVZwSVUyeG9hRkp0VWxaV2FrNURVMFphVlZKdVpGZE5WMUo2VmtjeGQyRldTWGhUV0dSWVZteGFhRlpFU2tkWFJrcFpXa2R3VTJFeGNGbFhWM1JyVkRBd2VGVnNaRmhoTVhCeVZGVlNSMWRzV2tobFJ6bG9WakJXTkZrd1dtRlhSbG8yVVZob1ZsWkZjRTlhVlZwaFpGWldkR05IZUdoTldFSlhWbTB3ZUU1R2JGWk5WV1JxVWxad2FGVnNaRk5pTVZwMFpFaGtiRlp0ZEROV1YzUlBWakF4VjJKRVdsZFNiRXBJVm1wQmVHTldTbkpsUm1ScFVtNUNUVmRyV21GaE1rMTVWR3RvYUZJeWFFOVdNRlpMVFd4YWNWSnNUbE5OVjNoWVZURm9jMVp0UlhsVmJGWmFZbGhOZUZsVldsZGpNVlp6V2tkc1RsZEZTbHBYYkZaaFpERlNkRk5yWkdsU1JrcFlWbXBPVTFWR1duRlJXR2hxWWxWd1JsWlhlR3RoVmtsNVlVUmFWMkpZVW5KVmJURlhWMFpLY2xwSFJsTmlhMHBhVmxSQ1YxTXdOWE5YYmxKT1ZrWktZVlpxUmt0WFZscElaRWRHV2xacmJEWldWelZEVm0xS1dXRkhSbFZXYkhCeVdYcEdZV1JHU25Sa1JUVm9UVEJLU2xac1VrcE5WbEY0V2tWb1ZHSnNTbk5WYWtKaFZteGFjMXBHVGxaTlZrcFhWakl4UjFZeFduSk9XR3hZWVRGVk1WbFdXa3RYVmtaeldrWmtWMkpXUlhkWFZsSkhWMjFXUjFSdVRtRlNNMEpVVld4b1ExZHNXblJqUlRsU1RWWktTRlp0TlVkV1IwWTJWbTVPVm1KWWFFeFVWbHBoVTBVeFdFOVdXazVoTTBKTFZsWmpNV0V4V1hsVGJHeFNZVE5vWVZsWGRHRmpiRlp4VW01a1UwMXJXa2xhVlZwUFlrZEtXV0ZHYUZkTlYxRXdWMVphYzFZeFVuSmFSbWhZVWpKb2RsWlhjRTlWTVdSWFZtNUdVbUp0VWxWWmExcGhWMVpTYzFacVFsZE5WbkI2V1RCb2QxZHJNVWRUYkVKWVZteHdhRmw2U2s5U1ZsSnpWMjFzV0ZJeWFIWldiVEUwV1ZaTmVWVnJhRk5oTWxKb1ZXcEtiMVF4VWxaV2JIQk9VbXh3TUZwVlpFZFhiRmwzWWtSV1ZtSkhhSFpYVmxwTFYwWldjMkpHY0ZkU1ZtOTZWbTE0WVdNeVRuTmpSV2hRVm01Q1dGbHJhRU5PVmxwMFRVaG9VMDFyV2pCVk1uUnZZVEpXY21OR1pGcGlSa3BIV2tSR1dtUXhaSFJTYlhSWFlURndOVmRXVm1GaU1rWkdUVmhPVkdGcmNGbFdiWGgzWVVaV05sSnRkRmROVlhBeFZrY3hkMVV5U2xkVGJFSlhZbGhDU0ZWcVFYZGxSbkJIV2taYWFFMHhTbFpYVjNoaFdWWmtSMWR1VWs5V2JWSllWbXBDZDFOV2JGWlhiazVYWWxWYWVWWXlkRFJXTURGMVlVaEtWMDFIVWxoVk1GVTFWakZrY2s1V1pHbGhNSEJoVm0wd2QyUXdNVmRUV0doWFlteEtWVmxyV25kWFZteHlWMjFHVjAxWGVIcFpWV00xWWtkS1IxTnVjRmROYWxaeVZtcEtTMVpzWkhKaVIwWlRWakZLTWxac1VrdFRNVTVYVW14c1lWSnRVbkJWYWtaSFRURmtXV05GWkdoTmF6RTBWMnRvVDJGR1NuTlhiR2hXWWtad00xWXhXbXRXTVhCRlVXMTBUbFpyY0VsV2Fra3hWREZrU0ZKWWNGWmlSMmhZV1d4b1UyRkdjRmhsU0VwclRWaENSbFpYTVc5Vk1WcEdVMWh3VjFaRmJ6QlZla1phWkRBeFYyRkhhRk5TVkZaWVYxWmtNR1F4VlhoalJscFlZa1UxY1ZSV2FFTlRSbHAwVFZoT2FGWnJjRnBWVjNCWFZqSktTRlJxVW1GV00wNDBWbXBHVjFkWFJrZFhiV3hUWW10S1dsWXhZM2RsUmxWNFdrVmthVk5GY0ZsWmJYTXhWVVpXZEUxV1RteFdiSEJaV2tWVk5WZEdTWGRqUldoYVlURktWRlp0TVV0WFZrWnpVV3hrYVZJeFNrMVdWM0JIWVRKU1YxUnVUbUZTVkZaVVZGWldkMVJzV25OVmEwNW9UVlZzTkZVeU5VdFZSbHAwVlcxb1ZtRnJjSFpXUkVaaFpFVTFWbFJzVm1sU2JrRjNWMnRXWVZReFZYZE5WbVJwVWtaYVdGWnFUbE5rYkZweFUydGFiRll4V2toV01uaDNWMFpPUmxOcVdsZGlXRkpvV1hwS1QyTXlUa1pXYkZab1pXeGFXVmRYZEc5Uk1VNXpXa2hPVjJKVldtRldiWGhIVGtaWmVHRkhkRmhTTUZZMVdsVmFhMVpXV2paV2JGSmFWbFp3ZWxZd1pGZFNiVkpJWkVaT1RsWnVRa3RXYkdONFRrZEZlVkpzWkZSaWJGcFRWakJvUTFkV2JGVlRiRXBPVW0xU1dGZHJWVFZXTURGWFUycEdWazFxUmtoV1ZFRjNaREZPZFZkc2FHbFNNVVYzVmpGYVlXRXhXWGhhU0ZaVllsVmFWRlZ0ZEhka2JGcEhWMjFHVjAxRVZraFdNV2h6VkRGYWRGVnNaRnBpUmxwb1dsZDRjbVF4WkhSUFZtaHBWbGhDU2xkV1ZtOVpWbVJ6VjJ4a2FsSnRhR0ZVVmxwM1ZFWndSbHBHVGxOTmExcElWa2N4YjFSck1VWmhNMmhYWWxoQ1RGUlZXbk5XTVdSWllrWk9hVkl4U2xaV2FrSnJZakZhVjJKSVVteFRSMUpaVlcxNFlVMUdjRlpXYWtKV1RWVndlbFp0Y0ZkWGJWWnlUbGhhV2xZelRqUldNRnBYWTFaS2MxcEdaR3hoTVZsNlZtMTRVMUZ0VVhsV2EyUlZZbXMxVkZsclpGTlhSbkJZWkVWd1RsSnNjRWxhUldSSFlVVXhWbUpFVWxoaE1taFlWbXhrUzFkSFJrZFdiRnBwVW10d1dWWnFSbUZaVm1SSVZHdGFWV0pIVWs5VmExcGhVMVprVjFWck9XaE5WMUpKVlRJMVMxUXhXblJoUmxwWFlrWndURlV3V2xabFJtUjFWR3hrYVZKdVFqWldhMlEwWVRGU2MxTnJXbGhoTW5oWlZtdFdTMk5zYkhGU2JYUnJVbXh3TVZVeWVHOWhWMFY2VVcwNVYxWjZSVEJhUkVGM1pVWmFkVkpzVG1sU1ZGWjRWMVpvZDFZeFpFZGFTRXBoVW5wc1ZsbHJXbk5PYkZwWFlVaGtWMDFyY0ZaVlYzQlRXVlpLUmxkck9XRlNSVVkwVm0xNGQxSXhaSE5oUms1T1lsZG9hRlpxUm1wbFJUVkhWRmhvV0dKSFVuQlZiWGhoVmtac2RFMVdUbGhTYkhBd1ZGWlNVMkpHV25OaVJGWlZZa2RSZDFacVFYaGpiVTVHWVVad1RsSXlaM3BXYlhCQ1pVZFNWMVp1VmxSaVIxSlVWRlJCTUUxR1duUmpSV1JvVFdzMU1GVnRkR3RYUjBwWVpVWlNXbFpGTlVOVVYzaGhaRWRXU0ZKc2NGZGlSM2N3Vm1wS05GbFdVbk5YYkdSWVlsUnNhRlpxVGtOUk1WRjRVbFJzVVZWVU1Eaz0=",
"timezone": "America/Los_Angeles",
"allow_overwrite": true
}
Responses
Status: 201 File uploaded successfully.
Content-Type: application/json
-
import_idstring— The import's unique reference ID.
Example:
{
"import_id": "cmgoyz7mb00002f6obth9ojea"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
Get historical queue metrics import metadata
- Method:
GET - Path:
/workforce-management/imports/{importId}/historical-queue-metrics - Tags: Imports
Retrieve a list of historical queue metrics import metadata.
Scopes: workforce_management:read:admin
Granular Scopes: workforce_management:read:queue_metrics:admin
Rate Limit Label: LIGHT
Not supported in Gov cluster
Responses
Status: 200 Historical queue metrics import metadata response.
Content-Type: application/json
-
create_time(required)string— The import creation time. -
file_name(required)string— The import file's name. -
import_id(required)string— The import's unique reference ID. -
imported_by(required)string— The unique identifier of the user who imported the metrics. -
row_processed(required)number— The number of rows processed from the import file. -
status(required)string, possible values:"PENDING", "FAILED", "SUCCESS", "DELETING"— The import's status. -
timezone(required)string— Themetrics data's timezone. -
total_rows(required)number— The number of rows present in the import file.
Example:
{
"status": "SUCCESS",
"create_time": "2025-11-05T04:13:40.800Z",
"row_processed": 1000,
"total_rows": 1000,
"import_id": "cmgoyz7mb00002f6obth9ojea",
"file_name": "HistoricalData.csv",
"timezone": "America/New_York",
"imported_by": "3U-_aQo_ROeigseGAQL5_A"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
Get multiple organizational groups
- Method:
GET - Path:
/workforce-management/organizational-groups - Tags: Organizational Groups
Get multiple organizational groups.
Scopes: workforce_management:read:admin
Granular Scopes: workforce_management:read:organizational_groups:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Responses
Status: 200 Get multiple organizational groups response.
Content-Type: application/json
-
organizational_groups(required)array— List of organizational groups.Items:
-
created_at(required)string— The organizational group's creation time. -
description(required)string— The organizational group's description. -
name(required)string— The organizational group's name. -
org_group_id(required)string— The organizational group's ID. -
updated_at(required)string— The organizational group's update time.
-
-
page_size(required)integer— The number of items returned per page. -
total_records(required)string— The total number of items available across all pages. -
next_page_tokenstring— Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size.
Example:
{
"next_page_token": "cm2n7z2vl000e9cllp4ckoc45",
"page_size": 15,
"total_records": "45",
"organizational_groups": [
{
"org_group_id": "cmgoyz7mb00002f6obth9ojea",
"name": "West Coast Operations",
"description": "Organizational group for west coast teams",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
Create an organizational group
- Method:
POST - Path:
/workforce-management/organizational-groups - Tags: Organizational Groups
Create an organizational group.
Scopes: workforce_management:write:admin
Granular Scopes: workforce_management:write:organizational_groups:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
name(required)string— The organizational group's name. -
descriptionstring— The organizational group's description. -
scheduling_group_idsarray— The IDs of the scheduling groups to add to the organizational group.Items:
string
Example:
{
"name": "West Coast Operations",
"description": "Organizational group for west coast teams",
"scheduling_group_ids": [
"cmgoyz7mb00002f6obth9ojea"
]
}
Responses
Status: 201 Create organizational group response.
Content-Type: application/json
-
created_at(required)string— The organizational group's creation time. -
description(required)string— The organizational group's description. -
name(required)string— The organizational group's name. -
org_group_id(required)string— The organizational group's ID. -
updated_at(required)string— The organizational group's update time.
Example:
{
"org_group_id": "cmgoyz7mb00002f6obth9ojea",
"name": "West Coast Operations",
"description": "Organizational group for west coast teams",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
Get a single organizational group
- Method:
GET - Path:
/workforce-management/organizational-groups/{organizationalGroupId} - Tags: Organizational Groups
Get a single organizational group.
Scopes: workforce_management:read:admin
Granular Scopes: workforce_management:read:organizational_groups:admin
Rate Limit Label: LIGHT
Not supported in Gov cluster
Responses
Status: 200 Get a single organizational group's response.
Content-Type: application/json
-
agent_count(required)integer— The number of agents in the organizational group. -
created_at(required)string— The organizational group's creation time. -
description(required)string— The organizational group's description. -
name(required)string— The organizational group's name. -
org_group_id(required)string— The organizational group's ID. -
queue_count(required)integer— The number of queues in the organizational group. -
scheduling_groups(required)array— Associated scheduling groupsItems:
-
name(required)string— The scheduling group's name. -
scheduling_group_id(required)string— The scheduling group's ID.
-
-
updated_at(required)string— The organizational group's update time.
Example:
{
"org_group_id": "cmgoyz7mb00002f6obth9ojea",
"name": "West Coast Operations",
"description": "Organizational group for west coast teams",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z",
"agent_count": 42,
"queue_count": 8,
"scheduling_groups": [
{
"scheduling_group_id": "cmgoyz7mb00002f6obth9ojea",
"name": "Morning Shift"
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
Delete organizational group
- Method:
DELETE - Path:
/workforce-management/organizational-groups/{organizationalGroupId} - Tags: Organizational Groups
Delete an organizational group.
Scopes: workforce_management:write:admin
Granular Scopes: workforce_management:delete:organizational_groups:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Responses
Status: 204 Delete organizational group response.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
Update an organizational group
- Method:
PATCH - Path:
/workforce-management/organizational-groups/{organizationalGroupId} - Tags: Organizational Groups
Update an organizational group.
Scopes: workforce_management:write:admin
Granular Scopes: workforce_management:update:organizational_groups:admin
Rate Limit Label: MEDIUM
Not supported in Gov cluster
Request Body
Content-Type: application/json
-
descriptionstring— The organizational group's description. -
namestring— The organizational group's name. -
scheduling_group_idsarray— The IDs of the scheduling groups to add to the organizational group.Items:
string
Example:
{
"name": "West Coast Operations",
"description": "Organizational group for west coast teams",
"scheduling_group_ids": [
"cmgoyz7mb00002f6obth9ojea"
]
}
Responses
Status: 200 Update organizational group response.
Content-Type: application/json
-
created_at(required)string— The organizational group creation time. -
description(required)string— The organizational group's description. -
name(required)string— The organizational group's name. -
org_group_id(required)string— The organizational group's ID. -
updated_at(required)string— The organizational group update time.
Example:
{
"org_group_id": "cmgoyz7mb00002f6obth9ojea",
"name": "West Coast Operations",
"description": "Organizational group for west coast teams",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
List agents' adherence data
- Method:
GET - Path:
/workforce-management/reports/adherence/agents - Tags: Reports
Get agents' adherence data.
Granular Scopes: workforce_management:read:list_adherence_agents:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 List of agents with adherence for the date.
Content-Type: application/json
-
agents(required)array— List of agents with adherence.Items:
-
adherence_time_for_activity(required)array— All unique activities in the schedule with adherence.Items:
-
activity_id(required)string— The activity's unique identifier. -
activity_in_adherence(required)integer— Activity in adherence, in seconds. -
activity_name(required)string— The activity's name. -
activity_out_adherence(required)integer— Activity out of adherence, in seconds.
-
-
display_name(required)string— The agent's name. -
schedule_activities(required)array— All activities in the schedule.Items:
-
activity_id(required)string— The activity's unique identifier. -
activity_name(required)string— The activity's name. -
end_time(required)integer— The activity's end time in timestamp. -
start_time(required)integer— The activity's start time in timestamp.
-
-
shifts(required)array— Shift details.Items:
-
end_in_adherence(required)integer— The number of seconds before shift end that the user started being in adherence. -
end_time(required)string— The shift end time, in ISO 8601 format `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss'TZD'`. -
start_in_adherence(required)integer— The number of seconds after shift start that the user started being in adherence. -
start_time(required)string— The shift start time, in ISO 8601 format `yyyy-MM-dd'T'HH:mm:ss'Z'` or yyyy-MM-dd'T'HH:mm:ss'TZD'`.
-
-
user_id(required)string— The agent's unique identifier.
-
-
next_page_token(required)string— Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. -
page_size(required)integer— The number of agents returned per page. -
timezone(required)string— The adherence timezone. The default is UTC. -
total_records(required)integer— The total number of agents available across pages.
Example:
{
"next_page_token": "jA5csQv1W1oXuYZLspNIZzMOXqTD9r9Rje2",
"page_size": 10,
"total_records": 100,
"timezone": "America/Los_Angeles",
"agents": [
{
"user_id": "0c30da44bd68aae3b5714abb885a59",
"display_name": "Alex",
"shifts": [
{
"start_time": "2024-11-06T03:30:00.000Z",
"end_time": "2024-11-06T03:30:00.000Z",
"start_in_adherence": 0,
"end_in_adherence": 0
}
],
"schedule_activities": [
{
"activity_id": "0c30da44bd68aae3b5714abb885a59",
"activity_name": "Chat",
"start_time": 1730896200000,
"end_time": 1730896200000
}
],
"adherence_time_for_activity": [
{
"activity_id": "0c30da44bd68aae3b5714abb885a59",
"activity_name": "Chat",
"activity_in_adherence": 0,
"activity_out_adherence": 0
}
]
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1902` <br> Invalid date parameter. <br> **Error Code:** `1903` <br> Invalid timezone. <br> **Error Code:** `1904` <br> Invalid page size. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
List all schedule agents
- Method:
GET - Path:
/workforce-management/reports/schedules/agents - Tags: Reports
List all the schedule agents for the particular date and timezone
Granular Scopes: workforce_management:read:list_schedule_agents:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 List of agents in the schedule for the date
Content-Type: application/json
-
agents(required)array— List of agents in the scheduleItems:
-
activities(required)array— List of activitiesItems:
-
activity_name(required)string— The activity name identifier -
activity_type(required)string— Type of the activity -
end_time(required)string— The schedule activity end time. in ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss’TZD’). -
is_paid(required)boolean— The is_paid indicates if the scheduled activity counts as paid time for calculating the agent's total paid duration. -
schedule_activity_id(required)string— The activity unique identifier -
start_time(required)string— The schedule activity start time. In ISO 8601 format (yyyy-MM-dd'T'HH:mm:ss'Z' or yyyy-MM-dd'T'HH:mm:ss’TZD’).
-
-
display_name(required)string— The agent's display name -
scheduling_group_name(required)string, default:"null"— The name of the scheduling group -
total_paid_time(required)integer, default:0— The total duration of paid schedule activity in minutes -
total_scheduled_time(required)integer, default:0— The total schedule duration, in minutes. -
user_email(required)string— The agent's email address -
user_id(required)string— The agent unique identifier
-
-
next_page_token(required)string, default:"null"— Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. -
page_size(required)integer, default:10— The number of scheduled agents returned per page. -
timezone(required)string— The schedule's timezone. The default is UTC. -
total_records(required)integer— The total number of all scheduled agents available across pages.
Example:
{
"next_page_token": "jA5csQv1W1oXuYZLspNIZzMOXqTD9r9Rje2",
"page_size": 10,
"total_records": 100,
"timezone": "America/Los_Angeles",
"agents": [
{
"user_id": "0c30da44bd68aae3b5714abb885a59",
"display_name": "Alex",
"user_email": "alex@example.com",
"scheduling_group_name": "Sales",
"total_scheduled_time": 480,
"total_paid_time": 340,
"activities": [
{
"schedule_activity_id": "cll20wknm01cwex0isvewiegl",
"start_time": "2024-07-20T14:00:00-08:00",
"end_time": "2024-07-20T14:00:00-08:00",
"activity_name": "SMS",
"activity_type": "Productive",
"is_paid": true
}
]
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1902` <br> Invalid date parameter <br> **Error Code:** `1903` <br> Invalid timezone <br> **Error Code:** `1904` <br> Invalid page size <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error Internal server error
List all schedule agents
- Method:
GET - Path:
/workforce-management/schedules/agents - Tags: Schedules
List the schedule agents for the particular date and timezone.
Granular Scopes: workforce_management:read:list_schedule_agents:admin
Rate Limit Label: MEDIUM
Responses
Status: 200 List of agents in the schedule for the date.
Content-Type: application/json
-
agents(required)array— List of agents in the schedule.Items:
-
activities(required)array— List of activities.Items:
-
activity_name(required)string— The activity name's ID. -
activity_type(required)string— The activity's type. -
end_time(required)string— The end time of the schedule activity in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss’TZD’`. -
is_paid(required)boolean— Whether the scheduled activity counts as paid time for calculating the agent's total paid duration. -
schedule_activity_id(required)string— The activity's ID. -
start_time(required)string— The start time of the schedule activity in ISO 8601 format, either `yyyy-MM-dd'T'HH:mm:ss'Z'` or `yyyy-MM-dd'T'HH:mm:ss’TZD’`.
-
-
display_name(required)string— The agent's display name. -
scheduling_group_name(required)string, default:"null"— The scheduling group's name. -
total_paid_time(required)integer, default:0— The total duration of paid schedule activity, in minutes. -
total_scheduled_time(required)integer, default:0— The total schedule duration, in minutes. -
user_email(required)string— The agent's email address. -
user_id(required)string— The agent's ID.
-
-
next_page_token(required)string, default:"null"— Use the next page token to paginate through large result sets. A next page token returns whenever the set of available results exceeds the current page size. This token's expiration is 15 minutes. -
page_size(required)integer, default:10— The number of scheduled agents returned per page. -
timezone(required)string— The schedule's timezone. The default is UTC. -
total_records(required)integer— The total number of all scheduled agents available across pages.
Example:
{
"next_page_token": "jA5csQv1W1oXuYZLspNIZzMOXqTD9r9Rje2",
"page_size": 10,
"total_records": 100,
"timezone": "America/Los_Angeles",
"agents": [
{
"user_id": "0c30da44bd68aae3b5714abb885a59",
"display_name": "Jill Chill",
"user_email": "jillchill@example.com",
"scheduling_group_name": "Sales",
"total_scheduled_time": 480,
"total_paid_time": 340,
"activities": [
{
"schedule_activity_id": "cll20wknm01cwex0isvewiegl",
"start_time": "2024-07-20T14:00:00-08:00",
"end_time": "2024-07-20T14:00:00-08:00",
"activity_name": "SMS",
"activity_type": "Productive",
"is_paid": true
}
]
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `1902` <br> Invalid date parameter. <br> **Error Code:** `1903` <br> Invalid timezone. <br> **Error Code:** `1904` <br> Invalid page size. <br> **Error Code:** `1905` <br> Cannot specify both `scheduling_group_id`s and `organizational_group_id`s. Please use only one filter type. <br>
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
List scheduling groups
- Method:
GET - Path:
/workforce-management/scheduling-groups - Tags: Scheduling groups
Get all the scheduling group name and id
Granular Scopes: workforce_management:read:list_scheduling_groups:admin
Rate Limit Label: LIGHT
Responses
Status: 200 List all scheduling groups
Content-Type: application/json
-
page_size(required)integer— The number of items returned per page. -
scheduling_groups(required)array— List of scheduling groups.Items:
-
name(required)string— The name of the scheduling group. -
scheduling_group_id(required)string— The ID of the scheduling group.
-
-
total_records(required)string— The total number of items available across all pages. -
next_page_tokenstring— Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size.
Example:
{
"next_page_token": "cm2n7z2vl000e9cllp4ckoc45",
"page_size": 15,
"total_records": "45",
"scheduling_groups": [
{
"scheduling_group_id": "cmgoyz7mb00002f6obth9ojea",
"name": "Supportline"
}
]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 401 **HTTP Status Code:** `401` <br> Unauthorized
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error
List users
- Method:
GET - Path:
/workforce-management/users - Tags: Users
Get all the users in the account.
Granular Scopes: workforce_management:read:list_users:admin
Rate Limit Label: LIGHT
Responses
Status: 200 The list of users in the account.
Content-Type: application/json
-
page_size(required)integer— The number of items returned per page. -
total_records(required)string— The total number of items available across all pages. -
users(required)array— List of users.Items:
-
created_at(required)string— The user's creation time. -
display_name(required)string— The user's name. -
email(required)string— The user's email. -
updated_at(required)string— The last time the user was updated. -
user_id(required)string— The user's ID.
-
-
next_page_tokenstring— Use the next page token to paginate through large result sets. A next page token will be returned whenever the set of available results exceeds the current page size. This token's expiration period is 15 minutes.
Example:
{
"next_page_token": "cm2n7z2vl000e9cllp4ckoc45",
"page_size": 15,
"total_records": "45",
"users": [
{
"user_id": "cmgoyz7mb00002f6obth9ojea",
"display_name": "Alex",
"email": "alex@aol.com",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
]
}