华为云用户手册
-
响应示例 状态码:200 ok { "kind" : "job", "metadata" : { "id" : "3faf5c03-aaa1-4cbe-879d-24b05d997347", "name" : "trainjob--py14_mem06-108", "description" : "", "create_time" : 1636447346315, "workspace_id" : "0", "user_name" : "" }, "status" : { "phase" : "Abnormal", "secondary_phase" : "CreateFailed", "duration" : 0, "start_time" : 0, "node_count_metrics" : [ [ 1636447746000, 0 ], [ 1636447755000, 0 ], [ 1636447756000, 0 ] ], "tasks" : [ "worker-0" ], "running_records" : [ { "start_at" : 1701327093, "end_at" : 1701322341, "start_type" : "init_or_rescheduled", "end_recover" : "job_reschedule", "end_reason" : "exit with 127", "end_related_task" : "worker-2", "end_recover_before_downgrade" : "npu_proc_restart" }, { "start_at" : 1701323345, "end_at" : 1701325432, "start_type" : "init_or_rescheduled", "end_reason" : "job completed" } ] }, "algorithm" : { "code_dir" : "obs://test/economic_test/py_minist/", "boot_file" : "obs://test/economic_test/py_minist/minist_common.py", "inputs" : [ { "name" : "data_url", "local_dir" : "/home/ma-user/modelarts/inputs/data_url_0", "remote" : { "obs" : { "obs_url" : "/test/data/py_minist/" } } } ], "outputs" : [ { "name" : "train_url", "local_dir" : "/home/ma-user/modelarts/outputs/train_url_0", "remote" : { "obs" : { "obs_url" : "/test/train_output/" } } } ], "engine" : { "engine_id" : "pytorch-cp36-1.4.0-v2", "engine_name" : "PyTorch", "engine_version" : "PyTorch-1.4.0-python3.6-v2" } }, "spec" : { "resource" : { "flavor_id" : "modelarts.vm.pnt1.large.eco", "node_count" : 1, "flavor_detail" : { "flavor_type" : "GPU", "billing" : { "code" : "modelarts.vm.gpu.pnt1.eco", "unit_num" : 1 }, "flavor_info" : { "cpu" : { "arch" : "x86", "core_num" : 8 }, "gpu" : { "unit_num" : 1, "memory" : "8GB" }, "memory" : { "size" : 64, "unit" : "GB" } } } } } }
-
请求示例 DELETE https://endpoint/v2/{project_id }/modelarts-trainJob/{training_job_id}/tags/delete { "tags" : [ { "key" : "111", "value" : "v2" }, { "key" : "k3", "value" : "v2" } ] }
-
响应示例 状态码:201 ok { "kind" : "job", "metadata" : { "id" : "425b7087-83de-49ed-9e40-5bb642be956f", "name" : "TestModelArtsJob", "description" : "This is a ModelArts job", "create_time" : 1637045545982, "workspace_id" : "0", "user_name" : "" }, "status" : { "phase" : "Creating", "secondary_phase" : "Creating", "duration" : 0, "start_time" : 0, "node_count_metrics" : null, "tasks" : [ "worker-0", "server-0" ] }, "algorithm" : { "id" : "3f5d6706-7b67-408d-8ba0-ec08048c45ed", "name" : "ttt-obs-gpu", "code_dir" : "/cn-north-4-rse/test/moxingtest-code/", "boot_file" : "/cn-north-4-rse/test/moxingtest-code/test_obs_gpu.py", "parameters" : [ { "name" : "input_dir", "description" : "", "i18n_description" : null, "value" : "s://cn-north-4-rse/test/moxingtest-dir/", "constraint" : { "type" : "String", "editable" : true, "required" : true, "sensitive" : false, "valid_type" : "None", "valid_range" : [ ] } }, { "name" : "input_file", "description" : "", "i18n_description" : null, "value" : "obs://cn-north-4-rse/test/moxingtest/", "constraint" : { "type" : "String", "editable" : true, "required" : true, "sensitive" : false, "valid_type" : "None", "valid_range" : [ ] } }, { "name" : "large_file_method", "description" : "", "i18n_description" : null, "value" : "1", "constraint" : { "type" : "Integer", "editable" : true, "required" : true, "sensitive" : false, "valid_type" : "None", "valid_range" : [ ] } } ], "engine" : { "engine_id" : "horovod-cp36-tf-1.16.2", "engine_name" : "Horovod", "engine_version" : "0.16.2-TF-1.13.1-python3.6" }, "policies" : { } }, "spec" : { "resource" : { "policy" : "regular", "flavor_id" : "modelarts.p3.large.public.free", "flavor_name" : "Computing GPU(Vnt1) instance", "node_count" : 1, "flavor_detail" : { "flavor_type" : "GPU", "billing" : { "code" : "modelarts.vm.gpu.free", "unit_num" : 1 }, "flavor_info" : { "cpu" : { "arch" : "x86", "core_num" : 8 }, "gpu" : { "unit_num" : 1, "product_name" : "GP-Vnt1", "memory" : "32GB" }, "memory" : { "size" : 64, "unit" : "GB" } } } }, "log_export_path" : { } } } 状态码:400 通用的错误应答消息体格式;如下为id是3f5d6706-7b67-408d-8ba0-ec08048c45ee的算法未找到时的返回信息。 { "error_msg" : "algorithm not found.", "error_code" : "ModelArts.2755", "error_solution" : "Check whether the training project information in the request is valid." }
-
请求示例 创建免费规格的训练作业。设置作业名称为“TestModelArtsJob”,描述为“This is a ModelArts job”。算法依赖的是id为3f5d6706-7b67-408d-8ba0-ec08048c45ed的算法,该算法未定义inputs与outputs,规格选用的是gpu免费规格。 POST https://endpoint/v2/{project_id}/training-jobs { "kind" : "job", "metadata" : { "name" : "TestModelArtsJob", "description" : "This is a ModelArts job" }, "algorithm" : { "id" : "3f5d6706-7b67-408d-8ba0-ec08048c45ed", "parameters" : [ { "name" : "input_dir", "value" : "obs://cn-north-4-rse/test/moxingtest-dir/" }, { "name" : "input_file", "value" : "obs://cn-north-4-rse/test/moxingtest/" }, { "name" : "large_file_method", "value" : "1" } ], "policies" : { "auto_search" : null }, "environments" : { } }, "spec" : { "resource" : { "flavor_id" : "modelarts.p3.large.public.free", "node_count" : 1 }, "log_export_path" : { "obs_url" : "" } } } 使用自定义镜像创建训练作业。设置作业名称为“TestModelArtsJob2”,描述为“This is a ModelArts job2”的自定义镜像训练作业。使用专属资源池和nfs挂载。 POST https://endpoint/v2/{project_id}/training-jobs { "kind" : "job", "metadata" : { "name" : "TestModelArtsJob2", "description" : "This is a ModelArts job2" }, "algorithm" : { "engine" : { "image_url" : "xxxxxxxx/fastseq:1.2" }, "command" : "cd /home/ma-user/ddp_demo && sh run_ddp.sh", "parameters" : [ ], "policies" : { "auto_search" : null }, "environments" : { "NCCL_DEBUG" : "INFO", "NCCL_IB_DISABLE" : "0" } }, "spec" : { "resource" : { "flavor_id" : "modelarts.pool.visual.xlarge", "node_count" : 1, "pool_id" : "poolfaf38d76" }, "log_export_path" : { "obs_url" : "/cn-north-4-training-test/limou/ddp-demo-log/" }, "volumes" : [ { "nfs" : { "nfs_server_path" : "192.168.0.82:/", "local_path" : "/home/ma-user/nfs/", "read_only" : false } } ] } }
-
响应示例 状态码:200 OK。 { "kind" : "Pool", "apiVersion" : "v2", "metadata" : { "name" : "auto-pool-os-86c13962597848eeb29c5861153a391f", "creationTimestamp" : "2022-09-16T03:10:40Z", "labels" : { "os.modelarts/name" : "auto-pool-os", "os.modelarts/workspace.id" : "0", "os.modelarts/resource.id" : "maos-auto-pool-os-72w8d" }, "annotations" : { "os.modelarts/description" : "", "os.modelarts/billing.mode" : "0" } }, "spec" : { "type" : "Dedicate", "scope" : [ "Train", "Infer" ], "resources" : [ { "flavor" : "modelarts.vm.cpu.4ud", "count" : 3 } ], "network" : { "name" : "network-maos-86c13962597848eeb29c5861153a391f" } }, "status" : { "phase" : "Running", "root" : "auto-pool-os-86c13962597848eeb29c5861153a391f", "scope" : [ { "scopeType" : "Train", "state" : "Enabled" }, { "scopeType" : "Infer", "state" : "Enabled" } ], "resources" : { "creating" : [ { "flavor" : "modelarts.vm.cpu.4ud", "count" : 1, "azs" : [ { "az" : "cn-north-7c", "count" : 1 } ] } ], "available" : [ { "flavor" : "modelarts.vm.cpu.4ud", "count" : 2, "azs" : [ { "az" : "cn-north-7c", "count" : 2 } ] } ] } } } 状态码:400 Bad request { "error_code" : "ModelArts.50004000", "error_msg" : "Bad request" } 状态码:404 Not Found。 { "error_code" : "ModelArts.50015001", "error_msg" : "pool not found" }
-
响应参数 状态码:200 表10 响应Body参数 参数 参数类型 描述 apiVersion String API版本。可选值如下: v2 kind String 资源类型。可选值如下: Pool:资源池 metadata PoolMetadata object 资源池的metadata信息。 spec PoolSpecModel object 资源池的期望信息。 status PoolStatus object 资源池的状态信息。 表11 PoolMetadata 参数 参数类型 描述 name String 系统自动生成的pool名称,相当于pool ID。 creationTimestamp String 时间戳,例如"2021-11-01T03:49:41Z"。 labels PoolMetaLabels object 资源池的标签信息。 annotations PoolMetaAnnotations object 资源池的注释信息。 表12 PoolMetaLabels 参数 参数类型 描述 os.modelarts/workspace.id String 工作空间ID。获取方法请参见查询工作空间列表。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。 os.modelarts/name String 用户指定的pool名称。 os.modelarts/resource.id String 资源池的主资源id,通常提供给cbc使用。 os.modelarts/tenant.domain.id String 资源池的租户id,记录资源池创建在哪个租户账号下。 表13 PoolMetaAnnotations 参数 参数类型 描述 os.modelarts/description String 资源池的描述信息。 os.modelarts/billing.mode String 计费模式。可选值如下: 0:按需计费 1:包周期计费 os.modelarts/period.num String 包周期订购周期,比如2。 os.modelarts/period.type String 包周期订购类型。可选值如下: 2:月 3:年 4:小时 os.modelarts/auto.renew String 是否自动续费.可选值如下: 0:不自动续费,默认值 1:自动续费 os.modelarts/promotion.info String 用户在cbc选择的折扣信息。 os.modelarts/service.console.url String 订购订单支付完成后跳转的url地址。 os.modelarts/order.id String 订单id,包周期资源池创建或者计费模式变更的时候该参数必需。 os.modelarts/flavor.resource.ids String 每种规格对应的resourceId,主要和cbc交互使用。 os.modelarts/tms.tags String 创建的时候由用户指定的TMS标签。 表14 PoolSpecModel 参数 参数类型 描述 type String 资源池类型。可选值如下: Dedicate:物理资源池,独立的网络,支持网络打通,定制驱动,定制作业类型。 scope Array of strings 资源池支持的作业类型。至少选择一种,物理资源池支持全部选择。可选值如下: Train:训练作业 Infer:推理作业 Notebook:Notebook作业 resources Array of resources objects 资源池中的资源规格信列表,包括资源规格和相应规格的资源数量。 network network object 资源池网络参数。物理资源池时必选。 jobFlavors Array of strings 资源池支持的作业规格信息列表,内容为作业规格名称。 driver PoolDriver object 资源池的驱动信息。 controlMode Integer 资源池的受限状态。可选值如下: 0:代表不受限 1:转包周期受限 2:规格变更受限 4:服务受限 8:冻结 16:公安冻结(不可退订) 另外状态是可以叠加的,比如9代表转包周期受限+冻结状态。 表15 resources 参数 参数类型 描述 flavor String 资源规格,比如:modelarts.vm.gpu.tnt004。 count Integer 相应规格资源数量。 azs Array of PoolNodeAz objects az列表信息。 extendParams extendParams object 自定义配置参数。 os Os object 操作系统镜像信息。 表16 PoolNodeAz 参数 参数类型 描述 az String 可用区名称。 count Integer 指定可用区扩容时,指定可用区的节点数。 表17 extendParams 参数 参数类型 描述 dockerBaseSize String 指定资源池节点的容器引擎空间大小。值为0时表示不限制大小。 表18 Os 参数 参数类型 描述 name String 操作系统名称。 imageId String 操作系统镜像id。 imageType String 操作系统镜像类型。 private:私有镜像。 表19 network 参数 参数类型 描述 name String 网络名称;用户接口通过指定网络名称创建网络,系统会自动创建子网,用户无法创建子网。默认将创建在第一个子网下。 表20 PoolDriver 参数 参数类型 描述 gpuVersion String GPU驱动版本,物理资源池中含有GPU规格时可填,例如:"440.33"。 npuVersion String NPU驱动版本,物理资源池中含有ascend规格时可填,例如:"C78"。 updateStrategy String 驱动升级策略。可选值如下: force:强制升级,立即升级节点驱动,可能影响节点上正在运行的作业 idle:安全升级,待节点上没有作业运行时进行驱动升级 表21 PoolStatus 参数 参数类型 描述 phase String 资源池集群状态。可选值如下: Creating:创建中 Running:运行中 Abnormal:资源池不正常 Deleting:删除中 Error:资源池错误 message String 资源池处于当前状态的提示信息。 resources resources object 资源池中不同状态的资源量。 scope Array of scope objects 资源池业务状态信息。 driver driver object 资源池驱动信息。 parent String 资源池父节点名称,物理池为空。 root String 资源池根节点名称,物理池为自己的名称。 表22 resources 参数 参数类型 描述 creating PoolResourceFlavorCount object 状态为创建中状态的资源量。 available PoolResourceFlavorCount object 状态为可用状态的资源量。 abnormal PoolResourceFlavorCount object 状态为非正常状态的资源量。 deleting PoolResourceFlavorCount object 状态为删除中状态的资源量。 表23 PoolResourceFlavorCount 参数 参数类型 描述 flavor String 资源规格名称,比如:modelarts.vm.gpu.tnt004。 count Integer 规格保障使用量。 maxCount Integer 资源规格的弹性使用量,物理池该值和count相同。 azs Array of azs objects 资源所在的AZ的数量。 nodePool String 节点池名称。比如:nodePool-1。 表24 azs 参数 参数类型 描述 az String AZ的名称。 count Integer AZ的资源数量。 表25 scope 参数 参数类型 描述 scopeType String 业务类型。可选值如下: Train:训练任务 Infer:推理任务 Notebook:Notebook作业 state String 业务状态。可选值如下: Enabling:启动中 Enabled:已启动 Disabling:关闭中 Disabled:已关闭 表26 driver 参数 参数类型 描述 gpu PoolDriverStatus object GPU驱动信息。 npu PoolDriverStatus object NPU驱动信息。 表27 PoolDriverStatus 参数 参数类型 描述 version String 当前驱动版本。 state String 当前驱动状态。可选值如下: Creating:创建中 Upgrading:升级中 Running:运行中 Abnormal:不正常 状态码:400 表28 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:404 表29 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
-
响应示例 状态码:200 OK。 { "metrics" : [ { "metric" : { "dimensions" : [ { "name" : "clusterId", "value" : "83df17f1-d74c-11ec-a070-0255ac1000c3" } ], "metricName" : "cpuUsage", "namespace" : "PAAS.AGGR" }, "dataPoints" : [ { "timestamp" : 1655193600000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : 7.944 } ] }, { "timestamp" : 1655197200000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : 7.88 } ] } ] }, { "metric" : { "dimensions" : [ { "name" : "clusterId", "value" : "83df17f1-d74c-11ec-a070-0255ac1000c3" } ], "metricName" : "memUsedRate", "namespace" : "PAAS.AGGR" }, "dataPoints" : [ { "timestamp" : 1655193600000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : 13.83 } ] }, { "timestamp" : 1655197200000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : 13.836 } ] } ] }, { "metric" : { "dimensions" : [ { "name" : "clusterId", "value" : "83df17f1-d74c-11ec-a070-0255ac1000c3" } ], "metricName" : "gpuUtil", "namespace" : "PAAS.AGGR" }, "dataPoints" : [ { "timestamp" : 1655193600000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : -1 } ] }, { "timestamp" : 1655197200000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : -1 } ] } ] }, { "metric" : { "dimensions" : [ { "name" : "clusterId", "value" : "83df17f1-d74c-11ec-a070-0255ac1000c3" } ], "metricName" : "gpuMemUsage", "namespace" : "PAAS.AGGR" }, "dataPoints" : [ { "timestamp" : 1655193600000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : -1 } ] }, { "timestamp" : 1655197200000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : -1 } ] } ] }, { "metric" : { "dimensions" : [ { "name" : "clusterId", "value" : "83df17f1-d74c-11ec-a070-0255ac1000c3" } ], "metricName" : "npuUtil", "namespace" : "PAAS.AGGR" }, "dataPoints" : [ { "timestamp" : 1655193600000, "unit" : "", "statistics" : [ { "statistic" : "average", "value" : -1 } ] }, { "timestamp" : 1655197200000, "unit" : "", "statistics" : [ { "statistic" : "average", "value" : -1 } ] } ] }, { "metric" : { "dimensions" : [ { "name" : "clusterId", "value" : "83df17f1-d74c-11ec-a070-0255ac1000c3" } ], "metricName" : "npuMemUsage", "namespace" : "PAAS.AGGR" }, "dataPoints" : [ { "timestamp" : 1655193600000, "unit" : "", "statistics" : [ { "statistic" : "average", "value" : -1 } ] }, { "timestamp" : 1655197200000, "unit" : "", "statistics" : [ { "statistic" : "average", "value" : -1 } ] } ] }, { "metric" : { "dimensions" : [ { "name" : "clusterId", "value" : "83df17f1-d74c-11ec-a070-0255ac1000c3" } ], "metricName" : "diskAvailableCapacity", "namespace" : "PAAS.AGGR" }, "dataPoints" : [ { "timestamp" : 1655193600000, "unit" : "Megabytes", "statistics" : [ { "statistic" : "average", "value" : 834383.4 } ] }, { "timestamp" : 1655197200000, "unit" : "Megabytes", "statistics" : [ { "statistic" : "average", "value" : 834379.2 } ] } ] }, { "metric" : { "dimensions" : [ { "name" : "clusterId", "value" : "83df17f1-d74c-11ec-a070-0255ac1000c3" } ], "metricName" : "diskCapacity", "namespace" : "PAAS.AGGR" }, "dataPoints" : [ { "timestamp" : 1655193600000, "unit" : "Megabytes", "statistics" : [ { "statistic" : "average", "value" : 1105920 } ] }, { "timestamp" : 1655197200000, "unit" : "Megabytes", "statistics" : [ { "statistic" : "average", "value" : 1105920 } ] } ] }, { "metric" : { "dimensions" : [ { "name" : "clusterId", "value" : "83df17f1-d74c-11ec-a070-0255ac1000c3" } ], "metricName" : "diskUsedRate", "namespace" : "PAAS.AGGR" }, "dataPoints" : [ { "timestamp" : 1655193600000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : 24.553 } ] }, { "timestamp" : 1655197200000, "unit" : "Percent", "statistics" : [ { "statistic" : "average", "value" : 24.553 } ] } ] } ] } 状态码:404 Not Found。 { "error_code" : "ModelArts.50015001", "error_msg" : "pool not found" }
-
响应参数 状态码:200 表3 响应Body参数 参数 参数类型 描述 metrics Array of metrics objects 指标对象列表。 取值范围 JSON数组大小不超过20。 表4 metrics 参数 参数类型 描述 metric metric object 指标参数集合。 dataPoints Array of dataPoints objects 重点指标。 表5 metric 参数 参数类型 描述 dimensions Array of dimensions objects 指标维度列表。 metricName String 指标名称。 namespace String 指标命名空间。可选值如下: PAAS.CONTAINER:组件指标、实例指标、进程指标和容器指标的命名空间 PAAS.NODE: 主机指标、网络指标、磁盘指标和文件系统指标的命名空间 PAAS.SLA:SLA指标的命名空间 PAAS.AGGR:集群指标的命名空间 CUSTOMMETRI CS :默认的自定义指标的命名空间 表6 dimensions 参数 参数类型 描述 name String 指标维度名称。 value String 指标维度取值。 表7 dataPoints 参数 参数类型 描述 timestamp Integer 时间戳。 unit String 时间序列单位。 statistics Array of statistics objects 统计值列表。 表8 statistics 参数 参数类型 描述 statistic String 统计方式。 value Float 统计结果。 状态码:404 表9 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
-
请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 offset 否 Integer 查询作业的页数,最小为0。例如设置为0,则表示从第一页开始查询。 limit 否 Integer 查询作业的每页条目数。最小为1,最大为50。 sort_by 否 String 查询作业排列顺序的指标。默认使用create_time排序。 order 否 String 查询作业排列顺序,默认为“desc”,降序排序。也可以选择对应的“asc”,升序排序。 group_by 否 String 查询作业要搜索的分组条件。 filters 否 Array of Filter objects 查询作业要过滤的一系列条件。 表3 Filter 参数 是否必选 参数类型 描述 key 否 String 分组条件键值。 operator 否 String 分组条件键值键关系,支持between(范围)、like(类似)、in(包含)、not(非)。 value 否 Array of strings 分组条件键对应值。
-
请求示例 查询训练作业。设置查询训练作业限制个数为1,查询作业名称中包含trainjob的所有训练作业数据。 POST https://endpoint/v2/{project_id}/training-job-searches?limit=1 { "offset" : 0, "limit" : 1, "filters" : [ { "key" : "name", "operator" : "like", "value" : [ "trainjob" ] }, { "key" : "create_time", "operator" : "between", "value" : [ "", "" ] }, { "key" : "phase", "operator" : "in", "value" : [ "" ] }, { "key" : "algorithm_name", "operator" : "like", "value" : [ "" ] }, { "key" : "kind", "operator" : "in", "value" : [ ] }, { "key" : "user_id", "operator" : "in", "value" : [ "" ] }, { "key" : "runtime_type", "operator" : "in", "value" : [ "debug" ] } ] }
-
响应示例 状态码:200 ok { "total" : 5059, "count" : 1, "limit" : 1, "offset" : 0, "sort_by" : "create_time", "order" : "desc", "group_by" : "", "workspace_id" : "0", "ai_project" : "default-ai-project", "items" : [ { "kind" : "job", "metadata" : { "id" : "3faf5c03-aaa1-4cbe-879d-24b05d997347", "name" : "trainjob--py14_mem06-byd-108", "description" : "", "create_time" : 1636447346315, "workspace_id" : "0", "user_name" : "ei_modelarts_q00357245_01" }, "status" : { "phase" : "Abnormal", "secondary_phase" : "CreateFailed", "duration" : 0, "start_time" : 0, "node_count_metrics" : [ [ 1636447746000, 0 ], [ 1636447755000, 0 ], [ 1636447756000, 0 ] ], "tasks" : [ "worker-0" ] }, "algorithm" : { "code_dir" : "obs://test-crq/economic_test/py_minist/", "boot_file" : "obs://test-crq/economic_test/py_minist/minist_common.py", "inputs" : [ { "name" : "data_url", "local_dir" : "/home/ma-user/modelarts/inputs/data_url_0", "remote" : { "obs" : { "obs_url" : "/test-crq/data/py_minist/" } } } ], "outputs" : [ { "name" : "train_url", "local_dir" : "/home/ma-user/modelarts/outputs/train_url_0", "remote" : { "obs" : { "obs_url" : "/test-crq/train_output/" } } } ], "engine" : { "engine_id" : "pytorch-cp36-1.4.0-v2", "engine_name" : "PyTorch", "engine_version" : "PyTorch-1.4.0-python3.6-v2" } }, "spec" : { "resource" : { "policy" : "economic", "flavor_id" : "modelarts.vm.pnt1.large.eco", "flavor_name" : "Computing GPU(Pnt1) instance", "node_count" : 1, "flavor_detail" : { "flavor_type" : "GPU", "billing" : { "code" : "modelarts.vm.gpu.pnt1.eco", "unit_num" : 1 }, "flavor_info" : { "cpu" : { "arch" : "x86", "core_num" : 8 }, "gpu" : { "unit_num" : 1, "product_name" : "GP-Pnt1", "memory" : "8GB" }, "memory" : { "size" : 64, "unit" : "GB" } } } } } } ] }
-
响应参数 状态码:204 删除成功。 状态码:400 表4 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:401 表5 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:403 表6 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:404 表7 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
-
响应参数 状态码:200 表4 响应Body参数 参数 参数类型 描述 models Array of ModelListItem objects 模型元数据信息。 total_count Integer 不分页的情况下符合查询条件的总模型数量。 count Integer 符合查询条件的模型数量。 表5 ModelListItem 参数 参数类型 描述 owner String 模型所属租户的用户id。 model_version String 模型版本。 model_type String 模型类型。 description String 模型描述信息。 project String 模型所属租户的项目id。 source_type String 模型来源的类型,仅当模型为自动学习部署过来时有值,取值为auto。 model_id String 模型id。 model_source String 模型来源。auto:自动学习;algos:预置算法;custom:自定义。 install_type Array of strings 模型支持的部署类型列表。 model_size Integer 模型大小,单位为字节数。 workspace_id String 工作空间ID。获取方法请参见查询工作空间列表。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。 model_status String 模型状态。 market_flag Boolean 标识模型是否来自市场。 tunable Boolean 标识模型是否支持二次调优。true表示支持,false表示不支持。 model_name String 模型名称。 create_at Long 模型创建时间,距“1970.1.1 0:0:0 UTC”毫秒数。 publishable_flag Boolean 标识模型是否可发布至市场。 source_copy String 镜像复制开关,仅当“model_type”为“Image”时有效。 true:表示复制镜像模式,无法极速创建AI应用,SWR源目录中的镜像更改或删除不影响服务部署。 false:表示不复制镜像模式,可极速创建AI应用,更改或删除SWR源目录中的镜像会影响服务部署。 不设置值时,默认为复制镜像模式。 tenant String 模型所属租户的账号id。 subscription_id String 模型订阅ID。 extra String 扩展字段。 specification ModelSpecification object 模型部署最小部署规格。 表6 ModelSpecification 参数 参数类型 描述 min_cpu String 最小CPU规格。 min_gpu String 最小GPU规格。 min_memory String 最小内存。 min_ascend String 最小Ascend规格。
-
URI GET /v1/{project_id}/models 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 表2 Query参数 参数 是否必选 参数类型 描述 model_name 否 String 模型名称,可支持模糊匹配。当模型名称包含下划线时,由于下划线涉及转义处理,因此需要在请求中增加exact_match参数,且参数值设置为true,确保能够正常执行查询操作。 exact_match 否 Boolean 是否对下划线进行转义处理,当模型名称包含下划线时,需要将该参数值设置为true,确保能够正常执行查询操作。默认不填该值。 model_version 否 String 模型版本。格式需为“数值:数值:数值”,其中数值为1-2位正整数,注意:版本不可以出现例如01.01.01等以0开头的版本号形式。 model_status 否 String 模型状态,可根据模型状态执行查询。模型状态: publishing:发布中 published:已发布 failed:发布失败 building: 构建镜像中 building_failed: 构建失败 description 否 String 描述信息,可支持模糊匹配。 offset 否 Integer 指定要查询页的索引,默认为“0”。 limit 否 Integer 指定每一页返回的最大条目数,默认为“1000”。 sort_by 否 String 指定排序字段,枚举值如下: create_at:默认值,AI应用创建时间 model_version:AI应用版本 model_size:AI应用大小 order 否 String 排序方式,枚举值如下: asc: 递增排序 desc: 递减排序,默认值 workspace_id 否 String 工作空间ID。获取方法请参见查询工作空间列表。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。 model_type 否 String 模型类型,查询属于该类型的模型列表。model_type与not_model_type为互斥关系,不能同时存在。可选值为TensorFlow、PyTorch、MindSpore、Image、Custom、Template。 not_model_type 否 String 模型类型,查询不属于该类型的模型列表。可选值为TensorFlow、PyTorch、MindSpore、Image、Custom、Template。
-
响应示例 状态码:200 模型列表 { "total_count" : 1, "count" : 1, "models" : [ { "model_name" : "mnist", "model_version" : "1.0.0", "model_id" : "10eb0091-887f-4839-9929-cbc884f1e20e", "model_type" : "tensorflow", "model_size" : 5012312, "tenant" : "6d28e85aa78b4e1a9b4bd83501bcd4a1", "project" : "d04c10db1f264cfeb1966deff1a3527c", "owner" : "6d28e85aa78b4e1a9b4bd83501bcd4a1", "create_at" : 1533041553000, "description" : "mnist model", "workspace_id" : "0", "specification" : { } } ] }
-
响应示例 状态码:202 ok { "kind" : "job", "metadata" : { "id" : "cf63aba9-63b1-4219-b717-708a2665100b", "name" : "trainjob--py14_mem06-110", "description" : "", "create_time" : 1636515222282, "workspace_id" : "0", "user_name" : "ei_modelarts_z00424192_01" }, "status" : { "phase" : "Terminating", "secondary_phase" : "Terminating", "duration" : 0, "start_time" : 0, "node_count_metrics" : null, "tasks" : [ "worker-0" ] }, "algorithm" : { "code_dir" : "obs://test/economic_test/py_minist/", "boot_file" : "obs://test/economic_test/py_minist/minist_common.py", "inputs" : [ { "name" : "data_url", "local_dir" : "/home/ma-user/modelarts/inputs/data_url_0", "remote" : { "obs" : { "obs_url" : "/test/data/py_minist/" } } } ], "outputs" : [ { "name" : "train_url", "local_dir" : "/home/ma-user/modelarts/outputs/train_url_0", "remote" : { "obs" : { "obs_url" : "/test/train_output/" } } } ], "engine" : { "engine_id" : "pytorch-cp36-1.4.0-v2", "engine_name" : "PyTorch", "engine_version" : "PyTorch-1.4.0-python3.6-v2" } }, "spec" : { "resource" : { "policy" : "economic", "flavor_id" : "modelarts.vm.pnt1.large.eco", "flavor_name" : "Computing GPU(Pnt1) instance", "node_count" : 1, "flavor_detail" : { "flavor_type" : "GPU", "billing" : { "code" : "modelarts.vm.gpu.pnt1.eco", "unit_num" : 1 }, "flavor_info" : { "cpu" : { "arch" : "x86", "core_num" : 8 }, "gpu" : { "unit_num" : 1, "product_name" : "GP-Pnt1", "memory" : "8GB" }, "memory" : { "size" : 64, "unit" : "GB" } } } } } }
-
请求示例 为指定的Notebook添加资源标签。例如设置TMS标签的key为“test”,value为“service-gpu”。 https://{endpoint}/v1/{project_id}/notebooks/a55eba18-1ebf-4e9a-8229-d2d3b593a3dc/tags/create { "tags" : [ { "key" : "test", "value" : "service-gpu" }, { "key" : "model_version", "value" : "0.1" } ] }
-
响应参数 状态码:204 正常添加成功。 状态码:400 表4 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:401 表5 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:403 表6 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:404 表7 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
-
响应参数 状态码:204 删除标签成功。 状态码:400 表5 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:401 表6 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:403 表7 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:404 表8 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
-
请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8。 X-Auth-Token 是 String 用户Token。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 tags 是 Array of TmsTagForDelete objects 要删除的标签列表。 表4 TmsTagForDelete 参数 是否必选 参数类型 描述 key 是 String TMS标签的key。 value 否 String TMS标签的value,非必填。
-
响应参数 状态码:200 表3 响应Body参数 参数 参数类型 描述 auths Array of ApiAuthInfo objects 授权信息数组。 count Integer 查询到的授权信息数量。 total_count Integer 授权信息总数量。 表4 ApiAuthInfo 参数 参数类型 描述 app ApigAppDetailInfo object APP信息。 authed Boolean API是否已授权给APP。 表5 ApigAppDetailInfo 参数 参数类型 描述 app_codes Array of strings APP Code列表,当APP类型为APIC时,此参数为空。 app_id String APP编号。 app_key String APP的key。 app_name String APP名称。 app_remark String APP描述,默认为空。不超过200个字符。 app_secret String APP密钥。 app_type String APP类型。枚举值如下: APIC:该APP注册在roma connect网关上 APIG:该APP注册在共享API网关上 DEDICATE_APIG:该APP注册在专享API网关上 bounded_api_count Integer APP绑定API数量。 created_at Long APP创建时间。 project_id String 项目ID。 updated_at Long APP更新时间。 user_id String APP创建用户ID。 状态码:400 表6 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
-
响应示例 状态码:200 OK { "auths" : [ { "app" : { "app_id" : "fb1a9eadd87b48abbd74b8ba1755dffd", "app_name" : "app_13e0", "app_remark" : "ds", "app_key" : "b11ae87581b04b5284aa92b0d4ae332c", "app_secret" : "cb5d1b57368b4f129b635332a03bf0e3", "user_id" : "04f258c8fb00d42a1f65c00df88cc4dc", "project_id" : "04f258c84780d5a52f3bc00dc15aa5e7", "app_type" : "APIG", "app_codes" : [ "53a7c6de82be4671b93414adf98c1c507d5cef29fbdd48d88a4dddb668b0f0ad" ], "created_at" : 1683173880900, "updated_at" : 1700531228874, "bounded_api_count" : 28 }, "authed" : true } ], "count" : 1, "total_count" : 1 }
-
URI GET /v1/{project_id}/services/{service_id}/app-auth-apis/{api_id}/api-auths 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 用户项目ID。获取方法请参见获取项目ID和名称。 service_id 是 String 服务ID。 api_id 是 String API编号。 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 String 分页展示时,一页展示多少项。默认为1000。 offset 否 String 分页展示时,从第几页开始。默认为0。 app_name 否 String APP名称,支持模糊查找。 order 否 String 返回的APP列表排序方式,可选值包括asc、desc。默认为asc。 show_only 否 String APP信息。枚举值如下: AUTH:只显示已授权的APP信息。 UNAUTH:只显示未授权的APP信息。 默认为空,即显示全部可见的APP信息。 sort_by 否 String 返回的APP列表按何属性排序。枚举值如下: app_name:应用名称。 created_at:应用创建时间。 updated_at:应用更新时间。 默认为app_name。 workspace_id 否 String 工作空间ID。获取方法请参见查询工作空间列表。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。 iphertext_enabled 否 Boolean 是否明文展示appsecret。 app_ids 否 Array of strings 明文展示的app_id集合。
-
响应参数 状态码:204 添加标签成功。 状态码:400 表5 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:401 表6 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:403 表7 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。 状态码:404 表8 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
-
请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8。 X-Auth-Token 是 String 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 tags 是 Array of TmsTag objects TMS标签列表。 表4 TmsTag 参数 是否必选 参数类型 描述 key 是 String TMS标签的key。长度不能超过128个字符,首尾不能有空格,不能以_sys_开头。 value 是 String TMS标签的value。长度不能超过255个字符。
-
请求示例 为指定服务添加标签。设置TMS标签的key为“test”和“model_version”,TMS标签的value为“service-gpu”和“0.1”。 https://{endpoint}/v1/{project_id}/services/a55eba18-1ebf-4e9a-8229-d2d3b593a3dc/tags/create { "tags" : [ { "key" : "test", "value" : "service-gpu" }, { "key" : "model_version", "value" : "0.1" } ] }
-
响应示例 状态码:200 OK。 { "kind" : "Pool", "apiVersion" : "v2", "metadata" : { "name" : "auto-pool-os-86c13962597848eeb29c5861153a391f", "creationTimestamp" : "2022-09-16T03:10:40Z", "labels" : { "os.modelarts/name" : "auto-pool-os", "os.modelarts/workspace.id" : "0", "os.modelarts/resource.id" : "maos-auto-pool-os-72w8d" }, "annotations" : { "os.modelarts/description" : "", "os.modelarts/billing.mode" : "0" } }, "spec" : { "type" : "Dedicate", "scope" : [ "Train", "Infer" ], "resources" : [ { "flavor" : "modelarts.vm.cpu.4ud", "count" : 2 } ], "network" : { "name" : "network-maos-86c13962597848eeb29c5861153a391f" } }, "status" : { "phase" : "Running", "root" : "auto-pool-os-86c13962597848eeb29c5861153a391f", "scope" : [ { "scopeType" : "Train", "state" : "Enabled" }, { "scopeType" : "Infer", "state" : "Enabled" } ], "resources" : { "available" : [ { "flavor" : "modelarts.vm.cpu.4ud", "count" : 2, "azs" : [ { "az" : "cn-north-7c", "count" : 2 } ] } ] } } } 状态码:404 Not Found。 { "error_code" : "ModelArts.50015001", "error_msg" : "pool not found" }
-
响应参数 状态码:200 表3 响应Body参数 参数 参数类型 描述 apiVersion String API版本。可选值如下: v2 kind String 资源类型。可选值如下: Pool:资源池 metadata PoolMetadataDeletion object 资源池的metadata信息。 spec PoolSpecModel object 资源池的描述信息。 status PoolStatus object 资源池的状态信息。 表4 PoolMetadataDeletion 参数 参数类型 描述 name String 系统自动生成的pool名称,相当于poolId。 creationTimestamp String 时间戳,例如"2021-11-01T03:49:41Z"。 deletionTimestamp String 时间戳,例如"2021-11-01T03:49:41Z"。 labels PoolMetaLabels object 资源池的标签信息。 annotations PoolMetaAnnotations object 资源池的注释信息。 表5 PoolMetaLabels 参数 参数类型 描述 os.modelarts/workspace.id String 工作空间ID。获取方法请参见查询工作空间列表。未创建工作空间时默认值为“0”,存在创建并使用的工作空间,以实际取值为准。 os.modelarts/name String 用户指定的pool名称。 os.modelarts/resource.id String 资源池的主资源id,通常提供给cbc使用。 os.modelarts/tenant.domain.id String 资源池的租户id,记录资源池创建在哪个租户账号下。 表6 PoolMetaAnnotations 参数 参数类型 描述 os.modelarts/description String 资源池的描述信息。 os.modelarts/billing.mode String 计费模式。可选值如下: 0:按需计费 1:包周期计费 os.modelarts/period.num String 包周期订购周期,比如2。 os.modelarts/period.type String 包周期订购类型。可选值如下: 2:月 3:年 4:小时 os.modelarts/auto.renew String 是否自动续费.可选值如下: 0:不自动续费,默认值 1:自动续费 os.modelarts/promotion.info String 用户在cbc选择的折扣信息。 os.modelarts/service.console.url String 订购订单支付完成后跳转的url地址。 os.modelarts/order.id String 订单id,包周期资源池创建或者计费模式变更的时候该参数必需。 os.modelarts/flavor.resource.ids String 每种规格对应的resourceId,主要和cbc交互使用。 os.modelarts/tms.tags String 创建的时候由用户指定的TMS标签。 表7 PoolSpecModel 参数 参数类型 描述 type String 资源池类型。可选值如下: Dedicate:物理资源池,独立的网络,支持网络打通,定制驱动,定制作业类型。 scope Array of strings 资源池支持的作业类型。至少选择一种,物理资源池支持全部选择。可选值如下: Train:训练作业 Infer:推理作业 Notebook:Notebook作业 resources Array of resources objects 资源池中的资源规格信列表,包括资源规格和相应规格的资源数量。 network network object 资源池网络参数。物理资源池时必选。 jobFlavors Array of strings 资源池支持的作业规格信息列表,内容为作业规格名称。 driver PoolDriver object 资源池的驱动信息。 controlMode Integer 资源池的受限状态。可选值如下: 0:代表不受限 1:转包周期受限 2:规格变更受限 4:服务受限 8:冻结 16:公安冻结(不可退订) 另外状态是可以叠加的,比如9代表转包周期受限+冻结状态。 表8 resources 参数 参数类型 描述 flavor String 资源规格,比如:modelarts.vm.gpu.tnt004。 count Integer 相应规格资源数量。 azs Array of PoolNodeAz objects az列表信息。 extendParams extendParams object 自定义配置参数。 os Os object 操作系统镜像信息。 表9 PoolNodeAz 参数 参数类型 描述 az String 可用区名称。 count Integer 指定可用区扩容时,指定可用区的节点数。 表10 extendParams 参数 参数类型 描述 dockerBaseSize String 指定资源池节点的容器引擎空间大小。值为0时表示不限制大小。 表11 Os 参数 参数类型 描述 name String 操作系统名称。 imageId String 操作系统镜像id。 imageType String 操作系统镜像类型。 private:私有镜像。 表12 network 参数 参数类型 描述 name String 网络名称;用户接口通过指定网络名称创建网络,系统会自动创建子网,用户无法创建子网。默认将创建在第一个子网下。 表13 PoolDriver 参数 参数类型 描述 gpuVersion String GPU驱动版本,物理资源池中含有GPU规格时可填,例如:"440.33"。 npuVersion String NPU驱动版本,物理资源池中含有ascend规格时可填,例如:"C78"。 updateStrategy String 驱动升级策略。可选值如下: force:强制升级,立即升级节点驱动,可能影响节点上正在运行的作业 idle:安全升级,待节点上没有作业运行时进行驱动升级 表14 PoolStatus 参数 参数类型 描述 phase String 资源池集群状态。可选值如下: Creating:创建中 Running:运行中 Abnormal:资源池不正常 Deleting:删除中 Error:资源池错误 message String 资源池处于当前状态的提示信息。 resources resources object 资源池中不同状态的资源量。 scope Array of scope objects 资源池业务状态信息。 driver driver object 资源池驱动信息。 parent String 资源池父节点名称,物理池为空。 root String 资源池根节点名称,物理池为自己的名称。 表15 resources 参数 参数类型 描述 creating PoolResourceFlavorCount object 状态为创建中状态的资源量。 available PoolResourceFlavorCount object 状态为可用状态的资源量。 abnormal PoolResourceFlavorCount object 状态为非正常状态的资源量。 deleting PoolResourceFlavorCount object 状态为删除中状态的资源量。 表16 PoolResourceFlavorCount 参数 参数类型 描述 flavor String 资源规格名称,比如:modelarts.vm.gpu.tnt004。 count Integer 规格保障使用量。 maxCount Integer 资源规格的弹性使用量,物理池该值和count相同。 azs Array of azs objects 资源所在的AZ的数量。 nodePool String 节点池名称。比如:nodePool-1。 表17 azs 参数 参数类型 描述 az String AZ的名称。 count Integer AZ的资源数量。 表18 scope 参数 参数类型 描述 scopeType String 业务类型。可选值如下: Train:训练任务 Infer:推理任务 Notebook:Notebook作业 state String 业务状态。可选值如下: Enabling:启动中 Enabled:已启动 Disabling:关闭中 Disabled:已关闭 表19 driver 参数 参数类型 描述 gpu PoolDriverStatus object GPU驱动信息。 npu PoolDriverStatus object NPU驱动信息。 表20 PoolDriverStatus 参数 参数类型 描述 version String 当前驱动版本。 state String 当前驱动状态。可选值如下: Creating:创建中 Upgrading:升级中 Running:运行中 Abnormal:不正常 状态码:404 表21 响应Body参数 参数 参数类型 描述 error_code String ModelArts错误码。 error_msg String 具体错误信息。
-
请求示例 创建专属资源池。设置资源类型为“Pool”,资源池名称为“pool-001”,资源池类型为“Dedicate”(物理资源池),资源池支持的作业类型为“训练作业”。 POST https://{endpoint}/v2/{project_id}/pools { "kind" : "Pool", "apiVersion" : "v2", "metadata" : { "labels" : { "os.modelarts/name" : "pool-001", "os.modelarts/workspace.id" : "0" }, "annotations" : { "os.modelarts/description" : "", "os.modelarts/billing.mode" : "0" } }, "spec" : { "type" : "Dedicate", "scope" : [ "Train" ], "network" : { "name" : "net-0123-86c13962597848eeb29c5861153a391f" }, "resources" : [ { "flavor" : "modelarts.vm.gpu.tnt004", "count" : 2 } ], "driver" : { "gpuVersion" : "440.31" } } }
-
响应示例 状态码:400 Bad request { "error_code" : "ModelArts.50004000", "error_msg" : "Bad request" } 状态码:409 Already exists { "error_code" : "ModelArts.50015000", "error_msg" : "Pool already exists." }
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- ...
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333