aws / sagemaker-python-sdk

A library for training and deploying machine learning models on Amazon SageMaker
https://sagemaker.readthedocs.io/
Apache License 2.0
2.1k stars 1.14k forks source link

I keep get request_body as bytearray on sagemaker #3341

Closed LiJell closed 10 months ago

LiJell commented 2 years ago

Describe the bug

HI, I am not sure it is right place to ask, but need a help. I am a beginner of this field and I am struggling with inference.py

I am trying to input image on my model. But, I keep get request_body as bytearray somehow.

I thought this is due to content_type, so I convert image to json which is common content_type of sagemaker. However, I still get byearray.

Need a help.. thank you.

Error logs

timestamp,message,logStreamName 1662017756865,Requirement already satisfied: torch>=1.7.1 in /opt/conda/lib/python3.8/site-packages (from -r /opt/ml/model/code/requirements.txt (line 1)) (1.9.0),AllTraffic/i-0449a88a39a7e898c 1662017756865,Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from -r /opt/ml/model/code/requirements.txt (line 2)) (0.10.0),AllTraffic/i-0449a88a39a7e898c 1662017756865,Requirement already satisfied: typing-extensions in /opt/conda/lib/python3.8/site-packages (from torch>=1.7.1->-r /opt/ml/model/code/requirements.txt (line 1)) (3.10.0.2),AllTraffic/i-0449a88a39a7e898c 1662017756865,Requirement already satisfied: pillow>=5.3.0 in /opt/conda/lib/python3.8/site-packages (from torchvision->-r /opt/ml/model/code/requirements.txt (line 2)) (8.3.2),AllTraffic/i-0449a88a39a7e898c 1662017756865,Requirement already satisfied: numpy in /opt/conda/lib/python3.8/site-packages (from torchvision->-r /opt/ml/model/code/requirements.txt (line 2)) (1.20.3),AllTraffic/i-0449a88a39a7e898c 1662017757607,WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv,AllTraffic/i-0449a88a39a7e898c 1662017757607,"2022-09-01 07:35:57,366 [INFO ] main org.pytorch.serve.servingsdk.impl.PluginsManager - Initializing plugins manager...",AllTraffic/i-0449a88a39a7e898c 1662017757607,"2022-09-01 07:35:57,520 [INFO ] main org.pytorch.serve.ModelServer - ",AllTraffic/i-0449a88a39a7e898c 1662017757607,Torchserve version: 0.4.2,AllTraffic/i-0449a88a39a7e898c 1662017757607,TS Home: /opt/conda/lib/python3.8/site-packages,AllTraffic/i-0449a88a39a7e898c 1662017757607,Current directory: /,AllTraffic/i-0449a88a39a7e898c 1662017757607,Temp directory: /home/model-server/tmp,AllTraffic/i-0449a88a39a7e898c 1662017757607,Number of GPUs: 1,AllTraffic/i-0449a88a39a7e898c 1662017757607,Number of CPUs: 1,AllTraffic/i-0449a88a39a7e898c 1662017757607,Max heap size: 3234 M,AllTraffic/i-0449a88a39a7e898c 1662017757607,Python executable: /opt/conda/bin/python3.8,AllTraffic/i-0449a88a39a7e898c 1662017757607,Config file: /etc/sagemaker-ts.properties,AllTraffic/i-0449a88a39a7e898c 1662017757607,Inference address: http://0.0.0.0:8080,AllTraffic/i-0449a88a39a7e898c 1662017757607,Management address: http://0.0.0.0:8080,AllTraffic/i-0449a88a39a7e898c 1662017757607,Metrics address: http://127.0.0.1:8082,AllTraffic/i-0449a88a39a7e898c 1662017757607,Model Store: /.sagemaker/ts/models,AllTraffic/i-0449a88a39a7e898c 1662017757607,Initial Models: model.mar,AllTraffic/i-0449a88a39a7e898c 1662017757607,Log dir: /logs,AllTraffic/i-0449a88a39a7e898c 1662017757607,Metrics dir: /logs,AllTraffic/i-0449a88a39a7e898c 1662017757607,Netty threads: 0,AllTraffic/i-0449a88a39a7e898c 1662017757607,Netty client threads: 0,AllTraffic/i-0449a88a39a7e898c 1662017757607,Default workers per model: 1,AllTraffic/i-0449a88a39a7e898c 1662017757607,Blacklist Regex: N/A,AllTraffic/i-0449a88a39a7e898c 1662017757607,Maximum Response Size: 6553500,AllTraffic/i-0449a88a39a7e898c 1662017757607,Maximum Request Size: 6553500,AllTraffic/i-0449a88a39a7e898c 1662017757607,Prefer direct buffer: false,AllTraffic/i-0449a88a39a7e898c 1662017757607,Allowed Urls: [file://.|http(s)?://.],AllTraffic/i-0449a88a39a7e898c 1662017757607,Custom python dependency for model allowed: false,AllTraffic/i-0449a88a39a7e898c 1662017757607,Metrics report format: prometheus,AllTraffic/i-0449a88a39a7e898c 1662017757607,Enable metrics API: true,AllTraffic/i-0449a88a39a7e898c 1662017757607,Workflow Store: /.sagemaker/ts/models,AllTraffic/i-0449a88a39a7e898c 1662017757607,Model config: N/A,AllTraffic/i-0449a88a39a7e898c 1662017757607,"2022-09-01 07:35:57,527 [INFO ] main org.pytorch.serve.servingsdk.impl.PluginsManager - Loading snapshot serializer plugin...",AllTraffic/i-0449a88a39a7e898c 1662017757858,"2022-09-01 07:35:57,558 [INFO ] main org.pytorch.serve.ModelServer - Loading initial models: model.mar",AllTraffic/i-0449a88a39a7e898c 1662017757858,"2022-09-01 07:35:57,767 [INFO ] main org.pytorch.serve.wlm.ModelManager - Model model loaded.",AllTraffic/i-0449a88a39a7e898c 1662017758109,"2022-09-01 07:35:57,779 [INFO ] main org.pytorch.serve.ModelServer - Initialize Inference server with: EpollServerSocketChannel.",AllTraffic/i-0449a88a39a7e898c 1662017758109,"2022-09-01 07:35:57,878 [INFO ] main org.pytorch.serve.ModelServer - Inference API bind to: http://0.0.0.0:8080",AllTraffic/i-0449a88a39a7e898c 1662017758109,"2022-09-01 07:35:57,879 [INFO ] main org.pytorch.serve.ModelServer - Initialize Metrics server with: EpollServerSocketChannel.",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:57,886 [INFO ] main org.pytorch.serve.ModelServer - Metrics API bind to: http://127.0.0.1:8082",AllTraffic/i-0449a88a39a7e898c 1662017758360,Model server started.,AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,124 [WARN ] pool-2-thread-1 org.pytorch.serve.metrics.MetricCollector - worker pid is not available yet.",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,180 [INFO ] pool-2-thread-1 TS_METRICS - CPUUtilization.Percent:0.0|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,180 [INFO ] pool-2-thread-1 TS_METRICS - DiskAvailable.Gigabytes:24.4129638671875|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,181 [INFO ] pool-2-thread-1 TS_METRICS - DiskUsage.Gigabytes:27.575298309326172|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,181 [INFO ] pool-2-thread-1 TS_METRICS - DiskUtilization.Percent:53.0|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,181 [INFO ] pool-2-thread-1 TS_METRICS - MemoryAvailable.Megabytes:14138.97265625|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,182 [INFO ] pool-2-thread-1 TS_METRICS - MemoryUsed.Megabytes:1275.46875|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,182 [INFO ] pool-2-thread-1 TS_METRICS - MemoryUtilization.Percent:10.2|#Level:Host|#hostname:container-0.local,timestamp:1662017758",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,354 [INFO ] W-9000-model_1-stdout MODEL_LOG - Listening on port: /home/model-server/tmp/.ts.sock.9000",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,355 [INFO ] W-9000-model_1-stdout MODEL_LOG - [PID]37",AllTraffic/i-0449a88a39a7e898c 1662017758360,"2022-09-01 07:35:58,355 [INFO ] W-9000-model_1-stdout MODEL_LOG - Torch worker started.",AllTraffic/i-0449a88a39a7e898c 1662017758610,"2022-09-01 07:35:58,355 [INFO ] W-9000-model_1-stdout MODEL_LOG - Python runtime: 3.8.10",AllTraffic/i-0449a88a39a7e898c 1662017758610,"2022-09-01 07:35:58,360 [INFO ] W-9000-model_1 org.pytorch.serve.wlm.WorkerThread - Connecting to: /home/model-server/tmp/.ts.sock.9000",AllTraffic/i-0449a88a39a7e898c 1662017758610,"2022-09-01 07:35:58,370 [INFO ] W-9000-model_1-stdout MODEL_LOG - Connection accepted: /home/model-server/tmp/.ts.sock.9000.",AllTraffic/i-0449a88a39a7e898c 1662017761368,"2022-09-01 07:35:58,420 [INFO ] W-9000-model_1-stdout MODEL_LOG - model_name: model, batchSize: 1",AllTraffic/i-0449a88a39a7e898c 1662017761368,"2022-09-01 07:36:01,140 [INFO ] W-9000-model_1 org.pytorch.serve.wlm.WorkerThread - Backend response time: 2719",AllTraffic/i-0449a88a39a7e898c 1662017761368,"2022-09-01 07:36:01,140 [INFO ] W-9000-model_1 TS_METRICS - W-9000-model_1.ms:3367|#Level:Host|#hostname:container-0.local,timestamp:1662017761",AllTraffic/i-0449a88a39a7e898c 1662017762222,"2022-09-01 07:36:01,141 [INFO ] W-9000-model_1 TS_METRICS - WorkerThreadTime.ms:49|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017762222,"2022-09-01 07:36:01,694 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 12",AllTraffic/i-0449a88a39a7e898c 1662017766865,"2022-09-01 07:36:01,694 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017766883,"2022-09-01 07:36:06,635 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 1",AllTraffic/i-0449a88a39a7e898c 1662017771647,"2022-09-01 07:36:06,635 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017771647,"2022-09-01 07:36:11,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017775865,"2022-09-01 07:36:11,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017776701,"2022-09-01 07:36:16,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017780865,"2022-09-01 07:36:16,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017781673,"2022-09-01 07:36:21,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017785865,"2022-09-01 07:36:21,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017786687,"2022-09-01 07:36:26,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017790906,"2022-09-01 07:36:26,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017791702,"2022-09-01 07:36:31,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017795865,"2022-09-01 07:36:31,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017796715,"2022-09-01 07:36:36,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017800865,"2022-09-01 07:36:36,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017801741,"2022-09-01 07:36:41,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017805865,"2022-09-01 07:36:41,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017806741,"2022-09-01 07:36:46,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017810865,"2022-09-01 07:36:46,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017811752,"2022-09-01 07:36:51,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017815912,"2022-09-01 07:36:51,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017816764,"2022-09-01 07:36:56,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017818268,"2022-09-01 07:36:56,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - CPUUtilization.Percent:0.0|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c 1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - DiskAvailable.Gigabytes:24.413227081298828|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c 1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - DiskUsage.Gigabytes:27.575035095214844|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c 1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - DiskUtilization.Percent:53.0|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c 1662017818268,"2022-09-01 07:36:58,170 [INFO ] pool-2-thread-1 TS_METRICS - MemoryAvailable.Megabytes:12699.796875|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c 1662017818268,"2022-09-01 07:36:58,171 [INFO ] pool-2-thread-1 TS_METRICS - MemoryUsed.Megabytes:2702.546875|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c 1662017821777,"2022-09-01 07:36:58,171 [INFO ] pool-2-thread-1 TS_METRICS - MemoryUtilization.Percent:19.3|#Level:Host|#hostname:container-0.local,timestamp:1662017818",AllTraffic/i-0449a88a39a7e898c 1662017821777,"2022-09-01 07:37:01,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017825865,"2022-09-01 07:37:01,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017826808,"2022-09-01 07:37:06,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017830866,"2022-09-01 07:37:06,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017831805,"2022-09-01 07:37:11,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017835866,"2022-09-01 07:37:11,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017836817,"2022-09-01 07:37:16,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017840865,"2022-09-01 07:37:16,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017841830,"2022-09-01 07:37:21,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017845865,"2022-09-01 07:37:21,633 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017846855,"2022-09-01 07:37:26,633 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017850865,"2022-09-01 07:37:26,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017851878,"2022-09-01 07:37:31,634 [INFO ] pool-1-thread-2 ACCESS_LOG - /169.254.178.2:51552 ""GET /ping HTTP/1.1"" 200 0",AllTraffic/i-0449a88a39a7e898c 1662017855617,"2022-09-01 07:37:31,634 [INFO ] pool-1-thread-2 TS_METRICS - Requests2XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017855617,"2022-09-01 07:37:35,547 [INFO ] W-9000-model_1 org.pytorch.serve.wlm.WorkerThread - Backend response time: 80",AllTraffic/i-0449a88a39a7e898c 1662017855617,"2022-09-01 07:37:35,547 [INFO ] W-9000-model_1 ACCESS_LOG - /169.254.178.2:51552 ""POST /invocations HTTP/1.1"" 500 88",AllTraffic/i-0449a88a39a7e898c 1662017855617,"2022-09-01 07:37:35,548 [INFO ] W-9000-model_1 TS_METRICS - Requests5XX.Count:1|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017855617,"2022-09-01 07:37:35,548 [INFO ] W-9000-model_1 TS_METRICS - QueueTime.ms:0|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017855617,"2022-09-01 07:37:35,548 [INFO ] W-9000-model_1 TS_METRICS - WorkerThreadTime.ms:2|#Level:Host|#hostname:container-0.local,timestamp:null",AllTraffic/i-0449a88a39a7e898c 1662017855617,"2022-09-01 07:37:35,588 [INFO ] W-9000-model_1-stdout MODEL_LOG - request_body bytearray(b'\x93NUMPY\x01\x00v\x00{\'descr\': \'<U40511\', \'fortran_order\': False, \'shape\': (), }
{\x00\x00\x00""\x00\x00\x00i\x00\x00\x00m\x00\x00\x00g\x00\x00\x00""\x00\x00\x00:\x00\x00\x00 \x00\x00\x00""\x00\x00\x00/\x00\x00\x009\x00\x00\x00j\x00\x00\x00/\x00\x00\x004\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Q\x00\x00\x00S\x00\x00\x00k\x00\x00\x00Z\x00\x00\x00J\x00\x00\x00R\x00\x00\x00g\x00\x00\x00A\x00\x00\x00B\x00\x00\x00A\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00B\x00\x00\x00L\x00\x00\x00A\x00\x00\x00E\x00\x00\x00s\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00/\x00\x00\x004\x00\x00\x00g\x00\x00\x00x\x00\x00\x00Y\x00\x00\x00S\x00\x00\x00U\x00\x00\x00N\x00\x00\x00D\x00\x00\x00X\x00\x00\x001\x00\x00\x00B\x00\x00\x00S\x00\x00\x00T\x00\x00\x000\x00\x00\x00Z\x00\x00\x00J\x00\x00\x00T\x00\x00\x00E\x00\x00\x00U\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Q\x00\x00\x00E\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00x\x00\x00\x00I\x00\x00\x00T\x00\x00\x00G\x00\x00\x00l\x00\x00\x00u\x00\x00\x00b\x00\x00\x00w\x00\x00\x00I\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00t\x00\x00\x00b\x00\x00\x00n\x00\x00\x00R\x00\x00\x00y\x00\x00\x00U\x00\x00\x00k\x00\x00\x00d\x00\x00\x00C\x00\x00\x00I\x00\x00\x00F\x00\x00\x00h\x00\x00\x00Z\x00\x00\x00W\x00\x00\x00i\x00\x00\x00A\x00\x00\x00H\x00\x00\x00z\x00\x00\x00g\x00\x00\x00A\x00\x00\x00C\x00\x00\x00A\x00\x00\x00A\x00\x00\x00k\x00\x00\x00A\x00\x00\x00B\x00\x00\x00g\x00\x00\x00A\x00\x00\x00x\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00h\x00\x00\x00Y\x00\x00\x003\x00\x00\x00N\x00\x00\x00w\x00\x00\x00T\x00\x00\x00V\x00\x00\x00N\x00\x00\x00G\x00\x00\x00V\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00J\x00\x00\x00R\x00\x00\x00U\x00\x00\x00M\x00\x00\x00g\x00\x00\x00c\x00\x00\x001\x00\x00\x00J\x00\x00\x00H\x00\x00\x00Q\x00\x00\x00g\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x009\x00\x00\x00t\x00\x00\x00Y\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00T\x00\x00\x00L\x00\x00\x00U\x00\x00\x00h\x00\x00\x00Q\x00\x00\x00I\x00\x00\x00C\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00F\x00\x00\x00j\x00\x00\x00c\x00\x00\x00H\x00\x00\x00J\x00\x00\x000\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00U\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00N\x00\x00\x00k\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00N\x00\x00\x00j\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00h\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00G\x00\x00\x00x\x00\x00\x003\x00\x00\x00d\x00\x00\x00H\x00\x00\x00B\x00\x00\x000\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x008\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00i\x00\x00\x00a\x00\x00\x003\x00\x00\x00B\x00\x00\x000\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00B\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00y\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00G\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00n\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00L\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00i\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00k\x00\x00\x00b\x00\x00\x00W\x00\x00\x005\x00\x00\x00k\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00V\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00H\x00\x00\x00B\x00\x00\x00k\x00\x00\x00b\x00\x00\x00W\x00\x00\x00R\x00\x00\x00k\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00x\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00I\x00\x00\x00h\x00\x00\x002\x00\x00\x00d\x00\x00\x00W\x00\x00\x00V\x00\x00\x00k\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00T\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00I\x00\x00\x00Z\x00\x00\x002\x00\x00\x00a\x00\x00\x00W\x00\x00\x00V\x00\x00\x003\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x001\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00R\x00\x00\x00s\x00\x00\x00d\x00\x00\x00W\x00\x00\x001\x00\x00\x00p\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00D\x00\x00\x00+\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00R\x00\x00\x00t\x00\x00\x00Z\x00\x00\x00W\x00\x00\x00F\x00\x00\x00z\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00D\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00R\x00\x00\x000\x00\x00\x00Z\x00\x00\x00W\x00\x00\x00N\x00\x00\x00o\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00M\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00x\x00\x00\x00y\x00\x00\x00V\x00\x00\x00F\x00\x00\x00J\x00\x00\x00D\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00P\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00A\x00\x00\x00x\x00\x00\x00n\x00\x00\x00V\x00\x00\x00F\x00\x00\x00J\x00\x00\x00D\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00P\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00A\x00\x00\x00x\x00\x00\x00i\x00\x00\x00V\x00\x00\x00F\x00\x00\x00J\x00\x00\x00D\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00P\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x00A\x00\x00\x00x\x00\x00\x000\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00h\x00\x00\x000\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00N\x00\x00\x00v\x00\x00\x00c\x00\x00\x00H\x00\x00\x00l\x00\x00\x00y\x00\x00\x00a\x00\x00\x00W\x00\x00\x00d\x00\x00\x00o\x00\x00\x00d\x00\x00\x00C\x00\x00\x00A\x00\x00\x00o\x00\x00\x00Y\x00\x00\x00y\x00\x00\x00k\x00\x00\x00g\x00\x00\x00M\x00\x00\x00T\x00\x00\x00k\x00\x00\x005\x00\x00\x00O\x00\x00\x00C\x00\x00\x00B\x00\x00\x00I\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00d\x00\x00\x00s\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00R\x00\x00\x000\x00\x00\x00L\x00\x00\x00V\x00\x00\x00B\x00\x00\x00h\x00\x00\x00Y\x00\x00\x002\x00\x00\x00t\x00\x00\x00h\x00\x00\x00c\x00\x00\x00m\x00\x00\x00Q\x00\x00\x00g\x00\x00\x00Q\x00\x00\x002\x00\x00\x009\x00\x00\x00t\x00\x00\x00c\x00\x00\x00G\x00\x00\x00F\x00\x00\x00u\x00\x00\x00e\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Z\x00\x00\x00G\x00\x00\x00V\x00\x00\x00z\x00\x00\x00Y\x00\x00\x00w\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00S\x00\x00\x00c\x00\x00\x001\x00\x00\x00J\x00\x00\x00H\x00\x00\x00Q\x00\x00\x00i\x00\x00\x00B\x00\x00\x00J\x00\x00\x00R\x00\x00\x00U\x00\x00\x00M\x00\x00\x002\x00\x00\x00M\x00\x00\x00T\x00\x00\x00k\x00\x00\x002\x00\x00\x00N\x00\x00\x00i\x00\x00\x000\x00\x00\x00y\x00\x00\x00L\x00\x00\x00j\x00\x00\x00E\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00J\x00\x00\x00z\x00\x00\x00U\x00\x00\x00k\x00\x00\x00d\x00\x00\x00C\x00\x00\x00I\x00\x00\x00E\x00\x00\x00l\x00\x00\x00F\x00\x00\x00Q\x00\x00\x00z\x00\x00\x00Y\x00\x00\x00x\x00\x00\x00O\x00\x00\x00T\x00\x00\x00Y\x00\x00\x002\x00\x00\x00L\x00\x00\x00T\x00\x00\x00I\x00\x00\x00u\x00\x00\x00M\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00I\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00P\x00\x00\x00N\x00\x00\x00R\x00\x00\x00A\x00\x00\x00A\x00\x00\x00E\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00F\x00\x00\x00s\x00\x00\x00x\x00\x00\x00Y\x00\x00\x00W\x00\x00\x00V\x00\x00\x00o\x00\x00\x00g\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00F\x00\x00\x00h\x00\x00\x00Z\x00\x00\x00W\x00\x00\x00i\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00v\x00\x00\x00o\x00\x00\x00g\x00\x00\x00A\x00\x00\x00A\x00\x00\x00O\x00\x00\x00P\x00\x00\x00U\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00O\x00\x00\x00Q\x00\x00\x00W\x00\x00\x00F\x00\x00\x00l\x00\x00\x00a\x00\x00\x00I\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00G\x00\x00\x00K\x00\x00\x00Z\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x003\x00\x00\x00h\x00\x00\x00Q\x00\x00\x00A\x00\x00\x00A\x00\x00\x00G\x00\x00\x00N\x00\x00\x00p\x00\x00\x00Y\x00\x00\x00W\x00\x00\x00V\x00\x00\x00o\x00\x00\x00g\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00J\x00\x00\x00K\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00+\x00\x00\x00E\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x002\x00\x00\x00z\x00\x00\x002\x00\x00\x00R\x00\x00\x00l\x00\x00\x00c\x00\x00\x002\x00\x00\x00M\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00F\x00\x00\x00k\x00\x00\x00l\x00\x00\x00F\x00\x00\x00Q\x00\x00\x00y\x00\x00\x00B\x00\x00\x00o\x00\x00\x00d\x00\x00\x00H\x00\x00\x00R\x00\x00\x00w\x00\x00\x00O\x00\x00\x00i\x00\x00\x008\x00\x00\x00v\x00\x00\x00d\x00\x00\x003\x00\x00\x00d\x00\x00\x003\x00\x00\x00L\x00\x00\x00m\x00\x00\x00l\x00\x00\x00l\x00\x00\x00Y\x00\x00\x00y\x00\x00\x005\x00\x00\x00j\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00F\x00\x00\x00k\x00\x00\x00l\x00\x00\x00F\x00\x00\x00Q\x00\x00\x00y\x00\x00\x00B\x00\x00\x00o\x00\x00\x00d\x00\x00\x00H\x00\x00\x00R\x00\x00\x00w\x00\x00\x00O\x00\x00\x00i\x00\x00\x008\x00\x00\x00v\x00\x00\x00d\x00\x00\x003\x00\x00\x00d\x00\x00\x003\x00\x00\x00L\x00\x00\x00m\x00\x00\x00l\x00\x00\x00l\x00\x00\x00Y\x00\x00\x00y\x00\x00\x005\x00\x00\x00j\x00\x00\x00a\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00B\x00\x00\x00k\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00N\x00\x00\x00j\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x005\x00\x00\x00J\x00\x00\x00R\x00\x00\x00U\x00\x00\x00M\x00\x00\x00g\x00\x00\x00N\x00\x00\x00j\x00\x00\x00E\x00\x00\x005\x00\x00\x00N\x00\x00\x00j\x00\x00\x00Y\x00\x00\x00t\x00\x00\x00M\x00\x00\x00i\x00\x00\x004\x00\x00\x00x\x00\x00\x00I\x00\x00\x00E\x00\x00\x00R\x00\x00\x00l\x00\x00\x00Z\x00\x00\x00m\x00\x00\x00F\x00\x00\x001\x00\x00\x00b\x00\x00\x00H\x00\x00\x00Q\x00\x00\x00g\x00\x00\x00U\x00\x00\x00k\x00\x00\x00d\x00\x00\x00C\x00\x00\x00I\x00\x00\x00G\x00\x00\x00N\x00\x00\x00v\x00\x00\x00b\x00\x00\x00G\x00\x00\x009\x00\x00\x001\x00\x00\x00c\x00\x00\x00i\x00\x00\x00B\x00\x00\x00z\x00\x00\x00c\x00\x00\x00G\x00\x00\x00F\x00\x00\x00j\x00\x00\x00Z\x00\x00\x00S\x00\x00\x00A\x00\x00\x00t\x00\x00\x00I\x00\x00\x00H\x00\x00\x00N\x00\x00\x00S\x00\x00\x00R\x00\x00\x000\x00\x00\x00I\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00C\x00\x00\x005\x00\x00\x00J\x00\x00\x00R\x00\x00\x00U\x00\x00\x00M\x00\x00\x00g\x00\x00\x00N\x00\x00\x00j\x00\x00\x00E\x00\x00\x005\x00\x00\x00N\x00\x00\x00j\x00\x00\x00Y\x00\x00\x00t\x00\x00\x00M\x00\x00\x00i\x00\x00\x004\x00\x00\x00x\x00\x00\x00I\x00\x00\x00E\x00\x00\x00R\x00\x00\x00l\x00\x00\x00Z\x00\x00\x00m\x00\x00\x00F\x00\x00\x001\x00\x00\x00b\x00\x00\x00H\x00\x00\x00Q\x00\x00\x00g\x00\x00\x00U\x00\x00\x00k\x00\x00\x00d\x00\x00\x00C\x00\x00\x00I\x00\x00\x00G\x00\x00\x00N\x00\x00\x00v\x00\x00\x00b\x00\x00\x00G\x00\x00\x009\x00\x00\x001\x00\x00\x00c\x00\x00\x00i\x00\x00\x00B\x00\x00\x00z\x00\x00\x00c\x00\x00\x00G\x00\x00\x00F\x00\x00\x00j\x00\x00\x00Z\x00\x00\x00S\x00\x00\x00A\x00\x00\x00t\x00\x00\x00I\x00\x00\x00H\x00\x00\x00N\x00\x00\x00S\x00\x00\x00R\x00\x00\x000\x00\x00\x00I\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00Z\x00\x00\x00G\x00\x00\x00V\x00\x00\x00z\x00\x00\x00Y\x00\x00\x00w\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00A\x00\x00\x00s\x00\x00\x00U\x00\x00\x00m\x00\x00\x00V\x00\x00\x00m\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00J\x00\x00\x00l\x00\x00\x00b\x00\x00\x00m\x00\x00\x00N\x00\x00\x00l\x00\x00\x00I\x00\x00\x00F\x00\x00\x00Z\x00\x00\x00p\x00\x00\x00Z\x00\x00\x00X\x00\x00\x00d\x00\x00\x00p\x00\x00\x00b\x00\x00\x00m\x00\x00\x00c\x00\x00\x00g\x00\x00\x00Q\x00\x00\x002\x00\x00\x009\x00\x00\x00u\x00\x00\x00Z\x00\x00\x00G\x00\x00\x00l\x00\x00\x000\x00\x00\x00a\x00\x00\x00W\x00\x00\x009\x00\x00\x00u\x00\x00\x00I\x00\x00\x00G\x00\x00\x00l\x00\x00\x00u\x00\x00\x00I\x00\x00\x",

Installation instructions

I am using Sagemaker notebook

model was already trained from local desktop, and I am trying to make an endpoint by sagemaker

Model Packaing

model.tar.gz

model.pt code/ code/inference.py code/.ipynb_checkpoints/ code/requirements.txt

=========================

from sagemaker.pytorch import PyTorchModel

model_path = 's3://{}/model.tar.gz'.format(bucket)

pytorch_model = PyTorchModel(model_data=model_path, role=role, entry_point='inference.py', framework_version="1.9.0", py_version="py38")

Versions

framework_version="1.9.0" py_version = py38

Repro instructions

I am trying to get a result just like below

import json import base64

data = {} with open('./IU.jpg', mode='rb') as file: img = file.read() data['img'] = base64.b64encode(img).decode('utf-8')

input_data = json.dumps(data)

result = predictor.predict(input_data)

converted_image = json.loads(result) b64img = converted_image['img'].encode('utf-8') print('b64img', b64img) image_data = Image.open(BytesIO(base64.b64decode(b64img))) image_data.show()

and I got an error

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte

When I checked the CloudWatch it was saying I got bytearray even if I input json file.

Possible Solution

maybe it is due to content_type

since I test it on sagemaker notebook w/o request_body

it worked properly.

I think it is due to default serializer IdentitySerializer present. But, I am wondering since I used own inference.py. it should be not happened.

I am pretty sure I was misunderstood a lot of things but I cannot catch the reasons. I am lost..

need a help. If here is not appropriate place to ask this question, I am sorry.

Thank you for your help again !!! :)

akrishna1995 commented 10 months ago

Thanks for creating this issue. Want to confirm if the predict is throwing an error or if there is an issue with the encoding inference script you have later. Can you please provide more the sdk error logs ? I see you are using pytorch - these docs should help you get started with using the sdk: https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html#train-a-model-with-pytorch. Please let us know if the issue still persists