From 94ad0bac28a32e83da71178632b4bcbf8ec3bcbd Mon Sep 17 00:00:00 2001 From: jinman Date: Mon, 10 Aug 2026 14:45:47 +0900 Subject: [PATCH 01/48] Split vision API into standalone package --- .github/workflows/publish.yml | 73 + .gitignore | 43 + .pre-commit-config.yaml | 8 + AGENTS.md | 73 +- CLAUDE.md | 4 +- README.md | 27 + benchmark/README.md | 172 ++ benchmark/benchmark_coco.py | 183 +++ benchmark/benchmark_imagenet.py | 137 ++ benchmark/organize_coco.py | 36 + benchmark/organize_imagenet.py | 33 + benchmark/organize_widerface.py | 36 + mblt_vision/README.md | 200 +++ mblt_vision/__init__.py | 86 + mblt_vision/_api.py | 53 + mblt_vision/_compat.py | 228 +++ mblt_vision/_model_paths.py | 139 ++ mblt_vision/_tasks.py | 32 + mblt_vision/datasets/__init__.py | 15 + mblt_vision/datasets/ade20k.yaml | 163 ++ mblt_vision/datasets/cityscapes.yaml | 54 + mblt_vision/datasets/coco.yaml | 174 ++ mblt_vision/datasets/dotav1.yaml | 28 + mblt_vision/datasets/imagenet.yaml | 1019 ++++++++++++ mblt_vision/datasets/nyu-depth.yaml | 7 + mblt_vision/datasets/registry.py | 158 ++ mblt_vision/datasets/widerface.yaml | 9 + mblt_vision/depth_estimation/__init__.py | 19 + mblt_vision/face_detection/__init__.py | 43 + mblt_vision/image_classification/__init__.py | 311 ++++ mblt_vision/instance_segmentation/__init__.py | 65 + mblt_vision/models/AlexNet.yaml | 23 + mblt_vision/models/CAFormer_B36.yaml | 22 + mblt_vision/models/CAFormer_M36.yaml | 22 + mblt_vision/models/CAFormer_S18.yaml | 22 + mblt_vision/models/CAFormer_S36.yaml | 22 + mblt_vision/models/CoAtNet_0_RW_224.yaml | 22 + mblt_vision/models/CoAtNet_1_RW_224.yaml | 22 + mblt_vision/models/CoAtNet_2_RW_224.yaml | 22 + mblt_vision/models/ConvFormer_B36.yaml | 22 + mblt_vision/models/ConvFormer_M36.yaml | 22 + mblt_vision/models/ConvFormer_S18.yaml | 22 + mblt_vision/models/ConvFormer_S36.yaml | 22 + mblt_vision/models/ConvNext_Base.yaml | 23 + mblt_vision/models/ConvNext_Large.yaml | 23 + mblt_vision/models/ConvNext_Small.yaml | 23 + mblt_vision/models/ConvNext_Tiny.yaml | 23 + .../models/DeiT3_Base_Patch16_224.yaml | 22 + .../models/DeiT3_Base_Patch16_384.yaml | 22 + .../models/DeiT3_Large_Patch16_224.yaml | 22 + .../models/DeiT3_Large_Patch16_384.yaml | 22 + .../models/DeiT3_Medium_Patch16_224.yaml | 22 + .../models/DeiT3_Small_Patch16_224.yaml | 22 + .../models/DeiT3_Small_Patch16_384.yaml | 22 + mblt_vision/models/DeiT_Base_Patch16_224.yaml | 22 + mblt_vision/models/DeiT_Base_Patch16_384.yaml | 22 + .../models/DeiT_Small_Patch16_224.yaml | 22 + mblt_vision/models/DeiT_Tiny_Patch16_224.yaml | 22 + mblt_vision/models/DenseNet121.yaml | 23 + mblt_vision/models/DenseNet161.yaml | 23 + mblt_vision/models/DenseNet169.yaml | 23 + mblt_vision/models/DenseNet201.yaml | 23 + mblt_vision/models/EfficientFormer_L1.yaml | 22 + mblt_vision/models/EfficientFormer_L3.yaml | 22 + mblt_vision/models/EfficientFormer_L7.yaml | 22 + mblt_vision/models/EfficientNet_B0.yaml | 23 + mblt_vision/models/EfficientNet_B1.yaml | 32 + mblt_vision/models/EfficientNet_B2.yaml | 23 + mblt_vision/models/EfficientNet_B3.yaml | 23 + mblt_vision/models/EfficientNet_B4.yaml | 23 + mblt_vision/models/EfficientNet_B5.yaml | 23 + mblt_vision/models/EfficientNet_B6.yaml | 23 + mblt_vision/models/EfficientNet_B7.yaml | 23 + mblt_vision/models/EfficientNet_V2_L.yaml | 23 + mblt_vision/models/EfficientNet_V2_M.yaml | 23 + mblt_vision/models/EfficientNet_V2_S.yaml | 23 + mblt_vision/models/FlexiVit_Base.yaml | 22 + mblt_vision/models/FlexiVit_Large.yaml | 22 + mblt_vision/models/FlexiVit_Small.yaml | 22 + mblt_vision/models/GELANc-seg.yaml | 29 + mblt_vision/models/GELANc.yaml | 28 + mblt_vision/models/GELANe.yaml | 28 + mblt_vision/models/GELANm.yaml | 28 + mblt_vision/models/GELANs.yaml | 28 + mblt_vision/models/GoogLeNet.yaml | 23 + mblt_vision/models/Inception_V3.yaml | 23 + mblt_vision/models/LeViT_Conv_128.yaml | 22 + mblt_vision/models/LeViT_Conv_128S.yaml | 22 + mblt_vision/models/LeViT_Conv_192.yaml | 22 + mblt_vision/models/LeViT_Conv_256.yaml | 22 + mblt_vision/models/LeViT_Conv_384.yaml | 22 + mblt_vision/models/MNASNet0_5.yaml | 23 + mblt_vision/models/MNASNet0_75.yaml | 23 + mblt_vision/models/MNASNet1_0.yaml | 23 + mblt_vision/models/MNASNet1_3.yaml | 23 + mblt_vision/models/MobileNet_V2.yaml | 32 + mblt_vision/models/MobileNet_V3_Large.yaml | 32 + mblt_vision/models/MobileNet_V3_Small.yaml | 23 + mblt_vision/models/RegNet_X_16GF.yaml | 32 + mblt_vision/models/RegNet_X_1_6GF.yaml | 32 + mblt_vision/models/RegNet_X_32GF.yaml | 32 + mblt_vision/models/RegNet_X_3_2GF.yaml | 32 + mblt_vision/models/RegNet_X_400MF.yaml | 32 + mblt_vision/models/RegNet_X_800MF.yaml | 32 + mblt_vision/models/RegNet_X_8GF.yaml | 32 + mblt_vision/models/RegNet_Y_16GF.yaml | 76 + mblt_vision/models/RegNet_Y_1_6GF.yaml | 32 + mblt_vision/models/RegNet_Y_32GF.yaml | 76 + mblt_vision/models/RegNet_Y_3_2GF.yaml | 32 + mblt_vision/models/RegNet_Y_400MF.yaml | 32 + mblt_vision/models/RegNet_Y_800MF.yaml | 32 + mblt_vision/models/RegNet_Y_8GF.yaml | 32 + mblt_vision/models/RepViT_M0_9.yaml | 22 + mblt_vision/models/RepViT_M1.yaml | 22 + mblt_vision/models/RepViT_M1_0.yaml | 22 + mblt_vision/models/RepViT_M1_1.yaml | 22 + mblt_vision/models/RepViT_M1_5.yaml | 22 + mblt_vision/models/RepViT_M2.yaml | 22 + mblt_vision/models/RepViT_M2_3.yaml | 22 + mblt_vision/models/RepViT_M3.yaml | 22 + mblt_vision/models/ResNeXt101_32X8D.yaml | 32 + mblt_vision/models/ResNeXt101_64X4D.yaml | 23 + mblt_vision/models/ResNeXt50_32X4D.yaml | 32 + mblt_vision/models/ResNet101.yaml | 32 + mblt_vision/models/ResNet152.yaml | 32 + mblt_vision/models/ResNet18.yaml | 23 + mblt_vision/models/ResNet34.yaml | 23 + mblt_vision/models/ResNet50.yaml | 32 + mblt_vision/models/ShuffleNet_V2_X0_5.yaml | 23 + mblt_vision/models/ShuffleNet_V2_X1_0.yaml | 23 + mblt_vision/models/ShuffleNet_V2_X1_5.yaml | 23 + mblt_vision/models/ShuffleNet_V2_X2_0.yaml | 23 + mblt_vision/models/SqueezeNet1_0.yaml | 23 + mblt_vision/models/SqueezeNet1_1.yaml | 23 + mblt_vision/models/Swin_B.yaml | 23 + mblt_vision/models/Swin_S.yaml | 23 + mblt_vision/models/Swin_T.yaml | 23 + mblt_vision/models/VGG11.yaml | 23 + mblt_vision/models/VGG11_BN.yaml | 23 + mblt_vision/models/VGG13.yaml | 23 + mblt_vision/models/VGG13_BN.yaml | 23 + mblt_vision/models/VGG16.yaml | 23 + mblt_vision/models/VGG16_BN.yaml | 23 + mblt_vision/models/VGG19.yaml | 23 + mblt_vision/models/VGG19_BN.yaml | 23 + mblt_vision/models/ViT_B_16.yaml | 67 + mblt_vision/models/ViT_B_32.yaml | 23 + mblt_vision/models/ViT_Base_Patch16_224.yaml | 22 + mblt_vision/models/ViT_Base_Patch16_384.yaml | 22 + mblt_vision/models/ViT_Base_Patch32_224.yaml | 22 + mblt_vision/models/ViT_Base_Patch32_384.yaml | 22 + mblt_vision/models/ViT_Base_Patch8_224.yaml | 22 + mblt_vision/models/ViT_L_16.yaml | 67 + mblt_vision/models/ViT_L_32.yaml | 23 + mblt_vision/models/ViT_Large_Patch16_224.yaml | 22 + mblt_vision/models/ViT_Large_Patch16_384.yaml | 22 + mblt_vision/models/ViT_Large_Patch32_384.yaml | 22 + mblt_vision/models/ViT_Small_Patch16_224.yaml | 22 + mblt_vision/models/ViT_Small_Patch16_384.yaml | 22 + mblt_vision/models/ViT_Small_Patch32_224.yaml | 22 + mblt_vision/models/ViT_Small_Patch32_384.yaml | 22 + mblt_vision/models/ViT_Tiny_Patch16_224.yaml | 22 + mblt_vision/models/ViT_Tiny_Patch16_384.yaml | 22 + mblt_vision/models/VisFormer_Small.yaml | 22 + mblt_vision/models/VisFormer_Tiny.yaml | 22 + mblt_vision/models/Wide_ResNet101_2.yaml | 32 + mblt_vision/models/Wide_ResNet50_2.yaml | 32 + mblt_vision/models/YOLO11l-cls.yaml | 23 + mblt_vision/models/YOLO11l-face.yaml | 27 + mblt_vision/models/YOLO11l-obb.yaml | 28 + mblt_vision/models/YOLO11l-pose.yaml | 28 + mblt_vision/models/YOLO11l-seg.yaml | 28 + mblt_vision/models/YOLO11l.yaml | 27 + mblt_vision/models/YOLO11m-cls.yaml | 23 + mblt_vision/models/YOLO11m-face.yaml | 27 + mblt_vision/models/YOLO11m-obb.yaml | 28 + mblt_vision/models/YOLO11m-pose.yaml | 28 + mblt_vision/models/YOLO11m-seg.yaml | 28 + mblt_vision/models/YOLO11m.yaml | 27 + mblt_vision/models/YOLO11n-cls.yaml | 23 + mblt_vision/models/YOLO11n-face.yaml | 27 + mblt_vision/models/YOLO11n-obb.yaml | 28 + mblt_vision/models/YOLO11n-pose.yaml | 28 + mblt_vision/models/YOLO11n-seg.yaml | 28 + mblt_vision/models/YOLO11n.yaml | 27 + mblt_vision/models/YOLO11s-cls.yaml | 23 + mblt_vision/models/YOLO11s-face.yaml | 27 + mblt_vision/models/YOLO11s-obb.yaml | 28 + mblt_vision/models/YOLO11s-pose.yaml | 28 + mblt_vision/models/YOLO11s-seg.yaml | 28 + mblt_vision/models/YOLO11s.yaml | 27 + mblt_vision/models/YOLO11x-cls.yaml | 23 + mblt_vision/models/YOLO11x-obb.yaml | 28 + mblt_vision/models/YOLO11x-pose.yaml | 28 + mblt_vision/models/YOLO11x-seg.yaml | 28 + mblt_vision/models/YOLO11x.yaml | 27 + mblt_vision/models/YOLO12l-face.yaml | 27 + mblt_vision/models/YOLO12l-seg.yaml | 28 + mblt_vision/models/YOLO12l.yaml | 27 + mblt_vision/models/YOLO12m-face.yaml | 27 + mblt_vision/models/YOLO12m-seg.yaml | 28 + mblt_vision/models/YOLO12m.yaml | 27 + mblt_vision/models/YOLO12n-face.yaml | 27 + mblt_vision/models/YOLO12n-seg.yaml | 28 + mblt_vision/models/YOLO12n.yaml | 27 + mblt_vision/models/YOLO12s-face.yaml | 27 + mblt_vision/models/YOLO12s-seg.yaml | 28 + mblt_vision/models/YOLO12s.yaml | 27 + mblt_vision/models/YOLO12x-seg.yaml | 28 + mblt_vision/models/YOLO12x.yaml | 27 + mblt_vision/models/YOLO26l-cls.yaml | 23 + mblt_vision/models/YOLO26l-depth.yaml | 17 + mblt_vision/models/YOLO26l-distill.yaml | 27 + mblt_vision/models/YOLO26l-obb.yaml | 28 + mblt_vision/models/YOLO26l-pose.yaml | 28 + mblt_vision/models/YOLO26l-seg.yaml | 28 + mblt_vision/models/YOLO26l-sem-ade20k.yaml | 17 + mblt_vision/models/YOLO26l-sem.yaml | 17 + mblt_vision/models/YOLO26l.yaml | 27 + mblt_vision/models/YOLO26m-cls.yaml | 23 + mblt_vision/models/YOLO26m-depth.yaml | 17 + mblt_vision/models/YOLO26m-distill.yaml | 27 + mblt_vision/models/YOLO26m-obb.yaml | 28 + mblt_vision/models/YOLO26m-pose.yaml | 28 + mblt_vision/models/YOLO26m-seg.yaml | 28 + mblt_vision/models/YOLO26m-sem-ade20k.yaml | 17 + mblt_vision/models/YOLO26m-sem.yaml | 17 + mblt_vision/models/YOLO26m.yaml | 27 + mblt_vision/models/YOLO26n-cls.yaml | 23 + mblt_vision/models/YOLO26n-depth.yaml | 17 + mblt_vision/models/YOLO26n-distill.yaml | 27 + mblt_vision/models/YOLO26n-obb.yaml | 28 + mblt_vision/models/YOLO26n-pose.yaml | 28 + mblt_vision/models/YOLO26n-seg.yaml | 28 + mblt_vision/models/YOLO26n-sem-ade20k.yaml | 17 + mblt_vision/models/YOLO26n-sem.yaml | 17 + mblt_vision/models/YOLO26n.yaml | 27 + mblt_vision/models/YOLO26s-cls.yaml | 23 + mblt_vision/models/YOLO26s-depth.yaml | 17 + mblt_vision/models/YOLO26s-distill.yaml | 27 + mblt_vision/models/YOLO26s-obb.yaml | 28 + mblt_vision/models/YOLO26s-pose.yaml | 28 + mblt_vision/models/YOLO26s-seg.yaml | 28 + mblt_vision/models/YOLO26s-sem-ade20k.yaml | 17 + mblt_vision/models/YOLO26s-sem.yaml | 17 + mblt_vision/models/YOLO26s.yaml | 27 + mblt_vision/models/YOLO26x-cls.yaml | 23 + mblt_vision/models/YOLO26x-depth.yaml | 17 + mblt_vision/models/YOLO26x-distill.yaml | 27 + mblt_vision/models/YOLO26x-obb.yaml | 28 + mblt_vision/models/YOLO26x-pose.yaml | 28 + mblt_vision/models/YOLO26x-seg.yaml | 28 + mblt_vision/models/YOLO26x-sem-ade20k.yaml | 17 + mblt_vision/models/YOLO26x-sem.yaml | 17 + mblt_vision/models/YOLO26x.yaml | 27 + mblt_vision/models/YOLOv10b.yaml | 28 + mblt_vision/models/YOLOv10l-face.yaml | 28 + mblt_vision/models/YOLOv10l.yaml | 28 + mblt_vision/models/YOLOv10m-face.yaml | 28 + mblt_vision/models/YOLOv10m.yaml | 28 + mblt_vision/models/YOLOv10n-face.yaml | 28 + mblt_vision/models/YOLOv10n.yaml | 28 + mblt_vision/models/YOLOv10s-face.yaml | 28 + mblt_vision/models/YOLOv10s.yaml | 28 + mblt_vision/models/YOLOv10x.yaml | 28 + mblt_vision/models/YOLOv3-spp.yaml | 44 + mblt_vision/models/YOLOv3-sppu.yaml | 27 + mblt_vision/models/YOLOv3-tiny.yaml | 38 + mblt_vision/models/YOLOv3-tinyu.yaml | 27 + mblt_vision/models/YOLOv3.yaml | 44 + mblt_vision/models/YOLOv3u.yaml | 27 + mblt_vision/models/YOLOv5l-cls.yaml | 22 + mblt_vision/models/YOLOv5l-seg.yaml | 45 + mblt_vision/models/YOLOv5l.yaml | 44 + mblt_vision/models/YOLOv5l6.yaml | 50 + mblt_vision/models/YOLOv5l6u.yaml | 27 + mblt_vision/models/YOLOv5lu.yaml | 27 + mblt_vision/models/YOLOv5m-cls.yaml | 22 + mblt_vision/models/YOLOv5m-seg.yaml | 45 + mblt_vision/models/YOLOv5m.yaml | 45 + mblt_vision/models/YOLOv5m6.yaml | 50 + mblt_vision/models/YOLOv5m6u.yaml | 27 + mblt_vision/models/YOLOv5mu.yaml | 27 + mblt_vision/models/YOLOv5n-cls.yaml | 22 + mblt_vision/models/YOLOv5n-seg.yaml | 45 + mblt_vision/models/YOLOv5n.yaml | 44 + mblt_vision/models/YOLOv5n6.yaml | 50 + mblt_vision/models/YOLOv5n6u.yaml | 27 + mblt_vision/models/YOLOv5nu.yaml | 27 + mblt_vision/models/YOLOv5s-cls.yaml | 22 + mblt_vision/models/YOLOv5s-seg.yaml | 45 + mblt_vision/models/YOLOv5s.yaml | 44 + mblt_vision/models/YOLOv5s6.yaml | 50 + mblt_vision/models/YOLOv5s6u.yaml | 27 + mblt_vision/models/YOLOv5su.yaml | 27 + mblt_vision/models/YOLOv5x-cls.yaml | 22 + mblt_vision/models/YOLOv5x-seg.yaml | 45 + mblt_vision/models/YOLOv5x.yaml | 44 + mblt_vision/models/YOLOv5x6.yaml | 50 + mblt_vision/models/YOLOv5x6u.yaml | 27 + mblt_vision/models/YOLOv5xu.yaml | 27 + mblt_vision/models/YOLOv6m-face.yaml | 27 + mblt_vision/models/YOLOv6n-face.yaml | 27 + mblt_vision/models/YOLOv7.yaml | 44 + mblt_vision/models/YOLOv7d6.yaml | 50 + mblt_vision/models/YOLOv7e6.yaml | 50 + mblt_vision/models/YOLOv7e6e.yaml | 50 + mblt_vision/models/YOLOv7w6.yaml | 50 + mblt_vision/models/YOLOv7x.yaml | 44 + mblt_vision/models/YOLOv8l-cls.yaml | 23 + mblt_vision/models/YOLOv8l-face.yaml | 27 + mblt_vision/models/YOLOv8l-obb.yaml | 28 + mblt_vision/models/YOLOv8l-pose.yaml | 28 + mblt_vision/models/YOLOv8l-seg.yaml | 28 + mblt_vision/models/YOLOv8l.yaml | 27 + mblt_vision/models/YOLOv8m-cls.yaml | 23 + mblt_vision/models/YOLOv8m-face.yaml | 27 + mblt_vision/models/YOLOv8m-obb.yaml | 28 + mblt_vision/models/YOLOv8m-pose.yaml | 28 + mblt_vision/models/YOLOv8m-seg.yaml | 28 + mblt_vision/models/YOLOv8m.yaml | 27 + mblt_vision/models/YOLOv8n-cls.yaml | 23 + mblt_vision/models/YOLOv8n-face.yaml | 27 + mblt_vision/models/YOLOv8n-obb.yaml | 28 + mblt_vision/models/YOLOv8n-pose.yaml | 28 + mblt_vision/models/YOLOv8n-seg.yaml | 28 + mblt_vision/models/YOLOv8n.yaml | 27 + mblt_vision/models/YOLOv8s-cls.yaml | 23 + mblt_vision/models/YOLOv8s-obb.yaml | 28 + mblt_vision/models/YOLOv8s-pose.yaml | 28 + mblt_vision/models/YOLOv8s-seg.yaml | 28 + mblt_vision/models/YOLOv8s.yaml | 27 + mblt_vision/models/YOLOv8x-cls.yaml | 23 + mblt_vision/models/YOLOv8x-obb.yaml | 28 + mblt_vision/models/YOLOv8x-pose-p6.yaml | 28 + mblt_vision/models/YOLOv8x-pose.yaml | 28 + mblt_vision/models/YOLOv8x-seg.yaml | 28 + mblt_vision/models/YOLOv8x.yaml | 27 + mblt_vision/models/YOLOv9c-seg.yaml | 28 + mblt_vision/models/YOLOv9c.yaml | 27 + mblt_vision/models/YOLOv9e-seg.yaml | 28 + mblt_vision/models/YOLOv9e.yaml | 27 + mblt_vision/models/YOLOv9m.yaml | 27 + mblt_vision/models/YOLOv9s.yaml | 27 + mblt_vision/models/YOLOv9t.yaml | 27 + mblt_vision/obb/__init__.py | 39 + mblt_vision/object_detection/__init__.py | 153 ++ mblt_vision/pose_estimation/__init__.py | 41 + mblt_vision/semantic_segmentation/__init__.py | 29 + mblt_vision/utils/__init__.py | 0 mblt_vision/utils/datasets/__init__.py | 28 + mblt_vision/utils/datasets/ade20k.py | 41 + mblt_vision/utils/datasets/cityscapes.py | 66 + mblt_vision/utils/datasets/coco.py | 243 +++ mblt_vision/utils/datasets/dotav1.py | 59 + mblt_vision/utils/datasets/imagenet.py | 29 + mblt_vision/utils/labels.py | 112 ++ mblt_vision/utils/letterbox.py | 118 ++ mblt_vision/utils/postprocess/__init__.py | 9 + mblt_vision/utils/postprocess/_letterbox.py | 102 ++ mblt_vision/utils/postprocess/base.py | 639 ++++++++ mblt_vision/utils/postprocess/build_post.py | 120 ++ mblt_vision/utils/postprocess/cls_post.py | 69 + mblt_vision/utils/postprocess/common.py | 1446 +++++++++++++++++ mblt_vision/utils/postprocess/depth_post.py | 107 ++ .../utils/postprocess/semantic_seg_post.py | 184 +++ .../utils/postprocess/yolo_anchor_post.py | 443 +++++ .../utils/postprocess/yolo_anchorless_post.py | 948 +++++++++++ .../utils/postprocess/yolo_dflfree_post.py | 991 +++++++++++ .../utils/postprocess/yolo_nmsfree_post.py | 176 ++ mblt_vision/utils/preprocess/__init__.py | 27 + mblt_vision/utils/preprocess/_validation.py | 32 + mblt_vision/utils/preprocess/base.py | 157 ++ mblt_vision/utils/preprocess/build_pre.py | 48 + mblt_vision/utils/preprocess/center_crop.py | 75 + mblt_vision/utils/preprocess/letterbox.py | 120 ++ mblt_vision/utils/preprocess/normalize.py | 78 + mblt_vision/utils/preprocess/order.py | 74 + mblt_vision/utils/preprocess/reader.py | 85 + mblt_vision/utils/preprocess/resize.py | 190 +++ mblt_vision/utils/preprocess/yolo_pre.py | 7 + mblt_vision/utils/results.py | 722 ++++++++ mblt_vision/utils/types.py | 15 + mblt_vision/wrapper.py | 924 +++++++++++ pyproject.toml | 64 +- tests/TEST.md | 28 + tests/conftest.py | 5 + tests/rc/cr7.jpg | Bin 0 -> 107563 bytes tests/rc/tabby.jpg | Bin 0 -> 2039072 bytes tests/rc/volcano.jpg | Bin 0 -> 726157 bytes tests/test_resnet50.py | 109 ++ tests/test_vision_api.py | 12 + tests/test_yolo_det.py | 124 ++ tests/test_yolo_pose.py | 124 ++ tests/test_yolo_seg.py | 124 ++ 395 files changed, 21513 insertions(+), 36 deletions(-) create mode 100644 .github/workflows/publish.yml create mode 100644 .pre-commit-config.yaml create mode 100644 benchmark/README.md create mode 100644 benchmark/benchmark_coco.py create mode 100644 benchmark/benchmark_imagenet.py create mode 100644 benchmark/organize_coco.py create mode 100644 benchmark/organize_imagenet.py create mode 100644 benchmark/organize_widerface.py create mode 100644 mblt_vision/README.md create mode 100644 mblt_vision/_api.py create mode 100644 mblt_vision/_compat.py create mode 100644 mblt_vision/_model_paths.py create mode 100644 mblt_vision/_tasks.py create mode 100644 mblt_vision/datasets/__init__.py create mode 100644 mblt_vision/datasets/ade20k.yaml create mode 100644 mblt_vision/datasets/cityscapes.yaml create mode 100644 mblt_vision/datasets/coco.yaml create mode 100644 mblt_vision/datasets/dotav1.yaml create mode 100644 mblt_vision/datasets/imagenet.yaml create mode 100644 mblt_vision/datasets/nyu-depth.yaml create mode 100644 mblt_vision/datasets/registry.py create mode 100644 mblt_vision/datasets/widerface.yaml create mode 100644 mblt_vision/depth_estimation/__init__.py create mode 100644 mblt_vision/face_detection/__init__.py create mode 100644 mblt_vision/image_classification/__init__.py create mode 100644 mblt_vision/instance_segmentation/__init__.py create mode 100644 mblt_vision/models/AlexNet.yaml create mode 100644 mblt_vision/models/CAFormer_B36.yaml create mode 100644 mblt_vision/models/CAFormer_M36.yaml create mode 100644 mblt_vision/models/CAFormer_S18.yaml create mode 100644 mblt_vision/models/CAFormer_S36.yaml create mode 100644 mblt_vision/models/CoAtNet_0_RW_224.yaml create mode 100644 mblt_vision/models/CoAtNet_1_RW_224.yaml create mode 100644 mblt_vision/models/CoAtNet_2_RW_224.yaml create mode 100644 mblt_vision/models/ConvFormer_B36.yaml create mode 100644 mblt_vision/models/ConvFormer_M36.yaml create mode 100644 mblt_vision/models/ConvFormer_S18.yaml create mode 100644 mblt_vision/models/ConvFormer_S36.yaml create mode 100644 mblt_vision/models/ConvNext_Base.yaml create mode 100644 mblt_vision/models/ConvNext_Large.yaml create mode 100644 mblt_vision/models/ConvNext_Small.yaml create mode 100644 mblt_vision/models/ConvNext_Tiny.yaml create mode 100644 mblt_vision/models/DeiT3_Base_Patch16_224.yaml create mode 100644 mblt_vision/models/DeiT3_Base_Patch16_384.yaml create mode 100644 mblt_vision/models/DeiT3_Large_Patch16_224.yaml create mode 100644 mblt_vision/models/DeiT3_Large_Patch16_384.yaml create mode 100644 mblt_vision/models/DeiT3_Medium_Patch16_224.yaml create mode 100644 mblt_vision/models/DeiT3_Small_Patch16_224.yaml create mode 100644 mblt_vision/models/DeiT3_Small_Patch16_384.yaml create mode 100644 mblt_vision/models/DeiT_Base_Patch16_224.yaml create mode 100644 mblt_vision/models/DeiT_Base_Patch16_384.yaml create mode 100644 mblt_vision/models/DeiT_Small_Patch16_224.yaml create mode 100644 mblt_vision/models/DeiT_Tiny_Patch16_224.yaml create mode 100644 mblt_vision/models/DenseNet121.yaml create mode 100644 mblt_vision/models/DenseNet161.yaml create mode 100644 mblt_vision/models/DenseNet169.yaml create mode 100644 mblt_vision/models/DenseNet201.yaml create mode 100644 mblt_vision/models/EfficientFormer_L1.yaml create mode 100644 mblt_vision/models/EfficientFormer_L3.yaml create mode 100644 mblt_vision/models/EfficientFormer_L7.yaml create mode 100644 mblt_vision/models/EfficientNet_B0.yaml create mode 100644 mblt_vision/models/EfficientNet_B1.yaml create mode 100644 mblt_vision/models/EfficientNet_B2.yaml create mode 100644 mblt_vision/models/EfficientNet_B3.yaml create mode 100644 mblt_vision/models/EfficientNet_B4.yaml create mode 100644 mblt_vision/models/EfficientNet_B5.yaml create mode 100644 mblt_vision/models/EfficientNet_B6.yaml create mode 100644 mblt_vision/models/EfficientNet_B7.yaml create mode 100644 mblt_vision/models/EfficientNet_V2_L.yaml create mode 100644 mblt_vision/models/EfficientNet_V2_M.yaml create mode 100644 mblt_vision/models/EfficientNet_V2_S.yaml create mode 100644 mblt_vision/models/FlexiVit_Base.yaml create mode 100644 mblt_vision/models/FlexiVit_Large.yaml create mode 100644 mblt_vision/models/FlexiVit_Small.yaml create mode 100644 mblt_vision/models/GELANc-seg.yaml create mode 100644 mblt_vision/models/GELANc.yaml create mode 100644 mblt_vision/models/GELANe.yaml create mode 100644 mblt_vision/models/GELANm.yaml create mode 100644 mblt_vision/models/GELANs.yaml create mode 100644 mblt_vision/models/GoogLeNet.yaml create mode 100644 mblt_vision/models/Inception_V3.yaml create mode 100644 mblt_vision/models/LeViT_Conv_128.yaml create mode 100644 mblt_vision/models/LeViT_Conv_128S.yaml create mode 100644 mblt_vision/models/LeViT_Conv_192.yaml create mode 100644 mblt_vision/models/LeViT_Conv_256.yaml create mode 100644 mblt_vision/models/LeViT_Conv_384.yaml create mode 100644 mblt_vision/models/MNASNet0_5.yaml create mode 100644 mblt_vision/models/MNASNet0_75.yaml create mode 100644 mblt_vision/models/MNASNet1_0.yaml create mode 100644 mblt_vision/models/MNASNet1_3.yaml create mode 100644 mblt_vision/models/MobileNet_V2.yaml create mode 100644 mblt_vision/models/MobileNet_V3_Large.yaml create mode 100644 mblt_vision/models/MobileNet_V3_Small.yaml create mode 100644 mblt_vision/models/RegNet_X_16GF.yaml create mode 100644 mblt_vision/models/RegNet_X_1_6GF.yaml create mode 100644 mblt_vision/models/RegNet_X_32GF.yaml create mode 100644 mblt_vision/models/RegNet_X_3_2GF.yaml create mode 100644 mblt_vision/models/RegNet_X_400MF.yaml create mode 100644 mblt_vision/models/RegNet_X_800MF.yaml create mode 100644 mblt_vision/models/RegNet_X_8GF.yaml create mode 100644 mblt_vision/models/RegNet_Y_16GF.yaml create mode 100644 mblt_vision/models/RegNet_Y_1_6GF.yaml create mode 100644 mblt_vision/models/RegNet_Y_32GF.yaml create mode 100644 mblt_vision/models/RegNet_Y_3_2GF.yaml create mode 100644 mblt_vision/models/RegNet_Y_400MF.yaml create mode 100644 mblt_vision/models/RegNet_Y_800MF.yaml create mode 100644 mblt_vision/models/RegNet_Y_8GF.yaml create mode 100644 mblt_vision/models/RepViT_M0_9.yaml create mode 100644 mblt_vision/models/RepViT_M1.yaml create mode 100644 mblt_vision/models/RepViT_M1_0.yaml create mode 100644 mblt_vision/models/RepViT_M1_1.yaml create mode 100644 mblt_vision/models/RepViT_M1_5.yaml create mode 100644 mblt_vision/models/RepViT_M2.yaml create mode 100644 mblt_vision/models/RepViT_M2_3.yaml create mode 100644 mblt_vision/models/RepViT_M3.yaml create mode 100644 mblt_vision/models/ResNeXt101_32X8D.yaml create mode 100644 mblt_vision/models/ResNeXt101_64X4D.yaml create mode 100644 mblt_vision/models/ResNeXt50_32X4D.yaml create mode 100644 mblt_vision/models/ResNet101.yaml create mode 100644 mblt_vision/models/ResNet152.yaml create mode 100644 mblt_vision/models/ResNet18.yaml create mode 100644 mblt_vision/models/ResNet34.yaml create mode 100644 mblt_vision/models/ResNet50.yaml create mode 100644 mblt_vision/models/ShuffleNet_V2_X0_5.yaml create mode 100644 mblt_vision/models/ShuffleNet_V2_X1_0.yaml create mode 100644 mblt_vision/models/ShuffleNet_V2_X1_5.yaml create mode 100644 mblt_vision/models/ShuffleNet_V2_X2_0.yaml create mode 100644 mblt_vision/models/SqueezeNet1_0.yaml create mode 100644 mblt_vision/models/SqueezeNet1_1.yaml create mode 100644 mblt_vision/models/Swin_B.yaml create mode 100644 mblt_vision/models/Swin_S.yaml create mode 100644 mblt_vision/models/Swin_T.yaml create mode 100644 mblt_vision/models/VGG11.yaml create mode 100644 mblt_vision/models/VGG11_BN.yaml create mode 100644 mblt_vision/models/VGG13.yaml create mode 100644 mblt_vision/models/VGG13_BN.yaml create mode 100644 mblt_vision/models/VGG16.yaml create mode 100644 mblt_vision/models/VGG16_BN.yaml create mode 100644 mblt_vision/models/VGG19.yaml create mode 100644 mblt_vision/models/VGG19_BN.yaml create mode 100644 mblt_vision/models/ViT_B_16.yaml create mode 100644 mblt_vision/models/ViT_B_32.yaml create mode 100644 mblt_vision/models/ViT_Base_Patch16_224.yaml create mode 100644 mblt_vision/models/ViT_Base_Patch16_384.yaml create mode 100644 mblt_vision/models/ViT_Base_Patch32_224.yaml create mode 100644 mblt_vision/models/ViT_Base_Patch32_384.yaml create mode 100644 mblt_vision/models/ViT_Base_Patch8_224.yaml create mode 100644 mblt_vision/models/ViT_L_16.yaml create mode 100644 mblt_vision/models/ViT_L_32.yaml create mode 100644 mblt_vision/models/ViT_Large_Patch16_224.yaml create mode 100644 mblt_vision/models/ViT_Large_Patch16_384.yaml create mode 100644 mblt_vision/models/ViT_Large_Patch32_384.yaml create mode 100644 mblt_vision/models/ViT_Small_Patch16_224.yaml create mode 100644 mblt_vision/models/ViT_Small_Patch16_384.yaml create mode 100644 mblt_vision/models/ViT_Small_Patch32_224.yaml create mode 100644 mblt_vision/models/ViT_Small_Patch32_384.yaml create mode 100644 mblt_vision/models/ViT_Tiny_Patch16_224.yaml create mode 100644 mblt_vision/models/ViT_Tiny_Patch16_384.yaml create mode 100644 mblt_vision/models/VisFormer_Small.yaml create mode 100644 mblt_vision/models/VisFormer_Tiny.yaml create mode 100644 mblt_vision/models/Wide_ResNet101_2.yaml create mode 100644 mblt_vision/models/Wide_ResNet50_2.yaml create mode 100644 mblt_vision/models/YOLO11l-cls.yaml create mode 100644 mblt_vision/models/YOLO11l-face.yaml create mode 100644 mblt_vision/models/YOLO11l-obb.yaml create mode 100644 mblt_vision/models/YOLO11l-pose.yaml create mode 100644 mblt_vision/models/YOLO11l-seg.yaml create mode 100644 mblt_vision/models/YOLO11l.yaml create mode 100644 mblt_vision/models/YOLO11m-cls.yaml create mode 100644 mblt_vision/models/YOLO11m-face.yaml create mode 100644 mblt_vision/models/YOLO11m-obb.yaml create mode 100644 mblt_vision/models/YOLO11m-pose.yaml create mode 100644 mblt_vision/models/YOLO11m-seg.yaml create mode 100644 mblt_vision/models/YOLO11m.yaml create mode 100644 mblt_vision/models/YOLO11n-cls.yaml create mode 100644 mblt_vision/models/YOLO11n-face.yaml create mode 100644 mblt_vision/models/YOLO11n-obb.yaml create mode 100644 mblt_vision/models/YOLO11n-pose.yaml create mode 100644 mblt_vision/models/YOLO11n-seg.yaml create mode 100644 mblt_vision/models/YOLO11n.yaml create mode 100644 mblt_vision/models/YOLO11s-cls.yaml create mode 100644 mblt_vision/models/YOLO11s-face.yaml create mode 100644 mblt_vision/models/YOLO11s-obb.yaml create mode 100644 mblt_vision/models/YOLO11s-pose.yaml create mode 100644 mblt_vision/models/YOLO11s-seg.yaml create mode 100644 mblt_vision/models/YOLO11s.yaml create mode 100644 mblt_vision/models/YOLO11x-cls.yaml create mode 100644 mblt_vision/models/YOLO11x-obb.yaml create mode 100644 mblt_vision/models/YOLO11x-pose.yaml create mode 100644 mblt_vision/models/YOLO11x-seg.yaml create mode 100644 mblt_vision/models/YOLO11x.yaml create mode 100644 mblt_vision/models/YOLO12l-face.yaml create mode 100644 mblt_vision/models/YOLO12l-seg.yaml create mode 100644 mblt_vision/models/YOLO12l.yaml create mode 100644 mblt_vision/models/YOLO12m-face.yaml create mode 100644 mblt_vision/models/YOLO12m-seg.yaml create mode 100644 mblt_vision/models/YOLO12m.yaml create mode 100644 mblt_vision/models/YOLO12n-face.yaml create mode 100644 mblt_vision/models/YOLO12n-seg.yaml create mode 100644 mblt_vision/models/YOLO12n.yaml create mode 100644 mblt_vision/models/YOLO12s-face.yaml create mode 100644 mblt_vision/models/YOLO12s-seg.yaml create mode 100644 mblt_vision/models/YOLO12s.yaml create mode 100644 mblt_vision/models/YOLO12x-seg.yaml create mode 100644 mblt_vision/models/YOLO12x.yaml create mode 100644 mblt_vision/models/YOLO26l-cls.yaml create mode 100644 mblt_vision/models/YOLO26l-depth.yaml create mode 100644 mblt_vision/models/YOLO26l-distill.yaml create mode 100644 mblt_vision/models/YOLO26l-obb.yaml create mode 100644 mblt_vision/models/YOLO26l-pose.yaml create mode 100644 mblt_vision/models/YOLO26l-seg.yaml create mode 100644 mblt_vision/models/YOLO26l-sem-ade20k.yaml create mode 100644 mblt_vision/models/YOLO26l-sem.yaml create mode 100644 mblt_vision/models/YOLO26l.yaml create mode 100644 mblt_vision/models/YOLO26m-cls.yaml create mode 100644 mblt_vision/models/YOLO26m-depth.yaml create mode 100644 mblt_vision/models/YOLO26m-distill.yaml create mode 100644 mblt_vision/models/YOLO26m-obb.yaml create mode 100644 mblt_vision/models/YOLO26m-pose.yaml create mode 100644 mblt_vision/models/YOLO26m-seg.yaml create mode 100644 mblt_vision/models/YOLO26m-sem-ade20k.yaml create mode 100644 mblt_vision/models/YOLO26m-sem.yaml create mode 100644 mblt_vision/models/YOLO26m.yaml create mode 100644 mblt_vision/models/YOLO26n-cls.yaml create mode 100644 mblt_vision/models/YOLO26n-depth.yaml create mode 100644 mblt_vision/models/YOLO26n-distill.yaml create mode 100644 mblt_vision/models/YOLO26n-obb.yaml create mode 100644 mblt_vision/models/YOLO26n-pose.yaml create mode 100644 mblt_vision/models/YOLO26n-seg.yaml create mode 100644 mblt_vision/models/YOLO26n-sem-ade20k.yaml create mode 100644 mblt_vision/models/YOLO26n-sem.yaml create mode 100644 mblt_vision/models/YOLO26n.yaml create mode 100644 mblt_vision/models/YOLO26s-cls.yaml create mode 100644 mblt_vision/models/YOLO26s-depth.yaml create mode 100644 mblt_vision/models/YOLO26s-distill.yaml create mode 100644 mblt_vision/models/YOLO26s-obb.yaml create mode 100644 mblt_vision/models/YOLO26s-pose.yaml create mode 100644 mblt_vision/models/YOLO26s-seg.yaml create mode 100644 mblt_vision/models/YOLO26s-sem-ade20k.yaml create mode 100644 mblt_vision/models/YOLO26s-sem.yaml create mode 100644 mblt_vision/models/YOLO26s.yaml create mode 100644 mblt_vision/models/YOLO26x-cls.yaml create mode 100644 mblt_vision/models/YOLO26x-depth.yaml create mode 100644 mblt_vision/models/YOLO26x-distill.yaml create mode 100644 mblt_vision/models/YOLO26x-obb.yaml create mode 100644 mblt_vision/models/YOLO26x-pose.yaml create mode 100644 mblt_vision/models/YOLO26x-seg.yaml create mode 100644 mblt_vision/models/YOLO26x-sem-ade20k.yaml create mode 100644 mblt_vision/models/YOLO26x-sem.yaml create mode 100644 mblt_vision/models/YOLO26x.yaml create mode 100644 mblt_vision/models/YOLOv10b.yaml create mode 100644 mblt_vision/models/YOLOv10l-face.yaml create mode 100644 mblt_vision/models/YOLOv10l.yaml create mode 100644 mblt_vision/models/YOLOv10m-face.yaml create mode 100644 mblt_vision/models/YOLOv10m.yaml create mode 100644 mblt_vision/models/YOLOv10n-face.yaml create mode 100644 mblt_vision/models/YOLOv10n.yaml create mode 100644 mblt_vision/models/YOLOv10s-face.yaml create mode 100644 mblt_vision/models/YOLOv10s.yaml create mode 100644 mblt_vision/models/YOLOv10x.yaml create mode 100644 mblt_vision/models/YOLOv3-spp.yaml create mode 100644 mblt_vision/models/YOLOv3-sppu.yaml create mode 100644 mblt_vision/models/YOLOv3-tiny.yaml create mode 100644 mblt_vision/models/YOLOv3-tinyu.yaml create mode 100644 mblt_vision/models/YOLOv3.yaml create mode 100644 mblt_vision/models/YOLOv3u.yaml create mode 100644 mblt_vision/models/YOLOv5l-cls.yaml create mode 100644 mblt_vision/models/YOLOv5l-seg.yaml create mode 100644 mblt_vision/models/YOLOv5l.yaml create mode 100644 mblt_vision/models/YOLOv5l6.yaml create mode 100644 mblt_vision/models/YOLOv5l6u.yaml create mode 100644 mblt_vision/models/YOLOv5lu.yaml create mode 100644 mblt_vision/models/YOLOv5m-cls.yaml create mode 100644 mblt_vision/models/YOLOv5m-seg.yaml create mode 100644 mblt_vision/models/YOLOv5m.yaml create mode 100644 mblt_vision/models/YOLOv5m6.yaml create mode 100644 mblt_vision/models/YOLOv5m6u.yaml create mode 100644 mblt_vision/models/YOLOv5mu.yaml create mode 100644 mblt_vision/models/YOLOv5n-cls.yaml create mode 100644 mblt_vision/models/YOLOv5n-seg.yaml create mode 100644 mblt_vision/models/YOLOv5n.yaml create mode 100644 mblt_vision/models/YOLOv5n6.yaml create mode 100644 mblt_vision/models/YOLOv5n6u.yaml create mode 100644 mblt_vision/models/YOLOv5nu.yaml create mode 100644 mblt_vision/models/YOLOv5s-cls.yaml create mode 100644 mblt_vision/models/YOLOv5s-seg.yaml create mode 100644 mblt_vision/models/YOLOv5s.yaml create mode 100644 mblt_vision/models/YOLOv5s6.yaml create mode 100644 mblt_vision/models/YOLOv5s6u.yaml create mode 100644 mblt_vision/models/YOLOv5su.yaml create mode 100644 mblt_vision/models/YOLOv5x-cls.yaml create mode 100644 mblt_vision/models/YOLOv5x-seg.yaml create mode 100644 mblt_vision/models/YOLOv5x.yaml create mode 100644 mblt_vision/models/YOLOv5x6.yaml create mode 100644 mblt_vision/models/YOLOv5x6u.yaml create mode 100644 mblt_vision/models/YOLOv5xu.yaml create mode 100644 mblt_vision/models/YOLOv6m-face.yaml create mode 100644 mblt_vision/models/YOLOv6n-face.yaml create mode 100644 mblt_vision/models/YOLOv7.yaml create mode 100644 mblt_vision/models/YOLOv7d6.yaml create mode 100644 mblt_vision/models/YOLOv7e6.yaml create mode 100644 mblt_vision/models/YOLOv7e6e.yaml create mode 100644 mblt_vision/models/YOLOv7w6.yaml create mode 100644 mblt_vision/models/YOLOv7x.yaml create mode 100644 mblt_vision/models/YOLOv8l-cls.yaml create mode 100644 mblt_vision/models/YOLOv8l-face.yaml create mode 100644 mblt_vision/models/YOLOv8l-obb.yaml create mode 100644 mblt_vision/models/YOLOv8l-pose.yaml create mode 100644 mblt_vision/models/YOLOv8l-seg.yaml create mode 100644 mblt_vision/models/YOLOv8l.yaml create mode 100644 mblt_vision/models/YOLOv8m-cls.yaml create mode 100644 mblt_vision/models/YOLOv8m-face.yaml create mode 100644 mblt_vision/models/YOLOv8m-obb.yaml create mode 100644 mblt_vision/models/YOLOv8m-pose.yaml create mode 100644 mblt_vision/models/YOLOv8m-seg.yaml create mode 100644 mblt_vision/models/YOLOv8m.yaml create mode 100644 mblt_vision/models/YOLOv8n-cls.yaml create mode 100644 mblt_vision/models/YOLOv8n-face.yaml create mode 100644 mblt_vision/models/YOLOv8n-obb.yaml create mode 100644 mblt_vision/models/YOLOv8n-pose.yaml create mode 100644 mblt_vision/models/YOLOv8n-seg.yaml create mode 100644 mblt_vision/models/YOLOv8n.yaml create mode 100644 mblt_vision/models/YOLOv8s-cls.yaml create mode 100644 mblt_vision/models/YOLOv8s-obb.yaml create mode 100644 mblt_vision/models/YOLOv8s-pose.yaml create mode 100644 mblt_vision/models/YOLOv8s-seg.yaml create mode 100644 mblt_vision/models/YOLOv8s.yaml create mode 100644 mblt_vision/models/YOLOv8x-cls.yaml create mode 100644 mblt_vision/models/YOLOv8x-obb.yaml create mode 100644 mblt_vision/models/YOLOv8x-pose-p6.yaml create mode 100644 mblt_vision/models/YOLOv8x-pose.yaml create mode 100644 mblt_vision/models/YOLOv8x-seg.yaml create mode 100644 mblt_vision/models/YOLOv8x.yaml create mode 100644 mblt_vision/models/YOLOv9c-seg.yaml create mode 100644 mblt_vision/models/YOLOv9c.yaml create mode 100644 mblt_vision/models/YOLOv9e-seg.yaml create mode 100644 mblt_vision/models/YOLOv9e.yaml create mode 100644 mblt_vision/models/YOLOv9m.yaml create mode 100644 mblt_vision/models/YOLOv9s.yaml create mode 100644 mblt_vision/models/YOLOv9t.yaml create mode 100644 mblt_vision/obb/__init__.py create mode 100644 mblt_vision/object_detection/__init__.py create mode 100644 mblt_vision/pose_estimation/__init__.py create mode 100644 mblt_vision/semantic_segmentation/__init__.py create mode 100644 mblt_vision/utils/__init__.py create mode 100644 mblt_vision/utils/datasets/__init__.py create mode 100644 mblt_vision/utils/datasets/ade20k.py create mode 100644 mblt_vision/utils/datasets/cityscapes.py create mode 100644 mblt_vision/utils/datasets/coco.py create mode 100644 mblt_vision/utils/datasets/dotav1.py create mode 100644 mblt_vision/utils/datasets/imagenet.py create mode 100644 mblt_vision/utils/labels.py create mode 100644 mblt_vision/utils/letterbox.py create mode 100644 mblt_vision/utils/postprocess/__init__.py create mode 100644 mblt_vision/utils/postprocess/_letterbox.py create mode 100644 mblt_vision/utils/postprocess/base.py create mode 100644 mblt_vision/utils/postprocess/build_post.py create mode 100644 mblt_vision/utils/postprocess/cls_post.py create mode 100644 mblt_vision/utils/postprocess/common.py create mode 100644 mblt_vision/utils/postprocess/depth_post.py create mode 100644 mblt_vision/utils/postprocess/semantic_seg_post.py create mode 100644 mblt_vision/utils/postprocess/yolo_anchor_post.py create mode 100644 mblt_vision/utils/postprocess/yolo_anchorless_post.py create mode 100644 mblt_vision/utils/postprocess/yolo_dflfree_post.py create mode 100644 mblt_vision/utils/postprocess/yolo_nmsfree_post.py create mode 100644 mblt_vision/utils/preprocess/__init__.py create mode 100644 mblt_vision/utils/preprocess/_validation.py create mode 100644 mblt_vision/utils/preprocess/base.py create mode 100644 mblt_vision/utils/preprocess/build_pre.py create mode 100644 mblt_vision/utils/preprocess/center_crop.py create mode 100644 mblt_vision/utils/preprocess/letterbox.py create mode 100644 mblt_vision/utils/preprocess/normalize.py create mode 100644 mblt_vision/utils/preprocess/order.py create mode 100644 mblt_vision/utils/preprocess/reader.py create mode 100644 mblt_vision/utils/preprocess/resize.py create mode 100644 mblt_vision/utils/preprocess/yolo_pre.py create mode 100644 mblt_vision/utils/results.py create mode 100644 mblt_vision/utils/types.py create mode 100644 mblt_vision/wrapper.py create mode 100644 tests/TEST.md create mode 100644 tests/conftest.py create mode 100644 tests/rc/cr7.jpg create mode 100644 tests/rc/tabby.jpg create mode 100644 tests/rc/volcano.jpg create mode 100644 tests/test_resnet50.py create mode 100644 tests/test_vision_api.py create mode 100644 tests/test_yolo_det.py create mode 100644 tests/test_yolo_pose.py create mode 100644 tests/test_yolo_seg.py diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..dea7cbc --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,73 @@ +name: Publish to PyPI + +on: + release: + types: [published] + +permissions: + contents: read + +jobs: + build: + name: Build distribution ๐Ÿ› ๏ธ + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v5 + with: + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: '3.x' + + - name: Install build dependencies + run: | + python -m pip install --upgrade pip + python -m pip install build + + - name: Build package + run: python -m build + + - name: Upload built distributions + uses: actions/upload-artifact@v7 + with: + name: python-package-distributions + path: dist/ + + publish-to-testpypi: + name: Publish to TestPyPI ๐Ÿงช + needs: [build] + runs-on: ubuntu-latest + environment: testpypi + permissions: + id-token: write + steps: + - name: Download distribution artifacts + uses: actions/download-artifact@v7 + with: + name: python-package-distributions + path: dist/ + + - name: Publish to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/ + + publish-to-pypi: + name: Publish to PyPI ๐Ÿš€ + needs: [build, publish-to-testpypi] + runs-on: ubuntu-latest + environment: pypi + permissions: + id-token: write + steps: + - name: Download distribution artifacts + uses: actions/download-artifact@v7 + with: + name: python-package-distributions + path: dist/ + + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.gitignore b/.gitignore index e69de29..7bcf7eb 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,43 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +.Python +.venv/ +venv/ +env/ +.env +.pytest_cache/ +.mypy_cache/ +.ruff_cache/ +.coverage +coverage.xml +htmlcov/ +build/ +dist/ +*.egg-info/ + +# C/C++ build artifacts +build/ +cmake-build-*/ +CMakeFiles/ +CMakeCache.txt +cmake_install.cmake +compile_commands.json +*.o +*.obj +*.a +*.lib +*.so +*.dylib +*.dll +*.exe +*.out + +# IDE and OS files +.idea/ +.vscode/ +*.swp +*.swo +.DS_Store +Thumbs.db diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..b7350df --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,8 @@ +repos: + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.6.9 + hooks: + - id: ruff + args: [--fix] + - id: ruff-format + diff --git a/AGENTS.md b/AGENTS.md index c9b161e..652bf0a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,17 +9,17 @@ paths: ## Mission `mblt-vision-python` is the Python distribution and public compatibility layer for Mobilint -Vision. It binds to the supported native API in `mblt-vision`; it is not a second implementation -of the vision runtime. Its end-state is a drop-in replacement for the Vision API currently shipped -by `mblt-model-zoo`. +Vision. The immediate plan is a pure-Python implementation that can replace the Vision API +currently shipped by `mblt-model-zoo`. C++ bindings are deferred until `mblt-vision` has a stable, +supported native API. -The ownership boundary is deliberate: +The current ownership boundary is deliberate: -- `mblt-vision` owns inference, model loading, preprocessing, postprocessing, and native resource - management. -- This package owns Python ergonomics, Python object conversion, package metadata, wheels, API - documentation, and compatibility shims. -- Do not put GStreamer integration, C++ runtime logic, or duplicated numerical kernels in Python. +- This package owns the public Python API, model loading, preprocessing, postprocessing, runtime + integration, package metadata, wheels, documentation, and compatibility shims. +- Keep implementation code in Python; do not block Python API progress on C++ or GStreamer work. +- Design internal seams so a future optional `mblt-vision` backend can replace implementation + details without changing the documented Python API or result contracts. ## Before Editing @@ -29,8 +29,9 @@ The ownership boundary is deliberate: - For a Model Zoo replacement item, inspect the matching behavior in `../mblt-model-zoo/mblt_model_zoo/vision`, including its tests and model YAML configuration. Treat it as the compatibility reference until the new package explicitly supersedes it. -- Coordinate native API changes with `../mblt-vision`. Do not bind private, undocumented, or - build-tree-only native symbols. +- Do not make `../mblt-vision`, a compiled extension, or GStreamer a dependency of normal package + development, installation, import, or unit tests. Revisit integration only after its native API + is documented and versioned. ## Python API Contract @@ -46,32 +47,36 @@ The ownership boundary is deliberate: buffer for as long as native code can access it. - Never expose raw native pointers or require callers to manage native lifetime. Wrap resources in deterministic `close()`/context-manager behavior and safe finalization as appropriate. -- Maintain task vocabulary compatibility: canonical `obb`, with - `oriented_bounding_boxes` accepted only as an input compatibility alias. - -## Binding and Native Dependency Rules - -- The binding must use only the documented, versioned `mblt-vision` interface. Add a native - capability/version check when a Python feature needs a newer library. -- Keep ownership and the GIL explicit. Release the GIL only around blocking native work that does - not access Python objects; reacquire it before callbacks, exceptions, or Python buffer access. -- Do not catch broad native errors and return empty or plausible-looking results. Fail loudly with - an exception that identifies the invalid input, unsupported feature, or native-library problem. -- Keep native library discovery relocatable and diagnosable. Avoid hard-coded developer paths, - `LD_LIBRARY_PATH` requirements for normal wheels, or importing an optional native backend at - module import time if that prevents useful error reporting. +- Use `obb` as the sole oriented-bounding-box task name. + +## Python-First Architecture + +- Keep the public layer independent from a particular backend. Define small internal interfaces + for model execution and artifact resolution, but do not add speculative abstractions before a + second backend exists. +- Put preprocessing, postprocessing, model configuration, and compatibility behavior in tested + Python modules. Reuse Model Zoo semantics deliberately; do not copy code wholesale without + understanding its public contract and license context. +- Use established Python runtime dependencies only when they materially support the package goals. + Keep optional frameworks lazy-imported and raise a specific installation error when a requested + backend is unavailable. +- Do not catch broad runtime errors and return empty or plausible-looking results. Fail loudly with + an exception that identifies the invalid input, unsupported feature, or unavailable dependency. +- If/when a native backend is introduced, it must be optional, use a documented and versioned + `mblt-vision` interface, and preserve the Python public API, exceptions, result values, layouts, + and lifecycle behavior. Add native capability/version checks at that time. ## PyPI and Wheel Packaging - `pyproject.toml` is the source of truth for Python metadata, supported Python versions, dependencies, and build backend. Keep package versioning synchronized with the exposed API and native compatibility requirements. -- Distribute wheels that include or correctly depend on the matching native library according to - the chosen packaging strategy. Do not publish an sdist/wheel whose import or basic diagnostics - are broken without a locally installed development tree. +- Publish pure-Python wheels and sdists that install and import without a local C++ build, a native + library, or GStreamer. Do not publish artifacts whose import or basic diagnostics require a + developer environment. - Build and test each intended platform/architecture wheel in a clean environment. Verify wheel - contents, package metadata, install-from-wheel, import, and a minimal inference-free native - smoke test. Do not upload from a developer environment as the only validation. + contents, package metadata, install-from-wheel, import, and a minimal API smoke test. Do not + upload from a developer environment as the only validation. - Keep optional dependencies genuinely optional and avoid importing them from package top level. Do not add model weights, caches, test assets, or compiled build artifacts to source control. @@ -83,9 +88,11 @@ The ownership boundary is deliberate: - Use deterministic differential tests against Model Zoo for shared behavior. Cover edge cases, not only successful end-to-end examples: invalid layouts/dtypes, empty detections, threshold boundaries, image geometry, model aliases, task aliases, and resource cleanup. -- Numerical semantics belong to the native layer, but binding tests must verify that Python - conversion does not change values, layout, coordinates, ordering, dtype, or ownership. -- Avoid making hardware, downloaded models, or GStreamer a requirement for ordinary unit tests. +- Verify that Python preprocessing and postprocessing preserve expected values, layouts, + coordinates, ordering, dtype, and ownership. If a future backend is used, require the same + parity from its conversion boundary. +- Avoid making hardware, downloaded models, compiled extensions, or GStreamer a requirement for + ordinary unit tests. Mark and document integration prerequisites; run the narrowest relevant suite first. ## Code Quality and Documentation diff --git a/CLAUDE.md b/CLAUDE.md index 9d3f9ec..bae10da 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,5 +2,5 @@ @AGENTS.md -`AGENTS.md` is the canonical guide for this repository. Follow it for the thin native-binding, -PyPI-wheel, lifecycle, and mblt-model-zoo Vision compatibility requirements. +`AGENTS.md` is the canonical guide for this repository. Follow it for the Python-first +implementation, PyPI-wheel, lifecycle, and mblt-model-zoo Vision compatibility requirements. diff --git a/README.md b/README.md index e69de29..e35a5b0 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,27 @@ +# mblt-vision-python + +**Vision models** for Mobilint NPUs. + +Image classification, object detection, instance segmentation and pose estimation on +Mobilint NPUs. Each model is a class that carries its own pre- and post-processing: + +```python +from mblt_vision import ResNet50 + +model = ResNet50() +x = model.preprocess("image.jpg") +result = model.postprocess(model(x)) +``` + +Split out of `mblt-model-zoo`, which still re-exports it as `mblt_model_zoo.vision` +so existing code keeps working. + +## Installation + +```bash +pip install mblt-vision-python +``` + +## License + +BSD-3-Clause. diff --git a/benchmark/README.md b/benchmark/README.md new file mode 100644 index 0000000..884e327 --- /dev/null +++ b/benchmark/README.md @@ -0,0 +1,172 @@ +# Measuring the Performance of Vision Models + +You can run the benchmark as the following steps: + +1. Download the vision benchmark dataset and organize the dataset. +2. Prepare the model for benchmark. +3. Run the benchmark and evaluate the performance. + +> โš ๏ธ **Warning:** Mobilint does not provide the vision benchmark dataset or direct download link due to the terms of use of the dataset. +Mobilint model zoo provides utilities on dataset organization, model preparation, and benchmark evaluation, therefore you can easily reproduce the [published benchmark results](../mblt_vision/README.md). + +Furthermore, you can simply run the benchmark with the model you compiled with custom quantization recipe. + +## Benchmark with ImageNet Dataset + +### Download the ImageNet Dataset + +To download the ImageNet dataset, visit the [ImageNet website](https://image-net.org/) and download the dataset with the following steps: + +0. Login with your account. If you don't have an account, you can register a new account. (Using `.edu` email is highly recommended) +1. Click on the "Download" button on the menu bar. +2. Go to "ImageNet Large-scale Visual Recognition Challenge (ILSVRC)" section, and click 2012 button. +3. Download the following files: + - ILSVRC2012_img_val.tar: Displayes as "Validation images (all tasks)" with MD5 checksum `29b22e2961454d5413ddabcf34fc5622`. + - ILSVRC2012_bbox_val_v3.tgz: Displayes as "Validation bounding box annotations (all tasks)" with MD5 checksum `f4cd18b5ea29fe6bbea62ec9c20d80f0`. + +### Organize the ImageNet Dataset + +You can organize the ImageNet dataset with the following command: + +```bash +python organize_imagenet.py --image_dir {path_to_ILSVRC2012_img_val.tar} --xml_dir {path_to_ILSVRC2012_bbox_val_v3.tgz} --output_dir ~/.mblt_model_zoo/datasets/imagenet +``` + +This will organize the dataset into the following structure: + +```text +~/.mblt_model_zoo/datasets/imagenet/ +โ”œโ”€โ”€ n01440764/ +โ”‚ โ”œโ”€โ”€ ILSVRC2012_val_00000293.JPEG +โ”‚ โ”œโ”€โ”€ ILSVRC2012_val_00002138.JPEG +โ”‚ โ”œโ”€โ”€ ... +โ”œโ”€โ”€ n01443537/ +โ”œโ”€โ”€ n01484850/ +โ”œโ”€โ”€ ... +``` + +### Prepare the Model for ImageNet Benchmark + +You can prepare the model for ImageNet benchmark or simply run the benchmark with the model that is provided in [mblt-model-zoo](../mblt_vision/README.md). + +If you want to try with your own model, refer to the [tutorial guide](https://github.com/mobilint/mblt-sdk-tutorial/) to compile the model with custom quantization recipe. + +### Run the ImageNet Benchmark + +You can run the ImageNetbenchmark with the following command: + +```bash +python benchmark_imagenet.py --local_path {path to local mxq(optional)}\ +--model_type {model type(optional)}\ +--infer_mode {single, multi, global, global4, global8(optional). Default is global}\ +--product {aries, regulus(optional). Default is aries}\ +--batch_size {batch size(optional). Default is 1}\ +--data_path {path to the ImageNet data(optional). Default is ~/.mblt_model_zoo/datasets/imagenet} +``` + +Example: + +```bash +python benchmark_imagenet.py --local_path ./resnet50_IMAGENET1K_V1.mxq --model_type IMAGENET1K_V1 --infer_mode multi --product aries --batch_size 8 --data_path ~/.mblt_model_zoo/datasets/imagenet +``` + +## Benchmark with COCO Dataset + +### Download the COCO Dataset + +To download the COCO dataset, visit the [COCO website](https://cocodataset.org/) and download the dataset with the following steps: + +1. Click on the "Dataset" button on the menu bar, and click "Download" button. +2. On the "Images" column, click "2017 Val images" button to download `val2017.zip` file. +3. On the "Annotations" column, click "2017 Train/Val annotations" button to download `annotations_trainval2017.zip` file. + +### Organize the COCO Dataset + +You can organize the COCO dataset with the following command: + +```bash +python organize_coco.py --image_dir {path_to_val2017.zip} --annotation_dir {path_to_annotations_trainval2017.zip} --output_dir ~/.mblt_model_zoo/datasets/coco +``` + +This will organize the dataset into the following structure: + +```text +~/.mblt_model_zoo/datasets/coco/ +โ”œโ”€โ”€ val2017/ +โ”‚ โ”œโ”€โ”€ 000000000139.jpg +โ”‚ โ”œโ”€โ”€ 000000000285.jpg +โ”‚ โ”œโ”€โ”€ ... +โ”œโ”€โ”€ captions_val2017.json +โ”œโ”€โ”€ instances_val2017.json +โ”œโ”€โ”€ person_keypoints_val2017.json +``` + +### Prepare the Model for COCO Benchmark + +You can prepare the model for COCO benchmark or simply run the benchmark with the model that is provided in [mblt-model-zoo](../mblt_vision/README.md). + +If you want to try with your own model, refer to the [tutorial guide](https://github.com/mobilint/mblt-sdk-tutorial/) to compile the model with custom quantization recipe. + +### Run the COCO Benchmark + +You can run the COCO benchmark with the following command: + +```bash +python benchmark_coco.py --local_path {path to local mxq(optional)}\ +--model_type {model type(optional)}\ +--infer_mode {single, multi, global, global4, global8(optional). Default is global}\ +--product {aries, regulus(optional). Default is aries}\ +--batch_size {batch size(optional). Default is 1}\ +--data_path {path to the COCO data(optional). Default is ~/.mblt_model_zoo/datasets/coco} +--conf_thres {confidence threshold for object detection(optional). Default is 0.001}\ +--iou_thres {IOU threshold for object detection(optional). Default is 0.7} +``` + +Example: + +```bash +python benchmark_coco.py --infer_mode single --product aries --batch_size 8 --data_path ~/.mblt_model_zoo/datasets/coco --conf_thres 0.001 --iou_thres 0.7 +``` + +## Benchmark with WiderFace Dataset + +### Download the WiderFace Dataset + +To download the WiderFace dataset, visit the [WiderFace's Hugging Face page](https://huggingface.co/datasets/CUHK-CSE/wider_face) and download the dataset with the following steps: + +1. Go to the "Files and versions" section, and click "data" folder. +2. Download "WIDER_val.zip" file and "wider_face_split.zip" file. + +### Organize the WiderFace Dataset + +You can organize the WiderFace dataset with the following command: + +```bash +python organize_widerface.py --image_dir {path_to_WIDER_val.zip} --annotation_dir {path_to_wider_face_split.zip} --output_dir ~/.mblt_model_zoo/datasets/widerface +``` + +This will organize the dataset into the following structure: + +```text +~/.mblt_model_zoo/datasets/widerface/ +โ”œโ”€โ”€ images/ +โ”‚ โ”œโ”€โ”€ 0--Parade/ +| โ”œโ”€โ”€ 0_Parade_Parade_0_102.jpg +| โ”œโ”€โ”€ 0_Parade_Parade_0_120.jpg +| |... +| โ”œโ”€โ”€ 1--Handshaking/ +| |... +| โ”œโ”€โ”€ ... +โ”œโ”€โ”€ wider_face_val.mat +โ”œโ”€โ”€ wider_face_val_bbx_gt.txt +``` + +### Prepare the Model for WiderFace Benchmark + +You can prepare the model for WiderFace benchmark or simply run the benchmark with the model that is provided in [mblt-model-zoo](../mblt_vision/README.md). + +If you want to try with your own model, refer to the [tutorial guide](https://github.com/mobilint/mblt-sdk-tutorial/) to compile the model with custom quantization recipe. + +### Run the WiderFace Benchmark + +Pending \ No newline at end of file diff --git a/benchmark/benchmark_coco.py b/benchmark/benchmark_coco.py new file mode 100644 index 0000000..2135a4e --- /dev/null +++ b/benchmark/benchmark_coco.py @@ -0,0 +1,183 @@ +""" +Benchmark script for YOLOv5m on COCO dataset. + +This script runs the benchmark for the YOLOv5m model using the COCO dataset. +It initializes the model and evaluates its performance. +""" + +import argparse +import os + +import mblt_vision +from mblt_vision.utils.evaluation import eval_coco + +MODEL_LIST = ( + [ + "YOLO11lSeg", + "YOLO11mSeg", + "YOLO11nSeg", + "YOLO11sSeg", + "YOLO11xSeg", + "YOLO26lSeg", + "YOLO26mSeg", + "YOLO26nSeg", + "YOLO26sSeg", + "YOLO26xSeg", + "YOLOv5lSeg", + "YOLOv5mSeg", + "YOLOv5nSeg", + "YOLOv5sSeg", + "YOLOv5xSeg", + "YOLOv8lSeg", + "YOLOv8mSeg", + "YOLOv8nSeg", + "YOLOv8sSeg", + "YOLOv8xSeg", + "YOLOv9cSeg", + "YOLOv9eSeg", + ] + + [ + "GELANc", + "GELANe", + "GELANm", + "GELANs", + "YOLO11l", + "YOLO11m", + "YOLO11n", + "YOLO11s", + "YOLO11x", + "YOLO12l", + "YOLO12m", + "YOLO12n", + "YOLO12s", + "YOLO12x", + "YOLO26l", + "YOLO26m", + "YOLO26n", + "YOLO26s", + "YOLO26x", + "YOLOv10b", + "YOLOv10l", + "YOLOv10m", + "YOLOv10n", + "YOLOv10s", + "YOLOv10x", + "YOLOv3", + "YOLOv3_spp", + "YOLOv3_sppu", + "YOLOv3_tiny", + "YOLOv3_tinyu", + "YOLOv3u", + "YOLOv5l", + "YOLOv5l6", + "YOLOv5l6u", + "YOLOv5lu", + "YOLOv5m", + "YOLOv5m6", + "YOLOv5m6u", + "YOLOv5mu", + "YOLOv5n", + "YOLOv5n6", + "YOLOv5n6u", + "YOLOv5nu", + "YOLOv5s", + "YOLOv5s6", + "YOLOv5s6u", + "YOLOv5su", + "YOLOv5x", + "YOLOv5x6", + "YOLOv5x6u", + "YOLOv5xu", + "YOLOv7", + "YOLOv7d6", + "YOLOv7e6", + "YOLOv7e6e", + "YOLOv7w6", + "YOLOv7x", + "YOLOv8l", + "YOLOv8m", + "YOLOv8n", + "YOLOv8s", + "YOLOv8x", + "YOLOv9c", + "YOLOv9e", + "YOLOv9m", + "YOLOv9s", + "YOLOv9t", + ] + + [ + "YOLO11lPose", + "YOLO11mPose", + "YOLO11nPose", + "YOLO11sPose", + "YOLO11xPose", + "YOLO26lPose", + "YOLO26mPose", + "YOLO26nPose", + "YOLO26sPose", + "YOLO26xPose", + "YOLOv8lPose", + "YOLOv8mPose", + "YOLOv8nPose", + "YOLOv8sPose", + "YOLOv8xPose", + ] +) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Run YOLOv5m Benchmark") + # --- Model Configuration --- + parser.add_argument( + "--model-name", + type=str, + default="YOLOv5m", + choices=MODEL_LIST, + help="Model name", + ) + parser.add_argument( + "--local-path", + type=str, + default=None, + help="Path to the YOLOv5m model file (.mxq)", + ) + parser.add_argument("--model-type", type=str, default="DEFAULT", help="Model type") + parser.add_argument( + "--infer-mode", + type=str, + default="global8", + choices=["single", "multi", "global4", "global8"], + help="Inference mode", + ) + parser.add_argument("--product", type=str, default="aries", help="Product") + # --- Benchmark Configuration --- + parser.add_argument("--batch-size", type=int, default=1, help="Batch size") + parser.add_argument( + "--data-path", + type=str, + default=os.path.expanduser("~/.mblt_model_zoo/datasets/coco"), + help="Path to the COCO data", + ) + parser.add_argument( + "--conf-thres", + type=float, + default=0.001, + help="Confidence threshold for object detection", + ) + parser.add_argument( + "--iou-thres", + type=float, + default=0.7, + help="IOU threshold for object detection", + ) + args = parser.parse_args() + + model_cls = getattr(mblt_vision, args.model_name) + # --- Model Initialization --- + model = model_cls(args.local_path, args.model_type, args.infer_mode, args.product) + + # --- Benchmark Execution --- + acc = eval_coco( + model, args.data_path, args.batch_size, args.conf_thres, args.iou_thres + ) + print(f"COCO evaluation completed. mAP 50:95: {acc:.5f}") diff --git a/benchmark/benchmark_imagenet.py b/benchmark/benchmark_imagenet.py new file mode 100644 index 0000000..dd7dab1 --- /dev/null +++ b/benchmark/benchmark_imagenet.py @@ -0,0 +1,137 @@ +""" +Benchmark script for ResNet50 on ImageNet dataset. + +This script runs the benchmark for the ResNet50 model using the ImageNet dataset. +It initializes the model and evaluates its performance. +""" + +import argparse +import os + +import mblt_vision +from mblt_vision.utils.evaluation import eval_imagenet + +MODEL_LIST = [ + "AlexNet", + "ConvNeXt_Base", + "ConvNeXt_Large", + "ConvNeXt_Small", + "ConvNeXt_Tiny", + "DeiT3_Base_Patch16_224", + "DeiT3_Base_Patch16_384", + "DeiT3_Large_Patch16_224", + "DeiT3_Large_Patch16_384", + "DeiT3_Medium_Patch16_224", + "DeiT3_Small_Patch16_224", + "DeiT3_Small_Patch16_384", + "DeiT_Base_Patch16_224", + "DeiT_Base_Patch16_384", + "DeiT_Small_Patch16_224", + "DeiT_Tiny_Patch16_224", + "DenseNet121", + "DenseNet169", + "DenseNet201", + "FlexiViT_Base", + "FlexiViT_Large", + "FlexiViT_Small", + "GoogLeNet", + "Inception_V3", + "MNasNet1_0", + "MNasNet1_3", + "MobileNet_V2", + "RegNet_X_16GF", + "RegNet_X_1_6GF", + "RegNet_X_32GF", + "RegNet_X_3_2GF", + "RegNet_X_400MF", + "RegNet_X_800MF", + "RegNet_X_8GF", + "RegNet_Y_16GF", + "RegNet_Y_1_6GF", + "RegNet_Y_32GF", + "RegNet_Y_3_2GF", + "RegNet_Y_400MF", + "RegNet_Y_800MF", + "RegNet_Y_8GF", + "ResNet101", + "ResNet152", + "ResNet18", + "ResNet34", + "ResNet50", + "ResNext101_32x8d", + "ResNext101_64x4d", + "ResNext50_32x4d", + "ShuffleNet_V2_X1_0", + "ShuffleNet_V2_X1_5", + "ShuffleNet_V2_X2_0", + "VGG11", + "VGG11_BN", + "VGG13", + "VGG13_BN", + "VGG16", + "VGG16_BN", + "VGG19", + "VGG19_BN", + "ViT_Base_Patch16_224", + "ViT_Base_Patch16_384", + "ViT_Base_Patch32_224", + "ViT_Base_Patch32_384", + "ViT_Base_Patch8_224", + "ViT_Large_Patch16_224", + "ViT_Large_Patch16_384", + "ViT_Large_Patch32_384", + "ViT_Small_Patch16_224", + "ViT_Small_Patch16_384", + "ViT_Small_Patch32_224", + "ViT_Small_Patch32_384", + "ViT_Tiny_Patch16_224", + "ViT_Tiny_Patch16_384", + "Wide_ResNet101_2", + "Wide_ResNet50_2", +] + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Run ResNet50 Benchmark") + # --- Model Configuration --- + parser.add_argument( + "--model-name", + type=str, + default="ResNet50", + choices=MODEL_LIST, + help="Model name", + ) + parser.add_argument( + "--local-path", + type=str, + default=None, + help="Path to the ResNet50 model file (.mxq)", + ) + parser.add_argument("--model-type", type=str, default="DEFAULT", help="Model type") + parser.add_argument( + "--infer-mode", + type=str, + default="global8", + choices=["single", "multi", "global4", "global8"], + help="Inference mode", + ) + parser.add_argument("--product", type=str, default="aries", help="Product") + # --- Benchmark Configuration --- + parser.add_argument("--batch-size", type=int, default=1, help="Batch size") + parser.add_argument( + "--data-path", + type=str, + default=os.path.expanduser("~/.mblt_model_zoo/datasets/imagenet"), + help="Path to the ImageNet data", + ) + args = parser.parse_args() + model_cls = getattr(mblt_vision, args.model_name) + # --- Model Initialization --- + model = model_cls( + local_path=args.local_path, + model_type=args.model_type, + infer_mode=args.infer_mode, + product=args.product, + ) + + # --- Benchmark Execution --- + eval_imagenet(model, args.data_path, args.batch_size) diff --git a/benchmark/organize_coco.py b/benchmark/organize_coco.py new file mode 100644 index 0000000..28e52cf --- /dev/null +++ b/benchmark/organize_coco.py @@ -0,0 +1,36 @@ +""" +Script to organize the COCO dataset. + +This script takes the raw image and annotation zip files for the COCO dataset +and organizes them into a structure suitable for the model zoo. +""" + +import argparse +import os + +from mblt_vision.utils.datasets import organize_coco + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Organize COCO dataset") + parser.add_argument( + "--image-dir", type=str, required=True, help="Path to the image zip file" + ) + parser.add_argument( + "--annotation-dir", + type=str, + required=True, + help="Path to the annotation zip file", + ) + parser.add_argument( + "--output-dir", + type=str, + default=os.path.expanduser("~/.mblt_model_zoo/datasets/coco"), + help="Path to the directory to save the organized dataset", + ) + args = parser.parse_args() + + organize_coco( + image_dir=args.image_dir, + annotation_dir=args.annotation_dir, + output_dir=args.output_dir, + ) diff --git a/benchmark/organize_imagenet.py b/benchmark/organize_imagenet.py new file mode 100644 index 0000000..a946773 --- /dev/null +++ b/benchmark/organize_imagenet.py @@ -0,0 +1,33 @@ +""" +Script to organize the ImageNet dataset. + +This script takes the raw image tar file and xml tgz file for the ImageNet dataset +and organizes them into a structure suitable for the model zoo. +""" + +import argparse +import os + +from mblt_vision.utils.datasets import organize_imagenet + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Organize ImageNet dataset") + parser.add_argument( + "--image-dir", type=str, required=True, help="Path to the image tar file" + ) + parser.add_argument( + "--xml-dir", type=str, required=True, help="Path to the xml tgz file" + ) + parser.add_argument( + "--output-dir", + type=str, + default=os.path.expanduser("~/.mblt_model_zoo/datasets/imagenet"), + help="Path to the directory to save the organized dataset", + ) + args = parser.parse_args() + + organize_imagenet( + image_dir=args.image_dir, + xml_dir=args.xml_dir, + output_dir=args.output_dir, + ) diff --git a/benchmark/organize_widerface.py b/benchmark/organize_widerface.py new file mode 100644 index 0000000..617d5be --- /dev/null +++ b/benchmark/organize_widerface.py @@ -0,0 +1,36 @@ +""" +Script to organize the WiderFace dataset. + +This script takes the raw image and annotation zip files for the WiderFace dataset +and organizes them into a structure suitable for the model zoo. +""" + +import argparse +import os + +from mblt_vision.utils.datasets import organize_widerface + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Organize WiderFace dataset") + parser.add_argument( + "--image-dir", type=str, required=True, help="Path to the image zip file" + ) + parser.add_argument( + "--annotation-dir", + type=str, + required=True, + help="Path to the annotation zip file", + ) + parser.add_argument( + "--output-dir", + type=str, + default=os.path.expanduser("~/.mblt_model_zoo/datasets/widerface"), + help="Path to the directory to save the organized dataset", + ) + args = parser.parse_args() + + organize_widerface( + image_dir=args.image_dir, + annotation_dir=args.annotation_dir, + output_dir=args.output_dir, + ) diff --git a/mblt_vision/README.md b/mblt_vision/README.md new file mode 100644 index 0000000..413ff45 --- /dev/null +++ b/mblt_vision/README.md @@ -0,0 +1,200 @@ +# Pre-Trained Vision Models + +> Split out of `mblt-model-zoo`, which still re-exports this package as +> `mblt_model_zoo.vision`. + +Here, we give the full list of publicly pre-trained models supported by the Mobilint Model Zoo. + +Further usage examples can be found in the [tests](../tests) directory. + +## Image Classification + +| Model | Input Size
(H,W,C) | AccTop1
(NPU) | AccTop1
(GPU) | FLOPs (B) | params (M) | Source | Note | +|------------|------------|-----------|--------------------|--------|-------|------|------| +| AlexNet | (224,224,3)| 56.022 | 56.552 | 0.71 | 61.10 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.alexnet.html) | | +| ConvNeXt_Tiny | (224,224,3) | 82.302 | 82.460| 4.46 | 28.59 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_tiny.html) | | +| ConvNeXt_Small | (224,224,3) | 83.432 | 83.560 | 8.68 | 50.22 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_small.html) | | +| ConvNeXt_Base | (224,224,3) | 83.834 | 84.050 | 15.36 | 88.59 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_base.html) | | +| ConvNeXt_Large | (224,224,3) | 83.276 | 84.410 | 34.36 | 197.77 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_large.html) | | +| DeiT_Tiny_Patch16_224 | (224,224,3) | 71.864 | 72.030 | 2.53 | 5.72 | [Link](https://huggingface.co/timm/deit_tiny_patch16_224.fb_in1k) | fb_in1k | +| DeiT_Small_Patch16_224 | (224,224,3) | 79.770 | 79.790 | 9.25 | 22.05 | [Link](https://huggingface.co/timm/deit_small_patch16_224.fb_in1k) | fb_in1k | +| DeiT_Base_Patch16_224 | (224,224,3) | 81.886 | 81.980 | 35.23 | 86.57 | [Link](https://huggingface.co/timm/deit_base_patch16_224.fb_in1k) | fb_in1k | +| DeiT_Base_Patch16_384 | (384,384,3) | 83.046 | 83.100 | 111.34 | 86.86 | [Link](https://huggingface.co/timm/deit_base_patch16_384.fb_in1k) | fb_in1k | +| DeiT3_Small_Patch16_224 | (224,224,3) | 81.326 | 81.398 | 9.25 | 22.06 | [Link](https://huggingface.co/timm/deit3_small_patch16_224.fb_in1k) | fb_in1k | +| DeiT3_Small_Patch16_384 | (384,384,3) | 81.304 | 81.414 | 31.17 | 22.21 | [Link](https://huggingface.co/timm/deit3_small_patch16_384.fb_in1k) | fb_in1k | +| DeiT3_Medium_Patch16_224 | (224,224,3) | 82.930 | 83.044 | 16.05 | 38.85 | [Link](https://huggingface.co/timm/deit3_medium_patch16_224.fb_in1k) | fb_in1k | +| DeiT3_Base_Patch16_224 | (224,224,3) | 83.644 | 83.766 | 35.23 | 86.59 | [Link](https://huggingface.co/timm/deit3_base_patch16_224.fb_in1k) | fb_in1k | +| DeiT3_Base_Patch16_384 | (384,384,3) | 84.990 | 85.062 | 111.34 | 86.88 | [Link](https://huggingface.co/timm/deit3_base_patch16_384.fb_in1k) | fb_in1k | +| DeiT3_Large_Patch16_224 | (224,224,3) | 84.658 | 84.738 | 123.39 | 304.37 | [Link](https://huggingface.co/timm/deit3_large_patch16_224.fb_in1k) | fb_in1k | +| DeiT3_Large_Patch16_384 | (384,384,3) | 85.770 | 85.828 | 383.13 | 304.76 | [Link](https://huggingface.co/timm/deit3_large_patch16_384.fb_in1k) | fb_in1k | +| DenseNet121 | (224,224,3) | 74.194 | 74.414 | 2.83 | 7.98 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet121.html) | | +| DenseNet169 | (224,224,3) | 75.476 | 75.566 | 3.36 | 14.15 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet169.html) | | +| DenseNet201 | (224,224,3) | 76.650 | 76.880 | 4.29 | 20.01 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet201.html) | | +| FlexiViT_Small | (240,240,3) | 82.284 | 82.532 | 10.73 | 22.06 | [Link](https://huggingface.co/timm/flexivit_small.1200ep_in1k) | 1200ep_in1k | +| FlexiViT_Base | (240,240,3) | 84.670 | 84.670 | 40.66 | 86.59 | [Link](https://huggingface.co/timm/flexivit_base.1200ep_in1k) | 1200ep_in1k | +| FlexiViT_Large | (240,240,3) | 85.576 | 85.660 | 142.21 | 304.36 | [Link](https://huggingface.co/timm/flexivit_large.1200ep_in1k) | 1200ep_in1k | +| GoogLeNet | (224,224,3) | 69.566 | 69.780 | 1.50 | 6.62 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.googlenet.html) | | +| Inception_V3 | (299,299,3) | 77.120 | 77.278 | 5.71 | 27.16 | [Link](https://docs.pytorch.org/vision/main/models/generated/torchvision.models.inception_v3.html)| | +| MNASNet1_0 | (224,224,3)| 72.696 | 73.422 | 0.31 | 4.38 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.mnasnet1_0.html) | | +| MNASNet1_3 | (224,224,3) | 75.720 | 76.466 | 0.53 | 6.28 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.mnasnet1_3.html) | | +| MobileNet_V2 | (224,224,3)| 71.624 | 72.138 | 0.30 | 3.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.mobilenet_v2.html) | IMAGENET1K_V2 | +| RegNet_X_400MF | (224,224,3) | 72.544 | 72.900 | 0.41 | 5.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_400mf.html) | IMAGENET1K_V1 | +| RegNet_X_400MF | (224,224,3) | 74.218 | 74.846 | 0.41 | 5.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_400mf.html) | IMAGENET1K_V2 | +| RegNet_X_800MF | (224,224,3) | 74.928 | 75.204 | 0.80 | 7.26 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_800mf.html) | IMAGENET1K_V1 | +| RegNet_X_800MF | (224,224,3) | 76.984 | 77.488 | 0.80 | 7.26 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_800mf.html) | IMAGENET1K_V2 | +| RegNet_X_1_6GF | (224,224,3) | 76.756 | 77.080 | 1.60 | 9.19 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_1_6gf.html) | IMAGENET1K_V1 | +| RegNet_X_1_6GF | (224,224,3) | 79.168 | 79.670 | 1.60 | 9.19 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_1_6gf.html) | IMAGENET1K_V2 | +| RegNet_X_3_2GF | (224,224,3) | 77.978 | 78.346 | 3.18 | 15.30 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_x_3_2gf.html) | IMAGENET1K_V1 | +| RegNet_X_3_2GF | (224,224,3) | 80.792 | 81.188 | 3.18 | 15.30 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_x_3_2gf.html) | IMAGENET1K_V2 | +| RegNet_X_8GF | (224,224,3) | 79.322 | 79.368 | 8.00 | 39.57 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_8gf.html) | IMAGENET1K_V1 | +| RegNet_X_8GF | (224,224,3) | 81.388 | 81.680 | 8.00 | 39.57 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_8gf.html) | IMAGENET1K_V2 | +| RegNet_X_16GF | (224,224,3) | 79.884 | 80.090 | 15.94 | 54.28 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_16gf.html) | IMAGENET1K_V1 | +| RegNet_X_16GF | (224,224,3) | 82.312 | 82.712 | 15.94 | 54.28 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_16gf.html) | IMAGENET1K_V2 | +| RegNet_X_32GF | (224,224,3) | 80.482 | 80.592 | 31.74 | 107.81 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_32gf.html) | IMAGENET1K_V1 | +| RegNet_X_32GF | (224,224,3) | 82.722 | 83.014 | 31.74 | 107.81 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_32gf.html) | IMAGENET1K_V2 | +| RegNet_Y_400MF | (224,224,3) | 73.594 | 73.998 | 0.40 | 4.34 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_400mf.html) | IMAGENET1K_V1 | +| RegNet_Y_400MF | (224,224,3) | 75.294 | 75.804 | 0.40 | 4.34 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_400mf.html) | IMAGENET1K_V2 | +| RegNet_Y_800MF | (224,224,3) | 76.132 | 76.406 | 0.83 | 6.43 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_800mf.html) | IMAGENET1K_V1| +| RegNet_Y_800MF | (224,224,3) | 78.280 | 78.904 | 0.83 | 6.43 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_800mf.html) | IMAGENET1K_V2| +| RegNet_Y_1_6GF | (224,224,3) | 77.260 | 77.934 | 1.61 | 11.20 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_1_6gf.html) | IMAGENET1K_V1 | +| RegNet_Y_1_6GF | (224,224,3) | 80.298 | 80.876 | 1.61 | 11.20 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_1_6gf.html) | IMAGENET1K_V2 | +| RegNet_Y_3_2GF | (224,224,3) | 78.504 | 78.962 | 3.18 | 19.44 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_y_3_2gf.html) | IMAGENET1K_V1 | +| RegNet_Y_3_2GF | (224,224,3) | 81.354 | 82.010 | 3.18 | 19.44 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_y_3_2gf.html) | IMAGENET1K_V2 | +| RegNet_Y_8GF | (224,224,3) | 79.768 | 80.052 | 8.47 | 39.38 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_8gf.html) | IMAGENET1K_V1 | +| RegNet_Y_8GF | (224,224,3) | 82.418 | 82.822 | 8.47 | 39.38 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_8gf.html) | IMAGENET1K_V2 | +| RegNet_Y_16GF | (224,224,3) | 80.240 | 80.428 | 15.91 | 83.59 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_16gf.html)| IMAGENET1K_V1 | +| RegNet_Y_16GF | (224,224,3) | 82.348 | 82.868 | 15.91 | 83.59 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_16gf.html)| IMAGENET1K_V2 | +| RegNet_Y_32GF | (224,224,3) | 80.510 | 80.840 | 32.28 | 145.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_32gf.html) | IMAGENET1K_V1 | +| RegNet_Y_32GF | (224,224,3) | 82.798 | 83.362 | 32.28 | 145.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_32gf.html) | IMAGENET1K_V2 | +| ResNet18 | (224,224,3) | 69.530 | 69.770 | 1.81 | 11.69 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet18.html) | | +| ResNet34 | (224,224,3) | 73.166 | 73.308 | 3.66 | 21.80 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet34.html) | | +| ResNet50 | (224,224,3) | 75.946 | 76.128 | 4.09 | 25.56 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet50.html) | IMAGENET1K_V1 | +| ResNet50 | (224,224,3) | 80.326 | 80.844 | 4.09 | 25.56 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet50.html) | IMAGENET1K_V2 | +| ResNet101 | (224,224,3) | 77.112 | 77.362 | 7.80 | 44.55 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet101.html) | IMAGENET1K_V1 | +| ResNet101 | (224,224,3) | 81.472 | 81.918 | 7.80 | 44.55 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet101.html) | IMAGENET1K_V2 | +| ResNet152 | (224,224,3) | 77.922 | 78.316 | 11.51 | 60.19 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet152.html) | IMAGENET1K_V1 | +| ResNet152 | (224,224,3) | 81.950 | 82.272 | 11.51 | 60.19 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet152.html) | IMAGENET1K_V2 | +| ResNeXt50_32X4D | (224,224,3) | 77.528 | 77.630 | 4.23 | 25.03 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext50_32x4d.html) | IMAGENET1K_V1 | +| ResNeXt50_32X4D | (224,224,3) | 80.728 | 81.220 | 4.23 | 25.03 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext50_32x4d.html) | IMAGENET1K_V2 | +| ResNeXt101_32X8D | (224,224,3) | 78.998 | 79.288 | 16.41 | 88.79 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext101_32x8d.html) | IMAGENET1K_V1 | +| ResNeXt101_32X8D | (224,224,3) | 82.510 | 82.780 | 16.41 | 88.79 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext101_32x8d.html) | IMAGENET1K_V2 | +| ResNeXt101_64X4D | (224,224,3) | 82.876 | 83.236 | 15.46 | 83.46 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext101_64x4d.html) | | +| ShuffleNet_V2_X1_0 | (224,224,3) | 68.616 | 69.312 | 0.14 | 2.28 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.shufflenet_v2_x1_0.html) | | +| ShuffleNet_V2_X1_5 | (224,224,3) | 72.240 | 72.966 | 0.30 | 3.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.shufflenet_v2_x1_5.html) | | +| ShuffleNet_V2_X2_0 | (224,224,3) | 75.540 | 76.222 | 0.58 | 7.39 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.shufflenet_v2_x2_0.html) | | +| VGG11 | (224,224,3) | 68.616 | 68.978 | 7.61 | 132.86 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg11.html) | | +| VGG11_BN | (224,224,3) | 70.010 | 70.328 | 7.61 | 132.87 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg11_bn.html) | | +| VGG13 | (224,224,3) | 69.588 | 69.886 | 11.31 | 133.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg13.html) | | +| VGG13_BN | (224,224,3) | 71.262 | 71.570 | 11.31 | 133.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg13_bn.html) | | +| VGG16 | (224,224,3) | 71.350 | 71.610 | 15.47 | 138.36 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg16.html) | | +| VGG16_BN | (224,224,3) | 73.178 | 73.408 | 15.47 | 138.37 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg16_bn.html) | | +| VGG19 | (224,224,3) | 72.140 | 72.384 | 19.63 | 143.67 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg19.html) | | +| VGG19_BN | (224,224,3) | 73.898 | 74.166 | 19.63 | 143.68 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg19_bn.html) | | +| ViT_Tiny_Patch16_224 | (224,224,3) | 75.308 | 75.458 | 2.53 | 5.72 | [Link](https://huggingface.co/timm/vit_tiny_patch16_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Tiny_Patch16_384 | (384,384,3) | 78.213 | 78.466 | 9.46 | 5.79 | [Link](https://huggingface.co/timm/vit_tiny_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Small_Patch16_224 | (224,224,3) | 81.446 | 81.410 | 9.25 | 22.05 | [Link](https://huggingface.co/timm/vit_base_patch16_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Small_Patch16_384 | (384,384,3) | 83.724 | 83.788 | 31.17 | 22.20 | [Link](https://huggingface.co/timm/vit_base_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Small_Patch32_224 | (224,224,3) | 75.716 | 75.926 | 2.30 | 22.88 | [Link](https://huggingface.co/timm/vit_base_patch32_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Small_Patch32_384 | (384,384,3) | 80.412 | 80.460 | 6.92 | 22.92 | [Link](https://huggingface.co/timm/vit_base_patch32_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Base_Patch8_224 | (224,224,3) | 86.348 | 86.270 | 156.86 | 86.58 | [Link](https://huggingface.co/timm/vit_base_patch8_224.augreg2_in21k_ft_in1k) | augreg2_in21k_ft_in1k | +| ViT_Base_Patch16_224 | (224,224,3) | 85.040 | 85.114 | 35.23 | 86.57 | [Link](https://huggingface.co/timm/vit_base_patch16_224.augreg2_in21k_ft_in1k) | augreg2_in21k_ft_in1k | +| ViT_Base_Patch16_384 | (384,384,3) | 86.002 | 86.028 | 111.34 | 86.86 | [Link](https://huggingface.co/timm/vit_base_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Base_Patch32_224 | (224,224,3) | 80.598 | 80.694 | 8.84 | 88.22 | [Link](https://huggingface.co/timm/vit_base_patch32_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Base_Patch32_384 | (384,384,3) | 83.322 | 83.394 | 26.16 | 88.30 | [Link](https://huggingface.co/timm/vit_base_patch32_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Large_Patch16_224 | (224,224,3) | 85.886 | 85.872 | 123.39 | 304.33 | [Link](https://huggingface.co/timm/vit_large_patch16_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Large_Patch16_384 | (384,384,3) | 86.976 | 87.084 | 383.13 | 304.72 | [Link](https://huggingface.co/timm/vit_large_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Large_Patch32_384 | (384,384,3) | 81.494 | 81.510 | 90.75 | 306.63 | [Link](https://huggingface.co/timm/vit_large_patch32_384.orig_in21k_ft_in1k) | orig_in21k_ft_in1k | +| Wide_ResNet50_2 | (224,224,3) | 78.268 | 78.490 | 11.40 | 68.88 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet50_2.html) | IMAGENET1K_V1 | +| Wide_ResNet50_2 | (224,224,3) | 81.226 | 81.626 | 11.40 | 68.88 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet50_2.html) | IMAGENET1K_V2 | +| Wide_ResNet101_2 | (224,224,3) | 78.384 | 78.834 | 22.75 | 126.89 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet101_2.html) | IMAGENET1K_V1 | +| Wide_ResNet101_2 | (224,224,3) | 82.282 | 82.504 | 22.75 | 126.89 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet101_2.html) | IMAGENET1K_V2 | + +
+Image Classification (ImageNet) + +- AccTop1 values are model accuracies on the [ImageNet](https://www.image-net.org/index.php) dataset validation set. + +
+ +## Object Detection + +| Model | Input Size
(H,W,C) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{box}}}$
(NPU) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{box}}}$
(GPU) | FLOPs (B) | params (M) | Source | Note | +|-------|--------------------------|----------------|---------------|-----------|------------|--------|------| +| YOLOv3u | (640,640,3) | 51.053 | 51.577 | 282.68 | 103.73 | [Link](https://docs.ultralytics.com/models/yolov3/)| | +| YOLOv3-spp | (640,640,3) | 46.715 | 47.613 | 156.91 | 62.97 | [Link](https://github.com/ultralytics/yolov3/)| | +| YOLOv3-sppu | (640,640,3) | 51.382 | 51.763 | 283.57 | 104.78 | [Link](https://docs.ultralytics.com/models/yolov3/)| | +| YOLOv5su | (640,640,3) | 42.206 | 42.871 | 24.03 | 9.14 | [Link](https://docs.ultralytics.com/models/yolov5/)| | +| YOLOv5s6u | (1280,1280,3) | 48.008 | 48.632 | 97,75 | 15.29 | [Link](https://docs.ultralytics.com/models/yolov5/)| | +| YOLOv5mu | (640,640,3) | 48.217 | 48.906 | 64.27 | 25.09 | [Link](https://docs.ultralytics.com/models/yolov5/)| | +| YOLOv5m6u | (1280,1280,3) | 52.938 | 53.475 | 261.56 | 41.19 | [Link](https://docs.ultralytics.com/models/yolov5/)| | +| YOLOv5lu | (640,640,3) | 51.718 | 52.171 | 135.09 | 53.19 | [Link](https://docs.ultralytics.com/models/yolov5/)| | +| YOLOv5l6 | (1280,1280,3) | 52.402 | 53.368 | 445.31 | 72.73 | [Link](https://github.com/ultralytics/yolov5/)| | +| YOLOv5l6u | (1280,1280,3) | 54.974 | 55.465 | 549.86 | 80.05 | [Link](https://docs.ultralytics.com/models/yolov5/)| | +| YOLOv5xu | (640,640,3) | 52.600 | 53.090 | 246.55 | 97.23 | [Link](https://docs.ultralytics.com/models/yolov5/)| | +| YOLOv5x6 | (1280, 1280,3) | 53.706 | 54.706 | 838.81 | 140.73 | [Link](https://github.com/ultralytics/yolov5/)| | +| YOLOv5x6u | (1280,1280,3) | 56.141 | 56.489 | 1003.46 | 155.48 | [Link](https://docs.ultralytics.com/models/yolov5/)| | +| YOLOv7 | (640,640,3) | 50.402 | 50.941 | 104.67 | 36.91 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7d6 | (1280,1280,3) | 55.635 | 55.792 | 702.30 | 133.76 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7e6 | (1280,1280,3) | 55.304 | 55.567 | 514.89 | 97.20 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7e6e | (1280,1280,3) | 55.768 | 56.295 | 842.87 | 151.69 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7w6 | (1280,1280,3) | 53.783 | 54.131 | 359.99 | 70.39 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7x | (640,640,3) | 52.103 | 52.706 | 189.88 | 71.31 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv8s | (640,640,3) | 44.062 | 44.918 | 28.64 | 11.16 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8m | (640,640,3) | 49.657 | 50.240 | 79.00 | 25.89 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8l | (640,640,3) | 52.340 | 52.773 | 165.24 | 43.67 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8x | (640,640,3) | 53.365 | 53.802 | 257.92 | 68.20 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| GELANm | (640,640,3) | 50.108 | 50.923 | 76.44 | 19.98 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv9m | (640,640,3) | 50.351 | 51.191 | 76.43 | 19.98 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| GELANc | (640,640,3) | 51.938 | 52.274 | 102.34 | 25.29 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv9c | (640,640,3) | 52.391 | 52.918 | 102.34 | 25.29 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv10b | (640,640,3) | 51.125 | 52.096 | 92.23 | 19.07 | [Link](https://docs.ultralytics.com/models/yolov10/) | | +| YOLO11s | (640,640,3) | 45.733 | 46.617 | 21.69 | 9.44 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11m | (640,640,3) | 50.638 | 51.310 | 68.24 | 20.09 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11l | (640,640,3) | 52.468 | 53.165 | 87.37 | 25.34 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11x | (640,640,3) | 54.059 | 54.478 | 195.67 | 56.92 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO12s | (640,640,3) | 46.746 | 47.687 | 23.84 | 9.26 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO12m | (640,640,3) | 51.568 | 52.297 | 71.91 | 20.17 | [Link](https://docs.ultralytics.com/models/yolo12/) | | + +
+Object Detection (COCO) + +- $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{box}}}$ values are for single-model single-scale on the [COCO val2017](https://cocodataset.org/) dataset. + +
+ +## Instance Segmentation + +| Model | Input Size
(H,W,C) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{mask}}}$
(NPU) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{mask}}}$
(GPU) | FLOPs (B) | params (M) | Source | Note | +|-------|--------------------------|--------------------|-------------------|-----------|------------|------|------| +| YOLOv5l-seg | (640,640,3) | 39.041 | 39.784 | 147.83 | 47.89 | [Link](https://github.com/ultralytics/yolov5/) | | +| YOLOv5x-seg | (640,640,3) | 40.697 | 41.137 | 265.81 | 88.77 | [Link](https://github.com/ultralytics/yolov5/) | | +| YOLOv8s-seg | (640,640,3) | 36.072 | 36.582 | 42.64 | 11.81 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8m-seg | (640,640,3) | 39.978 | 40.444 | 110.26 | 27.27 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8l-seg | (640,640,3) | 41.993 | 42.316 | 220.55 | 45.97 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8x-seg | (640,640,3) | 42.913 | 43.020 | 344.20 | 71.78 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv9c-seg | (640,640,3) | 42.249 | 42.460 | 145.72 | 27.45 | [Link](https://docs.ultralytics.com/models/yolov9/) | | +| YOLO11s-seg | (640,640,3) | 36.874 | 37.602 | 35.69 | 10.10 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11m-seg | (640,640,3) | 41.031 | 41.546 | 123.56 | 22.40 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11l-seg | (640,640,3) | 42.509 | 42.831 | 142.68 | 27.65 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11x-seg | (640,640,3) | 43.614 | 43.746 | 319.78 | 62.09 | [Link](https://docs.ultralytics.com/models/yolo11/) | | + +
+ Instance Segmentation (COCO) + +- $\underset{50\text{โ€“}95}{\text{mAP}_{\text{val}}^{\text{mask}}}$ values are for single-model single-scale on the [COCO val2017](https://cocodataset.org/) dataset. + +
+ +## Pose Estimation + +| Model | Input Size
(H,W,C) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{pose}}}$
(NPU) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{pose}}}$
(GPU) | FLOPs (B) | params (M) | Source | Note | +|-------|--------------------------|--------------------|-------------------|-----------|------------|------|------| +| YOLOv8x-pose | (640,640,3) | 66.416 | 68.367 | 263.33 | 69.46 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLO11x-pose | (640,640,3) | 67.220 | 68.599 | 203.54 | 58.75 | [Link](https://docs.ultralytics.com/models/yolo11/) | | + +
+Pose Estimation (COCO) + +- $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{pose}}}$ values are for single-model single-scale on the [COCO Keypoints val2017](https://cocodataset.org/) dataset. + +
diff --git a/mblt_vision/__init__.py b/mblt_vision/__init__.py index e69de29..3e24464 100644 --- a/mblt_vision/__init__.py +++ b/mblt_vision/__init__.py @@ -0,0 +1,86 @@ +"""MBLT vision task exports and discovery helpers. + +The vision package keeps task subpackages as the preferred import surface while +also supporting legacy top-level model imports such as +``from mblt_model_zoo.vision import ResNet50``. +""" + +from __future__ import annotations + +from . import depth_estimation as depth_estimation +from . import face_detection as face_detection +from . import image_classification as image_classification +from . import instance_segmentation as instance_segmentation +from . import obb as obb +from . import object_detection as object_detection +from . import pose_estimation as pose_estimation +from . import semantic_segmentation as semantic_segmentation +from ._api import list_models as list_models +from ._api import list_tasks as list_tasks +from .wrapper import MBLT_Engine as MBLT_Engine + +__version__ = "0.0.1" + +_TASK_MODULES = ( + face_detection, + depth_estimation, + image_classification, + instance_segmentation, + object_detection, + obb, + pose_estimation, + semantic_segmentation, +) + +_LEGACY_MODEL_EXPORTS: dict[str, object] = {} +for _task_module in _TASK_MODULES: + for _export_name in getattr(_task_module, "__all__", ()): + if _export_name in _LEGACY_MODEL_EXPORTS: + raise RuntimeError( + f"Duplicate vision export detected for '{_export_name}'." + ) + _LEGACY_MODEL_EXPORTS[_export_name] = _task_module + +_PUBLIC_EXPORTS = [ + "MBLT_Engine", + "list_models", + "list_tasks", + "face_detection", + "depth_estimation", + "image_classification", + "instance_segmentation", + "object_detection", + "obb", + "pose_estimation", + "semantic_segmentation", +] + sorted(_LEGACY_MODEL_EXPORTS) +# Keep legacy compatibility exports synchronized with their task packages. +__all__: list[str] = _PUBLIC_EXPORTS # pyright: ignore[reportUnsupportedDunderAll] + + +def __getattr__(name: str) -> object: + """Lazily resolve legacy top-level model exports. + + Args: + name: Attribute requested from the vision package. + + Returns: + The exported model wrapper class for the requested legacy name. + + Raises: + AttributeError: If the requested name is not exported by the package. + """ + + task_module = _LEGACY_MODEL_EXPORTS.get(name) + if task_module is None: + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + value = getattr(task_module, name) + globals()[name] = value + return value + + +def __dir__() -> list[str]: + """Return package attributes including lazy legacy exports.""" + + return sorted(set(globals()) | set(__all__)) diff --git a/mblt_vision/_api.py b/mblt_vision/_api.py new file mode 100644 index 0000000..42e6105 --- /dev/null +++ b/mblt_vision/_api.py @@ -0,0 +1,53 @@ +"""Public helpers for discovering available vision tasks and models.""" + +from __future__ import annotations + +import importlib +import inspect +from typing import Iterable + +from ._tasks import VISION_TASKS, normalize_vision_task +from .wrapper import MBLT_Engine + + +def list_tasks() -> list[str]: + """Lists the available vision tasks.""" + + return list(VISION_TASKS) + + +def list_models(tasks: str | Iterable[str] | None = None) -> dict[str, list[str]]: + """Lists available models for the selected vision tasks. + + Args: + tasks: Task name or names to inspect. When omitted, all tasks are used. + + Returns: + A mapping of task name to exported model class names. + + Raises: + ValueError: If an unknown task name is provided. + """ + + if tasks is None: + task_list = list(VISION_TASKS) + elif isinstance(tasks, str): + task_list = [tasks] + else: + task_list = list(tasks) + + available_models: dict[str, list[str]] = {} + for task in task_list: + module_name = normalize_vision_task(task) + module = importlib.import_module( + f".{module_name}", package=__name__.replace("._api", "") + ) + available_models[task] = sorted( + name + for name, obj in inspect.getmembers(module, inspect.isclass) + if issubclass(obj, MBLT_Engine) + and obj is not MBLT_Engine + and not getattr(obj, "_yaml_missing", False) + ) + + return available_models diff --git a/mblt_vision/_compat.py b/mblt_vision/_compat.py new file mode 100644 index 0000000..ca47c70 --- /dev/null +++ b/mblt_vision/_compat.py @@ -0,0 +1,228 @@ +"""Compatibility helpers for YAML-backed vision model exports. + +This module rebuilds the legacy task package exports that were removed during +the YAML migration. The generated classes keep the familiar import paths and +constructor shape while delegating model loading to ``MBLT_Engine``. +""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any, Callable, Iterable, Sequence, TypeAlias, cast + +from ._model_paths import uses_shifted_compat_model_path_layout +from .wrapper import CoreMode, MBLT_Engine + +_MODEL_DIR = Path(__file__).parent / "models" + + +class CompatMBLTEngine(MBLT_Engine): + """Typed base for dynamically generated legacy compatibility wrappers.""" + + def __init__( + self, + local_path: str | None = None, + model_type: str = "DEFAULT", + infer_mode: CoreMode = "global8", + product: str = "aries", + dev_no: int = 0, + target_cores: Sequence[str] | None = None, + target_clusters: Sequence[int] | None = None, + mxq_path: str | None = None, + onnx_path: str | None = None, + framework: str | None = None, + model_path: str | None = None, + ) -> None: + """Type-only constructor matching the generated legacy wrappers.""" + del ( + local_path, + model_type, + infer_mode, + product, + dev_no, + target_cores, + target_clusters, + model_path, + mxq_path, + onnx_path, + framework, + ) + raise NotImplementedError + + +CompatMBLTEngineClass: TypeAlias = type[CompatMBLTEngine] + + +def _normalize_name(value: str) -> str: + """Returns an alphanumeric-only, case-insensitive identifier.""" + + return "".join(char for char in value.lower() if char.isalnum()) + + +def _resolve_yaml_name(class_name: str) -> str: + """Resolves the YAML config stem associated with a legacy class name. + + Args: + class_name: Exported legacy class name. + + Returns: + The YAML filename stem without the ``.yaml`` suffix. + + Raises: + ValueError: If no unique matching YAML file can be determined. + """ + + yaml_stems = [path.stem for path in _MODEL_DIR.glob("*.yaml")] + + exact_matches = [stem for stem in yaml_stems if stem.lower() == class_name.lower()] + if len(exact_matches) == 1: + return exact_matches[0] + + normalized_name = _normalize_name(class_name) + normalized_matches = [ + stem for stem in yaml_stems if _normalize_name(stem) == normalized_name + ] + if len(normalized_matches) == 1: + return normalized_matches[0] + + if not normalized_matches: + raise ValueError( + f"Could not find a YAML config for legacy class '{class_name}'." + ) + + raise ValueError( + f"Found multiple YAML configs for legacy class '{class_name}': {sorted(normalized_matches)}." + ) + + +def _build_init(yaml_name: str) -> Callable[..., None]: + """Builds a legacy-compatible ``__init__`` implementation.""" + + def __init__( + self, + local_path: str | None = None, + model_type: str = "DEFAULT", + infer_mode: CoreMode = "global8", + product: str = "aries", + dev_no: int = 0, + target_cores: Sequence[str] | None = None, + target_clusters: Sequence[int] | None = None, + mxq_path: str | None = None, + onnx_path: str | None = None, + framework: str | None = None, + model_path: str | None = None, + ) -> None: + """Initializes a YAML-backed compatibility wrapper. + + Args: + local_path: Deprecated legacy MXQ path alias. Prefer ``model_path`` + for generic MXQ or ONNX loading, or ``mxq_path`` for an + explicit MXQ-only override. + model_type: YAML config variant to load. + infer_mode: Execution mode forwarded to ``MBLT_Engine``. + product: Retained for backward compatibility but ignored by the + YAML-backed registry in `2.0.0`. + dev_no: Accelerator device number. + target_cores: Optional core selection for single-core mode. + target_clusters: Optional cluster selection for multi/global modes. + mxq_path: Optional explicit MXQ path alias. + onnx_path: Optional explicit ONNX path. + framework: Execution framework, either ``"mxq"`` or ``"onnx"``. When + omitted, ``model_path`` suffix is used first, then MXQ is the fallback. + model_path: Optional explicit local model path for MXQ or ONNX. + """ + + del product + if uses_shifted_compat_model_path_layout( + model_path, mxq_path, onnx_path, framework + ): + model_path, mxq_path, onnx_path, framework = ( + mxq_path, + onnx_path, + framework, + cast(str | None, model_path), + ) + MBLT_Engine.__init__( + self, + model_cls=yaml_name, + model_type=model_type, + model_path=model_path or "", + mxq_path=mxq_path or local_path or "", + onnx_path=onnx_path or "", + dev_no=dev_no, + core_mode=infer_mode, + target_cores=list(target_cores) if target_cores is not None else None, + target_clusters=list(target_clusters) + if target_clusters is not None + else None, + framework=framework, + ) + + return __init__ + + +def _build_missing_init(class_name: str, reason: str) -> Callable[..., None]: + """Builds an ``__init__`` that fails with a clear compatibility message.""" + + def __init__(self, *args: Any, **kwargs: Any) -> None: + """Raises an informative error for removed YAML-backed models.""" + + del args, kwargs + raise ValueError( + f"Legacy vision model '{class_name}' is not available in the YAML model registry: {reason}" + ) + + return __init__ + + +def create_model_class(class_name: str, module_name: str) -> CompatMBLTEngineClass: + """Creates a legacy model class that delegates to ``MBLT_Engine``. + + Args: + class_name: Class name to expose from the task module. + module_name: Module path that should own the generated class. + + Returns: + A dynamically generated ``MBLT_Engine`` subclass. + """ + + class_doc = f"Compatibility wrapper for the legacy ``{class_name}`` vision model." + try: + yaml_name = _resolve_yaml_name(class_name) + except ValueError as exc: + return type( + class_name, + (CompatMBLTEngine,), + { + "__doc__": class_doc, + "__init__": _build_missing_init(class_name, str(exc)), + "__module__": module_name, + "_yaml_missing": True, + }, + ) + + return type( + class_name, + (CompatMBLTEngine,), + { + "__doc__": class_doc, + "__init__": _build_init(yaml_name), + "__module__": module_name, + "_yaml_name": yaml_name, + }, + ) + + +def export_model_classes( + namespace: dict[str, Any], class_names: Iterable[str], module_name: str +) -> None: + """Populates a module namespace with generated model classes. + + Args: + namespace: Target module globals. + class_names: Legacy class names to generate. + module_name: Import path for generated classes. + """ + + for class_name in class_names: + namespace[class_name] = create_model_class(class_name, module_name) diff --git a/mblt_vision/_model_paths.py b/mblt_vision/_model_paths.py new file mode 100644 index 0000000..dc51c47 --- /dev/null +++ b/mblt_vision/_model_paths.py @@ -0,0 +1,139 @@ +"""Framework and local-artifact path resolution for vision engines.""" + +from __future__ import annotations + +from pathlib import Path + +SUPPORTED_FRAMEWORKS = {"mxq", "onnx"} + + +def framework_from_model_path(model_path: str) -> str | None: + """Infer the runtime framework from a local model path suffix.""" + + suffix = Path(model_path).suffix.lower() + if suffix == ".mxq": + return "mxq" + if suffix == ".onnx": + return "onnx" + return None + + +def uses_shifted_engine_model_path_layout( + model_path: object, + mxq_path: object, + dev_no: object, + core_mode: object, + target_cores: object, + postprocess_kwargs: object, + framework: object, + onnx_providers: object, +) -> bool: + """Return whether engine arguments use the model-path-first layout. + + Public constructor layouts have used the third positional argument for + either ``mxq_path`` or ``model_path``. An ONNX suffix identifies the + model-path-first layout because it changes runtime routing. For MXQ, + remapping is needed only when later values have the types produced by a + one-slot positional shift; a path by itself behaves identically as the + ``mxq_path`` alias. + """ + + if not isinstance(mxq_path, str): + return False + inferred_framework = framework_from_model_path(mxq_path) + if inferred_framework not in SUPPORTED_FRAMEWORKS: + return False + if ( + isinstance(model_path, str) + and model_path + and model_path.lower() not in SUPPORTED_FRAMEWORKS + ): + return False + if inferred_framework == "onnx": + return True + return ( + isinstance(dev_no, str) + or isinstance(core_mode, int) + or isinstance(target_cores, str) + or (postprocess_kwargs is not None and not isinstance(postprocess_kwargs, dict)) + or isinstance(framework, dict) + or isinstance(onnx_providers, str) + or (model_path is not None and not isinstance(model_path, str)) + or (isinstance(model_path, str) and model_path.lower() in SUPPORTED_FRAMEWORKS) + ) + + +def uses_shifted_compat_model_path_layout( + model_path: object, + mxq_path: object, + onnx_path: object, + framework: object, +) -> bool: + """Return whether generated-wrapper arguments use a shifted model-path tail.""" + + if not isinstance(mxq_path, str): + return False + inferred_framework = framework_from_model_path(mxq_path) + if inferred_framework not in SUPPORTED_FRAMEWORKS: + return False + if ( + isinstance(model_path, str) + and model_path + and model_path.lower() not in SUPPORTED_FRAMEWORKS + ): + return False + if inferred_framework == "onnx": + return True + return ( + (isinstance(model_path, str) and model_path.lower() in SUPPORTED_FRAMEWORKS) + or ( + isinstance(onnx_path, str) and framework_from_model_path(onnx_path) == "mxq" + ) + or ( + isinstance(framework, str) + and framework_from_model_path(framework) is not None + ) + ) + + +def resolve_framework(framework: str | None, model_path: str = "") -> str: + """Resolve the execution framework from explicit input and model path.""" + + normalized_framework = framework.lower() if framework is not None else None + if ( + normalized_framework is not None + and normalized_framework not in SUPPORTED_FRAMEWORKS + ): + raise ValueError( + f"Unsupported framework: {framework}. Must be one of {sorted(SUPPORTED_FRAMEWORKS)}." + ) + inferred_framework = framework_from_model_path(model_path) if model_path else None + if ( + normalized_framework + and inferred_framework + and normalized_framework != inferred_framework + ): + raise ValueError( + f"Framework `{normalized_framework}` conflicts with model path `{model_path}`. " + f"Use framework `{inferred_framework}` or remove the explicit framework." + ) + return inferred_framework or normalized_framework or "mxq" + + +def split_model_paths( + *, framework: str, model_path: str = "", mxq_path: str = "", onnx_path: str = "" +) -> tuple[str, str]: + """Resolve generic and framework-specific local model path arguments.""" + + resolved_mxq_path = mxq_path + resolved_onnx_path = onnx_path + if not model_path: + return resolved_mxq_path, resolved_onnx_path + inferred_framework = framework_from_model_path(model_path) + if inferred_framework == "mxq": + resolved_mxq_path = resolved_mxq_path or model_path + elif inferred_framework == "onnx" or framework == "onnx": + resolved_onnx_path = resolved_onnx_path or model_path + else: + resolved_mxq_path = resolved_mxq_path or model_path + return resolved_mxq_path, resolved_onnx_path diff --git a/mblt_vision/_tasks.py b/mblt_vision/_tasks.py new file mode 100644 index 0000000..af5c442 --- /dev/null +++ b/mblt_vision/_tasks.py @@ -0,0 +1,32 @@ +"""Canonical task names used by the standalone Vision processing API.""" + +from __future__ import annotations + +from collections.abc import Iterable + +VISION_TASKS: tuple[str, ...] = ( + "image_classification", + "depth_estimation", + "object_detection", + "instance_segmentation", + "semantic_segmentation", + "obb", + "pose_estimation", + "face_detection", +) + +_INPUT_TASK_ALIASES = {"oriented_bounding_boxes": "obb"} + + +def normalize_vision_task(task: str, *, supported: Iterable[str] | None = None) -> str: + """Normalize a Vision task name and validate it against supported tasks.""" + + if not isinstance(task, str): + raise TypeError(f"Vision task must be a string, got {type(task).__name__}.") + normalized = _INPUT_TASK_ALIASES.get(task.lower(), task.lower()) + supported_tasks = tuple(VISION_TASKS if supported is None else supported) + if normalized not in supported_tasks: + raise ValueError( + f"Unsupported Vision task {task!r}; expected one of {sorted(supported_tasks)}." + ) + return normalized diff --git a/mblt_vision/datasets/__init__.py b/mblt_vision/datasets/__init__.py new file mode 100644 index 0000000..0d4dae4 --- /dev/null +++ b/mblt_vision/datasets/__init__.py @@ -0,0 +1,15 @@ +"""YAML-backed definitions for vision validation datasets.""" + +from .registry import ( + get_dataset_category_ids, + get_dataset_class_names, + get_dataset_config, + get_dataset_config_for_task, +) + +__all__ = [ + "get_dataset_category_ids", + "get_dataset_class_names", + "get_dataset_config", + "get_dataset_config_for_task", +] diff --git a/mblt_vision/datasets/ade20k.yaml b/mblt_vision/datasets/ade20k.yaml new file mode 100644 index 0000000..33fcb02 --- /dev/null +++ b/mblt_vision/datasets/ade20k.yaml @@ -0,0 +1,163 @@ +# ADE20K validation dataset. Organized paths are relative to `path`. +name: ade20k +path: ~/.mblt_model_zoo/datasets/ADEChallengeData2016 +val: images +tasks: + - semantic_segmentation +names: + 0: wall + 1: building + 2: sky + 3: floor + 4: tree + 5: ceiling + 6: road + 7: bed + 8: windowpane + 9: grass + 10: cabinet + 11: sidewalk + 12: person + 13: earth + 14: door + 15: table + 16: mountain + 17: plant + 18: curtain + 19: chair + 20: car + 21: water + 22: painting + 23: sofa + 24: shelf + 25: house + 26: sea + 27: mirror + 28: rug + 29: field + 30: armchair + 31: seat + 32: fence + 33: desk + 34: rock + 35: wardrobe + 36: lamp + 37: bathtub + 38: railing + 39: cushion + 40: base + 41: box + 42: column + 43: signboard + 44: chest of drawers + 45: counter + 46: sand + 47: sink + 48: skyscraper + 49: fireplace + 50: refrigerator + 51: grandstand + 52: path + 53: stairs + 54: runway + 55: case + 56: pool table + 57: pillow + 58: screen door + 59: stairway + 60: river + 61: bridge + 62: bookcase + 63: blind + 64: coffee table + 65: toilet + 66: flower + 67: book + 68: hill + 69: bench + 70: countertop + 71: stove + 72: palm + 73: kitchen island + 74: computer + 75: swivel chair + 76: boat + 77: bar + 78: arcade machine + 79: hovel + 80: bus + 81: towel + 82: light + 83: truck + 84: tower + 85: chandelier + 86: awning + 87: streetlight + 88: booth + 89: television receiver + 90: airplane + 91: dirt track + 92: apparel + 93: pole + 94: land + 95: bannister + 96: escalator + 97: ottoman + 98: bottle + 99: buffet + 100: poster + 101: stage + 102: van + 103: ship + 104: fountain + 105: conveyor belt + 106: canopy + 107: washer + 108: plaything + 109: swimming pool + 110: stool + 111: barrel + 112: basket + 113: waterfall + 114: tent + 115: bag + 116: minibike + 117: cradle + 118: oven + 119: ball + 120: food + 121: step + 122: tank + 123: trade name + 124: microwave + 125: pot + 126: animal + 127: bicycle + 128: lake + 129: dishwasher + 130: screen + 131: blanket + 132: sculpture + 133: hood + 134: sconce + 135: vase + 136: traffic light + 137: tray + 138: ashcan + 139: fan + 140: pier + 141: crt screen + 142: plate + 143: monitor + 144: bulletin board + 145: shower + 146: radiator + 147: glass + 148: clock + 149: flag +download: + url: http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip +nc: 150 +source_ignore_label: 0 +ignore_label: 255 +label_offset: 1 diff --git a/mblt_vision/datasets/cityscapes.yaml b/mblt_vision/datasets/cityscapes.yaml new file mode 100644 index 0000000..e33b106 --- /dev/null +++ b/mblt_vision/datasets/cityscapes.yaml @@ -0,0 +1,54 @@ +# Cityscapes validation taxonomy from the official train/validation/test archives. +# Organized paths are relative to `path`. +name: cityscapes +path: ~/.mblt_model_zoo/datasets/cityscapes +val: images +tasks: + - semantic_segmentation +nc: 19 +names: + 0: road + 1: sidewalk + 2: building + 3: wall + 4: fence + 5: pole + 6: traffic light + 7: traffic sign + 8: vegetation + 9: terrain + 10: sky + 11: person + 12: rider + 13: car + 14: truck + 15: bus + 16: train + 17: motorcycle + 18: bicycle +category_ids: [7, 8, 11, 12, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 32, 33] +palette: + 0: [128, 64, 128] + 1: [244, 35, 232] + 2: [70, 70, 70] + 3: [102, 102, 156] + 4: [190, 153, 153] + 5: [153, 153, 153] + 6: [250, 170, 30] + 7: [220, 220, 0] + 8: [107, 142, 35] + 9: [152, 251, 152] + 10: [70, 130, 180] + 11: [220, 20, 60] + 12: [255, 0, 0] + 13: [0, 0, 142] + 14: [0, 0, 70] + 15: [0, 60, 100] + 16: [0, 80, 100] + 17: [0, 0, 230] + 18: [119, 11, 32] +download: + type: cityscapes + source: https://github.com/mcordts/cityscapesScripts + images_archive: leftImg8bit_trainvaltest.zip + annotations_archive: gtFine_trainvaltest.zip diff --git a/mblt_vision/datasets/coco.yaml b/mblt_vision/datasets/coco.yaml new file mode 100644 index 0000000..a3ade17 --- /dev/null +++ b/mblt_vision/datasets/coco.yaml @@ -0,0 +1,174 @@ +# COCO 2017 validation dataset. Paths are relative to `path` unless absolute. +name: coco +path: ~/.mblt_model_zoo/datasets/coco +tasks: + - object_detection + - instance_segmentation + - pose_estimation +val: val2017 +download: + images: http://images.cocodataset.org/zips/val2017.zip + annotations: http://images.cocodataset.org/annotations/annotations_trainval2017.zip + +names: + 0: person + 1: bicycle + 2: car + 3: motorcycle + 4: airplane + 5: bus + 6: train + 7: truck + 8: boat + 9: traffic light + 10: fire hydrant + 11: stop sign + 12: parking meter + 13: bench + 14: bird + 15: cat + 16: dog + 17: horse + 18: sheep + 19: cow + 20: elephant + 21: bear + 22: zebra + 23: giraffe + 24: backpack + 25: umbrella + 26: handbag + 27: tie + 28: suitcase + 29: frisbee + 30: skis + 31: snowboard + 32: sports ball + 33: kite + 34: baseball bat + 35: baseball glove + 36: skateboard + 37: surfboard + 38: tennis racket + 39: bottle + 40: wine glass + 41: cup + 42: fork + 43: knife + 44: spoon + 45: bowl + 46: banana + 47: apple + 48: sandwich + 49: orange + 50: broccoli + 51: carrot + 52: hot dog + 53: pizza + 54: donut + 55: cake + 56: chair + 57: couch + 58: potted plant + 59: bed + 60: dining table + 61: toilet + 62: tv + 63: laptop + 64: mouse + 65: remote + 66: keyboard + 67: cell phone + 68: microwave + 69: oven + 70: toaster + 71: sink + 72: refrigerator + 73: book + 74: clock + 75: vase + 76: scissors + 77: teddy bear + 78: hair drier + 79: toothbrush +category_ids: +- 1 +- 2 +- 3 +- 4 +- 5 +- 6 +- 7 +- 8 +- 9 +- 10 +- 11 +- 13 +- 14 +- 15 +- 16 +- 17 +- 18 +- 19 +- 20 +- 21 +- 22 +- 23 +- 24 +- 25 +- 27 +- 28 +- 31 +- 32 +- 33 +- 34 +- 35 +- 36 +- 37 +- 38 +- 39 +- 40 +- 41 +- 42 +- 43 +- 44 +- 46 +- 47 +- 48 +- 49 +- 50 +- 51 +- 52 +- 53 +- 54 +- 55 +- 56 +- 57 +- 58 +- 59 +- 60 +- 61 +- 62 +- 63 +- 64 +- 65 +- 67 +- 70 +- 72 +- 73 +- 74 +- 75 +- 76 +- 77 +- 78 +- 79 +- 80 +- 81 +- 82 +- 84 +- 85 +- 86 +- 87 +- 88 +- 89 +- 90 diff --git a/mblt_vision/datasets/dotav1.yaml b/mblt_vision/datasets/dotav1.yaml new file mode 100644 index 0000000..827c28a --- /dev/null +++ b/mblt_vision/datasets/dotav1.yaml @@ -0,0 +1,28 @@ +# DOTAv1 validation dataset. Paths are relative to `path` unless absolute. +name: dotav1 +path: ~/.mblt_model_zoo/datasets/dotav1 +tasks: + - obb +val: images +labels: labels/val_original +names: + 0: plane + 1: ship + 2: storage-tank + 3: baseball-diamond + 4: tennis-court + 5: basketball-court + 6: ground-track-field + 7: harbor + 8: bridge + 9: large-vehicle + 10: small-vehicle + 11: helicopter + 12: roundabout + 13: soccer-ball-field + 14: swimming-pool +download: + type: google_drive_folder + url: https://drive.google.com/drive/folders/1n5w45suVOyaqY84hltJhIZdtVFD9B224 + images_archive: images/part1.zip + labels_archive: labelTxt-v1.0/labelTxt.zip diff --git a/mblt_vision/datasets/imagenet.yaml b/mblt_vision/datasets/imagenet.yaml new file mode 100644 index 0000000..973c153 --- /dev/null +++ b/mblt_vision/datasets/imagenet.yaml @@ -0,0 +1,1019 @@ +# ImageNet-1k validation dataset. Paths are relative to `path` unless absolute. +name: imagenet +path: ~/.mblt_model_zoo/datasets/imagenet +tasks: + - image_classification +val: . +download: + images: https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar + annotations: https://www.image-net.org/data/ILSVRC/2012/ILSVRC2012_bbox_val_v3.tgz + +names: + 0: tench, Tinca tinca + 1: goldfish, Carassius auratus + 2: great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias + 3: tiger shark, Galeocerdo cuvieri + 4: hammerhead, hammerhead shark + 5: electric ray, crampfish, numbfish, torpedo + 6: stingray + 7: cock + 8: hen + 9: ostrich, Struthio camelus + 10: brambling, Fringilla montifringilla + 11: goldfinch, Carduelis carduelis + 12: house finch, linnet, Carpodacus mexicanus + 13: junco, snowbird + 14: indigo bunting, indigo finch, indigo bird, Passerina cyanea + 15: robin, American robin, Turdus migratorius + 16: bulbul + 17: jay + 18: magpie + 19: chickadee + 20: water ouzel, dipper + 21: kite + 22: bald eagle, American eagle, Haliaeetus leucocephalus + 23: vulture + 24: great grey owl, great gray owl, Strix nebulosa + 25: European fire salamander, Salamandra salamandra + 26: common newt, Triturus vulgaris + 27: eft + 28: spotted salamander, Ambystoma maculatum + 29: axolotl, mud puppy, Ambystoma mexicanum + 30: bullfrog, Rana catesbeiana + 31: tree frog, tree-frog + 32: tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui + 33: loggerhead, loggerhead turtle, Caretta caretta + 34: leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea + 35: mud turtle + 36: terrapin + 37: box turtle, box tortoise + 38: banded gecko + 39: common iguana, iguana, Iguana iguana + 40: American chameleon, anole, Anolis carolinensis + 41: whiptail, whiptail lizard + 42: agama + 43: frilled lizard, Chlamydosaurus kingi + 44: alligator lizard + 45: Gila monster, Heloderma suspectum + 46: green lizard, Lacerta viridis + 47: African chameleon, Chamaeleo chamaeleon + 48: Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis + 49: African crocodile, Nile crocodile, Crocodylus niloticus + 50: American alligator, Alligator mississipiensis + 51: triceratops + 52: thunder snake, worm snake, Carphophis amoenus + 53: ringneck snake, ring-necked snake, ring snake + 54: hognose snake, puff adder, sand viper + 55: green snake, grass snake + 56: king snake, kingsnake + 57: garter snake, grass snake + 58: water snake + 59: vine snake + 60: night snake, Hypsiglena torquata + 61: boa constrictor, Constrictor constrictor + 62: rock python, rock snake, Python sebae + 63: Indian cobra, Naja naja + 64: green mamba + 65: sea snake + 66: horned viper, cerastes, sand viper, horned asp, Cerastes cornutus + 67: diamondback, diamondback rattlesnake, Crotalus adamanteus + 68: sidewinder, horned rattlesnake, Crotalus cerastes + 69: trilobite + 70: harvestman, daddy longlegs, Phalangium opilio + 71: scorpion + 72: black and gold garden spider, Argiope aurantia + 73: barn spider, Araneus cavaticus + 74: garden spider, Aranea diademata + 75: black widow, Latrodectus mactans + 76: tarantula + 77: wolf spider, hunting spider + 78: tick + 79: centipede + 80: black grouse + 81: ptarmigan + 82: ruffed grouse, partridge, Bonasa umbellus + 83: prairie chicken, prairie grouse, prairie fowl + 84: peacock + 85: quail + 86: partridge + 87: African grey, African gray, Psittacus erithacus + 88: macaw + 89: sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita + 90: lorikeet + 91: coucal + 92: bee eater + 93: hornbill + 94: hummingbird + 95: jacamar + 96: toucan + 97: drake + 98: red-breasted merganser, Mergus serrator + 99: goose + 100: black swan, Cygnus atratus + 101: tusker + 102: echidna, spiny anteater, anteater + 103: platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus + anatinus + 104: wallaby, brush kangaroo + 105: koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus + 106: wombat + 107: jellyfish + 108: sea anemone, anemone + 109: brain coral + 110: flatworm, platyhelminth + 111: nematode, nematode worm, roundworm + 112: conch + 113: snail + 114: slug + 115: sea slug, nudibranch + 116: chiton, coat-of-mail shell, sea cradle, polyplacophore + 117: chambered nautilus, pearly nautilus, nautilus + 118: Dungeness crab, Cancer magister + 119: rock crab, Cancer irroratus + 120: fiddler crab + 121: king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica + 122: American lobster, Northern lobster, Maine lobster, Homarus americanus + 123: spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish + 124: crayfish, crawfish, crawdad, crawdaddy + 125: hermit crab + 126: isopod + 127: white stork, Ciconia ciconia + 128: black stork, Ciconia nigra + 129: spoonbill + 130: flamingo + 131: little blue heron, Egretta caerulea + 132: American egret, great white heron, Egretta albus + 133: bittern + 134: crane + 135: limpkin, Aramus pictus + 136: European gallinule, Porphyrio porphyrio + 137: American coot, marsh hen, mud hen, water hen, Fulica americana + 138: bustard + 139: ruddy turnstone, Arenaria interpres + 140: red-backed sandpiper, dunlin, Erolia alpina + 141: redshank, Tringa totanus + 142: dowitcher + 143: oystercatcher, oyster catcher + 144: pelican + 145: king penguin, Aptenodytes patagonica + 146: albatross, mollymawk + 147: grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus + 148: killer whale, killer, orca, grampus, sea wolf, Orcinus orca + 149: dugong, Dugong dugon + 150: sea lion + 151: Chihuahua + 152: Japanese spaniel + 153: Maltese dog, Maltese terrier, Maltese + 154: Pekinese, Pekingese, Peke + 155: Shih-Tzu + 156: Blenheim spaniel + 157: papillon + 158: toy terrier + 159: Rhodesian ridgeback + 160: Afghan hound, Afghan + 161: basset, basset hound + 162: beagle + 163: bloodhound, sleuthhound + 164: bluetick + 165: black-and-tan coonhound + 166: Walker hound, Walker foxhound + 167: English foxhound + 168: redbone + 169: borzoi, Russian wolfhound + 170: Irish wolfhound + 171: Italian greyhound + 172: whippet + 173: Ibizan hound, Ibizan Podenco + 174: Norwegian elkhound, elkhound + 175: otterhound, otter hound + 176: Saluki, gazelle hound + 177: Scottish deerhound, deerhound + 178: Weimaraner + 179: Staffordshire bullterrier, Staffordshire bull terrier + 180: American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, + pit bull terrier + 181: Bedlington terrier + 182: Border terrier + 183: Kerry blue terrier + 184: Irish terrier + 185: Norfolk terrier + 186: Norwich terrier + 187: Yorkshire terrier + 188: wire-haired fox terrier + 189: Lakeland terrier + 190: Sealyham terrier, Sealyham + 191: Airedale, Airedale terrier + 192: cairn, cairn terrier + 193: Australian terrier + 194: Dandie Dinmont, Dandie Dinmont terrier + 195: Boston bull, Boston terrier + 196: miniature schnauzer + 197: giant schnauzer + 198: standard schnauzer + 199: Scotch terrier, Scottish terrier, Scottie + 200: Tibetan terrier, chrysanthemum dog + 201: silky terrier, Sydney silky + 202: soft-coated wheaten terrier + 203: West Highland white terrier + 204: Lhasa, Lhasa apso + 205: flat-coated retriever + 206: curly-coated retriever + 207: golden retriever + 208: Labrador retriever + 209: Chesapeake Bay retriever + 210: German short-haired pointer + 211: vizsla, Hungarian pointer + 212: English setter + 213: Irish setter, red setter + 214: Gordon setter + 215: Brittany spaniel + 216: clumber, clumber spaniel + 217: English springer, English springer spaniel + 218: Welsh springer spaniel + 219: cocker spaniel, English cocker spaniel, cocker + 220: Sussex spaniel + 221: Irish water spaniel + 222: kuvasz + 223: schipperke + 224: groenendael + 225: malinois + 226: briard + 227: kelpie + 228: komondor + 229: Old English sheepdog, bobtail + 230: Shetland sheepdog, Shetland sheep dog, Shetland + 231: collie + 232: Border collie + 233: Bouvier des Flandres, Bouviers des Flandres + 234: Rottweiler + 235: German shepherd, German shepherd dog, German police dog, alsatian + 236: Doberman, Doberman pinscher + 237: miniature pinscher + 238: Greater Swiss Mountain dog + 239: Bernese mountain dog + 240: Appenzeller + 241: EntleBucher + 242: boxer + 243: bull mastiff + 244: Tibetan mastiff + 245: French bulldog + 246: Great Dane + 247: Saint Bernard, St Bernard + 248: Eskimo dog, husky + 249: malamute, malemute, Alaskan malamute + 250: Siberian husky + 251: dalmatian, coach dog, carriage dog + 252: affenpinscher, monkey pinscher, monkey dog + 253: basenji + 254: pug, pug-dog + 255: Leonberg + 256: Newfoundland, Newfoundland dog + 257: Great Pyrenees + 258: Samoyed, Samoyede + 259: Pomeranian + 260: chow, chow chow + 261: keeshond + 262: Brabancon griffon + 263: Pembroke, Pembroke Welsh corgi + 264: Cardigan, Cardigan Welsh corgi + 265: toy poodle + 266: miniature poodle + 267: standard poodle + 268: Mexican hairless + 269: timber wolf, grey wolf, gray wolf, Canis lupus + 270: white wolf, Arctic wolf, Canis lupus tundrarum + 271: red wolf, maned wolf, Canis rufus, Canis niger + 272: coyote, prairie wolf, brush wolf, Canis latrans + 273: dingo, warrigal, warragal, Canis dingo + 274: dhole, Cuon alpinus + 275: African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus + 276: hyena, hyaena + 277: red fox, Vulpes vulpes + 278: kit fox, Vulpes macrotis + 279: Arctic fox, white fox, Alopex lagopus + 280: grey fox, gray fox, Urocyon cinereoargenteus + 281: tabby, tabby cat + 282: tiger cat + 283: Persian cat + 284: Siamese cat, Siamese + 285: Egyptian cat + 286: cougar, puma, catamount, mountain lion, painter, panther, Felis concolor + 287: lynx, catamount + 288: leopard, Panthera pardus + 289: snow leopard, ounce, Panthera uncia + 290: jaguar, panther, Panthera onca, Felis onca + 291: lion, king of beasts, Panthera leo + 292: tiger, Panthera tigris + 293: cheetah, chetah, Acinonyx jubatus + 294: brown bear, bruin, Ursus arctos + 295: American black bear, black bear, Ursus americanus, Euarctos americanus + 296: ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus + 297: sloth bear, Melursus ursinus, Ursus ursinus + 298: mongoose + 299: meerkat, mierkat + 300: tiger beetle + 301: ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle + 302: ground beetle, carabid beetle + 303: long-horned beetle, longicorn, longicorn beetle + 304: leaf beetle, chrysomelid + 305: dung beetle + 306: rhinoceros beetle + 307: weevil + 308: fly + 309: bee + 310: ant, emmet, pismire + 311: grasshopper, hopper + 312: cricket + 313: walking stick, walkingstick, stick insect + 314: cockroach, roach + 315: mantis, mantid + 316: cicada, cicala + 317: leafhopper + 318: lacewing, lacewing fly + 319: dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, + snake doctor, mosquito hawk, skeeter hawk + 320: damselfly + 321: admiral + 322: ringlet, ringlet butterfly + 323: monarch, monarch butterfly, milkweed butterfly, Danaus plexippus + 324: cabbage butterfly + 325: sulphur butterfly, sulfur butterfly + 326: lycaenid, lycaenid butterfly + 327: starfish, sea star + 328: sea urchin + 329: sea cucumber, holothurian + 330: wood rabbit, cottontail, cottontail rabbit + 331: hare + 332: Angora, Angora rabbit + 333: hamster + 334: porcupine, hedgehog + 335: fox squirrel, eastern fox squirrel, Sciurus niger + 336: marmot + 337: beaver + 338: guinea pig, Cavia cobaya + 339: sorrel + 340: zebra + 341: hog, pig, grunter, squealer, Sus scrofa + 342: wild boar, boar, Sus scrofa + 343: warthog + 344: hippopotamus, hippo, river horse, Hippopotamus amphibius + 345: ox + 346: water buffalo, water ox, Asiatic buffalo, Bubalus bubalis + 347: bison + 348: ram, tup + 349: bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, + Ovis canadensis + 350: ibex, Capra ibex + 351: hartebeest + 352: impala, Aepyceros melampus + 353: gazelle + 354: Arabian camel, dromedary, Camelus dromedarius + 355: llama + 356: weasel + 357: mink + 358: polecat, fitch, foulmart, foumart, Mustela putorius + 359: black-footed ferret, ferret, Mustela nigripes + 360: otter + 361: skunk, polecat, wood pussy + 362: badger + 363: armadillo + 364: three-toed sloth, ai, Bradypus tridactylus + 365: orangutan, orang, orangutang, Pongo pygmaeus + 366: gorilla, Gorilla gorilla + 367: chimpanzee, chimp, Pan troglodytes + 368: gibbon, Hylobates lar + 369: siamang, Hylobates syndactylus, Symphalangus syndactylus + 370: guenon, guenon monkey + 371: patas, hussar monkey, Erythrocebus patas + 372: baboon + 373: macaque + 374: langur + 375: colobus, colobus monkey + 376: proboscis monkey, Nasalis larvatus + 377: marmoset + 378: capuchin, ringtail, Cebus capucinus + 379: howler monkey, howler + 380: titi, titi monkey + 381: spider monkey, Ateles geoffroyi + 382: squirrel monkey, Saimiri sciureus + 383: Madagascar cat, ring-tailed lemur, Lemur catta + 384: indri, indris, Indri indri, Indri brevicaudatus + 385: Indian elephant, Elephas maximus + 386: African elephant, Loxodonta africana + 387: lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens + 388: giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca + 389: barracouta, snoek + 390: eel + 391: coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch + 392: rock beauty, Holocanthus tricolor + 393: anemone fish + 394: sturgeon + 395: gar, garfish, garpike, billfish, Lepisosteus osseus + 396: lionfish + 397: puffer, pufferfish, blowfish, globefish + 398: abacus + 399: abaya + 400: academic gown, academic robe, judge's robe + 401: accordion, piano accordion, squeeze box + 402: acoustic guitar + 403: aircraft carrier, carrier, flattop, attack aircraft carrier + 404: airliner + 405: airship, dirigible + 406: altar + 407: ambulance + 408: amphibian, amphibious vehicle + 409: analog clock + 410: apiary, bee house + 411: apron + 412: ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, + trash barrel, trash bin + 413: assault rifle, assault gun + 414: backpack, back pack, knapsack, packsack, rucksack, haversack + 415: bakery, bakeshop, bakehouse + 416: balance beam, beam + 417: balloon + 418: ballpoint, ballpoint pen, ballpen, Biro + 419: Band Aid + 420: banjo + 421: bannister, banister, balustrade, balusters, handrail + 422: barbell + 423: barber chair + 424: barbershop + 425: barn + 426: barometer + 427: barrel, cask + 428: barrow, garden cart, lawn cart, wheelbarrow + 429: baseball + 430: basketball + 431: bassinet + 432: bassoon + 433: bathing cap, swimming cap + 434: bath towel + 435: bathtub, bathing tub, bath, tub + 436: beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, + waggon + 437: beacon, lighthouse, beacon light, pharos + 438: beaker + 439: bearskin, busby, shako + 440: beer bottle + 441: beer glass + 442: bell cote, bell cot + 443: bib + 444: bicycle-built-for-two, tandem bicycle, tandem + 445: bikini, two-piece + 446: binder, ring-binder + 447: binoculars, field glasses, opera glasses + 448: birdhouse + 449: boathouse + 450: bobsled, bobsleigh, bob + 451: bolo tie, bolo, bola tie, bola + 452: bonnet, poke bonnet + 453: bookcase + 454: bookshop, bookstore, bookstall + 455: bottlecap + 456: bow + 457: bow tie, bow-tie, bowtie + 458: brass, memorial tablet, plaque + 459: brassiere, bra, bandeau + 460: breakwater, groin, groyne, mole, bulwark, seawall, jetty + 461: breastplate, aegis, egis + 462: broom + 463: bucket, pail + 464: buckle + 465: bulletproof vest + 466: bullet train, bullet + 467: butcher shop, meat market + 468: cab, hack, taxi, taxicab + 469: caldron, cauldron + 470: candle, taper, wax light + 471: cannon + 472: canoe + 473: can opener, tin opener + 474: cardigan + 475: car mirror + 476: carousel, carrousel, merry-go-round, roundabout, whirligig + 477: carpenter's kit, tool kit + 478: carton + 479: car wheel + 480: cash machine, cash dispenser, automated teller machine, automatic teller machine, + automated teller, automatic teller, ATM + 481: cassette + 482: cassette player + 483: castle + 484: catamaran + 485: CD player + 486: cello, violoncello + 487: cellular telephone, cellular phone, cellphone, cell, mobile phone + 488: chain + 489: chainlink fence + 490: chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour + 491: chain saw, chainsaw + 492: chest + 493: chiffonier, commode + 494: chime, bell, gong + 495: china cabinet, china closet + 496: Christmas stocking + 497: church, church building + 498: cinema, movie theater, movie theatre, movie house, picture palace + 499: cleaver, meat cleaver, chopper + 500: cliff dwelling + 501: cloak + 502: clog, geta, patten, sabot + 503: cocktail shaker + 504: coffee mug + 505: coffeepot + 506: coil, spiral, volute, whorl, helix + 507: combination lock + 508: computer keyboard, keypad + 509: confectionery, confectionary, candy store + 510: container ship, containership, container vessel + 511: convertible + 512: corkscrew, bottle screw + 513: cornet, horn, trumpet, trump + 514: cowboy boot + 515: cowboy hat, ten-gallon hat + 516: cradle + 517: crane + 518: crash helmet + 519: crate + 520: crib, cot + 521: Crock Pot + 522: croquet ball + 523: crutch + 524: cuirass + 525: dam, dike, dyke + 526: desk + 527: desktop computer + 528: dial telephone, dial phone + 529: diaper, nappy, napkin + 530: digital clock + 531: digital watch + 532: dining table, board + 533: dishrag, dishcloth + 534: dishwasher, dish washer, dishwashing machine + 535: disk brake, disc brake + 536: dock, dockage, docking facility + 537: dogsled, dog sled, dog sleigh + 538: dome + 539: doormat, welcome mat + 540: drilling platform, offshore rig + 541: drum, membranophone, tympan + 542: drumstick + 543: dumbbell + 544: Dutch oven + 545: electric fan, blower + 546: electric guitar + 547: electric locomotive + 548: entertainment center + 549: envelope + 550: espresso maker + 551: face powder + 552: feather boa, boa + 553: file, file cabinet, filing cabinet + 554: fireboat + 555: fire engine, fire truck + 556: fire screen, fireguard + 557: flagpole, flagstaff + 558: flute, transverse flute + 559: folding chair + 560: football helmet + 561: forklift + 562: fountain + 563: fountain pen + 564: four-poster + 565: freight car + 566: French horn, horn + 567: frying pan, frypan, skillet + 568: fur coat + 569: garbage truck, dustcart + 570: gasmask, respirator, gas helmet + 571: gas pump, gasoline pump, petrol pump, island dispenser + 572: goblet + 573: go-kart + 574: golf ball + 575: golfcart, golf cart + 576: gondola + 577: gong, tam-tam + 578: gown + 579: grand piano, grand + 580: greenhouse, nursery, glasshouse + 581: grille, radiator grille + 582: grocery store, grocery, food market, market + 583: guillotine + 584: hair slide + 585: hair spray + 586: half track + 587: hammer + 588: hamper + 589: hand blower, blow dryer, blow drier, hair dryer, hair drier + 590: hand-held computer, hand-held microcomputer + 591: handkerchief, hankie, hanky, hankey + 592: hard disc, hard disk, fixed disk + 593: harmonica, mouth organ, harp, mouth harp + 594: harp + 595: harvester, reaper + 596: hatchet + 597: holster + 598: home theater, home theatre + 599: honeycomb + 600: hook, claw + 601: hoopskirt, crinoline + 602: horizontal bar, high bar + 603: horse cart, horse-cart + 604: hourglass + 605: iPod + 606: iron, smoothing iron + 607: jack-o'-lantern + 608: jean, blue jean, denim + 609: jeep, landrover + 610: jersey, T-shirt, tee shirt + 611: jigsaw puzzle + 612: jinrikisha, ricksha, rickshaw + 613: joystick + 614: kimono + 615: knee pad + 616: knot + 617: lab coat, laboratory coat + 618: ladle + 619: lampshade, lamp shade + 620: laptop, laptop computer + 621: lawn mower, mower + 622: lens cap, lens cover + 623: letter opener, paper knife, paperknife + 624: library + 625: lifeboat + 626: lighter, light, igniter, ignitor + 627: limousine, limo + 628: liner, ocean liner + 629: lipstick, lip rouge + 630: Loafer + 631: lotion + 632: loudspeaker, speaker, speaker unit, loudspeaker system, speaker system + 633: loupe, jeweler's loupe + 634: lumbermill, sawmill + 635: magnetic compass + 636: mailbag, postbag + 637: mailbox, letter box + 638: maillot + 639: maillot, tank suit + 640: manhole cover + 641: maraca + 642: marimba, xylophone + 643: mask + 644: matchstick + 645: maypole + 646: maze, labyrinth + 647: measuring cup + 648: medicine chest, medicine cabinet + 649: megalith, megalithic structure + 650: microphone, mike + 651: microwave, microwave oven + 652: military uniform + 653: milk can + 654: minibus + 655: miniskirt, mini + 656: minivan + 657: missile + 658: mitten + 659: mixing bowl + 660: mobile home, manufactured home + 661: Model T + 662: modem + 663: monastery + 664: monitor + 665: moped + 666: mortar + 667: mortarboard + 668: mosque + 669: mosquito net + 670: motor scooter, scooter + 671: mountain bike, all-terrain bike, off-roader + 672: mountain tent + 673: mouse, computer mouse + 674: mousetrap + 675: moving van + 676: muzzle + 677: nail + 678: neck brace + 679: necklace + 680: nipple + 681: notebook, notebook computer + 682: obelisk + 683: oboe, hautboy, hautbois + 684: ocarina, sweet potato + 685: odometer, hodometer, mileometer, milometer + 686: oil filter + 687: organ, pipe organ + 688: oscilloscope, scope, cathode-ray oscilloscope, CRO + 689: overskirt + 690: oxcart + 691: oxygen mask + 692: packet + 693: paddle, boat paddle + 694: paddlewheel, paddle wheel + 695: padlock + 696: paintbrush + 697: pajama, pyjama, pj's, jammies + 698: palace + 699: panpipe, pandean pipe, syrinx + 700: paper towel + 701: parachute, chute + 702: parallel bars, bars + 703: park bench + 704: parking meter + 705: passenger car, coach, carriage + 706: patio, terrace + 707: pay-phone, pay-station + 708: pedestal, plinth, footstall + 709: pencil box, pencil case + 710: pencil sharpener + 711: perfume, essence + 712: Petri dish + 713: photocopier + 714: pick, plectrum, plectron + 715: pickelhaube + 716: picket fence, paling + 717: pickup, pickup truck + 718: pier + 719: piggy bank, penny bank + 720: pill bottle + 721: pillow + 722: ping-pong ball + 723: pinwheel + 724: pirate, pirate ship + 725: pitcher, ewer + 726: plane, carpenter's plane, woodworking plane + 727: planetarium + 728: plastic bag + 729: plate rack + 730: plow, plough + 731: plunger, plumber's helper + 732: Polaroid camera, Polaroid Land camera + 733: pole + 734: police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria + 735: poncho + 736: pool table, billiard table, snooker table + 737: pop bottle, soda bottle + 738: pot, flowerpot + 739: potter's wheel + 740: power drill + 741: prayer rug, prayer mat + 742: printer + 743: prison, prison house + 744: projectile, missile + 745: projector + 746: puck, hockey puck + 747: punching bag, punch bag, punching ball, punchball + 748: purse + 749: quill, quill pen + 750: quilt, comforter, comfort, puff + 751: racer, race car, racing car + 752: racket, racquet + 753: radiator + 754: radio, wireless + 755: radio telescope, radio reflector + 756: rain barrel + 757: recreational vehicle, RV, R.V. + 758: reel + 759: reflex camera + 760: refrigerator, icebox + 761: remote control, remote + 762: restaurant, eating house, eating place, eatery + 763: revolver, six-gun, six-shooter + 764: rifle + 765: rocking chair, rocker + 766: rotisserie + 767: rubber eraser, rubber, pencil eraser + 768: rugby ball + 769: rule, ruler + 770: running shoe + 771: safe + 772: safety pin + 773: saltshaker, salt shaker + 774: sandal + 775: sarong + 776: sax, saxophone + 777: scabbard + 778: scale, weighing machine + 779: school bus + 780: schooner + 781: scoreboard + 782: screen, CRT screen + 783: screw + 784: screwdriver + 785: seat belt, seatbelt + 786: sewing machine + 787: shield, buckler + 788: shoe shop, shoe-shop, shoe store + 789: shoji + 790: shopping basket + 791: shopping cart + 792: shovel + 793: shower cap + 794: shower curtain + 795: ski + 796: ski mask + 797: sleeping bag + 798: slide rule, slipstick + 799: sliding door + 800: slot, one-armed bandit + 801: snorkel + 802: snowmobile + 803: snowplow, snowplough + 804: soap dispenser + 805: soccer ball + 806: sock + 807: solar dish, solar collector, solar furnace + 808: sombrero + 809: soup bowl + 810: space bar + 811: space heater + 812: space shuttle + 813: spatula + 814: speedboat + 815: spider web, spider's web + 816: spindle + 817: sports car, sport car + 818: spotlight, spot + 819: stage + 820: steam locomotive + 821: steel arch bridge + 822: steel drum + 823: stethoscope + 824: stole + 825: stone wall + 826: stopwatch, stop watch + 827: stove + 828: strainer + 829: streetcar, tram, tramcar, trolley, trolley car + 830: stretcher + 831: studio couch, day bed + 832: stupa, tope + 833: submarine, pigboat, sub, U-boat + 834: suit, suit of clothes + 835: sundial + 836: sunglass + 837: sunglasses, dark glasses, shades + 838: sunscreen, sunblock, sun blocker + 839: suspension bridge + 840: swab, swob, mop + 841: sweatshirt + 842: swimming trunks, bathing trunks + 843: swing + 844: switch, electric switch, electrical switch + 845: syringe + 846: table lamp + 847: tank, army tank, armored combat vehicle, armoured combat vehicle + 848: tape player + 849: teapot + 850: teddy, teddy bear + 851: television, television system + 852: tennis ball + 853: thatch, thatched roof + 854: theater curtain, theatre curtain + 855: thimble + 856: thresher, thrasher, threshing machine + 857: throne + 858: tile roof + 859: toaster + 860: tobacco shop, tobacconist shop, tobacconist + 861: toilet seat + 862: torch + 863: totem pole + 864: tow truck, tow car, wrecker + 865: toyshop + 866: tractor + 867: trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi + 868: tray + 869: trench coat + 870: tricycle, trike, velocipede + 871: trimaran + 872: tripod + 873: triumphal arch + 874: trolleybus, trolley coach, trackless trolley + 875: trombone + 876: tub, vat + 877: turnstile + 878: typewriter keyboard + 879: umbrella + 880: unicycle, monocycle + 881: upright, upright piano + 882: vacuum, vacuum cleaner + 883: vase + 884: vault + 885: velvet + 886: vending machine + 887: vestment + 888: viaduct + 889: violin, fiddle + 890: volleyball + 891: waffle iron + 892: wall clock + 893: wallet, billfold, notecase, pocketbook + 894: wardrobe, closet, press + 895: warplane, military plane + 896: washbasin, handbasin, washbowl, lavabo, wash-hand basin + 897: washer, automatic washer, washing machine + 898: water bottle + 899: water jug + 900: water tower + 901: whiskey jug + 902: whistle + 903: wig + 904: window screen + 905: window shade + 906: Windsor tie + 907: wine bottle + 908: wing + 909: wok + 910: wooden spoon + 911: wool, woolen, woollen + 912: worm fence, snake fence, snake-rail fence, Virginia fence + 913: wreck + 914: yawl + 915: yurt + 916: web site, website, internet site, site + 917: comic book + 918: crossword puzzle, crossword + 919: street sign + 920: traffic light, traffic signal, stoplight + 921: book jacket, dust cover, dust jacket, dust wrapper + 922: menu + 923: plate + 924: guacamole + 925: consomme + 926: hot pot, hotpot + 927: trifle + 928: ice cream, icecream + 929: ice lolly, lolly, lollipop, popsicle + 930: French loaf + 931: bagel, beigel + 932: pretzel + 933: cheeseburger + 934: hotdog, hot dog, red hot + 935: mashed potato + 936: head cabbage + 937: broccoli + 938: cauliflower + 939: zucchini, courgette + 940: spaghetti squash + 941: acorn squash + 942: butternut squash + 943: cucumber, cuke + 944: artichoke, globe artichoke + 945: bell pepper + 946: cardoon + 947: mushroom + 948: Granny Smith + 949: strawberry + 950: orange + 951: lemon + 952: fig + 953: pineapple, ananas + 954: banana + 955: jackfruit, jak, jack + 956: custard apple + 957: pomegranate + 958: hay + 959: carbonara + 960: chocolate sauce, chocolate syrup + 961: dough + 962: meat loaf, meatloaf + 963: pizza, pizza pie + 964: potpie + 965: burrito + 966: red wine + 967: espresso + 968: cup + 969: eggnog + 970: alp + 971: bubble + 972: cliff, drop, drop-off + 973: coral reef + 974: geyser + 975: lakeside, lakeshore + 976: promontory, headland, head, foreland + 977: sandbar, sand bar + 978: seashore, coast, seacoast, sea-coast + 979: valley, vale + 980: volcano + 981: ballplayer, baseball player + 982: groom, bridegroom + 983: scuba diver + 984: rapeseed + 985: daisy + 986: yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium + parviflorum + 987: corn + 988: acorn + 989: hip, rose hip, rosehip + 990: buckeye, horse chestnut, conker + 991: coral fungus + 992: agaric + 993: gyromitra + 994: stinkhorn, carrion fungus + 995: earthstar + 996: hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa + 997: bolete + 998: ear, spike, capitulum + 999: toilet tissue, toilet paper, bathroom tissue diff --git a/mblt_vision/datasets/nyu-depth.yaml b/mblt_vision/datasets/nyu-depth.yaml new file mode 100644 index 0000000..43aded5 --- /dev/null +++ b/mblt_vision/datasets/nyu-depth.yaml @@ -0,0 +1,7 @@ +name: nyu-depth +path: ~/.mblt_model_zoo/datasets/nyu-depth +val: images +tasks: + - depth_estimation +download: + url: https://github.com/ultralytics/assets/releases/download/v0.0.0/nyu-depth.zip diff --git a/mblt_vision/datasets/registry.py b/mblt_vision/datasets/registry.py new file mode 100644 index 0000000..887f8b9 --- /dev/null +++ b/mblt_vision/datasets/registry.py @@ -0,0 +1,158 @@ +"""Load YAML-backed vision dataset definitions.""" + +from __future__ import annotations + +import copy +from functools import lru_cache +from pathlib import Path +from typing import Any + +import yaml + +from .._tasks import normalize_vision_task + +DATASET_CONFIG_DIR = Path(__file__).parent + + +@lru_cache(maxsize=None) +def _load_dataset_config(name: str) -> dict[str, Any]: + """Load and validate a dataset definition without mutating its cached value.""" + + config_path = DATASET_CONFIG_DIR / f"{name.lower()}.yaml" + if not config_path.is_file(): + raise FileNotFoundError(f"Vision dataset definition not found: {config_path}") + + with config_path.open(encoding="utf-8") as config_file: + config = yaml.safe_load(config_file) + if not isinstance(config, dict): + raise ValueError(f"Vision dataset definition must be a mapping: {config_path}") + if not isinstance(config.get("path"), str): + raise ValueError( + f"Vision dataset definition requires a string `path`: {config_path}" + ) + if not isinstance(config.get("name"), str): + raise ValueError( + f"Vision dataset definition requires a string `name`: {config_path}" + ) + if not isinstance(config.get("tasks"), list) or not all( + isinstance(task, str) for task in config["tasks"] + ): + raise ValueError( + f"Vision dataset definition requires a string-list `tasks`: {config_path}" + ) + config["path"] = str(Path(config["path"]).expanduser()) + return config + + +def get_dataset_config(name: str) -> dict[str, Any]: + """Load a named vision dataset definition. + + Args: + name: Dataset filename stem, such as ``dotav1``. + + Returns: + Parsed dataset configuration with its path expanded. + + Raises: + FileNotFoundError: If the dataset definition does not exist. + ValueError: If the definition is malformed. + """ + + return copy.deepcopy(_load_dataset_config(name)) + + +def get_dataset_class_names(name: str) -> tuple[str, ...]: + """Return ordered class names from a dataset definition. + + Args: + name: Dataset filename stem, such as ``coco``. + + Returns: + Class names ordered by contiguous zero-based index. + + Raises: + ValueError: If the dataset has no valid contiguous ``names`` mapping. + """ + + names = _load_dataset_config(name).get("names") + if not isinstance(names, dict) or not all( + isinstance(index, int) and isinstance(label, str) + for index, label in names.items() + ): + raise ValueError( + f"Vision dataset definition requires an integer-keyed `names` mapping: {name}" + ) + if set(names) != set(range(len(names))): + raise ValueError( + f"Vision dataset class IDs must be contiguous and zero-based: {name}" + ) + return tuple(names[index] for index in range(len(names))) + + +@lru_cache(maxsize=None) +def get_dataset_category_ids(name: str) -> tuple[int, ...]: + """Return immutable source category IDs from a dataset definition. + + Args: + name: Dataset filename stem, such as ``coco``. + + Returns: + Source category IDs ordered by contiguous model-output index. + + Raises: + ValueError: If the dataset has no integer ``category_ids`` list. + """ + + category_ids = _load_dataset_config(name).get("category_ids") + if not isinstance(category_ids, list) or not all( + isinstance(category_id, int) for category_id in category_ids + ): + raise ValueError( + f"Vision dataset definition requires an integer-list `category_ids`: {name}" + ) + return tuple(category_ids) + + +def get_dataset_config_for_task( + task: str, dataset: str | None = None +) -> dict[str, Any]: + """Return the validation dataset definition associated with a vision task. + + Args: + task: Vision task name from a model postprocess configuration. + dataset: Optional output-taxonomy name. When omitted, the first configured + task match is returned for backward compatibility. + + Returns: + Matching dataset configuration. + + Raises: + ValueError: If no configured dataset supports the task. + """ + + normalized_task = normalize_vision_task(task) + if dataset is not None: + try: + config = get_dataset_config(dataset) + except FileNotFoundError as exc: + raise ValueError( + f"No vision dataset definition exists for taxonomy `{dataset}`." + ) from exc + configured_tasks = { + normalize_vision_task(configured_task) + for configured_task in config["tasks"] + } + if normalized_task not in configured_tasks: + raise ValueError( + f"Vision dataset `{dataset}` does not support task `{task}`." + ) + return config + + for config_path in sorted(DATASET_CONFIG_DIR.glob("*.yaml")): + config = get_dataset_config(config_path.stem) + if normalized_task in { + normalize_vision_task(configured_task) + for configured_task in config["tasks"] + }: + return config + raise ValueError(f"No vision dataset definition supports task `{task}`.") diff --git a/mblt_vision/datasets/widerface.yaml b/mblt_vision/datasets/widerface.yaml new file mode 100644 index 0000000..2724a8b --- /dev/null +++ b/mblt_vision/datasets/widerface.yaml @@ -0,0 +1,9 @@ +# WiderFace validation dataset. Paths are relative to `path` unless absolute. +name: widerface +path: ~/.mblt_model_zoo/datasets/widerface +tasks: + - face_detection +val: images +download: + images: https://huggingface.co/datasets/CUHK-CSE/wider_face/resolve/main/data/WIDER_val.zip + annotations: https://huggingface.co/datasets/CUHK-CSE/wider_face/resolve/main/data/wider_face_split.zip diff --git a/mblt_vision/depth_estimation/__init__.py b/mblt_vision/depth_estimation/__init__.py new file mode 100644 index 0000000..6682234 --- /dev/null +++ b/mblt_vision/depth_estimation/__init__.py @@ -0,0 +1,19 @@ +"""Depth estimation model exports.""" + +from __future__ import annotations + +from .._compat import create_model_class + +__all__: list[str] = [ + "YOLO26lDepth", + "YOLO26mDepth", + "YOLO26nDepth", + "YOLO26sDepth", + "YOLO26xDepth", +] + +YOLO26lDepth = create_model_class("YOLO26lDepth", __name__) +YOLO26mDepth = create_model_class("YOLO26mDepth", __name__) +YOLO26nDepth = create_model_class("YOLO26nDepth", __name__) +YOLO26sDepth = create_model_class("YOLO26sDepth", __name__) +YOLO26xDepth = create_model_class("YOLO26xDepth", __name__) diff --git a/mblt_vision/face_detection/__init__.py b/mblt_vision/face_detection/__init__.py new file mode 100644 index 0000000..0e1ca62 --- /dev/null +++ b/mblt_vision/face_detection/__init__.py @@ -0,0 +1,43 @@ +"""Face detection exports for the vision package.""" + +from __future__ import annotations + +from .._compat import create_model_class + +__all__: list[str] = [ + "YOLO11l_face", + "YOLO11m_face", + "YOLO11n_face", + "YOLO11s_face", + "YOLO12l_face", + "YOLO12m_face", + "YOLO12n_face", + "YOLO12s_face", + "YOLOv10l_face", + "YOLOv10m_face", + "YOLOv10n_face", + "YOLOv10s_face", + "YOLOv6m_face", + "YOLOv6n_face", + "YOLOv8l_face", + "YOLOv8m_face", + "YOLOv8n_face", +] + +YOLO11l_face = create_model_class("YOLO11l_face", __name__) +YOLO11m_face = create_model_class("YOLO11m_face", __name__) +YOLO11n_face = create_model_class("YOLO11n_face", __name__) +YOLO11s_face = create_model_class("YOLO11s_face", __name__) +YOLO12l_face = create_model_class("YOLO12l_face", __name__) +YOLO12m_face = create_model_class("YOLO12m_face", __name__) +YOLO12n_face = create_model_class("YOLO12n_face", __name__) +YOLO12s_face = create_model_class("YOLO12s_face", __name__) +YOLOv10l_face = create_model_class("YOLOv10l_face", __name__) +YOLOv10m_face = create_model_class("YOLOv10m_face", __name__) +YOLOv10n_face = create_model_class("YOLOv10n_face", __name__) +YOLOv10s_face = create_model_class("YOLOv10s_face", __name__) +YOLOv6m_face = create_model_class("YOLOv6m_face", __name__) +YOLOv6n_face = create_model_class("YOLOv6n_face", __name__) +YOLOv8l_face = create_model_class("YOLOv8l_face", __name__) +YOLOv8m_face = create_model_class("YOLOv8m_face", __name__) +YOLOv8n_face = create_model_class("YOLOv8n_face", __name__) diff --git a/mblt_vision/image_classification/__init__.py b/mblt_vision/image_classification/__init__.py new file mode 100644 index 0000000..3223c59 --- /dev/null +++ b/mblt_vision/image_classification/__init__.py @@ -0,0 +1,311 @@ +"""Image classification model exports.""" + +from __future__ import annotations + +from .._compat import create_model_class + +__all__: list[str] = [ + "AlexNet", + "CAFormer_B36", + "CAFormer_M36", + "CAFormer_S18", + "CAFormer_S36", + "CoAtNet_0_RW_224", + "CoAtNet_1_RW_224", + "CoAtNet_2_RW_224", + "ConvFormer_B36", + "ConvFormer_M36", + "ConvFormer_S18", + "ConvFormer_S36", + "ConvNeXt_Base", + "ConvNeXt_Large", + "ConvNeXt_Small", + "ConvNeXt_Tiny", + "DeiT_Base_Patch16_224", + "DeiT_Base_Patch16_384", + "DeiT_Small_Patch16_224", + "DeiT_Tiny_Patch16_224", + "DeiT3_Base_Patch16_224", + "DeiT3_Base_Patch16_384", + "DeiT3_Large_Patch16_224", + "DeiT3_Large_Patch16_384", + "DeiT3_Medium_Patch16_224", + "DeiT3_Small_Patch16_224", + "DeiT3_Small_Patch16_384", + "DenseNet121", + "DenseNet161", + "DenseNet169", + "DenseNet201", + "EfficientFormer_L1", + "EfficientFormer_L3", + "EfficientFormer_L7", + "EfficientNet_B0", + "EfficientNet_B1", + "EfficientNet_B2", + "EfficientNet_B3", + "EfficientNet_B4", + "EfficientNet_B5", + "EfficientNet_B6", + "EfficientNet_B7", + "EfficientNet_V2_L", + "EfficientNet_V2_M", + "EfficientNet_V2_S", + "FlexiViT_Base", + "FlexiViT_Large", + "FlexiViT_Small", + "GoogLeNet", + "Inception_V3", + "LeViT_Conv_128", + "LeViT_Conv_128S", + "LeViT_Conv_192", + "LeViT_Conv_256", + "LeViT_Conv_384", + "MNASNet0_5", + "MNASNet0_75", + "MNASNet1_0", + "MNASNet1_3", + "MobileNet_V2", + "MobileNet_V3_Large", + "MobileNet_V3_Small", + "RegNet_X_1_6GF", + "RegNet_X_3_2GF", + "RegNet_X_8GF", + "RegNet_X_16GF", + "RegNet_X_32GF", + "RegNet_X_400MF", + "RegNet_X_800MF", + "RegNet_Y_1_6GF", + "RegNet_Y_3_2GF", + "RegNet_Y_8GF", + "RegNet_Y_16GF", + "RegNet_Y_32GF", + "RegNet_Y_400MF", + "RegNet_Y_800MF", + "RepViT_M0_9", + "RepViT_M1", + "RepViT_M1_0", + "RepViT_M1_1", + "RepViT_M1_5", + "RepViT_M2", + "RepViT_M2_3", + "RepViT_M3", + "ResNet18", + "ResNet34", + "ResNet50", + "ResNet101", + "ResNet152", + "ResNeXt50_32x4d", + "ResNeXt101_32x8d", + "ResNeXt101_64x4d", + "ShuffleNet_V2_X0_5", + "ShuffleNet_V2_X1_0", + "ShuffleNet_V2_X1_5", + "ShuffleNet_V2_X2_0", + "SqueezeNet1_0", + "SqueezeNet1_1", + "Swin_B", + "Swin_S", + "Swin_T", + "VGG11", + "VGG11_BN", + "VGG13", + "VGG13_BN", + "VGG16", + "VGG16_BN", + "VGG19", + "VGG19_BN", + "VisFormer_Small", + "VisFormer_Tiny", + "ViT_B_16", + "ViT_B_32", + "ViT_Base_Patch8_224", + "ViT_Base_Patch16_224", + "ViT_Base_Patch16_384", + "ViT_Base_Patch32_224", + "ViT_Base_Patch32_384", + "ViT_L_16", + "ViT_L_32", + "ViT_Large_Patch16_224", + "ViT_Large_Patch16_384", + "ViT_Large_Patch32_384", + "ViT_Small_Patch16_224", + "ViT_Small_Patch16_384", + "ViT_Small_Patch32_224", + "ViT_Small_Patch32_384", + "ViT_Tiny_Patch16_224", + "ViT_Tiny_Patch16_384", + "Wide_ResNet50_2", + "Wide_ResNet101_2", + "YOLO11lCls", + "YOLO11mCls", + "YOLO11nCls", + "YOLO11sCls", + "YOLO11xCls", + "YOLO26lCls", + "YOLO26mCls", + "YOLO26nCls", + "YOLO26sCls", + "YOLO26xCls", + "YOLOv5lCls", + "YOLOv5mCls", + "YOLOv5nCls", + "YOLOv5sCls", + "YOLOv5xCls", + "YOLOv8lCls", + "YOLOv8mCls", + "YOLOv8nCls", + "YOLOv8sCls", + "YOLOv8xCls", +] + +AlexNet = create_model_class("AlexNet", __name__) +CAFormer_B36 = create_model_class("CAFormer_B36", __name__) +CAFormer_M36 = create_model_class("CAFormer_M36", __name__) +CAFormer_S18 = create_model_class("CAFormer_S18", __name__) +CAFormer_S36 = create_model_class("CAFormer_S36", __name__) +CoAtNet_0_RW_224 = create_model_class("CoAtNet_0_RW_224", __name__) +CoAtNet_1_RW_224 = create_model_class("CoAtNet_1_RW_224", __name__) +CoAtNet_2_RW_224 = create_model_class("CoAtNet_2_RW_224", __name__) +ConvFormer_B36 = create_model_class("ConvFormer_B36", __name__) +ConvFormer_M36 = create_model_class("ConvFormer_M36", __name__) +ConvFormer_S18 = create_model_class("ConvFormer_S18", __name__) +ConvFormer_S36 = create_model_class("ConvFormer_S36", __name__) +ConvNeXt_Base = create_model_class("ConvNeXt_Base", __name__) +ConvNeXt_Large = create_model_class("ConvNeXt_Large", __name__) +ConvNeXt_Small = create_model_class("ConvNeXt_Small", __name__) +ConvNeXt_Tiny = create_model_class("ConvNeXt_Tiny", __name__) +DeiT_Base_Patch16_224 = create_model_class("DeiT_Base_Patch16_224", __name__) +DeiT_Base_Patch16_384 = create_model_class("DeiT_Base_Patch16_384", __name__) +DeiT_Small_Patch16_224 = create_model_class("DeiT_Small_Patch16_224", __name__) +DeiT_Tiny_Patch16_224 = create_model_class("DeiT_Tiny_Patch16_224", __name__) +DeiT3_Base_Patch16_224 = create_model_class("DeiT3_Base_Patch16_224", __name__) +DeiT3_Base_Patch16_384 = create_model_class("DeiT3_Base_Patch16_384", __name__) +DeiT3_Large_Patch16_224 = create_model_class("DeiT3_Large_Patch16_224", __name__) +DeiT3_Large_Patch16_384 = create_model_class("DeiT3_Large_Patch16_384", __name__) +DeiT3_Medium_Patch16_224 = create_model_class("DeiT3_Medium_Patch16_224", __name__) +DeiT3_Small_Patch16_224 = create_model_class("DeiT3_Small_Patch16_224", __name__) +DeiT3_Small_Patch16_384 = create_model_class("DeiT3_Small_Patch16_384", __name__) +DenseNet121 = create_model_class("DenseNet121", __name__) +DenseNet161 = create_model_class("DenseNet161", __name__) +DenseNet169 = create_model_class("DenseNet169", __name__) +DenseNet201 = create_model_class("DenseNet201", __name__) +EfficientFormer_L1 = create_model_class("EfficientFormer_L1", __name__) +EfficientFormer_L3 = create_model_class("EfficientFormer_L3", __name__) +EfficientFormer_L7 = create_model_class("EfficientFormer_L7", __name__) +EfficientNet_B0 = create_model_class("EfficientNet_B0", __name__) +EfficientNet_B1 = create_model_class("EfficientNet_B1", __name__) +EfficientNet_B2 = create_model_class("EfficientNet_B2", __name__) +EfficientNet_B3 = create_model_class("EfficientNet_B3", __name__) +EfficientNet_B4 = create_model_class("EfficientNet_B4", __name__) +EfficientNet_B5 = create_model_class("EfficientNet_B5", __name__) +EfficientNet_B6 = create_model_class("EfficientNet_B6", __name__) +EfficientNet_B7 = create_model_class("EfficientNet_B7", __name__) +EfficientNet_V2_L = create_model_class("EfficientNet_V2_L", __name__) +EfficientNet_V2_M = create_model_class("EfficientNet_V2_M", __name__) +EfficientNet_V2_S = create_model_class("EfficientNet_V2_S", __name__) +FlexiViT_Base = create_model_class("FlexiViT_Base", __name__) +FlexiViT_Large = create_model_class("FlexiViT_Large", __name__) +FlexiViT_Small = create_model_class("FlexiViT_Small", __name__) +GoogLeNet = create_model_class("GoogLeNet", __name__) +Inception_V3 = create_model_class("Inception_V3", __name__) +LeViT_Conv_128 = create_model_class("LeViT_Conv_128", __name__) +LeViT_Conv_128S = create_model_class("LeViT_Conv_128S", __name__) +LeViT_Conv_192 = create_model_class("LeViT_Conv_192", __name__) +LeViT_Conv_256 = create_model_class("LeViT_Conv_256", __name__) +LeViT_Conv_384 = create_model_class("LeViT_Conv_384", __name__) +MNASNet0_5 = create_model_class("MNASNet0_5", __name__) +MNASNet0_75 = create_model_class("MNASNet0_75", __name__) +MNASNet1_0 = create_model_class("MNASNet1_0", __name__) +MNASNet1_3 = create_model_class("MNASNet1_3", __name__) +MobileNet_V2 = create_model_class("MobileNet_V2", __name__) +MobileNet_V3_Large = create_model_class("MobileNet_V3_Large", __name__) +MobileNet_V3_Small = create_model_class("MobileNet_V3_Small", __name__) +RegNet_X_1_6GF = create_model_class("RegNet_X_1_6GF", __name__) +RegNet_X_3_2GF = create_model_class("RegNet_X_3_2GF", __name__) +RegNet_X_8GF = create_model_class("RegNet_X_8GF", __name__) +RegNet_X_16GF = create_model_class("RegNet_X_16GF", __name__) +RegNet_X_32GF = create_model_class("RegNet_X_32GF", __name__) +RegNet_X_400MF = create_model_class("RegNet_X_400MF", __name__) +RegNet_X_800MF = create_model_class("RegNet_X_800MF", __name__) +RegNet_Y_1_6GF = create_model_class("RegNet_Y_1_6GF", __name__) +RegNet_Y_3_2GF = create_model_class("RegNet_Y_3_2GF", __name__) +RegNet_Y_8GF = create_model_class("RegNet_Y_8GF", __name__) +RegNet_Y_16GF = create_model_class("RegNet_Y_16GF", __name__) +RegNet_Y_32GF = create_model_class("RegNet_Y_32GF", __name__) +RegNet_Y_400MF = create_model_class("RegNet_Y_400MF", __name__) +RegNet_Y_800MF = create_model_class("RegNet_Y_800MF", __name__) +RepViT_M0_9 = create_model_class("RepViT_M0_9", __name__) +RepViT_M1 = create_model_class("RepViT_M1", __name__) +RepViT_M1_0 = create_model_class("RepViT_M1_0", __name__) +RepViT_M1_1 = create_model_class("RepViT_M1_1", __name__) +RepViT_M1_5 = create_model_class("RepViT_M1_5", __name__) +RepViT_M2 = create_model_class("RepViT_M2", __name__) +RepViT_M2_3 = create_model_class("RepViT_M2_3", __name__) +RepViT_M3 = create_model_class("RepViT_M3", __name__) +ResNet18 = create_model_class("ResNet18", __name__) +ResNet34 = create_model_class("ResNet34", __name__) +ResNet50 = create_model_class("ResNet50", __name__) +ResNet101 = create_model_class("ResNet101", __name__) +ResNet152 = create_model_class("ResNet152", __name__) +ResNeXt50_32x4d = create_model_class("ResNeXt50_32x4d", __name__) +ResNeXt101_32x8d = create_model_class("ResNeXt101_32x8d", __name__) +ResNeXt101_64x4d = create_model_class("ResNeXt101_64x4d", __name__) +ShuffleNet_V2_X0_5 = create_model_class("ShuffleNet_V2_X0_5", __name__) +ShuffleNet_V2_X1_0 = create_model_class("ShuffleNet_V2_X1_0", __name__) +ShuffleNet_V2_X1_5 = create_model_class("ShuffleNet_V2_X1_5", __name__) +ShuffleNet_V2_X2_0 = create_model_class("ShuffleNet_V2_X2_0", __name__) +SqueezeNet1_0 = create_model_class("SqueezeNet1_0", __name__) +SqueezeNet1_1 = create_model_class("SqueezeNet1_1", __name__) +Swin_B = create_model_class("Swin_B", __name__) +Swin_S = create_model_class("Swin_S", __name__) +Swin_T = create_model_class("Swin_T", __name__) +VGG11 = create_model_class("VGG11", __name__) +VGG11_BN = create_model_class("VGG11_BN", __name__) +VGG13 = create_model_class("VGG13", __name__) +VGG13_BN = create_model_class("VGG13_BN", __name__) +VGG16 = create_model_class("VGG16", __name__) +VGG16_BN = create_model_class("VGG16_BN", __name__) +VGG19 = create_model_class("VGG19", __name__) +VGG19_BN = create_model_class("VGG19_BN", __name__) +VisFormer_Small = create_model_class("VisFormer_Small", __name__) +VisFormer_Tiny = create_model_class("VisFormer_Tiny", __name__) +ViT_B_16 = create_model_class("ViT_B_16", __name__) +ViT_B_32 = create_model_class("ViT_B_32", __name__) +ViT_Base_Patch8_224 = create_model_class("ViT_Base_Patch8_224", __name__) +ViT_Base_Patch16_224 = create_model_class("ViT_Base_Patch16_224", __name__) +ViT_Base_Patch16_384 = create_model_class("ViT_Base_Patch16_384", __name__) +ViT_Base_Patch32_224 = create_model_class("ViT_Base_Patch32_224", __name__) +ViT_Base_Patch32_384 = create_model_class("ViT_Base_Patch32_384", __name__) +ViT_L_16 = create_model_class("ViT_L_16", __name__) +ViT_L_32 = create_model_class("ViT_L_32", __name__) +ViT_Large_Patch16_224 = create_model_class("ViT_Large_Patch16_224", __name__) +ViT_Large_Patch16_384 = create_model_class("ViT_Large_Patch16_384", __name__) +ViT_Large_Patch32_384 = create_model_class("ViT_Large_Patch32_384", __name__) +ViT_Small_Patch16_224 = create_model_class("ViT_Small_Patch16_224", __name__) +ViT_Small_Patch16_384 = create_model_class("ViT_Small_Patch16_384", __name__) +ViT_Small_Patch32_224 = create_model_class("ViT_Small_Patch32_224", __name__) +ViT_Small_Patch32_384 = create_model_class("ViT_Small_Patch32_384", __name__) +ViT_Tiny_Patch16_224 = create_model_class("ViT_Tiny_Patch16_224", __name__) +ViT_Tiny_Patch16_384 = create_model_class("ViT_Tiny_Patch16_384", __name__) +Wide_ResNet50_2 = create_model_class("Wide_ResNet50_2", __name__) +Wide_ResNet101_2 = create_model_class("Wide_ResNet101_2", __name__) +YOLO11lCls = create_model_class("YOLO11lCls", __name__) +YOLO11mCls = create_model_class("YOLO11mCls", __name__) +YOLO11nCls = create_model_class("YOLO11nCls", __name__) +YOLO11sCls = create_model_class("YOLO11sCls", __name__) +YOLO11xCls = create_model_class("YOLO11xCls", __name__) +YOLO26lCls = create_model_class("YOLO26lCls", __name__) +YOLO26mCls = create_model_class("YOLO26mCls", __name__) +YOLO26nCls = create_model_class("YOLO26nCls", __name__) +YOLO26sCls = create_model_class("YOLO26sCls", __name__) +YOLO26xCls = create_model_class("YOLO26xCls", __name__) +YOLOv5lCls = create_model_class("YOLOv5lCls", __name__) +YOLOv5mCls = create_model_class("YOLOv5mCls", __name__) +YOLOv5nCls = create_model_class("YOLOv5nCls", __name__) +YOLOv5sCls = create_model_class("YOLOv5sCls", __name__) +YOLOv5xCls = create_model_class("YOLOv5xCls", __name__) +YOLOv8lCls = create_model_class("YOLOv8lCls", __name__) +YOLOv8mCls = create_model_class("YOLOv8mCls", __name__) +YOLOv8nCls = create_model_class("YOLOv8nCls", __name__) +YOLOv8sCls = create_model_class("YOLOv8sCls", __name__) +YOLOv8xCls = create_model_class("YOLOv8xCls", __name__) diff --git a/mblt_vision/instance_segmentation/__init__.py b/mblt_vision/instance_segmentation/__init__.py new file mode 100644 index 0000000..421e9ff --- /dev/null +++ b/mblt_vision/instance_segmentation/__init__.py @@ -0,0 +1,65 @@ +"""Instance segmentation model exports.""" + +from __future__ import annotations + +from .._compat import create_model_class + +__all__: list[str] = [ + "YOLO11lSeg", + "YOLO11mSeg", + "YOLO11nSeg", + "YOLO11sSeg", + "YOLO11xSeg", + "YOLO12lSeg", + "YOLO12mSeg", + "YOLO12nSeg", + "YOLO12sSeg", + "YOLO12xSeg", + "YOLO26lSeg", + "YOLO26mSeg", + "YOLO26nSeg", + "YOLO26sSeg", + "YOLO26xSeg", + "YOLOv5lSeg", + "YOLOv5mSeg", + "YOLOv5nSeg", + "YOLOv5sSeg", + "YOLOv5xSeg", + "YOLOv8lSeg", + "YOLOv8mSeg", + "YOLOv8nSeg", + "YOLOv8sSeg", + "YOLOv8xSeg", + "GELANcSeg", + "YOLOv9cSeg", + "YOLOv9eSeg", +] + +YOLO11lSeg = create_model_class("YOLO11lSeg", __name__) +YOLO11mSeg = create_model_class("YOLO11mSeg", __name__) +YOLO11nSeg = create_model_class("YOLO11nSeg", __name__) +YOLO11sSeg = create_model_class("YOLO11sSeg", __name__) +YOLO11xSeg = create_model_class("YOLO11xSeg", __name__) +YOLO12lSeg = create_model_class("YOLO12lSeg", __name__) +YOLO12mSeg = create_model_class("YOLO12mSeg", __name__) +YOLO12nSeg = create_model_class("YOLO12nSeg", __name__) +YOLO12sSeg = create_model_class("YOLO12sSeg", __name__) +YOLO12xSeg = create_model_class("YOLO12xSeg", __name__) +YOLO26lSeg = create_model_class("YOLO26lSeg", __name__) +YOLO26mSeg = create_model_class("YOLO26mSeg", __name__) +YOLO26nSeg = create_model_class("YOLO26nSeg", __name__) +YOLO26sSeg = create_model_class("YOLO26sSeg", __name__) +YOLO26xSeg = create_model_class("YOLO26xSeg", __name__) +YOLOv5lSeg = create_model_class("YOLOv5lSeg", __name__) +YOLOv5mSeg = create_model_class("YOLOv5mSeg", __name__) +YOLOv5nSeg = create_model_class("YOLOv5nSeg", __name__) +YOLOv5sSeg = create_model_class("YOLOv5sSeg", __name__) +YOLOv5xSeg = create_model_class("YOLOv5xSeg", __name__) +YOLOv8lSeg = create_model_class("YOLOv8lSeg", __name__) +YOLOv8mSeg = create_model_class("YOLOv8mSeg", __name__) +YOLOv8nSeg = create_model_class("YOLOv8nSeg", __name__) +YOLOv8sSeg = create_model_class("YOLOv8sSeg", __name__) +YOLOv8xSeg = create_model_class("YOLOv8xSeg", __name__) +GELANcSeg = create_model_class("GELANcSeg", __name__) +YOLOv9cSeg = create_model_class("YOLOv9cSeg", __name__) +YOLOv9eSeg = create_model_class("YOLOv9eSeg", __name__) diff --git a/mblt_vision/models/AlexNet.yaml b/mblt_vision/models/AlexNet.yaml new file mode 100644 index 0000000..b9dad06 --- /dev/null +++ b/mblt_vision/models/AlexNet.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/AlexNet + filename: alexnet_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/CAFormer_B36.yaml b/mblt_vision/models/CAFormer_B36.yaml new file mode 100644 index 0000000..691448e --- /dev/null +++ b/mblt_vision/models/CAFormer_B36.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/CAFormer_B36 + filename: caformer_b36.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/CAFormer_M36.yaml b/mblt_vision/models/CAFormer_M36.yaml new file mode 100644 index 0000000..0896e02 --- /dev/null +++ b/mblt_vision/models/CAFormer_M36.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/CAFormer_M36 + filename: caformer_m36.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/CAFormer_S18.yaml b/mblt_vision/models/CAFormer_S18.yaml new file mode 100644 index 0000000..0a381d6 --- /dev/null +++ b/mblt_vision/models/CAFormer_S18.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/CAFormer_S18 + filename: caformer_s18.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/CAFormer_S36.yaml b/mblt_vision/models/CAFormer_S36.yaml new file mode 100644 index 0000000..f0911b4 --- /dev/null +++ b/mblt_vision/models/CAFormer_S36.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/CAFormer_S36 + filename: caformer_s36.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/CoAtNet_0_RW_224.yaml b/mblt_vision/models/CoAtNet_0_RW_224.yaml new file mode 100644 index 0000000..d9b553f --- /dev/null +++ b/mblt_vision/models/CoAtNet_0_RW_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/CoAtNet_0_RW_224 + filename: coatnet_0_rw_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/CoAtNet_1_RW_224.yaml b/mblt_vision/models/CoAtNet_1_RW_224.yaml new file mode 100644 index 0000000..9d1f493 --- /dev/null +++ b/mblt_vision/models/CoAtNet_1_RW_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/CoAtNet_1_RW_224 + filename: coatnet_1_rw_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/CoAtNet_2_RW_224.yaml b/mblt_vision/models/CoAtNet_2_RW_224.yaml new file mode 100644 index 0000000..d1985c9 --- /dev/null +++ b/mblt_vision/models/CoAtNet_2_RW_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/CoAtNet_2_RW_224 + filename: coatnet_2_rw_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ConvFormer_B36.yaml b/mblt_vision/models/ConvFormer_B36.yaml new file mode 100644 index 0000000..144b6d2 --- /dev/null +++ b/mblt_vision/models/ConvFormer_B36.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ConvFormer_B36 + filename: convformer_b36.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ConvFormer_M36.yaml b/mblt_vision/models/ConvFormer_M36.yaml new file mode 100644 index 0000000..ba679c9 --- /dev/null +++ b/mblt_vision/models/ConvFormer_M36.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ConvFormer_M36 + filename: convformer_m36.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ConvFormer_S18.yaml b/mblt_vision/models/ConvFormer_S18.yaml new file mode 100644 index 0000000..2fbb09f --- /dev/null +++ b/mblt_vision/models/ConvFormer_S18.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ConvFormer_S18 + filename: convformer_s18.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ConvFormer_S36.yaml b/mblt_vision/models/ConvFormer_S36.yaml new file mode 100644 index 0000000..d39c46e --- /dev/null +++ b/mblt_vision/models/ConvFormer_S36.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ConvFormer_S36 + filename: convformer_s36.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ConvNext_Base.yaml b/mblt_vision/models/ConvNext_Base.yaml new file mode 100644 index 0000000..0de192a --- /dev/null +++ b/mblt_vision/models/ConvNext_Base.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ConvNext_Base + filename: convnext_base_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 232 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ConvNext_Large.yaml b/mblt_vision/models/ConvNext_Large.yaml new file mode 100644 index 0000000..3047676 --- /dev/null +++ b/mblt_vision/models/ConvNext_Large.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ConvNext_Large + filename: convnext_large_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 232 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ConvNext_Small.yaml b/mblt_vision/models/ConvNext_Small.yaml new file mode 100644 index 0000000..c986f90 --- /dev/null +++ b/mblt_vision/models/ConvNext_Small.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ConvNext_Small + filename: convnext_small_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 230 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ConvNext_Tiny.yaml b/mblt_vision/models/ConvNext_Tiny.yaml new file mode 100644 index 0000000..241cfe3 --- /dev/null +++ b/mblt_vision/models/ConvNext_Tiny.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ConvNext_Tiny + filename: convnext_tiny_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT3_Base_Patch16_224.yaml b/mblt_vision/models/DeiT3_Base_Patch16_224.yaml new file mode 100644 index 0000000..3e4c4da --- /dev/null +++ b/mblt_vision/models/DeiT3_Base_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT3_Base_Patch16_224 + filename: deit3_base_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT3_Base_Patch16_384.yaml b/mblt_vision/models/DeiT3_Base_Patch16_384.yaml new file mode 100644 index 0000000..5eab39b --- /dev/null +++ b/mblt_vision/models/DeiT3_Base_Patch16_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT3_Base_Patch16_384 + filename: deit3_base_patch16_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT3_Large_Patch16_224.yaml b/mblt_vision/models/DeiT3_Large_Patch16_224.yaml new file mode 100644 index 0000000..1db68c3 --- /dev/null +++ b/mblt_vision/models/DeiT3_Large_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT3_Large_Patch16_224 + filename: deit3_large_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT3_Large_Patch16_384.yaml b/mblt_vision/models/DeiT3_Large_Patch16_384.yaml new file mode 100644 index 0000000..92efd1e --- /dev/null +++ b/mblt_vision/models/DeiT3_Large_Patch16_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT3_Large_Patch16_384 + filename: deit3_large_patch16_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT3_Medium_Patch16_224.yaml b/mblt_vision/models/DeiT3_Medium_Patch16_224.yaml new file mode 100644 index 0000000..c4bb1da --- /dev/null +++ b/mblt_vision/models/DeiT3_Medium_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT3_Medium_Patch16_224 + filename: deit3_medium_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT3_Small_Patch16_224.yaml b/mblt_vision/models/DeiT3_Small_Patch16_224.yaml new file mode 100644 index 0000000..1aa66e9 --- /dev/null +++ b/mblt_vision/models/DeiT3_Small_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT3_Small_Patch16_224 + filename: deit3_small_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT3_Small_Patch16_384.yaml b/mblt_vision/models/DeiT3_Small_Patch16_384.yaml new file mode 100644 index 0000000..b576828 --- /dev/null +++ b/mblt_vision/models/DeiT3_Small_Patch16_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT3_Small_Patch16_384 + filename: deit3_small_patch16_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT_Base_Patch16_224.yaml b/mblt_vision/models/DeiT_Base_Patch16_224.yaml new file mode 100644 index 0000000..872adc0 --- /dev/null +++ b/mblt_vision/models/DeiT_Base_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT_Base_Patch16_224 + filename: deit_base_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT_Base_Patch16_384.yaml b/mblt_vision/models/DeiT_Base_Patch16_384.yaml new file mode 100644 index 0000000..5b23b09 --- /dev/null +++ b/mblt_vision/models/DeiT_Base_Patch16_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT_Base_Patch16_384 + filename: deit_base_patch16_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT_Small_Patch16_224.yaml b/mblt_vision/models/DeiT_Small_Patch16_224.yaml new file mode 100644 index 0000000..ab5372e --- /dev/null +++ b/mblt_vision/models/DeiT_Small_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT_Small_Patch16_224 + filename: deit_small_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DeiT_Tiny_Patch16_224.yaml b/mblt_vision/models/DeiT_Tiny_Patch16_224.yaml new file mode 100644 index 0000000..80f6f9d --- /dev/null +++ b/mblt_vision/models/DeiT_Tiny_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/DeiT_Tiny_Patch16_224 + filename: deit_tiny_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DenseNet121.yaml b/mblt_vision/models/DenseNet121.yaml new file mode 100644 index 0000000..17ac464 --- /dev/null +++ b/mblt_vision/models/DenseNet121.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/DenseNet121 + filename: densenet121_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DenseNet161.yaml b/mblt_vision/models/DenseNet161.yaml new file mode 100644 index 0000000..6ef129b --- /dev/null +++ b/mblt_vision/models/DenseNet161.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/DenseNet161 + filename: densenet161_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DenseNet169.yaml b/mblt_vision/models/DenseNet169.yaml new file mode 100644 index 0000000..02ef675 --- /dev/null +++ b/mblt_vision/models/DenseNet169.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/DenseNet169 + filename: densenet169_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/DenseNet201.yaml b/mblt_vision/models/DenseNet201.yaml new file mode 100644 index 0000000..661c37b --- /dev/null +++ b/mblt_vision/models/DenseNet201.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/DenseNet201 + filename: densenet201_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientFormer_L1.yaml b/mblt_vision/models/EfficientFormer_L1.yaml new file mode 100644 index 0000000..453b1b7 --- /dev/null +++ b/mblt_vision/models/EfficientFormer_L1.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/EfficientFormer_L1 + filename: efficientformer_l1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientFormer_L3.yaml b/mblt_vision/models/EfficientFormer_L3.yaml new file mode 100644 index 0000000..7ecf9c3 --- /dev/null +++ b/mblt_vision/models/EfficientFormer_L3.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/EfficientFormer_L3 + filename: efficientformer_l3.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientFormer_L7.yaml b/mblt_vision/models/EfficientFormer_L7.yaml new file mode 100644 index 0000000..403333f --- /dev/null +++ b/mblt_vision/models/EfficientFormer_L7.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/EfficientFormer_L7 + filename: efficientformer_l7.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_B0.yaml b/mblt_vision/models/EfficientNet_B0.yaml new file mode 100644 index 0000000..64b50b1 --- /dev/null +++ b/mblt_vision/models/EfficientNet_B0.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_B0 + filename: efficientnet_b0_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_B1.yaml b/mblt_vision/models/EfficientNet_B1.yaml new file mode 100644 index 0000000..53f63ac --- /dev/null +++ b/mblt_vision/models/EfficientNet_B1.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_B1.tv1_in1k + filename: efficientnet_b1_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bicubic + CenterCrop: + size: + - 240 + - 240 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/EfficientNet_B1.tv2_in1k + filename: efficientnet_b1_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 255 + interpolation: bilinear diff --git a/mblt_vision/models/EfficientNet_B2.yaml b/mblt_vision/models/EfficientNet_B2.yaml new file mode 100644 index 0000000..595086a --- /dev/null +++ b/mblt_vision/models/EfficientNet_B2.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_B2 + filename: efficientnet_b2_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 288 + interpolation: bicubic + CenterCrop: + size: + - 288 + - 288 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_B3.yaml b/mblt_vision/models/EfficientNet_B3.yaml new file mode 100644 index 0000000..686906c --- /dev/null +++ b/mblt_vision/models/EfficientNet_B3.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_B3 + filename: efficientnet_b3_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 320 + interpolation: bicubic + CenterCrop: + size: + - 300 + - 300 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_B4.yaml b/mblt_vision/models/EfficientNet_B4.yaml new file mode 100644 index 0000000..21f2694 --- /dev/null +++ b/mblt_vision/models/EfficientNet_B4.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_B4 + filename: efficientnet_b4_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 380 + - 380 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_B5.yaml b/mblt_vision/models/EfficientNet_B5.yaml new file mode 100644 index 0000000..94855c7 --- /dev/null +++ b/mblt_vision/models/EfficientNet_B5.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_B5 + filename: efficientnet_b5_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 456 + interpolation: bicubic + CenterCrop: + size: + - 456 + - 456 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_B6.yaml b/mblt_vision/models/EfficientNet_B6.yaml new file mode 100644 index 0000000..61723c4 --- /dev/null +++ b/mblt_vision/models/EfficientNet_B6.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_B6 + filename: efficientnet_b6_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 528 + interpolation: bicubic + CenterCrop: + size: + - 528 + - 528 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_B7.yaml b/mblt_vision/models/EfficientNet_B7.yaml new file mode 100644 index 0000000..00143ab --- /dev/null +++ b/mblt_vision/models/EfficientNet_B7.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_B7 + filename: efficientnet_b7_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 600 + interpolation: bicubic + CenterCrop: + size: + - 600 + - 600 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_V2_L.yaml b/mblt_vision/models/EfficientNet_V2_L.yaml new file mode 100644 index 0000000..03ec40f --- /dev/null +++ b/mblt_vision/models/EfficientNet_V2_L.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_V2_L + filename: efficientnet_v2_l_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 480 + interpolation: bicubic + CenterCrop: + size: + - 480 + - 480 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_V2_M.yaml b/mblt_vision/models/EfficientNet_V2_M.yaml new file mode 100644 index 0000000..f93ac0c --- /dev/null +++ b/mblt_vision/models/EfficientNet_V2_M.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_V2_M + filename: efficientnet_v2_m_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 480 + interpolation: bilinear + CenterCrop: + size: + - 480 + - 480 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/EfficientNet_V2_S.yaml b/mblt_vision/models/EfficientNet_V2_S.yaml new file mode 100644 index 0000000..1ced73c --- /dev/null +++ b/mblt_vision/models/EfficientNet_V2_S.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/EfficientNet_V2_S + filename: efficientnet_v2_s_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bilinear + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/FlexiVit_Base.yaml b/mblt_vision/models/FlexiVit_Base.yaml new file mode 100644 index 0000000..9999d9c --- /dev/null +++ b/mblt_vision/models/FlexiVit_Base.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/FlexiVit_Base + filename: flexivit_base.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 252 + interpolation: bicubic + CenterCrop: + size: + - 240 + - 240 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/FlexiVit_Large.yaml b/mblt_vision/models/FlexiVit_Large.yaml new file mode 100644 index 0000000..5d3e166 --- /dev/null +++ b/mblt_vision/models/FlexiVit_Large.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/FlexiVit_Large + filename: flexivit_large.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 252 + interpolation: bicubic + CenterCrop: + size: + - 240 + - 240 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/FlexiVit_Small.yaml b/mblt_vision/models/FlexiVit_Small.yaml new file mode 100644 index 0000000..81e87c9 --- /dev/null +++ b/mblt_vision/models/FlexiVit_Small.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/FlexiVit_Small + filename: flexivit_small.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 252 + interpolation: bicubic + CenterCrop: + size: + - 240 + - 240 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/GELANc-seg.yaml b/mblt_vision/models/GELANc-seg.yaml new file mode 100644 index 0000000..9ef40b4 --- /dev/null +++ b/mblt_vision/models/GELANc-seg.yaml @@ -0,0 +1,29 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/GELANc-seg + filename: gelanc-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nc: 80 + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/GELANc.yaml b/mblt_vision/models/GELANc.yaml new file mode 100644 index 0000000..02b40e8 --- /dev/null +++ b/mblt_vision/models/GELANc.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/GELANc + filename: gelanc.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nc: 80 + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/GELANe.yaml b/mblt_vision/models/GELANe.yaml new file mode 100644 index 0000000..e73e031 --- /dev/null +++ b/mblt_vision/models/GELANe.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/GELANe + filename: gelane.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nc: 80 + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/GELANm.yaml b/mblt_vision/models/GELANm.yaml new file mode 100644 index 0000000..71beb02 --- /dev/null +++ b/mblt_vision/models/GELANm.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/GELANm + filename: gelanm.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nc: 80 + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/GELANs.yaml b/mblt_vision/models/GELANs.yaml new file mode 100644 index 0000000..a3454e3 --- /dev/null +++ b/mblt_vision/models/GELANs.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/GELANs + filename: gelans.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nc: 80 + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/GoogLeNet.yaml b/mblt_vision/models/GoogLeNet.yaml new file mode 100644 index 0000000..e07dfd7 --- /dev/null +++ b/mblt_vision/models/GoogLeNet.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/GoogLeNet + filename: googlenet_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/Inception_V3.yaml b/mblt_vision/models/Inception_V3.yaml new file mode 100644 index 0000000..cec6a41 --- /dev/null +++ b/mblt_vision/models/Inception_V3.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/Inception_V3 + filename: inception_v3_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 342 + interpolation: bilinear + CenterCrop: + size: + - 299 + - 299 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/LeViT_Conv_128.yaml b/mblt_vision/models/LeViT_Conv_128.yaml new file mode 100644 index 0000000..9e20421 --- /dev/null +++ b/mblt_vision/models/LeViT_Conv_128.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/LeViT_Conv_128 + filename: levit_conv_128.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/LeViT_Conv_128S.yaml b/mblt_vision/models/LeViT_Conv_128S.yaml new file mode 100644 index 0000000..5a39599 --- /dev/null +++ b/mblt_vision/models/LeViT_Conv_128S.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/LeViT_Conv_128S + filename: levit_conv_128s.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/LeViT_Conv_192.yaml b/mblt_vision/models/LeViT_Conv_192.yaml new file mode 100644 index 0000000..86027f8 --- /dev/null +++ b/mblt_vision/models/LeViT_Conv_192.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/LeViT_Conv_192 + filename: levit_conv_192.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/LeViT_Conv_256.yaml b/mblt_vision/models/LeViT_Conv_256.yaml new file mode 100644 index 0000000..5d78350 --- /dev/null +++ b/mblt_vision/models/LeViT_Conv_256.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/LeViT_Conv_256 + filename: levit_conv_256.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/LeViT_Conv_384.yaml b/mblt_vision/models/LeViT_Conv_384.yaml new file mode 100644 index 0000000..9c5ebae --- /dev/null +++ b/mblt_vision/models/LeViT_Conv_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/LeViT_Conv_384 + filename: levit_conv_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/MNASNet0_5.yaml b/mblt_vision/models/MNASNet0_5.yaml new file mode 100644 index 0000000..12834ac --- /dev/null +++ b/mblt_vision/models/MNASNet0_5.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/MNASNet0_5 + filename: mnasnet0_5_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/MNASNet0_75.yaml b/mblt_vision/models/MNASNet0_75.yaml new file mode 100644 index 0000000..e47c643 --- /dev/null +++ b/mblt_vision/models/MNASNet0_75.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/MNASNet0_75 + filename: mnasnet0_75_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/MNASNet1_0.yaml b/mblt_vision/models/MNASNet1_0.yaml new file mode 100644 index 0000000..6c0f2ab --- /dev/null +++ b/mblt_vision/models/MNASNet1_0.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/MNASNet1_0 + filename: mnasnet1_0_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/MNASNet1_3.yaml b/mblt_vision/models/MNASNet1_3.yaml new file mode 100644 index 0000000..d20ccc1 --- /dev/null +++ b/mblt_vision/models/MNASNet1_3.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/MNASNet1_3 + filename: mnasnet1_3_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 232 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/MobileNet_V2.yaml b/mblt_vision/models/MobileNet_V2.yaml new file mode 100644 index 0000000..67349da --- /dev/null +++ b/mblt_vision/models/MobileNet_V2.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/MobileNet_V2.tv1_in1k + filename: mobilenet_v2_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/MobileNet_V2.tv2_in1k + filename: mobilenet_v2_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/MobileNet_V3_Large.yaml b/mblt_vision/models/MobileNet_V3_Large.yaml new file mode 100644 index 0000000..a94f87f --- /dev/null +++ b/mblt_vision/models/MobileNet_V3_Large.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/MobileNet_V3_Large.tv1_in1k + filename: mobilenet_v3_large_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/MobileNet_V3_Large.tv2_in1k + filename: mobilenet_v3_large_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/MobileNet_V3_Small.yaml b/mblt_vision/models/MobileNet_V3_Small.yaml new file mode 100644 index 0000000..c1e3fd6 --- /dev/null +++ b/mblt_vision/models/MobileNet_V3_Small.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/MobileNet_V3_Small + filename: mobilenet_v3_small_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RegNet_X_16GF.yaml b/mblt_vision/models/RegNet_X_16GF.yaml new file mode 100644 index 0000000..95dd2aa --- /dev/null +++ b/mblt_vision/models/RegNet_X_16GF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_X_16GF.tv1_in1k + filename: regnet_x_16gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_X_16GF.tv2_in1k + filename: regnet_x_16gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_X_1_6GF.yaml b/mblt_vision/models/RegNet_X_1_6GF.yaml new file mode 100644 index 0000000..f5c3d3c --- /dev/null +++ b/mblt_vision/models/RegNet_X_1_6GF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_X_1_6GF.tv1_in1k + filename: regnet_x_1_6gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_X_1_6GF.tv2_in1k + filename: regnet_x_1_6gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_X_32GF.yaml b/mblt_vision/models/RegNet_X_32GF.yaml new file mode 100644 index 0000000..e6250a2 --- /dev/null +++ b/mblt_vision/models/RegNet_X_32GF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_X_32GF.tv1_in1k + filename: regnet_x_32gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_X_32GF.tv2_in1k + filename: regnet_x_32gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_X_3_2GF.yaml b/mblt_vision/models/RegNet_X_3_2GF.yaml new file mode 100644 index 0000000..61f01ee --- /dev/null +++ b/mblt_vision/models/RegNet_X_3_2GF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_X_3_2GF.tv1_in1k + filename: regnet_x_3_2gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_X_3_2GF.tv2_in1k + filename: regnet_x_3_2gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_X_400MF.yaml b/mblt_vision/models/RegNet_X_400MF.yaml new file mode 100644 index 0000000..e6039d0 --- /dev/null +++ b/mblt_vision/models/RegNet_X_400MF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_X_400MF.tv1_in1k + filename: regnet_x_400mf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_X_400MF.tv2_in1k + filename: regnet_x_400mf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_X_800MF.yaml b/mblt_vision/models/RegNet_X_800MF.yaml new file mode 100644 index 0000000..7952fea --- /dev/null +++ b/mblt_vision/models/RegNet_X_800MF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_X_800MF.tv1_in1k + filename: regnet_x_800mf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_X_800MF.tv2_in1k + filename: regnet_x_800mf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_X_8GF.yaml b/mblt_vision/models/RegNet_X_8GF.yaml new file mode 100644 index 0000000..8033e6e --- /dev/null +++ b/mblt_vision/models/RegNet_X_8GF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_X_8GF.tv1_in1k + filename: regnet_x_8gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_X_8GF.tv2_in1k + filename: regnet_x_8gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_Y_16GF.yaml b/mblt_vision/models/RegNet_Y_16GF.yaml new file mode 100644 index 0000000..67a39e5 --- /dev/null +++ b/mblt_vision/models/RegNet_Y_16GF.yaml @@ -0,0 +1,76 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_16GF.tv1_in1k + filename: regnet_y_16gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_Y_16GF.tv2_in1k + filename: regnet_y_16gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear +IMAGENET1K_SWAG_E2E_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_16GF.swag_e2e_in1k + filename: regnet_y_16gf_IMAGENET1K_SWAG_E2E_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_SWAG_LINEAR_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_16GF.swag_linear_in1k + filename: regnet_y_16gf_IMAGENET1K_SWAG_LINEAR_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RegNet_Y_1_6GF.yaml b/mblt_vision/models/RegNet_Y_1_6GF.yaml new file mode 100644 index 0000000..216c58d --- /dev/null +++ b/mblt_vision/models/RegNet_Y_1_6GF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_1_6GF.tv1_in1k + filename: regnet_y_1_6gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_Y_1_6GF.tv2_in1k + filename: regnet_y_1_6gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_Y_32GF.yaml b/mblt_vision/models/RegNet_Y_32GF.yaml new file mode 100644 index 0000000..ddeab69 --- /dev/null +++ b/mblt_vision/models/RegNet_Y_32GF.yaml @@ -0,0 +1,76 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_32GF.tv1_in1k + filename: regnet_y_32gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_Y_32GF.tv2_in1k + filename: regnet_y_32gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear +IMAGENET1K_SWAG_E2E_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_32GF.swag_e2e_in1k + filename: regnet_y_32gf_IMAGENET1K_SWAG_E2E_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_SWAG_LINEAR_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_32GF.swag_linear_in1k + filename: regnet_y_32gf_IMAGENET1K_SWAG_LINEAR_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RegNet_Y_3_2GF.yaml b/mblt_vision/models/RegNet_Y_3_2GF.yaml new file mode 100644 index 0000000..ed10c4f --- /dev/null +++ b/mblt_vision/models/RegNet_Y_3_2GF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_3_2GF.tv1_in1k + filename: regnet_y_3_2gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_Y_3_2GF.tv2_in1k + filename: regnet_y_3_2gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_Y_400MF.yaml b/mblt_vision/models/RegNet_Y_400MF.yaml new file mode 100644 index 0000000..477037f --- /dev/null +++ b/mblt_vision/models/RegNet_Y_400MF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_400MF.tv1_in1k + filename: regnet_y_400mf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_Y_400MF.tv2_in1k + filename: regnet_y_400mf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_Y_800MF.yaml b/mblt_vision/models/RegNet_Y_800MF.yaml new file mode 100644 index 0000000..5df53df --- /dev/null +++ b/mblt_vision/models/RegNet_Y_800MF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_800MF.tv1_in1k + filename: regnet_y_800mf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_Y_800MF.tv2_in1k + filename: regnet_y_800mf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RegNet_Y_8GF.yaml b/mblt_vision/models/RegNet_Y_8GF.yaml new file mode 100644 index 0000000..20553d9 --- /dev/null +++ b/mblt_vision/models/RegNet_Y_8GF.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/RegNet_Y_8GF.tv1_in1k + filename: regnet_y_8gf_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/RegNet_Y_8GF.tv2_in1k + filename: regnet_y_8gf_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/RepViT_M0_9.yaml b/mblt_vision/models/RepViT_M0_9.yaml new file mode 100644 index 0000000..e2d2bf4 --- /dev/null +++ b/mblt_vision/models/RepViT_M0_9.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/RepViT_M0_9 + filename: repvit_m0_9.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RepViT_M1.yaml b/mblt_vision/models/RepViT_M1.yaml new file mode 100644 index 0000000..0ce92f7 --- /dev/null +++ b/mblt_vision/models/RepViT_M1.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/RepViT_M1 + filename: repvit_m1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RepViT_M1_0.yaml b/mblt_vision/models/RepViT_M1_0.yaml new file mode 100644 index 0000000..80f92b2 --- /dev/null +++ b/mblt_vision/models/RepViT_M1_0.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/RepViT_M1_0 + filename: repvit_m1_0.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RepViT_M1_1.yaml b/mblt_vision/models/RepViT_M1_1.yaml new file mode 100644 index 0000000..31b36e3 --- /dev/null +++ b/mblt_vision/models/RepViT_M1_1.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/RepViT_M1_1 + filename: repvit_m1_1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RepViT_M1_5.yaml b/mblt_vision/models/RepViT_M1_5.yaml new file mode 100644 index 0000000..8ce2309 --- /dev/null +++ b/mblt_vision/models/RepViT_M1_5.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/RepViT_M1_5 + filename: repvit_m1_5.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RepViT_M2.yaml b/mblt_vision/models/RepViT_M2.yaml new file mode 100644 index 0000000..1c3baef --- /dev/null +++ b/mblt_vision/models/RepViT_M2.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/RepViT_M2 + filename: repvit_m2.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RepViT_M2_3.yaml b/mblt_vision/models/RepViT_M2_3.yaml new file mode 100644 index 0000000..7ce1790 --- /dev/null +++ b/mblt_vision/models/RepViT_M2_3.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/RepViT_M2_3 + filename: repvit_m2_3.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/RepViT_M3.yaml b/mblt_vision/models/RepViT_M3.yaml new file mode 100644 index 0000000..ed8aaea --- /dev/null +++ b/mblt_vision/models/RepViT_M3.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/RepViT_M3 + filename: repvit_m3.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 236 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ResNeXt101_32X8D.yaml b/mblt_vision/models/ResNeXt101_32X8D.yaml new file mode 100644 index 0000000..a996ce1 --- /dev/null +++ b/mblt_vision/models/ResNeXt101_32X8D.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ResNeXt101_32X8D.tv1_in1k + filename: resnext101_32x8d_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/ResNeXt101_32X8D.tv2_in1k + filename: resnext101_32x8d_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/ResNeXt101_64X4D.yaml b/mblt_vision/models/ResNeXt101_64X4D.yaml new file mode 100644 index 0000000..bfe20ac --- /dev/null +++ b/mblt_vision/models/ResNeXt101_64X4D.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ResNeXt101_64X4D + filename: resnext101_64x4d_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 232 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ResNeXt50_32X4D.yaml b/mblt_vision/models/ResNeXt50_32X4D.yaml new file mode 100644 index 0000000..c3c8265 --- /dev/null +++ b/mblt_vision/models/ResNeXt50_32X4D.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ResNeXt50_32X4D.tv1_in1k + filename: resnext50_32x4d_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/ResNeXt50_32X4D.tv2_in1k + filename: resnext50_32x4d_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/ResNet101.yaml b/mblt_vision/models/ResNet101.yaml new file mode 100644 index 0000000..2367602 --- /dev/null +++ b/mblt_vision/models/ResNet101.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ResNet101.tv1_in1k + filename: resnet101_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/ResNet101.tv2_in1k + filename: resnet101_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/ResNet152.yaml b/mblt_vision/models/ResNet152.yaml new file mode 100644 index 0000000..af6e238 --- /dev/null +++ b/mblt_vision/models/ResNet152.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ResNet152.tv1_in1k + filename: resnet152_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/ResNet152.tv2_in1k + filename: resnet152_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/ResNet18.yaml b/mblt_vision/models/ResNet18.yaml new file mode 100644 index 0000000..4d64cf1 --- /dev/null +++ b/mblt_vision/models/ResNet18.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ResNet18 + filename: resnet18_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ResNet34.yaml b/mblt_vision/models/ResNet34.yaml new file mode 100644 index 0000000..b24ca76 --- /dev/null +++ b/mblt_vision/models/ResNet34.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ResNet34 + filename: resnet34_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ResNet50.yaml b/mblt_vision/models/ResNet50.yaml new file mode 100644 index 0000000..1459e8f --- /dev/null +++ b/mblt_vision/models/ResNet50.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ResNet50.tv1_in1k + filename: resnet50_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/ResNet50.tv2_in1k + filename: resnet50_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/ShuffleNet_V2_X0_5.yaml b/mblt_vision/models/ShuffleNet_V2_X0_5.yaml new file mode 100644 index 0000000..047e802 --- /dev/null +++ b/mblt_vision/models/ShuffleNet_V2_X0_5.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ShuffleNet_V2_X0_5 + filename: shufflenet_v2_x0_5_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ShuffleNet_V2_X1_0.yaml b/mblt_vision/models/ShuffleNet_V2_X1_0.yaml new file mode 100644 index 0000000..98b62ee --- /dev/null +++ b/mblt_vision/models/ShuffleNet_V2_X1_0.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ShuffleNet_V2_X1_0 + filename: shufflenet_v2_x1_0_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ShuffleNet_V2_X1_5.yaml b/mblt_vision/models/ShuffleNet_V2_X1_5.yaml new file mode 100644 index 0000000..e177b17 --- /dev/null +++ b/mblt_vision/models/ShuffleNet_V2_X1_5.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ShuffleNet_V2_X1_5 + filename: shufflenet_v2_x1_5_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 232 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ShuffleNet_V2_X2_0.yaml b/mblt_vision/models/ShuffleNet_V2_X2_0.yaml new file mode 100644 index 0000000..3656877 --- /dev/null +++ b/mblt_vision/models/ShuffleNet_V2_X2_0.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ShuffleNet_V2_X2_0 + filename: shufflenet_v2_x2_0_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 232 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/SqueezeNet1_0.yaml b/mblt_vision/models/SqueezeNet1_0.yaml new file mode 100644 index 0000000..38d77ef --- /dev/null +++ b/mblt_vision/models/SqueezeNet1_0.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/SqueezeNet1_0 + filename: squeezenet1_0_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/SqueezeNet1_1.yaml b/mblt_vision/models/SqueezeNet1_1.yaml new file mode 100644 index 0000000..43ee001 --- /dev/null +++ b/mblt_vision/models/SqueezeNet1_1.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/SqueezeNet1_1 + filename: squeezenet1_1_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/Swin_B.yaml b/mblt_vision/models/Swin_B.yaml new file mode 100644 index 0000000..a591788 --- /dev/null +++ b/mblt_vision/models/Swin_B.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/Swin_B + filename: swin_b_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 238 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/Swin_S.yaml b/mblt_vision/models/Swin_S.yaml new file mode 100644 index 0000000..ffa04ac --- /dev/null +++ b/mblt_vision/models/Swin_S.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/Swin_S + filename: swin_s_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 246 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/Swin_T.yaml b/mblt_vision/models/Swin_T.yaml new file mode 100644 index 0000000..fbe120e --- /dev/null +++ b/mblt_vision/models/Swin_T.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/Swin_T + filename: swin_t_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 232 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VGG11.yaml b/mblt_vision/models/VGG11.yaml new file mode 100644 index 0000000..89bdad5 --- /dev/null +++ b/mblt_vision/models/VGG11.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/VGG11 + filename: vgg11_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VGG11_BN.yaml b/mblt_vision/models/VGG11_BN.yaml new file mode 100644 index 0000000..983e185 --- /dev/null +++ b/mblt_vision/models/VGG11_BN.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/VGG11_BN + filename: vgg11_bn_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VGG13.yaml b/mblt_vision/models/VGG13.yaml new file mode 100644 index 0000000..517e451 --- /dev/null +++ b/mblt_vision/models/VGG13.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/VGG13 + filename: vgg13_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VGG13_BN.yaml b/mblt_vision/models/VGG13_BN.yaml new file mode 100644 index 0000000..1c0c89b --- /dev/null +++ b/mblt_vision/models/VGG13_BN.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/VGG13_BN + filename: vgg13_bn_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VGG16.yaml b/mblt_vision/models/VGG16.yaml new file mode 100644 index 0000000..4284f44 --- /dev/null +++ b/mblt_vision/models/VGG16.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/VGG16 + filename: vgg16_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VGG16_BN.yaml b/mblt_vision/models/VGG16_BN.yaml new file mode 100644 index 0000000..0decf5a --- /dev/null +++ b/mblt_vision/models/VGG16_BN.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/VGG16_BN + filename: vgg16_bn_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VGG19.yaml b/mblt_vision/models/VGG19.yaml new file mode 100644 index 0000000..782a541 --- /dev/null +++ b/mblt_vision/models/VGG19.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/VGG19 + filename: vgg19_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VGG19_BN.yaml b/mblt_vision/models/VGG19_BN.yaml new file mode 100644 index 0000000..716d500 --- /dev/null +++ b/mblt_vision/models/VGG19_BN.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/VGG19_BN + filename: vgg19_bn_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_B_16.yaml b/mblt_vision/models/ViT_B_16.yaml new file mode 100644 index 0000000..2111588 --- /dev/null +++ b/mblt_vision/models/ViT_B_16.yaml @@ -0,0 +1,67 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ViT_B_16.tv1_in1k + filename: vit_b_16_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_SWAG_E2E_V1: + file_cfg: + repo_id: mobilint/ViT_B_16.swag_e2e_in1k + filename: vit_b_16_IMAGENET1K_SWAG_E2E_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_SWAG_LINEAR_V1: + file_cfg: + repo_id: mobilint/ViT_B_16.swag_linear_in1k + filename: vit_b_16_IMAGENET1K_SWAG_LINEAR_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_B_32.yaml b/mblt_vision/models/ViT_B_32.yaml new file mode 100644 index 0000000..ef29cc0 --- /dev/null +++ b/mblt_vision/models/ViT_B_32.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ViT_B_32 + filename: vit_b_32_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Base_Patch16_224.yaml b/mblt_vision/models/ViT_Base_Patch16_224.yaml new file mode 100644 index 0000000..d4fb6c0 --- /dev/null +++ b/mblt_vision/models/ViT_Base_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Base_Patch16_224 + filename: vit_base_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Base_Patch16_384.yaml b/mblt_vision/models/ViT_Base_Patch16_384.yaml new file mode 100644 index 0000000..c4cc9c0 --- /dev/null +++ b/mblt_vision/models/ViT_Base_Patch16_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Base_Patch16_384 + filename: vit_base_patch16_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Base_Patch32_224.yaml b/mblt_vision/models/ViT_Base_Patch32_224.yaml new file mode 100644 index 0000000..d4c7f1c --- /dev/null +++ b/mblt_vision/models/ViT_Base_Patch32_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Base_Patch32_224 + filename: vit_base_patch32_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Base_Patch32_384.yaml b/mblt_vision/models/ViT_Base_Patch32_384.yaml new file mode 100644 index 0000000..f6bcd9c --- /dev/null +++ b/mblt_vision/models/ViT_Base_Patch32_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Base_Patch32_384 + filename: vit_base_patch32_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Base_Patch8_224.yaml b/mblt_vision/models/ViT_Base_Patch8_224.yaml new file mode 100644 index 0000000..af6ea08 --- /dev/null +++ b/mblt_vision/models/ViT_Base_Patch8_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Base_Patch8_224 + filename: vit_base_patch8_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_L_16.yaml b/mblt_vision/models/ViT_L_16.yaml new file mode 100644 index 0000000..02c0bb4 --- /dev/null +++ b/mblt_vision/models/ViT_L_16.yaml @@ -0,0 +1,67 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ViT_L_16.tv1_in1k + filename: vit_l_16_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 242 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_SWAG_E2E_V1: + file_cfg: + repo_id: mobilint/ViT_L_16.swag_e2e_in1k + filename: vit_l_16_IMAGENET1K_SWAG_E2E_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 512 + interpolation: bicubic + CenterCrop: + size: + - 512 + - 512 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_SWAG_LINEAR_V1: + file_cfg: + repo_id: mobilint/ViT_L_16.swag_linear_in1k + filename: vit_l_16_IMAGENET1K_SWAG_LINEAR_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_L_32.yaml b/mblt_vision/models/ViT_L_32.yaml new file mode 100644 index 0000000..b91f32b --- /dev/null +++ b/mblt_vision/models/ViT_L_32.yaml @@ -0,0 +1,23 @@ +DEFAULT: IMAGENET1K_V1 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/ViT_L_32 + filename: vit_l_32_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Large_Patch16_224.yaml b/mblt_vision/models/ViT_Large_Patch16_224.yaml new file mode 100644 index 0000000..75a871b --- /dev/null +++ b/mblt_vision/models/ViT_Large_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Large_Patch16_224 + filename: vit_large_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Large_Patch16_384.yaml b/mblt_vision/models/ViT_Large_Patch16_384.yaml new file mode 100644 index 0000000..f871425 --- /dev/null +++ b/mblt_vision/models/ViT_Large_Patch16_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Large_Patch16_384 + filename: vit_large_patch16_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Large_Patch32_384.yaml b/mblt_vision/models/ViT_Large_Patch32_384.yaml new file mode 100644 index 0000000..d4a7199 --- /dev/null +++ b/mblt_vision/models/ViT_Large_Patch32_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Large_Patch32_384 + filename: vit_large_patch32_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Small_Patch16_224.yaml b/mblt_vision/models/ViT_Small_Patch16_224.yaml new file mode 100644 index 0000000..a55c062 --- /dev/null +++ b/mblt_vision/models/ViT_Small_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Small_Patch16_224 + filename: vit_small_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Small_Patch16_384.yaml b/mblt_vision/models/ViT_Small_Patch16_384.yaml new file mode 100644 index 0000000..99dff13 --- /dev/null +++ b/mblt_vision/models/ViT_Small_Patch16_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Small_Patch16_384 + filename: vit_small_patch16_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Small_Patch32_224.yaml b/mblt_vision/models/ViT_Small_Patch32_224.yaml new file mode 100644 index 0000000..960ac46 --- /dev/null +++ b/mblt_vision/models/ViT_Small_Patch32_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Small_Patch32_224 + filename: vit_small_patch32_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Small_Patch32_384.yaml b/mblt_vision/models/ViT_Small_Patch32_384.yaml new file mode 100644 index 0000000..f634c45 --- /dev/null +++ b/mblt_vision/models/ViT_Small_Patch32_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Small_Patch32_384 + filename: vit_small_patch32_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Tiny_Patch16_224.yaml b/mblt_vision/models/ViT_Tiny_Patch16_224.yaml new file mode 100644 index 0000000..c5cb9af --- /dev/null +++ b/mblt_vision/models/ViT_Tiny_Patch16_224.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Tiny_Patch16_224 + filename: vit_tiny_patch16_224.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/ViT_Tiny_Patch16_384.yaml b/mblt_vision/models/ViT_Tiny_Patch16_384.yaml new file mode 100644 index 0000000..5ddd8ba --- /dev/null +++ b/mblt_vision/models/ViT_Tiny_Patch16_384.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/ViT_Tiny_Patch16_384 + filename: vit_tiny_patch16_384.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 384 + interpolation: bicubic + CenterCrop: + size: + - 384 + - 384 + SetOrder: + shape: HWC + Normalize: + style: tf + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VisFormer_Small.yaml b/mblt_vision/models/VisFormer_Small.yaml new file mode 100644 index 0000000..5a9e6a3 --- /dev/null +++ b/mblt_vision/models/VisFormer_Small.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/VisFormer_Small + filename: visformer_small.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/VisFormer_Tiny.yaml b/mblt_vision/models/VisFormer_Tiny.yaml new file mode 100644 index 0000000..ab8609e --- /dev/null +++ b/mblt_vision/models/VisFormer_Tiny.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/VisFormer_Tiny + filename: visformer_tiny.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 249 + interpolation: bicubic + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/Wide_ResNet101_2.yaml b/mblt_vision/models/Wide_ResNet101_2.yaml new file mode 100644 index 0000000..decd589 --- /dev/null +++ b/mblt_vision/models/Wide_ResNet101_2.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/Wide_ResNet101_2.tv1_in1k + filename: wide_resnet101_2_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/Wide_ResNet101_2.tv2_in1k + filename: wide_resnet101_2_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/Wide_ResNet50_2.yaml b/mblt_vision/models/Wide_ResNet50_2.yaml new file mode 100644 index 0000000..d1fd424 --- /dev/null +++ b/mblt_vision/models/Wide_ResNet50_2.yaml @@ -0,0 +1,32 @@ +DEFAULT: IMAGENET1K_V2 +IMAGENET1K_V1: + file_cfg: + repo_id: mobilint/Wide_ResNet50_2.tv1_in1k + filename: wide_resnet50_2_IMAGENET1K_V1.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 256 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet +IMAGENET1K_V2: + update: IMAGENET1K_V1 + file_cfg: + repo_id: mobilint/Wide_ResNet50_2.tv2_in1k + filename: wide_resnet50_2_IMAGENET1K_V2.mxq + pre_cfg: + Resize: + size: 232 + interpolation: bilinear diff --git a/mblt_vision/models/YOLO11l-cls.yaml b/mblt_vision/models/YOLO11l-cls.yaml new file mode 100644 index 0000000..f0d9845 --- /dev/null +++ b/mblt_vision/models/YOLO11l-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11l-cls + filename: yolo11l-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO11l-face.yaml b/mblt_vision/models/YOLO11l-face.yaml new file mode 100644 index 0000000..8c6982a --- /dev/null +++ b/mblt_vision/models/YOLO11l-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11l-face + filename: yolo11l-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11l-obb.yaml b/mblt_vision/models/YOLO11l-obb.yaml new file mode 100644 index 0000000..bb8d4af --- /dev/null +++ b/mblt_vision/models/YOLO11l-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11l-obb + filename: yolo11l-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11l-pose.yaml b/mblt_vision/models/YOLO11l-pose.yaml new file mode 100644 index 0000000..6bda47d --- /dev/null +++ b/mblt_vision/models/YOLO11l-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11l-pose + filename: yolo11l-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11l-seg.yaml b/mblt_vision/models/YOLO11l-seg.yaml new file mode 100644 index 0000000..55a7343 --- /dev/null +++ b/mblt_vision/models/YOLO11l-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11l-seg + filename: yolo11l-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11l.yaml b/mblt_vision/models/YOLO11l.yaml new file mode 100644 index 0000000..84faf43 --- /dev/null +++ b/mblt_vision/models/YOLO11l.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11l + filename: yolo11l.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11m-cls.yaml b/mblt_vision/models/YOLO11m-cls.yaml new file mode 100644 index 0000000..4dd25e6 --- /dev/null +++ b/mblt_vision/models/YOLO11m-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11m-cls + filename: yolo11m-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO11m-face.yaml b/mblt_vision/models/YOLO11m-face.yaml new file mode 100644 index 0000000..93d007e --- /dev/null +++ b/mblt_vision/models/YOLO11m-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11m-face + filename: yolo11m-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11m-obb.yaml b/mblt_vision/models/YOLO11m-obb.yaml new file mode 100644 index 0000000..91fccc5 --- /dev/null +++ b/mblt_vision/models/YOLO11m-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11m-obb + filename: yolo11m-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11m-pose.yaml b/mblt_vision/models/YOLO11m-pose.yaml new file mode 100644 index 0000000..bf7bc8d --- /dev/null +++ b/mblt_vision/models/YOLO11m-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11m-pose + filename: yolo11m-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11m-seg.yaml b/mblt_vision/models/YOLO11m-seg.yaml new file mode 100644 index 0000000..46f3e45 --- /dev/null +++ b/mblt_vision/models/YOLO11m-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11m-seg + filename: yolo11m-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11m.yaml b/mblt_vision/models/YOLO11m.yaml new file mode 100644 index 0000000..4831817 --- /dev/null +++ b/mblt_vision/models/YOLO11m.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11m + filename: yolo11m.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11n-cls.yaml b/mblt_vision/models/YOLO11n-cls.yaml new file mode 100644 index 0000000..e7658ac --- /dev/null +++ b/mblt_vision/models/YOLO11n-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11n-cls + filename: yolo11n-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO11n-face.yaml b/mblt_vision/models/YOLO11n-face.yaml new file mode 100644 index 0000000..0fd8395 --- /dev/null +++ b/mblt_vision/models/YOLO11n-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11n-face + filename: yolo11n-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11n-obb.yaml b/mblt_vision/models/YOLO11n-obb.yaml new file mode 100644 index 0000000..c2f00a9 --- /dev/null +++ b/mblt_vision/models/YOLO11n-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11n-obb + filename: yolo11n-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11n-pose.yaml b/mblt_vision/models/YOLO11n-pose.yaml new file mode 100644 index 0000000..fe7b8dc --- /dev/null +++ b/mblt_vision/models/YOLO11n-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11n-pose + filename: yolo11n-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11n-seg.yaml b/mblt_vision/models/YOLO11n-seg.yaml new file mode 100644 index 0000000..736e6bf --- /dev/null +++ b/mblt_vision/models/YOLO11n-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11n-seg + filename: yolo11n-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11n.yaml b/mblt_vision/models/YOLO11n.yaml new file mode 100644 index 0000000..809df97 --- /dev/null +++ b/mblt_vision/models/YOLO11n.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11n + filename: yolo11n.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11s-cls.yaml b/mblt_vision/models/YOLO11s-cls.yaml new file mode 100644 index 0000000..fd53c03 --- /dev/null +++ b/mblt_vision/models/YOLO11s-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11s-cls + filename: yolo11s-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO11s-face.yaml b/mblt_vision/models/YOLO11s-face.yaml new file mode 100644 index 0000000..ec966ef --- /dev/null +++ b/mblt_vision/models/YOLO11s-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11s-face + filename: yolo11s-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11s-obb.yaml b/mblt_vision/models/YOLO11s-obb.yaml new file mode 100644 index 0000000..0aae543 --- /dev/null +++ b/mblt_vision/models/YOLO11s-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11s-obb + filename: yolo11s-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11s-pose.yaml b/mblt_vision/models/YOLO11s-pose.yaml new file mode 100644 index 0000000..b0ed955 --- /dev/null +++ b/mblt_vision/models/YOLO11s-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11s-pose + filename: yolo11s-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11s-seg.yaml b/mblt_vision/models/YOLO11s-seg.yaml new file mode 100644 index 0000000..65a6554 --- /dev/null +++ b/mblt_vision/models/YOLO11s-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11s-seg + filename: yolo11s-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11s.yaml b/mblt_vision/models/YOLO11s.yaml new file mode 100644 index 0000000..4dc6a4f --- /dev/null +++ b/mblt_vision/models/YOLO11s.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11s + filename: yolo11s.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11x-cls.yaml b/mblt_vision/models/YOLO11x-cls.yaml new file mode 100644 index 0000000..c014ad6 --- /dev/null +++ b/mblt_vision/models/YOLO11x-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11x-cls + filename: yolo11x-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO11x-obb.yaml b/mblt_vision/models/YOLO11x-obb.yaml new file mode 100644 index 0000000..0d51b51 --- /dev/null +++ b/mblt_vision/models/YOLO11x-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11x-obb + filename: yolo11x-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11x-pose.yaml b/mblt_vision/models/YOLO11x-pose.yaml new file mode 100644 index 0000000..46e3132 --- /dev/null +++ b/mblt_vision/models/YOLO11x-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11x-pose + filename: yolo11x-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11x-seg.yaml b/mblt_vision/models/YOLO11x-seg.yaml new file mode 100644 index 0000000..fa7d992 --- /dev/null +++ b/mblt_vision/models/YOLO11x-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11x-seg + filename: yolo11x-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO11x.yaml b/mblt_vision/models/YOLO11x.yaml new file mode 100644 index 0000000..c3008c9 --- /dev/null +++ b/mblt_vision/models/YOLO11x.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO11x + filename: yolo11x.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12l-face.yaml b/mblt_vision/models/YOLO12l-face.yaml new file mode 100644 index 0000000..6a0ccbf --- /dev/null +++ b/mblt_vision/models/YOLO12l-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12l-face + filename: yolo12l-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12l-seg.yaml b/mblt_vision/models/YOLO12l-seg.yaml new file mode 100644 index 0000000..e67c1da --- /dev/null +++ b/mblt_vision/models/YOLO12l-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12l-seg + filename: yolo12l-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12l.yaml b/mblt_vision/models/YOLO12l.yaml new file mode 100644 index 0000000..63c3059 --- /dev/null +++ b/mblt_vision/models/YOLO12l.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12l + filename: yolo12l.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12m-face.yaml b/mblt_vision/models/YOLO12m-face.yaml new file mode 100644 index 0000000..5d8340d --- /dev/null +++ b/mblt_vision/models/YOLO12m-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12m-face + filename: yolo12m-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12m-seg.yaml b/mblt_vision/models/YOLO12m-seg.yaml new file mode 100644 index 0000000..2572df0 --- /dev/null +++ b/mblt_vision/models/YOLO12m-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12m-seg + filename: yolo12m-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12m.yaml b/mblt_vision/models/YOLO12m.yaml new file mode 100644 index 0000000..c6f4fa3 --- /dev/null +++ b/mblt_vision/models/YOLO12m.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12m + filename: yolo12m.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12n-face.yaml b/mblt_vision/models/YOLO12n-face.yaml new file mode 100644 index 0000000..686e61c --- /dev/null +++ b/mblt_vision/models/YOLO12n-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12n-face + filename: yolo12n-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12n-seg.yaml b/mblt_vision/models/YOLO12n-seg.yaml new file mode 100644 index 0000000..0672bd8 --- /dev/null +++ b/mblt_vision/models/YOLO12n-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12n-seg + filename: yolo12n-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12n.yaml b/mblt_vision/models/YOLO12n.yaml new file mode 100644 index 0000000..86897b6 --- /dev/null +++ b/mblt_vision/models/YOLO12n.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12n + filename: yolo12n.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12s-face.yaml b/mblt_vision/models/YOLO12s-face.yaml new file mode 100644 index 0000000..7573356 --- /dev/null +++ b/mblt_vision/models/YOLO12s-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12s-face + filename: yolo12s-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12s-seg.yaml b/mblt_vision/models/YOLO12s-seg.yaml new file mode 100644 index 0000000..8c9fb4e --- /dev/null +++ b/mblt_vision/models/YOLO12s-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12s-seg + filename: yolo12s-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12s.yaml b/mblt_vision/models/YOLO12s.yaml new file mode 100644 index 0000000..5e1c2d0 --- /dev/null +++ b/mblt_vision/models/YOLO12s.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12s + filename: yolo12s.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12x-seg.yaml b/mblt_vision/models/YOLO12x-seg.yaml new file mode 100644 index 0000000..1671116 --- /dev/null +++ b/mblt_vision/models/YOLO12x-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12x-seg + filename: yolo12x-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO12x.yaml b/mblt_vision/models/YOLO12x.yaml new file mode 100644 index 0000000..3484f8a --- /dev/null +++ b/mblt_vision/models/YOLO12x.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO12x + filename: yolo12x.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26l-cls.yaml b/mblt_vision/models/YOLO26l-cls.yaml new file mode 100644 index 0000000..d492a4c --- /dev/null +++ b/mblt_vision/models/YOLO26l-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26l-cls + filename: yolo26l-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO26l-depth.yaml b/mblt_vision/models/YOLO26l-depth.yaml new file mode 100644 index 0000000..226a1d8 --- /dev/null +++ b/mblt_vision/models/YOLO26l-depth.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26l-depth + filename: yolo26l-depth.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [768, 768] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: depth_estimation + dataset: nyu-depth diff --git a/mblt_vision/models/YOLO26l-distill.yaml b/mblt_vision/models/YOLO26l-distill.yaml new file mode 100644 index 0000000..52b0869 --- /dev/null +++ b/mblt_vision/models/YOLO26l-distill.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26l-distill + filename: yolo26l-distill.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26l-obb.yaml b/mblt_vision/models/YOLO26l-obb.yaml new file mode 100644 index 0000000..df61c05 --- /dev/null +++ b/mblt_vision/models/YOLO26l-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26l-obb + filename: yolo26l-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + dflfree: true + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26l-pose.yaml b/mblt_vision/models/YOLO26l-pose.yaml new file mode 100644 index 0000000..17fc25d --- /dev/null +++ b/mblt_vision/models/YOLO26l-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26l-pose + filename: yolo26l-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26l-seg.yaml b/mblt_vision/models/YOLO26l-seg.yaml new file mode 100644 index 0000000..7b861fb --- /dev/null +++ b/mblt_vision/models/YOLO26l-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26l-seg + filename: yolo26l-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26l-sem-ade20k.yaml b/mblt_vision/models/YOLO26l-sem-ade20k.yaml new file mode 100644 index 0000000..7fa0a5b --- /dev/null +++ b/mblt_vision/models/YOLO26l-sem-ade20k.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26l-sem-ade20k + filename: yolo26l-sem-ade20k.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [640, 640] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: ade20k diff --git a/mblt_vision/models/YOLO26l-sem.yaml b/mblt_vision/models/YOLO26l-sem.yaml new file mode 100644 index 0000000..822123e --- /dev/null +++ b/mblt_vision/models/YOLO26l-sem.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26l-sem + filename: yolo26l-sem.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [1024, 2048] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: cityscapes diff --git a/mblt_vision/models/YOLO26l.yaml b/mblt_vision/models/YOLO26l.yaml new file mode 100644 index 0000000..3df6898 --- /dev/null +++ b/mblt_vision/models/YOLO26l.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26l + filename: yolo26l.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26m-cls.yaml b/mblt_vision/models/YOLO26m-cls.yaml new file mode 100644 index 0000000..57abe6b --- /dev/null +++ b/mblt_vision/models/YOLO26m-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26m-cls + filename: yolo26m-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO26m-depth.yaml b/mblt_vision/models/YOLO26m-depth.yaml new file mode 100644 index 0000000..ace9c16 --- /dev/null +++ b/mblt_vision/models/YOLO26m-depth.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26m-depth + filename: yolo26m-depth.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [768, 768] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: depth_estimation + dataset: nyu-depth diff --git a/mblt_vision/models/YOLO26m-distill.yaml b/mblt_vision/models/YOLO26m-distill.yaml new file mode 100644 index 0000000..79e8550 --- /dev/null +++ b/mblt_vision/models/YOLO26m-distill.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26m-distill + filename: yolo26m-distill.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26m-obb.yaml b/mblt_vision/models/YOLO26m-obb.yaml new file mode 100644 index 0000000..f6353fd --- /dev/null +++ b/mblt_vision/models/YOLO26m-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26m-obb + filename: yolo26m-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + dflfree: true + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26m-pose.yaml b/mblt_vision/models/YOLO26m-pose.yaml new file mode 100644 index 0000000..eddd6fa --- /dev/null +++ b/mblt_vision/models/YOLO26m-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26m-pose + filename: yolo26m-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26m-seg.yaml b/mblt_vision/models/YOLO26m-seg.yaml new file mode 100644 index 0000000..32be031 --- /dev/null +++ b/mblt_vision/models/YOLO26m-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26m-seg + filename: yolo26m-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26m-sem-ade20k.yaml b/mblt_vision/models/YOLO26m-sem-ade20k.yaml new file mode 100644 index 0000000..1ca8020 --- /dev/null +++ b/mblt_vision/models/YOLO26m-sem-ade20k.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26m-sem-ade20k + filename: yolo26m-sem-ade20k.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [640, 640] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: ade20k diff --git a/mblt_vision/models/YOLO26m-sem.yaml b/mblt_vision/models/YOLO26m-sem.yaml new file mode 100644 index 0000000..00ac704 --- /dev/null +++ b/mblt_vision/models/YOLO26m-sem.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26m-sem + filename: yolo26m-sem.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [1024, 2048] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: cityscapes diff --git a/mblt_vision/models/YOLO26m.yaml b/mblt_vision/models/YOLO26m.yaml new file mode 100644 index 0000000..817db03 --- /dev/null +++ b/mblt_vision/models/YOLO26m.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26m + filename: yolo26m.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26n-cls.yaml b/mblt_vision/models/YOLO26n-cls.yaml new file mode 100644 index 0000000..df2663e --- /dev/null +++ b/mblt_vision/models/YOLO26n-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26n-cls + filename: yolo26n-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO26n-depth.yaml b/mblt_vision/models/YOLO26n-depth.yaml new file mode 100644 index 0000000..fc31ab5 --- /dev/null +++ b/mblt_vision/models/YOLO26n-depth.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26n-depth + filename: yolo26n-depth.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [768, 768] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: depth_estimation + dataset: nyu-depth diff --git a/mblt_vision/models/YOLO26n-distill.yaml b/mblt_vision/models/YOLO26n-distill.yaml new file mode 100644 index 0000000..b6e4d14 --- /dev/null +++ b/mblt_vision/models/YOLO26n-distill.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26n-distill + filename: yolo26n-distill.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26n-obb.yaml b/mblt_vision/models/YOLO26n-obb.yaml new file mode 100644 index 0000000..aa92ffe --- /dev/null +++ b/mblt_vision/models/YOLO26n-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26n-obb + filename: yolo26n-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + dflfree: true + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26n-pose.yaml b/mblt_vision/models/YOLO26n-pose.yaml new file mode 100644 index 0000000..110b715 --- /dev/null +++ b/mblt_vision/models/YOLO26n-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26n-pose + filename: yolo26n-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26n-seg.yaml b/mblt_vision/models/YOLO26n-seg.yaml new file mode 100644 index 0000000..d67e642 --- /dev/null +++ b/mblt_vision/models/YOLO26n-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26n-seg + filename: yolo26n-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26n-sem-ade20k.yaml b/mblt_vision/models/YOLO26n-sem-ade20k.yaml new file mode 100644 index 0000000..9223741 --- /dev/null +++ b/mblt_vision/models/YOLO26n-sem-ade20k.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26n-sem-ade20k + filename: yolo26n-sem-ade20k.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [640, 640] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: ade20k diff --git a/mblt_vision/models/YOLO26n-sem.yaml b/mblt_vision/models/YOLO26n-sem.yaml new file mode 100644 index 0000000..c97909a --- /dev/null +++ b/mblt_vision/models/YOLO26n-sem.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26n-sem + filename: yolo26n-sem.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [1024, 2048] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: cityscapes diff --git a/mblt_vision/models/YOLO26n.yaml b/mblt_vision/models/YOLO26n.yaml new file mode 100644 index 0000000..c1a3154 --- /dev/null +++ b/mblt_vision/models/YOLO26n.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26n + filename: yolo26n.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26s-cls.yaml b/mblt_vision/models/YOLO26s-cls.yaml new file mode 100644 index 0000000..9c8074a --- /dev/null +++ b/mblt_vision/models/YOLO26s-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26s-cls + filename: yolo26s-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO26s-depth.yaml b/mblt_vision/models/YOLO26s-depth.yaml new file mode 100644 index 0000000..8e9a89a --- /dev/null +++ b/mblt_vision/models/YOLO26s-depth.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26s-depth + filename: yolo26s-depth.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [768, 768] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: depth_estimation + dataset: nyu-depth diff --git a/mblt_vision/models/YOLO26s-distill.yaml b/mblt_vision/models/YOLO26s-distill.yaml new file mode 100644 index 0000000..a29d729 --- /dev/null +++ b/mblt_vision/models/YOLO26s-distill.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26s-distill + filename: yolo26s-distill.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26s-obb.yaml b/mblt_vision/models/YOLO26s-obb.yaml new file mode 100644 index 0000000..8d4d302 --- /dev/null +++ b/mblt_vision/models/YOLO26s-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26s-obb + filename: yolo26s-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + dflfree: true + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26s-pose.yaml b/mblt_vision/models/YOLO26s-pose.yaml new file mode 100644 index 0000000..6f1007d --- /dev/null +++ b/mblt_vision/models/YOLO26s-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26s-pose + filename: yolo26s-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26s-seg.yaml b/mblt_vision/models/YOLO26s-seg.yaml new file mode 100644 index 0000000..ccd86f4 --- /dev/null +++ b/mblt_vision/models/YOLO26s-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26s-seg + filename: yolo26s-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26s-sem-ade20k.yaml b/mblt_vision/models/YOLO26s-sem-ade20k.yaml new file mode 100644 index 0000000..cff9c9f --- /dev/null +++ b/mblt_vision/models/YOLO26s-sem-ade20k.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26s-sem-ade20k + filename: yolo26s-sem-ade20k.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [640, 640] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: ade20k diff --git a/mblt_vision/models/YOLO26s-sem.yaml b/mblt_vision/models/YOLO26s-sem.yaml new file mode 100644 index 0000000..5040771 --- /dev/null +++ b/mblt_vision/models/YOLO26s-sem.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26s-sem + filename: yolo26s-sem.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [1024, 2048] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: cityscapes diff --git a/mblt_vision/models/YOLO26s.yaml b/mblt_vision/models/YOLO26s.yaml new file mode 100644 index 0000000..2167b14 --- /dev/null +++ b/mblt_vision/models/YOLO26s.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26s + filename: yolo26s.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26x-cls.yaml b/mblt_vision/models/YOLO26x-cls.yaml new file mode 100644 index 0000000..03963e2 --- /dev/null +++ b/mblt_vision/models/YOLO26x-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26x-cls + filename: yolo26x-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLO26x-depth.yaml b/mblt_vision/models/YOLO26x-depth.yaml new file mode 100644 index 0000000..60cc02b --- /dev/null +++ b/mblt_vision/models/YOLO26x-depth.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26x-depth + filename: yolo26x-depth.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [768, 768] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: depth_estimation + dataset: nyu-depth diff --git a/mblt_vision/models/YOLO26x-distill.yaml b/mblt_vision/models/YOLO26x-distill.yaml new file mode 100644 index 0000000..4a5ba55 --- /dev/null +++ b/mblt_vision/models/YOLO26x-distill.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26x-distill + filename: yolo26x-distill.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26x-obb.yaml b/mblt_vision/models/YOLO26x-obb.yaml new file mode 100644 index 0000000..9e178d0 --- /dev/null +++ b/mblt_vision/models/YOLO26x-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26x-obb + filename: yolo26x-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + dflfree: true + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26x-pose.yaml b/mblt_vision/models/YOLO26x-pose.yaml new file mode 100644 index 0000000..2f3a9cf --- /dev/null +++ b/mblt_vision/models/YOLO26x-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26x-pose + filename: yolo26x-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26x-seg.yaml b/mblt_vision/models/YOLO26x-seg.yaml new file mode 100644 index 0000000..0469a92 --- /dev/null +++ b/mblt_vision/models/YOLO26x-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26x-seg + filename: yolo26x-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLO26x-sem-ade20k.yaml b/mblt_vision/models/YOLO26x-sem-ade20k.yaml new file mode 100644 index 0000000..38f3546 --- /dev/null +++ b/mblt_vision/models/YOLO26x-sem-ade20k.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26x-sem-ade20k + filename: yolo26x-sem-ade20k.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [640, 640] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: ade20k diff --git a/mblt_vision/models/YOLO26x-sem.yaml b/mblt_vision/models/YOLO26x-sem.yaml new file mode 100644 index 0000000..3826871 --- /dev/null +++ b/mblt_vision/models/YOLO26x-sem.yaml @@ -0,0 +1,17 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26x-sem + filename: yolo26x-sem.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: [1024, 2048] + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: semantic_segmentation + dataset: cityscapes diff --git a/mblt_vision/models/YOLO26x.yaml b/mblt_vision/models/YOLO26x.yaml new file mode 100644 index 0000000..777fc7f --- /dev/null +++ b/mblt_vision/models/YOLO26x.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLO26x + filename: yolo26x.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + dflfree: true + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10b.yaml b/mblt_vision/models/YOLOv10b.yaml new file mode 100644 index 0000000..013c1c4 --- /dev/null +++ b/mblt_vision/models/YOLOv10b.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10b + filename: yolov10b.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10l-face.yaml b/mblt_vision/models/YOLOv10l-face.yaml new file mode 100644 index 0000000..e9d9fde --- /dev/null +++ b/mblt_vision/models/YOLOv10l-face.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10l-face + filename: yolov10l-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10l.yaml b/mblt_vision/models/YOLOv10l.yaml new file mode 100644 index 0000000..a1ce2c8 --- /dev/null +++ b/mblt_vision/models/YOLOv10l.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10l + filename: yolov10l.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10m-face.yaml b/mblt_vision/models/YOLOv10m-face.yaml new file mode 100644 index 0000000..61b9df3 --- /dev/null +++ b/mblt_vision/models/YOLOv10m-face.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10m-face + filename: yolov10m-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10m.yaml b/mblt_vision/models/YOLOv10m.yaml new file mode 100644 index 0000000..cef0e70 --- /dev/null +++ b/mblt_vision/models/YOLOv10m.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10m + filename: yolov10m.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10n-face.yaml b/mblt_vision/models/YOLOv10n-face.yaml new file mode 100644 index 0000000..0b3c266 --- /dev/null +++ b/mblt_vision/models/YOLOv10n-face.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10n-face + filename: yolov10n-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10n.yaml b/mblt_vision/models/YOLOv10n.yaml new file mode 100644 index 0000000..bd5585d --- /dev/null +++ b/mblt_vision/models/YOLOv10n.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10n + filename: yolov10n.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10s-face.yaml b/mblt_vision/models/YOLOv10s-face.yaml new file mode 100644 index 0000000..a66ebcb --- /dev/null +++ b/mblt_vision/models/YOLOv10s-face.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10s-face + filename: yolov10s-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10s.yaml b/mblt_vision/models/YOLOv10s.yaml new file mode 100644 index 0000000..374cdae --- /dev/null +++ b/mblt_vision/models/YOLOv10s.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10s + filename: yolov10s.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv10x.yaml b/mblt_vision/models/YOLOv10x.yaml new file mode 100644 index 0000000..ce5a4c3 --- /dev/null +++ b/mblt_vision/models/YOLOv10x.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv10x + filename: yolov10x.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + nmsfree: true + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv3-spp.yaml b/mblt_vision/models/YOLOv3-spp.yaml new file mode 100644 index 0000000..48e8c42 --- /dev/null +++ b/mblt_vision/models/YOLOv3-spp.yaml @@ -0,0 +1,44 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv3-spp + filename: yolov3-spp.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv3-sppu.yaml b/mblt_vision/models/YOLOv3-sppu.yaml new file mode 100644 index 0000000..cd2c845 --- /dev/null +++ b/mblt_vision/models/YOLOv3-sppu.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv3-sppu + filename: yolov3-sppu.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv3-tiny.yaml b/mblt_vision/models/YOLOv3-tiny.yaml new file mode 100644 index 0000000..047451b --- /dev/null +++ b/mblt_vision/models/YOLOv3-tiny.yaml @@ -0,0 +1,38 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv3-tiny + filename: yolov3-tiny.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 10 + - 14 + - 23 + - 27 + - 37 + - 58 + - - 81 + - 82 + - 135 + - 169 + - 344 + - 319 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv3-tinyu.yaml b/mblt_vision/models/YOLOv3-tinyu.yaml new file mode 100644 index 0000000..a263aca --- /dev/null +++ b/mblt_vision/models/YOLOv3-tinyu.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv3-tinyu + filename: yolov3-tinyu.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 2 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv3.yaml b/mblt_vision/models/YOLOv3.yaml new file mode 100644 index 0000000..29be313 --- /dev/null +++ b/mblt_vision/models/YOLOv3.yaml @@ -0,0 +1,44 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv3 + filename: yolov3.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv3u.yaml b/mblt_vision/models/YOLOv3u.yaml new file mode 100644 index 0000000..bc1cf32 --- /dev/null +++ b/mblt_vision/models/YOLOv3u.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv3u + filename: yolov3u.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5l-cls.yaml b/mblt_vision/models/YOLOv5l-cls.yaml new file mode 100644 index 0000000..2f0a17c --- /dev/null +++ b/mblt_vision/models/YOLOv5l-cls.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5l-cls + filename: yolov5l-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/YOLOv5l-seg.yaml b/mblt_vision/models/YOLOv5l-seg.yaml new file mode 100644 index 0000000..ba386b8 --- /dev/null +++ b/mblt_vision/models/YOLOv5l-seg.yaml @@ -0,0 +1,45 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5l-seg + filename: yolov5l-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + n_extra: 32 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5l.yaml b/mblt_vision/models/YOLOv5l.yaml new file mode 100644 index 0000000..181aae6 --- /dev/null +++ b/mblt_vision/models/YOLOv5l.yaml @@ -0,0 +1,44 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5l + filename: yolov5l.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5l6.yaml b/mblt_vision/models/YOLOv5l6.yaml new file mode 100644 index 0000000..ad68e5c --- /dev/null +++ b/mblt_vision/models/YOLOv5l6.yaml @@ -0,0 +1,50 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5l6 + filename: yolov5l6.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 19 + - 27 + - 44 + - 40 + - 38 + - 94 + - - 96 + - 68 + - 86 + - 152 + - 180 + - 137 + - - 140 + - 301 + - 303 + - 264 + - 238 + - 542 + - - 436 + - 615 + - 739 + - 380 + - 925 + - 792 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5l6u.yaml b/mblt_vision/models/YOLOv5l6u.yaml new file mode 100644 index 0000000..380b80a --- /dev/null +++ b/mblt_vision/models/YOLOv5l6u.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5l6u + filename: yolov5l6u.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 4 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5lu.yaml b/mblt_vision/models/YOLOv5lu.yaml new file mode 100644 index 0000000..b1dc1e4 --- /dev/null +++ b/mblt_vision/models/YOLOv5lu.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5lu + filename: yolov5lu.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5m-cls.yaml b/mblt_vision/models/YOLOv5m-cls.yaml new file mode 100644 index 0000000..8fdb619 --- /dev/null +++ b/mblt_vision/models/YOLOv5m-cls.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5m-cls + filename: yolov5m-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/YOLOv5m-seg.yaml b/mblt_vision/models/YOLOv5m-seg.yaml new file mode 100644 index 0000000..6696be4 --- /dev/null +++ b/mblt_vision/models/YOLOv5m-seg.yaml @@ -0,0 +1,45 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5m-seg + filename: yolov5m-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + n_extra: 32 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5m.yaml b/mblt_vision/models/YOLOv5m.yaml new file mode 100644 index 0000000..505d44f --- /dev/null +++ b/mblt_vision/models/YOLOv5m.yaml @@ -0,0 +1,45 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5m + filename: yolov5m.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5m6.yaml b/mblt_vision/models/YOLOv5m6.yaml new file mode 100644 index 0000000..4a21683 --- /dev/null +++ b/mblt_vision/models/YOLOv5m6.yaml @@ -0,0 +1,50 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5m6 + filename: yolov5m6.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 19 + - 27 + - 44 + - 40 + - 38 + - 94 + - - 96 + - 68 + - 86 + - 152 + - 180 + - 137 + - - 140 + - 301 + - 303 + - 264 + - 238 + - 542 + - - 436 + - 615 + - 739 + - 380 + - 925 + - 792 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5m6u.yaml b/mblt_vision/models/YOLOv5m6u.yaml new file mode 100644 index 0000000..fb12e16 --- /dev/null +++ b/mblt_vision/models/YOLOv5m6u.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5m6u + filename: yolov5m6u.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 4 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5mu.yaml b/mblt_vision/models/YOLOv5mu.yaml new file mode 100644 index 0000000..6fa0880 --- /dev/null +++ b/mblt_vision/models/YOLOv5mu.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5mu + filename: yolov5mu.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5n-cls.yaml b/mblt_vision/models/YOLOv5n-cls.yaml new file mode 100644 index 0000000..1447532 --- /dev/null +++ b/mblt_vision/models/YOLOv5n-cls.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5n-cls + filename: yolov5n-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/YOLOv5n-seg.yaml b/mblt_vision/models/YOLOv5n-seg.yaml new file mode 100644 index 0000000..1437343 --- /dev/null +++ b/mblt_vision/models/YOLOv5n-seg.yaml @@ -0,0 +1,45 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5n-seg + filename: yolov5n-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + n_extra: 32 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5n.yaml b/mblt_vision/models/YOLOv5n.yaml new file mode 100644 index 0000000..f135ba1 --- /dev/null +++ b/mblt_vision/models/YOLOv5n.yaml @@ -0,0 +1,44 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5n + filename: yolov5n.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5n6.yaml b/mblt_vision/models/YOLOv5n6.yaml new file mode 100644 index 0000000..b0c86b8 --- /dev/null +++ b/mblt_vision/models/YOLOv5n6.yaml @@ -0,0 +1,50 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5n6 + filename: yolov5n6.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 19 + - 27 + - 44 + - 40 + - 38 + - 94 + - - 96 + - 68 + - 86 + - 152 + - 180 + - 137 + - - 140 + - 301 + - 303 + - 264 + - 238 + - 542 + - - 436 + - 615 + - 739 + - 380 + - 925 + - 792 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5n6u.yaml b/mblt_vision/models/YOLOv5n6u.yaml new file mode 100644 index 0000000..207f82a --- /dev/null +++ b/mblt_vision/models/YOLOv5n6u.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5n6u + filename: yolov5n6u.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 4 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5nu.yaml b/mblt_vision/models/YOLOv5nu.yaml new file mode 100644 index 0000000..29872aa --- /dev/null +++ b/mblt_vision/models/YOLOv5nu.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5nu + filename: yolov5nu.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5s-cls.yaml b/mblt_vision/models/YOLOv5s-cls.yaml new file mode 100644 index 0000000..fc928f8 --- /dev/null +++ b/mblt_vision/models/YOLOv5s-cls.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5s-cls + filename: yolov5s-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/YOLOv5s-seg.yaml b/mblt_vision/models/YOLOv5s-seg.yaml new file mode 100644 index 0000000..e551e73 --- /dev/null +++ b/mblt_vision/models/YOLOv5s-seg.yaml @@ -0,0 +1,45 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5s-seg + filename: yolov5s-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + n_extra: 32 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5s.yaml b/mblt_vision/models/YOLOv5s.yaml new file mode 100644 index 0000000..b633770 --- /dev/null +++ b/mblt_vision/models/YOLOv5s.yaml @@ -0,0 +1,44 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5s + filename: yolov5s.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5s6.yaml b/mblt_vision/models/YOLOv5s6.yaml new file mode 100644 index 0000000..d31e09a --- /dev/null +++ b/mblt_vision/models/YOLOv5s6.yaml @@ -0,0 +1,50 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5s6 + filename: yolov5s6.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 19 + - 27 + - 44 + - 40 + - 38 + - 94 + - - 96 + - 68 + - 86 + - 152 + - 180 + - 137 + - - 140 + - 301 + - 303 + - 264 + - 238 + - 542 + - - 436 + - 615 + - 739 + - 380 + - 925 + - 792 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5s6u.yaml b/mblt_vision/models/YOLOv5s6u.yaml new file mode 100644 index 0000000..cb4dbd2 --- /dev/null +++ b/mblt_vision/models/YOLOv5s6u.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5s6u + filename: yolov5s6u.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 4 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5su.yaml b/mblt_vision/models/YOLOv5su.yaml new file mode 100644 index 0000000..a7fe72d --- /dev/null +++ b/mblt_vision/models/YOLOv5su.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5su + filename: yolov5su.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5x-cls.yaml b/mblt_vision/models/YOLOv5x-cls.yaml new file mode 100644 index 0000000..93f8073 --- /dev/null +++ b/mblt_vision/models/YOLOv5x-cls.yaml @@ -0,0 +1,22 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5x-cls + filename: yolov5x-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: torch + post_cfg: + task: image_classification + dataset: imagenet diff --git a/mblt_vision/models/YOLOv5x-seg.yaml b/mblt_vision/models/YOLOv5x-seg.yaml new file mode 100644 index 0000000..efd2e09 --- /dev/null +++ b/mblt_vision/models/YOLOv5x-seg.yaml @@ -0,0 +1,45 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5x-seg + filename: yolov5x-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + n_extra: 32 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5x.yaml b/mblt_vision/models/YOLOv5x.yaml new file mode 100644 index 0000000..d20e4f1 --- /dev/null +++ b/mblt_vision/models/YOLOv5x.yaml @@ -0,0 +1,44 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5x + filename: yolov5x.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 10 + - 13 + - 16 + - 30 + - 33 + - 23 + - - 30 + - 61 + - 62 + - 45 + - 59 + - 119 + - - 116 + - 90 + - 156 + - 198 + - 373 + - 326 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5x6.yaml b/mblt_vision/models/YOLOv5x6.yaml new file mode 100644 index 0000000..c9928f2 --- /dev/null +++ b/mblt_vision/models/YOLOv5x6.yaml @@ -0,0 +1,50 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5x6 + filename: yolov5x6.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 19 + - 27 + - 44 + - 40 + - 38 + - 94 + - - 96 + - 68 + - 86 + - 152 + - 180 + - 137 + - - 140 + - 301 + - 303 + - 264 + - 238 + - 542 + - - 436 + - 615 + - 739 + - 380 + - 925 + - 792 + conf_thres: 0.001 + iou_thres: 0.65 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5x6u.yaml b/mblt_vision/models/YOLOv5x6u.yaml new file mode 100644 index 0000000..5ceae88 --- /dev/null +++ b/mblt_vision/models/YOLOv5x6u.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5x6u + filename: yolov5x6u.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 4 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv5xu.yaml b/mblt_vision/models/YOLOv5xu.yaml new file mode 100644 index 0000000..2d155bf --- /dev/null +++ b/mblt_vision/models/YOLOv5xu.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv5xu + filename: yolov5xu.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv6m-face.yaml b/mblt_vision/models/YOLOv6m-face.yaml new file mode 100644 index 0000000..5c56065 --- /dev/null +++ b/mblt_vision/models/YOLOv6m-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv6m-face + filename: yolov6m-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv6n-face.yaml b/mblt_vision/models/YOLOv6n-face.yaml new file mode 100644 index 0000000..f1e7541 --- /dev/null +++ b/mblt_vision/models/YOLOv6n-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv6n-face + filename: yolov6n-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv7.yaml b/mblt_vision/models/YOLOv7.yaml new file mode 100644 index 0000000..65f88c7 --- /dev/null +++ b/mblt_vision/models/YOLOv7.yaml @@ -0,0 +1,44 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv7 + filename: yolov7.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 12 + - 16 + - 19 + - 36 + - 40 + - 28 + - - 36 + - 75 + - 76 + - 55 + - 72 + - 146 + - - 142 + - 110 + - 192 + - 243 + - 459 + - 401 + conf_thres: 0.001 + iou_thres: 0.6 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv7d6.yaml b/mblt_vision/models/YOLOv7d6.yaml new file mode 100644 index 0000000..7c777d7 --- /dev/null +++ b/mblt_vision/models/YOLOv7d6.yaml @@ -0,0 +1,50 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv7d6 + filename: yolov7d6.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 19 + - 27 + - 44 + - 40 + - 38 + - 94 + - - 96 + - 68 + - 86 + - 152 + - 180 + - 137 + - - 140 + - 301 + - 303 + - 264 + - 238 + - 542 + - - 436 + - 615 + - 739 + - 380 + - 925 + - 792 + conf_thres: 0.001 + iou_thres: 0.6 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv7e6.yaml b/mblt_vision/models/YOLOv7e6.yaml new file mode 100644 index 0000000..9c2dd47 --- /dev/null +++ b/mblt_vision/models/YOLOv7e6.yaml @@ -0,0 +1,50 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv7e6 + filename: yolov7e6.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 19 + - 27 + - 44 + - 40 + - 38 + - 94 + - - 96 + - 68 + - 86 + - 152 + - 180 + - 137 + - - 140 + - 301 + - 303 + - 264 + - 238 + - 542 + - - 436 + - 615 + - 739 + - 380 + - 925 + - 792 + conf_thres: 0.001 + iou_thres: 0.6 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv7e6e.yaml b/mblt_vision/models/YOLOv7e6e.yaml new file mode 100644 index 0000000..cc13bcb --- /dev/null +++ b/mblt_vision/models/YOLOv7e6e.yaml @@ -0,0 +1,50 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv7e6e + filename: yolov7e6e.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 19 + - 27 + - 44 + - 40 + - 38 + - 94 + - - 96 + - 68 + - 86 + - 152 + - 180 + - 137 + - - 140 + - 301 + - 303 + - 264 + - 238 + - 542 + - - 436 + - 615 + - 739 + - 380 + - 925 + - 792 + conf_thres: 0.001 + iou_thres: 0.6 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv7w6.yaml b/mblt_vision/models/YOLOv7w6.yaml new file mode 100644 index 0000000..776dc21 --- /dev/null +++ b/mblt_vision/models/YOLOv7w6.yaml @@ -0,0 +1,50 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv7w6 + filename: yolov7w6.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 19 + - 27 + - 44 + - 40 + - 38 + - 94 + - - 96 + - 68 + - 86 + - 152 + - 180 + - 137 + - - 140 + - 301 + - 303 + - 264 + - 238 + - 542 + - - 436 + - 615 + - 739 + - 380 + - 925 + - 792 + conf_thres: 0.001 + iou_thres: 0.6 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv7x.yaml b/mblt_vision/models/YOLOv7x.yaml new file mode 100644 index 0000000..ae4e3b2 --- /dev/null +++ b/mblt_vision/models/YOLOv7x.yaml @@ -0,0 +1,44 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv7x + filename: yolov7x.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + anchors: + - - 12 + - 16 + - 19 + - 36 + - 40 + - 28 + - - 36 + - 75 + - 76 + - 55 + - 72 + - 146 + - - 142 + - 110 + - 192 + - 243 + - 459 + - 401 + conf_thres: 0.001 + iou_thres: 0.6 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8l-cls.yaml b/mblt_vision/models/YOLOv8l-cls.yaml new file mode 100644 index 0000000..08c800e --- /dev/null +++ b/mblt_vision/models/YOLOv8l-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8l-cls + filename: yolov8l-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLOv8l-face.yaml b/mblt_vision/models/YOLOv8l-face.yaml new file mode 100644 index 0000000..12f7093 --- /dev/null +++ b/mblt_vision/models/YOLOv8l-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8l-face + filename: yolov8l-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8l-obb.yaml b/mblt_vision/models/YOLOv8l-obb.yaml new file mode 100644 index 0000000..280cb4b --- /dev/null +++ b/mblt_vision/models/YOLOv8l-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8l-obb + filename: yolov8l-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8l-pose.yaml b/mblt_vision/models/YOLOv8l-pose.yaml new file mode 100644 index 0000000..ea366b9 --- /dev/null +++ b/mblt_vision/models/YOLOv8l-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8l-pose + filename: yolov8l-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8l-seg.yaml b/mblt_vision/models/YOLOv8l-seg.yaml new file mode 100644 index 0000000..c34ac0f --- /dev/null +++ b/mblt_vision/models/YOLOv8l-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8l-seg + filename: yolov8l-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8l.yaml b/mblt_vision/models/YOLOv8l.yaml new file mode 100644 index 0000000..62609bf --- /dev/null +++ b/mblt_vision/models/YOLOv8l.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8l + filename: yolov8l.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8m-cls.yaml b/mblt_vision/models/YOLOv8m-cls.yaml new file mode 100644 index 0000000..37c82f5 --- /dev/null +++ b/mblt_vision/models/YOLOv8m-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8m-cls + filename: yolov8m-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLOv8m-face.yaml b/mblt_vision/models/YOLOv8m-face.yaml new file mode 100644 index 0000000..135340c --- /dev/null +++ b/mblt_vision/models/YOLOv8m-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8m-face + filename: yolov8m-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8m-obb.yaml b/mblt_vision/models/YOLOv8m-obb.yaml new file mode 100644 index 0000000..fcb5307 --- /dev/null +++ b/mblt_vision/models/YOLOv8m-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8m-obb + filename: yolov8m-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8m-pose.yaml b/mblt_vision/models/YOLOv8m-pose.yaml new file mode 100644 index 0000000..098fc23 --- /dev/null +++ b/mblt_vision/models/YOLOv8m-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8m-pose + filename: yolov8m-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8m-seg.yaml b/mblt_vision/models/YOLOv8m-seg.yaml new file mode 100644 index 0000000..10f5b81 --- /dev/null +++ b/mblt_vision/models/YOLOv8m-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8m-seg + filename: yolov8m-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8m.yaml b/mblt_vision/models/YOLOv8m.yaml new file mode 100644 index 0000000..06fa61e --- /dev/null +++ b/mblt_vision/models/YOLOv8m.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8m + filename: yolov8m.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8n-cls.yaml b/mblt_vision/models/YOLOv8n-cls.yaml new file mode 100644 index 0000000..6a8f357 --- /dev/null +++ b/mblt_vision/models/YOLOv8n-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8n-cls + filename: yolov8n-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLOv8n-face.yaml b/mblt_vision/models/YOLOv8n-face.yaml new file mode 100644 index 0000000..5c7ee1f --- /dev/null +++ b/mblt_vision/models/YOLOv8n-face.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8n-face + filename: yolov8n-face.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: face_detection + dataset: widerface + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8n-obb.yaml b/mblt_vision/models/YOLOv8n-obb.yaml new file mode 100644 index 0000000..2a827b8 --- /dev/null +++ b/mblt_vision/models/YOLOv8n-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8n-obb + filename: yolov8n-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8n-pose.yaml b/mblt_vision/models/YOLOv8n-pose.yaml new file mode 100644 index 0000000..34f5d6f --- /dev/null +++ b/mblt_vision/models/YOLOv8n-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8n-pose + filename: yolov8n-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8n-seg.yaml b/mblt_vision/models/YOLOv8n-seg.yaml new file mode 100644 index 0000000..94920f6 --- /dev/null +++ b/mblt_vision/models/YOLOv8n-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8n-seg + filename: yolov8n-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8n.yaml b/mblt_vision/models/YOLOv8n.yaml new file mode 100644 index 0000000..1ea9850 --- /dev/null +++ b/mblt_vision/models/YOLOv8n.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8n + filename: yolov8n.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8s-cls.yaml b/mblt_vision/models/YOLOv8s-cls.yaml new file mode 100644 index 0000000..a70abb9 --- /dev/null +++ b/mblt_vision/models/YOLOv8s-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8s-cls + filename: yolov8s-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLOv8s-obb.yaml b/mblt_vision/models/YOLOv8s-obb.yaml new file mode 100644 index 0000000..755b321 --- /dev/null +++ b/mblt_vision/models/YOLOv8s-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8s-obb + filename: yolov8s-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8s-pose.yaml b/mblt_vision/models/YOLOv8s-pose.yaml new file mode 100644 index 0000000..be4d4f5 --- /dev/null +++ b/mblt_vision/models/YOLOv8s-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8s-pose + filename: yolov8s-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8s-seg.yaml b/mblt_vision/models/YOLOv8s-seg.yaml new file mode 100644 index 0000000..26fc679 --- /dev/null +++ b/mblt_vision/models/YOLOv8s-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8s-seg + filename: yolov8s-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8s.yaml b/mblt_vision/models/YOLOv8s.yaml new file mode 100644 index 0000000..f705f91 --- /dev/null +++ b/mblt_vision/models/YOLOv8s.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8s + filename: yolov8s.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8x-cls.yaml b/mblt_vision/models/YOLOv8x-cls.yaml new file mode 100644 index 0000000..bb7242e --- /dev/null +++ b/mblt_vision/models/YOLOv8x-cls.yaml @@ -0,0 +1,23 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8x-cls + filename: yolov8x-cls.mxq + revision: main + pre_cfg: + Reader: + style: pil + Resize: + size: 224 + interpolation: bilinear + CenterCrop: + size: + - 224 + - 224 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: image_classification + dataset: imagenet + softmax: true diff --git a/mblt_vision/models/YOLOv8x-obb.yaml b/mblt_vision/models/YOLOv8x-obb.yaml new file mode 100644 index 0000000..0eccaf9 --- /dev/null +++ b/mblt_vision/models/YOLOv8x-obb.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8x-obb + filename: yolov8x-obb.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1024 + - 1024 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: obb + dataset: dotav1 + nl: 3 + n_extra: 1 + reg_max: 16 + conf_thres: 0.01 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8x-pose-p6.yaml b/mblt_vision/models/YOLOv8x-pose-p6.yaml new file mode 100644 index 0000000..e42b723 --- /dev/null +++ b/mblt_vision/models/YOLOv8x-pose-p6.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8x-pose-p6 + filename: yolov8x-pose-p6.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 1280 + - 1280 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 4 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8x-pose.yaml b/mblt_vision/models/YOLOv8x-pose.yaml new file mode 100644 index 0000000..694d47e --- /dev/null +++ b/mblt_vision/models/YOLOv8x-pose.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8x-pose + filename: yolov8x-pose.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: pose_estimation + dataset: coco + nl: 3 + n_extra: 51 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8x-seg.yaml b/mblt_vision/models/YOLOv8x-seg.yaml new file mode 100644 index 0000000..ddbc1dd --- /dev/null +++ b/mblt_vision/models/YOLOv8x-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8x-seg + filename: yolov8x-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv8x.yaml b/mblt_vision/models/YOLOv8x.yaml new file mode 100644 index 0000000..808e7f9 --- /dev/null +++ b/mblt_vision/models/YOLOv8x.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv8x + filename: yolov8x.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv9c-seg.yaml b/mblt_vision/models/YOLOv9c-seg.yaml new file mode 100644 index 0000000..4eb0730 --- /dev/null +++ b/mblt_vision/models/YOLOv9c-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv9c-seg + filename: yolov9c-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv9c.yaml b/mblt_vision/models/YOLOv9c.yaml new file mode 100644 index 0000000..3c73d9a --- /dev/null +++ b/mblt_vision/models/YOLOv9c.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv9c + filename: yolov9c.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv9e-seg.yaml b/mblt_vision/models/YOLOv9e-seg.yaml new file mode 100644 index 0000000..a645374 --- /dev/null +++ b/mblt_vision/models/YOLOv9e-seg.yaml @@ -0,0 +1,28 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv9e-seg + filename: yolov9e-seg.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: instance_segmentation + dataset: coco + nl: 3 + n_extra: 32 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv9e.yaml b/mblt_vision/models/YOLOv9e.yaml new file mode 100644 index 0000000..e92b7b0 --- /dev/null +++ b/mblt_vision/models/YOLOv9e.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv9e + filename: yolov9e.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv9m.yaml b/mblt_vision/models/YOLOv9m.yaml new file mode 100644 index 0000000..b83d2a9 --- /dev/null +++ b/mblt_vision/models/YOLOv9m.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv9m + filename: yolov9m.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv9s.yaml b/mblt_vision/models/YOLOv9s.yaml new file mode 100644 index 0000000..cd4c9af --- /dev/null +++ b/mblt_vision/models/YOLOv9s.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv9s + filename: yolov9s.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/models/YOLOv9t.yaml b/mblt_vision/models/YOLOv9t.yaml new file mode 100644 index 0000000..cf0166b --- /dev/null +++ b/mblt_vision/models/YOLOv9t.yaml @@ -0,0 +1,27 @@ +DEFAULT: + file_cfg: + repo_id: mobilint/YOLOv9t + filename: yolov9t.mxq + revision: main + pre_cfg: + Reader: + style: numpy + LetterBox: + img_size: + - 640 + - 640 + SetOrder: + shape: HWC + Normalize: + style: cv + post_cfg: + task: object_detection + dataset: coco + nl: 3 + reg_max: 16 + conf_thres: 0.001 + iou_thres: 0.7 +TURBO: + update: DEFAULT + file_cfg: + revision: TURBO diff --git a/mblt_vision/obb/__init__.py b/mblt_vision/obb/__init__.py new file mode 100644 index 0000000..fc20fd7 --- /dev/null +++ b/mblt_vision/obb/__init__.py @@ -0,0 +1,39 @@ +"""Oriented-bounding-box Vision model exports.""" + +from __future__ import annotations + +from .._compat import create_model_class + +__all__: list[str] = [ + "YOLO11lOBB", + "YOLO11mOBB", + "YOLO11nOBB", + "YOLO11sOBB", + "YOLO11xOBB", + "YOLO26lOBB", + "YOLO26mOBB", + "YOLO26nOBB", + "YOLO26sOBB", + "YOLO26xOBB", + "YOLOv8lOBB", + "YOLOv8mOBB", + "YOLOv8nOBB", + "YOLOv8sOBB", + "YOLOv8xOBB", +] + +YOLO11lOBB = create_model_class("YOLO11lOBB", __name__) +YOLO11mOBB = create_model_class("YOLO11mOBB", __name__) +YOLO11nOBB = create_model_class("YOLO11nOBB", __name__) +YOLO11sOBB = create_model_class("YOLO11sOBB", __name__) +YOLO11xOBB = create_model_class("YOLO11xOBB", __name__) +YOLO26lOBB = create_model_class("YOLO26lOBB", __name__) +YOLO26mOBB = create_model_class("YOLO26mOBB", __name__) +YOLO26nOBB = create_model_class("YOLO26nOBB", __name__) +YOLO26sOBB = create_model_class("YOLO26sOBB", __name__) +YOLO26xOBB = create_model_class("YOLO26xOBB", __name__) +YOLOv8lOBB = create_model_class("YOLOv8lOBB", __name__) +YOLOv8mOBB = create_model_class("YOLOv8mOBB", __name__) +YOLOv8nOBB = create_model_class("YOLOv8nOBB", __name__) +YOLOv8sOBB = create_model_class("YOLOv8sOBB", __name__) +YOLOv8xOBB = create_model_class("YOLOv8xOBB", __name__) diff --git a/mblt_vision/object_detection/__init__.py b/mblt_vision/object_detection/__init__.py new file mode 100644 index 0000000..3e2cd2f --- /dev/null +++ b/mblt_vision/object_detection/__init__.py @@ -0,0 +1,153 @@ +"""Object detection model exports.""" + +from __future__ import annotations + +from .._compat import create_model_class + +__all__: list[str] = [ + "YOLO11l", + "YOLO11m", + "YOLO11n", + "YOLO11s", + "YOLO11x", + "YOLO12l", + "YOLO12m", + "YOLO12n", + "YOLO12s", + "YOLO12x", + "YOLO26l", + "YOLO26lDistill", + "YOLO26m", + "YOLO26mDistill", + "YOLO26n", + "YOLO26nDistill", + "YOLO26s", + "YOLO26sDistill", + "YOLO26x", + "YOLO26xDistill", + "YOLOv3", + "YOLOv3_spp", + "YOLOv3_sppu", + "YOLOv3_tiny", + "YOLOv3_tinyu", + "YOLOv3u", + "YOLOv5l", + "YOLOv5l6", + "YOLOv5l6u", + "YOLOv5lu", + "YOLOv5m", + "YOLOv5m6", + "YOLOv5m6u", + "YOLOv5mu", + "YOLOv5n", + "YOLOv5n6", + "YOLOv5n6u", + "YOLOv5nu", + "YOLOv5s", + "YOLOv5s6", + "YOLOv5s6u", + "YOLOv5su", + "YOLOv5x", + "YOLOv5x6", + "YOLOv5x6u", + "YOLOv5xu", + "YOLOv7", + "YOLOv7d6", + "YOLOv7e6", + "YOLOv7e6e", + "YOLOv7w6", + "YOLOv7x", + "YOLOv8l", + "YOLOv8m", + "YOLOv8n", + "YOLOv8s", + "YOLOv8x", + "GELANc", + "GELANe", + "GELANm", + "GELANs", + "YOLOv9c", + "YOLOv9e", + "YOLOv9m", + "YOLOv9s", + "YOLOv9t", + "YOLOv10b", + "YOLOv10l", + "YOLOv10m", + "YOLOv10n", + "YOLOv10s", + "YOLOv10x", +] + +YOLO11l = create_model_class("YOLO11l", __name__) +YOLO11m = create_model_class("YOLO11m", __name__) +YOLO11n = create_model_class("YOLO11n", __name__) +YOLO11s = create_model_class("YOLO11s", __name__) +YOLO11x = create_model_class("YOLO11x", __name__) +YOLO12l = create_model_class("YOLO12l", __name__) +YOLO12m = create_model_class("YOLO12m", __name__) +YOLO12n = create_model_class("YOLO12n", __name__) +YOLO12s = create_model_class("YOLO12s", __name__) +YOLO12x = create_model_class("YOLO12x", __name__) +YOLO26l = create_model_class("YOLO26l", __name__) +YOLO26lDistill = create_model_class("YOLO26lDistill", __name__) +YOLO26m = create_model_class("YOLO26m", __name__) +YOLO26mDistill = create_model_class("YOLO26mDistill", __name__) +YOLO26n = create_model_class("YOLO26n", __name__) +YOLO26nDistill = create_model_class("YOLO26nDistill", __name__) +YOLO26s = create_model_class("YOLO26s", __name__) +YOLO26sDistill = create_model_class("YOLO26sDistill", __name__) +YOLO26x = create_model_class("YOLO26x", __name__) +YOLO26xDistill = create_model_class("YOLO26xDistill", __name__) +YOLOv3 = create_model_class("YOLOv3", __name__) +YOLOv3_spp = create_model_class("YOLOv3_spp", __name__) +YOLOv3_sppu = create_model_class("YOLOv3_sppu", __name__) +YOLOv3_tiny = create_model_class("YOLOv3_tiny", __name__) +YOLOv3_tinyu = create_model_class("YOLOv3_tinyu", __name__) +YOLOv3u = create_model_class("YOLOv3u", __name__) +YOLOv5l = create_model_class("YOLOv5l", __name__) +YOLOv5l6 = create_model_class("YOLOv5l6", __name__) +YOLOv5l6u = create_model_class("YOLOv5l6u", __name__) +YOLOv5lu = create_model_class("YOLOv5lu", __name__) +YOLOv5m = create_model_class("YOLOv5m", __name__) +YOLOv5m6 = create_model_class("YOLOv5m6", __name__) +YOLOv5m6u = create_model_class("YOLOv5m6u", __name__) +YOLOv5mu = create_model_class("YOLOv5mu", __name__) +YOLOv5n = create_model_class("YOLOv5n", __name__) +YOLOv5n6 = create_model_class("YOLOv5n6", __name__) +YOLOv5n6u = create_model_class("YOLOv5n6u", __name__) +YOLOv5nu = create_model_class("YOLOv5nu", __name__) +YOLOv5s = create_model_class("YOLOv5s", __name__) +YOLOv5s6 = create_model_class("YOLOv5s6", __name__) +YOLOv5s6u = create_model_class("YOLOv5s6u", __name__) +YOLOv5su = create_model_class("YOLOv5su", __name__) +YOLOv5x = create_model_class("YOLOv5x", __name__) +YOLOv5x6 = create_model_class("YOLOv5x6", __name__) +YOLOv5x6u = create_model_class("YOLOv5x6u", __name__) +YOLOv5xu = create_model_class("YOLOv5xu", __name__) +YOLOv7 = create_model_class("YOLOv7", __name__) +YOLOv7d6 = create_model_class("YOLOv7d6", __name__) +YOLOv7e6 = create_model_class("YOLOv7e6", __name__) +YOLOv7e6e = create_model_class("YOLOv7e6e", __name__) +YOLOv7w6 = create_model_class("YOLOv7w6", __name__) +YOLOv7x = create_model_class("YOLOv7x", __name__) +YOLOv8l = create_model_class("YOLOv8l", __name__) +YOLOv8m = create_model_class("YOLOv8m", __name__) +YOLOv8n = create_model_class("YOLOv8n", __name__) +YOLOv8s = create_model_class("YOLOv8s", __name__) +YOLOv8x = create_model_class("YOLOv8x", __name__) +GELANc = create_model_class("GELANc", __name__) +GELANe = create_model_class("GELANe", __name__) +GELANm = create_model_class("GELANm", __name__) +GELANs = create_model_class("GELANs", __name__) +YOLOv9c = create_model_class("YOLOv9c", __name__) +YOLOv9e = create_model_class("YOLOv9e", __name__) +YOLOv9m = create_model_class("YOLOv9m", __name__) +YOLOv9s = create_model_class("YOLOv9s", __name__) +YOLOv9t = create_model_class("YOLOv9t", __name__) +YOLOv10b = create_model_class("YOLOv10b", __name__) +YOLOv10l = create_model_class("YOLOv10l", __name__) +YOLOv10m = create_model_class("YOLOv10m", __name__) +YOLOv10n = create_model_class("YOLOv10n", __name__) +YOLOv10s = create_model_class("YOLOv10s", __name__) +YOLOv10x = create_model_class("YOLOv10x", __name__) diff --git a/mblt_vision/pose_estimation/__init__.py b/mblt_vision/pose_estimation/__init__.py new file mode 100644 index 0000000..ab136d7 --- /dev/null +++ b/mblt_vision/pose_estimation/__init__.py @@ -0,0 +1,41 @@ +"""Pose estimation model exports.""" + +from __future__ import annotations + +from .._compat import create_model_class + +__all__: list[str] = [ + "YOLO11lPose", + "YOLO11mPose", + "YOLO11nPose", + "YOLO11sPose", + "YOLO11xPose", + "YOLO26lPose", + "YOLO26mPose", + "YOLO26nPose", + "YOLO26sPose", + "YOLO26xPose", + "YOLOv8lPose", + "YOLOv8mPose", + "YOLOv8nPose", + "YOLOv8sPose", + "YOLOv8xPose", + "YOLOv8xPoseP6", +] + +YOLO11lPose = create_model_class("YOLO11lPose", __name__) +YOLO11mPose = create_model_class("YOLO11mPose", __name__) +YOLO11nPose = create_model_class("YOLO11nPose", __name__) +YOLO11sPose = create_model_class("YOLO11sPose", __name__) +YOLO11xPose = create_model_class("YOLO11xPose", __name__) +YOLO26lPose = create_model_class("YOLO26lPose", __name__) +YOLO26mPose = create_model_class("YOLO26mPose", __name__) +YOLO26nPose = create_model_class("YOLO26nPose", __name__) +YOLO26sPose = create_model_class("YOLO26sPose", __name__) +YOLO26xPose = create_model_class("YOLO26xPose", __name__) +YOLOv8lPose = create_model_class("YOLOv8lPose", __name__) +YOLOv8mPose = create_model_class("YOLOv8mPose", __name__) +YOLOv8nPose = create_model_class("YOLOv8nPose", __name__) +YOLOv8sPose = create_model_class("YOLOv8sPose", __name__) +YOLOv8xPose = create_model_class("YOLOv8xPose", __name__) +YOLOv8xPoseP6 = create_model_class("YOLOv8xPoseP6", __name__) diff --git a/mblt_vision/semantic_segmentation/__init__.py b/mblt_vision/semantic_segmentation/__init__.py new file mode 100644 index 0000000..6fd6ff5 --- /dev/null +++ b/mblt_vision/semantic_segmentation/__init__.py @@ -0,0 +1,29 @@ +"""Semantic segmentation model exports.""" + +from __future__ import annotations + +from .._compat import create_model_class + +__all__: list[str] = [ + "YOLO26lSem", + "YOLO26lSemADE20K", + "YOLO26mSem", + "YOLO26mSemADE20K", + "YOLO26nSem", + "YOLO26nSemADE20K", + "YOLO26sSem", + "YOLO26sSemADE20K", + "YOLO26xSem", + "YOLO26xSemADE20K", +] + +YOLO26lSem = create_model_class("YOLO26lSem", __name__) +YOLO26lSemADE20K = create_model_class("YOLO26lSemADE20K", __name__) +YOLO26mSem = create_model_class("YOLO26mSem", __name__) +YOLO26mSemADE20K = create_model_class("YOLO26mSemADE20K", __name__) +YOLO26nSem = create_model_class("YOLO26nSem", __name__) +YOLO26nSemADE20K = create_model_class("YOLO26nSemADE20K", __name__) +YOLO26sSem = create_model_class("YOLO26sSem", __name__) +YOLO26sSemADE20K = create_model_class("YOLO26sSemADE20K", __name__) +YOLO26xSem = create_model_class("YOLO26xSem", __name__) +YOLO26xSemADE20K = create_model_class("YOLO26xSemADE20K", __name__) diff --git a/mblt_vision/utils/__init__.py b/mblt_vision/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mblt_vision/utils/datasets/__init__.py b/mblt_vision/utils/datasets/__init__.py new file mode 100644 index 0000000..dec390f --- /dev/null +++ b/mblt_vision/utils/datasets/__init__.py @@ -0,0 +1,28 @@ +"""Dataset metadata helpers used by Vision result rendering.""" + +from .ade20k import get_ade20k_palette +from .cityscapes import get_cityscapes_palette +from .coco import ( + get_coco_class_num, + get_coco_det_palette, + get_coco_keypoint_palette, + get_coco_label, + get_coco_limb_palette, + get_coco_pose_skeleton, +) +from .dotav1 import get_dotav1_label, get_dotav1_palette +from .imagenet import get_imagenet_label + +__all__ = [ + "get_ade20k_palette", + "get_cityscapes_palette", + "get_coco_class_num", + "get_coco_det_palette", + "get_coco_keypoint_palette", + "get_coco_label", + "get_coco_limb_palette", + "get_coco_pose_skeleton", + "get_dotav1_label", + "get_dotav1_palette", + "get_imagenet_label", +] diff --git a/mblt_vision/utils/datasets/ade20k.py b/mblt_vision/utils/datasets/ade20k.py new file mode 100644 index 0000000..8075db9 --- /dev/null +++ b/mblt_vision/utils/datasets/ade20k.py @@ -0,0 +1,41 @@ +""" +ADE20K dataset constants and utilities. +""" + +from __future__ import annotations + +ADE20K_PALETTE_BGR = [ + (255, 42, 4), + (235, 219, 11), + (243, 243, 243), + (183, 223, 0), + (104, 31, 17), + (221, 111, 255), + (79, 68, 255), + (0, 237, 204), + (68, 243, 0), + (255, 0, 189), + (255, 180, 0), + (186, 0, 221), + (255, 255, 0), + (0, 192, 38), + (179, 255, 1), + (255, 36, 125), + (104, 0, 123), + (108, 27, 255), + (47, 109, 252), + (11, 255, 162), +] + + +def get_ade20k_palette(idx: int) -> tuple[int, int, int]: + """Get an ADE20K visualization color in OpenCV BGR order. + + Args: + idx: ADE20K class index. + + Returns: + BGR color tuple. Colors repeat when the index exceeds the palette length. + """ + + return ADE20K_PALETTE_BGR[idx % len(ADE20K_PALETTE_BGR)] diff --git a/mblt_vision/utils/datasets/cityscapes.py b/mblt_vision/utils/datasets/cityscapes.py new file mode 100644 index 0000000..161a666 --- /dev/null +++ b/mblt_vision/utils/datasets/cityscapes.py @@ -0,0 +1,66 @@ +"""Cityscapes dataset visualization utilities.""" + +from __future__ import annotations + +import numpy as np + +# OpenCV images use BGR channel order. These are the official Cityscapes train-ID +# colors converted from RGB so familiar classes retain their standard appearance. +CITYSCAPES_PALETTE_BGR: tuple[tuple[int, int, int], ...] = ( + (128, 64, 128), # road + (232, 35, 244), # sidewalk + (70, 70, 70), # building + (156, 102, 102), # wall + (153, 153, 190), # fence + (153, 153, 153), # pole + (30, 170, 250), # traffic light + (0, 220, 220), # traffic sign + (35, 142, 107), # vegetation + (152, 251, 152), # terrain + (180, 130, 70), # sky + (60, 20, 220), # person + (0, 0, 255), # rider + (142, 0, 0), # car + (70, 0, 0), # truck + (100, 60, 0), # bus + (100, 80, 0), # train + (230, 0, 0), # motorcycle + (32, 11, 119), # bicycle +) + +CITYSCAPES_SOURCE_IDS: tuple[int, ...] = ( + 7, + 8, + 11, + 12, + 13, + 17, + *range(19, 29), + 31, + 32, + 33, +) +CITYSCAPES_SOURCE_TO_TRAIN_ID = np.full(256, 255, dtype=np.uint8) +CITYSCAPES_SOURCE_TO_TRAIN_ID[list(CITYSCAPES_SOURCE_IDS)] = np.arange( + 19, dtype=np.uint8 +) + + +def get_cityscapes_palette(class_id: int) -> tuple[int, int, int]: + """Return the BGR visualization color for a Cityscapes train ID. + + Args: + class_id: Cityscapes train ID in the range 0 through 18. + + Returns: + The corresponding color in OpenCV BGR order. + + Raises: + ValueError: If ``class_id`` is outside the Cityscapes train-ID range. + """ + + if not 0 <= class_id < len(CITYSCAPES_PALETTE_BGR): + raise ValueError( + f"Cityscapes class ID must be in [0, {len(CITYSCAPES_PALETTE_BGR) - 1}]." + ) + return CITYSCAPES_PALETTE_BGR[class_id] diff --git a/mblt_vision/utils/datasets/coco.py b/mblt_vision/utils/datasets/coco.py new file mode 100644 index 0000000..b2f06e4 --- /dev/null +++ b/mblt_vision/utils/datasets/coco.py @@ -0,0 +1,243 @@ +""" +COCO dataset constants and utilities. +""" + +from __future__ import annotations + +from ...datasets import get_dataset_category_ids, get_dataset_class_names + +DET_PALETTE = [ + (220, 20, 60), + (119, 11, 32), + (0, 0, 142), + (0, 0, 230), + (106, 0, 228), + (0, 60, 100), + (0, 80, 100), + (0, 0, 70), + (0, 0, 192), + (250, 170, 30), + (100, 170, 30), + (220, 220, 0), + (175, 116, 175), + (250, 0, 30), + (165, 42, 42), + (255, 77, 255), + (0, 226, 252), + (182, 182, 255), + (0, 82, 0), + (120, 166, 157), + (110, 76, 0), + (174, 57, 255), + (199, 100, 0), + (72, 0, 118), + (255, 179, 240), + (0, 125, 92), + (209, 0, 151), + (188, 208, 182), + (0, 220, 176), + (255, 99, 164), + (92, 0, 73), + (133, 129, 255), + (78, 180, 255), + (0, 228, 0), + (174, 255, 243), + (45, 89, 255), + (134, 134, 103), + (145, 148, 174), + (255, 208, 186), + (197, 226, 255), + (171, 134, 1), + (109, 63, 54), + (207, 138, 255), + (151, 0, 95), + (9, 80, 61), + (84, 105, 51), + (74, 65, 105), + (166, 196, 102), + (208, 195, 210), + (255, 109, 65), + (0, 143, 149), + (179, 0, 194), + (209, 99, 106), + (5, 121, 0), + (227, 255, 205), + (147, 186, 208), + (153, 69, 1), + (3, 95, 161), + (163, 255, 0), + (119, 0, 170), + (0, 182, 199), + (0, 165, 120), + (183, 130, 88), + (95, 32, 0), + (130, 114, 135), + (110, 129, 133), + (166, 74, 118), + (219, 142, 185), + (79, 210, 114), + (178, 90, 62), + (65, 70, 15), + (127, 167, 115), + (59, 105, 106), + (142, 108, 45), + (196, 172, 0), + (95, 54, 80), + (128, 76, 255), + (201, 57, 1), + (246, 0, 122), + (191, 162, 208), +] + +POSE_PALETTE = [ + [255, 128, 0], + [255, 153, 51], + [255, 178, 102], + [230, 230, 0], + [255, 153, 255], + [153, 204, 255], + [255, 102, 255], + [255, 51, 255], + [102, 178, 255], + [51, 153, 255], + [255, 153, 153], + [255, 102, 102], + [255, 51, 51], + [153, 255, 153], + [102, 255, 102], + [51, 255, 51], + [0, 255, 0], + [0, 0, 255], + [255, 0, 0], + [255, 255, 255], +] + +POSE_SKELETON = [ + [16, 14], + [14, 12], + [17, 15], + [15, 13], + [12, 13], + [6, 12], + [7, 13], + [6, 7], + [6, 8], + [7, 9], + [8, 10], + [9, 11], + [2, 3], + [1, 2], + [1, 3], + [2, 4], + [3, 5], + [4, 6], + [5, 7], +] + +LIMB_PALETTE = [ + POSE_PALETTE[i] + for i in [9, 9, 9, 9, 7, 7, 7, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16] +] +KEYPOINT_PALETTE = [ + POSE_PALETTE[i] for i in [16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9] +] + + +def get_coco_class_num() -> int: + """Get the number of COCO classes. + + Returns: + int: The number of COCO classes. + """ + return len(get_dataset_class_names("coco")) + + +def get_coco_label(idx: int) -> str: + """ + Get the COCO class label for a given index. + + Args: + idx (int): Zero-based class index. + + Returns: + str: Descriptive label for the class (e.g., "person"). + + Raises: + ValueError: If index is out of range. + """ + if not 0 <= idx < get_coco_class_num(): + raise ValueError( + f"COCO class index must be in [0, {get_coco_class_num() - 1}], got {idx}." + ) + + return get_dataset_class_names("coco")[idx] + + +def get_coco_inv(idx: int) -> int: + """Get the original COCO category ID for a given model output index. + + Args: + idx (int): Model output class index. + + Returns: + int: Original COCO category ID. + """ + return get_dataset_category_ids("coco")[idx] + + +def get_coco_det_palette(idx: int) -> tuple[int, int, int]: + """ + Get a distinct color for a COCO detection class. + + Args: + idx (int): Class index. + + Returns: + tuple[int, int, int]: (R, G, B) color tuple. + """ + return DET_PALETTE[idx] + + +def get_coco_pose_palette(idx: int) -> list[int]: + """Get the COCO pose palette by index. + + Args: + idx (int): The index of the COCO pose palette. + + Returns: + list[int]: The COCO pose palette as an [R, G, B] list. + """ + return POSE_PALETTE[idx] + + +def get_coco_pose_skeleton() -> list[list[int]]: + """Get the COCO pose skeleton. + + Returns: + list[list[int]]: The COCO pose skeleton. + """ + return POSE_SKELETON + + +def get_coco_limb_palette(idx: int) -> list[int]: + """Get the COCO limb palette by index. + + Args: + idx (int): The index of the COCO limb palette. + + Returns: + list[int]: The COCO limb palette as an [R, G, B] list. + """ + return LIMB_PALETTE[idx] + + +def get_coco_keypoint_palette(idx: int) -> list[int]: + """Get the COCO keypoint palette by index. + + Args: + idx (int): The index of the COCO keypoint palette. + + Returns: + list[int]: The COCO keypoint palette as an [R, G, B] list. + """ + return KEYPOINT_PALETTE[idx] diff --git a/mblt_vision/utils/datasets/dotav1.py b/mblt_vision/utils/datasets/dotav1.py new file mode 100644 index 0000000..6e5464f --- /dev/null +++ b/mblt_vision/utils/datasets/dotav1.py @@ -0,0 +1,59 @@ +""" +DOTAv1 dataset constants and utilities. +""" + +from __future__ import annotations + +from ...datasets import get_dataset_class_names + +DOTAV1_PALETTE_BGR = [ + (220, 20, 60), + (119, 11, 32), + (0, 0, 142), + (0, 0, 230), + (106, 0, 228), + (0, 60, 100), + (0, 80, 100), + (0, 0, 70), + (0, 0, 192), + (250, 170, 30), + (100, 170, 30), + (220, 220, 0), + (175, 116, 175), + (250, 0, 30), + (165, 42, 42), +] + + +def get_dotav1_class_num() -> int: + """Returns the number of DOTAv1 classes. + + Returns: + Number of DOTAv1 classes. + """ + return len(get_dataset_class_names("dotav1")) + + +def get_dotav1_palette(index: int) -> tuple[int, int, int]: + """Returns the DOTAv1 visualization color for a class index. + + Args: + index: Class index. + + Returns: + OpenCV BGR color tuple. + """ + + return DOTAV1_PALETTE_BGR[index % len(DOTAV1_PALETTE_BGR)] + + +def get_dotav1_label(index: int) -> str: + """Returns the DOTAv1 class name for a class index. + + Args: + index: Class index. + + Returns: + DOTAv1 class name. + """ + return get_dataset_class_names("dotav1")[index] diff --git a/mblt_vision/utils/datasets/imagenet.py b/mblt_vision/utils/datasets/imagenet.py new file mode 100644 index 0000000..b5a7596 --- /dev/null +++ b/mblt_vision/utils/datasets/imagenet.py @@ -0,0 +1,29 @@ +""" +ImageNet dataset constants and utilities. +""" + +from __future__ import annotations + +from ...datasets import get_dataset_class_names + + +def get_imagenet_label(idx: int) -> str: + """Get the descriptive label for an ImageNet class index. + + Args: + idx (int): ImageNet class index (0-999). + + Returns: + str: Primary class label string. + """ + label_str = get_dataset_class_names("imagenet")[idx] + return label_str.split(",")[0] + + +def get_imagenet_class_num() -> int: + """Get the total number of classes in the ImageNet dataset. + + Returns: + int: Total number of ImageNet classes. + """ + return len(get_dataset_class_names("imagenet")) diff --git a/mblt_vision/utils/labels.py b/mblt_vision/utils/labels.py new file mode 100644 index 0000000..4119905 --- /dev/null +++ b/mblt_vision/utils/labels.py @@ -0,0 +1,112 @@ +"""Small dataset metadata tables needed by output conversion.""" + +from __future__ import annotations + +COCO_CATEGORY_IDS = ( + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 27, + 28, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 67, + 70, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 84, + 85, + 86, + 87, + 88, + 89, + 90, +) + +DOTAV1_LABELS = ( + "plane", + "ship", + "storage-tank", + "baseball-diamond", + "tennis-court", + "basketball-court", + "ground-track-field", + "harbor", + "bridge", + "large-vehicle", + "small-vehicle", + "helicopter", + "roundabout", + "soccer-ball-field", + "swimming-pool", +) + + +def get_coco_inv(index: int) -> int: + return COCO_CATEGORY_IDS[index] + + +def get_dotav1_label(index: int) -> str: + return DOTAV1_LABELS[index] diff --git a/mblt_vision/utils/letterbox.py b/mblt_vision/utils/letterbox.py new file mode 100644 index 0000000..b2ac02c --- /dev/null +++ b/mblt_vision/utils/letterbox.py @@ -0,0 +1,118 @@ +"""Shared forward and inverse geometry for aspect-preserving letterboxing.""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import TypeAlias + +RatioPad: TypeAlias = tuple[tuple[float, float], tuple[float, float]] + + +@dataclass(frozen=True) +class LetterBoxGeometry: + """Geometry shared by letterbox preprocessing and output restoration.""" + + input_shape: tuple[int, int] + original_shape: tuple[int, int] + ratio: float + resized_shape: tuple[int, int] + pad: tuple[int, int] + + @classmethod + def from_shapes( + cls, + input_shape: tuple[int, int], + original_shape: tuple[int, int], + ) -> LetterBoxGeometry: + """Calculate YOLO-style centered letterbox geometry. + + Args: + input_shape: Target shape as ``(height, width)``. + original_shape: Source shape as ``(height, width)``. + + Returns: + Calculated resize ratio, resized shape, and top-left padding. + """ + + input_height, input_width = input_shape + original_height, original_width = original_shape + ratio = min(input_height / original_height, input_width / original_width) + resized_height = int(round(original_height * ratio)) + resized_width = int(round(original_width * ratio)) + left = int(round((input_width - resized_width) / 2 - 0.1)) + top = int(round((input_height - resized_height) / 2 - 0.1)) + return cls( + input_shape=input_shape, + original_shape=original_shape, + ratio=ratio, + resized_shape=(resized_height, resized_width), + pad=(left, top), + ) + + @property + def ratio_pad(self) -> RatioPad: + """Return metadata consumed by inverse letterbox operations.""" + + return ((self.ratio, self.ratio), self.pad) + + @property + def borders(self) -> tuple[int, int, int, int]: + """Return OpenCV border widths as ``(top, bottom, left, right)``.""" + + input_height, input_width = self.input_shape + resized_height, resized_width = self.resized_shape + left, top = self.pad + return ( + top, + input_height - resized_height - top, + left, + input_width - resized_width - left, + ) + + def crop_bounds( + self, + output_shape: tuple[int, int], + pad: tuple[float, float] | None = None, + ) -> tuple[int, int, int, int]: + """Scale inverse-letterbox crop bounds to a dense output shape. + + Args: + output_shape: Dense output shape as ``(height, width)``. + pad: Optional exact top-left padding metadata as ``(x, y)``. + + Returns: + Crop bounds as ``(top, bottom, left, right)``. + """ + + output_height, output_width = output_shape + input_height, input_width = self.input_shape + scale_x = output_width / input_width + scale_y = output_height / input_height + pad_x, pad_y = self.pad if pad is None else pad + left = int(round(pad_x * scale_x)) + top = int(round(pad_y * scale_y)) + resized_height, resized_width = self.resized_shape + right = left + int(round(resized_width * scale_x)) + bottom = top + int(round(resized_height * scale_y)) + return top, bottom, left, right + + +def resolve_ratio_pad( + input_shape: tuple[int, int], + original_shape: tuple[int, int], + ratio_pad: RatioPad | None = None, +) -> RatioPad: + """Return supplied letterbox metadata or derive it from image shapes. + + Args: + input_shape: Letterboxed shape as ``(height, width)``. + original_shape: Source shape as ``(height, width)``. + ratio_pad: Optional metadata recorded during preprocessing. + + Returns: + Resize ratios and top-left padding as ``((ratio_x, ratio_y), (pad_x, pad_y))``. + """ + + if ratio_pad is not None: + return ratio_pad + return LetterBoxGeometry.from_shapes(input_shape, original_shape).ratio_pad diff --git a/mblt_vision/utils/postprocess/__init__.py b/mblt_vision/utils/postprocess/__init__.py new file mode 100644 index 0000000..e5090d0 --- /dev/null +++ b/mblt_vision/utils/postprocess/__init__.py @@ -0,0 +1,9 @@ +""" +Postprocessing utilities for vision models. +""" + +from .build_post import build_postprocess +from .depth_post import DepthPost +from .semantic_seg_post import SemanticSegPost + +__all__ = ["DepthPost", "SemanticSegPost", "build_postprocess"] diff --git a/mblt_vision/utils/postprocess/_letterbox.py b/mblt_vision/utils/postprocess/_letterbox.py new file mode 100644 index 0000000..eaaddaf --- /dev/null +++ b/mblt_vision/utils/postprocess/_letterbox.py @@ -0,0 +1,102 @@ +"""Private helpers shared by dense prediction postprocessors.""" + +from __future__ import annotations + +from collections.abc import Sequence +from typing import Any + +import torch + +from ..letterbox import LetterBoxGeometry, RatioPad, resolve_ratio_pad +from .common import normalize_ratio_pads + + +def get_letterbox_input_shape( + pre_cfg: dict[str, Any], + requirement_name: str, + size_name: str | None = None, +) -> tuple[int, int]: + """Validate and return a dense task's configured letterbox input shape. + + Args: + pre_cfg: Model preprocessing configuration. + requirement_name: Task name used when LetterBox is absent. + size_name: Optional shorter name used for invalid-size errors. + + Returns: + Configured input height and width. + + Raises: + ValueError: If LetterBox or its two-item image size is missing or invalid. + """ + + letterbox_cfg = pre_cfg.get("LetterBox") + if not isinstance(letterbox_cfg, dict) or "img_size" not in letterbox_cfg: + raise ValueError( + f"{requirement_name} requires a LetterBox configuration in pre_cfg." + ) + image_size = letterbox_cfg["img_size"] + if not isinstance(image_size, list) or len(image_size) != 2: + raise ValueError( + f"{size_name or requirement_name} LetterBox img_size must be a two-item [height, width] list." + ) + return int(image_size[0]), int(image_size[1]) + + +def resolve_ratio_pads( + ratio_pad: RatioPad | Sequence[RatioPad | None] | None, + batch_size: int, + shapes: Sequence[tuple[int, int]], + input_shape: tuple[int, int], +) -> list[RatioPad]: + """Normalize letterbox metadata and derive values missing from a dense task batch. + + Args: + ratio_pad: Shared or per-image letterbox metadata. + batch_size: Number of images in the output batch. + shapes: Original image shapes. + input_shape: Configured model input shape. + + Returns: + One resolved ratio/padding pair per batch item. + + Raises: + ValueError: If ratio/padding metadata is invalid for the batch. + """ + + pads = normalize_ratio_pads(ratio_pad, batch_size) + return [ + resolve_ratio_pad(input_shape, shape, pad) for pad, shape in zip(pads, shapes) + ] + + +def crop_letterbox( + output: torch.Tensor, + shape: tuple[int, int], + ratio_pad: RatioPad, + input_shape: tuple[int, int], + task_name: str, +) -> torch.Tensor: + """Crop letterbox padding from a dense two-dimensional output. + + Args: + output: Dense two-dimensional model output. + shape: Original image height and width. + ratio_pad: Resize ratio and padding applied during preprocessing. + input_shape: Configured model input height and width. + task_name: Task label used in validation errors. + + Returns: + Output with letterbox padding removed. + + Raises: + ValueError: If inverse letterboxing produces an empty crop. + """ + + geometry = LetterBoxGeometry.from_shapes(input_shape, shape) + output_shape = (int(output.shape[0]), int(output.shape[1])) + top, bottom, left, right = geometry.crop_bounds(output_shape, pad=ratio_pad[1]) + cropped = output[top:bottom, left:right] + if cropped.numel() == 0: + raise ValueError(f"{task_name} letterbox restoration produced an empty crop.") + return cropped diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py new file mode 100644 index 0000000..d141939 --- /dev/null +++ b/mblt_vision/utils/postprocess/base.py @@ -0,0 +1,639 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod +from collections.abc import Sequence +from typing import Any, cast + +import numpy as np +import torch + +from ..._tasks import normalize_vision_task +from ..preprocess._validation import normalize_image_size +from ..types import ListTensorLike, TensorLike +from .common import RatioPad, nmsout2eval, process_mask_upsample + + +class PostBase(ABC): + """Abstract base class for postprocessing.""" + + def __init__(self) -> None: + """Initialize PostBase.""" + super().__init__() + self.device = torch.device("cpu") + + @abstractmethod + def __call__( + self, x: TensorLike | ListTensorLike, *args: Any, **kwargs: Any + ) -> Any: + """Executes postprocessing on the model output. + + Args: + x (TensorLike | ListTensorLike): Input tensor or list of tensors from the model. + *args (Any): Additional positional arguments depending on the specific task. + **kwargs (Any): Additional keyword arguments depending on the specific task. + + Returns: + Any: Postprocessed results, format depends on the specific task. + """ + pass + + def to(self, device: str | torch.device) -> None: + """Move the operations to the specified device. + Args: + device (str | torch.device): Device to move the operations to. + """ + if isinstance(device, str): + self.device = torch.device(device) + elif isinstance(device, torch.device): + self.device = device + else: + raise TypeError(f"Got unexpected type for device={type(device)}.") + for name, value in self.__dict__.items(): + if isinstance(value, torch.Tensor): + setattr(self, name, value.to(self.device)) + + +class YOLODetectionPostBase(PostBase): + """Base class for YOLO postprocessing.""" + + NC_BY_DATASET_TASK: dict[tuple[str, str], int] = { + ("coco", "object_detection"): 80, + ("coco", "instance_segmentation"): 80, + ("coco", "pose_estimation"): 1, + ("dotav1", "obb"): 15, + ("widerface", "face_detection"): 1, + } + DEFAULT_NC_BY_TASK: dict[str, int] = { + "object_detection": 80, + "instance_segmentation": 80, + "pose_estimation": 1, + "obb": 15, + "face_detection": 1, + } + + def __init__( + self, pre_cfg: dict[str, Any], post_cfg: dict[str, Any], **kwargs + ) -> None: + """Initialize the common YOLO detection postprocessor. + + Args: + pre_cfg (dict): Preprocessing configuration. + post_cfg (dict): Postprocessing configuration. + **kwargs: Optional runtime overrides for postprocess behavior. + + Raises: + TypeError: If unsupported keyword overrides are provided. + """ + super().__init__() + letterbox_cfg = pre_cfg.get("LetterBox") + if letterbox_cfg is None: + raise ValueError("LetterBox configuration should be provided in pre_cfg") + img_size = letterbox_cfg["img_size"] + self.imh: int + self.imw: int + self.imh, self.imw = normalize_image_size( + img_size, name="pre_cfg.LetterBox.img_size" + ) + task = post_cfg.get("task") + if task is None: + raise ValueError("task should be provided in post_cfg") + self.task = normalize_vision_task(task) + task_key = self.task + dataset = post_cfg.get("dataset") + self.dataset = dataset.lower() if isinstance(dataset, str) else None + dataset_nc = ( + self.NC_BY_DATASET_TASK.get((self.dataset, task_key)) + if self.dataset is not None + else None + ) + configured_nc = kwargs.pop("nc", post_cfg.get("nc")) + if ( + configured_nc is not None + and dataset_nc is not None + and int(configured_nc) != dataset_nc + ): + raise ValueError( + f"nc={configured_nc} conflicts with dataset '{self.dataset}' and task '{self.task}', " + f"which require nc={dataset_nc}." + ) + default_nc = ( + dataset_nc + if dataset_nc is not None + else self.DEFAULT_NC_BY_TASK.get(task_key) + ) + nc = configured_nc if configured_nc is not None else default_nc + if nc is None: + raise ValueError( + f"nc should be provided in post_cfg or kwargs for task '{self.task}'." + ) + self.nc: int = int(nc) + self.anchors: list[Any] | torch.Tensor | None = post_cfg.get( + "anchors", None + ) # anchor coordinates + self.stride: list[int] | torch.Tensor + self.nl: int + self.na: int + self.conf_thres: float + self.iou_thres: float + self.inv_conf_thres: float + + self.e2e = bool(kwargs.pop("e2e", post_cfg.get("e2e", True))) + if kwargs: + unexpected = ", ".join(sorted(kwargs)) + raise TypeError(f"Unexpected YOLO postprocess kwargs: {unexpected}") + + if self.anchors is None: + nl = post_cfg.get("nl") + if nl is None: + raise ValueError("nl should be provided in post_cfg") + self.nl = nl + if self.nl == 2: + self.stride = [2 ** (4 + i) for i in range(self.nl)] + else: + self.stride = [2 ** (3 + i) for i in range(self.nl)] + self.make_anchors() + else: + if not isinstance(self.anchors, list): + raise TypeError( + f"anchors must be a list, got {type(self.anchors).__name__}." + ) + self.nl = len(self.anchors) + self.na = len(self.anchors[0]) // 2 + self.n_extra: int = post_cfg.get("n_extra", 0) + self.conf_thres = float(post_cfg.get("conf_thres", 0.25)) + self.iou_thres = float(post_cfg.get("iou_thres", 0.7)) + self.set_threshold() + + def anchors_as_list(self) -> list[Any]: + """Return anchors as the configured anchor list.""" + if not isinstance(self.anchors, list): + raise TypeError( + "anchors should be a list for anchor-based YOLO postprocessing." + ) + return self.anchors + + def anchors_as_tensor(self) -> torch.Tensor: + """Return anchors as the generated anchor-point tensor.""" + if not isinstance(self.anchors, torch.Tensor): + raise TypeError( + "anchors should be a tensor for anchor-free YOLO postprocessing." + ) + return cast(torch.Tensor, self.anchors) + + def stride_as_tensor(self) -> torch.Tensor: + """Return strides as the generated stride tensor.""" + if not isinstance(self.stride, torch.Tensor): + raise TypeError( + "stride should be a tensor for anchor-free YOLO postprocessing." + ) + return cast(torch.Tensor, self.stride) + + def __call__( + self, + x: TensorLike | ListTensorLike, + conf_thres: float | None = None, + iou_thres: float | None = None, + multi_label: bool = False, + ) -> list[Any]: + """Executes YOLO postprocessing. + + Includes rearranging, decoding, and NMS. + + Args: + x (TensorLike | ListTensorLike): Raw model outputs. + conf_thres (float | None): Confidence threshold for detection. + iou_thres (float | None): IoU threshold for NMS. + multi_label: Whether to emit one candidate for every class above the + confidence threshold. Validation uses this to match Ultralytics. + + Returns: + list: List of detections per image. + """ + self.set_threshold(conf_thres, iou_thres) + final_detections, proto_outs = self.extract_final_outputs(x) + if final_detections is not None: + if proto_outs is not None: + return self.masking(final_detections, proto_outs) + return final_detections + checked_input = self.check_input(x) + + if not self.e2e: + return self.non_e2e(checked_input) + + predictions, proto_outs = self._pre_process(checked_input) + + nms_output = ( + self.nms_multilabel(predictions) if multi_label else self.nms(predictions) + ) + + if proto_outs is not None: + return self.masking(nms_output, proto_outs) + return nms_output + + def non_e2e(self, x: list[torch.Tensor]) -> Any: + """Return the export-style postprocess output when end-to-end mode is disabled. + + Args: + x: Checked raw model outputs. + + Returns: + Export-style tensors whose batch dimensions remain intact. + """ + if len(x) == 1: + return self.conversion(x) + return self.rearrange(x) + + def _pre_process( + self, + x: list[torch.Tensor], + ) -> tuple[Any, torch.Tensor | list[torch.Tensor] | None]: + """Protected method to preprocess inputs into (predictions, prototypes). + + Args: + x: List of input tensors. + + Returns: + Tuple of (predictions, prototypes). Prototypes may be None. + """ + if len(x) == 1: + converted = self.conversion(x) + if not isinstance(converted, torch.Tensor): + raise TypeError( + "conversion should return a tensor for single-output YOLO postprocessing." + ) + return self.filter_conversion(converted), None + rearranged = self.rearrange(x) + return self.decode(rearranged), None + + def nmsout2eval( + self, + nms_out: Any, + img1_shape: tuple[int, int], + img0_shape: tuple[int, int] | list[tuple[int, int]], + ratio_pad: RatioPad | list[RatioPad | None] | None = None, + ) -> tuple[Any, ...]: + """Converts NMS output to evaluation format (labels, boxes, scores). + + Args: + nms_out: NMS output (tensor or list of tensors). + img1_shape: Resized image shape (height, width). + img0_shape: Original image shape(s). + + Returns: + Tuple: task-specific results. + - Detection: (labels_list, boxes_list, scores_list) + - Segmentation/Pose: (labels_list, boxes_list, scores_list, extra_list) + """ + + return nmsout2eval(nms_out, img1_shape, img0_shape, ratio_pads=ratio_pad) + + def extract_final_outputs( + self, + x: TensorLike | ListTensorLike, + ) -> tuple[list[torch.Tensor] | None, torch.Tensor | None]: + """Extract already-decoded ONNX-style detections when present. + + Args: + x: Raw postprocess input. + + Returns: + A tuple of ``(detections, prototypes)`` when the input already contains + final detections, otherwise ``(None, None)``. + """ + + final_det_dim = 6 + self.n_extra + + if isinstance(x, Sequence): + if not x: + return None, None + + normalized_detections: np.ndarray | torch.Tensor | None = None + normalized_proto: torch.Tensor | None = None + for output in x: + if not isinstance(output, (np.ndarray, torch.Tensor)): + continue + if normalized_detections is None: + normalized_detections = self._normalize_final_detection_tensor( + output, final_det_dim + ) + if normalized_detections is not None: + continue + if normalized_proto is None: + try: + normalized_proto = self._normalize_proto_batch(output) + except ValueError: + continue + + if normalized_detections is not None: + return self._final_detection_batches( + normalized_detections + ), normalized_proto + return None, None + + normalized_x = self._normalize_final_detection_tensor(x, final_det_dim) + if normalized_x is not None: + return self._final_detection_batches(normalized_x), None + + return None, None + + def _normalize_final_detection_tensor( + self, + x: TensorLike, + final_det_dim: int, + ) -> np.ndarray | torch.Tensor | None: + """Return a batched final-detection tensor when ``x`` already contains decoded rows.""" + + while x.ndim == 4 and 1 in (x.shape[0], x.shape[1]): + if x.shape[1] == 1: + x = x[:, 0] + elif x.shape[0] == 1: + x = x[0] + if x.ndim == 2 and x.shape[-1] == final_det_dim: + x = x[None] + if x.ndim == 3 and x.shape[-1] == final_det_dim: + return x + if x.ndim == 3 and x.shape[1] == final_det_dim: + if isinstance(x, np.ndarray): + return np.swapaxes(x, 1, 2) + return x.transpose(1, 2) + + return None + + def _final_detection_batches( + self, x: np.ndarray | torch.Tensor + ) -> list[torch.Tensor]: + """Convert batched final detections to the internal per-image tensor list.""" + + if isinstance(x, np.ndarray): + tensor = torch.from_numpy(x).to(self.device) + else: + tensor = x.to(self.device) + return [batch[batch[:, 4] > self.conf_thres] for batch in tensor] + + def _normalize_proto_batch( + self, proto_outs: np.ndarray | torch.Tensor + ) -> torch.Tensor: + """Normalize prototype masks to ``(B, H, W, C)`` layout.""" + + if isinstance(proto_outs, np.ndarray): + proto = torch.from_numpy(proto_outs).to(self.device) + else: + proto = proto_outs.to(self.device) + + if proto.ndim != 4: + raise ValueError( + f"Expected 4D prototype tensor, got shape {tuple(proto.shape)}." + ) + if proto.shape[-1] == self.n_extra: + return proto + if proto.shape[1] == self.n_extra: + return proto.permute(0, 2, 3, 1) + raise ValueError(f"Unsupported prototype tensor shape {tuple(proto.shape)}.") + + def make_anchors(self, offset: float = 0.5) -> None: + """ + Generate anchor points and stride tensors based on image size and strides. + Args: + offset (float, optional): Offset for anchor points. Defaults to 0.5. + """ + anchor_points, stride_tensor = [], [] + strides = [2 ** (3 + i) for i in range(self.nl)] + if self.nl == 2: + strides = [strd * 2 for strd in strides] + for strd in strides: + ny, nx = self.imh // strd, self.imw // strd + sy = torch.arange(ny, dtype=torch.float32, device=self.device) + offset + sx = torch.arange(nx, dtype=torch.float32, device=self.device) + offset + yv, xv = torch.meshgrid(sy, sx, indexing="ij") + anchor_points.append(torch.stack((xv, yv), -1).reshape(-1, 2)) + stride_tensor.append( + torch.full((ny * nx, 1), strd, dtype=torch.float32, device=self.device) + ) + self.anchors = torch.cat(anchor_points, dim=0).permute(1, 0) + self.stride = torch.cat(stride_tensor, dim=0).permute(1, 0) + + def set_threshold( + self, conf_thres: float | None = None, iou_thres: float | None = None + ) -> None: + """Set confidence and IoU thresholds. + Args: + conf_thres (float, optional): Confidence threshold. + iou_thres (float, optional): IoU threshold. + """ + conf_thres = self.conf_thres if conf_thres is None else conf_thres + iou_thres = self.iou_thres if iou_thres is None else iou_thres + if isinstance(conf_thres, bool) or not isinstance(conf_thres, (int, float)): + raise TypeError( + f"conf_thres must be numeric, got {type(conf_thres).__name__}." + ) + if isinstance(iou_thres, bool) or not isinstance(iou_thres, (int, float)): + raise TypeError( + f"iou_thres must be numeric, got {type(iou_thres).__name__}." + ) + if not 0 < conf_thres < 1: + raise ValueError(f"conf_thres must be in (0, 1), got {conf_thres}.") + if not 0 < iou_thres < 1: + raise ValueError(f"iou_thres must be in (0, 1), got {iou_thres}.") + self.conf_thres = float(conf_thres) + self.iou_thres = float(iou_thres) + self.inv_conf_thres = -np.log(1 / conf_thres - 1) + + def check_input(self, x: TensorLike | ListTensorLike) -> list[torch.Tensor]: + """Check and prepare input tensors. + Args: + x (TensorLike | ListTensorLike): Input tensor or list of tensors. + Returns: + list[torch.Tensor]: List of tensors on the correct device. + """ + if isinstance(x, np.ndarray): + tensors = [torch.from_numpy(x).to(self.device)] + elif isinstance(x, torch.Tensor): + tensor_input = cast(torch.Tensor, x) + tensors = [tensor_input.to(self.device)] + else: + if not isinstance(x, Sequence): + raise TypeError(f"Got unexpected type for x={type(x)}.") + if all(isinstance(xi, np.ndarray) for xi in x): + tensors = [torch.from_numpy(xi).to(self.device) for xi in x] + elif all(isinstance(xi, torch.Tensor) for xi in x): + torch_inputs = cast(Sequence[torch.Tensor], x) + tensors = [xi.to(self.device) for xi in torch_inputs] + else: + raise TypeError(f"Got unexpected element type for x[0]={type(x[0])}.") + return self.check_dim(tensors) + + def check_dim(self, x: list[torch.Tensor]) -> list[torch.Tensor]: + """Check tensor dimensions. + Args: + x (list[torch.Tensor]): List of tensors. + Returns: + list[torch.Tensor]: List of tensors with corrected dimensions. + """ + y = [] + for xi in x: + if xi.ndim == 3: + xi = xi.unsqueeze(0) + elif xi.ndim in (4, 5): + pass + else: + raise ValueError(f"Got unexpected dim for xi={xi.ndim}.") + y.append(xi) + return y + + def normalize_split_head( + self, x: torch.Tensor, expected_channels: set[int] + ) -> torch.Tensor: + """Normalize a split detection head to ``(B, C, H, W)`` layout. + + This accepts the channel-last tensors produced by ONNX export flows as + well as the channel-first tensors commonly returned by MXQ/NPU inference. + + Args: + x: Raw split-head tensor. + expected_channels: Valid channel sizes for the current head group. + + Returns: + The normalized tensor in ``(B, C, H, W)`` format. + + Raises: + ValueError: If the tensor shape cannot be interpreted. + """ + while x.ndim > 4: + singleton_dims = [idx for idx, size in enumerate(x.shape) if size == 1] + if not singleton_dims: + raise ValueError( + f"Expected up to 4D split-head tensor, got shape {tuple(x.shape)}." + ) + x = x.squeeze(singleton_dims[0]) + if x.ndim == 3: + x = x.unsqueeze(0) + if x.ndim != 4: + raise ValueError( + f"Expected 3D or 4D split-head tensor, got shape {tuple(x.shape)}." + ) + + if x.shape[1] in expected_channels and x.shape[-1] not in expected_channels: + return x + if x.shape[-1] in expected_channels and x.shape[1] not in expected_channels: + return x.permute(0, 3, 1, 2) + if x.shape[1] in expected_channels and x.shape[-1] in expected_channels: + return x + + raise ValueError( + f"Could not infer split-head layout for shape {tuple(x.shape)} with expected channels {expected_channels}." + ) + + @abstractmethod + def rearrange(self, x: list[torch.Tensor]) -> Any: + """Rearranges raw model outputs into a task-specific intermediate form. + + Args: + x: Raw output tensors from the model. + + Returns: + A task-specific intermediate representation used by ``decode``. + """ + + @abstractmethod + def decode(self, x: Any) -> Any: + """Decodes rearranged outputs into a family-specific batched representation. + + Args: + x: Rearranged output tensors. + + Returns: + Decoded detections in the canonical representation for that YOLO family. + """ + + def conversion( + self, x: list[torch.Tensor] + ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: + """Converts raw outputs into a task-specific intermediate form. + + Args: + x: Input tensors. + + Returns: + A converted detection tensor, or a ``(detections, prototypes)`` tuple + for segmentation-style subclasses. + """ + if len(x) != 1: + raise ValueError( + f"Expected exactly one converted model output, got {len(x)}." + ) + return x[0] + + @abstractmethod + def filter_conversion(self, x: torch.Tensor) -> list[torch.Tensor]: + """Filters converted outputs into per-image detections before NMS. + + Args: + x: Converted output tensor. + + Returns: + Filtered detections for each image in the batch. + """ + + @abstractmethod + def nms(self, x: Any) -> list[torch.Tensor]: + """Performs non-maximum suppression on decoded detections. + + Args: + x: Decoded detections for each image. + + Returns: + Detections after NMS for each image in the batch. + """ + + def nms_multilabel(self, x: Any) -> list[torch.Tensor]: + """Perform validation NMS with all above-threshold class candidates. + + Args: + x: Decoded detections for each image. + + Returns: + Detections after NMS for each image in the batch. + """ + return self.nms(x) + + def masking( + self, x: list[torch.Tensor], proto_outs: torch.Tensor | list[torch.Tensor] + ) -> list[list[torch.Tensor]]: + """Apply prototype masks to detection results. + + Args: + x: Detection results. + proto_outs: Prototype outputs for masks. + + Returns: + list: Detection results with masks. + """ + masks = [] + for pred, proto in zip(x, proto_outs): + if proto.ndim != 3: + raise ValueError( + f"Expected 3D prototype tensor, got shape {tuple(proto.shape)}." + ) + if proto.shape[-1] == self.n_extra: + proto = proto.permute(2, 0, 1) + elif proto.shape[0] != self.n_extra: + raise ValueError( + f"Unsupported prototype tensor shape {tuple(proto.shape)}." + ) + if len(pred) == 0: + masks.append( + torch.zeros( + (0, self.imh, self.imw), dtype=torch.float32, device=self.device + ) + ) + continue + masks.append( + process_mask_upsample( + proto, pred[:, 6:], pred[:, :4], [self.imh, self.imw] + ) + ) + return [[xi, mask] for xi, mask in zip(x, masks)] + + +# Name retained from the first standalone draft. +YOLOPostBase = YOLODetectionPostBase diff --git a/mblt_vision/utils/postprocess/build_post.py b/mblt_vision/utils/postprocess/build_post.py new file mode 100644 index 0000000..305ac44 --- /dev/null +++ b/mblt_vision/utils/postprocess/build_post.py @@ -0,0 +1,120 @@ +""" +Postprocessing builder. +""" + +from __future__ import annotations + +from ..._tasks import normalize_vision_task +from .base import PostBase +from .cls_post import ClsPost +from .depth_post import DepthPost +from .semantic_seg_post import SemanticSegPost +from .yolo_anchor_post import YOLOAnchorDetectionPost, YOLOAnchorSegPost +from .yolo_anchorless_post import ( + YOLOAnchorlessDetectionPost, + YOLOAnchorlessOBBPost, + YOLOAnchorlessPosePost, + YOLOAnchorlessSegPost, +) +from .yolo_dflfree_post import ( + YOLODFLFreeDetectionPost, + YOLODFLFreeOBBPost, + YOLODFLFreePosePost, + YOLODFLFreeSegPost, +) +from .yolo_nmsfree_post import YOLONMSFreeDetectionPost + + +def build_postprocess( + pre_cfg: dict, + post_cfg: dict, + **kwargs: object, +) -> PostBase: + """Builds a postprocessing object based on the model configuration. + + Args: + pre_cfg (dict): Preprocessing configuration from the model info. + post_cfg (dict): Postprocessing configuration from the model info. + Must contain "task" and relevant flags for the specific task. + **kwargs: Optional runtime overrides passed to the postprocessor. + + Returns: + PostBase: An instance of a postprocessing class tailored for the task. + + Raises: + NotImplementedError: If the specified task is not supported. + """ + task = normalize_vision_task(post_cfg["task"]) + if task == "image_classification": + return ClsPost(pre_cfg, post_cfg) + if task == "depth_estimation": + return DepthPost(pre_cfg, post_cfg) + if task == "semantic_segmentation": + return SemanticSegPost(pre_cfg, post_cfg) + if task in {"object_detection", "face_detection"}: + if post_cfg.get("anchors", False): + return YOLOAnchorDetectionPost( + pre_cfg, + post_cfg, + **kwargs, + ) + if post_cfg.get("dflfree", False): # nms free is only available for detection + return YOLODFLFreeDetectionPost( + pre_cfg, + post_cfg, + **kwargs, + ) + if post_cfg.get("nmsfree", False): + return YOLONMSFreeDetectionPost( + pre_cfg, + post_cfg, + **kwargs, + ) + return YOLOAnchorlessDetectionPost( + pre_cfg, + post_cfg, + **kwargs, + ) + if task == "instance_segmentation": + if post_cfg.get("anchors", False): + return YOLOAnchorSegPost( + pre_cfg, + post_cfg, + **kwargs, + ) + if post_cfg.get("dflfree", False): + return YOLODFLFreeSegPost( + pre_cfg, + post_cfg, + **kwargs, + ) + return YOLOAnchorlessSegPost( + pre_cfg, + post_cfg, + **kwargs, + ) + if task == "pose_estimation": + if post_cfg.get("dflfree", False): + return YOLODFLFreePosePost( + pre_cfg, + post_cfg, + **kwargs, + ) + return YOLOAnchorlessPosePost( + pre_cfg, + post_cfg, + **kwargs, + ) + if task == "obb": + if post_cfg.get("dflfree", False): + return YOLODFLFreeOBBPost( + pre_cfg, + post_cfg, + **kwargs, + ) + return YOLOAnchorlessOBBPost( + pre_cfg, + post_cfg, + **kwargs, + ) + raise NotImplementedError(f"Task {post_cfg['task']} is not implemented yet") diff --git a/mblt_vision/utils/postprocess/cls_post.py b/mblt_vision/utils/postprocess/cls_post.py new file mode 100644 index 0000000..2ad4730 --- /dev/null +++ b/mblt_vision/utils/postprocess/cls_post.py @@ -0,0 +1,69 @@ +""" +Classification postprocessing. +""" + +from __future__ import annotations + +from collections.abc import Sequence + +import numpy as np +import torch + +from ..types import ListTensorLike, TensorLike +from .base import PostBase + + +class ClsPost(PostBase): + """Post-processing for image classification models. + + Typically applies softmax to logits and ensures correct output shape. + """ + + def __init__(self, pre_cfg: dict, post_cfg: dict) -> None: + """Initializes the classification post-processing. + + Args: + pre_cfg (dict): Preprocessing configuration. + post_cfg (dict): Postprocessing configuration. + """ + super().__init__() + self.softmax = post_cfg.get("softmax", False) + + def __call__(self, x: TensorLike | ListTensorLike) -> torch.Tensor: + """Executes classification post-processing. + + Typically applies softmax to convert logits to probabilities. + + Args: + x (TensorLike | ListTensorLike): Raw model outputs. + Expected to be pre-softmax logits. + + Returns: + torch.Tensor: Softmax probabilities of shape (N, C). + """ + if isinstance(x, Sequence): + if len(x) != 1: + raise ValueError( + f"Classification postprocessing expects one output tensor, got {len(x)}." + ) + x = x[0] + if isinstance(x, np.ndarray): + x = torch.from_numpy(x).to(self.device) + elif isinstance(x, torch.Tensor): + x = x.to(self.device) + else: + raise TypeError(f"Got unexpected type for x={type(x)}.") + if x.ndim == 2: + x = x.unsqueeze(-1).unsqueeze(-1) + elif x.ndim == 3: + x = x.unsqueeze(0) + if x.ndim != 4: + raise ValueError( + f"Classification output must be convertible to NCHW, got shape {tuple(x.shape)}." + ) + x = x.flatten( + 1 + ) # Classification heads may retain singleton spatial dimensions. + if self.softmax: + return x + return x.softmax(dim=-1) diff --git a/mblt_vision/utils/postprocess/common.py b/mblt_vision/utils/postprocess/common.py new file mode 100644 index 0000000..0579aa8 --- /dev/null +++ b/mblt_vision/utils/postprocess/common.py @@ -0,0 +1,1446 @@ +"""Common postprocessing utility functions.""" + +from __future__ import annotations + +import math +from collections.abc import Callable, Sequence +from typing import Any, TypeGuard, overload + +import cv2 +import numpy as np +import torch +import torch.nn.functional as F + +from ..labels import get_coco_inv, get_dotav1_label +from ..letterbox import RatioPad, resolve_ratio_pad + + +def _is_ratio_pad(value: object) -> TypeGuard[RatioPad]: + """Return whether a value has the nested numeric shape of one RatioPad.""" + + return ( + isinstance(value, tuple) + and len(value) == 2 + and all( + isinstance(pair, tuple) + and len(pair) == 2 + and all(isinstance(component, (int, float)) for component in pair) + for pair in value + ) + ) + + +def normalize_image_shapes( + image_shapes: tuple[int, int] | Sequence[tuple[int, int]], + batch_size: int | None = None, +) -> list[tuple[int, int]]: + """Normalize one or many image shapes to a list, optionally validating its batch size.""" + + if len(image_shapes) == 2 and isinstance(image_shapes[0], int): + shapes = [(int(image_shapes[0]), int(image_shapes[1]))] # type: ignore[index] + if batch_size is not None: + shapes *= batch_size + else: + shapes = [(int(shape[0]), int(shape[1])) for shape in image_shapes] # type: ignore[union-attr] + if batch_size is not None and len(shapes) != batch_size: + raise ValueError(f"Expected {batch_size} image shapes, got {len(shapes)}.") + return shapes + + +def normalize_ratio_pads( + ratio_pads: RatioPad | Sequence[RatioPad | None] | None, + batch_size: int, +) -> list[RatioPad | None]: + """Normalize optional letterbox metadata to a batch-sized list.""" + + if ratio_pads is None: + return [None] * batch_size + if _is_ratio_pad(ratio_pads): + return [ratio_pads] * batch_size + pads: list[RatioPad | None] = [] + for ratio_pad in ratio_pads: + if ratio_pad is None: + pads.append(None) + elif _is_ratio_pad(ratio_pad): + pads.append(ratio_pad) + else: + raise TypeError( + "Each ratio_pad must be a ((ratio_x, ratio_y), (pad_x, pad_y)) tuple or None." + ) + if len(pads) != batch_size: + raise ValueError(f"Expected {batch_size} ratio_pad values, got {len(pads)}.") + return pads + + +# --- Box Conversion Utilities --- +@overload +def xywh2xyxy(x: np.ndarray) -> np.ndarray: + """Converts numpy boxes from ``xywh`` to ``xyxy`` format.""" + + +@overload +def xywh2xyxy(x: torch.Tensor) -> torch.Tensor: + """Converts torch boxes from ``xywh`` to ``xyxy`` format.""" + + +def xywh2xyxy(x: np.ndarray | torch.Tensor) -> np.ndarray | torch.Tensor: + """Converts bounding box coordinates from (cx, cy, w, h) to (x1, y1, x2, y2). + + (x1, y1) is the top-left corner and (x2, y2) is the bottom-right corner. + + Args: + x: Input bounding boxes in (cx, cy, w, h) format. + + Returns: + Bounding boxes in (x1, y1, x2, y2) format. + """ + if isinstance(x, np.ndarray): + y = np.copy(x) + y[..., 0] = x[..., 0] - x[..., 2] / 2 + y[..., 1] = x[..., 1] - x[..., 3] / 2 + y[..., 2] = x[..., 0] + x[..., 2] / 2 + y[..., 3] = x[..., 1] + x[..., 3] / 2 + return y + + if isinstance(x, torch.Tensor): + y = torch.clone(x) + y[..., 0] = x[..., 0] - x[..., 2] / 2 + y[..., 1] = x[..., 1] - x[..., 3] / 2 + y[..., 2] = x[..., 0] + x[..., 2] / 2 + y[..., 3] = x[..., 1] + x[..., 3] / 2 + return y + + raise ValueError("x should be np.ndarray or torch.Tensor") + + +@overload +def xyxy2xywh(x: np.ndarray) -> np.ndarray: + """Converts numpy boxes from ``xyxy`` to ``xywh`` format.""" + + +@overload +def xyxy2xywh(x: torch.Tensor) -> torch.Tensor: + """Converts torch boxes from ``xyxy`` to ``xywh`` format.""" + + +def xyxy2xywh(x: np.ndarray | torch.Tensor) -> np.ndarray | torch.Tensor: + """Converts bounding box coordinates from (x1, y1, x2, y2) to (cx, cy, w, h). + + (x1, y1) is the top-left corner and (x2, y2) is the bottom-right corner. + (cx, cy) is the center of the bounding box. + + Args: + x: Input bounding boxes in (x1, y1, x2, y2) format. + + Returns: + Bounding boxes in (cx, cy, w, h) format. + """ + if isinstance(x, np.ndarray): + y = np.copy(x) + y[..., 0] = (x[..., 0] + x[..., 2]) / 2 + y[..., 1] = (x[..., 1] + x[..., 3]) / 2 + y[..., 2] = x[..., 2] - x[..., 0] + y[..., 3] = x[..., 3] - x[..., 1] + return y + + if isinstance(x, torch.Tensor): + y = torch.clone(x) + y[..., 0] = (x[..., 0] + x[..., 2]) / 2 + y[..., 1] = (x[..., 1] + x[..., 3]) / 2 + y[..., 2] = x[..., 2] - x[..., 0] + y[..., 3] = x[..., 3] - x[..., 1] + return y + + raise ValueError("x should be np.ndarray or torch.Tensor") + + +def dist2bbox( + distance: torch.Tensor, + anchor_points: torch.Tensor, + xywh: bool = True, + dim: int = -1, +) -> torch.Tensor: + """ + Transform distance (ltrb) to bounding box (xywh or xyxy). + Args: + distance (torch.Tensor): Distance from anchor points to box boundaries + (left, top, right, bottom). + anchor_points (torch.Tensor): Anchor points (center points). + xywh (bool, optional): If True, return boxes in (cx, cy, w, h) format. + If False, return in (x1, y1, x2, y2) format. Defaults to True. + dim (int, optional): Dimension along which to chunk the distance tensor. Defaults to -1. + Returns: + torch.Tensor: Transformed bounding boxes. + """ + lt, rb = distance.chunk(2, dim) + x1y1 = anchor_points - lt + x2y2 = anchor_points + rb + if xywh: + return torch.cat(((x1y1 + x2y2) / 2, x2y2 - x1y1), dim) # xywh bbox + else: + return torch.cat((x1y1, x2y2), dim) # xyxy bbox + + +def dist2rbox( + distance: torch.Tensor, + angle: torch.Tensor, + anchor_points: torch.Tensor, + dim: int = -1, +) -> torch.Tensor: + """Decode rotated boxes from anchor-relative distances and angles. + + Args: + distance: Distance tensor in ``ltrb`` format. + angle: Rotation angle tensor in radians. + anchor_points: Anchor center points. + dim: Dimension along which box channels are split. + + Returns: + Rotated boxes in ``cx, cy, w, h`` format. + """ + lt, rb = distance.split(2, dim=dim) + cos_value = torch.cos(angle) + sin_value = torch.sin(angle) + xf, yf = ((rb - lt) / 2).split(1, dim=dim) + x = xf * cos_value - yf * sin_value + y = xf * sin_value + yf * cos_value + xy = torch.cat([x, y], dim=dim) + anchor_points + return torch.cat([xy, lt + rb], dim=dim) + + +@overload +def xywhr2xyxyxyxy(x: np.ndarray) -> np.ndarray: + """Converts numpy OBBs from ``xywhr`` to polygon corners.""" + + +@overload +def xywhr2xyxyxyxy(x: torch.Tensor) -> torch.Tensor: + """Converts torch OBBs from ``xywhr`` to polygon corners.""" + + +def xywhr2xyxyxyxy(x: np.ndarray | torch.Tensor) -> np.ndarray | torch.Tensor: + """Converts oriented boxes from ``cx, cy, w, h, angle`` to four corner points. + + Args: + x: Oriented boxes with shape ``(..., 5)`` and angle in radians. + + Returns: + Corner points with shape ``(..., 4, 2)``. + """ + if isinstance(x, torch.Tensor): + ctr = x[..., :2] + w, h, angle = (x[..., i : i + 1] for i in range(2, 5)) + cos_value = torch.cos(angle) + sin_value = torch.sin(angle) + vec1 = torch.cat([w / 2 * cos_value, w / 2 * sin_value], dim=-1) + vec2 = torch.cat([-h / 2 * sin_value, h / 2 * cos_value], dim=-1) + return torch.stack( + [ + ctr + vec1 + vec2, + ctr + vec1 - vec2, + ctr - vec1 - vec2, + ctr - vec1 + vec2, + ], + dim=-2, + ) + + if isinstance(x, np.ndarray): + ctr = x[..., :2] + w, h, angle = (x[..., i : i + 1] for i in range(2, 5)) + cos_value = np.cos(angle) + sin_value = np.sin(angle) + vec1 = np.concatenate([w / 2 * cos_value, w / 2 * sin_value], axis=-1) + vec2 = np.concatenate([-h / 2 * sin_value, h / 2 * cos_value], axis=-1) + return np.stack( + [ + ctr + vec1 + vec2, + ctr + vec1 - vec2, + ctr - vec1 - vec2, + ctr - vec1 + vec2, + ], + axis=-2, + ) + + raise ValueError("x should be np.ndarray or torch.Tensor") + + +def xyxyxyxy2xywhr(points: np.ndarray | torch.Tensor) -> np.ndarray | torch.Tensor: + """Converts OBB corner points to regularized ``xywhr`` boxes. + + Args: + points: Corner points with shape ``(..., 4, 2)``. + + Returns: + Rotated boxes in ``cx, cy, w, h, angle`` format. + """ + is_torch = isinstance(points, torch.Tensor) + points_np = points.detach().cpu().numpy() if is_torch else np.asarray(points) + flat_points = points_np.reshape(-1, 4, 2).astype(np.float32) + rboxes = [] + for pts in flat_points: + (cx, cy), (w, h), angle = cv2.minAreaRect(pts) + theta = angle / 180 * np.pi + if w < h: + w, h = h, w + theta += np.pi / 2 + while theta >= 3 * np.pi / 4: + theta -= np.pi + while theta < -np.pi / 4: + theta += np.pi + rboxes.append([cx, cy, w, h, theta]) + result_np = np.asarray(rboxes, dtype=points_np.dtype).reshape( + *points_np.shape[:-2], 5 + ) + if is_torch: + return torch.tensor(result_np, device=points.device, dtype=points.dtype) + return result_np + + +def regularize_rboxes(rboxes: torch.Tensor) -> torch.Tensor: + """Regularize rotated boxes to the angle range ``[0, pi / 2)``. + + Args: + rboxes: Rotated boxes in ``xywhr`` format. + + Returns: + Regularized rotated boxes. + """ + x, y, w, h, angle = rboxes.unbind(dim=-1) + swap = angle % math.pi >= math.pi / 2 + regularized_w = torch.where(swap, h, w) + regularized_h = torch.where(swap, w, h) + regularized_angle = angle % (math.pi / 2) + return torch.stack([x, y, regularized_w, regularized_h, regularized_angle], dim=-1) + + +def _get_covariance_matrix( + boxes: torch.Tensor, +) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + """Return Gaussian covariance components for probabilistic OBB IoU.""" + gbbs = torch.cat((boxes[:, 2:4].pow(2) / 12, boxes[:, 4:]), dim=-1) + a, b, c = gbbs.split(1, dim=-1) + cos_value = c.cos() + sin_value = c.sin() + cos2 = cos_value.pow(2) + sin2 = sin_value.pow(2) + return a * cos2 + b * sin2, a * sin2 + b * cos2, (a - b) * cos_value * sin_value + + +def batch_probiou( + obb1: torch.Tensor | np.ndarray, obb2: torch.Tensor | np.ndarray, eps: float = 1e-7 +) -> torch.Tensor: + """Calculate pairwise probabilistic IoU for oriented boxes. + + Args: + obb1: First set of OBBs in ``xywhr`` format with shape ``(N, 5)``. + obb2: Second set of OBBs in ``xywhr`` format with shape ``(M, 5)``. + eps: Small value used for numerical stability. + + Returns: + Pairwise OBB similarities with shape ``(N, M)``. + """ + obb1 = torch.from_numpy(obb1) if isinstance(obb1, np.ndarray) else obb1 + obb2 = torch.from_numpy(obb2) if isinstance(obb2, np.ndarray) else obb2 + obb2 = obb2.to(device=obb1.device, dtype=obb1.dtype) + + x1, y1 = obb1[..., :2].split(1, dim=-1) + x2, y2 = (x.squeeze(-1)[None] for x in obb2[..., :2].split(1, dim=-1)) + a1, b1, c1 = _get_covariance_matrix(obb1) + a2, b2, c2 = (x.squeeze(-1)[None] for x in _get_covariance_matrix(obb2)) + + denominator = (a1 + a2) * (b1 + b2) - (c1 + c2).pow(2) + eps + t1 = ( + ((a1 + a2) * (y1 - y2).pow(2) + (b1 + b2) * (x1 - x2).pow(2)) / denominator + ) * 0.25 + t2 = (((c1 + c2) * (x2 - x1) * (y1 - y2)) / denominator) * 0.5 + t3 = ( + ((a1 + a2) * (b1 + b2) - (c1 + c2).pow(2)) + / ( + 4 + * ((a1 * b1 - c1.pow(2)).clamp_(0) * (a2 * b2 - c2.pow(2)).clamp_(0)).sqrt() + + eps + ) + + eps + ).log() * 0.5 + bd = (t1 + t2 + t3).clamp(eps, 100.0) + hd = (1.0 - (-bd).exp() + eps).sqrt() + return 1 - hd + + +def rotated_nms( + boxes: torch.Tensor, + scores: torch.Tensor, + iou_threshold: float, + iou_func: Callable[[torch.Tensor, torch.Tensor], torch.Tensor] = batch_probiou, +) -> torch.Tensor: + """Apply fast rotated NMS using an upper-triangular pairwise IoU matrix. + + Args: + boxes: OBBs in ``xywhr`` format. + scores: Confidence scores. + iou_threshold: IoU threshold for suppression. + iou_func: Pairwise IoU function. + + Returns: + Kept indices into the original inputs. + """ + if boxes.numel() == 0: + return torch.empty((0,), dtype=torch.int64, device=boxes.device) + sorted_idx = torch.argsort(scores, descending=True) + sorted_boxes = boxes[sorted_idx] + ious = iou_func(sorted_boxes, sorted_boxes).triu_(diagonal=1) + keep = torch.nonzero((ious >= iou_threshold).sum(0) <= 0).squeeze_(-1) + return sorted_idx[keep] + + +# --- Detection Utilities --- +def non_max_suppression( + boxes: torch.Tensor, scores: torch.Tensor, iou_threshold: float, max_output: int +) -> list[int]: + """ + Modified non-maximum suppression (NMS) implemented with PyTorch. + Args: + boxes (torch.Tensor): Bounding boxes in (x1, y1, x2, y2) format. + scores (torch.Tensor): Confidence scores for each box (assumed to be sorted in + descending order). + iou_threshold (float): IoU threshold for suppression. + max_output (int): Maximum number of boxes to keep. + Returns: + list[int]: Indices of the boxes that have been kept after NMS. + """ + if boxes.numel() == 0: + return [] + # Coordinates of bounding boxes + start_x = boxes[:, 0] + start_y = boxes[:, 1] + end_x = boxes[:, 2] + end_y = boxes[:, 3] + picked_indices: list[int] = [] + # Compute areas of bounding boxes + areas = (end_x - start_x) * (end_y - start_y) + # Create an index order (assumed scores are already sorted in descending order) + order = torch.arange(scores.size(0)).to(boxes.device) + while order.numel() > 0 and len(picked_indices) < max_output: + # The index with the highest score + index = int(order[0].item()) + picked_indices.append(index) + order = order[1:] # Remove the index from the order + if order.numel() == 0 or len(picked_indices) >= max_output: + break + # Compute the coordinates of the intersection boxes + x1 = torch.maximum(start_x[index], start_x[order]) + y1 = torch.maximum(start_y[index], start_y[order]) + x2 = torch.minimum(end_x[index], end_x[order]) + y2 = torch.minimum(end_y[index], end_y[order]) + # Compute width and height of the intersection boxes + w = torch.clamp(x2 - x1, min=0.0) + h = torch.clamp(y2 - y1, min=0.0) + intersection = w * h + # Compute the IoU ratio + union = areas[index] + areas[order] - intersection + ratio = intersection / union + # Keep boxes with IoU less than or equal to the threshold + keep = (ratio <= iou_threshold).to(order.device) + order = order[keep] + return picked_indices + + +def dual_topk( + pre_topk: torch.Tensor, + nc: int, + n_extra: int, + max_det: int = 300, + conf_thres: float = 0.25, + score_is_logits: bool = False, +) -> torch.Tensor: + """ + Perform dual-stage topk selection for NMS-free models. + Args: + pre_topk (torch.Tensor): Input tensor of shape (*, 4 + nc + n_extra). + nc (int): Number of classes. + n_extra (int): Number of extra elements (e.g., masks, keypoints). + max_det (int): Maximum detections to keep. Defaults to 300. + conf_thres (float): Confidence threshold. Defaults to 0.25. + score_is_logits (bool): Whether class scores are logits. When true, apply + the confidence cutoff and both rankings before sigmoid, then convert + only selected scores to probabilities. Defaults to false. + Returns: + torch.Tensor: Filtered detections of shape (*, 6 + n_extra). + """ + score_start = 4 + score_end = 4 + nc + score_view = pre_topk[:, score_start:score_end] + threshold = ( + math.log(conf_thres / (1.0 - conf_thres)) if score_is_logits else conf_thres + ) + ic = score_view.amax(dim=-1) > threshold + pre_topk = pre_topk[ic] + + if pre_topk.shape[0] == 0: + return torch.zeros( + (0, 6 + n_extra), dtype=torch.float32, device=pre_topk.device + ) + max_det = min(pre_topk.shape[0], max_det) + + row_index = torch.topk( + pre_topk[:, score_start:score_end].amax(dim=-1), max_det, dim=0 + ).indices + selected = pre_topk[row_index] + top_scores, flat_index = torch.topk( + selected[:, score_start:score_end].reshape(-1), max_det + ) + keep = top_scores > threshold + if not torch.any(keep): + return torch.zeros( + (0, 6 + n_extra), dtype=torch.float32, device=pre_topk.device + ) + + top_scores = top_scores[keep] + flat_index = flat_index[keep] + box_index = flat_index // nc + labels = (flat_index % nc).to(selected.dtype).unsqueeze(-1) + + output = torch.empty( + (top_scores.shape[0], 6 + n_extra), dtype=selected.dtype, device=selected.device + ) + output[:, :4] = selected[box_index, :4] + output[:, 4] = top_scores.sigmoid() if score_is_logits else top_scores + output[:, 5:6] = labels + if n_extra > 0: + output[:, 6:] = selected[box_index, score_end:] + return output + + +def yolo_multilabel_candidates( + detections: torch.Tensor, + nc: int, + n_extra: int, + conf_thres: float, +) -> torch.Tensor: + """Expand YOLO rows into one detection per class score above threshold. + + Args: + detections: Row-major detections with columns ``box, class scores, extra``. + nc: Number of classes. + n_extra: Number of extra channels after class scores. + conf_thres: Confidence threshold. + + Returns: + Canonical detection rows with columns ``box, score, class, extra``. + """ + if detections.numel() == 0: + return torch.zeros( + (0, 6 + n_extra), dtype=torch.float32, device=detections.device + ) + + boxes = detections[:, :4] + scores = detections[:, 4 : 4 + nc] + extra = detections[:, 4 + nc :] + box_index, class_index = torch.where(scores > conf_thres) + if box_index.numel() == 0: + return torch.zeros( + (0, 6 + n_extra), dtype=torch.float32, device=detections.device + ) + + output = torch.empty( + (box_index.numel(), 6 + n_extra), + dtype=detections.dtype, + device=detections.device, + ) + output[:, :4] = boxes[box_index] + output[:, 4] = scores[box_index, class_index] + output[:, 5] = class_index.to(detections.dtype) + if n_extra > 0: + output[:, 6:] = extra[box_index] + return output + + +def normalize_converted_obb_part(x: torch.Tensor, channel_count: int) -> torch.Tensor: + """Normalize a converted OBB output part to ``(batch, anchors, channels)``. + + Args: + x: Converted output part from a model runtime. + channel_count: Expected feature-channel count for this part. + + Returns: + The normalized row-major tensor. + """ + while x.ndim > 3: + singleton_dims = [ + idx for idx, size in enumerate(x.shape) if idx != 0 and size == 1 + ] + if not singleton_dims: + raise ValueError( + f"Expected converted OBB part with up to 3 non-batch dimensions, got {tuple(x.shape)}." + ) + x = x.squeeze(singleton_dims[0]) + if x.ndim == 2: + x = x.unsqueeze(0) + if x.ndim != 3: + raise ValueError( + f"Expected 2D or 3D converted OBB part, got shape {tuple(x.shape)}." + ) + if x.shape[-1] == channel_count: + return x + if x.shape[1] == channel_count: + return x.transpose(1, 2) + raise ValueError( + f"Could not find channel count {channel_count} in converted OBB part with shape {tuple(x.shape)}." + ) + + +def concat_converted_obb_outputs( + x: list[torch.Tensor], nc: int, n_extra: int +) -> torch.Tensor: + """Concatenate converted OBB box, class, and angle outputs in canonical order. + + Args: + x: Converted OBB runtime outputs. + nc: Number of OBB classes. + n_extra: Number of extra OBB channels. + + Returns: + Detections in ``cx, cy, w, h, class scores..., angle`` format. + """ + if len(x) == 1: + return x[0] + if len(x) != 3: + raise ValueError(f"Expected 1 or 3 converted OBB outputs, got {len(x)}.") + + expected_parts = {"box": 4, "scores": nc, "angle": n_extra} + parts: dict[str, torch.Tensor] = {} + for xi in x: + matches: list[tuple[str, torch.Tensor]] = [] + for name, channel_count in expected_parts.items(): + try: + matches.append((name, normalize_converted_obb_part(xi, channel_count))) + except ValueError: + continue + if len(matches) != 1: + match_names = ", ".join(name for name, _ in matches) or "none" + raise ValueError( + f"Could not uniquely classify converted OBB output {tuple(xi.shape)}; matches: {match_names}." + ) + name, normalized = matches[0] + if name in parts: + raise ValueError(f"Duplicate converted OBB {name} output.") + parts[name] = normalized + + missing = [name for name in expected_parts if name not in parts] + if missing: + raise ValueError(f"Missing converted OBB outputs: {', '.join(missing)}.") + return torch.cat([parts["box"], parts["scores"], parts["angle"]], dim=-1) + + +def decode_split_converted_obb_outputs( + x: list[torch.Tensor], + nc: int, + n_extra: int, + anchors: torch.Tensor, + stride: torch.Tensor, +) -> torch.Tensor: + """Decode MXQ decode-true OBB outputs split into score, angle, and coordinate tensors. + + Args: + x: Five converted runtime outputs: class scores, rotation angle, and + coordinate tensors containing decoded ``wh`` and pre-rotated center offsets. + nc: Number of OBB classes. + n_extra: Number of extra OBB channels. + anchors: Anchor points in ``(2, anchors)`` format. + stride: Stride tensor in ``(1, anchors)`` format. + + Returns: + Detections in ``cx, cy, w, h, class scores..., angle`` format. + """ + if n_extra != 1: + raise ValueError(f"Expected one OBB angle channel, got n_extra={n_extra}.") + if len(x) != 5: + raise ValueError(f"Expected five split converted OBB outputs, got {len(x)}.") + + try: + scores = normalize_converted_obb_part(x[0], nc) + angle = normalize_converted_obb_part(x[1], n_extra) + except ValueError: + scores = normalize_converted_obb_part(x[1], nc) + angle = normalize_converted_obb_part(x[0], n_extra) + wh = normalize_converted_obb_part(x[2], 2) + x_offset = normalize_converted_obb_part(x[3], 1) + y_offset = normalize_converted_obb_part(x[4], 1) + cos_value = torch.cos(angle) + sin_value = torch.sin(angle) + center_offset = torch.cat( + [ + x_offset * cos_value - y_offset * sin_value, + x_offset * sin_value + y_offset * cos_value, + ], + dim=-1, + ) + anchors_t = ( + anchors.transpose(0, 1).unsqueeze(0).to(device=wh.device, dtype=wh.dtype) + ) + stride_t = stride.transpose(0, 1).unsqueeze(0).to(device=wh.device, dtype=wh.dtype) + if anchors_t.shape[1] < wh.shape[1]: + raise ValueError( + f"Got {wh.shape[1]} OBB coordinate rows but only {anchors_t.shape[1]} anchors." + ) + anchors_t = anchors_t[:, : wh.shape[1]] + stride_t = stride_t[:, : wh.shape[1]] + box = torch.cat([anchors_t + center_offset, wh], dim=-1) * stride_t + return torch.cat([box, scores, angle], dim=-1) + + +# --- Scaling & Clipping Utilities --- +@overload +def scale_boxes( + img1_shape: tuple[int, int], + boxes: np.ndarray, + img0_shape: tuple[int, int], + ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None, + padding: bool = True, +) -> np.ndarray: ... + + +@overload +def scale_boxes( + img1_shape: tuple[int, int], + boxes: torch.Tensor, + img0_shape: tuple[int, int], + ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None, + padding: bool = True, +) -> torch.Tensor: ... + + +def scale_boxes( + img1_shape: tuple[int, int], + boxes: np.ndarray | torch.Tensor, + img0_shape: tuple[int, int], + ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None, + padding: bool = True, +) -> np.ndarray | torch.Tensor: + """ + Original Source: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/utils/ops.py#L92 + Rescales bounding boxes (in the format of xyxy) from the shape of the image they + were originally specified in (img1_shape) to the shape of a different image (img0_shape). + Args: + img1_shape (tuple): The shape of the image that the bounding boxes are for, + in the format of (height, width). + boxes (np.ndarray | torch.Tensor): the bounding boxes of the objects in the image, + in the format of (x1, y1, x2, y2) + img0_shape (tuple): the shape of the target image, in the format of (height, width). + ratio_pad (tuple): a tuple of (ratio, pad) for scaling the boxes. + If not provided, the ratio and pad will be calculated based on the size + difference between the two images. + padding (bool): If True, assuming the boxes is based on image augmented by + yolo style. If False then do regular rescaling. + Returns: + np.ndarray | torch.Tensor: The scaled bounding boxes, in the format of (x1, y1, x2, y2) + """ + ratio, pad = resolve_ratio_pad(img1_shape, img0_shape, ratio_pad) + gain = ratio[0] + if isinstance(boxes, np.ndarray): + if padding: + boxes[..., [0, 2]] -= pad[0] # x padding + boxes[..., [1, 3]] -= pad[1] # y padding + boxes[..., :4] /= gain + return clip_boxes(boxes, img0_shape) + if padding: + boxes[..., [0, 2]] -= pad[0] # x padding + boxes[..., [1, 3]] -= pad[1] # y padding + boxes[..., :4] /= gain + return clip_boxes(boxes, img0_shape) + + +@overload +def scale_coords( + img1_shape: tuple[int, int], + coords: np.ndarray, + img0_shape: tuple[int, int], + ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None, + padding: bool = True, +) -> np.ndarray: ... + + +@overload +def scale_coords( + img1_shape: tuple[int, int], + coords: torch.Tensor, + img0_shape: tuple[int, int], + ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None, + padding: bool = True, +) -> torch.Tensor: ... + + +def scale_coords( + img1_shape: tuple[int, int], + coords: np.ndarray | torch.Tensor, + img0_shape: tuple[int, int], + ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None, + padding: bool = True, +) -> np.ndarray | torch.Tensor: + """ + Original Source: + https://github.com/ultralytics/ultralytics/blob/main/ultralytics/utils/ops.py#L756 + Args: + img1_shape (tuple): The shape of the image that the bounding boxes are for, in the format of (height, width). + coords (np.ndarray | torch.Tensor): The coordinates of the objects in the image, in the format of (x, y). + img0_shape (tuple): The shape of the target image, in the format of (height, width). + ratio_pad (tuple): a tuple of (ratio, pad) for scaling the boxes. If not provided, the ratio and pad will be + calculated based on the size difference between the two images. + padding (bool): If True, assuming the boxes is based on image augmented by yolo style. If False then do regular + rescaling. + Returns: + np.ndarray | torch.Tensor: The scaled coordinates, in the format of (x, y) + """ + ratio, pad = resolve_ratio_pad(img1_shape, img0_shape, ratio_pad) + gain = ratio[0] + if isinstance(coords, np.ndarray): + if padding: + coords[..., 0] -= pad[0] # x padding + coords[..., 1] -= pad[1] # y padding + coords[..., :2] /= gain + return clip_coords(coords, img0_shape) + if padding: + coords[..., 0] -= pad[0] # x padding + coords[..., 1] -= pad[1] # y padding + coords[..., :2] /= gain + return clip_coords(coords, img0_shape) + + +def scale_rboxes( + img1_shape: tuple[int, int], + rboxes: torch.Tensor, + img0_shape: tuple[int, int], + ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None, + padding: bool = True, +) -> torch.Tensor: + """Rescale rotated boxes from model input size to an original image size. + + Args: + img1_shape: Processed image shape. + rboxes: Rotated boxes in ``xywhr`` format. + img0_shape: Original image shape. + ratio_pad: Optional precomputed resize ratio and padding. + padding: Whether YOLO-style letterbox padding was applied. + + Returns: + Rescaled rotated boxes in ``xywhr`` format. + """ + ratio, pad = resolve_ratio_pad(img1_shape, img0_shape, ratio_pad) + gain = ratio[0] + scaled = rboxes.clone() + if padding: + scaled[..., 0] -= pad[0] + scaled[..., 1] -= pad[1] + scaled[..., :4] /= gain + return scaled + + +def compute_ratio_pad( + img1_shape: tuple[int, int], + img0_shape: tuple[int, int], + ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None, +) -> tuple[float, tuple[float, float]]: + """Return letterbox gain and padding for compatibility with existing callers. + + Args: + img1_shape (tuple): The target shape (height, width). + img0_shape (tuple): The original shape (height, width). + ratio_pad (tuple, optional): Pre-calculated (ratio, pad) tuple. + If None, it will be calculated from the shapes. Defaults to None. + + Returns: + tuple: (gain, pad) where gain is the scaling factor and pad is the (x, y) padding. + """ + ratio, pad = resolve_ratio_pad(img1_shape, img0_shape, ratio_pad) + return ratio[0], pad + + +@overload +def clip_boxes(boxes: np.ndarray, shape: tuple[int, int]) -> np.ndarray: ... + + +@overload +def clip_boxes(boxes: torch.Tensor, shape: tuple[int, int]) -> torch.Tensor: ... + + +def clip_boxes( + boxes: np.ndarray | torch.Tensor, shape: tuple[int, int] +) -> np.ndarray | torch.Tensor: + """ + Clip bounding boxes to image shape. + Args: + boxes (np.ndarray | torch.Tensor): Bounding boxes. + shape (tuple): Image shape (height, width). + Returns: + np.ndarray | torch.Tensor: Clipped bounding boxes. + """ + if isinstance(boxes, torch.Tensor): + boxes[..., 0] = boxes[..., 0].clamp(0, shape[1]) + boxes[..., 1] = boxes[..., 1].clamp(0, shape[0]) + boxes[..., 2] = boxes[..., 2].clamp(0, shape[1]) + boxes[..., 3] = boxes[..., 3].clamp(0, shape[0]) + else: + boxes[..., 0] = np.clip(boxes[..., 0], 0, shape[1]) + boxes[..., 1] = np.clip(boxes[..., 1], 0, shape[0]) + boxes[..., 2] = np.clip(boxes[..., 2], 0, shape[1]) + boxes[..., 3] = np.clip(boxes[..., 3], 0, shape[0]) + return boxes + + +@overload +def clip_coords(coords: np.ndarray, shape: tuple[int, int]) -> np.ndarray: ... + + +@overload +def clip_coords(coords: torch.Tensor, shape: tuple[int, int]) -> torch.Tensor: ... + + +def clip_coords( + coords: np.ndarray | torch.Tensor, shape: tuple[int, int] +) -> np.ndarray | torch.Tensor: + """Clips coordinates to the image shape. + + Args: + coords (np.ndarray | torch.Tensor): Coordinates to clip. + shape (tuple): Image shape (height, width). + + Returns: + np.ndarray | torch.Tensor: Clipped coordinates. + """ + if isinstance(coords, torch.Tensor): + coords[..., 0] = coords[..., 0].clamp(0, shape[1]) + coords[..., 1] = coords[..., 1].clamp(0, shape[0]) + else: + coords[..., 0] = np.clip(coords[..., 0], 0, shape[1]) + coords[..., 1] = np.clip(coords[..., 1], 0, shape[0]) + return coords + + +# --- Segmentation Utilities --- +def process_mask( + protos: torch.Tensor, + masks_in: torch.Tensor, + bboxes: torch.Tensor, + shape: tuple[int, int], + upsample: bool = False, +) -> torch.Tensor: + """Processes masks by applying coefficients to prototypes and cropping. + + Ref: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/utils/ops.py#L680 + + Args: + protos (torch.Tensor): Prototype masks of shape [mask_dim, mask_h, mask_w]. + masks_in (torch.Tensor): Mask coefficients of shape [n, mask_dim]. + bboxes (torch.Tensor): Bounding boxes of shape [n, 4]. + shape (tuple): Input image size (h, w). + upsample (bool, optional): Whether to upsample the masks to the original image size. + Defaults to False. + + Returns: + torch.Tensor: Processed binary masks. + """ + c, mh, mw = protos.shape # CHW + ih, iw = shape + masks = (masks_in @ protos.float().view(c, -1)).view(-1, mh, mw) # n, CHW + downsampled_bboxes = bboxes.clone() + downsampled_bboxes[:, 0] *= mw / iw + downsampled_bboxes[:, 2] *= mw / iw + downsampled_bboxes[:, 3] *= mh / ih + downsampled_bboxes[:, 1] *= mh / ih + masks = crop_mask(masks, downsampled_bboxes) # CHW + if upsample: + masks = F.interpolate(masks[None], shape, mode="bilinear", align_corners=False)[ + 0 + ] # CHW + return masks.gt_(0.0) + + +def process_mask_upsample( + protos: torch.Tensor, + masks_in: torch.Tensor, + bboxes: torch.Tensor, + shape: tuple[int, int] | list[int], +) -> torch.Tensor: + """Applies masks to bounding boxes with upsampling for higher quality. + + Ref: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/utils/ops.py#L713 + This produces higher quality masks than `process_mask` but is slower. + + Args: + protos (torch.Tensor): Prototype masks of shape [mask_dim, mask_h, mask_w]. + masks_in (torch.Tensor): Mask coefficients of shape [n, mask_dim]. + bboxes (torch.Tensor): Bounding boxes of shape [n, 4]. + shape (tuple): Target image size (h, w). + + Returns: + torch.Tensor: Upsampled and thresholded binary masks. + """ + c, mh, mw = protos.shape # CHW + masks = (masks_in @ protos.float().view(c, -1)).view(-1, mh, mw) # n, CHW + masks = scale_masks(masks, (shape[0], shape[1])) # CHW + masks = crop_mask(masks, bboxes) # CHW + return masks.gt_(0.0) + + +def crop_mask(masks: torch.Tensor, boxes: torch.Tensor) -> torch.Tensor: + """Crops masks to bounding boxes. + + Args: + masks (torch.Tensor): Masks of shape [n, h, w]. + boxes (torch.Tensor): Bounding boxes of shape [n, 4] in (x1, y1, x2, y2) format. + + Returns: + torch.Tensor: Cropped masks. + """ + if boxes.device != masks.device: + boxes = boxes.to(masks.device) + _, h, w = masks.shape + x1, y1, x2, y2 = torch.chunk(boxes[:, :, None], 4, 1) + rows = torch.arange(w, device=masks.device, dtype=x1.dtype)[None, None, :] + cols = torch.arange(h, device=masks.device, dtype=x1.dtype)[None, :, None] + return masks * ((rows >= x1) * (rows < x2) * (cols >= y1) * (cols < y2)) + + +def scale_masks( + masks: torch.Tensor, + shape: tuple[int, int], + ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None, + padding: bool = True, +) -> torch.Tensor: + """Rescales segment masks to the target shape. + + Args: + masks (torch.Tensor): Input masks of shape (C, H, W). + shape (tuple): Target shape (height, width). + ratio_pad (tuple, optional): Pre-calculated (ratio, pad) tuple. + If None, it will be calculated from the shapes. Defaults to None. + padding (bool, optional): If True, assumes the masks were generated from + an image with YOLO-style padding. Defaults to True. + + Returns: + torch.Tensor: Rescaled masks of shape (C, target_h, target_w). + """ + im1_h, im1_w = masks.shape[1:] + im0_h, im0_w = shape[:2] + if masks.numel() == 0: + return torch.zeros((0, im0_h, im0_w), dtype=masks.dtype, device=masks.device) + if im1_h == im0_h and im1_w == im0_w: + return masks + if ratio_pad is None: # calculate from im0_shape + gain = min(im1_h / im0_h, im1_w / im0_w) # gain = old / new + pad_w, pad_h = ( + (im1_w - round(im0_w * gain)), + (im1_h - round(im0_h * gain)), + ) # wh padding + if padding: + pad_w /= 2 + pad_h /= 2 + else: + pad_w, pad_h = ratio_pad[1] + top, left = (round(pad_h - 0.1), round(pad_w - 0.1)) if padding else (0, 0) + bottom, right = im1_h - round(pad_h + 0.1), im1_w - round(pad_w + 0.1) + masks = masks[..., top:bottom, left:right] + if isinstance(masks, np.ndarray): + masks = torch.from_numpy(masks) + masks = F.interpolate( + masks[None], shape, mode="bilinear", align_corners=False + ) # 1NHW + return masks[0] + + +def to_string(counts: list[int]) -> str: + """Converts the RLE object into a compact string representation. + + Each count is delta-encoded and variable-length encoded as a string. + + Args: + counts (list[int]): List of RLE counts. + + Returns: + str: Compact string representation of the RLE object. + """ + result = [] + + for i, x in enumerate(counts): + x = int(x) + + # Apply delta encoding for all counts after the second entry + if i > 2: + x -= int(counts[i - 2]) + + # Variable-length encode the value + while True: + c = x & 0x1F # Take 5 bits + x >>= 5 + + # If the sign bit (0x10) is set, continue if x != -1; + # otherwise, continue if x != 0 + more = (x != -1) if (c & 0x10) else (x != 0) + if more: + c |= 0x20 # Set continuation bit + c += 48 # Shift to ASCII + result.append(chr(c)) + if not more: + break + + return "".join(result) + + +def multi_encode(pixels: torch.Tensor) -> list[list[int]]: + """Convert multiple binary masks using Run-Length Encoding (RLE). + + Args: + pixels (torch.Tensor): A 2D tensor where each row represents a flattened binary mask + with shape [N, H*W]. + + Returns: + list[list[int]]: A list of RLE counts for each mask. + """ + pixel_rows = pixels.detach().cpu().numpy().astype(np.uint8, copy=False) + width = pixel_rows.shape[1] + counts = [] + for i in range(pixel_rows.shape[0]): + pixel_row = pixel_rows[i] + positions = np.flatnonzero(pixel_row[1:] != pixel_row[:-1]) + 1 + if positions.size: + count = np.diff(positions).tolist() + count.insert(0, int(positions[0])) + count.append(int(width - positions[-1])) + else: + count = [width] + if pixel_row[0] == 1: + count = [0, *count] + counts.append(count) + + return counts + + +def nmsout2eval( + nms_outs: list[torch.Tensor] | torch.Tensor, + img1_shape: tuple[int, int], + img0_shapes: tuple[int, int] | Sequence[tuple[int, int]], + ratio_pads: RatioPad | Sequence[RatioPad | None] | None = None, +) -> tuple[list[list[int]], list[list[list[float]]], list[list[float]]]: + """Converts NMS output to COCO evaluation format. + + Args: + nms_outs (list[torch.Tensor] | torch.Tensor): The output of the NMS + operation of shape (n, 6), where n is the number of objects. + img1_shape (tuple): Processed image shape (H, W). + img0_shapes (list[tuple]): Original image shapes [(H, W), ...]. + + Returns: + tuple: A tuple containing: + - labels (list[list]): The labels of the objects for each image. + - boxes (list[list]): The bounding boxes (xywh) for each image. + - scores (list[list]): The confidence scores for each image. + """ + + if not isinstance(nms_outs, list): + nms_outs = [nms_outs] + actual_img0_shapes = normalize_image_shapes(img0_shapes, len(nms_outs)) + actual_ratio_pads = normalize_ratio_pads(ratio_pads, len(nms_outs)) + labels_list: list[list[int]] = [] + boxes_list: list[list[list[float]]] = [] + scores_list: list[list[float]] = [] + for nms_out, img0_shape, ratio_pad in zip( + nms_outs, actual_img0_shapes, actual_ratio_pads + ): + boxes = nms_out[:, :4].clone() + scores = nms_out[:, 4] + labels = nms_out[:, 5] + boxes = scale_boxes( + img1_shape, boxes, img0_shape, ratio_pad=ratio_pad + ) # scale boxes to original image size + boxes[:, 2:] = boxes[:, 2:] - boxes[:, :2] # xyxy to xywh with corner xy + + boxes_tolist = [ + [round(float(value), 3) for value in box] for box in boxes.tolist() + ] + scores_tolist = [round(float(score), 5) for score in scores.tolist()] + labels_tolist = labels.tolist() + labels_res = [get_coco_inv(int(label)) for label in labels_tolist] + + labels_list.append(labels_res) + boxes_list.append(boxes_tolist) + scores_list.append(scores_tolist) + + return labels_list, boxes_list, scores_list + + +def nmsout2eval_seg( + nms_outs: Any, + img1_shape: tuple[int, int], + img0_shapes: tuple[int, int] | list[tuple[int, int]], + ratio_pads: RatioPad | list[RatioPad | None] | None = None, +) -> tuple[ + list[list[int]], + list[list[list[float]]], + list[list[float]], + list[list[dict[str, Any]]], +]: + """Converts segmentation NMS output to COCO evaluation format. + + Args: + nms_outs (Union[list, tuple]): Segmentation postprocess output in one of two forms: + `(det_result, seg_result)` for a single image or a list of those pairs for a batch. + img1_shape (tuple): Processed image shape (H, W). + img0_shapes (tuple | list[tuple]): Original image shape for a single image or + a list of original shapes for a batch. + + Returns: + tuple: A tuple containing: + - labels (list[list]): The labels of the objects for each image. + - boxes (list[list]): The bounding boxes (xywh) for each image. + - scores (list[list]): The confidence scores for each image. + - extra (list[list]): The encoded segmentation masks for each image. + """ + actual_img0_shapes = normalize_image_shapes(img0_shapes) + actual_ratio_pads = normalize_ratio_pads(ratio_pads, len(actual_img0_shapes)) + + if not isinstance(nms_outs[0], (list, tuple)): + actual_nms_outs = [nms_outs] + else: + actual_nms_outs = nms_outs + + det_results = [] + seg_results = [] + for nms_out in actual_nms_outs: + det_results.append(nms_out[0]) + seg_results.append(nms_out[1]) + + labels_list, boxes_list, scores_list = nmsout2eval( + det_results, + img1_shape, + actual_img0_shapes, + ratio_pads=actual_ratio_pads, + ) + + scaled_seg_results = [ + scale_masks( + seg_result.to(torch.float32), + (img0_shape[0], img0_shape[1]), + ratio_pad=ratio_pad, + ) + for seg_result, img0_shape, ratio_pad in zip( + seg_results, actual_img0_shapes, actual_ratio_pads + ) + ] + + def mask_encode(seg_result: torch.Tensor) -> list[dict[str, Any]]: + extra = [] + h, w = seg_result.shape[1:3] + seg_result = ( + seg_result.permute(0, 2, 1) + .contiguous() + .view(seg_result.shape[0], h * w) + .byte() + ) + counts = multi_encode(seg_result) + if len(counts) != seg_result.shape[0]: + raise RuntimeError( + f"Encoded {len(counts)} masks for a mask tensor batch of {seg_result.shape[0]}." + ) + for c in counts: + extra.append({"size": [h, w], "counts": to_string(c)}) + return extra + + extra_list = [mask_encode(seg_result) for seg_result in scaled_seg_results] + for labels, boxes, scores, extra in zip( + labels_list, boxes_list, scores_list, extra_list + ): + if not len(labels) == len(boxes) == len(scores) == len(extra): + raise RuntimeError( + "Segmentation evaluation produced mismatched label, box, score, and mask counts." + ) + return labels_list, boxes_list, scores_list, extra_list + + +def nmsout2eval_pose( + nms_outs: list[torch.Tensor] | torch.Tensor, + img1_shape: tuple[int, int], + img0_shapes: tuple[int, int] | list[tuple[int, int]], + ratio_pads: RatioPad | list[RatioPad | None] | None = None, +) -> tuple[ + list[list[int]], list[list[list[float]]], list[list[float]], list[list[list[float]]] +]: + """Converts pose estimation NMS output to COCO evaluation format. + + Args: + nms_outs (list): The output of the NMS operation. + img1_shape (tuple): Processed image shape (H, W). + img0_shapes (list[tuple]): Original image shapes [(H, W), ...]. + + Returns: + tuple: A tuple containing: + - labels (list[list]): The labels of the objects for each image. + - boxes (list[list]): The bounding boxes (xywh) for each image. + - scores (list[list]): The confidence scores for each image. + - keypoints (list[list]): The scaled keypoints for each image. + """ + actual_img0_shapes = normalize_image_shapes(img0_shapes) + actual_ratio_pads = normalize_ratio_pads(ratio_pads, len(actual_img0_shapes)) + if not isinstance(nms_outs, list): + actual_nms_outs = [nms_outs] + else: + actual_nms_outs = nms_outs + labels_list, boxes_list, scores_list = nmsout2eval( + actual_nms_outs, + img1_shape, + actual_img0_shapes, + ratio_pads=actual_ratio_pads, + ) + extra = [ + scale_coords( + img1_shape, + nms_out[:, 6:].reshape(-1, 17, 3), + img0_shape, + ratio_pad=ratio_pad, + ).reshape(-1, 51) + for nms_out, img0_shape, ratio_pad in zip( + actual_nms_outs, actual_img0_shapes, actual_ratio_pads + ) + ] + return labels_list, boxes_list, scores_list, [x.tolist() for x in extra] + + +def nmsout2eval_obb( + nms_outs: list[torch.Tensor] | torch.Tensor, + img1_shape: tuple[int, int], + img0_shapes: tuple[int, int] | list[tuple[int, int]], + ratio_pads: RatioPad | list[RatioPad | None] | None = None, + include_xywhr: bool = False, +) -> tuple[Any, ...]: + """Converts OBB NMS output to DOTAv1 evaluation format. + + Args: + nms_outs: Detections with rows ``cx, cy, w, h, score, cls, angle``. + img1_shape: Processed image shape. + img0_shapes: Original image shape or shapes. + ratio_pads: Optional letterbox metadata. + include_xywhr: Whether to include scaled ``xywhr`` boxes in the return value. + + Returns: + DOTAv1 labels, polygons, scores, and optionally scaled ``xywhr`` boxes. + """ + actual_img0_shapes = normalize_image_shapes(img0_shapes) + actual_ratio_pads = normalize_ratio_pads(ratio_pads, len(actual_img0_shapes)) + actual_nms_outs = [nms_outs] if not isinstance(nms_outs, list) else nms_outs + + labels_list: list[list[str]] = [] + polygons_list: list[list[list[float]]] = [] + scores_list: list[list[float]] = [] + xywhr_list: list[list[list[float]]] = [] + for nms_out, img0_shape, ratio_pad in zip( + actual_nms_outs, actual_img0_shapes, actual_ratio_pads + ): + if nms_out.numel() == 0: + labels_list.append([]) + polygons_list.append([]) + scores_list.append([]) + xywhr_list.append([]) + continue + + rboxes = torch.cat([nms_out[:, :4], nms_out[:, 6:7]], dim=-1) + rboxes = scale_rboxes(img1_shape, rboxes, img0_shape, ratio_pad=ratio_pad) + polygons = xywhr2xyxyxyxy(rboxes).reshape(-1, 8) + polygons = scale_coords( + img0_shape, polygons.reshape(-1, 4, 2), img0_shape + ).reshape(-1, 8) + + labels = [get_dotav1_label(int(label)) for label in nms_out[:, 5].tolist()] + scores = [round(float(score), 5) for score in nms_out[:, 4].tolist()] + polygons_tolist = [ + [round(float(value), 3) for value in polygon] + for polygon in polygons.tolist() + ] + xywhr_tolist = [ + [round(float(value), 3) for value in rbox] for rbox in rboxes.tolist() + ] + + labels_list.append(labels) + polygons_list.append(polygons_tolist) + scores_list.append(scores) + xywhr_list.append(xywhr_tolist) + + if include_xywhr: + return labels_list, polygons_list, scores_list, xywhr_list + return labels_list, polygons_list, scores_list + + +class YOLOSegPostMixin: + """Mixin class for YOLO segmentation postprocessing.""" + + def nmsout2eval( + self, + nms_out: Any, + img1_shape: tuple[int, int], + img0_shape: tuple[int, int] | list[tuple[int, int]], + ratio_pad: RatioPad | list[RatioPad | None] | None = None, + ) -> tuple[Any, ...]: + """Converts NMS output to evaluation format for segmentation. + + Args: + nms_out: NMS output (detections and prototypes). + img1_shape: Resized image shape. + img0_shape: List of original image shapes. + + Returns: + Tuple: (labels_list, boxes_list, scores_list, extra_list). + """ + return nmsout2eval_seg(nms_out, img1_shape, img0_shape, ratio_pads=ratio_pad) + + +class YOLOPosePostMixin: + """Mixin class for YOLO pose estimation postprocessing.""" + + def nmsout2eval( + self, + nms_out: Any, + img1_shape: tuple[int, int], + img0_shape: tuple[int, int] | list[tuple[int, int]], + ratio_pad: RatioPad | list[RatioPad | None] | None = None, + ) -> tuple[Any, ...]: + """Converts NMS output to evaluation format for pose estimation. + + Args: + nms_out: NMS output (detections with keypoints). + img1_shape: Resized image shape. + img0_shape: List of original image shapes. + + Returns: + Tuple: (labels_list, boxes_list, scores_list, extra_list). + """ + return nmsout2eval_pose(nms_out, img1_shape, img0_shape, ratio_pads=ratio_pad) + + +class YOLOOBBPostMixin: + """Mixin class for YOLO oriented-bounding-box postprocessing.""" + + def nmsout2eval( + self, + nms_out: Any, + img1_shape: tuple[int, int], + img0_shape: tuple[int, int] | list[tuple[int, int]], + ratio_pad: RatioPad | list[RatioPad | None] | None = None, + include_xywhr: bool = False, + ) -> tuple[Any, ...]: + """Converts OBB detections to DOTAv1 labels, polygons, and scores. + + Args: + nms_out: NMS output with rows ``cx, cy, w, h, score, cls, angle``. + img1_shape: Resized image shape. + img0_shape: Original image shape or shapes. + ratio_pad: Optional letterbox metadata. + include_xywhr: Whether to include scaled rotated boxes. + + Returns: + DOTAv1 labels, polygons, scores, and optionally scaled ``xywhr`` boxes. + """ + return nmsout2eval_obb( + nms_out, + img1_shape, + img0_shape, + ratio_pads=ratio_pad, + include_xywhr=include_xywhr, + ) diff --git a/mblt_vision/utils/postprocess/depth_post.py b/mblt_vision/utils/postprocess/depth_post.py new file mode 100644 index 0000000..1c9514b --- /dev/null +++ b/mblt_vision/utils/postprocess/depth_post.py @@ -0,0 +1,107 @@ +"""Postprocessing for monocular depth-estimation models.""" + +from __future__ import annotations + +from collections.abc import Sequence +from typing import Any + +import torch +import torch.nn.functional as functional + +from ..types import ListTensorLike, TensorLike +from ._letterbox import crop_letterbox, get_letterbox_input_shape, resolve_ratio_pads +from .base import PostBase +from .common import RatioPad, normalize_image_shapes + + +class DepthPost(PostBase): + """Normalize depth outputs and undo letterbox padding when metadata is available.""" + + def __init__(self, pre_cfg: dict[str, Any], post_cfg: dict[str, Any]) -> None: + """Initialize depth restoration from the model letterbox configuration.""" + + super().__init__() + del post_cfg + self.input_shape = get_letterbox_input_shape( + pre_cfg, "Depth estimation", "Depth" + ) + + def __call__( + self, + x: TensorLike | ListTensorLike, + img0_shape: tuple[int, int] | Sequence[tuple[int, int]] | None = None, + ratio_pad: RatioPad | Sequence[RatioPad | None] | None = None, + **kwargs: Any, + ) -> torch.Tensor | list[torch.Tensor]: + """Return normalized depth maps, optionally restored to original image sizes.""" + + if kwargs: + raise TypeError( + f"Unexpected depth postprocess kwargs: {', '.join(sorted(kwargs))}" + ) + depth = self._normalize_output(x) + if img0_shape is None: + return depth + + shapes = normalize_image_shapes(img0_shape, depth.shape[0]) + pads = resolve_ratio_pads(ratio_pad, depth.shape[0], shapes, self.input_shape) + restored = [ + self._restore(depth[index], shapes[index], pads[index]) + for index in range(depth.shape[0]) + ] + return restored[0] if len(restored) == 1 else restored + + def _normalize_output(self, x: TensorLike | ListTensorLike) -> torch.Tensor: + """Validate dense output and normalize it to input-sized ``[B, H, W]`` tensors.""" + + if isinstance(x, (list, tuple)): + if len(x) != 1: + raise ValueError( + f"Depth estimation expects one output tensor, received {len(x)}." + ) + x = x[0] + depth = torch.as_tensor(x) + if depth.ndim == 4: + if depth.shape[1] == 1: + depth = depth[:, 0] + elif depth.shape[-1] == 1: + depth = depth[..., 0] + else: + raise ValueError( + f"Depth estimation expects [B, 1, H, W] or [B, H, W, 1], got {tuple(depth.shape)}." + ) + elif ( + depth.ndim == 3 + and depth.shape[-1] == 1 + and tuple(depth.shape[:2]) == self.input_shape + ): + depth = depth[..., 0].unsqueeze(0) + elif depth.ndim != 3: + raise ValueError( + "Depth estimation expects [B, H, W], [B, 1, H, W], [H, W, 1], or [B, H, W, 1], " + f"got {tuple(depth.shape)}." + ) + depth = depth.to(device=self.device, dtype=torch.float32) + if tuple(depth.shape[-2:]) == self.input_shape: + return depth + + quarter_shape = tuple(dimension // 4 for dimension in self.input_shape) + if tuple(depth.shape[-2:]) == quarter_shape: + return functional.interpolate( + depth[:, None], scale_factor=4.0, mode="bilinear", align_corners=False + )[:, 0] + + raise ValueError( + f"Depth estimation output spatial shape must be {self.input_shape} or quarter-resolution {quarter_shape}, " + f"got {tuple(depth.shape[-2:])}." + ) + + def _restore( + self, depth: torch.Tensor, shape: tuple[int, int], ratio_pad: RatioPad + ) -> torch.Tensor: + """Crop padded depth pixels and bilinearly resize to an original image shape.""" + + cropped = crop_letterbox(depth, shape, ratio_pad, self.input_shape, "Depth") + return functional.interpolate( + cropped[None, None], size=shape, mode="bilinear", align_corners=False + )[0, 0] diff --git a/mblt_vision/utils/postprocess/semantic_seg_post.py b/mblt_vision/utils/postprocess/semantic_seg_post.py new file mode 100644 index 0000000..25d5668 --- /dev/null +++ b/mblt_vision/utils/postprocess/semantic_seg_post.py @@ -0,0 +1,184 @@ +"""Postprocessing for semantic-segmentation models.""" + +from __future__ import annotations + +from collections.abc import Sequence +from typing import Any + +import torch +import torch.nn.functional as functional + +from ..types import ListTensorLike, TensorLike +from ._letterbox import crop_letterbox, get_letterbox_input_shape, resolve_ratio_pads +from .base import PostBase +from .common import RatioPad, normalize_image_shapes + + +class SemanticSegPost(PostBase): + """Convert semantic logits to class maps and undo letterbox padding.""" + + NC_BY_DATASET: dict[str, int] = { + "ade20k": 150, + "cityscapes": 19, + } + + def __init__(self, pre_cfg: dict[str, Any], post_cfg: dict[str, Any]) -> None: + """Initialize semantic output handling for a configured dataset taxonomy.""" + + super().__init__() + self.input_shape = get_letterbox_input_shape( + pre_cfg, "Semantic segmentation", "Semantic" + ) + dataset = post_cfg.get("dataset") + if not isinstance(dataset, str): + raise ValueError( + "Semantic segmentation requires a string dataset in post_cfg." + ) + self.dataset = dataset.lower() + dataset_nc = self.NC_BY_DATASET.get(self.dataset) + configured_nc = post_cfg.get("nc") + if configured_nc is None: + if dataset_nc is None: + raise ValueError( + f"Semantic segmentation requires nc for unknown dataset '{self.dataset}'." + ) + self.nc = dataset_nc + else: + self.nc = int(configured_nc) + if dataset_nc is not None and self.nc != dataset_nc: + raise ValueError( + f"nc={configured_nc} conflicts with semantic dataset '{self.dataset}', which requires nc={dataset_nc}." + ) + + def __call__( + self, + x: TensorLike | ListTensorLike, + img0_shape: tuple[int, int] | Sequence[tuple[int, int]] | None = None, + ratio_pad: RatioPad | Sequence[RatioPad | None] | None = None, + **kwargs: Any, + ) -> torch.Tensor | list[torch.Tensor]: + """Return class maps, optionally restored to original image sizes.""" + + if kwargs: + raise TypeError( + f"Unexpected semantic postprocess kwargs: {', '.join(sorted(kwargs))}" + ) + output, is_logits = self._normalize_output(x) + if img0_shape is None: + return self._to_input_space(output, is_logits) + + shapes = normalize_image_shapes(img0_shape, output.shape[0]) + pads = resolve_ratio_pads(ratio_pad, output.shape[0], shapes, self.input_shape) + restored = [ + self._restore(output[index], is_logits, shapes[index], pads[index]) + for index in range(output.shape[0]) + ] + return restored[0] if len(restored) == 1 else restored + + def _normalize_output( + self, x: TensorLike | ListTensorLike + ) -> tuple[torch.Tensor, bool]: + """Validate logits in NCHW/NHWC layout or a baked class-map tensor.""" + + if isinstance(x, (list, tuple)): + if len(x) != 1: + raise ValueError( + f"Semantic segmentation expects one output tensor, received {len(x)}." + ) + x = x[0] + output = torch.as_tensor(x, device=self.device) + if output.ndim == 4: + if output.shape[1] == self.nc: + return output.to(dtype=torch.float32), True + if output.shape[-1] == self.nc: + return output.permute(0, 3, 1, 2).to(dtype=torch.float32), True + raise ValueError( + f"Semantic segmentation for '{self.dataset}' expects [B, {self.nc}, H, W] or " + f"[B, H, W, {self.nc}] logits, got {tuple(output.shape)}." + ) + if output.ndim == 3: + if tuple(output.shape[:2]) == self.input_shape: + if output.shape[-1] != self.nc: + raise ValueError( + f"Semantic segmentation for '{self.dataset}' expects [H, W, {self.nc}] MXQ logits, " + f"got {tuple(output.shape)}." + ) + return output.permute(2, 0, 1).unsqueeze(0).to( + dtype=torch.float32 + ), True + if output.is_complex(): + raise ValueError("Semantic class-map values must be finite integers.") + if output.is_floating_point(): + if not bool(torch.isfinite(output).all()): + raise ValueError("Semantic class-map values must be finite.") + if not bool(torch.eq(output, output.trunc()).all()): + raise ValueError( + "Semantic class-map values must be integer-valued." + ) + if output.numel() and ( + int(output.min()) < 0 or int(output.max()) >= self.nc + ): + raise ValueError( + f"Semantic class-map values must be in [0, {self.nc - 1}]." + ) + return output.to(dtype=torch.int64), False + raise ValueError( + f"Semantic segmentation expects [B, C, H, W] or [B, H, W, C] logits, or [B, H, W] class maps, " + f"got {tuple(output.shape)}." + ) + + def _to_input_space(self, output: torch.Tensor, is_logits: bool) -> torch.Tensor: + """Restore model output resolution to configured input space.""" + + if is_logits: + if tuple(output.shape[-2:]) != self.input_shape: + output = functional.interpolate( + output, size=self.input_shape, mode="bilinear", align_corners=False + ) + return output.argmax(dim=1).to(dtype=torch.int64) + if tuple(output.shape[-2:]) != self.input_shape: + output = functional.interpolate( + output[:, None].float(), size=self.input_shape, mode="nearest" + )[:, 0] + return output.to(dtype=torch.int64) + + def _restore( + self, + output: torch.Tensor, + is_logits: bool, + shape: tuple[int, int], + ratio_pad: RatioPad, + ) -> torch.Tensor: + """Undo letterboxing, preserving logits until after bilinear restoration.""" + + if is_logits: + if tuple(output.shape[-2:]) != self.input_shape: + output = functional.interpolate( + output[None], + size=self.input_shape, + mode="bilinear", + align_corners=False, + )[0] + channels = [ + crop_letterbox(channel, shape, ratio_pad, self.input_shape, "Semantic") + for channel in output + ] + cropped_logits = torch.stack(channels) + restored_logits = functional.interpolate( + cropped_logits[None], + size=shape, + mode="bilinear", + align_corners=False, + )[0] + return restored_logits.argmax(dim=0).to(dtype=torch.int64) + + if tuple(output.shape[-2:]) != self.input_shape: + output = functional.interpolate( + output[None, None].float(), + size=self.input_shape, + mode="nearest", + )[0, 0].to(dtype=torch.int64) + cropped = crop_letterbox(output, shape, ratio_pad, self.input_shape, "Semantic") + return functional.interpolate( + cropped[None, None].float(), size=shape, mode="nearest" + )[0, 0].to(torch.int64) diff --git a/mblt_vision/utils/postprocess/yolo_anchor_post.py b/mblt_vision/utils/postprocess/yolo_anchor_post.py new file mode 100644 index 0000000..19d58da --- /dev/null +++ b/mblt_vision/utils/postprocess/yolo_anchor_post.py @@ -0,0 +1,443 @@ +""" +YOLO anchor-based postprocessing. +""" + +from __future__ import annotations + +from typing import Any, cast + +import torch + +from .base import YOLODetectionPostBase +from .common import YOLOSegPostMixin, non_max_suppression + + +class YOLOAnchorDetectionPost(YOLODetectionPostBase): + """Postprocessing for YOLO models with anchors.""" + + def __init__( + self, pre_cfg: dict[str, Any], post_cfg: dict[str, Any], **kwargs: Any + ) -> None: + """Initialize anchor-based YOLO detection postprocessing. + + Args: + pre_cfg (dict): Preprocessing configuration. + post_cfg (dict): Postprocessing configuration. + **kwargs: Optional runtime overrides for postprocess behavior. + """ + super().__init__(pre_cfg, post_cfg, **kwargs) + self.no = self.nc + 5 + self.n_extra + self.grid: torch.Tensor + self.anchor_grid: torch.Tensor + self.make_anchor_grid() + + def non_e2e(self, x: list[torch.Tensor]) -> torch.Tensor | list[torch.Tensor]: + """Return the export-style output tensor for anchor-based YOLO models.""" + if len(x) == 1: + converted = self.conversion(x) + if isinstance(converted, torch.Tensor): + return self._converted_to_batch_output(converted) + det_out, proto_out = converted + return [self._converted_to_batch_output(det_out), proto_out] + + rearranged = self.rearrange(x) + if isinstance(rearranged, tuple): + det_out, proto_out = rearranged + return [self.decode_batch(det_out), proto_out.permute(0, 3, 1, 2)] + return self.decode_batch(rearranged) + + def _converted_to_batch_output(self, x: torch.Tensor) -> torch.Tensor: + """Normalize converted outputs to the export-style batched layout.""" + while x.ndim == 4 and 1 in (x.shape[0], x.shape[1]): + if x.shape[0] == 1: + x = x.squeeze(0) + elif x.shape[1] == 1: + x = x.squeeze(1) + if x.ndim != 3: + raise ValueError( + f"Expected 3D converted tensor, got shape {tuple(x.shape)}." + ) + if x.shape[-1] == self.no: + return x + if x.shape[1] == self.no: + return x.transpose(1, 2) + raise ValueError( + f"Unsupported converted tensor shape {tuple(x.shape)} for non-e2e output." + ) + + def decode_batch(self, x: torch.Tensor) -> torch.Tensor: + """Decode every anchor without filtering and preserve batch shape.""" + batch_size = x.shape[0] + grid = self.grid.unsqueeze(0).expand(batch_size, -1, -1) + anchor_grid = self.anchor_grid.unsqueeze(0).expand(batch_size, -1, -1) + stride = self.stride_as_tensor().unsqueeze(0).expand(batch_size, -1, -1) + + decoded = x.clone() + decoded[..., :2] = ( + decoded[..., :2].sigmoid().mul(2.0).add(grid).add(-0.5).mul(stride) + ) + decoded[..., 2:4] = ( + decoded[..., 2:4].sigmoid().mul(2.0).pow(2.0).mul(anchor_grid) + ) + conf = decoded[..., 4:5].sigmoid() + decoded[..., 4:5] = conf + decoded[..., 5 : 5 + self.nc] = decoded[..., 5 : 5 + self.nc].sigmoid() + if self.task == "instance_segmentation" and self.n_extra > 0: + decoded[..., 5 + self.nc :] = decoded[..., 5 + self.nc :] * conf + return decoded + + def rearrange( + self, x: list[torch.Tensor] + ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: + """Rearranges raw model output tensors into a concatenated decode input. + + Args: + x (list[torch.Tensor]): Raw output tensors from the model detection heads. + + Returns: + torch.Tensor | tuple[torch.Tensor, torch.Tensor]: Concatenated tensor in + ``(batch, anchors, no)`` format, optionally paired with prototype masks in + segmentation subclasses. + """ + if len(x) != self.nl: + raise ValueError(f"Expected {self.nl} detection heads, got {len(x)}.") + y = [] + for i in range(self.nl): + tmp = x[i] + if tmp.shape[3] == self.no * self.na: + y.append( + tmp.permute(0, 3, 1, 2) + ) # (b, 80, 80, 255) -> (b, 255, 80, 80) + else: + raise NotImplementedError( + f"Got unsupported shape for input: {tmp.shape}." + ) + # sort by image size descending + y = sorted(y, key=lambda x: x.numel(), reverse=True) + return torch.cat( + [ + xi.reshape(xi.shape[0], self.na, self.no, xi.shape[-2], xi.shape[-1]) + .permute(0, 1, 3, 4, 2) + .reshape(xi.shape[0], -1, self.no) + for xi in y + ], + dim=1, + ) + + def decode(self, x: torch.Tensor) -> list[torch.Tensor]: + """Decodes model outputs into box coordinates and class scores. + + Applies sigmoid to predictions and transforms boxes from anchor-relative + to image-relative coordinates. + + Args: + x (torch.Tensor): Concatenated output tensor from `rearrange`. + + Returns: + list[torch.Tensor]: Per-image decoded detections after confidence filtering. + """ + return [self.process_box_cls(box_cls) for box_cls in x] + + def process_box_cls(self, x: torch.Tensor) -> torch.Tensor: + """Processes a single image's detection tensor. + + Args: + x: Raw detections for one image. + + Returns: + Decoded boxes, confidence, and scores. + """ + ic = x[:, 4] > self.inv_conf_thres # candidates + box_cls = x[ic] # (n, 85) + if box_cls.numel() == 0: + return torch.zeros( + (0, 5 + self.nc + self.n_extra), dtype=torch.float32, device=x.device + ) + + grid = self.grid[ic, :] # (n, 2) + anchor_grid = self.anchor_grid[ic, :] # (n, 2) + stride = self.stride_as_tensor()[ic, :] # (n, 2) + + # Advanced indexing above materializes ``box_cls``, so in-place decode avoids a second output allocation. + box_cls[:, :2] = ( + box_cls[:, :2].sigmoid_().mul_(2.0).add_(grid).add_(-0.5).mul_(stride) + ) + box_cls[:, 2:4] = ( + box_cls[:, 2:4].sigmoid_().mul_(2.0).pow_(2.0).mul_(anchor_grid) + ) + conf = box_cls[:, 4:5].sigmoid_() + box_cls[:, 5 : 5 + self.nc].sigmoid_() + if self.task == "instance_segmentation" and self.n_extra > 0: + box_cls[:, 5 + self.nc :] *= conf + return box_cls + + def filter_conversion(self, x: torch.Tensor) -> list[torch.Tensor]: + """Filters out low-confidence detections from a single concatenated output tensor. + + Args: + x (torch.Tensor): Concatenated output tensor from the model. + + Returns: + list[torch.Tensor]: Filtered detections for each image in the batch. + """ + x_list = torch.split( + self._converted_to_batch_output(x), 1, dim=0 + ) # [(1, 25200, 85), ...] + + def process_conversion(x: torch.Tensor) -> torch.Tensor: + x = x.squeeze(0) # (25200, 85) + ic = x[:, 4] > self.conf_thres # candidates + x = x[ic] # (n, 85) + if len(x) == 0: + return torch.zeros((0, self.no), dtype=torch.float32) + return x + + return [process_conversion(xi) for xi in x_list] + + def _nms_single( + self, xi: torch.Tensor, max_det: int, max_nms: int, max_wh: int + ) -> torch.Tensor: + """Apply anchor-based NMS to a single decoded image tensor.""" + mi = 5 + self.nc # mask index + if xi.numel() == 0: + return torch.zeros( + (0, 6 + self.n_extra), dtype=torch.float32, device=self.device + ) + + scores = xi[:, 5:mi] * xi[:, 4:5] + match_index = (scores > self.conf_thres).nonzero(as_tuple=False) + if match_index.numel() == 0: + return torch.zeros( + (0, 6 + self.n_extra), dtype=torch.float32, device=xi.device + ) + + i = match_index[:, 0] + j = match_index[:, 1] + rows = xi[i] + boxes_xywh = rows[:, :4] + out = torch.empty( + (rows.shape[0], 6 + self.n_extra), dtype=rows.dtype, device=rows.device + ) + out[:, 0] = boxes_xywh[:, 0] - boxes_xywh[:, 2] / 2 + out[:, 1] = boxes_xywh[:, 1] - boxes_xywh[:, 3] / 2 + out[:, 2] = boxes_xywh[:, 0] + boxes_xywh[:, 2] / 2 + out[:, 3] = boxes_xywh[:, 1] + boxes_xywh[:, 3] / 2 + out[:, 4] = scores[i, j] + out[:, 5] = j.to(rows.dtype) + if self.n_extra > 0: + out[:, 6:] = rows[:, mi:] + out = out[out[:, 4].argsort(descending=True)[:max_nms]] + c = out[:, 5:6] * max_wh + boxes, score = out[:, :4] + c, out[:, 4] + i_idx = non_max_suppression(boxes, score, self.iou_thres, max_det) + return out[i_idx] + + def nms( + self, + x: torch.Tensor | list[torch.Tensor], + max_det: int = 300, + max_nms: int = 30000, + max_wh: int = 7680, + ) -> list[torch.Tensor]: + """ + Perform Non-Maximum Suppression (NMS) on the decoded detections. + Args: + x (list[torch.Tensor]): Decoded detections for each image. + max_det (int, optional): Maximum number of detections to keep. Defaults to 300. + max_nms (int, optional): Maximum number of candidates to consider for NMS. + Defaults to 30000. + max_wh (int, optional): Maximum box width/height for offset calculation. + Defaults to 7680. + Returns: + list[torch.Tensor]: Post-NMS detections for each image. + """ + if isinstance(x, list): + return [ + self._nms_single(xi, max_det=max_det, max_nms=max_nms, max_wh=max_wh) + for xi in x + ] + return [ + self._nms_single(xi, max_det=max_det, max_nms=max_nms, max_wh=max_wh) + for xi in x + ] + + def make_anchor_grid(self) -> None: + """ + Pre-calculate the anchor grid for decoding. + """ + grid_parts: list[torch.Tensor] = [] + anchor_grid_parts: list[torch.Tensor] = [] + stride_parts: list[torch.Tensor] = [] + strides = [2 ** (3 + i) for i in range(self.nl)] + if self.nl == 2: + strides = [strd * 2 for strd in strides] + out_sizes = [ + [self.imh // strd, self.imw // strd] for strd in strides + ] # (80, 80), (40, 40), (20, 20) + for anchr, (ny, nx), strd in zip(self.anchors_as_list(), out_sizes, strides): + yv, xv = torch.meshgrid( + torch.arange(ny, dtype=torch.float32, device=self.device), + torch.arange(nx, dtype=torch.float32, device=self.device), + indexing="ij", + ) + grid = torch.stack((xv, yv), 2).expand(self.na, ny, nx, 2) + grid_parts.append(grid) + anchr_tensor = torch.broadcast_to( + torch.tensor(anchr).reshape(self.na, 1, 1, 2), + (self.na, ny, nx, 2), + ) + anchor_grid_parts.append(anchr_tensor) + stride_parts.append(strd * torch.ones(self.na, ny, nx, 2)) + self.grid = torch.cat([grd.reshape(-1, 2) for grd in grid_parts], dim=0) + self.anchor_grid = torch.cat( + [anc.reshape(-1, 2) for anc in anchor_grid_parts], dim=0 + ) + self.stride = torch.cat([strd.reshape(-1, 2) for strd in stride_parts], dim=0) + + def chop(self, npu_out: torch.Tensor, idx: int = 0) -> tuple[torch.Tensor, ...]: + """Splits the detection tensor into individual components (xy, wh, conf, scores, extra). + + Args: + npu_out (torch.Tensor): Raw detection tensor from one detection head. + idx (int, optional): Detection head index. Defaults to 0. + + Returns: + tuple: (xy, wh, conf, scores, extra). + """ + xy, wh, conf, scores, extra = torch.split( + npu_out, [2, 2, 1, self.nc, self.n_extra], dim=-1 + ) + return xy, wh, conf, scores, extra + + +class YOLOAnchorSegPost(YOLOSegPostMixin, YOLOAnchorDetectionPost): + """Postprocessing for YOLO segmentation models with anchors.""" + + def non_e2e(self, x: list[torch.Tensor]) -> torch.Tensor | list[torch.Tensor]: + """Return the export-style output tensor for anchor-based YOLO segmentation models. + + Args: + x: Checked raw model outputs. + + Returns: + A detection tensor, or detections paired with prototype masks. + """ + if any(xi.ndim <= 4 and self.no in xi.shape[1:] for xi in x): + converted, proto_outs = self.conversion(x) + return [ + self._converted_to_batch_output(converted), + self._proto_to_nchw(proto_outs), + ] + return super().non_e2e(x) + + def _proto_to_nchw(self, proto: torch.Tensor) -> torch.Tensor: + """Convert prototype tensors to ``(B, C, H, W)`` if needed. + + Args: + proto: Prototype tensor from a model runtime. + + Returns: + Prototype tensor in channel-first batch layout. + """ + if proto.ndim == 4 and proto.shape[1] == self.n_extra: + return proto + if proto.ndim == 4 and proto.shape[-1] == self.n_extra: + return proto.permute(0, 3, 1, 2) + raise ValueError( + f"Unsupported proto tensor shape {tuple(proto.shape)} for non-e2e output." + ) + + def _pre_process(self, x: list[torch.Tensor]) -> tuple[Any, torch.Tensor | None]: + """Preprocesses intermediate inputs into (boxes, proto) format. + + Args: + x (list[torch.Tensor]): Raw model output tensors. + + Returns: + tuple: (decoded_detections, prototype_masks). + """ + if any(xi.ndim <= 4 and self.no in xi.shape[1:] for xi in x): + converted, proto_outs = cast( + tuple[torch.Tensor, torch.Tensor], self.conversion(x) + ) + return self.filter_conversion(converted), proto_outs + rearranged, proto_outs = self.rearrange(x) + return self.decode(rearranged), proto_outs + + def conversion(self, x: list[torch.Tensor]) -> tuple[torch.Tensor, torch.Tensor]: + """Converts raw model output tensors into detections and prototypes. + + Args: + x (list[torch.Tensor]): List of raw output tensors. + + Returns: + tuple: (detections, prototypes) + """ + det_out: torch.Tensor | None = None + proto_out: torch.Tensor | None = None + for xi in x: + if xi.ndim <= 4 and self.no in xi.shape[1:]: + det_out = xi + elif xi.ndim == 4 and self.n_extra in xi.shape[1:]: + proto_out = xi + if det_out is None or proto_out is None: + shapes = ", ".join(str(tuple(xi.shape)) for xi in x) + raise NotImplementedError( + f"Input shapes not supported for anchor segmentation: {shapes}." + ) + return det_out, proto_out + + def rearrange(self, x: list[torch.Tensor]) -> tuple[torch.Tensor, torch.Tensor]: + """Rearranges model output tensors for segmentation tasks. + + Args: + x (list[torch.Tensor]): Raw output tensors from detection and prototype heads. + + Returns: + tuple[torch.Tensor, torch.Tensor]: Concatenated detections and prototype masks. + """ + proto: torch.Tensor | None = None + for i, xi in enumerate(x): + if self.n_extra == xi.shape[-1]: + proto = x.pop(i) + break + if proto is None: + raise ValueError("Proto output is missing.") + y = [] + for xi in x: + if xi.shape[-1] == self.no * self.nl: + y.append(xi.permute(0, 3, 1, 2)) + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + # sort by image size descending + y = sorted(y, key=lambda x: x.numel(), reverse=True) + return ( + torch.cat( + [ + xi.reshape( + xi.shape[0], self.na, self.no, xi.shape[-2], xi.shape[-1] + ) + .permute(0, 1, 3, 4, 2) + .reshape(xi.shape[0], -1, self.no) + for xi in y + ], + dim=1, + ), + proto, + ) + + def chop(self, npu_out: torch.Tensor, idx: int = 0) -> tuple[torch.Tensor, ...]: + """Splits the detection tensor for segmentation tasks. + + Args: + npu_out (torch.Tensor): Raw detection tensor. + idx (int, optional): Detection head index. Defaults to 0. + + Returns: + tuple: (xy, wh, conf, scores, masks). + """ + xy, wh, conf, scores, masks = torch.split( + npu_out, [2, 2, 1, self.nc, self.n_extra], dim=-1 + ) + masks = masks * conf.sigmoid() + return xy, wh, conf, scores, masks diff --git a/mblt_vision/utils/postprocess/yolo_anchorless_post.py b/mblt_vision/utils/postprocess/yolo_anchorless_post.py new file mode 100644 index 0000000..30c0260 --- /dev/null +++ b/mblt_vision/utils/postprocess/yolo_anchorless_post.py @@ -0,0 +1,948 @@ +""" +YOLO anchorless postprocessing. +""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import Literal + +import torch + +from .base import YOLODetectionPostBase +from .common import ( + YOLOOBBPostMixin, + YOLOPosePostMixin, + YOLOSegPostMixin, + concat_converted_obb_outputs, + decode_split_converted_obb_outputs, + dist2bbox, + dist2rbox, + non_max_suppression, + rotated_nms, + xywh2xyxy, + yolo_multilabel_candidates, +) + +AnchorlessOutputLayout = Literal["channels_first", "candidates_first"] + + +@dataclass(frozen=True) +class _AnchorlessNMSInput: + """Decoded anchorless detections together with their source layout.""" + + detections: torch.Tensor | list[torch.Tensor] + layout: AnchorlessOutputLayout + + +class YOLOAnchorlessDetectionPost(YOLODetectionPostBase): + """Postprocessing for YOLO models without anchors.""" + + def __init__(self, pre_cfg: dict, post_cfg: dict, **kwargs: object) -> None: + """Initialize the anchorless YOLO postprocessor. + + Args: + pre_cfg: Preprocessing configuration. + post_cfg: Postprocessing configuration. + **kwargs: Optional runtime overrides for postprocess behavior. + """ + super().__init__(pre_cfg, post_cfg, **kwargs) + self.reg_max = post_cfg.get("reg_max", 0) # DFL channels + self.no = self.nc + self.reg_max * 4 # number of outputs per anchor (144) + self.dfl_weight = torch.arange( + self.reg_max, dtype=torch.float32, device=self.device + ).reshape(1, -1, 1, 1) + + def non_e2e(self, x: list[torch.Tensor]) -> torch.Tensor | list[torch.Tensor]: + """Return the export-style output tensor for anchorless YOLO models.""" + if len(x) == 1: + converted = self.conversion(x) + if isinstance(converted, torch.Tensor): + return self._converted_to_batch_output(converted) + det_out, proto_out = converted + return [self._converted_to_batch_output(det_out), proto_out] + + rearranged = self.rearrange(x) + if isinstance(rearranged, tuple): + det_out, proto_out = rearranged + return [self.decode_batch(det_out), proto_out.permute(0, 3, 1, 2)] + return self.decode_batch(rearranged) + + def _converted_to_batch_output(self, x: torch.Tensor) -> torch.Tensor: + """Normalize converted outputs to the export-style batched layout.""" + if x.ndim == 4 and x.shape[1] == 1: + x = x.squeeze(1) + if x.ndim != 3: + raise ValueError( + f"Expected 3D converted tensor, got shape {tuple(x.shape)}." + ) + if x.shape[1] == 4 + self.nc + self.n_extra: + return x + if x.shape[-1] == 4 + self.nc + self.n_extra: + return x.transpose(1, 2) + raise ValueError( + f"Unsupported converted tensor shape {tuple(x.shape)} for non-e2e output." + ) + + def decode_batch(self, x: torch.Tensor) -> torch.Tensor: + """Decode every anchor without confidence filtering for export-style output.""" + box, scores, extra = torch.split( + x, [self.reg_max * 4, self.nc, self.n_extra], dim=1 + ) + anchors = self.anchors_as_tensor().unsqueeze(0) + stride = self.stride_as_tensor().unsqueeze(0) + dbox = dist2bbox(self.dfl(box), anchors, xywh=False, dim=1) * stride + return torch.cat([dbox, scores.sigmoid(), extra], dim=1) + + def rearrange( + self, x: list[torch.Tensor] + ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: + """Rearranges raw model output tensors into a concatenated decode input. + + Args: + x (list[torch.Tensor]): List of raw output tensors from the model detection heads. + + Returns: + torch.Tensor | tuple[torch.Tensor, torch.Tensor]: Concatenated tensor in + ``(batch, channels, anchors)`` format, optionally paired with prototype masks. + """ + y_det = [] + y_cls = [] + for xi in x: # list of bchw outputs + if xi.ndim == 3: + xi = xi[None] + elif xi.ndim == 4: + pass + else: + raise NotImplementedError(f"Got unsupported ndim for input: {xi.ndim}.") + if xi.shape[-1] == self.reg_max * 4: + y_det.append( + xi.permute(0, 3, 1, 2) + ) # (b, 64, 80, 80), (b, 64 ,40, 40), ... + elif xi.shape[-1] == self.nc: + y_cls.append( + xi.permute(0, 3, 1, 2) + ) # (b, 80, 80, 80), (b, 80, 40, 40), ... + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + # sort as box, scores + y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) + y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + return torch.cat( + [ + torch.cat((yi_det, yi_cls), dim=1).flatten(2) + for yi_det, yi_cls in zip(y_det, y_cls) + ], + dim=-1, + ) + + def decode(self, x: torch.Tensor) -> list[torch.Tensor]: + """Decodes model outputs into box coordinates and class scores. + + Args: + x (torch.Tensor): Concatenated output tensor from `rearrange`. + + Returns: + list[torch.Tensor]: Per-image decoded detections in ``(channels, anchors)`` format. + """ + return [self.process_box_cls(box_cls) for box_cls in x] + + def _pre_process( + self, + x: list[torch.Tensor], + ) -> tuple[_AnchorlessNMSInput, torch.Tensor | None]: + """Decode detections while retaining whether the source was raw or converted. + + Args: + x: Checked model output tensors. + + Returns: + Layout-aware detections and an optional prototype output. + """ + if len(x) == 1: + converted = self.conversion(x) + if not isinstance(converted, torch.Tensor): + raise TypeError( + "conversion should return a tensor for single-output YOLO postprocessing." + ) + detections = self.filter_conversion(converted) + return _AnchorlessNMSInput(detections, "candidates_first"), None + rearranged = self.rearrange(x) + if not isinstance(rearranged, torch.Tensor): + raise TypeError( + "rearrange should return a tensor for non-segmentation YOLO postprocessing." + ) + detections = self.decode(rearranged) + return _AnchorlessNMSInput(detections, "channels_first"), None + + def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: + """Processes detection results for a single image. + + Args: + box_cls: Raw detections for one image. + + Returns: + Decoded boxes, scores, and extra data. + """ + if self.n_extra == 0: + ic = torch.amax(box_cls[-self.nc :, :], dim=0) > self.inv_conf_thres + else: + ic = ( + torch.amax(box_cls[-self.nc - self.n_extra : -self.n_extra, :], dim=0) + > self.inv_conf_thres + ) + box_cls = box_cls[:, ic] # (144, *) + if box_cls.numel() == 0: + return torch.zeros( + (4 + self.nc + self.n_extra, 0), dtype=torch.float32 + ) # (84, 0) + anchors = self.anchors_as_tensor() + stride = self.stride_as_tensor() + box, scores, extra = torch.split( + box_cls[None], [self.reg_max * 4, self.nc, self.n_extra], dim=1 + ) # (1, 64, *), (1, 80, *), (1, 32, *) + dbox = ( + dist2bbox( + self.dfl(box), + anchors[:, ic], + xywh=False, + dim=1, + ) + * stride[:, ic] + ) + return torch.cat([dbox, scores.sigmoid(), extra], dim=1).squeeze(0) + + def filter_conversion(self, x: torch.Tensor) -> list[torch.Tensor]: + """Filters out low-confidence detections from a single concatenated output tensor. + + Args: + x (torch.Tensor): Concatenated output tensor from the model. + + Returns: + list[torch.Tensor]: Filtered detections for each image in the batch. + """ + while x.ndim == 4 and 1 in (x.shape[0], x.shape[1]): + if x.shape[0] == 1: + x = x.squeeze(0) + elif x.shape[1] == 1: + x = x.squeeze(1) + if x.ndim != 3: + raise ValueError( + f"Expected 3D converted tensor, got shape {tuple(x.shape)}." + ) + expected_dim = 4 + self.nc + self.n_extra + if x.shape[-1] == expected_dim: + normalized = x + elif x.shape[1] == expected_dim: + normalized = x.transpose(1, 2) + else: + raise ValueError(f"Unsupported converted tensor shape {tuple(x.shape)}.") + x_list = torch.split( + normalized, 1, dim=0 + ) # [(1, 8400, 84), (1, 8400, 84), ...] + + def process_conversion(x: torch.Tensor) -> torch.Tensor: + x = x.squeeze(0) # (8400, 84) + if self.n_extra == 0: + ic = torch.amax(x[:, -self.nc :], dim=1) > self.conf_thres + else: + ic = ( + torch.amax(x[:, -self.nc - self.n_extra : -self.n_extra], dim=1) + > self.conf_thres + ) + x = x[ic] + if x.numel() == 0: + return torch.zeros((0, 4 + self.nc + self.n_extra), dtype=torch.float32) + x = xywh2xyxy(x) + return x + + return [process_conversion(xi) for xi in x_list] + + def _nms_single( + self, + xi: torch.Tensor, + max_det: int, + max_nms: int, + max_wh: int, + multi_label: bool, + ) -> torch.Tensor: + """Apply anchorless NMS to a single decoded image tensor.""" + return self._nms_single_legacy_rows( + self._normalize_nms_input(xi, "channels_first"), + max_det=max_det, + max_nms=max_nms, + max_wh=max_wh, + multi_label=multi_label, + ) + + def _normalize_nms_input( + self, + xi: torch.Tensor, + layout: AnchorlessOutputLayout | None = None, + ) -> torch.Tensor: + """Normalize one decoded tensor to ``(candidates, channels)``. + + Source provenance resolves square tensors. Shape inference remains available + for callers that pass decoded tensors directly, with raw channel-first + layout taking precedence when both dimensions match. + + Args: + xi: One image's decoded detections. + layout: Known source layout, if available. + + Returns: + Detections in canonical ``(candidates, channels)`` layout. + + Raises: + ValueError: If the tensor shape conflicts with the expected channel count + or with the supplied source layout. + """ + if xi.ndim != 2: + raise ValueError( + f"Expected 2D decoded tensor, got shape {tuple(xi.shape)}." + ) + + expected_dim = 4 + self.nc + self.n_extra + if layout == "channels_first": + if xi.shape[0] != expected_dim: + raise ValueError( + f"Expected channel-first decoded tensor with {expected_dim} channels, got shape {tuple(xi.shape)}." + ) + return xi.transpose(0, 1) + if layout == "candidates_first": + if xi.shape[1] != expected_dim: + raise ValueError( + "Expected candidates-first decoded tensor " + f"with {expected_dim} channels, got shape {tuple(xi.shape)}." + ) + return xi + + if xi.shape[0] == expected_dim: + return xi.transpose(0, 1) + if xi.shape[1] == expected_dim: + return xi + raise ValueError(f"Unsupported decoded tensor shape {tuple(xi.shape)}.") + + def _nms_single_legacy_rows( + self, + xi: torch.Tensor, + max_det: int, + max_nms: int, + max_wh: int, + multi_label: bool, + ) -> torch.Tensor: + """Apply anchorless NMS to a single decoded image in row-major ``(anchors, channels)`` form.""" + if xi.numel() == 0: + return torch.zeros( + (0, 6 + self.n_extra), dtype=torch.float32, device=self.device + ) + if multi_label: + xi_out = yolo_multilabel_candidates( + xi, self.nc, self.n_extra, self.conf_thres + ) + else: + box, score, extra = xi[:, :4], xi[:, 4 : 4 + self.nc], xi[:, 4 + self.nc :] + conf, cls_idx = score.max(dim=1) + filt = conf > self.conf_thres + if not torch.any(filt): + return torch.zeros( + (0, 6 + self.n_extra), dtype=torch.float32, device=self.device + ) + box = box[filt] + conf = conf[filt] + cls_idx = cls_idx[filt] + extra = extra[filt] + xi_out = torch.empty( + (box.shape[0], 6 + self.n_extra), dtype=xi.dtype, device=xi.device + ) + xi_out[:, :4] = box + xi_out[:, 4] = conf + xi_out[:, 5] = cls_idx.to(xi.dtype) + if self.n_extra > 0: + xi_out[:, 6:] = extra + xi_out = xi_out[torch.argsort(xi_out[:, 4], descending=True)[:max_nms]] + c = xi_out[:, 5:6] * max_wh + boxes, scores = xi_out[:, :4] + c, xi_out[:, 4] + i_idx = non_max_suppression(boxes, scores, self.iou_thres, max_det) + return xi_out[i_idx] + + def nms( + self, + x: _AnchorlessNMSInput | torch.Tensor | list[torch.Tensor], + max_det: int = 300, + max_nms: int = 30000, + max_wh: int = 7680, + multi_label: bool = False, + ) -> list[torch.Tensor]: + """Performs Non-Maximum Suppression (NMS) on the decoded detections. + + Args: + x: Decoded detections for each image, optionally with source-layout + provenance. + max_det (int, optional): Maximum number of detections to keep. Defaults to 300. + max_nms (int, optional): Maximum number of candidates to consider for NMS. + Defaults to 30000. + max_wh (int, optional): Maximum box width/height for offset calculation. + Defaults to 7680. + multi_label: Whether to retain every class candidate above threshold. + + Returns: + list[torch.Tensor]: Post-NMS detections for each image. + """ + layout: AnchorlessOutputLayout | None = None + if isinstance(x, _AnchorlessNMSInput): + layout = x.layout + x = x.detections + + tensors = x if isinstance(x, list) else list(x) + return [ + self._nms_single_legacy_rows( + self._normalize_nms_input(xi, layout), + max_det=max_det, + max_nms=max_nms, + max_wh=max_wh, + multi_label=multi_label, + ) + for xi in tensors + ] + + def nms_multilabel( + self, + x: _AnchorlessNMSInput | torch.Tensor | list[torch.Tensor], + ) -> list[torch.Tensor]: + """Perform Ultralytics-compatible multi-label NMS for validation.""" + return self.nms(x, multi_label=True) + + def dfl(self, x: torch.Tensor) -> torch.Tensor: + """Applies Distribution Focal Loss projection. + + Args: + x: Tensor with shape ``(B, 4 * reg_max, A)``. + + Returns: + Tensor with shape ``(B, 4, A)`` containing projected distances. + """ + if self.reg_max == 0: # skip dfl for yolov6 s, n models + return x + if x.ndim != 3: + raise ValueError( + f"DFL input must have shape (B, 4 * reg_max, A), got {tuple(x.shape)}." + ) + B, _, A = x.shape + x = x.view(B, 4, self.reg_max, A).softmax(dim=2) + return (x * self.dfl_weight.view(1, 1, self.reg_max, 1)).sum(dim=2) + + +class YOLOAnchorlessSegPost(YOLOSegPostMixin, YOLOAnchorlessDetectionPost): + """Postprocessing for YOLO segmentation models without anchors.""" + + def non_e2e(self, x: list[torch.Tensor]) -> torch.Tensor | list[torch.Tensor]: + """Return the export-style output tensor for anchorless YOLO segmentation models. + + Args: + x: Checked raw model outputs. + + Returns: + A detection tensor, or detections paired with prototype masks. + """ + if len(x) == 2: + converted, proto_outs = self.conversion(x) + return [ + self._converted_to_batch_output(converted), + self._proto_to_nchw(proto_outs), + ] + return super().non_e2e(x) + + def _proto_to_nchw(self, proto: torch.Tensor) -> torch.Tensor: + """Convert prototype tensors to ``(B, C, H, W)`` if needed. + + Args: + proto: Prototype tensor from a model runtime. + + Returns: + Prototype tensor in channel-first batch layout. + """ + if proto.ndim == 4 and proto.shape[1] == self.n_extra: + return proto + if proto.ndim == 4 and proto.shape[-1] == self.n_extra: + return proto.permute(0, 3, 1, 2) + raise ValueError( + f"Unsupported proto tensor shape {tuple(proto.shape)} for non-e2e output." + ) + + def _pre_process( + self, x: list[torch.Tensor] + ) -> tuple[_AnchorlessNMSInput, torch.Tensor]: + """Preprocesses intermediate inputs into (boxes, proto) format. + + Args: + x (list[torch.Tensor]): Raw model output tensors. + + Returns: + tuple: (decoded_detections, prototype_masks). + """ + if len(x) == 2: + converted, proto_outs = self.conversion(x) + detections = self.filter_conversion(converted) + return _AnchorlessNMSInput(detections, "candidates_first"), proto_outs + rearranged, proto_outs = self.rearrange(x) + return _AnchorlessNMSInput( + self.decode(rearranged), "channels_first" + ), proto_outs + + def conversion(self, x: list[torch.Tensor]) -> tuple[torch.Tensor, torch.Tensor]: + """Converts raw model output tensors into detections and prototypes. + + Args: + x (list[torch.Tensor]): List of raw output tensors. + + Returns: + tuple: (detections, prototypes) + """ + if (self.nc + self.n_extra + 4) in x[0].shape[1:] and self.n_extra in x[ + 1 + ].shape[1:]: + return ( + x[0], + x[1], + ) + if (self.nc + self.n_extra + 4) in x[1].shape[1:] and self.n_extra in x[ + 0 + ].shape[1:]: + return ( + x[1], + x[0], + ) + raise ValueError(f"Wrong shape of input: {x[0].shape}, {x[1].shape}") + + def rearrange(self, x: list[torch.Tensor]) -> tuple[torch.Tensor, torch.Tensor]: + """ + Rearrange model output tensors for segmentation tasks. + Args: + x (list[torch.Tensor]): Raw output tensors. + Returns: + tuple: (concatenated_detections, prototype_masks) + """ + y_det: list[torch.Tensor] = [] + y_cls: list[torch.Tensor] = [] + y_ext: list[torch.Tensor] = [] + for xi in x: + if xi.shape[-1] == self.n_extra: + y_ext.append( + xi.permute(0, 3, 1, 2) + ) # (b, 32, 160, 160), (b, 32, 80, 80), ... + elif xi.shape[-1] == self.reg_max * 4: + y_det.append( + xi.permute(0, 3, 1, 2) + ) # (b, 64, 80, 80), (b, 64 ,40, 40), ... + elif xi.shape[-1] == self.nc: + y_cls.append( + xi.permute(0, 3, 1, 2) + ) # (b, 80, 80, 80), (b, 80, 40, 40), ... + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + # sort as box, scores + y_ext = sorted(y_ext, key=lambda x: x.numel(), reverse=True) + proto = y_ext.pop(0).permute(0, 2, 3, 1) + y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) + y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + if not len(y_cls) == len(y_det) == len(y_ext): + raise ValueError( + "Classification, detection, and extra output counts must match." + ) + y = torch.cat( + [ + torch.cat((yi_det, yi_cls, yi_ext), dim=1).flatten(2) + for yi_det, yi_cls, yi_ext in zip(y_det, y_cls, y_ext) + ], + dim=-1, + ) + return y, proto + + +class YOLOAnchorlessPosePost(YOLOPosePostMixin, YOLOAnchorlessDetectionPost): + """Postprocessing for YOLO pose estimation models without anchors.""" + + def rearrange(self, x: list[torch.Tensor]) -> torch.Tensor: + """Rearranges model output tensors for pose estimation tasks. + + Args: + x (list[torch.Tensor]): Raw output tensors. + + Returns: + torch.Tensor: Concatenated tensor for decode. + """ + y_det = [] + y_cls = [] + y_kpt = [] + for xi in x: # list of bchw outputs + if xi.ndim == 3: + xi = xi[None] + elif xi.ndim == 4: + pass + else: + raise NotImplementedError(f"Got unsupported ndim for input: {xi.ndim}.") + if xi.shape[-1] == self.reg_max * 4: + y_det.append( + xi.permute(0, 3, 1, 2) + ) # (b, 64, 80, 80), (b, 64 ,40, 40), ... + elif xi.shape[-1] == self.nc: + y_cls.append( + xi.permute(0, 3, 1, 2) + ) # (b, 1, 80, 80), (b, 1, 40, 40), ... + elif xi.shape[-1] == self.n_extra: + y_kpt.append( + xi.permute(0, 3, 1, 2).flatten(2) + ) # (b, 51, 80, 80), (b, 1, 40, 40), ... + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + # sort as box, scores + y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) + y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + y_kpt = sorted( + y_kpt, key=lambda x: x.numel(), reverse=True + ) # (b, 51, 6400), (b, 51, 1600), (b, 51, 400) + y_tmp = [ + torch.cat((yi_det, yi_cls), dim=1).flatten(2) + for (yi_det, yi_cls) in zip( + y_det, y_cls + ) # (b, 65, 6400), (b, 65, 1600), (b, 65, 400) + ] + return torch.cat( + [ + torch.cat((yi_tmp, yi_kpt), dim=1) + for yi_tmp, yi_kpt in zip(y_tmp, y_kpt) + ], + dim=-1, + ) + + def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: + """Processes pose estimation results for a single image. + + Args: + box_cls: Raw detections for one image. + + Returns: + Decoded boxes, scores, and keypoints. + """ + ic = ( + torch.amax(box_cls[-self.nc - self.n_extra : -self.n_extra, :], dim=0) + > self.inv_conf_thres + ) + box_cls = box_cls[:, ic] # (116, *) + if box_cls.numel() == 0: + return torch.zeros( + (4 + self.nc + self.n_extra, 0), dtype=torch.float32 + ) # (56, 0) + anchors = self.anchors_as_tensor() + stride = self.stride_as_tensor() + box, scores, keypoints = torch.split( + box_cls[None], [self.reg_max * 4, self.nc, self.n_extra], dim=1 + ) # (1, 64, *), (1, 1, *), (1, 51, *) + dbox = ( + dist2bbox( + self.dfl(box), + anchors[:, ic], + xywh=False, + dim=1, + ) + * stride[:, ic] + ) + keypoints = keypoints.view(1, 17, 3, -1) + key_coord, key_conf = torch.split( + keypoints, [2, 1], dim=2 + ) # (1, 17, 2, 8400), (1, 17, 1, 8400) + key_coord = (key_coord * 2 + anchors[:, ic] - 0.5) * stride[ + :, ic + ] # (1, 17, 2, *) + keypoints = torch.cat([key_coord, key_conf.sigmoid()], dim=2).view( + 1, self.n_extra, -1 + ) # (1, 51, *) + return torch.cat([dbox, scores.sigmoid(), keypoints], dim=1).squeeze( + 0 + ) # (56, *) + + def decode_batch(self, x: torch.Tensor) -> torch.Tensor: + """Decode every anchor without confidence filtering for export-style pose output.""" + box, scores, keypoints = torch.split( + x, [self.reg_max * 4, self.nc, self.n_extra], dim=1 + ) + anchors = self.anchors_as_tensor().unsqueeze(0) + stride = self.stride_as_tensor().unsqueeze(0) + dbox = dist2bbox(self.dfl(box), anchors, xywh=False, dim=1) * stride + keypoints = keypoints.view(x.shape[0], 17, 3, -1) + key_coord, key_conf = torch.split(keypoints, [2, 1], dim=2) + key_coord = (key_coord * 2 + anchors.unsqueeze(1) - 0.5) * stride.unsqueeze(1) + keypoints = torch.cat([key_coord, key_conf.sigmoid()], dim=2).view( + x.shape[0], self.n_extra, -1 + ) + return torch.cat([dbox, scores.sigmoid(), keypoints], dim=1) + + +class YOLOAnchorlessOBBPost(YOLOOBBPostMixin, YOLOAnchorlessDetectionPost): + """Postprocessing for anchorless YOLO OBB models.""" + + def _angle_from_raw(self, angle: torch.Tensor) -> torch.Tensor: + """Decode YOLOv8/YOLO11 raw angle logits to radians.""" + return (angle.sigmoid() - 0.25) * torch.pi + + def _pre_process( + self, x: list[torch.Tensor] + ) -> tuple[_AnchorlessNMSInput, torch.Tensor | None]: + """Preprocess OBB inputs into row-major detections. + + Args: + x: Raw model outputs. + + Returns: + A tuple of detections and no prototype output. + """ + if len(x) in {1, 3, 5}: + detections = self.filter_conversion(self.conversion(x)) + return _AnchorlessNMSInput(detections, "candidates_first"), None + return _AnchorlessNMSInput( + self.decode(self.rearrange(x)), "channels_first" + ), None + + def conversion(self, x: list[torch.Tensor]) -> torch.Tensor: + """Convert exported OBB outputs to one canonical tensor. + + Args: + x: Converted OBB runtime outputs. + + Returns: + Detections in ``cx, cy, w, h, class scores..., angle`` format. + """ + if len(x) == 5: + return decode_split_converted_obb_outputs( + x, + self.nc, + self.n_extra, + self.anchors_as_tensor(), + self.stride_as_tensor(), + ) + return concat_converted_obb_outputs(x, self.nc, self.n_extra) + + def rearrange(self, x: list[torch.Tensor]) -> torch.Tensor: + """Rearrange raw OBB heads into ``(batch, channels, anchors)`` format. + + Args: + x: Raw model output tensors. + + Returns: + Concatenated OBB detection tensor. + """ + target_count = len(x) // 3 + y_det: list[torch.Tensor] = [] + y_cls: list[torch.Tensor] = [] + y_angle: list[torch.Tensor] = [] + ambiguous: list[tuple[torch.Tensor, list[int]]] = [] + for xi in x: + if xi.ndim == 3: + xi = xi.unsqueeze(0) + elif xi.ndim > 4: + while xi.ndim > 4 and 1 in xi.shape: + xi = xi.squeeze( + next(idx for idx, size in enumerate(xi.shape) if size == 1) + ) + if xi.ndim == 3: + xi = xi.unsqueeze(0) + if xi.ndim != 4: + raise ValueError( + f"Expected 3D or 4D OBB head, got shape {tuple(xi.shape)}." + ) + + candidates: list[tuple[int, torch.Tensor]] = [] + if xi.shape[1] in {self.reg_max * 4, self.nc, self.n_extra}: + candidates.append((int(xi.shape[1]), xi)) + if xi.shape[-1] in {self.reg_max * 4, self.nc, self.n_extra}: + candidates.append((int(xi.shape[-1]), xi.permute(0, 3, 1, 2))) + + deduped: list[tuple[int, torch.Tensor]] = [] + seen_channels: set[int] = set() + for channel_count, candidate in candidates: + if channel_count not in seen_channels: + seen_channels.add(channel_count) + deduped.append((channel_count, candidate)) + + if len(candidates) == 2 and len(deduped) == 1: + channel_count, _ = deduped[0] + normalized = xi.permute(0, 3, 1, 2) + if channel_count == self.reg_max * 4: + y_det.append(normalized) + elif channel_count == self.nc: + y_cls.append(normalized) + elif channel_count == self.n_extra: + y_angle.append(normalized) + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + elif len(deduped) == 1: + channel_count, normalized = deduped[0] + if channel_count == self.reg_max * 4: + y_det.append(normalized) + elif channel_count == self.nc: + y_cls.append(normalized) + elif channel_count == self.n_extra: + y_angle.append(normalized) + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + elif len(deduped) > 1: + ambiguous.append((xi, [channel_count for channel_count, _ in deduped])) + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + + for xi, channel_options in ambiguous: + if self.reg_max * 4 in channel_options and len(y_det) < target_count: + y_det.append( + xi if xi.shape[1] == self.reg_max * 4 else xi.permute(0, 3, 1, 2) + ) + continue + if self.nc in channel_options and len(y_cls) < target_count: + y_cls.append(xi if xi.shape[1] == self.nc else xi.permute(0, 3, 1, 2)) + continue + if self.n_extra in channel_options and len(y_angle) < target_count: + y_angle.append( + xi if xi.shape[1] == self.n_extra else xi.permute(0, 3, 1, 2) + ) + continue + raise ValueError(f"Wrong shape of input: {xi.shape}") + + y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) + y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + y_angle = sorted(y_angle, key=lambda x: x.numel(), reverse=True) + if not (len(y_det) == len(y_cls) == len(y_angle)): + raise ValueError("OBB output arguments are not in a proper form.") + return torch.cat( + [ + torch.cat((yi_det, yi_cls, yi_angle), dim=1).flatten(2) + for yi_det, yi_cls, yi_angle in zip(y_det, y_cls, y_angle) + ], + dim=-1, + ) + + def decode_batch(self, x: torch.Tensor) -> torch.Tensor: + """Decode every OBB anchor without confidence filtering.""" + box, scores, angle = torch.split( + x, [self.reg_max * 4, self.nc, self.n_extra], dim=1 + ) + anchors = self.anchors_as_tensor().unsqueeze(0) + stride = self.stride_as_tensor().unsqueeze(0) + angle = self._angle_from_raw(angle) + rbox = dist2rbox(self.dfl(box), angle, anchors, dim=1) * stride + return torch.cat([rbox, scores.sigmoid(), angle], dim=1) + + def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: + """Processes OBB results for a single image. + + Args: + box_cls: Raw detections for one image. + + Returns: + Decoded rotated boxes, scores, and angle. + """ + ic = ( + torch.amax(box_cls[-self.nc - self.n_extra : -self.n_extra, :], dim=0) + > self.inv_conf_thres + ) + box_cls = box_cls[:, ic] + if box_cls.numel() == 0: + return torch.zeros( + (4 + self.nc + self.n_extra, 0), dtype=torch.float32, device=self.device + ) + anchors = self.anchors_as_tensor() + stride = self.stride_as_tensor() + box, scores, angle = torch.split( + box_cls[None], [self.reg_max * 4, self.nc, self.n_extra], dim=1 + ) + angle = self._angle_from_raw(angle) + rbox = dist2rbox(self.dfl(box), angle, anchors[:, ic], dim=1) * stride[:, ic] + return torch.cat([rbox, scores.sigmoid(), angle], dim=1).squeeze(0) + + def filter_conversion(self, x: torch.Tensor) -> list[torch.Tensor]: + """Filters converted OBB outputs from a single ONNX tensor. + + Args: + x: Converted output tensor. + + Returns: + Per-image row-major tensors in ``cx, cy, w, h, scores..., angle`` format. + """ + while x.ndim == 4 and 1 in (x.shape[0], x.shape[1]): + if x.shape[0] == 1: + x = x.squeeze(0) + elif x.shape[1] == 1: + x = x.squeeze(1) + if x.ndim != 3: + raise ValueError( + f"Expected 3D converted tensor, got shape {tuple(x.shape)}." + ) + expected_dim = 4 + self.nc + self.n_extra + if x.shape[-1] == expected_dim: + normalized = x + elif x.shape[1] == expected_dim: + normalized = x.transpose(1, 2) + else: + raise ValueError(f"Unsupported converted tensor shape {tuple(x.shape)}.") + + outputs = [] + for xi in torch.split(normalized, 1, dim=0): + xi = xi.squeeze(0) + ic = torch.amax(xi[:, 4 : 4 + self.nc], dim=1) > self.conf_thres + if torch.any(ic): + outputs.append(xi[ic]) + else: + outputs.append( + torch.zeros((0, expected_dim), dtype=xi.dtype, device=xi.device) + ) + return outputs + + def _nms_single( + self, + xi: torch.Tensor, + max_det: int, + max_nms: int, + max_wh: int, + multi_label: bool, + ) -> torch.Tensor: + """Apply rotated NMS to a single decoded OBB image tensor.""" + if xi.numel() == 0: + return torch.zeros((0, 7), dtype=torch.float32, device=self.device) + xi_t = xi.transpose(0, 1) + return self._nms_single_legacy_rows( + xi_t, + max_det=max_det, + max_nms=max_nms, + max_wh=max_wh, + multi_label=multi_label, + ) + + def _nms_single_legacy_rows( + self, + xi: torch.Tensor, + max_det: int, + max_nms: int, + max_wh: int, + multi_label: bool, + ) -> torch.Tensor: + """Apply rotated NMS to row-major OBB detections.""" + del multi_label + if xi.numel() == 0: + return torch.zeros((0, 7), dtype=torch.float32, device=self.device) + xi_out = yolo_multilabel_candidates(xi, self.nc, self.n_extra, self.conf_thres) + if xi_out.numel() == 0: + return torch.zeros((0, 7), dtype=torch.float32, device=self.device) + xi_out = xi_out[torch.argsort(xi_out[:, 4], descending=True)[:max_nms]] + c = xi_out[:, 5:6] * max_wh + boxes = torch.cat([xi_out[:, :2] + c, xi_out[:, 2:4], xi_out[:, 6:7]], dim=-1) + keep = rotated_nms(boxes, xi_out[:, 4], self.iou_thres)[:max_det] + return xi_out[keep] + + def nms_multilabel( + self, + x: _AnchorlessNMSInput | torch.Tensor | list[torch.Tensor], + ) -> list[torch.Tensor]: + """Preserve existing OBB NMS behavior outside the COCO validation scope.""" + return self.nms(x) + + +YOLOAnchorlessPost = YOLOAnchorlessDetectionPost diff --git a/mblt_vision/utils/postprocess/yolo_dflfree_post.py b/mblt_vision/utils/postprocess/yolo_dflfree_post.py new file mode 100644 index 0000000..7cf47e5 --- /dev/null +++ b/mblt_vision/utils/postprocess/yolo_dflfree_post.py @@ -0,0 +1,991 @@ +from __future__ import annotations + +from typing import Any, cast + +import torch + +from .base import YOLODetectionPostBase +from .common import ( + YOLOOBBPostMixin, + YOLOPosePostMixin, + YOLOSegPostMixin, + concat_converted_obb_outputs, + decode_split_converted_obb_outputs, + dist2bbox, + dist2rbox, + dual_topk, + rotated_nms, + yolo_multilabel_candidates, +) + + +class YOLODFLFreeDetectionPost(YOLODetectionPostBase): + """Postprocessing for YOLO DFL-free models.""" + + max_det = 300 + reducemax_rtol = 1e-3 + reducemax_atol = 5e-2 + + def __init__(self, pre_cfg: dict, post_cfg: dict, **kwargs: object) -> None: + """Initialize the DFL-free YOLO postprocessor. + + Args: + pre_cfg: Preprocessing configuration. + post_cfg: Postprocessing configuration. + **kwargs: Optional runtime overrides for postprocess behavior. + """ + super().__init__(pre_cfg, post_cfg, **kwargs) + + def _normalize_converted_part( + self, x: torch.Tensor, channel_count: int + ) -> torch.Tensor | None: + """Normalize a split decode-true part to ``(B, anchors, channels)``.""" + + while x.ndim > 3 and 1 in x.shape: + x = x.squeeze(next(idx for idx, size in enumerate(x.shape) if size == 1)) + + if x.ndim == 2: + if x.shape[-1] == channel_count: + return x.unsqueeze(0) + if x.shape[0] == channel_count: + return x.transpose(0, 1).unsqueeze(0) + return None + + if x.ndim == 3: + if x.shape[-1] == channel_count: + return x + if x.shape[1] == channel_count: + return x.transpose(1, 2) + + return None + + def _collect_converted_parts( + self, + x: list[torch.Tensor], + *, + require_extra: bool, + ) -> tuple[torch.Tensor, set[int]] | None: + """Collect decode-true box/class/extra parts while ignoring reducemax.""" + + part_by_role: dict[str, torch.Tensor] = {} + used_indices: set[int] = set() + required_parts: list[tuple[str, int]] = [("boxes", 4), ("scores", self.nc)] + if require_extra: + required_parts.append(("extra", self.n_extra)) + + score_candidates = [ + (idx, cast(torch.Tensor, normalized)) + for idx, xi in enumerate(x) + if (normalized := self._normalize_converted_part(xi, self.nc)) is not None + ] + reducemax_candidates = [ + (idx, cast(torch.Tensor, normalized)) + for idx, xi in enumerate(x) + if (normalized := self._normalize_converted_part(xi, 1)) is not None + ] + + def _matches_reducemax(candidate_idx: int, candidate: torch.Tensor) -> bool: + if candidate.shape[-1] != self.nc: + return False + reduced = candidate.max(dim=-1, keepdim=True).values + return any( + reduced.shape == reducemax.shape + and torch.allclose( + reduced, + reducemax, + rtol=self.reducemax_rtol, + atol=self.reducemax_atol, + ) + for reducemax_idx, reducemax in reducemax_candidates + if reducemax_idx != candidate_idx + ) + + preferred_single_class_score_idx: int | None = None + if self.nc == 1 and len(score_candidates) > 1: + matched_score_candidates = [ + (idx, candidate) + for idx, candidate in score_candidates + if _matches_reducemax(idx, candidate) + ] + if matched_score_candidates: + preferred_single_class_score_idx, _ = max( + matched_score_candidates, + key=lambda item: float(item[1].sum()), + ) + + for idx, xi in enumerate(x): + for role, channel_count in required_parts: + if role in part_by_role: + continue + normalized = self._normalize_converted_part(xi, channel_count) + if normalized is None: + continue + + if role == "scores": + if ( + preferred_single_class_score_idx is not None + and idx != preferred_single_class_score_idx + ): + continue + if not _matches_reducemax(idx, normalized): + continue + elif ( + channel_count == self.nc + and self.nc == 4 + and _matches_reducemax(idx, normalized) + ): + continue + + part_by_role[role] = normalized + used_indices.add(idx) + break + + if any(role not in part_by_role for role, _ in required_parts): + return None + + batch_size = part_by_role["boxes"].shape[0] + anchor_count = part_by_role["boxes"].shape[1] + for role, _channel_count in required_parts[1:]: + part = part_by_role[role] + if part.shape[0] != batch_size or part.shape[1] != anchor_count: + return None + + ordered_parts = [part_by_role["boxes"], part_by_role["scores"]] + if require_extra: + ordered_parts.append(part_by_role["extra"]) + return torch.cat(ordered_parts, dim=-1), used_indices + + def non_e2e(self, x: list[torch.Tensor]) -> torch.Tensor | list[torch.Tensor]: + """Return the export-style output tensor for DFL-free YOLO models.""" + if len(x) == 2: + converted = cast(torch.Tensor, self.conversion(x)) + return self._stack_topk_outputs(self.filter_conversion(converted)) + if len(x) == 4: + converted, proto_outs = cast( + tuple[torch.Tensor, torch.Tensor], self.conversion(x) + ) + return [ + self._stack_topk_outputs(self.filter_conversion(converted)), + self._proto_to_nchw(proto_outs), + ] + if len(x) == 3: + converted = cast(torch.Tensor, self.conversion(x)) + return self._stack_topk_outputs(self.filter_conversion(converted)) + + rearranged = self.rearrange(x) + if isinstance(rearranged, tuple): + det_out, proto_outs = rearranged + return [self.decode_batch(det_out), self._proto_to_nchw(proto_outs)] + return self.decode_batch(rearranged) + + def _proto_to_nchw(self, proto: torch.Tensor) -> torch.Tensor: + """Convert prototype tensors to ``(B, C, H, W)`` if needed.""" + if proto.ndim == 4 and proto.shape[1] == self.n_extra: + return proto + if proto.ndim == 4 and proto.shape[-1] == self.n_extra: + return proto.permute(0, 3, 1, 2) + raise ValueError( + f"Unsupported proto tensor shape {tuple(proto.shape)} for non-e2e output." + ) + + def _stack_topk_outputs(self, outputs: list[torch.Tensor]) -> torch.Tensor: + """Pad or trim per-image detections to a fixed batch tensor.""" + if not outputs: + raise ValueError("At least one output tensor is required.") + + output_dim = int(outputs[0].shape[1]) + padded_outputs = [] + for output in outputs: + if output.ndim != 2: + raise ValueError( + f"Expected 2D detection rows, got shape {tuple(output.shape)}." + ) + if output.shape[1] != output_dim: + raise ValueError( + f"Inconsistent detection row width {output.shape[1]}; expected {output_dim}." + ) + output = output[: self.max_det] + if output.shape[0] < self.max_det: + pad = torch.zeros( + (self.max_det - output.shape[0], output_dim), + dtype=output.dtype, + device=output.device, + ) + output = torch.cat([output, pad], dim=0) + padded_outputs.append(output) + return torch.stack(padded_outputs, dim=0) + + def decode_batch(self, x: torch.Tensor) -> torch.Tensor: + """Decode every anchor, then apply batched top-k selection for export-style output.""" + box, scores, extra = torch.split(x, [4, self.nc, self.n_extra], dim=1) + anchors = self.anchors_as_tensor().unsqueeze(0) + stride = self.stride_as_tensor().unsqueeze(0) + dbox = dist2bbox(box, anchors, xywh=False, dim=1) * stride + decoded = torch.cat([dbox, scores, extra], dim=1).transpose(1, 2) + return self._stack_topk_outputs( + [ + dual_topk( + image, + self.nc, + self.n_extra, + max_det=self.max_det, + conf_thres=self.conf_thres, + score_is_logits=True, + ) + for image in decoded + ] + ) + + def _pre_process(self, x: list[torch.Tensor]) -> tuple[Any, torch.Tensor | None]: + """Preprocesses inputs for DFL-free models. + + Args: + x (list[torch.Tensor]): Raw model outputs. + + Returns: + tuple: (processed detections, None). + """ + if len(x) in {2, 3}: + converted = cast(torch.Tensor, self.conversion(x)) + return self.filter_conversion(converted), None + rearranged = self.rearrange(x) + if not isinstance(rearranged, torch.Tensor): + raise TypeError( + "rearrange should return a tensor for DFL-free detection postprocessing." + ) + return self.decode(rearranged), None + + def conversion( + self, x: list[torch.Tensor] + ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: + """Converts raw model output tensors into a single concatenated tensor. + + Args: + x (list[torch.Tensor]): List of raw output tensors. + + Returns: + torch.Tensor: + Concatenated tensor of shape ``(batch, num_anchors, 4 + nc + n_extra)``. + """ + converted_parts = self._collect_converted_parts( + x, require_extra=self.n_extra > 0 + ) + if converted_parts is not None: + converted, _ = converted_parts + return converted + + # sort by element number + x = sorted(x, key=lambda x: x.size(), reverse=self.nc < 4) + return torch.cat(x, dim=-1).squeeze(1) # [b, 8400, 84] + + def rearrange( + self, x: list[torch.Tensor] + ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: + """Rearranges raw outputs into a task-specific intermediate representation. + + Args: + x: Raw model output tensors. + + Returns: + A concatenated intermediate representation used by ``decode``. + """ + y_det = [] + y_cls = [] + for xi in x: # list of bchw outputs + if xi.ndim == 3: + xi = xi[None] + elif xi.ndim == 4: + pass + else: + raise NotImplementedError(f"Got unsupported ndim for input: {xi.ndim}.") + if xi.shape[-1] == 4: + y_det.append( + xi.permute(0, 3, 1, 2) + ) # (b, 4, 80, 80), (b, 4, 40, 40), ... + elif xi.shape[-1] == self.nc: + y_cls.append( + xi.permute(0, 3, 1, 2) + ) # (b, 80, 80, 80), (b, 80, 40, 40), ... + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + # sort as box, scores + y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) + y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + return torch.cat( + [ + torch.cat((yi_det, yi_cls), dim=1).flatten(2) + for yi_det, yi_cls in zip(y_det, y_cls) + ], + dim=-1, + ) + + def decode(self, x: torch.Tensor) -> list[torch.Tensor]: + """Decodes model outputs into box coordinates and class scores. + + Args: + x (torch.Tensor): Concatenated output tensor from `rearrange`. + + Returns: + list[torch.Tensor]: Per-image decoded detections after filtering and top-k selection. + """ + return [self.process_box_cls(box_cls) for box_cls in x] + + def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: + """Processes detection results for a single image. + + Args: + box_cls: Raw detections for one image. + + Returns: + Decoded boxes, scores, and extra data. + """ + if self.n_extra == 0: + ic = torch.amax(box_cls[-self.nc :, :], dim=0) > self.inv_conf_thres + else: + ic = ( + torch.amax(box_cls[-self.nc - self.n_extra : -self.n_extra, :], dim=0) + > self.inv_conf_thres + ) + box_cls = box_cls[:, ic] # (84, *) + if box_cls.numel() == 0: + return torch.zeros( + (0, 4 + self.nc + self.n_extra), dtype=torch.float32 + ) # (0, 84) + anchors = self.anchors_as_tensor() + stride = self.stride_as_tensor() + box, scores, extra = torch.split( + box_cls[None], [4, self.nc, self.n_extra], dim=1 + ) # (*, 4), (*, 80), (*, 32) + dbox = ( + dist2bbox( + box, + anchors[:, ic], + xywh=False, + dim=1, + ) + * stride[:, ic] + ) + pre_topk = ( + torch.cat([dbox, scores, extra], dim=1).squeeze(0).transpose(0, 1) + ) # (*, 84) + return dual_topk( + pre_topk, + self.nc, + self.n_extra, + conf_thres=self.conf_thres, + score_is_logits=True, + ) + + def filter_conversion(self, x: torch.Tensor) -> list[torch.Tensor]: + """Filters out low-confidence detections from a single concatenated output tensor. + + Args: + x (torch.Tensor): Output tensor from the model. + + Returns: + list[torch.Tensor]: Filtered detections for each image in the batch. + """ + x_list = torch.split(x, 1, dim=0) # [(1, 8400, 84), (1, 8400, 84), ...] + + return [ + dual_topk(xi.squeeze(0), self.nc, self.n_extra, conf_thres=self.conf_thres) + for xi in x_list + ] + + def nms( + self, + x: torch.Tensor | list[torch.Tensor], + _max_det: int = 300, + _max_nms: int = 30000, + _max_wh: int = 7680, + ) -> list[torch.Tensor]: + """Performs Non-Maximum Suppression (no-op for NMS-free models). + + Args: + x (list[torch.Tensor]): Decoded detections. + _max_det (int, optional): Maximum number of detections to keep. Defaults to 300. + _max_nms (int, optional): Maximum candidates for NMS. Defaults to 30000. + _max_wh (int, optional): Maximum box width/height. Defaults to 7680. + + Returns: + list[torch.Tensor]: Per-image detections with padded zero rows removed. + """ + if isinstance(x, list): + return x + return [xi[xi[:, 4] > 0] for xi in x] + + +class YOLODFLFreeSegPost(YOLOSegPostMixin, YOLODFLFreeDetectionPost): + """Postprocessing for YOLO NMS-free segmentation models.""" + + def non_e2e(self, x: list[torch.Tensor]) -> torch.Tensor | list[torch.Tensor]: + """Return export-style segmentation outputs for converted or raw split heads.""" + + if len(x) in {4, 5}: + converted, proto_outs = cast( + tuple[torch.Tensor, torch.Tensor], self.conversion(x) + ) + return [ + self._stack_topk_outputs(self.filter_conversion(converted)), + self._proto_to_nchw(proto_outs), + ] + + rearranged, proto_outs = self.rearrange(x) + return [self.decode_batch(rearranged), self._proto_to_nchw(proto_outs)] + + def _pre_process( + self, x: list[torch.Tensor] + ) -> tuple[list[torch.Tensor], torch.Tensor]: + """Preprocesses intermediate inputs into (boxes, proto) format. + + Args: + x (list[torch.Tensor]): Raw model output tensors. + + Returns: + tuple: (decoded_detections, prototype_masks). + """ + if len(x) in {4, 5}: + converted, proto_outs = cast( + tuple[torch.Tensor, torch.Tensor], self.conversion(x) + ) + return self.filter_conversion(converted), proto_outs + rearranged, proto_outs = self.rearrange(x) + return self.decode(rearranged), proto_outs + + def conversion( + self, x: list[torch.Tensor] + ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: + """Converts raw outputs into detections and prototype masks. + + Args: + x: Input tensors. + + Returns: + A tuple of processed detections and prototype masks. + """ + + converted_parts = self._collect_converted_parts(x, require_extra=True) + if converted_parts is not None: + converted, used_indices = converted_parts + batch_size, anchor_count = converted.shape[:2] + reducemax_candidate_indices = { + idx + for idx, xi in enumerate(x) + if (normalized := self._normalize_converted_part(xi, 1)) is not None + and normalized.shape[0] == batch_size + and normalized.shape[1] == anchor_count + } + proto_candidates = [] + for idx, xi in enumerate(x): + if idx in used_indices or idx in reducemax_candidate_indices: + continue + proto = xi + if proto.ndim == 3: + proto = proto.unsqueeze(0) + if proto.ndim == 4 and ( + proto.shape[-1] == self.n_extra or proto.shape[1] == self.n_extra + ): + proto_candidates.append(proto) + if len(proto_candidates) == 1: + return converted, proto_candidates[0] + + x = sorted(x, key=lambda x: x.size(), reverse=self.nc < 4) + outputs: list[torch.Tensor] = [] + protos: list[torch.Tensor] = [] + for xi in x: + if xi.shape[-1] == self.n_extra: + protos.append(xi) + else: + outputs.append(xi) + proto = protos.pop(0 if self.nc < 4 else -1) + converted = torch.cat(outputs + protos, dim=-1).squeeze(1) + return converted, proto + + def rearrange(self, x: list[torch.Tensor]) -> tuple[torch.Tensor, torch.Tensor]: + """Rearranges segmentation outputs into detections and prototype masks. + + Args: + x: Raw model output tensors. + + Returns: + A tuple of concatenated detections and prototype masks. + """ + y_det = [] + y_cls = [] + y_ext = [] + for xi in x: # list of bchw outputs + if xi.ndim == 3: + xi = xi[None] + elif xi.ndim == 4: + pass + else: + raise NotImplementedError(f"Got unsupported ndim for input: {xi.ndim}.") + if xi.shape[-1] == self.n_extra: + y_ext.append( + xi.permute(0, 3, 1, 2) + ) # (b, 32, 160, 160), (b, 32, 80, 80), ... + elif xi.shape[-1] == 4: + y_det.append( + xi.permute(0, 3, 1, 2) + ) # (b, 4, 80, 80), (b, 4 ,40, 40), ... + elif xi.shape[-1] == self.nc: + y_cls.append( + xi.permute(0, 3, 1, 2) + ) # (b, 80, 80, 80), (b, 80, 40, 40), ... + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + # sort as box, scores + y_ext = sorted(y_ext, key=lambda x: x.numel(), reverse=True) + proto = y_ext.pop(0).permute(0, 2, 3, 1) + y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) + y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + if not len(y_cls) == len(y_det) == len(y_ext): + raise ValueError( + "Classification, detection, and extra output counts must match." + ) + y = torch.cat( + [ + torch.cat((yi_det, yi_cls, yi_ext), dim=1).flatten(2) + for yi_det, yi_cls, yi_ext in zip(y_det, y_cls, y_ext) + ], + dim=-1, + ) + return y, proto + + +class YOLODFLFreePosePost(YOLOPosePostMixin, YOLODFLFreeDetectionPost): + """Postprocessing for YOLO NMS-free pose estimation models.""" + + def non_e2e(self, x: list[torch.Tensor]) -> torch.Tensor | list[torch.Tensor]: + """Return export-style pose outputs for both converted and raw split heads.""" + + if len(x) in {3, 4}: + converted = cast(torch.Tensor, self.conversion(x)) + return self._stack_topk_outputs(self.filter_conversion(converted)) + + rearranged = self.rearrange(x) + return self.decode_batch(rearranged) + + def _pre_process( + self, x: list[torch.Tensor] + ) -> tuple[list[torch.Tensor], torch.Tensor | None]: + """Preprocesses inputs for pose estimation. + + Args: + x (list[torch.Tensor]): Raw model outputs. + + Returns: + tuple: (processed_detections, None). + """ + if len(x) in {3, 4}: + converted = cast(torch.Tensor, self.conversion(x)) + return self.filter_conversion(converted), None + rearranged = self.rearrange(x) + return self.decode(rearranged), None + + def conversion( + self, x: list[torch.Tensor] + ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: + """Convert input tensors. + Args: + x (list[torch.Tensor]): Input tensors. + Returns: + torch.Tensor: Converted tensor. + """ + converted_parts = self._collect_converted_parts(x, require_extra=True) + if converted_parts is not None: + converted, _ = converted_parts + return converted + + # sort by element number + x = sorted(x, key=lambda x: x.size(), reverse=True) + kpt: torch.Tensor = x.pop(0) + kpt = kpt.permute(0, 3, 1, 2).flatten(-2) + return torch.cat( + [torch.cat(x, dim=-1).squeeze(1), kpt], dim=-1 + ) # [b, 8400, 56] + + def rearrange(self, x: list[torch.Tensor]) -> torch.Tensor: + y_det = [] + y_cls = [] + y_kpt = [] + for xi in x: # list of bchw outputs + if xi.ndim == 3: + xi = xi[None] + elif xi.ndim == 4: + pass + else: + raise NotImplementedError(f"Got unsupported ndim for input: {xi.ndim}.") + if xi.shape[-1] == 4: + y_det.append( + xi.permute(0, 3, 1, 2) + ) # (b, 4, 80, 80), (b, 4 ,40, 40), ... + elif xi.shape[-1] == self.nc: + y_cls.append( + xi.permute(0, 3, 1, 2) + ) # (b, 1, 80, 80), (b, 1, 40, 40), ... + elif xi.shape[-1] == self.n_extra: + y_kpt.append( + xi.permute(0, 3, 1, 2).flatten(2) + ) # (b, 51, 80, 80), (b, 1, 40, 40), ... + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + # sort as box, scores + y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) + y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + y_kpt = sorted( + y_kpt, key=lambda x: x.numel(), reverse=True + ) # (b, 51, 6400), (b, 51, 1600), (b, 51, 400) + y_tmp = [ + torch.cat((yi_det, yi_cls), dim=1).flatten(2) + for (yi_det, yi_cls) in zip( + y_det, y_cls + ) # (b, 65, 6400), (b, 65, 1600), (b, 65, 400) + ] + return torch.cat( + [ + torch.cat((yi_tmp, yi_kpt), dim=1) + for yi_tmp, yi_kpt in zip(y_tmp, y_kpt) + ], + dim=-1, + ) + + def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: + """Processes pose estimation results for a single image. + + Args: + box_cls: Raw detections for one image. + + Returns: + Decoded boxes, scores, and keypoints. + """ + ic = ( + torch.amax(box_cls[-self.nc - self.n_extra : -self.n_extra, :], dim=0) + > self.inv_conf_thres + ) + box_cls = box_cls[:, ic] # (116, *) + if box_cls.numel() == 0: + return torch.zeros( + (0, 4 + self.nc + self.n_extra), dtype=torch.float32 + ) # (0, 56) + anchors = self.anchors_as_tensor() + stride = self.stride_as_tensor() + box, scores, keypoints = torch.split( + box_cls[None], [4, self.nc, self.n_extra], dim=1 + ) # (1, 4, *), (1, 1, *), (1, 51, *) + dbox = ( + dist2bbox( + box, + anchors[:, ic], + xywh=False, + dim=1, + ) + * stride[:, ic] + ) + keypoints = keypoints.view(1, 17, 3, -1) + key_coord, key_conf = torch.split( + keypoints, [2, 1], dim=2 + ) # (1, 17, 2, 8400), (1, 17, 1, 8400) + key_coord = (key_coord + anchors[:, ic]) * stride[:, ic] # (1, 17, 2, *) + keypoints = torch.cat([key_coord, key_conf.sigmoid()], dim=2).view( + 1, self.n_extra, -1 + ) # (1, 51, *) + pre_topk = ( + torch.cat([dbox, scores, keypoints], dim=1).squeeze(0).transpose(0, 1) + ) # (*, 56) + return dual_topk( + pre_topk, + self.nc, + self.n_extra, + conf_thres=self.conf_thres, + score_is_logits=True, + ) + + def decode_batch(self, x: torch.Tensor) -> torch.Tensor: + """Decode every anchor, then apply batched top-k selection for export-style pose output.""" + box, scores, keypoints = torch.split(x, [4, self.nc, self.n_extra], dim=1) + anchors = self.anchors_as_tensor().unsqueeze(0) + stride = self.stride_as_tensor().unsqueeze(0) + dbox = dist2bbox(box, anchors, xywh=False, dim=1) * stride + keypoints = keypoints.view(x.shape[0], 17, 3, -1) + key_coord, key_conf = torch.split(keypoints, [2, 1], dim=2) + key_coord = (key_coord + anchors.unsqueeze(1)) * stride.unsqueeze(1) + keypoints = torch.cat([key_coord, key_conf.sigmoid()], dim=2).view( + x.shape[0], self.n_extra, -1 + ) + decoded = torch.cat([dbox, scores, keypoints], dim=1).transpose(1, 2) + return self._stack_topk_outputs( + [ + dual_topk( + image, + self.nc, + self.n_extra, + max_det=self.max_det, + conf_thres=self.conf_thres, + score_is_logits=True, + ) + for image in decoded + ] + ) + + +class YOLODFLFreeOBBPost(YOLOOBBPostMixin, YOLODFLFreeDetectionPost): + """Postprocessing for DFL-free YOLO OBB models.""" + + def _pre_process( + self, x: list[torch.Tensor] + ) -> tuple[list[torch.Tensor], torch.Tensor | None]: + """Preprocess OBB inputs into row-major detections. + + Args: + x: Raw model outputs. + + Returns: + A tuple of detections and no prototype output. + """ + if len(x) in {1, 3, 5}: + converted = cast(torch.Tensor, self.conversion(x)) + return self.filter_conversion(converted), None + rearranged = self.rearrange(x) + if not isinstance(rearranged, torch.Tensor): + raise TypeError( + "rearrange should return a tensor for DFL-free OBB postprocessing." + ) + return self.decode(rearranged), None + + def conversion( + self, x: list[torch.Tensor] + ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: + """Convert DFL-free OBB outputs to a single tensor. + + Args: + x: Input tensors. + + Returns: + Converted tensor with last dimension ``4 + nc + 1``. + """ + if len(x) == 5: + return decode_split_converted_obb_outputs( + x, + self.nc, + self.n_extra, + self.anchors_as_tensor(), + self.stride_as_tensor(), + ) + return concat_converted_obb_outputs(x, self.nc, self.n_extra) + + def rearrange(self, x: list[torch.Tensor]) -> torch.Tensor: + """Rearrange split raw DFL-free OBB heads. + + Args: + x: Raw model output tensors. + + Returns: + Concatenated tensor in ``(batch, channels, anchors)`` format. + """ + target_count = len(x) // 3 + y_det: list[torch.Tensor] = [] + y_cls: list[torch.Tensor] = [] + y_angle: list[torch.Tensor] = [] + ambiguous: list[tuple[torch.Tensor, list[int]]] = [] + for xi in x: + if xi.ndim == 3: + xi = xi.unsqueeze(0) + elif xi.ndim > 4: + while xi.ndim > 4 and 1 in xi.shape: + xi = xi.squeeze( + next(idx for idx, size in enumerate(xi.shape) if size == 1) + ) + if xi.ndim == 3: + xi = xi.unsqueeze(0) + if xi.ndim != 4: + raise ValueError( + f"Expected 3D or 4D OBB head, got shape {tuple(xi.shape)}." + ) + + candidates: list[tuple[int, torch.Tensor]] = [] + if xi.shape[1] in {4, self.nc, self.n_extra}: + candidates.append((int(xi.shape[1]), xi)) + if xi.shape[-1] in {4, self.nc, self.n_extra}: + candidates.append((int(xi.shape[-1]), xi.permute(0, 3, 1, 2))) + + deduped: list[tuple[int, torch.Tensor]] = [] + seen_channels: set[int] = set() + for channel_count, candidate in candidates: + if channel_count not in seen_channels: + seen_channels.add(channel_count) + deduped.append((channel_count, candidate)) + + if len(candidates) == 2 and len(deduped) == 1: + channel_count, _ = deduped[0] + normalized = xi.permute(0, 3, 1, 2) + if channel_count == 4: + y_det.append(normalized) + elif channel_count == self.nc: + y_cls.append(normalized) + elif channel_count == self.n_extra: + y_angle.append(normalized) + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + elif len(deduped) == 1: + channel_count, normalized = deduped[0] + if channel_count == 4: + y_det.append(normalized) + elif channel_count == self.nc: + y_cls.append(normalized) + elif channel_count == self.n_extra: + y_angle.append(normalized) + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + elif len(deduped) > 1: + ambiguous.append((xi, [channel_count for channel_count, _ in deduped])) + else: + raise ValueError(f"Wrong shape of input: {xi.shape}") + + for xi, channel_options in ambiguous: + if 4 in channel_options and len(y_det) < target_count: + y_det.append(xi if xi.shape[1] == 4 else xi.permute(0, 3, 1, 2)) + continue + if self.nc in channel_options and len(y_cls) < target_count: + y_cls.append(xi if xi.shape[1] == self.nc else xi.permute(0, 3, 1, 2)) + continue + if self.n_extra in channel_options and len(y_angle) < target_count: + y_angle.append( + xi if xi.shape[1] == self.n_extra else xi.permute(0, 3, 1, 2) + ) + continue + raise ValueError(f"Wrong shape of input: {xi.shape}") + + y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) + y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + y_angle = sorted(y_angle, key=lambda x: x.numel(), reverse=True) + if not (len(y_det) == len(y_cls) == len(y_angle)): + raise ValueError("OBB output arguments are not in a proper form.") + return torch.cat( + [ + torch.cat((yi_det, yi_cls, yi_angle), dim=1).flatten(2) + for yi_det, yi_cls, yi_angle in zip(y_det, y_cls, y_angle) + ], + dim=-1, + ) + + def decode_batch(self, x: torch.Tensor) -> torch.Tensor: + """Decode every OBB anchor for export-style output.""" + box, scores, angle = torch.split(x, [4, self.nc, self.n_extra], dim=1) + anchors = self.anchors_as_tensor().unsqueeze(0) + stride = self.stride_as_tensor().unsqueeze(0) + rbox = dist2rbox(box, angle, anchors, dim=1) * stride + return torch.cat([rbox, scores.sigmoid(), angle], dim=1).transpose(1, 2) + + def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: + """Processes raw DFL-free OBB results for one image. + + Args: + box_cls: Raw detections for one image. + + Returns: + Raw OBB rows ``cx, cy, w, h, class scores, angle`` before NMS. + """ + ic = ( + torch.amax(box_cls[-self.nc - self.n_extra : -self.n_extra, :], dim=0) + > self.inv_conf_thres + ) + box_cls = box_cls[:, ic] + if box_cls.numel() == 0: + return torch.zeros( + (0, 4 + self.nc + self.n_extra), dtype=torch.float32, device=self.device + ) + anchors = self.anchors_as_tensor() + stride = self.stride_as_tensor() + box, scores, angle = torch.split( + box_cls[None], [4, self.nc, self.n_extra], dim=1 + ) + rbox = dist2rbox(box, angle, anchors[:, ic], dim=1) * stride[:, ic] + return ( + torch.cat([rbox, scores.sigmoid(), angle], dim=1).squeeze(0).transpose(0, 1) + ) + + def filter_conversion(self, x: torch.Tensor) -> list[torch.Tensor]: + """Filters converted DFL-free OBB outputs. + + Args: + x: Converted output tensor. + + Returns: + Per-image canonical OBB detection rows before rotated NMS. + """ + while x.ndim == 4 and 1 in (x.shape[0], x.shape[1]): + if x.shape[0] == 1: + x = x.squeeze(0) + elif x.shape[1] == 1: + x = x.squeeze(1) + if x.ndim != 3: + raise ValueError( + f"Expected 3D converted tensor, got shape {tuple(x.shape)}." + ) + expected_dim = 4 + self.nc + self.n_extra + if x.shape[-1] == expected_dim: + normalized = x + elif x.shape[1] == expected_dim: + normalized = x.transpose(1, 2) + else: + raise ValueError(f"Unsupported converted tensor shape {tuple(x.shape)}.") + outputs = [] + for xi in normalized: + keep = xi[:, 4 : 4 + self.nc].amax(dim=1) > self.conf_thres + if torch.any(keep): + outputs.append(xi[keep]) + else: + outputs.append( + torch.zeros((0, expected_dim), dtype=xi.dtype, device=xi.device) + ) + return outputs + + def nms( + self, + x: torch.Tensor | list[torch.Tensor], + max_det: int = 300, + max_nms: int = 30000, + max_wh: int = 7680, + ) -> list[torch.Tensor]: + """Apply rotated NMS to DFL-free OBB detections. + + Args: + x: Decoded detections. + max_det: Maximum detections to keep. + max_nms: Maximum candidates to consider. + max_wh: Class offset size. + + Returns: + Per-image OBB detections after rotated NMS. + """ + detections = x if isinstance(x, list) else list(x) + output = [] + for xi in detections: + if xi.numel() == 0: + output.append( + torch.zeros((0, 7), dtype=torch.float32, device=self.device) + ) + continue + if xi.shape[1] == 4 + self.nc + self.n_extra: + xi = yolo_multilabel_candidates( + xi, self.nc, self.n_extra, self.conf_thres + ) + elif xi.shape[1] == 6 + self.n_extra: + xi = xi[xi[:, 4] > self.conf_thres] + else: + raise ValueError(f"Unsupported OBB detection shape {tuple(xi.shape)}.") + if xi.numel() == 0: + output.append( + torch.zeros((0, 7), dtype=torch.float32, device=self.device) + ) + continue + xi = xi[torch.argsort(xi[:, 4], descending=True)[:max_nms]] + c = xi[:, 5:6] * max_wh + boxes = torch.cat([xi[:, :2] + c, xi[:, 2:4], xi[:, 6:7]], dim=-1) + keep = rotated_nms(boxes, xi[:, 4], self.iou_thres)[:max_det] + output.append(xi[keep]) + return output + + +YOLODFLFreePost = YOLODFLFreeDetectionPost diff --git a/mblt_vision/utils/postprocess/yolo_nmsfree_post.py b/mblt_vision/utils/postprocess/yolo_nmsfree_post.py new file mode 100644 index 0000000..e2cdfac --- /dev/null +++ b/mblt_vision/utils/postprocess/yolo_nmsfree_post.py @@ -0,0 +1,176 @@ +""" +YOLO NMS-free postprocessing. +""" + +from __future__ import annotations + +from typing import Any, cast + +import torch + +from .common import dist2bbox, dual_topk +from .yolo_anchorless_post import YOLOAnchorlessDetectionPost, _AnchorlessNMSInput + + +class YOLONMSFreeDetectionPost(YOLOAnchorlessDetectionPost): + """Postprocessing for YOLO NMS-free models.""" + + max_det = 300 + + def non_e2e(self, x: list[torch.Tensor]) -> torch.Tensor: + """Return the export-style output tensor for NMS-free YOLO models.""" + if len(x) == 2: + converted = cast(torch.Tensor, self.conversion(x)) + return self._stack_topk_outputs(self.filter_conversion(converted)) + + rearranged = cast(torch.Tensor, self.rearrange(x)) + return self.decode_batch(rearranged) + + def _stack_topk_outputs(self, outputs: list[torch.Tensor]) -> torch.Tensor: + """Pad or trim per-image detections to a fixed batch tensor.""" + padded_outputs = [] + for output in outputs: + output = output[: self.max_det] + if output.shape[0] < self.max_det: + pad = torch.zeros( + (self.max_det - output.shape[0], 6), + dtype=output.dtype, + device=output.device, + ) + output = torch.cat([output, pad], dim=0) + padded_outputs.append(output) + return torch.stack(padded_outputs, dim=0) + + def decode_batch(self, x: torch.Tensor) -> torch.Tensor: + """Decode every anchor, then apply batched top-k selection for export-style output.""" + box, scores = torch.split(x, [self.reg_max * 4, self.nc], dim=1) + anchors = self.anchors_as_tensor().unsqueeze(0) + stride = self.stride_as_tensor().unsqueeze(0) + dbox = dist2bbox(self.dfl(box), anchors, xywh=False, dim=1) * stride + decoded = torch.cat([dbox, scores], dim=1).transpose(1, 2) + return self._stack_topk_outputs( + [ + dual_topk( + image, + self.nc, + self.n_extra, + max_det=self.max_det, + conf_thres=self.conf_thres, + score_is_logits=True, + ) + for image in decoded + ] + ) + + def _pre_process(self, x: list[torch.Tensor]) -> tuple[Any, torch.Tensor | None]: + """Preprocesses inputs for NMS-free models. + + Args: + x (list[torch.Tensor]): Raw model outputs. + + Returns: + tuple: (processed_detections, None). + """ + if len(x) == 2: + converted = cast(torch.Tensor, self.conversion(x)) + return self.filter_conversion(converted), None + rearranged = cast(torch.Tensor, self.rearrange(x)) + return self.decode(rearranged), None + + def conversion( + self, x: list[torch.Tensor] + ) -> torch.Tensor | tuple[torch.Tensor, torch.Tensor]: + """Convert input tensors. + Args: + x (list[torch.Tensor]): Input tensors. + Returns: + torch.Tensor: Converted tensor. + """ + # sort by element number + x = sorted(x, key=lambda x: x.size(), reverse=self.nc < 4) + return torch.cat(x, dim=-1).squeeze(1) # [b, 8400, 84] + + def filter_conversion(self, x: torch.Tensor) -> list[torch.Tensor]: + """Filters out low-confidence detections from a single output tensor. + + Args: + x (torch.Tensor): Model output tensor. + + Returns: + list[torch.Tensor]: Decoded and filtered outputs for each image. + """ + x_list = torch.split(x, 1, dim=0) # [(1, 8400, 84), (1, 8400, 84), ...] + + return [ + dual_topk(xi.squeeze(0), self.nc, self.n_extra, conf_thres=self.conf_thres) + for xi in x_list + ] + + def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: + """Processes detection results for a single image. + + Args: + box_cls: Raw detections for one image. + + Returns: + Decoded and top-k filtered detections. + """ + ic = torch.amax(box_cls[-self.nc :, :], dim=0) > self.inv_conf_thres + box_cls = box_cls[:, ic] # (144, *) + if box_cls.numel() == 0: + return torch.zeros((0, 6), dtype=torch.float32) # (0, 6) + anchors = self.anchors_as_tensor() + stride = self.stride_as_tensor() + box, scores = torch.split( + box_cls[None], [self.reg_max * 4, self.nc], dim=1 + ) # (1, 64, *), (1, 80, *) + dbox = ( + dist2bbox( + self.dfl(box), + anchors[:, ic], + xywh=False, + dim=1, + ) + * stride[:, ic] + ) + pre_topk = ( + torch.cat([dbox, scores], dim=1).squeeze(0).transpose(0, 1) + ) # (*, 84) + return dual_topk( + pre_topk, + self.nc, + self.n_extra, + conf_thres=self.conf_thres, + score_is_logits=True, + ) + + def nms( + self, + x: _AnchorlessNMSInput | torch.Tensor | list[torch.Tensor], + max_det: int = 300, + max_nms: int = 30000, + max_wh: int = 7680, + multi_label: bool = False, + ) -> list[torch.Tensor]: + """Perform Non-Maximum Suppression (no-op for NMS-free models). + + Args: + x: Decoded detections, optionally with source-layout provenance. + max_det (int, optional): Maximum number of detections to keep. Defaults to 300. + max_nms (int, optional): Maximum candidates for NMS. Defaults to 30000. + max_wh (int, optional): Maximum box width/height. Defaults to 7680. + multi_label: Ignored because NMS-free outputs already select one + class per candidate. + + Returns: + list[torch.Tensor]: Per-image detections with padded zero rows removed. + """ + del max_det, max_nms, max_wh, multi_label + if isinstance(x, _AnchorlessNMSInput): + x = x.detections + if isinstance(x, list): + return x + return [xi[xi[:, 4] > 0] for xi in x] + + +YOLONMSFreePost = YOLONMSFreeDetectionPost diff --git a/mblt_vision/utils/preprocess/__init__.py b/mblt_vision/utils/preprocess/__init__.py new file mode 100644 index 0000000..497dcea --- /dev/null +++ b/mblt_vision/utils/preprocess/__init__.py @@ -0,0 +1,27 @@ +""" +Preprocessing utilities for vision models. +""" + +from .base import PreBase, PreOps +from .build_pre import build_preprocess +from .center_crop import CenterCrop +from .letterbox import LetterBox, letterbox_semantic_mask +from .normalize import Normalize +from .order import SetOrder +from .reader import Reader +from .resize import Resize +from .yolo_pre import YoloPre + +__all__ = [ + "CenterCrop", + "LetterBox", + "Normalize", + "PreBase", + "PreOps", + "Reader", + "Resize", + "SetOrder", + "YoloPre", + "build_preprocess", + "letterbox_semantic_mask", +] diff --git a/mblt_vision/utils/preprocess/_validation.py b/mblt_vision/utils/preprocess/_validation.py new file mode 100644 index 0000000..fff82ae --- /dev/null +++ b/mblt_vision/utils/preprocess/_validation.py @@ -0,0 +1,32 @@ +"""Validation helpers shared by image preprocessing operations.""" + +from __future__ import annotations + +from collections.abc import Sequence + + +def normalize_image_size(size: int | Sequence[int], *, name: str = "size") -> list[int]: + """Normalize a positive scalar or two-dimensional image size to ``[height, width]``.""" + + if isinstance(size, bool): + raise TypeError( + f"{name} must be a positive integer or a two-item integer sequence, got bool." + ) + if isinstance(size, int): + if size <= 0: + raise ValueError(f"{name} must be positive, got {size}.") + return [size, size] + if isinstance(size, Sequence) and not isinstance(size, (str, bytes)): + if len(size) != 2: + raise ValueError(f"{name} must contain exactly two items, got {size!r}.") + if not all( + isinstance(value, int) and not isinstance(value, bool) for value in size + ): + raise TypeError(f"{name} items must be integers, got {size!r}.") + normalized = [int(size[0]), int(size[1])] + if any(value <= 0 for value in normalized): + raise ValueError(f"{name} items must be positive, got {size!r}.") + return normalized + raise TypeError( + f"{name} must be a positive integer or a two-item integer sequence, got {type(size).__name__}." + ) diff --git a/mblt_vision/utils/preprocess/base.py b/mblt_vision/utils/preprocess/base.py new file mode 100644 index 0000000..520c23e --- /dev/null +++ b/mblt_vision/utils/preprocess/base.py @@ -0,0 +1,157 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod +from typing import Any + +import torch + + +def _spatial_shape(value: Any) -> tuple[int, int] | None: + """Return the height and width of image-like preprocessing input.""" + + shape = getattr(value, "shape", None) + if shape is None or len(shape) < 2: + return None + if len(shape) == 2: + return int(shape[0]), int(shape[1]) + if len(shape) == 3 and int(shape[-1]) in {1, 3, 4}: + return int(shape[0]), int(shape[1]) + return int(shape[-2]), int(shape[-1]) + + +class PreOps(ABC): + """Abstract base class for individual preprocessing operations. + + Attributes: + device: The torch device where tensors should be placed. + """ + + def __init__(self) -> None: + """Initializes the preprocessing operation.""" + super().__init__() + self.device = torch.device("cpu") + + @abstractmethod + def __call__( + self, + x: Any, + ) -> Any: + """Executes the preprocess operation. + + Args: + x: Input data to be processed. + + Returns: + Processed data. + """ + + def to( + self, + device: str | torch.device, + ) -> None: + """Move the operation to the specified device. + + Args: + device: Device to move the operation to. + """ + if isinstance(device, str): + self.device = torch.device(device) + elif isinstance(device, torch.device): + self.device = device + else: + raise TypeError(f"Got unexpected type for device={type(device)}.") + for name, value in self.__dict__.items(): + if isinstance(value, torch.Tensor): + setattr(self, name, value.to(self.device)) + + +class PreBase: + """Base class for orchestrating a series of preprocessing operations. + + Attributes: + Ops: List of ordered PreOps instances to be applied. + device: The torch device being used. + """ + + def __init__( + self, + Ops: list[PreOps], + ) -> None: + """Initializes the PreBase class with a list of operations. + + Args: + Ops: List of ordered PreOps instances to be applied. + """ + self.Ops = Ops + self._check_ops() + self.device = torch.device("cpu") + + def _check_ops(self) -> None: + """Check if the operations are valid.""" + for op in self.Ops: + if not isinstance(op, PreOps): + raise TypeError(f"Got unsupported type={type(op)}.") + + def __call__( + self, + x: Any, + ) -> Any: + """Applies the sequence of preprocessing operations to the input. + + Args: + x: Initial input data. + + Returns: + Fully processed data. + """ + for op in self.Ops: + x = op(x) + return x + + def with_metadata( + self, + x: Any, + ) -> tuple[Any, dict[str, Any]]: + """Apply preprocessing and return metadata produced by preprocessing operations. + + Args: + x: Initial input data. + + Returns: + A tuple of the processed data and collected metadata. + """ + metadata: dict[str, Any] = {} + img0_shape = _spatial_shape(x) + if img0_shape is not None: + metadata["img0_shape"] = img0_shape + for op in self.Ops: + x = op(x) + if "img0_shape" not in metadata: + img0_shape = _spatial_shape(x) + if img0_shape is not None: + metadata["img0_shape"] = img0_shape + ratio_pad = getattr(op, "ratio_pad", None) + if ratio_pad is not None: + metadata["ratio_pad"] = ratio_pad + return x, metadata + + def to( + self, + device: str | torch.device, + ) -> None: + """Move the operations to the specified device. + + Args: + device: Device to move the operations to. + """ + if isinstance(device, str): + self.device = torch.device(device) + elif isinstance(device, torch.device): + self.device = device + else: + raise TypeError(f"Got unexpected type for device={type(device)}.") + for name, value in self.__dict__.items(): + if isinstance(value, torch.Tensor): + setattr(self, name, value.to(self.device)) + for op in self.Ops: + op.to(self.device) diff --git a/mblt_vision/utils/preprocess/build_pre.py b/mblt_vision/utils/preprocess/build_pre.py new file mode 100644 index 0000000..3dcc432 --- /dev/null +++ b/mblt_vision/utils/preprocess/build_pre.py @@ -0,0 +1,48 @@ +""" +Preprocessing builder. +""" + +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any + +from .base import PreBase +from .center_crop import CenterCrop +from .letterbox import LetterBox +from .normalize import Normalize +from .order import SetOrder +from .reader import Reader +from .resize import Resize + + +def build_preprocess( + pre_cfg: Mapping[str, Mapping[str, Any]], +) -> PreBase: + """Builds a preprocessing pipeline based on the configuration. + + Args: + pre_cfg: Preprocessing configuration mapping operations to attributes. + + Returns: + An orchestrator for the sequence of preprocessing steps. + """ + res = [] + for pre_type, pre_attr in pre_cfg.items(): + pre_type_lower = pre_type.lower() + if pre_type_lower == Reader.__name__.lower(): + res.append(Reader(**pre_attr)) + elif pre_type_lower == Resize.__name__.lower(): + res.append(Resize(**pre_attr)) + elif pre_type_lower == CenterCrop.__name__.lower(): + res.append(CenterCrop(**pre_attr)) + elif pre_type_lower == SetOrder.__name__.lower(): + res.append(SetOrder(**pre_attr)) + elif pre_type_lower == LetterBox.__name__.lower(): + res.append(LetterBox(**pre_attr)) + elif pre_type_lower == Normalize.__name__.lower(): + res.append(Normalize(**pre_attr)) + else: + raise ValueError(f"Got unsupported pre_type={pre_type}.") + + return PreBase(res) diff --git a/mblt_vision/utils/preprocess/center_crop.py b/mblt_vision/utils/preprocess/center_crop.py new file mode 100644 index 0000000..5ea1cfa --- /dev/null +++ b/mblt_vision/utils/preprocess/center_crop.py @@ -0,0 +1,75 @@ +""" +Center crop preprocessing. +""" + +from __future__ import annotations + +import cv2 +import numpy as np +import torch +from PIL import Image + +from ..types import TensorLike +from ._validation import normalize_image_size +from .base import PreOps + + +class CenterCrop(PreOps): + """ + Center crop the image to a specified size. + """ + + def __init__(self, size: int | list[int] | tuple[int, int]) -> None: + """Initializes the CenterCrop operation. + + Args: + size (int | list[int]): Target size [h, w]. If int, size is [size, size]. + """ + super().__init__() + self.size = normalize_image_size(size) + + def __call__(self, x: TensorLike | Image.Image) -> np.ndarray: + """Applies center crop to the image. + + Args: + x (np.ndarray | torch.Tensor | Image.Image): Input image. + + Returns: + np.ndarray: Center-cropped image in HWC format. + """ + if isinstance(x, torch.Tensor): + image = x.cpu().numpy() + elif isinstance(x, Image.Image): + image = np.array(x) + elif isinstance(x, np.ndarray): + image = x + else: + raise TypeError( + f"CenterCrop expects a NumPy array, tensor, or PIL image, got {type(x).__name__}." + ) + if image.ndim != 3: + raise ValueError( + f"CenterCrop expects a three-dimensional image, got shape {image.shape}." + ) + H, W = image.shape[:2] + if (self.size[0] == H) and (self.size[1] == W): + return image + elif (self.size[1] > W) or (self.size[0] > H): + image = cv2.copyMakeBorder( + image, + (self.size[0] - H) // 2 if self.size[0] > H else 0, + (self.size[0] - H + 1) // 2 if self.size[0] > H else 0, + (self.size[1] - W) // 2 if self.size[1] > W else 0, + (self.size[1] - W + 1) // 2 if self.size[1] > W else 0, + cv2.BORDER_CONSTANT, + value=(0.0,), + ) + H, W = image.shape[:2] + crop_top = round((H - self.size[0]) / 2.0) + crop_left = round((W - self.size[1]) / 2.0) + image = image[ + crop_top : crop_top + self.size[0], + crop_left : crop_left + self.size[1], + :, + ] + return image.astype(np.uint8) diff --git a/mblt_vision/utils/preprocess/letterbox.py b/mblt_vision/utils/preprocess/letterbox.py new file mode 100644 index 0000000..e6d11b6 --- /dev/null +++ b/mblt_vision/utils/preprocess/letterbox.py @@ -0,0 +1,120 @@ +from __future__ import annotations + +import cv2 +import numpy as np +import torch + +from ..letterbox import LetterBoxGeometry, RatioPad +from ..types import TensorLike +from ._validation import normalize_image_size +from .base import PreOps + + +def _apply_letterbox( + image: np.ndarray, + img_size: list[int], + interpolation: int, + padding_value: int | tuple[int, int, int], +) -> tuple[np.ndarray, RatioPad]: + """Resize and pad an array while preserving its aspect ratio. + + Args: + image: Image or two-dimensional semantic mask. + img_size: Target size as ``[height, width]``. + interpolation: OpenCV interpolation mode. + padding_value: Constant border value. + + Returns: + The letterboxed array and its resize/padding metadata. + """ + + input_shape = (int(img_size[0]), int(img_size[1])) + original_shape = (int(image.shape[0]), int(image.shape[1])) + geometry = LetterBoxGeometry.from_shapes(input_shape, original_shape) + resized_height, resized_width = geometry.resized_shape + if image.shape[:2] != geometry.resized_shape: + image = cv2.resize( + image, (resized_width, resized_height), interpolation=interpolation + ) + top, bottom, left, right = geometry.borders + image = cv2.copyMakeBorder( + image, + top, + bottom, + left, + right, + cv2.BORDER_CONSTANT, + value=padding_value, + ) + return image, geometry.ratio_pad + + +def letterbox_semantic_mask( + mask: np.ndarray, + img_size: list[int], + ignore_label: int = 255, +) -> tuple[np.ndarray, RatioPad]: + """Letterbox a semantic mask without interpolating class IDs. + + Args: + mask: Two-dimensional semantic class map. + img_size: Target size as ``[height, width]``. + ignore_label: Class value used for padded pixels. + + Returns: + The letterboxed mask and its resize/padding metadata. + + Raises: + ValueError: If the mask is not two-dimensional. + """ + + if mask.ndim != 2: + raise ValueError( + f"Semantic masks must be two-dimensional, got shape {mask.shape}." + ) + return _apply_letterbox(mask, img_size, cv2.INTER_NEAREST, ignore_label) + + +class LetterBox(PreOps): + """Preprocessing for YOLO models, implementing letterbox resizing. + + Resizes the image while maintaining aspect ratio, adding padding to meet + target dimensions. Based on Ultralytics implementation. + + Ref: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/data/augment.py#L1535 + """ + + def __init__(self, img_size: list[int]) -> None: + """Initializes LetterBox with target image size. + + Args: + img_size (list[int]): Target image size [h, w]. + """ + super().__init__() + self.img_size = normalize_image_size(img_size, name="img_size") + self.ratio_pad: tuple[tuple[float, float], tuple[float, float]] | None = None + + def __call__(self, x: TensorLike) -> torch.Tensor: + """Executes YOLO preprocessing (letterbox resizing). + + Args: + x (TensorLike): Input image. + + Returns: + torch.Tensor: Preprocessed image in HWC format on the selected device. + """ + if isinstance(x, torch.Tensor): + x = x.cpu().numpy() + elif not isinstance(x, np.ndarray): + raise TypeError( + f"LetterBox expects a NumPy array or tensor, got {type(x).__name__}." + ) + if x.ndim != 3: + raise ValueError(f"LetterBox expects an HWC image, got shape {x.shape}.") + img, self.ratio_pad = _apply_letterbox( + x, + self.img_size, + cv2.INTER_LINEAR, + (114, 114, 114), + ) + return torch.from_numpy(img).to(self.device).byte() diff --git a/mblt_vision/utils/preprocess/normalize.py b/mblt_vision/utils/preprocess/normalize.py new file mode 100644 index 0000000..8d7316b --- /dev/null +++ b/mblt_vision/utils/preprocess/normalize.py @@ -0,0 +1,78 @@ +"""Normalization operation for image preprocessing.""" + +from __future__ import annotations + +import numpy as np +import torch +from PIL import Image + +from ..types import TensorLike +from .base import PreOps + +STYLE_PARAMS = { + "torch": ([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]), + "tf": ([0.5, 0.5, 0.5], [0.5, 0.5, 0.5]), + "openai": ( + [0.48145466, 0.4578275, 0.40821073], + [0.26862954, 0.26130258, 0.27577711], + ), + "cv": ([0.0, 0.0, 0.0], [1.0, 1.0, 1.0]), +} +STYLE_LIST = list(STYLE_PARAMS.keys()) + + +class Normalize(PreOps): + """Normalization layer to scale and shift image data. + + Attributes: + style: Data source style (e.g., 'torch', 'tf', 'openai', 'cv'). + mean: Array of mean values for normalization. + std: Array of standard deviation values for normalization. + """ + + def __init__(self, style: str) -> None: + """Initializes the Normalize layer with a specific style. + + Args: + style: The preprocessing style to use. Must be one of STYLE_LIST. + """ + super().__init__() + + if not isinstance(style, str): + raise TypeError( + f"Normalize style must be a string, got {type(style).__name__}." + ) + if style.lower() not in STYLE_LIST: + raise ValueError( + f"Unsupported Normalize style {style!r}; expected one of {STYLE_LIST}." + ) + + self.style = style.lower() + mean, std = STYLE_PARAMS[self.style] + self.mean = np.array(mean) + self.std = np.array(std) + + def __call__(self, x: TensorLike | Image.Image) -> np.ndarray: + """Applies normalization to the input image or tensor. + + Args: + x (TensorLike | Image.Image): Input data as a torch.Tensor, PIL Image, or numpy-like array. + + Returns: + np.ndarray: The normalized image as a float32 numpy array. + """ + if isinstance(x, torch.Tensor): + x = x.cpu().numpy() + elif isinstance(x, Image.Image): + x = np.array(x) + elif not isinstance(x, np.ndarray): + raise TypeError( + f"Normalize expects a NumPy array, tensor, or PIL image, got {type(x).__name__}." + ) + if x.ndim != 3: + raise ValueError( + f"Normalize expects a three-dimensional image, got shape {x.shape}." + ) + x = x.astype(np.float32) / 255.0 + x = (x - self.mean) / self.std + return x.astype(np.float32) diff --git a/mblt_vision/utils/preprocess/order.py b/mblt_vision/utils/preprocess/order.py new file mode 100644 index 0000000..d4931bd --- /dev/null +++ b/mblt_vision/utils/preprocess/order.py @@ -0,0 +1,74 @@ +""" +Channel order preprocessing. +""" + +from __future__ import annotations + +import numpy as np +import torch + +from ..types import TensorLike +from .base import PreOps + + +class SetOrder(PreOps): + """Sets the channel order of the image to either HWC or CHW format.""" + + def __init__(self, shape: str = "HWC") -> None: + """Initializes the SetOrder operation. + + Args: + shape (str, optional): Target channel order, either "HWC" or "CHW". + Defaults to "HWC". + """ + super().__init__() + if not isinstance(shape, str): + raise TypeError( + f"SetOrder shape must be a string, got {type(shape).__name__}." + ) + if shape.lower() not in {"hwc", "chw"}: + raise ValueError( + f"Unsupported channel order {shape!r}; expected 'HWC' or 'CHW'." + ) + self.shape = shape.lower() + + def __call__(self, x: TensorLike) -> TensorLike: + """Reorders the dimensions of the input image. + + Args: + x (TensorLike): Input image of shape (3, H, W) or (H, W, 3). + + Returns: + TensorLike: Image with the specified channel order. + """ + if not isinstance(x, (np.ndarray, torch.Tensor)): + raise TypeError( + f"SetOrder expects a NumPy array or tensor, got {type(x).__name__}." + ) + if x.ndim != 3: + raise ValueError( + f"SetOrder expects a three-dimensional color image, got shape {x.shape}." + ) + channels_first = x.shape[0] == 3 + channels_last = x.shape[-1] == 3 + if channels_first and channels_last: + raise ValueError( + f"SetOrder cannot infer channel order from ambiguous shape {x.shape}." + ) + if channels_first: + cdim = 0 + elif channels_last: + cdim = 2 + else: + raise ValueError( + f"SetOrder expects HWC or CHW data with three channels, got shape {x.shape}." + ) + if cdim == 0 and self.shape == "hwc": + if isinstance(x, torch.Tensor): + return torch.permute(x, (1, 2, 0)) + return np.transpose(x, (1, 2, 0)) + elif cdim == 2 and self.shape == "chw": + if isinstance(x, torch.Tensor): + return torch.permute(x, (2, 0, 1)) + return np.transpose(x, (2, 0, 1)) + return x diff --git a/mblt_vision/utils/preprocess/reader.py b/mblt_vision/utils/preprocess/reader.py new file mode 100644 index 0000000..69a83e7 --- /dev/null +++ b/mblt_vision/utils/preprocess/reader.py @@ -0,0 +1,85 @@ +""" +Image reader preprocessing. +""" + +from __future__ import annotations + +from pathlib import Path + +import cv2 +import numpy as np +import torch +from PIL import Image + +from ..types import TensorLike +from .base import PreOps + + +class Reader(PreOps): + """ + Reader for loading images from file paths or converting existing objects. + Supports "pil" and "numpy" reading styles. + """ + + def __init__(self, style: str) -> None: + """Initializes the Reader operation. + + Args: + style (str): Reading style, either "pil" or "numpy". + """ + super().__init__() + if not isinstance(style, str): + raise TypeError( + f"Reader style must be a string, got {type(style).__name__}." + ) + if style.lower() not in {"pil", "numpy"}: + raise ValueError( + f"Unsupported Reader style {style!r}; expected 'pil' or 'numpy'." + ) + self.style = style.lower() + + def __call__( + self, x: str | Path | TensorLike | Image.Image + ) -> np.ndarray | Image.Image: + """Reads/converts the input into an image object. + + Args: + x (str | Path | TensorLike | Image.Image): Input image path or image object. + + Returns: + np.ndarray | Image.Image: Read image in the specified style. + """ + if self.style == "numpy": + if isinstance(x, np.ndarray): + return x + elif isinstance(x, torch.Tensor): + return x.cpu().numpy() + elif isinstance(x, (str, Path)): + image = cv2.imread(str(x)) + if image is None: + raise FileNotFoundError(f"Image not found: {x}") + return cv2.cvtColor(image, cv2.COLOR_BGR2RGB) + elif isinstance(x, Image.Image): + return np.array(x) + else: + raise TypeError( + f"Reader(style='numpy') does not support input type {type(x).__name__}." + ) + elif self.style == "pil": + if isinstance(x, np.ndarray): + return Image.fromarray(x.astype(np.uint8)) + elif isinstance(x, torch.Tensor): + x = x.cpu().numpy() + return Image.fromarray(x.astype(np.uint8)) + elif isinstance(x, (str, Path)): + return Image.open(x).convert("RGB") + elif isinstance(x, Image.Image): + return x + else: + raise TypeError( + f"Reader(style='pil') does not support input type {type(x).__name__}." + ) + else: + raise RuntimeError( + f"Reader has an invalid validated style: {self.style!r}." + ) diff --git a/mblt_vision/utils/preprocess/resize.py b/mblt_vision/utils/preprocess/resize.py new file mode 100644 index 0000000..5115095 --- /dev/null +++ b/mblt_vision/utils/preprocess/resize.py @@ -0,0 +1,190 @@ +""" +Image resizing preprocessing. +""" + +from __future__ import annotations + +import numpy as np +import torch +import torch.nn.functional as F +from PIL import Image + +from ..types import TensorLike +from ._validation import normalize_image_size +from .base import PreOps + +PIL_INTERP_CODES = { + "nearest": Image.Resampling.NEAREST, + "bilinear": Image.Resampling.BILINEAR, + "bicubic": Image.Resampling.BICUBIC, + "box": Image.Resampling.BOX, + "hamming": Image.Resampling.HAMMING, + "lanczos": Image.Resampling.LANCZOS, +} + + +class Resize(PreOps): + """Resizes the image to a specified size using various interpolation modes. + + Supports PyTorch tensors in CHW or BCHW format, HWC NumPy arrays, and PIL images. + """ + + def __init__( + self, + size: int | list[int], + interpolation: str, + ) -> None: + """ + Initialize the Resize operation. + Args: + size (int | list[int]): Target size. If int, the shorter edge is resized to this size + maintaining aspect ratio. If [h, w], it is resized to exactly this size. + interpolation (str): Interpolation mode (e.g., "bilinear", "bicubic", "nearest"). + """ + # Note that this behaves different for npy image and PIL image + super().__init__() + self.size = ( + size + if isinstance(size, int) and not isinstance(size, bool) + else normalize_image_size(size) + ) + if isinstance(self.size, int) and self.size <= 0: + raise ValueError(f"size must be positive, got {self.size}.") + if interpolation not in PIL_INTERP_CODES: + raise ValueError( + f"Unsupported resize interpolation {interpolation!r}; expected one of {sorted(PIL_INTERP_CODES)}." + ) + self.interpolation = interpolation + + def __call__( + self, x: TensorLike | Image.Image + ) -> np.ndarray | torch.Tensor | Image.Image: + """Resizes the input image. + + Args: + x (TensorLike | Image.Image): Image to be resized. + + Returns: + np.ndarray | torch.Tensor | Image.Image: Resized image in the same format as input. + + Raises: + TypeError: If input type is not supported. + ValueError: If a NumPy input is not HWC or a tensor input is not CHW or BCHW. + """ + if isinstance(x, np.ndarray): + if x.ndim != 3: + raise ValueError( + f"Expected an HWC NumPy array, but got x.shape={x.shape}." + ) + img_h, img_w = x.shape[:2] + new_h, new_w = self._compute_resized_output_size(img_h, img_w) + if [img_h, img_w] == [new_h, new_w]: + return x + + tensor_x = torch.from_numpy(x).to(self.device) + tensor_x = tensor_x.permute(2, 0, 1) + tensor_x, need_cast, need_squeeze, out_dtype = self._cast_squeeze_in( + tensor_x, [torch.float32, torch.float64] + ) + tensor_x = F.interpolate( + tensor_x, + size=(new_h, new_w), + mode=self.interpolation, + align_corners=( + False if self.interpolation in ["bilinear", "bicubic"] else None + ), + antialias=self.interpolation in ["bilinear", "bicubic"], + ) + tensor_x = self._cast_squeeze_out( + tensor_x, need_cast, need_squeeze, out_dtype + ) + return tensor_x.permute(1, 2, 0).cpu().numpy() + elif isinstance(x, torch.Tensor): + tensor_x = x.to(self.device) + elif isinstance(x, Image.Image): + img_w, img_h = x.size + new_h, new_w = self._compute_resized_output_size(img_h, img_w) + if [img_h, img_w] == [new_h, new_w]: + return x + return x.resize( + size=(new_w, new_h), + resample=PIL_INTERP_CODES[self.interpolation], + ) + else: + raise TypeError(f"Got unexpected type for x={type(x)}.") + + if tensor_x.ndim not in (3, 4): + raise ValueError( + f"Expected a CHW or BCHW tensor, but got x.shape={tensor_x.shape}." + ) + img_h, img_w = tensor_x.shape[-2:] + new_h, new_w = self._compute_resized_output_size(img_h, img_w) + if [img_h, img_w] == [new_h, new_w]: + return tensor_x + tensor_x, need_cast, need_squeeze, out_dtype = self._cast_squeeze_in( + tensor_x, [torch.float32, torch.float64] + ) + tensor_x = F.interpolate( + tensor_x, + size=(new_h, new_w), + mode=self.interpolation, + align_corners=( + False if self.interpolation in ["bilinear", "bicubic"] else None + ), + antialias=self.interpolation in ["bilinear", "bicubic"], + ) + tensor_x = self._cast_squeeze_out(tensor_x, need_cast, need_squeeze, out_dtype) + return tensor_x.to(self.device) + + def _compute_resized_output_size(self, img_h: int, img_w: int) -> list[int]: + if isinstance(self.size, int): + # to match the shortest side to self.size with the same ratio + if img_w <= img_h: + new_w = self.size + new_h = int(self.size * img_h / img_w) + else: + new_h = self.size + new_w = int(self.size * img_w / img_h) + elif isinstance(self.size, list): + new_h, new_w = self.size + else: + raise RuntimeError(f"Resize has an invalid validated size: {self.size!r}.") + return [new_h, new_w] + + def _cast_squeeze_in( + self, img: torch.Tensor, req_dtypes: list[torch.dtype] + ) -> tuple[torch.Tensor, bool, bool, torch.dtype]: + need_squeeze = False + # make image NCHW + if img.ndim < 4: + img = img.unsqueeze(dim=0) + need_squeeze = True + out_dtype = img.dtype + need_cast = False + if out_dtype not in req_dtypes: + need_cast = True + req_dtype = req_dtypes[0] + img = img.to(req_dtype) + return img, need_cast, need_squeeze, out_dtype + + def _cast_squeeze_out( + self, + img: torch.Tensor, + need_cast: bool, + need_squeeze: bool, + out_dtype: torch.dtype, + ) -> torch.Tensor: + if need_squeeze: + img = img.squeeze(dim=0) + if need_cast: + if out_dtype in ( + torch.uint8, + torch.int8, + torch.int16, + torch.int32, + torch.int64, + ): + # it is better to round before cast + img = torch.round(img) + img = img.to(out_dtype) + return img diff --git a/mblt_vision/utils/preprocess/yolo_pre.py b/mblt_vision/utils/preprocess/yolo_pre.py new file mode 100644 index 0000000..f2fc151 --- /dev/null +++ b/mblt_vision/utils/preprocess/yolo_pre.py @@ -0,0 +1,7 @@ +"""Compatibility name for the extracted letterbox operation.""" + +from .letterbox import LetterBox + +YoloPre = LetterBox + +__all__ = ["YoloPre"] diff --git a/mblt_vision/utils/results.py b/mblt_vision/utils/results.py new file mode 100644 index 0000000..36d769f --- /dev/null +++ b/mblt_vision/utils/results.py @@ -0,0 +1,722 @@ +""" +Results processing and plotting. +""" + +from __future__ import annotations + +from collections.abc import Sequence +from pathlib import Path +from typing import cast + +import cv2 +import numpy as np +import torch +from PIL import Image + +from .._tasks import normalize_vision_task +from .datasets import ( + get_ade20k_palette, + get_cityscapes_palette, + get_coco_det_palette, + get_coco_keypoint_palette, + get_coco_label, + get_coco_limb_palette, + get_coco_pose_skeleton, + get_dotav1_label, + get_dotav1_palette, + get_imagenet_label, +) +from .letterbox import LetterBoxGeometry +from mblt_vision.utils.postprocess.common import ( + crop_mask, + scale_boxes, + scale_coords, + scale_masks, + scale_rboxes, + xywhr2xyxyxyxy, +) +from .types import ListTensorLike, NestedListTensorLike, TensorLike + +LW = 2 # line width +RADIUS = 5 # circle radius +ALPHA = 0.3 # alpha for overlay +DENSE_OVERLAY_ALPHA = 0.6 + + +class Results: + """Handle, process, and plot model inference results.""" + + def __init__( + self, + pre_cfg: dict, + post_cfg: dict, + output: TensorLike | ListTensorLike | NestedListTensorLike, + **kwargs, + ) -> None: + """ + Initializes the Results object. + Args: + pre_cfg (dict): Preprocessing configuration. + post_cfg (dict): Postprocessing configuration. + output (TensorLike | ListTensorLike | NestedListTensorLike): Raw model output. + **kwargs: Additional arguments. + """ + self.pre_cfg = pre_cfg + self.post_cfg = post_cfg + self.task = normalize_vision_task(post_cfg["task"]) + self.conf_thres = kwargs.get("conf_thres", 0.25) + self.acc: torch.Tensor | np.ndarray | None = None + self.box_cls: torch.Tensor | np.ndarray | None = None + self.mask: torch.Tensor | np.ndarray | None = None + self.depth: torch.Tensor | np.ndarray | list[TensorLike] | None = None + self.semantic_mask: torch.Tensor | np.ndarray | list[TensorLike] | None = None + self.output: TensorLike | ListTensorLike | NestedListTensorLike | None = None + self.labels: torch.Tensor | None = None + self.scores: torch.Tensor | None = None + self.boxes: torch.Tensor | None = None + self.rboxes: torch.Tensor | None = None + self.kpts: torch.Tensor | None = None + self.set_output(output) + + def _read_image( + self, source_path: str | Path | np.ndarray | Image.Image + ) -> np.ndarray: + """ + Internal method to read an image from various input types and convert to BGR format. + Args: + source_path (str | np.ndarray | Image.Image): Path to image or image object. + Returns: + np.ndarray: Image in BGR format (cv2 style). + """ + source_img = None + if isinstance(source_path, Image.Image): # PIL image open + source_img = source_path.convert("RGB") + source_img = np.array(source_img) + source_img = cv2.cvtColor(source_img, cv2.COLOR_RGB2BGR) + elif isinstance(source_path, np.ndarray): + source_img = np.array(source_path) + if source_img.ndim != 3 or source_img.shape[2] != 3: + raise ValueError( + f"Image arrays must have HWC shape with three channels, got {source_img.shape}." + ) + elif isinstance(source_path, (str, Path)): + image_path = Path(source_path) + if not image_path.is_file(): + raise FileNotFoundError(f"Image file not found: {image_path}") + source_img = cv2.imread(str(image_path), cv2.IMREAD_COLOR) + else: + raise TypeError( + f"Unsupported image source type: {type(source_path).__name__}." + ) + if source_img is None: + raise ValueError(f"Failed to decode image from {source_path!r}.") + return source_img + + @staticmethod + def _save_image(save_path: str | Path, image: np.ndarray) -> None: + """Save an image and report encoder or filesystem failures.""" + + path = Path(save_path) + if path.parent != Path("."): + path.parent.mkdir(parents=True, exist_ok=True) + if not cv2.imwrite(str(path), image): + raise OSError(f"Failed to write result image: {path}") + + def set_output( + self, output: TensorLike | ListTensorLike | NestedListTensorLike + ) -> None: + """ + Sets variables from the raw model output based on the task. + Args: + output (TensorLike | ListTensorLike | NestedListTensorLike): Raw model output. + Raises: + NotImplementedError: If the task is not supported. + """ + self.acc = None + self.box_cls = None + self.mask = None + self.depth = None + self.semantic_mask = None + if self.task == "image_classification": + if not isinstance(output, (np.ndarray, torch.Tensor)): + raise TypeError( + f"Expected tensor output for task {self.task}, got {type(output).__name__}." + ) + self.acc = cast(TensorLike, output) + elif self.task in { + "object_detection", + "face_detection", + "pose_estimation", + "obb", + }: + if not isinstance(output, Sequence): + raise TypeError( + f"Expected list output for task {self.task}, got {type(output).__name__}." + ) + if len(output) == 0: + raise ValueError( + f"Expected a non-empty output list for task {self.task}." + ) + if not isinstance(output[0], (np.ndarray, torch.Tensor)): + raise TypeError( + f"Expected a tensor as the first output for task {self.task}, got {type(output[0]).__name__}." + ) + self.box_cls = cast(TensorLike, output[0]) + elif self.task == "instance_segmentation": + if not isinstance(output, Sequence): + raise TypeError( + f"Expected nested list output for task {self.task}, got {type(output).__name__}." + ) + if len(output) == 0: + raise ValueError( + f"Expected a non-empty output list for task {self.task}." + ) + if not isinstance(output[0], Sequence): + raise TypeError( + f"Expected a nested output sequence for task {self.task}, got {type(output[0]).__name__}." + ) + if len(output[0]) < 2: + raise ValueError( + "Instance segmentation output must contain detections and masks." + ) + seg_output = cast(ListTensorLike, output[0]) + if not all( + isinstance(item, (np.ndarray, torch.Tensor)) for item in seg_output[:2] + ): + raise TypeError( + "Instance segmentation detections and masks must be tensors." + ) + self.box_cls = cast(TensorLike, seg_output[0]) + self.mask = cast(TensorLike, seg_output[1]) + elif self.task == "depth_estimation": + if isinstance(output, Sequence) and not isinstance( + output, (np.ndarray, torch.Tensor) + ): + if len(output) == 0: + raise ValueError("Expected at least one depth-map tensor.") + if not all( + isinstance(item, (np.ndarray, torch.Tensor)) for item in output + ): + raise TypeError( + f"Expected depth-map tensors for task {self.task}, got {type(output).__name__}." + ) + self.depth = [cast(TensorLike, item) for item in output] + elif isinstance(output, (np.ndarray, torch.Tensor)): + self.depth = output + else: + raise TypeError( + f"Expected tensor depth output for task {self.task}, got {type(output)}." + ) + elif self.task == "semantic_segmentation": + if isinstance(output, Sequence) and not isinstance( + output, (np.ndarray, torch.Tensor) + ): + if len(output) == 0: + raise ValueError("Expected at least one semantic-map tensor.") + if not all( + isinstance(item, (np.ndarray, torch.Tensor)) for item in output + ): + raise TypeError( + f"Expected semantic-map tensors for task {self.task}, got {type(output).__name__}." + ) + self.semantic_mask = [cast(TensorLike, item) for item in output] + elif isinstance(output, (np.ndarray, torch.Tensor)): + self.semantic_mask = output + else: + raise TypeError( + f"Expected tensor semantic output for task {self.task}, got {type(output)}." + ) + else: + raise NotImplementedError( + f"Task {self.task} is not supported for plotting results." + ) + self.output = output # store raw output + + def plot( + self, + source_path: str | Path | np.ndarray | Image.Image, + save_path: str | Path | None = None, + **kwargs, + ) -> np.ndarray | None: + """Plot inference results on the source image. + + Args: + source_path: Image path or object to plot on. + save_path: Optional output image path. + **kwargs: Additional task-specific plotting options (e.g., topk for classification). + + Returns: + Image with results visualized in BGR format, or ``None`` for classification without an output path. + + Raises: + NotImplementedError: If the task is not supported for plotting. + """ + if self.task == "image_classification": + return self._plot_image_classification(source_path, save_path, **kwargs) + elif self.task in {"object_detection", "face_detection"}: + return self._plot_object_detection(source_path, save_path, **kwargs) + elif self.task == "instance_segmentation": + return self._plot_instance_segmentation(source_path, save_path, **kwargs) + elif self.task == "depth_estimation": + return self._plot_depth_estimation(source_path, save_path, **kwargs) + elif self.task == "semantic_segmentation": + return self._plot_semantic_segmentation(source_path, save_path, **kwargs) + elif self.task == "pose_estimation": + return self._plot_pose_estimation(source_path, save_path, **kwargs) + elif self.task == "obb": + return self._plot_obb(source_path, save_path, **kwargs) + else: + raise NotImplementedError( + f"Task {self.task} is not supported for plotting results." + ) + + def _plot_depth_estimation( + self, + source_path: str | Path | np.ndarray | Image.Image, + save_path: str | Path | None = None, + **kwargs, + ) -> np.ndarray: + """Colorize the first depth map with near objects in red and blend it over the original image.""" + + del kwargs + if self.depth is None: + raise ValueError("No depth output found.") + depth_value = self.depth[0] if isinstance(self.depth, list) else self.depth + depth = ( + depth_value.detach().cpu().numpy() + if isinstance(depth_value, torch.Tensor) + else depth_value + ) + if depth.ndim == 3: + depth = depth[0] + if depth.ndim != 2: + raise ValueError( + f"Expected a 2D depth map or [B, H, W], got {depth.shape}." + ) + image = self._read_image(source_path) + image_shape = (int(image.shape[0]), int(image.shape[1])) + if tuple(depth.shape) != image_shape: + depth = self._restore_depth_map(depth, image_shape) + valid = np.isfinite(depth) & (depth > 0) + if not valid.any(): + raise ValueError("Depth output contains no positive finite values.") + disparity = np.zeros(depth.shape, dtype=np.float32) + disparity[valid] = 1.0 / depth[valid] + lower, upper = np.percentile(disparity[valid], (2, 98)) + if upper <= lower: + upper = lower + 1e-6 + normalized = np.zeros(depth.shape, dtype=np.uint8) + normalized[valid] = np.clip( + (disparity[valid] - lower) * 255 / (upper - lower), 0, 255 + ).astype(np.uint8) + overlay = cv2.applyColorMap(normalized, cv2.COLORMAP_JET) + overlay[~valid] = 0 + result = cv2.addWeighted( + image, 1.0 - DENSE_OVERLAY_ALPHA, overlay, DENSE_OVERLAY_ALPHA, 0 + ) + if save_path is not None: + self._save_image(save_path, result) + return result + + def _plot_semantic_segmentation( + self, + source_path: str | Path | np.ndarray | Image.Image, + save_path: str | Path | None = None, + **kwargs, + ) -> np.ndarray: + """Colorize a semantic class map and blend it over the original image.""" + + del kwargs + if self.semantic_mask is None: + raise ValueError("No semantic output found.") + semantic_value = ( + self.semantic_mask[0] + if isinstance(self.semantic_mask, list) + else self.semantic_mask + ) + class_map = ( + semantic_value.detach().cpu().numpy() + if isinstance(semantic_value, torch.Tensor) + else semantic_value + ) + if class_map.ndim == 3: + class_map = class_map[0] + if class_map.ndim != 2: + raise ValueError( + f"Expected a 2D semantic map or [B, H, W], got {class_map.shape}." + ) + image = self._read_image(source_path) + image_shape = (int(image.shape[0]), int(image.shape[1])) + if tuple(class_map.shape) != image_shape: + class_map = self._restore_semantic_map(class_map, image_shape) + dataset_value = self.post_cfg.get("dataset") + dataset = ( + dataset_value.lower() if isinstance(dataset_value, str) else dataset_value + ) + if dataset == "ade20k": + default_nc = 150 + palette_getter = get_ade20k_palette + elif dataset == "cityscapes": + default_nc = 19 + palette_getter = get_cityscapes_palette + else: + raise ValueError( + f"Unsupported semantic segmentation dataset palette: {dataset!r}." + ) + nc = int(self.post_cfg.get("nc", default_nc)) + valid = class_map != 255 + if valid.any() and ( + int(class_map[valid].min()) < 0 or int(class_map[valid].max()) >= nc + ): + raise ValueError( + f"Semantic class-map values must be in [0, {nc - 1}] or 255." + ) + palette = np.array( + [palette_getter(index) for index in range(nc)], dtype=np.uint8 + ) + overlay = np.zeros_like(image) + overlay[valid] = palette[class_map[valid].astype(np.int64)] + blended = cv2.addWeighted( + image, 1.0 - DENSE_OVERLAY_ALPHA, overlay, DENSE_OVERLAY_ALPHA, 0 + ) + result = image.copy() + result[valid] = blended[valid] + if save_path is not None: + self._save_image(save_path, result) + return result + + def _restore_semantic_map( + self, class_map: np.ndarray, image_shape: tuple[int, int] + ) -> np.ndarray: + """Undo the configured letterbox transform using nearest-neighbor interpolation.""" + + return self._restore_dense_map( + class_map, image_shape, cv2.INTER_NEAREST, "Semantic" + ) + + def _restore_depth_map( + self, depth: np.ndarray, image_shape: tuple[int, int] + ) -> np.ndarray: + """Undo the configured letterbox transform and resize a depth map to an image.""" + + return self._restore_dense_map(depth, image_shape, cv2.INTER_LINEAR, "Depth") + + def _restore_dense_map( + self, + output: np.ndarray, + image_shape: tuple[int, int], + interpolation: int, + task_name: str, + ) -> np.ndarray: + """Undo configured letterboxing for a dense two-dimensional output.""" + + letterbox_cfg = self.pre_cfg.get("LetterBox", {}) + input_shape = letterbox_cfg.get("img_size") + if not isinstance(input_shape, list) or len(input_shape) != 2: + return cv2.resize( + output, (image_shape[1], image_shape[0]), interpolation=interpolation + ) + geometry = LetterBoxGeometry.from_shapes( + (int(input_shape[0]), int(input_shape[1])), image_shape + ) + output_shape = (int(output.shape[0]), int(output.shape[1])) + top, bottom, left, right = geometry.crop_bounds(output_shape) + cropped = output[top:bottom, left:right] + if cropped.size == 0: + raise ValueError( + f"{task_name} letterbox restoration produced an empty crop." + ) + return cv2.resize( + cropped, (image_shape[1], image_shape[0]), interpolation=interpolation + ) + + def _plot_image_classification( + self, + source_path: str | Path | np.ndarray | Image.Image | None = None, + save_path: str | Path | None = None, + topk: int = 5, + **kwargs, + ) -> np.ndarray | None: + if self.acc is None: + raise ValueError("No accuracy output found.") + if isinstance(topk, bool) or not isinstance(topk, int): + raise TypeError(f"topk must be an integer, got {type(topk).__name__}.") + if topk <= 0: + raise ValueError(f"topk must be positive, got {topk}.") + if isinstance(self.acc, np.ndarray): + self.acc = torch.tensor(self.acc) + scores = self.acc.squeeze() + if scores.ndim != 1: + raise ValueError( + f"Classification plotting expects one class-score vector, got shape {tuple(self.acc.shape)}." + ) + topk = min(topk, int(scores.numel())) + topk_probs, topk_indices = torch.topk(scores, topk) + topk_probs = np.atleast_1d(topk_probs.squeeze().detach().cpu().numpy()) + topk_indices = np.atleast_1d(topk_indices.squeeze().detach().cpu().numpy()) + # load labels + labels = [get_imagenet_label(i) for i in topk_indices] + comments = [] + for i in range(topk): + comments.append(f"{labels[i]}: {topk_probs[i] * 100:.2f}%") + print(f"Label: {labels[i]}, Probability: {topk_probs[i] * 100:.2f}%") + if source_path is not None and save_path is not None: + comments_str = "\n".join(comments) + img = self._read_image(source_path) + avg_color = img.mean(axis=(0, 1)) + txt_color = ( + int(255 - avg_color[0]), + int(255 - avg_color[1]), + int(255 - avg_color[2]), + ) + for i, line in enumerate(comments_str.splitlines()): + (_, h), _ = cv2.getTextSize( + text=line, + fontFace=cv2.FONT_HERSHEY_SIMPLEX, + fontScale=0.5, + thickness=1, + ) + img = cv2.putText( + img, + line, + (15, 15 + int(1.5 * i * h)), # line spacing + fontFace=cv2.FONT_HERSHEY_SIMPLEX, + fontScale=0.5, + color=txt_color, + thickness=1, + lineType=cv2.LINE_AA, + ) + self._save_image(save_path, img) + return img + else: + return None + + def _plot_object_detection( + self, + source_path: str | Path | np.ndarray | Image.Image, + save_path: str | Path | None = None, + **kwargs, + ) -> np.ndarray: + box_cls = self._box_cls_tensor() + expected_columns = 6 + self.post_cfg.get("n_extra", 0) + if box_cls.ndim != 2 or box_cls.shape[1] != expected_columns: + raise ValueError( + f"Object detection output must have shape [N, {expected_columns}], got {tuple(box_cls.shape)}." + ) + img = self._read_image(source_path) + img1_shape = cast(tuple[int, int], self.pre_cfg["LetterBox"]["img_size"]) + img0_shape: tuple[int, int] = (img.shape[0], img.shape[1]) + self.labels = box_cls[:, 5].to(torch.int64) + self.scores = box_cls[:, 4] + self.boxes = scale_boxes( + img1_shape, + box_cls[:, :4], + img0_shape, + ) + boxes = self.boxes + scores = self.scores + labels = self.labels + contours: dict[int, list[np.ndarray]] = {} + for box, score, label in zip(boxes, scores, labels): + label_idx = int(label.item()) + palette = self._get_detection_palette(label_idx) + img = cv2.putText( + img, + f"{self._get_detection_label(label_idx)} {int(100 * score)}%", + (int(box[0]), int(box[1]) - 10), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + palette, + 1, + cv2.LINE_AA, + ) + contours.setdefault(label_idx, []).append( + np.array( + [ + [int(box[0]), int(box[1])], + [int(box[2]), int(box[1])], + [int(box[2]), int(box[3])], + [int(box[0]), int(box[3])], + ] + ) + ) + for label, contour in contours.items(): + if len(contour) > 0: + cv2.drawContours( + img, + contour, + -1, + self._get_detection_palette(label), + LW, + ) + if save_path is not None: + self._save_image(save_path, img) + return img + + def _plot_instance_segmentation( + self, + source_path: str | Path | np.ndarray | Image.Image, + save_path: str | Path | None = None, + **kwargs, + ) -> np.ndarray: + img = self._plot_object_detection(source_path, None, **kwargs) + if self.mask is None: + raise RuntimeError("Instance segmentation output has no mask tensor.") + if self.boxes is None: + raise RuntimeError("Instance segmentation boxes were not initialized.") + if self.labels is None: + raise RuntimeError("Instance segmentation labels were not initialized.") + mask = self._mask_tensor() + img0_shape: tuple[int, int] = (img.shape[0], img.shape[1]) + masks = ( + crop_mask(scale_masks(mask, img0_shape), self.boxes) + .gt_(0.0) + .permute(1, 2, 0) + .to(torch.float32) + .cpu() + .numpy() + ) + overlay = np.zeros((masks.shape[0], masks.shape[1], 3)) + for i, label in enumerate(self.labels): + label_idx = int(label.item()) + overlay = np.maximum( + overlay, + masks[:, :, i][:, :, np.newaxis] + * np.array(get_coco_det_palette(label_idx)).reshape(1, 1, 3), + ) + total_mask = overlay.max(axis=2, keepdims=True) + inv_mask = 1 - ALPHA * total_mask / 255 + img = (img * inv_mask + overlay * ALPHA).astype(np.uint8) + if save_path is not None: + self._save_image(save_path, img) + return img + + def _plot_pose_estimation( + self, + source_path: str | Path | np.ndarray | Image.Image, + save_path: str | Path | None = None, + **kwargs, + ) -> np.ndarray: + img = self._plot_object_detection(source_path, None, **kwargs) + box_cls = self._box_cls_tensor() + img0_shape: tuple[int, int] = (img.shape[0], img.shape[1]) + self.kpts = scale_coords( + self.pre_cfg["LetterBox"]["img_size"], + box_cls[:, 6:].reshape(-1, 17, 3), + img0_shape, + ) + kpts = self.kpts + if kpts is None: + raise ValueError("No keypoints output found.") + for kpt in kpts: + for i, (x, y, v) in enumerate(kpt): + color_k = get_coco_keypoint_palette(i) + # if v < self.conf_thres: + # continue + cv2.circle( + img, + (int(x), int(y)), + RADIUS, + color_k, + -1, + lineType=cv2.LINE_AA, + ) + for j, sk in enumerate(get_coco_pose_skeleton()): + pos1 = (int(kpt[sk[0] - 1, 0]), int(kpt[sk[0] - 1, 1])) + pos2 = (int(kpt[sk[1] - 1, 0]), int(kpt[sk[1] - 1, 1])) + # conf1 = kpt[sk[0] - 1, 2] + # conf2 = kpt[sk[1] - 1, 2] + # if conf1 < self.conf_thres or conf2 < self.conf_thres: + # continue + cv2.line( + img, + pos1, + pos2, + get_coco_limb_palette(j), + thickness=int(np.ceil(LW / 2)), + lineType=cv2.LINE_AA, + ) + if save_path is not None: + self._save_image(save_path, img) + return img + + def _plot_obb( + self, + source_path: str | Path | np.ndarray | Image.Image, + save_path: str | Path | None = None, + **kwargs, + ) -> np.ndarray: + """Plots oriented bounding boxes on an image. + + Args: + source_path: Path or image object. + save_path: Optional path to save the plotted image. + **kwargs: Additional plotting arguments. + + Returns: + The plotted BGR image. + """ + del kwargs + box_cls = self._box_cls_tensor() + if box_cls.ndim != 2 or box_cls.shape[1] != 7: + raise ValueError( + f"OBB output must have shape [N, 7], got {tuple(box_cls.shape)}." + ) + img = self._read_image(source_path) + img0_shape: tuple[int, int] = (img.shape[0], img.shape[1]) + self.labels = box_cls[:, 5].to(torch.int64) + self.scores = box_cls[:, 4] + self.rboxes = scale_rboxes( + self.pre_cfg["LetterBox"]["img_size"], + torch.cat([box_cls[:, :4], box_cls[:, 6:7]], dim=-1), + img0_shape, + ) + polygons = xywhr2xyxyxyxy(self.rboxes).to(torch.int32).cpu().numpy() + for polygon, score, label in zip(polygons, self.scores, self.labels): + label_idx = int(label.item()) + color = get_dotav1_palette(label_idx) + text_anchor = polygon.min(axis=0) + img = cv2.putText( + img, + f"{get_dotav1_label(label_idx)} {int(100 * score)}%", + (int(text_anchor[0]), int(text_anchor[1]) - 10), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + color, + 1, + cv2.LINE_AA, + ) + cv2.drawContours(img, [polygon.reshape(-1, 1, 2)], -1, color, LW) + if save_path is not None: + self._save_image(save_path, img) + return img + + def _box_cls_tensor(self) -> torch.Tensor: + """Returns detection output as a torch tensor.""" + if self.box_cls is None: + raise ValueError("No box_cls output found.") + if isinstance(self.box_cls, np.ndarray): + return torch.from_numpy(self.box_cls) + return self.box_cls + + def _get_detection_label(self, label_idx: int) -> str: + """Return the display label for detection-style tasks.""" + if self.task == "face_detection": + if label_idx != 0: + raise ValueError(f"Unexpected face_detection class index: {label_idx}.") + return "face" + return get_coco_label(label_idx) + + def _get_detection_palette(self, label_idx: int) -> tuple[int, int, int]: + """Return the display color for detection-style tasks.""" + if self.task == "face_detection": + return get_coco_det_palette(0) + return get_coco_det_palette(label_idx) + + def _mask_tensor(self) -> torch.Tensor: + """Returns segmentation mask output as a torch tensor.""" + if self.mask is None: + raise ValueError("No mask output found.") + if isinstance(self.mask, np.ndarray): + return torch.from_numpy(self.mask) + return self.mask diff --git a/mblt_vision/utils/types.py b/mblt_vision/utils/types.py new file mode 100644 index 0000000..5963c94 --- /dev/null +++ b/mblt_vision/utils/types.py @@ -0,0 +1,15 @@ +""" +Type definitions for MBLT vision models. +""" + +from __future__ import annotations + +from collections.abc import Sequence +from typing import TypeAlias + +import numpy as np +import torch + +TensorLike: TypeAlias = torch.Tensor | np.ndarray +ListTensorLike: TypeAlias = Sequence[TensorLike] +NestedListTensorLike: TypeAlias = Sequence[TensorLike | ListTensorLike] diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py new file mode 100644 index 0000000..75a4c0f --- /dev/null +++ b/mblt_vision/wrapper.py @@ -0,0 +1,924 @@ +""" +Wrapper classes for MBLT model execution. +""" + +from __future__ import annotations + +import copy +import importlib +import os +import sys +import tempfile +from pathlib import Path +from typing import Any, Sequence, cast + +import numpy as np +import torch +import yaml +from huggingface_hub import hf_hub_download +from huggingface_hub.errors import EntryNotFoundError +from qbruntime import Cluster, CoreId + +from mblt_npu import MobilintNPUBackend +from ._model_paths import resolve_framework as _resolve_framework +from ._model_paths import split_model_paths as _split_model_paths +from ._model_paths import ( + uses_shifted_engine_model_path_layout as _uses_shifted_engine_model_path_layout, +) +from .utils.postprocess import build_postprocess +from .utils.preprocess import build_preprocess +from .utils.results import Results +from .utils.types import TensorLike + +MODEL_CONFIG_DIR = Path(__file__).parent / "models" + +ONNXRUNTIME_INSTALL_GUIDE = ( + "onnxruntime is not installed. To use ONNX inference, install one of the optional extras:\n" + "pip install mblt-vision-python[onnxruntime]\n" + + ( + "or\npip install mblt-vision-python[onnxruntime-gpu]" + if sys.platform != "darwin" + else "" + ) +) +CoreMode = str + + +def normalize_core_mode(core_mode: str) -> CoreMode: + """Validate a Vision engine core-mode value.""" + + valid_modes = {"single", "multi", "global4", "global8"} + if core_mode not in valid_modes: + raise ValueError( + f"Invalid core mode '{core_mode}'. Expected one of {sorted(valid_modes)}." + ) + return core_mode + + +__all__ = ["CoreMode", "normalize_core_mode", "resolve_model_config", "MBLT_Engine"] + + +def _derive_onnx_filename(file_cfg: dict[str, Any]) -> str | None: + """Return the configured or MXQ-derived ONNX artifact filename. + + ``onnx_filename`` is only required when the Hub ONNX artifact does not share + the MXQ artifact stem. Otherwise every model configuration follows the same + ``.mxq`` to ``.onnx`` convention. + """ + + onnx_filename = file_cfg.get("onnx_filename") + if isinstance(onnx_filename, str) and onnx_filename: + return onnx_filename + + filename = file_cfg.get("filename") + if not isinstance(filename, str) or not filename: + return None + + return f"{Path(filename).stem}.onnx" + + +def _normalize_model_artifacts(model_config: dict[str, Any]) -> dict[str, Any]: + """Populate the derived ONNX artifact name in a resolved model configuration.""" + + normalized = copy.deepcopy(model_config) + file_cfg = normalized.get("file_cfg") + if not isinstance(file_cfg, dict): + return normalized + + onnx_filename = _derive_onnx_filename(file_cfg) + if onnx_filename is not None: + file_cfg["onnx_filename"] = onnx_filename + return normalized + + +def _default_cache_dir() -> str: + """Returns a writable cache directory for downloaded vision artifacts.""" + + preferred = Path(os.path.expanduser("~/.mblt_model_zoo")) + try: + preferred.mkdir(parents=True, exist_ok=True) + test_file = preferred / ".write_test" + test_file.touch(exist_ok=True) + test_file.unlink(missing_ok=True) + return str(preferred) + except OSError: + return tempfile.mkdtemp(prefix="mblt_model_zoo-", dir=tempfile.gettempdir()) + + +MOBILINT_CACHE_DIR = _default_cache_dir() + + +def _load_onnxruntime() -> Any: + """Loads ``onnxruntime`` only when ONNX inference is requested. + + Returns: + The imported ``onnxruntime`` module. + + Raises: + ImportError: If ``onnxruntime`` is unavailable in the current environment. + """ + + try: + module = importlib.import_module("onnxruntime") + except ImportError as exc: + raise ImportError(ONNXRUNTIME_INSTALL_GUIDE) from exc + + if not hasattr(module, "InferenceSession"): + module_path = getattr(module, "__file__", None) or "" + msg = ( + "onnxruntime is installed, but the package is incomplete or broken and does not expose " + f"`InferenceSession` (resolved from {module_path}). " + f"{ONNXRUNTIME_INSTALL_GUIDE.replace('is not installed. To use ONNX inference, install', 'Reinstall')}" + ) + raise ImportError(msg) + + return module + + +def _resolve_onnx_providers( + ort_module: Any, requested_providers: Sequence[str] | None = None +) -> list[str]: + """Selects ONNX Runtime execution providers. + + Args: + ort_module: Imported ``onnxruntime`` module or compatible test double. + requested_providers: Optional provider order requested by the caller. + + Returns: + The provider list passed to ``InferenceSession``. + """ + + return ( + list(requested_providers) + if requested_providers is not None + else ["CPUExecutionProvider"] + ) + + +def _model_name_aliasing(model_name: str) -> str: + """Find the YAML filename matching a model name. + + Args: + model_name: Model identifier provided by the caller. + + Returns: + Exact YAML filename stored in ``MODEL_CONFIG_DIR``. + + Raises: + ValueError: If no YAML file matches or the normalized name is ambiguous. + """ + + def _stem(name: str) -> str: + return name[: -len(".yaml")] if name.lower().endswith(".yaml") else name + + def _normalize_separators(name: str) -> str: + return "_".join( + part + for part in _stem(name) + .replace("-", "_") + .replace(" ", "_") + .lower() + .split("_") + if part + ) + + requested = _normalize_separators(model_name) + config_names = sorted(path.name for path in MODEL_CONFIG_DIR.glob("*.yaml")) + separator_matches = [ + name for name in config_names if _normalize_separators(name) == requested + ] + if len(separator_matches) == 1: + return separator_matches[0] + if len(separator_matches) > 1: + raise ValueError( + f"Ambiguous model name '{model_name}'. Matches: {separator_matches}." + ) + + compact_requested = requested.replace("_", "") + compact_matches = [ + name + for name in config_names + if _normalize_separators(name).replace("_", "") == compact_requested + ] + if len(compact_matches) == 1: + return compact_matches[0] + if len(compact_matches) > 1: + raise ValueError( + f"Ambiguous model name '{model_name}'. Matches: {compact_matches}." + ) + raise ValueError(f"Model name '{model_name}' is not supported.") + + +def resolve_model_config( + model_cls: str | dict[str, Any], model_type: str = "DEFAULT" +) -> dict[str, Any]: + """Resolve a vision model configuration without constructing a runtime. + + Args: + model_cls: Model name, YAML path, or direct model configuration. + model_type: Variant key within a YAML model definition. + + Returns: + A deep copy of the resolved ``file_cfg``, ``pre_cfg``, and ``post_cfg`` mapping. + ``file_cfg`` always includes an ONNX filename when an MXQ filename is available. + + Raises: + TypeError: If the YAML or resolved configuration is not a mapping. + ValueError: If a requested variant, alias, or update base is unavailable. + """ + + if isinstance(model_cls, dict): + return _normalize_model_artifacts(model_cls) + + config_path = Path(model_cls) + if not config_path.is_file(): + config_path = MODEL_CONFIG_DIR / _model_name_aliasing(model_cls) + + with config_path.open(encoding="utf-8") as config_file: + full_config = yaml.safe_load(config_file) + if not isinstance(full_config, dict): + raise TypeError( + f"Model configuration '{config_path}' should define a dictionary." + ) + + resolving: set[str] = set() + + def _resolve_variant(variant: str) -> dict[str, Any]: + if variant in resolving: + raise ValueError( + f"Circular model configuration reference detected for '{variant}'." + ) + resolving.add(variant) + try: + model_config_part = full_config.get(variant) + if model_config_part is None: + raise ValueError(f"Model type '{variant}' not found in configuration.") + if isinstance(model_config_part, str): + if model_config_part not in full_config: + raise ValueError( + f"Model alias '{model_config_part}' not found in configuration." + ) + return _resolve_variant(model_config_part) + if not isinstance(model_config_part, dict): + raise TypeError( + f"Resolved model configuration for '{variant}' is not a dictionary." + ) + + resolved = copy.deepcopy(model_config_part) + base_config_key = resolved.pop("update", None) + if base_config_key is None: + return resolved + if ( + not isinstance(base_config_key, str) + or base_config_key not in full_config + ): + raise ValueError( + f"Base configuration '{base_config_key}' not found for update." + ) + + merged_config = _resolve_variant(base_config_key) + for key, value in resolved.items(): + if ( + key in merged_config + and isinstance(merged_config[key], dict) + and isinstance(value, dict) + ): + merged_config[key].update(value) + else: + merged_config[key] = value + return merged_config + finally: + resolving.remove(variant) + + return _normalize_model_artifacts(_resolve_variant(model_type)) + + +class MBLT_Engine: + """Main engine class for running vision models from the MBLT zoo. + + Handles the full pipeline: Preprocessing -> Inference -> Postprocessing. + + Attributes: + file_cfg: Model configuration. + pre_cfg: Preprocessing configuration. + post_cfg: Postprocessing configuration. + model: The underlying MXQ_Model. + device: The torch device being used. + """ + + def __init__( + self, + model_cls: str | dict[str, Any], + model_type: str = "DEFAULT", + mxq_path: str = "", + onnx_path: str = "", + dev_no: int | None = None, + core_mode: CoreMode | None = None, + target_cores: Sequence[str | CoreId] | None = None, + target_clusters: Sequence[int | Cluster] | None = None, + postprocess_kwargs: dict[str, Any] | None = None, + framework: str | None = None, + onnx_providers: Sequence[str] | None = None, + model_path: str = "", + ) -> None: + """Initializes the MBLT_Engine. + + Args: + model_cls(if dict): + file_cfg: Model configuration. + mxq_path: path to mxq file + onnx_path: path to onnx file + model_path: generic path to local model file + dev_no: Accelerator No. + core_mode: single, multi, global4, global8 + target_cores: single mode + target_clusters: multi, global modes + pre_cfg: Preprocessing configuration. + post_cfg: Postprocessing configuration. + model_cls(not dict): model name or yaml path + postprocess_kwargs: Optional runtime overrides passed to the postprocessor builder. + framework: Execution framework, either "mxq" or "onnx". When omitted, + ``model_path`` suffix is used first, then MXQ is the fallback. + onnx_providers: Optional ONNX Runtime execution provider order. + """ + + if _uses_shifted_engine_model_path_layout( + model_path, + mxq_path, + dev_no, + core_mode, + target_cores, + postprocess_kwargs, + framework, + onnx_providers, + ): + ( + model_path, + mxq_path, + onnx_path, + dev_no, + core_mode, + target_cores, + target_clusters, + postprocess_kwargs, + framework, + onnx_providers, + ) = ( + mxq_path, + onnx_path, + cast(str, dev_no or ""), + cast(int | None, core_mode), + cast(CoreMode | None, target_cores), + cast(Sequence[str | CoreId] | None, target_clusters), + cast(Sequence[int | Cluster] | None, postprocess_kwargs), + cast(dict[str, Any] | None, framework), + cast(str | None, onnx_providers), + cast(Sequence[str] | None, model_path or None), + ) + model_config_part = resolve_model_config(model_cls, model_type) + + file_cfg_model_path = str(model_config_part["file_cfg"].get("model_path", "")) + framework_model_path = model_path or file_cfg_model_path + self.framework = _resolve_framework(framework, framework_model_path) + mxq_path, onnx_path = _split_model_paths( + framework=self.framework, + model_path=model_path, + mxq_path=mxq_path, + onnx_path=onnx_path, + ) + + _mxq_path_passed = bool(mxq_path) + _onnx_path_passed = bool(onnx_path) + _dev_no_passed = dev_no is not None + _core_mode_passed = core_mode is not None + _target_cores_passed = target_cores is not None + _target_clusters_passed = target_clusters is not None + + if dev_no is None: + dev_no = 0 + if core_mode is None: + core_mode = "single" + if target_cores is None: + target_cores = ["0:0", "0:1", "0:2", "0:3", "1:0", "1:1", "1:2", "1:3"] + if target_clusters is None: + target_clusters = [0, 1] + + self.file_cfg = copy.deepcopy(model_config_part["file_cfg"]) + file_cfg_model_path = self.file_cfg.pop("model_path", "") + if file_cfg_model_path: + yaml_mxq_path, yaml_onnx_path = _split_model_paths( + framework=self.framework, + model_path=file_cfg_model_path, + mxq_path=str(self.file_cfg.get("mxq_path", "")), + onnx_path=str(self.file_cfg.get("onnx_path", "")), + ) + self.file_cfg["mxq_path"] = yaml_mxq_path + self.file_cfg["onnx_path"] = yaml_onnx_path + if _mxq_path_passed or "mxq_path" not in self.file_cfg: + self.file_cfg["mxq_path"] = mxq_path + if _onnx_path_passed or "onnx_path" not in self.file_cfg: + self.file_cfg["onnx_path"] = onnx_path + if _core_mode_passed or "core_mode" not in self.file_cfg: + self.file_cfg["core_mode"] = core_mode + if _target_cores_passed or "target_cores" not in self.file_cfg: + self.file_cfg["target_cores"] = target_cores + if _target_clusters_passed or "target_clusters" not in self.file_cfg: + self.file_cfg["target_clusters"] = target_clusters + if _dev_no_passed or "dev_no" not in self.file_cfg: + self.file_cfg["dev_no"] = dev_no + + self.pre_cfg = copy.deepcopy(model_config_part["pre_cfg"]) + self.post_cfg = copy.deepcopy(model_config_part["post_cfg"]) + self.postprocess_kwargs = ( + {} if postprocess_kwargs is None else dict(postprocess_kwargs) + ) + self.file_config_cleansing() + + self.model: Any + self._mxq_model: MobilintNPUBackend | None = None + self._onnx_session: Any = None + + if self.framework == "onnx": + ort = _load_onnxruntime() + resolved_onnx_path = self.file_cfg.get("onnx_path") + if not resolved_onnx_path: + raise RuntimeError( + f"ONNX path not resolved for model {model_cls}. Make sure the model repository has an ONNX file." + ) + if not os.path.isfile(resolved_onnx_path): + raise FileNotFoundError(f"ONNX file not found at: {resolved_onnx_path}") + + providers = _resolve_onnx_providers(ort, onnx_providers) + self._onnx_session = ort.InferenceSession( + resolved_onnx_path, providers=providers + ) + self.model = self._onnx_session + self.input_name = self._onnx_session.get_inputs()[0].name + self.output_names = [o.name for o in self._onnx_session.get_outputs()] + else: + self._mxq_model = MobilintNPUBackend(**self._mxq_backend_kwargs()) + self.model = self._mxq_model + self._mxq_model.create() + self._mxq_model.launch() + + if self._mxq_model.get_dtype() == "DataType.Uint8": + self.pre_cfg.pop("Normalize", None) + + self.preprocessor = build_preprocess(self.pre_cfg) + self.postprocessor = build_postprocess( + self.pre_cfg, self.post_cfg, **self.postprocess_kwargs + ) + self.device = torch.device("cpu") + + def _mxq_backend_kwargs(self) -> dict[str, Any]: + """Builds the MXQ backend kwargs from the resolved file config.""" + + excluded_keys = { + "repo_id", + "filename", + "revision", + "onnx_filename", + "onnx_path", + } + return { + key: value + for key, value in self.file_cfg.items() + if key not in excluded_keys + } + + def _derive_onnx_filename(self) -> str | None: + """Returns the ONNX filename associated with the configured MXQ artifact.""" + + onnx_filename = _derive_onnx_filename(self.file_cfg) + if onnx_filename is not None: + self.file_cfg["onnx_filename"] = onnx_filename + return onnx_filename + + def _resolve_local_onnx_path(self, mxq_path: str) -> str | None: + """Tries to resolve a sibling ONNX file next to a local MXQ artifact.""" + + onnx_path = self.file_cfg.get("onnx_path", "") + if onnx_path and os.path.isfile(onnx_path): + return onnx_path + + onnx_filename = self._derive_onnx_filename() + if onnx_filename: + sibling_path = Path(mxq_path).with_name(onnx_filename) + if sibling_path.is_file(): + return str(sibling_path) + + if mxq_path.endswith(".mxq"): + suffix_swapped = f"{mxq_path[:-4]}.onnx" + if os.path.isfile(suffix_swapped): + return suffix_swapped + + return None + + def _download_hub_artifact( + self, + *, + repo_id: str, + filename: str, + revision: str, + subfolders: Sequence[str] | None = None, + ) -> str: + """Downloads a model artifact from Hugging Face Hub and returns its cache path.""" + + last_error: Exception | None = None + normalized_subfolders = [""] if subfolders is None else list(subfolders) + for subfolder in normalized_subfolders: + kwargs: dict[str, Any] = { + "repo_id": repo_id, + "filename": filename, + "revision": revision, + "local_dir": MOBILINT_CACHE_DIR, + } + if subfolder: + kwargs["subfolder"] = subfolder + try: + return hf_hub_download(**kwargs) + except EntryNotFoundError as exc: + last_error = exc + + attempted_paths = ", ".join( + f"{subfolder}/{filename}" if subfolder else filename + for subfolder in normalized_subfolders + ) + raise RuntimeError( + f"Failed to download model from Hugging Face. Tried repo '{repo_id}' at: {attempted_paths}." + ) from last_error + + def file_config_cleansing(self) -> None: + """Validates and resolves the MXQ and ONNX model file paths in ``self.file_cfg``.""" + framework = getattr(self, "framework", "mxq") + model_path = self.file_cfg.pop("model_path", "") + if model_path: + mxq_path, onnx_path = _split_model_paths( + framework=framework, + model_path=model_path, + mxq_path=str(self.file_cfg.get("mxq_path", "")), + onnx_path=str(self.file_cfg.get("onnx_path", "")), + ) + self.file_cfg["mxq_path"] = mxq_path + self.file_cfg["onnx_path"] = onnx_path + mxq_path = self.file_cfg.get("mxq_path", "") + onnx_path = self.file_cfg.get("onnx_path", "") + onnx_filename = self._derive_onnx_filename() + + if onnx_path and os.path.isfile(onnx_path): + self.file_cfg["onnx_path"] = onnx_path + if framework == "onnx": + return + + if mxq_path and os.path.isfile(mxq_path): + resolved_local_onnx = self._resolve_local_onnx_path(mxq_path) + if resolved_local_onnx is not None: + self.file_cfg["onnx_path"] = resolved_local_onnx + self.file_cfg.pop("repo_id", None) + self.file_cfg.pop("filename", None) + self.file_cfg.pop("revision", None) + elif framework == "mxq": + self.file_cfg.pop("repo_id", None) + self.file_cfg.pop("filename", None) + self.file_cfg.pop("revision", None) + if framework == "mxq": + return + + repo_id = self.file_cfg.pop("repo_id", None) + filename = self.file_cfg.pop("filename", None) + revision = self.file_cfg.pop("revision", None) + if not repo_id or not revision: + return + + if filename and framework == "mxq": + core_mode = self.file_cfg.get("core_mode") + subfolders = ["aries", f"aries/{core_mode}"] if core_mode else ["aries"] + self.file_cfg["mxq_path"] = self._download_hub_artifact( + repo_id=repo_id, + filename=filename, + revision=revision, + subfolders=subfolders, + ) + + if onnx_filename and framework == "onnx" and not self.file_cfg.get("onnx_path"): + self.file_cfg["onnx_path"] = self._download_hub_artifact( + repo_id=repo_id, + filename=onnx_filename, + revision=revision, + ) + + def _prepare_onnx_inputs(self, x: TensorLike) -> dict[str, np.ndarray]: + """Normalizes runtime inputs to match the ONNX session contract.""" + + if isinstance(x, torch.Tensor): + x_np = x.detach().cpu().numpy() + elif isinstance(x, np.ndarray): + x_np = x + else: + raise TypeError(f"Got unexpected type for ONNX input x={type(x)}.") + + if x_np.dtype == np.float64: + x_np = x_np.astype(np.float32) + + expected_shape = self._require_onnx_session().get_inputs()[0].shape + if len(expected_shape) == 4: + if x_np.ndim == 3: + first_channel_count = x_np.shape[0] + last_channel_count = x_np.shape[-1] + elif x_np.ndim == 4: + first_channel_count = x_np.shape[1] + last_channel_count = x_np.shape[-1] + else: + first_channel_count = None + last_channel_count = None + + expected_second_dim = expected_shape[1] + expected_last_dim = expected_shape[-1] + second_matches_channels = isinstance(expected_second_dim, int) and ( + expected_second_dim == first_channel_count + or expected_second_dim == last_channel_count + ) + last_matches_channels = isinstance(expected_last_dim, int) and ( + expected_last_dim == first_channel_count + or expected_last_dim == last_channel_count + ) + + expected_layout = None + expected_channels = None + if second_matches_channels and not last_matches_channels: + expected_layout = "nchw" + expected_channels = expected_second_dim + elif last_matches_channels and not second_matches_channels: + expected_layout = "nhwc" + expected_channels = expected_last_dim + elif isinstance(expected_second_dim, int) and expected_second_dim in { + 1, + 2, + 3, + 4, + }: + expected_layout = "nchw" + expected_channels = expected_second_dim + elif isinstance(expected_last_dim, int) and expected_last_dim in { + 1, + 2, + 3, + 4, + }: + expected_layout = "nhwc" + expected_channels = expected_last_dim + + if x_np.ndim == 3: + if ( + expected_layout == "nchw" + and expected_channels is not None + and x_np.shape[0] == expected_channels + ): + x_np = np.expand_dims(x_np, axis=0) + elif ( + expected_layout == "nchw" + and expected_channels is not None + and x_np.shape[-1] == expected_channels + ): + x_np = np.transpose(x_np, (2, 0, 1)) + x_np = np.expand_dims(x_np, axis=0) + elif ( + expected_layout == "nhwc" + and expected_channels is not None + and x_np.shape[-1] == expected_channels + ): + x_np = np.expand_dims(x_np, axis=0) + elif ( + expected_layout == "nhwc" + and expected_channels is not None + and x_np.shape[0] == expected_channels + ): + x_np = np.transpose(x_np, (1, 2, 0)) + x_np = np.expand_dims(x_np, axis=0) + elif x_np.ndim == 4: + if expected_layout == "nchw" and expected_channels is not None: + if x_np.shape[1] == expected_channels: + pass + elif x_np.shape[-1] == expected_channels: + x_np = np.transpose(x_np, (0, 3, 1, 2)) + elif expected_layout == "nhwc" and expected_channels is not None: + if x_np.shape[-1] == expected_channels: + pass + elif x_np.shape[1] == expected_channels: + x_np = np.transpose(x_np, (0, 2, 3, 1)) + + return {self.input_name: x_np} + + def _require_onnx_session(self) -> Any: + """Return the active ONNX session.""" + + session = getattr(self, "_onnx_session", None) + if session is None: + fallback = getattr(self, "model", None) + if ( + fallback is not None + and hasattr(fallback, "get_inputs") + and hasattr(fallback, "run") + ): + return fallback + raise RuntimeError("ONNX session is not initialized.") + return session + + def _require_mxq_model(self) -> MobilintNPUBackend: + """Return the active MXQ backend.""" + + model = getattr(self, "_mxq_model", None) + if model is None: + fallback = getattr(self, "model", None) + if ( + fallback is not None + and hasattr(fallback, "create") + and hasattr(fallback, "launch") + ): + return cast(MobilintNPUBackend, fallback) + raise RuntimeError("MXQ backend is not initialized.") + return model + + def __call__( + self, + x: TensorLike, + ) -> Any: + """Runs raw model inference on the input. + + Note: + This does NOT include preprocessing or postprocessing. + + Args: + x: Input tensor for the model. + + Returns: + Raw model output. + """ + if self.framework == "onnx": + outputs = self._require_onnx_session().run( + self.output_names, self._prepare_onnx_inputs(x) + ) + if len(outputs) == 1: + return outputs[0] + return outputs + return cast(Any, self._require_mxq_model())(x) + + def preprocess( + self, + x: Any, + **kwargs: Any, + ) -> Any: + """Runs preprocessing on the input. + + Args: + x: Input data. + **kwargs: Additional arguments for preprocessing. + + Returns: + Preprocessed data. + """ + return self.preprocessor(x, **kwargs) + + def preprocess_with_metadata( + self, + x: Any, + ) -> tuple[Any, dict[str, Any]]: + """Runs preprocessing and returns metadata needed for exact postprocess scaling. + + Args: + x: Input data. + + Returns: + A tuple of preprocessed data and metadata such as ``ratio_pad``. + """ + return self.preprocessor.with_metadata(x) + + def postprocess( + self, + x: Any, + **kwargs: Any, + ) -> Results: + """Runs postprocessing on the input. + + Args: + x: Input data. + **kwargs: Additional arguments for postprocessing. + + Returns: + Postprocessed results. + """ + pre_result = self.postprocessor(x, **kwargs) + result_kwargs = dict(kwargs) + conf_thres = getattr(self.postprocessor, "conf_thres", None) + iou_thres = getattr(self.postprocessor, "iou_thres", None) + if "conf_thres" not in result_kwargs and conf_thres is not None: + result_kwargs["conf_thres"] = conf_thres + if "iou_thres" not in result_kwargs and iou_thres is not None: + result_kwargs["iou_thres"] = iou_thres + return Results(self.pre_cfg, self.post_cfg, pre_result, **result_kwargs) + + def set_postprocess_thresholds( + self, conf_thres: float | None = None, iou_thres: float | None = None + ) -> None: + """Updates configurable postprocess thresholds for the current model. + + Args: + conf_thres: Optional confidence threshold override. + iou_thres: Optional IoU threshold override. + + Raises: + NotImplementedError: If the current postprocessor does not support thresholds. + """ + set_threshold = getattr(self.postprocessor, "set_threshold", None) + if set_threshold is None: + raise NotImplementedError( + f"Threshold overrides are not supported for task `{self.post_cfg.get('task', 'unknown')}`." + ) + set_threshold(conf_thres=conf_thres, iou_thres=iou_thres) + + def to( + self, + device: str | torch.device, + ) -> None: + """Moves the engine and its components to the specified device. + + Args: + device: Target device. + + Raises: + TypeError: If device type is unexpected. + """ + self.preprocessor.to(device) + self.postprocessor.to(device) + + if isinstance(device, str): + self.device = torch.device(device) + elif isinstance(device, torch.device): + self.device = device + else: + raise TypeError(f"Got unexpected type for device={type(device)}.") + + def cpu(self) -> None: + """Moves the engine to CPU.""" + self.to(device="cpu") + + def gpu(self) -> None: + """Moves the engine to GPU (CUDA).""" + self.to(device="cuda") + + def cuda( + self, + device: str | int = 0, + ) -> None: + """Moves the engine to CUDA device. + + Args: + device: CUDA device identifier. Defaults to 0. + + Raises: + ValueError: If device string is invalid. + RuntimeError: If CUDA is not available. + """ + if isinstance(device, int): + device = f"cuda:{device}" + elif isinstance(device, str): + if not device.startswith("cuda:"): + raise ValueError("Invalid device string. It should start with 'cuda:'.") + + if not torch.cuda.is_available(): + raise RuntimeError("CUDA is not available. Please check your environment.") + self.to(device=device) + + def launch(self) -> None: + """Launches the underlying model.""" + if self.framework == "mxq": + self._require_mxq_model().launch() + + def dispose(self) -> None: + """Disposes the underlying model.""" + if self.framework == "mxq": + self._require_mxq_model().dispose() + + def model_name_aliasing(self, model_name: str) -> str: + """Finds the YAML config filename that matches the given model name. + + Matching is case-insensitive and first preserves separator boundaries + so names such as ``regnet_x_16gf`` do not collide with + ``regnet_x_1_6gf``. A separator-stripped fallback is used only when it + resolves to a single unique configuration, so inputs like ``resnet50``, + ``ResNet50``, ``Resnet_50``, and ``resnet-50`` all resolve to + ``ResNet50.yaml``. + + Args: + model_name: The model identifier provided by the caller. + + Returns: + The exact YAML filename (basename only) stored in + ``MODEL_CONFIG_DIR`` that corresponds to ``model_name``. + + Raises: + ValueError: If no YAML file matches, or if the name is ambiguous + (i.e., multiple files match after normalization). + """ + + return _model_name_aliasing(model_name) diff --git a/pyproject.toml b/pyproject.toml index c94d3ed..f6edd6f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,6 +2,68 @@ requires = ["setuptools>=70.0.0", "wheel"] build-backend = "setuptools.build_meta" +[project] +name = "mblt-vision-python" +dynamic = ["version"] +description = "Mobilint NPU vision models: classification, detection, segmentation, pose" +readme = "README.md" +dependencies = [ + "mblt-npu-python>=0.0.1", + "mobilint-qb-runtime>=1.0.0", + "numpy>=1.26.0", + "torch>=2.4.1", + "opencv-python>=4.11.0.86", + "pillow>=11.1.0", + "faster-coco-eval", + "huggingface-hub", + "scipy", + "tqdm", + "PyYAML", +] +requires-python = ">=3.10,<3.13" +license = { text = "BSD-3-Clause" } +authors = [{ name = "Mobilint" }] +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "License :: OSI Approved :: BSD License", + "Operating System :: POSIX :: Linux", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Scientific/Engineering :: Artificial Intelligence", +] + [project.urls] Home = "https://www.mobilint.com/" -Repository = "https://github.com/mobilint/mblt-vision-python" \ No newline at end of file +Repository = "https://github.com/mobilint/mblt-vision-python" + +[project.optional-dependencies] +onnxruntime = [ + "onnx", + "onnxruntime", +] +onnxruntime-gpu = [ + "onnx; sys_platform != 'darwin'", + "onnxruntime-gpu; sys_platform != 'darwin'", +] + +[tool.setuptools] +packages = { find = { where = ["."], include = ["mblt_vision", "mblt_vision.*"] } } + +[tool.setuptools.dynamic] +version = { attr = "mblt_vision.__version__" } + +[tool.setuptools.package-data] +"mblt_vision" = [ + "models/*.yaml", + "datasets/*.yaml", +] + +[dependency-groups] +dev = [ + "pre-commit", + "pytest", + "pytest-timeout", +] diff --git a/tests/TEST.md b/tests/TEST.md new file mode 100644 index 0000000..3d45b51 --- /dev/null +++ b/tests/TEST.md @@ -0,0 +1,28 @@ +# Test `vision` + +You can validate Mobilint's Vision API with [`pytest`](https://docs.pytest.org/en/stable/). The snippets below assume your virtual environment is already activated. + +## Install Packages + +Install the runtime extras plus the developer tooling required by the test suite: + +```bash +pip install -e . +pip install pytest +``` + +## Run All Tests + +Execute the entire Vision test matrix (this may take a while because it loads every supported model): + +```bash +pytest tests/vision +``` + +## Run a Single Test File + +Target a specific test file to focus on one model family: + +```bash +pytest tests/vision/test_resnet50.py +``` diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..c9e9b9f --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,5 @@ +# The shared options and fixtures come from mblt_npu. Installed, they arrive +# through its pytest11 entry point and this file is unnecessary; from a source +# checkout the star import is what puts pytest_addoption in the root conftest +# namespace, which is the only place pytest looks for it. +from mblt_npu.pytest_plugin import * # noqa: F401,F403 diff --git a/tests/rc/cr7.jpg b/tests/rc/cr7.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b590b64f9dc439f51b2a8f4d984b30ff8d3e85e GIT binary patch literal 107563 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�{G7bAguFXOZ$`;E@*{ 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%0Ab*zJ?HR28!lK3;PXdH5jpk!5);7~| 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 z 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%0AeC(W6jw>y*{Ld>EFv5^*Y-jKv48gdS4#{T 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 |;50`!r=N73*?WJ^F`QBpQW@c3 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

    0b7o!yq8B*op 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

    F2dh>I{p6H}YI@&BU_eH2u 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�A1Rl=WoMKLX9^}Q=Zh- zZom_~hN1QnuoCJ~N2Q=S$_rH;+Z=<~bj)x2coFcKXOP*9B;9ICSeqcj{`vJj)5$C~ z@CCYls0;ihPPWwLxJGYU%}TCM_*8+$yv7OcjL1i^H`9lPOBKQOjbVgI8T;K+m6l(2 zu;53f8NZgi*OOkZ-e zIb&|m&czhv=PSHDaz5X@aF?`UF5#R&K7HoU52==e>(L(TyqBrIo3}a?QK(@O2@lur zZI=-Uz#03N`H%I5-wq1g0AQbIfA}o;L7lg|`BSr}8X>kn$W3fN#_*aqdB0O3+aiDG z-;4_jM(5_=MaksEK#PtH;}mC2HfU|`qOL#A9{W79rh@lYoFL09D11C8lV&ytPF$K5 z?fCfhw$G8egy`bD*0yjggHJs{_QIjm!8HR0q?(;is}E8r<!1Uj8CE&aW{ zBf~RMEaef%Hzh)3Z>E)YvCq*KHLwUfsdZQTe7x*B6_aXrKP#H-$qTa&{>q_?&y^iH zjp>i7yOTv8Te946PY77sDFoe|GKI*TH4$XYOQk=G$yl<-@o$_r{^c5`IDrcMEc67$ zd@9%^zg&;K(_(Tx+RNO}8b+hqCMx70FgX4=I}fmWJHgrzXD3S)UB=YlhLmw;zDL6j%$GlpBNWL$ze(-! zM}o}(&gKP3Vy6-9!#0>Rc=E+|%h&Y59&Y>afrDJQbk5n*xj>&X6Zv8*bG1ka058WN zxeYK`k_KIG<_}+rhI7|CYN4fs-ad41&@J%jsWs?#!O}Q?BGmoMDoju#yl(wq_mfAZ z?-parPDoDsNz_B;CSnYWkz5r#6@|2HZd_-SNf*GH#uirwPiA&pddzn*w2+p|@OO4h z@4MSDH16VJwu`9K*z|JZ|3NlS2ZEK&4VgH`8H{5r^U-RV^Em7~?d`6#`sk-&&2kEO zq|91+!KQLEGu<}z0?A`mS-4eVtbR&#Ln@&ov9dP$tNB*_ah(Td55E7~p5BF4?76ru zU9#T8W!H*f?pa)uUwA6~eP}5pOBYQG9A!G0zL5ngLt+Jm{ccQ5s@;EFM4mYmmKimf zB)(KrQN|#|mLphGWf!N!hEPHB9R4@x`U4-UOQZk?LE*{ro3-M0%Bi($?>{s)-nA%XbaNjW{^4uNxqbO=K|hd^ zNxaKS->kh19dT%us6MlmI51lg$o~_`txP~#5}+7=`c+CMjWH7U>8^6-B_&2zDD0Hx zq9p6TJ#eq(H~{MDK{3Kj(M47uCmmDbS&O`QFk$PFL;NtV8PQ_9=fR7{E?7nG?OuN5 zr{Ne!F@)vTsaP96(R4fu+8DKfncw#T_{B8YxthuK|$HZnEW3;ZtNoR7vX0! z-p+ltOxVnQ{+ZrdJVIH!-$r^iqRLpsgxh$qjM4s`g*)ak>n zA#?i?8W2`)6~s<&sPv}B;^wbjjy5$8v3|Ygq~7pBWy?J0kz?kxxlK|__y!L)3+X_5vZaA2F2r+n{i}<53I&8u8%;s3w~c*_79*KEl>Z=EpeI3R^V7X zqN4*Ac`PcYjs0v!%FWQOsaSPE-uu%lw6|NnrDUlxLlvSgJxO z3%xz^?CsY1(zuT?yqqV)F;GOz=XA>gETSM>#uGYp4gb`{l!Hl$N>7(Eqz6suf=<{& zo=$;2;1GGwGMcxJ$96}*@42{_mH&I75hihxpmHl$v?-$vVaG{6n!mbG{9zDdlAc~nml3462?ks(B|bA3Y<|5QsDa9 z7aVre%d?Wm($eFOm}_V1f=-DT8H-e@yFp_S5-Ti^RA}c367OPFvX%M^ z#NP*YfK@)tyJ8#9oljleQpye@$Ar?CosYv#mDCT%P1Qoy^ky4-4}Pa;6GsB~{1#B; zNlIM4W#73rZEh#C!aAYr{I|W@;0s+tsi#)a_|cCnpwb0>kRFtwHO!H zprtoaojbU+z3K*=6%-p!`5h20nUJWXmT5?9ic@DUJCTc!LBT=6nx6yh?$fF1$GTbl z{s7G;#$N0p1KJwauO2PcBO=+iE|82>9Bo7CY~kMCNafT0yj2_B_xX?NI!R|`^{u;q zcuD;*xJ~b{9n!a~aA8ZY+SHADB-sr4Y^2aj1tXyMgJ=2r0l13>BqM&&ZV`-Mxb?bF4^>RBsm7fafWgA zFnNbx)hPUBU#B9hfYXoi@jYa)&pD$DC+7pFd7`~h;C3t=Ug!J3sj}|U84bku>A53e z^D_5YUx0iqCr&F~5%`g$I^tp669=;p(gxF*-Y)>g^ryu)S- zSKSM$%SxUING_s-&RtX5?kAm{9e(eQkyBZB zO|IMwyrtZ21Llhvd%yg!`kIC3OK1(N35uAH(fp|UZ^M(5$FJ0T9(}(pPVX}Rq*7R> zuauvLX@A$XS=qjH(%{%KK+n9y8K0|u{A5G4J>{>g2$OM!Zc*Xi5oZh$@tke{1TBt0 zV6ICBTn_QyUpQW*PKdF~av9S!7K_>8o}>iTd`E1k6r#SoTfB8;p=R)(0H5j-mn?|A zd2P1!$fu;A6Pb(HK451$9gUW0myyKr&uHelg24sWq++Fp?qf$q6w^xHuqZ`2v%rOc zgl5-#$qIXR)~A<}I4KhT-7v5EPOdN=9N2Zm<^DC(Sb|DXi{K|*=!RZv{Q2R}_#}sC zJHyAbrlzi*eDO_8uIQ*9sn<=FT`?zfuA9)VThh_DT-cm`PJf#(Z2Do5<_JcSsCsvF z(cU{&K`>(m72q+h1ely1w>ONBZL(oXyuRM`m4P!H^+ zI@E&5o>2(i(GQgyg4b8njvB^c(&eR@O??VP;lZ84J9^#n!>)t#Z=n?MqK7nZw8Mp{ zKn~R?axZ1JIPJebYZ{WZ7u2HF066$~JK8owvW+#oAQ?zoxEVIG@zeacmhvi7U@(s*`U&%cgwxh~`mm%61zR(&J!*1a;3 zr_KawJbh)9SoQhR;+l>~uZ7vuoGZE7TiOAr-Z!7JeHgpY0>9s}o53g4F&rS8IKx*J zIDp@+I*o}xFLL=1)6Y@<;^H|<@oqd~ac08$R)|H&Z%!5~r`IVp*f}8gA{!WHl;C$9 zWqJT56~W2ry{%bSf#beU&V_1`%qM~@MYFAt3WugCZu8|%ID}KJ>l=UHmRSXfaY%x} znRK%4Sk_BdAK0b^*|_J19kD^wWNb5tp!jJ>Ni~FKywb;m?Np>VwITg1H|Rq~|_r zr>_w+dK%vt!81V0=NhnX7F@(-Sg(1bXlkqJCjOrsZys-#+^H8G1hm{w*>I68LUN_Z z9&^NfmJ6Ecqd1hLc8lkn41v-Pax8sMx&;*|S?^^4W=W*=B+w$W)U$U0OCTMPk#blY zv!!F!LX@P5&Cdr{S13-!1JmpCCAE5Ffi@OBi7;q;@Uh-V%6+?}=^~^O+3nVz(Iojq+ zL(Rfa8L7bakRioyRk9keiNfn11{*8cRdnhT@F1uBMV|BO`LoT$`N}3)Snn13{^;Px z#>Vh_jRRB9$9Ao#CoP;U%9C>7ce6Rw&RO~q=W0zow6h6J!iFxO*2{0r{lnKYby)@% z%!?Q@u6&E~Ob=?5AsRcFoL!V@u^Vsx$pRbRA%r0BKDmkOygwEe8GK%7 z&nBKxni~a|eirivjF{ay4aS!A=8~*Egv=HLIoweT=YnQOpZu#?(K7RUgzf8|H;qN& zBeOX~+=bCYn%hHPtkq{LMdAlT7l#YhuW;^Tjrvcu%u!h~>`M3Rs*@HXR_;DbEMYQe z*B9Z{gn<)Zn|Q;3JBF9x!=eC>(}vHBMunGqN9I`3aIJ+Xe6Q-h65g3$?pb4e!SMMO zf0;;~nW6=+>PxtUPy}#g0dzHh(IAMlFs^r7oA4RDNi{O3Vf4)2dc(wI}x_7l3i#)Tg;d>W6*fIynEs%40;g_9O z>}9+y3vdfyb#EQl|02toi^-1AVQDC_|GFUN&go!$4QhSM^zrMZL;$B*jYDnf=R<@! z@taqnpcBr5s#Wk4gvf)^D#>n4v(Z7`?y^48SEl!F_B?2c!qvPp_b54-Qvg=cMJ;(g zcb0F73ER`1Bt*K=w`1bQj1~!qGO}FuDj6y8?&vLU#nsPKgPHNc06o4R|HxZVwxpx$ zVBN3K-+5f%x8V5WY~pT}li)XEv}}lWwIM#IamLc;_Aktl77|qFTuo5Avh>VndjP*n z(5XTe=&Ygn3lGUfw1qw*U5uXcR(JXi1H>aQ_SHx3PMu>Xpu0R~m`87a?yYGs^1TQF zI-k_d{rdj!9pzo|&9;o5;Rs;Ue=%iz;Gt!`EW8z_)fe_e!h?8ZgW_tu^;W;r4z>%# zdu%!iG&$9kR&?|{FWsj*!5cm&O-Gq*sY&M?=sXjz?D3cj*;{oZyE zKiBxx_xvy>ARa$m9Euckpa3W6grQ#zDBR7|MQGJUHP!GMS9Z+#CxPt`iH=yUVM17r zX3cEpblq6{C$kx3*bjRNjUt(p@8piYwD!T(P@}MnjHVwA^EZNKMYpQo?&vA|*ko;4 z4x!ejBPL}N)hZD~wXaL;$~4`I2&nG&yQyA%@USVs3DCsNuvo80)Y-qG7k}M2)s@QC zi!pSszuO&oZjS4~cZPqcF++%}Kdg)iPic*r-_OmH^%iHyo&jpbUd+Th&2G1-#I{27 zX4Bnw=P9mtr-V0d)yizBVRNqnd^Dm1cn2i9UdMp_yG39un0>C$rtS})>h~TJsCJDo z>nOu?(>Rzr~=7)$BH^yAG3B|*U4@MOTy?I~;7AD>&xTxER}NmEj~pV!@?p1I9X{1t!AGFqh; z$Ws{(__hZaDM58X?z`{pi-HWjXZA*0q3h}&b*}VMekLYkf;F@Sn)&+-I1)&^+kpZc zO1$z?<{=*4SYxxFQ<_s)H-(DUb-*|pw-bC7KHv!1ynU+m5C0(jQdylh5vt(1C-bJl zmG_Q`$+kEa0qvQ(n;}!<)kbw}v*O9+4H{4bdfMe@yoZ;+Y)e128NYl22u5l#XA z$tT>S_wSBeeabcU-+=a}0i|iYelQ>Udw6l_;2Us2BXW@|@k%2Y*DmX@%t_c^*HLE{ zfBSOKu4~*}L>`%K+F5jVWG7ZY<_uSNea`9L-;J5#(@zeT`k5`mTh%2ff=|Xvp7OdB zHd7ik<6llT&2UJ(9qoIKx0ZbR9)J3zeP@wa^LkZGUuYE84A(Ra7QXVORR=UJmueqW z=FhT@DpGWRacXuPrIM}Y8)AVYc+1F()@_%)$-tyfv33^rbB=dS@HTH|1&-B%*X=oZ zlvP6QoBH~Kb|+AW>ai8_U+r?*W27TZS?xkf`b}q6Uv&d*M)qqPu@%ck?QTNsis{(R zs-E3izo*A}D<1=#^Bf<^hxSH$JRShi?ekpB6!NkS zA8zo_jdOhmqfCE|#G=2yyR-)LqHri%QAGVgg0##ONu+EGnoAf9aJO zSXfF82o3&HXs52aUI%TCst$-URPbvmEFmRof)A|>Qk+qkg+lt;ySj_@i6Z?jSNFgK^_-uj;_MX#!5+RS2iDa6nTDB0Pi)=zW73f;a)$97wrdW8k0e*XT`^od(bV=V>$u=%5Bl%{Pvs z`0pw8SM6@nKxD{JhoWAuR_WL#p|=s&%2g}kAU{7Zd&^t}#LmdQ1ar7Wp$>j|V&At4 zI5X!O*t3XZs>IzFWl?uP$NcvLAUAnK&66yTTJ-ma4YVda1~>^$b8Tl2j!>7I1k-}_ zL0(!e?;o%9oj)9cT_+6|>1)ZH)2JxukU54zacwFq{40E$szR>}r60fI_z#2{+C_9X z}49yu{F9qc|*eiQ@h&#u%z!W5C<)z-m0k*-o?>J+%67#HVr)v@2E7}g78*I zg?{97jimz%eoc@`H6h@v5)vbr{8fu$D`QDPV6r14wfkkw=6be9S20M`xj{f9!>%;opf|E(}I5*M(T-X zDk`2q^7jOP{sd4$U_`Pso_0S@VK+Di6vR&5nD9TMu$YH5WE|h7`zdQJ$9L^Uj?X@P zY`aKltQa9t@n4K`H2cv-U1l>d86fcqpWNk~2$&0uL03krr=;Bv)Tu1TSo<2w>7a>^ zzpur8i6VZ&HNWsqH@IV*4q&O1hi)I<=@FrdnFa-UbM))us30=BdIp=JK{%db;qR(NSDA;0vFxhz61qDEkBlqCgDciRr{~v`1uCFsGP^m{U1CNgXHUNm+SlKu7rF)ejHT<0=)2Hqwdz0P>%04s+;mT7Zyo}r)Rw5vrsJq*Qdz>YlVR$#&2-mbP8 z?&{3opCCp{XQES%qy*G<`=$M*3eNKsuUcYQhA@Gt^5or1;$;0M#g!Zu6Fckg$~9ge zUw@A@OwS}XAhn$O(lx_BM2{B5T~Tcu?%^>UwX{}5foXe=_U3HWWv>c z{UO@I{&+tOZ;@}_t&+(c&O<`e1&r9(Sw-)}v9aDh3?}8CIq=#&~;$(o+MCR|bC@Pw)M}3^-xSBJ>Ip)v{ZNJSe&*!+h#6 zzLBxu7CuAc=MBjS1S+Nd*D`d`H{|TfqT=g-;N~ZC7t&fwLo04=c59G4fjXIZ@9I^t zXl0)(5SNFjQUulgt#-2hq1ozlehStb_?pU_1e~+YcTMj>@k>hW!_an7hB4-5(kn}rCp`FW(k--hOMqs}+ zmzAra;D*7cqg)TvvW%cc-an5<1BVwl``_20#hbV+N^w_n z5Ru6v20Y`54bSGo8kRGsoUK+E8_h~%d%WdktZ3Of$DR$Fy*1S9u%7hhOTI`D`vb-8 z&Bbt*QPwv`umx(BC!J)+QFv{)@(Z%r;A$nWWcv5}>9jAg56#aOZ#eQm`C6%0`Oig$+L2K)`Ck*;yT-^mOkNgUgxGs`j-9R?sYj`9;&D;Vjk6+E%5 z_9c@UR5&-;PiU>AwI#1YE#fMvamcpacLN87&xs2K8B=PZ&3=vIZvJTnZB1+Ho*(9c z2)affjuFk(ymwH1Jv1kkYM!0)^ z<9IPL%UwECGxyL_PhsbKd80<Q~4>L+*8pz`# zUSmg8y`R8)0eVpP=ca1#u8{}~G%yS>B_Y@{W}elBLT50y=VpfnNvtz?Q({?PIlSsw zOy-D2LZ-Avdj<<0v>_YFliBq{6%|BT`6S-^Nq5eNl-8V7b8@=BLFopDUkdW$+%NpS z_3;;epO4uY zLlyf)yrTu#>8TVxY=#L0YMxo#jpq?axnE+3;o6E2j6ZfT(y0)QT~~LjZ;t-l{E{~s zfi3h2t5v%e5a?-}ojg3U!*O3jf)4xY<{XSXP{<3uGT;v4{0FG46C2ly>ZY{;RtMP* zJEK8SwmJ^|7Ut~yRz=12JkQZnYf89=cfApmtilZ{b9MLERoXqDB^w>{-d*t)b&~;R z+C3`Y>Im81Tc-3bUIS-=P0x*0G&e^yVerqEtHKpO(4S_|H;5-eaz6`T)6Oj`OXM(0 zCNHhlO!4zDRAGksHvVkQhBrJSU%vW?rB{Um?bC~;Z;#|e=lm1h((>oBTVrUif<&U= zR*bE)Kv6mMc%2hI`D3T-LK(HqV8Ku7PRp0O}%b-Yr(5@qZ-zRnrC$|;p57?dfT=Spge>XJE3XX0x2Y=Ps#yx{wO3lSbb^~VB<6{(2R=DTV}M|g4d1A@#?fh%R~_hV9|@xHcx zX=A^*>b9(9($URp`u!Dk92yfAQTaS$VmyA0DS+H(_?$9o*Tt!cX^Jzr^?ST6l~JBD zX4KbSi>JF@vgVYqmLE}E+)lcAN5xGO?+%B?JxBAe7hx6#S0&OjD$SyOBQ};opc!0w zEL0U8ZSM^+86Lo9M|Kke_sP!>XxDnX#kp>g_^DFF?rsHo+-SzMsVGXRl;+JkO_WnS z7!6{OklY*VqDd(bRapYA&ilqu>=s(2TdBJ_gwB%&Ic=N@dXT)rln5_rd1=N&2}gFb zU?~y)m2AL1e46F{Z3yQGLr#dJ{_y=O`TA7wW89{;PY}wB!2yNGC)UH>RK0KVTWi?X zqls}ZHm^%1?dG&_vmI&Z*-lMzVZ+Yq4qDqh_S@ngzPnqX$W17a?CJz}lNhcq$5HJa z#}tO9>~3@`WodkbMXQ-G5AthpioPnJW<8%hEz;AW1PyFz(PlWb4(ns)!HbJrQ#;Ht zi-$S;Zo3A;tvuQK5p+HCR8&%1HliWn5x&l~bIJ;FW930EV3!fS2;j07zKYN?-X;XMUG_5VUs@KHZ5tjG8)Z`q|+SM9k0W<8V!PTiR- z7Ya?;yoZBM%)F5DLoFqTWt_m5D7jro-W;$|V!W%n)6)^Z8F9q!7fLERmcnf~X(#DX@ln#~>1_PD6>u=PV zr(8^%eHZ!*v0&ZZ4U1s>#Oapfds?#m20mk0Tq~^|-l+e=DdxN({Wr%SJ{orCF3S$@ z^MQ%`!>6_C2A{4z?)d-p>N8T7VC#P!x`ul%LUMGgb{66+u0yEW(G(X9#_ z<-oe}M`yJ9UgL-Zp^%l!pLevXRl;uF@l`htUh3wdMp;iXs4fp<&Sk44p|6yF;xwps z{^5grh4YTJtZOGKD{M4RNI5$Uzg(+p1T`fgTGCPZb91Ab)#szeATfXVE<;Raz6e#X zdoU^i!ESl+8vZdt|8m1(tn+7zU8J-UKx4Go3sDi5qmH%%(4aElI+@RX4xmczm%%E{ zGLmnh8MV;_oF$HAa0L7Hx5<#dp*GWWf(z={vQA8ri)`uhAqs>#dldiLKJd3Y>*r+o z>W$JPM_hG5An0x7B4*aoz8$-6adAu57_f=1`DMJ`(K`^nAKUC-_V47~&Y&w3kx+tK zEr;aep^}M=QX|Hx$UHdXepyIo{v`IG0lIpAD%^`aKVv&6Tn3e|>|W)f5w(wW2uHenvfbH>>REM^4 z6aH6y!N3Wk&k6n7zS_xJbqgh>zNZuK%6usIf{bz zo)sutueZc<%9z*C{w}{h0cj*(ngDC7UW z>yRL3Aax5m`r?!Eu7La5r~tD?W91@9B)4+yiXaxCh9Z**knX4*C*ke^1ap5kn&j)JQl$%ut>4<;zr3W>Z}6jD>X+E6QYgx*6i^ylXs_cKGX>H#fHM z`UBst#0=Er!gJ zuwD2a-)y>FkVp5|M6kpaeB4WkuSQv=kA3mGH zdfmWJ=uZrW5uVK150~(nV)>PN9VS(h0QNa zfdyTf7Z&9psLFFBaDGNnTpJo^SR1GMrsOT0y)09j#Nr>B{NW3&R#>Qlo%fBggCC}d z-qsLq=mIksdl7)Q*xBhMmOO7~w`+ZWSU1{O7R-9<{fEyp(vJWryT(457UXogS#|G> z|7d`Nhj5(6OG10cH}8}M?*2bhDt#+qbRHh_W^>ANU{Qy&>ehvP=H%D_yKdoI*5JNf zSiPkn&cU?0swV9;`^!QEneQ4v3EBG(tr0CuS#U(^z7~O~z`6h>*E^-UJ)|)dW*%xv zwh1y(N1jCl0D%xPoJUCQ*NbrLqGQ~~i=b64*wK}~(R$T215;Ku>@&!8e01Wp6=Ywm zKR97!WUMo6EPJBQ>x_{6!5_XQNEr4(FS6}PWaJVhe#!4V_1o1wlSu&3G>ZK4qr|oQ zv!4+3cZvp#QS=CYkUyl>8?K2%io{+_>dDBM5wU`O2nn6Cqgh1wu7u&wH8t0taafUA z`NOyHu>jOO0GRAaueN{Uz$mk_FK^&y8Jk!w(^;@U`c50U;|8XWfZOC8kQrRjVCl4w z{M~BBuKD&2%IC6u(vx&SEVuabG-a$aCd`?-9OHSul*#K70abYgxd)ow=LyNSLYJ%XMcy0t>sC zp;v5=LqDkN-Q@*RC$(8ISPg)g-_coa%L2F1u~P##M^t#U5LWc&bmR(R5}jl+_GGx; zXJ{dFH^@GNLs0fv4QcZYOYHlCFdWF{^m0KgVkp)=Kb3U1?HrgR`sI?u;96L#Q1D_( z908pK@vmx&4E?+6<~=k&EvVV;6_D$BoZ>=VvFSqfV|Q~~XCU*Iy_d0;h$*gOcm11B zxl6=OD8YOeBH6C%oiyExID3%yhp#?tEU}&VVyifA>HC^nMh+2qXB zQPo1@lLs2rQgwD2>nxwi19UAzH6^FPZ-xGr4w_Q@Ldse5a#@bdKb>#^zN>mt zsDH4TOOq?WGiJIp2Kd>-?ONnf#2dR^&w4Yb;|Q5JL&n%HIuX#bTA{@2vzYfsag7W* zWzoS~AVW=)C+(Zt6!>c9YgUI`_CJ@m-2Lej+|{xoknc*^whlmvbYVRUYQTeNFkz?n` zCGX4Myp!#;W&dz{)Uuibu_BolSS7pbicQ%i`&hGPU`e9R>FrAC%u;ZRG41L4=U;<2E$lGp<03MYjK zo~TUhf=n2rT5q&|S>Nmmqva}RvktbQ`CtKXkcNafX*X|D0vDxdWQ>#nV_|bH?UMUC z#a^R%@9B$6$s|}NP__&u+z4QlYX~TNI1cSd-O+>W$G@|iohj_8o;uuX2Z|<4pg?CR zW@Wuz;a|val)aVDTDCaH!p?56e79PqmoID#=QaE8VMw3KKFc*R6Bh7z{0HKxAALgz z!lj^G!zfBaQ;PGmh0XkHLc1^tlH!bj<(*yiFMbW5rqkWEM5bu6u-IV+DfnoC^n0FV z{hPPgAn-wM<8`Q;tL5*uiH?XtkhL)&tqR!F((Y}sg{_Z~UTPSqtXfCw|FgEgZb7OT7c07De>F@hfec6TJ)U+{7_3hBW%sqAIe|`l8a-!*zJ8108+Wu5w zoP2?XR^*L|O5!5&!lyta;}%fORrn*)Z>&jwtb^r5j=qnkV9&(x9{qL`XlY0kwQ%rA z^M3Br=P3ifb$FaqmY9lpU&si4id^Be#M}MhQy+)wLCI;{XXTasw6L&#f1Im{Wcb6l zszypu_7x|JIw&Ht9;WqbQQ24rQE;3!Hw=`z!$v-uFREX-%P)^ zfn{tGjK=B~zP=R4wR0v;VsNXQT0j2ZrYBQ-Yc8I#ZNhEv++1GtnlgQIU9tNFs`X$V z{%&r>-axC+E9hkM+on;%*xe9&id3hby=$m;fq=7{a~v(lb5b|nv7B=6Yc91=9zxp} z)yuB_G*8+WY-=vGxs^W$#^OIjD~j}ZC<*F?4!$2VsQ?lqZg~!I)euV2fB1|PH&vn! zC^CJ5tu4as(&EEA$0Q_Eq9))BgpybA$1^c64gB*9tny_hCnvjuPn3#g(2O#yDMKHt zW4Bd5>%-lC;i*qF3vo`#ldWg4IU$2ux4UEw50HYE-!_(#0-q$^X(nK6ye1-#tktPV zBF{bt3L=5_UDEcg@bl?Qv6`(f@!oT}1J#;6G}Bqa2^Y=%XF{t@-p9hJ4aWQp;6RwJ z%>umwU;FmH!{mUkCa?!XUB5)-TAkw>WVN4m! z44CiRk0a^Tmbabw=jU9xX8k_=I}r@1|K4W2z_=gt_nUnV5gLVIE3xWW< z!B>MqwC!)gNPhMq%RR-Nsl9e_;hwCfevj5KotO)5$>jLr&~RTQP~Y~%#q6dJ4k+AE zSCCQEhio!`{OH06P6ws)Bu5vTv14H}(rm3AZHic%O0o2@9Ds9w{(Sj5M}qy&OaCA_w5-AgijAh{l7I>$NrQSD;~eW;D6!cOzP>_w@U}Sl0XSgYzNn?+G5%GxZv!ldZ5!mn zd&diC$eKLOk8}Zi3yNbxw!kEn|j(frV#?i-->6-#?Sa)X<4P8RMNEv%a!We~v@iNf=>K(3e7T=oAp(ZzCg&;-L)_sr8?PjK8LbkB0M!NsPSK}6+7-U z;qNx4ZsNNF%hp2;cc3-(xmJyxmVVEC*L~WRfufI>Jnh&S?$pC=(=^Jg-OOpVe{0z51hFhaRU24-7B69H5hY*4sK7$ce>q7b0w$zc;1lUCJeHv0g=7 zO7d_UDCPC(9#D(RS^@i=gikU~y1O$C{i*QrKaq#UK{vVrW6o6-5MEE|0){|llD^YeN$ ztk=~zaK&mSS7t*xq1?%ZdVHZlHSd%6g|nYtTnD>EqE2adp0Ay9W$Sh73Ur)8zRsOm zc9ku-_-di%2L%y7t~tO~oF*k;r0ka3@e=EdlFuvFfWl2!Kw0(CiNUV{GD@$qvwuo8 zlOFlcW{6Q%$9R%SPBk0-dB;?vKd+AYOCtkrZoY?$XF8X6ZFoLx%`cMyBc^*pB5a&o zw@3B%H1fC1=XpY}I$+1>=`GVOH^4K_)!VTYfmp;X(_GaSS)EIr&vh#F9m0NNjOOyT z_3|{{lFpG2@|pf;zMsK9$jEyL>S@C|t=6xCPEvnslgkpHG!O6a=S!yD>DN>~^J7oD zGx$a4a7Jgva=dI^fdc?_y;hoXaJ%F+s^ME~EBfQzg}vL~be5hi87ST(PY#a1=~QFs z`clBgWmW~d>fTAF8v{vRbsKgmUsm=5>)jNCgnp~Ny?jLF1W|l1_n-e!blq`Du5Z8J zIc+nuj%m(QT4t`wl{q+N?$pZM>*Q8Mat~0>snp!5DY+|GF3f?bs8p^LH;zPs9B2-P zqJlEc`@H|_^YOup>%Q*q^&Jb^@#q1=+AwDPDE^z^I@dNjbkwXY``7)+yS)R{+{l;d zIKXstpK=CilKOO8=T&*<-lJC6rHlqo9XvN3>iu8A{A8MQW)kSL;WeiL zpHE8jr`p_RCXbJ5H~r(V`c<~S8Oey3{dbE`9*Ll!MruK`!>m-xOWoIyQ}b@H`DoRD zKX3cK`k=o%I-Rj|KHkB$=S*k}3iEhE->m!Sgp*?Pwx(oYA>_$4@_SqR8Z}$z=#h=% zCU>(&p3inzH!}D4*-jI?`7OR@(qV>a!oyFL?)XKsUS{=#jL&|YkM3Dyzt(4*;a~^+ zOp>0q^g_@0D%lRpDZIaa?D>zuODlG!g@x^!2fD7_b!0(QEOdPuWFO+LJjvL@ogHlO zpRo#4%f{Lh+3c_usdkldR>kSRHnNBm(?#6HALl2D ze{t*3SKXsbXjw0+nY9I))P%N_|{9u9F+e&J|H*4Z5mD`4>*dRirma}!n*mTF0oi2={^5?dJ4)>?=%^cI5uaf`~nS z*Mj)*3Cw+)XDTNyjmEFbS&X%B&y+4@ih95`Isg7Fb|33=j!r=Jx+9p~aDCWc2@h*N*5;;Ah=^Q5S5}4=w z>e?l*Tq$23%ILRSIh!6v{)Wnv`hMk3o8m;-;_49v{jY!ixm1j9zc9)6K2i3T{xtSaoXH7dv{l4NUax|;oIM(+Cgg2*;m6%4I-S>Zb z-8Q5A$caBAQNe6u%(Pmtx~huzgj!iR@lDfEg~o!m8EDz~G4;;qL~u;Osdyjz1E<*O;y+b~4MUBn zy9W+cn=Z`t=cJzfw+ON_9M5OOcIm25jlI#-)&C*x8BE$?9fYG&tq84E3w8%J=?N)) zS2_{Oz-4`MZY%EnRKEhtLLo15ObBHw~nkcVVE?hzsVC=7hqcal;{erh4Vrm54P z{M096M_|)AVjWYSuYDiuK(5}(mpjF-`FLQCWJjqw4QK;tl!hc+B#IWwiK?*&?4^`P zZlm4JAB_9?VMZ(q+f27b`5S2{*2CnW!hFQ*DS;&xSQXM7>a!)Hh#6^)zY^%yGN00q4J7SdDk8@rg^GjWE_48+_@s z`6u$5xhBjo*MqZOt)Uk|GU8=6uX3mUJ94v8rneWD7r*zYPzpq>*JuW=*NYocosCQQNW1Cl=ga-+6jkM_nr< zZn#&di#^?oT=~Im1#+UR83TyeE@&em+9JMeot|N}Ob0QiUqwaCr8P~ge1wqWokeeH z549!Y{0k)5Aw0WlV>v4V$v~q5h*l>FX zJiX)hMGf~q)CD8wiDifubRbmy(}8oDdY85&o+dsrazS?IoA`f6+}L4!BEHaSj%~PJ zzn(R*e;eMtceb}5lvMAaB&zFFk9w9f+8SxUFF-5Ytsg;6wI8@}Nwx1`-dgr+4_lEd z5exOUjIgt=O(t;X&a;Rv`wv|S@!p0io+eq-n1V*cS88N66I64(R zwPQzXZBe1zCakWuUwwe2H{*u!k12I^sUbUb_vOPWIUj(g6NiMDhOz-0k;?n_#;z(^ zTB5J_=(bZIU~jo`7?R*Bz3RUs4R(tOYR~4HS8aKAF=~)XcqTH6Ii=*MSp1fRc~08Z zI*)V;w#J=0hR%G;C9HZZRc_dy+=&~aaHT{3Y7iO0a$wU^S<;j+Dm1nuRJ}TF-|3ZC z6sfK)YL2Y-UBJe3SZ?}qVZK8t;G^*}kxh1?EVaj$q=lZ&))*9gjYJUQgRgAec709Y z{3|VRMCGz8qY_9dLtU*DZm$J_cTXyAO<9F2?GiLESYz-i>uzXO_q!ydSVAt*&FJ(kfG_#P7okwD0nu zhYpvwMS5ZlF(K09dd}n%_d)d$7q1C}??be= zd02epa422ZHB{U%w@2lnzxm{^(UhoanFyP0j1h7i!qCkBNC-A1ACw)mABs*%((@*G zrl+wq(#aj-ts>05w*7V256oh6&0y0Sga=veALcB?7o9DxMNO#g310-m^0Q5d_pMXE zd>t^v@dLMgT;`s_u`)n{`=Y(a?8?(*-`2=URHT4GP50n-=j-oP&6x$cF5{zDK)3g3 zzrYPMEijkOPmDLTtT%`+jhpj#KAp{3doTt$bKC6r>b(K${6p?z=cd}L_zwh&BI>Mh zqmfa&Hx9WqtF$uu&+TIpL9Ca3u8k9W%BgduTRV^}0b63M_0I3S8*7Or6A===*w6k> zW(&Bg6IpH$^1D2T^KQhzp+D^pKDNKTQFT9Zd&)r_o$K;V*%su72gOjvmkVtYFTHw> zSA18ld@K1ywc^Xt`tZi}3(k)9H2%VqduRN@xjgjpoAzK0S7e5v$}fS;3y6-Ti;M}s z&B^2Hg%bvMBO8i%QQKa9c8b4 z5%Fok?1^r$9F%QW^EPM5=paNd2o?KueLN@4ZY~1MGMys>oY0DNo5!$i>Y)7MT|_H| zY$(`!TN~1^0PKEYb`z)CPT-|LU5|v!A9lNDZ&^|Lcy{G$N(0|}s=jaTX;Oaj)$y6D zDH>8b%*H{`P#d>U!plhI_V7u0kTniCqn@53I&rNU+p|4v zy4W?F_DHM*5|E?D4=1v$xYBJIHoBl!Q?~~*bnGkg1rxcGZVWz&f|>+t3+~ic#$3(U zU_ZVPrZGLkULIj12PI4klucJ1QfxJ=|1bqOWCMW24ciI%JZK%AR=pZi z;$zx{r_-h~BhOPwxr;kK>-N^5X}RnNv`5Cl^0`-8+RMAO6E@)Hk>3TsJL0(+vuACh zLK-dqJEDT}T5VoU9YT)CpK=&IK*Uhtg}?=yIqh{M&mr3pw=nNE&WWQvmh;O49Ja2$ zrGVcKNUYJPZn;>B%@(d;lSuX-{|N{!%#mWDJM8dEOH-&fc)4x(YnJj|J1vEPX_084Pw^luLB>U@5th`&0rTkhKRHg)UL-BrWTKttx!p;o}|nXdt}-y8n9- zkop`xZ7C$Gczb|_8!2VcEW+DWr-shG-GC8W9NY7hObfl#E=)G3O}O^0;=wpBt`nNw z>V?Ue>0OLoU#{IqF@|e z5>zVB@7b$w1Tvw==ZypNRoVNzv4`5)O=e^druL5<4vxGF9EZL!F#YP&cNMpJ^^X}w zi}B@;S7*1C@P$yaYB}- zD?-eai-qnM0Rolk4iwomVqXE9Vu;A7;&$j96l)?n8+`b;VXCH9dFosEFY6*BI1WZuqV)cHiBaJsOW>Dl)vkuT5vEW zD@il2$@pqZIkZ}HP7{AgfooMengef!0}K^XclVV3^A|gP&2j_Qtr?fDgsFcoK7O6n z@Z>Tbb{Gav18+M1%ohx<9!0cwyiXiAicoOSQ}|J{S06MX)bKN$WIa`pB2}ufwcT?H zz)Q3sOygfZ)*-KAI#8uCCN6T#7Nua_1s%J5FLYjyL=*xCuvTjiD=@{9u7iJ+xIIbH zpz>>+w6E}RAi+z=G33$>_`>LIB88y(V}3o{>1qnK;^um zxHGo>-x0Jeh4X}}3ZH*R$y^ptP4)fM+$%5a=cE#<_Ch94)@$N)hI+8@Qc_)<`Y5jB z%Jr<9TtfubdB5P%ExFx>EJ19^z{6DhyTNWf)3!epTFicT=%}vCPYFwt#GHzp;u1SL-tuZ$HrG zFXa9TyC67U1U*yV;V0^w4U9qYoZ6`O8$xV|twpw-{^7qbccvkRltp`_t}qIW z`Q-+XEY7QT0QV6g?-e>vDY#oG@M3|(K5Z?f^OnpztCdPrwi)8*=~JYR&zh9q(*MSv z&2I>pbT#4XW8z*44xxEv%iXyAiNWhG>;RA+iC2WXU-}vfQS5FjG!++hV(cuNqjW4W z{7R25*X@Ju4S)BX`0E2|Nah;A@% zFqexxnGfai1MY_;bvzqXZ>eX;yOiZ;JORg4F6BtFjMvJlqT3wA>$hW)?fXf6p}^6g3qtAzI7`Q^l5tELp(KP`f-at>g(yU5qj0tZJP`ja6ccD01F&B{gPX@~0ArVP z8$@zDRDS5wwSsAd1abbf9#UAa7urF783&EIfe-Y$w4%5GqBq+~XvS1M7LoJc$f_Ei zL||JxbeC-#^*0cI*zVZ~{x`$P`Eq!+R1?!7ml5t3D1I<`T?qM*#Zpe$6v*)8m@}9v ztGZ~MOPua$^|@z_m;hfOtpj>loVuq)ZGCQ4>0!*T78`zyoNF|+2dZYZ;V)TzrnfUZ zvcUA82yF6_)G{pH-9r^b+*$g4uey445id9OD@m=!+Z+A3n%AMvkIEYKCI7h5(LfgrAq7ledRMi)<=5%oPY(P~*^82~h$7OC5o$vT7#S|F7U{n8|O3B6X2lmK>tnrtjQ7%_&l-wya<)T< zD3518w4~^rjBfApMrW=l#|tf9$Nf>X-pZ_8A_w68AbRF$o06Ywb${K^T2~a`l2XjCEttP!5>)H z1#%kC^}5!%HZW2wP(O5BLIn%Al$)uWsF%_BMfy+@`*C4CFSfXAwZ3W)29=`wU$jw= z2NAzEcr|kdnWG*ebHKXh7+l4<_dS^KM`qab+MQ34q%_*DVnitU#;ibQ1K<(~nP!?1 zR^r&F_92s1>@1fkph?}x2@#ZTXjSzn?Ejh-ysaAr^%m^qRoCbfFTT8(9`H>;)NIl( zfIB?E(9y~OnD7`d{Yms4RKwHha3Ki=g67GqZI~?a;q28rY@qWuW9ao^4zuTC1aWT- z9qO-xCwp4tx*}kkJ_j!M>%a;-L2Iz0vv+5!qc42*ID>YCENw@ns%xg3B5sYG{Vv7D zbqg*E)X;0q8<-0orq8cr=w8{%+8T-V16GsAY?dLxLID5PJi0)&bI8~0I45KE0HXn~ z!3K;*CV4qacXGpGX{@QqZA79#Dq3=Ni98Wr>@nPW5KX2EWz^nzfdfZDa1w3rH37a@I_yzTZj+b#$Ex7rpQ z{WEqp=?UN^(6na>`|*^|iA5|g%-jiJVMZeO@U*pUP(p)RiQA=JK&nh|VHS08;SZ*H z0Wm>0HAkY{xcYCh+61(l&kd8bSbk}~El8&lh@P3HP)Pb41=@`Ppd4e`Yu!&UNhoaf z$%sqz2afmwi0m4OdxNPw1qUq~d$>=zS8W{n;1@tB7=`PGR7ZQpL=<1?XFr;xORxGR zczYnZ6g6ej0e2mAcT2`8eSQ}ZUk$jFLi-T`tIJU z4h+rZu3towl;XXgbMl0(m&n4wG4i(tTXlesc)Ed$-qpN|OMzehd9p?1rMSBkIL_Wa zkL#3Tw4eX-Ob~>pB&QvpyL_1WiguM5T)KUs2Xjt8k9`KyYMnMB^8WzZgn!406u~ur z-wnWNV7KrN4*o_zqz2J}jrX(*^t&^p-#DT6l@S&?NvfA5*tnO(y3%=ii_vhE?Riew zV=%XUiS=+NaF9w@W?Hzf*D@p0ZP&f6%%(Wa}5f&93Es`OxFd{k%Ecq z;c_AmRe*1D1ndq_kKDD4#c2e;#v|EXsjFa`C;k&BvnhLdoaQnVP`>cshtK@rF3|7+ z+KvdI#ZNCnMm5x#AH!~){WQXkA!55dIKn=s!k&cw>Jqkn#h(w0X)Q(7udj2uSXeUM`P7>At&kWAEz+5K0YE`Jnj;w}V;KWdm;j=RAb3()k+wa;+P4QeHW z5<6dVO~wO5=Zy5T`sBC%J7Rut3Dnimy367DRcxH{Th#X$i$VY7UYm;+h!ZIhwT@w- zfI;ZBKLYOSZ$o08`12Zs!sWGoyyeNN_SxN9G!|KCWj`d9n(8xvZ-G1+qHxyhx;*w1 zri1ILlbz3)tSE;-rb)Tg!RrO>;i(d(MP!hLYp5z%@3#`_`0}uv2bWR(!z{RzZ2_m971g_QmtUX>#%A7#zkm;uzVF zgPL|_6nn*q|GXRmF01y~r;d1$Qtw+Orq4>Im%1gl$<2!*=Y?UG9hoD8EU)MuQ_Y|` z{}q`_HkYc7?PW#|x}YdoV`J8|p&Jfy1~V<|K2VmygTX7+bWb#6y(?JaeA zSWU|t`hHlH@Cl(>{C7ktTXXQqtMK5E^iBsE@c{#bqoO${=OBoD19vH59K8=hh12;Pt$F341F%;mgdG=;SGdl`#!Qpctg82~+c_zn`2kgx+Os7IG z&f4-(ebd|6Fu4-dsuG_4iPX;DV-}0GXV#u>=jB$L>TRK4eB;vO7&jj*hA{XWD0j=D z8J3{#`n}NhV5Dz7tHUa8Ky-2J+-A4L^!w@XE)%X*v_}XmM!Qkw(%U%F^fYInFDsg; zGt+=}vsim<#>R(zdj0hoKy3R)_i{y{wTdtyzB@Z>__g6YIc5HeUG-jc=P7>9ABToj zb>;|OKp0fAkLM9yJw`6e)>yc#d!LzVzX!}BUM{6H4w?zWn*k326y`Jh{?81U)k^0h5E&|kD{}oxiIxX!c03QtwfyT z^AnbOsZ(?bM~lFz5S*k>v>e1gA)~!|WR;mFsf!#s`du;EsWnJxP5Bddcrbk)k@zt* z-TyEK8!stJ|7LwY3d1hO9iO$;>vKOkC6EjBB-l;06n?$IAXSl)2~yp36G|b#Sg4g$ zf7Pk~OfWOM`)LiW)FzLRgChAg(ARJeCbloO3-d#B-c8a>O+Ev1|D@y{pR~m&vsb+G zI1(kYOQVnSoBFPan^7<29MWo{!ArP2@cev!5Jh6Bxia#Nh#ru_ZM*skF+{0PO;EOQ zt+u#9vbEs44fV>(AretD^$o2bz+Tesk07@XEdwyYkLu=KWF#9Sx^#?NXMZ*_*%=X_ zOV03dm(*l4Y%6IZtWDYPU~-@;8t+a}?^GkAGLPr`P~W!`R9}TGTqorPNR`Czg#a%U z!Oc8>uWanooWI6{0pE(NvqCKO;R>+CeGOzMP6+YkR{iPcX!EbiTQpxH4C;rmC5mj} zx7n7>&9gk+22QNUttb169bL)S{yAsnaOSL|=-BUKroCCw^Isx`YI$CU($mnrYc6*n zEA6*0eH41L`NC{~-BuUPJH-XLZ$w4ODs#BCb8b%e<#T7o$>`x4T#WhX%9tR*u7ztO z%&FYd%skDR`ROn=urV|M_jU_+wsNnQq-&K=BE-=1 zHvs>{O_y`g9iVgmw<$5te?-5uwrhd?c;4)GZz6224HZZRKo}jiM=-JYO_}5*f72OU zaj5t)lsh~>mQp|}f3`O!^lLWH$x&zU8Fxys9Q;H|50|R-FQmr91AI#O-xo1e{EaJo za?E@R=0uw2clAni$7DTP%FocP_eroGUqWs%gm5r~t4!eI!oAL9LnRjXd1&};fbm9vJBDtZoPy`wZ-@aIg>vqmPP*XlUrgq>41 zdHHdxspwE_fBDWUxy1&}?c>GE>c`v-b73`AMe!jrpL^8>lM~LFns0IV-L4Ub4nC*L zaJB5DB|T~y}F_jFWZ>fPo# zvxc$*;+>V1*4Do8LtJ$dJ3+P46P43@4VR2R*mzwkk(y7VVcvuX>u$RF^;u~weFGCg zncZ@njEyDslP1v(%c^0Y7f!Y>=AVnc&1gU94xD^?aCLr^O@N@h^dAOOC1WAsbQ;XR zVPZZ!L=yEDx5Ez18WgO87&SvUW=U>DRln+G?r0UIbqvU z-wIxm+~YUQkJbi3Rx;B^{<&vMNm)^^B=D5}h-~Cg_W&?eH1&046QToe2V`>Qsr`3k zcJK3=tv`7k)uBaPpJxU&h$PW2zmjSzKYv9wz$ayN=LFIwS#}AO;|Zx7aafAXkB|)5 z4luE715v4RfgJ!}Ux|E1{E(L&kVkO5x<}DA57EiXxeaU*N*PbB)17$t#>Uh`DCi9E z;}`y@mBR1q0%uI8(jq`jyu|Zc5<1Z`0dcZp_!6;m-An!L2gx-hisOb?qOA|_EkT7; z3-vI{ig@60W5$XMM3?n8C{umUL&T_}=je9N=`F72*s2<1(MKTmjAs9V{;BV}O zo#RSLP?!iexTiG+kkLQY3FEk+_-S8(%m|-E0tbqu$7>>cN0tcBAOG#U6Xa=^DCX8? z_r;?Cs~bmtazNFC!La)zWuWqZ$`t2ew=KWzizDOJn5a}(WndFzs(Vh_(@#Dy`F|ey zmqgZFO8yw{zQkFb=LXA3MZfI1{i{lRHtb82lO?XEQt!|qh0`z~*^m-pwl}CUIk94F zYF6&+^bT=B=>SYH6yc28oL!g9oLe$qYtM=Ax0;Xl=&YSEb5FPWdcXJ(AjN#oJd9BF zZ0K(22pm-p!%cPCE+!Hb0h5s`xY4YN)`JuZZNzi^$XlOR6EA984sYuAJL)})A5J~vWGxHL(G^H%E=Jx;ee~hC%zSYw zXtEi|DZT_(tTGL$kNyo}v9Y$oLL1m#U6yecHfR4RQ^)TBELqeCPfELO(C&@Jqu&L}zzNPegCF3J6K`i*f^)$PmGF zC|A}702bV<;w9l(b8YO&5tlf68dRdE?jgY_u4#Ru6Q@V@fyYsJk!@D)z{UPzfkJ_b zIBVbx*JDtgx=iPxe{hBvk0z-tY3_4@CsVoq9g&Z107X&d8J>;tUt^a1-5EA$K
    z1AP_Dt~pNtQb)qJu0Z$B-n^S&uRYU?xz;QDCv&Z^qF&ll{2P zHYK?YF-!N3R|Tk*3ioyObr19YJ3`{3(D*TZR%sr>6-L-nEQt9n-=^?%Ndw?T;MDBv!xz>=hQ+S~EODPV#%lXjwY7KD-?w?^Kb#cPZB= zavmFG`QmFBf!ysn9&tT>Cd+MZAT*Rw1pn62@ISYWi``dpo=njG#O`=_=RN736%~VG zvBV7Ox6oBPXl=**_Pp(!79(@k{Wf8lDJZ^5&Qv(xkf$mk(a2xMX4}+<3WR6iMh$^E zocoZ7m82&kf5gKyOz2%ws|>*`8D(irptei{9SurTY#}HF+brY+)5-!%JEte+fUKBn zRnqo=0h(QlO4GM7k-Slyvf5&4ZchXX6e-2jDq3y8BNA% z#{l>18PjW%o!|4Qwrk2*`r4)XbkG3!^P}{jytdP0aj~cOH#a(HK)l1q!4C+Uk8R|RsqdCJ&B9A=) zoL=ikE>2NmLSqUm4=`11T)pYFiOiKK7`ojHrbDeNNwm*dtd)WaSB$K49^42W7 z-qblv3^W<56kebbV?VP$l{rKYhKqRZ6(B?`-HCLR(PHVDc}}Lqg#d@lXG<>OS?`nM z?K)FC)+!fW0V?t=aEc}p!F`?oqFSkIt~|;>BJk{v*-soB7XnXeN!iNOE&-m4DY%0P zCr`Yoz%pa%5K_@YV@?yQ&^@br!3}=6w<0aBJ|7Q`Ys27eVg!*evY;J}_H3IuaM{X6G#iM2}Hy3XPrP~S`=mC1OqJbRfL{!IjJHbGo? zb>QT4XMlG!jz}h4mR0ZkJgxo^u*dT!?}<|vvbgHo@EYZmDRguWa1e>_SFe#taTUDs z1KXfZoyx7NPnY-0D(1#OBywdQ)UqCe^?)_@a&V^2Oh!tC@aZ9Q#W+Kwqd@Mel0N8@ zc|}Y?eZ`NA=m~(cB@8(CRl7!e8E?B+Es>(EJ6zfsP-ie?9sTN>LESKpp&HG*E3<+z zew;Z@CQQON0Q29G-%TWPfk_pdGNZ1tG$a46Cu~2O z^cV;!m)o!P!God%|0_E9aAJrJ%my0oCweL147qDIP0)k?j__;t0XitrBdNtrR^sJ| z3_nc=ilx&b1Jr>)X1&9bM}93)M$vjlMMbClCSuGAk1j9~T+`|nXwP&yGOfbGr~|^C zk*(Fd>!OhW>^?n`@~TSK<7Qau>gGfMn;wy5m&fQm7qFx9#_`M6n~%Xec(Erg{AD+C zR&_v#;{tI5B1LkpOUt0>3^@o1Xwfrewcrazf_K{Y+CA_|91xcEln6~u=&Sg;GS_PvLA(rYy(@4ZKYdS)|z?m;G6!AY_O1SF24b93FJ*|7@nL$eZ*Ovcgv0m1%AA% z3;avk@SZ`?IQppHCLqwlVm)?Qt>E!Z(>h-30F4q4_A`$ZkRH9kFe&2#a(%iGDbk+eau2nE5g2PIRnpRt67-MAok#o<~Z`K!Gyvz#P0;x1jw z%Hqy$oU;Mcs&KHN-{S@~vgx4gnC|8@c;E_lJF%>)vi6UULP=c4#f1<+T|4b(B8xDn z3-gSrg*B2k!|SF?Yj$)x9V#6IFpu;9&fa7EozTfx#Ehw7;}D6hnhxd<|@CF{7odE|huvm%Xyr zem_e~sO6vvDcl#Yb2rPWjC{pWM;m&%TF^N|!LKx@0@z&rrRmQD`it6D#N6 z*@oE5+}ZM=H*mFT%STloh+2ap`67aZr%=s#Gx`eQS;vlGfETB~CQ!v$5C|>ntBGd5 zNdf~~IBYYZB;kZe(=0%mtqQ3kIa_+}^vW0aeELE8>UQF_);#df^(R`@uV@qFQd&m* zena4m(lnE5<(z+ZYUnGPcNe%Bd508#_gGzvBJFXfv1MQzvtd003>_Xc4YKGz`nu^Gm+>O7 zh=W|0y!b6U+RSWsheYj%J`@p@$WuoMXH*9^xz8JgUh={Ub_4l3{~h^dH?)4(kg`ki zHTQ1bQGYKbbJZ9K*8!Ml!MK{#GmdU5p>FpndR1f-5{6+f9pxa1dUJxlc0e}oh5*>$ z4f2JROi%x?`x7r)yFkKs9cL%hwcG-^BiID}ulyh1ss{kc?)$*Q(YIug>G}qhXJ%Sb z8UZn9a8a?+NfL}-)71R}^x(AZ(5k{hX}bW}n(j?Q&uxYUPJUfo|CL1qjhz@KhpCf% zol)jthe)mK9%ELq>(J=}vgGT)(|I2^hfSsQF#?hO0!)LZ((!Zy0a9u>d==Vqg})+G zKELiblhRa>v%7sbT1Vs)aupzGO}@<>)?ALeuZCYocwzn*=AeLqGZh`(aJ}F z4=RA`Sar_x0INl+D+{CbZ^TC_D_?W?+@Jrnj%*`Nk=PgqO@jj%e$`8N=-d<5Zg)bp zW|ZYzr;d7l2Z$5{g0V}t(07R|1B>&ti-KA9{_TT(m|!OswMui5>@K@l-QWT~2W8dg zk)S%Dk>{fAIhl`n9(`7v4*}j#hL*t%v)~{t)n?_s(PvO@m#|NQV`7+90w{NT#Y(j4&8 zlYuiKKU~Ma{tA2|wEq@QtIDhO+zOjofm<9{7hEo3d@ZQ@x4wMGv$NB(Fu9CWoH8IJ zV5siQJ}N+Ctqc*;2*?aOCSm)Sx)$Ig2Bj&VpQsE6~M0C85A^Q9(vWp+L z_AqV(TreBE-b(79Uw5{gZ$SRm>9kPd6%6Sq^ZhtwQgLQe=B>ax^Z}k7zqytfhK~mcq_wRL5=3clln;V%ItM4j`fr%Xma)D&PPXS4s*Spj=ApK5@=Oj-TC3-x|KLm zjyX_Zd7gka9LWHqa?J-wsT0zB0jw$p7;yQ8=_JzCKuxq_y2D7j;^yZgr#2V1-J2H& zJuS785KR6CGgHXT&2>H?+hjX0LtjrhF^U#zf%DuLcg@TBTB9 z8xa>;tI! zYW72xCZjznZegZ!0HD{2JxS1EmPWV)(gSB2t+*Ioohg3ZaR?NB&~8=_Ux~%x5OFwF zQ^+X|JH}OQ_)mKEe$jhvDS&}?63~;QOdI#N#E{Kwvh~QsUhTQgPh4#{uE#l)1y6{x zIu@7NIDof>Vy=e<*4*ELh`Cd*nF84jz@`*zMqC^o82L?uaUZ9ub$m2noX5>Jd|M3K zm2B}*5^gt3K9H^Mye=1gkZ%KxZPwJw+*W-G1HV<_&gHedwme9U94~`&NDeb|*Aiab zrMr*JG(miS6dG>YRUD9f4*)aS`iV0k4yn&gYj&DI6gRxX`AZpVfCye7JMFe;45bsU zJ@!$!U#d8Q;n(D6Q2Ig&ar`PCy1CbuiUbBZ&rg;*tBth?c4ntwcBadXSv2V2XMX{J#CEz zR?SXilWv!D6FAaySgb=?U{-DI(N=$UtTs4nsyhxymG z<3xHs^($w!ahyKl5iBa}Sy)4?OpSJGJDPbhA>`z*W3_en}R&3pU^aAvCYoaC=3;EmZ z>kzs?-bgg&xen0ZS}dE4|0ex)NVn&fG%(!@!<9-UeS~P8ulxvn{u^xM&`HB26Gm zGI|z@q6DH_uL_~=JSnFyNOr%Q;pvvoyADF$JDW?V6=EJ%8r$#x3~~2cl1pMBG&Y>m ztLFBisgz@6WGEB5OS!a|p$9wtBx5z_?Tx;$+6oM^%4>D31#ZhsADVA{Sq-+I5kIBC z)V%@*N9jV^`}f9dtft4^ESb0^2jVWx#j35P#CQI=e0qK5g09JpANDHw+^(6fKw+qT zD>hsGb@!i*T>ZZX0%}oSNc`h}u34`&g3=vkyJe$aZr#E!#$6fcz5AfF6M4R_IR5WP zneWam{97=pdC)bIbcu^48Kx^z2_D1SdI+IFkE5?TW_ub^i5-rvW*4^D9bs;!K|9jd zeT<6Re=gq<1B~=INbw9UHx1JntM1gL;<{th@`@lW71Sjs8`2xu_j_V1pG7WkpigJ6 zjPKI?jJV237ge`o)aJ87G)0B$2LIDPzK<&DXZIkH06X;*A^{RUc+D$hpLFSUz*Xag z>=;uH7G7=#GjuPEeK(MIi!FwP1fgL7H+aQmTf1TV_n&LY>Yc{RjKl)#5B_s+z=uaG z)F5xuKU5~iq71jcQp218;Y6p=lD{TkBk<-&0QoBO=YywHDxn3rS)fg^!ZPLm@!T$f zr@Cc5h~QXg;gYK7m@|QqGuYT|{J#R}o#tMWjLlHbwpf33*-ucfTq2Gr`zH_;|5YZJ zkY72OXRtr3sC(>f_HQ)(C6sox_(;_U*Re%xz&@H=*=iMI0Mih^$3dTX(dp#1ggCn3 z7X9+uVap4GUE}lzL-^@oF_QPCtD#Z96R{1KI3|ZX2Pm|V)aKY(cQbgpkyUS${S&#p z&#`oBkjH22P^$11?GZ| zNuB5-?7{93;1D0gT5G@V*#N`uOMP+#A-q`@ygmb+fk6>dLia4e3H1;xJ-JM}R-FVY2K7rqQ!XlJp53%j-7miFOY%7D`9{`WM>C6 zl`zqDAPn}eCsd3dKQP9sze}tyy|Rp7wGXE09zzp^B4qtfAHVwWS<_izr_wL(r#MOF z^BaB^lOxl0x38i}9l3swLchl>CVl90o8kQ)Rb{~6)ri3(L~`}Ly@QX61;0Fd*RLx^ ztg81G6VrFzY17v{d>+|faRiby1VxV6|B^Txma#B3q>-|!`Sz)2QAs8pH%yCAf7PHV z>b_pkU+-17&WToyQZ|l}Gr3=dGF>A!!Sxo`TlhM56T5S2!3{L%Qag51?P+~q=UMGi zB?{WH{rubRSEmvJQEU9ca;Y$Lixz1cwwQTNVc=HUMaQDEVj`XYCd%VbLIdMSvQ9vMj=|bL>7vz>F1lPOhW|-P7miwiDUV6Qa|Kpn_7^n{9I+=;X}~+zG=`WmB^`14L{*T)S`C>I>09P`Ot#-rBShg zN2abYJ5!Ri&M9-2($=i$EPdiYR`_BCbKYh;SYLPhhD=~T#V&W27P7c}f8hl_?H`d7 zfFIe*!>gFYq4f^+*TGsNTBYIQwGtu0Rd-AVMrIpAT;)=>RMDUdBTR08f$)9-$MNTs zQ|^oA=jH4hE(g<*K;#9pp%)xhxj=FvyL`$vPVN?v1sjiYwU8@M%l-L4ep4{u#r|tx@xU$_BT}uD$uO3lBZW4`Dq8J&VS@r~>Jy zuT-vsZj3GYm|Xo361GD+jJQ6u)VkXJpJjzdA2$`upbD1)v_$!N+v|orvAbB zmV(H&F1BZ;t$)NbV(kWouG&1YSTDUP&~kRLDJXy82D}z`+G2a(kmYP*$o9H<%y*+O za_aVVN=kwp7#M>4p2WPItmq#`oRTt5s!`vum_JUwu{*-z57laqAy*D+sF-&tRB!TF zbL0kE=-_(U|50?EaY^p)yK_3HU1p`GrdF=Z)RQwOolH$lt;{_*WlltL;^x;WHFs)i zYD(_hIS?06ZpD$41clr=01*|CasJQ$CGYq=&-b~%_kG>hSmPn$OQRLJB?Y)h*cc#% zn{AUgKL#u|9u}~GZhW*gZ_*}<4f$Ih&Rr|z$*yW;#F_}?`z)av4TC23Nzi20=D-l3 zTKL5(yTFtQW>Q1BGpAyDa9RpGNO@z;J{gbM644i`*_j)`XHp7SYGhj~-J$Edkp*nW zQ{V^ceprq#emD&F1ChC?Ki-`z{E^lzZ%!55LcX+?KOZG5SHys4@h6AeI^>1aY{^`#DU;ubs)U`O25{0 ziOK*-%N8=j)lAeG9^JA>B_h2?QuEifpi?Az0^Ot2gE8QaswA3z>vzv%jY2o|sw1pm;UupF_`>Ga55fobl%s^d@O&qFZtZH% zU;fa5HlvRW7cClg?Qzy>(CyG3?^4Jl$tqZ4v~VPE)nVSQkAZmILQ$leiHZGjBU8RN zhJmyP#Rbb;P$Bf$-`)~^R84j=OU}8XapsIp)o}wZ;e+AA^a13Gtu|W{?->yL%-vn} zjbH4pT5!kv1{%oY6OY!xM4zL@NyD=e7sC)rz3RL87u3q*c>uRJ9p7M6C##CLd) zzU$zkRnGcR9|y8J>rG<~vC#8}*gMrWvM`N`Qnd>`s zH*%>*N0`DID1=3tb!5?fxUDF_=`1! z(4R>^#X(pH^nCS4LrQS*$7?jK8{t=|c4I`*QE!6?2e8pRl=BMYUefN}$khH#LEGW+ zA}J9TVt9`<40m}j31(ls0zI5P2Eg7xLLP3MVK<4Czq}tMVZ-`}MP@ZVHGyH4TC)Wv z0yz@jZzS+cfGnMdlXu7+{cS~ft-+BK)GP2sbQa?Iv>EAbK49AA^_ctTuxppok4@Cc zG~*D11-i^a-H*D&)KztTU?KAV55N+9^B#X5Sci-Pzm^h>vlu#sH#YFaRiXtVqe(x!1AHib2L3iZ#iiw>ehT$lV$#FI?krzt?e7{0Qb)^bu+`RWtk7S z87#X(>*vRbP~;jHFpGZlZYWs%y3UVOG~jj6YU(SLoBP9sji`I5C15~v)3%iRFd`XG7SuRDADh#*lpS3&VikFV@S%+D z2>S3ox`uf@b9m`MZGn@<>3fu^6ird)X4h)z`q$atsLQ7CO9@(k)ZB8A@x`R-;6@t( z_GF7}sf!YOBx2cu_ zm^L8P*AQKxD974G^NO}ZZAQ?hT2OqA8*FMM$5FO*N;b!)5Ma92q0Fq4q21tKVP~~G zL}!~8m}`d_!Fj!ttt8{4?963zblqc-xf= zko~zhy4{2Ay1G`g&pU?%&uaCMv%SHJoKHj|NN(e*1m+o8!To0SJyF&qZC`MV+ z%~E7Y8!@meu$wTs+O-u>AVyE`7#C2VVv@%C?{_85QDCEu;I)$I`7TUq<+%q;lR5dh zd4K27nf+$Y3m&fLNveXQ{}UTcDz{CrW>{l!V>^0!8aWpJj3WSNAeFlXS_Tdv|E$q> z4--*X+HGpvQyZk!EwG%oyf|zM-21JyDOJwgiZ)KKVg0`jdhP`Z{UYbVB#ea{*s^Lv zXKo>tw95(vU<{f&O0~hXrdjFAYg`NA__fQ9bgB!cQc)Iw0%TYl{e(>BJT}A8wfi_R zn^6T(NEKQMI>ZVu!?lP^t(3|r^yZRBIas1e}5_euqtmke})Vs(^Y%N;u5!l7W913lE z0j5MFV_qY~SWP!mSDGHU6U}20G$lYS;rELhn7XptYOGB~^3zd|av!$8!R)Ey1p1Fn z(^blA1f9ap7bcyl4OaSPo@OUAZB)&1^p18Ye>*h5uX$)~ zWNA$$ody5zNNgT7R0KuH7CM=v9BfQZ!dCpXA?{aizHTfY?va4xuH_8azE602KU21z zQb1wjPSwHXf-D5)oGJEg*5+wfOaJK4JT#aVL(~sZ<9A-Z>Re zk*fM4c~fUkko~A7*Q6Jz$er;bxMYtDN4(A8M2P`VnnI#6)x0I8n9g%}kgB%aB5g;Y z%L0e6iV#`*sBiV3==5Q`6SOiNBiF|0bkr5JAkKbYAL6ocKk&>pH=Tukd@djWlHVP) zNiM0 zaHtx(c26#ohR1_h+1bg6Wfb7Jew^{tArhe69{pK(Y<4ZwzQA$%T}+{4Jt9grwe(~g z4>it4K4feB1c{hbhm-m;qHU%nqgkR7vL9OZv%;>YR_e}U%pa4`4R!<_oh3Ssa(HE` z<}r6N8V~6tjg5A8Mks_|Ibex7;GVa3xxAKTGzvICQ6M(h&EUKc(%~-Miv6+bglNN3 zXVcE*R^-#v`f}Ta=dK^UPZP8#oB0hXMyftGrQ!OExvzQRi;mar992F&e)&@-H)Pvb zSB)usEM{wLU*=z|+?T2H+0Y1SM{(_M%CzU(pf|VoN-7jG(`6}#G~6K8I-Kd$GMoMs z<39zB8PKR;JFm@3LL(KGMEOP0q(`6~9i40u%RXnWXPEX`B5^ z{|C1ln)-x13<55KV~C$xUa<4N`I?Mxo@ZN2527OixLtrr!~b@sx1_vwStjXR%co6U zO1qb(7mA*a3-q0Sr*vl^2CZH4j<$mTA-xies@gQ_u>M%Lw6-!J5%zCx8L1#0u}Spp zFna;c3;h(#UF#^696+957o~pMK>9?5>^^+AL5AUZ7C$U1Z2rAIg*}gmaPJ{v-8do;j3#uNSAmxwbA_Gj~y=i35#`vwe(N7S{s zyd_Yd_WF0cHz(%+2ARB5Yk!=B!=T_=PHCpU5kI+ZYTO{=0ht2+7<)Lhhf{Hbd#t|TxB#^^tbJLcr4+9=;X?ajF;6SQkYKg8 zxDxZ|+Mq+Bw+33}o95c3A}fIaCIOm5`r}wLAuOEOTI+P_l!3mMAgeUNMx6>mM0`QC z%zzhJ|I-9X_yxOde&5u2s6gIvzM29h@o6<~YDuze-Tukcz_suoGPwSq)Va3V&_>CEkuvI4bC3!>9b8zZ-agqgqf@shuRK6?DgP$-1F* zp1sv8QIRK|drCBa>+$rv*0ERjgtOQV5XPwkn2c{~ZL}df+xOP*QiMqB-sTL+UtK!* zEqA2~MEBpG;eUQ)xLV@Y$p$k58nteBHYB1lR?rb!LEe*(P#{4Fec(VRZT5yIY~OzzKy1EpXL1=wdl2XA=tcOxj^6yT^F|a9 zwMLy!cb&GvlTyKXfKJeJlMkzk{?}LPwnq;g7hnRS4z5 zzdEH2wvV#y5OHQKh%Y$^pd-rWS?0K+o&P(Mz>I9j`1e_lS+FJpIJv8ZkuwMBOQV+E z67Ds?_e0LA-?l+{*&1YlW6dwK%pUW2f1CaTnOq}?*pCpr|zk!dJ4hhsogbH=|oogsw+B9 zQ;2Q0zm@uz-$v!;Tcq4pt7DlYF8<-HSPG>N2g@+9T(WX`vMa~$p}1?}2Ut%tmBsCG zZD>JPo~rOlP?adxsVuiXRbc9csUfpr4wxNQoR(Q8K0IzEPE_pwV@hvwi``m5tpE=^Tvwf0z9lmH>qFbG-^FDt9J5Z;KDQnisx>aOUkmOOQ6f=6GOe6qVJI=;#enbhn zz6FgzTeAFSQTxm%*jZhS_0&&X(kDp6SwCm;$DExbhhd)?o#I%3PQXX?!+`oH_@0+1 zY4R=c=F|+G0iLp8Y_oKUFKPB2mC!N;z!EJk*r5@Mnn2$ZK)GSUz!MoN^CtYyi_Q^?huqlxtYPI zA3$uK*)a^EZylEI?4_BIU-g9^51?V)5gdmV@CSk2qG)7JXX&PSmG5E80l||K71)@y zCJ+UfHl3FA%k13#j{T3?1hhlP!u)L#J|c?gAG#db@Nk)rJosEF9TkLOIZW;9*4U;# z*xk&ZB-n3F)XeXl)mS9-Q!kS!Y=oI5d*6rT|N8xm*GeU2qyA3-{(#E%c|5K zgMXgo7&HK7HVhjGYy~RFk`J^nI`*@nD!hk;rifG|W}G|^w}%c5)h8crkCtDaLg}Ts zC`|d5b*hDKvVM$oPIs9sstMx~8q`#8{c)kpw!9@7=Odua*F{QwBt*WM%@s5HiyZb`O|Ri>J3jH)m=OHaM~k46g)0f!C*wEd>@V7Z#i-w2}BN z8zNenPyGtmQW-A?E~XkG&aiFlv>k%aW^HO1w~d&Qcf*Hyl(5#81)+O8Z_*ps=x*m6 zw1KxkJ}2D6Zyk14XQKVk;Vk?!FfN2AbB+5X9{R%c>4hrGyCR@1q*V1YI(}|o|5D|+ zTG-G&TALh$H8YeFR2H|SUmBCeEO{e1{@T6>pbts^9k~i1 z*nW9;PdsZ2rA}h#PuQo+*}>fx=J8RVA=0Yt8GjZPRQT>%zmgO=Swjc<^9aY}mBjDkggY1C4@CGXO4^U#mc} z-72W34*>pZo#{TFEw95t+l_xjqo@b@rm0*Dl1(+l`SJHIPwxN;=#x7V`fl#GSx(=& zPu?cXegeEDfqKrt+(_-slzhDiF#x2L8}K3@0{_Y&m1Y5-%Xlbnjyrh4oT zE0T-vl2la4tL{N6k%wpVqRH$&_=BFxgdadV-l!M-$r`$1ZRZ6@~Wst$2AlH<3$xo1MF4OR>cV#Nvk_tkoJI5yh!qLTsj9;Q0^s82;Xbr7swx)flh+2zEr0mm zk-GXT*!>c$vzv<>WdmkhIQ6`9R_#U0w95!iCdep-3Y=93U4x4;)vjuc{rU#09cq2< zEr}e=l5&*gO8{=0z#%{^>?VKqza!xUhs6ddAEIb+=i>VRZtY81o{62QRV0=J_ihya z%`=De+$7v^P8+tYb~v<%nSl|w9SKEv!SeZ zgy+>h8CR6G=qC2HU(3$2E^PC1MNH2#&rR8{8(@8Qx+^=i)UU33v}UtIaoo?ue9aBeyBVKc9~eLuR$c*y%I(Un zOyHQAZa3atPBF{0o{zO#V__A$*b4^deGXb%^ZW9c742<#*U`HPtg*k8^=)^?`-IMb zU49XCa_kutWdjXIi*%Sef0py@D+j?K_P?xgS(pLkpRNf2>wr>k&fX7qw6HkTb3_;W#{=aDndh8_Gr(BGo`@)ETACv`G5#LYf(2SXJ)`vhhbb^sGyR`dI&K@havmW2KomNb* zhu&|#5;L!~=x9H+7SgVFsCX#R9Xnjv)le~OvxDYHcQRn#iq17_Q+5)4g`L37>Sodn zFXIUCohtX+si@ySrAR?b#zo_ePVGrHVjXV}=mraIc0A=3+S=$X-m%UpLPkts1!AcB5*M zmN~U^-F?*R*R&=!QI0p0kMn{%ATEWz<*7)2!Aehu;Dk5ES6$tRjjh=qUp8Aw@){)1 zoj$ie43Uut9lz`zQ`xU)pQWH(y)bYj$^L8qQcvp47(0DQpmw#JB z*#H43sf@n@69$Uw6JQ{|beeJNm_}eZxi3#@xPCwB`Ab9>2yle%I8^)EW?g~h`jRaB zz+)sG%4fbtZ@wE3_fJ+2y^52#YuE*C2N5}-_|}Flvs$2Fs44Un<-fkZb(uVCeifb_HS6M`3CQS1Ft7z&G1fAa$!F`JB?^DW0)! z4Vo5?C;$KfNn6yT?nxU}s=)^6HElB79^Wm|b=ab(vQ?1mMi6~RRyLEL*X>{3uBhEC zx=6U?#f?RJ-bM`^wj&Pg%ZKRoNo3r+MG#a(WpAS)_ntEDZ1^U(`=~{7Psi(x$d5G! zqsL}%O|;ruk+81NLqgOd_}G?&bb`>^rJYrDZ;kTv?j_=yeNvP>wVg9>^gdjyC-%a0 zNDgiWB@R`S%MOy8CW^Qv1#{nTVmj>I(MuP9KC1#pt1>P)>suWARUU*s8gLG{*`swv zvs{LNcjk96Cphb9cP+~PeJCnBAL`+nhi0;S-|OH@GeB5)BFDM zKfjz9KbHHX8T__Gq)g&CRk+yM_u!e%uY;7?x=Yr5Nt|Q~ObU@8vJ|u>A=K-YCy)(~ z(>z_dJ1dF?ib~ivJiu4ZT`Yh83;P)qS~};>4s5ZJ7Wc{|ZBHzSgx{6yO}%);QKoYM z^`vrCtenV1FG?Yfid&-`cjwHF5_eH``zcZadmkdfNQ6zWnVBT@2yRbw*_D!Sw(QE& zwW(;jk;@vZUba6n;a^RkbFa!=u;qGs{L05|%Rq!yH?sTqf_P2tCxoAg*7T!aJ=UIx z?GG9DhTn2;j-YfB_euX95xYe zSvf@x&0tV?P4Pz2kqOmjgcg^LwOtYSbsJ2a(_>sRB;=-Vkro5=nrEe27`Ve%4dJr% zX)22Uqc*>!L|lpa2|2OgGvTY|`}tS82w}&yPeTdJ%9R1a>a?c9BaAMy5j{94?4qOF z<~cnV5(qDtPM<&!tLs!9efcqK%r#_ZczNdr%yN!Dpi>);Uy{>1vBOH#3Y*!kW2v-v zq=&R}#BXNCYxvW4D0sKqk7J2xd$h8@W->RcMQ$p7V7Pl^&6`O zR(e+Hi2XD~T78O|bj0;*_yr0SMzVATZ>PHZX4;m4Pe*9;@lN8laMlM^Zg~Z&nPz1Wm>VlkQd#v4&|Bih1wMQD3%S`R7e_XD$Pa`|nK#{Th zbC7R92iez>qo!_6gW+^Ser_OUGb&1bZPb^{adU8s%J(3 zHfC7o5Y5t~4XZaL1cet3(@LMo8sLjQwFW&xy6?{z1=zruQ@oJ~5&iyVsLBQC?#4#L zFHbgiNrjb+qT2Kv#%CL4_`-JQoHvUf0)72)$PtWK>$bgC&a2RK*=xylxZbx&xUYa3 z8p%rOGO2ZTCbP$TeEH=kZyUoSU=sM7X}=>2j;ErY^z;FF@~$?J7?F=YNj1O!9Uwb) z=ND>iIvV}HkWxHhmIJSf^)=cYck|!>UI|E3=eHtL@}Vn_hBTyr4f~t73Sw-_^Lh?$ zpMXXfIX5|UJf-%+dcg7@8Xe8`v2?4t47%f?cl>ra_O;-G^6`A4_WU3>SMWzmeoLhL z>&OGq#sSE2UT1(zcPxF>B6yv(jVlXb?wS!Tlf{dZ z2l-QWBYI$X_m75y8AIYjL0ZIx7#r0bG7S9^Yp&_ZuP8D_Js0tv9JCQEd$*~`cclLc5}Qq8!%Y~hw^}}^(^3Yv z!f?A};-8LLGURIPpF8u|8#(&gzu#eE;VDi2i4j0shJ}5CMM+U6v8^$*~>Xy(`zgAfT;^-<$#W zVb9L;F3l#^)DKBLRTx;fQcdYi@BBl0)OEdQE1dWDk}1-D272r571wzMDv}yF8fJ8X zp^aXI7~1~L2(4l$ysl`zKdTs6Or*t^Bu(`R#K63aUMOzp<&koq6G;s;b&~xhg&T< z-ve7xhNZb>LJlYLgLf@+EOS)KT5xr>b93R4e$m;?tL;nl?cO+5O;2@H_9#Uh))b~~5_r9X^@}5Q3B@8ma_KMvu;JLlN({NFVJM+@0wCF z77Up;JiF)4hfdLR<+=C^rViH?Z64_nK5QOp%||i|k8P8Gj0?I+y$;)N-Z)777IwPlb6|b=TnC&4$UbE|yg30@$ zwa}~W4jeFy>^ZIvkDQ5W&YaFiT=KBraEZyLheZ^wVYD!-#KbZnODK%O!X?w~rKl^+ zo&%pdX=cpZZaM9X>F0cpnWJFBW`VKCX;k0>jbI|C%r*oBks|pjF6Rf81BV1m1X=_++5BoJiydbASx5q z?(;U^BXC^n_U}SB9govJVm3y>?MxMGy$u|vD80(>qRFSZjpm4;2Z_ym;6FyTb}3fI zq^Y&asNehV2m&E^?GBflB>Q5+nbOOGNCZHS{DnQ!o-ZYX@9dAR$ODmOxGKTcsaWYs z+sA|{>@9a$pjYI2wmKxNd{Q)DoaJ2!{T3406|Y&od-W%wNEb)2;(Q0-4- zG?#&+AXJ%h%LcaJAUl&{zSFl(tesl3pNo6Yx*q(R709ysd&$xzFWL@q#lC*)#c+ks zR89h0+=2Z*Ek%j!$!YAGY{}Riy-+vbu-kOc z3K;DqU!}n&nlEkAJB9Q58Uhfx)|X3JiP+8Kae!+%_^Mq1#<|^3mTS6X_!Y&2e&r!uJ--ss;o0 za|+OS&DUqTob0+?O94kiRIP@bxHMu9vlw@ zJ%H{ACZ0FGb?{|7o-$0?jhXiAkDs#6dRpXmgQJW?WMQy2ZtVhzv?up<9^o%#-r)#; zr*djuXBD}kwON$}@RojUP7WFrJs7A(WsG6iP`=CjufTD+Jo5pc007@Qi!{R$I`36rfzx8Z~QUR zBrC$LA?YLHI|{wFzFuG}j8S?V;8}lH4$J$#(2pLnQEqz?_m$WgIr))KXdSq+&Q0^0 zv{s_mkoKp2v8b%4Y22qM=8#Q0%OP$F>8;pI{xV_Y`lmO@mFuN5+rYhTU&kS>Cr9Md9p;jis5zC<;;)~I-o4~Nw{UC)(2N3 zr?!{Wqh=KLQ7I&hgm1KFwACe5Rk_^t^{{bT1Iv$`QP;B+`Y(hN-I?szYThUky*iK6 zK%kPW9G*^VHk>nAq%@TnuXC6n257juIfPr#2E97jlIMRxf0oaq+#G7=*7ioDUM3hs zJP$R_%?rZZYS;`tj7{_nUgyV8+du%mNyvuABx=zK+6H>U&AjS`G$l&l>n!GDS>%n z$u6R+H;{=qclMc^8+agkY1-^m0Do8qV8kVa+SHNf+5fJp70n3?+ywTNE-{g_ahNd~ zR+PZzBaVfLt1jjfra#2eEOYNK%>L?~?7C8<#yH#Eg43GPs8#}Us#opsa4pkAip?aQ zVlk~4WqvVe02j0_<4jSHWFr46hEfD!XKoZvFq<%=kDgDCTnh~HZzQU`d= z$Tf~!H=jW56dcyDDgy#u>GBJU1lIo@$xbo9zO&G>aSn-)-=FPoD|qg8Cl;2wM(eAd zcMeOe-T)KThj*-)5lx5-YC9->_wOn#XO%p6h}aTU$|y22W)L(-`WxT~# zuNSu0dh-aomlRd)#GOzu7yYJ9U-aR}$0UlN1ZtEPOqE&;2Qa_p$%dJ%Qy3*bLtuunv(evo&tF;$%Wi_Pz3n6 zwyaA#j6#UxhkK%i0f*xjO|xD_GS`Q@m3_coGk_nolHfYT?Cx|)ez$%N)m$#*Vc&(m z)~;PQv8OrX)@i%m2o;^O=cdHGhWk78H!q4bleEd-V(&lZ*=b?$rYsR9e4d34LWd)D ztU#r|RE8Km5P#W4aP*K>1z3sczg?XY%!zciAl33x{t|5P5T^{JAeG?JTHhzuH8H-G zcuh&%+hWOny%(y=(*17wcFm@uQ-GHUkWd_`zUy*o>;WfyWfq63!rW7uF&-o1-+~v_TV`hRdp@%WbAZPb^Yu?z&SHxyMS7) zR1wm{8CCi87ysJa)Qz>`7f1<-d`EakbX;;SFP|K)wLs_2YG3A9DVf?<(iXJZf3#Ny zczU5I?xa&WaG$HF*Kit^KH}0K7xSCnM)Abx^l0TgxX0t{`>3^!PXA-?g6!-}%?*#Q zyQU%Q#>;NLJ&l>Ns2!n%#>Z|P3^-5CY5~&gDq27#rz|(>CXZx;MtR)mzd*Cim1~Dq zLb0Y@L`-EuqgdR!uehy_4h-K?*@OuBZ3?3pUpL98X(@Bx`fpG3$YBq%3tq9;iJy^Y zH=W0leIpi=<2$|-e$Bj}ASns@D=3zxzt*x{Jf)`9SPaHPAm=_*zuWejQ&!`(4E~Xk zKbx(FQp?oc9O7v=adQAP%IH$wa+syI9r2skip-6pA0s_xF}XcV!!D)t&Z{y}vt5>E zR>$q)*T${8ihS$B_!TFL^_eOEYW#0F&^`52cnJ}nq!5<+oG313q5eAMg5Eye?LB|} z$8sHhu-$3%wzv|jLTxAf!8)ngkBJV2+$BfGQUz2G)i`dc?U=bv z<-&sV_s)d$b&g*H&CO_uR?(e)29FUqHzbpz^ufq*zYFKn2k@;(fP%phNW{VgnjCTU6#L%#l@g$*dK3U#jxUgVm{y;K`0AVG zt`}WES`$!VGIwP(!?<&c92b~T9-#bQQ`^oO zU;s{;@1Nu3`1?dk<>Dj7Val>~um=B-FkUS2X7;4I=JyIJj!iX9Z!~&2g6BP5rJQa~ zUy{)#rl0#Y4iJW0Fq`dRtLFlqyl5wL4aUc6p=Lz4&HPv{F}y{CD->AHq+;7HTX|{728r zHOYAgH|FQMtMD}NK{)9t?Vr{kpO;7czVFsQ%gdsxVI11y!MH{z++690n#<^XKPzT2 zC-#8YpFevk;=C~n^VGqneK{=Nr(jhOYQKi3>Lb~?{QQUY9{-ySIj#T0NqS88c&Ktu zjLAy}nX?84{WeW5=4XPg4E>HCu56u{64_>H7uc>_&146b_vwrjLL}aEQe{=$E90$p zipUXNR9S~ivX41QZs#x0gC~{88FlgBwNkyrHF4(+)BywJVeG&6#K&zuc>jB(;eJ~@ zK;AZea3<;n2vl%Bz%c#s=-=M(#s03esVD6ybV1l^_WRVbSJ~sPGSp(huk z_GFj$?z^T()i=-O;sKHLdSCk-81`_A`eo>yxVi;5CFq2f0M|RLhz=|a4w?RM| zqE{vK1{jS__VEi!wj3mmx_jMN^wpWW;@OmfITs;Ku{dzE?P=93PxciXYiy2YXwT;a z+|j~Q!YwXM*?)Un;Um}_WjP*3oznFf4GsuM$k|wSnTW;fq=(eF)Xc?he;K?yf`orw ze65DEV-UVkW%?s+{Xl07z@8pUXH~FM&}W)g<8Iwa>^bxE%D>88u#@2krzxn4{DjwJ zL(2g3x}$0uH%yK{zjApjT&l*>8r`gyiaWsNDpdW`XEZx;qTGk{FE~Kw^?cD*KEiKh z_z61_h|{$B5W?3OFp^+chQkMlhLs6(DR3F$c_l9BV~~{4-z|q8ch)**83}J=FU*}(-a^A z-?*2aP$V^}R$n|>#Hd|EsQ>Ato7h=@Vq??rSJfT-LhI{FpI_w4f{hMJH!cxaY6!#` znnXQ{5cvnWAx9Lvly=wDROq-?KYoYO13n%7BEL6Q7$LM^LAC|^vThyZKGOZ~h~w8Q zzn@&$Yj9-1zwu>zB}`^owaIrzuhiHU4Z7f}L2|0II9S~*t zWBg2-&2W8n#PQD?Zn0Tq5F;^1)jdL*o1X5R+SQZqiaYKMJe1xy{-zflN&k0!rzQ4U zCKNQz+@rUAV-g>fX3Om!ZzvBf5}ypMiL%*4bF!n`??c}QklOZ3m##nAm~M=b!WCYN zF}<@`Kx;O8#}QwBu;p&ZXkM((4lU_fYB$g(zJFO-i}P?DTK%g(OqgUhsRN;Kzsu0&MMNQCQ)8wP=sof!A=em$$Mmt@BQc;G4exlQY#yI+k`P8{07 z5~cslG9fKNrJ3YH7*}o3Skerez#*@HF~bTd^zCLzlPNn2?`jM(V6%{ z|Bh%v4OZVJj`^wWPS1^%Ws(uA!6F z6-IaXt|#lX)!~LkRnUC1L6cVl#5MlaUjahrR=ZSwhNIl<^{KM=xdyZ4xpor@0S@Bx z6FQZld`Q$cJ@aOK56hZ5_ntb!la`5UV7w8ozeXL!cn za|~_GoYbiEGMWuz!zX0dWd6Dq7wm4x23$-|%BKWd$@x~fm^3Np1zG-id7$`@KqAKG zL6c~(c`z{lZ^;B-TMs}K*A0b0r0iw(@QAK5^%TKB`yyo+T7~okzc7!<`WkamAk7}& z-h|p;riP*vPMgjj9V|Wbo8pz%A04KhT?c<%yw%;se6l0bHJd}*X&UvsntAeI^T&!)~Fb=?Od=Yg4zE61n9l;SP3$;Js^9^HMC&)d?C&(DmPSyJi1=O(I zmzo-C7PqeN#ppq21e(gF^kQy?KMR$HbfpUTkO(EM*3sn0Y9ZJNar<$Nc+(hC^~&I9 zt_BkkRz;5|+t0B8{$Q59@HI{a+{;U_e-lAgyEocgqDYafwox48GmSPIR!S619N#Rj zkWe{!zpE<{3l3Kzn0M$Y}WIP+ZQM_^r$z5&g2u@zVncZ?n;{h6Jh5|~ zK7V7xVzkb@4tnG(xORne<8y(pluqTiP2R#OU}wKG1xzB!n)MGcKe82)WPWmd^^ZY3-J#(2<+-E3L=b8s_v=Gd(k1Y$JHhU3M!QN^-JIG2Z zh*+KF9|F*Cv|LRX7kUJ%t`AFK6sFdTZyMeE5vl+&HT(wGI3@MQ3rXEb%o&oAv6D8v z%RbY8&e>EBPnOZFF0kaGMECO40l}O;Jsk-&YjO+_d`MgO>42&*vEjmsCwwEV9`sTg`?TSyldV_k?ahp(2l#%Cd3Eq; zs$3K<`S59xS>EK|Py7S9XcN!R?}GL{q+b+3imT!8It#f*p35%oZ7CjoAf>;`@hU!9pCN?6=fhg>bttnyGW@=W`d%>E| zTd&4L)AKS)1$6FHe0sB0$9?XP8l_-N>}Z64&2|2)V5gduFod`b`uVgp0%Uv#Uz{B5 zjhPb`{amY|cT1yhbr74{7P*dNiP2#1k@5uN8B7%*sk;ijd_-)F~wb5C1No%xHM_`V&jrm$~9M)X%v zO7sws4Y)$4BFp)+f!ew@utWLZYzF(GKN)nD+kgsp08Xs{lq%;25P~XFzMU(cL&SICQZ=WUlPX zcE;G;F}s9QJ+kF6KnVSB&r?w`G^2Z@lHG1wbf;c=&rc8Y8phQ*Ag9>O!){SrzT7%F zE3YMDSFX9f*VpC~QI~W;UJ*yBW`H4c)xBuG&I#j8 zw~2GPqFW=TT+>x9xxWFjt%%DpSJkO$T?5FTfLZLLUsbD{C)PAW>=&4JFZbB9qUyAw2F9Bx)THECnvyRUsGp#{pfZT{zW!w9{ zx4e%2D_vviVJ`C@g2S5hY)-lJOHL<)lvhc)g01DsEjv|Bd>Q2iM>s#XyC?*%amJtD z6QzcF!1{EbF)zlY^sszNh2Xi(db*sYQWXj8|50?EaY?RiymPA4&ZbtToN`sJa^~bz zZZlF-69=c<11T2{#%Z}nYD#KKxwkpVNjY=pLIsiBIRM20$mo6E?|k6L^KjqS^`A{a zs*5&V_jRw>9m>M=1@a#tv@s*WEc)*!eoQj2lpA?P$DcNCZsBWj_8}LHGMoW)>R? zr9IYro`tnor_I=3-NH6JG;*z%e3aa}%>+J2iZhY^%*x?0EjOT=qgA6lph&p-xSx$d z40@Pbe9@3m!vlo6Ghtv|-rl zb%2^y>SNm4A3x0AV>6EnQ}61`Zc#!*X{Bc2r>dipU;>tHdi?S zc_vHS$5sqJF~w}pFa=<%W9j*4Wcri&(OW25aG5v3b_Ck)?{@~k75^M_QxcV}Pmm6T z7gb;*j|rwxQ#muoK-Y7>)Wd1t>RQ(@Hdvp`5-B{D7F5m@sQeLhp3#2UK|=(X{+$zG zI&6<{K$~n6tD_??k9;cuoP+I#4KXxSE7TXUi@qU4m-RVpo*JP3d*8k{3RiiW>070_ z=v`h}ZQ9qPUqatmWn{zk=R@?G<=mZPf1R?xj7&CPXr%c_{k{!9p2AMSA{AdIzkFLj@y zu~U(tw9?AP`&u5G`isaK)2aQj$Ka|!j!f(O*W!r=bRCdt&h z=9CnFn#atqF&tqc$uRn4cM|r^^9J-9;(IiUwTGrj8L7oAJxp8fjb)AYe*a)+oN*nS) zca~z6F3?BjjBj1%j;ByAUlyvL{DdtwN9@Kvo{d~ux(LH73zBcI*zBBLiVKZouJ@8q zxDiUnE@?Sfi1CiT3%g=dz8i*ITYx|Iwt^Whg+55RO6Rt+dESS2*!ds0toDHG=(i=E zb=Dx;J(5CLT$;+KUJ)jcky2MIo2%v(eo@d*+!|thz@9Mv#$bT4xD1PW0?_(vp_E== zDn`j^2n>W*mu1?ty!R;59~%x((@`v|mrIdc_GJ6{5{^E+_VX6NxQ*cK>Q3-@zjS;p(d@S z{>46{d-sA8Yq`behJB~D&i&r!IUYi9o=VKPDNOzB#=BpsmYgRgUXKl}`Mob;u4YHP zDCfzM*k#`M*`*I3Dl9zBVP7k;a0TS`h4tV25Q($J@gpw1F$y}PS5xSln2mzdtzlKZ z^=E{u7AuKg`uOLTt5qY}VR5qH8z%WFJ(BZJPjOAVqO)f13Zj=*KDFR2s z)B2A226A%n7Y}s%`ZnbnBEB0h^(bKFDu7eZ#Odfc@=zg!}A z);K`E&(oW$M^l*<3D2~^mS$Lb2a_6NO9j}NlAf|2bog%OdxDO}GKEzmREIrJqYS*2 z#CLcX?!Kwj>4IVCJwwwuX9YBc@W>XCV23aUG`bd5=2CRm%5lM=R9teO+~f zv{l^0-}_2ZkMOoL3X1(%++?#;jc{HjCbOZuL1RgU_do?UQ4D0icOati=PI*DyD+zF zlSy*$v_{O8YHR#Yo3GCk{tCCtobnEHk1g(2@v;rearlDjztFW#WQ>u8xw+G!!HtIR zssLekD0ml2*A<(GMM_@!K?0pZsg5+8mi}cM<5TRY@K`7+#Z(M}O?9WQ@^^r6dK2@^ zIiJk3tObDvHfe++oPf6C3c3rt@F)1^J>ZueP&FRXZz#N}@A8h4xtp|H z(syv}xWea;2uA5GO8m675?yRgIaay_V1u#RtMd!hQFNznjxpP|HD;r*o$7x3AP#Uu z0?nICX-U=25QV3#JvVZ$?>|*XdDz%&Xia%fAKkT*B}`Uty^1~lAvxHA!W>r4)IIc# zc4SB7ly`mkT%sstW%$9Gl&&0Ig^RX-w;!k~YjN(Grz!&$BV9#A4#&lKyxFqk@c(5D zXtx8w!^Vlt|Fo;73FIR;yDEPwpIk+X!VWdxssvTZPVHRxa7!>+?T=0n*_grN*`>JUNyFzX_UM>({S{Z5dIB8~90L)Fn_vOTS^+bd9$}PBZ2Mcy` z^#{k!_SM78c2Vs{hlDFFXF^>Bi{}}_KREQwEyq?beF?tSMt$;k)1TPnx$xvBpNWe~tQcixA}3FzKa%sVwuA@X^;Q-V4I)iEgE z((I+~N0r(QUGK&=-IegVHxv6V=vOip%hy^1EI~w1f!W%(=N#b-$j2jRMm#es9+*hzl^**B zIw8CrVzopuhU^dVTcgJUvZcXt0MQMos1=N+1X6w)! z$DX4D+}>GEzqrzcO%1w4_{NM0Ga)p+n#Hz-Uz@w3yGAKmh*oL$FF}agf!l}9BfBoq zYfnx7B5z~F#}FBhVtam=jM6Vbm})Uo$N0umKH6LFME7>bG1wfncRmkevpy(}cb3vD z#G$C1zU-@{W;euvOUM|$L>`%w@%YkhxPIH;;*c5m@GS|AY@cs@mon6yVUt9Mjjs3c zfe!tq+rJi{q*25}3uUk^U+j>TUQmhDybN4N7VKN_EEQf>Rt7Beep$v^?w98UWfQk5 zP?q6nwUtZ8QQP+0fkuygb0Yh*&#!Hn@#zBr*KFQA@L2<1qdzY8TH!inE9=Mz;f#gx z-Y=)m6SV?RdwD3}>CSJhIVNg;ELQPzs$8k+i?0&lfPm%Ec47p0Uo%=qGm`ICH05Jw z8CvBDcV%_C4qmiHe}OUWK45*#cfaqLw}i|X1_0ZF=$0u9`!%gmpgJ#G2v{uVO*gX2 zP8(fxpxf@2?oR`S`^@Vg?R;k`*lwo9L9Jr4id_uToyWI)jzy1|XE4{P@Y!<>t(%Dn z+W@`}{WvAj{H?GN%lT7d9lJh0e~ln{naI2EPi@6ZZRvUsbJv7}K9l+v_|C-IF=fS_ z_q8h>-OXukbyv2q1$`6ZERcBJ#3jgZ3^u9eodt}IP@_5WcRt?3Jc3%|M@uKh)bA)C3W>oU2U;z? z^iPk^k4i~;WNn#W0%9pXpre zpOEgCso!(1TGdIJ&$3y84&K5yH-;Um!Kp6W5-~R1%I^z-ZX`9YvmK%lbCh+au;tKT zyfdYkLxF6H#{X4UvDSKQ;c{c+}(az{n=a9sc z!SX_TsL)gq<2hKzdGpbe%)iu?G;3}$rEl@J2S|i!S*#l3|J5Y0n~z-$PMQ7%T~EHF z>%HZfr7|uIX-5@BH9kjAApX`Itsz zXnu(QPlt8SB?C`pu5gz$NYcSDdTn5+p@ePGym! zy%!00G=(yG*A)j2U)BSJ0%3$*jlA9AqesJfp>j>YWj9ILKqk~$NDh(_M=9sO)OcpB zQfzA8p>9i8YiPXCqFx9Tw@{9~6e` z3>SInEKS;OF>ed@DdcE$jTuX`oN`P9U&ZD8(VR>J+8urhwIj_hjg4@0?hr=~)EMqCmYtub_HZ%SbyMx{L^rG=3lKZ(;e9^7< z|9MM!wAw_)?O#u{#eAk0*9wX$`UvxW@+G zx-;bU*6XeF?|u0fbz8HcSbPg~6zXh0rK@q%(P&Y#2Rvr;cT(5`RjleubUZy>nqi2;z)(6uU-v zF%*t=9{*=YM|{7$)g8cVdj!g1Elspxj%Em{`wjfm&$Z`DWV9-HKrv9)CGsM zN2~?Ygy3OKw!A&1&m}XN(j~lI(~P|s5+UD{e%|(oAI9g&mdb&9gYuE1wc-}Xta$E~ zrQL_7KmteOz)!?Tg!gvPCb%8^2d8m_-33sI<^kbPhx@Lj34&`*-m%%Q1D>iV?a02# zk(t+mGvT^A#h!0rn4OV>F@}nQk!3Jl9VY$63utO%3XN4iJdwl%q01;uTkuX_{vh}v z-k1~X-8jzf(2;_>wz{TG*xP3|7Jcm=4uI-QaB#CHBu9I`j4A~kae-vZjUzsgJj7kw5n7&t^vqHc_NB!JF(C7IQKYu>IO)0`e+)%YF$@8ls# zxilNbnf*4pn zZYgAN=z_N-mZFyBjm+XtP>+8g@L)0ldub^Z_T2wF0X9y4`}97rZq~0x5I$N{k8f*!h|k*uJRNF!J81(sG|He|A#^0gM)3Ft?vw4{8rJ=~|SF=r|Y6>S(zYCGeY=*o`g zAEdLit6}n*zxO3~nKL~%w>C<M8P1!mBE$@e)V+YRqATd_`O|6dUhe1dIel{nLozNJj+`Dvc&3ef)Q4OC8 z2yhO{24xUmV6Jm&ENf~w(dEBX9)A;K=GT8Aq-I${`Wbmy6e4t4p;;28ec~gBkT-QF zOr=CI@%`HRWEb|Q&5Jpa2q@uI#hID44)SBKPXOlfq)DZ408rC}c#myF#;Kz#tTYA zi%rF=xoszke(z%stINGvuN4?ue4ujVZN}Z=Lo-NgeKtY{6Sq{+3M}!TeZtTk(8!4G z5NAzS7D=Ky?^CNAi*1RX2Oakz!@J)EB3`A185LgjjhG|t%}0<+%Dz8uQh%d0&`oo| zI;9`!PB&9j>M39@ROE9$*p|-@1ei2sk8gw5hlTlc%rI}Dd`oGOn$eXB8Lu4%Wq_Vy z52drgKh>N5!p~ukc(RY)7W(uluF^pOg%*vfNy^Ly@ET3ET;^iN5Z|aFuXivzs^ye#2?D2+&*F&WS z#EX5mkv`Qv#+c$<^I71G<3LkprdP;1UZTOF+3>BW*Sh;d)blVBa{tK?#^*Lq#+Ja^ zgBtbpr?uR;rs6blq|1^zWHz$n|Ebm_f~3f%MOt2RH0$rP^n^7+nv=+0>jJVo5k$t* zkJQQg)J3$-`#{AZJDyE;Opn&pTdHySeHKn(!YgKh%Z6rIcqPVOd0?ZdjE^K-qf|B( z_;-3|Y5g6DN2ah-#e;)|L8K683*-4iQOhaa7@ffIGnI(__s(G~-MUVlIrmZGkoQ8f z=|{4sri!sr=|bqQ>M|9^bT0 zMdOv_6dO`^?5cyAE)>4?EaGSg*g`myuqz&0YLdA=NT|x10{T>Y01|KFZRZ@^ZT2G1te0P6X8qu9rR|Qmrs6zQ_%6O1DImepoei2P{#~ZAQg9)(wt2; zKh?doj1y2>`fh>Sp&76jRvQ{sbHrn-r>3-P92`KLz0@#21IO&}=eA0pHt=nBnGZG= z^GPjp(lO!TRM^8<_OTlu-1nh%Bxy_=#jCu|88O36M)9W7raIjs_@Aqu4CxC$;RhsQ z0Iv@G$Oxwv8=T$pJ+d>$)*&xvWXErMs0Y0uAFxqHLo}!dCgWHHb?LCyi>`(y$6Tk2dM(o%x2ii?_05^sv^Zymxrj+WNKfz3J^W;)`A3DQ)Lcw=!tRgwcfJ2!OsyTCDqA-8tIr zlSM4IY}kOk;_DqDG;JQP8Ohgi-rE(SbwK{ekK;EZJN+-A{%;%=5qa$kjDS7GD`&*B zZp@8;aGb25=YVY?yVyvMH!ga9vx{)z^~}u-yRks#w9(ee+3Q={8oOO2bg8xdz08^6 zu$ARW>yA;9<(rDsx?rLW(t|_f1+D;S`>UDDqq=trr$anCE=MGQt1N5yIj6ORHW#J%=(cm2@kYKEW`B12(m=D6E^O+6qd!a3DCU6^VPoo)hF!S2971Nx<4PXK z<56QxjQvu)qSH8PiBhM^;*Y17OdHM$Y|ZuLY|M-1gZlfLe1O#%*6t*&9T};PsP!aH z;zVyX@o`{Z_bD)yYga(yht<@H{N>&CL{M0ozx|v(r3uVWO#tOpY8|I91Ni2W;+E-6 zIw(4uOpCVbY?Yr-KLP4@0^f(!brf;`LC!ByYdF}MGN5DB%*pn62dcQkLbHc|!HK4b zSj8M~_;FR$JG$m*S+*x{ZT$aBW4TxM&Czu=^Dp!DG^85L!$>%nT~-_J$>KFluj1u2 z)o>4piT9F(Z6u}q-}}rnO!-6eNOxY{G+#Ylttt9y!vsQ&QyAnB@!8OW#m0t=!$iom z)#QdKK3K*Na+V!FSKgEwv@)fw#N^|5`Kl`l3Az+6F1*TLc-ueaDF0Wv$6wx z0OkeWNbD)0*-LY_+!_gDBDKnW(b^);V2SbeHbuqe9+Z~zDF>ZmlyEJ` zi|KAZ`(^8B?ajn2JCDkZaVPoqun1z%bF5fIo#GSv*AM7yN8{5w0l#!eacRs?C^M5C zo4T!qQ5VhFHEnME?>nf zojTN?#Q&)Dd{Qw$|Hdea$C0gVngMtn;h(gbatDhrhthx4iOTfw=4pdWYzwR6HU%ix z9%aDi-+v1d{Wn>ECvLWfX%16`U@Wbg5NM=sZimKxvoR$#CnM0+aIwC3yh;|ssjMy* z5$@sc>}j&4CqJcYSQuj72~}fpqut6^cInlIkTg2>jXm*oBI(Ns`EQz%fB#UIcseez z4uCT|gT<^up1fdb&kiMT*q!F|^4T`>0W}b|U{$+m_re1|2o!fNe>qYE@+K46gEs_~ zu_z_luVvIgw4VC>2df41@#!-j) z7Q9*aXzX^Rnle^+5&L%bZe^#ubQ;c*vQQEBSLx3z=mjIfPd)z=NQj|;{Vvn*iS=;a zy*+w~zF2cD(O&I(5G59(M-oHwfPZOhKXvOy#G3sjP!v;FYhT(hszHkPLYg9E)fvu} zhdM z%)q{1_4#vP#im`AI>4O$CI&#Y{9MT92S~QP(vHMbr@Q!%)^hGW>gT zN<&hLfc9<-lEJU$gO>d>7Kznx+3e_Fnc=4DRg|^8L;vX_@y|uJjWw=9fBzJAn~!dVt!_a>`&;k7THZP}Ul10+nvnk01v+{+_e2S+ zlvz_l&!_bVr0I%t7Uf1;G-iI7uZ3M+O+54#cXT+dw_<7f&;=%`CJ21C z9q9pjt?=mv+#`9_ZqY<#pT>v1KROL(Pgp}X0-+W8=pu8aPX(C03%RkfPxu#y#BV(^ z9JAz92zOai`)P&}z%*5rI*UEJoTU`PtDsGAb4MetTE{GfH|b@itgv%6=1n68!80hD z7razBBX6c?ZKM6qkFxG5#aIP`IFD9+ zENbcn6c6nq8G5ge|7r>=&*J*=2QQJ@9K4Q?;M(hFg`IYr>I_`IC(B-jkaC%(-Z8=- zF$3zH^F-cZYn&rBvg4)RMPG({Z(*Z=D#`=(?=WTvc|7;gW2|bzKqHvJkmsv+a1!i0L`g!UZ-4rJSm(uw`^fPqr89Je{~soi z0p51i-;Uj%s&Yog$M@sc6W5$IK~dX0$QjPd_Re8+3B}<}ju&i+<<2!p0me?rar(Ut zlPxg?#ol$=YKa+i;rp6vX=Bp5~;%ybnlb+#=aY3?`I(9IBU9-c?oX&67)Z ztABY|h(s}{O3YbH8`)+a{M+w+Y01WkGgwUHVf=%|<+g6Gy!ON9p)&R!fxMx_S*n1{ zKq*Viln4A3<(8n95_WG1cs?zT!mJ#wHY!_c^W2Cr0>tqB2-zW6W08VkC&^T#AR1fH zgS?!U?b4|{h;J8Spvxr)aOBJgiI-rxO?7G0-Y)<9RupYnxDJRqr+kQ;VhQWIp(QKq zEh@aB>a)fu!_dYM)51w55XQsY3u@6*MujSqOXo*UP-DGd#7 zyIsK3IpCCud9;|`WF?eFGj{p+XN~dH@iq6RDPR!aw&^sxQ&y%QUjqj zzsUeqCw}P-gKt^RGL#cpR|2D5|V$@H3@vR3)4(12Gv?0*!Ak3U1#Md^I z3&(wK6z;Y3u2Hd6^Q=&rpyLQyChj>p9Yw^+Ra$h9k+N~egR5jqi~2-%ovIn>a-g+G#TO)Z zzI%EVcNRn7fP=Lyxh52{<=e|Aruv!(Jul*Fu%ffO7Vda>>Ro*k9WeG&&KLxGyVnEr`c@mwDPE&#hoE(H+TE9V>ORM!8S z8BQP@%jsE5A8Aj4raIZl;qe}ihlgg^+|UYn$GWs->z7xZ4}=CYga9W0V(&v zX|^+i?Ab~m)Uj-8+7RUa-uJK9j8lw0O|R8UYh?(!q-JhfcSI_~-oXD5kD(9C< zH19p9-Aox$q=M%ioNp(M@ubEcv?();4KHM7QSII9lh0Fz*beH$LrPXp){AVn2oJGE3)M`o_l{`uuXBllOErpNBd~illh3h0vN=oo_#B z=N@zN;n@!I>S+#u5F$UaZ&CjV+oX)H@4zc9Ug-By@U8&N;5?$Da}6=&5pAjSq;X-`9dYK@GsL431qY$2Tz6(-Y;UV%R}|(@H)#OkyeaIJxXpXNj@; z*y+9oee{T|{%R>!L_)r>8rR-vl)uZ9_bEije8;K!J#I>sk6CQinxmcmdS)djLhm-6 zbw>JPFmR$i-?E7n=X}O?8h> zkLlWcbX=Vfy@ZSy5eMnD_EzmDdd>%ctVzvw-?S6zL_fvaXWym?!T|*e(yrLSTeK0C z?P^-{w7P&c=iODS$5d|qm9HOCo?B5dF`7fbE%~&o-SYZOyMSMB%Jks*YRL)u=(*4=+2g_nk8hNJyptxRt|$0(n1DZ~>Vov}5=r?+48B zZ70j=wM*&)Ew!Rzq^8*fTVTnQ0ob0!Yf{T!{{4#_s|mqiXVpQtnpY6 zKlvlW%S3r$i$$T{tVek=VjD+mh@I0@wH{SlQ7esC3RPu=Mgzu2>=eAY65P&L&pL@O z#JYaH(wHy@k+JUuGQ`$Ygmoj{^=GInBhdIwnzkwe(1T3yrYewM$!7Lz{$9}j>U)3X z|2y#zA!G$?DYt;bXD6fXK1@zTtFKJy#i6Y`!q){TOS(-DYs=DbiJ6|2 zx9jUkS7Rh>AykTU=TZR{_^mK?WG|sgXsw=V+g@}e{FRwhDgiwu&PbsYn5~Qe&+~4YcoBZnU`)wc}(c$?`XRzRP(A#HTA!Fd zGxaCp>DYOjkB#W>xsyAGbV(&aTA?n5c7R5KpsghXuB~kf9vK=?+%f4H_mdh641M10 zL>V{-)W+5i-m7fIKwp^?!y~0*n?kbTt&aWzhCt-Jtxzqb%na)2FddrhP?&M)x*bw- zeybu^cqc7jMbfzkH7iYIDg)XA`@5Coh-7fykj91MAs4(*>% zz}=FfzziDVzg;-p7nbPnHZ(6rA}8ig=>?jcrheR!SlbLU!2Ro2yT(;P)ACC-SR|21q-BI z9BFd&Yczx@{WRDFiE7bF0GMpDu&sAym=ScWXcvDy|LJ+8WboT(cS_!c`trO38mr#n zG$?yM1&ze7>uNqNQbxBP1Hf~&kA>)z5>V%a^Lr3{@;?udv(Jxab?ojJ)I=5KxpcTa zN6#4c^hAhb1~^I$QZvH|H?Xg$`)jgV7aJ~j@ir(B3khRm4{}_bs(5PJS^e;!ONqDa z-Z;i(|K2y)cqJ5SEGuid$i`M?PBYamC^>2NuQl=VvE|4;Q&#;f?qh{Dq^dzM!%j>% zC-qW`+381_K_?j2r;8&uCXAJDwGZ%1x-HN5p*pcK1%&1XNRlRe7n)mm6~bHQ5^QVb zYb$!w&DSG46f_f;5!^%&lD}uuhc-P;83bu^>E_2}SikU!P*D>ejDw4*aNC$HHvUvu zFr6s#xqQp^wbGVm4~vAs6FK^+RlZTtY<<7fxQ3^XjP7I5uSkV2_W#}|VVjwY9;ZUy zNLVv}ymVeikHCvpEG^jj2Gp5k*CgRRxjyqF21Y{Va>N7O0u`2g=pCT|ayC{(T*IC~XLr9iu&&^rTPmeV!Y zjj6`pftH0nn}yF2h%AZRlqq6iSk-Z`EUkIm`DJSCfl3?;Rd*brrYs!LS%AG|*p@yl z1Q7QeR0PH1M6Zf3V$srM3vg>F+SUVQ6&oY(VH|z${j;hw2QUHk8M_s+trrQ(n?S*2 z-zTBkzeK8YZBY!!eTgEN7kF~xhTgc(P`Z1^pD3a5$pztdupJe7YyJK$f55+_p}Y}? z&{%@JMX$c07r>H)w#5bYX=ht7^t(*|72b*_e10iUZ#YFk1%c4g8BM5$LDjwMw| z(*>)j5jF%;LmvlNOyG^1mf=c+X{6&4bC6YbLX|fFx zzDsP#v!Jwujf^OaRt?E+7#p_FGa19Agf z{N}KP@sHLAk#xUpUW@jS)e9@ed8{%+a&2A2x%O-y=iS1{lP~G+Z6!Ov1ff;J&K8T< z6z-iMvW8U?!dxG{?F`K?$x}6ze$Fq={<2-VF{Dzk!z*VO$-n!_zw`6Dj8S%Xk66;n zD#9Ptq1}3S^cu?Gn*Y>~!`8#-ub_Z;w=vmpu_o?6$V0=hTGEOVQ%h^L+(wqLmBZ8h zE=yr+?m#}R-e~>%T@xcz5uj?D@8o0&FSqh^j0)LSH5X_f;*bZzZ5fFgg=G#3+O4=< zMI+D-QIp0#5Ht`p3f1^duW)rk%(@JiB69D}x~HFqYI4n%Z|k*u%R7_QznXEwiCi<# zkY}ZN^J$@e!}&*Ei6su@*%kC>w15HX)-^gF%5WaJFzO>{qTIGd}X5gS7ZE#(R;#JRc-)34{mh} z@4c2DB%$rO3;$B}9t*P3(;jj55}g>wW zf49?VxvhI?x%PypguIo5y{~?cO!0N!zR_MklYN2T=v=!pM|)%c_(fDXAH1H?nL+DE zr^qqI7OC4s#S*#$Qq}?4V}VPT%5F`kB@Q|XpB7z-UI+C16?R>%;*BE`L1?9J?{3+Z z;OpFX+c(0F2hFwEttU;lrzgIr(XBz|obIm(0bd6S--aBV~?L-OqUo=;|P<=9^@*(2cce@ zkjQecVXo`WSAoqer*k@Mg)U4;lXd@+VF_sjogsnmvMz{TGl#Fq$F1R`_y)Uc>)`0~)DAuG zvQaRt6c?rM{gFp`o!@Kx%Xpb#0eA~gX4BwAyeyzECy145A|K*5!Fu~JqSb1!@N*eoE0V(Lau^oTL(;jsV)EzyFS#d_- z2?NH{5TePb6yr+TCuAT%F5^1%;if5vmLVC1rbOaM&8K&Tdo_e0d-HbzTa^RCp-sy^ z=Gne}m_efZ1G2wwNjR-=V}$z>M1=akP#n=gMcZp?S}QY@o^TyFk=&h9VVGDE^G}PD zY>I)a-Sr{ICPDYnUSd#5?0|xl2(J^gT<2w86K>2`KT`7#PeRk!T9J1s$xt|o@U4-~ zc2(qqsXKori!VpO8A#>rQXsTHBq>>pDvmueS6$(otqE`+K}Czlv-o7p6LTH5C9i=XEpPdac5v)WWwTN2`FFalB|I-}?+|>xJq4fRqBn)uL zt&RG*8)Wtb0$;l%ZbD3>a;Yu*Y30T?za&>YqLG!<(m!g}qXJJNZm#AAkKSERWItw< zyJrjvL0TZ+q{Jo~tBlu>K0l=bce`D(#BPqPBww=-7K)EY!r0!QT6vCO_f#Aki{xJ? zSP9~HiF;|=LXfb|gZ9yapn+I2ngmB;yGrz##VR=U3U}(NvR5$4pRw!0-F)2m>Y^hP zhgc)Dc!#_kRD?l7nn|{nEX|-5XQ!Y!=K2~BFXFwWhJ0ATk!5YvB+N_2w>AEo-!~-j zDs{&riI3jk4=8pnJQ#NRb}jk(MYM^Q#HQoP%sKG^V>8pG28i}Sp6)8~Iwe5_h)HqQ zZiSrovby`LiJq${jy)Tfh|`}MKnbN%9!$6Iw^q3#7+0S2?S(SC z?4pdh$*$q9RMpodJ0fm9e53jw@o@MXTsm$G8HQ@Yc10$GuU{SF!NSU>_g_Z%NpUyX zCHWO8IvuUgE!Ip2AI2nFX~}GK22S)@3DXC*x5Sr9_A=6CB%78bV99NIs0DsRtu-u!V@*Hq&Ud~VJ zkK#AzFPfjTa=d)n`m{eB)o{YAXUJ2~5zuEc_0BaxFWU+&91qrU*?oSFh-IRCOV5oM ziW^>bXeV%&DkwdRM4U8?Jzy*cF8RGrrKOOCLut8PW+(W`(0KKT(UCIRV+uO|syH~D ztpV81+G@7ti;e1Eff|ZjY0p*rWJcr$)&RjXdS&Ew-Ognh!i_bqLqq;zr<>a@tS0C0 zbz*S!94kMi7af&&zoFqv9ZixQf{nz^P=w=m&hPXm{cFeqHrdC5{DB;!x%WjTgJ;T_hAk)k z9z4j?ynb4I4uleEfkLfKlCJb3g1H1)dMwB0dUK5&`S}D#^expqu9Jl*`k*CLyhNtG z7fxtC?d)j~J1MJkme41-ahRW%G7$R&On;O{mrhnD-&|cI07rD4MN7=26E>HXieY#9 zOitjF^%(?STY#(qo+hN*zsSv?0;{c!Q0kFORL@nBThm}RW(V@>av}&v#P)4j4k%P{PblH5BUpZ~aFs;)r9)CG)QcmR2lxWc2FAXU| z{XYh2OaYZP|Ii#8pdp*=tZGo$0}pZy=yn3lz`v*20`%3t7L*dXv8$}N9>GH#k-o>| zH-e$0#U2m?!)CYajqN$uf2$dK3v48rJc{=+xLJIv_Ah7&HRcDtEo7IQ!!T{%JKByL1^(WpDows6MovaW&bZPh@ZuM(=q^=sj(*sbrnwOcywIdO~H z2^v4J5}E_VJ7iztinIwYMaV7hCJ;vQReJv3s;84HSryoF|63MA4A-31djU6uTMXsO zO~ z-zjV1te<@Yjv%2G%!7)jX|T{&{kOd*B7}3R8qu=Y-QW8JHjz&hEHUe#4?qxDkYnD&8vpf}46y|leFY*DP_vkb0dHURQv5ejXm19Hv}s%{nPQJK?wym^ zILFi^Th#w7vKv2Z#=x*YR07b z3lX^}=3O&1WSCn|u-w1T_`>$N$P5cez`4XJ|8h%`7P*64pMbR-sUanLF<7`E<+_RQjkp#m{D@tQ~AIofdytw6ZK?ftar%}8ReM>;ws;{`5!i(ZTG8@hjMx4xfL%jJFgK~s) z@j0_iZoFkL$x6tgVBdpZ0Qd2yLVI)BDtsO46%Vj#LkC#K?{$nER2w(MUMy@PqRX~B z>^YP~Yw(t_wDz72bK1_L?B4jxrVEFMEpwft-b@Uok^r*_oe065aZj zRD&)WCLfe;==#HN-j7kY4I$U2`(b_r^~_U5c6YLw0n_$;QWF zHw&xbgqEzkv|Dd}JW0D#gTKkNx+8t9J??ZU^GgD)YYey(gT}HeBNOHH^yGH;qIuH8rHe>=O(JCqIUCI5^1dtGd0yFP%w{ zbqbW9v|hq61evfBeXj`s*G31E?#QN>PCDuu81+8h|El}ghn?LD&|{9`eAZPX*Wtx4 zz^|YEcOvIJ8dX|ISv|g&@XPhM#&q|ol~hY1eJDk2zhiQCGCQ9 zHvWyz&X+dW$=3qg*LjQLg$qoe@AZWLkkyEsaA<5cL(9pA7}~}VGD%e@UPmm1zG35u z1YRAxqIeb-5!PSTGV$V5!s?x9_tgHfvXd$|wUL!KNm!3qANq4Ej?5UT%Kdf$E3)XQPJ73LlKe_=%i6g01O+yH34517D0Bi+8V zp^ck%?KAl%WFUlK(5*Rb&n{tAAqPyGqyecV?&at-Qz^lERlyK&1vEi(EkfAu=M9X- zTjAqLMNr3q>v5o~`vK7vCFhabZi-?1OroakbBy#xR$8Xo+s>ly&;ZchkQ_sff3(=M zQE`X5@GNxWv~+rVOZaP`y-5F0jz)k;0@0JIZEF8dIOK%a$c*V(#)7EA!^_Ig`8Gd1 zp9=>?t)o$=H*j4uDh*XPHhr{r_Plltqoh?8T#x_tl}BvnZjYGCGLhspR(!{zx)u9> z6kT^*l4~3GoOWiGrKYBqS(Y<%PfpX+)Xdz2%AAPg-f|jhPEu1+Q_8)797qaE-M2pWo=c)*8?sbMZF{2yayw@v@3T9gJ2p zYV+xzz#k^-iJC27u1LTE#w3%JOcIR_yHfF=z|l@b%cT{($`Oq}1=1rTWU{JggUD<4 zxMrDbLKGXygwK2F4)f(3bC=gA!QDN*>&b@0oddHpA%I2f8J^%Ew$a1p|KvRCl~bg% z0h;F4*jZ!sT*0rq%h|I7D7n#L0AGIzj|%bg4J8S?U-#8_iF_aH&d6PT2+#BRPvAMm zF*$0lDs)i-1rFSI+QVvmHAc~hEoCoXOvoDE^ef?X-vSY}|y_MYF@Y4NQdOyD=Fx`^n7JB6vUyZZU zcs1I77QVK5_Bv&PH%vX+|$+U&{QAN(mhuSbFTrv=c~sy znxOTcvy5WIa$>JFH0&4&wzg;v22U0voLIfuCFe~!dD0qY%sCglGV{7X%+x4^mPq^C zKg5bvzMV(4o2F&JRC7j2)WpL__Dr0Z{pKC}p=BklfEeNLaG9R=^;naUQYi^O_`{s8 zZF@ji%gGz2F!$1Flk$~l_B$u}j6(cIm9~0QePNbq)R-%t=X{=>RitF9y64j}%?V>) z8Z$KISo@HJwL?KiTh6nBTJ5rz>-zI7(|mIB406n4fN?(L2{?8bB?AjyeA%L~I<}!G z8eI3)-1frUg0*DD8iwUwveIXz_2*nio;3Ul?sZ`!ol^eQ9k6(-r?=bgy_~Bl zbD$+6`b-%G5>&QsSyUmH7ei~Km;*@R%F?4#d(SCwEtZnh579=bb+Yz8nCoz-8*SLDxfj(|>8zYjWx04Mj?IkVHStGI*B3o~n-w$aInx$}HbSYsO@-o>Y zhrLZ(!&3LT6Pz}bjmuEmR%$Hf96!-8rD09ie--z&Cwkp%^IDN^1HbK?#+f>^v?j=@NL!AK4n{4xMP#D z3dqaA!rl)qZ_TNRQ4$*vIT>2Iwt{$cAWFn*qXQ`lWI*TvnWE0wR0k^!(+2ISB9I)H zw8nH8hRxOz=pO7d$2I@7b1JD?rUZK7I71iujB~$k%K(okr;FgqT|3!Y!whjbawDc?Z{>JLDgF6JW^s zj}BAEW-Vx~#DJzo6^*;OK3&9Sjv<^m2vqI0`eriik_>8eN#Dz1Ov(s<6FDn;uIfF*h+MZ+`**K)>G3MW*1WEM}(J16)Pu|9| zcQ7W8z>`*8X-C(MFG|q&F7^9}V&8FJ^i>N-evMMhx1UZaLt}=90KxqDy5EeZ2g|0y zNy>nOIOQ!))2RA!XX61S)|N6F3qyPPw8(B0lV8@MY(~^j>n75;WX%knjY`Zqod+4i z5N~r-C&Qmv=#yo|SMZkf3+Bo9+#ugVA=IM-o&oq}V%pd=S zdJE>6txcwg9>#-sdZUUjV!9?ZcU(&P^Gq{D97@4U*Z$S>#n3j@{=3`h@ttsbFd|9B zS6^S@V~EPLYiEuN`rkcaIt8a<4Mx|t1ub0bsWM=?f$kzjdaT3sKLNTI2lvs44Me}Z z)<&up%-c3KYSZ|C58;8MjYr&VVObc(6-#!$;#!nI(g8a=A}*%(7APU1n-2hBWm=3j zLGwmsu7!^wqE6O38)UG+-vVwvuZ3zM&El18 zZeK2Ft~iM7g0X#S-aU$wn(8=}r59+X3NiwT!rSK5aG~+Lx4ohkZ%cV<=9M1dTq(+X zIJ)rBO{>2%XBEI{#|g`%vsy4ApVxQC426HgrMy)#4^emC*}Gt*f-6$dv~*i7SDn^e z?AwJ++4y<`@Uie%&D8Zn{oe{kOt)s92{F&-Psn5uFYZEFaPv*|Jp2zj)v;`K)G@4a zAut@-=~R;BEu_i38@iI-S{GyxO$bGYZba*Ez~bsPFkFiWf20zhcTOWY zZoz^)eyRz5)vN7=DD zc12d6XCquQuC6DpXdmXZ@kLS1$D$fyzz?>^SaEQ!9J$%9LWH(!D(S$}l-hcg|OK#^I35tr7-zpPFR zY>-|CyMlg13crERTqY6&jGC7RGTziIe269m74S!2|Hl3mZ3A`ZoxT!PJ|5^phL%5P z=PlVysi%bWKcF>aW?}g7IDpCTxzH~em>Fv7s7)X1_1Lmkqk8W;#T5A(U$3j#yodMU zBtswuxC~j=X@#+`Z#AQ=&O+2#@Q3)?L1=K1YE|$I-yt;cSLI8l#x}*(qzxNKlB~}Z zE1MG?s+U&uYSUg;wsyI$()yl5N$lhv|C-ErJ*_>6tLRluuvCv=gyWrywt5!u(m?Mi zxmb*jg&N|3zV!1gCnu3w-{mT!ka6>EYMsuHY2Zs?a|G;Z)^KZ>Q`{SsMe?K*;h&OB z<)l8nj>!G-GGDk9J=)$=s$J$@Y9ZK4HnViXvfI!aI}N*jzQ!oXO#;0vdGC{D+00Ic z=>@Cpaz2=|4Ef4}ZtUIJ6l{$N)6S3CeVQ<=s%n^XgyS4pyGSrfiHIns@8`5uJJVcM zykZz0p&2a+F_1a6c&0@FI$ZYAMrZu|@I~+X-7#n?m2!~rEP!g z^9+2gb(R|Bkoi#X^3=4ooQLZtlg?hrzqpq~vo;OBqXdca81l^sHLLEXOPnvQnQy51 zpSZXqZ=Bl#ldaa2%3clKqiEA|ElAW(zJW{7LX~Wo2Zf7$YQcTHR!_^`9i==U2_61_ zTv!6_v=;hrbKa4EMpaeB=6bfElIj-$S2(GJ-mNj*7^1{mEL7jKzCdnthw`$;z<@I5 z;R5dkT{GQ}vd1htjU(zU6k{~L0gn3EovIEyl?t$O=*F#L>52KnfntrcBhl6yd#~>B zFKmMU1!Ul6cS20?!t%ozy0GgRhjqN4olR*P%NHwjcs8nWxcAdDs^r?ZQ_oiA*InbMscTS z5vRG9n_^kzT8(MaHemH>BW!=Y^3`Lu0>R(-JCC2*BXf80z1t>=XdjY?((-ePX+)!& zIw_l^f!y%=4hWR&&fKk7+1o$)y0FKvJ?~MYx1b4Oft>tPFiZ~(TrQK`MvtyiVsq?!Cc z3k};1op$&sRwOj4L+0?N7%nDyG0cG;c!@8oa`r{}5i`7rUsfo#H!c-@SYwqSy z!t_GGrr#c5MxKNejqtC9C$}y?t)_5qZvKfUPkIoC;@;LbyhQ$sVX87SzkUp^1}5FA zX)cA@W-)6$9B#GSZ;vHOF` zXBI$;5foJ9vZ2DJy<-H@ZDaiVpUb!>Rho;-&(r?t?NX$v_J#129CVvpzHmuhxq+Xp zw;omDy$yCI?*^|1zu;?bc#zr*j>g`ge)suISvhrRWWiA&P4BE41CLSB z0t-6%WRrDTE9R0NUjb6NcfR;|i8>NU&fWKd?9~Cz==RC{(r~cLX2@!I=EFf{uG*}D z`l0do{8ZZHe8<6eew?%tBusRHFTX)*1%zSyS$!JO*EfZe#EbRQs-$9a-kngtgGlF1 zrT-+)BO6s+u>`F=WT%q+G?Z(BzAM zxE1>e32Ve7p`N6Mv@L^@>1>R418tGuM98xMlxfMXHV;@&%blFtnGxEN!9~EF>xIb0 zh9`e(>L{t0^?7O`c3ZlYN_8MUYWt+52`vah&6Iy!62tOh=5NzjHvT-q&M0ItK;0=^ zp+hoYP?K|KV;b73qd+m6k~2ikKTBJ_cdO*$CI$y zgC}cc%{po-S)J=EIGqj2Q?k2HTppGQI>4;OmX)sTVGlu^;0Ue(YzB1p?nwY5`h3HA zs&tZmx`~(HHPEypfhn-`jb%LCO@Bna=7+9Z9`3C)tYm!Ss}Ap+_SS@qyu&au#JmB} zGveb3C>nHV)%uV44IzKHGGpswG--Vu8_a@V{`uOc(p%pz7nKry=0FJ%SvycWXW|tr z`CMS(@S6G(tW+tNh2ntBOII3DljHj_yUF2hzg?F}EgapIJJgW_F-Xsub0z;bT6vfcFh&jaT-|Nh#0-%6p`OBMUO ziVCyL{ZGI#&vX#|3=%J%S-0?tPX5Z73brw?;0lct)+UYr(8r~rHPN`Sv1g9X459uM zJJc&<5kSzl-^XMvnbg+Ai~Nw#qNIz~HzR!utc>%s>)sfWgh$~YZUugP{~QZ}^yIpR z1W=Glf;hjtMK)YCK6f)NQ+LkE0Cy?ZcNFp8Ex*wd>QTR*l-H%+h^KMgDqsmfI%w zTkX7xCu^yVFUNY{|H4_esIYjd8I~b)%a~;h;FLduQe{&ivB~fP+J_}A zL5{gj;h-ihGYoRKB^9X!6N#2%!96v>$6X;n8kz}2U*AlscUYNQ*Z5whHr``SZwB&V zGpv*J7Ig{(Y{}nX9}~U=-%9`Pq5Q7>xXjzn_vQbs)aHz~&F>Z`E4KT*>NpKzfG-5pPLdt{3pRmSj8$Swg(+W9RQcMGo%--(-TOf`Z zEdt^TJciD))sg5?J(=1CXiGQE)tFgG8sysgL>NuA$hO1-WR5P#HN#q38~VzWKPHJb z%SZ~Ln~_z#On<3>`jcf__*9`lsU%n zJ|BqQD$J&xHnf4kKZWa9ZR}jDzLTBm~gUS>QQPhec$& zp;9&Xe)!YNrFUB#hFp1_A8hmn`UiMBk0!%OGbXLP$dx4%!Whoc-7X1QXN0SYCWRn% z15jnuY6$J`aBL?zwq%ZX;7(oruQ@%uM`&NZ9(1XKy63CbU9ugM#}j-r;=#!t9$UGQ zY3J%s>d#i)7C!&SzO((y%IObf(D<#fS)+jq6vDdX&k?Q(8gfS7iN5pmvt)j$-lFFu zpZ;*;87tYci8mIvn;c=h?-f`Ck3d30_KjawhG&>6e3kS=S`nUKY=duz_N#^Eh5jcX zmH*gFg449R@}EFgY$As2ZTIS0Fu@@2o-3w~qMXBDRSRJ^E7{+1z18uLQ; zdXi&1@~-<515hcb?LmGim#BB8uUN;@{}TXqJ{Gv8+_WMwbchT}Xe!VZk@W*GD64>= zeRjpNcMmVoA4Py^?59t;hJfkcsRSINek#fEBXP41Uo`$}JLZbju}SkVm5$6H(go|t31@uL~Pzt z&EqMoHT26DxG|atdS$Exr{-Zb+C4G#hoE2wHHr;w&Vj1#S5y+&&BMY zre=WQuk#o6Bp2?x#VnG@MH#ce_qon$^$d0u?bjAsbJd1SS!s$ZUOvdNz4Dw5<}^df z2BXVoGkp9D!f0FY(0ZCk4Tj)0}>9zwjoX|qfYJ| z~u+1RPsv6RE)zfiR zQf=>8b}Avt!4@i?oo{?G+p=i1_rv{)YOwo6>5J;h* z+O=t2d&ng&P0fO~p8M7cwK=@c&iiqGM?Y|d2i~4+oauHa5uBsKiL1f3uD}v{HDI(Q zYjWigU<-jy=NA1<_ee56%(zWsVnk@x%n*mzzED5e0Bd_VNc(PZc7}OCc`wYUffEL9 z!7@!0tm!GSwpyPhDDPKG?AP`nZu$H|vr2gf7^&G7f zzY>l`7~U<{&FK4wogR&T&1ZwNiL(PYM{uXu@!)NEi|qU)_&)1(XQV}ZO~lig)RX7v zZAr;Na!UPs_o+w@DP9jF+#w#o3Txd+HdQECwIgKAJuCq4+8-q`-~>0EG>C{ z4}D?p#N+&T+CPMVMBE}IL&`G@;2-Y;>n_@Z(IHmeolRnt7Sxx#GAyP}mVdoqpQ6@F zuTP@yW-KuI7}s-mX*t^U+@0}3hs@cfv|#M1@G&8s?{=?RTO*I`%OKCHzWA;SNid?4 znr*@nZ8k^iC(8&KGrNkW&3iZ8b30f-%QuO$GrsT_8V~r?L1|&@7}_iv{Pxw@I-l=Q z^QDO>qR=x~iQT-)R~(>U?HW2y9?7)m-d-N}&rb(Hma)ZA!!t8hB4krv6~-sAFa^&s z^S3Pw;5Ir8`FBGNp~jV(bw`^VL5WWmC(elQ*FB!TCTwBw-~YCf;3{vL#D8u|J^U_v zztZq0#Rf8i{5Q-?tCie(5?$V0kSS*PHj26E&d>pr$TUB;sR)XV~A)5IY9D?Hs{c?-ZpbO=Q zJt1n$egz$4mGbD@AeM;`ugWJhRp{3{)yWSHjxFGs0}CZho0oZGwR>Yl9>aid21&Nv zW%M&d`qaV#q892$%$;8Cck3+vBcnE~Nq{7uvsQyib4$K*2C-F7_Auk-qxH+~ocpQr zRee(LwiQCix0iO=93FFgMXnU(f-*4H{C1r1{< zn0u6TRNdq9*22ni2s0~|>#iKi*n6-JAJdhk4lFeg z0dI?aHSVRf-A5)ws7o}8qjH|({}b-s&7six_efm5R+f`ex>_D=Zx;)6d>=qH|DM&KoUN5KaA;8K5ac@TIa1 zZZ8vBu?;;w#xV)^H!seE9Qh%6w&At)P#r((GLdTRmYf?Lx${)lJSVV<3R+zXgkCWK zRN3KM(mu1Y&s#vxhzaZKc;u@Y5>Y3>$yjSpC0MB|qep1>zNCB(qHkis`TTkpUwK4E zISoQTV6}OQkh=cncpY41-L_-2b2EnAmDv#hkrc(H75VOFPPPr|TIDS&C{FRne-cPC zyVr|0zqT(IxuuPRwXj`;nb#3MaOlZ8rFE*@8{S~OSs2<`mT>%Q!=wfM2otBk#^Ss@&<+gwj2sM;=v!P9U5gS7nR z4=WiZDpag=SeE{@y_a}zeZC;pH?N(n&}z<81)WxSgR?m8kFSiu+nm6QDE?c0>da6L zc0Jm${D$||s*W|etPA>?e0HIh^5H4ovk7+QPwWN2r&RmLen-#GG2K!0@S-PKJo_2k zZ4}GGZv#mLi|i~q#7#XCPj%%hWc%!Y#SvpfhFr6^pcc#AaKG^{4&kw6^K-E0S!enz zNE>QDi1(Og1pK&+kL86|uBZzD+RU)83=eyl!88}iShpsIsg-w)HQwyQt7$f98Tq) zIOMXSjSHEnqSQor@7d|c)i-3eee}2c(-UBFM7rIRmKNo z`w$8}13X%%XlMBAHoQ}4mQdSE`9>V|6n}N0#m=|VkOpx*dH;5XFjvRkOQ=`o?BL~XJMG)>)W0q=&6gNj!QLU94*kkEAEnbPjl zpx2-_G;f7ANHq8Pw7PM#)ZA#~RPWocD`Qlya&H#~m~j~A2C@+hk8y?*19m%-@<0;K zz@m%)6DXbF@7w`cZa8y^VY<7>Jx)tF-|-7AENNma+UL^`uMO^)Mr(*103K)Gj~-~o zk2*xT0Pg&2P>zqMt++Y9Ef!86rItNGoa zJmJ$F*IM7N#OeO9N?(qp8pzblSvQtw@gcTg=N^4eAj^Bhtro}ncHgO2rF?Yghe*ZO|-e(vxRtI50RKLIB( zqPlh!Y$nFaYA^(<+OcP!awfp|M!MHJgTFf+x{ZdyZfDTUhu7EmJ!2akmwYmo&#}uu z+WHNUf%#u0Uz=~qSs+@=I3Ox!y2HS`npk1%V;u&!LT;4V1uVGg!}gZtf^C{Llot>=qygz{%glv zbaJ=%SaO(3j~S(IL{(!L_b_RFg~m5L2oMmWdNW*txA!oWQgprGuWgb)dR6;H9HC39AEI3`dJ?jVE&ok4qQi}>L!k?;lE>`lEAHO4IMV@?#w`@#XP^n`I zt3xLaylxe+!lRwC7Sr_K&q-Wc8^>~We*1-sJ0l;BluAC&FsXDb_k0VWk!N}ejK5-o ze_@us*4Gm`7x4w*H#3YTmo~9t;5D(vv?Y(B73)R^$#WY$!h3HGB12Z)5@r~pzIjjL zROsu)wz9XwqTNm%uZc5yZRPLIp=39R2-lw>a!0={7ijvpUL32Z z^c&BW{Uj9ny?}=kqnNJ!S>zjQHSwqy;8e>?VEAVQ<}+T+iMm(ionN zgoyVI-8uozr@CKQhelJpv(WCw-uXh+-6>1HqtxEiMM9N~S)S{DS z&F5dvYq9~WkFI5U4LE9dXKsyb8mwiq8u0zBaggfXS@%BYyrmO6uBxuG?!3{8^k0>0 z>~bD3j2`K~qjSF4g0vT|THlZAKv>=n%Y{$EDO%%F=a}9ao_xeZKv}eGV@5GH%MiEt za0S1xzzUVKZdnkIAT{QyU3B2ul!v4znznq++!TUXrOcxKTl z)o=p51VD!s4L&uymug45pX3b3?oj?|UN25Op&?v=xI75F!Ic|;u%;?e8?gMl#`*qC zfz4m)HOusS02h7mC(YQZ*%k%#734y>n(F~qpUj2a*;rb?th#Mm)~N~GlEmKJO24$m zFjq=N1(pWi9IN6^uoVRo=$AbE`y2AUSV*0)LHRRi+zF}4piz^r`{vos2f#%Uy9*`jIs}n(O0Y+8p7CoCOqd+-0wJGZW0uJvQfF09%;qQC)6j9?9GjN?CM+jDm+o;FSc!y5GO+cFAw zo?GQO#;yXcU;3YgyS2wH2vrt~rY(WnoyQboH$@xZqE4ZLy?MybChO7v32gQIyh|Nu zUg?AX83r^b@TMsQGwJ#8El*m_Q#-y)!2akRY~udOA5Ag+qjrlr?ATD(vIQ`cjD~sv z;VN_+5~G1lflrt9-R)Z2b>Si;>`MEg9j?Y6oO*W26|$4dsW9z1X6 z`J&2;QP4jsH>kog2ulwHpT;C{5+lPM2DE$%J$NcX_`s4fc}NQt5x?$5ssavcG>G*GwF| zPonw`XPk{82vbXP2cFXQDu3KvQsCGcHXYGuG|gNBXO@^~e?&A6^AFjRCx2)gdzMlR ziq?WF7WT{*J+3NSi@#*T#e40F>n1sEQchSofw_6M@0@e&(tO1d$4KCFS)oO5QnM&( z`kL)*0?bvXFjp5J4n&lpsHh758 z2!D8Q4amZh$%oxAW~2JjTXuY$YmFLqEc*G8qo(-co@|;Dlnt2c{# z0fi3tJs5?P^$9~P70abEi8nAmMkXEtKP(q>D_OZZ17NsI6`#qo5KImYHpI{StVP>h0StR|pygf`e+b4qF3<@?FotnOyXY5+zFodB zji_6o-X_r50Ie;}<4ehkn_~rL_8ySfE&V5txrH;)T$W;(4O2N6#e1ACMfAXh3?d%? zClFfM8bNwN+pD+|N^1t7yt)*#<#j~FqsP!Gtw(uRQ(~QN*Qq>!lj>N$jR_l~>A&FB zoZfqFc|im^AE%Ix;^lr0o_MU#pG#t#W*>Y9xbH9&_Vi3Dm-z$?87C+7+I?{R{T;FO zKb+{EL1w0b@v5D3*#I$~YX3Q1)<1T~o-BTAuB^M+c*od)_WL6MWKEZIYf&rH8Fws4 z1ZU-Q28Uz!%NF4{oBMG9D(U9^FzL(WDN9rYlW7~4Gt8khuZ-k@mP%|RT=kAMy%a5O zyu9+5_>SIhlMO=|h^2czw%EpvBOlFOij{cNZIvsPpTwE-;4>mSl9;kDY+10yANeEq zz%w) zr;EgMlNSrugL5Qg8P`c&s3GTd=)GK%IoiqkJ zCA0RbfELt7I^^`h1`Lp9;7_AJ2K!`B@H)uTSrt<3)f(XWmFt%}x`CFR00V14DP}Mz z)Mq|ly8NC?8mpBwY4GHj=>Sa)!jCg(>{Jw_X`gwY0PG;@?!eS;gW_Gve~!@eK|^a` z-a7Yj_V`%Xum1#!iy~4{d7;{TrnI-;e^1b!)ZL`zsH`r>Xi?S>bnyg%He zy|c+YV&-eEZqEI1f4!bPS!=gtbWE<_c_Oqsc!u;J~s-5Y6*JXZLXD4ND0oq-u%xxBw=&mO{o1Xw%kOWHftBNxP%|E z(@w_>6#D-Av>{Q{**#{4COW>l^}X8LTnjy{X(5{IRUO3PV13v2atmDE8*z%Bgjrb3S^0sd2DqK;XeTQK%W1#_P4S2$({DykETmY z_}G@aRgf^I;V$Pj&igv^%--9tZ2N`c+H{pQZfi{^6-wjzKI>HJV9RCc6#9c($+b&J z4P@6Us!_&aH3Yx%IDb~QDM?4o#zf)0AvT{6p5?y>=%9ItmznOg)T%vr^PPZRmD#)U zQO3|_h~CbPrHb9AKW_ntW%aX(HL*@{>c|fJM zTmauz%q8#Y7H-Wi82eV`Tuz^7#+tBWP54=-_lyk0^*VE4%l`=+L)|rqBWaoP7##&%+Wd&3F$~cTAHVr!N zcPFNVh|R|b7Y-bFBsXRUNr9|y?b8t>BVypG0H?Z7i6 zR7gm*tSFgn_zb(Ez-!WdYgRTEujMd{=>D4VK$i{hA^81IdV_X*|9zJ1)yvh4B8j>R zUGA3%+~N9Z5A21VJJ>Qd1#ux8e}*Z~UbS%t3dF8&cQ*AxB0RjneSK-!PO}PC*Re|i zeV_w)IN6%3_2OfTlA~Y&fQ)60bA?W9A)so=B;3X9-!Qh0AJuxLTjE%NhXO-7Z9bC` zn{`5b%jH6v#oN{G!ZUls91YZDT4MI4ukxo^kL~g5Q~nltuEvik!@v`Cr1=Kt05oO@ z^nUNv^n>u&vfsqw?YsA4|IFu_$7J~X9j4d~?VI};c3-CAm)NnpD*#3CD0g@nVF&@e zkB#Xe`Wr=vCWM@-%Ut_mv5r#f?X{M1ss}EGZTL$d?N7Fe%#X{tb;J}w0o zY3UTrQWm+bkoO{w!a;Mj4z&SRg$vHYmu-OGbBF!en{vkrq|mI2il~wA2q)Vkmn`cu zsHW0H>wA`)j=!j9Q=aqoOZ~aMub#Evxwy{s8w^Bg#!#o1to**1``2_UF@Q?;FTKpk z$KKyoMP;x-Lz~N6sP4aEIt^C_T(}hax~d3a4F==CK*G_-yvZS@HC2u--$R0!9VKRm z5cr;OJ<)#f*}3&Uw0XtHylR5+QaX)l6i09_K2Zq}Opq$TJcf2CoWINI&8fpLuvgbi ziD$~dKKf~8QALwCeV~4JdUl4I=#&$?*i)l?F_ul6MaeQ>y78+%?}tRmzwgd?zR)w; zn)-|0{gX`p>~^CJj;v@7w+j(hvS@A!X-KYEIJ0u=KCyfk2H%bK?ay$0jt@SvNCUoB z8k5)Vc6h|l;Cj46pqPD<)$D@RGhK`s-yZ*!BV!x_?Y7ko>RN2GDsZVCr0*r<$v-+R z#Z9y;SXWc)=iKW@0X1t(3wfqnl`D(l`W}HKN4V(~23zg=q6bvHx79hI@vd<(q#d{G z24WACZ<_(GO~?kJcq*hHC<<*qLgOZXl}Lnfr2%ov9_ zHNL4Q2flVqGb&N}|WCX8xT2n7u$4!AEEGtD1CWWzBzp z(fXy@Ql0QR52wf<8vJN{8o$@tq1gJ!jI{O*E(ae3942%lTh8U8jK7c34nG|wRP&0_ zPvHV;qfzs-cc@+dB|&RhT74$nrY%<2ZTpQ<05IY}3ms=uFr+!p!7Dy!abzCeh-6w* zd;CKqNS!<-vt_x4%-*I+;C}t;8`quWaKE7w=h+7_wu~bjE$Yly=$5b;%__GzTWCrg zry+jtR_Qy4bQun@t8z>8M5|v=&G)4C%2)S?5|n+7cNL?jh=Zn=1XgN4xU`>$n}ecs z;OiraVUTijiN>TmF{JN%zVo3CEq)ny+dxwQIlOwHRN4A+pL%p&9l&Eje=2Im$xcSM zpK(9?=u-`w%D;){Uh{0=s4WF>kb@Q>@-5KrFd!@wFkh{B z!(cqnn=0ywQu_uqvD5DplRTdYjWSeyFuZoXqiVqZ_j&)$k{AmgmC@>B0kLGuO4F;G zPG9}ir(ULIZOX=7HdnC}gzRlqW2D6bdS$PEJpUIR?8-Gn+#3oWecie>rFkPi8+o$D zLEv9g#T$PeX@M*R7>?A~`R?!WKsI$p`q!qSBKW9^;rd$}WamGjB0ifnZKv)#sIKwW z3e*{PI6d^*b91PT!!NAr6g1_aBhwCD>HWo8udlcvY_Bi>M%t1s@uq0C=c9if zo@6u~J+kV8-g0nq(O^U6fz;Xgod{5k&P<-PWO;v0$Fie`X8QcY$HKW z%t>;0d!p%YbD9t9c5_#DS`yA)GgMPn{wAwl^b~pF`N@+(?ScK$3;C$b6M~xAFW7Xc z-x1i4b1Noat8<`Q^COpNK>^RcbnX%oFCh*@34IO=)Gzoz??3*relheWZ`ENHJu{@a znsf1MW5Ev}@jj+&?@3aag6{rt`*Aw(xtuo|cl+Aa7UxsHL!ZSE3SzSmyZI)TUtVS} zn)i0Q5P>8sP>-&_`6upJvkISzW&HK27=jHxgTDg1agH+Y@zC-gvOos_fA+37#vXXn z(g(+s-PRgQ$y9C_=lE|nLU-$)dsUqKCYn?6GvsXUPhivywQ>F(3wR9d@xa8_qSf8YU6%~!nRg&R-!#T9 z>f`2)ZnaYu_+J0l4ID6(m@UVkw>!Sp5VCY5dBnc+j!;@bYB zDT!T=R*a0Fe(&1e!Itm&TAfV}Y_Qjl(v2ycP_DfBdr9{K|NO|qZvSx+!pf^5?OR`* zUGEP_zV7`O6;^hBe>_C_hs!j-yme({rQ6JGplKMrJHd+M9@wzDGh%=D7x!_CVlM5< z;{KqSd@Vdg@I^0cY>sssyjh&7<&*mE8TPZX_pWKubynY{fg@?!JXU6>% z7P^A_6V#IuLnmVSR!rUHTUwGnQP>bs)jXwo{_Y?S8?C?jIQE>yfew)9<)MYl#pDNH z5Npf$)M;3Dps92qWGUa|!N&A!l^@|SXM`;zE<-2hl4mPCD!^%b8EP!)lbL4~-(;WK za$z;iL(Y>&M-!{MJwv1{8AQmxcvfna+o}jTe39~CkbbJ^!54?4m@{6sWMfbG%p#HO zTa}3x4_l#e|1MJu%E(TnNAP$99J(2zdZ{|qxt90u(2{G(74QbvxUOJ5GB(sF{4c`ZB-O7oKv5L zz18@~5Hw@1GH$a@lNZ;U_#BGQL1fvBUXN2Ybjh@+6}y3A!Umn!$CfOx(SL91w8khJ zfjjpk??+s+Q+IY#uEp3(xp<{%kAIxv-W}DvDT;Wrb8LGe6GvL7@b|&F^|0t`o8oQA zL@(jEkkrVX%a6cTH3bV3?(6FU<2Q?AyJ^xer?Du~n`z~mh7a?-S~>T=uQ*4X_!M@o zvgjl@){>9p4r#_;(S7Td0`8&nHj^~C>h80}D0m(3kq$|>oImV8PS{NyRgZ>+4D z12e~dzmk=3T%`==kOy6@K?$&aE;ugoFp8rbeaC$K<&z=$P4IQqvPhN57qp0|{{%Q% zYHvwi`6jKk&iLf$h~HhFq!0*139>|NOt*~gP&|9kdTXcOsf07_y}SiSrvL=u$UHay zRc5VW(YI;Mal^~X8Ozrr(wqE(LHm+8mre0@S#gLL$5<-ocRjW7lhqt-w`x4v{5SRh zOCMsjCVR@N>cJQV^KNpetR_X@4uv)VI5WaTy#^&iFhcuZ!&mkG@gZ6r@46NRi(8lelhQ)KOyt zR+=E%-Fc&}>2UgW`>z~T=X*N*ZccW{8C&!9kxpKQE)apf6Pz&l>Ik4Lh;OI@xVwx+VakG8H&gv<6p%Yrz>M zGuh3r)_Z@4#e2mlu9}VG8h=BPf+wG(z6Dwd`G(k?0RHu{ZICD{O$ij=@)y4^36v%G zkZGYq?O3Ul6-is&->Na(Caloz(Wc%%;+hiGOKGeIfu`{v1hm;;0{2ZY$MM2*Xd@dX z1Ezwxp*ay7<3HSjlfC9B(vth?{|U(G5a* zb8xgcAH>afEClC#z@Hzj`3;M!rMzMJ{8kfLyslm_F^^LXB5RMAY-bJ^rY5?22(;hQk?4Ugs&V3veUi_fuc{c{sAWc67A zix?XHj*(oHJ~FqI%5|+OzNh=+$KBkn#$ySMs+3qyPSN_HL3@zX_%^rR({A3STNkS% z$jz)r2#pY>Dx7lUk3{=05sY9=<~PtuD2@XxKGFdHSnYo(`J_o9H)H_kCf9Fp`+i7N zzRh>bw|NguAt%Nko%oA+=*W@Pq~C_t9J6Sr&6qa(+<`>r{yLT22o-u^a!>Cy_N|vZ zveDj2hd(?J$3508n0_rNIP``2W)K`;#hv5IY@*^%V|S#lEDo4@J*)dk2%F>OQ>u`^ z{JA<_s#=hna2Z~KlYx>cR|&ts-|QFFLo7o!= z7i7g>1GG)xv&y{$M$D9FVZO1|ET~<=GGH-qFmjS_)>#}5nMp`n`pPG7EF$D1Lw;xg zxr4D!{(}F8M{S{{b!K4y8oGa8A!Cz6mbrS>lReU|7}4r6=?TM~Zy+7ZtZr{H*>gKQ z52R(wX!Yz%Lt4XXV6tvoM5iN=Tf;ltEPU?^OQ_nx{OO#U=;Ty*;o+^%xkE3M{f|Gj z=~Ku)xbtnPj<>e)wu3j8&Z(%2APDC!E`lb`t)7L3}9rZ1&Iib)$w-+3?_ggxu^Y%lbZJvlS=oC_>9)+OsN`;1l6srr60KDn3qqEoW$zL*?JY zzfmtv+-KhhO)rU#I#061XJtN%A`@dzvg#g;N%c8u8C)%nlWG!A;Wq2eiMnm8s0^{R9lL+_U=MeQMGql zs|2aNLT+zuCAF{J+AGwEEop5HRWl`$Sg|9Ckc5oy@ALc1IXQ=L;`6-U&ub!u9hiAH z=XO=2a?|Ebi#`T*?0YO=+ho~lk6+n_twK|we>DYNMJ<;|VDaJwWpU-xRo5U`@v~>b z#7!fR2nx@TvSFA0KM?B*d|ZImW333GtyT}A0M_tUnm1RNf*BT9w+8dEO)30|2#}C- z#_6v@dN286*snf)2n|S+geEt&>i@%4oaxbx_~K2t3OVOpX@{1I@15Z<3L1*p zT)OF#G7N3TB&!O4!T9MY>A}i*-uyCO>##5QC~x$S)dxVgXq&VRJ&)*>Tic@Iu*Uki z>k;|`&_6r5qO=+BPHk^S9oOC9Wfd4VUsqRkix#m1?GI|6LSDhyZ`(@k*vFN(EMhKg z*-V5siZ(dD`Hc2zXU#4$U;7@U`cDzQiC(R$0Y#4SUQ^eKOZ*o<8c)7g&dUfOX!y|d zPdKtoe<3Yj?qW5!kaL;~Affzo9h6E^VDKZ;`^;P!sx zgvO z%@%s3s6}D*=;$+b2SnWte$1H_v%ri-6V5$m09?Z6O%N&K`aHyOy$GsZ!Tn&JI zY760yjhut4=438||Jc@(LOh+7=~6eA5vXSEzB67WAbgEiQ_rj*b5G~hZ=oouTh|MA z4d87gNwYN44o5!h3DbHd%J1$L>a6tK0s3X-js^8Xrbhbomo(wouixlgi9^fS5aQOX zKbI9NJ$_TpB+ok(d6VdUTc+ng=NbQBpa76Vad-3=$E`@`th$qGqx&PILP+O#2qL(I z(r{q<=Ua&PYRBhki?)=gQ0E+C}1xBAu(%(1*&hHGIB-1FTO2Wk!T+M5wQ)hw; zV_)b+h`6Y)XU}G3J|penI{h|x-)xm!P}Gw)so!qX(`TKIdz&I{8h!e=n11N>667!| zrG#EL$-NfyQ%z5TLSWxfc)XIOrX_YxwhJV$a%n>J7`w#inT_j${939Gb^7!!&B5&D+v@t(anO8eG6@;YWZ(r58%osVc zKCzBq#E8d$x#zAF-TFbT8ar%RN8k=Y_!i?WcYsChinNaZvV1Ot_~C(QY9$OLrtQ<7 zGi3URn0BG@O6QNEYWUZC;tsuM9H2r@Q0J#t5x#7a#SF}W z*6o^D!rLRh#QXY=&K(`&pvn!ijv0jy@_4gw*2a5b9QsWs^dv~)21Z3bTIsvQ$yN#? z8&8w@C2GZLY1k8PTO{Tb~x? zGS_3i%0kP-{s<4<=x=k7BRfBE64Y8n{?WJE=(BquDao8#7ltM4-CmF_yLMXJv98;o zNa7*Tx-5NSEmRfbqkkb7CcMee$GZHP+kgBq@%rf>hg0WZ8WDG`4Ij~599K%>kD+l2 zaLJ+K8&knz@=2mH@lWv)kU^)tM|r~1mEOyoid*|L-6rq_*Dt@2P0tPypwPXQZuvTc zCv+0eYRUJy-am)GLxmx_l#KzcoP*RuZC?2s5nL6E&AORYRTx!jdMN?sd#I^!$a3ZR z?cJQsY?B@ zYu*y#nKo3fVgA$GSMz9!vhfizh<)Wxmp>HEbL2-3O0I+lsv{Cyr;xuh%N$J*`l0FB zM@Wku`>q?aC2?$@HZ9MpfQaS1`Jz_FiYz}{e)yy$+(=i`Bu8n_&yg6a|8IWmn~dJx zc~cpJt&nU!*)z=6M(PyIZVC`M@rwI;S-`N}`*>NEL|S}KE$?!da1VU+^!J2lTF2@~&jw~K z+MLo*65$u&#rru~VeaQ0TEt&%_v6k2T8rpN%j~B=)H8c~0GHakl<+R z!i>##kzRchv60b)g%Wx^1yz^;*7EyqIq}La6!1tAj4A4IhrG{t-TI*tDpABX-X_Z@ zSw&yEF5F$|;nJ2HlOeA^HzoxaC`5un-!!}U+*9ZY`175}!xQZYkaM`uir$CixK0W@ z-+9pYiof1OWU4GbRUos&=4Zf*o#`Xgk*w8QH0hc{Yd;cTn(OmZPP1%>IE; z799hD!k5L!!-LvbWQ&BeI*IFHQFUu{f4}c|v%sGl*xPGC){~+d4NLOF;e*_&CDetj z)0RP}xY?p{_COq(P4mGS-fxZC)Kjnl$t2{B5B&}v?3nAbqEFX8E#4~{_Q?ELJ<;wk z$Mm2ke3RgB>-BRrqw)@A%IRc;za7i)rkSu6#Gammc^{C*Lo#C~Ux2z)(GX1vK8b?F zi(JCvO%<-I6xA&IIAbwFkC5tu983pwAiH0s}D~z z@VB1y3NNo75dyGm*M29()LMuICS+X6h>EOKx^sAw^+Y|tP}`#z=ejQ7btZGV!gbbm z04YU{Extu*fGLn;4{DIZ-rj$0j7Sr`D{MAI{LNWTwz_YPm7?lsYzI8P%2nsJ5c+f} z4(=6Ff%R7;-SBUlp-BoAX<@AQKf-i?!rkEiZ{>_yo=6k?e%dWy`K_w9+Q)ORavNFb z;U8ywwsZh}rB5ViJAUZLc0|ECauMluE#mE&^Jk_y$N#cJQE>ku5Yr@oIIw(#(JO4g zjIdWlt($W&C8a}VtY(>IzJg*+1=Li6p`}d_V&A8xCHURI=iPCrSS+?4xLA6tFM9nC z?N#u2{x9IlsEOd!G8fnsg^x`Rbfh`5#QPNA&HsMdU^&2O-l=W8fyh!Gs@r#blCFej zjlVxaXz`1L!i^QklOBeci1%!xf{lgQk}-K!4yKG*HuYT9RZIOF~jpK``@CAxe|lfpO(K% zltX5*hPewn8;vUn&1H0>d;p53Hht(rin&?vJeVw}$F(JJHn?c#__$RC!Tw|GxuR+Z z&?L_6$}erd__v`Ab5^hSzaAld77$ET3T-IN6Z#&o!;#`x&#YCzf&$)p;qpx*{cC(0 z`eASrD*y6Es?NO%b0}4c2lwoFwkJ{Ihc3OT0e|oBRewF7n!ZT}YAJd%M6=VWs(Cvj z0NdpyayqH%(JPGXq)>dXm%A{e#k}^(vlF zg!j$}{<~S=`L!lV1xR~+`0wrf(7cMvYFm|6qkJ5e3>f+2YM12s@cMADS=UT(-S24| z)R8+48gVwEYb1euuincD2Y8wj*JG7-j~v>w+ejFfTy6eD+hTcUM4ed4DdvAZT%I`# z&nX0tY5DHo;+aa;>5<|D&g(OM@)|nk4GKkQXVcpI_Xp3H8Ncr)dcHy_MBJVO!@*92 zmu1g+fJ&sK+fJTp+J{Hxq)K6Fl}`OSz)Mv zf9LqSNJ1=e`p~Pb8*|6KLtVluU;$O!fJGj7*oyhoyuco_(Xqs{G-K7Bxnr_C1ZFe^ z==B?a8&o@&sOh85OzhLRvtG>Hq2gOiw*WWZxY^jRit~D7TO0iJurtd@heHNaY#9vX z(eV4~7_XoNw@;g}{>>TpD@aBC{kO`4B{z+QdoI$S0Z_YS5dP9rwBp}|1$N)w@xzOD zTwhPApmu8gD^&O@w(4b_p+$Agkb-I5<}|3GZB{6FLV`Ix41j4RfBbq?Z0mV(xJt&6 zMY>Q%^y#Bil)v1`FsP2%djjojVdive1nbA6`27@bHdEu6XJ_x08m2_8L>99WW%N&v zvEQ;u4a8Ztz4kY}bWhIL&cW=@=F+S3G!K@N53vVC6?{$wfcu*k+A_6k1wT0-RLK>0b7!VdYYA{!YaAE6mwA9R%;iLU(&G55ZKyZ(VnSCw|s5C zy`*+dEp}1~Gb~!Wi5F^WQwWnALPEL)puN{89-InA%2IGu|9BPjQ=H5e`t5-~7W5A! zrDXa0i8g~L%W@8A^4@dF?(wLK3KmNK_}XA>myXw1j``}*v|9it=FqWoM#a0$Kw@B( zQ#(Q-$5+ny#iFoRe=U}g?fhLifUNvd4HqD*GluY*A;zU$*%ytt1kRxo9$m6>S>C#+ z%)JqF?A~r%g?(}(hsY*jmkU@xX`v`F1k@<%JRAn%ox#lASKBbc%1+Qb*LzQ*D--bx z+n1p$i#45@K%|FiN8qgi!>k!HRJFz;CH4ynBv6nBj8@*?@vtEqS zozMfc@gELIAjgiW5U~_z#XzL*pBup-b(VG;iG`@~qm&XM+I7qn8-cC5%DWao6N+@! zRdAQl)=TeV;Tct&!d@$@+p&97KZFh@~U$FURF>8cXfyA7bkHDy|n0s zjXMoWZ}Kh--y@GShEc+jTRVFMYPJ@#8*@)yZF$yQFX46@`@a*Pix1~jNBx)2JZoK) zIdU+!dE>+sCFua|(5=cTrq8_MP7n1xMeYpaY6Zjn?PK*9gl>y!-!a=q&KfAddV%CG zlCi4fJk0izGtX#`dZVLLe-jrJ-f(&d_o4Vp*9NinxRLHsw>(N@xu)xgx#~v+VoF>p z972=`-18jX*OtY4+xT;2j1_<{w!oON^s7k49IVkPl5gnu-k2RjhOXnUhyq#Isfl--= z$BRzsn3OTyhCjJ@$H;z7a%<^5_1yCGh2~pt9!P%%+&BL_0Z1TS-)DQXz=1meRg`O+ z+JLe4JI5AUj)q!Kl_7sEd4Ex8|EV2l2aV#Ma>ysY4*_Y*qb|A3KTI%GR8K{|;%;#{ z5gYx4i@4u*K9c-B58*~2UUURq=(e_h{BjtizMm{TmzKABTZKw@HnVSlmuL5^b`znD zNbZ%aP4q5~f#IHb6c8ID)YcxQN_4B4R2^}cJJ(oxF9qJMZd)22?l|8)>i^Ptn?U*7 z@H{M%28vcTntLrelC&{BCHoYb;Ke?(<6IIeos8FTzqA)OYY)X*It8s)OkubUq02XK zW69=+M@4=^AIfm9kE2iCzH;0!8;y$MWOBBr(x%pbp6cvtBl;1PBD=l7-r(}5A-6I) zau3%k_pJCH^KpD|$cieM)X&FF*5*H!T;m&fvp1XT7B(iW2eh?5=OJ(!(fwxLB+$9jofrWom51Oi#gBU z-8!pX(j8T$3&VaZMTX8=IDg(nxQG}#`*obiM&`4RdNUziEY!%4ApAW%#x_b{4_oXU zQSSh{nyiYuuEL1Jxc5maCctCo2p&V@081`Z zU}|+BzcpxU;iSNCsUwie%cB+*>9-fm4FI6%SB;pn76P#s2QDjck5~O*)^3Fp9nuU{ z;LzGLKn)l1wzHAj5t+pYYvf676=G!({|T1U+#IZYYufnorEC8?f#Mzp8x6Y1w@}J9 zPjjl8gXh;4`S1RXW0avGaEE-O4_^`-)fPVAGHK%g7Zpidb*v;|a+Sy@%A@K>;%ZY~(SMeGZ z={j`oIeqF}LoxZm)m(ZyOgUjQ#j3SYe!MlsEMbEd<_nNat98y}7K1Y0>kA_^4)B`1 zU!$_1gF~RW-VdFgUh9-LuEf``mQcTF9ijV*3}bV2D|C0JaRtolGzt!?oJSrhWZd>E z*lX?OiP2psZATQmOjRiD-nS4cgNCsXFE#_Wa;Hr$pteI}p~v2ZC4H5GSt~?^^8@=+ z$yv5LUZ6uQKc!Ra23;Q zl8a7EjyDl+$4{uazQ#n;leg!M1J_y9e^Asvd1Z zd|w-XP@z1lX$Aofg>SUQiY^V!zm8jH?J$5`nS;T|-n~rdNy~`{DQ)Du7}&LOs)ymy zS`5nChwZuf5h!w&>n!O)pTGvIIbi#mUh~9nVYHOuS|@|{ot^yu<7n|0aF44Y0+l!( z^thSvi;^bii1DU^H@ipr6D;eh8$Z9SXi7~t+|@F=)QDSs@384ksZ6hV=6~HJkyIWP z_cj~(xUbG@F8S`q8zj}~14EtkIJ38?5XWdWmnvz>++dI265--o!J(Jib6`@6WNv&? z$J^hBOSI&TdN$9Ew9mP@FDj*b{~7+fMKWi&_-P2 z%HsjNe2Pi3uGEkF?orw9(3J%w2V~#(q7|jod+k$&u%!#V#$l(?x@x?1mY#Vn!2D{# zwRBUVy^8$Xs6>)>09%6t;ptXfbrZj{CkJzB>x zSt)T*IRot%%z3$c`qb?O%03}HbV~O$)+(6xB4W@vbgy3ND&E;KmqI#ty6?T8)OwUX z@1C;0i01xM#clp#>tP_09u1XWBFcAmq!nf>zeuZCX8isku>Ucdcz7jfV~z3BH36Pf zHa@m`y0h2My*0pQ`Vrek3d=x6>)HG!gm8U!RCfLg>2}@S5qs;`ljB@+6X$lg2TK2U z?@s?U_1oHgKnLq?xJP|Tr~XuB2O{UmBUY$|Ju;^{oP3NCjT>=>DekeO z_X_9yo63y!s;Rg~6fHHvO(Kb59{?P(mg`lN?KW;63=8RY!QqPtn?VjXDWKXdE_gx= zuxyPoZP0W%C4s&V7$0cH(3vnO&33KAvfdJZXaobcJPz zT(j3pzl>Hatx!Mi+Gqz3I}cz@cS>R(24WNGLOJPDdAL_Uq{bYwbo zp~SMX?kqZo(GbN!Q8Vkm;2 zkLhB55%=&lNagj0U)3eAbuKAVJ;~RD!p$tW<<>2#`@6YoUSjL|k3AfB3RCoU9rX0& z{!ecmbVT+9`xMfq(T+O@73n!WC#n5nPRw_bghl#wTdr@72bmWXWH|C*!NQdVCa(SF zMalO-`=ktEBvgMRO@9v>65~_Id~-~G&c)A2?<-W5jNnK2j}odjEZz?PK=gi{Q4pnB zq**6lDhTtJRKg$6I+|Zv9F*u>uIs#s@G5ecy%CM(1w24`j!d7M{7~GkpC&ptLkNO7 z(hX*7=aZI4gYC+ZDVA|0KRVd}x3B(e^8m!r;}XU@5GG#o?ErRpRZD%YvlH^7YXFe- z^^Z^>0yWzxRro;{vJZ#sC?E7gXB zUOJ|z!^ZRH%x)x&4!d?eyhg>&&?&Q=vsAg%7+6k%Z2W`796Z`L$ci}9GLPiir?j`Qx}KyL#GsnoxH>XjYSyi zCAH!Cyjt`r?w;ZFu56&+n!*0`&3a#}R~NNKv-w;j4P7ue%N!VHB05;tvY)?V=bpk3 zJ5!G^P?ooY8dh=j*S~>h8x4L1*ZgW232g(Ai(X(aYZRuKrPmS0REy+oy5d(No>#Xx zlM|0Gs0&L^17VUv@kM$QfQ;AP@P;Y2?d#G~T5XhVus2Q7Ej}>IHd70(HyJ9Y&ca4{ zwyP8=TnfF&CAkC5IdN6<%>b{EyKd8vX)@ok#+Ac5+FzR@X7#RcdST!m;D!}?Ho*s6 zd-wT2M~_-bYF-RNWJ{KZRLZBmMEOV9(Kt+mL-}3?w8mx~?r3y21ixdX^ln}C)Q<$` z_UD)$Z}@qYWhL5`4nJb(88 zv;?$5H7LjjPQIQ2^nTS7S|%PA_AoF#!9IZzI+Ns^9Am6^cqixHNSuCLb@H!A1sB<^ z&kXp)rpZ7jovL)5M7E3H4*POqqId=bwm%yI@5v!t80V6-f8yEGVbok!>lt;`d6_W% zn?JK9=^6jlz!2_@+0~y&vk0OL}>P%Vpp(m3GdsDChO=DyFtzAvR{x4ux9&TUv zKm1G|ZQ<0`(kE_ShCDnf?U@^8^LKAqd&UWE0P^qmHvhDA7~00o=I$TQOuWjhVmMwt zqn0ncn@-;8EZCba()mKG6k_$~7lYL2S?xzTc{Hs6Ysvc|=`K(31)m_jKIf#LKuZ+5 z8mMRITZnc1zA!!@o;^ADiv=n$VZKnYBIn3W4Aq)u~Wk zr(2ogn=yxqwlg=@Ez;h=nkLZPS=}FiCf&{k?rdLHx?6i@Eprs=P>Pf?>Ir{TmfU+1 zI}NSy8u!gKD&$PQoY(ophB16R$Y*ZH*wQjT&}`huZJo~lJ27ZWzsuR6q`mEV0!&qh zsu7FC+D$6?xmAstpc^pUJQvQS($4^B%~@EKbc4E;(~T=L6M2)8qcI{i-Lh?=6S%tk zqI^h0Nk7|aZT^0cm8fe7Tyv1J;E6v}M-u#SIZ7bh2PkRru;<*w00nr8$Ex zwdcBAy9@KBc9*FHUh{W#D2_W&ZS%E0x|KIA-z(xHl(#sP4$GBHp6St2x&OtlpXgCP zXx?dwrWLrcQ6y+6+|jOEf8zcg5O`=!4f0G)uoq&6rP;t`rtg4SKw(GTQ8gk zSdBxhy?#Y-BXZ|s)}M zCkp_M>aWzQ#d-Un2NcvOBdFU?*~+J4Vx(s3b2fx4cQPF(v^J=DBiQd~@Oktk|8ENW zU?Vp&xU%<${;6pJDrlBJCXQ8p~-hLN0C)VZK86ZXKjW$+EXk)8J z^d@i{sB@78AOk=Ap#_X4IOaJXbfF|h0f?d-e?WOeY*SW3zkJ@EmkAy#t!tHNB+h)z zjZRW|4Hl6ld+wb?XO9zE9d_i9>cYZYs^M8Ol+M=8_C6BtcT zqH$-}XMDrXh4E*HrmhFuN)8^@JDV+#pGL_3#=D+DFK9(3M-L8Xc8TvcwQKvFQ`L+a zo6EfgKi{D4Kl&n~7DMuN>Ald6PV}E1Yl9Xrv*-}6MO?p^zZrj>R5EMjGA4HsB_+GS2hKCh4AkcjQ#I~h3sAP zFK6&Qc$(47fv&^;&oFyZx%1>0eDq*s&%7EgA$7L`+M0UXXgOe3ZJNV($y7(L%=}8wSjmn1eob8Zbrgr3pWn7c6w&(yOxyq{Y^pST?e2c4#i$6Y zZ)3luZNgns}^3zxmuE5n1E4C3GCmpzq&;rokbCVbiKI2! z2|{xz^!)5wZz?+98Nso?t=@hKIWk`e`I&NzxaigRT8CYUtRm`8^ZjXUj=ztLKOHYcoFB=siXC?Oz)_^`~nzGaL z>OqUDx-it|t?8cL!nPg%k*(Hlah|>fURb@+GRtT%Z_A_xe~-9E9ZYU-jbVkLD> zbo#G%BQ~KobtHgyo5+{4Z!IaW<00Vf8xwrRo`oiINv{w5w9CT$}n&A zJk-akV0rH^KIl$%G$5YT*fhHvsBPO6KQIJW7sc^CWBNyFY_jCLxi^2h&RZS>of71N zEnAgF9v_F)#TQSSQwi!nQ2pEH6_I>#l(2z?!-45Rh4KJw!@Q{1f(DoT#@vUF;%8bu zp~R;HmIt1sbe)|}KE8K>m;YGkxTjIT-76w3=38-I(zaiR^DqBQ`LcDDA=3Ax8#EegfQZ=eX%SeJ@btbN=inA=bs0w2uqeuaacCk7wdmf@9@Q+1A4x% z(z%zvVpT~iSnT|fd_XLX`0b(S+ER{&Cc7^Ga;NTk$WKTUF?rgr{T@=^($eHZcC6nN|SW z7;^`e$o|;B`c9gbD=>ikys>_Be=x$Z{Y(*PCH2|i-*zAWozqu}{ZxE!|KO;gBFrG@ zB_q^b&G zVguOI#E2GCaO+Wr$Y0_y{`xNR(iTj9J~*^&Q_HZ~)~d7BTewv?RY*hRW`=R&LuYL? zrLvWEofeY%x(pC8Ne5j&uUw4Y!Xxl@Y|RyMTiY3gtnG9#S&?5(ckz_w39pY(Gr8V! zq|!D9ynnVY3#0nffgaVX3a;CQiGF43c0aPwN@rQ+{_n(_kEA2}{f8R5@wXYSC%qKv zQ+TQubmesNWc*U@ahJr+Oe5jhMVUCJ^ure8y}bt9VUqje-I{;Gk}dNVh) z;AoW*6%Z1%UZU{w@B7C755BE;nu3vI#KzC6sI(oSE_0_0_4~V}|Wl z*GtSKg@(Zmx=o&VzObXf>WPd8+r}%f3o7?rnL!U*yBxzwcig)Q-Xma-%*=(wW3ub- zx%{B!+8+N#dGX#J4#iKvr*<~yX?KqKzWA-9WwYf>{RyZApsQw8y5hA@=qsGelp&Ez zw-0+9<26V}lR(dkRd-)?*z0Kg>r z6~G8__5S)s41+Uu3J7DWGgi?~(S8q>>7LXhzUZ7Tz5mH5&txgH%EH&kt zSJ>H=aI>q+$z1IgWaOhUfSd;HScn}-r~Jsd9Ab!TuE-BkXe7VkZ0PHHwT8X%M+GtE zSh;%6(xF=3e*PX2kn$(Mj}1{lzke?@+Et}&SF}Vn{oje>i`?v&8x|>RDSK|~I}CuF zt7ftj3#IWRsMBSEnA67Y0QB%4bI|yfDZM%{t;!R9-|^Heu*gTUmt>Meojv z?|c^=i#Ts22&1RI{e6^l{S!I-0|bjCy<4TY;B_Wr_Rqh}x-tI$h4#ygPR1$XL;_p! zNgy+j_YHlC-Tuib{>h@=D>e5E0hp+LD;Z21f%6yRS9nS~*Htio-cvv;J%KF!Y1F0EL>A8CEsBRUWSJGTKu8qdNNX1$Ti*RU#uxYy5plA9+K;_^EB}2x06)L3RJQ zVNJ#;`;-RT?Dk@@zpLv`P>@;AuU1wYDs4y`)$-_#Y11c{M}MyEeH&6f1neHm+8C1R z?Mt*>M(CaQUaNW*8hx++{PHhdT>cNz+`{Fa_&yEpQ1NruLFo=*rLDp+-Eot^=Mo0J zh##YCZ=w*lTeYuIo@$)rCtBVba$(qbi%lb#lDHRXtpvR2nVw0E*=Pq%l(*-AJNcAhsMf-_DD<2Z|cIucnp!DsF> z7QP|f19|29*6aT}VKpG|%`8@;sH0};-ukYqd{zWhK5Q4#zFbG<-MKed#jF}!P)g9b zUgc^0+}_^RyRU)Rf9V-XO+%Ped> z**@2!B`z_wN7fo@@qEDsz!5-Pv0AncZ{!cR(Y1WR9hgzAYMxf$z8xxYA6MDdqo3v< zKWy~3vbLj{?sj2mQP5;yKGa|3y3lG^1V$Lv9D7-%3lm5)9JiY zs;N#nXkt9S-r>(JHHYlQDYwTIa*4EmSO>1NA1bKziQuqRPPy4fy5MCvr<$GOgIWmb zm|HOPXIY*|i;ifJW!R_#&*5*R@UOCBW3gR&yTD^}KnrY;v-=(8K-5e813viaGpzP2C zS?*KwAamY>OMp<4 z%OPOxS|+?#kU{nz33z+bJtoAA@96oES_un(t&kIPqAji3DG481`z8OI2w2|aP6iv9 zrk`f_?qp^@r10fc%iFUZrr}CD)4eKwD(H8eo84G_^~NjH-lB}%FU#XM!5@3hPG^rEPnVtLNyg9`H#mB`+ zUOA-a$eWBiM*jP?e|cQjkL$Fg{PoO+kSvmwENAr%3fHyMB!uEk2mL!N9OP^_E z?&zm)Og&vzw|!D|x~+wtBp|f@Buo(g*#{ zSej^q{dA_W&Q{xlN?0QNb3pvcjG|Z?bRiAzt9_|6QW%4kEZg{AixGw^C7^`#v>=bE z&l*yef@+$KlJQuB=}S{*`F2rcJMoS~&y`%oo~Gsl^Me3)e6E&x4(o=n9-t|4Bved1 zV+NJY?}Scyt06C8rk{7ca&@5=-t8Vq(5dY_af`>Et4e|Hf4&5h0*5;2FiQe(u^ zWohoWw!UM{F#R#yqs6{y9ce|?2xkH)xkHod7pR&*Vx+srT zk>n3oV>}dXXctOC@EQs;(3g2H+Laa80JATh~k!hxyWqwh5-`X)> z-q|rzF`x`#*}m}#IO+;;cKNc(|9(G}tI8Z+Rq(SBxip71nUv^%o*70(-kti_HpA>} zL(;Q?Dzv)i@mu8DuJs*LyP@$Rtb&{HQMa}_5YE$lh}zv*LM4@W&#L9DBdL3{Un(K$6xjE9-_J}^HB+!ZM?fA8s@Swt7$?rZ;FAgb<7ea&^b+R3 z@RU_VWiow1{e$W)ql8`hkxhcdComT{0~UnzXE-7jek{*Phg}SW@2O-l8fc3xyfu-AI#n~cDULVO^?V5 z==_^E^}nS6I|)(hT9-560;+hd^XXm2Nh}JCqX`|&rNP7eRtrWBQHjN}b0Kx*Fm!u! z)A^c8B$B2npUF$zwH&(VfO@#@GdNKmMUgK(Z$Cx znm{pOWaY{SM%gP`HBPZm=|lFixu5|3RJPdixT}-aOW%$;$fGcYv5IE=GY+95NKcoE zp=Pc~iEGrS;pJ^myYfe;FI zRX26@_ac+zCmZAJMZKPiq--l=R23V6$PW4k4^T*SgS}5ul;UjLG=kWXTVj3T?8e&- z{YXT6CJTNf)p?Ikak3ye%=;~JbNDfWnNK*cYTGe;2z0PpQmye@fA#s5nLJH*tkyYY zF%#s(o72rww{NxeTLKHXI>HXWn%0~pDohhSR>9ODXCmgCys7*{?5Z<(KuI&?PX^s7~ zUIPB|Y-CtgP2E;hIjMo1*VedhNhu*+S=LWjn9~2i6`PPvo~O0;npoU7y0`I167MiP z?ASIHXnilaW;d?N_*TGwcH6S$kBB5i-^+S;-*wz>UH!UTH>_wBuLv$4?sqwfY(cc$ zX*Le>pT@WN56khR`~H8t!I%BiT|M(x`%!0mjOulqS{Cb@zPBoAp5WgwyIAF*M_$U^ zYzX4`geaI5q}WCV*2$AW@{QRr$Al$`q*Wf0vcmk}oyju))(b?P~F#M$@1lYp@-#xrR-B z0i@nmuIY;831-{`})-%ip+lbU@;r2+-k&ePdDtp`AhJyp>~61py*FRn2gJ(>U--uKf|Fr z(WX0Q6&gc@J}SgHM*9W`u-EKZ1;QN zn%Le|G;>_K>EL62^7Q5Wg_#E`y?6wkisO%R+tQchmwX`BIO=(m=)@l*-_^`CrvMgL$&?{L zPY*G#-H9x1ELITyaB@l_&!w9uCfjRBPjiN}3r7%=w)hH`tEJ?>Fdsh@81U2-R=4lJ zXpTSguh5m{nA_BH{B^1c6E?))uNm${j#t(lSv)B~KBX95{^N=6kyh|5N~t3-Hg~vg zYb?KcZRZv#xuQ9G+sd4k zSQ>eFt^+R1a$$C_#34*&cOUU|wOU@JZtS(`CrxbG^1a35Y20qXmxVq*lxrf;6`Yyl zn{RPs1Sx1!Ul?LfDc5>pyvo9X2c)FZy=_8C#BZ66hS5KZcB>hM4wV=>&@h_0RxTl!c98?MefdNRa^ z=9(xefxH2E($!UBJ9kpl1OI4#tFGyZV@s<<=P=rdl5oQu*ZBWeXJ5!Gvu~3#|eeM)i1FNPYB$%|J_{O zSQYVTazFFEWpw27ed(KZ?#foXz%qdqkx6jEI$x$oqSKfA}W{$07IeJokOw*L9ws zQ-4V6e$T5{cUqXXK5Gxw4Vkkp%a!-W19evT6fzRh(lf?o^fD|_OizmQ(NPG`+)4}# zEgSA&DY5IFg}5v5C|1MWLapK6psHtQBoCvc&uv_COk1&{w_LZqh#w%~zkPjS`{ahB zPHcQj@b{3n8mfZ=5^8GHnnJ-;ht{#Bn7=2x2_vfg>tsRQb8AP*_=as{{9?1As6ch> zd&wM_4x-k9gQyxazKo1N=3D3P0BiQzz#+yMcV6k@qaGp6l}#-3K}hqK2$*2iLetL< z+qn7mvS&|Y!a0J+dHx$+{6Wk0dtCoRa{ExKd=NUS`1kb$Nm(E_@3`&J-^8IOUnwt+ zWz%ElZDX`e0{#2|+ebU?m#_`sPqd(2+Xxi<=qa6?qY&ZmWRppQcO6UvtVWJs?lnIW z;q~aQ{O?*BHR~A-e@XB-nZ+TX z5jvY$v#5fQ@PA{yFSyZl1m_%e4ag`)jOU1sX+cd zB~K521Emz@k9P*?;KGn6Ec39|{B4mB@x>@jlQJOIBkUkUzJC1oA(1IcL$yrFZNcJh zZy6TKusU@wnq74MVzbaeEg}~o%e@*mcDA(hTGRFn;v%_OR^w8MI-q%*=&H4vw~@cT zx0TG_tp||^qUy3Ilb!8R2(`LI8n-b@)mJ-T(@x@3QRgVdUumq|4t`iF}-5x zP`M)go9j06FW8B0V#xOVhPcOws_gVrNS?~)%V z{iu5|0f=hxJ|6k(aOim0wO}`je((V@uQgRDSHYWu;d-CV_>tK~PRBmk-=JQEs5NB8 zG&pZq>sm-w_b)Cv3B*Rk~e zAb2b8E3c5}Px#cJWH=}k?C;!Dz;Hc?WcZpEe<#n*gk*VrmL(OylzykiOj<%P3Qqm;ZT$H`~HJ|}$tn*U9(?AARu zCNZil6d{Q^`0HV&@iEv-_voJQc`+2@;xFC1G}Vu`)7MMCJ=vi5P55=++SqwNxp+)M zPcy=Qv8A_5-?Omf%TDA&TJ3Qaf7*PE!NZsVKWdlP;%9B@I5|~QJZ2@O>{gG{R>tDc z3XnhKPLrxsy;ZLjp*m&zx(zFy8B0_0tVX#xIjs+yoDLEU$N$Fr2ayjjs$og*b%jF` z3FdLLCPqZ_^h3J%T%o(8%*-m_du_HB@qC)m9$ZtB5h2wb4~+#p?3Ck8TNOU(jx5O+ zhj1AwwC#{Hbz6fV;Lx7&2kA?cTsH)0Ddrs0Gu0%QFd_~AE1L+tsK?_Kd23`}k&8^E zq8l47^%ePoHBK@=mX`IqIx#$*CVX9+H^(Vd3}5vBtRnR+YVT&RIImn~QE+`8gk*OeYZ z=1I?{d~L%a3iipgk*FL$Tb3C|6lJqdlz$}9O9BuP0T#tTccA^Suw11SB9-UUel5?1 zcjQ!-Us7jbxRVnyne0s#0EXIE7`|p)8)4EhaKV3zDAERr8h_3(*)OjI3s!J-G{Mf) zgM(vL048#^41Ky1@C;I5+OkNrqs!E7CkO!aCUbHCg!|<)F0t1 z4uxlL)v2k=KR{7mvrBT=3rjG9NiL}+EmgBDQe_pB9_B{lCvF;N%I(`-_p)U-Rha={ zUB#$%i>aCa z+MHma*4CW;{0qHi`G+YEPZ?<;_bo+@UdqwuZT#Yprp!?shGd-TSRJ~kjv@@8So zz`h$(mcndx{QtCb@0uKqh5l>!v!20cSL+K~W}I^^;IMuPeJtH^fYn%S_Cs65(4HgbywyJLJb zT)>3cWiSS**dDZ}W?giyo0Q=mke(}E1alaC_+`j#R6fuxMc%&egQDWD5)fvRj`O_F zu&xZr`|AXxd^HcN!fZGo0wZb`$?Tf=S0_(RP~~4uE4Ga?9hDs!bi*`ZBmo;b1*a;X ziUvY`9a8+B08UmdZf&+MPTk&@L1&{QmEWpmM1gN7*%n)uFiGwwys^PuZ&{k#TlXtZY4?E_1olw zmowt^xzdnrvfB8HH)SoyR->F@ao|!1UT-dFs4)&oza<$_(=OmsTTRGqTE)}*Z5xNl z-GY6Bu1=*HP|q6%z@z#Mg-R!U_{=93$Lgpj;@*LfHBBLo@Ml)c??wxv5H3~cQ|y4Tx?5!&wX$pu_W%#O1-Knk+=(LZVD}uI2e;H9zNQj^KGj968?aM z`ZF`xX02q#et;%5W^qi#-2qxDO>5_)0TOe^+f*t!(3_#Qd7L~7mVy)jY<)y3fiRQd@ce0%KU!g>; zS)`|>MlPILfz(4$6F}u}ILwOI$19VY;hAEG>5AFWo@>}OC(t{TDp2)y23BSmW3R_= zV$`a4;fW6u$eZ)c+4$(l+pX4PD!IBB<28_@@u80@6OJcD445Ug)%)`PCQQ@ZDmxtZ zcdJ9k@A8UhOJXaumj8q442GG%3@*M!$m$OYf|g|A1|GIGvy11BWxI5*4Hd)~!>`r* zl_mQh_+46xitbX5iu;p#pQ#w7pqik+{wVaDmwbU4ymgYjiUR%PHC{a*u4c!Y^S|Bs z8QGMNYf2K)T&_ku*w(KuTBmr>&ErA32KA>AwZJWVX9!6x$3u`|E)y=J3kP{!>Twaa z#YAMbXI{@7{)$($l--*|=;KBcvI2w5X!Tw$8JA?bz1#uS`>;8xzp@MqRx`2`>K1f@ z47_04deEZDN2T!W0L|UwzptP@2v=INc^S#99@1Kr?W%%%J=9rA1^?ELPY z8j$NTdoZTk01hQS6k*?RB-%Mao~>!xW&~hCfj^Q{kBfo)DZQ54RjIl^#Ez+7@?5Dv zAW~Y*HhFH5EivZH&F(tlzp1yT9IA)?(CUi*@N>>KYu`k%P4vQ#VXCT7K6iULB>nsI zgujRG_0k&&2O_deAbQ5FWA^vEhsTgaK}J;Gw*bm88BzGwd!5yd20I|D*|1i^(Be z`Vn6d9*x9bT`ipnE`fj(THxQkZ8O@8y%Kxx*W0t18T1S0b^1=miHDdZ*)a^r|Wnd z20U|1^q3r&a=~)fMNsf1-uHlRR*L}arF%no!h;QpUNbV&S~+P@8<0goRaiNt@Hq^B58k*R4JaB$wiJ&slBtLHRnVFs`T;z6zp&ID2Qq410)y zhjjhz(^NQtO7Jut{W@9|AYv*b4b@O9s-iUARz@R@dRhT`g4t!z1xM*ASXCg1B5S6r zm>u+QpaAnHX1Ahr{4RcP1gOqj?}hUd(sTzanp1)zH0>5q2$%0`cwa1#8%NWP}#p!wqxZx-4uE4B=#Eh{W}2LwelE!h>TW4)(zr( zL$v%uq;^fP4SC}cK@T#HnqegPKf6m`yMptXD@#?YRyg^i9QtlVWLU}mT5$1^_&b_y zd_Diou>cf@(OWHPT+}9Dq2lSjuD|Sy$~eSFL$hd)XEbr-16-w+#AMYPdxECE;{0YI zJU=#zglo;1D^e}adyjX2BmHj`VDfV%)kZ-7mo;oxlE|$WEIo7WfuBl|ZuqW)bNM)q zII=v2Y;R642wn0p6i?CHvMqZ&kH1Q`BSH$Tt`fJ1vSRf)`%diq&L~ID4^ZB`WbHa* zxbQ1H8QB8JIIC$9>ucIKIV*xM1t(m;nKx_T2s}DKiDET)*q}M57o5ID3D{RJ8g+}i zwU8(yG0V0<;*QDmiedL{5-v8j{ILb4ennu-CI{{Un^8+MW}l4{zOIt4JzYTWRL%x+!^qc9mG(BC>w~Sv3 zNa-C4WY;N++`{Y~_FuutN<1JSXG z5z-`5gl^VvA8OaVjclhVfcVy$8_FX8e3#dTm`j@3VM-0_|nKf5~thGb+eX5=% zEhXyB_J9{}-t|sTs#te+s`#+{XgWL7HgumYXWP1#wU=cUd-Vneoxc9Wq@qWPbBe3i zmbTU(vf2E|R>|AkY0I$MefMR+ba~2UT#}FF!EkhuyiJMS``0^69ZM6OT-9*HY%FxH z$h|P+l#>hB8W3hP5j1}H<*>o-iBO3Sc-_50pTxA^j$W-YS+}+n<-UHWa+DIRN5LT4Ve44WgSR0CfdbSC6Hl$YR9DFQ;m)?IN z(m8fK3S?Gve4M-}`uerHU*dktf+!iHf!T$R)=Pb%W+{ z{mEbr<`n$PL20C+f@f*j?SMH+*;Y&#+OwE!3S?2{3rvR;&JP%)P8q+EZm?|SZ=k|j zY5*bK#Ldbz3&MA>iMLzg#PTH1)`ZCd?ySotNLXa%nSq1wam;Klo(5>>lnx`p)j{oG z6r=>AWEWya=~{ROwNr3`ZtY+&Cz*;OP{EPUnt?1k%Y&TZ1e3AqaNm7nv&?vS0XZaW zcG_Xy89K(j$zJpX^7g`U21Uk@1A4k$?#irg5VLHZ=zUPwoF9*{{O%OuOEk~^om*g8 zNB6zzw}U}D4;7|QgOpaD0MVY~PjW%Dr01KP6R z_WZ!oP$)?km8{LvicL2Thrai{o3rQ6f9PkA;htQZ#!tytFE^X?Gke$&b*_VQ+3E}4 zcfq(lo2}J+T=c?W!yK;s%Mbe^^q3w}(6lcfcNhtu_tu%U?yCgG96A)8!ik8==^^CP zwY+ipr&p4@f`QFs-usiilOgX`raQB{;X}z2WNTRuD^|5^j)5xvu?q;K(xp-#jul~W zO-<=KHCym}W^afrU|N4CE$S|U*3xj*^4F4ywE6FZavv~yiX<;S(#|}R0>lFm0iRZn z-i^2VVwCRdWiLIvpu4=U6rnd=67nA08F9AYxx8a&%0dc9OZv`LLxfCf{O2e-3MG zSx~pk^{>m7>*Mu8CjQ2a`fTVll!&zY7kcwDSnfh!f>`UH01Ke(#z5Hc#(gwVdq*^%CzN%RjQ?@aCi=ke`h-!l@ zAm3pu)-`qdjJEzqN$4>yZR(TMDnK2ibb3*oXX7Ybsm?z^|TX6|w9Bx-n~r{NfQnOa6f(NQp9=mS}X z>}dP9RC*Zb(FYH~>o$|?J0eD-Es3=1Y&P9=EL{vEjTIsOcjB$Jz}PYZ=d_uh9Tqt9 z@a2R_U4+hlF5KK0s%3&LhDZMMCMQFx5EJrsoM)5CD%w>bX9E9a@P@r@R^W2cioJn* z>oRfq+yFkjVQ2$v6Z9G~9bn6Mijd{S>b!hZJzfXs(Y0O(7!@wtfVDP;rnY?7BgNR` zJon4(LVrk6P=Ya8ywW0mschA>N=D>^^yb7=q;Lbxc!?lUdg@;9%FwSpmH$p$GCMJv zKD#xQ#o;n*)CA9{hKE%nk+4Fq;YpWSpi2fHb<2`uum9cOymMJod!%GZaedZfH!ZuB zdAnx3AjesOE)@Rj=O^W^_qX41Mmf#KjjZdPoTbb|v(K|0^V==KSU2u< zMKt?6JRHI2?kRP20Yv$4^V1UnX=xKs6~AfK`Z{O1EdPP`rAsM+8Vg^4Q8w>Y2W|&t zx>l^_PffSfpenl~C%@Xt+z?LA;WQ9|4zljawX7Zx^>2dOri8;mjLX;^8?+>|?6b&AHjtucw!)WA zc9+Q342wE#%FACD3VdBAU$*siIpKk7vg(;TLV3M{4r1 zyy%|IZ*K;-DV;tJSITyIiPn{{VZ{tj@7C=?sXm*0z7}o?!=lJBh&;F3EESzq4p~Je zHe9aNc9Eu85oqT+K3ttYG(L=Hk9%(_e>)%h-CWJ8hl6yeOQ%<8@S5tbLD)}%0hVI+ z0y498=V%1c|Dld?%VbL_Y1i6(U#j41h7#Y@(uju=9Kx$M=9aY-R8&f0Hlp|~ z!{7;nsG!$HT$wINq1lfHc$D0)B2taI^+kOBF%yy*uHt?lv;fxEx?ua~Ps}xgL(!7T zFTNg+kN4zlFij@gXuGC}c{-W7@4=5uxa{FDGgHK7LKU~i@aRGX7KLPFeo@d~wEk39 zk!Y!akB(jVZyv_?(@%r)F55N*{^gzj?9@i~+kMurv`|7C#cj3Up3&T1Ge6ANWC3DV zx>tw`L$oAjN|#9?*>daNB&xHrHOCyXrO7y5@aXXb?&8J9r8WOMO2~){KG|!}HV@U0 z*C(?^Wa#Uk$Kiqqe7j9?-x)6l&uv*nnoMaYGXoHkdrV46P5A&H!6MKkL6JuN3s~634xMYv#H@i^}Etamo z8+I_Jv)xOmusr8>8y@pr9#`B+$~VxQG4dHx*Uc+`#@##1_FTSypl!h5Ohm<#R0LCG z?Y-?2NA`;M7F#fC)2{;9H>lQMulC!t*qY_)!s`7Uouk9EIhgrJmn{uT8epm1*rZ
    ;cL+I2fd(cJxajbp^QanlFMfxl%7yQR16((y_V$M%6w$51E;ROthyzf*k7I6e#;0 z1v?%{6P`vWOHuM$T(-u(gAjV^vn87WFdA#L_{N^ng8hw%Bp@E%vO&7|tO7i0=kjcP8>tM>vsyyx+J z6ZX^;d$->#(;JD$WaTN!9UOY|9gmXLD1}9zHJX~ep8%+VROVQsg7egY9=#PjZWW$8 zR7xrjRyzX^4C;2MLh%GWv}?V>&tGMrjB9pqR_8j(p>@wK zd)eK)_wl}DOWlV*Fc3KI7OW_OY6*uVCvV7?V(YP)9*&(K{Y~}Gz5YF#b~DSGh&@~M zr39epVr{b$hv(E}tHuw3Jln>k0g@O3b+>$7K1k(eW3aFu!MtBs^|AH_?7KrSbL{1c zLN>h|E!^_+y+rKF+`%Ybsy~}<^&~DoB3PY{?8?N^H_I4N*SrGr)~r!1f9ZIN*Me_7yKKZk!-Z-N zQEpiEsNi(eD1P-B|9SAuKLE2M|CJu8BGtj?aAbLKmS{bzGVtGt<@)aaKP5CxT?QMi zKCNET9UW}_HhW?bI89G}p9Q5xLb_aD8A-TEXyXiUdLM5CZB0|=+A#%fw5&2nM^2Rs zxX*Gd-9Depvtm>&v}u}IXo!h`?Cjn&atZbDoQl4`2H)lJy7QufKF`{vX8A&w$j#AR#ZUZ-c@TMs~8 z2%N(oiS2cPHpG#|iXKlKpz7g1o<=D!g0+&;ka77P1g@MSaTbuBnH{3=0-3*jh_$9_ zi0B5BthYS$nfZznc@eAE@R@0nfV!lW_pmJeM-f&d5;&gM-p;QKbPV0D#uy>q=gYPq zQ^@lFxP80ps9AgL%}<7(&0V=?mKXadz*%?SHal!raIBOpzKLjK{M2_8Si_%5?27`7U`!%tHjo_?&; z58rz+8RcLj7@Nbko(`?a6EN`yDrJ*_gll0Xxfl9x= z7jhQo_gvBGuzn6v>)s_LuL`_I}G>bwaje6UT~T2O;uKLcwC$Mb0jeumseeVuu04?s$gX zVmmmIQ>1R8I406cNY}uZXvImqmTyo?5KBjU77iq(YCYjU`LfopSjr^AUoDA1GT;at9!5uh;dtt|Tqa z00wOuqsbnlr)XTuCx4^sbu0P>_f7aRDBpLCi4QByyCcu4AK0a1ko)EJ=CkK^78YHw zMo7Nqr%kN`-`>nOCa`{w0OBN_vV((c7MX}KWfma{{!$I#{z4W0HNzX`tQ1CTDFNpE9l>H`4r>gqJeKZ?S zFDsuLC{C*ryM6yVp+>@QjwEKtr0Xe|<@-{%#*dHDEy-F$Vl%KE9j_16jTWcd#?2E~ z{(m3$+;}wF6kZW4sR34s2(D4fhrq6cd`lLg`_4|u8_V&XVGX7(mZ==XX|+qF_wTX> zftJWdMTt;o(e5QU{y2YYsQ*@Yar~-NVh@*i7T%^Nq*&RmMUC5`E?|@Box(+1{F}{c27umiAJzI_4w#c7vA>vm84@WKo zyr1MyzYgF}{W)*E#VV4rhf9_e-kIJ_E0*0=RP4+C<$N}^BWv?6(dp1af7TVaaPvLqa+Y1cc=@&nmmzw% zczAs7EKmQ;0~-1HN;S%In;O+}73kMLrJX)i3AhyS`qqx zK%m_Pb)GK671V3dtBn);I%fjovoA(tUan=o8(2t4yo6Vi!c5-hhKWef znD4UFMQfO;h~84VMT~0NuU|jAt3~%EJA!s*0J+QW{$(C^ezX9pz4MQw8^sDtDpBMC#%8gRl1%K&EMqL&cM7LxXLmear_6$lD1zTDmu@+0iW*82izUv>kB&$pJl?~pEfMk4xdG_`zy^TqT<~mcCK+ds+k-7Muno-Y~4Z`6`{-w~l z^D7(9CKrDB7yNhPxxHie0qUWBijC4@&UxjZ-Ah#G;stqMrpXUnOJhxneVc2@i%C)c zneezB+zo;J_8&dZv8jDo5OqZ7N4KcPFxB9p<%Bc+b;n?RRhiM|4f;OhdZ5eZv6>$5 zV}MY6#XblqN6vd3*9r*z{X-N+oyKb_ zdh@>%0=lg+zPa#&g1;oaXF{kgN%ax^YuLIBUo-JfkDVLi&Qn?*Ry)~KlPsEyC1Y$3 zAH=jjM{%#> zeB!s0_QA{SdgFbmt4Xq34I|ZZ7OehwXntJ?x>_Q+DC+5-F&?+@xUB~cA{_Va8o-av zA}>7FJziehLf{JWp{GVq0n_%O(Rt%1+U|kNK>0nDEc9faM2{Jx%;Y5NCwvn!yUK_J z-J{eF6{q~$qRD;o^r=73)fcQqon34(gY1*9mOnSS0ox*_2T3WGNTP^dp*^&R&>R#B z$|akBf4n+*X~|Fra4uGP7pOSFZL$rFp^ryeRKDNA=7*Q?C+95&Rx%WP%-+b$ySb5& zRk1OAJ;~YqGu`5U{P(}nBm^c{u%PWHmGXt?!=|S)Yx@LigSnOrv!U9XTMv{m@ZP6W zL-Sb!gr8~+HvR8Q)a3;Ya+bIT2N7?qRG)ksZ{e#7c{{%z3RhGO6-%&wATrnR?glMt z4~4o7B_s(mynm@)d@^4%?Dn~>Htnu^hAVf-Y9*4I^{X|*Y-G<#lZT7wtGM5lEH(20 zG0Z9zd9ol-Rv>eKH|UuA{w-#e(v(vqKsnRa>dG=Xh}C-Nclt-4TVOh$vn|JxyDGs! zBF6Dauym1aCBnBg7h&#ydRZ%>me*eFV>xAz^b3fQu>PBJtEF#YyE>R}bH&7J>rny0 zd}kAH_A_qT5KzZ^z-vsd_=x|-22Qi1xO01aT#BD z-0@)YJm=42?{mu-%O#&lF1mMr{j(n73BEH24_PqmB5NH$CTAj7B68YmuTL!lXK8on z_nZa7S`C7B;5R14V(%F8BMDk=0PYdVCfMk9`oi*D>J@Y1D&v8x@tTzcCQmjt-nEsC z$1In;hr5beeW*E0Vt#+i_U8;a&V`lkzpU?pEo;{%HIfI4o3Ut2gW(f}q~E07h}-f; zWI}+Ng#>w9Fa4`4-}F=4VHpE=lfFo6pwMW@@9c+WJ*cf8!I2)nO@7=t%EF)@=v#`CnKJ<2 z-jDNy<0~C#%h;yMntRqlhpbeF>R=ziyF#m(vnc3Q7L&g{e`s9r}m%Rpa_7)AA-;{Wt@;j~{??q0u$!m=@*_t)jL&py}=PU7TBiPnUt zq8yI&dueHRA45J$hHUUSV5XhG!+jz|zLj0G8)3pp-8-cZAtkeu@%LPNK1CGLzWuy+ z;uBU=I4Og-&z@z#u#_-pZn6;~w_K z%@;ZmpPsbk&_7C;QbfM(|&NmzEAFfhXpLFkMoRm;L$L!)hx!rCBz*P~^X^%Hsl^F4~ z>(pmI97>GCMKmQ-mOh_MIpn`j#|ExK3u;FZSLd)%#VkeaFiX-uP=I?qn7l?`%gDI34Vo20H#}K!`V2Tgws>4o)38Nd4cczPVtgwL>M|$FIy87qpM1Dc{`tB zxs8lMD68%%r9+P`PKtN*vv<$%@^yfOL+G8(5)uC0c~V2veJI-E2Lvv9MV<6f?zUFI z3A9c2&v8KnS2+V{OG3Uq6o+4F?;q`Kg4Kk%E-hmM;8)w_D21%63^?rM>mOBEBv)=w z<%-Z7J+Z%GTy4#N7rzxtGuUzD531sF+M%J9)#xqaG^3{jd#eF%y#7At?PpRfFiG85HF)K;3nf{BZNc z^py9ykM5<2Y!jGqSH^T~qAHdUpconm%=X8n_nJvXeKT>4YuaplU(+b&>YgOH1sGn#W2mjnv{7lRxVaZ;i!86nai?bF6syrOlTA{*?N0;V;P@+(Cn`wdj7^TC-a0*)l-D0N!#6qiU^WeiA#cYyM|33D-?S zpf{#5K!zL;ouqPYd*yAtypla{ytleP*x<%F{Lg=Nbdccq*Oq7#Kw~$q`tEo+tJcga zHH|vtkcQ|Z&`J@ycu|3EiEi*%sf7oQ2dj$BtGKd}*Ooso+b{cYgo3y^cd-J3R!{I4 zt12WoVsqPjgLL?V!7KIDX~hmrk?2_*Y6>!lnniZ!1cf1!Kf@2b>^y-{gcqpT4a|DD zJ)2+HUk-*`ui0phda`>Cb0=O;jnYlkV*-(JXk6v-WZ=$Z+4uiW5HRjjB~8``4(mrV z@ebRiAEa~ani7EO3n&&cZQcDM6}A&A{)U_FZT1}0C21iEK!a9%yqW7XBe-K$k?Hxt z$8h9DqFNI){%hkjpPoW^-k5LOi-maU_|De5HTal`&!G$An;UdfQs!aMNU6RROo+t7 zJ8*(7RFsEJQyd1vMa9IJ=6$4!((OfOQ3r#pjkb*7VTV$xL?*EZXslQv!FvfV?c}rK zw&8GLu%V{(#WVF)Rb-0pU5nLRH`!_-3y7Q{~$Vf7P`TqsF3x!fks9 zN7cKM*3am0zTJ2hnZ@$~&G;fGwS!Qd197eq`J^NAbB2-RE-i1Z{CH=bCTz-vRnyxi zCHw(zCI45V3EN?BY1x*#l>Tzzbch#9xP2HXLiB)64haY~UEMJ&1;<=Is}lx=Gag1> zhu9uL?_-%@zzj=FjQls!F<=dRjN02rrs(UEh$+ezJ0|#F;sXIqt-OrSJ)jSgG~Lw5 z6{$lbr!ERP#7Ee3!#Q>iK2@^YF;1HW+=c9Dl=G7*V{3VsSe1Vx{)f$KlP z_IBV$wlrf3_SfMYZ0t;HYN>VxUxw1(95t?gwO*Ec1247bTW(nj=qK`&T&khnh3*4? z2_^kkk-_d38j=YCrdBT$oD|oNZsb7F1eY}AUn6If#PDH}w_enEp3pF7S~!YKB9RIn zH;;KhQ08ry*$YK;gbhCzW*3G#M#cS)fd_qO3&#=i(*AhBE2`6Dkq`tP)jBCF*L5nF5{IWTIgX~#H z<49@vxsXuvKMs)^YhVOVPc<83LxdzPY%Q}>!DzlJoa132%e3h6HYQ&Ca?0U9$P&|)rrD%kgDnwpOQ`kDwYMEH1IWGGSqt6x69F<(PRKba+}})ve=1;TFSp!U zQ}wU6Pk@dt^ArQ{bu%h{`H#`JBFW(1>iVY2z110)WgKTB8O-4QYk;r$(;_X>Rku=Z zdhlAc@snHbFT<|8vt{18cNrksMJvomi~C;?Z*gNTqBF|eK3%`--Xj=MIZ-xgT-%c= z&nTRq?xF+z-6T~kgYYB+96(@KZ+-r$l^EgohA~maxG-@5-R^tFNM-Z7yx$AIc|Nnc zMIY~(c=h*B|6Oh~9nG^>cJd)SOr_eE*N)GiWqTwZ+nUD%+&1k>`j^SDyqUYGqwQ!*0q2cKjbJEISedf-oL}(AodQOoqq-2wk)E;@7 z)?%A{FU4Q((_}|>jDM4<+H+66%?XY%_x^??!d|d`3oWBL?O1FYT5DpYxLB`U)F~>Q zZ`9JzxSfuD6+n1D7UcNvHtBJ`BYnTnxcWTfrHe8J1FwS6eCqw+D`I$>|J&e|aU3_H zOY~L^-bCGz5$awh`7ZSSwb#!06K^ui>A)WQry|_o56dzF8eYwy+YTWV-JFKW2DP;Y zSh*rSErlnG)ldDMgj0$|v-Gf3uddIK-l8=1>Kvyc7#Vk~xN4e}l!ADuP+aBRQ}J6> z_SlH+B7Ze``8fvxZOgj~NIqImlf5lLJdB2Od&~&!!w=A4=@hyWr`457Eocj_afrDO z;F!2j_@Pi?li%)1CdEgd3qRWGZX+M!VA zn0=Y|dIT0zKib|VUy4r8_VWxZXXv#*dw+>8xurg1_9i9j`R^B#f=l&U$n%gZ`ob`b1hNN0`m>USQ3X5pmS&-i@6LsG*cH8yUT2xD$_qhGc1^<;Y&XAiM8iqHg0# z2*@flkV^@oh{oL)@*8yIHj`?`f!ak+(dwl;ojJFIq7Vl|hqS8V3f0^kZ+y2HrN^cH zjdR2t@| z_{)U{pHBPV^jXa$XW5GM9C5F2`8|fFtj^eEo>>a(=0CI?ibz5 z((eK`M3k<4{Pg%L>?TJE~RJ9tqie*C+Ekl_JwtK=?dM>Bj z+7}lh)f`%y#-mvF+m*Tk41fR15TW*~`qt^;C;u@M{2yOmGXLEk$E^HE$0?M;npFFV zNQLQ*iH)?ke;m>EUP@P7Lp5I7|L^CTrGl@oePmd~#PQ|ja%-Ekbwv%Zx>MRXiBci! zrOWMry9Br+^+0iA^$+N3f2PU^&sm#4mtsP-|KFU`F{AfOsNbm)VHt`n{>%Rr$gA)> z)4(~B8>06y=UON zK^hkoqw-H8AfW6y`1{>8MmnE6&c;N3{qvd#vT=U&BB{6&MoObf=125pU zt(LCtvuQK2bdmkrw<57cn?HY|MT-BtU*T z#By1PkltMV5s`JEbY1(EkZcdfsC9)I52N(y+rjp*{)0CQR89vCkHjsRm(6d^4~Tz$ zd!HjYZ^KUJgM8<4Ymt11UiU$%)`9ER$Go@bdJ)~rFAr1AXhsnAbFFTX!K6=b&uWS` z9aJ_+US#68kwUz}d^MQ5p+lW9Y8|3_ODn#KeI=xJc*3A{OhM%^6ESLBSSzP7p#Luy zM(5sqlSbq@Vo^ykUy`=q_yuG2jJt*num9x`kjNV=_G9XW6j`Z*^WWFI(X0u=4*`{{ zM78gi_1-7b*8;1x#`dbCucxYIsK3*OgjV>PG`}`bk!!q1O3~2P6}0}$ z$zXfLbOhv(!rRbLH+HR!`spDobt`9|17!3Ievzg8Cz!~nHkk;x_uM5*rutFkq)4nc z8vYG&X|$@IV*3<`_*AGn`ONvn)m@Hr*6(MyG=yy*0Z*LGF;ekQYv^zp6LT7?w$Hf-MUD)~>LWzb3|1An30DG~q2(RGKj*}iS>+x2#8sZxrz zsFtF`UTLc+s%noIZM9ZJYH#VXi=t?)v}TD>BUX^s9woL)B(Xw`NFqqc==c1-zjGWp zo^e0-eO>2u4imVr3$v_6she_Y9XnDTb#gT+x#NlUirzqo14)Ylz z*m)FJoVT42?Gk#oUlwBjvoR{WsGWUT>0efQXSQ22L?ZP?aN$~741aidRlVvk|A5|? zBQLekyQQ4x^`jfxiB6B!I!)`Rq_PIlnt`OxupkU+n2!|Ap491m-F{$AacXgayqOZs zD71efP;ZiZHuS$W&1ugsEZC!u-9Xyo?%NUSMn5#ZVzoPJG2`_(^nj+@dSmeWtjNKJ%}{Gw?VY`7=O(k$rk77XOq!o;|I7Dz3t&P)zSFR8 zFz!jtV`3DS9$l%1Mg%i%8kegYecp_)HFDyD>do~jRD|`ns6l{vsW%6;beTrox>wWC z6rO(h)s2~@6Y#L_l?FiDF3CEgFPHmquiW^WJ(xrq1@CD51dIqS3h2~fnD7+t+Cr=T z9IF_Wzu&XAyc|LZ*3@rMx2+;lnx;*^dI^B#A);OInN0o*Jgb&Bo6m>M&-yaCHyvYA z7LXLdE9g9q(+dG^es5QwK`o1&NPxX(wl8?KckYTFC#No75V`kTHIi zKft<>QJ}wvhn*m)5v%?S3EG<4)Yv&+$ldozr$*#pV!3O7Hn-7iHZ!)`Xc@90XJu5tAoP?$*Bxb$C<&813Yvibz#fCA3_|?H??J}OJyxFBw2D(jr07+Sz*J#B=4>S z>f*ykA38=25Hu<5suKWGye+CvFe+YQVTo1F)XrM$wFHT~RNF_58iLC!WU@0bGV2r% zej5Q_=wC`PW?P3RymwisVrLB4NJa-n<1nS zR#R_glfMsUT(XjD5N;A$uJPbq8`(~bt3-vjsUDra9hvWz7zQk#hUxR6Zf>oN)>Uon z-s-YVRuU|DCx~<1Z^&vqd&?=uGvcFz&XI*AB0BVG=(+eg8`KD=C$P0C=|xi-Xl{1k zx3iA?z>_JJxa&*fqMM5wei2kj>%A}^2kP}!%V6LDZ20=s%LeXIw?#ih+?`F~VmE7R zr}(nEL!hJno_@_0Z)f#Q;Gd{nZez-hS z)f`9qwJwABSPOd}N%=+!9&65xq)wL!nzNo!pf9eV!iy?)O(qic$GWHDF42bS-3|i% zRUSHM#Rs18#Iy0%?~smOs{sSrfP?yPP8GU+T_LP^rOPauc!ZXl9rJmPVxs`FP0A;k zcw+p$#G@ENk|Xf2R!u0FCveg^yw2mp@mON~DM}eoV1ra7wxyjkQ)AKRirDfqL4Vp8 zXQHmI@lK^34;SM+csHL7WPb z5@EN>YqD84%AhWmgDFq5XiKx%(~1~q7p9-9o>$PpeCOyC-v8C^;9~lsUEk$N$ZEG& z2(lM+h6C{xY9kQJ4$mm`v(=A1*lYsHP1x9ob_Gdzt6FOM@RrGoz@VXWU7eiBY{Z!k zgd!LNqj=td`hOwmc#{pvZ)&V;=dXqO@#imP%|^X-Cr@sh1qQ11-{z870#mUut^CE# zp29dpYHheWr^_gaw{!PE3VW?h6#Fw@B5l`-E|FMaZxn*Q*n~p4+x@rNdSgY0D~}w} z6=n@~;1qh}l%bc8|DJJcKxOY34y61Hws^_6nhv&Px%|QCfyxI2m=+MHOym&KZKE#s@1X!1OXlwT}v{ z3)k5>#$CDbm#?s^jMo6qkz6T5MrowjG_(BYmnPmA1s8>m=9LZ9X#Dg6jzOASmQ!;$ zxT|d(^TryA=Yj7C5aLYj4%00llcSe0jW1@UGK90_G*_ltF17(%CMa*%_%}Sv zyaZLZUO1`60n&LLS+N%MbFrcGIn%H@Px|fqWlRe_#(4nJ59gN82jtzOnoOMfDgxL2 z**f8Vk{L??G^wZ{qGU_L)YRIFS%SJ^u)JO~CKOgFRyE(&;Ni4W}}mLmQ|g zN^=T-H>bnartF&oXx3i$#pCc(Yx*x+d?h@#z8Xn9C-Ii4o6}Bn_rKRpB=r<}Z*}rh zouwmuo{oZ9HTl4H+P@ir`L(+AQ3mZK2?=ZlFuo*?{`{YaTMfTdpep~N?%Dd^3Hw6r zA!ZzI{t9UqLz#rLRbTt?o^9!mNaXq2Ihe&M59XO~D2>iHhd1PpZO-7-5;W9rAo)kV zsEOL(;HLrk$83dFv!AKdupceEKket5`dhz?QfN6&ATOia(ss5WXW~|H zAAUP7tAk(eWi1n%0NQf*^&lK(U%M*bFCzbm?F?dbq3-fT@$~jOKmUwFaao;vdcR9c zDg`@Ww%2V^f(y;+i!noR z5z%|N=O9~KbN3@fB*RfCTPpW@^t)C!@zEmXigzxR%467L@@&B9>|Z!@{E)6$-GyH#&a zW3w{Qj*D9U&iHZ{xEIS| z*+jlt(+UyvEl0KfJB3X|-z|5+WrhVZV^DF>xz^fjJnxEJUuDyUw>7bZCpo5`l;ViQTQdcVVu$vE{Eto z=qaYOk6LE{xxZ~rhrVX@Osg_+ACE#$<#~*Ios=C~UVJUed}jJ&wdMJnYbe4!2E_u( zaNBC9av2;sU5eT~Gf`0yWfzbbE~qlJR4GB4$8}2H-sMwq1=(`pKQ9X=N!Sgn>SRS) zH*8|>@kU3hvzS3jK8)KY3@E!7f8gJWAy82@NOj|IZd zI(cNPOemboME*N~QOX|V)o^_g3o5PI51pkliN^;?+ooy(sVDK~_%d&}aGmH9+bqio zE;#;9ntGtl+O^d{v|qv?mOgQ zdUsizDH(e@bY)!GHq~)+|Rw6Q4101AfQqic~EenHhmd>ajA?yXdm+vzv5px z21UWo;=0d$_B>HRK|LYWk#)eO4+B+_UL2~*svykleWM6M^JSoYxpeGQPT}u$)iVUV zxXoN^Q)B$%6QQ%Y{~G<+pUi>(S5jOid5rZew3>3IleF%=CIEgF>iCy007ysHb+92% zE$I~%A=Glf8)+sO=a`|!VaB>>-fW}a5X#zh-fr>OktavKR5coAS(pkbnPqtG4!|R& zTpM&BhbrI`7EtnF@X0WKe%u;h`S)+j-e~>_%LQ-bNQ|^~E7>?++dBIt$0m42c^!J2q9))VB@GqTCUquP?o@>lG=&U4 zz6kRJ!`iuUW&bEKT5>HujydR+ zIQ6AD_UaHHzHbxrToKvs4!BnzY6ZulcW%AYkS-J}%4|T-G*m)XBRBiDF9(Q+F}n6S z4XLXw_boQ;b#0pA3kS-uz?s{N)a$~LOH-85kroR&yUbC;>t{erD`1}PE(Xb^2j-_P zpc^LxindBx+#qp{b@!{l-?w`gEm$T${mdX|Z5z?ow~K?502D0fn^=Z-lyyo74>PTo ze*rh1(wawP6LG-6JNWBifM_j9kTRYKE{tig+|pgBIBMQYo3qw9(W3fUxB6_YsZ`1} zCcFyQ1iHGOGA~q9!OhmH)O0#GDQSYkD+-y&4>oG~b8$=5h4w6pZ~qm#*13Im7UcY} z1K>4+_hlo5o!22-mFD0M&FMH8IU8@<>@gqg*`dT60ylzi`{XT$-(KO%$EsEPvzB3- zsHdI{2wL(C*vU|Fuu?BL7cuLcxHlf)u^Eu$>YFHdLgLLqJFFz;aD8gK~sK@5&)1+TCE z#BR5j90z<1yVqMb${?V0fzb5l8+%a^@IUI6;Llakr=7tj5$C2;9ZW+#LuDpvBCDx@ehJ_)o(!)_ zDe(+@+X;`n?pYF=Z}kg9AS98fwu03mx?o72zVcqgQbVRb5d)Nnn-pOE3Ds+SRkXiA zI{2{?qE;O~L+lltKk5E6%%<)*Yw$k0{d=a%_NR;*a+wplhGK)F^38@ox}l1%rL$TN zrqxdgUq$;$%u-;R->LQrU*SF>eo$MZIs`@adYQjO)S_e-pc7YG&}#B6AbJV*KHG|* zNpaBaR6=FjUaC)&Q=_R0i@<3&44-G4d=c1`ufDA?xem9g72PcZRNb7gAz4x+KsO>S z0|o7J1@`!F!@z@KFVXjXUtR_Z;sELk$xf$$sngwyo~>fy9lx~6K#YZ$x%6stN(tO} zo}~*F|G-rE)mXc?&bX9wrnPKzGJVUsIcX z0Yk5%X-J2F-80YxqsyH^u&|-(09P2 zduI5^0Jl=#=G+0^Zk#@I{(cfU6ydMSr9lemk=))HW!SOR#*@BYHT}Wzy=TmHO<8^C zr9?Ph$%y$%e!JjtpXrUU3Yp@xWiv%x!}GHHw(f1m4U`~Zx+NgUO!ry^YNic$tBMjB zPVrJuWf%=U!aq$=l`!ZWrkZ}SEeg>yZlo>xwmu214vMW~5@=?u^LGB@Mm**uO)`rq(M6 zZ(J>ti=1Saj-x^)qwDe1(|0TlKS!W#X6t5CMGSN_)Fms!++$UM?NFp(9EH~kFOF_a zLCx$R_^I2*SfB8JQyOX%i&9Uhm;^=vkJ#%E~tRBj|8)i2Pt{REua3Pn6i2~*K;VNFe zp2y(GJzGf?MeARlqlOUCR2RG&U2d{zDSBy7G6*-EfFnv16B+QZD!fz+@F8Y#vnx-? z&_!*gYB2Pvk6O0?s|=wR_N5uUL){*DEj2iMt;C#Z{KuZHh|Sgv(-n8Fcq*aPX0?0E zMj^ZBVS7Wr>dIbJ#(~}%o>>-*SPBjx*klU_EF?s&U%BteU?RuWWuSMi9tUM)?;3q2I)$^ zFo;JmJrkW`s8CWcxx{ogbyU|mL$_~{+VW}nc_c{{_if;!?aM#8kt8oK=P0V{W*IOp zyH7CPdYV>*tq7h~*ok1FwV z)N8zvePZw)cdh-Yft<9G+aH7yu_#8^lnC{TNY1d|jT|_rVoP4NhAHf7w(x)UqMeHW zT@$F94%;aB)#S>?Q;S>Bqx>vO~sNI~yJ8QPuhR{iO^;ntNuF2zP?bNJI%fRu*g zmemT49JXA!XuUCa>A0;RJxbnQkqQRx>1~=2ehXT;2g;euJiys-#`H&{$e- zEm-pxNp}j%-LdEgR#96sCXro&f^7(qhRx>7SAn+MpXyV-e6H98l7sXF%+tE2(;w>k zn?XP_9L%nlTFQWY-EsvwLo%fCsqZal7|L(`*6p|UABJjnU4g4|h*dES9^~JQ+Oal5kVy;$msp>H0fW@6>&B0VRwB~xkzyU9=h^)Xc~?1n$i7X% zz0?@^e0i1A5?gK2P@&3JtyRk;8P){6!Ri;f9?yfUzYzwY0cHcp*@yk8WmD9J4VkZsK6G=-3T&CPLjbxErsEO?in_2Ta#c{*xd6l^P&dXd1U}W3)mlD z$k+NBf7*xnZ&_>qRuRxZ0gOp0HbUWHR{yKjf_TGCOKx`b`7;_kQKTQ>T%|B^TWyH< zJqQ+Il@2db+{WQC=o!P28malNknP0ATvu zn(T5p*OmMyPQ40>*o;%kNbtLBZ2|AqRzf9BBd7A z=8y%u{g4p&kLjCxj7)cbIn=%w<85lF^wna1_W|Er;YeY2~Z56r$TsP-Jj!j zv`Nn;J3NbrDfn@2_T$y#K(lL8hFpS`iDO}{sEUYqmbuC}l^uunx+-J1Cw?A|b$G1Z z7ZPZ0<+Ge7OcEx#^d|T++lWOR3l)-^s(dZLnzI*%LSIq<-RCtXPpSB7Q*+vtfYb}*9U2aie2pHy#Y?{BgkTY(;P zY+NQlS4Z9}N=dd#s+_)iW#_1-25hsDu={Pq=+YJzSW>kU-{FOv1)U!^su9R3*{_=e z+GEOT%L}A4m|1uh@caJw6z)HnP-!BGqIR|nw(`H5CI_<7Q9xZ?m2>boIrKTyYVTf^ zTr+uaP&^j<2y{$_{~(P0BdrubosFB)z_Ui|Aq21d+vvtj<8oPF(%u=)DibMT7XB$E zS$j+-`%c_aN@iU_=!IvGy@qGpe?>X3nTsTiUDI7OmuT^J)Ztz>&husj!$ec-}}n1stGCgFK;%z0lCNbF2nY_RV$>!hLY7(n9Tw zPVXjmI79ombaRp#&<>u$B^aj7F2U}@+tHx@f(s=Uv28;N=N4g>@cn)l9;-YRKkyvb z0P5R;%!<7?+I3ZHFUpdailW?y@Z{b$jYl_5!PC$0Y8$R_ciTD3h5x0kA*lDQ;|R+9MhX zZq}AJmRy@k8-%gD`3J_8q(cW=V6#a~fM0ocr!uPVo&;4nZ$tI?$z4#UP*Z*Kk>^eF=pX{>rbVtJ z`phZ&Zl6l7f^o?dcqs2Qh47aznQ{NRD|gms)%KYkCuWPhmku;Aub9m8#-jqt7Sa|~ zJ3PhwB}qN&enks1tt{}W^DOqF-d1RhD-bB#snc5}|DE=*&S~~uwwF(nyS__Cqa0U0 zTS2_*-CpFO0OH9B#el(T#r~xv@{^i+mq@dzCVD>SgzFGI6k%-NUA^iMalrn&yr99U z$+^a6J@ZOdn@wxu_&EjLK5-T--{wgE(QToOIXi93U87ADIMbux(6L$cxhHpeZs)G( zAjNtlE{@AiZ|8|1@lAe1hgz=(f0L5Q5m`w#`@Yb+al%!8wGrNjt7wMDZ6Hjwm>S43 z??B511q&xoe@lCw)J4^x6(Gj#gi`6ct#T2!A*w5{*os3f)(A_l}^)VIdzWWvod? ziMZAKtZXn_yEd${{lO@zdGZER^7klVM$rW}D6tvkc&bS7=g*2A224s#ct5Z$=MXz} zTVK3xywm|KG=VxE9Uh!aeDFh`FidOHwSb?Je_B;t*nt1GI(WG*Fj!g2st4g(+qO1ZtKm{4;?aau%;BDugc~wH7td?wF2_e`kFHs{ zE2UyX#-<-M(5Akg9Ig(IRQP#r{n!Dj$EI6X}luQ>Qfc8$@}dL3056J8bV)O zkovZ_zbM zF=J$3Zn!HR^ySCF0BTIPa}M)b?KIgg7}BhSwS{G`}W`4RJOFR0A5GjO&~q;`c0o8 zcC%j7saf~ZV&8r3{qm5g0nZXxT~#SB^@8u)nweyJ{+%9wtTN@!n&=Bs!m|nOJ2gPS z*SRSpu>AKYAB5m>^o00(F4c3SwbNNGfRL6a5Xl)LNCY=f z#yu`)`+;m3pVZRTn?t_UYrf~8#ROa5&YP=w7-TSVnF+;kZW&m_HqA%c#KU%r6o5_@NAH3A;u{`J ze_aa1wgvVczs6?klfs$JLN5k2?uDsDB?DBa%xcpOdsg+raj1W{XhUg{qa&)Q@%rgs zn1JLPZB5l0ZK2W)Z0=fXmTlStx*>+@gKt3re19S<(Y#@_em#;gq$vKmp~%aYs-bfT zlF&0=Y--?Ox3q#&ak-l|r~%ASELM;?Rp3mBw?UBeN0&qAtS z(u6nKuGS=*+8caXfs`e$iw)npBSq%p?`gBVKe8Qpne1JU4y_*-`8}$Q35~V+a~t76 zf06L9ja<4M*m>0A%;b!29$cLN01dlA2}U}o^d>4w*M7E-GB{ZySS=QMrA_z_OKdLh z77iSTvRC?~Mm?)L|vNK(s3wQ_OsuWWa_hxE!@MjyL|7rMTGK#gXed*ChNg* zSFQ^c$Bg#b$evdWTSjP;ePFFq%JVoX06iu9@V|38O8IKXAEV?W={HRD9k?BQ{=oK- zljKp(0hO7Cv4A$+DGz|hv!rY%5EeKLX{gEEmxtG_PTwRJ9Scc~v5xgl&TA?^WADUD zqtv7G)IG=bW5cVpKk6?A*#-1En3t)O%C}WppGr7em!`QSXaMv`me|9zNJ9%6AqkQF zu3xS}T+qW3)vPX?`m^FQ+#M0klWG;sOj@{hx#>ac_Y~c2w~G`X9Xu+?S(d)i0gDZD zOqCSSuUb3N75dQOPVC6iR%<}DNISQ1hy2Mavn494Wayk}d8fcD-|>s@1t~nCRg152 zyUwG3{Ee+JvFepn2xL7Fa-OKd{S7T=2Gl(Qi|6O8=e3XME$ASjIdvjp2%FA>v3&vJY!hLF8`-z9@iv!+R5l7 z!)c};sKkkT!Ib`$B zDD@nHlNQhY-3I4oW4uNQnAzVz=^M?t_8j$|sL-0TtM-fCT&2IUliU+Ou`543So7Nd z>F%8`-eL{^8wP|&seFYzmFapD8PB-7mqU$G2>>Jy68C-gz?im2R!!qRl7pBTRMh4u z7s4N&lc@zZH#oB#z6CHkE0bWS)Vzy0*Pnd@4Oil|YTO`V0^@`)sc!%9&eb|IzRq6Vd~%0CXM zo~(e_&)yv|IC%TbH2Fl~EQbD6DUiZqY7KK&3ZewAGp5USM`*JSvk&(VAQfse9^A_< z>z_-X^&k7bNTUq3btm+te!kv`)gIR!sr;kmE{@D$ffvPKafTcFZCwr1Q@Qn&i*Gc{ zE@VDC@Z8^t*IdZTTr{bR>9tRTsHP9+hufXztxIopqI~ClZ}}Uc#etF43IYDpFg=9& zV?Q=wQ>v*hS`l^exs0>2`P=+Yd>1N1ld|4NUE`c?N0`6SN-~iD=I~GHnry($9(CPE z8;i+r*Aw=|%q9g!72C0B?^-bktbU1;G#RUXCS|(V-}xFVd_G0=w$rSads9~3v=2AVUd0mU{+U9HoXUwT2KS2(^q(q8iKvwdZJPak@j3a-4XyNgtq|(+*fQXZ0>*ex47J8H*4u zx!G_c4R7yxT1%cBClNrI27CcjdRbcY3Zz8sd&KK>3J(E&)|~21_36{ndw%Vdkvw{w zT|B*__oN?17r7ko-y=PUvNA}%-7S0D1iC1NIMT+z#dv{WnAG3)m*V?Rx1+phLTQ5x4O2T~`&Yc71-Pq}qfvmuCX(VRid z^U*Jo!DQ!`LCasKFdihj*uc6Ra&_XSf#WH4hXiqUWx6bG=LUG%W zO=S|(#x}3kD)3K?y(1~13zXlebZg{dv;dH=nceU$YR@FTKk4Po z3^VljSgrCm=sY^vtue+br8S<}S5*L#bhh*0FSPT_w4s6ooi%+v13Cal8nU7J)B9TN z@}A37f#64S?S)nIcg>BFFw$gBOYv0Ug6C7l^QNW;Q7d^{JxRQQ?FBUK1m}8<$-#*o ztca&->H|b8K@QmNei$;_QFoF^t~DV@%m2&ZVD0;>P$OugbnV5wMQ7qN~Nhd;&Fg=MNN~b;Zi6SB2HTkekjj zY&2u2yeU;L9bAQ8Zmn+3S=$8bo`ws6Ng?Z9TWgXtf7+e%+?n>H!pG5|Td%jPq|DGU zBF-9=o6-n>ZUQyJvuMrMc4UTMkgzs=OT69qSBX|&Pf*Pxp*!o-LPD|80bIppNs5Mo zdq-qn4;ffr!E_aCMGq5rYrH>1ymHzUOy${1O2%#Mn2Kx5E27JC>>B|85Y@pJA3Rtx z5YkM8#i*FNn>h&r!|qck2=t1Rq8@}107-JtM+)turjy@xiyp0WgdRjskk80e* zRj=C&!wJ324B4nm^HtndctpzManAX#Ar`|YI_hN-id3srT(*ZQ7lu=yYR2w%Rm# zU&vO_LcqLGeAhO?VNXGqF%bZP#l5Tu!$f1;bxx^oUSS+AtNuru@tjLO$SM2|0Af`t zr4)q)ME#%G`IYF_+oiK=RM@kaTQ!P)nh*SLZpf$6r4fQCvBh~X43oh zi>Wbs*B#T4`3RcmoRYR0-5c*{;zv|PJZ{RUw88h~o{Tn98Wx5PG8xv!j&xr%WC=%xmQ|T^PK+Vw(b)+tRMfdleaG86i(2 z?Y^VsXXApSBlPFw13m!!=i41)4?3kAmMsn+@q=X2lzw0m!Yn&0A+??o$7-7W&rhN} z3y4;WSL2RKrx_lRK>g8GZDUEzM>|QFCA37Ycg9iOzK;{_OVruO#$$z&W^E4NxX!v8 zm602iy`ui2d~t?lVl1GSf}0>Y8xQl(Ou3I0HP8<&BPvVmp*T1Y>eYK<8 z8C@-xvl~Jm#(e8j(zc$HxAE&85bdb_f=A3Bk)@Y*EBy!uY->nIBd*b><2Flhsr6aT z4;5ERgl^$YT&wtn@Qy5TXiLmTB__>PRm-0#2I>NWBx=Bs{Q9|BP)NPA zEj&dL6WV6{z3l8n)ozd8cs%mPxs|^BGuLfOAM=Z5dLP;g@#d)zL()4XBxotoMSuC;!GAUg5D7mn zoBQ;L4~JYAnJa&b&UI@BtOX(*SUI$OqRwS}2QH|w)aOCQ^TXk3{yoH_bB#|;vT)&} zVbzEgp1bzqBLU}0dvIW=^uD}0$;IiEONYzx$xF%W-Og%s)uaRMOQHb^kYlpvp9}}B z9P4T8)MH`iN&JS;dF(4d*r$|SlI%FU#*_QxxcWuHG4tY_>_kMx4nc@DoVm@ z`7)ywo2Rkd9N){8x$nW7H$MLR^<~I*RkhO;hhI2)fp#T*F0s;8|JA4B`nr61yV3(G zd9M$aX(OH{e4hTeI4A=%Th04erfD8{6{qEu4&B%$0l4`;us#Nxl(Jv-rC>_(=#1l< zDmXT8E?m55@l{SjT30%Y;!s-6IZ0P+D*!mXk@WBdmz0VxA7Q+KEWzPt=CNkiZoP_L zeC?$Bxh%qNqW*R<=P1jlfTd=FzI^Fhi4X-~*}U5EXPowbzwmu0Pw+?nF_LUACOQ8i z!fuP_B!9m>eK;?)FESU_>k<}g%`xXfS-530+*As+T83!*PMA2JnSZ}A3vq&Xfn`Yn z9cn$`ot=R1JKR`>Q*L~`*|Ti-y6*|!0rhH$@dy+8wDpAS1Vx1^0I_B2+vr0&h0;#G z^WHM*<@@$STz-0+VAe5BIaM}CdLt|$3BdlRu?v!CogVnOYel*LK8hVcrkT-gZC!yx z^BbzA&lNT=yUlo&%*K&dJ_{NC@(UB3u)1fQVPq8^CHdvi`-nWVu&+s4bEm%7@^%E2s zcvjzG*}cC%@B4o`AsR!zL^ame1+y#brnKd^-xO-1ZNiakBdNM%1C6H=hQG}2QtUKc zl3Fbnq!T(9WaB9+@6gbi)e+peGrm7pqmLbNzydq3IiAWH`s3HUb%kUyXx)yh-{Db) zK&Q-LbI^aXI)e6{DjLmXhK9?6kKkm}eWfFY#t$?p1Hscg>1pM4Ut|c*$i*_z`#9`K zx@3Ba{u07+?0ZRjdy0L+u&Js&<@=y`njz+w`Ha;0Bgu!toGN#-=Ea2~^cKYxE=_8; zEB_%oWv-RR&B8;1&7C9$Zj=JiJeaSK>Yo)K+U)k68klO2FRmuO%vS3NH_74;TsU7~ z44YG`9iQz!sVO4?mhE+ZKh6j234?*{BSw0SW2UI@t^gw)m2D( zGvH>Mb`$+xIyT79)D_!5MnIUQqi^p9lqp>N7-kF(wt)^%msH_#`A1tPu1s*8io4-w zQ$w{b9eIw-zbwMLuuFA1*_#+8>gj6_*qDI$m5&x*0XI=M+-@7CZxyQdiMSXuxJNp} zuJ5mV31>Cb{w(}eYt~|3qq}Uw?9kSV z#7-${B`v9fgPHGpSALaYn9;zgUf#?jws?g3VCcuY47w2ihG6GKe{Xi+JN@Nu%e^`r z(Q%Vw{R<4(Iqk;3S3i_*J`+^l6Y8a{p6#oZ$5(zwl4oXqKX`bm_D-UA>j9L#t;b@i zMwJhHzO=_hz^g#xI*enLD#y*^5zgBY?uy+L_&0Urgs*dTal~WVA@Y*MAzF2(l7v^w z$MjC+soP!%&*-B+pA9xqdLM<`j`3HoN*o`rtb|thw39A}4wcS$rV0wvZ``^`t{XNg z->>)V_V*zvqFYm*IcdNpB=S#cMVp^3_E-Xrs^Pfij zP4|ZO(P!^pb;=lt$fjZ)$RE9_()HW$=rPWbjX%YM|7mUeU@LblKHBn(Lkea>z@3ll zag7~NpLM`8{^EJGiaUR=CPPm*HM1> zVy3Llp)kk7-C)|eLh**rCHCuK3xm8={@CYoem6h-Y3|clDWy%DA~^=Moxgl>UlYw} zsEp`_JRij?!c&r-Z28)`LkFQs$!{ki)R%T|;PL-tD zjgB*qKq0@6{fMqA2V!s9FbOJRZHk-Nt}Oh8u5`kEXys`>{>`}`yN|=3HIqa`u$@yz zfEZ>y&&4vEcT=33S1}MR^-Q%h|7I^OA@GILx*1@=^Vv7!l(VNgIutPfw1F=NG{BGX z1XfiW@^6pul<pY5C0SmjEK^I>$4los6=`4(MmOr2} zky`F^VEBiuETXJR_U9;g^@LBv85;5tjdMK1rQz<1D7-FvH+&tWzbKQNT975G__|?-{K&bw5qcs-(FZwV{}YM zX-;pdI7txMkH+VrjegGJiC%j>zv%gSE#{J4PGTLZ<8~YnExP?{b%g*UmT23#Z`z7} z|K|GO*9bjND4jy_FXEX;=NZnp;!U)-|JLoK7zj=0OJWtJ3x#|7l zJR6`rwL|L1ytU2fx3nUk^%_q}Sv9GWJnM1>8aGheL z&82rrOr{yE2@BlR;FLGZ`FoFTk8i0W^$5$Q#)BpaJ-Q) zTyu|6z}Z{{D;-xBnM*!R;{Q(T&6^3a z4$O5Ig{35M#6x&8QyGt9Uxc2u1#F)NY=*;lPNxvly8pJJc* z`Ok-Rb}nDx(I1uWgU5UJ|MEGTXBiKQd?#`W#JkrcyD`8pRM>C*OcA4W zKMxI*hBLOpr5?D*2?y3V+w7B^_h0dmoTcfdJB#bz6RJ2`$eEkY;08 zhZp`h_@KSk0~gSdH~UGo_u&X`-VdRQ`>gOl_iuM0Ps?YV``Av-M>7C`v#y?zOSjj= z;#!L`#Q>oof;UYl?c^4pkQOu2-sA6M158VBFzRe*=>I%D=3>#C0ufdu7O6ngTMm=LV&NJZu4w5=`1ugf4N1gCvz@uYuGc30FnR$Qm`_{F-G z?E5W=-eqS!&VMwTj=|m0wpIYm?WPy6`bOB%hpUTO{+;7!;%c_j5UyWk;q_LT^~#YE zw-%4PqpSuvO>K3eCs6j0^O_$iQUeNgdDO;T9Qr?w&cl(-_V40a-Gge2mZGgyRnn?G zpDv?{+MBAPq@nhVJYCc-iq@>!Bh-wDB&}JyR#FLxy(1DMA>(=P-|H`kjQhI2=X=ii zw1Kupf!V(`60DgF=Zl>+(OO1M_(j_>V8iOR%&Bp4d0N4HZF%1)ovl`!?d{UZrvBPp zMt~sePubR0RuOBWfMz*2gr%M0C=@rwJ|0n~?jQF)=SzpPE?1PAA8!UYV8xr$S+`jyD%lP2*wBaOYYiurhGFF z_xB&{Ow%t|8`aC<9>I24HBP%**41ac+SO111cqO-+umv1+w%V`Jjm%isrmQ!+2Rre{h%pfT3j@IUYn80_?wNq+2+A zvRe`noXRfe`YGt{1~$7$j?`+SCgGB8*d$SqzZNLBhneF?v#!{khINFbt}fe-ZN6G2 z0N?hGrC=7(k%_V4iX@wbX4O6|0Ld_%5$h$?b@wXT(PZ?TV?Q=da~D0BnNu+>YJ6jn zi2RaSZNAFAST~V~j~17{T4&A2&_l7visZfQ?=(RYcK+qgw7dR+V|C1t-ayj$MJ*wxgXOR>#lutU3!7&ffUhoJm?7A*p!jvrv&L zLE>i`TehGhG?}cR^PCGWlq3(+(oXyyinP_19gcoMz))QWre`akOKvReIQvECthoUN zz{eApM}@6%ubypD65TmhNwQgbKOQ>O4F+asdutx62rV;yodh`@y%zj{g`@tuJnbC% zu`QA&Y|}`V25Ca2bl20!{)G^azid;4? zGEG70Ycik_jwa^@bq^$8&>g7I6o%+xO?o>5`!Y^wbM~4U3XQ$FPz}fQzot1PttwHt zphZVj|0#oj)b|@oELD!rzU1IQ@F-kC8z|8oDkb6MbF>m*4b|U0!uAl0pB{OhHlEhC zs&7g4&?f@1!ik157sp>0HuY9TLzanb@NxSVep!O6M5rHmzh$+#c_9P&IO9e;VV&b^ zN8^u$_es@=i+*wB+Ox3?JV2gL@6x@>j12Wx&1sdlpEZIMip`3 zlh4f>oE>`4Z<-M8Qc@dsxi_61f2l^m-ZnZ`?VK|`_%QB$*NBUF$#Zj=d(;6(urjxs zA`rR-&O2AsaUm#}%2K23xZ6aObWxa=dHwCd!fBOGrP_hfOy}gDskecSK&lNo0fuFd zZD|izb)S8inH@pWg!bl3mlL|&By)6h?*c*(MySAh78z_Q&ANZrrB33*hIDuv(VX>L ztgXi^=e1@00MqUJ6xjzM5{$;?9r?R2&AoEw-HzCLGk`GHU3InP%n@x%3l`U2GXM_i z6QfXms_b+FmlwhIS&FMNkuICG;{u{JSBr^vo5%74B;3jBwo%Cs?iuqY#0XnSp(F)( z3UO%?EtcH5$K7>5H3ftT7>ed?1$Wo?&x@jrPr6Ic#|B*)d9m^c)}RT^w?ulVVGmf# zEPd6+Pcsk_ZRDhvVZ!D>I8=IKK^5+k#9DFn1-wMwdaVYYrD52|_2b&6guINdaU8y4 zsbnB0`iVQ^mEMdiO9i~iDRtKi9GniCbcAyCv2Qk)#%p1-;-kk8Oh^-79s}9Y350|X z0G&L`K`O0gJHt6K z6q$GZ#vC@KpUjr%{NgtUzvjM2Oz?Ks;*O$_mj_>0aK2QDy{@`Bz8^v@ZT-{*sqoSK z9_}{HJ-E)%Ww6G9T1#)hR)$^xLIM?ja?_aI;1EJkzIeRzgI1+qOO?LsJ!SpzCAZRC zCc`b(4A%n&3ObNETNSzcI^^}=7`tut-f0vjKf!h>e0dLos}S8te3(j^WSg{BuSVaY zEf!<95}ejOA?lQeZ-Z=Zc4QE_Ltx;>Ie9I7$4$Hk>k$N)wftjgcUBXvPwY&K%QLX8 z$nAl&qejnw8eB-rk1M`|!6Uh|G&R509-Wu{S<~qb>+n{}z5s#Qyxbm-_6!uFevH=pCNc`h(ka0l}@K-aIdk|s~je}@bSUI6LV$__OGnt zC-))P&Y_4bl`)xjWj?y+3|Lpw=8Zk#)LqkLI99y>V@;d-Geb^B@=-AE*Vze7nBY^I&SnKrk9p4CVd}5Lua}DO`Izek9ZNTeT)bca zt35Tm7L<-=6E-m-OiP1=&IqrB-HOpjhyY=LB^=(Xe8fe&SeB|?C^vg@0~c{z|5 zlmd-_gyJ7n46@zF$nCoFsL>t!UPP0wV_%sMO58qVXTIe5itf$Wj&#-9a4^rfZjaPW z+V!5MoTRDH9-2)|6IcezDG3kt{X{aZY?``>{pD-7=$KA~cz}5gxx(0GvEubk9s6y7`4GmdMn zsF^glm8s|T(C|4x9c$|;pD&%VO|uL0Jdn5Z+w?8I{~yoVx2e8iF5WdG&^acqZ17^f z$3VRxZ-&wAKuqd z)2?FNZ)?1`%&tnU`|Lt&v;fnzlgVp2i>{2Yc?pLNwnXI7gghVP1bc;<^nPP+=~H7Z z5|Ltn(@%5ry~g6;7?oqZv~TYXpKjfi8Li$);x%h-L#0@ZgQ(BW)G!nEyJ$nvdtl>@ zH0PncE!TeS`f@UH^pW#P>?vHRg{c-P8t|m4T z9iRK&JnD1}B!A^kY?;CYTA_+<=&Q^syq*H`ajdM_+fNW*s$A3MgP55amk2zmy=LRB zDJK@Tn!Q%jR3*^>;B>=Bo&Mv2cki+dB0Q2hLq%RyD=xk)VbvjiTlZKTAESK_LS!yR zzFZd@R;MY(P&|av6>{qyfT*Y0eS`0kb*fHnn~v>FYs^pHMR6(S(TsHhn%AO*6;h2C z4jsVJZk!QK`}UfLQQF}?3x8~MZVk?AVccugevyyV`B>u(_`@PZ9x&>nn#~{(MAqDE z!o7ykqUL&ZiWe|ct5`0jaMJ(2BafC(5g$Ol`(&vev>KE+?I-x77T3tZ(B73M9Q#52 z7A9kMvQ{xzkNG7$(k)(Pza*V0EPJSd;`H3xa#d40o-|d%0(Rkbx3^Vk1v#w7!2ag` z&6U7Dfe-UVMxlfQ@S0uYcudK+4)GlEl0cb+<|Qw?tlud>4Lw&zZ<=C%Af6+Gt!jTA z$IIPsBWL*}n{MDuLd&NdH?|f(B=tE+oxtm>H&>@^Z!79j)tFc(+*nNbZWSLmmG&@_T8Pk=nk2Sul7=*#!zo4`G zgPKui>tF=)ye3~0Sqkp=tm=JE*c1_V>em)G)uW2wvYMq<>lLh2d8_vn<^R*f4Q%Ii z_xlsIaJc)J-(vEkzg5eRxNsWVI>|3ucduY;_8r$=UKVPNz*KzwvHDz2R?l-^aDwXx zj2TT#9QNb4af8?~3q+>qZ^&1N%}aWVpS_AScZvB;LJ0U;D)CxSTW40s^xm9@uu$kJci|BZv*^Y>C-GAv*Z5!o2arG`EGbe0C0i8faIiBq za}7DMn`5ug1a5^YTO(HCJ$!;f%nm#c{0cvYjS$&2}2d%oWPIGKoG87byK zwXxe?ayX!OjP6By6AomdAuHh*&ku%&i!Dx*H|I^_u$+P{s&#+(9I7?nzE)vBf#DD2 z4zLG;ueXL(D3rX2qcM$brkQN z(>h$Cl8E`@7nK)Zm@{ah_-oX+2Eb}-a|0MXqqxkg> zhn+e?zi0gBN7en`Q?+`X#dw2R$4IS@P0of6gRc()s(ZnR#TKVGy;o}V9Jav^h-M@; zMtBi?48ysVH;A_E#%H7RV@ubgpAZsNDHr-Gg&M*d#)bH);ll7KZ>#|QnXZhTW{%(R)FSA2>F8t5(XiL!KZGCq@S~G`T#w=sti;?%DL(KeZH` zX93Q;zsa4wtgz^p#f0{(Tkn8`*ITXId%U1GJGUi`F%OdYMGbJRv+8V3#@&KjQj4+> z$NFZXeOarwVCt^-F2wj@BNjQjYivDT*8Tgb)2HYl%b)Ja6Cq=rp%z_7vS`E2UN5Gv z=k?9M%LN#mVe_48BncXCZ{;MXQtq(xy@md-?$g_X%eilTw%5EI>ATod)4xJ5BBA<2 zb~I&BY9o835mpauTP$rHW-Y0@O&wM;)E`bg!7h}b!g*lOI;tQolw1iU{)!T zrrBSHtQ{I}L6+h&#;CznOG_g~{8Yn@SJN_2HavWA?|#4@_m8hw*0|`w_cLTbuhh4(LBI&z+s(`}3!6}=y z4hU|SwQ-k(EKR}GSxikw(_iUxocqI20Neg}C4mkTwAp4CkWiJBO&`&mVGY`u1bV?N z_vTueMA%nhy&0Iwqu`XRz;WYnI&}D}Hw+rc7^{W5%5I;#<)->-ze25uy~6kt&x8z6QI7x*O;2RQ4+A=y)ZHH3|egXgQ{014+&eDns|VuUgAwT`753 zG@xvWY>V{9PL`xC$^fkxXFI5@-ArJpie-EnXN`d7cR^3KWu2R@SZeA~D*z(W6I+Vh zHfVpTH2Z=YnaH$BO-+f+yq2>(+~++eKZFgaFLnIl>;mi=*m|U@*CZ51RgK~8BP^1Y z#J}lTQCtA?k!g-uRO@}Z@7Ey5R;kRo{ZdynQEwOlu?HF*4o_R%7uMq0uUI{uk}96W zJF8&)zxUUnBz6FXw2I34%qmbZIXeb~LN(9A*;a-y0bT9B^1bM=7n8R2=}{|dH}&#` zZ6p3&biLC&OowJe$RL`PTITZN$!!Sycr0v~ZGEAga{8&!mz)vC_oycLx$VMgrui&1 z1qD{s%_#IcP1Nh%*6-hc>L5ohn;Z+|O#h4yzVb3>;sP@(lsU1!WAyz+(7v6GbMqcC zi`7_ib!p0jyRWEvjn#BNY!iZovQ?^-)Se~%70y!g7#tUxtl9F zGLNct@f83P)qYa#FQaylo=%?t2YvY^{fjlYZIu~1v_~>x_4mx$BHH7&Tj8Lqi*iJ# zfz@q*u58<8u$|MZX~b#pL&Ddj77k>B{CY zzc!y&&Gxx$s0RXj!_)#a z!oRvK4}HDUz&%RHIqV0NBohN|#Kf2;{nqTPW?)=C5EKw5+`6vG8Ad9V*V`b-*q9{4dR{GS)`XjK+YA1alb()!jum=0J zwbvTfDiuMV&RAPU^#bz-s5;lN9JORZCRLW_ z!XirFXy*?afaH{R6kl2GKiyn{L(?wDWBcG-ilwa_TVmbZq&56vO8 z(0^MniZIENNjPgf9mHndVGzMRYcO zU1B0u+{q3btlb1v_6waLTfTK}?W=;WrYfNq%}AIuxz~>dFS%$_{73h9z$$l7F6njs zqveOB=ZJwm(cFV)6ZY=NAFw@GTifzFp=w}dbL{#pNFG^M@J^PzWX>1F9%UxnF^j`( zGId1QXY9GbdJZhb=e+fxx2MP?-(4$X`G8eA3zy@R>|!sX8=6^gt&-93Na~gW$>*ao zF2~u~LCAG`=X!mx!hLz2hF6{+Y?phqV5iFaa~7jpNs+&Z9?sU z>WPNpkD9zIKSOqE#4irtY2@#YCd- zl(qfHwLHr3kQoE~u7I?(65Nsf8ESI$)vv{!!(Y6D6RvhK&@etb?(+^L}T zB;AU4kemx6JNxuiTM`>nbV=y{c&>3rWQv7S-*XlUbeu{g8or+dz@dsC)UPMzN|Za) zolBB<6QACne1dj)^65QR&+GXBV3braPM;3=^k8;df!rlN{K*d}N_p>(C7d`PZXV(> zw3!h>25KY?zXQVM%WbAr`sA-GG=pmo!+pHeIeEWx=V=DNYm&sZ>qMG?auNKla?jg` zoY|9gT#7>`LCa)RpM^y>SG~%Fk<`5;LTjhl$Rdkb&g@>alWS{SLmh_dOlqN;w0z!A zVqvjBT64swneG&RU&dw{sMru&s+GF!WV(9E8+LVSXWjM$J*uN1eVSTVu++^`C`x^P z=Z0q)eCW3-G%wn7s+M6Kvc78WVhW)W^rXjFW&iQi-Y-lWInvQ*nt)nbd70JXA@1v? z_#Q93yphDy6esODy-Y7lCdFQ_zvikt^Ye#tLm$x``ynzDIB{pSk;jAma+X%DiyHqO za)AQ3MdA6K63w=JY5)@Oy~NyX|9+C76&FGU$|<6Dxgu$H?tfpLQ`+E=zxJNdNb^PZ-D66w495~kK)H7> zr=omwA!_)Y?Hor(I|{~r*22>SQ}!m8f2fT$TO8Bft>uXF z%+@M9yO+H7ljonky;?(>7qKSj0dOw+8!heRnobq$Ax*zx?u4+*c=fGW z$4|Ydh*yrdygvg}vp9XA{A$YSRLjbCMlVm^noqKE`j?MiJG2YTRsl?8F6Y&<3WY{4 zosf*Vb<{?q*BzkF4Wk2aW&MgTcd<)BmR!liHUf)MF@B?w^%$`i|7*{GvEqdBa&kTr zZXbNsVpKS@2f(5~>iK$cpYLbBA+cxKKHIsg@xq|{*)qbsEo-aLeON>GTaTqlc89SV zrM$nj7rR(gV>+Yr&u+E*<;PK_xl?shBh3?Vl}jX1jzZ|>uv{){{$N6$5OHscXYfefrh9g!BP0g$NRTxQ+@1!WhYFlPODt?#1We)&qVkf@A$(d7< z+si`gKYsIp2SOPuvB9aWix&pjGzc0} zCCX;9^VH0QM#PJjoGa4IV2_8lrV1t*(E{%*Y?R86Z)_Q=LdSkxuN+|5#&&B~+Np4J z5du;#pvl9{2#u z=8471-dOd*vu#F#M}p)_Q~c-7igwwmy1by5mWeCO4cTH0wL{jq6Gk=6VXhzsgOP1b z?r>!JW@pwpcCV#LmS5Ii`=|HU6^YC?Y)`%pPGxcz;@9Djv6l`Gym_m+_qJ$z`u3-9 z{C#bdnz9K$?cqCLF`G;McO&TGHQ37T_f~6uTob@XlIQfKNcxg&FjzOm)-#z0`0QExQ^?ea8GlrV2f#G*nJ2<}7p)_B{f z?o!l1nV*iZN|~Rx-dncGkx-j*hLEkC78o+{w6+SLd2n)3$#)p_V$?g+ zEQ)L4&3%Cl0rYEw0~|TF?c|)90EuW&;;kmEKWBOAPWvEA%<;__2?O+kY)Kewwc!|= zn3C&0XYNWD*F}9?E|i*=fCt(Rcxa7vu;n;CiX!i;`ZICykyxy8fnJ!_Omow`g7?lZ zm{{UX6q@6Z-9D>74cw;rwB~f9^W^(|t)&Mg$CECN zGM+a9ahjIWA+pnH?~*k&P0-{R1l2 zL$JJm5Lpr0gT<~d19S=#Kh~Z)guQa!aeY^CAdFyk+A+-Mr9s>-OY7yKRE3>AdQpI5 z=z#voBfH`g_?U0&6IRXoX=y11yUX9E!E?495+~L{Wh-1!94J^Wr`Nj-CLl5%5U8W5c zgT11AL=#PhZX%ffC}Fj#oXpJb?>LBTola>qi*r7qEqGj^B{Aq%tst|4hIgzFEM*#W z5dyub^jjgB1==%PYHF4}E=@fy++mCyHV&{hKX9Lu-@n#Bsl3b)PF}=3<(Xc$@GfY; z#`&7W?q$Vol%0rLeKi+s`HGiEGXTbyVdrIhQdmPCfyi30LN{VgI1X{6ZCt-DXUUiQ zWQ|Sxe4FZ*_w#N`L)l&d0ne%}d^_ko*uf(c?vsgA#nYv{mk`vG^Gl~97D8*i0qwnb z#U_;Ws5sOmu%z*P0%ZQ(+W}D?@w2ZcKO-^;L$gAnCQ6gV$(ZXLH2%>4LAPRPkeX{1Ju=53(Q8_s^;}R zC`z@NU66TGW(Vx`yI1|LZMV`gbbzK1{Ie8W%*&1Ypu8|r6mD21F`jgji8sVQrHA*$$g zid#r(F}BrS4X_$W_!xnXq-lmnvL{$9UFsiPW`)~pPrvC-mXWoqnzvtx`}B`7kn})~ zb}3hK-MOV)Uqw7SH>#dlyn(G*OhNp|QyiWK-Q^xz^wGJ$tEjfo!qUcuZf;KQsN_jT z@8QB0jnZbLx~y6KYh|PYe_vfMEo+Po0Xu|Tjig5v-WW3g-h)WX93mL6Sn`&6TM zu*NeiMY%#neW&;Aec=7e8ekN?j}tRDz4pV!DNDLdJ6`P)i8%k2&}`R4%vIOYl8f<~LizVUiYw`^3-Tt? zp=j_j@>!#i5cIKDEMl64j|Iwz9KdF!POgeShkeqbFweIeVUf+?f!cS$df|fJAZMtF zH}X$83zLM7RI4N+_pC7$-`8#^`YC82vddpAFGNa_O3`>#I>RLAxmSXs4*ZH{hNKQw9 zbDqsVdo|UE{<-*XXpqKnmH+9TY@P7g^)DOLpw+_cv6#C7v|7pB&@N~sCut6%3Hg|! z+`QU+Lo(gp>D;lyTX$SQw3ON0^kLN^K{(qM&gySj%%E)__K#T|gz~w@C4;gPGsf<8 zb~|C#P|nJ`lqnk2tebIX+5}QaHsZ@WuROGMZ`%a1Swp{z;AAf}>79c?92|P!&SqXd z(T3#bz4A31lpaQ0mCKE-Jyd7~tQ|B9wpTgb8RwBLsxf{O)&bpPuDwqklVFhPZB0@2l5bsuFljQT;otoVl z<=Wx`V`XVNx#+IUW!PTx{9<(^%Iu@A*7()ClVoQt_K)JHvl@P_Ew$lWJTzXME|e!sIO;SzsOSytitI~EY_ug-k!{IzrDxlvGrttgJ z?OI|hRRum8us^H!fwCC*9#J>00kNh=M{a_{=lvW2R zd>Z^JKLZ#f`Jyj^vqWAwEat;Y*g9J!ZyQ|03LJujEkOpVG*$oncr#o{dN=0e$ZpmM z*2^{apdewF7?wT4_JD)(6J$k85+yQk7j33D2Ifajt@NCgz6>l_BpxAis-%zJ=)-R| z!Di!eF3rXRDIFvpW`^4=7-DI@m7g_3<;xww+ulm4a6WJCPXEIpzv62g4E-r_rtO*- zd=ERPu~F@7hd6Ku&q5g9HhyqY3NuH%R}3%#qV8=G{;cO~F~1hBW0a6lr%!`ZnpFOs z{OR`leo;lw(W(LMV?fJ;EA5%tDT2yg&3vEcMEmiV!u3_D?+F^04kqp^<)U@;q}`Ki zCDTf7AQaA<4v}mUZ2SUCpz5BP32ow&mhCB{_Rgo&Wf(1QE z2KO}$I(CF0mMNf0=5lvsoxIuWn3vzo5scTJhj_)%dNbB5T+QY`x&o^VO|zu7e_Dq> z`U)P|M0l>zy?EdAZgz<9KM8b!%t`=6H_Z4Z9CI$r6 zd7oz4A--t90E1>>@0(K2`2-g5g%xaQMp^C$kQ^LPRjO2^z={#Yq5b^QqVKT9yzEKE zm(2@g=b#AG3T7!(n50Bw#5O+MDu~^I-|Y|zy~=5Ql7PNHf4oqh-u*3@;j_KBbv%X& zA9JBeSD~v^DRjMbg&}^aoAiO`j16JhB=a(yt$py2B#E!NHYpg-9&+X8+y=VV79^-P zce`e(e5NYYM9rmSu4J&MiN?@>JU@CkT}kRgs_`EK+MPym(?GqL=wn@+akis36(S+C zlf+I#-D3JtL=@ih{wg@rXe=LBw0+&U!o^g_)5H1Op4mg4`y2?AgoSe~68|5>))9;AVQR`}Gow_Y)wpG&Fp)eZT>2KnnxV!(+6dQsZ zJ~m9d&?CZ*KFf@pS!uiA7A~(^SRM|MUhm3HSD7jb*#OqV4x^uSYEdQlvIVRyU1Qne zg73MgQ9onH#TPZ$EjfGGwE)*QtwZJT+UP%kn4)ZU`lZc_KAa6h7t(R#X}3BY|8FPd zsfI=gzRhSBDr__+@so6A+z;~HQzRI^aIY9?iL-eU^-)vEXQzqjy``hVI&oQw_AvXw z9lK|tSrlO&kNj}{YY)!khgX{ku${MJ3g(RCg3lhCz#UHQa6fk8Uk%YW(}{HNcD`Vp zY1b-Pa+ejFKQiwTB@(HIqfAO=G#VX$^Nd+CFYkC-6zyu>a7XUA*&j#|BF@F~Q^S)E zo*RqJxg5eIvj{q4c0A0Y|K|b!+nxS(YC}d_%Xr3LrvL-0^pzIbf{6Zc?rmmeNBei` zQ<_06TR`_)l3+&8wTui$s-fWVf!DU_E+(q6Tf-LPj*hh2?z0XiHf|YE&56=al#TMA zXWYyLORr}5s{-0i?+oPhY`{RLe|f6^AuOh!I*9WupP-1qLQ< z$+G?`IqZu`iNBkmO$**M-KTxGjfH;x>{2s!1S{xoKmC*ZwbZexh4qi!na#m|U+K7o zO+VHeJj#I9oiajz|ustcv_(A6IMzr#%wt&~^4~~(M55uKCEiWYNFI?Gn zR;JEty}UNA?L`x8B#M@HYC2_(RKwKHywO+peWxOx7|#y(X3=+MWCy`CP67YcEsg3NZ~dMGwonc+2du9Bi8HEZK-*#^Gos&iYr5xe zqlv1~SSWS&>!CNlC~y587@F4T#pZRWCW)}75eH0tjRO~!%kS$w*((DDC^`>9CnHC3 zrUxs8Xfw0E<+IT0unw0I`(5lg?>e1EnH#3*cdO0sbgNdgngaa=Dz< z88PztvS08?#OHJkjev+qTaQ4n_&X1obWjIJ?n7rzr~Fbl7@#H2^G@xRzuFCJWO=7Q zWcttUm(ssBfbvr-x-}Ss9(;C@LUbgcMf^lR{g|<>S>dXy_->x(JP?F<#2rlbQuTkJ z{ZuOTu(8m+F)M7)m7T8h!zsOCK(;ZL_hI=#H|7t-#n{XMV}!N+3M!3|SRM&*AKkm(XgOx(4m zGrC@ny4A%_uG*XG4r%xAa!iWk4D9tSqC;CLRi47_!|&E-_Rnu_KOK)L^I^uU4~kmo zem##Nu>6TED#tw0Ji0p zE!k9wmlMU~#=l?RRy{NO&ni77qG~qf-_~PAdvA)Fq2?{khQ_Yo)(?N|jILx7rqUd- z^9IV5{eYMDnnm07LJ^iaEq8dLojLF$TZckjIi%YrJDG*0)XJ@W}^*F7ooaQ>`%dN3N{9cdpXfPYon-w3?6<&!}YR0*rcOf+Gglu2E zdD;I>@6g>%o%Me9gBhS(k|e&>URt)L<@m0%E6vTLY)xjd=L(1P&*jU#f}nVIq)hsp zw=(C#Y_4WZ#l_QSLWM)0q<1YHLTzqU9)H3R^y?s3nC_8bc=^TW6`Ru;0`_ zZp%G(X<@nKNqJ?4Mr#z-j{7~$`U=ukrKTx9#1@DDKtxX?lleRHMera>HdK*nv6cLF zdA4x;dXPOoPo1o!`WkpT`bw1W)^`JMINR{Y*570@$8EG&s&}|gD)^_TTd&}`E$aI= zTS=d2DIl+NHZS)QO94HTr}oMC#v`6Ab>4AbIEeXpBT8;2PQ}=j57w^n{hx=bPuCW8 zM_#`^l-0MM7B-~0gv#aMCDu2^)W?#hc8#5biM0xF!EJqPOt8eq{3|rwa^2Ib;>Wjy z-!G}>SfR{y#;4dtAfjj-P}9-~*S*G;PTQnf;-eK-#BbuR4ZIS2cxtq+H_2+|%KL5| z`Qavs3t=^5?GeEnAraOb06imnU?}?RjN$VthS`HW ze!Mczgvh>c?{S-f^P6s82@gytx!w4MD`=T^x2L7n@DE#n#y1K1jvNm%x`u*mWRiR? zrXY^IK=`Vc2;Nsqx4m6)xwlNtKG??eKOWWe@$DSrNIikUijG-{SYZi1KcXH@S2IZ5 z>D^}T?fr%VT21UvfF<*afU^T}Z{~%lo8@R#A0G_2i~4!{DbLQZ%Bm{n>_m{)o0{hW z4m~LOrK&{t3d?j{HRxlIS~y@3Lzo<{2UvvQCJ(n?m(9oL6L+g+=5Ns9$pzkuuAw$q zct+Mt_yoR#e5y*>tsAW5=C0p@!Xo z1ra;;jgZ?A3~hj6?7NFKVpj(6{V? z=#%!KXQDPHz7OQAHp-DiCKUW=9my;!K?PqgeY3niWRB$ zG1y*F(lT>flfSPl)Ah7wk!z+?T}IB1_8ui#l=+r4tNm!EMf8cch`INfyD^vdzkHfD zT86*os-c(~5N#V9*M>6==tc!BCBWqt-$}7>?Prm&vyq;)B@dhFmr9c;j`cz7t4=E2 zvEh4Pk7bm)h$Y7C1BB5w(j3o)-)>TioNBC7`(d-H?v@dLsW+U z>YgOn|Gc8yuR#8?I`y8HXCVUk;nn#zQ4fP{tH9scx-AX={vcj)NKD;_k=oUDpa-_~ zVMBh0ywzxb*Yf$W6HTHSXa20#`~t4pS?c8*7%}eyTxHgQa17;nubyY)gmL@&Dw>w) zp8ojuVm)F8`}^9UT%>xRBC*DLnL~{B`ug{!%OxBHJ9}y5LT9!)IAymPKVa^3m{@R$ zO6F8TLa_ZcuNbZMuMP^g)lOX$(pvOq@^>SA+b++F@me$> z@syh2ORrA%271kMdVNNd|H;%}yW3LWvz_u$&Gk~02UM|cHsvt9G$;HuZKaudC@oxa zMT%FwTT^7Twjl{=gN7emm+$-RS$2bDRAujz)_^je9`guHOz8;~S&mawF)n#|rO;&l^mbX%o$b>n%&k-{6?u4h|KP1bKgpu@4{njv zQO%95N!t5e6I1@bpWlfNeVrtCoadPP zucdlMp*U6z%$0p~W9Z_9W>N`0+X=q!u>2A9PDLKIUjtc;7zlZQ>2&{>$kYT#<( ziTq7=pG?a1y{lLJ%?g0GI<`slNOLyX3fmU1ntVF!=i3|f(5$JB%Rp5@a(I-*C>fVj z`{$!+qV(WEy0cB|zG`g|-6PV(wwol6&Rp(n{SX^dU1$x)Z8sbC<9*5VQ@{_?S93J_0ZNY>!P41(tqSkv#C zyeL=T6`h`Rd71tGuF)Cb`x$@2>`Py?z6+nJS(BR{j6^U2+*kZ{#nQdvVAOgIMJs#~ zlvzS_elXM+UbqkFrzY#$;uBS6K53jc3cfG?!rlPx4bK`4ZN0g`3QmHBZA06gs83T| ziZGUatW}OJR}Uz$Hp$TsP-4}(Ly?gA^&>wjTcQ$@(eDp%aMsxHU9@be~*;V=D z4!Zh-tTPK3VZNt#`8#-2`AZix6K5I7ynK{pe>`uiq1i%8}txSt<=Pwempq#jpta~$=R=%>rqB60{7tE zd#$FQw(c5*sofy~5%|pDUr`U32{lo+HZ*bcclnYwPePZ%7b(@cv)_0=ypE=LMOo4o z$mg{oy722InOW}Kq*A;5I${|>i*1`2aDg`W^)v4FUJ1YlI^jNJXW0YRhNjwxHrvwL z{cP{u$smmf(7nhwy~Q%t?tSmJned)(yKuRg7+%!SFTiY7^`ImF2tLX_Tr4I5ycf5y zrv4}q7LKl}x$=pb42zt(yE83mJ+Wl0Bho!b58dw+`aOD^q0VYrlixc0ACEzUiSZoh zVfzB~!6G!3%923lpII55}irA2&681#8);{^A(-&{FHcqQTky6n9o zsOgIv6d{Z_y-U;;|sXUIg%{nwg-w!^VALLvB1 z>#6~51<@+$%legonbZn<%O-mTE58<@lJzD^4?g*Knys5-(>h+9z)>RD&_xK3oVzlz zmR@kLPV|vTBzqq^%rCrQ%0RLR$b8^dNuXw}9nsT;v-Yw-j3cYcv2hc&K5Q&~fI)QH zfbq3?%!!J^9gSat(t7-Iw}w#hz;x#4$`th4L$(U{+Rha>p#TkC8==b9Dwz(8KcoU* zcov#ySV?>o%#|2(G(+Y)JA}$ov5e-F)+!ehuTmce?I|BaUk|f<wJ2wjGOJ^~LQK5s|w)}I(S}CVYIC)?>Zz+k^%-hvs zW;EWBH#HcXhC1@X#)ldD9w4dr3_8`PwC!-ePR1_bO>DTf=v`?{rrq*@5Yc%unz~c1 zk4~UScq3C_d930P77_Dh&~MUNe|clH2MIWytal+gAVr(G0ZAtr9JF>@PNK`<0h!rY z2lozSYwij(ZeLgSFQZxl<}{y{_&cYd-#qXE8(a{rg0iV7nLdEdU{E{&RF@!Su^>yZ zvqS)6o#m_R*Ma-~lz|qkSUlG z(_Wi1X|VfEyb|~~moF#9hs=C8E8Mu1ALmg)@Z<`D!^P@GG|r~xE~{L4UnuUaSWuff zJZw4HXYQar`8%b3h43+NQ!2!x{ z&svNH{~oG-v9HRHv~RzV!oCy8&~TR>C*W(O4M_z2|50=nZcV)p8^<3i7NRJkBA`;z z(o&mWl@<_?E|q4CN!MT&AT2p*$zsg0Jh+(-AY07uAdy3FqvaavpA;bl*OecJ7%pGqM;%>qS5>^%%NAIwD zswMP5S#-$T1oauoesg_NDd(Pz&h>vD>bT&SMDr2|N7{PB~q+ z2J&q~u3OOyY`%J%%jLKCJe%Rb2>lR138y>F>$7gir=@9C4{E_v6;3C*8U3Pv_r+y& zcEpe}{zjb`-}e5!ftY?Q8c`klk12P8b79M+NzF6OG2K4RJ@ieBb$KpoMHWTjR0VVr zVK4b8v4m+tz&7w~M$JeBHRSD|J?nj^OI6gydp-?sw`q8aZ#ijv3<0!wD|N*OUo8@^ z^bShCfaO>buuSd&CXa`WLl-Uj-mQ7~NGq9>3%+)zMzM-^{@+1Rg_sWi~M6RN8xvTQeQk@4igXxf8pxs5W^W0j{*z^SFitr(qTYWu5o> z@M^9JwzB2N-w6JNcVI1jMbqt94C#4`$LK6Bmtsk{lt(@R|Ldf#(QK&E$K#>$!4y|5UUPMWHQYwj>6b;V$;rG6z}Ta?NxClmT;E*aN}~C2 zB=UakL`OMs42BjoDQ8V_{lQx@C-WP@1w8S{ujS{F`IeJ?Zy)vp)odL9@rvGhvi9OZ zuK+{s89e!>H_GnrVLIqNQb!HLUKwwiT}N3;7sCQ@H@>66~+6Pe2mcfzA2 zeGrjIq>;6JHq`FS&*6cT<;clL?T_!!0F&gcCtG?kJeJ){sCmk&9mu?MlYH#G7HkP! z+g{t_^_Wd<;&yAyj#1Hp=9$}Ym$M}ess6eLuZj)a7S-ttxqy@9lHY-*J<)=u_*UC~ z?;r%lXXdr8S`|k?!Kb2-)(vWoSm4 z>~vUu_%aepWi7{?jB32xVgK*6G{{|ilWXaPy)kk3#89Kal~d_`%UEb#b7(CuBx3nk z;F6w7t*Y4#`jZ9d%c4JiOIxGkHX!S4bLfDR!@F{6`~evQ|dY-*zA^KI$R=v zg-5pnFamx+?=Frl=fi42uSN2TiD?2~ZQ+1=D zyhQMm-GNn2&MEKF6At=-m1HWSs5X;FtJ2mm@(E4{OoGq+YHi=Lu&AoTv7{IE9j1rJ zAU9K@ORAn&(J9e4Vs%~oO`kVun!cXc2P!Fa>WE^ADb~Y?s_8^b24 zj1V3Omomh0B(Hw@^8i5rpB2FSi)mqolnp|G8V;?cMf<+GvFi@2L3TrXR!EpH0*7U> zjjtOV?r2Y-Q~dk_RfD*%rk0sk(YSgP!Y%`?bvN&ZCappz+@*k8zlKXhF>5vUQKz z8!=OrMoJRlez04K9;}BbJ_@u{_Wc&W&wg1?)7=wq4fC;q!OTL-w(T`MJYAYhVPImF z{3`TdBt&~!o661-I<9UXD3-=PQQU`cTg-RA9yKlua-R5OD&)Qe)EQgkmDQRcZA?=l z4$t9n7%Cz2JA?gPphBp(vZ~j>Xa)Ct?MOa>-;!a>v?#A(2#MZ_av|Nv(s&{qg5Yz} zVNc#oV=<4!S3_#`XIftX#1N5My9;~JVECkSV^?}X_^9FGP5tVCATAoMu zh{m&p?TZFU*SJTTO{emj9ScC9bU$9UCqM z$(G@QFe|%?PvAPig)SbG>wyl5o71rglBqS|Hq>WLaml*1gn8P_7_qH1xgZEQMI+pA zpl=1eURu8Hn}&>-XRrOMT&4cW8$U<{8CY9SL^i4Bxfrfhceex)v1e_?Vtc8kDm#0x zpA%!(JKCp=mX|Ye)(B>4>YPvC@8FUn>5YC|r2s)zqD_rS^|0Q~=HC z>!%RLQiXPk^V`AfNYcidA;Bdsf%$0#)dOtbvrIS+>D_UurMw-!Jc_iSD4Kq41PG=? z(w9QangL;=#Oz|EiW6twt)`SxYwyhfdwld`n;!mfcJ*|=cp#~=zV1`*=Kp7K#-MhX zKhY?b;IP@tOM1I|90T}nl3Wixj#EM&{N0iOhf)j2kL!=kL!e_L{u=rtZyNn;{oNNZ zQ-8n%2iENrQ+;rw$58rQOFFciVW%SG!jYA!(irhcNAr*}L%(85CYPp#Zq2mMFhd$S zlK(N`Wnni5U_P*i`&uK)pQuB8BNP)#WSwaF^QXF(L@$K=sa&Q+$oCvEsEp5MA!4|k zreQa?XrWEaVswvQS1PFx`U(@TxCi-?~GXB#7LFZ!RSq$)fDnq7I3(C03a;SM{=%awj8UI7AJ zzAAW>NNrrM{X$(f*z0mwrL6DA6QpW}KUiXe^)(hk|e&cRQ6~cR7ULoL*)-Tt0wH4a$YS^G(NIMLcN0*paaT57dC5CD;~u1-)WV|RoOB?>^v^P&)wWc%H}F9;zp zHkc zQT1PBwlMtC!n@JXZIR@#1A*3&@O66{GV@V;^WbZw;1tzE^bOfpI&@DaCLz?zNLd$2 z@4m5?(9YWUk_rl{(#^n6AS6^Hp z#@|FRjzcQ;6Fu2%lIQwYUhcxzuHKP9pfX*bK#Q)nvT5RPZkw$OD;@Xnx=(+VV-a&PDVXBT zO>G>Y+is2zBE?4NiEOF`%yf6^0SiT{{* za&h7-rzNR;FMMZSDF%&8S}JLO*A8l<0m@wXll-S&OMjlOr!s;o4iX{|SF|e~69KM@ z{JOXB;?~J2>EP`$Z@Y0nVFs}y4&~}d4I+JZU(`?aIv(?X`vu(hB5#YW#!gh+3==xH z;7FmC`lrJA3#WV!Py+qV@|#5nobA!w^u@;DlksQb<<#DnK^-L(asCGk zcYpA$0-8Ek-}6^d_EUOhwuqinXR5t!-v#nNCIPb-|KV~XxIsonX8{=zX>fiBc?U=( zPnir}=<<3k(J*t0k0U298-&=x-Lb*zl4zlf-W%kpUGkk%nHQ6)AzRN6VdCagAkA4s zx5{BW9Ldjv#Pk6 zz(BLRuXVXtP&fM_e9ZP*ADgGaljD+ByuzNbe4oL~wW~8(g$8V2>cj+qs8eFE_dWO+ zcljT!UEcXp;b#3Eg!X^JJ|dg#6x(Jap`H+rJvlQ1qf_%e%^*I+ws9<^NTn;6qL+NR zV|8Y8x$>b<3ij%FaZ{c5X(*hylCLEgBeJ}oBwE0ujhK1u6&xR==qF=ip4}f#kV|*FHvrVEj)zjo zembZ4!3OnDK|x6e$1UM??9@;`CHoEOL8UDGfSJo5J^~KcQ%*$ z|H!F%gV|N--F`mGm+e}DOOBrb6SOZLxB}fP@5_{J9XiE_aSPuj>;4%tL^j^#SOjwE zj1^MpjEhzd;C>c;S3L8(YC&@M(4>^tehRwsV0tWEI3G&o*h*b!n6l(DbT%c|IZU-| zRoFQslDEp)ls73=M32p>q9ohL3y)$njr6B?p0!ekDg$e6xW2+y4@-sHMMhKh_-8gi z8%7~r5n?1A426?CE}htb>Reak^V6*evB*6fo^(&9LT%Gw7Csp@?Oum2`O?N~IeUpK zVDZ5cSRXSDG}EqmE+fSd zfUTMK-MIwr_ilXet{*>a0Lry*O4+yVe+h<(@t z!#HP*v;TOcJ7yFoebwFeOHJJltre^7c-tEALTWCPlCTQ9A|c!{ift~_z$-P#?*SkN z4_1Y%pMPmH?s}mOvU6;h0)PQFkeH=_`f1xUeO3 zeo~}r7qn2oM}S!|VG(!~``Lhm7qo*2FNH+;L6Ga;R9~SPqB-(2oEJ$qr+Qy#zG@Vf5_af$TgkI>ifjt4vHCeDw zVuK~QdU!|mnJsDEQFn#+*zS1j-VohZa%97T;n@hM9KV(rCu0|Uh^9qwrH7IN^g3_E z(Zy2VVfqn6qzBTF6LQWXl9t_4TflBNAnE-VfRH5LGbPi|;M0Rw-TsM!mJlO^cU-g4 z%=?mPyS`O);;C8xV9!6LiDG`dOr4U!n zxd(Z?YDmP=YZLKbxNi93of6ilT%MRp3tV=pO3A8SxQ*YINm(EDyLVu-Lf@`(G3*c` zxWrAwT-Bf%=LZwDQy6M@D(?UwiGj{{Gp?R_)wlg5DCEzSPU}&JG-fKu_}DCNj#?HJ zh4uE;$$l(p{adRfsqCf0A9^^b;BoM*w5a(1mW1?EL4YR3p(ZvipOD_1!zjw}i%=WEE5waT`z^l*(U)&5^n6wJ;k-5fV3!=nbI4+L#ue z-#eE@b)k%6h2IMI4s6@2I6^B~(Mxj(Zej_n;Bh?0>L{Bwl|@`o zJv1*weC1zw6_vja%e-G(zdJnFhHDjOXGr2UZg{4Su zzYluMCpV(#Ns^L80c*@v&y<$?<7Mnn&W@A~{wCRM?6IIh*Xu0icSX+Vp9AIpohwm5 z@&V@51reFQzH7RlI|2*JvfqvUCH-oZq`Y?TuDTcPTY;G)$3ui7(k*Itmn|*jeN1WV z@6EWIe?nHIa8#?n%>80oiNZf7Ifj$k{AK6bY&Ie&yZLRx{1fET5_+YQp={%sK#9j> zeV8a+Z*?2p*Rf>%*2U#B+Rs37v!F%$d_;}Te)vyt$>C4+zC)RCU)qIrFG8xzDR|V3 zEtN~-Ub;4E)OQy7bg-R9gUh; z?mj5-(6~~ud*P6BoKAP8&x30g`X;xG4l#e@f^>cFC+L8|KzbUb+$|Pj^_5)Nz!kUl zO7;6W`#yTMLf@&E$%BVaNpHM;jze5Ss4~cB$H5fC{!9E~E9IbB#}~2S@4%`wX2Eu_ z#vgw=FwmHJYeu>vhWa~IspG9TA zxV9){SP*~)yA~?QNN&>t(~5(|60B81P;!sMb~o=KoAMfL{1>ujHAB>id(ioW*9if4 zB~>}H#WF(aG19wc3-KHv1hu%_MU;^LlW#K=F$+$%LJd)T__l&Nvn6y6XZY#^%ffWY ziL6*I7;Tav;%Vik1+VAzLme+Cg6t8_*{i3=q{fF`5tvGiY>^fI=a{86A@0IrwR6JwWfj#AhIU=a|{Si`%zl;&s zEtU;FW+bh}3vyW>wjhYaqvdoD9zaZ^SBzmw+@&J;2Aot09WQ(r5Cc@?QfV}p z{di$DPVLC0NY@E4oSgqYF&uU#m;KEf9y8!Je$8h4Za3Hk=eWCI12615%fA>K%*L_1 z^2sO0R%#yBT}~1{4X$^*SozrX81=9vq&7gL zzE91wh!&LsRJ0#~mkmbCd`^Qpwmi{_k+^X~3`-#!soVWi1OF#wsE`_Zw8e$XAbD{X zUJn-T{=tFwPa*G$Us@-$pVS0k9`|1Osvx1+qqt9pM2>m~$WGE#bDI95;$8RtY}JF_ zd&Q!PD@`6p=hiVQz83QaVS~Nb$Fn{8Mi2a9`$HV-udwYfv3anB;~nJL=%Qc0W+#-l zTh>{%kKHH-v>)pOtmUOIf1B|d4+^KDA_h~p*CG0w5M{u;W8G8kAwU01SmnbLp^Uh| zt|L_x>+{Zdk{Sf2vT@eNP}`=wJ>P z?$FE{HII3-Img+nkzDtfV; zT~HN+Mb`-h1+2S?3w-Jp_`uEU+tbynPfkn=@ctz;^Wt?C$@!283;6mqT~y87J>~?x z^GbmSl}rs|_hWq#ayR?_F^T2z$_9t&dqt-8b#OLX^#$cyUsnFkMUi$t`K0{WCRUln zHDh>sIp+}#WDZ$uIlZg8(lI=6zCrfJ)zv20t_NV$AW+0KHP{_Ra!^alU z*QK5$L^S^=g`~J-0%(Sp{7L4lS>Uxx)gt% zOz@Xzmo=|=dv|>i)*+d;B6c6k>fUN&G4n3K#P0nOg>tt=e7^Q{S_4tcIDq%7|J&k;qoqoWEFPQsB{Z-s9|$$W*LGT_OgoTZ z=(lbm5t0|L6n16$?xFOcZD1CakCVq=*js;(&L*Ri9>(L)k?qm4XIep*KXP%Jhn$wm}~lf)nEVNuR0bUj*Ft!C!sKOlrXm(>Vm=a=LG2 z&x?cgHAlB`Rk?86Ptqp>if&NY{p;-iR~n z6Yr;m*zY{BYMFj>ehHmj;W}M|Kh4_=QL3)5%X-&2b*=vCBomV5{wJ^3TMjkbbn$?B ziXSdOh`WDwTH@{S=vir&X6&_FRQJA> zZg(jrb?*xEs$}anD;aj|`YY%m8SFtziLQ)w?!MGlS2D=GMgx%BjoDXxq?3RGCpw#v z&5WLZG;6;9X9oMNX!~x_ccgm<*4_806dUdx>O9ABBjfic1v@6DB;$)*-fq`FXrL@A zcT5*Z$jUY5wwBAo65c`np8N=9U#o@8Sx=9@rWa>h!$872B{r^itv4~RTo(F7`3X_- zGFXWK%HN5)XR_6kB6YS+CqC+~HsgBN^leIav}F8d!{Q3m@yMvUa%I{xZozA@5lUTu zp4;CSk55pxJAzD#)3x$l-%shDPvlPlJ+Sk*-9YMRT6y#Ce~XWLPA1qO+j*~tRai=a z_9BRdK$2fiwJfL1g&Drf$-Rr;9$y7e!~dA#1AJyP&)eQ0T1{40B@9kw{7*XptM|Xz zqJ=C-4^m#xy)31Y-X`UteG5Y@CpP;YDD`0z=66Ok9W2qi>?f>?bSV(8X_q&pSIyddq_h);Vxci^1DNy;E-9oGl7?(Z4*4diDP{)|=(rflp4 zUzC)4-5fNap^vLwEg!qpb&*{isruf`DU9jODI|Gk^Q6StaJBJ$s9Jetmht3$-zP#W zqd`DUclr}<+Oi$?FyQ@~a-k=oElFNrx(Z-u^jnd6+CWs6~#Gdh3dlYpBbZp>BKzuA6g)?ubP&!FmjH%}M zg^agIrfXhg4c9#gtMp7akLb@j&g(BEmOJ}zt-p*;9b*2$UAh^ptcTgIh^>kXPy1aH zq4K@LvC-^B0~7nT>-#IXnjtAq|9V{hX~?_Wg-7V|C|yzoVQuQ3N&I%@TbrjIwgr_qYSe2UJ1Jbrw6%G1>Ti}KZu zH>MNvjbgXPrFGA@O4P`8{2nfhc=}XbzT{)i!puQoVYZ9Mz3~aOv8-E_pENL5h)8gI@zxNpiGh@C_{%;&9#+ZkgRKUdi8E}blO<^AOrlcUl(MY?Kb-`yX-o(`<%uRLs4Im;Ij z6?>?-ZnRXVrG<4SBm0b7jRtM$r6j*7bA(gX5aJ&iN0i&T~W!-tb6t7ZBQOc z2w8gc`Bj}W0Z8wvq+ShRR%BMCnV`bCVp1N@uL7%r{^M z{`0;_7TaW>tCaj!-N#Yg^ZJoMwbtO7e@u#H(jorcSu}uU8m>_JXt!BB=-9k&SY{=T zoqiw4K=HCqP5Os-H#$W$nfk)J|9UUkEu#OLDBiLB7~8<7>`IM1ur_2cx(M?vr7pSt zu6Pa_ICNj}c5n{%_&3N&%=4;$h0t8VcrE-tp-{#}=cxJ0+pf4)d|lAj=xj&5-KLKB zEvO~noK}kOiu(~V#JGiRJ<2S3Ug|%;^)&3yFaAM+x6~_{1~>O2sVF!8n+32gQp|zM z*oFFrPS3UzEQZ4&H_?4BM5|!YKd#gErvHNRb{!`C#|M8z`z1o>7hbIJ<>0Z9FDs3E zYc>Y+K?oKX53|nMULUPW;LsbFPAD>YLTsJ1N{rK9Yk73k4K(S=_1IxAMwyK(`@d5* zd9X`%J=luNZe8Sqg${8T?xo2ZKo~I{T~w<&`BNBp>t6A%NyJ`@wOW9-SYaq zc*`JOa#5vK)%IZOoT-v~-Tb-8rLi<)>s=LIN#d{DL$rsDr;}hozqX*YF-T$D;F7MB z`7lYx%xC=5px8gAJm*H2(}g*p70@$y#kDr`t-N7TD9jz2@1Y*1M;dgNd zoOlD1)jt2fUHy-%3a9UQbQi!_dU-5@12-5N=_=kKLIz%{3A$UvqK(yBp`Ezs5N?3x z;xqqM67)dg+f-e3)c_jFbeV3r%`ZNB0BjEeOE+vp>vx92H@(w&zbcuw6aTlEFLead z4mDi1C#K--mLilr23Z3kN2VPL@u&!f>Jh9h>(+M5YWe<_gozp1eMTikP5If!+BdPa zM9X=N-!uRF-sIo~%duf$gB7ePseMaWHuzKQk{{6g%0PH(eA>4EJw;>I1Nb$1_& zXd9}YczMNvA*32+)2;ji4kQ7?#Xh_8oO6s_H`b)c6(QknL<)b7?ehM!)vv%f=pZm@oTN@lK6VlqcSUv*0g_8T<1&V@-BD z%)b8z?{4K8T(^?U)x=X=q->?GVel^YaN&qWJxlJ%^T8Q3+4Es?3Hlod(vRMn);@`)I&HjsVm$a25F? zt=80iB?Eut^gHW(UAhg9z->KZ<+eWtQr6E4-mpgT)CAYlRBft41e_tfjT~GBf zIIJ3eXCaQul_6q#6Z~ag^-{am=fI-=8hKJQ?k9hWK}XEzT2dGV6g3sz?L_3Y*tJHmGxAH`H!`=jPD9d}|%LC}=Lxi1Dk zZvXGmM*y|_zgoILj=wKy{4#Tlc>SHMEK4 zJFP+a2l%IFG-OZpXl*=?o8!9fqEo#}(W$#GX)l1Vd)73)OwTi5rS*S}PGr2)+NoR2 zvFnoxQ-mPSq@^-JIY8W8zvHJXkLUKI7PyrTTv7RS+oRTU zA}D4XHn&uZ_cpq(>t~Gi?@{OXyb7{znkcbd=e;JY3c7P(Nub<0ilqFBoX{UGXCEIB z5CYjJfS)SzpNI#_7)DyGZ4_s6UbJ~-8b}+kVZ_vuTK_mr`n%G)9>BK5>g+M!Z)(nc zvFw!qsU2s3`PI9IucAB5p4zs_%QN_Z;??~)w#kU5DwIx9K2@6Of5J}uA3S_DK_x(&3%~dE z_BwU*N`Ky&7tC1RxnC9MC%SEJO+Z1vw>Pc7PN@`*u}=;Tp4VIU6=EIz$MmbTNtbg@ zjhx3HBEGFljV9mu_I$-W9?AnUo@8U@{;6bY8BlTr(?f@A*Bk|$YgxjhuWiQiZ_(Nw z2l^Bz=i#=HMx>ApEjWcr6xf~U-!0|VX-9LB-8RL>Z^h`27ngK!q~H7SgWehCT~VpN zqyF>ms zQ}3Ueq+hol{vQc7o z(&sEu`MuW@g8t*=b<&_?U+K%pi`~2u%7+{^oS`TT!OIDuLbAw==Wdn!v5+Oo`x-k& zazu~GMu}q80FSk*myqH6t1>6!($wI=f-ajqQ|SXsq6?ot?r_*-{>D{G{Ni!g#aDsX zluXpK=dDfKO(0M^d%?XHwSHm2=>x}}waCP_wS3)T8&}g4Yhv0!w(u)T6oHwmo)5KT zeG|krS_#Gph#oo~=kC4}nFN!D3iN9-U|h~FTLDlP*VYPDR=W@1h5^ad)B--C{j#c? z^?L;L7g+cm3x8r_9C=Lt`q4X`E%U#0gIn=>t^-bZ6zCFvCj>jv(Cob zH`F`y52SMM>ZyWH#xRoYs=SEQeDfh6kKH__r+hD&qZhLf4{(w3v60J&j<}|SV@7yC zGK+nDpDRpPoc)+8G1eHZULk!^$hlG<7TLm6hufsfEwHlIVx!R4#n26JuaPyGzj;hV z9;C;yINv>&XSE)0IpEv3Cl(jaoBN?zzs^Z0OxyajQ2dz=50d zRZJdd&t`T?_R3L4NM@n#ylI^F&k=F^SVa!gSC2Is##k!OFpSd|5F9fEf!21SXq&GR zz3ZVMIzn$UDdU~G$?qYf50H^UToae$j{@N&*pWmdfUp z;3~Hjo#UFri1`fGR9^Y3o}LJxnrY8hJpox887EhHYH1DH>zep|q7nLh9n*Tg_Qrf^ zdT>?m%`cr0o(q!~Ra(Fz<$3;=bCof&QBct?(Cx7%1$WG4zjG6KrpJFk&~LNRpZ+m< zJH;Msp7^y-{YZ9m+rlr!53%>wuT+Y4^QV38u)XAdU~ORAfebM+ZzYRk;HB}gOtWu7 zjNdP=)TS_W=${NM)kL8X@gQP;>RgLZ%aJEZC=DkL>j-?C+~LVFqH^r6dHkBpclMrB zEJ^zRIh_ zBW(grL!%Z~OS8QFIANV7rk!DNJ({yyu~MoAM^`SM4o=zV8V7Jal9_n2R#HF5_snAU zZw5DokJW+>D53k6*De3!{h9-b@@KvkL4}f~)t@Tz)Se2pw_K?T)5&HtvzQvdDu-6D zpjbRqMeGK+_QZRUve|U-Y;ycEHTz-{sKpBQmYXtV$WN2jr)D#U@#TIVH7RSkGA^b* z;JEh;C%bXmFIThu5{v4YJ}J=H#$Cxzq^?rPm^tH(N!IXiZQ$)a33r=9!OshltZOG?-T#ej(zQG;OkK-jMXw1tS}kq| zUdI<(Z;%wmWTzy2c&|x@@$WW$C2zeu|3qe5_zpP6dpzWSHGgwLWw#_a!fx!+7d_TK z67cy-EO^GSJQm?zRmyzU;Fo9pZI!HxWlN9#*sR~n<63J}`3cmKW{S*^;5v)mJ%DW3#?bZ^`%eX9uvm${hBFELJNTz>tx>QL+U z%ZU>_pVIvbb$w|MM}CAonc#8VHjVw@UEa_TOkhhBIb4^~N`F?Lvhlj%uV6Uj>;SPx z`Rn5K&lw?df7jBI8M)Di0PX}bZ0_{?7x@fOryg@Fu5k()t(*rYt@v2ij2sBZmk(r& z$CuE{qNNdMv~4eD_h4C(hoODX7@Fz4e*Rs72XZJcsC=Shv7gu@MQYI)U#@}H<}gT+LrI|XU5Ba6hE}5 zlG|+zx`vG;Lm#bUL>5j3*OF7tWMqg`_IEItOav>7jy}&HmV=@ow@M2%F7`J@pH;gg z%))YeIs~S@A7j|36ZVg(7ma~xxB_klcMh)^CIGK2*f8b-kdG4S4j{agJ8bUP{H5EK|6_Wif47rkYB=Nj){T_5oY^P$JVur(o#WJZRHOaSJlqg# zC&O5GSYABX1O_t zyW`fBb8V2dD}}W3-Jd-1>m=fqi48wCWk~mQbj0;{2bD#U-+gc{J8*D&U?R+i6-*N( z4Q}Ox>d5Y#->qlxoR>M8K)Kwt{ndQKnx-FFyJgu)4HR#@_%4;TIsH%bH{OE^%E_f= z6~uyVglV7}IikQHp}QR(PImwAXI0e~vElZiKEAz#z=a=c=ANEG04uk;8F2aBX-DF{ zra*DYieP>Myb4dqhzr}4EqAg?-{QFk5W|eo)xRH^`%>M~)<6%BF1IO}B)X;fg-gm> z|A)C9Jt2kFzr*YOanS2{BBtF(%v6$l;NTDJ*w(HZbKD6#Qr6pHNr@2HiSB6iiNw{E8_dpLUqw=9EsUe4nJu zho+H@%?fl@)nsj{!-;Agod%)Z35`{c>~~1ppQCl$`evFc1yE}A0RKmt4{fT9!m5w( zIfo={@nvy1Okt@Wt+bb|gBW)PE5s%5dFdKH4HG65BZLj$eOHG1@K|qQkdnkqbsaCT z+g=vu7Ow?gBSP>!Qf12VbMFi~4*=BZhwif+1r%B~A*s&?#>i8?^-1@RZ8v`~w%m{25RXJe zb-u$YIE_cY|9_*a1RPzZxdLm0l|4IMmz6z3b!5 z^I7FWA3@x*6L+m^Zbtg5Uz>H`6G%ScIQBF1JH&LFwS5Y|EB$WzC&oIV?e@y!#IrFUY{So&guK=Q9N>Y$!#4DsEsQZpejo!nR zIE$(6g2ijDHpW|99oHM(_J$b?z!cirQKt=k3<#jzqs9T7{WpA8TK>#TFY+Z=XcP5* z(+w*9Jr6a7vIh6~94(0Udtkyc`u@(734usRYYlKAm=gaKNKQ(K4iR*k(>f_q%No2h z%e6V_o7)<|MfnlMeDM6=@<%!(Xa&Azn*IRFahjjK=AJp?0CW90WnuB#j;Dxf%7szw z8cN-xi+~$N|1`-h1jrgNBAgR6Y5qv^gx3$(Ta9&pv8}27G{h3}4>pc?9B>Tj?ifZY z$X+cTlv6zdY>WcBN{kh1jcpIlL}eOK9YHH;F8xtGPIide#PuxjiUN;Hzv%otedTBD zb=hwfYv_MW=Q+U&9ELNdvC2~t_H|l6bW5^9V?@T^vLwa1UV(yxX&guHTx%i;AINPJ z0VpF*R>5gn-2a#+0b+BEk9>_ISc3FAOz1eBYO6px*sy^jDz&(KZfI0hg6z|s0H44a zX7czzc2sWl*Dk*r6t&92lk&&MphKN!GqW6X%&neN(3GHi)49LX4@Qg?O&YD$S8amK$;+;e3ON|sC8rCb(kWJL2 zp-Bpv!r^J;0SkZk8Hy)ps za57kw(dTGmw;G^6#s6Rak+cm?-4)u-jY~rOf*9fy9YzeF9Ez&X00y2LV}l;ynXw{| zwN|X)qm3$(nyO)k>V!U?^KLGQH1AirLs>u2W8l-XvLEbl?x^ zPGA}tQ4yc3cen3O=1pzLd;m+fJuL*c6|Lhop+5p4giL#O#hxGVd-=+L!<;#00oEo zPDhHESfOkDf~hT)y*%GlY;Wbvb1mQ6vw7~}`C9>w<;)AI%RyO^G>WWx#Fj^`saj~& z9KT=|pzdMDQRhpnVhE7BIK@vYNVoII&aSS~&=O0;gKknKU_dGs_hHnkKJikwn!uU{ z%I#4+yCV{;S=7UHwdbegxKi&}jH@imb%nSSMZf*se0W_$yo5V8irTUVC)GCAp0rd6 zj2aT&K<$JLUv zXrIxzDI+(EYf3ynH^p#*&M2%{w|wW@d10DHTrPFFQZ9L-);ev^ zSg^~pH!%W|-d*$S>()Cx*m!_u($Kv6+Jd@y^DVg>;z}vRjG<#;&qtdK=0z9Lb&+Qy zxQ&;PM*vu;U7 zaWs8WsNOvUe;=wsGzE_R@xU1n$4%bCL=?vr?8 zRpg%?E?dZYT5JhM=2-GBYG@UtX8RUH9w$zOSIQ3XtaKV^Rr7Md*1MSZ*l@24~V_Xe0k1IA4YbJWZ0~x0o zro4`y@GF#lY%KUABAju~bhEsC^WXvuURVD~vME7+47Ooj%}ea14aLio5r;uWh;fUi z7f!tL6eT4{?JYGTB_S78%)(r5Nt#cD3lojw~Mt|;x? zY$3wAF|e@5&0&18g8aSEq9=LKb}C_h*en*Nxa6&Q={E7mk#@6C7^fy0QsOuEhsR@B zfkONN5a`pH8RIfp_v5Cfh9Wjk+`rjeQWE1B$$*~S@;VU9De`@q_jJBbNck68(k8q6v?Wi2lk;Xu7YX4=kd+%C+tIv)0qhl{u|ym{cDfN1jD7^{t98r zUi4LO~x_0H?6w0_6^tz8ac3; z?%A#gHxcxk;~hlrT=6GeuznNgLQ9#EvCJr^X(dJA4!G8gh|1fje>FA^R$P1f(tnd@ z`|q+OJxo0=1?ndCDcR65$WAc#%i0moWFl=CZi(fJ#%0SWRxkHSWnqZ!Jv~z7dTd?a zE^L+2=ilK~+sH^hb+SqGwbBB*+&aQ6aC|@YuP1QgK#kUW1Wgm2+TpGv zXYUTLNwCiVo7DVfXF+n;z@Q+pFn_e*KDXayguZ%FBN*To$0e!n2dD8`8hlxC+S)p( zm^+&&UtqjekTncby4$w{;9Fw89ps>azaW=*YT(W1In0lmwAh-VVg zMh8|d?v6WQS1zA#bOu5%I>-epN{6>C2wl5NqE+m!x=BZ3?s<14%n#XJ*pIlyJ@>@E z&9J~Dyz+zs`j|o1DjPl@v9yV)6deKuYUZS)wmaj7;W(0g`!>Eh62d)U=&HZQ_OjMr z@<)QYxf@mC=>oqm8)nNZgU^^%E?)pge^{i>D?@U0KXRD6{uK#_uF~zBP7V(GK*f;; z6_7xE_rRepPzeWY z?kz^ql@^HS9H7UXIhN5!1GPA*;xcYQ{}=XdwE5I(-bQ=Im^FR`j%`*x;6O zvgjOU;6bElxCqr`n{2>DaRH{Es-i>>r+=4wsn;g==$Wh(eoL zSU8JOj$iK$4#|kJcZ&_QGfEknZtu$xaK(%&l~Ea{kchOjp_pxGb$Z87N>f{3J1%OUy$B z%xe$(+lFTz{`UCSG=ydrgS z2=P97ZWN-o*vbp^C9rT)jN2a`S2t=Vef<`VFG*Y&*UZ_9Lv*-rb*pc7vduO`A5x|` zNGoHE5}bu=`AugWu}8RN9NMuCMu~)Ijaa2)$XG-rya-b(U zty*|hMmJ_wE&pFmeYZtVa7_DUK$uHZqS5cpdgBtEelD(aEBs$_uOESAMf~6uea%&} z?(x?a)3~#tUf^5lw~k14>yiCuGL_YJ<$h$kzFxN1la?6tNJ^ztM}XNCM^9!dJyxtc ztW7-ylv3F{)9-p`S{?oj-H`63@!%{vqdoMn#>8wthr`|IsV!3UD?cRLgTvTU3(v;S?osh@oU> zVU?@3XFia8JZYz|c_rj2=~dMCdI$0Ja=3+dV})A>f0V9PfY`- zTp$Lvbu$d|%1O6YPXq4lYn1^0FI@R7Ry%vVgc9WhetnvQVhxpphUcGue)&~0 z!>*YlO?pB)$DwKO)OVQ=OZ3?Q*}(m1?@(Er_qdF~-{kuxkXtD!^N1&3Y+M8vU3&_& zDcMOZrS&znGk%1}ZW5bO{@@08Ot`gI#GpQ+7`rhVs4l*2UoO>1l*N!(>_<+D4P(p-DM>4tF5uhAB=ojP%__Rmsgq(0?FH=t%5&1^XPky7x$I|G_F$4cyh>k zirM$Uujre4oGn}Ka03@QfcE&=yvYON7|r!_hAhn3?z67dcoj8w=U2HGJ(YgwCFGRS zr2HQa;$@I8)_{{GVSbIzPWMHs3C&jLiM(H3w>%I)_dPtbF zeWTa(n7#>J27>9=Zq4K^_Y^Fe2!3bRxOpjAJ&Dl!zN3-(d&lA|Y-8km7G(drzvjD; z-%guxgFL0Np-p)y7iC%3_uI#6^|vg(A)f4~{%z4T7ryV8rJn`kjf}BI&H=|t9NKYV z(|Il?C0S3%`NyP8-&QEgsg#BQ0mtR3aX!4#p$!(OuBrT(z12!Xoa(fsYQwM(abH0U zYYlC8Sbtmn^^k3~qFefm20&zKvetQ7&Z%2*Sc%@^95je_M2yoNR|c%)q2-V~y&3KW z?v9Zdk#fGnf^dmUc@h;j=QT*K*!3$aD5bMHcIkP}7q+24`+DeWNT))F?}Zh2LPK`hp(p!9)W>$*V=^yg z#cJK=GM8)u6hXrQ-vPZ8mVoeu1@aTK)F-%Ti4T54ZKF+7rQQN#sV~4mxMH!udd^%T*jTK7{&bOfSpmczVELA#4;CpO*x zZuUtK>Gv`18xtZ~f+k0!_jBs~>=8qeV`yE9ved(SZ1K4)rti54?+^wO>ukUKld!c) z@X$L@C47p*Q!6%vzMH0Z_&||LRI2r*;7tjv?KEyHI_eKknVD*#`&0?MWTgB_cNjvM zgi!r@09~#KM7rmcx3<7K(#h5Gg>FG*(OL1ch5iy5S|h28quLo!c&$J?miwYTfv}cU z>!?xC(7|y?SlVb8Z}>2U2mC}c6zeXjzRQbiqy0JB{_fwv&{n;)d_`-|qx(Q{7_bw7 z+@u7WUz4iF-Yy?%S=n*ypD?*@Z_tM_{{?2T5sww3?cM5q6_^q{+ip8r+p#Ap`53@QB zH^homolh@%JlO)>sR4y((vpVft9Mz#DU0k8?WRDHaXzMLk9VoB$h%R5&*pG!51>c= zvdx2^mB1Z=MO1h!mPhsoRDM4R!?2)g@TtaC!XoS#omx^w_Ox`X+V-&Qhj;m;Kabr3(z?8vv&4SOcYkq=O z5W2=6+95rLQeA;CgjJ)$jU$4nNAuUU{@Gz9PjAD7_ng07BzR2gx?7@0%eBjf6}>lo zU4q}Gj%4+Y2Hz{|KXdRT-4Zvx`a`Y_x~3s#=R$ss2m<;-<1l;UXHo7hdyqy@iA?GF@(w+H?AODfa{B!$grT8Z%cA;ewjTzos` zAh||i>a^HK=a8cQ*6{j5V_+GVq}eh$HtsiV9&NWcR!8j(RawoQ^>JT&^!DKGLpitc z)^uEeBXITahbU$;ABYGS2TdtE=72*3xozH*VK7Xv&MbHrVRCu;@8&3W``vim8-Db> zc~h4%=N7iUsv`RmK80O@nYR4}sQj0%LxJ6b{H$U0nlsk&7Wv8W84oOn-;>`W@THS` zbVzhAU;8KLw;N2?Gb!1LvPQY5#{WrAy3Xy+WiWO$&vMQ?yxwY^6O0Q(3%Z>5}YGeX+)=C3PUTrzri(Aw$FN5g!EZ$!!Tn* z&H$`nM_%sjX_HKeef4DPRLxY?n&3l*bCu!g<^%32lF$Mx5I;+eDYV=b+%xX(D1TE8 zn4*67(o#2%DBVXdUj}9HW(S6=1~&&(D|E1EJH&W&*2g_7ei2)?YW=6WsfFnh`FIby zM8?6m0sjo=g|NreCqe{M@;q0lu;5^P;PE`sp0qZN}L@1^-YSu*9aFH{= zWFy@=kTQ2{{~}OdQgy*nSwzV!^X86XD7@1#>1T)@uuz_j5F?Lf6o24`0bdJV-O=aD zGEG3UfyF0w&47W=FYW4R&}dSk{2@V%?i%a)Zn{|}y`)@ky$^+s@JIsS-j5*IU~<$c=f5c_64%nF|L|P? zlyIA6BI*tcA}`Esjhx$8s4KuRJs-7wqp)XHT}WEeV;jg-NoBli-5;KApO48T!zoF5U_(`3*yY;Z zAhL0|d?eiawwdUghIC*c=KJ*Ea_*oL{Pqut@$Wx}T{#+tHCsVk=6%iTVF8=aL1}jX4cs9D ze&X|VygNMH9(#&pH2)6`hND22ad0J}zujB!7rFp(kJtt7`+Z$zSWo<7gl_%Kh-ffp zVc)+YPg$qYqyZH8qx#0tTt(41V5JOuC(!6D#IP>lr>NtP-k&A3KIUUB;ZH@{*k8;v zJN7+3)CS)ye>xzOm)d;TpO2Y#gu~%>NbJNi1)svStuz$h*}3(;L=eCud{Osme|M)b zYELa^Jg%V!hHa@ai(v_ISs}L+tTT7-LgqgL7oHY?eJ!V3LWs>`K-Zq^t{kjFmdG_u zjVA5!KHPSLSXh@*5?NJ!whJEd!mN+4?>x0jk#xKBb&pA3cigCGVHm6p_F=3gX-2L_ zyE5;DUexC&rE3)PfDOt_BXIB|eHUPO8)RuFx)si9dCP*G*#%_&x`T4KG zb30-+&qkCy;SWY|-Z7a|#~Dt?4;LhZLI<@^+0X^zJis%;B^r5iyO?+1gbFur{cQME z@DX;=!(#7kkQ*P^Qr$!nk98PRce`|FF@3EtpFMV4#FoT9S=!pZhpjt+47JDZi$c6n|Bn_$rY!ygM{`I zea(XaJn-aM(NoI`B%wWLe&K9FftdHiLV*P#|> zeIvO?*HENgN8^L?f~2BN%a>4$j_>)|*_uK1A_4q*&->qQ@w-V*%th~tft=n>Eu+_0 zUHL4AHFWdudp|vPK+=}@5BwNhb6X(yls%u?b_TS3;m0JV#du#s&~scI-3`V>w)G^| zPZ?=H)?W9VT17n72)sR4r6Ufm1hOTlk_}1lg-9U^rQ7RhCPhYa{!8E7dhfC1Mb;C5 zWxog8)Z$F41vc*kW~J}+)1@j#yd@RJ*mz%)y*`OfD5q+r^xMLebeHi~Le`JthTSe3 zNGvNh*qW?fQdRt$MDOd`AD(JU;1_0jz6&LQ{;ea4jJD)DGlXBe8T#&r_PISR{VTmE z|3=7R_nN7hC9bx`{+5#wly|}l!8)y)`vVo{IpSFtt<-DAxNhMWrd;Jr2nC;3d3l=p zu0%5)OkN8Y5_mT*C%(e3X(W2?aY+2{ubPq)ru$%f%n;hbZW=8dWCwud=hJ8wg-&Oj zeM9Nx;K_c7=^2#F(t@XEtWvN)61gAg>$vXxUrU1{I#;1^W=K?C&x_Zv_y326o>F^k zfO=9$KV+JtXmO3JvS_xLlTI-A^^%NGy*UQ7|09io zNUi@a%$F2rR^fQV#V`^fLmT@0_Ehj*;b%2FT^YmXpKEA>z(K@hb5Pd%fU^ZfpM`l2 z>_7OyM7dh7elZbrB$}jUn2bJBP&*;69ixwTsGUG}8q$t_X zzgTX(>JLaAukArRKg0OVoYADk5k2%@X-|9{y=_7Z%8UkdmGgGz?ap28Pe`kstGZ0y zs?#`(XHTGhK@!RLku!+Tap9#Dwc4xVw=YABtwQ(|PaK|DN#04lF-Gi)kTf1TRN^4Z z=~+^N!69CO$-!SGx|Ry%-mG`J?O|qk+haG$y-zmu)$d)Jd~k72{DVT;=!AbJy$YHBf>-x^}j^FZ~+9z$1Z&sCx zH^dWpOU_`j0vD^i&3W$1iYFG;B86Z9e(`GSRk+qh^b1-aW9E2kSU`HdZ{c4-MiKQ1 zve!Pf;K$K;A-c>Q8 z$UJ`J(hjR0ryA`|P-s5vCWw10Ac7gF_V#hhTtvkR$#D{_HCxKQzHzdiI+ydt>*jwq zk5PZw7q^c9gks;(c??1eo_)Dn$2+1@Pvw-jfOdY`1WGK8v?g(iT0t%;NPLr>-SW1mUw$5 zSyIti+x1m6I^BH*lWVJ*be%1)p>bB>Tb4-8+>*f5y2i^rj@CF4dHK*oy?vGssu34V zcJ$JE`^fjoqcrLY2_${!(6Anlu3Tz!`vmc#%=fGWh#4Qj>*_*lI&~CE-S(K>Hz%c= zA4;JXEYVMsPf(xdkE1Tv+$g)T6ED-aGG}4hv028yhT4pgS&no+dZ=B0S93$G5XJlM zpCPtFr_n;+wZ&&2HwLxrhuY#3XB^$M8Iiq8k)qM>$y8HGpOqn_J88M4KWmHD>4_ID z*Ari>)*ukZqoS_&^~R3$S^pHGyd4D-1%D$0oH^F|*ip1$-)5b(c9evMn+)LoQo?x*>{X70q%mtYj%1#&(v1G|F+9R}L z1&fT#K4%_zkD4U9hPpl$7jRH|_Q~#U+w1&LDkps)NT)*PpQryVieO>a*&YktsiYTh^ z_u!R|ntbGPWLSq+f?NH29(JK67te+mk4nFNEMKJXk~?|DOTa(RpLU~ph%A+8js?Q7 z^9fdr7kW4&w`eZf{?3q&%+oE`rE#EGl+dWwPUzlhq{w+PuRz|jg~*@aN*Z|+BoGU= z!^&CABpNj2Y&{%NWX!$RFuSJozI5kgT~>Y}?M26fJ>)FE+&8TelENzK4)$^LW{}R) zr%*Xs{J$&QOF!c@!@VP`dS_&bAW!4Juddo2tGJW5pY^S(#NVFgmH}Bfp*Q+1IcE0u zBB`T7zCvD2M)vn)f71K1ht|nvZIRo~qSUeX@X)&Uvd)%WDkgFXX}ZIF=5~=3=4uCp zeSer+Wl{mae1Odt5RkL@?H#VdS9mBgQoYOy%k=`npfQ1M#J9cjuG zC4Pe!^a$~pcnssTKd_aD`16wO~;I6=Yp;l@90I%|yq zBi?g8Q;(GXQ~q*(Yn;Kqk@*8EV?Der`^YDmYX(nlvL+5}>8Y?wIL%r9 zQxneocTnQ4$Tm}l;v z2mjrT=C_NQZ%KeP_Wt2fkdDW%UuK5YU9&uAu6%Q0tN>{AbIeQW)n5^DV-4k8m( z;cQTP`7JrMufQiyqi3c`9qee-HCMY>0Pgxk?3I~3PSI!v!fzA)gAxv7>{^4WZ#j@ z&-a?mW4Rx5^wYYYrX#uDYmw=jr_)#MBzwGj@Mouwu%zgQTk4IlD(i*V_GZkX=8Ljp z{o!ldLo}!MHoRSQE%G={<=1tQ&571$=BJ@w@wbmJ~`f+<#j{@1MBf zz2{|pWp1u+aT@C?=bfP!jd|QGj?dmQZU{-U zD^zIaH%|vBW%5S<67Wy_W=V#3aRp|?&2K@^x~ z%)h|X0rw-=+d#w4rKZ}28lwTm?%KIk=tcf=7Ci2!veY3yiV6siEhqo=&0lQ;4Tv$wR zrpXE+B=$xIyd3}nUELyu+*hU)TUx4>_#Z5{I@*5&DX*iteg@+HRm54&faf>Qx{i*= zrD)#$aU->%`2SkvCs~Lp@_cdF7r~ReV+NDf8zFph z{WD5JlYVV=KalD(V=Af-L?7*Y9`(J{{RB`Z-B0LfhAZX*e(6N!|Khn;vOnP;XO%>tHtTjlE`<;}ZOYuBI{m-@#}{Kx&cylE z(3cOW^)IWOotzyeFoiAT7~W)__ziN&qUT$$@uS`ZMF;pgo8(Vyq@!u@n_>7wuJXpm z#=_+-%k|xC9q%#lq6iMR@s&N;i9st!c8ZI&X3_>=5cltWr<6{yB`ta{iG2Qbgw(L( z>idm*r9DvZ&QO-^$h}UzmSs~bIfE;+{!edROuK#F(|l+ZBwj*L0oKk6>j*2=Q#dMs zwf+(E>*l2+605BGH*uDjT$HNXZY%^4tEB3{2V%UhE2GTxn-dwA!}1aug0FYCG-VNT z6iTbbn42FTX1)7IDNTB#zFiG>AzpaB?tPBjqVuv7W4$f*sdA>mxaPY>(b=p##NBmN zvTyqqPGLH|vG1wl+=!A?AStc@6!iCV3a6S#3M2T4BuP9-hMJmLvv*sb@lR-W?#OJZ zHETv^Wun_)#z~=@Atp|ox_vY(PYaTm*ZWQHm_g_)F%5qqYzHA$`DzVorrU9%^S&yEX9-0YRIzlA>$FUS2Uem%uu1Kt(udhAP^ z=yQd~<4UF%DXg*+1*JlqWtNKXI`bcSuE zBCl1_aR+kT(%V1GXn3W9wL`j!ool+*2J#hCQ8m_ZOqJ3)8y$QhclT3IoT#9N%xmF= zvdg@!byDIYpN3J*Vp>yIqH9YWiU4g$g{YSu)~1O6r9I)baqUT4DrQ23&mFvP{pr^w zA+0S6Xy5a@+Fq$j+u^UTdAlp_{!#Ri{XxSq{Y+1WGr9{>3GjNd2JfgB)i+9eW$GSZ9y;5_2BAuOVCQ9}0Oy z2p77yl%~8n%ZpJH(*`DIUHL6TEXEcW z*NkCZ`!9F!R_oW>vo9S&L*jb-<#g4&A_~QZ1EwbfPickYVCoaIJ+r+F7Jm9+L^pK8#wseW`#O;2#7RQv9>if3k6m!OYRiaA$4=Wj0Ma>aJl$X{nHs-D zA&#%u*Kbb>U1fXG%%2`kc{L$X<}fV_ZCma*5Uyxc==k}m052zj5DU&q9&=QSh3&B$ z(pR@+?TlPnqL+F%>&j$=Cz}-Ae0{tmA&G-2uAf^1e=%B;?*1$KsDU`1{4F|8)3dTx zu7*lbrQi4pGV%D?a)+_vD%V?N7Rb#i>ypq@xo{;@;O5iVJZFm=lWt%Hp9l^{{?zllw9uD)>ta?Gan>m&qO5+RqaSh$?09T| z(umKfOJBX$N`|KmOmw}H3fk$p@pX7tuxYaMQ|CuPcmGPpkK63=1!cuwqdR+c!jD_f zsUPAur2los+%M3*A-6TnxpdaJ!O->dmeVE2l>Dt68C`G{mzXSUXBKG}NaeJr+9K|d z!cDU222BY}J=N)G7z(h0B%NLR{T8b2Kw|9TOjKhnS?7EsiRA8v?x*4B$YU%z31D92n_|C2Qg@u-K+CqXs`TKXB zeMJtANo>tHZ>DWJ<*l0cM z)c9*eRNOy|6r@zd=1o!SekGT#(jT$kTO@_-NrTKw=1%n%PLZ9Bvm6N3y)xqZUjOuJ zh9a>m5BKB6u(|aRT)**b`kC+NKD?j3a@tr_FoqWEYHiRmaYp3LtZN;7zTehS^>dNRyj1>xO=#G-LN!+vP8zILarVZB*`?(Wq(v6AN+Uny3aHJ=G@!3Wpq~kg|_p*+mJDb>d zgzL+1H#`PL-}0j!uAS8ukVcCfUtnHzK8SEic6`rh!`e!Ea-qo9$z`hjZ{^^du%@+m zb}BZ0OJZxRDV)!>zd^kbFbpwGe>01tvzVh#0>v-}n+&c(KL@NCOJjK$Y8S>~T8{dk$3paYb=Jk0};zNJxSHp+{UzAfx zcpyYzk*#e`r-}w`FO<6vfPx@l8w?}M=JmrH2ayTqDFsD(5!KMATH|UpPvT`aq+0eI zFZQJ<8yqTJoy)oO<$>0CUBN~Bku|A2_74n((jsE>RmV3oHuDK~h#_KzWVX!tG}}_Z4?{++%{{!) zuk){R*Q1@COQPeJikMkhHSNG#%iB?KQ?jQXxz=`m``s;1KVi{viP<8yuK!uZbkv@6 zcbojKcaBKijX7eFnO74-s?hoAK2{APyV-4^*Sll#N=A4%#A*{)fci}W2Vpdy7pXC_ zI}kGkR|(4&3(@Zef7GSr+T9M41D3>Vx!SJX^b2mwS{G2~%qz@)dXJpp{rprzQ1b)l zE7gbv&Rdu1f*ko88691AX!sUzop}d)c-Cu+RZlL5KKqXx3p?-OuXkcKF}e2fUg8Xe z;I=TQ@*zyy$|K28nLThC7p7SSmzEyLLDiAiRQz3&JBC8=rqTBO*|KJPKmVQfJYS2l zJ(U@wWSKTCYV$j)i?-4M|F$Jqh?4By7A9Kap9%Cn1kHB$2AB?udIle zph&4-IknRQQCod0EBNUHAv>EAar+uqo2)?kp!%U=EUF9nLTk5RrY6vH=6nkxu=ckd z0W^tH0rMLDaPU3V+o5e=xL4Bcb|J;F!|dPm)Hst^)tn)Ble1l(N8iRc>*JwYovhBC zdMnrCQCEvBMWfPKb{l5|)mMxgKW9dycDP6loDkDW-WHr>>u>O)LaPtmI@ZIN9ro-l z-T#mt@Evo}Aow)(?Yd@X+IEN$q8zEwvU|Lr{Q2j+sR@<3rB;l~Gm#>>hX3I?A=B*) zIsaP%aDV-+8fbBSe24Ezz0RG`;4?ihlr3MKNLIf$%vHJt4gT7hFQIc?i{Eo}y4b=6cy;c3O*5K8xF-$$!>rVmCH zTNi6bavQU}49cpgg=xGie7J%vNE`?OB3&k}_nFRz9SnC`ga>CyE61<>0@(oievVPS zhYamMyffYI{GYfX-m4|=RS7HD7~vSP(bCXd@VABjI?YUAJDroh#~-ve!+&emIh`%} zEo&tNCUPz7GE9ImI5}kzna7(AnT91g5x+^CabaY1`W^W1C)2#U@^cnne_7d9dv8-> zX+%ds?i$}7bivpqV@I{6Fl|5Q>^jGWlhT0?&k-$j4>Hm}C&P^03tO{|+(e%!p`Jos zyJgN`!6pOov})L+1V7{t&Wwy&A`4Yj26BQgTx%vh;>;Dh07d{uN2j-rw@i)JN=1&5 za_g6e0X1iiFyAXv=jE^UZFmU}P(FwqSdaToW|fwcaTgmhVq+TgADssJRmAD8<9j0-sZl`ofGZRje7c{L3InlCEH`ScCEDoU&W#?axO>Vid`hTS z3NIaMP3FJFBm)2XYP{adfl5o{kDjeWNtZtGFs8(*#PaTo=(jnZ_qPZga|Oc-_v%mr z#LE6kDW@HAU7P@pMV#FTkoZ#8vuUt)|HkOr|UW+v2JkY|lL0l8^2p;#{XiQ2)9p z>p(uZ%d&L{p&y+0q3y}J4A%xC98Q2m>C2BV>b1}A>z?-urEG;>`l0sI&t-3K=RcAY%yon_ec=z)ybis`7XwuTkc-wUw|@g7mxN0%hwA{ zt$6c(A4Gu?oT;=CG}V5b>a0-N>lt#8-R$n0uZ)Qm09qqeEU10Xq5HSw z{kY9F$|&`V--2Pe-z)PqB?*fMm*cGFQ}A+!0r&x;7JqY0Xzydk>$$8Tt^ze?Orblc zq%xWw)JorV;NJ5AD!y`>Nt?gS=J9KJO4-9P7|xax=JdTb_gz{ExBQnX_`(h~Gz|g8 z7lab?LKf1fZI>-`9xf#NNuvzB=|hFF3(HPyXFp|sCOGg3*4Eyi*&jM68|Mf^IXXB; zxt6pJ+fi+=*+%RSv)Nx4CELON(mFU7IrWeT)(-qRRZSGrjQbK=W-&pYw3WD~PP_PY)$F<&KgWe4TB zzL!bXGCFkq&_AM1yup8L( zsjC@fZy&;HsEJ%fSVHAqqDAK5S84bfz@(^$>v)JCTnaIR=h+WAdk*4!XUwqaivN1v zySLKvSy$iHZES0BD@gB`00lgPZWoZ_DDT`ZPSaCD{=l`ZZJs7pxEA7rS4dr!z@j=O z(~ojKNXUwetXWnjQwKJ_N^&^aD=il;qb3981(}R@(O3X($7Qic7eV6dt9ewCQEBsi zN$wt($tAd9N?gJA;CXtIyz#z-Z$Dm4kLF}s9b0}b+P+o1G?PYkq8bIx!@@w|7>Zq6 zj%-Oox;HT!E#b3Zxm#T{B;DTVYPbv(ZOTQvuO)Og*|MY1Y!SH+wLx*sV&Z^QVWb-~ zgPR9M2Sq+yD1lOUep73MoltMk(3AV~IhUlM39=a-K2!F`xc|7qyC$Za%#fl{iI#;H zD(1~#L}<|7R*=Y>nb5Zh{k~7?^@Tn#6EnQn?%5{|FuO#y(fY4y3{lp$}fZj)}*eK#8qWwWb^KIqSz6CLC^$DL* z^og^C?89al90Kg7f7OTUf!F%DiN(|X7ezFn3TUpc$uvic;C9hNj-r45E=(7#oBFD4 zG3B9TiZ`y7ASt--anb7A+&^C`>$pRKWqJqd1Oy@!O4Do4`=V4yopSTPWjyw209#}{ z#fU@AzkPUulMAjRL~|y39#ZT%D(=1Fk}q8#=&1PXmkp7UT@_ytZ~Zek`}egPmMubV z(rC-$5`M9{rK!7X5fS?v9QrP}w&hdD=XJIBS`qo<2MO)r^1(8B*V0$NzS#e;Y%l6l zyaA9Gr|ZrT?|pCTOuH6TK}3)ZG+#?UXX&8 z=2^DBAFl6g0^bFY0kMkdvRgJS7H_P>x!seKcyf&kL@c-)YN4hhb&T!YaBZx%Vd`j$ zNPY|5qGa#GZUsHgA&t*WPFJRDH`DB7PL9buEQ2U2kbiOxiIE`FuEP>uOvUvncbSWy z9)Ols({uPKfp!HLx)mXdwsM`c&}(!VmT-ZrKjid!OVNAEQU-*+o-vDmMYdM7wbEj(6ICUEd%!6VCBNfa&@ym23cOTS=Y_Y%WP-ukCiTQO z%_4m63YTTQ@^P6LR$ofU)<-NX%c}OX0Y{WS=FF6ni=^fJ57!p)zy4~BIJ;!4B+jp4 zHqpsfjzF+{Z(%{oLyCcQc@ph!dIw zcfHBXpEAOOpg}uKUW-g2%`8kOW2Dc66p#a@&lQ+~XT zKZtHYT6Mo0#hBKATd)0xrw!WfuZkJ7wt>1(DCJp@Err@!uM6!Y`95=)?U?5#GjM!6 z*o3KYHJPJeXEw*CTxwH3NX3o4;k`fxl??GSbQl@`iWG+UX zPLtRAJ9G@KMts#@;nyf8bH5EY0@N8A6kag6(X}SKxF|ub(NfrLnoco->vs$_uPo_} z62tk-=6!3fg%OK%Z@dD@jwqmyV%s;mX;qP*Fb7wnKHl#}v`UQ*asB)%;5&PwTU-fT zT^M}QB*xu-$;WTcbK0AjtN`lw@Hz-&jNDKxejlyQ`q2)G_+p zCVxzIX>R#BUExZNYcENd{Rw!HCH4~SM-;cC!(iurob6ZcuV}oWKOMgwx5Kol4R6)4 z_KA~5Enhu#>(VSw?b~{zA9YBChn$g4ycmt<{+tMM0en z6Ole$lP=vD<*$3}TiYw4-vzy@xrhRa!4 zf8}0l{Dl5|r^2oKO7rKJq4JHlfEEpL>thjM0?tu)Fl9Og>weZiG=uIU=LAI4a9df- zIQ$gFtthgVVlYjiMlwNkMcSo!NK?aNWck|Y*FDS^GV+_CfL~0>hAy^B2*N`@MkRc&s$Bn>k1+kk1r%bIB+D z?mG3YQ+V6YoVBq1`gwn zi%=`Nqq{&bYCq~n%0uV+ty}79Grc%D3eO9x%llNb*bY99{o9co-JCPy7`H^7h{J!8jUaY zJ3+fqR*xzp1v^g_`Iw6hGUHe5_=Q(4u`e^rX|5�GE5Id{fLw^SATWh}p&k{`RB$?GOA`SzyN+YDk%R%e4t3jzws zVTWEz#eTB=bmA@2{4yYct3PRZfxz(B0s*Q1eyMwYT_$1fixpH)=PoS^-0#+uwK%M$ z`#^-+@SXB5$eR+(KI}En0P#PH&cm;X>}%uh>e`XDARtWzL8*&Uq`MYc1Vp3;$SO@r zKx*i*0n(*QjnZ2{N(c}jO7D>l2}z_Rp#}&ggp}Vq?>~^tXXf6Sd(L^D@1vRZWW3;Y z=G+V*Q9T!+SEf2+^E%`S-!8myYD^+6(GeFHcqsqby`*_C|l6s zeD0kHnWG-U(Rg~gVX|5&v?&Kzp*O8i9eE|&y8AY$D8s%Tt3exS0p7mE#WEArZ339h zX(8DC{ZnEvce*T0>4xs3ri$nYwwT(|VT|#YfsKDlpbSYLHqz?G3;03MguDW}ixEC# z4NbZ1=fx%mCD%iGensRDeFYjqF!ofP7os=bHWI|`Mrx^Nt98;b9+5X~>`N!-bJ4C9 zfRzEah;;wecM;~byld;P`G7tCB?1u;<2;Mso65$`^CT8aMM7mVNh}yOD-+KB&X)Y zec1&pV|nz=VO7V6rvliG%Vw#$m-KcbsAbxEy@)V&W7Kv^IxGSkR5=fL{hB}u$;2CKeHC10v)P>(8eMjp?0&XL#OTWu@Ed6>(E7vZYV5tTK)27KZ zAT@P(8Oi`zgs+Ow0`NnRLt+zJLPah)`mjGxDw#@cO3cihBm|s3xl^cPc4(Z$ymLR| zi>NnyN(8Xv|7>k65PMfq;Q^uH+V6@MH{BcdX;65^(ggw8uQO_W)N*n1pw{fG_cd;< z#l%QEkoF^`)Gai-v7w(AWPY2io(J5v`lfjxko)|EN!4S5$f0b0!w^$!uCg0Pk@kT9 zBWV!kj-B(Eh~lgbz>I)o!tKe-nOq4z zx-HXxOP?0B)@v<$_engcn`H@DU8~4lSAM4aNnhW3u}Ou^Z!tED+s%}hvURr$5!v4a zKCt{-8#W1mWWN2mqx%*XXVRwbQJBn21F|%(uHnPJjHzQwAWH2c^Zn51J$R}W1Zm)Z zuE_x&TQMC*a#%sgS#=REqY;=9ee8|CVOn@Lx?VG4iaqt;d?dvQHa}!K<;vFdvanyn zsZ4}#pGs&AzM@&<+hw<{z~#aV7U% z;IeqKiRy{vQB9K*wmw$m-D`KY1|OGf34D8Zht9t5Yq@|J2(mWaS0Q(prN$amgj1^A zcxO?!I=x<0s=d}H?z?ZQmmUF$lbv5?njf#5M5LCHs}EqioHpRBoR5$TK$g(^5ySr9 ztof4<`5ro+ia@|rxVgI2&B?hN7jj4LZ&D$h7h+4@(q(|#p*l2c`t zOFW}!Zh4)Jdj^7fOS7bX4q^m+Hpno=YAo_u!Q3Ti|9+m+n~+bQC+qY4$b>8?e!4}3EqT@IZ}z4?*HRabbin;;nmjO7$r zrDkbV0(VXG=;yiT!dD z(+tIS3vsZ|?)1G$Xu3ZFU-;j#Pb#&0h_fcXo)WiU^9UuF_t%}h8i{AWluBFJW{CkN zS51unG57hJpwOA>&*=Z^R_eb#0=u~WzhlB}_Y=}q>JF2QegfU0SzF7nld&Gg9tP(zD&|uLlR`;@PwGRg(URQX} zJ3@DH)w$r7Q{G9Pw}2AoTh-Oj{3sgd>9@&%gCu>{b5U=I>yO?D&)8{{!mW#?xhCUO zdzZzaSEHKe%V`>Y#{J(>Q?4y+J8iX~-Ir4@%~Af$@7R);vUwd*pv*zYxK8Cz_p>fa zC)2k_MA=eCg4enlfc)3{@(}3DGONB?ueWWt>j;`S?At#4i>Ro}*gce3cTD?s=t|yD z2y^#6`zewm%u4(9ZbD+PR8E)-|mI-95#NTiPo#UC-zN@ zCmnr>&cMf_6?xZY>>KOU5Es9e+}2{4SX2_{SAxwUnA>7;NIzYf@1Rd5F|RWEl{fAG zw*FRA^z7Y2%;p)4-(DZu0}%Dw(ZPCXZf<}wr@nswxrT28pzy9<2QkUAGSc|1b5 z=RNzUO|6Y@s{a|F9Fu4gO^QUNAJjUhKHT+Y>(ul->)xH*7cd=HD-dXXTVL+4H~b^x zghZb(r>boGtAo|lKA)q_%ggXe+v6_WGe1^*9R)&D(zBE&%yMh0$F?W0zHz^Z>QB`W zp|V+I`7|Wp)s`ZfTim zbiBpvvtp!OhI7`rCi`!YLjh|If9glTN#^*KaU;bU9q%@TLc>Ed8NY=%!y9n+T2BAv zaIBU$tHZ9~cW+8@toVXCol7wz$5U@VppV})+`_W4K{fLsvAZ&4yJ)TPX1LNzHbwy6 zixBI}e51dKRU@{L4KOv|&am6+;JVmYo#tJGbIf4&l($GcIC!4e+XBf3lP6Yf7)J70 zBAd&Mw5_|){W9a?zJyc29Zl*seU8}s*w#jtG`f;ViDJzFs25dPl1?AJcVsHxzx>N0 zV_f@%m3l)P5Xr^5gIkmqUv8%bksq>JbJPQZ(Qp)Ev7FKxsOvT?$j$JfJTnQ^H);FC z76BLwNILc)`u&u}dxi!uCF}&TJ3RX_GvX;1%HhF$L!!AH_D?mBJhQa8IoK`5A zy!^a?F)bW95pMIdqw-URnEmuKO(Kl7Yla8q<}6Ymd{~QuhC|50ki#x9Tk7>BkoTNItRtr?+c2@` zwUur|h>l&1DA!l~!x5)Uut?Zgs{wy@m>MB?hHB-woEJ`vSbh9`-u{t~=SwNXYpqv6 z7uF5=R1VZ^)ah$XR@m2G#QiQ!ZK#Wl(}#9F)=l-^iwh;r5`r@~;ms~h;*Jr3 zTv>SCfu8bbJGH{C(xLCwfe(eV-no5RmvvB1+I`q~*Um#d>$0O4nWk@${y{sucsW(; z$ns%T)rc6j_W3vcbjj_Kj-$wL--5lTyB{rVUX*-!NqVl^$rGTY!TjHb6-Jl_l^Nr z6Ag+b5tkf>f|(j}1+${O5K1NgJL^c-hH_gWH}>NwyEEoL&b<9&6i)P-d9t|0Zy#I= zeGpM8q!1A1lB7mRGI$oYUwda8o=_7hvbH-v=hGJFRKG@2gwrr42dSOEdf|%G z*gA_pH`6zrm^yx>a5Yy+x2%#AyfcNHt>)-JE8W$vK6>-z->hc$KQ~!lL?eRNAv$I< z*-h&3{75@&tp|dTQ_ZXpt$QLLRb;DKuG_rkj&#rSzqlGThL^D@7%-&jXh! zVoh`_u#pVm(;SR5NG5UC-l%o=s7d#%^TH;IS|w#UKl@e(PeMpVOKr4N`i zW+dHnh;tE`TYmIdl@HHMrP~xiR49VJguKvqjc}Zwc*1A0v5=Ew}Imb%n zfI%7Wq#GSerWqJ`@#L*Kg8Or29;1aMY!UL zxZ5IV>j7;bv#PfxKE6?6-D25nF(sB4NZ{Ptw(qz<8I`BB{IB5Aj~7ldhaWD-t@l`$ zd`NC6E8KW|Yg4M|j-#U$L=lml?dBA=c+uaptb0c3N=V8pR$NlHZrHPSpOZ)PG=>=5d-&BHHhUE{O{Jw2gyduAL@_%LRHTI7D= zLnwOsF)QWi%Huc<$jO*K-f=6_ z>4_oU>9E`5akSMTsCbhJiDYW<%~Noo438gxUkUn7ny+RI+=D8MCKdxa=Ti=-{$Tdf zpM7G~j0LUDn-teCHHXg)+y&7ZtOvrY_NON~E<0|vElqLD+M(fc@&#U9@}>`tYadga zG2g~@c3c~yH-_bVTBK67*x5INr9R%al28}NG!2iSAf!$Y6e6;6*-#kXQjVpc=n{JQI9`Qv|~aA z7p*Jh-WY-`ShNEDQvR6Y@U~w@_SmU1kBV=r2juOnVE58C=yXol=wS6d>YImoe;Tfm zn!eq)h)>Vh^o%%AG*8AT*5KC*y-E7F3bKH9W~Z<_(&(Pb&U&}7)GG$v{hyMQBr{>* z+OJtXOcMY2jSs!NYkw0Q5e$A)_(lIcJOV4pSpal+uq2KMW1Vj0id!G zU#X@+XQgH5UByn{{I=!2Rebv;^3y4A3eb5!y#|V8%9_o&$<<|jNbFvCqfx6?+>Wxm z;}u&(|JkeQNRG~eH7$#a=HNqWP!cCrCrmuHmWu^VD37ZRg}s(e{O$kFMo%#E=KSiB z$gJn9!S&&X9hP|&DAAGt8uj~-M0IkR!88TZ);%6dt5&q(-9Ovd&6wrFSvWP5W%V_>l< zT;Vqq)^krj)7&BcHRX@ecfjB{KcvrV+WKR-a!v3=cjl4wJ2#pmXz<2h>8}vlshlIZ z&d4*<90}^&+L4zU`f8lhf8OE!lrQ3MYkfa^BGiX(ZMJ79KufcJ;rOBxP&s1|2NEhz@YBZS~bn>JYd*;-VPc%`3%*&|5s`9^~j+^`^)3UQUogen{%}6;(s-d1!Harx%*<%ym6DdEI zK7aW9f5+JOUc6vTul@Z>DJjl)H(_Sx+SdEF<2wds;FdS&W|hxkEg!+k6O7e1Sc;dp zKwJSP7i|*SGxFgh7Pf(R=gS=*rUnZU3$*rY6}N*j7U5!^CrJlupyY<8fs&SND*<@h zFs5p=NK}UX}%muOd}e1J=bJ>(@gD z{;V1-ep8n=;&$IJY`ncyxYOhLLBQ5v4YB6P-DNDKL9?%m@$Z$;D9WHsaOj|(nyu}W zbC$%9gs>b+o5_yo+Dt#*Brj7_5z(R`pG9*Q3P|Ca*d4z0sa^cOjrx>BjUbTSq2)bq zFj#!;lS9vKJ=6LI^vr&-dv$fb-Rt6qal{pa)c!gT zRDU;8f};|`(IsDvylM7VYh&C&ouiD_eSBTd>_N?D_??sJziJb8CD+hRnkL-Nnv`OB zJy&(M-|+(Vzr@;o?LxN__H-^kLr-11ya@I9C$VH@&3XX+hpBLS;6SbD4lZ^-ZSi!t z!_K{KKTlox7WiGhOZZpYv)}q{E?(gz6NETN)87#~W^N|#he{T*NqLe3w*pWsX4+hP zKpZxEU9;fZg3tNa%&ZQTRGMW|lAhetZT%cdVT#S$(vUOD3otb;-;r0OVC<55&z1K< z(c~Yxmr;*R?tvzjUORue{^OFax`0fo>AeZDbs1nfa!yxatwZ+vVeAfnXDBp3zC26> zs=qsQu_lt0AU15&2jqCHBO1lCeuE~rXWq3bhb`6qEh$UH9h?M#?RT0^bSbl%9hKiX zROY6c(z%$UeeQXUmqG)U-WLfCkx-7=fWrA?zHr6%26x56)~P@}!TH`QSXBwev^C)A zUCG2e=&tg_1Vzf)X?yGUska;fg-qmuhN_8scdD6Uk>-$^eSxj@HyXlmKdftHDc{E= z$t2|`g?-~ zPuej07~Z5M!(Oc6wiaSOZ9oR)4l%2d%)S+&Ib;0JFcsWr-nOsx?0m|qy-TI%5hcM_ zm%T5n=Yks4m(URQUrornHWTynXb1y`I&^7Po@tT}daQ9)I5*m9a<$`R1EhRgqSEm?@?x2R$p&zZD3gNZt%ue&*zqiv<8<_DQyO@!-Zj$HX867oDK;hwU#zx{L- z(8NxdQM=~}#4I)@o*k0(YAqQwkZPgH#@u>%#I}YCeAHCSR~_;wFrj7CVH*}bV;hpQ zXx=AJhQd@+?j0uECc2`wx8|%CnAJzaNNtkUKZcLqo*e7z@QA##+iRB-_Jl}2T6a4V z72P?lQcmvXDdZf1-le}ED^9&7wdB2!u*?meffXNSIc(G4ohK8XgB9<#y5^Q9Y`&0c ztfzfQ0x-dja)}puq(JLoASznoHbd=UjQ5qR$8R;v232#l9!=`rmPspnjW%C3SDd58 z1gNnu7>#aR&hsY-6jy@kv>`EB2ISZn?k*YfJfeok~EebjWRTTc)L z){2M69OOVgR@>TMJy^&In@41r9%$(c${cU0@rJ~-a+qVlhj%;kFuvzn@o+ua5#oT& zX#P8>{KV}Cr;aD7TQ@yf*wg|&;+8DhDhatU-}Gca99n+Ltmh;Fpu5ZiHHkUAuV*k7 zH@u!L>L&X3zR-G{PH`>$TrMjRz2DTAKfltdpAvYXWDy}oc4%+?7~gf|x^%(+v-9;! zMmiDA<=%~E0*7M+Tx+h`1QVfnBI6aYU^DORCUiN@jfI@#V8aHF!&Y-dP+JM{K1;gwnV7Nn%c+(dUzWR;84TT|9tK@ z*F))|B zrC@ex9!MIqW*l(oU3styN+NecHxd%#hb+i<|0Xlnm`tpsQSpE1wCF_XLZy#3g(=gU zUQ^avR|h!v^#+kpLyP}RhR|Dqs-jj@_sd*~;bhn&>z%uSL~m;ok*9TL4Ud8w)R|Md zJ35ScMo3j=PEcoahP7|s2xl#DY}_4ItpHRk1sR2zw;z^`FtHfR?bXR!TcJ^<`Df|e zJwJ64dtQC4EPAf3R{a%c2t%LFUCm_Z;aZ%QsHK%(k|v21TDzk6OJlvEmNZ!tb$SsViC9{; ztO9|)=yz^&0KB@M-2@0An+6gjmAJd+zzkE8&c26cXun`jGao^+t(MHpZgo77AXR5g z&_`#Q0&M`D4!nJjSrfleUk(U=Am@issUtcQdji0zF)|j45E`p2ms#?{)J{ zLDNV%-{!CKSYX7cInk(oIu|#BiUi(IRxxw(o0y%e)?YoW z`BXCi=n+wuW%5FvR9J)q6i0_*$d>wcQugp1VYQ7q~p}skR+qSETAg793`I8B*h5(C&S@C<(+<+3qQWq6y+K3(`Zz$hv8Vt z%!=I@hRY)DqK+FdBBu8DD+&w<924H)*a%agW~JX#qeOyqGzI>WFZS&PyY1R!&JON& zJce6YE$(KLj1GdS$wpojzKho|y$FlISNJ+RsA*Vw%>1o2vb-h70nI)q5`O0Aw&BVS zfAu%qpB@v()8Ki--~uqq65M`voa!19z;;Xa8NpWI;C5@J6Qy4`F-#9xiH!ku#)lo= zwOgwdWy4D~jXJl~;a@AO5sCno!@(a`An$N6(*p;80ZCypIOZH;V(PV&Gw|4NDI7~cUn97m*2JI z_l@A!K8ns``**GeoM{p@Ofb;-dHn;Xj9In91sTOHm>nco)!_>{m36m$%=?Ac?Tb6a znhoP;p=e936bB;?Yt_OcqYrA{sL|3+Dliy~`7P76>FToyzZhI(H8$BF9ytL1R$g=`so=?~Q)w}X@Q^GuLee3y} z<5)c>P)w-zW38!je1robf}S?9Wrzcsy&oYWC=t@Y*Fyjjocok^5iQv zv)vo5j!CN?nS&g@9XINpPL<4qL-?YSC|8r@GZ=Y!47z-HtALeqAS!bcHcph+|@K#%h&d)!Z&o5$Z!%mo>1V4Y-?^jblPS` zW!C*wS|;yD0DJh)N@ipg841f!62rt%ySlZ-e5am+n!^pCNF9JM-7&{MLakfF6@*SZ zk}Taemf(786w^dw-vi}bN>E2DQa+PO9>k0HEcpC=nB0fA&vC>qwm$^LH!+qnsc(4C zlNX;UkJm+Be~rJ8?OqnF_oSm4gNHeIs5kuM*(XCUJowiZ&My^Bd!|`hQ;xU#{4^`~ zOEHwOEN$Qq#$MJoKS)03?yDZNfo%$`+PY`@Ugdt=ygGfZS6x|#QLTK1GU83DJ(^ra z-tW3VkyC5(-fS!&tA9gpH*^L?-k9c(renvdU7FyHL{=Cl-4S*`U`FoWvzrRgyXr}v zD=_X^NWP#_w>sTG8*+Q}L6=`iQh;Sw?db6eXVkpS|1tc@$y~UKvRN&0?=?FDBLBDowUDK1v@X9K`)kXTKiLvnVnQO8U zIAD4liqX6B`Y10{p;1t+3E>jlHsSZVX3L~Hw86D>I|$*X6jL_#R~7EWChaLlPWxSl zqc7tfU;&`fVpL4sCz&l_O1=2kACC8^dtYdX1)ct05JK&m<d z?nW?hyzHrFRD}INu2x?%Z5Mb%6Oe_&d&m6m6l zcY8Ew!@8|;GVs1+W=H|xBqXq^{5y5!X2QjM)+2S-@RUiqXE~)k=#~WTh@Xyf&o& zw$vzm2fGDZY!~bl#4E+9Y=-q>T|a<#t|H3%Rk-$@l_`dXw!&B5-1~7p5~cdOSFGC8 zcul*`6Ba=l+ybv{ys_q8Yei4$=VkqxAMwg{0pxNNUs z*n+PrWZ%_&4_PJUvA!uF18J+1WKu#%ix(NJHr)iM3ofhOQP>wmqo+_34PZd(iHuXq zutAgl(~EAs!}+7K*J=@b=#5m=1&1uH%<@D7?X8}+%H;A=yv!&3w!-0pOivFbfzvg6 z#6JfH#9df}2jBW;{Jr(5UZCTaotn-L^C7>j6I=-71iJeam7on*UbTwC;fTPLwN z+Ya^)E67m#6nO5A0z5L%*{E`E><|ED)GH-DMr_T zO>KWF(IW0m%W3V!nIwAwd(^)W@8H?$nkD4}7>aeKiJ0Ua1#leH!&a}6V^o2Eu-#;S zBPi7Xzz*o+7ogg1f#;QH&p19}lz31%&ctS3VVs=uY?M+GD8{_-e;@Lwjm3BGR#FtZJm8R)6o-~2Mq?a zQ34Tg*LXApE(K-I8r(W$9c;1Yst{?ZwQboY!p4GAO*2{4(8;2I$Do-DN;fCz+U;an zfkg0qQ8djlqDEd2t>jywmoHz>N*Ljo0C80E+LnAoLAU$i7O5&62MWHyc?UFVVf;*paeW*E-U|j_)J#nA4?= z3R~Vt=;+F;I}y1aty(PJ$u{eHkBe@6cP~^Rx}ZLULt{{wR#^N@)2@xmh$vh=Q_GDk z@YB|Q-hG_aG`iiENG>Mxwkr+O5?dsJEsOwQvvHx zdFk4)vxFY`6mP~)?Rqyt$t#ElWbRpUQ$LUe2R${yU2MK$PNmx8*Taz7)puS=-rx0s zLd@hM-GBq$@fVF9&2b{V4Cr-F5a<(cEfDEgnXo*q<1iwj%MpN*CZ(zFBx7c_6<=U#;Dg2$q2j7 zwoHpaRUH0z(&!ZyvEyKAA9+JVH>%d3l-b19TSzME%(+q^`@MOp7IhAEdy|&7309ZI z_e}ns|5JdkG^GS$*ClV4S@e=-MCl5{Qks*4bj@eP0ZABF@HuMRB|o|jsoLEeoC5-# zFe5==^Unb7_;pQm=xhvI^B_3fWsy&8FZWzjSmNF37b%bau|Mwy6dOo~fDkuts6&#C z{=KI8>1pOV6uinx*wIb=jXV8XJZV)8 z)Ik%Cr-5qm(j#~c;bDh;$wtR8=J1b{SPio`vO1T$c>)vrDs{g)#8wZQl8DY2nEV_) z?m<wcb+Y1;?8P^E-S3Mm-b zSjMP#N&*MqyJ-~dfGSE>mxB2?_b5)C3m-^V^@$C2i}9k@{`FD!dh6M`2YS<4ds0qf zngw!+&zU>;;Ih8R>tQaB;-wGmDr&H-XV7-88H;iej~p`TyT+J|%UrLqp}`w0hY00l4=M_5CQH(Q zc9_KPa9xPyYKH7;z;1``3#cDo>%s3yVCyR59eK zLyD~#GMK}5|Jdmvf7~OiH>>P~-FZQ(-b&o$l9u)>BSlc#J;P1-d^BON0;#}ZMUJR# zsY`UdKkdb=A$N6LY};u^qNZk|WYh)Kih-oF>euy3$MR=?Z}uV0$I1@DzZ-nTu~3+Q z#BOio$eVLe??3nM_bmZ@2ut?0&&+BhGvq)9K}t08D<1+kPUqHSb(Gz?ijs-jH`{<; zw8KH&D&;@pJub>tfd^0ZtV+2xsq?6*zX86?NC3slmur_m`r*JETP&Vq#jB574VVM`dn4b z8(K1^9a~avs*K$7cLbC0dU6;jpyK>tYW8$Tt?IJJ)iHNZe^<#lUn-dHP)42%vsUZS znQ9YT3<#+{kGH$Kh4#r&gV2v^@Kf*}I@w*&u*0*`tHD= zw(JN-@BQzXH282@Zrw1_7Mia={wS$M`=BQzsKF<2LC$bbOqWGZ)oI!_Q6v%&bb22u zq$$mF$&AnA7oR3*T>`DwAIG)=&=HH+=+<^=s8dh9BN22#de^e{A`u%p#HfOGZqdP*)Qny5joEKTrd!KS)l?KTE8av7Ioil zb)3)mmU3&y^b=P$GTFj7wrqXr#3l+<+t7cDUH8{|Ya7jKC&1!KM48_y?Ssi8IV~TkGq?%j=S&7 znyC1Bgz+95@~B%2L|aWOl>Y*|tDN9KSt3%nkec1W))bFaljxsni6NLI9f0-OYu8g~A=O9R`Roj`*`BSU|X*LDX#04~By8B6f&sVGW? z>Aj|;(IFa=#5Jis=U#A0_X=BqljvE_ddHic3pAYlebszG`1fKHu*}Yo+|ij0pz=On zsJooKU9P*4{rBaJHN9&Mu-_Oy*9jABybWn=P8B(Ct|WD}zjN6)>3&UeXV$gHcSo)q zL1*$Y18$M(e+k*wXq*C4;?mQw>i(rDy|Bz_kPpr|p!LKrM~{cEp~9}s4-~VrcyPoij)yY_0BGYtGdPpHE7D#lEjX7j;t$QKa(4l#ns&i z2h5XyH8R7Vz_W%E(!HGOY6|c&hHcnIfZjI#&}Y_S%b)4#MUc|oVqy2L5&C~;JroIO zF{$$*aI~k9r73>ob%ZZ3F#q&ia7&;|O~DkiQ1d>)Le|4XK-e#BZq=PBWj0;=I9K97 zz(Mn#M!9_{FPTkbt4$dYgI3H`igjqX{uSA_3SpWHILy76HF4;HPUpFe?v)H(Oq(Of zq*01kVQ`F{(YXy4k11d}@k$d2fS-w1*v0NB7(QB1QCYa$1@t8ZqeqN)LY|KMuu%f_ zH%sBM9>ciaW5m|1&P%a;gxFUn#Pg;>ts1j5f2-nJW|iv2Yp&Eh*o7A=gzz|r4xa<} zS}#BuT7{dza!#fkgh;Zd$}#DwvwCJZr6v{Tt(xAx&mK-ZMMz~-zjA%e8ff6hQ1_}b z31@w7M0yM`O3gahl~l$%cyyCsH-t;biQf6|(a2rTbi+tU`wPb%>U}n$!jJotJKjbh z^2{);AALn8d7wfuL{TS_s5e*mG{~8*b0z?KY*ovP-Az z7kE#@36<$-+Io^){6w?@M{AG!^Qz6;vkKX(SjTvm6S;3vwM^NzL40*!Q8? z%@qeD*kyR;+ZN3EUx>8OspbP~)z~++9kt;0!JAoM4Ibo5xEC!O4@Yy9lz>F3XE|lK zy0Ip7i6SHzd2ZDoc+9@jxmrbZoyl3?bEnn9mRzDWW(EZDj!v-;s)7j;YdS^ zSHPKT`&uzGxgA!dK4L|JZf}rVfKBk-H8JOr49*;)azhQCakCD&|H3F|ZrspYQcv#Q z8-U4bH@O=*!9SWIasF))-?EmlA}D+aO`(ZrSSmUS!(rl-DqLw9*(^6uZdM-Qt46P+ z@*JYIHWwLUpQo29z}G+pcN{=#g^T8ve{lz&I7JM_bW7KN(|vN-PoV3`e?aO-Pj&~K6R8Y zw}n$>OVlpF29>kMIuk+X35Tl5_vjwZ9!=vFuW3V`7?CSIZG?jP>UvH^Ow~+L?1zMhtpI z*(DcFpH_#bJNg4-y4zZfsn$hru=4yC(LGU}f0HGyySHYLMKUb5ZfiK={jGL%&m9Omxc!THNd_i4%IBS%cs1}+1Eg)QdjyQzQvE%&$JUisLP zey5e?qC*iYa{_2yI0Gy6+KrZMi%Z;1Vg=i*;iiU5n~5GOe2=?(lNL$w7zpETQCRUU z@aWQ*=RCf3u)g^P2<$n$(HSK-4-|iW<|_SL4X${n(q0z-(BsOm-f*(BZ+73nEm?=~ zT)-aug$FKUTY^Ow0oImLSk0+3c7-gRki!5@rSI7(C%y9k2MtpKQvoa zB;vaXJFDzImvj^d%1&Dj_B3|Y@iK2Fx1*);@6?2N2CPKeY$BOvf--fE+1euTrY^;r zrw5*CqnXLqa?Y_)|8CCe9ZmCD5Oq3B4{Lyn)LCn+c(Y0^olb*ZyF4^98Eu6DtmI_c zx@9(99Fps2+3zjk%KC;U6U#}|IWjHA53r`xKmrUa4!(Ts0CA9gXuC9~EPL#K$8hZi z!I_s0MyUi|aOKK&p}4MH0R;8yIYU7Uuo*{XM0%jSR?2JQZEFM1%4DCexZVbg(=+wL zwwxsLtuf!scW+?>TIQ``+1$0koJ|=wuYRyOHMuBrUXz|^Zl(xJ6tdi>+% z9!F2mpE3#<#K^I03yy-aq_3&U764Ajcy|^R{%b_d+uRzq1MOqfNOW(*U5e~i1wGH_ zp)=`k=7Z+pvfrwIE<*Xxb8A^C)qecxi%(uodOyFH)F%*&4BiDz@pB{*mm)=p1{cV8 zC#=6`y#KD_cj^(s%c_c)l~U&2%g0Ps^wC~8-eCj(=~z%?LC(*T=kA?JW0LzxVUSUj_PfxEQJ@IBCgd zJ7PF!hIg%FI$SmIs<#{Zqv=?}=RbVfXA0!5WoVdw=_69H9Da4D3bVLKA#4kz@paJU zzBli3z5cZpA8ytODeFTXDpF|!X6NU6M;KDyTka2xo|fWS{utQCJnk4@ngI^&xhst< z!SKxS$KkVRf7FX4tz_de&);(KuTAUzLnG!681Li;k!M&jClZn(GjKRDWLS(G1rM|& zNXbrh6MNwA7&K^&SH##AAE3mX^k}!Dx+QQ@iUw)I0uAeL)c##${!>_?L_;2|?kF zbRx3@f&r_amW~-kXL-UKIF^^b(11Y8;?MF&%jDIjah1E_>-X(X24(2kM0!#wU7`AOaLP+8PucG< z=|Om89UwUh9s8Wj+G{B2;16m_rX5BEVWKrVpWon5oqxNMdlkNPB==*|cFit=6m@vr zK*pxgZyWJBH#wJS`OoM)F6@V3*nLJ*Vjv68mZ+HnwOW0C;AXuZ>d8vTL539P@$BVQ z1A!&y2K8d&aQLu3YF01Sr2hFpZ*5bu8l$*bBslBjc}+yt>w}!vyv=WYnWJ-TbxA_O z5QSs=fNj^E6@UU${XoFEHZ-MuKzkNl4_HoF#v8tG&J$))5tvzfpWRV+2@yK+$C)!Q z2ZTC@o~9W<0#2{peEboiDPU}`dXpat`UP=` zZL}wZ446X)D^~9u>^D-55wi!SnO%UZFQ)dsfQ=jiaSZS~j@ZPGsSk6wg;N#;Re-tZ z+StbpkxvZm=1uKe(jB>u%yt_ z3@pzU@SW=W6p84v0&heO^O2h#=9rL}pIgQ|r?*DrL)={G5eJZ~M@PPPSpNPf=M3Cp z#mx;7nc?{b0Ac)s-Yxe(=+(b&4hYE$(i}*-&ogP$xZvTqal?=UP*jrZOZ(9S@Z6yo_J;!FCC?m zbRRyD%aw1x-3+ALqh@V+@+jzzUpD}*u(Weyg?oKs@dg74*;bTAxyBJx0ovdmq3pL` zIs?}Nd%wF>qL_6GmLmkKvUE*;#OM)$?Q?8}TWfw3aKG!@aAoLjk0JAf|KZN`heQo3 zbM8MDHa(2~{I)wIVGNG)=21pQXoG7TOX&gqo)ElhM}%iIll_Y#(IC?N$CrgWX_(jA z5PDdpx2vrAjJ0BXhCOYgVa>JcNM+VhubrOxb4pmzjE&^AvMZAKf*nn1xv?1%9jUmN z{sb&EquaOy_vUrI>>s+4Xl+68$Z-4AdYeX2sB($Fb@rZI=BfeJPL4OBuk^cNXk`7j zHeK@#*FT3Ztfe0>%6N0FA3!OKByyH3q9KK%Qog4OXl^~66<<6_Cad^DH7p9AebM6! zcp}=S93rLDt~F!~Dz4fb?}KPi?x_e$)V|>;R^^wl53Fi!Sh03;Noj=KlPLHqtfe=S zQIC{~_V2a&+>lFX*Iu3!i(Mw7@zT2o0Uaig!j?{h$R5q#DS3WaEk8#t!U$n`{m(!! z;B@^&?&|Ng^kF~is17AGE~jL5kJCtq@=jJoK_&7s>&+sGnKL(W=DAsq$JoBdDpOts ze}`DkH0n6yj;yu_jH4yJz?BO*CTQ%zoN^l5V0i93Rb;||^P>@FZ+fV&k)CPFml@)f z`^W01;PDd{E!(fR%KaL74J^ff4k<21NUNwYG^m~E)SyFkibvy=qz}<(1@&mK@-O3Ye&lN@!^Vvg07}+MoA=Q) z2L@JgZI&OvA>vbCQ>S?S%T<~KpYKa{W?eCg3XJHXP95v~_}D$zG(p!?YD zv#WS73c7=<>{9U)c@0S!q9wfU57mk0>f!r0-%tDg1n8@_#gINc?xR=xM8`X5*Y4^% zw3uL@`_yK=8#yn0;5Zd5U%e0>EsQj%(f4&@sP59NChCj)?2|L z4R6>#-JkGn899Zh8T_2MMW2NkPyI-!ghZEJ+A zu1*MX7v2v@3)6&3b~3LF6x)EVI+Glx^+bZra$usE?b==6@6BBIw=$OBMV>Eq^a{2L zG53)f;v?k3yzchsK$A}ZAr;85>ck>P+A44vJOV%qy4~GFkq@f1sdFw-^+P@@P2Tg~nyzzqgAy1Y>4Q^Zq6fNR z63wcWxW8E+YAFHs4P#A)-x8WNA6wmdmzC-K;zZW~ZJyLz(RP*Z`Z;_ubz3frTHMDA zs)2Go5sY?bt86j{^UpmAsgzx5^^gQ1e2%O?u(c>%!E;}?SbLfa&CS3|6scOLh~$k>Kq#E+asrOm z8$OP#ZEoVC}A`2+doHMM_XU|*M|<(qy^YY7dPxf9>;C)=m)U{+fP>B zP!KWV?6v{VMC(X<`KV0T<>ThGoK~bOULmDk#@u@^UH_nSJ+OVgr7%FQ}|}#MkM&fvWaoN1zi&jzRTSak5ggo^4GPoH_l_ zYV~g}=H6M=UtJDRkc#n^So&+y8K{$Cu{t<6z1D^{8?t=D;51-h^yD@9vZkeY0-9f! z`m`DofA6m$*O#05CZZpg8cLpL*c+@P4{W|Xy_e|8Z-;I=CaMIj`nTK}6)>E|DP4OMU`H#&@U<8B^?F7?xCmO{+dL$+}+QZ zWq z3B~fA0X=4g6`4sCbY|k9T$U8-Mu7+ZAH^*VGysPW=FJv2XBmy`=u3m=N1jcn*vd*S zaH_DdIM)3>_Qs5ZIbt-gDwR1%I6L3jzHvFO_f4JnlAzj<;5a(S@xnN<3%-|HVSpC; zqgm?uj`QiKd-`g>fi7Ef{F1hCij#8;;hOx+kju#8GyQ9~Pkez86cC?1PY2jML?}jP z9TW!jI;4GeF9=z08MS_71=VYpUvW~YfA7R))u6qQ%$*}1d~!ExYRISj>*S2{KE4%` zrT*ERXjE|gW9s3Cmk8twSeSdkZv{SpPTe819_ix0=JQ4*92>c$R;s-UIrR=08PyQK zhfX{@YbzGtr`sQuTSobSC`lOKbAA;+!1|?(EqtlJPuHACZRoN9X;Esro<5? zKK%s|Y!ykJHUa_l0Hb8hk@_|;v`GtVGcFBeNxRTQ(KYddg1e8tY5e+|T(6|pDsUM) z_Obytj=s7671y%uDu0i;_m`EsM{~<@Ctsv?vuJMRsx8Uc=7orYEfE5p>NNCxn;+m{ zDap_;F`t6{zUF#|;6Ejjap-dx*@yHlc~GE~w@oln>U7N{S$m77AJ5&pmhvmz_S4k9 z2dP!nLl^Iw_$5o@d*Y41l-~!{6060rN}xC-61{?yt*V#Db;6n_Sg)IOYKx6EUH_K% zpf&=+`Rwg`-YM?zl&1GAZtNe%_g|^he)jINheyiMaYMAxzf6gJ@?-3Xy>a|J!++N1 zRyJ?%)b8nkw>x{NTq;s}sl_u*SO3e#G@@ho2vok+mGEK$WpBysjp?thTnqB>`_*M; zpk)0!+&na;qai9gfSCdbxRd5_v998&uD%m+YhT~7>HSPQQdlH!;T~o55lwPJs*h!% zQG4OBzje-wW&e+a$>YP7b%XXSg)P35WH0H--LrhNXCPcD{vR_KQ8?AJtW+WBGkUY; zAmw%+TYu;vt8aj{$5_kFRZME=qhAx-Ge$)}Ih5LAo*xBx^JY?Lg+D`G@RbQ#IARd@ zo@jZuhvi2oB~g`#_YGab2so=&SSE&ZH{2uF0yFTs%j2tP7gkR`gVbWLrodg zWs=w>WfT#dGz-{jivMwEh?WsGx-iS81iOf0&2t6(_M$(}${RtA*|WxQVW!k&rst<( z{;<3(dkmR$tRj2Fzb`wRass!9i1$smYpfR9ppEH*XItN;>d#XJ8}zv=L3aB|b14Z< z%41EYC?9&-KIlm>SjQxG0i)M_j_W4t#umlV7X#04o&_tkT^?-V8j)qqk?6&(m^}=q zoLchc+dN-6^eg|y=3)|ZBDzU@Hja`xB3d`sn1+BR42+mn1^zCByD{r;%T`>E=WGHI?SGr3Kb z6_(tF)2k!nV6Cj6m2WV|hS8R5eaDDzc|1l@duQyC_r<>eY&4b+Te-fS>K5vjKXU%= z7mhZG7XL6^`2UZ77vQ)>W|_*b@I{8*=y`a)|TvEeIz@8t1ImNq}7CE z8c$@Dms>R~L4iX0X-hX}>jIm6pWYZ1ZAh^??q?tW$<+|8>?@?SaFX?u_=-A6Z~@TJq;?ZBYgT^aQw%x6u}F{GmblMlyF+pSR8BO8;x z%U4X#>dJSdJjE7;nzu70>kScHKI+N!p=ldGlmC94cet7<%pzDS_>@wtW@eJ3+p}ky z;p|mOHe4xcXm+RDOqsAt#|{B<^0L*mr-GCa`}+qe;yAt~0F{rE*hi3N2J?((>E~L; z)Gpbir!TfQrC5N2@vZP5 z#X%tD(NWo~R}xc$uFv>(=LIsN7p?67;Vx%wkl@#qAQym;8cyK*4r(lCyZ)}Sm0?SF z{lw1UB-yY@f8TUsmT{)~=O6Tylka|GqPJ5fSk<(A_^+Bz$jU?x%@}ATejmC_$WMI4 z{)S%c^E33jNcQ(pw=K3Kge*MqHX6N_j{kbhQi9xIG=`rp5QqZV)_lj-#gELmfW<(@ z1~%du50?4<3Vf+_wi|15g({9KD|l!AtKM_gNd6l6mF0D~+n6)kiZwi5k&yfoDcmTv zE>El)exNpwx<2+>=I!hq*QR=yxc^4HcF~Z_wM)6_`{PkVnIYjBl7_R>-)5<2LgSX| zMt3!!61`*f)^e9e^4r7(GXf`W@I02}Px|p4%O#i8|7k(Qb}cs_Bs@48Y3M&e5^hQ} zR3*yYufKmSpm%rLL?A;e`TL%N%AQQ-MApseHZK}poG*WQ`}+@)OQO5@q)nvK9xi`_ zBpGcb>MNFV_pr!9^TwZs)Eu+kJ-usWsj+AEibp@f2)+GBs5I{?B7my>i$ zK`2Ju|1C2KeEgbah4Q5MgW}r74t=oZk^^-2*HGzlx{WTPnY!*ci|$9tbUAOGLF^?B zAoeVisWY`7xg?X%3;d{35~N5!^uW~A*EL|LZ_JzL$?>p9S)9W0g7zpAZ+CsHS-V7O0|6My)zAbF>hxLK{=`$9)SJ2 zs@s%c{+qBmM*mej#wd`GG>Z4`^MXghJdAG)DiZ~rRIW^rYB@*dXzq+BeX?{R;b56`K`oIU`T3OKqeNys(`_CzS(RED+4170Wn1={@BO4to64 z6Mh4`eL?`xPOVwXtiASS4g|;Ww^6kv{ei_rJ60p184`MqM6x6lloW{p5{g3i?Vj*5;OmRE|XFwnk_MT1ABw#;k4ox{V}G? zsr+s-m_*gL*?yrS;jXe5a)e-Co2DZ<^5(HH8L zzU2P?6y)p5c+QW1<6iLy*9;8muyyKazo#-2Z}23@&!ejBctx<>s`v4>QH!T#QYaC7 zYQ=K%AXfQ@7CH`G>Z$mr`j}F7mg*Z}Rg{;QUKf4kM`~Hy0GORx15Uymji~IDVIpQD z3#)aJG)(8RpdCTu@<2&oof(IiUYoRK+LTJEAtIxNik~#!zFHXd%s+53FHS08ZN-cz zUEMN=0N`f`9^<2ty7kI}arP>`6bm)EFj)w?bXPo^o`WaC?R&)FV5%}TXYqMm`FXy< zT-7Al$F0oLBxC0fLpDbmAFCZwtE3lTRG>KWWWh3yF4i||NwlB)S$tK&%wf9VKbF!O zZxQCM0N&imu`yM2Gq^TV=0e8#Jm!l$8EVX^Ey{kx~01SZu`mdmPgbBZTBDDMS@Zljj*W! z0oTQ)(PB0@D}&OwUpCUVkeJf=)Xi2cTDc6Vx1YCaC`1FnLBtw*?!I^mydJJ~(M zyD?8d+7s+Fqy`ho>&ZHYqus&cIx4ePw{>Clz=>VQW!M;!ur5QHZxjHJ5*_h0T<5yn z!8^61yJ9znl=s0+Xy@5AeVUVEgjju=JAi8E%^q@Ivx4nk7vrjOS^^<5Z-OTvTUU>C zOu}94jSz_aa>K>I17)Pq0%nM66^Rq7jZ2dL-bK@ZqDjGAME^@lAH=)_~u#r|h=Mz&4D{gze{0&o(T)0uBGM@Ob%V3Fk=QzX3~%uyn%W zS_E5t4f9SE%_?#nzd?$#8#es8KB*EhqPXE4drYSLgf-7SGXPhjaXm?!ezvArlmqrK^4WeiFdPy@{9~;T&YPd!Jw>4EK2C}G zZgvCfn5@3XHc;bI18cOIu)5ky)5QBSrDUCbwInh1ABd7+-t~l^?jx`5=H_lP|MVSc z{tfr2%98DF@iZZ6;@aWQR4UixJAZa+PPs)Mk*2LbhZfInB$PZmY*z?-)rS^h$bqNB zm%pKkAc2yG-BAO6UKJHlkZB#8=UThhzI&dPAh8{C@nbM-OMX0%(`(!=ZnafrU>5U6dk)tU)u;``UPk9 zEW;uK&N8spGi^%Ls6jn8wUQ^K8{ zl6lfZwE?4AJ=(Y<viq;qZZdffvEAM9dfZRb5^iAOFru@2*(Bvkjz(K-`9h*XIr4MNg=KKJ;*DUW3Y< z4H@(-j-%t6x^b!8`)5OWU{9a?$eOxN+r8XZf_HnU_AQs~<2XKQf{XtRlfWCU=%zqJo7 z4$a@2xupY|pgsbp9o~A~y(38D zy5b)q&+sp$29*&CwS~q#<)@vSq-%PFOP^1-1T*>9Zrjlxk6xZ6#D?YgY#i9yOgP^_ zczezoLeI86#nsljZ=*IS{8$Y8Ll)LS4nGpYv&a^dFOkoyzf@O`eH-F9U7VJBl&it_ z_a4>3H_=r#Ea-elVIon~i0IL^CCjfRNkr=lVJ9|fleB7~zJrH1XIpUj0nxAnA6HX) z%Z9d33@jF&alAm1+-lGh`bEkZX?!VE{9vJhr;jiWcunwc4$A zBoTu(ajlZb{bX6PmvqS^x29)|CN$t}Zh7o!4?W?E9@%Mh)Q-R*=B^>OTk3C}q^4(S27a7b@1NBx zOlR##9$h#CQo0i{TumL0dTgB4EMpB)Dj(KTLIcabs~t?i{j>CTc(!FuKO$sE?!eL{ zjPKAD8K_RGYY}YDX=}M2*o3)P3N`Ps^maSIu4`GcLa0`l`mK|Lt%S8UfisxQHa*$; zr8;2>mtJ+6_ABe#WkoUHyhE;!(d>qRcv@c_Nx*lj8S7HD*Fs~q=;PURyajA_!qMM% zjF|2a4j&g@wWZO>A?;au@lZq6E^l`xg(@1OAktV5JMd&uJf0Gg3T@(F8HjH+d;aoW zg5PmZdl-z@|3n$O*>n|_Uv456b@D*=Aop0)1g1(MU-jOkG=E0F|C9KVf8xI!Gaoz%t4Nq|$YNdVOX!>$I?%_)NNsVVQwpPvaI2jwZN?F&ID zIe8{i6)AK)(+ccoJD6+MKh~^4vxpB3f&PT`EW5GPd!{WA8L5n+pGwy~wO#`1^S@D2 zWe%jB!d=slsM5kL_b};X!#1q7dPQjwfMTy$Gf!kPDIs=C-;QGoiC*JQ_Cg9hlJa2E zGWU_TUE4ksrSpE>*(vnp+bnwUiqJvMWTG;)$Yc(8eL56AKD8kQ9u`XAolO*qQ_pMX zfd4=X=rfu_b|jQg#txMOl>`w06#eCgd}OmLPk}u$wF&LBs@l|S;opo&5KWljC*;?zFzW;x`P^tMJ5+~$ ztX*D4Kd1A-2pdkLS0%DBY7Z)*MNrNx?yr-Ivq=yH#>ng<6)<)8LGZ zjE2Lb-p)JgJD>f0{$+839myRjbB9*23{bJ2CT6^w>bF>q8Ok1ojv@KAhit~pBY7gL zCJA>^0FGnoUSiPU@JndHbdOYcdzRNnq6~U*v}Ik>ha{(OxWfp=Zq$748WDZ+aCSwKj`!8enKyg#ZkT2m~NJ( zwcp1P8a_F=-esLRz;B^9!ARq_M92nHcCQ(fkzi2|446d@_zL7B=NE}++@8h4RQ=xIX6?Nv+{s}D+s8Tn8|C?G$y1tO zq}|lby*7VgK)H7TCmr&zFib51_FL>VIb#i$kA;2f4gL7QQ{Kt$$sSBD3P#VO$^-Sx zr;sU(g%9;M#r9Jd$H$i7O8lP=WJPjdZziPYbl9Qk^gn(5dB9&NGpJTgPY2XL2q(5X zUqD9c@Yz*nR~nU`cD)t9=z5MAg;N=D5G$H9*jP$qQ*%qk!!ljBRkX>oWeVOTvpK&M zh4%xZ#i8cP|p_ULx%NV|f%^ zDaOduCu`hU8=|N58BQ^pI*zVeQHOWbO|C^+Z(4qk{EK3@d*p{X`)>O=Hrkad>-J%% zI`C{EIHmrTa3dx{HivDZn}+R1Z3_Vw5{H&1SN5ZRAL+^haXMX6_cUJBKSFz?s#kJ+ zE6e8_MuSb-Xpqv+@$ zo@?Xw{bnq;jT+PUKV7Al=inhu8bJO>&Y-@%?~!GC$elEZg#MgKwrRFDouP&jd%ghE z!H@3#8!O_#VH(4;lrHk$SshYpY${1p_+O1;eNtwZku&5Afm8xz85f8=rc%QLk&YMJ ztksKZdZgRsi0wGdL=tYiN-0lV7ypRp9X@uvmEhA$7u8)+(|E@&mwe|#GdawD8PW!L zE&3m691xiog}15VHOlhs@t-yzxJIbwbl&!fIzJK*ak0on15$}!! zzZWIZ6J#K0&>G`2gZ+~bZQS>@Be52=?HOWM{C7=@)o7%$$vt9r#SM+ldxwHgwKR2| z(kgK7pO9f{H84D?DtuI|Re1IaiDtoq(iIV~vDUmd|0KUBuCzK-J3)ib(^^L|v17g? zj+A}juj5C0K>XB29vbNG%cit}$dAZbn7m%s6Yg2z=eVTjTZs5b(|Os;L>~bmsWXW$ z9=Kku6eh5+u(P~iQn^X@~j8aX2CHu=*l#i0~1!H4-W<2dY3spDHOc6-+>HtWLLGj2)g*?s1Mi-^nM3GSpvuNi)62E>7|;Ns$y!*(k&Aw)&YD|lUDU`YZ+ zw-#Sq-hX1`etl>UTs2aOBH61=%}6K5+YSy_D@?a4> zeQq%7jm0CBGH&cJ`=Jv-bKDFQCy7L_AqPhZwqacP7IA*QeqxJ2Npbz^8`cQ|wK4_p zqMK_E52c&?t8`K5`zC67#sNJ_gAWP_wks-JZ4@qR>*p07V$f0n^=+z^qAa(!y3+g# zj3B3JwZChX^jg~iFq{BpU#&rwSt6eckp-j~d(2u@l+jhAx_oJqXAJib)vaq%0VSQ| ze;4xGRvhv&^S*~hv03XgCu8>JO}`kgK!#nMPA(*F!Y*ta8NLiFJB~kWU9vbZUYvf~ zb7jzkU(N|s=|$&>syQzA)DY=zG$zkEFFH)8F3|zF`|ff+i9*2@SOr^G-HNA8qdS@# zqzkZvS-|*;$@C*MaIl8rP4Kd?Douqs?sa4kr%T$F{Q}9FTGDk9u~ljAG)`hX(&l>~ zm`N9Q`;TR32G(HW#_va}M~_gYg6<^Y`YsV+0PEq+gkB>@w9~j^?tw%UWkxbe>v{wK zQqG)FKr7EoE>G-7LF<+#4$xAGRGqLFN$)0c#i47@Dt4~fe}27^=)OR>svKin{sbG6s;Q%Atfnm$}J@M86DKu~!xK?*j%n+bfz1dnj} z`HgKm=FMSLMU(q%dBlLnqI4xS@vici$GiKukPy4h6!r8qu=eq#+4B#b=uLP`gV#(0 zf%ttnmVAG_Nd|W=GNklL(SH1hx340bTZvASV7M~G*-}Z*dXv=nH59|EbIlf9pDa>e zg~Mc>7xF#$ln>|v07A2e9eyh$=2eiil@3=uxEo(-1H&zXA+EgM+U&AQxjj$=cuT>I=F*}v(}lkJJ1kk6H3=|_uY6v_tjerXpo=;M!NfQB4?y3NHnAP^*XFT6Hw@YqkE`GA_Gu;WqWik;uYp~ z!AXC@{VdkXiEW+cl>O_$QHuDpC{grib?&d$IlKcec{9wsGE>B%8r;3AI}S z@(NV5=E>u(XD>}SWW1=wMimqkd7qnn*4lbF>ehbBuZG3ujW1#&GD7%UoM+!H4u?pU z!4|*5o(GuQ{=4!I@PN(9mIxeh@D#|Bmm*;CXHIfariP>g)64F;#psp&2!@q7g`- za9f85hKK6=%D%wo&z>HxS&l3ped9+|`sc)3owL4&7p_R+;UJwkF)7y#%=c0ZH>1)k zRuaGw#l)FMuJ_WEBJ11yty%XUP^gYY$uTJ~{)L{!b;s0B)e8l0SVyY;7Nhj+a$TdS z6U>{Vn;Th6H>ah;Z)6l7NZ&Lm>DsNB;WDw1>+f!~g~ie;y9}__sm4Q@*kZEl5Yn`J z3{UxU9n#PXdKwxzly@~Cs4V32fwof@qhHd~nDD2oUKtArQ|)jy0r}eWragt7WA#N8 zT^^id%{){ZeRSzgJTm}@4JRM_B;OpyFJ2?(4#gf?;Bk%vqCyLIHXF4E$jhXPq9X-i zu}&-C+?8z*nk+t1r)n6}R^znE_BwcLN12$qb!wb!5{9!n(Z#P;TB3i zyVe&*ChYy056qrPc{*AX*;C{Gs7SX2nB*?m;k@1$!iN@ggeK^YY)UGPh@z*0p1pV6 z0(k+zsQ!bV zqNpl&97x*qb@x7wSehKVRVw|BDSqHxvVvQlD~xET*=qLwqt`!c_kIBV$S5=2Mvx6? zqpyho%&#HkBQ(~(%S)OvZbLh>7joUTDdJN(XpMnXe#_OC+qV%d(JM|HTqb18c4AG$ zsDj-Sc|2Qp)YwwwM+xN67r`hWNX@!Y9BnKlntn{p@QD)m=Hlg%t#O3xaCp3}eE>!~ z38phoS#bh=c8&hyc^Bx=T!~1iPQ6iBx~m053o``hQ+a|$%l&g$d+0v6yd#swkf%*$ zpUHOxl3(n9BqntOF;->b3GN{7fOA78wXOfL)E^W;W|h1JVKRwm zu=1$ce__=3cP#TzTWX+Z4xm z>A^TYGDR@EYo_E|k~9wL!?51>JAR_`(T<1g!C7oni`n$6ez|RC*Y6R#z~qS?)PV}p zf!Ht(dMQ_L&r+3vcH~A`hi2BKk@q8cbxGlkX$jT`3Xwf@kbv*{r6jXqF~SCd;#=&E z)zAsh_@4l)HvjaOW$N7uwON{nm-8ZXLlqfy=k4&roGX~fKB|>6)ntQG5pkaMu#~S6 z1H2Hdvr?=5Q_InY)!fgeMZxAMvu(mr4t zrkq6`ie*FyOlKcPD(8Cs*=Tc=equsJasjouQA(NNR3C)%|Epv4JujNoo4R#Se%?;% zUu^5E>GgU-&RxU{BjCUIJ!XM=Ao-AM5hD(~lyo9V52;VA zN>;Utg2{?RF=*p9u>T0pl@-`scTpbS~;o8iN4Rg9%9?1>`rXRyOP2{Q&nK@yAED?G}&$C+Pc)4$ApaGlJ z{3p&~czfP$(kHrA{CL|O@;IxngnIH72{BWW(!kdie44m8nv(UbxPQ!vYx~;)^Z(z@ zCF*&k==Fjt7YnF;@g}J=QBO0MHy}kO;x5z!7^xJ=8_}^Xv#61$d?ROYvc;3$g4P9H zicF@wCt>MC^;g@x$JFq$KO3<8n#EMp(!KC(;)c|JEGvbuGRA0?lkhQMTQug{Gr4w5 zc(?RhHP8sHy*V9`*1Ezff7JK5ls(`I0coM~B_j=tJo*>&cX~tLZMtt8OpPbVo7tuJ zG9}Zg2XaRb3k^aH=zC~S2(4+LdnU?i@5k|1h$Gse>R->&;Ud~=%u*a<`HiJ?yF0TF~_(mnl_g&0X$Hfz%0VbG8}zA6X#8)X~ft?3RN%L zv`Uu-s?9dlb{{ZrtZ$;(y+|ZlFIfUMeMT_l|5$dVa1;x_=_ZZJ8KzSR*!Oj4=~71T z(jq-R7-)W89RQod7Wx5SmkFRk*EJhF7~5IvUP#RmR5^j;o2!j%WM~aLJcuFg z!w$=WM)M&N#zl~yy+^{beMcJ2-aY(_P19mjx{ue!H*&QFkx==m8irbS0`5MUbXex;n?6xI_;vRn4w3_$o>MgUw9hetT6G%6UDE`5EN`3kuRDJEAHwOS(&%Qr-xw~gxKgpILPu22g+d{NiJDt4 zUhArL7|uI?$g);%&*Y)M4Yb|Kt2p$i@wpFej>ND{2BbQCwtFVPYiRR|^GW(k0~^=A z1OI}zzvfX-J8Q$7mH&+=t@IEfh#xbCbR1`-CK$V~P4lRuVGUjl9|ZV^ir(CzAWR+l z|6{q9WiMIaqe8#ZBR+7-!MByq?cIl6tEWQ{`S~sLX@N1avFRd- zk~@-!Ve`WteZo;cyITYauQGw`SbJX))Jf3p>hynI0{*x z9aZE96IRDOk~FK&ZJ+!UlKeaN86FK)yIlv@Quh|ajyl-usiho07Z>+mey45;Qbo;1 zga*0g&_C6LrF9xA1KWtM`Xams!mvKs@m1TNS{zKcUt?dDdnJAo)T@vV_(H@mD+B+e zD4_tI(i$Cp$p6#G-^&-mv-RqaeTNu{i$DBQU`J3DVjAOXbp}G+&JA3#)xKHFI1{~t z2@ZgH&S+>aCu+}yvxL9n@EM7@a*EoXSl7C@kgPtDBU9Z{{6r0=yg+;zXr0YttZf9wuotR*SBOxLN+x_c}0gd7FkUE`8pMlnO+R$dnLAZcMZZgiU z^rl1E<;hU34V*uI`A0TNl6k49${tkznLjGaIu_ zHQ59rG1IuVnX;E4L2@90h)Y0?l%C_qd|7lO9uum41uliXk0Mj8`m_D}NWyiWG>+bV zYHK^lxtDQqAnh^ikY8xp!GJN8s(e&id@g-xgGQjl34LTGfO{>**WIK=sEN=HCdCZV zXBd;gbf)_x?WA>yXZiZns}v1d587dtTiVmHWC~_d%0Qceend^k}O+sO7wXH=~dK zoEH8mj2oqM^?YZ+GI0r{t0=lLHsTb5B_+Q%-ps(f^=3~h97J)-4)&#dVF=WfQwohP zyn;(&ERCk(6z~(x-qXf4dS})fuEE{RI;$Tnx_T%~Zo``+g09^=xVJ_TLDGdjT|!~` zT?0a}a zTt|USFv9dS5!ul%cMy+|;Ywe#7@r$fCKz7I9MO;3=G0P~N2>N(YOc$Mt1OPpFJWt^ zYkUZgBydg0zZgsVq-cje56Uma+2^EI4{#f#b- z-j{VxJPnGwrD_GC*AZCfZQG2ou@>nTxJ(l0$BW86hJm%PaN?#M)rKm%kRqbOr6WHZ z(s(iepX=9ky)?wr8{)~QjF-*kIU;7=>2I4rk-nRz$R~zK$Y&gnT30XsQnQ}x^ier>NsG1U{vP0n{T7@LuIgf}+z`3xtuIjU`a})Y znj%16m%JuHd(};N*9zZ5N?0r!Jb9%SQMK4okv!hZ40})h&Hpn|F=s&+lKYqC z9L2oBo(P81T32^7G*@n69V#C%it4CqR&H?aPr#3Y>HO}!m5Qx%4oD{F`CnP9G4k^R z|7a_D62vE8Gp+IV>LtFDZ|HmxV`hnE5hLy70vUK;?9j~F~!-2B#cHcwa z`UXW9sZK#Z5i8`>&b+QOZ{!|~m_U%%tgwfP=?0($k&58;PYt{CYP+bXAHrVDLveq( zv<)IAXv7{-@;3i02Zy6icx~`c2ld2_bydN(G|(Ccn^M0rRV!f6r4Ut`F@em<*$X z)7p%in&4qs^wfvwPeerUO0FS%^%k6pvwmdH~aO!nhv`%*o{kfZ5G`<3dzKTTln@@ zMW&V9-Jy3y(t!qo0t(4x^*K1v)21o!Sbm z{UarFl?uMB(&`}k7cTn zBWh`MPpOH_4X}%--Cq3 z84Q80o6le+$HFLBqwtz$%=oR84yzUc%;s@td7yL?O*)xJ%=LG$&Rx-vtE2`kJ3x4C z(vsYHIAeRuZ2f&4kJHqxzlp#PSGfugZl2f3;eTqVjHyXJp?NXJK_=o-a(TzA&}(cO z4~Ey#$Nqa86bcg`6yz6^rmMMiEXh-8nx(Y!AIp0e(L24ya@!Oz#h2OlQ-vkoA zD=qxYHc0mRLqZ2SZAMUCWYqP(u$U;}LfUz=0K6(nXwyM}dlSukUlN+*XlM$CwggMq zMC*k9y_9U9>;vTY+}SiqLMJ`?KaS2jp3U}cs<2b&D)z6mLP)Eze zE*BZml=A{LLMEYWu`5MSPKxaZhk>AxPS}Lvw~DQC3~SE5(ilM$IE;rn&9h8M=c^`M zYb7BRnYx`QgSNc6U#sC(@)st((ptF}5l=_f;9fvU@k^8{=Y;I$hh&G0guk?c3DN2? z_h=9(L9O^>H}lTvjLr*ZP0;~-LLVxGqs;9*f^6_*#a_lRw~M{iBHDVEzN7E;y+&`w ze8vTv8Z%}y#M9M4lF9_rh;YxNOdn0@zc`MgL$ho>^q6ch-xCx?H|k0!k0$dbYpd~7 zNK20RYxa8MRfE?Kc0Ob>!FaHA>tBK36Y27i3P|Ag4bb@+48XOyoBkFH!jk5BEIDQD_Z%ieM&!T4VQ_Ks%#z*1A6sjE_{jGfpU5{x%*Va~NES8xj zkW;U>ge@L)yj;UzX77$RJ%#G~d%h}}x|h%t^C|TOGPzg%y$&A+*_^d&l2+3GLpfh8 z{X=0!%2Q}}ecM~xy(4x76Z@(pm4jV-k%mGf6*yWj5gcraj>U5nuEVbG8nBG_;dWa} z;MG*jfZQndBAcc_eAq-?&UY1RaURPAv5rrq&UY@{pEJuYzOdjSoP-9g{l|70{4`ia zNM^LcCu7UvP2Ig-(RBZ}Z&Px8@stWGs4&3DSk$bcHn-`0(CKyB6b>M3m`p+O8_ zenJ2QGITd-E)C-d;*j-rMUKJ#CH`;+f@48(ZO|X&mqV3{7gzF$wVW4MPHT>3X2ccR zp^#A{RH{<8e}|Atw@%}Q)o*!4fSr@UGOg*|5Tf0m`Dj(>P@Mwp{<0r!xOtU! zrwb>g3#`>jqU_dzo$2wzy3d~%syP*=_ts3WMCKUQKN5V98XwBK9i8s$Uqhb+w;{ZM zgpd!<9faoPNivV85TWenF5O>HUD}EJPE$Rfzrlw{LH6de_qkL^QVinwWM`J=W1%}no``d$!UFo z+9N5a(y#Dt|1YNgxq0@S|Ub+>~u5Rr}D{mz2uN)BK${`R*jEQ-eI9 z?B8uIG4j7PZa!})ZbtRELuq?(`R(Img^BW2mau93%t7DGQv`eu@-99fU`IRUH+^4p z!;T`O?yZ7IU#|TLB#0lx6!C^ObpDgj7u}&P%f9ma#zc^(?@7)jZfrwK>bdj~LGGkm zD`Fm>odxA_2d~0e_Yop8kD<1QZ?C+(ntSsP&pf=7KAi8dcE{ZFSpDVnbS}0xVv}z5 zgDJZX=ayS!b;tg_q{Y`c<7i4w@JvQG46%P(dU$CSlr^zWWF^S_F&(71t9^wYJkP#Xs7Nf91ubuO>$s2BgFD%~nE3&gW+r6C#| z3TRv!_!RF+D#neT)p0lM1MM5%8J)s5bM1j^03Is82>>s{LeCpiCg73tIcmMu|FRUk z3(T|30Y5%uOcT)8A2R23sy6q=NaU;~${V-FrSS61-@q-r}f1gh1(;T|wHX!YkQAl*38a zkMbT)j+7cZ~ajoA*A*tftuxq?Dl zRVCCU2z5!#+Mb@=W0K*c&}yuyle{c<_7?F^-jkiP%jGX8VA3HU?C_}hbUE2tX}jmv z$#a;qFY`3Bpf2v;=bK-LK;6sGMbRm4jofu@8;ZTxWbsF_`D!wT3tG}&cAdIN(f_fr z)pj$KzIpB)eYC!uL4Cd{UY}u+ZoQJMFl{Ax+TjSbP#=6$66x=hwoCx7-1vE5H8a-D zLZqMdT9Bmo8K9!fvp+X?xwWv2M~tK=A3B)lccv+xEUx|h6<3(yjBx*JebrlUuEWsg zp>ly$V&hAZ$z^gu;EUy^PU#_?(oYO`x<0heWbGw7uJ7aZuU1g z`8^UiWo>7i%LB3ndieWOc;$Mk_o!oPGd`D2*zBQ--psJN-DApc}2pxfcBuJO<-XQ3v)n&$b#UazY3q9v2P1Y5OAvy z**xigv9%Di5D(*)AOz%#O62f^m+JP8EGO`Y$Hi;8dT!o#K*uYDn&m&0;XXxo5X{kl z?kZY%!*tVL*ZE37hGhK2GVdHM`zXl?kH{W0ESjCQ_oamRglsBU`7GB>SNiP1(OC+| z&aru)%nqGP$I^N!U&Z(LbebmH#)jNdIMm%)Tm8B{nl-Tf^|Fc)D5~DE-2INqu>Nzt zDr$n)fN1#53~qbIh@2^sZDho;I5p-a0TNU3DsG8+BZ$zjd4X)@R@2oZyDx*AZ*E{MQC#YluLRqFQO;tUOuMog_1Tc}m(%|Le?l zPj+9QQ8_(okSgTSMr?C&qsHb_3N!A+D{$EHWC5`?m*tQ37~0qXR5p=oM!^Nqs(Z@@ zzkMJt!^WMug`ypGEnyS+LFo9 zLxb5zev>y3%FMoRJEa9HeM|n2jla8!y#M`?e_n(jW64hWWIK!1+*MD#N`r45Ta{_J z*Lw;lU|X!Ub8BhI5?iB?K7FaA_7d|$?}xJ9^HISA4cSLQCxoQe+S^jezmpD`fY49K zQ%tM1SkbNZYg^YE3z)}(v;CwnWG%vsS*m31%#sOej>e2QSt4I{|Jspdn>2>@=d2a; zz`o@+r{S5Q_Qo1`jWPXy{$CbIHim`eN0ZIvvsL=H(H=|5t*`qkxxufVuDl+1iE|%n zx5#xdO@`C01irQoOhWPhvf%hCOGcMvNbqH^1VLqJUicPScx=4eWGEXxQ_5WRQIaJw zLo7x*r&Pn_d`Pc19R{%57EsdkJ`MLQ*ZdQ6;1X8VxD+>=PyX}fL!c-Yw>ut58NN}L zxvj9`@aeg%IEgjezOxF==Q6Gd>tU|%;F3^41h{8t*Rn2%$kpG~KNips!TLLD@}rgD z&CG5u&CF~+kq6^>QcFyDBU(|JB&s?ylIWr@*BP8ToF`KQZK=iUldxgcEDEYe&t)RC z$>#^ICP$bhn;w|X>lcmR# zwVP0O2%klwKRgX)U|INMgBT9dnw5{EXP&D_XgK%RA49ByT2lm3FbL&URIL~9aA+Mc zxUF+8k1+YKgL5S9ZhD@ww!3MOXRqL>d*%zcTZ7)4VAlNt(Xh|;3$%su`h z?`%k(aDW`_fWw=v912el(9iVr;Y{cc_0E6YgNFGWB$Rn3_x+2RT9$@iVBS*48_QxN z1+2j{A6m#mjXKx?_r9|0@TSn^vbh7S9!)3s80H`yiEmQko$=+a1y_A6j))339)DNA zcij*jBs`?lw+?Wq5#@>1bKSS!vwfBYoykS^hs{K>a1C2>2sN4U7ww+>JxhhD2eXe> zbpQ+K_P}qpCuNo%#dsx~kh$oyd)BHuZ~kMux0F;Ny*A*~j#v4&4iltYqkotQcVvGk zDx9a(?{B@qv5yp<0 zt91~kD5h5js5*VtQ0;8o7>V<2%eA7H{DfHvKC2XkXq@A*>pWZUQ z!BF3qqw7hJoG8_VDf;2zS0#4f(RapWE6m&{+zj@yJahA(1R%bHcG#W!<{=igxW-|Y z`SaRQ%e=yz7AHw1$Uym|+Ioq5&`&S?^2#zd%Vens5e``nA5dw}#5ATi0b9eZqq$$y z+Y4O2ORezNPnEw6oV8sKdJJsW$i{{)$o})z(3}Swer)OQPs(Hp;0g3zdwgOUsv^@d zk-Ux-Z$H)^eXBQ@lBfc&F(-s%&%4L&V~wRBj(XRIR%`+L-p^Xa1sF}(v7gdC zoyH^whLNIQ*PwT(n4PvO=UCC4>RMm_@(mvF;?zG=8G+^(pt&nZ070_}>jYZEb+=E! z)_S!M+avf|N*Ize*wCViV#n-ak9#5CDWh$-YgZB6b@z06vc-M()NcDWMQ?!=oQ@u` zj)SvnRcj&>hcBAPD-!zebizh{-LlBg{LWs#wq{rvg6|mih!1dzv5B6Y^zq#M9;@o( zCL!lcQ{n9kSow|@{yqzRv>S0q75`X1Bhwfki%IS8Al&s&ZH=LwU$Z}m_=+pSFZX3i z)H;%9a%uri0htPbWaTsv%N@K1=*+>GIkcEZ&z6xqyTaxex`h#y4z+bLnvuCy`cbfT z);+rdyUiOC{A4(g`_KL*TCsAeLuJlXVFUDQuIcHKp8*M+5pKr|=Gvf>D8KC!rY|cA zOdlUG3?Irw9{hO&&BLZ{xPpVm*E8zw9%X6Xc69|6+1d5^vmOfAN>~?nbtOhDM(5em z`%7&ZDS$#heG0tx08{2k@f>kb+B=gD`~;6t5uRsmNdxubpEwKlH(Kvuf==>ORt$UZ z9VX2EYlU0PAeF@Z$M)}Z>ZHDmw&Q7*Nd*+!EEYL(k}4@O1@ZdoW}5jQ8=++L0Q3X> zv>|rlYBtRfwxvTrk%VkRV6x}BI@FE6xYak@A1V$d)-5mr;-Qn_R(nGxoymD()KSXz z;n$H>q2MpF`6Qu!O9aQq!0ZHbBapPIdSJ{VJFC`9)GT!Xk!HB7G-gIquEVw0zzEIS zWhI_`5o5#Mxvu?=Pf6jBjQ*lbp@Xj*&xG%NbsiXyMlbqd0Fij}jvq5Kv?LySIIedB zjY74Q{LKmO!~<_vkKB|sBQEU~LuhWe=lBaH4g<;s^pyTIXBL99^5Ict+3GPoa$oo( zO!)o`(K7?*-Q2(>9g3-F+EM-M0uRH|bOQNORfQErsKjOBa0HQ&Xk@bMmhUOsH2moh zd5oiie(c)B7LM(kUOsYvk+KL13Lmi}UQmGIr1t5N_?%Vi>h;FiJl1AmJJ_%4_7jF4 zx+yqRaaMZlRZX;Fbf*>Oqx%38^>8LH2qo4>#llx2){l`w@~jyHFFVz>xE)A<|=mPz#){WejssN9H>z+wy7=eCS59Gjp5 zuOoY+4HxOT0BAqGWs5|u0pM-;SgyDx3&FaU_cs$7YuZQ(B8@8`R(AY`bmpW{1Ewyn zB_kM34tE0Y6OB#vs&>U2D(vlNH!^p35+tU+(?s={>+iZwFCl>;iB#L=sz&~NN|v)8 zt;M2~1n3w+pGcUc419%ZK=ZZ^kfh0uR{|=XOWLCf3K2P`)A1@S9)GS`ZWI2G{XwW& zLpFN5f+a9Ld5X?xTOmK_qBoPof(Wo?G1iX!fvFmGbDCv=s&G3M9^tv1CvIe?%#x$R zvI;8FJeIkXeU`utx{zV2%c z9L$o|UYuXO_U9APR+|hw53w?18F*plBb_zcoTk6mi0#`MEP~8~t&a)2#y`_r@II{3 z$7g!^p1PlgIl7}W3iaeitM6VR_}qj}n8LV$8nRDNEoaPe#a@EfZ)~-)VnCXyt@rUG zd9!Hu!H|g9$Rs9*_3Bdo)&5QGfLdnB-nFb6<*B>&aR-3GXBS3Qo-f!k_wgl_6 z#p@852ccUz)SetUg;YQUw8p5uh}DoWH$;>qb)a2g|5G8?4h_) zu+%9+4Kjm2v_Pv~yiw47^Dzy&ZQ`Y+)BeG}(a7jQN>hBv-j&iUrnpZws5+}-do&ww z!N*T-I4`bB+pjp*5t?yWQ#gXjiwuS`umLS#(&`_Hoziy=U&eyM^xrEQKwdXS(|@xI z_tw#`Us>#*xg_&(Yhlg7F&`9I=m7_fk`+0wtnGg9jq&vwajXF|_guD^wKO%V1Szj= zbQ=tAq&UT-c^0OyNLTq@DqJ-1GGmAAlFWh^1h~TK>)6VRGL8ZmIt&+-k;tQ?Gm|8p zg!l=&u0x&8|8ey31y}c|1sVZ2}AD3_-TB%FtU<3KYX~sLP?V20Fv! zYBmjaKbn?wA47FQeHmAH1n+#n%F1Ql{&p=%e)GsXVtj!`0qR6J<`jTfK08_pP}}G4 zfSjsNUVzONPv-U^?AeJ)qy3+z0`N$1Fzd|7oL8M*e*kRW{v6FE8bNB@AW_Q8>QUf# z4H*VbgS4cf|Jd@aw+ccUQJ)PtHIgO$_ zKv??9lli60?p2hUzoZ@^FbtL_s&At0@@86C{OMjnLe={cq0nimMc5_uI81zh$#1ul@3DEfsRc)zub(y1gP?LlQZd(>-W-XxO}2rxU=KVDc+# zU#4H*1?nY~*23?M2%BU{aTEnVz7`oux5G88y7wJq`-Azll(038PSW;!dDo5z8W^Cl zsHw4n?&#r@SMG<^&6;?vsgHmq(M+SnqaLxOyyiNU44r*GII*y?<*Pl70|eSrhtL|R zw>sL$1T2*Zv&um*>U8xOUHfY%&mOF?2~dW6V|k)9&@;{e+KU zVIS`rO+5#Zb$!Bk76Gc90Lv+6fzPyvARO4&pxyZy@cUN!LT2la&Z9kAgjm+>931Mo zYo98vCfvz^yP~pEA9gIDLY1Ccn;=jtU+>xWW>0wJ`O!WcMOen-+)Gz8g6obmBf)`X z{A<(|aGQFAly;tMfU*iA@GEXghhr15bu({pESG6UweB<-AM}kK8iNFs0gn!ZIXr6~ z)hyA~&q|?Yk`KC&VTmxqa8v{-joo&w?+yyI77S~uG|CP$O>7D-6C*M1k@}vWhJ2${^QHY&aY? zqERJ9B_SW$!xm!|jT&CkA0r9S`WCA<-)=n5U7?i0uJ6>!1_u^;RzE#lyO!mg^LFq4 z5u>yIgx@H3c6&4EFe6V?)7Pk%w#lEt+S3xPj#DYtiRFxXrjwz@hc5CHxPIZ zZAjRL#mzwrv{A%tc+up(YLi8<^DFm)_Wb^uF3Fh(6$h=qx}K*~*X$({17`HxK6}*h zWWFG_Vr3F_!n(GSsQwP$d)SDYgviPpnoB?rW(bL1Ad#+B0%16uOGDQB8AoWBsJj;5 z&!9LTSDxLaS@jC-3NQ}i3-L3>c|k~ydDBa4H`Jk5A8Gf@o2@+arS$rKW_~HpdA2h% zX$xGtsw*@6bjOs{sNjAl<23$CY*0h#(d%A{r##yKqP+o%nR3dZ8cd(+5s2*=QIfr{ z`3TwL8hVA?gy#%J4oEf#8c1>Q7R+U);K^XY@tKSS2fH#BTas<9MR=8q2;!lL(w-i5=NGo(AUQe6){@4g37luXNZbGKM2zvU4-FMJ`ND1D~yf>z}&Dn~)qGf(b znx(c&^aF$RHRe7nUe@f_b>tKBKA<6MP_?G>>j(!WM2 zeEH(yB0PW4@d7VXc;p{`qozp2Atcxe6WG8BFZGCNB|Kcfv*|hL5#MA>^&3W?n1eFB8rPD9UZ+6 z5sRaGyR7Vl8v$ztZ~U_Fm=4m7hO-}4EX;jOQ2dXr%GB*$!Iygk>UMX4b9?8L2&qJ* zTkhrE#7vZ@%3Z}Pjn-QcNjn&hs0CgRKXZSYR#o6vKZE{gPgTl%DJv&iI!&}%EhtNTuV4?Qasu6~hj6vEeSZk?t=Z2|@^b-64 zi+?&dv@|_vSuilLQzm{8?jXy^RO#>98H%o`Br{B3xnEB9e9enm@qk%p=)J1H%OW*3 ztG9uTo{cT+B>auWw<8>L&)jHV$?P9==w%Pl&^MjmFP#+}fvT|D)(CDTchTbu4;&{s zAEE2d2&cSTeRQ0Fp7I1Sm=KP6qamYea%Ov@&10K<3JB+#LmfZ1!wUjp#CMwp{LW4frbf$QYg%hHsmHq8c_!ozI3#nmkz= z=A}gS8SPzsH>|l7EG&Om>hdzC`Xg=hx`8&Qu$pH39s_0aVP(0jN!t2Vh{e%*`2#13 zZMQOGPKh1MJa6NZwMuc8DZTjdXDs*O=YoM};hO<#v2TGA`m7cECzvzlJ2Z-U;701C z|HtOXx)8EH>-BrLfBUoX7^z0xCv98F()&SC^FSLTG0p}ysxE$#E}#Qnc~+kix!^uq zkbZ3^!PuhbV|X;{cwIt@7hNVj&|aecKtAD^)-5G+X^`^?1ADB+@4U8;gOhnM!c?uA z4ny-0#Pyjs@~@E=v!qloCoA+?S|dmHmp?{1jAomNRXW$!$-2wEZU$>nY+BVN+-f28 zVrludXYr$^liAO#lj3F?9mP;Q#ORwg1&v)TCz(MHM(UP)8-vK zV;ltwV%gX|jc5s?U_&>!ikG@Pef-%nF*xiG?apE`!N1M)7?<^9`6&~rxZ|A_q#?~} zv?+Z_=W^3NaA-2QNd*(F9PxumC#4myp2iM3RP^Ma7_vkP^4Z`vZrOUql0x+la4Y-a zTL)?8=X>M_(m0Hv8Zy>t4K{P<2W-PWb6nbv((IrUKc1%`0bci~+Zje8J5%LFCJ%%k zsLZ9Ulpa#w%tlbKnOh@v)3iSrjV!(O693RQi8bESr6xY~Jx7H1k-z_@lZ{k?%b ziQeyD`B|WYn#S*r8}joaWBJPXxW$&qDg8bpYW$Nb>Uc>i;dO~9W55nG(c^9HLaQ59 z$dVSVeV*50--!&Nj>6H0Aahwm#!}IQ;*W#7fMvllQI1SVg_Jv&m-&|EpKTHo*gxq5 z^GP4Kn=U|-*0vpQvp4&H2MxS}rSei4sM^hAw`S>f!goiBOrHL-6T*TY6_Sp4CcE)x z-RGLJ!uE`nl zp?a3EMA~Lry(YMurVSFA1D4oL_eEQTTCB@qsRE(N6Bl8dMRK*iyeB?1{~hQ9xkRBC z26;BK0&ttTmaG+&T){!rU#zQk_MH0O#~U!zD5h5YKU%z#dK zpcbHzLe*wzMIF`)rfN5tEby}4l6^uSLrJT4FwYN+LrKcL_>|NvSO@Jh>ydZUb)}XR zPyT#}uaRY2Vy2v|CeHz(2DaC5RJ`=OpkGd1?lC(6f zwNVmeoM0FHqF{@q|BNLmckJoUJs6?5uhMZ?Q&LX*l_N`w$2+*wV7+*~^)GvY7kFfS zlA&pqHZ4ZDZq$j?*A|O1(SZ{k0J718^jZT>vO^WfnTH0-@jQhbXq4_tUbwg#k50QX z*yZpao2=*KJP+ZIxvR}nAH_sg3KSR%{Gemy*$)y32~#xV1swz3Fe4@Q-$Z< zs4FzfJQwKs#{u{ zzFSF5JL9}BRwN8@_DRdDWoZsT--Ne#;#8%gU4BXdjUe$CQ|ED1Aq<+eb~_}3ze>}j zQsJEO3p)eKV8Gp19?%IZ`pj;}n>R<_J>%cZJ_ZxFAEdI6=4PP+nvF6hT^1l-KYH|o zES#FE8UhzzYwC4$K*#-!T z&hbl@C-6_oERyUmYpmvachd)JkV?)VdCOo^tzJd1oN=xy%HT~^qKG9eGjBkekE~_4 zKM7HW$i8+1Jg1r(S}5*S+=l2o(_-4GI}k7Xf`^$4zmH>9(_Jl8w7>g>CbGIWzW7}&g9 zoDv~^Vg~VEgmzU0X+C8Ccz$_k&NeMOkDF+33#uCi*7od$_I|ss)_!_a$^0|yrbaQO zZ_nMT7QK%?`w;+jTsouxx+t=HxGztD)Te8+`8XHH}`07tDpuIsDKZ=6YEc z(BrtEX?0JYp#T>8vL@D`J{lCCp~_Ke*KTF_=(zdJH03@ z+48Kh~U#kA~>aPRt z%HpXnPGm}Gu0!XYv;n6qzw@&~1T=kNA-RPfwQz1C{}Z>!S8 zN$DUL71TEHrjK5?TKQqf+lRIDHg{ZCE9hx*4LtF&tpUNs4g{4%>r>Cn_VHgC`0!rm z;#xT*u>nHGUUx;@yVM~vmld8Ij+byRTEhfCFfIh0n_V;APA}-3`$fYZE+aEoyN;#8 zhQL&VRtiFyx1Bvq=)iJ8j*!*s)QfgY#FiNqwNkN?i2)M+gm^k*0=z=ZYZbtGw&(aLW0@Ezc}z*$7;;2IrvA z6`7D%RN5WaI2rQQQz5)BzU`cU7CY?XyJQ$#CqNdoSROp5fN%C6JyH^uS7~z`gP?Mk z@@t|B?&oCZ9UZNoA`@!CvRjpzhvlUm_ew+NbRSUz44_%pd_+J0%jk0aqBdwMn!BI8 z$v)IvXl*YysHd@O)-!O-r=Q&t6$2*qN>{-)&iP#2U(0(&!*_DE1$r*jT^!DoM*AnV zYtFYsy+iD%OywPd>78WCE7$CENx{V}Ibmrw!GGbA@8_wqK!<3xTeVM=M^$<^&xHjK zgay1<3%dHw{nh3B3n%uW{2v9ldbH8)GS87ao~xd!YGr-8N4dK5I*}6Xup4o9~c7ihFQ{yevshn+(0K z8Pvg+B%QL9a>>rkv=+*O2YBgJ^C!&;u4V@@aN#I>NUp@AwLwDS$OTRl(;hRmlN3|h z>)I0o6xexBz(5e*!19k4_yKn%O;b@{>L8)#W>{Wsz>hz|>GL`$*RA8Tcm4Ed4MJWY zUKCW1m>C~Ea&HUULX`lCK%x)VW$B=mX&Z-~_Bl=Fy?5wSB9&9bfTx`ROI)O>M;g$%z+auNYwy)=xXubem#6IOYv}L=o?%>2=WLDbUaUXjeiv@#1t~{rZi1y#4Jf=H9<07DQDwhEDstb@0}9G> zt?wvdZ^gN1eGDFYtvUo7AAPJjAv(LX?2Uwor)V)ofu2q-5Y>l2$QduYPF|i_m_&r@ zN4P6?h|fTHryu^J#VjO#jWx0{tbVxhEhU$8m5#gz^<&Uwz}d;MrHEd zN8R1_W-J$@R0W(F(oQd#((B#JX0@ScI!*!o6XcolJxkOx`;g4Ps6D(V?0ss(%DKU) zZ%y3V7PZCkl_WnyZXJ4VbNUCvWoMrdlc`%(j~-oqnR=-;Ml4Q8;qI>mK@GRUG3Nac z&056A=m6=BK#wLQh!t!4)wyW@=00h*Hc_x|{(@yBYFk>~0Xp&V5$XuzSe2z%zbUf_ z?5pA+xJyXi+yqjj8=ZN?IE6b6I{GDxaWH_X@_Q$OrXd0_*tpIFhrsC_8 zaoIvs=T?CjS%wG(tSx=ywoEr~n%L(bX8+bEGH}-~?yX8{!8dJEhY4ySWV0nAN-Ftt zXhRENtzg4vb8{0cvpu&H*rcGZ5c=58NZRLB{oAg(`}Rc#b-7UaQe-;BmpWqt9>Lhg ze!Z%ZP!Kzv-N7Otb@DxL;n=kd_64jZ#_^|?-T2G1eR(CNKHS=wu%@tuin6Ss}MQx^QY6gg6amZpcx6vjQthe@@ex#p!?E4jJj zvkbkFfD@J9Dig=g|E;6$T~G2OYX-8qgKV^3zD!By#QXa=l$|W(Eg@DbZBpaE2Dlhy z-2V*0EMskt<^SR$1GPlke;S5DkbsU`dxd*TCsh8Fw`yJ5U-4iKz_gK8Bd|xH{NFui z`yDlU-}`%dpu8P2DrOi}As&iaw))g$_VZ-D_BevA&^v#)6yBfPOt7XT9-8PG++|-9?n|)2$CE$v3==lj2V^*ICOZdBenZEGVxMM zgSEoiyALU&XdAriz_wg5+$vKF?}KF`JL@6Gbb#5)z-|OJO*`zwMyXmcLdX4 zgzG{_7?(2Cjv$q~{wGMJcmh0F&3Ht&%Au2^r*&;!KbN)#tun>T(@vr@#FuaH089d$L2llYAp8ab z*q?m(Lp@E>#6OwK0hu<}?(_p(#P~o{u9T%#*H*%*b)?b~9-+j{3(R@kYZN*aEZ6@T zVlUtv8x;5ESavfky|(S9PPA^T^cei=tzElt4p*MOQu3ZdUxI0%BLQY(8eGxaRkhBO zRHBo}=UMO{o1qyx<)ToIsfowPQZqhK_}`FFC9y=|YMDbY7hCrSiSwfIEaW@BOX$4Q z*^RKS7>4WB-Ls3YXJo%#kh}1U_Li5II67OaIQ-49+~d&L^>Q7>^A)2f+uuNS=o0IR zR>#XUuTqHcam=#(e2-r<84pxbK~*}B{A1g$)LDV>PSfSfHVSm3_p|j3Y5D00rQ^N> zk3Kv?({+mybA)pC6syXC6*q^#T~#Z)m5MtcFO?g?HxlNvES}i8itrX(?MUv@e22YV zHn9)p+%{sBermw40fC;e^a=#UEXHyn(p^oW66I@@Yi^le#>5IWS_)*RyGOWAzB){qvHy>d_jBZSXsL^IJ^TMGu)!>| z3e&crxRDKcXVQnh$=>W$tOg z{|W>aNgAcfLmcReiAnA1O1O9>RZVU1j0;wV~QG>uhLc|Yc*nxccFuq!xh#u0ou*q zNnR6Sx=}ghaF=wHy#h_P{hY)d_xf@T(*%HZTCvwG=gtJGgx5zd4?LoFW49|W%lECF zq3jX3LL71v6!y*~w`~@J?x=PR9BSF^^xt-{iH2PX2@1K@SdT{?#29+I8VM}RPSe0c zq|-mXJGOmnmXEp6Se>>=BSoZ+`sC`#70Ml;};lWfi9g(;TnXZw@mZFcb{}0CxviS=F_8W{;jZ`PzZABO4a7v=*p4}L8{u@@ z-=r2E$bX2{mFI?nCYoFh>oPMY+00V$6sPxCv!1Gpd#|U^&5$0+A7Mp?)$fDci%mhdrAok8ZJusK z`#mt+$W4FH)%(D#h+n>`Z?dD#;gD^zu}eo(;?xmBec8}z3Ofl`O$_=`cblfHYRh92$Ux^$wGLttIH=n-%2nJc|* zqxNk>()a(SpLu&uT_AV^u^lM>M}=TV0GwnD^6;qW8S-%5Q)7FXdT;Wd7G?h*-FZ`Z zfJ483S;X3$Xh9&g1MI=VDaY>LY&y{~qu5<+O6i|{{k$~fJWJeNvrm6B82xkNxB2gI z+x3dtanHK7$|H#h6)uufn~ym+T@QILu2*35gYRDzUI7=5wo+5rNIwRo2olWZ2YD=C zxM|JyPwy#Ooco7~Dox2shoi;`Ew^6E1$h^XGuMd9&wb2rqDRP7yWhv@L;6ot!Ju zQtkZrRyf|B6>zxV570j;@WEKe0`!u}Z)INj-HW7X_;x%h1HtZA#Xgx2aWn#1?maC8 z8=CU|61dFKA6)rWTN7%R_F`wEQYHF8WBWb|K`^&19%UVu=QV}CbOg-Zyj9W zVQA5)_~HYGGTu3BtjTVk<2q=29;HV^Hr6G)iVea{XGl&1e}{M`>F$@ZYO>|h;PVRQ zpb11BvP_*e>sV-Hw8W7uew(-kyyvBUzWoHy-rgvK+sQo|?wfW%)fQ`9kr7G|b@qyK zH2qet!vlS`tBrD7D~`MLg1-;jsDi!Hx^iFgbns_>OxW?i;i-p#3=`WQ&nP896LmEa zO4xCS!12j-P0x8Jc1H)hmdg3gQEN4`r`M!z=J{wF6s+))M-j06`R$8Ga#TTyx$|uv z+fb|U3+d>S(5CS^nXuiwucy028sz_h>eLR4!39Ea9gh4lfA!LfG9*%l4Tidfo5Rk( zgNk|1cZ==1M%RQ27EMyf6$3w`?=CPUwS7Kp`@t{%Xiv4D7(Ebi91TKAtS+X`6mR?B z4SBqq_kK6;nyDzqX$Mg}0fQw|`7Yu8l{c{oFrDFGyS}<%eEkxcyxr@h6#3JE2roq{h32gm4Tc1^`X9;0>r-Y>%qP@NukV&kQN{v zHS4TfObmSi5tWTnwX$+NrPSx(xaxF9u|$UW`$EN0_KTMoKv`FGhI3ciRpB;{M`XJf zN5b>s&8JzO&}Z`#gmsI+V1NHe4UXH_-~6+XcsDUM{uY`0D1B=rF8=m*pb;<#Yb?$f z-2TOs$Ov~L!#P5%iNFtoqJv2LIJ%O9-MD zE6KtY&s43*mCWgl+^Z0GJz0=q)E|^@u#_`)a7sW=VRkP~ur8IC4v%^U5#q%Rs7$7} zfU8ydBUEpemdNteyso8>b{DvKl=d-KyA_f-p)tVGBH1^Cy-W#1RCP?ruU#cJwR;^42-Hj0xbcqD<0xWck>aDe% z>t$i+efjLMNv<)L+R*y-Y2F~Y4hPyBX^j5)AI}X<$Xxkv71y~`NLvk<%m2``j@k;S z9NZB85B0`DNASIGik|^*gn8zO9Wu|R4d*l~AAHRrr?`vbnN~+)nR*k2c;`4L`cTb` zX=R*GAKP!#`d?mFEQnpmP<}UxkQNG>-7@)H5GuMk?&kd_iAn&Q0aBm|=vIl0(wnEy zING=8`E3aS{Cap`pU zuG;>7IRFcT_q#F8|FIwznYvuYfr=U7|W#M=2&1Kx7w|xnd8BlZcrN2>9De;CE-Xrno2`R zI(>M}=X%lYJ5Y74mj{f8cuK#{Vmvbyc6>)KL7x7kYp- zKk+;c82G;=!YQ)NFTl)BSJBlfz#BVz8^@LUl7&D*2Z9PXL#|pq zcw?;i&CX%Nh=-~J+3f}>;+MVuRwk8Ai#PqVPp8)xBG^qR&~x2ncz18Rg#VR&$)g+qzl}o}Inn zM_$ey#GnQ3B5L;(WV0rO%o4_e?$?GsP=)`=2CbicofHj~;ArDpAl5@$iq~AiKd~S0 zpLv_OWjezbnw!#8?qCA}Cjh3Il6!kxT>arMDrTRK`4Eh7y9?;JMUN3l46~TGdj}EQ zW*B(|Qsyan=pFX+8T%u}WdHQ;)pYNPTAu>uGRf&@3$Z}ZEhcD7qqG?jSgm{8f5^#T zXm($^h@jmEq4Uh$ERnzI&34(I1<{i823l4w%>UN@Jo2yP-4Pm1$skoNrXbXjG;}9l zbo4j>uK({yLbF#i=U8nSbD$|~!qrFZ3ixqqz~qmE8qLw!!@O(dCzhXi1!U~;fqv;S z-U)J9>V;f8z12k^lvs!-PoJFxgUZAdvh4`?K7fdAlVd(axMhpqX>AGa%=T^D9CF!8 zJ#ZT`%l_GZ>-(tbILfZ9F0son%)F-`q?UK-A&ZmkL5kVWXqM(ycKz99YGiux7A)?fThoHT#l(n~`8|4jpcJtz09r8KnMr;_$0 zoz0>U!)L!|fiC2wb*d@_QR)cTe2?4=t?7+T4k_M%L@vwa)LzDkIa3moG#l@9c~!=s z-sve?snA|~@J;lBdSG(k+arR-Y#s)3*&{m_p6I*S6#iy!rgl+Q-;?n1eKnB4>u;}= zSUgS_xxVA}B|9PoC>cbxCb`%kP4^_g6kr_J zT8*FcHUyF%-?z_~QMrQMCf7^{LY1@Fj*dcL2wH#tI6r4ZYTh!*=t^3*%Ae0P)F+7O z|3qP=!$}9ZIIaIV5B2&|Vc(qIX(;`$eCfek8TM{Bs4&cIlXIe%Hlz{<#7+it0i=Zt z>-HVD3hDT*nnLEup(WRyQQxi^s*n@q#7aRa9(AuIl`>)DoG$-|m8Nhmf7JMa+x_C? zE%L4jUOK7#g;!uy6^>kjSc)hgDc+{vSml~vJ4;g^3t_G@Hz7yYxo2~|@eq{5Ox68q z&A*_~sqZK_Pi@kh(c&xu9)o(P=81?_+Wf1uQ00L8urRtA^!48Ch$MOYK@=9cK7gd< zZH5Gy#|h&?(YlK(K~qX`ZeUwtN3_@R&>I3elC}5j<7j)d!C*6b*rmBSwQsiOjt=ow zH71H|=>#!wgU<_CnbqYPVJ2NQNPiYHqxbGAT{5O>RE|vrndt3y*A4S|$1o()qgn&t zGmEBW=t3I!q~2RiKwL$V;@*P{rPnAO*1WeO zY_%Dd7fm+ix)od_i%-nJ`#O$3Q^ml(fNSdLKfGWC=Q=zydIZQUVzdP_gKsVd_@x5- zV)!jjozT=_=mG8++KoW%hdP2LuBHrS$Qs_X(Ko+-n0P>8Ah6+ z+xgQKRwLqKarGec-(|5gq$N%)x|NL5wB!a3`<&j%1a+;PZ!Jxeb)!rhCEyzyQHw|) z$v&tObzI1zOv$%;{bT80RJe?5ntG(4frtI2;kGOy4@YM|0BE99i)ER7%ghr9HO0%R zTM{{T!}b~N1C6G&FYbDn^ZLOMY@y&I2cr+h2a62x`gFJ`k*+0|zRf_6wck#4W-Acg zq=5j^If==;?z<1xGTHvea`=8$Kyz2Q$~LNg-IOof=QizujNS^&DM_G!e6U5Z`^{3pRi&X3@?# zoVFYfy9r*IAxmxe06N(R*I%k97Tz-XV(;cdV7Ge3U=x|Kk`Sk6IxtLzo@G) zRi`z9D1VYHP8*J(W0l+sJxNMC$yjp+J&-LIZ`?W2`r3TTw4$|3o8mj+TIzmH- zKs$pxuV$#N!RuQNg~S=ttQ4xUL}bW-*)dU&M!m&rzqQRWEwjqk++40d1{yU>`op(UglY~=S0-L_hw{! za(zbJgC4A?Ui~rZ<2c`+v6&%73<`D1SfmkQA1>|eT!;61kF6&QsRZ=;5Zi05%B&U= zYJ%|&O3+sQH~~!q*LDO~vZTWUie&qA!jdFLlh6v9d7Ro_h{_4dCWy?@WYuswlb9(~ z5cfgtC0l_vgZJ*XSiS-(%o``}BQ3MG>Lf}l^jG9~5#AjS4vLVL3{~Tn7vTDldy|dR zo87a)OXfrBgfe|{nQGp1`_kTw?NT4nEZ0HaF?^4?KA6TlL2TWdFSAWKD6q5G5n9Xr z%@t5z{p97c+M{`-=XxRg4%eYVQ(dtQwAw)FVazza#((dGSHd!XvFV-Tet3}pSB5X3 zVVF(T{C^DZmhbDjk@=ZGCCwpb5Az`4a1@~WtVZ8edZ^>-Q52T3q;tZ1FmUZ~`PmLf za&Ahs;=}|crF|CgGAD5l%GrYwq7^~Q4{DOOki*R?9#fi3Ynd;oa4JkVJ__6-AHtt z+?r_S8n2dejWZwH?=(c_*)0$c;fFX9Gk9di5E5BbLdoO%nI45va(7czU}q4@mToQ* z+|r2-R&TBb8jQ(fjE}SroMzOGX!C6P0pWhSFLfh^hpQWh{X|-tW5Ba;zbst~VhpVr z1XHMbMF8Cdm;MeGcs{v4p~!Sda6Kh8Y$YNG$1!_rt_hsp)1SaKp!UOZL5RNNY*<7zJhFgeFS8+_V^lM-~cfx&}pa@S8{J zC%Y#8cZKy)ZxT5!T)Gwl|Cu}Wt0|@IdAiNBa?i!Ke=HIy>uVgX@7V6PVl?DBn9AG5 zt?+k92<1w@<_P-IWu29L@Q@e>T1*R;=l6W(%6YDJ;ZZ7U_z!hqW50*75zz zEwvBM*v{1UZB#IaX8cs)UTf-doV9ZwXb+^)UL?9$7st0g@5n#%C-qxXve3Yqt~#`= zwN|VwD_6|DDbBDAlK!-CL?KZGa$uMY6>qQjLgG7U8`;`YPnbLJf!?ki)KQ&Rka{nQ zEYm$~CjH`Y-<1L{!(nq8dn8O4>i(V9cOk#!SMRi(vv|@pF+av1d%iZ0bXQ6<&l|F< z-qEdj{T&TxwKaC_v)D`hPe~cDML6%&swI+j8{5#Tr74jM4-oR-I|JHNMi+lUZ{GB* zt#}NsvV~^)`d;gm9Li05S62S_;2+EHDo|%TSEFTNxB}1IhfJehK}OrWFYERQwM?>+ ziTPMGASR7_dPqQ4hX-x1MzAo)-jVF8bRn`T^B>Wlkwdq4FKC1#YcCzec9`Fo62VRS zf+UunW1c34^RNQC(3-^VpFICqbZvN-2DS2nUhZsWYGs-cG&vYKQVMLBW^zQPMU!4+ zy{f4#bWT>X-#;_aw2-VZJifGKnp(G!jth0Oe>Y@u6zndE4--JeOKG3GW;!=%((Zdo z`HBYI;C)B*{gL+DtCwHTlGzFr4Dp*x~}}TlWmtvV_W8o<;gH% zEUL!>cgEr6hiJeSzWpSqXkcRjdx(y3a42qHETN|rIhS;6#ogr!d1GDj65IWKYpNJ> z?x@>z^uXy1$=Z5AG!`HH+CQiguYU7X%T8JYL?dDX^g({c(0IG;M6gU@oVv9f(;h`J zH7M;GB6UBva{V%G=cTFxp99K^>nYbx20&s}-b z;PSyut;L%SMpILYh#ts0^_yiYt>#&|6EXho?$tvJLmDlv`W(ixr{2D25=y7Gq>#6V zrK3ld`(x++SQ7^{UATZ`fhO6asTQd2PXNbVVee@>Q4#D}+`ZU`wj^}^5`OAyZZB9I z0xIxXA+*M{XR^I7psrdzlky>1xo2K>7YcM?co$Z;1Z4s6W%Rbt#<5SUhH8+vkwQe~ z`8@Axg}B(@gkp57b+HQ^e?`zQfaT18&2(=_N0VpZ*QWOs+WwcShjAIV7J0%}_-Y+9 zoej3f(R5)$nEIxFp!@b4m4UV1~j3nh7t}oCb&l5>}Ata=G|WpYFO!A zjjMZ}-dckbwz+vzVybS*-;tqpw@cTOHAvwOITXf8mHu%0Ls<+5|x9 z%!kq}zJ1@IsSAaWaR=W9$&7I!?je&i<~Q6cDaT_1cW7S6pq91KMQXiK7edJdo)ucT@~jt+pRmQQ2-doz_4Z zi$EqB-#xyFa$d}YCG8-qEqQSg(CcjYaoLBg=W zeG1S&+i!QgQ49)cO6@X5%RG4slcNUdWcV;QZ7udxN-pkMre(xO1>l|(r_xlezRYT2 zoIB7zR_fUOF~;rS-i7-zI=qGplg0rK5>{u;MYL7n(U z(}&F$w=6SCfi`ZXPToB@H6aZu(sXeT`*hS!bM`VF7s^=sHY>n{Wz+DcTzY11nwy@7 znQ{2OB)!iL`)#!Yt746RdXM}RCrcru;ukvWu>NKv=Xbnbae=JP{sN14nSKN zy7t>4fw~F65OjxI_p+Zfg_3#`S$7tGK0 zaqRa%!$QROdFb<6(Boi-{`l7j_rZTG1vZIfcZ1B?pyQz(v)ReQh|#0CG4nX6_!E;R zt(giEN6@cFV#kL@R9tMs#~z4e+K|H2NjgGod!lb6N4%;m8*rV?mhsp-ksj9GA>|3! z1zR*^xUGaT$XU-IOA=plCqYZh1D64p?dj@XPy-CLYW!KP{!v1mF3GZby~-sPqM|hp z#; zix%(Lt@6C`aC*bP#m0*(Z)2sG+SD{Ygyp)vAD+gWWGS;;9v9QVeL0$LInZ4+DWd*`*adE`ff;uHSb06WMXHbR6N(JkV_76ou8id%eFPg^9 z+y+v1^DWjt=>`YUkT&RtDa0FGZ|GwN_MO4g%j&Mh8vTYapA<}(qn16ek;M40|LlFO z7t%A`5bA8!Bc#|LNBi0|x}Wzc_)mHi-u^%cIY}6xOfBtd%RIMG`}K5M&X#jDs=zB{ z9ngP;po_M+4OG|OG<*snTeyX_jYBitw!glhRdFtP623*XAWQm01kGMA=o%k}jB!p7 zMMr4;sh+*%$I^9FFj6Hv z0gh=Y&yL^qIkqf@Nv=x_#_DIH>Bs?~6!&jG0C)$@C4%5Lx>SM8(Z$l^`zeKP;Nc`gF_{F`a(V~jOGw1EOXul!?~KK5J`hL%y5J{9!~=4E|r zq7_B270gCDV>N9Pxt+d-Ai2|c1!|O_-rU_;Ojl@z=unaJpSwsMqp3o}qmK4Y-vuxD_MXtf1P zc@~xx@y#b8OXb#$y&%}Og5tM3%&R!LsPUNc$!TJh*TW7`G8V;6|Fgf$Q<>RfkX$6$ zcsIL4wFK3ettyPaTgBz=9<>m9c}Vc*cPU>5r1(zKfJmE<9BuG){?3n0hpSn*67qup zqCr3YL$LN<8BZ^3yLe5R7{Zs}8AkAK+)Ve__EWpDJ|N}p9qejwpfSl!Ju`?gCph@D z&7&Yf$+8Pn<#`T)!R$FK?~>X8*Gu%+=6Ltkc}@FN*){=e>NA%$t(%)|8uAe@kR=0w zr8D%ZfHZ`Z*oG!5LuNe6(A}@_Isxnxe8JrK9BO$ddAI1}HQj$Kb|uc@0ZV&|Wt4rj zNZhSyqFqn!c>eWGpc}T>+o~Qc_&0F@C8@2wBY^D-bMNHbSySA&m{4*q8}Tyibc@E# zIYG?Tjj7PYHf8)_xO$FV&jXFm{I4oNY3sJU)HqH484@7AVlzUIZk0Z%AG-XRyhQg4 zV_ImAW=}VDKMxnFbXTaMYwuY7=R37!Mt}&vczOsw-KSYT)9rsylh=Xc2!h<|fK;xc zo6yqNCtI%T%Dx|y4ervB_%tR}EgzRov>vMt=14xB-iBZL_5MF@{&x?gTo*jAQjV+qY0D6P z*>@2SyR{twtpH_W_eZsYgCJjIc`q3pgfXtg=lkc+RUA2W^Fphu7;yEJrB>9mQqDU| z<;4~aC@syhEwFmhU?TM7*Lz3XX;^u4*yW1e1un-Ak>g!ulj+#_PaOFfqbF$|7sz5vCcU^&*g#7u~)wk!EuDfV$P+Stm z1TEH?QjwM3#@$UoUk`FcKG!`D9Dx3)56?7DDe-%}5iU=@6h^RbXvylM_Ipg2a=O~b zuoBd3w8Y8nA$4Qf&r=T?y%%9wSCNMyl+#(<>JfsOgO0rsg`zZ<-mBxqlZNBZSQNvq zv7F&n0K!YQG4fVF#~UNUnP@dkfec-j&+GXF&gUtqKAa^$Rnh8rq9(JFr+U`m$rLx` zn-i(BhfT9>&)zD|1$zE!x_wVw*V5d@Tp#e07muANZ@U#LYLWf-LGeKqZJ2no0bhjd z@|6oK=83Ci_YKr%Onx}-WaMWe%<4y^ggRJT}%t7Cr=3|iK@$ZJRD^wcaPMj%nu*M?UpZJ z|KoKzKsQGiNHwY{YQ|cf@iYx6aF>1FrHH=jt(iv%dxLQl%N)_S{a99p?vk?1IB{N;z6f%V>sSeqe zmo<`xrU$;SPDnpu8WOyZOuN`=_go+>H7L_H=!I6pCEAws`h! z{$4&qoGZI8&APv8-#1*~LbWFMiZ^Aw&r5q*q2bOHkUv={XM|38ov7QAV;8tV{5@Zx ziAoY}5cmd}L@yHeYH>c%pGs|N>K@bz`@iE_bYMiLS#UFcb*Yb#-w2plL@wvOc)RSD zCg8M4t2l7yDMcDZDT`qx^O5y1Q3|{|E9{SxwU$9bnNO34`7xo zU*xgYEhEG0qeosisNQMbJw}gyCt4W37QTN*R+iqg98kWYX0ez!;!ZmBMzogL@kQtK zoUS4&^yIj}sqc_ig3}1J8ZWMaRr%xh*sh7{3o6KCO z6=VJF&as!B$g?=Ml+&S}(Xz+ULN`7l6n$V`R#~I9wbiyhl&UVaQHFc7+OV`|l`^ntl!6enfrpGU#YsQz?M4!&2Mi69j|&|f-n(bT8YA4P(6zC2 zmAHi$aa$v{c8`S`+IEC|kKg!E-h}G-;^G= zICE5KbUgb_*YcbtN`j0rks1{l3q#*28UbIDPXcWf4^P_jm~hun4(4#C4bx~|#TKykx7< zf-LpTpdVLM)BxNE+5kTS6q9ICFrW6wQXJK1_c-tUP6pNgKNe6)upucqyz%K?pr+lQ zbYPGjXV8*osF>@@*zky&3}vOM0fCvlz4WSrq!+Q?%@jyY+fYL-Li{dsbAkWu_do*N zHfqXT@um!;|3QD$*bCR!h57<7{K;5bIc?eF-+k49>C>1(J~JMTYHRVVv0e`l0fmxQ zIMX-L%t6LXzN}UO>XsnuqfnRsE-n=%F6j|__lnZoLvB1=v^mex1L-TcR&|9-OCdi% zU-mOqu$cmtqj6YD{8Y}lhtLd-7OC`0(IoJ$ys|%Nn*DP`u#YP@5Gg>+u^m#+srT~470oz<^2d~D64SC&faxG-x2gGL=vUjnAy?I`6VPg2x z{5Cd;ra{0{2xD`>PVZZz8~EWR-Xk5YMrqFisxpOGX5)bodF~$K7F}jXES4f{q!YHV zYu|~y>3ceSn^NExUY|V-Nhrk7uBJC?yS)TjDpezC%WdlLhZxZ z6|mza8#fyfE}!hVK`EWEQ(NyHk#kx{I)z&fz{2|x!%cLrJAT$IQ$Lf6E0ri5X9{>8 zTG>9U_aX)V+ShdXSm~0y_ur!pm7-h@mm)M>i+*Z%9WM}}S>S`-SCNEuacN3qc^+_o zZ31ezH%Z*i`3v*y5p!rweosZxZ2}Tpn)y1Fm3&7HekP+)T6pi5e?)15Vs=#BjOIl4 zq5~dCc-i?CVfDYxtf8*U(kbf%!PTn9E= zXXZJ}%|a7Tp^oM7l-sci(|n6(rFG_G%4?Py+H=0%&}j;xYpb)f+r%?Pl+SQ?-_pgu zHgMeRYgp~`6^UGg`~J9)z;yMSM!%R(MZwGsJziTi(kv>P;(dc&3)>7Cy{Dv&l#J|e z0mpg=RpRDl2%nm~EbBBm{QarlsUIxtj?y;n#2}Lt=5xwivOQlG-)NN?lKio%D<Bs#_u1?%E`jR{yvV0XFpyucT+!HyJ`)Vc=6#@W6o=R%|PDv7ZHr#0U8q5 zy!k#)s5Q2rttmDB{QgTSwhCt|Gn!LoBK<8h^bC7)=lBZHW=1re$cKPU`+%PCSH^<* z=DU$9k+qKw5&caPM+5^1cTG--y$2y(-&0N&m4DmE=nMNos;cqfSR?AA(+c^+B7Q1sk|C|)QT8zME5T{yd69ff^)xo6$ z=i=*I#;afT>doKz7{U4aeYZOAfh^q#yHSc>GxE|LQQwI;J{XzMG%qAgPd|VN8{LK< zwF2FR2(}LF6OyFkFS_%bviuBh-x=@gdWZG@eK_n@Q9i7Z>vZJ6jMTc=q-9wTj+0}L zp>@9#lZ|~-o8p!eGMu}mB?`*~P6#?;R|lj+UB{NbO1q2Q*Yyr2JKU_>CwK5|-tG9` zu(u$8<0vXm37b8@-ZPnSnZNFl9JP6=4L0u{FGaVgk*rI5mYUC!crR3!y-+8_opq<$ z_|g$TL5V)oFotYA*U(sx;qlSU{!|zm;6DQ|4auGN4YoNjGPfu7{Q8XU8OZK7`%ih* z#}fmnbOLWAA4#lusAOeQ9N3j4P2YE96HqRfN+*qIgR-%C zTTx^sgM58;TpMc7Rt#Jei?rOUx^GAdl~1|1yW0)C zA%87Ke2Y;e#iv>!PbelW2`4l&cPwU1@gK`KRXlr)oAqIM5?vU+c7J%%UfDfihyOXU z1)w?$4DhBf{;{Opg3F?_s!%p)FwZK&Rz(C97h;7q0KhmIE$ie9ZCtYp_3t~G;yYJt zZMAxNnqSAwi#(ZE8Hl(_LTxAMwY}3|>z<%Fr-`-MdHC_lQB&svn@>3@Sg(ho2V4F4 z=J!r{EW8O5Fu11UkKx#db+BEIy0>Gi&-NioxaAf-M(nFEEtV;?*$ zq6u~(m+QKt3cZI*OiPq2P2TAr!}2%`*emGa!URJ} z4XL5ReZ+tNSlEN}+}ey}DCb6VT!?-`5`__d#vI6!=s~;!j(7l#mejDE7c|p(n*QqA z0{B$h59}U?DNpU`0Ou{(gV$#NrVE>z9jS)&|#IZqJ6)s?q zJ1s-X8vg&IdqLQ*`~DZhHGw*Hu8o29WnTl zHTAGUPEh+?#@YYaZi7}W9<(c@s2=J;=$caU$D(9$`-kanrm%M7mnthN)vnonf(J&n z;>w>5`0FCT4WovIgyOLG`a9=m)U1YWLDMCKDZVAQEcXG+pn=Q+Hp*qYx2gOT{|uDEeR}A+yGa3)Ai!_7x&V0p4H;nTAq_a z;rAEsZvL3o86m=NQ&&8w&Qji)y;2tAq0iPMk$0E);&xnr6%=RTT5Vq8`xka)&@r!M zeow@v&0!R-y3gjt#%kR67a1S3A$0~^TrPwmU1#h(wpZ(HJgp|EHR#AML74%-CL;$VcggT>O9(i@fpi2{M&qB5XK3uN^NTW-H6E}dNVA& zk$vEAk*{3VWHRzkz0IHK<8zQ(P#RgSDkidKxi_B^TgbrbMEm|nRjJ5UlKte6u(XtV zatyPSIoM)568rUApV7ejN19zbVV;|afw$@PY^6Cu=AW^v3R>RNExwmCi(}->6Zqqd#&kM1}l}H1zgFbhK_{J37a{lZbCC;$}U| zqQS<`M2+%4onJD3Ag)Wcg3#e;G)o$mK<0Lk^e^W@>t?N)IflDTZ=BLDL@OHzOh%tn2rGR ztUHE7w*!AfEVMsYWgz2q_SDP2d6t{4n=+#m?RW~^q$RPa<*Y?7B9B`iPd|oyug10Za|I3 za+|>$hG7n=;ikbFlU3+ZE1b8YKS_EgG%iSQc{{tq4o}ojT%1tDH$v-4_4(;rV-@Pb zOVvl(9k~hvjMRo2h3P4aOVf?YhC1W#cJ`$T~{;*=1#kL1pT&GZ#eYe|Aw;*@-mPVN+-yzl8^e?MaR zVy(B#eWF)*|CpPTSFvg*qg%_5iF&hb#dA}}+#@O;FCW!a8dN2~ejHgPsPF2jmYtZCQVjEpJNU=@8{$chS% zxa=Kh-~0O9LiQB4K5pEX{YE`e=(O^8Kbb!vHAzb6`myAGggehbh1v{lKmwTbNbV0y zjvN<+Ae@80u6{p?e6&4)iw&~=WH+_Cf#>7m(R4x5pLZ;YA{|KHik?ylvqp-fy_Y$< z#Nhj-#H)?=GF@TZpv=ImT(_7nYiV@tqc6S_qye4>@;`#?)js+^NK`vP^tHfl(fzlx zkO5N`1;r=HfrvbP6k3L7ekD{z=nPKb)7Q;~BG6|8Klm>xhoEuCnFq*{6XC?(uTEY# z_E!`8TGwh5P>~NsP|C(G2k8&b8I6eLlAtV3%OS2D|8EUOJ{Ou2Up#S7KF7+}+&ynk zR|>fpC~xN7T3S>Naj0@RyBM<12fxHR>ktnkT`4@UDO1G*e$EyMx6y|4`On)0sYhIsf0_nH4 zWlbLV3r`#-t2f_B6i?o1UOrpc_-^aveUbjq%luJ1{OJCUKfDg&ee<1mkQ(~IsC8`k z^2cxWhs59cBiZte8TC4#E49O1S>9SIc{CLlCyLk$jb0|o%#2Vo8`nF$za@Jx*fR`! zukOAg;V5CGy5!op&B#S!TbaAi;;nA`hzz5gpd{9`yU%E*|5&QQ|I1V!QeJ&)txH<< z%UoRP*?56*O9@9h>5RyndIRbp?kqL3i?!x$s%FkV5D%yrw%Voy9+~q(6G>vkl9;wO zI+C&FZ~Jm}0H&xl-i0HrT1Y{jlu&4xZ^oPYZOxnD8cS{qywWFJ*kNy(*c3zra7jlV zg}RIvkNS*4GWKBq^T&`-x0__1(LPnX1^`46fj)2FPn z5ego8oUW*8@t4ilJLh`?mzGBVKnpw=De(zqowF3pMJWeTvN(nZxV!oTj*Q~Q1@}B? ziZg9K!0bVXbg}fw4l#<{k$;aq5MVj#RBY3Lg79kQ8Ea3k0Gah?dz$hE&Lc z1R#<7(+uvX{z|7jqv*cLuXJQp| zKtWP~96gkU)CSIs-B+#ci+0t$FWEuKbIXzkn?@J+HZEH3>}_5|uNunT1*LJouq_o) ziI${JIkDb`#cA;>PfSNNZ7aeow3w`}C8sn4*_*1dvmI!Ngs!PTDb6a8uU0h4JH|5< zFm5?FbW&80x`BKa8pB0}ZBWXLut%v4pGw$UHLf(K4J-Og&s2J=UCxFTD0YpzO148+ z)&@+mb;qVa(nq@&_KS}6Mux7dyAML44_L6V+z+H#Vm}d0p^vlM{J^=qDLiziXw3{5 zKQwqy=>7SMx_hwh9&Y;Cv6tKh|G2A7NTOX-vh#6xiS&osxPF(kU0MI_7# zc}M3@#cn+lB`X$cU_V{=+x9y1#Pi|X5Wx5eL+W2rjXHRB`u)OGqo|rQSjv-Y@;VT1 z6B1r%EPZ65JaZsV*!_K`E}MDAl3sw&cr4$GW>lKuez7}yXD)>~L3%K_p%U{J*k7Yc zsaUsW`8~k8zWg(Y9P9_@4RGRI7l|X?(*%iZ%>oLbPcK$?0oMvAh#xjI$J61ThT819pF< zYLO&-?zb9e2S570Wh}$=YJ9zih#YMK9u7;IXY>`-PqR(TD`Tk%yisI1v-Tk|`eCJ- zD2e1uv0zGXS%llWNb?P0jx4|IMl~Hv=yRP(!FXnbYX#m4)X}=5OPc;d>n2sAFHyAG zyr0d&GJ#mgJQ3Vzu;51bc29Sfm|k@Bc!p$=A$noDGSu>*Gmok(I+fJB92tf2ie@kB zbAcurAyh3mM+M$%`a5XRFPO7;d^$dzIB1n1la5X0G8>)Y1jjACvxdN}H*;*C`$Z|qu6aq0+B z)2|hYjZv$Ua2Nk1MKN-4L0X}8@#@Lfp#X1#eCQP}xko2=&a73J$TkuAf>Ig+rPrY4 zpUfLmlgshhv+5zVAK8Amo~#{TL6G45{rOH0*J+=scD{XeFZUyCleZ7lP2 z>AnO;KHtM)r$%4I;GoMhy}Q*nYU~P&Q~$fPgo0mNle2D=zN~wtL#lEb_eFC&IRpL^ z!qc6*GrjG-b=L8SYQ|XgOwwO`AoJ?!a7C|h;pc^eE(yC%rdZ4N%s`uM%J&^sL@;N; zxlhx-Zs}nxy3|h6QYA)_@=;GFCT=KTba|}5z2MM4>rz-Ih78PY%7A?3i%i0lzZp|P zXI1PqJ`G*Q?N%cxy9WxXLz!z-D3hUjpib--1dXa2&(YM>$k)3|dszS~px)Fh4dMN{Y^mCTT9HU*7U&xz zQ{CS)*k4}NH}2a3qaaVN$}8yO5jD>@ zVu1n58X9np{6#>U;6%`_ym8pRkwt=rcspdqt`hVs$c(yC>I-5hW6392s~|W7`wQ{@ zFQzbHgzOYQc-52pZ zZ+ET#k@CqEa~=D_E!cRTan=ogERo@mW7XNJu(_F;tg3-+tM`)IEFed=u?|1_o33gB ziq~1{{kr`k!)Nna_BCR*Yp17NK%WLJnxnq(?)aC{FYupT+{>;rfnuUCnE;Mab(S;1 z{7c^#BZtIELmLFHfHqB+`g%}KYGCvJ0LRxYNEMncdz^W%JJ)2~K@vP#e-P2|7SR66 z6WOJN00U~Ki|#s;YOo~Lh*f)jQ98k7AyJwB=QY6Su_ymTI${;ymy@PDA}e)r-EuDb zX4#|)`@k+;JD4j}8iOZ98HPuI+wneP9>_Fuh>7OY6~%qq(W?V&Nrw5#i7#$!)nwC% zv_YpXE7jOQB-3Za%8KFJObA@0Q53F_hV#mfD!BlmU@{5{?U%c0x+!Trumo_o=ra zPaOC0&bvqLzRs||#0c8k!!hLOt}0g4- z!CZSP$9nq(+^5yypMZ^F`gk3FQx`Ei!>60h7p%d>yg@q!z0&mKR2bKiBX0W+W3BFr zUoRvS!mV9rfndbUP%9-h7xJG8$JgL@DNO2-h5Q)O2POS|(%#KSK9WFbw<=`w+G`O} ziR^Y+esRNA5^_{!O&ocET$m~U6^OlgMEJ+zT76YtcnoFLnY!8%y_e-HQMRr4UV*Xi z$kUi=34Zcdk5a*`xbB)1(xp0azP8rWX*OQL}Sfs*($Jz*$v2E4dL! zpR$=K+nC)1hisNXA&l@`%VBGxE@(0la@^J?E#U;EgX@T z5E^mN4Z2s1+EHxD2?BK9zThQryl6*sGj}BtucixIcSiipZcJH(YN*%PV7CtoKsohB ziv+Oiw1?s_v4iu*3>6@pIgX=T&lgDNfqg-4BLjO4LF@0r%e5N8AGW}E!v{mUcWWq! zj$h8U970>qkhB7Y{BZL|qt(UfCFB=7!yL(PNicf-`np9h^qO7yqg0}%LlFDWVU9G! zDEINGUu-+vTK}mQGrwyk`CFv_^Fyv&W+sx4I z*H#?PFSh%Q-R09$5bj_k=16Pm#6tVV5Ll6M;m~C16S($R@HV(+u9;?%`!r1xyvo>` z_1Z^VU5^$#`Z7VfwzDy!8`Xn{RMg9u?e5?ND!UWf#G4KS3_W%nD>TPFXibKK(N2eYn~wiS(Rqfmz5Zd`>7JZwY35J8cqq?&EaSXmX|iwGQv0Ov_PEj zKnPcV^6Am$PD%Rs?qx|il38Qw_oD{I-|?vOxsCC>Svn5zbG4-t;AD7cbenaH?*g{9 z{*sm1IRN?5Z;~L*xhp;$2J8h@<+Tn(aYt;RYu(`Ar;CIfgc0flDj-#wQK*5>S)#cM zlAVIpoC3R<;xlfU4x%uw4h2Q0k@*i!$K-&y9jSqay(1%FW`aibQXYhHwUCcU1kN#B zYv*{5D`7YhV`Rm(9*x1tU9lX*IF14up+!@GtV~VEW!R1wnsg#FY$V$Peea+0?#xX}jSX-chWz*>9K|V>!)Te6ALuHB5AXPw!d*ZYznGF2WUt+N|} z`JP;pT8p*8{PyhcmQ`C$`W>P>hi<2_E5I_|#=!BHDEjz$1VinEmwp}|Bh_T%`=^3P zgHGwB40Stja0xX_`jU?>-;-KDf6ULSj?)0cAl+(JI3R%CbH-em5DY4K|AtAz?$=#^ zLSW@5rp2aYNnj5|$U>Y?(=++c`o0D7_POWey+c3qaN^v2t12R+Xy3xi?k`@{2*k9; zQ?q}lS;F?_`f)Bb%_J62=osYbIH~lPd%Z)M^1+r@+Kp7de^IuwsPdWw_-hp*>j ztT8qkEk@O%9Q@5u$CGsvxB%yvg2(%RS*RpM?P z^0ND%&WB;YtLx@kYGF?dJagvk{$q;|dGco&-coQc_^Mk~SOC*Vqx?KzP&#kYS^W(D zRz!p)H*Y3Z*vM=0nP(!^Le70%jpq)aAF)x|7;86R;tt$p4XO%R1%ca1pKw{X>49sNG8pwvYcem%wdk>exmi`Cu5?ak?9rM|FwA%3rCweH7qO|?-6 zb*kyQBud~PteXFFQR1S&bPy}L+ktqpJhZIb-puFxK-ipJK;yxNzXiK}*KXZVlA9qp zJrwbjX=FzK5x12LaajdFs}6mjp}+*TPsWb=KEA`^uROVi|-2 z^+;8-O1f2ZosCd;2p~q^9JvmUAg-1FF8Y*fae_9OV4Z|VsA~5_yVid_&MaE7r9w5? z{jmuL1)<*ocU!S_<%oo}t;=^xnY#;35v!i55koIlt4T5Ehk_sI$tSEOQ;l~P3%Ey_ zai$3-m0!0eH*@pH{k^K>_GD$g-15+@Kgf3@!qDd&2f)R{OL)L8*fYnoIVCg+J$JV8 z?#ujGivhTQ8ZHdo6R~3F{Kkfg)0_%_(0bAR?GgWqh*y271w~WI3l!}J)|%;~2vDVX zTx6`m?`*GmRx!Lw_dwIR=Ifa?_L%nO&Pj0Tc4%{BBX^}(Ii{dwvk`?C8?nZwo4(_J z`k99u@z=H^qPN*UvUc1P=)aEB8Z+saL0bNfTv3{eQZ@p4_S*0kRz^X&RrrW)*5E~{ zT@4$o=&m4syMB_vv!oIJ6ts^98lFcJBeao<%AmwK-#g5Yl2~ z+%cudDm~m_%6*$U)aG(pu%Fxf#`f>*w|T_5Ghb5{*mWZnHkE~5az{MneAZgUsjYJA zp}`q_U1up$Kz;Z}XsC+1Xx!eh!AmkmAR$d^l}o$#S-<)#RGyK{9fv;u^3L(R7GDG5 zJDb~^CpKEoHb)mWlER%3UCe^pKi3X5UQd!rThIj_T`3rktkPAGJ3XG?liz$XEMyv| zQ>$}T=lXKgH$a?smfb)b41*?p)(nKrUH~~T+!oC#{G@?lY;;C*Q2dzX zj;|qcDC1e(3`Hmh?z9q#u`ILHW(rcXqi_3?GpH+c(drav!v7?M)x-jP^)a6%^{XLJ z{Y8sREA1Q4unt>DM5VaBuKzQS5VcyT*-q`!ek<=8>)G(NJ9RT^}1gd^=2-BWr_Nx+Xeo_;JN; zGI~5iNJjlW0&sdromHk#WP~n}s?t=Q=5{2rdZO}fl03@tE{`#@bhAC9H-N?}dQpAh z6<-7&RIj54yXt5rj0DbG`m{|-%(i>20NW;9v}d}C2j}q^NA6J zx@Quzd+tvrAL(>F#|tvacOp6Yl+?BkvyZ20DNn8uFJ(@MyBuX=(P0F)${~31qhIYW zckz~sbD|k1Z`PQg1k8%L-}=}b#d0%zoaO#W1URO)mgZ_2ka<5d5B#2INYGnYk(||S z%i>UDf|!ucQ+(%E`-W+bt8X~jxj5JJ9kqw0bGmpZ%W{GmE-k>ll#MCNsqxF~R>C|D zLMJMg7%cnd=@!tzhabZAc>Q@^tMLEZd{R49`*OvX7JMK}m6hXE4eP+I7d>zxB7R_W zic*~o&WMslvGlWuoTuX|q%6UP?v2gCI{gj0sr0dhFQ>C>bo}+e=6SC(9L(Gm@sT$cehP zj36jkK0*+)i90yak0@+s(I0Q@4Bv*JjKi#^)|rwGTtgCcE3dUD+;thU%=y<2tT&=+ zmEK8d5R>&`oY8MbLBe2qcP*5Xeg_Y5=L>~IKylPqrf`b*Tj{h;+m_JNmF7JU=8^Pv zlXd~X{n58}ZPp#^Cwf06lC^M}5!$b=BNZ2V-6K$}r1HQ3Zq~vk%e(qYTSp49XsusG z<-oJ^b*by-ke9PE4UMxOpQSj}Q%?ztwKj5SFw|`Hsz^`sVr>rl`C8C1hOV;5+_f@5 zEV7;pJ(d_@Pif!J>x~4pXBoqXC{KqCI zxN8~u{Nu0x*fj?)uPE9sx9KJ|BPwOSl|k5V1XJS8(7JjkkSiS6U03{B7k*-WQWlBPJksjAKH0rK5kN{h;@}T z7SMVLhVYzgYAT$Wz_n7{%RW*QCb|YLQ$wTRuq*wW!x+u_jUm!3rXo+-9O)hrKvs_L zHeKB_E|SHSK9cJEWDGA`KRLGWh+ieJW4PdIfjlvKQl-6gR#b$cRC;|xQLkB?2u8uH zQ-SNK@R$0C6Nf*Rf6r?wz7yYtS>2~Zq~<~K8^Z^SQj8`L9}wW*1Y%Ko#<>D_{P5~c z9E;I2M{70C4vycGHuAD7l+VX~tKtQYA-X+mutO-16lv|>$;#@;3tfW5RvG7QT`mp>5EY|( zis|r*{CSRs2aUw~KFKY@4qQ$AxQ4p{O`4iT>V*MVs40sb+9!#&plE`ad)HBPwMF^3 zkoGBg#(vo{u>EE;$ZO}%Iq3a~0NPwK%#NZdzo6JIB^|H9GCos8D*j_zuCclAq(bw? zcWw}w9_QY6Z~QEZwFv`NYKYV9Yr6kqlYc58sqt&SBarpGR1`tx#z`GN;WcIaQ-pZK z(lm2o3LOp46I>Nb}{^jVZ%)rmgbwTe#$p|6CL$l=#S7e;Su8CSH^32mrx7R%lfDfTuN$$g? zHXLrF(IHIq&53f1Z2I~RMFRRAoYll9qRE@4WS51TJP=EMO^3B)X*>EmIwO}0q@GNc z97qrP%O;I!&VgQxwEiw^NO@Ady&Vc?=heg^C!MH*+ zSIeb=Z0km4Sc%t}H%C&I>61j3M3r%GUIi(jXs5zkh;qC3$u(Red!b!jN^dde&bWQ> z>1lcA%Dw5R=?{>z*W~}K9@tG1wxA@@+W>*KslrF>u=ToXY0oy1++Z;Y!8f`6;xUy6 zS9`KwD3LxrIsuvAOe~m)+4UdDNqNf_F(cz)eAcqr*zNnlYzJ$vYzrlzUS81Cz*sVG zHBW>0d?XCellNY#Fb_nxu6b&G)Y96{Y&y}@RH|@s*labeoE@b+5!O5HxsmerH+zxc zTGq2+1791d%+8shP+Sah`B||o7&oR+8}~`{=CwcRgr&viwFB#NaCLM7=%xu0-iEvR zfbzgGuo7cu+gRKT79&rvBcg&!F|tMmYWPngPEq*_yez5isTB|Nh*CdEgL!d7ov$7kS5!PiKf3K(=5Qv)PCZ>O z@|eV`5<2Mq;eP?)3svyK8h+bSzIpb`oC)^syDWFjLm2ua;6h}w-qZlE7}M<`m%}#{ zLc)SCDZqc)%BUj+t9|YYm1n9xo-Sg z=q-CXJoOi{*3Ejq6#;Prlvga+8MO5ylp$Lk-4O~xOIjT3w!ADcOKn*X`023faQN6S z>ZgdHOYzTfHVbadoSF4-FE{qs=7x~Ck%@lJ2BEhOhCvY5ps0qUHP;7*<`ESvCG=hC zj6g~)@GBv&ZMQ-8>rBf(uwysSNaNq3K0jzP=y4?-gM-_#YrpRFX=d*~i*=)b62kxC z5BKyRQ=I3wNe^>a=3;g>NPKXgff^iGXFJY1K2$|sW$p2PN__4?5S@{rin;C2t(6tA zDtDwHUY&{dLmkGkCU&CSelLdAl^C@Vc@&D#EE zM?p9c<*v^26-5D9{k6EoORRl>5Lh}~0&U;BAA>xWVD_O?bbQ4MtQ_J$#?kyZq+x%o zi5tvcH_&Oqv_P;Eq4(DQC1&ujdR{l?idj+#(uSdZ*h_y-66>3q>$iTCBBWF%9k|CK zAXRX1E^weWI>V?rcOm?7)TXVZ;y0e(oc>4K4iknH{cEz@#05OfY`1@;YS>q8Meu0& zgyI;s=Z_A2W?1&I?T!E&^|;I{0jT&_++wm@~BO;5QFcwbsG zmGx2`@}-xZhEbkp6=|3Z~neBd}m=U$sj+(=lBRFg9Y)xn;T=@#*WDg z4_-yz6PSd^xRrtRxDmFV|)bFFEq7dq8KqZofx|03CBRFNzBMJ1K!h5$8j69n^ z1-fQUk-%95@>gbC9+A>7oWCwGQVHx~HNcLik#8542?DbLd-y9*l_#qrZijYh;h^-h zFV26wOpJ3HLPqB$w3&1|dR0nwu`+;kx5k_`!uX>otQT`sS`A=ko%`d3D zCTroAz^|7}vq!K@0s5r0MU~`@{>0wp8zd7B< z$#tEVo8q!Jb&o<-RQ>-G5@*BGg^0PTuaMxqbwrnBIL`!goyKa<&50zuxl#5?BtZ*} zx2ljdSPPF29f~<#JmPPp1w81HQo(OqJ5RiN7lq#%L$%ggn$q-TT~H(L3tr-)oQ9)_ zHESjn9t604z%?FU2G73Ct>Kc76Y+!`Y_d@2EG=>gv#sk$4 zwd!Pk*$*rxGSOwxR+Yd|o9x6;SC#o4G8azncfU5~f_8zFc0BxQd>4iUX~L-VO4qrC zejl6ZSIju^=!)8hrpiU#@N4P`6g>t}933S02!%!*%r4-}qlSdSiwBA(0IPvqLIy?oF1)(PpZ`re6uDk$AGm4n+m)=Gi12wSB(LzJD?h@@cDJy5`6)qR@4Rq# zwywnceCx@Ua$o#4cl~U~@uxp!VSDRHNe>Wq({6kQ!Vt zZRB!32DW+F=B=end#+kg6xo^Gd6f%4Ji{*@qw_I4MT++IE+Z1!LH&nLUwjj+*36(C4zixZl6om&=go z*c(2(#cgfmg~5BlWa?S!SXO{G37YgKpYWAyf*cNFWfyb>g#Q1`IHFWFV(sf z5$%IrilRdgFX!mhR(LSP4Gbc(oZ^GTXJwQ)aA*F}TJ^wEqHAcyLRdsMOTqVS^x`Eu zyQuvT&2Q$<-Kvw>v7bxh)o$+3iDvL0Yr3(pVwUdHL6Lm-aTB~-9)ST9C4Q_@ven-& zuN~OyX=0()mL)CO!v}a!V9|kK&WarSrazuA5AQ4=W5otyJIejrUZ?f{))(lPjQZ5<6l_Q^L#-kR~+B{8*xUSrsRU@y34wT@=Sr@vDmy9DmThIzleT^?fo;$CIt0< z|Kiu71A*OJ@iF+33NHVh$1~^{`P0vHS$z7#gMFY;UNdTFOw99u?BfUrbjGQz7c-P0 zp5f@y-&htQ{>oK$Enx6%Xvj+8QQj*~KJc}FD9!rUmyjv)JmPkIL?M-c7`N}RxS(iL z%MN5K&}FCKt^@IlK<|SW9D*IJal9rwBQ*S47su6W1fNgFLqETqO-lVb;2m&+ATTD1 zPzs!La!^F3%3S=+yCJ-&{zz zkcP^Gx#S*!_Jnnb9B_w79nc=$JK)$gle>sBE-s61a`m$f5}X;Cje2sh9_t&Nc5}c# zvg$8h<7m!7;2) z=s^)RJ@W+Y!IV3tbIzql=yr?NZKKBh!tyfT7I;$5(WT08kL)Lb=~@>l4Yt3Iq+D)n z98=qUj;VU?a+-x+dI=(1x2sR3h`{YfjRjx-CH%AmL&3uX724&Y5O(JMZD$_k7+(1P zX)?Z?I8@$8AL_Oh_WjDn#-e9oRNDi-*25E6Ql5xyy@70K*lwlCu<6)9vy%?TZH4TV zzkdK&1xYC!E393;Y|v^*(O{uoTVI_?JTQgbabj)Tk+)KxsEz6KY}!SHpqDi0pQ7a4V0hzN$9`W~Mt`rM{b%L64=M8Ft_j#| z$F61chFZV?K7lah(t%|Ox2RW6TD;|uh(+x)b8FpMj8LAtk#3>~R1`LTw8Rw1>*%C^5myEp z01c^%5`20*up%Ls)Q&eD zEb3PFhQUudbD@1))Ro<3*k-@i@w(HLfO})y!n|>okKtuJ zR`qOB#2Vty4lTU&H0Ip+RU;_DSX=JIZ8fkwEbqsZp8Mo$IMSt1TR~>%X9WMl%I!s& zj_GBGBE-16bONU-tJOItlJR8~JN>6CXX(@x2j&(n9j5UbC=8?wJ>D$LsW<8^`b+cj zvW$Xl&}Hta7wM*o{$KX84hGIvmV=CLJZXWp5MckY)$$*`84F#_!g>-n!l*sk@#@-% zG7XjQ?TsQ)=2L^m+4sskn8J7is#2-v?{N;J@M7@>ZQN4s194;u*S*KrY{Gmm`0*7* ztivH^!t#26;(67&VlBg8GO8%@*o&I$i`BTE;IH`2_WII#yeaTpz+=I|tF*i1p?{eA z6~GF!>H{ziU;jK@ix7Z;;}7vcG4VF+8A}_FxWb5ZWB6W~%Y4gR8UHgGisUR=wN zos{da3oJivU4I^jnefQ}q;r>zGsbFtR**TP(_JV&#duLDu$E zjLF@uNJcTn)!RGYeSc#b3d-$PUo?h4Zp~;Dd}!z2=Q+o?{p(S(oAWnJ zM}*RB9gJUQwC-+VxT#1$S~C9AN<9#@@0(UOcY^pH5mR&x3stadfr<=^wk|%ryv|b_ zAX^?-$E3j-8$*m#HJQu|cB;qrM4NkQjRBwT z7rmFR)07K3e;CnKHBudZZJy`eO9Ps|MB2bngH3D4K36WhHQ^ZdcB-{UY~_=ndu9Wk z)|j8_9ErW|es5ZdaIP;P`&*A^@o2PYT$KCw4K~Mh|Ne_qpfC<+EU`2O4+jdgSle{n zvvPt_JY#rIel=t%C-DazH-ewwgGeBWdrla|PESU5`55+1ihx-HR%%e`9jvU$X; zBL40C2KjRY*#T7=h;qjMcfU!!{$~VZoHT1ResV}rz8-wH^%cQuET4m z{Z#eHvh|is_?*%UWN$4+IzZ`JLdS{x3 z*jP6^bJ&lH5s7fB1D> z?Cok{IINWZvqUX=kwiICd>QvfMiwp=DdrIU7d|r!U&e^vkmyeNWAd z!YoAavMKxaebD+u$yD061L*?)A3T16ECTE2=83OBw2bUh+E;K3LEt;T+m%Yq01Xa9 zt4ZmKEKp@^$LQl9xVf`~FHFz*vGM=0790(MCm)^o1glinJ+a5 zJ$@@^&@dTab_2nn~t-n4; z@G}Kx0>Ip1@j3=DpTk{|;0`ps4N-PW(-^(H=;cR9h(=(eb$doVZQM=&CKz6v>`TV{~`PUQQ znKU`M;Udb<%SL=Aj{!D`(~IodUP zdJp#Y>4c) zXUT_bF~JjYm6B#_DV;xq7Sr=s6$8`Og-}^wjA+Y#b|Od5E_+Ds-9-P|EsO7SnQ|I` z-(M|!8>2K5X3_1!)urhop0y;vOZ~BUHbFX*Im5ej)F5Ndp>Ztr3Use!!bh7;til*BLtT1BW3i9TS7EH zcV_B!3kxwmRfa&mfnXY637czp)I2NV=uqOsIp7?()nP*%%FB8Z9vbZ5uZ(tKToJ8l zGP~K>81wt3)*fzH)dBIwWD{_r_25ZXcD$8#g64x)F(dn}l{KvnRDU7yYlZLB(<7`W zH`7PmP8(LV%)#Q?N3K}!`k1XUx72?m8{QqN{3=ehoRMCMPu@z8Uc38xH5kS>{NccH z*q`#OMn|8#taPaP+ke}{M4tW4TygG)NpIz}jrK<}UhceZt3L7))iV8B-ckZmMu>Sg zSD#wmdeP6TIS$35g~)Q1^ymMv&Hmv+XQRoKz@I|zwAV2W_O?shH?VVP*mF0z&n?O_ zjCuN(-86u$#jC1rj%rvug8a&ol{nG0m|Pq;jvs7kwX5e_^K>29CYi>8O#XO@Pgf*| z3Z*}KaVBNq4<=Y^_x59QhJyphL!T+g%9Y)-E)d5z-e|3^=_mRudA824DFb{NF)iZ= zX9dVLpBe4HkzJI>u!=ApRGoKM-FeSZf%h7s*n?(Bu-g2oqVcRfzj2^wh6-IXTC#4C zcwvqsM+5?Y+tm@QRt1%NsHcGLFwk1PpCh%}f?_*9qK99D0|IL@HsW4(VU zjb{(~>=60}j!F$=dcH(%y1X_W=@vX8ZQhH70dE6O@D=Nbd}n>Kq7lL8vn=U2RHG3n1{h5f(BfeaL%iNw)$=J z+@Y*hYeId}-nJB@t|E7TSh3j$1RFZ82JM#Hh+#<)(*yWfwWz_|y{Ewy!+xycO-AdL z?0;;48JCC`pG(PGqq|nSn(*rYH_)!20b8&Y?7q*kF^UPUB%r;bR0^$eOqCapVPxXg>V;ZJh*SW@&D0UOWIX#j8dJi_!otOEh$MCFJNT`lQBv ze?x9R^TH_0eAqt2rk@KbI;qvY$NB#Jyjm2lntZkEr#X`Uw$_5`q0D;GpJsO^$Oae|GKseE74THRsx{*T9ywB z1vNJ+L)h1fmmnQSyx>`sWOwvvW}u!h^WcVYLF;664wXc(Kz+~mp=H+^$E5A9RW1uD zm#4DqrXlGsKjzTkc1jnGk!iU#9aw6H!egJ>Gb_|o@vAX+s)%Wh1pjdHA&@@aC?JCsqN*6*~}y8DxuTc{YI3SUzh36PwmOo!ai=+XEl;; zQ_#$kU;&cMuVV`d4Rt0TrqQ!)Onj&%inIDMm6MXya8CA2J=QAR`h}V zLcw^rxAk-MDAn7Y(Rlkwa|N}Ub5uK7(SoS>VS%vE8xfUAnV1^U7S`UuGc3JaHRaYs zW_qIpSj~?zDr2D}Olll1DRz|{f?|xCJk4b(ZJ~lQ)ylQ#F>jqasp|x|b#s=9nQg5? zI7G}US3lz`&ALElyhur7FjRvz#uX{EiY3$a)|tE3b6v)C73X;hJn7qGT!w z<{zW`$Ur;klz_5uEG>y1&#f!nUDzuM$vGbOT-eKNot|FXa8WpUe!DrEejGJ@si;#Yav@KEWxvI7>@CuD;&zSH`6T4v{7tfCjM z1htlXZxH7K-DA1(oC0S>YT7wYZc}T%G|7($0KgS)J!GSvPSaLE6fafV-N1whiT-))YgU+lG7HY%eKFE=<(5sPZ0c%%g#!<-0Z+%=Dm0LN zOMWh<5UzVDk+t@rM<~1TweR}cIM=9Zpl{Greix4v!~kFD6Gw}8_@kgJ{jU9uils6^d7l>){RRYDVneGhBm>lH9SW)hz-C?~7D!FhcEj@zyxyEH( zmewoLy|vUexB0>ZDa9X{hsLE_x%mNxF~jULtf6=H{wm$0yxIuX$unI_Dwk2|EXuAd z3LEHY|JBBu?=0CqUD7zu*Y7B8magC@&)7~l2#FVK{gR7JPQO*Cia(C-j>*~u@MEN1 z3+V>fdv?-$S?2mA%Ik~cuPSp_NiC{DryAB1!9es$HcofV(QvfwXHASXUqrsjA{R_D z{}|e^*e)0yVHQg?H33p5>UYsw18;#Cm5AsOzn>6H^yty};^VY+X;q2N2xxLkV%VMt z5SXfVk6uschmYdkv^MpHctC&7`Ho(CP2WKWvkJ4UsZo1R;yaEQDV{pbar=(ph(f(y z0;`33`i2k-k0dieOV|GCPr<;-lgj{tUDIL;(G8=vU*}NZTF46ArMpnD{owi^+wg%% z`soPPg*xIo3a}lhfh4w;E%Lx~$!?bgJ)s-Gj{UeA;VwG=1ckqbAPSl%o&q^^C*j80 zFL<3=9QNwtGe7>vwg_w3(K79^AIqz7=_OTd3Hh_mad7+0fIVpu2{{+VGBuTG1?;V9 zd~6wfMaL>O?VLhLxv!+N%@=RV z(8gw3#Y|Z*7J>@CUi*a#IeulBf)MUvkaiujItK$?{uo)Zy2uS;4xB2w4zmmG3-gvB z+`vMP8ChAk^u@@$D$#$3>~5dhetx-vxO?CjTpwGrss3KPBnqa-lWPshig6nw4&0&D zW}9+t=ZcLe*h!W7s|=#oT&Pg(@(9y-_lYPMX@C?8MZbmJ_&hc~<+t)ih;Uq+B^UwB z+CrhXf4(5riq+Q~8y`lZjxYq_BwpF(vf-Lh_a>XJcyIwV;SU4dW4^`fTnehR8>snc zH2)6@p~@`Sn*D!JFL9;ZF}e_kFLxUG;$!J##e zJxjbEHo^1FN}i6VW{KW)Uns1#7`zkZa5^6~oVX5^E==CZYQ=VC?*&YR1sWn$ZuHeT zYV{%Zh-7l35h3Li$UTH_p%0>)A%O}plu?|DFJ#$~TL15&T#M21J8~&wcKi@_sqV8c z!6zjJ9nn^SWTZa1g)C`-cj|2(=tqMi#rnE7ePu>8icXMB$&lo8?E;?#y*uhqPV>a= zQ(U$Z@M-u3S_tF{>!xzu0yX0{E%P7S1hs^ zoc7k+L*ZovjO zm_THK0p5l!BZD7Pe85m5OoVg<3h|V&>yFteU-w`XK`iQ~>SOaWbVI4)PU$3CSJuc$ zyl%qYgYp|YqaiUI9tXN*g10b_kQE%an!N1s?NO~6Hww}VV=o)!}zpSNj z>|tEq*E8e=N{1`#w|IR58RNGa)_Z=^pcnU2y|)>cz1+fUwiXR+91709(AQ%MeP)4% z8aRHzfdvYE(jG#n?%GnwxG7T-wFC%z06vw=87dyW51BuvW5*i;XNvc!am5d~b81CI zhQ>B;iA7at+iwOzZkR63uBI%mnWxudoCs2>{*xUPqXSXvG12zc({%#P9OfM{Vs4o3 zpi3WcDs-@sUYGM429Gl@PhE=SBbP_gmO#kcm#2O#&U;=2LJ*RoZ1)=jo>3lvU$e|3xOdKMWi`(x%&IOi`DyN{K?(hXnCl7$7kUTgm7eDM2}?BJ?G84y}*(3>#Y_wH&xvB3I+%@P(?08(}=rG>^^=~AC>T0RENK~?{ zk)I|q#E^wF*u$0@ofg6H$Zr|M#5ET+zfnR8UP{V#pOy_#xWp)Pp+Xv18I4T$A&?CR zFE%@s<&;d5>mKLSDF=q&e5=L!%dZy6?I4eJx==~`+>57R` zY_P*KnTs;xAW_kOukwT5P#j^sA#3DC4Yix5c^`ix=TJjY0pa5kYYmP~CyCLZC8JqQ z2R9%j(vw&JLPZtqeuyI|fQ`>jk&t`11c)@84~INoFA#i29)3-#K^r$j!Vt5+4lX2K zFQYErMSTK6ZM)KK62@GVe7V9F7_MR4Q{;Lh-2;;ZY%Vmup^k_@d;Z1{dW$los>LyF z!&Sks#T*iDJg)69&5(7t!XM!ZEjCwGT98O!NF7|*(w}B%^K>GH_nO?mvJq?=pn-qX zm+M__2L%K^fNS4mqpd~yQ6COjh zkazDW(K~BRhn*5HQpTiCAAo(c8gF5mYoN}5oqu*J1%mC!-30L zA)3f@>-8k@;JJdmfci{nvck|HeP*2jfUkE+?Ayc#Y1kRVj&_r#bUzYBX@2Sd+|556 zyB=Z8O!lvF)Cr&{bsnMODKCePw0kd}ixigA=Z_Y^;7QFYw?{I{k}sVxB|Xb-PSy_%p5wf{wS+wmcj+T_xTLp-Btd`8`hdS zOX$BV()hXU3l=_kCo?m9R@ghO0&m!7xPCHFuS%x>uVMk_0mV*kpKOR zT#3?u`*Y>9zcZrN;d_);)h0l$vvsDWKr_02jJdXOb`|{H?iM@#5BpK~N%xeVI%_Os zn2AHZn+>G>arpV>k^#=uza&{Qh}*dknz8$pLTb@bz%=o)8YS2PQK{by{I%Y3-pl{B zoIR~Xg?s)zC^cJ0oU5J6wfIK8jts0cojg3T3S4Vx4tROzds+a;nEn%~FH;||0I~Mz z-&W*?mt?Bm_W`)7mfBdfKL&P^utw=F6rH-)(H7$HEm*1&v9$iL7@vsR>R%|;JEKAU z&Rg;YvJQsFMyCD4HUyn{RuhqV+y3fB4N3#%E~CZ%Cm{>7aL{CZ0Y?tKs^|6Use-9Fu(YLzNur}8syE|bOOBNW{*^m} z_y-UwiHer2rfmkQMdEzy;fayIuS~_N63pgGw8uVC+hANDKDais1c6`PG-UL(Bf4m7 z_O{4{=uRp3Nv`;!&emp-Ou=#COasV=L>(Wt7#%sqCnN=7UpZVlc2Ft!kL@oODW=YA zuzfvhoLsXM8tp~$*smNkxTa8A%RpJT{L10QRQbA`SOKkZ-2z!z?x-=RJ(OiM4*!8I zk9qX`ef4wQ#y`~BbYV@6Ew$417)e{#+YcF8n&>y~e9?KwXQZ4b08iFWYBlE>bnQ>Z z&hW+m!&E*T$`s>@O&6kftc`AwmL7wz{T`87(yfNmDm!a@VtEtK2vd3?DIn=7#6#B`i`I<~$_Z`lA<1kol! zrmL#rb1?vtj)JZ0Q*8|fKD<(0WUzSz)G~`rCOr|B&OFSJ!b=%}uU3lHd>CA1VLQ<% z2ZiS!lR`pjlABL9DFBzC45g0stt7bD-Jtl(2o}sp<>$vSR&MmKGJXA;lLvOHPq+}`>HUuP+B^JvdEn_jE^9HLWrev#R`pxw!Xt(7n&k^X2 zu5}vpG#BYpG=Qd5MwfdysH5Ha_nK$}= zH-5Z1hnL4<%@I^}?_m#>x8XGRHuHRyue2E;3PMnFBc}0?UEnrhW`O9zBZ)aP)=c`T z`h)DJ0d3L?{>4o*v7ViX{6*oYRKiJ3<~WN&9%|nENdZisk#c?7MwNX3fFh%8P@ET_ z&C+x%*Z$8_zYe!?bBl=f3g~S%lXy-$k3G$19zEG?0v%Zlhob|IJi0wi4CHZh#IwhBM=`omZV5-no)IGf1Lx^eFl}E7d|D) zUaIR?}YX41==wf-&(bh zN(lF_973NQDYFdB&6;@}i`AJy9-nxp9CdCsLY7!|7lVx4as9}XnDs^b#F0pF8o_(F z9vmT!ZhAA?s1lW>_XbokPpllZzSq&3!zV|PTeq56GhN)l&6q)z=xN2yZ$QPT%M#!` zkdD~U4n0eAlJ)NvIbEyCup3DwpW?pI+vhEw4T*Wx3k`b;$>OR#V=@2`Tv?}QERQ(N zX0g#VYl*c(=}d;#l?&R8SgDd1_5DF%Iph`QuEW#t)Nyh{=j%;_&f7uB4mCY{`nGxw zwmDDZEKNSoT>hhihg~iuW5bl7fhh!~;1V%pMp*c8G%mV)97=tFkYn&E@3M9hHGFUI z;sge+;2Gtq8FWqswr4hh##cab^n3ldnhc$Utgv8zij=iHHAvD-IFwDk^7M#KuSUcQ zFxM6VN9G33w`oFI^&fYulTgrei_eFOf?47F)8^fWjO}@#((C6Fqm+2u(2NqC@R_bh z$W2du7#OJkBpe3o`XiLv?Cbia>yYS8SztwE)T2-}0((L+r}JKPfJ<0?;Dd@BAthhF z)AhH?G8;1aki;>s#6BrCl# zw_=4(IyCCENMpJ>?ESiho#OM!Q*0H+AYHB?gms40n)sF}S}%hYKh({??UAEc#7wE| z14zd;D#+)rz|2m|*Fu+8JA#Z0l&1rYzme!O#%url$0j--(mz3is%0z5&9!s&3FX%p=a-!)2+$IA*VIgXtiL$N!I_^9)P!{oAB}Bi{-t~?Kj`R0`bf>)S4C2%1(L--0yM38x?15;RR(CTi6CDtcDu6nnS-CvfmL-XaaaEg!j9xdm%P z*~(AtF|Hd0Id3{#Da zdFwdlZ(4E1?lEyxTeQD% zVDj7C0AH++Nv%{k*_P_hTL`lsZ#=La&g%-}I0D<&3tC~gOZpto!T$5UVt&DeKMGNO zYpEnbW&p%e&OPG!Kk++kvX1N7=i)yiHEnhe+!`t0420NW!)QdWMZH?0mgE;dTknHy zfA3$@+g@y0q^IZaxu^k@e`M$^SqL=bNr|W7=xs6^KuxPm$}-^gIA>5DTJT)!azxa< zW1^XG{hq9az^qkC21ugvk&G;N(!5=t%j@G>5tiHspUrGS! z?JiWzrWLO|EQ%Aa=)x!9oLPtHH(@Sn-+aKuw&^Ovy4-b zP_S%-HKJkh&CP?7W0#jPUWv~MiOqe)aTG@&lsMa7-2(lTI7V_(`sRhX{yyH^Oc)-N z5BIH5#AFpxtans!VJw8q-t4yAq}2sWu40)E*jlsqr)MHLa00=~C=l9>y7+r)z3UX7 zyYM^R$@4|ucy4R2SN6wp*9FPl=J}zvoG-br?DM0{qpw~6j3D;C1t&JmYrbJ**J8O= zqx)OqDc+IdB43y9`0p4rr~n%bq6H%uGvyx5b=ZO#X{Y7OUz_X^&Q>)gJP=tHo9z#=7xCZQRD z4MCRXu!ARi{C^nw=<)}n_x9M5^d?EbZBO#|@S|YO_oW`D)m zXRekww(1r)XFhW>eg9_rbH8vYv?o-3*E3Z;xokl`-_H^C#-+P{fd466)A6QO(65t> zBD<_gK5&=Umv287^n>Ex6qc#z{_2B~-P`ljR{5kDNeI85948m^_{fEBy`V%-}O+~yIcw#Q_)-Ebgsoo|@2g7QaP zGmz?17ao(H_r6TB1zt}lK3L>x$(7dep*@zPLRe0x1g>u#7#;(@<`6ASLGj_2^fr~M z-MkOfhdPZIUL#b33Zd38XDI8D!=60W+H&+KP`gK8sKZ~kAq>J5G%~MLYcwwR5}w=D z9bf@%2_|JYt=f0S%iC#tH6_PG)!VnCes3Fhy-Iqm_Ye+GK7&8>aH{`B=y9v51z&&$ z$E%oyjDp}$|G$@5J^qGF_L-yh6W8kPcCzrmDOg)e<(pE6cB8>Z&*UKti9+lGiWnO_#~}J;dG}lrjbB&xJ6Szp3_Kajk%- zmagWXngX~|mNuP0NWBde$ecsFH|jB*Dw)sz-8Egn{zFnR*f}zPmXH~g$;$fNPx`0n z?4Nr9imIG_wH%DPmaWPW=zr{X3zHb6kLw(z^{6hl0IssfXRRJyP4)_h+G^ZDKj`}+ zS6-5<#u%{%ITm4Hu6-{I1@nTBST9~v0m=h1J|sSt6lOtq?Z>}QOxobQ=c zH*3FVIfKXzUgPI~oB1OBB--{38!4RzET1x!&>t%|-31?E7Vq>(y}^IO=FO55g1omIbnys0*WCPo&~=wBt1Cd+ z`yWCo2KHCv!=9Q|)e8S2{V_?kpyyv{aRVJvj zJ}Ox{^B}nWt9^zy`vaxqJMAw{-6n5QHT$sAPO}11r1_vfPdYpJkT7Ag*bK{*O9#Yo zIt^05=k5+mTPu}^g&bUnB!^_pz#^|Q!+#Mh4DoqokhDR`EVY&%cC7R_AX3kc4w+=Du<-6$P6Hq%!hAs+UzT5n{TQO zcSmyA7Eu(m7bgu-pWH=tX7swhQb(n%ZMr1*c%NHC2`s5B;3X5s6tAz}=pV9xm0I?VW8$Ttv!;)gT6=gsC z%$SDsBA){g*Aj8+7)$B1N%VmTfzCwer#-=~Z$KZglHt|JP^WiL2Z~SML0-GX%)?x{ z{o{4oW>K5~G%6v3?m$KlY#CU7dd3RQ&cN6**|M@j8FU=Ve`#!GCbz2sr>UXJ#p=c<^Q? zZ*{JfVrWNuUa7$5FqC@(k8qkrG<*sy6Ox&K-aazeq=P?{lp!+`9`-3o{!?^;;!BPP z9R0TVfHk`bY8o5g!Yh*D!C}c<56mMuO3R575XQ#m3Y98DO-<90!_i&AxplDg0k;Y~ zt_J@=vAbI509otg>;P+l*^|@Rnc>{sRXLx!IpaJPWo}$>CCG7Ie!_7qG!&Ve8T|JHY_+s($ z00ig<|Mhp#{Fa3tQItuC%1hmlr+1=xxfQb<^gO)%?_;Tqn?=g{Nma=Ec4UX z*YB(m@EBg%=8cRAG-~}DL5w#qUdyWN@)D9RP329X4!pQD`_t+9$UT>_MtUDg0KO)^ z!r|Djaz}Af*-Tsihf*O=uhn;lv8BZMk``oZ>d@+V8Ve;z8WSL@RffR#A$fs!UW zm;SQUe@vKrUMZ#Jg0=2wTAHtO;@-o3;QBY_eUbke{Pezhq(pcd*gLUVQNPhPHwBy0 zz5n^@S4&3t;>w55BDr9bBnKsJbC}`QM~N^k{c27X>+?<@uKSz=-8P@e{>zs0r$YoE ze^{g4WxFTxrF_-l)&wIR5g!vzp>)V>+88)%&IG=xd1EDAucdZGyE=aF%kbFZDs!dt*%Ud zNB8QhemtS`A}5+J3+;oN_bUo{-iFKn<@ai9^0R%#RuPzDSXb6MzI_4Mn7mrnr+TEe ziJF$DhE|2SWZFW&uu~2XNr~pmz8ArFEgjKRI~sn=!G_pzda&W17c0IkC5v?$&P4g= zm;C_NynX*X0ww~#kms4^^f7T3bd@md80ViMG5zDm;FrJIEWveU;txk{0nmxHwE7FTRq;KWO)QXt3(#o77ymT0dNf!$g)T3tBC1xm9!ZN zTMGp48#V{0t#5bufj)>EF3}`*Bn5!Tx4c2me8T7A6PM-EUcbsI*9(qr$kEg5aNVKV zX3If)cD^dBXSP9dh{#h9@36jzdUMCVXY)RpWQH8Sxi7wnPjSOsf%Dk^nC@S)H?U9n zMS2vpl6|;kuL$73y2l*3pl@Kc08*YGvX>G}e12U~iIL}EfAgfa%O7{B=1hI_z%YEY9cpdW zjc9vOn0q4-)SDL#ySe#xOPyzWrL7(=sy$Z!Dnd0Pu>!)P1q=io$27M-E(|gFy?#T1 zlxo!QRxtd!BdJd)wNFh9rhsNa>N}q1#*|qDTD1Sn{F#}*8Lr2Am&q{|@q2ysu)1z? z`Hf9FUONH)A@0r707}y|=5%h)@Jh)0J!ts4FSrsI+!3A1YhnD}`aJn7lf$Q4hux&^ zuq!8H3r-ORZT0fyJT13%Yel^Ow|@x&=nS#X$GdUQPXwHby0Pm#1_^o!+I2hbhjFi0 ztLl^o1{gV^`@>*EyIwi>H!AI%gq?j9I_Ri5r*D?z zSf`!I0W-_gGhuQOapyfq-FUqB8sl}Ny|-|M^$FHT`H>~}J?Yz0Z*qTN13jau`dhUg zv!H~KyP(AYyc#hZA>?qT_~sW&HusSs%VuU+qHkCEN$_KmDluhbU90t1VFDsr;Af4J zx_y$)#%Q(jXm*${iK6hU!m4OXk1qnEjBtc^A;Gler3 za_to9f~{WTd;qp&A+vCXtZwPAz&z(XweC~c)ka|0)r*<8lO29go_Y>X49sGOm4i=> z9vxV9#kcPScAS(;qiN@=_TR?MsTed&bxz1*;qUVc>>7%3|-kU*ZfI39%nyEG7kg5tb zK1cMoEk52MsXAm*%D*w;NPF1k_cmkFQL?tA?^d-K#S<6T(Qq^9-JN?;#1t=UD~s8) z7F!kbL_oN_RCa5E(z^Su-nPuU;{`#8@e=+`OMRv@%IMfqFy;g9@&!(b&v`zFWzFp> zW`=nNlOENc5_Jz^_SS8gF74mleWJAD9c*D*?qjEN0ibvYALIMDLuA)nit_{bLXr)* zIfuQba`At-(ewUQY<{BMu^y z+x%)kToB3L+%bOg@aH=go8u0lummgEv?uW)RWhT}uwwIO>zqTRDbSOdPdO~Xx;@Sz z3(byG^%+zhwkA37>Hg(~h>C(?2@#pn3B=l?N#3M{L!KReSM1{CcuB5b+X1jN_Q92_ znm2F^B9?tGDqs&5)eK^FpXP*ezII@Fovh;Ec3fLk1k2#(K`_z{&3OvVJ}Pc&gQs&s zOm<~a!n#NLJhwoyUMh12vQ(dYBH8>b&ud*IdV0-^-}W{uy;2`j9tag99jIF?OuxMy zw>Co`xsKMH;Ql>&=CsG78*U)*dJl3kM&d=bjPb3Iw$ktRpRVOpmygd>mBL~zO=%35 zTmDt&Z?!%`{w?>z#++UrJY2?zzewtmYYsL_(0N?xuc%~eDPaY3p2lc4j)jVzphip@ zkw}D0b2WM<`Ge+_E2DLTfgl7inLg={y3H6;McmSa?`{Ds(%VSwD30_cR;AF7p&z${ zln!~XcJAtQa>*qC?8ZWjDh-@ZeF2}ez8%OXh4?T+fnQW!2_!Dk#JbY$1Z1qOHYF~2 zH+@v%781DtRl2~}mw2UCzG&IbaHiUfJZ)XPux=|E3bch;&9{#Mbo@4h3j(ho=M}6V zp<_#=!QVYA!2Kj>4qi&>eXtL~l3Sx|0Hi7swur;D0#{IIFg{l!<>AWFO1jW`iJ0hk z_i?a4tb7xtIw6@XUX-#hz@~ZoqV_q#@eK&G?c~e`>d9CwyNW^z(0K9Zfn^TL6UkKZ zG@*5=am@>9wF3#Y&u=QcqCY>rjyDM2`k0=x+eK84>}}Tgs$DbfpZC#k@ulvi%Qj5i zw_r71E!8KWPHw|5p6Q)qD#iPAy#*`s>Y>_WL4s;xg-sI|6P7Ty#T>vv0wh?8{NI&Z zh}HR|-cm%K1;QLTu`_%0kz#RoQ|Z?O_&=t&(9YFp1-WMG+3BYA&a0{W84i<@RY!bM zZupgulnj*{2?PDhawGk@=O#(kI?-K51am|P;pj^7H;RhR{G&i6{yFpbryHjg;>wcs z539Zn@}&gnJ(_>Upcl-Y`VDH*Q;Xz(HVEJ;*X0#Q?qx40&$g6Gx$s-MckS7SVc^l? zzvt#ayZ@MG7$DTargV;(@8>;t@9yjFn3ps*j)fq!Gm4T7X)Dzac!P$dAu;zL?$)(e z{s72c3xReEY8n`ODVnh6%1`E9T+`$Y2ZQE#oqTM~fLe1o-gnB|)7*)Y^!nSmQ?ovD z>S|1$*ur$!=U3L(ek|}Pv^dfy90Fw7YRtdp{+N=G|;nSCmF-Dln`6EKhYZurK%awdXrXd ztyopSMB#({SZ8t%-ln{d?KO)jh$|PFQa$zUF`Q{1_#Oo0v1jZeHP`XHXI6Wq z3F1q?iE*)DPsfAvJb5RF^n(a|f^gcFNxS3`HX z-ag|;PEUg`cP&hkRcExD&|u;3IVqkb3`u`Q=9fReVB#p!q>SJn?9>FH$GKhjTx5Qf zoaps=B)E4^9$f=?5|n8l1L~F^-%bXm1|G1UllErODRvKB?z2i;MWQ%&UBVqA3=+N= z`1q(?dFWYX!8PndG(KT)#6nukuPs$l`R=?KpB~~ii2Qj_oE*)v|Lw`MmE7h5QT_$H zamU=esn3snFe%bNiTO+mbeLb5HE(fl-V#x*`Vh0#TJ5mQAC!ZGl>enXxum8B zXc;|w`jhS9(b4A#;+>?!$a{mA{PVK%)c~WQbp9c=+I@6i>CuM%PfNGpA~ZnZ_vUUx z$Z7T1&0_CBt!1HQrcgO`SQ(*K?48@VUVu!K7t*g)-Z76RmJ4s0}m`_|T)N>7fc z-2v+G)2riCj%edHNYtvC5%Sosn`MTv)*Y0eHn%C}H##PiZ=M#|xU1i5Pf;9}zjId* zwS7H%+7MiZw^1epTjbnmOQv?kqnJeqnb_U1h@+Vj`o!b~`B`5fN{|P#lwiv-Raoo> z;(49x81G+Y6mGZ#zHaipaHycU4*tD*kW<<8ciQ3)$l4Ls9cQ^?kH2(ib|YzMobzD# zvn}x~avpIRAIOpuR15=W#R%cAX$okKm{-wunjV8&oO-jUa+4n-L6SlOqJj{7Il-b+ zzuC^w%-N>yMh-gRZA+3Tao<~1KZ^oe5(DB;wnG!e^;VdlP>U!gvO)9=krsON=$1fFs&&Z7LFPnD9Xy4P z?)#~WwuE2An$$(DIpU8EC49(nkj*jQho?}a2^cj$ zK}bEhMVeqY1c92l$h!D0lLczpP_@_gM$#7?qogaN2W6P?K?x(2+Y=cKk%Dnv@Q>pI z(B(utd0H+>X56@N4eJWzs_wRm_&mY>px#^{wOzM;OIfQmJp40Xul15h+*CVw6_otf(i_)>UQ zm^2{0kIN|USPA<(e*j!9_q21-qNsa7R;?W615!i2=7}Z@Eu=|95u`K>DQX~@Tu8D? zxz$ep$AqP=doXsNSE1W74?IRN^vPG>f;5nQnAoy@CEtgfm;W(&(@^%u+T4XVJM#pG zu;w2jgoCqkqp+%ZYTjOXJo<<2Mai#JhB?>l4El0`G^X1prz}aP=5?LP`7i?1KUQXa zSI(fn#{bHrCFmw&uPr-ow%=&#S`V{ID{!#HWYS4J)MCdJV8*`rPjKaTI?)yqaYA=6 zv+EiTQ<{f@=B>W1#=Hs2KrxIyx)SOJ2P!g<*}CN3JfF2Pk}aD$jeFZrN|ar9Ntgbz zMCc8}6T}c3RQ@6zFrI>ne@x4h#qIJth6pR~)`DWGfb^~p3vk-V+0~3t5`nJ)NcpNE z)vSi&X)Tk;S!+8e(weO@^ExxtR$VyQV1r2|``!1>2t&kr8K%-)h zt(H5&@n=`jqzRR-gUqiON(3~kIPNBvbtv(>a$f=?&DT8(dkh?BJvcGDQZ(r&l_D@- z6Y5c|{_adO-oRoaznM1lc%AXY;`U_k1yJTK=;z-O+H5%4JZ9Qnlbn?>p?=;PGIH#z z8x~Ug;bt=YWRAgDfUfr^$eGxcYPnuBu`|1mv@rN08bjiVn~ z1%Aq?eA~4j5~Er0`&TLNqkl|3#V_`@!NUrVw43ME`Y0Ou~XCosqlgY&y8P@A-S+Xj31{f+GvQ)j1;4HdJ-^Im8 zm{0=5lA%BiF#JN|#xer42^9m=||b+ysmAG z$$O~oiJbiL9*>jrlZd4q;>_6}#J~xdg}P=L`bgsn{m2yTkoS#-&ur?HK`8NrEtJjO z#XFg2vM!Qi^_+M1Ll9+P8FDDmt&bCrertP{r_%nq_)oP0$U&S!#!Yrx3y~?3Z!f)>^$I{+z!5e{hW#I z#>Q{rpXO2Z>~6>r1&uh9v#h?nEGH*Ol!IKg&VEz52zHKX=|ubp^M{|DDO}7CdZ>kY zETBNy5F4+N9pgX+ulNz=Kghc0Nv`jlsrvNzyn2cTWcHdsJ4e(fWKXiXPK%F{lX(VI zpdd*^eJj}UsP;iaT^1wiT>raupd-J2%g#bQ{idOfSMCk4Z)Omu!cK;2uNTXCfmS6| z7P#Etmb!q;xPzWUqCDgC=Mnw=JP5~t8ty~5ecSLXi#-4mcB>cEl%xMDYrE}>u^wMP zyO_eTe7#~vHP_*vL;NMc(?9bv5_7*_q9v8?t%Nc+`wtY0{mHt;PG4sM6{WCs_taI+hWc7^?Ij3;V8kzYwY+N&KUhMX>$R0B(N{U9*Mqn|RXM5Z6O< zw$AtXn|q(c&pa1vc=t+k;LKWwC-A8BO&$VOYnW{2*6W3{D53FhkyKO7qO1{l+arx0 znevRVQhmvo59(i_EilE@5m$U(E9OkRr2Ur7s5onsfXVYV`Yd7fW2xIa-M=s&Y!E2+ zJxXi8Z(yBHW>~k(z+W8 zMCN%+oEefLROOux^V#ad6f1%bCUCNJ!GxO40AtI+_xLXvUOzD&6$$`j)kq|Te@qwR zJ3^0@KbRMv7#+Jd_l?##>b^c!&`=2jV-)9UbKFPwvAd_drb?jg6=K8Iq?CsAYFffD zxG|-J{V?UKXHWSIZ>Zow`k!`NZYr>R>*o(Ak-;gbkT-TKDRN~ zHrwgg=B&I2!yQOi8r;$e*I5|Graqa!h_&^_vj#?VpN>R+9hakUk6JmIJAHgE{bg8l zbelFwSkt7D#fxT9wUD$-9MBg&ZH>(jg!Ro9Z@C*SSbMg?4~#~3Lh6{vv#%yH+p%fK zpFu!guyCFKAL5xlLZjGx7ZqJ{0`5?MFwt~TIo7=;*=ok-Ue_~)D4{;a)T8>@c#L!A zAD!mWP{=+_`|A64DjrY|@A6U{7?bYquhR|Z6a#JIq(szG!{L1FVo`?8r z?x%->mlH3Er8Xia#+GcKVz9TXF#HUktLn$RX55}|6@+9>AT!i^_a+bLrC!$sg*DDD zZMpBT%a5L%!+K9mkJ;#54^W2GNBf9du>Ev<;BY3+dY$#4CT5nTpCl=>wv9s%F}^`i z1?!!R3P|4eE?iID5IWtiI2j+xnT~LSe<}B|P9yA}^{XmW1}1j(klW-D{!?uRSz>y; z{&b5x#D86|H%BukwOYF<#3DKRIT(txGgkU!`Hi;ogTIhqvmSf6-X3nbjBNPFq~nwz zI2SVV-H-QugiZTdFf_XPgn#{QOH?Om)G>BLhN+RI>||Z(|9{f)^#nk#)fQ!LDNl~Y z-QPQb406QT`Zq`J#%|F$_xKLAhwmg&r8hMe1jX)sNczFBqG5|*Ddcws{9^Ce0W-Jz z{X@!d-#u|Od@rM?dNz6XxZDj`C0p+I2-Glm-$S2-$@RbW`*cbS7kG!NV-mL=kiJ!1 z88P9qe2O|jMYx6$uRx^C`iWWq z)#6sgygp}bkQ%n-Lk99s=ng3j9a(P)sct)xw3$Oris#`=+QC84kI!T{IxQYR)2AoMX_YIR$(eA?M+bF(q zq!#43G3Y{r9!sicg+`N^PCsAL{pTy6<0o%eTkN^SREJKNyR*589T&3-WWgQ2KDo%W zOc+b5>`hQ;k6kIF5pAqy-24hBiS12u9eWb%Uy&9!juO)1HgW}`3?BolNpaCe{}_C0 zG}*_dCnv3`;To97G+~Wm%wRu#UJ_FjZlkKIKVY}&MSOq9aJrXsQF_(s%2RKCE}Yw) zt6S)}R9s=l5W*O(bRvCPA1m3=#BwK<+PAE+wVmA%`;`6kYF8YCJpJ(1F-0(LFFNwf zx_YxvZ`V9l%43@mkEq|CszG31C)JL%-B9T`r4k;C^l03&BFx(5H6vr*7B;|4ZTQgv zv50^@&7Q_ypzOvWP5Kek?cKeRh0 zIuCt*)u00RsW4CrX3YV^@51f=hQ^;vsoqACe>@Q8KBUNb;(YGL@c z!Kme9>e#Y|YV^cmrTx_hb?8=oqP=-IXDk=Dz48P5PZvmc`5?+ZmTy9iSEs1kz&+Ch zm3hypbOS^Xcd&426@jfTUBx#N>QS)hJ-E=<>~6Jg)tD}pU^O?-rQyeo<1n`gyMlce zXR}*9#)Ew^wQgA#u#YPeaOG3Dq~W=&x-*e~-W3 zRY>zSF^m*xS9hfphrVi2?B_sNokVw@%3+B|EvU@2wLDMZwEO>cbFU{XY2mZQEdtb7%95G2zD#Z@C&W8%*+pW5J_u%yHbqXNBl2xNdZhf$A?ElEaYc5|1;y@KZ)AwPs>Pu~B zr3Ym?$C23y)qS2&0VgxdqPU%kdTJj^ZOcZ@K8UV@TXhg^Oj79Da{kA34S14UU9@@H zleQfov*lwT-fH10q;9I7^-Gm)q20O95~(j1FiFa9bAyR1)I%`wOgLRN-r#`RAJ85v z-BxQV7j!Ow@21Hnj#OB#PT#J%!Tt8+m&bCN?-?qmQl2Y59ig3&Uf%_JswJO z!}6Q-qVCUFZ_GlEcjDw`1jk9SeR4VNWoZ$QhFQS;5yei`(_MJ>cUIOXtcGwm&n2hk zlua-0P9KExX!s@Vr@3ha)cx2U&RQt{FM>8&8 zlc_V?G6B}W-rIGV|2u|$`^l1U%dg9!G(@1-n_sv+clN+?SB{iE3q}V1CVfv8nCWs5 z3XVXOx;GbX1qT^$u3L`F>Fi0Smt4cd*&grp-(h0Ea!qoTZf4TcM$ZYWwm(qlt|w)d7?INv|CqkLGK#m5*`E&Z1FLc5QvF1B1tO2an3*U2 zCiOf>^|uwuk=-3X9-s0aZB471mv%#>h_LYvz{3`T$#(UVb+TnI(-F}Mn)#hUu)WtRDzq9Wv71j$(|tgQqnCjMCN?0MRs}Y|C9XC(XXIrn#&R%k;XQwCk=Wb=>is z2HVjfzE48=o->#?fV&0kuG}xL6>47BPq&oc*W>-1qB325VidA-lV@Z>zV!M>PTQYA ztqb8YzkbopuqWPwwpR&2qymU*j8u|5`ICUm`=K5*pW>6b<9m5w4KQyq_--Zk7C${Q zh>7ZOsip{Ci1|aX+qM`vwKM-?Bm}zyO%>kB)NC#eLp~)i@|>>Y3|50+z&1sbFe;JG zRb?$9xrQ^EN0Y%mBUJm}vD+TocJI>X<%yv7!x}D~Ogj%r&yA@ATd7&e0QsFR{$CcF zrIsi>oQ!7pcG9mtyyjWn!Wbt+Qx}fLEV~+4W~{XHzqot1|fT^*bpHu4Guq#GpW zfyb(G&$2ksf6Y|i#*|RTpi=v3?Cs5UFPhOVEE5#01(ko~DNfEKd^*QQc85Kcz7uL5yH5xOO zFZGxBEmq3RlLCh=3FtdPwnLcu*E4BMf>kER>z${#yRLBshcFEsA8FugO3(JiG z7kR_kGludWD9o3NkT)M%nA3@`SP-aI1 z`pPKm@>kCfhH%q`J6EX9mDq#6*l0#?`c00F3>o$Dkxok8539kQPPmd)=*vK>_LWln zOPmqqYo2h=jU6-WpghlcqR;+#$xI{T*3GP>l@4qjyv?;HhAp|P-*_y~m6C z8R8R?RWc?CFVJoT%@CMA!oG&;GCnMY9+i^|?{Sl5?o)qQMHBZB6dBKiMzY}^HSmzMhLyzPZ;fyouK$g)=F|t2 zV$WWMeW41x${L{1ml|N?vU3DkNplaNImIpM;4Dva@j%S@VdL4rnMRkHbL1#PQrPvZ z21J;aB-AtdUCU|>Ndd}c^FU9KtcueN`3(=pPd}sUfHP}&Rng^k9~La$cGBWjD9Mph zhnKUy^Vo+qkEriSmx7BK?FxW`liC)jy%;pmx{^s@d5ZieClc+N%1bgB)BIs&J(|JS((y z#w(-I2^NGrbjX@?9@)~glpRQVi*%}Q(#4hj1UIZe*t zuf!nv=72RDnEd{st#D&C1P9FA@jw|px7O@JISCssH@xbQY-@C)OD_B!HM_Giqrfmy z!5Nl7x*46jq(5TkMpZLUo{*D*XO$Dr;HtJAp^E&~o>b{c=k7x{X1c-tU{}cRMhxwa zym?NHo*WMjq5aB&kbi3o`gjlC-mp z!60jJc%Y61;w5#Iw)uLQIylME{rVr1*Y2Mki#4U-c&g@025*?QsJ#Z=q2b-DQa!>L z#Ay2DJ3LTi0PVSH<*7(psT1C7xMPbawrE%-toiUWF8%=0sVUl7Q($nnAHSf=akhz^ z@(F{W=Q&C{!;RM{9H_AmybR2ZnWXc9!20W2t0+3pkHr6(gY6X)QXM=wG_Hi*)(48_ zAKa9=Nd2=8)c9yq(jnc8?;ObvP1Bxr&0DvaMfVsZG#dq?v1V9Fi$Q0(?FHNl#h?6m zv?8q^8O2Fa?LQ^acMnfv<*vp3FtQqRow3-FvJ(^5U>70LUrX(Ij!-y!cQk^ZV~f8c zbw2plQCc(z*SIOkHQT)WKX2h@TLt*sjzjPNM%Ohb&0~Xj^nhZuJpTy-_FKoip}tvv}ukaXz2k|cEXnb#;yB@y6CMUjm+ zFqxwO(-2(62_waTS&osYQ`*{wY=YURD;6!bE??N!-By_{{}YJNKB@hC4FY%ri?*1Q z5OhhG`0~16i4l{0&v$;I;H3U9o+U8$-D=x7sM_iP^JG5%pcL=cnkBXp|?REpSJV=8~HsgDQq17J-wXdccAROBhV8xb472Y9+Epe5aB9BV6E5{B)9xE=K!3l{ zZ?DM0^p_>7?c8n~eihze*4PfqS~FF|H_=u<^a&>0?Cn8NITcu!feaSqd#Tq)$e3nm5;*Rw-&%uOCh0^~Sy0luqrQ(d?z{DmPjc+WHO+2vnhB?;dIp^pp48IaYfmVDw0YCMF9ZwNmaFFj7ow?kCjJy zTO`t>{QjEW&BymR25uzxc+v0e5vRkC)&VqG?Yf~xtsqa7<3j-y^Tki#h#vcCxg5cs zr!9>ovQJ)PGP))HLq!wJFgw&*yUJGMl!WCwU{A!MsH+vn>e@F+RS8*z0VM_x;@5V#bOz6BRU;BPz-lt!!T}(xDGQ^~`FHWV*DScXkN00SU zLi`yf;$)IakWjdXQ1rDvzpWF?9~R1qui@QI_Iazh9=3TeULgc8Us3)RAz2#=Dv@t$nQDtS zH=f5tebxJ%=at*sdG@R+kpZnr)k`#N+#C)64T9vpKNg9|BqXT2foHS#*SUJU}{FW4vzz?CL(sqArw+T&c0q3)MV^5>Tur=biUKG!?$~~sHWgC5Wx06m>fT&dBff;LgH+-q{Ja19E6Lt2uFgJM)myeuE z%v^7Eg13%rIj3g9xCGnDEC#Wqi~Ao_Rf;xUQ_bx(Zu2I96L!m8LT=k&T}Ki{$=LbBFxV>qBob_6ud&PvXXizyqAt+7QBR zxqg4aKv_QTO`Ib*@Id-!_}sEcyPlIn0PnXKqi3j>P$-ut2gZ>RbM_c^@xeUsdTvMx zW>u$=c}Ogm!5NvFau&E|>+S|Fy+$;D?pm}z8mU^wMP$6Ry=;yi!tk`vi#iMB0)`|A zT@>T{0RSw*X@)(hPB@^z#Lk#pY7Adol)t;yf=udaiwF4J=;;8z*k=6^K}zfUB)^p6 zT15;|@_V>d$r1k|j<&==6P_pN|HN=j2#qbsIgc*sP8QoE`tI&zj~yfHk65FOlE6|2 zh9no4(vjNGJ=tFfhi8RD_DBdSZQY)o*!&2Tar8*t^7H=6ifCHj`5JGr-?Cdp$ht%c z@6Jtm3#S%%Of2YbNB^?y2%DR{6|K?@s&KXP0m)to9apdRkBK{87Vfm^SBhn^&t;U% zF2g3s-8Z$DCb{MhLbf_cYGN}X5BCH+joo%(aULWdYqmIj#qIn5Q@WyPyk2*Apzmj` z(w~Cyc+CAdf!y7&<80sm0QU0;DbQwOH>|A(+gxl&^Lg-v+aNx%kx6syVWK#Qpd5*1o=NBC-xiv%Yp{7FhaI_R9WBQqccw zT&KBvCQ`)xy`I=hdaX9H&8Q--4Xo4 zgv%-+=`dVb*ZM=UO7wMM9#pi#&?Mn^5=mulu&5~8i9d^O%dEeqn(7i7YYiEJ(>6c$iDW>j)nw=iz|QU+HUAjyRDa7F@>AT)*WJBWSo;OfDxK`! zhQ08#Kw}6O5Q6S>dl0LWT&xnr$XT2!;hjAco6qY)PzU|JALy-8@}w<_&eZq1+%n_+ zVOA-B{`8~KeqXq_rg?OhPn?l^FSr<9!2{8=g=}ixtB?S&aENY}#@^IX&1+i?H-5V! z<;3jo>03UVI9q+AiL*+Y#7b+us?_t5Pd=0I5*sT5lzqE3X`9{dNy4hAh1UklUkJh? z{6urfFy^pU#Bg*y;r;z8wDmFdrA^1l$H~@VRx*aKn)g_8TlRZy2h_b-(eu){9JiAk)nBEJoRm{?X+^`M z{J;IEF8KW7YvIbx%gd+6o57~ai0!c>$`|nqK=*fx|BWzT@Yyn&D_(8WyVg5OyvD1S zs2?D5K9ZR)s5&206saUz{4NQYl6J%0oD3)|Fu{yPgoWL zoXpH}q~CoWX0>YqDeAKIkhc9(zC`AEru9_982p{;QJGe~};UadO~Dm(iSU zSf{>A`Ao-0%(`4j&7v9w|p;{|#xUnZt=%A!3rz4vXzqhXLjja`zmgC>T$slxH9M?z!X^WzI@} zPcdT1V=ht>?W}!|n$dPEZ#A#auJx}S+<7y~J#XPk!wQmZz4aX)w>+4yHbCZX^%x6~5 zVA*3jQc}l)X0oweh}O)mEr@+*J*J zu~JziLeiPMKKKS}E=P@BS-A+xk$UPDge92qMqW5R%ut)0XAW zd;Y6`n9~+_Ch`6Lf;pzaa#BW4GTqFJIRY8v zLeKKM>`&(X&=fO4UxF4vhK@1;#b)20*nEE3QDg9JDSWh3hl7Y1pT{0fDO->1XAmCT znkegc&Rt%&k4s>%6T`1YyXAe!3#R}5eX_88Z1ekyN1^h3YE-RH%`KGMuG*{f8rFjw zyv4bxQ82?Ci-r`f;$$rk9$GhoM5~2<&VcxNCnU`aGOW?WmBCI&3G}H4jCb4on2USAD?= zU+LsO`AOfPuo^Ft69X?zw!cfwIBLSKuIvq5mfx>=R8w1XPPRm;Km)K@1Ch;dnj|;K z%_%<5IFNGU_nbz^+auBsXpb+6vd}l*B(hb9Rp&!LqApH0a)M;^NJ^o<*)%9mec%g{ z7cBC#ICmKZUKKOQP7V9^Q8n1+kPyr#z&a3rCKTCy$`1cD+c-BYfzM#{jP@nY(YwE4 za~%Z1Ip~FMe9)l^oDja&qmvjd!00u-e4>bXGSeG-uggv{^W}Y@ggR~plhDh)&g&;W zT=9=3l5S8GWUX^LT6Cl;ENU_5i_EWEKoP2eJk_8%2C5bf}e3E6(^C<=()Qt~-f( zGVV<^sJM>><=`as?UgdBE$fbXHyh<(ybEQ{5a$X9xilB5tW59hF5=uQEo~BR_hIa_ z>$3J+t8axx1?x5YE`NuGxAtaSLEX)bpwLWe#C??Wni_Gs#&}7lbr8)~62qYGZs zy2PVdKe(;l4@h4Y6r@*?p!F`}ZEj!t06F~nat#l`tvlu{mw_U`1CooI_JuwyoS)o7 zI&pR1u@!oVHG%jW4#!kwJ{JPCvmA>T!w7yM8-Bx5EiSVlXT0rW&8Mj72B9ha1DGI8( z18_cMvf+DC`krqiYg5&oS`~Yoz1Y2iZB#69qrB1~SELN+f8GhLHKAfC2EV}2o=k3T zbP(%QcVRSn6$XK{f0AFQYZ#qf`xTsVG4kb(t#_TFi{bBEu8{#LuuNZVlW?`6pnH8t z`Tz37nYskjvCIifHDPIgG;TkKuG=|QoCz)+cw5xg=REJq^k`}=rANy;*4cUSBI2Z1 zCd}8iQvbk0Gw(Yz&FYJ1N)_s^45w6p$WSIq6oyZEg6{#Eq|t;=^!&Zxuo7SxNcJHymjcb z(aqPVBqM~LEQ~S4y=BNU{%x~5`SG^#Vj<%ni|*y;Ejx2w0a6ayg41?P z(TN9+d#)G0BxMW|u+jhVBg2)0aQB1WogWvn`m{WXo^w@vT~CXG^>kpt0k?zV)%q{-{uYwgWMM;XJB-1gjz4va;U!h6up-U3}`bj98`%d)bIN_PD#=DHsoIJY@wJjeX+|Zsg?FdDA+r20&VP>l zY4|!I^}gRQz{Ftde!sI(LF3qSAjz|r-E5xoZ0uD7hnP#qm4N(HjXIa$ z5I+KTxW+qR=(plo?o8LN%gm#%9wCcSmSbzJvajCxw-M8e9g`4e1kC4p;X~=$BI?fc zCBMY{*M8Fl6uD%S(DRFp@QFBOUFwhUpW(tBvX7fnmq0q1Ce4F zV-BOGDj5hNuItCVx9W{l(R2h)r^r`{L?$CO^(4py^s=kW>)4fA|AVzjc)`*kI5!AF zsXUB)iD#D;XL8(@t-&zJuJrh?rm-h%I1x1o31ar|u{OP;bqV@4TqEBR&ldRo_x~<9 zMMrs;O^gLd-KU0y6(9(K8o_xXpc0vbG9{J&6s3G=1?NzI1x$;)=J9#~A^aLLIl8WJ zx$Nb&X7!cV5#iw&O`U}EWnrB8)h?jouF5CK_~nu_YCXZnQAN}=f%zW|{;ETjGZ(Nk zFDxp!pJ|QHM@b*JBJ7HO8g8xV!_bRnt*~m%<4Hf;UsZ(fq%0Kpt4GLWb{VL2U4^Rf zcvN|7nw;m%5PE5Py6HRW47C;*MHq)msWq}J8q8YFS833LN~(v9cl6c*8!_)M9La!i=<4TSEam5p4&}YMnUuY85oU zL!yv&6Vfy?5!k4=TU z-yYKkWv7HfCm~G6zD0t*``-xUa>bH?np9}Fwd8ts7GyG*T-H={@7ehuxCo1*}aE! zHW;DaZ7$v_!;PY{IcOxfd^Iuta|-x|(BZ*kbq;s*{!zKW0a9mLMww)W_KBMG54*fl z%leVlLEC_@1#~o;F@7HbT|v~~33H0-2?+^JAe1M%l%hC{#PL)-gl0)dQLF`cj~eWv zLi5v_P8Go2&sp1+8wFLT z)QQdw-jrd%J+~)~9z~B+%C*o!X!=I^Hgc$p%KVpetx8WuTMWJmdr2>zip+r{4<|o3 z@!Tr4cv;-1kE3sVX}yU@eT?|d>@3EsFN5I=W%8o%P%CHy1Xt@xGql(dQH0jpo(xJy zZ$%pSN+hCqRTs~B@C$JG37c>!;}2doVT0HH>*fOCF!=vHS(Xxy8SX*|yTYcVB znY(qA=g$!45Jhsr5e(nBfMZAkgx)!^bw3Y-)17d3uo2T`W}s_bj*2TAN!Tf&KsjyX zc28ZM&>F23tbRb|jr_+F0aoAx@Ay2f=p79Y^S6x9yRq|0Z1nTzl`K)yeE6zx6vdG7 zY&1nj;|(XtcbX0NX=s>gY007C;}JEbG9{!knhobIpl{fv4}N#)>fcbIQnY4*fY zF3es%da2>J;o711yJ<4tKbE@2D8eii5XMJ3xQQ`Y-`#RQC`)|4D%;D1XshW=kx;hJ z#2xTQ!PP3I`i1;}?-kJCEP*^x#Sbpidu-nBLu;92k)j;mU8sSG2Eu?O;!1zH2G(!Z+l(0IXwP-G6u&3mN%N9@fMt7uw)-*-+=e|aZ_?im_roZ6I~}@MwM=~j zYTlB~Hfrmi{ajurXt~zhR|Mu9xJx|Vzu%+Q3zrV+Fxd(zhKszTWHc7qhIWVgGUOV( zvP~L-dCYdjImAB0kTG^lqBQ{+Wok?jEGg>^ywYBEv;4hVt3IuqyV`V6O1GE6z0I`1 zzohbx@g7u#nuqQo-RXnKlKHGRBd0dh7yZmbEqXA=9^HJb2E7%W!)=BWVPe>UHwCwn zZfIXXC=+)L9Kx{-{^bLwHowX$vQ)6$`Vc159SgX7kLiKSpuwu#R=`Q}KaFK|W?ZTjP8x()WG}z@=rd?HI z9r4<5F;4N1L!XU}TO^b;&woPHty{%t0t3>*1hsdT!r4sQJG@s%BW?&iaC2 zvSqv%Zzx*LrJ;r&W;U$r_6KY(a8EhHJoqRl7)?d^uGX&u8Is$*MNE6Y-LQ7T1E2{4 zlKJ^+K`E2@Ce&>TPb&B4FKK214GY~emUBh?Rm%3OCF@o)>!)V-CTcMkBSsWV8gQxO z*f1_Fkwx+i5N5E|O97`VF(769;g9-Cix$fTyG;?w`K)aQbElVWNnG>ZQEE-Dxigxl zDRkt1;j!aFJ195Pmgdk4Uu>7rso#5?!W9gogGbb*!$yV}f!I8S(f_6z*{&0Vy+o^M zc^Vk93QtSJ z?=rK>DO!q)bj^pE-MlMDw=QN=Gv*6`aH~^KyCGF7SeT?SK&&H-r0n3{L%>?KWp8G8wn40n-~Qpw`e^UspaBLUqbDE5YlL=xp`*v!hAHe%0p8AUDR5MG2bHn zu-f5e>rvpzwV3CvlT>3s>$bto>!jxepNxJkK3YDy+=-Y(jr{gz6)w<(mZz<{9rISY zMI?=`pbj=Wij>dIb6-06z;Uf3gh&V7MUyn5r|IGUSPcJy1CK~s5CJxv34kpxCV@09e7pim~z|BIHrJU**%bUdx^J{2(_6zNn&Doj>mT4wC9TAObL-r>f zzsH6LL%Bk zIc&Q`3x+JFy58inWrgomIy~Z8>1a(IdQ__w2hykM-c>s?TrPS(5tzf=@*jqnQDSqx zNw*TpBo4qa=qv}DkYS}4Ow74cd16?=MMP@HsoV(P*!nkvYz%6F^qGfd$Z^ik>G>%) zHl}Uj_)=OdUnmHX1gG+@wMZQJ*t8~PE0{=R`PRwf0qS1B)hR2wTEmA_l|Vk?HI}6N4LQ{@1Q``8H>vf0aKk%7}Fow`+}*wb=Tj+#AUgRvxG_ zAHVBfnF=BcqF$@M*d3VT7tXOmYmD`HqtVL=C3I|tltIq$4nq3HRS74Hb@QUkk9+iI zcQ4F>!PF0S1Vh!{7N?H%4Z!-b75Nr(mcjk{1#+CEthCdpP%8W4!IGZSAJ&J?#~|@EFR`rdjGFJXjG>lyz-!QmQ-DIr*B-H4s`>P8oW=f0w9+GR=&58sC?k zK4A+q3h<(Ta}$=Gvc@CGF0|&Y_~sEUJm%!ApLx-Ni%@P3_^7ZlvwsgK)zu1#-vlq$ zZ#Shw&*gk?8{$y{w&%W9yQ)?d(Q%$Rfkm{XJ=m=YX!VqFy*qsSrNJ;W2_F`nw3K7Y z0h~XyvB*2ozMm?Cxct0$UMQ<}V1U>Y9-aK+w~}ak9p$WDVus%rkyg)b!KW?~B2D4@ z-z}2sm|zY%pjfN5SKdS$m$8oZsK$|A&2_{}B=4GyH3&$KjHvs*@0l3UIx0B2|80Qh zK|!^YSR=72*lL^Jz5RGGM2a+fko3;=POnDbTK3p9*@rb}z14J1Hg!oq>d}EA<=~^{ zJ7#lKaOD-O;Z_o=h9|VBF$e7+2%|J>w3O{GUh}h&NAX} znl~UKbvcZ|%CcF~^@un&xOlK2}BMJ_?&t8ym7RqJ7iRCr_9ECZ|>aE_1M+D-Q zm@>l3O!FvSW2B5*r1Fy2KG^P8FB3Zd#rrhKq3)GRqHA=}x}8czm7NzQPZE^$Xj<7am)-aVmc5< zT+4IIq}Y(qvh@<(gLWVIieEoCP92W%@ADr- zWl@i*)m{eK){T|+!E;2$wYb-R8P_OQN!{V5$yzE@>kxNCIbY#s&y^y$)3xdCQUFWNF=bE6~lTeU%4X%z__*SsOD-FCQ!=`f%7(hu&Q;tv$K;QdV;7U8zN z{Aim5S9-NECpK7lm1oQIAxrOC^?Y!(RIf%)a$2RX&TQq@(0KPwRJK8i74@9a>6K)g z#P~h8soSYogVym>>l>eZ=>&);&0ycxCITQ2M>_NxnvZm`Ca;=vUY<=gN$t#ZvDpl2dQ3n&9&6j` z@GMO=k5^c)Z}6e=?E18h$5S6HGmKDurV~G>njMt0@sFjgdA1{js>=VS?+gnDdecIy z7K?pVLCrxz_bb$OGoI-Z2p)PRiw6Dh@K!$Pr@PR0YD;AVpNEqi4GVG?hT|QEtv!Yc z#C?DTLwSC7O|OnLLysziyH@m%i0+*i25D5wogi^@!c4nx^fF1tW+y~{wBCEKf=!iF z4{z_0ph&AT`&tBaH&Y&oGW~EMb8NT-=hcg_9ihbvC#1nFeNMe4_N^@sxC}+W9F)4! zcguYo8oxTz2bmQ3l-7I^>w9kUEdt~v~hUZG7s z61+LX%<2&09*0kSK`)4TrHpxTtUT>FIiI5->WKvG+b94AANs!ZN>OD{Fp!1v01eHP zvIizxab|}2MB)+RtA#xeDKyN(?6viN0Oh~2G_g+|5)t4EC@@CHkF|RZZp_u z8>xH{EeMphVh#5&i_}XAO#_&z{znrMQ5O7})0Xn=J(E*pYzeXbdis_*e^Uq>ZSKH% zr?}`czIhugX`v+B$qfKU*GGRvo;5mMo$`JRyMiQ5gnSoBSK#-t2@Wi6t7qo-;Li^abmlEG=*sjh2qM`u_EvT@9<2a@CQBOM~g6D@{>4b)uVva z<^Us!QH273Ly;Hf3L}_gD3ok}KmL@;aM~@$Bp>vJnc$z~ zzjT@TZ78RM(N#F<$zxAIm0H{gd7>W1# z7Wr9)j=+ztPM_b$XV^v!tJ2t0RhX5}1@v-ZRfjhwwHjg0( zPZJ;S7GQf*Q9fxNbA(y z$oLq@Ft8WMU-!}XIrE(Q@SCN0));RtwYn~9A3Vi3l=g~Q(jM6RL?3#|(ZI&3Su&|t zU}_>{Py@bHVRJW!VT!b3QUW#=pCisjt<~xq*Pf1KPAB6_VpoQ8#x0&jFw5?DMpwN@ zqGXqDduz=lWW75uFS;Q*^R@651JhG}|vz4wi^AqytI%=#pAefJ_a;V03w^g-%92i1GDg}r)o z+>7lk!2A?AQ#R)})9KZqVNdTf^&VF^O1n$@-WoQrBY>yLJoq$x4dVd=38hCYF)^OL z`Xd-vH0chl^MLao3(-tT(arG|%IXN^&a5JHENA{s;tI2U{u4tXCovGttC$_XdPsqV zxr^!uao2)ZE!ZbCL@~-=(j~wIaHrk@-LM$#v{Vj}h9D#5t0$6hm+0OhfgUqb;zw^g z@Kpf0aKkLSXO!QlJN1D_;#Teq-r?pkw|ZEl4)gJXWZWEW@Oj3!`rQEtMEqlc@ih~Y zJ_||35*bWI+U4rpLfW|X$0sDsev6g&wmFBu!-~9A%g^<#Vd^>xa7LrA12IR$t6Cs< z|3E13#Xx1KKW&8ul&*Y+t7riVJQOK1=x!%?2?hDM;^eRbFEdBzi*&61jGK1t;Y1@V zv@2ifH|d09Ima#4^1}nc#o(co-M2jc;jZCUGEUFNZ%h;BjtxnC1Y50%9r((H+R`9s z9Y`apVJ@LFLP2-6?L%|Q?6ZfXF3EAzC0V_men~|E!?MvrcyDI#{g2pm4N2x}O7U3D z7Kuj-l=!8em@gm07?Fw#rf`zrrJ;I_Rgbj2ae(JVM`uX|S`?=Ebnm8Vu|}72Ze_i! zs>mOKt_h4zUVsq0meki!bpLeX?mBgP{DL@sCCIr?{ZH(z;m7S;3+=4S=;5`aYRt~x zNTyR`koeyOB=XD>F{0@PT-7vrHQCuEum949;$i&S*SyW3v#B=ecFf0J!Ly_|tG)-} z`!#_rhrkk$jjUlyDmf&(UIk!*1@yMyToxM(LE`YzkvWqS@UC=RI9QwSwg=~cqe7l` z(hrJXJRzhBvym~-A~e*R~#W>B?Y-!GKNHsPCFsn>BLcaqO2e?9Pe+l|hj>O4oF zYSSBfHR}ieSmr{~JW;}p`SOGh%msb$8%nC*YbIuIueyqWj#5;qZoWa~M-IUY81;cb zIgUeNPz3NwFvz6S^&+z16TAL{&4+6foDv_jR0Z&}$`=#iFOkhR6s7gr>YnihtCL5f zK+Ks+n{6S82dZN+F88ay$mME6azSuF;(o=Pc0T+Z9Y5X-}f%x zHJ=fC!jX{FG>&VRY4x}jz)6k^LRTqv&s`3U=^A_g;J3Q%BG24lp=;pEwW-OOL#ba2 zccgUQ1U1*l3LhmU;>CXHcd-b}u%;Zx!|k^jZE}47Z5Pf3eyk_qOlpCXFZOgs>duuW zyXBZQ#0xx98-jWwzz?`?#wXRidoK7>#@-JB^pT_JW!y}2R}!!B3aWUTz?0&D*V zd$u>qVc@qkAge6J$|c46XdoC@$nnQ8hV+Cx2JUBH6_;2of-gEuGj({0_OChC1?Qh) zbVUg21shP!@M~bY*_x46`caW@W>Ye50%I_9V0!kD+k|qh3bX_{ZI2}epI70&;XxN3 zj=Np=DIld&y)pc zz#}bFpG{pUj|=I#^(Td7K<-|yrS9*GM?d%!pVlj8wRDUu^gLB3CE zR(PJ!1og^wwKN(@@N<<-6If_L@2a8uBXyD5<^75#ZZiGFq8?b>Mh&7&Z)RdBFPF4GHx&G=KcsP@c;H)HH_(*bf+9ZZv zrBswM(_AMRef*Ou^4P-|%c;r+8ZgJxSeo5v_0uix)H8zf7?UL#6;@UKI3we`OUbTW z+l=kZPlA^YmYR#?KxQ&qbh-X&&ncLaj2p3iGxLwDLoqxu+j893HE)iH)?0NsQ?q6g z`#75``=+gIHR+7hQ>;qggeVNM`uKoc?6iTf2uo9edrN;y%2_d=u^4qMS!mQ!F9AAj zTptcl0)b0_={uR2-yENeMlMXpr>?B89z(MVnRB`UZ>Hs?=1{S=VNBV$U6pEA)V?xy zG8X&!=H`9%QBHos!sDGr6YhcbcW2!nU0d9zdrMgq=`#<`n?O36=d5n7M!ZOQV|TvS zjc+=1#bMUr2%j7Myjq7jMb2SdYU{|>!Qjh!4ht5+`SryEenn`;r=lOmEFnR(!dyh5t3CK9l|l)uXfEHAD~zFu%)ikd$;S2?)_si z`dI%7)x195F0CSwW8~{%4p$(&t#^X;@35Ue%xcpt11@xFrJP`Gzx(!K=GyU3Q1uj< zdeoOKztxikkBqK>K;i~#}wW?W4sca@c z)37r9*8Bqnj0n}r5^+KJ9pxRv+xtvMDy2>RuBKgSmbuJqm>MB0Utsaewb4ORIGJj` z)p@T5QnZ5xaHZy{qqRco^0Ww z#Cm(_u7O>#gaWoU1D|l-MTTUT=$w+fsp4wpDt3dVbFEm>K~2`y${u%SAyE)1{tADs z3J#=5W<~0W=iffRwD>Y5bNH;#r`O@^QrJpyPuqf6?H`EYos-Vj%Vjke55qpTnSx4s zw-}$6?up(Yf!m*5xK$H60bXpZPgxKcens;mFpDHZ`;Kl^N|{o3J|+t-QiI85FI57a z{kK}u)3Zebb|vATZ%llWG(ykEwtv<~z1Vf#@rR8*nAz}~{%(wPfwYsNDcIU?r#?g5 z7g8FpWPJ2-woblOuaw&A%QHHta6anr#M?tKH19t38FUFaDinL?$5;bQ!K-jrtR?fB zaALB0FY}OMpV(Qme0N9!0P5)+<%9Xl&!OH?9AQ!Ae{D3}n8WJIr$$Zxoz_<{JxjBR z_0F(v%E=R*O95N;0X$w#5f_VSMU#UKOGP9`hQ4G&GHts< z1kKpDmE%DKrV-p6@NyGHauHu(bw>uxyZTHvQ>{c#D2G{ns{G`R#7Nc*5{f$^+Nu4C z$8F7GhvzyZtHWtyfaf!R-xW}xHX`Hmx|M_N|c`3Y+Yg8~}q%dF_N6e&)Gu3oDKh5-x z=Wa{UKNb(aIh`U6V^i64c~~YXkpo$Nyf(a@DeDxkvtrQ}l`2h%Y-Vt-?e|DGEsxrY zUamm~<0+?$GM=Bb_5B+EkWZ%TRjxbla<3%;$v!wMD#Wm4aOI>UL};6T z+CR}vC<59o+)nJ-7_~}RR*en1Uk~DSIyl!QB<7a1+X6F?8DSyE@5yL7X5V#5FrbL# z*9aXqc>=FqqJ2$$D7s^K8ug;tr+BmtUIZM^a1a`3Z)kE}F&vldNh$|cEPt)`{sIjr zAac1CZFY%=o{VK?hE{F=3bG$klT}RH5@|O3^y-4B$6xglz3+Je(e!Y&7jHVE>zuC+ zsk4M9!g^6Y@NR}k>s>N5Kq-;dMtBvg^YArGuiE-kC@*mWf1}h?c zgG=$fv@N*sJ)cc&%TXeNBGiMrtqWQb2nP~94`FCeL>UR)%4fDHSL@p(6&Y=@K%?;WXi&v`>kp#P|fPt=^1*k;YX>e z0)WQfhkV@&eB05r0!%p|xtg^hkpXUR+O`MxlCE87sS&ynOKmREIFK&L6lo-CB{PYuB1@jHYuLd#1_mbjdsSx!|`e z0T`)Z!wr~RojJ_OX{b@Ax}XqCo(@bf)mXk<-`y;%b(Os&Z zYdW>I&8d>}Re4VbG~P%A>9x{#Rlezbnepv^w>SE1au{s!)Gf{_VJp~#R-^T>F_est zA=;2mH0$o%1IgkBIj*e0!n+`)m2p(xp}_}RaBrtN;A{tWHTHN~yF;<}o!{?2`&i(8 zhr?h`@Wg{=MAP7XGo1D{wzENhC4qT1-CW2>w9ppN{%q=h1y}aYE(;}jkaq)o?El{! z6xTJ~m6`=DLZH^%>_RsH25vQxXn@m(J`|-uA@oL}yQ9vt2fjerl zQUpejB3%K_)ue_&wtBy~GEc&~_BGgE8+;UL4w#hX&sz`J5<6W^~AVU63zz&OJ`FX`h`z zl?l&djl~)UpMX<|FC6{y3jfgk>>@INdcPY>fHdo?RRQfCl&Qb|YSo)6DwYytZ}=Z3 zjZoU+R+0}dZ`n>fNY1wmc-RPyPXL-|7$h6lDE~3II+zsaobpMrPq-bll-bp+r5Vk1 z8$WH0>aLUeb?`?r6<~f*%O->VMT#jk(FD8Hr+04XT;B5@Kd9|6U>Lyfw)!_rBLla- zkp)>%ha5HZ4?wJ5(fpi5nqVdrAh4>gNxi!VU}V)i5ai;ONGoQQFsYx&;teZ$J1cSZ z;-3pEFv5#ctC&jM@EzI(?EfI&`U@++(&K(rx;VAwNl&Y{1{pTSUC0zn7_= z`o}UZE|s^$k;@)Bs$2#xo%6(`*@ouWrRjlGcW-2ic|vqPu&dvOYS^7b6hP{S12Ox! z{oPHYV5Z}Pp~n~|E$!Yxw74kRKN|e)qP{cp)=*sw_GGvo^%w~R4V$Y8Px2pu7(edw{9NzV zsd`#7_|yX}Ya4~1N;0h4*H#!eF?fd9DQs=K{-BzuAswotV#*i#=h!+MG))awG^zBG zS<#Pd@>EoFA2H(LcY%%6i8Koa&Sk_&4%KSd{rrf08MAZro{utcrby$6F)~~-gVgmX zc_TKIQJ=v+qA(=z;IGDwg<_?aqQU8J!=wIUm?_>R2R{Ag36Z+EHLoJ}ORf^dJ!|S4 z8rdD(9~y{AnQTG|(&v%wPSVOB7j=<*6i!Oy>7~2LT+`DRvz;18l~~boqUWD-Os3Gi zjrh!(YLOWuB$e3XRgr~PVmqy;b#vdJVK%AWD|0eddg^xf{6d$#OnAST4`5SHbJ1$68126g`rk*%OIVG@htQ2 zJ(-Ixt}Z{Gs?J$6E`<92((eI&h#6c~qtE)jyY{xZhCfnZ8=hb*lRZZ?oU)#ruWEs0 z*(Y`Rzh>e2gZVxe`f}olQIJsFTvgBhPxX|UR36tqrJr*Ba&K7g4OA&#Ax>ekWfVx0 zVTubIisjdNJkI2PiaHPSR?DWOezqFlzZvH3VB(+ypC65H9KCv2(P>ksyx;OTb11>5 z^x7ZIvQ2s01$GJ|A(FF7z_g1uGxPeF0hK&|Tj8GEhx_sze``g^5*?q~eoQZ?|72Curz^t6pclUQop+b?3?eojY)7sQ&StDjgK zJM24Y1D0n`1Sputlt?bdO^Po}+HSgmd^Yp&x}C6xn$NYYJrS0W8pBMp_>p6>T@w5I=5M27)HY>%=jfMNFzBXNIxdhpON}j#_HZbIfS0xd?5O`b2>Dhiuq1S@;xY7p{ zTCi3ycBQnITVLEa`sKqlA=q|R7<1L<`LGP`RR*SD}R&eR9YaB!CiLd0}I7!#^ z!9OzC$N!9!oGn)6mxd%lsauaWr^Q5_lhF*CIXS-sO_m06ZZOZsd8DflPP)Kk$;Xc z;CrJ5R=F6VT`!q*up$IHTx~>3RD$8=V`Chg*T~leF4}7hL!aOZ^?q+j8?; zwt7q@dZ6d<#@F%|aqODy3bTf9q?dmBBu1?9s)7~!o{RJ*&;Q91TL5$Fp;(qpHppxuVb+*D>t8BS2-Z|K&)t}UFbuPM5v|6pNhUd*YI_B4LAYP?DjG5nN<0OndEZwlUIbFRE6AT^wPm?4Ku0EKt zGaj(?EibLWFg>&_V2*CPC$`T+3mgm~;*Xl<9MX;^K8 z1#rc6%U!8L91PEWu_l;DyX(Gv;_;2#RGxQnI^GP5sqEi|Sx z`kbwxz#Z2~9#-V%0j*8bTkb0>E41u6Yl?4&pI}+F#;mTq82II9uFiF&P{^4drM>Ck zE00>+?#s-5-3=C?Jr81`@lO8;!heqQ@eUm=X*ZQ?8Aj>__|L7PBap^tfhIByL{8HM z`}rXxtOc+Z|D7RbV!phoVbWzRzNtj%4&K{1^;4bG(e!)?OfK8Oo3y+M>;wYk<||%@ zE1pVa3nw*@&$IIS%z3?<)8*Njj!1y{UNq}0O{yYm8xd?)H{9(!?X>O*mQ?|VgF<*u zQgJT3mVGRNoE2BFT25YJIRQ~qb1Y_zo2^Oliq$l@{Abn?4b_Rc($PBRNst>TGi#Sg z>iuextr{}ftt+o-*HgxR_xX56Dg>8kZQR@vwGI0pMduxsWc#;q+e6K)G&M)5X*tW8 z`&Z`9c--Zpa*Js0El)!$XKHHh$}OUq0xBw%IZ-KbqCieufQpKU^1S!^H^;$o0M~t8 zT;KCNKj-cI2wKEXpn}-GUlZ346&ehnL`JzA9eL=^%8cuIJ>d)Vb~80WJ{_Hr;a=dm zYUs9o^BYksDh)KW(!#>S2J&vKaDH}h8JUI* zR;`QGl|pt-@%*ESrI|w`6(rZ{TUy431cl)c`y^`vgN8NH)|@W*WwXv8L7cG**qh+XHA;?+rX0yS zM&ijnyFkiZpntg`IFB;{o#KjxJjgo4W4L2JjN|?=wet@ar@a|_{5tvz5B>Tw@Yx)E zUL@}!=+ZniYPr+1@n=QjR#9m}u|mGh;;Qgkq&lkS(Zt@zE!fZIUB)}7rA#Nzj62tS)TU&n!@|@ zAF#*4PVRno2ktaWp@FR_t36Fha0Eszj#;T@H$(kA?r9V}tNM>e0{)JFKpwxPquXPScmO}`8HOl8AeTfC^df$t9juAbf&tOcH!syZcZ;r zCgI*kR)*N^BmQ7{*bEypW{PH(dV#dHf2A4zuHH-ZgcSzkhwP?-j%UL$@NBu&@u{zR zTEt@LSD~BCK+{Z*M&6?wu7BdCAq)$)anb3*m`sei>s%Fg60B^teek^R50)E>}lSdn%`?2J4P+BsioJA0l>r-yY9fX(H*)M0>fHdb-Y3MEOKllHZ{@$k0RZK~qiE z;I*HowWH%{lm!?AMsX-AKU#(FPdzK;sCta#20n%vP|Y7K5R>`T}k z$iOAC0<4<>KajF@V9C>Cdk{l#vwPXC(oiq;egVt^-2H(cbM%52jr%S)9XrB7XC^%drK?yeqVkR*i?z};zg`T&h2YOp17ip{B7sxCSGo1t0O z_=mgbvzp%N8Sy8OS?;k_d-z*7`@W}mBl|q#-G4lzhO~A~+g5bqV1_)`z*+F;`+GI4 z=sH{nK@aeZIKA2_o0D^E6V>MJ%@gE|y(dN=&IQfXCwREz<-(Q+GG*cr+)#(I=KLAG zM6QEt`=1#D+HmYY1RzKCM~lX)H;qzRr%z3Uq-GSw!gkh1y-^n$NK36lPS&R2OhYd~ z$A_1=C(TSp>VvzvLdkB9k7!ywXbWm>l|EJJoJo{X#?_YJ$y3wjjdz6x@)sWU^S8V_ z7V(_{cJ|kGBJvrjGLqG`mj2_hH#oy;kl)OBfkpq#e$WW0@HX0ol4P~J{ojEgLeDHt zE3l{)tT-k!pxGxm{Zn}3vEOd0Dg!m6{-pNT<*&mrrQ@Gt6&o%sYwH^1mT}f@+!jCk z_k?kYsm?H@debpQCBtX;%sW@qZdx9F_Y_m8_p#Jhe?dH?D!$Ts+OmPq%vLwuNUXop z?@qB5B_*f%56qE+7au>kUh`;GZJI~~9hQR^`79#vdN0HAru|hy4f03d^dtom{M$7_V+}ofVSC_atFwXycBIIT5ZJ}6Ym#MU z%a`*UQR7=TFs41Yl}lT-U3a9kkLgc%-3&2dMi+5=NqH_{>kEOy6zXs0RKTYVL~o`~ zOdEa^<>dPxPuN9Pn*C-x>p+%Rcl)smTkl%(g^2iWcdRxjW<~$X7e6~lq*zbA(eE$= zHArh@;B@=T^8w=7ZK$|2|M8q2&Qvq3@Fvz{!&|2Op8tCOqD}Pl;`7HA2XJ#MGG*U6 zCV$wFp{kY~xfbgJa*CkL*lzN_TI&>ZlQ+9)BAgh+P1()J41C<`eYXg$NI^c`yI|80 zW%X#}z~zfxv|9PNHtwc?Hz&BMq&i-4yn%apkL8$aBo>A3S~N+%7!Y{fD#}J{L-5Rr zrs?D*eJhw8VwPFs(sf)IHPlE$Z07VWrt6Lkhb+cpT&nPm2}3Z!o&mfmA{?STp6g!L zE;Iiza2?uiG@q2`fNVl)oiv~JOj0k+cahJ;NTaD6<Z0DRCyMTO z@w8Eu?*1*<68L6ZRfZGKXv9Y2$p?pu$PG{JHq-oSP^E=(&KUU$jnaKQ{`;x)_`Uk* zSlvcgDR|BJ^FTS`ihKWR35ph9f(xzM3!bexFo_P2jSO1!D|leZRF@O80Ga>T*=;b} z7*1)}OWLK6cbO9E!q#N3iA7&(vM5UXkc7Gj0IQ9$&>< zdBlNq95@;SJTh3O%Nf^%*h?wJ79+4C|KWTwK@lwUO0e=dwDi2Qstk;`bjQV#y^ki>%j*yDgJr8@DrobzJc=4e?J4%2?41Mu^-=%zY*a#uRJ95bktdO zN}*Qy67T}Dxo3X!=w2kE^_?!RYB^hvb^pZ_5J~ebY;1^2@buRRp0Ijdq=(VFgY?N^ z=iMDbd?07~E1s9)>tQ)6|L6XGw)5auyb@OSLJT|3=M`ZbiAcRH$Y!qmu|n^~h=&r8 zo-4YBpCvPD9uwix!?ZU0V@5~Ns8p*u;)5-7DTfUH~=-mrSxy&c$*ILa*dToY+_Z`}^*DfvxX+&V# zqso{QlFwfCbfpVagl|mx^VT{0N0^jDX~Rp5Q6;mVNfq>b;nJBT{x`qJRG zp3Mi)OPQ&j;XEa&x)T=V-4&}11{I8grgo2hr_{LzF{nG#mHT4PN7k!G=$@djc-2B= z6mhR-wrJwso12Ej((Z)A*vMPkn8z~Kj;o^bqcrKaR+n*{zTh!){N0hVjmWn^-9|W~ zS@DWisoe|2_4i-XKHTbwJ@R7B<(Rd#Zg?j$0)MX4?uqO7sB3SmC;JTGs@-6|W&yzp zO3J~R(9p`RDaQKSO9$ft_tdNQkB3cDO&Sd?!AvW6)3k)ErH6 zmZ8aOWv$>69ruy$)%sXl^?&_6q1y-}{yj~Z%Qu6SSWebQ9(kR0)H$NxpQXN6iU4mq zB~d#@o2_ulPmw1_*JWB?>b?6P_;yHPW`@X}zS6iX}&ZK)w7Sf{hoeC3=JRFjntc-yu~BGgzqpU z>lN$Hfi6X5J4YiOpXKHXRtpmYJOw`R-13y!LO@RegH%$3zSWYB;~BobPalDe*0bd9 z3eBn-G#l?G_H*B&3=+Xqo`1A)MIJ65${24b%qC|R&EurPrx4i@Rzs6NGP-jMJQUZ& zcvr_+di4o74Y2ITmDKm41*MNR1pqMxTI~v6F%r=1IORNgRr%8H1FUE6gQK?h1KE94 zq;ZXj^4OZo1Dapx2Xp%Me>N1vZ!CxK?1$BOWKDxclCtOZcpXcouUh-_1gUd={d@O8 zd;-!oN5_l|jscIzXMw#MoG#IrB-bt=DKN`8@A7!nU1F2}?Wk;o^knY6Pib8SZ+DhZ z&445B(GO2lf)1f%pFm6AQpP+J7CCE}V4;^D1B=KrYx|=iik_snxV{sOD{il-^*A2d z9|HQTfPNbkF8wT4^Z?_xcrC}}RLs^nit$?MY@KYGK!jXl#UUxCzBE*4hoAwK`e*bh zLEjpVyZ##E-gEEmNBlr5RYs_)a&N+BbRGX%MWgTvhTr^K&qxnn%2kn{*?o1^RyHXP zC9!|?;rKi}sAFdd;oJ7$$=zMfrR1<;m8&`BT)soP(O(C!7aQj8v6!P8kxPQcH#Bvy zoJCLxXU7l>J8O=@nWH&d`H|3n3>2Tm8`AHCjO<#_j|ziwuFQ&>*}QNAC+mZRI<}37 z<2}=$_IoH6>bJ1*T5IRldveuYRD&KS{$4DksodQp7#)`x9fXMloQ$os)4kN0>5|lE zvvB`?Fj)CS#|Qv=FoOAsMPtMBIAbbJLQADVL0_hZ@h9L30LTcI#p8M>M$pX&E0YNi7w~$lr=JTeD>~KauUpJ0)6fTpQDud;2Ye_18@2LnHx+Q?9oe}ut=;rLoduW71ZQeH zDPU)GLaF!r)i%Q>!%_)6PUA*5A!=a}v_Wmq0Oclt_UU(e9JlD0pwXWrRhW$>tjAo( zQM2UzJ~bM?Us^CJ?Z@Aj3U072Xt1Bu+c?omGI)ih9-SvQi2rwRHWJD2eBH>JGJkaU~nuEE+0G$c&qtES^do)>Q}Y)r<$C1jQV3X1$t_bFDBbPRi54v{(vbj8vB^MQpwR6+ioJzHQJ5- z2Jx<}oCB(Da`Vpj0)@uEYnU%+OJ6*b#E-(nXa~0&RvZ1{K_OXgKhy#;U*`15*INvS zsOfUX6SAXgmnUS6XWM6HZmZutQAMw}%=q}uY2gRBumt(%ZmjmZCn=5_i^%TUS16Y& zeOj~~g}pwW?O}*HKEZ1>G=z|9{|vFv26%rrsG&a574@UdEgfHd*u0(N_~)jkiXmM# z_EJ7$awv?0b@Hs1`jOv7;fBbb6WOvP47ViC+)8 z!Y=E*WAPMaRD@;r0HSZ^wRi*}BW9pIJ?Q#NMRnMvAb^o^Qk>f1bJJXAy0LKXijlDU zR5AFc`eP*VU}8M>bqG#mZSkwPHnYLdO?@t+mgV>~uC*$Acx%UZY`$dbLtSQchp|tQ zq)t5wXvC9V(vF@_^o&zfmjGg)D-Pjbnc&BVjUHQ`a=!ZQ@9m#x51u<0o7`iw$V$5o zOQKUo^nD!AymkIu{?SgcsXD1=@4mDW*Ryrwm-GC-e^>lBCOv0u0_}LCx{~lPDbk4e zIFGdo&zh77O^q0Oe%X19ntTxSWzWhQg)W5TKhAG8S$_1Qzkg@N&Agaa|Frp00jOEe z1%xhs<#+w9M56Pa{Kkp~j0O{=$cBOyb?Zj%t9{1~oO;f~qS*~5=dL;t_9G0OED0CL za#@$z9&Ecmn{JX>Kr_8jw~cSayXdp+HAsih|9HkFE1PFi)D_pKx%jPWy4O$*{9-FO zZ^^&aH+_%7s%Z<56)3SB`F8)kM&`CN{IKvMowTFkVk~n|`V$f{e7*y&f{*R&8$n$K zUyB@FReckmq5{B3jPjt)Ng}ZEb#`9zpfyWvyp6kb0YonA)5wzG)02Zze%-`FmyG(! zDIV>LK$hEKIYPc~r>J9uAgG*qQ3!J6gRT7Fe>~FmTQ^R_?{{t$B_E;C6k6H-&_bz% zo5O_?;0hUF`D5Fv@}5vH_)wUDMcwIsB&?(&pY+G>+35SOtx#4$^PWW`Z#j@uh=605 z&MI%;*_ZG&ILjRTGWP~mn7>eG9ui}$&(a3s#*PoCum8|O1a0ybh2mK#X@X(2A@V|8 z(P)D^?6o!2u;J-@$9Q*Mp8)yX@ zh54m}OCuNUl?CNz;xm}`>6^OiTsdGY(9Ze)9+^5$niVOp%|Q2phJ{$%tHrv!NY2Ai zP%bLcgE98xT@!56MzZ^U(9|nhSd}#3K)hzzc)3URC{sxf4LvTMfhk?F8KN2^345?NMC36mTEh}_3Rycr1jl@dU#!c?8&1*@ zGz>VP07w8g3*Jt^t?dOb0S}EPm?BYMHZigkl?3NMNsA{}zbAmB;f^dF_Wz(`5|%k> zuxzipzxROl>s|8AoNw8j%#tDMwoT;LFKTB#Y7H6^IQX_P4BzRM&aZNMa^PJU z#@R0+X) z)iRBB$r^*j^a4}iJ8Xp|YFHh_rb#2UwLCNky6ZPF42WBEwKJ-~BuZ|-G4v__(pvNz zGJ|1%;Zjq+t$k459{dcT>sBzO*-d78iT1go&^9d2&N%8VFtiOBolrM!+H*!$?WK@z zyYDZ_`jSL*3Il0K0iqDT|3I@kpS`I;Ye}PDYSosZr84f(Y7jM|4 zbYYgbEN6r1*BxX`VbbPr`h8bB@6meKQ%Jx2_;a0!G z5U)8o15>a3?NL=obaeij)cnqd$>Mq8y}BUR9rK9+L1YoCqKcx_ieoo9)b^VdV%w7>aFsXd-Yfdq-1)YBTWjwGOIG2xb)%OH?pCi(C z5_9u4lJ$SJ3}5~D{5fbSjgk}61NH`mMj4YAvnNm!+ws=8zBtu}pDe8enbGaFKEm0) z7xM|{&ZL%{UU_tKON#f5>;w`%U3lgkLrcWm%l&mK-%*2ARY7M;l>4Ub+IoZ|`mN+J z+iUPbx*F!IY4G$&L8tt;rtI|z-Qki4nR@ZX3&XR7e@%@P25d{UZ-(EDhAG!K+HoP`bh)v9L;#qTH0sk~aHA*UcxV2rJG; z3}uUj4_-L*&JsN&L7AYLGX3~d>*&x>3%`=KmRf-Cy!_(upyz~qx&MAM9#XLu^O}|L zaG|NhHGzrEos#<4U`=So^PTqCIBZCMn!e(p)HwKE&s4o9>iB$RRIP5qPX^zr@PMkv zXn-nj5V{@xq+gDZI{#keSSqXD@?azngRMc{U|JREvL-gL?4l7jVlPCFbEOc{GRYoa zlcG<;2--W_)lhwtFGEjM)|+FCeTLuv`qOlJ@r}g)PGKuy3Tw*xI=eRvdt+mjHr~u+ zlT@GfoU!53K#_k*Vyin1pYow9Zue&5i|<~zwcK0ed3G*OTU8m!me9}ID`V-wy2Jwu z;r{=aK`WhcF&aqr|DrPr&t?~$k6QV$U5#Y$i~6{Q^ek5_e)RJIdQb+7;`r0U)5m-5c4cq17g|URo5eZ0BWm_sOy46H*{`e%72<{;+%Gy8uP}SY(o$`VcgifU z0JJ&XqyvY&6^@Co%5JdCZTX420n0P2s-F86E+yt0YC4W~zlQS45rtM+B&_sa;dZPg zZ7w+HBz5Tey?0p?gZ@-|ul3DbATIp4(?^o84Y^-j*DHGx>g|(wY9Kz=DN^~)ftADR zQ-!Sx`W7XxV}b+~U6;H(&S;*-6-t;c?he=1Vbny@(+%$K)^*r-Rza(M+Y*0OuadnA z;WV$O2O?{(Un57pBm-fDSb_cWAm&KZPJ^(2TT+!zeZQEoL31@z!w(&jUJl3-^W$Ig z=p8GOjNeO3EZ4yGh6+X*g}&_R$BID}Hz1g8hP2hZ_tK zJt3a!Q+6QS+zH#;+WK;8>2MC{2cwrl#ywwJOS0C{jxCdQHR-R#Q-NZ|iH~t-+efqU zgnErN9p!S@=>DvYBF~2Z@8y*4NDxM4dS?bgXH7tPgF&T{A(yAgoiWAk7A@oW4DHNq}~a=0LpE6jSYTLJa}bh9!PZB@}8jnd+T)l@&q+y z>#`~a4|QVuu`s@2MgmBkZ7ly|SitK0DUyFMn-RDRMA|Z*>2Ca1&A|T1qS(5G6ArWf( zH}U0Zd!B!bf`312`mEyA!JzaJW|J_=G20Vhr^&^8#D3_BQLOfE+U9Ju_t_AO-hc#T z$a=f3J=xim;0`Xg!YoX$WPsca6fBfx2|J1xtEM%Z#T?!gDwaH?@@yEio!e0<4)P1F zUG|Rk6Bd3$%VIMRFz9d|KE87bwW^Vj&eHdBPD?9Q6i*6yYRXT(TWkFMRAem)E&dEg;2D&tk$EuDgkKQFHUQW0GVddHw;@%2@jL)5~{UwQi@z zI9B{AAg+@4_kThve0mFt*bic~jqu3l9Ll-MZ}6eIz=_4**y|MsHwdcPvJh68PnV|V zM3-|K#@Q9im;&Vq&lN{ei{ATf0yvpIg3F8ry7WWiQ~bjYg`0KW_MW4N*#gS*qfw); zE9@D`7m`Q13EM$O0#*7SkHd3k$=2x4WaFAC%8=*p zPK!57UQ}_u3$U{Qh)q`|vpOmUYDoQu6QGj#C#UtE&UaZK0Ln@34A_)=zn}1_|E$G@ z`d;=#BMm5>febrdFFf$CtTgf5x3l3LE?!wPREoV$G!!rTHay)AIIucqM6mwl?zL759j5X;1#0~D54&~u~$17TsEd#TS?4!4C zDdIZSA$?y}GWgL27pa4Yms7_|?);d;v^;H(uc5LVN#{#ETRqKxu-{U3xH z>aSA|31<7sZR=+{F8QEGneLTG4Vm%p;>bh29hsSb*PKRoaE}Z}b`eV_nPcf=2X7mK zw*osyzs|IWDCPT3*=N4^q4zDsVyXSrYMG^JH=NhKmetBELU%xj# zbHO~b<(_?*i2mOKZ*jpHO4SCf^y%+)AuR~~qX z3!jo*LNAVNtvYpF0iJnqv}!W4ra`7X_Vlx?o6mf*^eU!lX}HPoh9m8yv>@*yzZJrg2oAi8ddHwjk+H+AxUEG+7VPaav_lVd1SlmEU z7%kI1T@u{Fa!hiNp1On^*I!{FeW3Wdu28c z8LiwgKm4vIWN1kB_F#kTYH4%@+c9_LQ*-9ibW#F{)Q?%(|4Xg+OZG&!gnj5-VxvYI zf`X2aS!b|0zNkn%d3(hMsJ<4(&15erIg{8@?PwA!dgvNDoe?@CldFiKj|vVxxr@>d zwCmEtZK*ahGfP4#)mZPM)P^aVoG$vj&xlTh}1dC!O{|P zyt!k)4>r`$HKL^L8rvzE7siJSz)`1Kjlh_d$vywTWvCl`)J-^?28`RCwRg<&kC`#~ zvFlt1efaSZnHlp&Iu+ZXaHpC(!}XyHCOCMr8<8*pJBRgF%hxiSU|Wp2M}}u60A$DR z_Y?}vw@%4##1nSb92gRGY_up>b+#6wm&xpB9^TwCb)=hVG_Ss^mk%o)w3rgUJ~IGV z|AdMoHKg zaz?}T@Qu!8(IasK4k3?Yo}Y@@KlKC4*IX!}Xgzk|^@&{9sFVM78l29f7y4sYvVGj_ zr|Ro(J<11`%myO(cyzKvTxZK!Q|s6V1hTJA=WnAU|>H(0vJN$I49D-IU8xIymtV3ZS5_T2R z`)S3F9Ob(DTq#$z950Jgt7Y4&ijazmGT+~Je~j=AkwMVkXPN{KuOcoaJrrmGV!w9r zm+!St>{u}5{19O@aTD2)MO&@2cds6`n3>$3Yw|#*&zo&fk}eQ^iJY(zHDGc5BQP3? zs2OFo!Vn{J*a0Qm*K^0LMvp^i@S4<+}uW?{0 zCO7PObuXH9v^k5hp4nU=jP?zFplDI%_FmLdu%5ubvT``>b%Y<@L3 zQ_>o4Eack_lVYpz>mH*mQVT4}yp9HJ5a z&uac^TThu!^{?>>vXDAX>#9{sz!AwP+_B&1_Tc;H(rSDCqR-{c#Xey0O4Pgu`s+jD zLsucg2&`}MMVof+_tp_RQ1taFi9yjV)Vxu{~ zS)=EAH)}=VlK8gB!oLDl{-=Qwq!f+{APd=`k)lDjbpj79^gX#6J)POV1RoHwZ%VC% zho}bIYM0_CzdPFBnO;?h_K+;hsnS+Fv|`2lnh-X6GOm&I>wRMJpSurr4}SURFp`sf zOO}KR?@f%GY<+)J_3YkNnLEdhZL+G@D_RRitbBKjbRyA=D^d!7BUrVlT(P6>7KRlH zQx*yVem37G-PM0AE9gWg+*MubT!=g~i$^sVbQE`YEJT^p1<$xjwcoYN+#Bzx|GFQK z0dg2(VQVki9y?LpPk+DjeV+I^Nw1qnjC%zq2`OIQ+uNwXIU)3B#Z8)j!L; z)Ro8*iHtCOt55p}3t^C>gE)1qMDb6ThnGl;m5cb^TV|Zfh@n15c|9aLw13wTPv1rH z^5`;0?X_*lO>UmW!0TDksTo|qbL z*rDCeQr>m|fEKtt^;bmhdVV{4fq#D>MgVg7y?Q`e&)~R_g2>lcMCL$&dmF3$I zetjW6TFmNk43dt=e(xe|G`Ii&7e5g1 z>hr_A-p-4<@r(1Pv*_JfdcLuq^YRUZ#D)u-+FcDIdq>ToaVAwV55T8*!&^GU!j;)Y#OE`T`$%VY!ALv(pi~u8I<2+ zNogpcRE4f*oKt;?#ObA+7Sq#Ndb9M%>!bruT&IWlxmWTMdSkc@K3Bss{&i>N&csqiw{)3BZCMt{RG-J^U@5Jvt!IN9c& z{>;%Lh|gNH|M=$11C>)%F+G(>8?+T-lkc>ItfJTy_i^-Gyw24TmUUIsn|rMrzff9$+MoJ7b=Mgy8Ae(l z+5#6`gckY#F>VL?jb^+l{(hF8OQCtVpGUG@%~NRYnVuL)$RE0)_)3YyrUAEvtD=7R z3S?0h^(>%9XZSBJt?bl)Jc!3QiBmvsf>vMLz&`F_80ZJwc8DbKecJD>e%X$VgZ{-j z8#+v$1-{vTO8m%BOyuirf%S}wegdHo34-+#wA0qEN$tzb0sSqKgkWA%o>KAnID27(oDpOx|Ml^Y(^^-a3C(@~o7+3@ z7Cw=Jn3|v!T+a8>ND}sZR~qChtP~{?!oW$L@S52)j@n+VU27KgM~RY+k2H7P{q~uQbfcR}rvkt4)*AzIZWA@-KzFmh z4DW-OieKS}&weO0`Mt)dLMuDoW70UW+HT=For-!`>1 zm=Qf^jxA)4A4&~Qrlo5=N1D~@a1o|9i^vYuDxBR?icun0WaC_p-=_RLy~bc{Hb__C zTst`~Ls50pw4Ek(Luam)|K7aIUK#=yAFE_|eq-N=uB7yY61JK7-R3}fg<-P?cNhx~ zIxho6LYh&d^<_s5WGwk(qlJUHDEE7%9i{iin&RiIRQZX{k7o+w&pj&6B@WAJUuLO6 zzmva9yof1^1Q^!(t=ETCiuGbj^l#q1=Sp6eA;4Fn4aBwyzjuvJ?u95HvqY9UBu`rq zE(k6lhQ7!4yNsKxp9)=jOqSk*Z`hfPesQ6Bh4<4+wIkl&zO54aS_RvkGpsncosk5{ zD4lXcC#wvKP$g0sN5n4E_onjfw%C-^;e%=*jcA%&5X(kMPK( z^2IM1eyoM}JGzc|nTGpMPyPI3$=wRvUCm7SB1pZRAyCrXKKFEOM&zkn^ddN-UuPUUQ8Qm>){`+O`$ENDs ziNzuG4+*hela0kUbd@-p>if1wTPG6+-!zn9`ly~<5M6A*daKfIcN&6IUB?PEcMI>bqgvg$_HO2~ zP@&PNE7mQTmV)`NUE3+*bXp?`d@ISIi=k#(C92ti)XN%2r-@~8SSqd-gEvnO%2Col1|h#Xjh)1m%zn}~}x%>3w_c8a>6_}?sZ zp$|2tPLY#3(K&xs3mQ^JWF0Bo;ZbgmDYbhgV(lrP(l-mHl1VFTSn*#%K>OYJh+!75 z+~U-6^D2rGKuFPDZSK>+^XccV1NN~oIpVjzRIO=hk?`_E-T4X+oCrI;DCSBdZyv7@ zX-2E|SDm5k4yHSD+p&GS)iy(AePw&a&Xx4MeguZZXkx1TzLu#L zGL>Lj6lZF~fy2}C$GzTgiNto8(sPfcXEA{?9golx)Yc|uCQ;}q3j?^ootySN!oSGp z_qcWpm)VZbCJUj>9!1mkfxA8Q^J^o#THi=KjWVH$;}01YMXawcLCx&)=uIj@hDG5B zn#}!zs7MGp7e$jdw7o4a(bNkbDDoJB{|;t_na)jHwwilAnm@L8n;Gx_3()r|TY%3q zwsfGz#RU2k;{iZIA_}!WH$@ie(z%xwN;ib?%7-Hr@*>R3o_QVzz^e!sSH|I3adVbd zJj}IZEIALalq}=~bRuhhK3B0t<6z0PAHrH~GGl3ZnN9bZYCQ;UL*%7}c1I~`$8hv+ zP9HfJBGJjnz1Ow0bM@>P>ctYV@G>y{>81XUKepB7wP_7)5d$z9!OD*dNZ0hV;1=9& zX%jUl3{$e`?`2m=lFut}H@9Y14FG4X%pmX^>&9Wblbgr4tO)c`u$MW-d)J#Yl*mDr zHm9`@$Jd{oXRru?Mx3$fa6F z@R=*X2x@OUb|_qZ{T_CGG*oC{U#tX%XEn7ID<44Qvoh(~QeiM>c;#|lAUAvwkDKtX zH!77wKK+`6AKbEIWoa#C*R1S2Y%NQ!J4M)KE;&7W$HCKqcU^O&Au2e`xS{bn7w299 z3TMnG?j{hiGS&Yqs$&jcVCWOPP*cbeghgn;$6LLvHFAaet$^U(CO(5F{mIdO4Jx9? z_#0AJtU8U@KFmN(h^NtlJ*Ovb29r}V9SaD+aN+U37bOK-@-sSO&FJ8SiD^mwj;{6DxQ`?m*!-8G*2LfbEVkE9g)y)c?eUG*$UCNf znVt7J&Db`hun&WR-1yP{po_q_haqwIW?{t--}l%Q&vPh|8#P-35ypi6LOMVIby%l? zlrPkDg%ply9gNA$v}Xm_R}2U)iOo_z4n0PpCPRRq}^2vLNQV>@y);%eb76(r*U%Nl`E53FKuWYzP)Gsd8huHLoGTE@0CZ>k8fLI{2=wM7B zyOq^io~}*}il?m4e*wr$t4>d37bE^GoBdTC_zW@J2r674VGa})>N(nnjM?%nTZ0C> zU6caglfG%8ey>zl^B;5l6?7FD5slK-h@FU}+SAsx=^UKHM&{6sZ_VTXw5QS^qkxUz z*|cJyp4O(b)D&I&QZ{`ws8cm_7wNNkd1%2$v(={Q8H!=~ZhLgP!wAFj-?~_On@e8} zE**}4dEIw+YmkBys(KdPnjUwrkf_a7#XLqwSd_At6=6<|Z=MaLE%sp*{^Qw)O9y2y zIO}+99v_Zj+y@nUkGm%X`OohtYmq5~?Y5Y_y}arDiLx0J?fY!_$M%t2y7xQoywu#v z~q+v2dcv}*GyV{`@K$~#krbuC094fhkRwC_1`J|Jm8p$$CR+; zI$OuKQ^HZcsaENQo$Uz@3niKx`2??|eZt`6h{w}^X0^lmWbWV>3z(}T?T3W6MEgU+ zFHIam?U9CrnN1_d@Jl1ecgrMC?v|;D&u5w903ZwlV!76+dV2ZKJ5ICoy59 zorY(d078T3uO^Jc3?nkCDPiznbSg+FWkIa_^Fdsr$k zO6u*JWibdw<~EzI;PN0HMzUBzBC6_hlw{XG8)Mj4)Lbe!CrHJ6)WyI5I4s=IJ)$%( zT~XL5*-*_*Zj1jMMB)-|t2{TtSIkgP=lBi+B>4!sd0%+kw#n?ow;w^R58W;=>M@5c z)=H3>i0Ma%Z$N~)&m2vr&u}_Gf!jI{&(ag@b#- z!}TY*c-?3?FspxLH3t&ed*w3bgPigTP*FKE^EaN>e&eh`+gOJJ1R<=2K@kwtub@3{ zbAI~L8>#5i)F@5Ds_imk7j)A2`EY@>NO{)7Y}fO=nZ5tqVF?LUaBF5`uNT^XeW_

    &W7qM8`KpS*sMY;x(6?7Vi6@%6Pi`uc{ut@Eh@0M-jjtu4Q;>y^=YZIi#tk~1 z`Wg@we9$wf>V(YzK4F=3kPz(gMtEXfCivj~CjaQs``xIF${868+47^tw>U4%+;?z} zrSe@(lrNlai{1j)LW=vlXt`bemu{AfF0$M^d8O(t>2I4%pUNK;Mnrwp|2EdYS%g+c zE%BO%!TSZW#j&!4Tl$7Z{|Y#-Ug^~WK%if{{$?C=_7izq=I(YRICyI#t@Q=Ze97&{ zV)X3Vy^`28uycXcilC`yUa8XaPcJ6p6%Ly{Bp8c?eYOPHF_ob_g0ZTEBUqeN2<-A+ zhBY(b^VgE_#|JH+nu7`gE~2Zz!)U^TQRR9l5-;VCof1a>lY=HCNv@g=KgygGaK_GV zO1>&Hc#~A-IqJP+l~y+Rz~=*==fwyd^kv2^VLy7Y#3a=eq34OV%cjVdKy>UE_KN@G zk-gD#J2@2z!GhX`(%P{lt0x*82@}@e?6!JJ*W^I^zK7APCSiC8T}=;|2)6g zJFps}W>^d1BYn<%`Kl(?5An5)1hZI60T?wX|}|+>l*EsoXs=X&2TUF|7@w> zKB5V~(NhZB3#}UuG9=8VDO@Ir^>OHBZ=YvwoM8akPD4@Y8mmTK-+;VTbo`R`33I(vR-HF<|H8AD>Lbzy?T+y?Cb-rCl5RJJ7> z$wi0l_-Vy2{v9~Apw4!nT{bWIk0m-*0`~dWd2CG8_}!OO7BP>M{@Ha z5U(ZwWvuUIKB$)iTTHs8U*fJ^cc`vJ+U~2mpIdNJq7sf*J8!8{=SXAfJhL7Z|Bzq% z(eL$!@KW8OruZw+CFNeoujglEl(HscmaZ zHRoGhf|hj-O|SZ8CO*{?!-(yn%HuC$FB4^+BHbPuob?Pb63g(D40J;rN-r8unGw+L z@O$wd#xHk+&O)4}h*H+K`Y%1lZApA@oIK?)y<+7f_ZjLZQSzzNi&#AEQm=hv|15c8 z$LjDXj^nO)$1`in(crPi;g<8s{)>DeBHF=(j%RXBK8B4_MV*mDIbPXUw$zRo^j0Ih z7%;Hv?|}pKgcD@jxx5)HQ)wuX@=FEQsOce&IKy8x)6m}@Vrj9~D_ZH_$)9JP^R%U@ zC6)aIu6+;W8qw{yJiZ@)U>IJ!@VgI(x<9{Y_$xG-tgY=hq2+jaxh=67#8lKeTNWc8 zvF7sAXyB=1T)}h#rlDnv1pBFtj@Zq1M(4?zC%Dbr>fdH$+S8hUWrGSNY=zTlM)PDZ zkE9(DeIL<==c8dma%NeKE?XB$ZDqf5V1lEo=YmIr!QTE^D)P_up=R)uvr3^+krp0$ z=MMi2;C&}-)zlal=oQ!&m8tGs+159d(6yFvYVJrD&Yhs0Mk}J}FTV%Yr#S!ljCnb~ zK8*2bxq(2hIvFMUyHK3<5VgL!yM`|80PHRH52`rRu@aCAkfx3AgpK4L)j!R*PY+G9 zy>ndf0Dcanhuu3#Cf?47J!sPdkWhOO{JhqkTlyBeZqRN{mG{vX7oRt&7@0e^L}|Sp-ib|Si2ooC$#>=&Pcw>Ggw~iyR`lvQ!qmqB4cV` zu|Wif@L-m4`yjel?#_0Iwz{|97Zp(ZpCXm&4*dJW>r7I!x2HxuIRyxoDeWQ2|LDI! z^0$4rFfSDYjo%JxXf`~%QErzn`cX7df@N568L{2?FsmX)OiJE*M^wyR$kg{FRFicq zjAYMW;a)yj!w|WB612r7v!3mDw3&7)|9Pk31-SLMHmF7nbdP)=o<0QgPJP0*iPeaB z{rx#EE9Z!;h)A>Qa9wTRtlxu^k%r122C9@PIuL*q^LlW>Q zIeIudU;Mjs{3X!fe?7qsVa~mT%Biv33rig_q!6ZG!$b{lxxNV8c;EbHKKOi_oufG3n6`Sz#9!^KqhE0Fj+Fhs7fg2 zCF-XbFCI&Uwy$)y%aEibOZVgktGph`T5E^jiO;rT_NBcF{;OBIpl-F>V2<1&`Nr^1 zzRFkcac@Vy_7r-U5ihK(Ow={WE@Ms6mnf}sb`@Cna4Kc&b-**rD5}K*Dj2aeM`FBEnx@A9} z;qg?rmV#z~u(CmSrvyuW3!=6ZJTz=ukLS9}zRW*2DO{1}Xzj@EVWl5=adK#$EWWJE zMQzsR-SV6M(aY2ew~aOsV1*CF)^E-;e7MejB@fEziauwjFi_Z&;Qb{0Gw7Wnc< z=Bdt%0#N#v%e8d9UiZg8Q-8iX>JK%|&Az=3%V?yOr1Omcnfaj=GBOp;!rZ#fD?dK_ z&h1RQx}6`_qCMtkoo`-;=8IB|1h#DBbbWTC)zD`h0Iu5{45?idCAthPS6fztWdjErEaQc{>Sy7%goFo?Eu!zg`%r% z|1o{AIX&CjHw>Zo-A=x7=(1nw`(YKXd0p%ywQu+;mDxPM%!cynlbJTOX zp&T3;reuw7yJ>7{e8^(T*dIMwWZu$><>Z^QnMV^W%6S@)VvRhaBaM_+gytuAciQ=90x0An|WpAk(f4AQB_N1A~lALHSxwc7m zfVY2w6gTA`5*-UQO?xvkW1yRUOJyw*6l=r*?<{iL-@sujA!gW&lPu_nu6`v=q$kuF zUNb(UplhjmuOF1SNRx23oKsz*^fCsv4_x)?E4b%KvMh^jf3#yT)^b1eU5;;-cG_T875pbFR@UYza@2wJUyUgFJqEurmwzFpf;nkwQ zGb$Nb&i~X{dZdQ7SLLp=Q4IgBpD4;^)WTpbu(*kl0JYLc&Qu4G?q3F@t@;8i;=eEa z%!kC7qN_X$j;-Y1oh}D02(&w{pjwWevPs}Kyb?Lc-%hqhTj>ZaBX4{51hhal{wWFN1j2|4SZ>6~6WHg0761fU8;Re@wqHrHhT4 zPtj&qWJ5$T)y;xG3;Jc`v|!g#Z@Z7oF=r@-Zj_Lfx_K@7q>BmCD7aDL(7qt;P~7;+ ziJV#VY0{`3Ho_th^6*BGamy?UF0O~UtwYX$MMAE>2#TipF6jaumfT#)1Ek?9F|H{|awf5SN}7yb82XmVcgFTBO^&o^nJGgA*?57^u4V{;F=gC7oUFpDCtsW(ihZdfb0-l$1%SC?ZrVNAU902nZF){~`s zp@0NwrYWc+JnCIJIgvgmusg6OS1L7RriaRY`BR$Qr(a9DO5~f8X=j6@=G@bKrE$Sv z(v8Ef>Hjey-Kt?ZQ{5z41$JKW!vhBSSQkk#_#wtd&I7;B4A@l)#Sg7xmnOt2IT5_-S%H;Ls+*2YoQG2DQh z+ONA$TCq+)+XwulB5P6mBRE7f{t1ns&H;$`O1%9vJVV67jXDBJERf9Vp=K+I)3*|I zwa5inkMJzKF;ox}E=Hz}4iFH%ht=uJ1H1KJu>47RhLqMjNS#wJ8+_sH-PjxiA15vQXwg`e27iEf&p)Bil&mEH_FoM>DRSvBD^$iOFsUtjZ`^aq#-nRS@uvI{9)G zeUg2YF|AEq$7IZ@6>!luLV2nUH4H@QJ?A%c6kD+?^4ocBm|}Ewa(j#5;`Z3_$VB(1K~+oGiLEc)>Ak}CGvp(1frMee_= z%z-L_A!mTZuaJYnDY!NsbQP#mp>`q&8GT`Tg6fOAfdxf##m!q*N=i>$LW)8d+2&RJ#8r`#KHoZ;HcgxdeDL$f4q7mJj+9@= zJCr&scM=)c$zTnwwd>!Z4`P>K)Ru+MM#X=JYEF<2YF9GsCvc2ofqbcr3(r|d zghpiTu?dflR+kP#5lKjLIT(_ss5p<`FZJ_^O9hD(}9aHqAzAfUz3#_Y48+YjYMxl=m&Y-0(#~*4vihlq*uLwaf zFUFtbK*FVDlqCEc7jRAs6Fh5 z_#nt5G-|A@Ne(NJ@|^Rg_6sAt4t&K4 zSPAxt8$^CPD#;O!>|4DC%435?@Mr6J=M=2Rxo4tW1B&b#<8*mny^EadOffQcKTAE% zfW+p;ok1tILKRO_il|AKT{@B(Mx&d`Yj@Lnp`KhdEP1&o!yujCiWJ9ZwHh`vOIEG< z65A}1A6VZ%Dh|xhyU`|$tf~0D|baPxtnp@5anpbf7;~>tXm*gw(m5=zs};<{>R|~ zR`5J?nk0okd;LtRbC0j5w}PhceQ}negb;JU{NF1yR?HJ1GkN z!^#`hsl_HzSjXkEpT~XQV*jPfRfC5EGh!GqWYqb!nwO+Qv@Fkc?J+TWS((n|DF3|M z$^V7{3Vj^IZuMRU-Z1p8l5}xOeC@HmI7RCfycimTOiuFaTDDE=e6X{| zbpqd>=vtF<2_{QB9GJV-=SCtrPunlODZUwXE+B#F#~%KTjHs>QXHGk`4fDie6pZ@K zPv@EK9&20+@K(u7U6)%*kBSdee3^5F{9!(nNpiiJQ%ymm#@Bq52!kJH&FKw|$=fcj zQ|mobnwvmKXRqq{)=M&C&aLg$`&*T%-@13twR4}5EsMP|u1h)7-DxH%-qVWpxpjvR z4`0?FyjRX($DBdN1`Bck1*CFx{#;!DfM>~@XW!(Ei)s9jnOIWKBUR zRWZ#Y=kya+CMRHNX{l%KtOX1ba%G1aLU0 z4ycyHnz0~($e=B~oP|tXPgkiWf^_F?!VhL*@toOZW^ zgHCOhmf9^3o(1|107+5V7vZ&LL(Vx^BExCoTf2llL39>7)%bUL%AlOn81uL{aX}p~ zHk`4Cax5=HdV)n_kDTtvEy0$-a2WM_)2qg0)u)k1b=r^(V}BgSM>KtoI+_l(e9(n) z&fxox>BuXvxRV5KoE|2WwjzO@;GYM8c;VXM3++fKH>g1>PdG<%Mf%_R84V>S=s|Q& z`%0C3dd_zQm^kQJ*DmFTew9w9XWD6{7K{T|*Nj*~Elp&y7o8sKI-;)x5EgU4J_^wVYR}fwD zY|O$?U-1nNT?_gyE-OjRN{g1n>Cx+HBbS^O-wtR^%8%=s%m$%Vw|8nl8%Cck1Go#8 z8VrJPq{yWm4Phb{?Vht0GGXPoU)MddKuPfQ87KRGJeS$E4$=_s%TctHvzrVI6oM?a zUM*IX9Sgh4{1yM!Dp<|?6JsL*{^LQEB!{bKti*+ho=5(k7aAbj=8JU|D+C*^-6Zu~ zG9A|FTmUYfA?g+m4D2CJ|xG@j+hQ88xL-+1NLZw1p zhE`-n@?wQ*KU6D~Gb?OZAwWU%L>o`;ypoo*=}#_9=V%HGp8VonR0EIv>$TJL6gFR! z=ac%i(Thwsfp-J#4#V49exts$gN-{OmNpTB-+AoM#umJt8yg1*y;6TQo*9EKb*ujl zBAD>Z|8#H7&^(@07KA?wk7&&y+ilwf8iU_xS53~Q>-rw_O|Q(>yRS%) z@LycWwJP1y6^heXlEmbBg~`PR!Zo$-qd6S#*y=OQdUxgKVBo7g%#-2H35FfsGWxRm zLM^7d%1M5nT$-C9c0NE%vLGVOFJc~$;1iTo$G?g*({Z~~Wm^I8&OxgiRxbBm1 zwU;`ecgnl&$Bf`W4quxm+?wZi9uz9F%k0u>TX%}L<2`D)dGkYs*r;J4|A7;Ougi5Y zG@5rLx{yr|M zGI2z(CrHJilzp%)ENJwaN1Pa!%QbA;bMN10Lh7M8ETAUExcOHJn&X+WZ-0umix$^~ z?I>FQIH?lBzoypKG9v-85iQ}KX33Fx<_Ou1O}d<>+V^|vqQscMNVA6JVxvU z8>k>bm`tg1%$?S4ShL(&+s9eo-!G&@FHC9yS11Mxxt~&mw8?2*2*r6vV4W?>J#93) zQ-CpBJxV?Bn*Jrv5_m1 z$-Fc(Y(!6R6cTt`y;yXK{>M0lc6HY9#BFvys(JtL3SJ~^?WTk;xO7vX=?=`&M_NXC`Tw4+XpxezOcny-v{yuKqQw>klJjG=r z;+o5vV2RNm6&tA51d=7ufp`V|Cq$c$U2zkz`CxaifKoV!u8;{43e<@qv~E3KdX;f6 z)tCwg#3L0jG__+$;Ht4DPYwK0X_J8FYM0)lg-yHE>oY13T!Y9+y4E&kqHyeQP}CG@gUk)f_HX!UXvNLDA4-vl@5 zOQY0;m|8dF1^Q8K9)vzqXm&Mx#9-q)(;`rsgu~?lbDTt$S86LKsBDwl+uLHlBo*)( z>@u3I?#{RUKCagqy=qu!^|H;iDQ&p5NqK)>hbQpu1hMOgV84@V69l}D!}a+u^>Sz0 zmKTgXSoUIysbj>t9{W@}n781x+TjV(r_P zx{KV_GxYH>V>f+s(aP-xu{dNq)@Ih{Nv&2Cln8llP=L>h3Pzsavgs&z=RN zMq*2QT++|srLc*C4rrULj-xsV59I46!X-|42$CInIIOZ!^Kw$&rYOlh@b%cds%Lvv zs1W{|PUH>oGa(vcTxLq+H??sI+%J`z>6W2xm2Z_;A2dF&wNKqi!t3IQ4y9rf$_JW< zAunrppedSsJBZ!nO@0?W9_Gk*0RVmp{vj6Zxy=Z3rAN7QhasH_+-<%3h@3&Le_9-t zy$Aa-ck?$Mc0@^33@oRRkOJB6z=DDT$R=W6rZpFQcCGmD>&syG!f1te#kV#y;I9qAwT?V3T18&i-9FXX3J zGWJ@OvCKQG0Y%IE_IIokd764}Udz6y>*w$AaVy=6Ut#vqOdUHM5ts_shsr%K%&+tCU{!%$ z!cDyXT(FeM79(plvaBg?crNLkZMqs0^R`8D!yOJ@mwG%vMya9!6s@SdBy}X~tP7U$ zCCMzHstQe9qTE};cS7AP4a2YAI@s)wq*Hpq7mf#CBGpwG2p3Rse{;TXTj|9ztBhK} z<4u?+UE;&+*{!gM)e#NN(f+pzkXCh{kD)d9n9~`ROJB(I<=J|(b~9Fxg}{hU!lNUZ zo*=xpM*%F7OKi_@Rk%B@`%e5o$A^djRo}~y2>(f`qC9+Aa23^%=Gy$j_y$j*h~Z@` zy7>{7v3nu?;2u8QXbu8@K>6?Hz^Wa#CtQ&m;xi#5$*DypMa=W<@W@}Mqz_n=q~~$^ z-x2W>Iu?JsUQzLYGPd$;-TKuS4*u+GkM1J>8Lo9X|vd+r(VANu)*uHq& zXR@{o83l+AJ{pqB!FU4>eHP6o{8R?c3B>x)>-W)?OMRA%x3a&$B0v|A={`Ocz1?#l zkoJNbbdbirX-O(?dFNelEGQG$<`Qylt-_>h!L%Y~s_5plQ2wf+?ZS+M-C)2pxJxV9 z$y~tXOK`nR_2jB;p~DPs*8*&X(lC3FCGu8iIy%p-vB>RV{|51KKcu6gqTCbKAyVPy zi`+gnKrda3&bP}8pZxkarU?2*Q!+|q&+UuNSht9(*_dtyIEcl*m6^dyT;^}vsQ-&v z^0H!^{FBBu*4pSBUNTE$-w^uuAs47?q=Am96b=?M@HUSOa>n=NTvM)Qgfn!KtJ z@I=1WXE`cxDcuJ{E?3au|v^UNZiZCsnIo&*a zt_Jco+f>h5oOMOw1&Q2&C+!+->%rAE3d6H5Gl%1Rq@8+}^1sKw+fMX{gkGImHs=0u z=eKq+TikICtN2N%@yz9HZS~u#yU!}I6pr7QGNSRPKfP@+hfN^Zqk;zPgS} zIV*lo{te9jxf1W?-@i~rEp2eod=}#=1*vGq!5shTQt&^0l^tw%07Ks{0aE&||dj+MnB1xHyI#7YFZ$rwfKNlztK<*0a1sqi|vI zPhmDU%r`{~U}R}V#cjXVj2NMpFsV)^>ig@d6{ifIaHnrakPbL!il0*M^u^LOjj4msi> zjI-Vsf{Ieg$p`fc_jQ{)Tm3|TIhPtf{<>EwvFl15#Az$U>hux=I}FC9;nE}Czq@<} z9duw6ePnD0P1w8$66GGY9X}z|G-(te%@?E(ivO`j4YrOs$SPDf_1}R};(6MfRR+C^ zmUKGiX|`)ga4Uz*%{r-kd7ol5@#mGC^Y>DT5^s0Q2sljp$`A;eAeyLQWXPhGOnRVY zhOcNafi7+zp*|qP*39A{B6Cjrg${PvpAMOl-S4`eo!09G>eyw@V@pjwj+hyuL?vt? zyWzJskY<4Q4(tz6gB_?X6gS1>+h-!5PINovbfGlr!4z>v9k>d-&ExGF_v|`v+_ScO zBYywTr*tdo{P=~Yqm;hV6n3N0n9L)JGm+cvDOgrT2WOY9qB0QxxpSmu@A!1#z*?U5 zV!uz0R(5^ftNkQR6;R&|KyJiZpMe=JZWK5=&4Wy9h6R;WIL6iwjp}EaBBPRy>u;W( zG6wOnQLdNqk4<&-MBfj3g%z01*7EpGW+7mH^S~_4NkoXW`PGE zEY_Rul(*gR+2Lq?ChX*VDTb2#gj(XF7TQL#$pGGZ&@LgI}a>eh} zx1sLWaC_qEkOIEzg=4A%C&6kp)M!O4s7Jef)TkFAd+i3ZT_D*!pRdKZmLcI_kMrkM z)&ZVplTEExM3!Gk7R4`cTx$&2BhTbVhae~YTBf2efh#$zV@5_hF@ywz@rexL$+;G5U<_a*C-ub;`iZXbn+ z6q0f0!WrL|qEz*E$Fp^t)B+aeMB#mu-1|&cqjU+b!F+MHEu+#Bg@(fz{ICsQd5XVh zXesSZOC(p3)=^4~o)OGSYG*wCt?sscd@q7IEN~?`j!KnYaF`d?Ay;&2dMB`|BaBYx zpE63`d=~VKd3rkj2~+9`8B$~}bnVP)mz7o#MQC^f^p9H=E(037_`VlVi{&;tx^hQb zKjsjB1|M=9O~ni2Dh?O_^1Mapeqq!);Buv%}myDS}in*Tg` zs*$)0xihrqTO3}wIjtY<6U^>AF~7If!~wGce_jc5_;PLGe9dves-#=7?w${;)L10{ zDr)HpGneMe!SSNGCyxJYE-cK$ia9jzg=O;GT=cf;WU_k$fAr>A;2gt>EhWhDBZR%n_);vrs>1WszJeq|W%r4_`Um9uBqJ3;RS2@tiQUaw!E_Zb zDdl5R)Q!X0%ewU6d;jBldssmHE9KNm15_5Jv6uaGCWwV$$~~4bUiNi{C1e`5-7a!d zFC5HDh4RJsNl6T-7B0k|aUPq51+9KAI{XCfs}y*R^YOck-?r(^hp-&V);vI)7%O7Z ztR1JVJvtF>L-oM;^>$P9a8*}jw*8o=SNuHl2jQ4Ka}-kO0%dWC6w*4xG_!^Vg_QB?72>8@+W zW{!jUo@CFwK4hAv!24k`^34^c3xT-zqwZA%V7_Tmaxg5de z!1oI%)dy)50|z~yhVooeqq-jzNYbfj>3eu z>Vc}pJI{Hrkep6|R0~M;X5tLnaK?~O=5p~!Wmu@;LeyOusV>9S2OE2=AB6%MOYiG6 z#lB%Ww*WzSArfz(Y)P)v<%v^7@3eHTqPpo?@wG4;nVra`6GV$Nmyo69&5iJAtzRQ= zi@aT)PBWUX?|0me7_TFwelClu%=Z)e0%Dd_#VfGBiMbvo*Ar^o;B_ac*jL)RLHMLz zD3G`~AZK4VQC#7brOWZ%K{Ap|NeZt?`^5S4Pq6a#)3U36I4DtgTtIY*wj}jyg)VLG z*+M$bsedAgd(R=Tvqym|SNeiicL}A~-x1n&4!yX2Z@uth z*J-3rJtFfLUJv9KI?njhz`8Yc9I;^A24CQLf5DVFP!Zh@BizkLq$>1?BunuIFMa9hI#oWLZ|1akm$LzyAihnPg&03jl!C@BFQidBjwt+*L|POVsrO@@n}c#w44 z)mjnc1L3$?u|t2}-odWLbJxOPsHKnJ(t!mgKwxR=fc{A)yCt5sXwF7KJ{K3@>_34T1W?Zn7Ref68P@ zWL0M^^XU1p1fo;M=_@ZJUaAIit_1!5<-COT+kP@qEQg>j6(3iZW|kV%PckM{sM(S_ zpr`n(8jssD_qEY4FId;(uqp$>+^KU{jj%tn?=zD%BL*C{Wwh)aD#sZC>n{&Wcl`Ht z3FaFZmD=E0gy-+?XEv~L#W}CHM`}Cz-H!CD^+xHf=*`YL(R312Fu{cp!#Pl`c~lnt z{Wj9ao&&x9`lu!(B<>f-hJXZXu7;O+OB~YY8^!okW&xAGiH|0C278Z4gC9-$%cnH~ zIxPv^kV169iNyu2e@83uCXtkQHFlCE{aQOrW?b@N`BAWaOAb<5KvlLTptCxqs=Ym5 z$q=a0+#dSsB1Pz^##mKjfz%CNLBSs+$4n&!lnj%5K@7qMqWXFeayW!g8f`738ck3~ z#2cV`A1k+r#R|Ym-1t-+51{zhaTX{mJ)3k4+1p~S zFyng@^_Ii3U|+izbasULk=5~kWahBkuHwsC(61PuO8Z_wdYS*`@>5_-6q1#?QKxlH zZ2w8N33pxAI(3HeN$%J7%l-O4bkwN6ymZ@)?J78(hUk5MvV>jVsGgJ?Q+!>T<}8Xm zsSXc^iRLYLvgV{BLeI_{1_xx6_dTnnlSN3yIIuzHQaydUlU}WXDZDN$y^aa&@WG5B zPOn=rkQD1`OdodN?6W1Hc#N@s(p8c!B}XNCvhz*sj1$bnfC$ZTs95Y74J%FR6rjXF zd8bHAH$}%q0dGn^M_i8an}|OcOwV{ z!$)`K*OK(S)Z^3E&+a&lh@9kC&Y0~BktqU49F{VHg zqN@d^lL4j|gpm;dOqHO1`a#8x){Rk6O}jti{{ibvZLiPABnnKN@saJ|E9E-H_rXt{ zp471TRSZWt3_OFbIGilR&NZZ0y=G{%pI6drvlklBc8*(`RI zXg)3gnZuXtUh@{iLktfo&}#q{)(kep05RPO*zLK$*Z5vz$)e*L6N=A{;Pj!raht>VRQN z^~dfn3l-?!Jw?uhWo)nAMonoRXp!%BH+oLJ+VO5OR2|sYAv~s9SU8p;t9$=a;>$_y zr7ekZn){0DkM@o|zU<;WrB6M|79TY|9e6bJ8Y)1N-+oIq5OVZlwq-Um{(290MX#9e zp4xd@19#UA`DQk_loNK8G1K0Tow!W6w zKj{o?Zvv`pd4IXtbte|O&IytCi>@|okPHWj?yW)vo7_;DAcjR6LS5yiTV-{ksPD3dh z0zp_{wkvW`220>mUl;tUI#<4h~dX%E5=RNdq0EBj^x_% zD%^-wDEfANE~~mmAYWryspNcW(cz$YCL_)ie9T;Skx#zUaraa@HZ17#%%;PIlLC^I zce|cbK6jn%h9i6@COgLd-jpY)F}vKq)7$ru$i!UcInv5(W3RYdW4lIaI&c$gRa>9; zD`SXAjV;>-n#83TQPHoS4LrlrhaQOdg{A!MAhoCOw$zRZrC^yGLmFv<$O{pPv+sNT z`U3@RRYxltfs+0FSBpZ=FDW0^WGvD1`JVh8YHf^ad|Wq5`^_avuCLP0(Zd%4!}b0s zOkTIQXUVwUSL~9PG$^RZ_xuZCkP>fX5iL55Jk;QvUxj2#)=Sxrt*;tY!_L2}C^}ca zc;MLdq!`sC2D7-)&_XNSD^d%s3`UDwXlv|>RjjN2jKVj4J4wAvSz;E7l5U*|s@_MVkBve({&NV>%>Rwq3z7ZB`vx`rtr^(ewrnvd@ z78x@hk5;PuEDb(|=Ob#Jg>3}-}3h+;KlfN+KqnPeo-3A4C zEHS^~yH_jB66v;Pff~P+MET^-%q(DoJ4|C4^;gL7W*N1u(O+wib1rzAap;P#*Y(0j zDU>gdYs{5Fk>He{rtFYfsbv>3sBgKJxdVaQ3;j^a;^P(P;nZoRpEWgIZm z1PFoqI$?hKS9>T$fa*VwM_;Na@LYVuZ&xDJs(dbT?r&W!p*-D&BXdiEMQY?9j#7!= z2NQsSj)s3d$zG>ARh}zUJ%UUAqK!_{<%OFPH!hhxK0md-!0y6d<&*Z>J#RhsJRvV; zPu+DdHG7yrU5kRZ1NG)U!BGW}-m_TxRq#&IN%q|9=2`ZkBGKU+S9oU@kD2w6uREwd z(*$e1ch}xnKGEmm9yrI)rsI(2v%Wz!m4B8%!4&{ftF%GYgpgUUGRKr=f_Hcj7-izsL2h@&4URIiJ19$ zkS?w{X{=*01-jn02%Hl}Ta#Vfh9b4jxF9RX9iw+)}_xCq+wT1n`5XXx_LBr|v2 z8XcVqjt>r$9yDr;_wXo(=1bPE`|4JzoIyiQXC_XuI}7vUf{!k`UE|1ZThB<|fVy?g z@q39j#(58l=j5CcZGQ zz1todB6=sxt<2E?AfeOPca`30B07$R>IjlQve-dlUix6K5-T;vii;uLe5$I#6u6l` zJSR`hrB7yezEdo+=>EFvT~w+P{TDu3rV^Y}OD{G0GVb7`T{^R~A4!>^>+qwczI*kc`7y*6ETX`B#`>3hu{W?R$KB{5Gf zp0vK74VNg|-FN~zqZuo0^hD^>d76`V z1)r`KtYuFswNglKbLIlugqF%lWAEEZxaAB<5Ge^(NRqm-!D9Sm=zT@U8>v#MxSvE; zpclf)d++?O)7ro=%^sG5i=*f#zuk;(z9jtWjrP{oJrU{PpK=qjU0fcHQ~%^N;Ex0t?0^9)EXafHq;Yqxy^Hx; zS(nPZ7+(k@Fz@m6mk%`IDZbDCkUn4@w#|TZ9jt@H(oj+?=l}J5JZ$;v00sy^SNd^{9!ajTnu zK{^O+Y-1=#9gVC|maLoR;!oCSwzo=C7g(L-dg+zh5%R5Kux2peb=+m5(EG^`*HY>q zi*JRWukiJ*Y3rH;tgtC+iZC(=np*gup$E9**6|za>A*TChun@+TbJsrG`SgUmQ9Vu zsURc6r-|4d7IN|fGRf%#g_BWLWvRIjZM_|rmBu^d=KMDa_TY~}EKBZ55hu^}lyrrZ z0j3#)D;8bbJhQ1h8r=8b?{TpWu9nxLN7mly;$A*8Bxsn7GI$zVs<46pTNsa3n)NRI z0CZbIxNEvLV<^7*hoBJu2dih5zdalPEg!;M43TE^`@$`e>Fue;rA>W<$!ru|hq=5} z7Gs;}8Ly)$?MDnok=Jm)iUBa3uP6(c{_QX<4`Bo*DcW%U-Fhq-P&B3%THnEOB1j5; zRP#hODW$#`xZgb({%z~D4iSr4(4Vu_Y5$%4qdDAYzXD^#22<0GX{%5B)qU?cPD-Gs z_*U8N5LuaGr>a4ZE58Pw|4^@DE^`Yz-^aGCANVzFRTu$q)yJs zIqJ;Fdn@Iy&Y>_W!ls($;y<{r=_+4f0MO0$lz1u9J-umS)OPTROCcBE&!7p3+$jdS z?E9;(K@g<5Cc?dvuU7z_%G|vX%T4tRr)h=7EY4{J-dq156K@Ec=HIUM>NwDja z&Z^0wHLantCzt?QZRtCNwuQL*Li^;Xm?y|U@s#ft8_u!FlUJrTt>h~pyLMP>+iA;UxGB@sAe?t;lO4zWo4TN0 zaz8xWF(eFBO2IHU?-n9XB&#CTxZi# zJsp|&j5!lkHv7S(c~qpQbnwgkZR0kJcP4AYLqmR%jIS^@z{-ISY5SymH!j0p;0QE1 z?vnw#BsCHd%(dBX1QsPpr5xaJ(Epf>eIo!LiU}FEU7|kXUx`E$S&6CI7X;bCqtBs| zVP1IJ^|B?DkRp4`mhj_L>lotn#G_LytMfXw>cx2hPv#pVBJ#+QpWiV z5@blTr6ktvX<~+8`j#oh;=?j$&Dh?WGx-^G^rVw-Gs@J7>rhf1V>F5gs4++W$5h($ zqqviTkoGDZ7=);8plJ$1?5a{mkk8LPLPClh(Pb&ij3#4qa=aEN_~{< zQXAZzvx*NP!J(dfF#6yU5R&B;{bx4dB>N=08G(0%(@|OYGo?zjX7n}<5b}+E2U7S~ zaP|lBuXq=^Bf8I5+?co)x;s0Ru)o?uRl8Q6)k)Z>yBpS);aQtNA4!`4EnP;pemrGe zmHvJ&Em~-p)9(_Np8s7pK#bj+F|y~^WV6p^i(B)vQ;-{#l>3mX>iux!jh5ajp~*%~ z11}?@xbln-PRaK_Ca+pu_hxUzD5iWxDuMmD+DG8T-GUm`Uc<(hFn;swudcJo^j6AP z&UiHEYt8$#Q!P;zOBDRo_|lPod- z#hE#1_|+>Vz}44-hn25e7-*v>IY{DLEH6@sz)z@#YBY6lh8Kn^dQv#2;UfsB>c;eu z4DmmvB!>IpY3{=kB5mY|v!AxvOew&fn#b})?4b9djz8j^W!(c60M7ql(KhlDx!N~2 zZb#;v5nijyMK?!4t_J~x`%;>TbX1B|*4Sb(Ll5#hBP8qcn~x(lmduI4V(N2-;OuyG zeI}!kSg{ZN68tJ-96nR-aG=Y5$L57_i(~JGlGLF>KzM0%Ra$np*YFclO?>Otk2u^B z=_F)9vr+yyg$r{FSdaqcMLxkhzhG%IPE|68+`oQYpPKY}GTTd6;d4;6j61HIo-H-L zKE)Ucv#aIX!?PJizAp%W!P2MYM#Tf!47n>mclbnUwfR#tn$0$9Y=H})VO1a|I^_Kf zNhxMz12tAF?E!W*w+eNuEN=9|Cm9I>#-ZA+-}3RpPYNiI>#Cx$i=i~=BT9^jn68QQ zz@$uI#VDqFR1kC`evq;AH`JGr7bs0gu)jQ+*O$k4Q>LiOK~)GL2)3Wi9HJ`TTN+fj zlJO4&O6m5hU*YDC$TXI#njtb zi*;PEejL4h+lt#j&DW?a>0v2W(c#(I5hIY?NVpYCR%cxIb3*3bJ}+cOdO3KJ);$F& zBQ-7zuUV?ur|;QNe$v%gpaR6E&Og*At+C!BREB#kM2$6Kyfa%=#oBM2=8&yp>q#r8 zx=s&IXxcfq;&AsI=G{7zwvCf1N{s_>C4fPVxQ)nS?IBmG#c z3jmGgLn<_@%G$e{n=?I@@Y#YsYpK;hu)&7Y9xuxEg=Y3@jbY{LiEwL%o)mo^pX}Vy zl9p&mxi8-yKg{sU=0sjvr||ljQ|An(qlZ7a?_F=&1IB~#@l?S+(?N)w(+=@voXh)k zS$|qh`krI*Ve$1XZ+C?+a^bNh7BQEI+wBZYPTY|X6{Rrm3uy^Xkz6$TE#e{IE1>?b zvPR_VM)^7c``Oj@Mx+9r-69qcxo+}g`4)FCL6mfEKu4v9;xaYQ+muOKIy;xP3QV+# z&VDcb?W>*mxL?jb%KkyV$i%}Z{05m3?@Yww<7pbZ&9+5)wA&(C<&L_aiY72Gu8?`M zJ`hMFV=LM%Rov_va2aS)!}Qjmj^)<}s9(wd#i4A*bD4VsD@d)aN1?L0$5b9+|jy{DV3eO@ZgKR+kQYN5dh zEg~asFQJ9ktt>5bl>CUYC!uUaym~}vRWf54d-|aYEYv_b+;0EvW!WLGc>4~fVAU`_ z?*;wtlckW1bgrXKEUF!@G;kARHyp0m>@PHRF-1GwR{0N}Pr~tMw@~XW_+ECx0QGLWG5$}}Oa8<=h{kOg4 z^kTM9)=?C++G&g~ur92j|I(DRTPn$a$uAMnZ8D;DK-#tw#(wP5s@y`hbYyqx3;8tr zzPb4N{L;5NhE2vOX{cqc^a@^9r;x{2Z&0(n9`Jky(WGuwz4^{OuduKCMO1wqEbjcb zYhqCjl_<04EiMvUIsc>RJj0TF+c0j^rlw|UuF92~nz?t&om$S^m3tt$C(<%==T32C z?t$h&#YJUKL{k(K1ajd-+=vMOm-jm#IN&+%=f2MC{GBJIH9scW z35kqhIZ^Eew+ujvPSoGdx+enwQ1MJJ0vIw~86cAboyQ3}LN0zGt~Ff`T*?+`fK%6-U-J zE{T3#vW%$@&Q;s5zDxSx($+bp5<)C4{=xwM__JzvUM{i1iuCchuEzlj){W`_@i^sf z^cqjs&GjTKq}z~0wZY_@bs)88xu)M)l$i6lnzV834!8y3&@8)};e4lc;+S&G9Rsx* zlZ$yz4#Qcj2e)ojGz9*044rHdtOc3fgsW2XJ<#NPj^B|09f8Jia0*1F(0!>yEKKmD{lTQPmUago)A z^zfx9AqW{d73)p5I?xseJ97rwxsNc)-n#c$(CushX;# zl4>-0mYxcOmPBO!?r`td;of?*8`Bf)sWN6OcD()Et$H^a7v6|BFY`e{Kq{Lcg=)m# zuL+^I!)uagegXqnafF@BAOtBjMomLEs)^Z9142u2UG zZzgFyFN!KEhFXLMmJz-<%ZZ~4T2UjF%lxY?pM(1%lkkZ2acP!jG3^{bRDCf!MWK#2 zQcxmQUM(;q@OW(5_`nhFuE=O6J30o{HWjv$`y84xnA{B<8PlybVa#Po^KK(4Hn(oe z!aFX@s&`>2XhktFUXJ*BHNUFbl<>EkBl`ChL~dmD6C_8;Qlu%*fQOIWTljW61&!+@j$N@P!>_9&^sBGguAzO1c^Dapj`M z(s}JGh7C|NfC}nEZswy~us%{1${zwxy%+uYo&|WKxXkP_Y-uCYOrm4uDDpYFz&(|- zels}#{e$M2nurihYg$bsJ zSx!Q1GsNKivuF7KxmB>$Dw>rNl*DFxy=2}YMJ^PUHi%52R`T)q9!O-}SmnK0-)Zut zd!;S@H*Lk(yx7I~S7bY!9fo_&Q8RaFzr$I6b--OFn5OwmAO zZHe+adSk*bSNK%>VzzfO%aX?=H;smLKnAiI@01-gg{Nv}e+qpIjccDp4xT>ZaVeZ1 z6n=-TPXhv94S-tj@?Qyh@E_aybUtz9n$NTOh#BKqD5l%h3&mkC+wkb4E8)0hPm3rR z@xzySt)+0|6`CZwG;rxzBaMwss8N?WwXFJ591>2=GPas^b$0qGLK8%~c34!JOEX2| zx2Ho z{6)WCya;xVE1$H>l<7|qRFu6&$)4#5c{$kc7cku4*K%0e;^z%zC9oVm6#nZjeR*1{ ziua)wS1?FO51yCX(sbqyv3KkVwc%P;sTkPnHqN;Pq(CxN*7Gzi-zl|CxD*(J6Igor zhR6UrR04$O+UV?`pfmMy_Y(itiaYjs_s( z*^8fypiQlhHp?YFAQ&C@e$X1 zVCN^1loOdf|8ULj^Qi?Xsr+4)N%yu4LnGT|lyj%!(s3}3clOx9^h4^@<|`P?zH}te z@P-s=anb9w1`CBoi*>{;8V`A_^t@us?hZhsMUXjMYn-!?W9=54<>alq$vetV)$p#$ zWc=(~O5!`ukoFmtMm^AGjeS1|Ne>VVAS2sErxV}&^tlx4RlFplKm}JqMK*MdNC&R< zy&mC_*`#ztXX=!bp+w(&c^6oL+J=Gt!peOc~`Ql>k%L-O>r5k7WyZ_iS9c*(}woL_xV1-};%Lk|^mVQpOuM^-9 zE~!rwcm>Y3j|yOtgOA-o-&(#q{S51IkEXUxd5Q&$lh^YVipkt}KF5p)>@YVqIUFjx zIJFo>3WcwLtR6NQ_4(HY8}x3?U`wY`X?nT+jkXkws~&I*U6!$_(gf%pFw`Bf0fDhM32;O(;^NhzwKtAk}tI{2y>dydglPpxQ4|3>biAS^&UEildB$$SvE0>Kdo8Jy8hdMh=6|hoTLju-0Ge*m82p zufDo9U#QO~!o_fVE^+_Bw^Pk;ZES&!-{9EvrOJlGNf9ALGX_v7q1aN;MNK6*{QkO~Ep%-_xZAJ3th;Zx&T#bi z7S>Fxr7djdjz?Qg+By05O^trd==oYFXWV%Q?>fK+^yQOCV*%u#`B_KpOd_u&tP1y6 zOTT2kh5k^=G8$zy%ntQT zmcLaf!36k|Hx87^!i)BHKUTB=%lq}Fbjx1rsV=1wpAKuqdb3_-$0F_OAt~Ld<^|D& zEyFpKg#kL|4Ew>m8^lOmcR4{J;ZGcfUs3MDe9!*CD4at&Wq~c%_<>LEUNY#@etn;{ zAM@?d@ZhhUHq&+QcSY9NuF%QhEBeaRw(C-fFzF1nj&_7~3YGiXy&o?wEqq-yW4*?; z3VkFe^MSG^&%{5T49l^~S~&4AEow!Xa^9XW^Wf{+gR-`c0)lB{vIkt@{d=lmB`kpb zyL99?Ctp2}G|SK8+fNYM-`{6E5W&ly!%#s}3_s>eSw^8QC^Xi2d~|id?7G)Gxt@{6 zmZwP>T&d54x;ekrNkvGEtMJ$Dt@e!9tyiaaM)(WAxm1V<4My+QLw<)@u%e1|i`C*{ z^zPwSTe)$L%3mO1%(_xG4oz@(-y@GX@D<#ui)eekpMDNz2__(y^JFxGXY^?ZTObZPzvZ<*w5iayh>Y}R%zP4)}_%#lo8)68xOtXF!)dc!9x?i-CRFq>(MF>j1zcmf7;bq8_(2i> zSQEtHf?Uofj3(sx4+>aWdXMK{bGZD6<{ z>}LIqPx!{{uCKUr22#R&x7vD5XN)J;fkUplFK_Su8~`D9Y{DxcEL8o+LB7;)Qyp`< zZTvIU1G!L{nqoZHuENM{5UW3;zFa@vak8Z>LOYwKQAzmNw;h)ZaVEQ+z6AbJjcqK# z>VT93ne_uhT3LH51)=!-&dA_k;s4m;<$!YHjef$KrYYNQa*c`u0*giaxlJU zHqHd+pSc@8CCA{om9e?dYulqY?SIV551iY0=@+A!aPC=WktWB~)5CyWgQ+e#A0e>v z^^j%|zQ-+x|CL2!%@!)MDnj?s->RXg(<47|&ts?|zA^-%QKc@3Poj>enMg{2tlF z%*{64bT($`?ncms1+mkw>a)tF`|nNfj4MoK-tKqV#H=^yizIb=jS&Mf_^dlKgIJmr zQm?CQDl1XrE72#A)CE@BKTd0}!S><5xr{BX;^seP<1TCqEWaft?z10)%KEmNA9ung zU>8B28#(kx?aw{Tm&N~0gCe74w#&Qs*H_%kwWl!$7TqjLcV8QOg^FvZP4&34?zq~f z2kj!~7lO9IEjHbTH%QI@+KMntrx@sP>qfC}r}*{^_7-zBrs{yXzB?N{>SxkYibBeN znE2pDF}7b1JIakur0o6nLI=ppiF{R5ry%KtVrtWc@R3R!2a;t056*~)T$qmCp+Zb!P zrsJ+p5oW6VUhqqCi`LAmr!>U(u3FZbUX+l7tXHn6I6xiy3osqtIm|FSIo)y)NDuq1 zu-sxEP!e_&Z4(W5rzOY8f+)ol(Q+@^yYtK;AF2FKtPX-4Qmt^aE0s)Myu-8=Xg#ts zb2y&P9xRuMX>cTtc>(k8gf;#Y8wzD{z`h5>ca44y;NG#TYtU-vzCh0WgN=y*+3RoL z7;hMMM_%qPzB-L`JB<==!htGu+L0Wypa>|K*aC`XPxC_fjHZ53tJ(${JvT9$C(}`V}tT$^PKfZX$!K*kj^fmB$ zWSenIO)*5EpA+GX_X(AYcG~WaPhQ?8SL9E4H$r zS*LcsiFr;NdY7u)vF>Trw#DknaaQ`djm4XZlvEQ8cG@z28ay~NlX^FZQ+wNNO72BV zT3?6zHDsj3@mJA%uUISXo7M|JsW^X$}Ld{Pd($AJnR;vu4R5= z48_W%ng+1k69Z;|AU~Wa_fYkk*)3G$b^D|cqn~0+{4CR>9IT+m;NB8!iDeeWKbjfH z+tIg=mF}N5KFT{{k3-De=pMgA+2@~!ZQ+~7B$sBz)io?j<$6Uvwo0~}M*9tgd~vtM z$h)<+(#43)JS)Q_9N9yl=gf6`S}{B>_~)y$XSI$vWJ)dh#9TiTr;im~#-44f zTq0GEYetAci`(dsM=C3fkxOGqz#=RTxI-zGMoN(@CGxx z0x18#nVZ!(A(-F7f z$;K2oyv_%uQ#y@4{(uf~D|cWuQ-S@TyI^tOjmTHw?qjHTpq{R<2HC^a?RCq>@lXgr z)c6lsZempb@76J8KwNQXG|Hz|>~q>`uKJy2ie36@7*lYo zzaYOM*{mBy7*oYrBv8Sf2zu>Pml&IEwNI7rWXUex8}l*xZhj(vbLog1qDrs2&yNPD zNvCz1m^(A%8ICiNVk^-K39-?>FxXo8ugK5p4*a3pT~?NSLpzmAMn`57qX*tO~& zsH&;uTA&JQBxL}f9HcSd&SFAhr7@&5EA+9T1RjP!Nf1f`7av{Uq!3vR04}o#0p*6X z21gbj0sdl>_3G*KEsumE^g!-0&D`NaiM?y-AF|pIIdPy@Wz{{NSy9nYDN;@WG1ALw zt0?o(`=qh@Ic zxFQPZb^~5{m3N2T$;RBNty0SKV3VsLG|QttUsgjUVBKTIB6N<`LFBMjwX^C;+AgRy zBIl&!y}dKQZ>f|yYXg$~0p`%wnfILB)HVan|HpP^*726J{SVa#{&2bY;9ZW$8(~g% zh3g&EVz)gZ7BVYe#yXWN?lHR9qgTU*8FW>srJV|R@&^|+aZ z$`-UeG;$4gm|HdAavE7q`9>=Uu?^33P@9osIFAKx4SXa`FXY|G7%)qS%(h}!Mim=K zfFh4&#rj-Swx;8E=b-HUZB*(76O)5M-clb9)hc1OQ$2ns4_tX%BfJk?CU!(G{=7MK zHwJa#b8yj8+Uk=ni+JXh7-7@sTG`ThAeXj&5yeuxX?TDHD*MMK>;0?1lU6vfVhu0f z#3G~HfEgwz#=y5jgW)a1fL@d6b2caF9!sOEUyA2X2^Gh}rv7>#NwmoQ>Tx>*tpi)0KruvlpOaRa5vz;_t+JhFKG}~6_?+A*( z^&tWrdF@3e31d_>HxgGp+ljEZm<|o)gA5;m{xS)96N|ihoFfYNXjK+6c0R&buSMH= z!Idma|2FYG$K|&>&HJq8YuV%}rqW@q72T;wcpPm$4!GgtXxa6p|5N+F6Up3$6J6Nd z{vLjKSHYp|qs-?$Zx<4&u2WoHUk*S^ZI60+#=-v#np7ysN2-M{qs!L_0+_C6fk1h& z323P_`wfQxY_#JnQ z%DLpHZBM?OSRccyQ)>Y8a-4Goxu<%=IzXG9)lQ}on~fmJrRL<+uv63o@~Vs8yhU29 z!qjqPmvf*;xxgWIaRsx{Aqt?b#miz08PyS%Ua z+hWpPd_Ql(-Dhk2r`X)IqD5DocBnw9PT5=ntI78mRj4bN@x5{rKz`|pFLM)3t29}= z6EN5O0mYZ2+CULce|yBHIL*?%ot(?}yO)r+%#>3&bd4NONqu$0iDZ#Yf7@OMwA@~m z==+@Gv*re!1oFBK z;A@hZKK&J-v;72C(mzY&1INd&@NGF*qFigPXJgZna zFGynKo*A{sYzAxLVj)hde^fKFwGqb)0TRKkzDrPXkfnZPn*v>Tf9mgZ(`PStSr@bD$gWD}i&)#F0lZ=^fAJF=4Ww zX2E`GN(=uh2~Db*ccx6hp^E^~aJ@%KM-;RlW=Fw%q^s^)v#GH-U=m1Tols{8C*xTV+FoIakbrWWxF=H1HOVz5$ zcN)=nMD^(t?xz)pk?63>PHx!eJ;v^4IG#CWB9}_0>Zxrv4d+yjT<_djSm@jo^zJu4NFJFaT=UJl&4#j!P|ovmY(XUcKJ(2MsT76+3mx1i@!kmt{3o*pm{c}NSi z0k?Eznzwr8QQPQKU#^M9+HlFJnJs&nq!XEEm}Fg1q7u-o)_zy7$w#D3ERKt3vG(;h z*;;tjgdmW%3Ilhe%mBB5G$z?c^e#2hRK()We{6(u_^w>Z5n5!4XESC>2sa!5k~TT4 zqrZt9M8U%$zIqODfImb{4PWIcs+ViW67H2v=Y-Wa^_Bnh?uemzqRCZ7V_+f(kFC3P zOP)%v-5E!5i*>?pe7tI|yH)*+hr(E^N?U%?sY`xN;~YW&g!+6&6q*0A4VjxkRKdJ9 z{-sS~$CDH(dfNRNl@WQaux=~*S(*(oSWc7V^+B2l_u*y;Yfkpxo3u<96ZeCOnaEcd z*~P{J5Mj0As6e$rmK#y#IjUZ~mn`g~#1o?+n5O<#gfVyNA8H zhqaOS;=C7~SS53H@nDJvEponQwi6fgiP(u}-9a5Lds6%nZ(09#3pM03Z#g;{v8utk z6=JH=4f+k~Q_Y^*Ei)2Uh*X6h3#rZdRN$9n!ND9KUGu55m>$y&9B!#TbEC+OLZrg$ zgnjvp!%Jq7JFExnPJ;38WryMM^ZCrBm+|2Qy}{_BslIir_|ZE($Ti+3UJ$%5O3A_T z31rjL7B^f|y}oW;FEDC*B zO@6SLp7m|H5WXO8SAAKNfOU-5XGt8??lFrc``}e`LU0e}POKByVL4mMYdEaG%T2K8 z4D`@|w6nR!BxBdsl#wxbgV*O=|JZ18vNQ5WO%G#oT<>&EXoFQbFA{H@av6%A1Gkuu zuI`2`r1Va(7W1rYm|sM?TPlUCf^So1;k9nr_HzSnx?|zp+RIV^3)P8Zb@>23OL$8r z5^dVD1<(=dq0hoKGAFl=OUXk_kw6y|mUoJEQUM^% zvz$-C@vAOx11mt^q$NIjGLVsa3WR@`Ldox+=SHb8W~1jF!#WbSdkkc|6;lKI_3eJq z0N)K_4Hje5cJ*^%Ml%@Y(L_qwEb&{c-_Ie-7rPxi~?Si&5K{-W|>TPE~@%JrQSXUEut zxDY^HqJy)+=Jw4L@`Ofx9(71)cLAtzN+-BzsuPNmD6f-gSrT18PQ~5F0IocWI0`Rp z+pJv*J6L?}_Y6%=qc7|l#fAUsab?#zx19L%Pie6oT-5Ws_sgB+G^xC7TQ>JgyYHer zJHFI=nx=g>EB|uITXk?*YpiO4f3GjZl;Fv$!wMThw~!Uw4DUe2|J=87+Zt70EC^1= zylq+{eW&SE19&D9 z1|qVOFEUPlyaoZH-qmz=%I?1BN%5r>1EbbEr@w zzD5UWFi}AQI?>ZzLVcg5Pnp!gEjYJH>Fn{LD=~KE5v=X3tFq^F@&oM;GRy2sLwhQa zIrU?;d3I-Zq@(kLHs=06HtjE-XBeN>^rO#q|LgRlRiuWbl1BYy2l}I5#)o?7Tz*ZE z+A2NN#SlpQa-Qvl!+li`1S9?US26(qjFSUa^)-Tyz;?=s7`lAt@zMU>7TGH~YJArm zX0ZyHQrQy2u{%?(fj6Ylrz*|~*@aiG`hhF$jq98vqIQrz-Y_lU&lX)VH6-oDG|Mxd zhfx?@Z*H%{xORJ8=viX4pQLzPUhX9$?KB7tt*!sBI6gf0Eh)+F4-QH5XwLL^?08rC zh7SR?YspnO=9Un7POo*rHtf2-trkvg1cXy<^;6DDDIVuu{QEg#G0MiTTXWeintT?G zgtgISM2WT9+`=WNyN-%7PsG(+m>MsNGq_C|hq_ z>>jSM-$MKIj9&JuzS1?;lRtYHwr1)B?K+gw*IFoi{@SpFcOA?QU9^+63%JB2$!$r`PaRD0R2 zm*xI-tmH07A;wO3MTMRgonRFSwb2CoTS~nLj_42qG2sU*>cvHHTO_aA;TvJVL)sP} z=atfPsFRrf7xS^&$FDSE-fL?U&d4~bVRRb5OuziYjXsz#Hf(*M6K#o_gFx8xfz9C3 z4XyBM+BqtdvQupnV^-x;`|?cRdqdC17}M7^tAo7;f;9!Z@B4rzl}fvY5-d`Z#qF$Y zY!=n-X)!MTZo{@a0-RI9#mkFh5U1&Mo(pohEnA#^p%?{u3awao^u zq_caod~f@eT(suK5_A>D%PcNMpnDx6Gp=zBh^0P$^1A)!kQJ^?Wu3{sJ+)Lm_E!aT z(=I2(_?6YAcJ+-Q#iQx+b98+aPd=Ehg91=J7WjJ@rR7teW;dZ4=Q%d`dqI3S zlgAhP8HyD&9aueAO)AIZpubgRD@_^@)YEY^*1;8R(IwB80aQ8+SJQ(!dB{fN@~o2= zwl?pWV9=2~V5Hu0RGo{@fo4ykZgxbHME3+>kUsch@vhFNgIcS{X-i$VYuoZii~9fJ zlyFWh08#A_pl_aGS#l}Ha`smdbN45onxQou9k6Fw3&`x#Jf>OR4Mx*!Z4htvYDKR& zuIY+GMjPQDjK(kBjSoAI?L7>p+38n1IQm_8d<5dl4g6jj?~J^?d`!ov=6q+AT9}^C z$F4uQpK(j_nuioEDr~+KQsRUyf&jfPXBSb^s2PgDC5JG-3y!rLfT=U6MtHO*y{1an zg{US)!z3$8j!D6EKkOQ|F0EhQU`AJ9Cla!mcHm#l^Bj7?mwg?u-z2H5f((3bDf*G^ z-!dO_W7nt-(VUWIb($!Nl?Qc9w;2TdM(qG_%zXsbkApEI|{Le?VVhs(FQf2lRN&ZC?@UWtvdu_iV) zTj87#nM=p4$O=;k?Gc1#`rMGF>(KBTqHE#c9-O`-HZj8Va5#KgdJF#1FwC1tR&}4* zDV*O^J0{1cdum4G{}d6P)G)46XPE! zuU(}#)wEglr2ap)O}h2nU#SqhO@4X2n@j}?#(h5cqB2qJmM*rY*e8UgV9Yz&P?~Pi zh=*%@-d3A2wa-w0dtAzm0z~-S;aZSzLiHSkiagfpA$vL*_kcbz=r#}ltEak~xz9OL z<^Ts58d76@-w?D6_shDA!LzI;;QR~%?g}MysgB7FZ;{yu$4U9-k^VwhGRggs;@)So zbGi}zYt{UQgr2g`vy40eBE|X+C6MEH<`OQyRz0#}raNpI=4A9bk9j@Mw7T|h=|NUA zP7twV$5rx}Xg{qwxH-$frV5m?8j9Twb|zV(fkCQ;BE6zzTDCcH2oBNHVD$taqdIk+ z5m6-_THGxp-r-#{G4kK+YR<6>J;TFsY!rtaH!!P1t>}#;qkzWB`IJKL22>IrW}m{P zKo){KYM#yft@`_MTj`kBKzL2pr1K6@a=;?LIUBEL*hW#Y4wK5=zVof~c>mSRA#LrO z({|(PJ3w}&f|BI3U1iC~gqa#k$s>!F(!#7vx9!s0?*^76CCbLQW`$l-;s`i*`4JqP zMCt>eG=dvZ?#@3J!n0VB#xniZN7({F-9u2ycS!iV>t(rtX;HDfnW{XLqsi4Uy2k2b z&>u>P8?r5wLGz}Di((oZpp84?#7#_=0&DPssI+LQ)ynyyCi~S6!!$H9msyKL6MY)2NOYsovF;5am?dY^@07?u$RD9R?W|B^X&k>&o_^Fj4vk z1NT)Q(d2Y>UQl)lRok|uE3ZfM9K2o31P{~011-&7Wb)=~W&7x1_Xh+{T}{SN;P|Vx zQH{*(%o<;==aMAj904J*F4^|_h|{UlSQ$^OB4@^H**s=iB!MYLJD`UDLq%!GpO)JY^1eF-A~xnLfu=%Lgnt)z2yo{OjShZ zuj{j|IXx;{k2Q7nHv&G7BGnU;%_DzWy&q6NsJAnQZ%5rreH#6w zYeN2KM9-hESBy`cw4oH;uLF3Qb#8l*ngL#OEEEYZ@(mkJ+ZoXcln<)gQD0$!#|!gL;04~WsOCs;)E0Vf;$dOA1u+x&Fo(99F?DhuG5 z*`mvgrRD*z1Ek%ZAI8@rWggT)<*XdOcV|p6V$m=DW~hxm5C5qXwe8@-KOyhGH>9k< zJ;-uwxp(Z`q13xEj_;bNn=PEK@Ehwgu2~Dyq_d`i$EHwCYd+Os8wa!QSrPubc$C{l zxvc3owK$iEYGcPx4@5;_YH+_RS3rzn%@Ck;|R#eK^9bv}zRJpI-~9DPsXl?O>X^yQ zB_EqMh2y3dvw@RW{M6<}Dx<*PyUcvV5q@x(h(F>tE~p#a83#>y=HDa!Tp_t-J+u}6 z_T8GQ>3?i@q_o|`U*NlCWi8Q&HtoClz%NB%Nx`=^b{(~ZABf)E;9Q%unE6%N*~~bX zwV+{|TVv)3En)?oj@mgj_Ds#EIVTG5XvwPfQnNs7V;B`#NMWb~)Z;JHvX6nm>cxkK zT;skhB0#PncC&<2=UV%rxlX91oA|S|bn3G)5f>j>4scH@2E#hrg2R6Wtx<{H^n+?x zxhEL@A6wt`W-#c$`PpWNp$HNEZR+y@*7==JzI!P%A3afn(Q?LW3Rljb6x1gb)J+|{>>ce zTVphegZJ&hZ#*#uNn`CGIES)E9JNE~a4l8Hx7HTtH{oe{7e%58Z52 z)gccv)clO?{4a_H?2P$)O|&jitv$*QZe=m1%pJl&4HNie#jBRZc*6l2#q7D4ofE|I!r2uExMRHmmJm^WD96uqU37Y>(9%O+Uwy@% zPheLK9xRSz(NMlq%|+^X&zZJE#7zCIix6Dx*dD|#ZXA(>?fC0nm>x4TMbgLZG%TQ3 z?M-v+He@W5DZ_|*Y*FtPy3b*Q`re>xdgG?8q3ZXhEN-sBWu1tF1}pf~$w$KRi6JWs znJJ^m?kNNOH+CMK`ZJBhhJBTT@rxMqg~kBVIXQBTX#7D)T7W z?U`iEa#49f(WI`L$t80aXO1o%i}3VLtyK)u6|E)S(cb3GN<=)E`W)Qdx|=!m7A5|D zb)qB1UIG$++!lYBRRw>R(X)iU%eQV^{HFB9(#QNge|%}S~g7bzAhnfe;S7a8fz()GJ|uci(-gQN zonee<@oFIJ zp89JjK>KfLqy{cmaj+ZAIuTzsHu6`h z;vUB)E2nKBE%%O2VLeVR0B(!e;xva#${M|F?F`M(BN(L!?BKrla)f*B)lA!|MLj&{ zi7ur-nt!>YF!JM{@N#QpZ3+l*^&P?BBX4>as;lttVE@9X($lpl(DC%=k=09A!i9Ta3bUe~w*c{~V01_u)&I0m2P-slbAMTB)|v znxOTiQ)5s~u7ga|7l*7gJ!smwZ76On_D&BRo_h0^E;4KtexKg1^B-Fgwyzx$hqy&S1 zL*mdS!|9#c@!q8$O-Ae8)4?)r+tw})+HXWN_o^3jW)0~H0>upM9j-%o;&O~4i_L)8 z1p_vTChm6J+N?1EiQA1q7J>R?&TF$;s~^!Dx_6(d0v%I25lQP0xJh*RzNEp^^hadF z3&}{q*L9$^YZ-)_^fucJ34G`0$OVyqQ`UuInIpw4bs7fVyB?UniI!J7c8r)sWIrjF z+UC)89p2~u_wI^-V%jG4pvEf8$j&|UxRT*Q$t|knec1&|3skRZyX|7mX~W7k&`Z@l z__Z`UyS0l|M@>;?vIUoB;dd5DKiGncO^yV6GrglyGbQuWvDlXM%Dl$JMv=05#r^r7 z$Uk4-s1;V>4T0{^kr6mH@bhmDzZKClYq5gUEsGN&(X#fH5g1v>yB{yy*oz7g{asG( zk$yD6iR4g5xJPI4>Aya>o8u)+9Q|<#c5<1tVzkS-Jfxf50Iu@UR7rAhjc^+*9#%Jq zxg``5q;xpp^9t9C$;5h#NM(B^uqH~0Q-{I-e~0GkP*e8RvX{_M+hJviC8H#u@YS4` zy`fS9HI-2rq-cTudxz-;L^8z(2ng7o83^4STWsgL*I+axram;PBU4mc?L*+5kRV8A zP^{oaFRstpfM4g)l&E_;YPG5RE2uEGR@8uYESnM`i-Qpp=6fw2p(fH|{?Z3UrpFtewrT3l4S!w)>7?lUn3OJOHc7I=oKVs(%p#!v zuF57Ks4GAsZn^z(tE2&AQmkjLKX9zv1~$<^nJ~?Q!(eEpbB`~r|9P&^VnK2dLj!ts zf`lGXsQO(Gg^Rb|qnx}GIDk&J3XLA)cn~Or2}==_0T^8P8A%@7uk#tUq~1!*%K28R zO>l3;gkR$^{fkTf>V{aLBX9j|SkIF+ZDv`5xl7-vy2Z_*w3& zFdY03lb*G9j`VW1PxV-=tdB1CKQ^_Q{$BnkTc)b&1F_j< z0MP{Jc*Fr>jyVrfX{ew7NSG0aj0Lie&xYaethU6r-Rw?#^{&5<>T63KXR#4(zpn)& zRd!|^@4hj+TAL0J>OFNT44iE<6%$&8ji_}6$jm^&jV+`$>o{a@^XXGVdTMA4{N@49 zJ4Ueknid`IF$uhtkW_ggHc0a%rPWgpfq%X8 zw^C%3v5$EC((^YGM(kArI_y+GKI6pso$1~p;ihO)+;g^KB-ZpdlIoN>gcPx0PX&L3 zg%qD6uAkTY)TK`Xd;3ny@wR27H`ZolgWo}CZTAUnUUMmyB!J|w&>`5|JtNxtB#p!1 zs$u|~g*Ii?nACNnc>ZJ4$^|XS@vI^onMU0{ZgXRtW}pQyH%h)Z)bG}f{F$zmP05#^ zE0lKLDJ2IN$>sn8Sm}S582bft?kESbCC-fXpyCr59tsFzlu$%3F`fpj?NL2il2B}s*mZ=__ z>8o0!A0z(7!$`R*Ev_Ik$d1vKA}B1fLv-D8E@=J#`0=VSn)ZI{Dpz}PtjwpzVyi7% z#C)N_^C$Uu`hb6u$m#9fAN}{tdDinA8+@svxTuZXsDhl;iq#}fhkYx$gSyQHhMb)6J18-S8cZ(6dQUi4}U*v~5GC$=KKJ*M~Uq$YWwTlnzR<3yk7 zEnh50cgC*ZUDCns?GD<(_F1jiaUpf z$mq)MsH||ipzhx}OJ!=f7i~Ez!{RsM>@PHq1{3-Fyw)^1;^gKgRag){qVZ3!8>6Un zB+{{1xj#CvH7F<#vhuv zWw7}pbH)6O;k9&?{?dPl^L?BLptis6Qvw3-g?pC-zncel7U{*SINEN}55d1|kF>*L zo&RG?RQUkjt5*9TMduxsCG|FN8B#vd8<{Jcig1wA15{l{`x;b~Sf*bFRDh>Xkg+h){*=@a`#dALTh zz^;s~!*SQf*wY`jp>9nQJKd=~{eSJP7U-b^m5XyLH*8w7=d0MCPPnAD>&R#&DmW#- z>AhG4u)6F7qpHMqS>ybIMX|0>t?ePVL|jb4>Ua4yo8tUMM?N5|vm|EH9bNaKlWo57 zDtGox%02EuBd;qEu&zEAKMW$BU;P{&%326Te?xC&Y+?OWL5|UsZu88^O+TM=guc08 zqu1J{Ws-i4D0txIATv5b>QV^8&LRLMT6vOyDz~en-le;wVP8@ikeLWpJ6q38#Sn;Q zF{w}FTBWaccE;mgmc#BvqemzSxhzChO5(+c$-+c(3kvsjrJl*MD{)m@B1dveat<$; zi3@T^)!#2XhIiBuX4(ViSg!(nHv~=qqjebyO%%wp?S%%)6QGFx=+@ce_Q;=(nxX{5DpN$E3BxRKWA#w&&AUV zhT|BK8_CCco2{5rqtvdev<1+withk$`&xh7dO316#%aQ39GX}^mHllmeUF=S6{QLf zXmRcU)uN)%;yshyX3ZaUsY_RMW8YxmS;H8w_mDg6({!CIe9kD7xy~j2Pa9DJDkj*W z^7610b>Cdck2tpCYM38lS|?qVQjzqeJGsi z(BerxY;MMzM4iZ zU!NAnD6S$TtE#cKp~9Kfr`!&m^SLdKhC4&i3>D6;Cbt5&;Hs|!nY&T#4}}rwi;u`; zyW+CKwJaPPMOE|7y!}3)|9Ch{rcGR6xu(rhx^x<98C-R&$J1;ZjyiU;E*y6nEgthW z(c+*jzu(FB5{MB%3k6*}af}Iw_-o`&a{&b=wX*6=w!(xFKl|O+X0ya|_iBlUGBf4U zH}ne>m=I`nudTs>`wbu_st$JDR=vxn6s^UOkDKo5V$ z&T&1&&&1x&)9qgM>J!;I+oN;N!%o4Tjj)}<4jWkfL6x!JJj~n60dGHsw<;2kf|dwJ z?jNiZiffOd3ncMhIn;J6S=;da29HZ~EtX5%I~gn7#nRKQrdDw=)g+4oyxv4!Nzj(X zZ9{EG73Ny9$NJS;qE-p=@!18VgX2cP_-CB<<&47OyCK7ve?{{jj4($N-LeQn1Cm9v z-C!k})l0v#tnx$0?uNTuF?Cpe!S<8l%su4~+1c#0DxSMiq!-S5Ck# zB@O9W&0nKI-x@yt^C#giLRP1As6HniFA4k<2qf%S_qKcCg12jPP8&ZEi~3kdhhTj( zPdG6(m=^Wo`$*W6gLC{@ji8?s$jMhknU^Y}j+{du%*ipPubSA$Um zOUEhrFw#AIUdO$uHg3dkv*PVAy0fFm;Fj@(-Y$l3(g&h`Yj|uc0bezJx$}B({5`-G z72TzdM!u=GLgS_n$wIwgb*%!cj7;y2((XPr*~xtO5^JIz&F0_X(*ik}aKuaZ!AECV z-(Dy~a+Z6b9@Q#Hia(w*fhbklaFZYUO7$AlJQ>=)KvCPw*u``NG5(qFHH@rKD6MI9 z%M8;=n%{yZt`9bsw?#v zXU$tRflCRzlM(P-bRMzcX>{)RspB<8#Jow9r- z@fPU_Z@~C`6hJJnJtZ8n-5L7>Z>y5IluHV6qeV*EP91Fo35vc?_*+4~yhbZq_PCB;kg|?L^DsL$)b-Vo>X-TEuxNf0B*n*q4D%)3zG7-fQuN z(cd&!{!@0mZ@p{82+F;A9!d(Ua1oO!<>o_R-(i=_6>pf%*{V@H=3<3(ca|LN62W|T zqr(#(oV{kK3!CrsedUDT*4K&w?=^+=s(BLVgao$g=ob9O^c z-nKniJ#4~zhl6k49a90YwEhmLBg=9$sN(4DahlUt{_;JdMDfCslx)o%$BgrQfvb}> zA5NG1rzmv1xuMGh_rAzc>%aMEZ-Z$@rJsZ3>9B99-P zT(=guGr9TGW{GlQgXVV`(kViaM0!@e{Wk4HLP7xK!iuD&suy z#s&9#1y%>Za@?~lD6#_x`Ux{qwb5>~I>57?z3;fO&o-*Pw?uPUHhy6t?;qB}b+}|! zuBoZ%fz?uB>hEb8b+F$Iifjw`4i?}Vrg(4LC*zkFE`^;gR7~U@2xP1Vw4Oiyk7Yre z$3M66)y`y;5RZWVbXaj#Lf&m2B{lI0%0akv`z`B@khzblp$k?FOipNUri!@9Os3l( zc2ly2v|n;G^&V@y`h8MRVF#NBvGSlFf`LFc`;sL?mUitJd98>4vD}P!_91w#MXW?q zTx6tpH1NQnz;+%K9dUKX3$-{TxUuVb{|mZwPj`QbuaxJ{Ut~L2EGi7T+up^oQQ_(f zapwU!V?cYIT#3IzF0=PxjpEgBPd3|^*+2xZN=PhqtnMr#7~P7!HcK2Ra9h1N=%XW+`p}+RSstQK(DlGoY?kG%bqQkAmfzEq z{BbQ~=poA;!&o51@5CslUfX)oTQpHLR`9j%!@UcR!|uXo?d|g?D@v!0oEGih2rH(p zZl!o9$(vHO{-VWln$Bmn!LQmrDcNl5j;pLLuof_eNl5(Ad-EV^aF zbqJxd-Dda3mqxIZB~{_=^|vVpgO3CjaTi0<_v<(-_m%@7wU8hq=9I2aE3h zcnFbio$z*!)Bj=}Hi!+k);=2-(6R`X{$=w_(`m&sB>vvTn$Ct^ae=ssb)tM;VLzp$ z%x5K`(%*D*uTwG2$JQ^eqM#~`*a9-dj#ZPsMw>$l^oq9%ns>x=j)VV5b9&}BKUr*S z9r6vMPf8Zu464~fiDjzoI+T1}vyqOf;vrYw#>j$BreC|J@9FZa^2qt@wNSe8eI6b* z$|5)d>^hUil=fVcyfeF@0JXu_Ht5&zy=K&OBf4iXDI>QXMUAp6F8F#I^cwbP{k-qe zNQ0CNpyqm(QMUzs-<06x>mD*Usfp%-gSo5lOwj&l@xzq}&Crpg zcpobh?TGZ%dJXtCJS3N`?`iH;CtPf~*?xU6@j(T{98B>Mx3P-ex^JU4ce34toBcY~8=lgQJ>AF$ywFT&e_Ls% zF7FnNq)>lfyHE47)XkOqb+lrg2+dr7#Zc^)MoD=5Qg|lZ6gQN&1c^2)-D-gjV~o8Q`N~fK}Tkf^k$2SUPDiU# zWzI8&6$U@b)~=8&M6y*8l3Xj_CVQ{1hJ5-r&_%Gl``<8!!W8q{*`)k+gVxoB%A!~* z7g8sRLwyx*)%!iU$wUF}_rr`BAat=L<;%shM^+?0VI&}_Nxiyfcb z*ID~@-4m_NSs)m}nEdd%2t1ZEX;J@SZ@tVue~A!lA}kfV{|zGt%*LD+kl-YI25(He zpCx^DfJxT&4Ot6I2aH^)%d^*7wRaU~*UjeZryKhxtPtDRt=nJ{3})12PKQG+RO8ZE-+eZ&o`F`xbK zARsL1+gdJbwz(Ygg8NZ+tE22H1Ft3+%GmR^@yU`OsVwZ%tsT@fNVg+C&4s3ID>79q z)D3c}V|O&Nv#E>;5c`Yon-IBr8!-(>gsU7D`$GlLT0zqHGq2Ktps5zCMM~?dv0#gO zW*}AbMHJ^q@y!TWi>dsUEsrQX>pzyK<@Et>9$~$>fU3T(suSL9DF-A&L-y%Ost#gf z(SZ}!V!pMtqGjc#k^#hIt)0>MbV?}mm2-Tf0PJN#KKE`4eAw5oNe(VX4vZ9un42;1 zOwQZ&1w>Ej0c-@>F8WOJo-P&mFKP$Q3NCkADq)pfp*P9bMJB7q_=EL;1P`a zD*hIKHVtut8vic8#cV`8(f8su<0F#HlO~MAD!z;zHx zM8$*?gu;7|>y$9xQ;ZR=<_(w^H^A4oE%lC)>Sqp!=AvWfBk-v3^21MHyfXr-%mqxI z;;E238~uF&QDfVdhE5t(@ zBoClJKx!J%q1l<-N8{2iJB3PG_7zlcCq%dQ2Ym#7zx)*~I#Gch-_mv#D1mz^eB3klh8z%V}rnxo7Pgg4y| z*;rDaZX}7W4Oi4LZzM{m4i;>j@6sMNA7Tr#ma|vh@0$=#u^!mGF1?O$&;=I0PwMEh z&z2|~aODcHvz&sDw-GiU_hf9h)8J8Go}(|=Y(>8;xmf!Mk9v)RW2i2 zbVnhr!*wxy!JU*(xDpeTUNf+U{%|B9(6nw>1e>VUx%MWWe}yQOms(`WV_Iu*RRYhXW(#YEUWqGbr3YhqN6Y%f ziO$^&?RiPZ-Z7_IP1~D_bhFJBP_{(OJH)&&YSG#zI{Op@56V(BAH508VSb6NK};&Qv$^@rl*bY}G+%qO&CrU^_e~Q~ z>ooqBwC2p;jfDQZ=tbIORbGugT5!c-qR)f3r=}SyMIn-};ss~b!aq{a)m=ANpb9GM zF0V!tyB)_kC-n3fEknvh!S&-?uS_qBKifAm0-%4n`3S&)lsBFkd(`jY4V?vv;GX+) z7G-YNszlhMQ7tHiE(e|VoXKT=8y<`dV&2&HXma6XY{?#TQBe-ca5M_JJ;whZOHg)& zZn1LTkK#1|XX36_>a#NT-S_TEhSM0e5T$ix^pDZV#!z)ry83HYhjL*iTsFu zhI1!X35~A!WR|G!K3#PVs~E}k4q%#P@vgvG;mOWDXsTxU}bXLbWLt*C|qcYcdcv+J}>Sv4C=YMTG%zD>rOmfBe zH%AJ}til=&hd<|`*>H2M0+=LQS;_aK`NtvQUtz8s;Blza*#)&FK@jRnV_dUX>dv_tf_rC zWJ+lP6oXMDsC6j&+@A>_%6U=~{vXS!Ss6iLl^w>T9d2EqdM~hO)7Q@CI9#eunjr&C%$5VDa|54G;srTZW~ljX2UjFNIhZ1w~NJ;-903tB+_` z!_p34l9U7ZsFmSH?ZazN7q^a5?ZIQutvXk(8Hc3))x*Nx7dOi1$`gv4I`jpUl*rVR zO>_SyW=HCO1*6Nq-Z(KcATrP-jVy`8wKsi>2^0N^-hx-~ zFog`SDPto*@G9UN*0(DyxQdj;kEICjo{Q&*d7AUPz0~UI@t&w^?0LXfatO-jn;DTC zEhtG7=0$xd&LNs;HYN9qtEH#Ha-`sschvy>rKXF0kg2wIn!}F#e=J1FfQlKSW~AKn z$4kW#l%O7z_aq9)Q98tuZ}7X#Z84vfw)Mnr{igj;sy1a_mA>eil?s7hMstoz30)R> zf5>R$`23Qso#**MSpq2A!(a-6>I?x5{0UPj7mMTN7qp5QFlW0gsXWiL%l~q^?5g%p zh_DH<->C#&+z#X_UG3`~oV2+8&S{TwsTXg#)0GTJyTQHgySX~`Nx(R`Zrp3c`TD0v zFW*Fq9UfM9w-xZlwVU9SIZvxAif0iI3!k6UHhycZycZMO_?e|L3K4tL*)PgA4CJ5OH#_0^ zysr{E38bYWT>Wivp689K_Hlu1% z&s}7DBUVZXh>Z5q18WafA;v-DUTKkHIqXoV%kqn60h_8&Ml=2t%z#ZN9QmBuhTzIKh4mlZ<@nxS}xy> z2$XA{7QDW4OD7HV+6-$N5g>Js|5JEhC6%3hC#;SZ948k3F=Rps;mk;@|A2pCH zMN>G`m(76O0VWwTAnBqe%#Iy2n2<3j;CNJd&}cw^Lo@%77D$o=C~CrjH;%FDaPrx>O{bhk2;(b z)7Z61=5|<24;@b0H1tbh2AYm~wv5i)Pf(TlxCBM(8mlYdHcCK^$>G%prv+VWDQU;G zQyZQlQtrN{Hq*u0b22jB3_y0`1A#^^0mOnQ*9>E+RCukScKDVeqk^F}S-T?kIhWG8 z-{OWX#MjJio8}9cwvg)oV+lkWK%rjS`%M&28>`{|Q1|+*5HYsX?fHru`>bgp@HzP! zU$12LnVE@9C%P=fpx-2FJoKC0-g3 zeD^8fubGqoJmwTVlpSb}{h%ufVEoNRbzXC*ANo~Czu5q}4K-Srz@$sdVL0GGw&V!r zkJOK*hkQxK?kjl10{CgALfC92qlI#}6P}C!WybhYKeb9o@-p%UxLsKB-ae!11>Ow- z^vr&_&Rd%nqb~5n44IPgYS^+&F~-9Yfz?@~(8pHro-@HRVx#3@ACKYK|5(0^>?CL9 z?1`&W=?HPt5$4eWtsMLwG#HC6`=&wabdP{)c(! zJ|o&*qbM6XaX?MUD->Aby0Nxadv6BUX+C>*I4l)VO1KpT`jOgSXb)+ zW8<^+kE6nhu#3X~tHmL^IH7Sr@r*rKs!nk?^<6JBs2IIxFd&UhZi1*7L-aqJRaAg1 zx?~=nOr|VnHC>t=E6p+{5`(i8LJ~*o2fQ>%g5ygoKb&`=MaH_&a`kl~L5b2cr!r{% znInQEhA?`v_^>QIg>9gnFTp+U#8OGLWZocvpwh1&pa0|D%n!|FnIAi539CwE%l^JZ zk$#arJS{Bri`a=;XHl9soICxT<4+)JZ}nqxr2L%J{Oxf|Q#&#QT3-E|DZ&!{PY`I) zuD+t!cB9FBf*K9b(1dJ7-4kbM_0Q7})=8$*WL* z`PDJc*(=}mdnFGV7aQt6vW*!vD_?#5`sdlaDUNRpvt#r;y<_~&loT4OuH$l3iaa$y zpJwU!c}Dx0?GYd(Y6dOrm)RbdXx2nAd!h+@vuv4U=83;aNtOG(U!h-lzo&h|uSjiYq*Zg13@q8Ty^qY-A4&eTIoIMVAcFwV*I2GtRmnx$;xSjRZS>{R{;?I4 znS`A;aZ6zuT^rUEami}@oawvBd=gvOu4FsG z=qOxW$*o`_M_$)f+`CsA z7YvjqKOQJazq7NpA$f@LNs& zVUo7jna8UlN6B5yh_=8iCg-j|McEVOHc6LEXqwc4yX)X+!>!do`8mr>4j+n78w#E7 zELPZx36;wU2vKi!|7LsKC4J4qCOL}Bp|L4uYaui=J6Md)CL4 zk&cZzs5T0Xutd-c*qyx#ie656Le+?=`FY_jb& z^h|*$x}mmSGa6h7P7Cbc|0}id#8T~#K7=H06B-*4bkyt}c|4vF@eRFFS3l;@z-_VE5u8G%6gcj`fGpjf)O2*`kCL?AkNxZL#DHltIE33 zNx1DUQ{z9DcNSyJpjuc!!17ug$FzXzms~1*5$zpZ$S+j(t(IHm4)7JTOp7=DLcL-$ zdR?zG^IDAa?&%3^Sya|QMVc)JrS8mbW8CQ=W>WwHlq*e9G0%p|&BIo@MOBeApm^B4 zIYs(sDp(b*k%9?BzghVZ>_7Fj?(}yxR1Gu`eXJXLCpZQe6d#WdKjV9{OC4#|OEc=+ z@=obysHBwt!1DzrIj9!G{{ged8&>AYh{DYBg(AKOPcKtu$XME zixW$k^qt8pD-(o>T`Qr`TSBW8LT65Ff99;@FVH!grsORkOQ)oEmGg6IfzpqCe@_|k zBL_2+PxIvn&Blu^J_<@3Ph3~|Pa!Mt^FatEM|j92?cgJfv&TBVhK*O??7IV0k>91P ziEC=6?TRDBTRbjeORQ>p;c6$AX&+1O`v9k~%Aj;Sy~TpQxmtDwxu9{Tr#Bvy!JRux1z=Y>OT{FPj{Jz_IwTG%D)_Dr8xy^QQnGasK_%;;A+ zbH=%q&1;Qo`wFrO;tT$ce^b)I>71kW;-|9*tNJQZGaLyx#U#Zv>&Kxm>DwgfEH7+S z)7>870`-PU+9DT|8#1K4NLIATVbA}rihg;X#pekq%Fp~*35jATGOnlPX3bk-Xz*M$ zMcv)vjD<_wE7;Mc_~gTT8CLAiV}7x!`5K0+7}pq~*QY9iy|;Q&^zYJiytTHj&wh(u zwHfg82;?B5g{hKzGcZ9lx*7+^PQA8kSXj>?elOStAN4D1F9XX$? z;-NkwLRz5h&(zU=^AcR}m>BHnN&>gclsR5aUiDKU*-w`-x9 z|69XQ0?vI0kFHK(JFKMM)Xpj8vAcFoi(T+;b)|^>{feGJlO;fM;+Q{lZycpgEVbLX zoRDfr&mHLgLQ&5!6ivM_K|VvFWwbiZdtdl_H;0FJJ8VyTSsY4hT0QYA)5PLVa4B5e zurBNd^GKsDtd$%;Hm9o`Tm(vw@uYwP>(!J^g{OrRgg{cH{^fnzO1XobjeJuv&3F+y zH>)+|h`du*@TxEN^dHw9dSOiGlHTZ(Tfg_e!<j!c}5H3d4VR^Ywze`o}F|8W+F zD$`;6E*tSpWAb7bIQ1uD<0mN(2o@tGdF)Hy`MMiQWb{Zbr5erZQc3mXiuy9{l%=_S zq~cbA#s%CdEDKA8?op_mj~!dNfgbiuIRdxq1tz~@O6n65cF?5O{s60-@E=kPsF5R5 zhVnt)Qj?IK(`_1MX%nSIP-jb*>sR4fSa(SV$g!)Q>a^>v*&J(P z8yb7b+}^b_WoO{p86nLVd~ZRNO`MN>9M8po|n-O0}Z%$z)jSD^k&{eRj=$ z=;R1>ahv1FAxl}1T{z3~!F2Fe*=^$9AIix}Ys}7o{(Rz{IsM3AJ`NROTd!UhC0xEN z@TQ;vb>mp1xN|}B^~^K&&ypN2iA$#Fya!@x^@}axtfe+VO%#J8%nghpz#5eBDzLh! z93|d;78yplV}i07vAL2gEv<$*m<~xtGJ6^V8})hWax0@D4t+Wl-ytJ7iZeUZX+gIH z)1X{AN-U)8Erz{5$MW+JGaYdq-S2oF{CcQzy1m>J)OqpwL-yyZJW5B^?!O!)cCXa6 zt$U>zeoylaR^&-F{QOhw?LPs1$+hp(Nx4@%=(hSsl5l|-O}M-K!6Y!b)ae&`U4?Pl z8&b36VbEVt5jZ+`j?(Q07FwWW<7@VdB}t)g?|0bP74slt{C0W*>#pgzTw0R}zLb;6 zrZs1fsyJR3K5I;(7tg++U-r50DrIULI_o%Pj4GO|?Uln?4$^xbMmxOaBqvP7pBt;1 zhlGAcc@fitomqVnoFfxnm5HLA6iUZ}-Yjt$4iuOVd_Kz;`TkKSSS1KRN-zo0lT=Sv z6XK)p@Qyc!rCEwH8`^coVP$rBIy~C1;@lHdW#T19Sp!}+Q}qn%^AJnv%AjN`z|Bw- z%{@7*AQsSmW1n&Bvd`SSP1Xr=DI{YY_SK3&EdA?yRCcc5tZITl$k?n(ZoWJ;RZ#Rq zQBmD>rKz0wWh~nuMI~&)w zyF8FnRgerlS0ilV=;(}3GQ4&>vesv}uJnYx>RBa(*EdLjCQU{aO&(Shf+bL*ub$)= z-F|t2XDQUeE(eP4>|4+AjucK=SGafCN43?=&CSl`dUpi6O5MiC&>oKJX|uzzYkQxb zOb0l|W`SYwvh|$hjHsp8r%l_vxuGsYyq{hdQ5WCkki(?sFC22fU?pI-(11I8-v*y` za=m87eJu{+`ZWfgRA^F1%E@SB$(YNCU~c!fMs~@QxeIEZ)J_ZDB;>q7$fjn~k5m=; znoEtqV|LPG!`C9Mm75ZeRIPRQ2%Y3M34_)3EZOu2h8)n2F?SH#?F6imWzOj`H zMCr{(^5_G_hjyz(RZI5O4TneePu&|+#j9Se_U_%G{f(6Q%j@9L;KFMIujzH>{l-b> z39sVD@jIym73<{&`?THsJ?Nm$(BHfEiHS*3^T#d|UNpGN$gGt2VI^D z{^F6DQ&zDXz$Czb>Fo=uXMXX&ViWu*pSUr6P2tu*oLLqf&tSC7?qoKhOzv!ivG z{&fgQ2C%+kl6l>Pd^r-L?N)1sigLT3WeVWZ**9sP^)0aJ~WZJ6Ur;h+e*f>vS*dYk(SM4U6JDYavxR6 zqtNa?R&$l_pjnji1XPkDCwL?1J-hOvQDc+szXhO_CBs$lYJe8|XiGpFzxrO=!r;o@ zyq9x0)!-)g^z^%*Lbu${HA-_I`+(SkfT&(S@*^T~!)8=(&MTkqyL8&mMa~f(b<3M1 z)ZP!-3=m1NzqqxjLRzYrKTjE&l^_=`WT+2Ofr>xP)Oo5I+t11E^}Tngfcd#P&}ujE zW0>Mj>!R+6zzF3~oR&{mX8&BnN~pHtAd21cN9q5_Au+-iva3x7=c^9BvenvZGb>Q6 zXD@Zl9_~@f)XSSlGqC~v*9~{8j|PWzxz%SUNRddxeUzFK>_mFFt@#wu@*}L@K%&l) z{)u?$CU)eGJwjo@FNe6vMx6prDS!SX>rthnBmUZ1eb>qd zK+10fDTQgpN*xzJwZ^!VFJC(ISm;alRL-g@3}`SS61n1Y+xFL~%2h15`SZ9>WvUVM=#cMjU*4TXNoWK{A4zIm7xK+CWF_C1FU_3_^$L(S zQKx!Qs$iFnOB{9##_!DwUNtHPr_D&z654!WqE;}{++3Bj<3D%xbJCjZG5@i=H@~c{ zc8Y3lU6;1qZaf(LS_nxo@>f8W_SDz3Wu643I{ZBQi7RD@Z;?>F7SJR@H-PftgCWj0 zHcJOWd0hCGR9-F$-I`J>33D5@eUYX&QDoZ?xb^<t9h+8YE}ci} zc5T8Fmyt&XxwVb47j=FqZI4!aS~i)0Z!}%DsY17rbW&#+gZtkFAM)`DsGa2aP+hA# zz$mH25V*~c#`q2yt?#;}#CC-W`t-8ZqCrI(HH(`stb{n3&o=H&J*hlt>xZ#s{Zsxc z+nMsPTZo&P;k|Eb`*8^e1uBRu^#P$!4WIp=GgsIhihpFt5iij_q)a?4jXv6uDCtoF zJT$Aji>jAH&GtiE*WWBBBZera)^EbpAdvFkgpC`4TJj0A`YN~fvI;DPR|7)MsBIMe zKO*(EPO)RX&i78YA2-ga{c3orw8-c8sMGVQ_qJSg>lhSYGa*bL`s=g55MRNfylU3I z2S$jlg|8%UNhWNr_T1o#2wGg}dBnFLR}Blqr`&&Y;5fBrP&se`stiWU*N@#&sj_)< zhW2@@Tj>$c=J2b={&3MtST#X_xA)tEs+>O_?N{6C_NgvNg5{I{BRlHBwx!%A=@Nhq znHSLSw~gQIEo{Qp?+KX1kN^38@xfn0X;V2h3s93TH%PoI4x{gZN7tFy1snA86-vEk zSqf(}Q1_r`(lRK7ZCF+XQ7`RxPbN3l?fl>xJ^x!gebpw`{Z>nmHlQc#bMoH#f0mVjNt__ z+NeGfa^@5!KX*-}zEFkZlJzvQ*}=i6Uo>dR|LEWU>k|6QmrvE=rA1rzW77AW)|C9dbE&IA9r5H1Lo9>Y1du02WHOu?fN3pcDKC*M#%vFfN((Ywr zZScHBRAH2&+zs+T$CZee!D7{F6+BsnnagnW*8;-P0B4SF)xcApn+Y*ue;1(hxCpIZ z@AhY%(D7UohX!&so#92aPvvY=3Gb#`-aB(%V&k$5mWSQ}e{D&9Ai8JUEAj7+-d`ze z5gCrpN6-yC@Y=~0rl=3uUk=%LU_8bGPt=5bTMro+o7>14u(?LaPo2Tv)mm;eXIV-* z-L&eana_RlA#=AFhIa9CPQ~BK`E_tX7z_OQlff@zkpV*6-onl)+mo#kyV_BQ+m|5^ zJ)62R{4ZMoS#1JSAna^Hu*r*67^w$UxwK2PAsPw3JJdZ47aiwpq6=FE5GQK$4ymZW zk7F1A+2x$5{|Z5ptS|LEH~Ejn!!8kt;d{suR@t&i_~|=Uygp%}C0|x0B36!WJ{)tc z%GD6yi0QCUF3w(%6w@)<%63?w5Y&{MWr)g=4X#XR5k*Li&5xjY0EDB#n4-slohQ)c zT(BWtv~-L7ijnz&C1RI9mb;pL9up7j_M>y`j~awVP?GYY^Tj=wv@8yl%P!8U*X^6@ zb?2X{wsK*dA~`x{#c}cm_E|yeU^h7e8FG zx%FNFkip!dl{1*)J0i<Pt~ySF?UWldRiG%Ly6HX^yEf%}NTntGRf`)l?9T{2$BLu!)Tj_cj`u?zCVJGHRk< zEZzY=mTVcZ%p7v9mSx_Eh$^AUtb^DXYOptFDeQ{bAkZvfl@t9R%O%vpIn1llR!Q{O zOZ4-~*BW9_9yI5L1=!3!@o_%Rb`}`r?zGY zvsiwu)2D7}@ZGR-U^My!N6IwD56-_c9U?(_CJo1 zA)B?1T2BkO?k`e04ZqQ8N}{h>Hxp_vaWo~1&ETB&n>)9?0&cR zi|ZoG*|W&t@b2ik4mWkhkYS{kf{`4H*stRfDMth?g7`^%O`#5vE>*Q@p zVPo_}Ggb~X6Da5-LhRwM5b6{ZVDP(xrGZQQ!f{03iftfK4O#3|6Z`M}if(Uut-nCL z9cyB9=={fnbq4zmQ8(OV`$d}MxmcdPG0FXNpDyo(OyI6CE>GO4dr$AQxi{iYrWC37)H3hwMGYeVL{!g(Jh^+;|_s6RjGHZcf6#H(_B-5lx2 zsX`ysIu$eOo1|kF^@Geq&Z=%{>Cyqy$PYB^*R0^K!e%@yW{y2fmS~Ayu#o+j#_La`>W}79Xz{r z*Vv^>aZycrk+3Pvqds5JEt{X8t+PnXTabLJLQ;KGb6yS|KE?s=!lUAr)k9)cj2G zOpA^0(VOM?AHcQo_Ep(02Mg@}`kuq~%E%V)mE3u@hfDM;#h88KTW_hX^bdxV&xH48T#{|@5PWA)FE zJwHknwN%sP_cXdOH*-8W-3*$SG``t>B8$rR^)s68amatTq9X8G#ggBA8x}y_<15?_ z?S~sgSmI_KcD3UV@}JJTO`+p`A+k~La_%sl#5}k7_lajJ*Lg)#sx~C1e6{_-&M}!H z_JuxwN}Ur}SRZk+wj-{1*d(5I)sz*PYPt$FH?4eI5YaU256_WshwY$N?Itn1*Nt~0 zFzoLl_#J;Ahd%zKn8n#rQ$RJ&YOZ7~sO}dmjcjdGo<&qng0NI9`BWigofnZT#}d(A zB#|ZPr^B>1_Z=~2HQi!GLe`Xp)~`RQfM7BeQjPWrzrRs3%r2)z4lY1c+6fL(JLLHZC*!lX8ta>|6Vg}0rayoG==`nv0SnRu zA=bhlyCPS23hyPAZeTOu%O9@m9xug>jY`g0HZVsU8gu50RHh=#q`#P}ol`dB2ny7z zA9raUPa|h}Zv1V;EEf@IP%{YN_0d!VOm$g4rG(Oki)t*DjjiL)KBK|ch=|l1G4mZSEiP{8!LeK}}5 zGJ?}>bYani?Fa&sv^>t0M>v-_*mbugt$0rquHJma9LQ41J^tip;|drJ4UnYq~tgqKwiu%ikoOcxTbx1x(TBLZ@l!WfM49!j+v zO(@M1L$@MYe8uRbMV#Upj*1~l#$WajVmsxSS=jz8QX|PI^_tD+q$I?;R89F<1o5I& zzYDZ#aD{olz~y<%!XJ$%2BGOs7?Ret`ge^|D=3X{Y6VY7#!jY`wC2eV?O3a8vrj~#2_+Bz(Dg+!9 z-=*?V(8V)tqE}82!i%px!j`tsj9pk%NfiH!lO!5CfynLCZ>$#>NTOMk`0G4v zSL1W08o`Z?m;)?*C=sJPSprLAPPiXx&*mgW)5*OIMbN83s^9fm8&BiAW;L!eG^H&^ zv^lhI3%!;u8~XZ18w?&)=5V6yMQXvIjr`=p>U!daNYZ*&6SVa?q57om$c4Ca<{Pr|KKa^B z-;A6A-_eBZG2Ar_LeVKM&GJoORwuiT3?S9)s3&9hw693lmAu7A99ZV~+~FH!V0S0q z(b{n)4$p1V^mL66tp8npu0XdaB*~mGw4xakuLna#SLhxcg5MG`vX7r9%1apRR-DWV zC{bp1>n9Kddc*`=0cS$FST!D89JCqZ{8j0MwE35f(+Ki5seryNHYDCa4Z|p!MZIxO z(DMhDH(CVJuI(rG(94=(WsFZ8nj5{G-LVi(wW&NuZ<%R<#nfodJ)r1E?8z>g$qIvG z7j7TEafYu%TDJlYqSKZZ=Odw1!a?!(rsg2?rLRsFE8bfk>$YxG3mFGzLl9Nm5WqvW zCZylA1p?6q;EoBW%|0p(_NlQiV~v7qlwEW{aMKlzDa2ctB~Us9h@-Mh#ZQ@Ot8+Xu&I#Nj4lW5ABFD)X|!}U*={eU;meln?Uz8 zt{%pI9Up)GbNPgnUTNas?1mlKpBs32Mq*5KO)jRt?W3gTl&CB^1Ap{ZrMj|D)Vp4} z&|LhRe~yaMZDny+@4*C2yo+G5??}grkVZ({h{#xxkV}%w>j-_Vr~Wko!oQ#IR5{Ep zbXz6iMfP6X?Y(b*hZt)IQNaxvSJ9TN-aaG9$t~*w(^Y+6Y7O1cJ*p`nd zb}w?AX|VJ7dV>(2FF$yCw_5!Cd4alh$u_hqHa(nU#D03<~~FEcfOt`erG<_`l{heJf>VJ@6+%y&9Inhv70^ zW^epAJZ;OXBP?Exr2TUG*MC@jG7rAaHN~~|&W|k1L=Kn&+DCUIt$ajrX#@>;mmUIjIHl?i?hO#WJ(#U8xY5~*L4RsfJH=vYRQ0HE{*P(_! z1n#mKUz@VsK%+5jy&*ma#hd%8>wY0=g4oe?N)4xZNY7wyqIZ_!8@eBabg74+sSGo$ zyXD^S^4P3K3Kq|9gNXiJV}6f%n`o%MsZ+N2eNU+02M(oUK~^<4(_wH1@?K*WBsF~f zcUCXq-P~6xLD^(3gi>bP0zhD!jB~r;)j5F?yZD3Ac;1NLySPAG0g{y-?Pypt>$bHh zeWS1LPsNGWrA=??YeOr0RWu|~NfqGWyKNqbTJK+*}-9_TfS_6Z$@`0R;3`w}RQ$jP2QspC@!)G88 z52saPsO(M&66(!NT>Z$9{eOvV*Zzcjl%r2MZ|jcwM4D$F+4>w!8ck#Jb`6%d95a`z z)=kN4o}9e7D29aE&jxwHxE-SE1N14?hj^k`@`_f!O5Ec4sZ-4-@VG`bO_X8+p9OAy zH0&Y&;bgpsT;IBJI;A_^TSbIyoj)rt^;gdx{<$o!SVLzgNti&9& zEA(GW4K5*c^Z)LDk435L|9P+&)A@ZnO>6cc-gpU*T-o~9h0iE?@5Y5KJzO#5eol{V zkB#uKhICa>$5pk(&YUgyRYGyqXS`lOX6Hx!X;KhdxJu0@livYgHDJBIY}>^@cs)m7 z^xbve^TQk?n!#+xmd~S29vT#{A6`8vExFM&b+gRkrQYyq*)tp?iaD)%U+zrI?mbB% zgXR8V4F^q{-d|!C?Jp)DRK(>SK1^(D4B%}Rf4kH%awCpmI)h!GbzpMgK_zJ zA(OP|B~t6CfEmRR>iLp?e`Sg@vfxR%)sQr~2~Q5gat>dr31%zr<5}zWUbT3D*P1E9 z<&em9rT%v15ZSl?tl67pq6yhAmY26iLnNyWX9F50UO`4t83Ny-S9bbpVvWQP)16bj zAW4HLs%u>e=~p1P%rIsZceR>7`P8kzm-@qgbLN%7g^hqE^@$Y?vd8@`bz@bcCAZiq zzo@;m-18ULn~ta73zf)s>X@1jj9<;Hl|$aO~faV{8M}B1exI z3Zf{v-Ox9so#ag5m!Da8AdwKS#Jz@^iN9k{gUhJQr{Ntnu>Gy0W)U(yQ6e8r{n^{T?q7GtgU3Zl0u9?sG!Ec5Pf z8`qiMLc@In}Bo2;lf(zcgS+ND>E2~*fcAgq4mdH4X*-D%JGs}W7RjFvPyO` zMg&(FJXQ-QG(Z2**yhQQ1#Gk1}G#)fey$hv#lu`=`?SWfNccMpFx#<#MXTzJ# zrUn5=;Q6X4J=lT&s)G-$qWgFIF5-w&UjO08##M6x)eQ?ykfHr0`CK)vIlRRkeS+GH z`b~Pnp1B`?cBkp@i(@3W9kUJyX%lzo#yZv58>kIbHa<;hHYCZo|W;uM)7(h#;5568@u z9m)%}AOpukWnP^SkNt=D?#6|U7t1zq=tSaZ@KM?eZ(Jc2oVjL74T{j?zvOGY(!aM= zdT1zpZ$b6skV2xEGc0uQdrV}yyfCcYL|eiAd%I4@LQ6|>GwUT}J12697!gFX@W6@< zBplRvmoHIaXtTSj$;MU8#ofCVETo6z>*slXcXUpMNi5NZ#TF>+V1kRRaAZ*XFBlW^ zEu&i~B&@1!%K;hUq6;PrRGYt&f+zP9=^mN1a(n`Ocv3J&TyvE5t(QN?V;T1Zr<@(0nAvSHV30RB7 zucFt?ST}k#?u;5gQczc-vUqccpp+^Gya;NUeb`IY34i*R?VMQ)k(Tc(l+m!|Q_KLq zIwMah_!CkHMsab7-UKErs&^otY(9byvqS-Kil5Gwm37<7G}Yp}*_OGinovu_NlrdD z$@iNv7R4ZJs5&mG3~2mHrUF6snaZ2G4DnjNOu7W@-%XO)cx^KLEyL`j8fmQDizFy} zS6?hJCYNjA1)fpx_8hanj22`%NU{u!wAx<`l3U{-b~ zhEPI&b8Zir8SpG+K6cL#mFh+XJ&L4<>Sm;XQMSZUbN%uRJZJwdsj7kw$r$l^h0`n%UwP*1~9YJin z4{!aj2c~5sHkLQ<)(|kqx8+aRuaWHr-NgC)aj#XVv@YqH+`I0Un~XbG3D2?l=1<5= zYqAJkhFrFeF;LkZH>puo5j-04SPEFB)YdH4?VOF(_PY$YDFG>;{_oOh91q38p!Udn z^@6eVv$7f?syhN7G;4hk9Oql6p-q!^Lsl@&ef{Ylq^ z-u^jWN;tsC&T5kr_iU$Fm-Om9O3ia{T=FxXayocHqWdIYYI0)who4@)=QXC}*ki*$ zH1*sBB)B^+lcT=|r>hs9sjpQT54^-zYUslc}4cwF)4CUa@`}wHv z-~EFstZkQ?Pl7*>SIy@X@b#Yt=QDR#z8U1MXuS7K9^ZH5KC&2-#L7eT=iG0~4&DB+ zYn7Pwf%ZXQ{hkUwNA~6NGOfis)92Sxo9Tk=t)SE0IP0U4uEZv8EjJ89IQZc&6TiD3 z-v4+Deuwq9p+&dd$mhfCD5W80e#`gz&hr4}4_cuKf6g6jdX8!sENUvzy58CZEri0| zyPNYR3%KD(HKncT-fG|3;(VmoCx7*J-m4FLLW0uA){R`=6g{Y;+mFh9#K`C`F4Jm! z=)u_0jTP8XvtEXLqOv@}-o7RWPu##4ER7zijos!|4^4N;(^y?<^67PFhFT)hFgTxY zQ-i?zS6Sqw21wxjw>7szrz(!%CP2c$=WyB|y`dC!s;_D4tP_xhdd0)s$j4#oHNf+d zj4~xCzt1Ksail;kglR^O+;90^oU$pf{t)X@kUm9UfpI` zVGJ7MA9L2l(yZQ)FX@ZzP=A(tD`;AFVa{j-6gbTF9Uj_DBD@6PWc<$_fEIZS=q{$%0J%B1wv~D|Z)`|D}=YTX0QGy2uS4vN>dKg?cIW(ZrUN;;k2{4})PFmdlrM%ja50IDWAt ze&77nH2eAax`lkO^1!La6mbnz{%d*bnB}>0I;NGuGgef1_EHD{LI|Kjj_onpScPt+ z=b-26ygy#Sw{Vl5j*9TK4@4~}woaCgX=r<;bP3CMhoacMXBOY}1i~c9kO$scQ1+42 z%r(mZ20U99`em=@_zRfkEw>dL-MJ`$2SWtotuq4hK(@hhl7)pbQ;e!w#KLol>d1p1 zI7j2w^c8*Uwmg#3gjQ$iShi<*_G^Yhkr#~VH&&Q3yRQ1&$i1!o3u#*`qb~P^8W0v6 z-69Kh!;K@fPo|E6fGP0kzF!wbeSnSkN%i;Cez}2_2tYiZtm$^U1#69U`Z&R#90_vw z(4n^&21?&+Its(2QY~_uNN+kAPqkme-T`0~*o@0AbMQ^dJZl|7haotnuAU%55=Fpu zpcg=$W7*0|qO<>F!S%RC6M_#`CMM!#_)U@bk75WWb-efRYZ{boHJ)+6_8 z2q9k|K5JmZ&CUyJU&VVYw>>xT68WeJxAnwKmc~q8esDBRB9WU8>z8Q}yLZ^h3?M*( zt!F#|4g?KMAP+kfNG;QdE%$~6fkMUxOR0Co8=!NFx6n(eLmct&`YhUCwo709OyEi!MA60ZP$I*)z#{!Zlblru}%o;@4&~Bt>|ifZEzK zEFdZEf`F4D^yuBFu@g*Aj}8UkxY7z1YfbvBlRHr=OMAkwX=^n zP;bdA!GQDBp6m|iVKLP&P$D8jf>@2ogp%B-tF=gS> zA>rZE*V#`e_*wl+G!Qn(-ST20U;l)CI*Op3-u_wowV1a~wSCROf^@tZu2pmy8Z~zW zvw_=wdKoy)PCR|a_ng78MI)3ebMh!gwW>zgHOBl+Q*ihN;VIC>yx{qx^x!{T%c6+G zKJYQ}VQ_@qXPOp)>VPXbN)fu*6Ga~C)fi~&5`T$J2;Oi|H1sW{8a>%lpSMv2321?{ zYg{l5Df-lJtkKBS+Ou_WH0pktFl#WwRp~}AH=l)cQP}jVWsSjq(;Km27$>wNp+qAO z{&g`fDTG{wA9V4El_~IPI(cL|&IZ;M=*PYi+G@9cw>+t&s!lom0vY{mhx^NN6j)yM zF6Wkd{16BMHWh3j;(AoAXtrp^U1ZMGi);%6 zvSr{i{qx>d|9t4{+c0lLgPV?qg-d$9zppj1OlWCW$5NC}sqC*!qALtdiwDI3Rl4>! zd6`B*Z2%`4k-*k&Vh3F6fDbLXx|98gFDl zu}^U7jgZ*U`pndnv%d@;zpHv>ci@Cw;MO0fo!UG_$y%htxty~x#@J4|I|fT1C=Saz zYQx8Tim_HZ0uvLt*)H)sUc>V8|6Nmu{qXFRi5OIG>N{*j%rlVtJSH~&mNJuO5(SWZycT&3CO;l?MZ%e>I9&Cr-fn z){4A&6gJeNdP3|zs;ZXZXj|hMWDUcvrS;dy%r9I;r(zdP(Z}N%O_^$Q zgPu+;pOiSK{uLJ!GR&z@>^7YSjVK;S+#@^hF6g=eN#u;FXN?ASb`PI4P+{zJ&ec}E z&66ET^W2N9F3-~-67pf(VuGHEVoMp59bMOyV>PBKO*u*lc&qGGa@rSmsWU?~t-^QO zp{K17d(RVQ>#&kw=keM=j^8!{f=m^mCD7xTWh7;Kx6ek1*z{J;q z`B9Pay`N0g&Lef(?`FzoCL`+8+KHYaf~nh?M!4>ScG6eHas})?CnxoyNSptuu@$DK z_HvFLF&0tL9|7chn0mu_O&dJEI^f|SlL1vnmys0*X;>%#)bDlWc&$iJ98kLyHTKkC zNe>;WL_S`rRUFj5YLd2W^9?QIn|32+G(xknBid;`PuXFI`o&`XSixLReon9XeQ$h) zRql@CV@U&_QX8A_54=1{H|lDKz}h1=^AVg!g0oY)(PkZ!QTeIj7A@9+T0?L3&u=(< z_VST(O(E${+M31=n13ZZ6v-Hfu^mtybnmv+DcTi(+YB%*9b^xMo=9JTOM{5kPLVR? z$fCy|m3`qMha%>cKI|Jd{-hmAbi$L7ku$q~{VVJ^o&)TS!GIMJqA<>BkMjqCjRb7# z2OGr7^;z#2ONO5Q&Q(J7uTRczHCpy;PsU8-OvR1h;pdALw+ddjjS-h2Nc%fZt?rj} z83u$6Wc2CD$_Vlxf&Z~brPFI<(f9PwWI*Gzur$W@h9 zkM#V)d59q?oR|mmDf|9_n(@F=xLLSNbup*HcbV2&9~|rmm#c2XT}7n(q6>&Zz+@_K z#B9X$K+_|XV*B&;m{pZD@8mA=Zi-J>ey(4y<~j@hpU0tG^eewOTZ8_2g z7UUUA5Rls6KyV=UdBYyF3lH2+Nlkqpax?L1zQk2Q4<7}5$6Wur zNmxDohcGiIaZ$@%I@9=KI>>fcGr}>yRA|A-hdU^`2WM-yig*(XZg^ANXoN%MLhkf% z-_iBe^t9~Ezlrld0dYrDlGkqttfqXw%J!2GWwv)ZZqL$RKpx-K8b;)aHe>zvdC<3s zco6izKj-+jMpkT^SiBuO4-$68Z21D|N`s)4*$b<;+@P3>gM zWCc{^1SUKA@Xt=f8Vj<;oC(ukdg&&euNhRuGuHb&v^`_iDZUv^GBFAH08an1Byjv)tQHxP%WF^0fk;;Y zb4Pu%6++Q%`vKKiJ+_p#*Nq@t8D0ini5 zG=!t@DTxV@&yNRoK>&+Zl9TotsB+qUGC>#h!^l3Ym;E8}~Nz z(p5ZrSL{65>8Dpfg{4|)^q&qjX#D;cn*gUPul;-M-aq705j&rtb!j0T>>dG0u5I|r zfzvQ3>G=wgU-z00qSV+KDhq6tHPCi)7@fzh4HGu9B+U+h2V1Q)7n| zgHP0{`@JbP{%t3?0Y?G0c$aKc+<}n9$FB1N8|;QSuU~RAcso7*5bWUG#itH0K+kiP zoSl;U#m=J?@g{b4WU)-*G8nivMguvk=qKO5Bj+ZevMU34UE*S<#)`&?Wai}jc-xa5 z?yil{v+*5>8w!CAWiUb8B<*})3P)1Wvb`njxE@Kf-fFv*)klzGT()B zcBGf+uMFSIYWbgu^AG%puYOI)*4Rpq4f^V-VbzlML~IHV{M2nB^$-2h?}H9%Eyk-3 z00lBg+2AO+0BG}UYMscrA7CtA6^2KMj|`dp-pSpSEEI6K9{0A9I6FwC^8o5VYXblW zv{7%u8xdepvw%Y($a-t1PFqzMY&6~D)qa(anAWi&yA-<*NoTD40gz6TJy)a#O_+04H zbDEp^~TkuDd{vX`QSU)z;>_umd9s`y0XX2bRa+W?j-S&eyJn`G@@2HsC z3+E0MR(|3+!n?*B{R_cAW4ob*6-p8r+f2WqsA@i|{_>h!k_yFvd%^LnQ30Q4*1lvl zXka7s(YuFX3I8yPPQRb#|I7BHa`mDD+=nx$L-rrz&{}uidvTAbX9)wdwztiHO59Q= z^wx@;tB&_E$LyT{YSzVtTWv)|hbiCwiGx^JFY#Tzfz5T6@%!lM!IR0?CCTE32Jk;zb(#|sbxWsuL>IvF;i6s<%LKq&_o(UrTZ&X7D5}?J=p10f2pAqZ* zGwh`KWQI>)RYOp($+Mzj*OW2U8KQXb0p}z^3n{wlRg|FnkE6pwM0FUW+GZWZ zGrmwiE*7Jb0jb_?te*OGoBzQ}l~Rf8J;mbQajMHvnaI&@N=M#trFXa!fOwC=Tw&^B z3yAIp-#o6rMc7KZ8vAh03&j zy_+K(`PFv(+Ji?68ThW8xe&MM$w{Lx%Kaj!t6aE?gp5g z>srR{Oux@JlEH&a36`_rw>!Dln^iZaabAr_h3N_>uGGy|^NMpxUq00>r8egKu@sAv zR#6WP7PS5$b=_n3FQ+ji4X*#Y`xY#Q{9l;PtbbGWg5!n$x46eW?&(dolAj3wTcgaP z(n^6)5ugAv+-dOZqA3b3ua00&zD=3@dYXrXUCyQV(^7>{ACF!mh9um)X(!>6bjqCS z2i-+cmRhuytZ;75?=gP_2ly(ne0!mXPqy)Tv4iLv-*z_QTlVIPq;=ks@~XKv4yqZ$ zoksjVDTm8ppOSmzMjU?lR~DO?CCbN7CCj%tw$`98heIl6x=si2VpC=xKy5Vs%cSNF z$X^Su8!`Mn5kQd8010@yj%9j|LVxmQfYyk+^Kd%XG6A)h{=P#S@?;ES1l+Ow0i z*9ji!s?IF|KE;zPx5|ybY&>DY^K@tM+4aoUs5A&lK{Yt0#p0(6cFSl`BFq z^+_AfA0lX^E-dBCKX>MjQ{csAgQaT-n=zHFXJenC^%I~D4B4_i;BL!OI)ym9fyTMa z?WOOqC+rK!Cs~d(u0-*b;7vX_$u_)%_FL3uMf*Pab$^U0%(d@8VZCX?tY)5lH_V%A~tug5wdmZ{q z%B9B@+f|&FWmGE%G2A?I^dSBz=_s(jO}&z<{tE9amDdJO*xsAJ{~_41Pw+p&^$6bH zMs+PsIMsu>2=u7S0xA+caTo9PT;xv-3#WJ>Y>+rBKIV2kdy zM+bz1Kgj;aco3%y+JDdU-dnFx-ZgYTLY;Vd)<~oe) zlcGSV>7?R?w9jAZd1 zs$CYYM$tP=ZQDL$$?Mn&k?GR?(6K!9L9|6H>jyJ*ij(^nI2OjGXd5obu%A?Haha?8 zpZ6)rh7byiH!F;%aWpQIB|JV537CrYwSt9F4C7HtAemEQ752Z0Hg?a$tEaW=aZZ7* zd*e|pi=`v@?ea(~6UN#G-OF7{)8LVABSO}tez(5Sa%jI{n>f`OC`wyA|FyU-5@cF1 zXa5wBZgSs1O0eR*uxYH> zq>$;9&m1>on52-R4r?=p<~VlSduo4iCtcg@_^H|XWqG_fz&)6C%i&YZW@lx;Q7zH0 zf+M;GJm*Mg$SmIX9JLnu-;pYOo*D^U#y&6FTFZJrGnW3IrN^5Zb@^cc?QSdP^E=rD z=85a%g7jmR;z7GdJRJYoQM4tuIfFHzwYhB^^LVO2P>rO|^;jy`y0TgLHvx@dLw?w; ztRKC#HJg^WkP>9+YFP*GlykTotNp)`0cVaXDRnXqmhS(h030l}{@wdGC;!g{D4NA0ELTGNr! zoCEG1!aJBR3g~Lr1r;fU;+I^@NjhSnA8fFmX7*b_nG58G$|v7~Zg%CES)XjghnoH4 z6#wwY|4ghCJqF~{!2}`!dr#cjgcJoRpMEWwX21<$!PYR=--tgcqQ>4f?; zG{jO5Qt_C&gnv9H$G~i!gj(dbRlW)xogNF$zwlX3jL5T)2XVWlrC#V=c1!EHH`zRT z#pZfRpM@uau(DPDDx+%u%c6|q7w|nLAZda=a#t=LqgBfsR>xHYnlED{4VLV%6g(4srIKkI!bp>?Ftj48SZ-JBm)bu`OK=!lWz!!vsd9c7-d+A!@eQeuERNrU2YsR zXrTo8|I|a|8v4+QG4cGjZ$@8=UN{gl7-iv@NOO^7pqViJP7Vyd1z6Iyz>i3or%$MCD++2Yc;GpNp6^XL{Ba?YDg#fct_anHQSp0Ye8Z(1`W-M>(P1sYk`i;>T zX;74%Ne!WvQA(~s+Z61E5M8v4%-P-B3OL)l5MyMvB94BP7{D%y9mb)4i?_Af2(4A$ z?v@;X8tx3sW?*Dy6P>BOSnGj1hw1%o2u0=;O9*Y;lKOh{mWbcuh!Z{4;0`ED&?6*~ zL5RUnm>6mOB=i=nweiah6USxzb7rbbunPciyq z@}jjF?w0Bm+XCllJf?`Tf4s5hs4RA+BkP>8b z#QL`?d~ZrU>?(g#W8CptUG%%x+O-VfTNt zb?xZ|5n#-%2$8P8z9qJ~InM6w!Z_U&lRt>8kW-H;3pqq; zqbb&@kN4Dlj4>wZY2Vxhs)#-3#vk-yx)U=;F}zD*rfODJLwmt-6>to+-}~K%1izfE zTIsgTo{_^!cAMmqz$nQ#6P*88TpmD_(`pP;mTmLW=n=w63@POtkGcL}#a8-j`{8C4 z%@}_E!wQQCiS5XRM&5hmne-S`9!Gp`LV;~Qp}ESD69#Fj6s?2#2}>k_0)^D>?^nCOCK-+7eIj}M}gyC zwoW~7#ru$wD6a5|;!Dbc6+iebJ-^|xyi!4PSk?&OeAq8M$`1zzo?zkL!laE2n~Y`O z@)+y~IofE14eCliuPlK<_{-LVN^EZ#85|$qO@g)SjWm#pqnr&u0Kk+r<&p9@ac|*k zC~-~egUK5wf4azF1=Xz`h1out9ouCYCT@039aPbu-Gz588}WKuRL3fBGCXp$Z}to- zfSe&+_x~(T9||LFqDD6Hdii5|agxf8y~G6XNWBbdorkA$>WcPmBGp_Serty8TFXp@ z_`}f81_9HnWpZw@VAPpe|1XRr%E*qnWV_Z9kUGywi9-bziuEuDfA*v!(2MyYq++firYaH8-KFz}9 zGNofXR(3mdpW#0_M=07rxQJw~C@WtQu{!NWAXdrR1lxNQVPDcvZUQQ}%}-|`C8=Z~G(_ot zy&@SKaf174>Dy zUBmHqcDwd94>#%kxy}hM z+@q$1?Xcf+otqBaAf&t=Bz%c_GB^4?U}PsW!W{GNO{S8dc4xgTS#`hrd8kjmf;iI2 zL8;nJHns)S3ZHa`2f)xxwRp*9%bDH%D)eok*IhQNjGI8WMslu;pD{V$NmC@$`v(Iv z2^T;Qk+yJmvX!Lz@?ZaDTQv_E!RF`%vSe(TlB(Q7YhjRkp=&056n(NWMvfg(QkC7bq`&#@qBL3w5dr`N9G!enf{jQOzywD3uqe z?1XBk0q`u};j0akASh*bJ$y|fEGnC(rB)m5tH#lpMb~OE$p%sTbw=8mlo-GpkLfl{ z?5Je?+Pi#pB(;@WYYVC5%{Me-Vo;FBEKl_e!C8;pV!+X+hfSw+)Vmcimm-Dyn9<(r z*~+7@DCMVxyY>pl6B1T2_cTc%US*~Pk@9i7UwsUk7(r2RUl*`W6b2`Y5+fXQs?>zz zrz?e?t9HN;%L~!*LQ6AE$)ik6F^4e*K&cxo@ZCd+)6NqL`==SBhe)+Mb*qFu=GWFD z&|M+5H}(iu3MmxIS219;5XXuVXNEOQ3aQE3%&qNKzStdH;u34hW;vz?n52s3;|D70DOE>gol6Xs1p~0!&p4{%{9reqwZ`SU zw`J0W{LDApMP~LeSf*lL$4!*8B$|N_u4E^B4Ffr*!nCj=maj27j3fcL7b}?z7Engk z1tIr$)dLS@lQeyoxoXR)G1$Dgt|W*6k#dS!rau5v@d-Y>F@{Ph^$If0_sPy0cbE3I zRQfNW!?l;Mq6&Y*RYyqrdh636ILpI*3^7c!4P5UjMGKplOJA7Zh1P-LF@D}R^ej`b zcN|;xEMyAr4Jji;32o-O8bhF)P9erOPXnmG;mNA0Hl6eWy8G|Bv_OCGLA3N*PXBl^ z3)d_RJZ(rR;j4UdS?c32XncSkOheYI%axjW%b*FwLb&d=P4qur-sN4fOuwtW3GsC&tA>m<>(tWN`?vBay=k3TjbtAlwqia`$LmKd* z(ruv`Ec@sq9G93)q{+@P5fkWrn6j zyzT{unHv8o3)dBz)Wv;`Yavs4o`2b{Q}+pFIWM63RzqE>A1 z0;eEewl<`=T)^4(=Y}}DDV9pTMoP}?u7^Ojnlr|#xVdn$LXuv?i$~BJn8l86?K>aE zJXEBNVqhXUMuBeKYsbIHxom^_680HX@(3wlK78JLA;4KSSA(Rt8Yxz=&2x&G3!SW`!fTxX%k zM?*v_OekbUQR~)`2odOkFa61tc-Vbu)cUrJ^qjbA-^%&?V1CP#jU1u40DBPomx!}F z9d&9AjW#v#w=C!TmXTgJOfG8bO6G0TzSdA=cLJdAUX}HuhT@CP&GeRN`q5)@@&_}z z$cKUP)!|K3#=NNY(3<4M#Pe^iiV!)s1(WI$GgO!*mO28rKE68=lobAz66AV#TO;6n zw4#27{M{CN(6fB)2P!Ww{9!NUsR5Edy}SV(EydOzT-VnC6Yky@ffNf4^_M48KWFt! zHvoYR`b+R;TU$@@yLY8r_i-Rzv1j_%UVOYD9Jf$cR%ik$N$U{1t*J(L_um}s5Zuws zPf60#Bv&u>tqf$4U%d@|JETIfnLRnIb*pqgK8dRIpXBC>B5w6hJPoz37a6g0>+t-% zllZj&qGbEI0hw{}!JvrLKf33W8{fW&=|%1oV<#hDdGk@Ywg;vB@WW^k{SgZbevVbG znJQr!qm7ng1GB^y?urHr4D8oFJEvH-yXTcDOk0LCp6|-m7ev;zY2i|jWzmjFNSj{G zDz8Jqz0?`2s!0mR?xgv1za$lr$R%h^!9L#J(YSH)$%bN0dTHMcMbq8yYZ*(asfeDo z8tSivU26{a^M@GtGCe+*e*X3uH-Yna8`Ct2Z$5X(h7P*5B3pyoH80yB;-xi0OXh;q zf7RC{hriVc45^Sg$WC%T@6g=$^CzuxN)1%_r}o_R4C$^^Lrbf??ysJ*cH517ayhB@ zbwF0($DWIeftCr1U-B^BXuM$K3A9&f3geZpFL<#_D%2FEC#9)G={2RlV4B}5{*7c* z4ivUEfz3;{PPC*)v0V?#;pjHJ%chRm5%7G+NbyBrUdg`=M7*mhbGkWv_f~b`JD^t` z^;vyWG7u5RbP-|=rl+*jurSz5#^+QpxWR|$c#_k)cBgrAzXT0#K(B2V`7s%`Y=4y0 zk1gcBH^)2@f^(0YkU6VX2RLXU0J>d3Aiol<5;Z5zh15d{QPP)Z4rmTvYaQX(QCT~d+*X-4f)9#TR;Kx&9I zBP7P?iF8W~gH2ju8!%vuh41}--k06?@4Cu7qb-X%AwR;7p9jVk)wk~WNg+L z1igozk~Jc#O{I>bD_ znFax(pQ~n`f#Qu;HxRM1ZTg>5V;nk3P+H)J8~=9pNBKm(IDW&aA{)`(N&)&Knz3*; z)#r!0eyye(u9RinXDQH@>6OGyp=BYeF8}Z>aFV?cVOp~NXRZymBinepSuX=(>nw_f zsanJ_Zt2ZB%i@9KAWg%oWIwYvizMLn=FmqeqC6>}d)(_fnAN?t#8Bl~eqF$}Xb`u) zW4Z$q+(rp&xvoi8F$tJQXhXuo;SfpqwqJJ>E2bx-Wi3C<-1j}`8x@7)E-;M3%HHH= z$lkn=zm*iMdECC`&=jtqT$bjnC9m#2wEUNS=wZK5 z_?$b*RzK&hlJu}F>xDYdv-aQ0fvL@asU5;Ys%ke}Apd$Q^FyqW0I|$7NlyXGivPfT#3wUvN7@XA3Im;<7^(fUV$5w!tEap$;n#0z0(zGR_5j}>y)RBmfWy54$^Jco*!-=wZOR19W-Hpq)bwohjb zg+SpM_ya6708<5hGZYf=0A98u{(AZWLE2ADkL!xBP!w0WRwUfP5@>brT6>3_4tY4+ zYDfR7Uw?h*r9AzqtQDd7DYGM0J zNZ{e11mlG1I4jAkE&1xJLQ(dLV$S6dD%%!{Q$bt}#ew)?KO{WzPno;LruH&PXH}Ul zan2Up@zW09jYb#%Cuz*lt&7=pK}rRIV}d?Q=)A0xGt=UyIb&5|3Bbx^U(?BJ8vc;@ zaNr9WnQi`k1F1YrD`{@v}WE zq&PyvLa};6p{6dGIO_`RGDxncn`w4HIG z2=mRq4AK6yEUC;A;t9mzQI)-?{#&$=izkqd*)8y6qd1|9l!dk-Rt2EaC=+twG%Ueq zU@G2d?^xkK4ZJ-%D}=#e+)wV9A%|1DfStU?i4SrjCf}g=Ol%|d_oX1% zt^M1TwO+;xLnZcoSIMrmw_&)0|lf6k7sS=3jSZctY)fbk9LhTOBMsF_~ zmiAJttb?O3Rt4m3jHk?GbmadEyTDSf-x)2)BV{Y7C zx--=yImK|O)4KLE1D%pN*H^l;KRi+F>4}vdb)nQ93vwx}zN%EWrQzDRtJJ$raOmc& zy;m;N4p!+{!!BquV^2fQRk9I7rn(eEWsuk9IGv7;nV`?+=(cga859VmT# zGj|l3VdL2rC{dZ*u$XyiX07tO+T*j6THV#s+W+X++FK}>hV7fWEC|ADOtN~$A0Pj= zh+@j7JaztMvMY(3b~qK8uot4p?OMqFGHSsG0*c-GZr&7eMaY}Lb(t%)TxUk+Y0zjM zHy#>XTdZ3Ma-!}|Q)cn2rTiX)0aK|;KX3tJ*KC-`Vf3EGBrn}fPbGR)-(md zPq}#*Wp7q=km8+;GETh`Uv82N1sSQSI{So_roRk~J8-z?nfh5DOp%u9%9XS)7d;cH zQuhROBSHZb{g}%%JIbU!vODxW7A1l+t{-<&5u)>5~q^jENKo*Gpu=S)9JlV1`o9(DH^Si z8gO9x!(MQ{#z&pM+}1y0kl^#_{6P8HH&v$&RSdJ1Nl-)VSS{WT8eGx(X4l~<_0hiT zK&-k7I2^hnVgL1#q?9aPCja`;t?mzX*VS7+#F6VqQu*bk%TpusLDTikbpF{Oh1|ak zbdHJ*)UP`=CJJf+zeKw)@Vu(jth;GUUKH+C<~We7d9Abn0M@$iv+pM^auw-s-2zDi5gxANR24kwsJ=)pXi-w^hs7 zh}GUwuX&zmglH7f7u0S-8h^Z^kilWqS^cqOOFgR$gsb~cv@Kfy(25WZMedc7?X z<4Iu2x$bWEB}Fka2;~(QO}!{xm_=jMWwIrYZrvxcjUW}YUo@Q9OBQQ z^T(u*7#qzz563r@8XN=$p`zrx9x4xZD~s^MfN|IBS^Mz;gYY}WNK^(+(*N*b!kYd0 z{QQ)#l*?i^Lkb39fz{3aiSZO2@_Niq)q8_OIx6=v&difjvVCi8tjAWxDPY0TRM)1L zgJbHGRY!|DNRhEotIbXQB}{>fSD2>tn}yMo;YxRTPtro@?|dcu^05Mf->ygV>KTu5o)t#Rb9)rc zs)H1Z;g;W-n_QWmwzrNGyOn9;d3m`8a7R8Lw@K*p4ZQSGjnON+H;`JXxe3L&hUfh^ zh-+EbCL8p-cS%)`g*cWM(bxDT!M0;!j3yDDeHlz_A?{us_4K^RJ{j0^I8i2F&uN+xtODaC_`OCon zL^62C16+eYhUa~r^XM9t%uG6z6MOG;=tFfT`Z`QOTn)tCNCt9?y+!J4y{c!B|*x^gahL@u!EIQ z-&ITSUJ%XSU>Ck@y(e=BE=D%x3M}h8f4@@rR;;9XE;qKg60reGF0p?g*+jAOVgA*s zyv6;GZQ8HbJO{=*XS}1T{guMBE&%_pV!fke8a;Zh25z?dT?!Aywl2Gn@wFz?~|7W~x9NGF51Lx_9xDiSWYnJQvsR z_x%5j82)}JK9gzr`|WO~y}{4TN==V}O#2f%HTUCYk{bVia;I`Dw8qeMuVv1sT`kx5 zN5ZcoCB@esp1T)aXcV^7RLHiI8v`poh#pYAHC|QKW!2G$G;sVT^Gb|cr0&ZevrA~S z)xniSbz`sJ(oDOYNNb;*M-o|!sz08O0bo$rt;I<(6Ebjcjl7OpG=?xwO@{i&_r z@v89TF3yS5c~~gbjXkbY%oHA8B84GocDD%r+f~-WU~D9}b;Jini^EVs{n;o%jGeW$ zp(w~X&Za#bB5V#46Qf-I!#L(@v?{6fc(OL=S|!2;kn(@pG6J(qf`2FRWcSn$UTT0G z)h43t50sLquVHtZQGi%`rI6X4^S#~q?x&4XGKdcc15vGNp4WDlIS2Se)9Lv6S5r;k zOF9!cuWuiFw}-f2=5Hwv_;|UGWT`jPyB>>!jSi@G)6IR%4!Rxtgr2RArUT8`pyc4t z8Y$P=B|E$GSgGL4gM)wm>GyO8AEjQ75NY0bJIN|%jSu48*Of|j0nddJW8dokaE2Li zRWzARDM*H!oKEkq>BMct;7Nmq6^hUeRFoAUL$*($BWpMcQ}obh&%&u<`jDDbClAl^V*oen(#D z4a4<#gebuTQ8P9!s@ka;KD<{iN|bMnVBc2n_ST|EgKcs=NH?W^rq&olxbWj;IFnuXJ7bzLOQPcu=9 z5wi8O-gO?6X#{WG`#0RruCyy-1J% zS-G~L{92l$QxVMEc(|1=LE>MrI6~c7`m=b_S#^44CErwIreZ!g`=?^BEypJ;Vft3- zb6U?Vik! zgz$EI>5ooGr1f*3)8m&?#0`>a|BFyMMXZKv)5i{8ee{s^W@YM4D`p#*82p`bwVGU9 zQvB5}5KwTKemJeEJrka_vOn>}JYVzva_~x%Ij>LED85$msB)qp1nkuHVkw$fS0NO1 zW|l0sdadrgcLehqh+!bIct>|M(&-@D;G$7_!?%ly0p04UrNI`3*Cm4Vsv}fZ+wC-m zZQlOWhJb@HHfa;1(PEEzLTc=czTaIgQS=v@Qwlzjxn_0mHdg54`7jPFs%XrjIaL-< zhkjmr;kWDR(vJ07*2pf}QWc($MRY2MUa&ssN}163?RBkbddTK;<`_=51DV$-uaEHB7rqb}`e$$jIf;{uk6^E;*nyc91#-EPKGa3A!TixS9 zKRTTGlLN#2El)4lHp~viSb<1vzN5zyB8&aOfRN^&^p;-{6%CqTiHolJ`^ivQtJm*l3JypP(&(Sy~mVOF4x!Xau< zVK__WTW5}|kHR*Q5qG8K!<#x{?`Zx^rL?kA8^fmf&an2eZ{wPBQ;oFB+fEjzOy+($P?O?t)`V5oWEl5<4oll-5%wP$SI?&8FksLn9Et zH5Rk-H6T)3C6c!4v)~bg+@uQ=4(BCTSrcHqb2ZS0Al^GBpw>1KazQp84_Kyn6#t4yTi_ak(zBr7H zNm9w&EF6yoQ8qg{SL%M)5IDvgcj=-Zo-`28XPRy@lCHZbTmTNniH<|_&SUj*@1<;&1r`m zQ=i*cuDiNK_4b9QhihC(Jo(Oi(VeFAg$^Bv+xDEQ(Ae7t!FesN2JjzOOuoBXq;%n? z6F>COd8gGuex4^JPMFXv8`Dt54m0ZYny`TJ&>l!NNj-9YtjM+@a|0X>L~||U*3+i` zv?(Isp5l>EKS9HH$W7s!_2ca7j{oqm9RI3nac7dd|Sf5Ge5V z=N>)~rvW>=ooAfSDh)k%l{Yx$-@wg+mBJWRdDRY>@PYQyBCJS8YIHQX+?Iir;rdAp zBzrL!=~L#PDs6m5NcNS&RX0g9ZqIXOU|Wc8%Se~k{*XUcoNaP%6&xelN~UG2>XuEn zcfx1pP0$|U=?nK`-n>kTs6VXGkRuo+V%A>iP5sp0_;zU>m+Co?m#dh_*|d?en4Ie< zkG>y?jJjOWZ&e_$fl$I$TlT%?rlA#pluS z*cE%tOxq>+ryPU4WxPkp&uw&>j6{Y$)o2|1rE1;+n7c>%si(`ysBu&t-FkmkGe*S( zjMn#~f^ThLcf6iWaU+e8W0IXUZ9qvzN`y093CpppwKKdH?kD4byX6%`U*pf?JFSsh zWmb7$$J&$SZz#xIyS;NI;8(agpn4u2SJG>5eX|y1Ym*nQXD0uv7`dcKEwIrnYy4#C zPYfRkG>}&k{S;!B0aE(QP+PzdK12d7N z8Y25#%Y;B8*lp71+3cA0#VEpv8EH>BWW|e%g1(yRW6u>849%uhx#be*RS&?}7@NRm zHw(&G%d7oQx*P?A$?7wbp$02+^)i}y7Rk7nMnY5KL5JbesAkq%n3`&zqU z%OeWIzJ&AuW2md8V-ttW=awbAXez=v6C`u^7y=tH(N4?tAwknLakdaGs_@VQBLcpn zZ$2Ud!J{}KG6>AizE{@9I1pxavsQlE6gJtGXIzI_1Gw2Mv=?(BgxXI(sEimOqhjC5 zI=dYhO9vK)Jq2tN*(0h@m+Jzhf_(65*^b+hb)=)n>V&;gbj-#yS1&G ztMPfsqEXuY>Rm)vOH=&T2HN7w({V9{Q0VL)*`1PFf8{TOvz0#aiqaB$n+O2cS5ek= z{-Kx`wdIk}H+(#EnF;hcQP#XC%HAK#s6OzQ-wQ=69gQ;1iR~#4CUo{0$))+7`dEZM z)$e*%Do4lzpuAh221G!&U`&2gOdB?)YIEPgT`Ssd2V2Gtj6+qefJ9sC`g*0UQ_qox zCxsd^BZIMC?v8QmXe+!iXmQ!14BFJyOF`V#f)#I6e(Vy+mMPX88#7ypi`s$`%qRm3 zhq^C+oELs3s((vLQIIAIHbxQx%gba0T znzjhjRii(P9(nFd88aSE7BHvW1wBg~M-R1RY%O*8SpdG$&pwtfS{m7n4|l4l7+c(V88kKH`U8HlIIGSJf_kI%ttuKxH6Wj3F|@vdO0RmDF| zQu0fUx%a@ZrsY(5i9)eg2R6(fNST#gdPGpL`*aIAP^PTWz_*pkkE!D12Q3*5Bc)dY zjq+#Z8&kP=jp7R%UUx{PJ5DDyGJlPvo&X9N^9(fg*AIm5`q#*AlKZFN2fM9CdpmiB zZkQ^fwS@1MA#g3(oArN#C2?$8$E0lrV>Joc_#<@Ulss9>Bu@aeWG+tIN%LN1ES=`Z zne{%^LoFAv2^msI(6$+aLor#|TJS0~Eedg7aPJqhJz7vrH#Ms$Nc0{kN&c z1|#!7h?v`TWiAeZm#DLakjt8eDDmqS4+IM3JEyA(UReGjqBu_9?wV)qw`uYA=8Fwe zF7S2m<@5!J{>I*L&rKgI8*MKVY7{$=ihPy&LVVumC=@>#vA(=fuuC5Tw2Y>;P2C$3 zlVI}+=v2#&WBCZ4cjmw(NnSnGWWRKM5^{3lbxkj%$u(;Ggr3=6?qP3O+F_B(pWhPz zK07EZ1g2C+>*YAzGITk9_{S(Ax4VA> zNzK#f3kvoV@Nw~N6Td>?JG^5;ADVTh3(-k+3azixpKqtW|>qqkap-xnPt-1@0#f7nk~9|7Cx5EZ4Epn$GJ zuVQUe*A5}{txJhuhg$wpF+`OWJS^2E7A;j_Az_J`t8U~U5i=jl2P3itGh{&R(WEKgig0cLRS^L%HQXaq`SeoS7+O?_zDS4Um#;BbL zZG2_VI{;nw$*ftY?$85d(@2p!;-~+l8Po#prdbZb+j^#S8(m~b>C=-(WEIRp`$O24ccxzMt-Vqow&TO;Uf~Rb*%49=) zMF{O!ZKHo_SYmi679WL(aa$pGXvpc8J76Tj4^fK2sd!>K!x8-LHr!E81GPL3oDapO zno%K(8BeOKJ9i)!3PY)Wb9^=+v@Bfy^U@$HBBg|KHdoqa{rt{@xIq6d*QB$v)PpLt zBoU}>qo6pd=zcYt6DM2K>n*eSu$$_h1c4Pn8@+5peoep7XYX70@<<6*^I15Z@o7&) zF0a;okN>u3h}I=laeIY4J;a`dR<9d7jj;s-b$&JK_?OCc)N=JP5BNb-^-p2bJtMnh zcL$KblTI2ze^H53^;ceOm;ssR(r*jD_wZ% z2}Q7=`mFsEk|N_n_Q;j-l*uk=E{?r({=l=~q<`t#=WL zP-Zsi?9VN=rM+La7!g+q^jy|8u`GZp(01P|p4}eu;|RoAFQ^Iy57tkKY>oIm?-Tr;sFm zRJHk(t#fpU()q!J*5I4XFFV75+P_(*mP&q;=l+jJ4`dU791*6z&^C?$3r&K5UIEJ{ zpa5&mbwhXVl=265+4toXLMdIxCJ-blJ<0)C&^vo!(tfsu~WBZ!O$ z1Oh6?Sf#yipAdj7Zn_^A;T<1LZJNowtqom;zog~RPZvi>mQi27mL6?fkil)mkoK03 zN&^%|s($1}IZ(EC&80!}VuF!7$=IRiB?z7=`RtDyd3$I_|LQTK`Fo7|BlsG@oJX`^ zUJf)yKG-(VlAo3ZygTbi6&wG>r>2!Emi;LV2r_GK&D{!ELXETo4;WmQ7MG5`Wd&En z6MZwl-i6`9XiBG8phAMjiSV@gJb)xR4wFGuAO)I2m}@o<^9;)JXnWhczgCrdT* zP5k?8C8-|4Bcfbep3qQd#%WbaW1IfOvUR~zX(VOFAotvX&J+*P7kCw)+lg_N7_Jki zyz|V_iPJ^030&9?VMSLN{ec5Xt5_w7A_wu6>0aiEB5vgA6MLONBuLQQ0?j}E3fgYs zkW*8-loH&q=Sn{br{7#(Q0V&pVN-gv#>~XFc|%Nw4*p;~f@)sOVN(CBQ0V=enzBYg z1iT3YQOwi_3-?nN3R_=59wns|hMZQ(;tPAsi#NVp`L0sjUCOp?d`I`nN#`3ATyVFbj~>yHbxSJ))t|N94XH%Myuq zKw$}i=%^&xR)cAnU<%R7V)3TZpP^0{bNkt-39^1t;i4O7WvHqC40xd$A9WHUz3d9u zkj!U?j;uVLuWz)p*Xam!a4-SYgsp`}QCW(4f$Iv>|Qz*WmFc z{7}RQQAr$6h1OE#=lGw^T>rSZ!|0s(;<*sgxV<@yXn}BGb)Q!<5ne}w-)ISUP6Z{j zT@QQjHG^pS)*j;3~H| z^$YAjKJAdOvixjzU5|R}{^iH+HlX{)F=9a6FuY(!UFO2#>i9-;BSCf$6<+)J&T+M$ zf-o0Rw+Q`AqagP$gSf(+o03?+(m-KR*&obZ=@pN?sDb7an>ch3 z?U&vb%9w0EwiTyPBYO?HXZc!cqG{y18|l9zEi3@mc~*zcznqqoM?0MJIQs;Sf^T|G ze=Yc!eSvMOp66i9RhLwtNPF%zwUIIHO2U41H8ki8w&#d@GI^vT5Ggh+eMHXXjXg8x zV%UoA#}{~wAD4X#Z?C%v*&#lsm@m8?W5GxJGCaJtSa*v5V{~G3hh5(07Gn)3Df@!v z`q?~JwzMCJaIKsY^vCQI1frjwm4@?zsM#24RZjVo8|b27x?Ty+fR?3o4auuq>qKAa z`=Rp=J4A-|H_t(?vs(|`MNy!=h;(-BsJ;s{BV>%`l~qk%8=2cYcEo|XIp1Orj;5(@lB zpRhOK8wT_Zn;D#>HvtqPpbGSKO;5cZFls_Ed{C54$nE*d@|&U&IqI#7G}FwX!$cmg{xY z=gSQv&%^^m)OQXIKT7P|wrk&>gWR{j)2Xo&8c4z3KsSA~Q9PDds2oA;`*vnMj zQXOQjLPzc_l6BoyPw+W~U4I}99gFQT&xS5com!9gdM{N6G}T3L%+M7^ju!$ve0#T( znF>Air2sr#(kSKibgfgm7vo+D#Nu?#4ilG)o$TOUjdb%i-j=?}LQ&r~`>0eq&Jwyk z7AeCSBjJcjUwb}X_gn$^_k?d;y#pK6eg@Mnqq0x$SsTD()154a`7FKRu)JvJlulK1H-M(!U1V;< zdH|M}*0P+r7!hU(Af4{&#PcuA zq}jEkPx{|^iIWp3ln@!C@zAv-w>n;r0X8v{kfre(o2T}5c1ZG0#J3aD36dX`O42Dy z5=Djzq(%Uaja#%Uo+PmI@67b_MR`NxO{6((T}j#87RKNN`5jy<-ust<#cfh3XYWh8 zjg4NGzN_9LTZ%saV>_8XV&J!($Nhg9_CXiM>LkCu*EqaLv}$hNqw~!w7#!98adp;b_1WtGntyP)ClC%&PWPv?6;;V zJ+s+3x#ezf^6F6NyN=z`ECLzo7))r=TV|PDZ1}IWgdD#`ia7hDd+E~~mMHV!t;21T z$kb06V{3phPu0ZRLxBQHGjh2^wZ!AXo5(5LQq_W*sXFju-BUrrmG%Pz!)p%~F-8UJ zPj-P@{c&ZVESu(UoPM#vYailll{g5d#5H*MRO_nL&_nN6*%v`Co>2ZwhY)5VSM!v65(l@k6|H2vqj5NcM%t zf^ZzU%LfiyII65UzFOX8#hYp2JBEOqRFi$~=Zv}oo){ZoctO*zEyDv2zPW)hQ|T~G zmjKsRYD83{)?Qr{Er0J8k7F_@7wwF zpQ(y-N4wm=?#-Dzo%UsXJ=l5}zn1YcsP6TLo|BiTla%b5fpDSx?kz=J=Zi;C4nMlW zWH<6Q6;s>wZHi)64LP*u1C^%15+cd9U58@@%ilT~)We)>zzf!)HS(uN1wj(Ge<*i< zaItauz5i@2nt&-`-^u1sz$Qr6N@gvcyNC)@nGpU5m*iY}+dMpf?CVa3ZSA#+Ttjpt zT4*cUhDfv-oRcA;>IO$BEFYl$7}KGPD8HHE9_2q_@7{}ZuCjhO2F0CuE?ExnE^%7D za8a}P*NDMCGC5dQF&&(1#O5x;DjDS_^-M}5dsF?)VjOy_!=MPe^MLs_X*|_$slu`! z_OFjRn|+Fn?&8=ult}>b!VHb4rbwHhI_7-t9;7ptwtN~A2jj6ns*3BD&v%l#VV5VV zN~PAOM@8|(u4e`D%-cx&`!%XokOMxH673`N|th^GQF8(JkoP-jv z0xt-;j*qkSGF-ZXdVv^Ag^L}BwAt`9trce?>3MsGUb5Q3KecYpn#)uT{=Usc=|;Wu zguIDe)aRR=(@t_^8RhiB0q_!>N5*ahShzpYTJ%~4?Lp(^6eHVX1wMF%JN?ciUV&!t zDwaF+u?@H*!G`B8gyC)*o4=>ba*E6bD%+oyfA=ji(!p*PS7ak1scP_0_ha2M7k->ECNFe z4v05J+4>dt(WiMR^NlYGXTKh|zcCXF(6)kh%R5O;lGDMUWi-vRWEz#TDPA80dI9@% z1+o@;fGo_W)%AaMNoVhJ>>tkYr;fx)i}R|zxV&E|r?}1SNA47rooM2-fcqR*;$V^5 zSzIei+*G2?nNknowr3r0leK)|HcJ8z>@{2M3nh-ZR#)qrv;|r6T8TN5-o|s1_1Z%{ zrz~Z`*0Cg8O^_rq)l9g*Kc0p2D#u8bi%?HK#5cYh5cIpVh6u{#??w}=N5Iv)kNUvA zY+EBjdI3XRSH7+7+8rai>n?R9rPfqu8>XE9$T0BQFLz+~ZO|o;k!3{g4h9v3T@RJa zq&!v}y#Md`7`;}#3p?ufe5NMo+E&EvMB6QVKK}`1*Fo0tn+;++JODO%5Fwd{#vKm2a_g5`(Y42^U|PW zPsxfVv%zHOiC+o!&g>=-+R4FjtjWt>o@paJxZa!h@hfW%-_Q+?*N*q z38_KHJymrXQ>0aWz3^UDX84HTn&;HU9(^;z{+B|RmS|=%Q}{~gaACyk=C=cdM7cln zw=Jsc#&v!UYUuxExc-VW#GErk^43WL)3W}dk9ekO>Sz2mVGMkBWs#KC9}@$s@i97i z{%FTUWVk*5w{}WN$|+U6r%N#uWtnH9dUvUrL(PecE$LV=Rl#c$>aswt>=um6S3I z96{&$?BetFnc9^OBp(Zo2v+lpQCrBKkeWBicS9Y3`|g{njb6_U;boND2vv6xUI;t< z7`e`Q7(r9S`L>~y6eO!T9PUI6(zPk0U0sFNd+Ngb^Ogs&lgGCitgFmq#J!n)qK z8Y5l0&PUs`Fdd$!l`XARhWk_(}=3w55(8e#wlbb?^>DxBwYh zRer0l)YsEQ>!6sUZ?yNLW4`P4ux+Q*2!AAooN(ti5bLe&T)wchOiL$>AkvQ_kV1R^ zJRW$^c8%GlUy-O))b};A46~B5eczcUv6YNu01`j|*HqX2g5x#!wwf_Le zQbr8~`(KK);&1(SMm}r59J7jL?)~`-eXT(8k$U@`!)T2VSARXt&d^F9Le{45o`(N` zm)`p~$dB>A@p^YuBqug3hizveUz=F$Ee{8D65s#8PjT%8KuE53+h1W_ErdLLzCtiHPelw`DiyP07(9N+?R%{g?#|A>^Hp$DYw6*~ zjI<%;YMSrrL>!gzxhf{vkMAo{|5C}@ev$MQ3y_TWjV~AGXXfh5#irK3BIrmK57Wdh zSmZU?P*%g)wX8^%vun{j@44$lpJ@q2yuYg4&w6T}l3ZtV8a#!cntmMpY`SLY38}ex z)9sf9uO)+O@M?z-G#(>(u)LRAyp5b(Sm<@jnw!%o-4AQAbxAqGX{{lXC43~03Y;*~ zr@CL!H=7?fchJW1==uTcoyu$@gLXt~z8~8MtP!ld+^dV{Vg2cc9~K6rT>diLravhgna#C|Fgw?)>GXMs#B; zvs?-J#M9~i*a#r`ys+PnuHU&kQz4I@xYg@8eLJLge{oR(`?(nZ$)9n1P?=x~;BTde z5{rG`sdrP1y*Q#-AnALi@~{HMfiWg`!`!n?w!wa6k5a4V8l-N-Bm8($$JB=SsP#=0@{T zCl<>EFIv~2an_u1fi#hx+^i2(p4l8i$gDK$=3XA&9V2l>!(*!WM9@Sc26SMLta3ja zZ`7Dr0OzXd@jm^YydcVVnSnt{m9{gH6`q8%ZmMxVK^s^uV> zAr7?C8v+?CSN{}b-lX9GOuKo5b*u*xAq%TU@OdvnUA zu?Z5Qc0FdDU(OGgi&)b*r>?tN1L`?hG*18nq8!{0snRO_w^D-l($ZgEcb*~6HGyl7 zq49K3c2BN(dx_WCl{k#bJ-fTzY$MJejhdcBM8iN$G-rwo1+}$ce>Xey~GghhypQ2Yg?tZiOmYzX)CRQ+63@$Bsv7cu zlaV2AH4xfbF_cxqW*1WY)Z4#9WtLf?DKOUH4z zhxLTU{#5@tY&bh(a%;pTExng?y!v(Ki222QFUejx<7F)P{9M1mX9>i}+?%H0wb#i; zT0dE9v`Tfk|EP-pQM$co@j-#R0>4QgZaQ2u2y)V~iiO-6;+rv8MvBRi)|8l=roGUH zuyK-$=EIgLs>2H5%Bk7Wva>GCqQ5pfgO)yS5_es(5@2$7Zr4!_W)~y*p#Lpuwy*3i zGhLGrvbY;@IsDzDjhhYcU%~mJ+s#xEDAt`q4qpX+Hf9lh)HHZ*_@T6jN8dU+MTk+; zuJ47cD!#jha4nQ+jzni4A;fhlhO0=fv&@-zjGPx*ejC%}RPsJ-i)S{xKKmHm9NRUK zmn##}RUqvG%bE@e|9rwH-ms625on&La>8vrzq!{xhDxNzXWmLt@9ozU|8+FrS@+wE zz!<6nHg#w@pucnVKhfQTiy@Z2=SS3a-w}JE3x7CRS$tr#dsbFir>8Uc zmyyjj>Q+cx&q_+&cp*Ns)Fx}VT6;mbN3L02cMhT;ya!;N0H~O`?a8jsq!B9T9KYh& zDC3{E;suBg-(k%AM@qT;2{@|4f#&$CtCwy_TP~T4IqqV_!o{OqJN}e9e$#`xSatEr z2-TTDZW^EZkYcH(WbOG1rVZ0p<)J_S9M^`tI)JtMttlKx$9L#D^3n=+N`l)A6X_>2 zk*hX$EbNOlq7Z)NQbv#+RBf}X0m(PJ8qABZvuSTMbTBmN5 zQE%J+eOn6Rw*e*fhKJJI<_!O8(j#{S#s)0!nhYj3UEE44{PYQ+`=No4eW-oGH9=Xr9@xzBxH*Y}!? z0*%7IK#hZ7>g>7v7srl`2mA2^nA1W_-BMI)Udg2d_BB~Of3$hcYjv+AE}w7L2MQR) z>T#;^g`8U8Uj9Ua*dw!u|^_^4#rg*hg zq)~tx39r!_6`D*V201;Lgf72dJ)9_NaVw;y?P|20okH#1$JWk2?5r0n-^iHFgg~JdX%(xs2E@Bu0&S8lQitnlN~?Q;SpRV{B$!tNv-Gl z_GvZd6Y=npHQ?c_PL>3TrAS?J9_&dy#dqubF|OzH4GdHaK!ch6_GeAyFuru=-Y$ah zpFBSy?M0BpBt~E|8m9UB`GE+8s9xg!SG&f~DOUkDwgRnDsfTT^j#{JYYhEQrleYOi5=z|NnLn>(LoxDja zIIEd+V#xg$ECO+>qMz!%;=<(|gkS;+v|iD+`fcRlcBv`q z>@?zD%VgWUX#p+PE?J4#8jvu8J0TK;_oAbFT(-9`E+m6cuIUfRbv63>x5{yFZJER9 zoo8tW;5DKPF$sx-Vw1s>`wn0itb~(i3vr?NZ*WB6PFK4H@%c9D-Ck|Y+dBFv+#lB3 za1Z{Qr=9lx;2kX-V=Z)Z$Us&1-9yv=ryyPCMIKoGbg*9j)yh>p>g|`|a2xfD5`@|) zHB*U1Gw=MVaL~`;GMU^GefBf~eeEf6`x;;iza2u|Wj9{M8ljr7&eW<(MqYW)z}}nSyx3e=(MOD(+*a#xVO$w0 z|9)cmQ^xKb&NzT!U{Y~nt4cFH(=$t`r4a<4E^h}%fv#4M=5~o3&FYVQ)=s^kS%4jW zPzG>jVkic8A8AHY$Wy4bI%O9!Mb_!HB(rIy%?#o)|5-*UYQAaAL--*e%6nWxlwh7- z@bd@^Ue{}`2^D~xo$3uxOlLp_NfLXdt>)dvzDKOs63R=Piy^gRaGE|0r>UvieQCjSydV-*)P7PW}fHo|4&Ysb-6fd&rO^?lX#CuLOgCL+3%_*>JJ{T`d@P#<9b*fRD31yeW11hm zDzsLZd#Ri0mTLXA{pHD@EO)G24O%8_*TA@olc!*}kN9)WYRx;$mC9iix4)V#i;I8hxh=jI9HPY+zlOApv>tgQQra}`j1 zw*@zbY}e$hyG_J0s0dmA1F^;I6k8THj>$FGJ3rFd?CjwF z?b-OHtxgQu6WzRCcy5o{%a-JYt_s*RBz;vP?7AM`Rh4W_0{iX z0OMr`^?a4yaj~@mqdfD=i|3p7!-U1S-4Gw^;DjG&sG^nCNtpUC+h=BfN}eFjAB7<8 zq#Ss*JE1-46hHM}cN$5Ue;n5vZj9!6YvSWL32#l-bY9t7uki|a%Tk{@*vJz9_>ygI zk)s`l%b4FhwrX@uIqYTLm7@GTe~v#bS8lOm^T&6#xF?hU%>#j08@4*sJBBX;v7p4=q?6{r3iYg+L>jp@;Ml*~H+5;TzL z@TzZ%(bL$spNH40B(rK9B!vbH@%fa9Z3 zAUoLm&&ju6g|io)T9ceha$zVh|IH$J{G}YWsTH=lEvUAzZ3o~FOTc|o$*!@A&&dtc zv5WOY%9vOAKMoo_C5#BviURI~m5?N9y|7iAAv~|pHWN{E$8Grpva#kww&F87lE&@J zlb8E6@imguyy;?`O-|RXTK0=tTy5I$L)0v;dc}bb$bV$iABSd7Y8DQTwHkpHm-}v= z-frI@1MmL%Qv!pT2XxOxzT_!z?Of^&P{#I0n6lSKlSH<}{1mLe-s`jpSEFBoHZ;Kd zgu_j0lR(>mQpAS}00$dF-v^dav$RglmMoFR9$!^7IF6ik{;Ii&1~?}_OKj&%SkwVx z&ZC2F)Z(-$#94$OuJ8CkQG+?i_A(YjcrvQL_2zfV_> zG6eAXc+s`I$eVP@+6)DKkC(X{KQR+MDDo+5u_V#wLGPQ7ED9AFfu5OZYGv&oy{dtXD1K^a z&S5sY@r-qjcl4$>b8ObzgUB9td8D8X$lV~M;%&sZLY$+>8P4_mfhM+qC(r6p^Xv*q>TUg=-ay2a!RhZxi!k}j^8BpgDJwPb0NEMk zx3j(T#Fx-J&3}qSpe%KEsxdN|73N%!xx8rN)zH?&TC-{5S+is4fr&|_Ws{1x7G*0M zRpP4T{1%O2m>JIidLW}l>4o^dzevbZ$tM%UZ<5XdN^N?S%s4cfZuA7+KBlGd_H<@Z z8gUgI?{ZKs7oPc|IUxtCmZve!T3ty%brEHrky}(e=xr^}CYE&I8UCS?e44$KoF+GC zBb4T+M1|AV%eDlSk*lhA+oJ(Dj)`ZKy-T{O5d|@L8krG<)~`&kGxR|WKioZ)Y4D!* z94ZRiMdXt(f}bGrUc1z<2R9L)e7s`}qf-~_k&3v|nfCX~dQ(%0Y$~C&PLe68vW01A zND>zd8HoG;2)wA-E1xXF9(QFWyC7SeO3z?&L>!QuCZ*s?d-+^!TcNT{twisjox3V= z_m=#PsrVL^%3(>Q+zVQaNGkeZ1ifQU8J%!?Xu!CWXJ^piAM zuQkpWgdrEstWW87@hcu6!sxgd10FFvlgPRq-b1lf96Q!Kd* zUwmG}258efQ{;}12qCYNB5MpH zaZ?bfrgN8ee$>|SRIj!Qw*{BXv|si1v(n0q``mlwMmUw8RNQa&H-3TeLlseN$(8Zd z7jNbNaf2=_gl~(k(JaWg&L63DP-pPURm*i7U2meTe)G<5otWYO{Ls7Ta&R+g4Mr z{k+QuGoygcqoY){S)o77#DX^H5!ivck2(FUfkWYD)9!F0O{EfGRL$x=O+ny8ZHgOr;N=Rfi{`eu{PPWhYvx?_-=`~Uq|9CgQVn}5Scr&cK^^B~8k#_7= zNR!p>-jR(cly_#0`0u;W_|^xVrcrAei+Xy|i^(}Hv*=H!RIz=g4imY%ns5V364znl z&ErsK9b(%OT9DX3B-Nad5T=tqgzy+Nc_&J`2G?^7O>C8?$jF`WMkzl`$oj|e*F^bs zkY>LiwfHk|;EU>&XR8hx>Pl>jw7j5ajk*w^YC8P~(Z^>Yy-btPzrRCGZ~Wtk^D=t4 zWt8|Ze{28FqvkdqupDJvo075&X)^j9^nC;Pw4fdEMOM~mFp^UjrurGB4ui&%!Y{lq z0c0s4pE{-ZbJ5-r1~s=s7swU;mLnTFM*y{4sjnR6?+JqO_}k#uDdO!QXuq$ks>2dG zQDv~g^cE5o2EEhD*e9 ze}Dm|ZpUgw-_`S#BNz3_wV5*ec}YBCrJ$GMjCrKe4NEm64H7`QnJU_x^&ui-0`M%K zWjKyFeA^$(HKR`dTcfr1v~7 zvC1(7*<2%7tTCP*;8$|%OjR#?-`F>eKg|UQek0O09Yrn_68CcYlWIZnjRl#44t1{) zgR3UxaAD-W6dvmOEUJ{^(+Q+4HnfgcpLvhBR%9(%l{jw`9vyV}!|!_T;mwy^5WpB1 z{mRti##1Yk$8>X&Epa5VTEuzrViOY&I#{c@2{#~9OAanFcOg|&n zzYh;NG?`0z(jS}l1+WeRt_4r9x@9t4j!{j+e0)SozJFJ06bNFNMCqJ3124_oTs=Z}5@uTEhj+_Fd5mQ_BUHy806rrz8b&hQS9mo9BbvZOFJ-OSxaD-g-gIkd5lbxsG8-KX4!b|?TP@O=m`~@5=!gtq&ymolW86F zPO3|5lYW~09}>47vlqhRzh%(H1E->6cetiJ%yi2ynceHM7BUIFtBZL>J8rKMnYu3U z@TNw`x>6whlgi)x;)Aat*EmqU{GV-Gn$?i`up=2_V{W^XZ_b{Y_)vTKjz3gIUE*5Y`D=bd3Zd@( zx=TqX2N~wT73z=sNSx^Nv)KW)MTxU8{1e(fMQmJIO_s*Mv!s>um!dk_kmMug8L+>Q zed~-?Gr+KR@pGyKMZS(^eO_=|8CYYt79}6ryREZ=c|FRHr;)v`W!VP|LUKknkZ z8Ot?~T+Ro&_cUYB0CJzonY!8DM=Jb>vwCF)*B zm?8!t2};R0-Q)UhZxCMueSl$#K$-ZZ4#x|<6i-qPDHc;tA9P&lZh21tUORE&FttOT znbax#k0Y}n;aUgMe_a`5nTwkflh4~=ll=>ys9vrme)`A3!IZk9wZtzIyNHwDld-VY z)oOom&2xlB9#vK+o~mbKlOd8p_UV%~M)6yssL+W$3MV)C3SnA%F6e4B%WQ&Y@9fRyKum@^A(!gr+>BWQ7D^svPPSv*Q&QZI*sZVr!qW ztD4W{CJV1xZ7r6ZgNKLlZL<~%)1$!E@Q8EymyhdAT|60BPFnH{Rk@8R8s01#1pxns z{qp;K`zK5Ax?iCRm;|5@yS(}2`*c!mcJ70o9`IXbG*3}g@o#oYs1U0yXSWPm^!(o6 zcSjbAkJgU{ENO^>EOrZv_gnh>&p98ASX-{iTp*{v^w`+r)6&u^4I=wV>$_o;1x;FN z>k_3kWG!SN$M}}U8F7$V)ZzF#* zaI<{dVqrJ737GP_eA{l1k=VMNoth!tpT^`a>EM}9uM6Au;R>M@N(aM;=Csm-iRD*b zAulsOblq%oG4fa0{Po{jz-8$CTCHjVnlrCk;77t0pK8bDJA#wf-kZ+-Q9`P_8}M3+ z)=%YMuGN2ejYIuNjCDVcx)*CK%!e~k0JMFI8nu~dg~dto-0lKxYmLvGs9w1lVK39> z-;`>Z^%dlD{r%+jH_^2H8s2xl4sW`@dhqnjy=B+fNg%4*?#NsVxo+E*fu*sp=)yI7 z>TWJ!NG7|No(oxUr@dOyc?~V@m-GFc=6B+8OSFvUs#v(n9V6_nqE`>rm~7=W)A@Q6 zzF3yF5iTHpR&&HFJEiydgoFOlou^eQuWVzOLfz%wA&k*4r^z0x5}Dr<#cz4#V8H>0}R&TG2;MO(oA zgl=n}`fbiFt#8#b0<9Nwfl$sFD_?aclzk>Niuhxa1?>Mqu+{Lw80G^xli0(&#` z5<1Z37wCEeBV@%82T=iyDu3yD_L8Uj*+Ok#xp9ZcF~3J1n{()t(z5X4Da*&veC(t7 zA9aeAo84ud243}oTnZ=W0|$&Bc!|;_pi<1ew4K*acE#{bWH1AinqNu_Ue>-OUhJ-1 zP}b&epHieVQi3ac#f%06NAJG54V2M5JccLG4{*dqH4}bCXa8D%RMsTEP^PNc8Z}_l z)M{!EAz!i*@JGS?L|?)n&HCq4kL9LXZhpi{e-R9TCDsAM(Tmi=KJDh&C+_`M73c?E zdH0Dy=3tbPI8Du`%^lIwX%{2-ZP?+ay|j;1od|)s^P(%Mz z(deHqJpI|TJkbi%#~G|Pxc`j_M%wn(ow6j>kR8W1C%39(&vHG#*ClnLZnWH!cSx{) zqbRheqRnm5S9p))R=r{c=X5vH%40?hZsYH3?k(d}HjQ$$1vk$$KPV4$!_3tTO$Poq zd%yQp!tY6pZ&zHy*bTIkp5AJ}y~Jo?xt&wLa})%p1T@woSlC17ky{e)m&69$t?*wtvUg}!m!Ld34zR^*$4HrzL!gI!9o=<5en}j6x#n-R z8Fq$t8E+b-X;@}wUDM2;aK#_jQL>btz^>VNz21E$(xik5fzZS+m#%}J!ltJ;n>4Ve z+<03r5AU&nYwMqK@km5WGLQ3~5!WnMGh|Y~q(8t%s-?5cO)2VXaB-TYd{Pr}a-yUs zZ8BiM)7JAwxOL(Jj|FsST6QtUeDC8C<-c(b&J&=A% zuTHRS#Nq7vb#K0x0f&2Ka?xNOvZhW5i53=A2FvG*KJx3D@1b+Ou?DsYfm*lLu%1*S zlkN7;zG)BH9k0r1a|`rkvX1UWGYb+7&{X6s6RIEL=J3|ha`G0mxnF@xCg3hcNaW!p z;!zN1Zi`W zvf$?4_jTLrc3E>GZv}EN?`CQJPXoUYTJKREka@{!Vw3q#U~^iRCpU%*a2^3?`Arp$ z)}B;VEpqQJNldl0I@`Y^q;4}y8AjR;SwE!d&#|Q1C+sh|ru5#vPhOm}e0mROEk+rO zGj}=6H?{A8}FWHfXySmM((td`QYTt)^k7b>_{`^q$nPg_1v!(QKd!R2H4@MGhXfMRH? zK{ZGG$kV4j$=*j6Q*gzQ>ZyWsw{uV#&jM{R>5QkF*i%ZA6HHaKHnL7BYV$@9L~`_{ zncCuoNQ_*B)*m08mRMD*qBd`|k82X4n<-`Dxm?b*S7ZeZJ0pnM4-_6Do$5&FuOo?m zlX#C>HfX4f)Qv{Y@iaw*SRA5%JU_F*znth1^BtE;o#x$IcwiQEYGCU(|Ne@%4}=!& zy>fYJN!r#mxle%jJD3^4_aMd5`+XDZeUr?u4XMF+QpxdHxNM{l=^sZDBI9(5mO^Je zM*wL2q2e4t+p=s+E>3kv^y2rYH$8RiGBCH5-N_pnz6|{=#FH~;yU7|Z@#H_Zuc5-m zs~x1$-fFgz8-u#Lxp-G6($I6!WdXC7Et1{~YXxe4rw3mE3($A1o!xM{qIAFxz0SUA zKf4CHm9sBRb56eaI{vi{?3$;?{yN?K)}4SqfEd4_iZQ;oZ}Vm>U)Li+hp)FmD?OR1 zecYStqe^8Wd6Qr}*`9b>BIZ^y)wJG1Y2DvDeD`b2PO}5?t&L~+oCq(iYhFw7ccy!P zqlsBg<86uT;K>OAt!5*WUIHA|_O?VsGh14wPxWF7>f~ zveZQP7j!Fn#GA#+`n$gJ`}R3S_4vwc7qa7}Ax^MiCdFXXlId2Udn+e*G6>cR`+3Mc z1O{7W|8^?{=loqy9nBh`f3QZRdMgCHyC>S}o=t05;I!BO!~LLYr!c-_SA05i_O7Y! z@rx(l+!HhYIaerEsz3|LnnVk#`Le4429qelcm$#E=-b9+HRERG_d|w5)u|w<@mgi> z=Q8B`!xPvT<&xgUq;i>jn^U(^S(PEA<}GbLx9f}nqO?C;TX_X}z8T_E3^iOmWfaqQ zE__P(1Z%zR>yWN7#kq+BA-p)alA65XV{DibM`|mNtWQsQ^0XSoyK-5_U4vh<^TkSE z{oh)J(?DosokRYrfQ^DgWQ|A_4y$rtsSC?L#o;1$BxQ6WyJFr}z4O(CZ;0fV+~t1$ zdaqKyTX`pK7gtyzpHACA$c!OA5bce9+`tMw8i55gk znH|CU!8w9kfJ&vVRA>%t4rJTsDEadq*{&sM+uj&-qH4lYV$?Q6eAjIG{NP8grT3Jh zT+hr^WOF2SwFLqBz&7b~@RrSlc@2tr&YGg-1KDn^{)1o5RE?^DhYk1-t@rqDHvGuV zR}+H9f0`AXQ08w|oHwtkZir{Ll#?v86XNnK?ASGnpgZ+6a$aw-zSkR4w|D39i>k@w zy5kYY$d~V}PvrjrNzv*$!z7ZspKPb46s_Sr6j+&yHz<`2cWl1nn>Z%yjY!sOgSVn0 z!D1-}I2?S{fvC*V=(Oj8RVeohrtjXWLEao%yT60Jfcfqc7jU!n^#sCUUW6aocNnMc zo2+{!`N4tXi#7AN*}gBKkW;w8tPZxqxH2Rj0GUZCv|_!le8_t4TDm$m%G1}P=3IZsw@iz;w2_NbuOd$E{3SIJ;O)X^#`bNwA8dE! zwTey36d8WAa%8W*y(jyegzLdj{U;b#Wb4?mJ(?BaxkAFJnK`W*ZZpD7r!hBL3rYVSm^BB#Nxew9FOjG z8ox`}bPwx0^n+=s=N06hY1mHhY%#MYZ%AHpRD{58l9O+bo&0&Nd_*I7f*8XDZ#OMK z5->2PWFZ9Z=@B*n*&HFmjZ2L*lruRGg0)_83OqGe5xK{=-`i|F54+=*iAct`|Dh-Mm7l!A%injn z?PZba@|zQ4yzO82&4xH*g~9X}=GlIW_B_TNZF=TJJ>RL80QJ08oM}YjHvE^J*pGO) zi>T?lk+EK%%N!u2d@HOYZh5@4qC<-pLes4#9)p5}THguDx(Ai}g)sgMSBt$nImUn7 zD|f1_WLC9`c}P#W&A7)@mr>t3w6%vTMKV=ufeS47gpGY*lXby9#@(xv3sy0u4Lt|l$|>igfKY1?E^>oE;k*TRp(QK0~jBdwnGx|Vr3KY=qA_Hi6Pe6S&?SsS(-@4 zKMpRo%=6?mb&~U_*c8>^jrwIG0o2+=o3C8lwoCd8Ic-^xMtz7k0a?3E1h^l?Kb^*T zgI=m8+*ex|DY2swZFcPAQXpfVWIy=D)#T9DpIE*hF@dTg1RhcT&BOyJHcA;!0Cyfr z#529NN!`B>VN1)?ndi0e_2=H+esNb#G&e)po^v4tSpCJNqJ&R~wCJ^s3d}6}`Q+4B zjJvU`fM0QBvyMZt70y2I(YKatIWHd{j|?vfi6h^G6F|@nrFF=e+4V_bjU8~@W;L1X zx9j!c3*D*Jf7L2bivM2&uC(z za^k>BqA1?BMTz_ONZ@svKQIcJ+*|d#SL5D$GRw=s^~hV3?RDu(|DEAX2Blgp{~pEB z#L1mjk#Pf=+3Ed41@K_elXvgGSSdL6wpzrFAW-Eycp0)mZx$`Lb-%cN`9Ax}rx#I} z`P8Yy>=PV^i)Ulje;z8QwdDnxi55*4R*T@$6$u))Qk#p~r+W!G&4%|_>#cA5x1_s^ zLp}EG(0>Y*KFX-`7pxa|oW1+=+Qx_fD$0@vQzq2HY`Y){V~reqWtSFLUa%aiTI=Vi|C& zo61_+r^>+DPA!%!3<)cmsa*1;wzg=dMTorLXqz)C zXvga}jBk1tQv`yFD7R|7n@qyHR2J~FjiK5UHaB0uz=#d+Pi_C9ne*pe-o_NqwOy($ z774OfBTH#aeAALzpK@wD5jWLG{Vvm~X7_%rzfH7Ssj=38@VPZ9hpcj+FRKvr zc{_B(j*S}m0Wkh7-TA|gNDP+wI;L;8RxEOAv)#|3T`oVlBcGTQdHv;)x0!`s1K*Kt z#*4l;xm|WgM3{TXs!Kcm_0|}(6B^6?jU7?e@2q!~=*(~2AaK1V^zI*;fF%FG2MKji z&7gx#<=DtHrT8p_1X=DLE3mLHKTu0x3hDm&eP^Z(j%N`!5$lg3X~KMe0AT=pYS-U* zncYan8-IsX(F0CCYO%yG?k(r7$Nv z=Evo(ljN44D~j2NXNwmg=ciVOkshvQGNi7CkAh{2|M^tso?5jE-uf?Bt~yTlTW_(h zC;m&4WrLI2ue0E@CHZS^q$fpdo|U#;tu{@@M;hZ7RUP!Q>$1a~E90CBhLzL<{%f`@ zESNmhO0rCGxcfn`C*<$)J5KWvxs+e&-mYfx-v}0O4#M5Lz2o4Pe4`||u$Y)<>L6Ww87CQ_G*!<8}8EZ@w?{$=eQ(#^u46A&Bc;xsUfa5sLQ zp5G`mA0BI7B`}dwtb4#PCyJmnL^LM-XO4AaG@g#9bP7Q6Gg6!Jh?4P}Q&*@Wcd<6( zoTApv%@F{6*~Yr2YDw7qv=I2ig%8<>#(qK)=D zWr81r&o#>z{p0B90|Iga2`K9GN_r}3R%wi>7^;+ZsGa5I>{YcKN*rlT#Fyr7CJN$0 z$d0(pioTV(&dsgTFsy2pSZ;1AZq<%^tjrfu3t5UwTIwbtiKba|IkH_tb8;>eM~#CZ zzp22_`1e9d%wkk&Gxtp9{*6NLJ+az)Tk}ducW`F3$#F1_P=(%&>=4pv#gkSDd9F9OyTA-!Fx7o^VAq?F$oJy_|_Cwf}n(c{1 z&nBVf)Q}8_v&#yG+6a(>v0UNBw3ORcHY39oj3D~7mM8`2kIhTOG1WW{aC?eSii)KY zOI^9D`t1*9;BSScpaUy3d`Cz;#=RmoOle%1n^%DA!s^wN_dZvmntP|Xf*1DWuF)2{ zRRUBe8=p+%$poe?ieE(;*9pcuLf_B~`k`U>cA!?h-|6a}pU`46%VgCjWfD;(b`>pk zNXi)LlZ2V(2sNGBcCg;!KddsDG--@9Y_NmoV*imJ*^}g8Of-dR1m+Fm_K3eAYCVo5O>zxm!7!wVoWsAOydFCbLY& z3ePEibLt+NS=QVXa@QOBJ%^2y&0V-ZTtke))l|m|u9@E%p5C&9$n{HtG7iW4DrEB8 z=BT&ON`=pR)ie%T7DS$QNoQ0%PFj^i2l`9v${=Lss#PzYOyO;7%hm1?y`yuS7YlE( zHGi+E_9alwzVq-Pyy(%qVCzlQD#4~6?qjG~$D98J2TvZ!Ll{g}<1Ia#ElZ|cht*g^ zsbBH8U9`f2bR=>O-h_$L-hZQwz|#k7tDNbRUY3rAtb?H-Ehww4k}6lRPZi=ep?})+ zPm3C$}Xereqk;wac&j@w5HLd|}- zrcEm1O9JX!89MgJRsvcUAa8*CC!|pmQKCgS;QfM)VO8+z6MMxI?r4cBc z+5xo_uKT0Zf6h{NLn-If!)l6irdyo5)^Bg_W95ppNzOv3N|@YuI^>U%bsG=oKaSO_ ziqa2We%03H5WcU0yimPjvYam4UeT|or&1LvOI;h$&sZNjyb2VcE=H9MMH(;&?l7;^ zuOA%nQhj*;9G*$B9kHR8H`=yE!!|H7_NsR{hMwOoY+y#X_aOw8i$7E&H$^TIt*q`y z`CCjqVANwZv=@4N_cm=SKEP#_7b$pygo%!}E#}x!OUSHD9e=kL#A>!Qu7DoQ-Cw6r zg`6}a&IUAcZoMsja%-?CNqMnS-o92ht>+Zq{pUei(iNi@N&>iWa+u7KX>CKX7ll7uiNjB@Mefl%)U>6#Aj6Rk-5vI+;$#7ASV zo2qJKhcaE6_3V|IlM8#LDu>NjK{%eI;$KRscA?MLTX??OInmbzd>6xRHs*~#E0ojE zU-sj`_hPabSkWPG9-aQsVcjRVedv%SIP|2hiqWQs7@c7E(OgM^nuo=hTq zY{51;NWPAk&H%R6j@&VsnwBb=npRS{HZiM&s*FGn??4pMfZpK6~fLY=8Te{ z{i8*7y3Gx(&=pLQ5S0$ATQ}W~B%cW=POhEkt)u0%H6z9QsLa=o{Ja6gT2?=N4sB<2W4g-6#M-c%AieR-OmlCts@TSAjUg2=ep9@M3V0K~(G1R7`-iSMjxw`U$I_$7=fDI43m1Or zGQfR?2S3(+>~?tT$pFe_+Xf?l$H{`Cyx_!cJV{VCKj%A=L~T$i`KfvFsWkGc?c?740IEH zbTcIw4#T(M3j4>@?B!3Nj&xw6AKLumz+Si3Lvy(ZH-60VhwdI!^EBp`zuR{V{r5KFs&$OSd~=3fTX~${Z~%9SyFYU)e25G zD|;5T@(qaJpt=Re&J!O&`Isw+Nd`cu53~;(#hoHRb;2+4DKZC*ag8t& zWHVGKTInB$#9$q*wBbFY@XGgF%)g*bs{v3z2CB)ZIr>!3CFsdC5y0sXjJ7=996by$ zup}!*=+5s-3bw*qwVe)4V?zouHAVCg-yFGi#gQ>zGnWS-O@lTWCZX(oJJ;9P?Qv#} zXqvpD9SKIC>T8jDdP5X|$kxC;wp9B?`r7vNc8lSH837>5E&P&8XC5Q%Gpg zGl?z4*z~K%5VE1j1OBa#3yXU3oB6Z9U!zrb0!j`<6j`MZ`G5^yLZ@5byUw6HB=-C! zd*5`|HbAs^(27fOV=8fXj5~}z8S2v4Ie4IF@WMs{+oI~p0Pt?dS+ls3s$~~1_NIxW zN#2vG%&(H5fF97MYZGg;q^1t3hh74(s?h4VhS06KUA`=#1ks{u&27nt>iVCQUtJxX zFEVdAJnkgv8I$&pqmjacoh@jH=5U_=Y4!aeE5PT49;WULMaEpoH|2tzeIPb#DbX34 z-Ga1gkdxkO>-*|DYu~V24x$(X*AG;O!o;-D7?KC7c_F5(f+9yKJ+PPFn5HDA)x7f+ zuUz`%)aPmXyC+rwW=5b$%erBJH1XwKbep3tIPhy2^pzpIg4Whz^*F&3b~^sM;hrEqHStcv6OTS1%FnNo4nR4!_1zNnh)tB)IjR8$Mo^!WE> zYEKxn{>Ed2EFgA%-#X;0XMl`nG|f^b2aBalB&(~NU7!+o#mCppUpHiFo;4Nazg#ds z_!!xkCCI3GCAe(6pK*}!p(phcAyd~!ph8Sh)KroA;vdI36Jn^j zNC^4GqhdgLtnZ`n=>VYjo2uQA>j4C+W@x}=_Sf{BwFL2s_wJe-zc%U76UqjozHk@u z$$lQg|FsVp{58a7x_f(!c|#JaUDCCPXK!j9sP?u-hMxs|!;I=E6|ZNaBEFuEFk%yr zWe$PP78uqR{aQMCI|0~wJ=eSw78&g~MH}xC^T> zNg|5`Dq2hQJF1x;*&c=Z)!2C2P(`lBxUO~pJd3w7>pj``tvhR$Z!t1dm#Y^@eJELt zN8R+qGnJ))izO>~Lf+ZtCrY(v)%X$hKuf1eC|v!j4*eQpe7L_Z2}}^r#7(o8`%Mua z$wps;LlS8haKRnPd`Y7LjB$x+;L$!CH>A`JNL?iY@^h(%$N}jNFw4*SGMvudw@|1? zZVQx?0k=RZ`eFX7h8qW9M&FovC;{c4-LHZr%jlf%oVo&#GzIs!6EHql`2(TTv!_)kfBu0>bazMjO+tAkI(Dy8Y7e)Psy z?l1ze3GV5N@R+97j?g|wAB(h2e5m_<&#DZyu7c#z5)$-wMj6GPrid~Zmhv8ptY6M% zh`$ZA9cH$Xjf#5#aO1c1j(g09jbTgnjQ(eGOM3;n!vWgdOVE&w=_+RdR5L{NcA|G& zt_545Ji(B;meo7;Irv662>Jw}Pq=fdYi~N0UMfVUJY20K9gcz)m?-~@)<=|>T>DBH ze_62y_lQOYr=RcJ;u+;cDdxCDrkzmMs<(g-r_MALJ6ng-F)$o_hceliir*>#xx(->Ui zWP{hr{vSo>;mG#)cX7WiosB6Z zCLyUAJ7yvh>GOI1gOJ>N-{YLuLGn6~g2oJT6#25g@1cbSeyjRW)voWN?PyfW@5NS5IQkx`bxbmM3-~gE@+)Q z&zMFo1zg=-*rdbt93SD%`qJ|bYv8*FON9;yhF=cz*xs2L-Y;D@MR%=cN6jnkmH2MdZp!ze(RIXTG1vQfd^ z$P{YWCNfH4L74_IoPSu(b@~=gICZ;}iVTGt^l<5<6$mQ*_YtNdYMG4*286=dMdoT` zxr$_>GABHCJrgbYA(e6>;*#>vfLJ+I-)%sddg0z$BM;5-*Ob{QX>=TkA-P%9GjazP z`<)-TE4EBS7To8py-9c91qHEP8S6?w(AVPFU>mcSv7 zG({oz_w=)~es&=*nwvmzg?8*RG-3q0=E+xkD3aUX%OSgT_h@F!Rn# zw!f9lW2uCykbt;Pud@Cr!(lr1rsb>Aj^-M+xE}r6h}5huC;OZ_gj<#dU(iB5PxnSe zeSoND*CMfG$Y~+OuW}PF9KK0{&`xw4Q5=gh`6_3}J}w66wgTuN!i9QsC zbH>44Q;$c}4(kC4>22g-n&0$7H08^-X<4(gL7q?y?O|226Fk{y}7PGd`*Y)9g}E9VxG{<~Ie`^ETG zvLzT4BGqx(mTkn21#xz~h8*EU44b!icB-w-7@V@IqmXh?_)AI#6XI2n?UJV- zv*$C|YX(L+RCY~;a|R9zMgfx^t^~{;+Oq`n8Ey94PdHz(whPKI7GFqFfw%sRzZjp? zU+#(yYYj3~(&XAjP!Btd8pM1C2N1y>%Z#@+!yiUsbUQ8fczoIg0~kUe0$+V5TIXsA zQZe}$!)yZu5E}{)_`2$QLuKNcQ4SMkZOvYPhu(O~jB*1EAlWg_&q?2oCUMQiQ;zu@ zAxTXmGrAt12Nqg_SIVTN*hu`W0ofr?(We}$pCrP}E5>yC4hV@5Q6*X8E%zQT-(PWo z)bAYk_Igr$#`rro4v%X5705;0e29~&199d>BoX;dcJGrp(!+kHEu^n83MwIQiK(5g z9p1zB-2Z7^?ol>Tc3rkdlD%l`Wz=@!x#Em1KDyanxj16S{O6-5b)Jti-W+cyD$bge zpu~A?1d*AUP?c?y*G+crt_q5~7(mDgzp!p_a`3BqyPsp0Y>L4=b#4}*=ru}0tDfct z`}N6?v{+LsT0i+M-UCj7zy40*RXV>4;_=dfa!jV3ttj}63ItDiU0n%@I1+brad~%R zObi1>uT<0m+hug>T;q8x0ld_r?SX`0O3V=Zb}+bJrzW!lDTINbx)D5kxBfq3?)V!d zxAWfist?I4{Ae%q3r@%^KegC)NF4nrDHyVQ7)jOhP~AW3_1`BSSvPs$q`*QzQE@UU z+9|MN``o3b2$sb`2!iCbZap2);fpDe7qm&Vvks{n9z?cHJ`j$|(7xl0wTrGX)fEVO zDpJr+djun!7tM!q9(>enn{sECP7h{XQEuf?`BDsxpgoD{y|O&KE?RW{GSVKDWA$aF zP|!Q4PmXFB0_c{Ke}|>0JXLBUGZ)?0S=3#B1~}<+G6ROIl9O#2>X#PHdt`5wZ7Vot zkeJf$@d4<_OEEi89-rHZj)lWzh6u2X#lD)UWO1e{>a)b z+3X7#u-TuXOSd7nHIcd>4w)lTD{Jca6QOTy}5TLIn9Gs z;LaxX`(eFS`N?3Z9O}0lx<^Yn+&-YrfLcD>IS9+~&NQjVzh1YsmNDOFE&zYAOSnBZ zY%HYiq;SmY>12-msmlHxiRLhYR}?##b6Is9F+u%NqE$MXTAx%7$X}%V@?54Do7?b4=OT-M}M55Nuvl+RHbIFu3l3~i5V`>eSNb+<8 zZ=k!7Rg^nCvKe(x{?X+pN02mUr6&+yYTuYP9H@7K?+RRS`TE+q>)DvS6=WDp{I7%* z?bN)0@LGEv;84DL@_PfU;GHR5ZQr<_Q6|opQ6cd{I@i84m3|o7IZjeEQ2AE&D>LcP z+OlQ#9PPj{I~`kqH)<&=U$EB;sdvRj+$7t}2 z4<@UjeFow4m3y-cEDu<--(7Z4c>*=gxL4Nm1FYAzH~%=<-(f`keA&5noofs(ucLDJ zlVXF*&eE60u)>zw@b!Cp%7eV&{ACG?kF1{5RQ6J;(}aa<1XQ(_C2>wRddLdP!LDa{AUJw&e>i}DZRLveGHsv9H}za+KcnUv)$cn ze2mtGFEq~?xa8l_5DHfJA%rKu=N?MSZqbhFA29@oi4vJWf$ zwCajB5GjF*;Z_yENf%GU`w3P}(BqZ_*joe9i}6G`5g%$5zJP^lb0F44vVtID>hLXZ z-&((UGM_qh?_wc6OUc2DW$x&3Ua6LRw#nv8`AXyloBo@iESumdJEl`V0BA`|deBjA zy%z^H5J@1*D|+>N*`efnu3bh}#+u?Mq#VX?dszl4c(D!j}eFULwy>nZ zSk@fulw7ijhU8|yyuDjLS#(sEMqPl(y)ODLcPV6+OQp{<@(ff{x-rA-HtU~pjYq#o z|J`jZ{r8OW^ne>K_R}WlVc^-ytDN7#BiZ_?l?uDM=~tC%@$0J(;Ck;hKok0YYvk(^ zpWhZS2GxjU??T(x&V5#7KlzSbvkml7pWLfC2`X^yWLmzmrN7|MlL+qPcr_zU0(YRE z?`^RFd}Gd3HuYb>=(yd89O9ptEc^eQX1;2l33%6nY1s96`nx7f_!ssf^fcpl;g(Fp z^T=%ZpE5~=EBz`$TZuAvd4{wtyo%(lOxU9hqpL3GBEY|7Y&7N-i_r(%M< z2}CH9+6XYJvcA7|Au-~+a)>#fyW`ftp9!h7aDnsS{5RieW3YzjFond+vOpUl7u_@Q%WD|zeZZG;R}TZ z&-+4a6xL$N&po};%R6US7)txA5T<3U^4je zqqhI(#2q4VK*e2|lc4C1?uzvCa;3hE>v4`4Ff_J6pQ;laLg?H7?8)9Eu{_~SEb;bF z(R>b7=$rA|-j#8pDEFbJ495UtV(EXqy|3&47svyM;mcoS5w&U^6)dIfA9I|8oF+t9 z^?pk3nS^rhCDTGo06l4@TR*33d*a**|9=~O+Hz=ytufl%thBCmg2n-D5pT2e2_2}W z_2H%rR>7xF{cXk{_!ydxHXPNjj2|IKXB()k;9_xFSyYKhgY7+`?fXhjGk@J++#R3) z(bWWwbQEvg1CA$NS}Z3}WM``9hRWQtgq+uoLw^f0d0&&1D~Y)tZ?YgonKv%5KX`GZ z`Go7s5Rr5GhF@#r)C4$W@J-axYEThufbfj#9)qSFi$tb0IioLBSy~`v4(lWRscxR6 zjqmPl=(;MepC?yL|1z8FslRnh*Ewq8u;J>rW236C`u{y0(`hW}tL*U!2;o6DN!+R@ z>ow<+79x}!KKY<5!;G+7V?$HEpPLd{G2)rG`4WQ0NF$q$`f4F{37w(r??Z!r&J?N?1sBbRmpZ2V$k-*GhG54glZ>TVAvEF)D z3@&hNkGP|HH>D{QFZVDP!qeg=%40HH?U*kN7^rvO`!Dp#SO?T%3o5EBx(umi;;z9O zaUm4=naax{p0bwfeJu#Bxz2 z@8TW8r~h4u+;1LjNU;wL=!LQRs5km*GHW*F{`3f=S30gNGsw)zO0*+&(ARr4vwNIa z920iF(56t7HXe1w0i(dx|Kav)RhCD~mb5};eF`_)ck{Z+$D(1+Fli?bSO1rY&#ph9 zU(WB?$Id9LbSD%m|DzjPUuf{~rB5hQa$q@HZ(P}oTVBg_`^ z{Hfa;!(^`3qA67wGRgr*lr0Q)ejNbupzEmCP&h7o3(zN&D`^0mlPS>nt)_B~wWN#k zTn1$mZHodLod>suS|(F76vI97_Bw%*T21@wkvHs5jZXM2Ug(MxNbC(>dT6JmtfB7Z zbUH8pxFrfge`W{ zYfC8BV7Tn&HQo!1>;rI%Nf8n13yC~YYX7%)h-fE;y$#?&a|%4N0Nvf+?aS>FplFm2 zc&l~T@^F!j6R+7Zy9INKgkC@E_56<#sQnuZic&VYT_3oYZLtL**;&-yD#s&d4^z zx#@{b)h*q5U}SP>Ihvrnl??Mdno4Fku~&2gZp92YT);t)V89vagZ~CNd$a51j<=~~9RO4%uCnDRyB__{jyqN00jiCaC z3*-U^a=?~NJK5ttg(M8|?x3zr-8Og>r7)|8xJ5N6q3YD{x72;-Rg4D+rxHwe-FnJ* zlQHOa#7Ek#{k1gce&*?{F|9vZ4=0XU`vzIie_!b{=CKeatV8IXRfztgqp)O_V+R)PM2N}pcf%E+NItA0M<#&Sa8Q47Eg_wTkSActrY}taIMxQ6v^`hU6 zeCWFs$t#|(u5J#YGGx%zO+JPBdB<@NdUsR)Y{N{Zo*M4V3K4)E*l+5swzdMPqRMGPnN|&R z0HILvw5s=hUv(E~R;okgwnZRhgq2lBWW0?2(PGSRfeQKBx3;d;RQbx&6w<4t9;@{Z z`3#iEL(BC9>mO0Vi9SiEY%I?9`=RZ5*y#P5N7L^12J>QdYs-o}4;I$4^w&?67&B`i z7FMb&W307#rP~S~CBU0UUy<=-cek^3J#ZF(#YnPWF&UFRBe7OC#JzpOZ*GtwZg0ET z9LC+=IdU$q^kN_1?X1zYe>v$(*+E%O)=5r@q=v=5smA+fN?w@Q(b=Ys8xTd^(}1M} zPxFR@Ylq8S_4O}q-f&kH+4=kN1HE0YSu~oe98h6LwLSm>?smCSchFW=jmWjZ|IKYF zT-h{{+6^(?cZ!sa_q^OvQ4<*9$YkLr5oCU|TIa8j&xfb8h!wSD z-L8xPPY6n!?bOqtD@XU#p#;6ro&`%3rc}lGA9*m#^%FJZdHfZQX5p%k3KyFA0pJ4= zH8+}2;x6lb{E5rV=J{lm!>a1QGrBQ~ZG|8ARr^52o{U$}*YLV8N;bVW5)@2TnICA$ zujcy19}KXREF*3OLSIdED(}O72Y4-9b3F1(m2vzpjrVWHz{4>4vAZGd8Y;72b?lDP z(hEG#`Fz7XhLg9w1Ecl`%d<(IHGaE{&y26+IlQfKw>A7i&t)yw|6cBFhNXGBF1p&! zJ{EQd+AUpShn2E2vFeOEc>dMvw&7QLp0&T66!RC$H$>U`u@5IZIoP7Hi=C2!5M7gq z2fDT6AAbLj)2m>n`ETbm=*ej%?sq=7p1AqGee@W5HO;bEQdj7M4B;U(pumVV@!dX# z#(gA^nPCUy3kG%7wd)RLWw2V|KKTZPiv;HMAnV+)4}I=FRsE8F;|bj=*Dq&!c9jIP zrk1Hr$Dx9zV>WY5V*6>T4U7I88^kKvpm+~f#jrIV1G~{|9{(IaNMhqUU z2P;UI1Dx@k_22Gq{3DW#?#)E^3L7x%eYbX1sO!B}d&1?mCAYIvYcF0#Cjn9&9jm*j zWExT*n?MMImie$7rwi&XP6%3$lD4pfKXpsO5a(shxEhgKsUe7alSNZv5E0les>(Z=;h>{>=`4)#+tDlm zgQxUq>V|Orf#__kbb{xL=}sY0>9NbGwxxcg>&*`ic;^i|e6DY;KsSx^%PA}La*>^8 z)qqNtcCoRYvBgO3+uPh0ZJP3|)n z!sFpY1QhXSSQ;3`=+49a^tUxm^mv=w6@d58aNsQ45Gc<(V={g<-Vx8ymHW}Glc_Fn#b_MJKYcKD%mGe#9z;UBwdVvi+-orX zcxhKfyqr|Ap1>V!B>=PE_AVr-3zmiFwX`2@IamdHP?qUGAA|L7H6d^reQqhvgChrDV&+1YO6{Y|Iz)hx9^@!F2`M1ZI5U0+O&hVmSzfV{7#!=V1q!&C@Xz#hZs=+gt=cJw_vIMfep-@cWJ* z9g^>J|CXB)5~o^dbdCp~w%_;py(>dqHOmMp78LF>^xiznecMzRl~z0zwt7aqW)csnJ6ZE47A{3piLi}%*LdCVj6mAl9rFmr z!|%&f1u*3B+DT?}iSDi+qC=*cuE}?QHJ88SL!P}+Ni{$4j9?cDl`cN@t7+!7{L$8y zuMH^c2Tr{{DKfr1saC`kFjHL*xJtiZ1roJ>*pgBVC^><-!5%cuh|}wvXSs;A<0fnN zVI%Z)!d?eCFQaT3ammFT_JDsM@r9>7>%HHT-I|7m@*y&i566{+H}MGPQ(vC*-{fXk z&sL0=%Rlq(Fpbh+(vZ7Hbrb_-ZF^uW#LjXS$pxM?e$y@41v(Ju!oIJ{>Cub$GsxDdLv}VpJuEHv?NH5u= zunnwX#2a71;nn|N4?E|9C2>};*mj^$x0I}4vJsB-cII1FPWvD~rW4)YUP6luco)Q& z(c(XGIe*UMouk7McV-0vNT>oXk37K|&=gV@Wc+;ix@;Y1B2=i&cnu~wPW#^zM8^R? z;?JWl4U0Efo<;V@K>?SyfcY{|i%uJDbn(DiKXHk_iqaLvym}M3I^_C%AGmcj!%s9d zrb5+=0kc`9l_s(H)#J8QZiRy*$9?56Wg#MB>6YaiJv%UxKU;PzLo9;TaL7JWxx-{w z$Y?ERwh$(c(HfZ*sr6kn^b1oQO~g84gh78QH6L|-YUa?`pN(mXa-Qm3YgPZM72o@m zsH{4sBb5Nvov8s09!lj{gZm>cYXPbAV^)3pC}Q4{o}JzUipEs!8~C^LC~fCnEe8Dw zx=Ri}k8Ah@_)txm%g$o5x>N9mx9f(s+sz%&n!Xm_*;$Ze5UXu?FS1=BREL9;B zG`M_vWQp|)4IkE)C4>ckzsZefnyC(~>dqdBJwD$LOhKwAPLh5~{^EVZAGkfmd1kD{ z9>lVi_H$cdw+{UXQgg}M`QtAL{CyC9zhZsOZh|X7O+zBBhOedX{N`qMb6#H~rpl(& zYGtIuR9{Z+mE_Q-%}K&4=teg9sk5_ZsiQc$g*~*SUtg1#&ga!Ok;bq;7L(cQf8V2m z*Z4^ywBdK8LoUI?0GVIf9^<*xHL0>}>&loh9KeR|gE6ddJ&C{j4%zAGDX2R!Ai1LF zpxy@7EnqxNGDfsIY4c=^=^eegxyty>fve+fDWF#JS(eM@V2noZ!9)>fQVq6u?y~Q6 zsE+9`92o2e#D5eg$51D@SB@9a}8vI$#_4I?@z{$q$NDGSXdh@qU z7J#(n*I$Y$22kZH)69EBXRwY&v8Q!KR1k4%v7rnF$^mE8hBZ7@Idtb8E7-{1J% zUd{7n37$L&J(x*~QZgVa4o1cs_N{f10nV6%#lghZ*=~P*fG6J?@*f>imYljq_WwuM z(0qJUCgfw&a-`(hh=-o~q}NB7e7gBtp6A?YaKP<^aNQNn8o5N42B@1Dcqi4XJpfWWg-um|n16{kKz(=ug=Dv{J10l|Q~V5GdG z3=lS+XGiaW>`G&v-_aqg=AAQZrmqKHN_D&akFHpYg4O1wi2@S9(y^s&%;0C@x{7#p zfzHYA{Q&bs`ICY#T|DEy^2{oy#5+N$jK3wSV%NkUovJJ)^Ga@6;eo{&vz*RvdI~_R z@`RfeWN!E#KIdj`*z`}OG($hGJ6-z=7hMRR^(>+4Blgok8$bcwfFYtVbhaCz&NU17*&=*FltM&7a*mC9=aQxXEfo{mXLgfNh$)} zGw`}H)EvA5Yz!vh+^6tInneZK&A!5lx{GfoxSZZ_a=;K2#NI5&n$Eos3Ln@eT0hjIL{p`?imlnhGWqk>CHGv^lZNFnG zN>FprE45)W0DLCkAFtB6ZpuAS)N%jK47&#Kb8`lgH;3qcms>fA=U$=v(Wo~ z?K~Kao9reSe2;ddChsqhsCl6#P}gWORP)ZMLH7g6DB7j@OSAV`k`H<4GZ#jlb|;ph zJAFfWrj=fl4?wGWs=(fgL9sC7#`v2Bxv3u_*7@NIDje3Q;=kXYO4-kE__&onOvI>t zM)7*>{T8`!!c(znYx2EFHw0mS`qm*(Uf*lYz&xPpuq(!M249W|?D%y*yq-0#c=PbI zz_779&2;3yVNH%Xx{jX`8sMraCGCotNswh_4MwKZ3jP!{_8HEJqCd@308eBHJF<)ZKG3UK}6GP8Io$5Z}%TfsI z^rN2uQKy-F33i=TayF8ly*64)UZc(E7M&mG>oa^AOF|(xQy|PfwKq8a>CnyFyG^jg&#%}B zGN4!A-2wEAfiH((Gm2p%a+Fh8% ziV;u9M5`Q^fBY=ep|q#8*x$8$FDuYHR^$ls$p&BgNF!_7mgYEG*$g2({KPHBo!uy-0zgA?(oe>ai1muhZgcVfChOOaO7$?|ds{yP zV59&4mw0K#01AKtp{a6NYQ&n=u#u3Wo2r7Y*i-<9o1)TZ5QXA)nX5wA{tyV(Og03> zPblMi=_sZ`&`1IQ;W&hE!3MJ)|#PKix(Fp-U#8Si1p7@W< zuF1xyVO7u3sK;mmfR?Y2aHj!fibAqD*W|Us%IWY+N1nrWod~ta?=2Ku?_$@ddbBG8 zVc9JOoaR-qX8I?Md|=EBCuB)IISM=75~d773O(hCl~j}#N$ksL3Zz;W=~bbUE+MH= z%bwX7!s%b5(pS&S^(KgzRobP7Sr3h&Z2;t}qMI_=G?wtZy8`)(^p z=5gprJnXe;8&q;l#lK?AJ&|&7I5nmO-G5}VSDUwT_=XJaoLXsRE9_Lm+<;5h+O8X= zKO?B&sJdpmOk7G!R8#MG2jQgjOtwty3E1Hu9TYebl`a5g80eX;qQIHqNtW72EF;=p z!O@Tg5P@K9=yeG7uPWvZKPxjRh=&xZhV(XQQDg*0M*I(qKwga;mX%Vzao-p9m_sQ? zs7G4XnafftVrV^D!01wd_#)siaLOU&;L>f3J;jw)=NX49JD}L_YW_oTOvql9Cmdvg z$#%+eda2S`<;}LIMkoW3MBssK;p4bz$^OZQJqH~gt<1pcdC~O#YxJTO{oC0e@gLI+pow>0- zO<`Qc)29JHE+kSy5%$ZKi3A@RE|C5C^|G0C&T2(jkF_cl1Kk3}2XA-ngo+6K!>28L zolypv?m7P1<1P9QM;+tq-P{gSKh`h(qcf&%vumdhEA`X7F`Za@c63)hEnVg?v3$3~ z?R;yPZ#}Dk!x9mPZhHRMikvfzfM+KeA&u=SHIXymF}%lIJVF-hxvAIQp@up1Slra% z5_@f~ht09nqWRLezZFq?haPLhek1#zZ~d&Rm;K>U-RtX{!reK(>OtDJV!gxjqH%2j z5geoDDEUGZ*>coUVK;J6+S88}wnq6cRKO<67kVC`3i|Y)LS3%9gS5;;C=J<(p8Q;m zWs6Rjm-*w=yp7!sO3`VBWAtbw5PHc~wPqdHCh>AFhl-ktc`)Av%?iXAS@$$>7eG{; z25^r(2&$aLv|#u7f~-nzfmJfdDrH831oEvTX-pqil(x30yYDV)_UspKw`Cl-Qwn;F zgo1{m4YIQnfqQq+9^O)`+UTH^ZhuW#=Z@uF4&2_9_H};741_GwDzTOVJA<;Q#iYi9 z#wyAL)1{=1EOKwH!|Yfp15|)$Eop;JwSfP)_%$i%tb`iZg|gfN?{eh^h0rAZ9?7z- z!_k5ubygqVpFw?YuA*5t9*1HoYdR&0WQPvxSi%XSG4^-(uTe(a0Z4N4j^auMlPqFP zebna=2wcd(zVm$~=`c}MuLz={Jx92+`4{{u0dBF2-+ac((rZX*PG2S!}r?Pk3A&- ziFu#-0psEtPX-1`Y2AJK-1xeXS}J&QT`k;rjU2w~O5;(9TV|2blHrpRIQU^y%-zpJ z=_;5h()`xJ`L--GXX)xd`dLQTqz|Pjfz4CHX?wQW_9%I>##z{i;A=p1<2m49W8aU{ z(^R9J*s<;!z2O21=epe>&Q+kX5Qbde`t{?TF0ez+L_xS#({lwLfrtdTzV zzPf;eCuRE0M4|8eY>^4sPb#X1S$g+y(oxNqOe2vpN)N*lOth>+LUE+&3&cY*jK`QbLC#v{{pQ7Xxtr^uR2hY znzTPP8^%KQ{m{RrV+SE68aDOy%AdysNG&td#e%XRry1J)qPH9R1DN(^=6R6$XXITK zT)Jy+b%7}z=YWNx@|wzw@tUS4&afl1>iKEZc@dH<*^-6-Kp~Ak=2LwvkY(_^=&`E6 z0kJ&a5sxpW=a}c-TOk-W%g9Q#ebw?DE?6v+q^2_tQ9}^-Q=!*$Kvr*gu!QE@kix|k zKi~hSfe&3*kj+$60$g+fz&Y$N{!Wf1Q2x=i=D55p!*TBmB`+N==Bem-oKwOL+zJ^# zZTL$EjG9xnEopY$wJ{Ub-y^#q6t^I?zHH^_V58nW3XIy}0##fi3l5T@sRR?sZ}yP< zw@Q>rhuCb6w;MPRZn^a37fOHtO4mIJF+>yMn;g7C7E7w9xxEQX`fLEVs<`QSL?D+3 zrV`pk4P=j4n6pDS>+h^rO6aY<{L?7`y!;{YPO#)VPBNy-&rw`Y*4Kow@K|Ez6YA8g z>kVK7DTYRdxF(Z|sFmTncACsLKOT;+NA4$Ru+PQp9!`ITB$l6&D-po)0ZQghWBzam zQZwv|MTqChd~CwbLg-wDXl+0dPky?GfQCUzQuK(KWQ#Ll{P7FP2KTD5>ncDaC(0|c zl`fGM?jUK%;}LTtDw>PcZ2;){=4O~H$6?JmNz$ux;qQuoPT8=n4Z7P_m`V#O65lqm zc6*YU%tJ+h?tgDHIqC!?^p-G)CY|k0Vh$`62_sJ(X71(PLKY8PYgR#5iuxS>v~AEH zBvspp<-}1unIp~uR#F$(bDycw^`S4sd8H0yr=i$lPoQfnF5Tw~oz9dLS!PGasck=lr>F4lb#<%YZM|h4+ zqF@>_)_{*o7J+IhklZ0p{-Z-zze5RnXFizV2#je2DmRl@+fCSh8DM8izT-Jl)#~fL zX^I?v;K=qxc7;U>6h3wmRHoP9xUKng05)ajox@;pb`$%?eaMK~SV}d~;8r|;$2+(= zQ?;1c%efd8f*)%5dN9j&Fe7?|K4%!lJ)v zxs$p!$RItt%rK%i$!d&D7ojaJvK-<>1i-Ywxbr!{o>Aq0}6!3Ox}G zC(WvWI|2)uwIN0y$7fs&-m*jC1b{k`i4D`dcO@WT@(8?2aJwsH z*;gQZ#;vcj<;KAN_~W3qm*DP{e)F|Oo5gKA3vPwG32i-s&r}Tt;C?=s+VhQ-x|Nga zFr9h+n-Ql~`Vi$mY5sC?7!>Pj(2$4>$%eK$%hC1OT)J`_{X)M5#Pf%Fcm+D-JB;BB z`FXNEHv{PUeASXUMqA800I2y4srGqD)khcN>?SczJyrD5cCJr9M?~UDx;CT`t`dNa zlO*6W+)d++qRU^lt;f$g$z-HaV&gVjjEEU~Naf)fzgC;h;Wgo`{?X`l_UZTU?Af zS($;eEfsw9g;?Pgh$X~(qza>R4n&F9@_|si@*;)4F%3RfV|#`eUGrq1DjqmB#f75N zQeWJ!-5r5b4wZ%HkCUzkzMcQ8yJ4kRWuHMW^8R^Z^rx%8Piin>7d3PhEjvZS8(ui& z+~AF1PFP4OI;>FyZ$Pk$kmvpCW((};J_B#B*0GwF0U(Qzyr*S5R9wNve{(3Jc2Xt; z%6&FC=`?eR;ls!L5L4m7<1iic^xkpZPdh+rBmBNIu}o=&+dlXw5$%l!$l&_PFG*E{Fek1XU==8aD(4xh-dsmeAtnVslECPE76t zdb{tbeO7w9svTc3Hk)7PZ8XZ_MlR@+5pLshey{6ydgBJo;A87Ad zHuM$4r{3ER@u!DL5az1-HAyzBAyb*G;2R6ze1>UJ8nC<*bzfj*c-Buh`akX(dpNu) zV-ea+6%O#O?^)N4B;WpUjV|9O|5Hs_b{oHQG(^(sKR7v?uHgOI)j98VHzPGj6CCtH*(c%rDXvDf$O;3_RxhnDrZj4rOaRFh~x;|L_3tNCf<&- zl{O6T%JQhc+|c9IY-n*bMO3c()-oYAb-<88(w4w%nt3k_cfBF!wb64)n19UPElr6A zf<&U^g*3Bml7Vz?|Bc$<%T4J1WM{}-1=|`z@>Lx83R4@GHfMaubVtapxRvS+jP@Hp zcO7B(ht!^2=en2pf{C`VtN)L`AIa`b6-l)LojhM?diamd*C#(~g=N8J+iVO%%=7O1 z46G3rD7X(7>xs1rx#Q{8zGBukbv|X=cIJ6u;^^Hs_L*Qh)aJlHy2?iPJGvPfGUB|< zK_BM>n3~R*Hr&996y&dJ_AYC8L>$2QY&k*nN zt;z$zq3!-9g+Q8zG`lp1Mrb>L--FH{^EB)5{%O{7Qd@L8;>OlJ&84LO-Zf+oD>m;{ zKTj3?L7sJ8Z{(l0z&(DHdq{5t)o~PxAfat0RM#0#AYbJK1f1;**dLd**}8R4mrg7t z9=gm)@@T_Qc7KC&O-M|xXH_-G=Fz;6d)yN5P2PKr0ru89fLvw^TMFs(AufA3;^#N^|GrnIn^YpAZ@moqZolzQg$*w16M12WVv zQrU7pzyu)WUlZPwsxP@V4psaC?9j>efNkMc9bY<=xUNsq93Rov5C z*ahr~pBT9#-vi+D@SI9FRuIR8DEEk~rGUlj!|7)nNy=yM!7r8gjMR|XGF`X=hsJ25 z441+VkhPVP9xsIhIttp#FTS8>k+NFSfE0|nO>NhhzqfJsJS6sTQPFxlls%+oThKYo z%lYP9>{Vysjt?OB)jNs$^wJA1XJy3nZnO=$H+cwxA8gcOnSDP@7tE~gD!z#Dv+9mM zvbH~!*xu~)wbMXEY98yL86C_59VvPq?L

    {;!QU9=UEtw#JBN~CkaL&mI4vMTEmzCo(mjPt0qI9?>BkL=$vrU zai7YwNobSbRo^)WQ*h?h*1v+vb7#RbDVZWR!vOwjk4XLEyU72K&a{&vQ*cKrwj<`c zf!mqq5z-Idme&r%qF;YtTKws)UH7=GX+*f>GVCwYIZiS^>5yD! z#C`j;%bw0sv)sNUqn?;$C1w)&lHuBb@$j+qQC+Vm`{L=5wd|ybS;iL(>kTJIGdc%> z{1btsP>4#rG+T~#?25spMUv29*Pf;kv_$b&_(jC5$L^lEJ3et#n+_YUS0pzyrZih2 zZ-jh**(YWw>Ct{qw-q18W@Gl%*b~YSZ-L-|lB5ri zD+G2ETvp`hpQ?R4x#wFk?caxRDCB(Y^XWRV?m@a+x+iYkb%(%m4X#v2f`y#-^T+*F z7S@||jG90XSaqe+tZdewKIGD8JMC(QdHc>ALSan>CvLKR?juZIb1a;13!A3HxrcWl zWni#tx$Nlpi?14zzvYz7N{Z1*^L!NL&VcxNa$b`B=GXsi>)8CGb16rwF!TvF7WjCfwf{4mOX7=l-wkgC6aN{RAupny(c})S1@Cnj zWA+MK$W=L_5MKW_!OO2wQzrX6%h7(#&i@3slrKwj3;!g0p1T{G?o)?n-Z!d^F9kW7 z*_<(4Q5ITHE(!cGx-OTL8B%69P$2zYshWFPet>JMgz!ZV6=#9jBzjdx^Bc*6#wWqP zo48o~iS@bN`gmua(Vn6P8u88?T`QTQYM2id!pu`TVfCP$F#Mm{X>;um#7^D~-DYsh zH%;Z<$-MC=TP6(H{B->ln~v;*CbrhL>>B}xue{i|WF_K5f1MTRR4HIk&cuSn0Um+W zyB@9cgCc#I>mmm7#H#3C1xWEo-Sx$V7x$lkRrofLvrru&&o2KU{r?#&FWr3XL-=KT z+j~kHHlePaT~Qb}NV0$4K<=miZ2-8`JR1`uoP5tKn*M-PoE6?fp@99HCI3s0QbT_H!x^!SQe{av8F|{9!R_396puW* zz|DD?o%aKys+CO3nSc7_lfLeui!w?JrEKT94_4p~C=ToQNpM&Hr}?@$j7NJ3!b=xUjdeS7)9|r-WM{@B`Co&a4lH@v-k7v}4^Lw$j4L`7C7sbeV}8Xx zf95hfzH}#1<$q=m^^A336vfT)g;H5fA#nm{B7^Gg%V|+1Y5#FMf%#=b5+C4#ReGK4 zQ07+uIvYvOPDrfd`kj=aeV2Za>!LWFL(7v2WNB1#Dk3ZAW;Vl*9ny^GttqHb(>UbG zK>USZJi5tU3S1yN)ZCF^#@Qe?mKB4a$qzMM0)*i>=D-l64uliqUDhp2iQqlYsTteP zB!#FS6@`jc4ST6Os837^)ZW~9?oh)Wyzsn*eA_#eC^EPdQMGBnRod}gnhH5=YFTIs zk~2c?D6B{)uRvb(9-P(zpJ^rO_UWVv=+Sikm9OvKL#A$e{bBefz5Vy6wSG&+=E87s zx=OTp84?A*5}0H=tMsBmufpwqwhanMi+;pZ3aBIJsuvZIqXozS3m8-e;3ZAFlx43i z9~E6i$nH(@`T#vzox!Q-k~J7{o4=yc+U7};BFE0^YKU{9tCMB)&*E9*CzJ_8!mK?! z584d`sR!%F2yGdiMy*?S_ZxkBsA-T{_tL!L27<}Oz0tPFjW`;ehUVM;bHV?3B|FM* zpIA|;UABp~Jumiu9R$0XV;SeQC3h|ai=!Gq_8WT)LLkdi1!jRG$$X3D0DY3~7ng8f zq3SY!(=_ctaGuhBEXh~*Yzq*6+@`878QeP6(9<}S_tloZ`YqBTDc4c>11Fx&eAp`K z%SnwkTHfzUid?bq`ei&fRwWV=INOI+>`Hq1fcKy!b@@qij%ua&{B7C!h5R?KyR0q6;U^nAS`g8{sUvwk!caDq z;UD}=?OH32wg`UQ|50=vjBKub7}rCqr!7vk_G*i2&Dxu`T6@%1v$aV>&DiNOYZOJr zNX=NGO2npCs4WCBf*3VpCnVB0?>9*D+eP(P_7k5Odu6ji0yph@vF^W3(wMoDk_N|&d;Zs%>J#PDMB<@d1ehAS-!nE z8o&oK7Xfv99~`Iy#O zwzb!OG)|TDl|=2iSaGGscP`;`r#n)vlfpaOFMaNU5I>#-9f%}+quIJ^-@fCtBCf3y zHd;@D?zi;iOEw%>!IxQfm;|~TcqXev9lb7%Xw&_%malWcKSX$@^l5U2G}x87q*?4Q z=2T@SD;MG~y|{7sR(a{TMx|K9tYTyKO^0H+Brw2VPvI1)`zOb1ySjhiK=N}yaR}f! z$!NKyO~lgSHOAn}cRjy?3>@1N7{bc+$ZH&p(7Y!q%fkvgxZ6hAcGnE9MI?M zzZphWOfld;Crc}!7*ssjVH2GBm$uSb$ui}O8)YyO3jDmx_!;q zR+9>yDsR7wBKwRlO1e3m1A=$n=g(W4v~c?GWSva@HeE|vt!fc-TwreqYjbS5^+#YP zO8($RyVz8#0c?Q;?qa(0Ght=kF0y2j?l%8*R-H|YKsd|AP^nq^sou+nQ$VZQhoKOq?rZ7rw707OOq5)S&Q!;CW8J2ILo0_CI!?V$v2C zL{5{-%U>?s4!Zo_^=`;3o!{DihOs>#O~y7zscSSZeZI2jl)Lfs2`!Cs254FyC2v`u%;#w%stL@&Rk8(G zOrviZ!qBPtscEvl=gtz~mmIpbgfLTMj zMmxE!@@UI_PX!WY@6F!WufT7NJhvDHVG}i33&d=-d2(gPbm3P0!XL8*8XM#lVK}|s zIPP1WS3D*T!}&|ZT(W=odvEmyEoNSB*SClN@;-VIkSR?{aX5H+@6xT3y8C+?ZolsM zB`=7Ml=#a_ap-BD?z|0A>{eJ?0g!_KU8AFXf5+l<)a!w&@q%RZXmY9PEq@zHe;d_X zDxAA+ew(H*w4u9`tUS5_F-s8-Z3f$(JY6N)7w())os!J}maFv&D-DzFY@{%h&i;&s z07lK=o(@Pnv&#l@pH45HbDsj*Vnn=1^JO4`pG>v0g~aysOA^@JYp3L9zo}kv$w>V| zDGm~pPhXMZCJ_zxr(#mdv3b5$7+(#vH?nda0f%L0L|u_a(kF{mh9CWcRoB) zNRAZEikIinq=UzHL2r;UwQ{KSnvePm=C1wdR zUO$6xZJd(Wka%QFkN3GWqD0w#X`YtVx(ohg1NB$Ts7l`iCt&oqPW2>wVy`q#2LW&# z4hEqGB;PK~T2jjK5s>}wyF z4B`>)K#Q*_oKD+4&YZB+^f!$7Wdhdk2rAsh_Qm^EhiFf9ogr)@E^NnY1x0oH@jkm9 z-&WGQ**P>6^S58*nQKi2c}?I=<1H;r?xR0^WMEctfrqol?{`~{1#;3FoOJ^O1G!iG zMh|Yz>%7lp?`Abw0%Y3cTNN2O(gdfyN=HuF3mQ1k+WgUV0Xl79(Sb-@pl61JuBF9` zSRW;Z4FP*_aGNOb9?EfovLMOw18DT6KJo`0r%Qe~S^yPwO&34rbCRQXBK9%5mi3)Q zayA{Wf4Fm_FsV0knaPWycJ7m2w8>${C14KO9(tsCjm}JozCrZ$C%BnCSyuPA9KPW% z9W=)-VuYag*=c{yW-g@pAn2<*Y7ND(8vzvFnhMj4|6-TQ_)KN0A_AAqZH|3Z|~yZqreu z6&;hOR&bXr?OPiF*->-IFXlhLVhAD47&q}uH_>>}Kc!K}7U41RfnqNgwaH7eh- zB3nSRq^K?rYx~~lEsjhX$)u;(KizrcFC>_on)<8PoS)%9GYRpz{CGI5Z(9$-mpVV- zS<7I!bc6TkW6GxO;4N;0GqcSC{w{#_86+|j;s6WIYaO@iCZ5{1(E^(~IJeBb!+?mN zNj&BgRSAPX{&}Lrn~QHeVQbrOS&}GOwdTKrQL}*qA4$=B%Y4m7CnreL{>5S?`)-+e zCAw;we5q4*KxM%YM49b*aubaq_ z@A98%?28x4>Q}350tvT56m3)G_{5B24JKg{8<{-c)p8pGqBm+d<%=rk2bV`#;pav< zsvC3uFzQQ?_+zfseZY?#?H|*}@dXoZb|;M~#O%&%Eb1f1-lE}Yrkhfo@d5f1ZP1e~ zXFxkQT3+Iw(=MMWY;uwVnK_|FF4Qqv;4(Rrx9(OU#O&;#joZ-(9=QAMA*yQ*2gA~T z$_xT&VH-mD@KG1K})en=ROey{<_=rzMuEjfTsRbivg4k zYx~V-ZX{hY?bm%1kvoYVoTXk-_aeg$4y)eqyqVS8%|_lq+Ob21ZR&$Es&)nk#>boAVb2dzBse zWc!xF&kqvRv`RNQ0u?j_@#SV~8Tgsc&kho~OOU79mDdJj zZ!zra{KqKRe2^Q)UG7rR5$&oH*_SE=1$_JF0rl$xuR)@h0++bKv`=s$*25ZtGC*GR z1%&c?Yq;`BkD59dm*sOD7-#V&9QBdu_d@$#r2e_`gt5ar1(dD5xJ|j5BH!fJ6um-V z**d3Y@eKQ}4gl_-Fc+-}xiAFXE8Hi0YurDQ^Q*yn?Oxjrd|=q___pW4PS}lvL3D(X zThW$zNEE>gVTEwBY2Ey6pd?tM9$HR$0<7*1Wl5ksI<&*tDRKDy`X{ETVUM2w2_sa? z_P0#hYJN(AAMCWKPE(mezdu5J*_O5rmJq+G0rGQ<4qY<2M6%XPH*IT53nzcN=z1>j z8%mJ(u#0$_?pSYNa?LaN6cXkO(OpT(51qAMo5yt(08$PZd$t#hVm@EV@I8$O2YcjD zU;dv&+_Q>)IkoFD3>#ock`nPCaj7hJl+SKj^9ziBPadH$&{3Up8vac(CTgQ2U z9}<1{a1#w1u@+NOMKp&s44ARPY7%!N2)g6ca6M5#mgtuX*@BrpB6X*qNfjbpn)Y!$ zDGVgBZr>Z+;fnwuOU4bW?ytTCSzuM3HC`%NLVS@Cvp%us;gqlBzBp&HkE9O2l=W(s zik2JQ8C{s){;5gOOxfv>qDKFv`#uE__}Atm$DCWHLAGY-(FNALoKXXCb3iKBS_cp| z7wiY(E-epnyd?fp&tEfC2&(%3hycqcCB`~8q)FCATTo`VPiI*BD|$lY)bG_|_CKNe zIRm-c?le)`wF79^Ym@X{&hPuZDR{d_q|)%nM>g0eYkE?&8RF4I?WbFF!||=1LdOK_ zYDsb6_vGs#0S{=p@r;tD!B~eko^zxy(vyo4W!1G+%Udqtk!l_7M@q9j+3?zxS>HEB zXo;N_y?<9sXdLhgK*-h+-edJBw-r_*8Zl2j?aSY#wRN?a5IeHMgNW>^zjQNHT8wqx z{^!S&%W1(MHus91(y)SuFtQ=|6HBXY*&l4p$B0V>_1w*NxNY?Psl=$Gow+Om7^Dg& zK-P;$w6?<=#JYL-uV5r@TZ2GGWC_A88#iB@+*@)3+5AXqf@Carl2q3I#4 z!aa+^TfQyNaivm$EptDrab4${ajmid_72dMloGoh#n89LNg{l9TY#QpaGb_nQc55M zoD=~JfO+cipQVim+?OfJJmW|+=~%3JTzeq$fl#%wpVCG6$H_aBm~R2%j)4WO^^per ze>LB!fFeGH`gRyl;}uD%yIx(Trwuv9b9O?7#k)u1A+dc(C|j#;pxE_tTMaWMd~8H@ z>OKqjD>Q3<5?>{Vfm6cTL_KE#MDNycW78M#)vb}gbmdiL-E)r8 zn=Kbi4-S79ek~bRH~|1Of7W!YIvg+~PTOpOj8FGZ@~ZPn`Y?n5R_e~9rD%x(ks5>( z4Sf78$8tTy&xal3;C->)WA!%B%OGmk{-iH#I+D3%=`Y>CdS!OowzmMyac2_Fwa=30 z(;hi|BVMkXOYr@)7xBOy&=fc$*b=Y~e1k-DZYDI#W{D*taAVDj=$wVJCWI{oC5(E?l9-1HC7MQ?lzzF*`@G#tZfcv21Ak&acdBhlJ9p)oz8TS&P(!{N8x+L&Z9VBE53;*4y_kF>Eo4A|1o; zuA&?fV&0XXkKVe7yO#0xU-fsCe3RsCo>SuMQU%=Z(3v43O^*<#MWg_5j zw*pZ9GMe0(EG(O0&wpf28#gAexQhQU@c-w2=-E5Yg>47+48S!`%3L(W(8Cq%XDk!i z$Jpk<6(AxMmsE{2*V0Cxz_nefj6l2!2IR7Pme-v4>?Subi1p@ohS;Ezo;1Tj@JP9Kc{01Bdn+bOD!l(uVU8mqorpLU2hXsmk)^$*?6c2ZkC454`G zn|+l$XM_3Aw$RS_r#IkG|Js533duHUk-Dpp$%*RwQ-=Pi>ok+V>Is&~N%nJ}yo;jK zVe7#drT5sQK&S5~@-Sxj4YWkw$68>wcvGLs39kjJ!z{GPc_e|;D0wntI#|QI3HWnA zYK`hN@{^s>uNJq)d5!?ifs3A&9qL@elZ#FWFAq<)3?nBdp2o2YG~^ z+FUs2O_rtphvw_pnF<+fJ*&bKWRCyXJp-BK zT6DPYKxrY|?qs!%Fehc=&J&#n-=>Y?kD8~faTEbr%lQAAoG;2k3mT%6N3+YpprN#? zlvUL9dU-*Np;)u|>#V5h*$KE7!*ohkWNkFfP}+ZRQSvF3uvlR~TE_>ntb{!?Nnfu} z6%1_$?@gi>(>aK7MAcHF+^k06nX0L3=|%j+C&#zP-b%aWeD#t?;5w_4$Q*Mp6}ZrH$J>3UVeiDU(WHO&HmSQh*pz2lcP_Y?M9*L<+F<3hGz;ilrG?_NP4Ir#{@0o6~N z0rNmgKW}K}QSQ~Va^!f6>|@$@oJ|Gi&%_SZEt{IMsn1e^x4t}$rc$@mRzJ}^Ud@NZ zl41s(Bgn0zE5ppGMa#F=<>kcp63H4)1k+C@xfff5T}NM0;RM-2RBO0{2JUCUciJT=I0*X6Cjq4DvU&(Sk5Q^r6Zl(AtHEa zz-Oz?vSwJZ0Wb$tx^?$+IN_htrktIDqg~j=gxfIBvmZzIfX@U%%v)PwqnMw|jiIGD z>v39n_Tg*Wr0#%&pms&W*j_Nib>S$YLmvXnYe7eBbbU2x)7RL?A8^3o`=CN1Oil75 zF-Si1;`0bLfM7IAEDw?+)judWv<{%)2o~D`r+H=XGrZsd{Cy4;Q~wMpR_t0XP~@&a z@6tjr_E7t99S>lw5*Zf;|8BH9x@ZdzP)rrkly?~(E9;YfHt;5eI8o3vdv%s%0Vp>h z-fNg2Mh#7=jV%l*1vzDrJAT&@3r}VQ3D@83_qS-yUU)m_`-|Q^v#OY}Q@M{n@~QNG z-Z4VhHGe1xT@nPMHkGB_jgDzF%Kxhr6X1&H)#P2wF= zA+KFSf~g3eIYLIBie>-0PIN;v;`wcvJ=aM1=2%JVKc|3Vql6EY=wuR&~`(mn3hxp7guK#w3?Y2$IZ_T|0Vc-+d%1taEC5)nTsP zrJ-Iy8Qf&j_?};2S@V%Eqzb(7=Lyr#%O0@mUXv#CF2zC^(K7@W)q|bn8aVt4T?b3K zSU4Jw=3R)Mj!Iy1|0F}Vwwl@p>?cTxeS_`T53V%zCFWCy$a$k(kolnD*{n{Fb?^S3 zDde^Q%7Q`iWvYfZCM3$I#apQ1P)j?Wm<$33Cj&vZfdZiNj8h%`>akLqw|OR#pJ9{; zsaUWr_NhsM)RJt@46{D-#13`HTbtznAF4*&H-WB-(egMj0|N7K^}Uh|M|DD-NB^YB zrDyoPsj5Pqwc|1$j@3gNm&#u#lVzs9kl1nNMMC?v5dB5SH0Asp7&rH#x!@XsA`g?v z7;6{Ewj*n-354-gV&J`gZ5WR7#4d|jGl|>>i5mo;D*WDFwSBQ(yIictg7Xev1|5To4EhIFvD0_XIXnls>Q_F)Y4x6fOtlq4~5llI^ zBL~*d;UC&B$`k67Iec#Iom61vZXT>#)X8|bdp9*Tvz|3aj}qFK=M0TfOZZ=rKc19E zFH$bBUsC4d1)piEs2j$DDRmXw+#IuYdsB_3)O9~w?dK8i@6UFbgNkSx=!6`R5%S|X z^I}br`!(gz9)8;}v-bXp@0x;jZJJ@4^W9d)!v1@DtE-W;(jO9MzM)e_L5*q#!#P2J z=_q)JQ+p@*hAE(-4BjZ^==z_7@e(gI63$#C90tCUSzqWCldGue`bZ{9X>3a;#0Uia?$b< zY&#K|Lj_qbyrig#K?1^CIMR)80VAQHbv(&?t$r>_2b?orp?V!2SN1W;OZ}$_V&1av zJXj{HM@EFEBoO~gM}VZWKo`(v9I<@lZ*>&KIze?xS z=PCpcX2xgPBAE5{| z*KdE-OLv)4CtRKF2(s?E*WEy&mCa1n{{Pi^_>${!PXikD)GQ{=x)oHPtsz+B6*f=8fb9p7zL_8cm0`r*w_6v zo;q|CIowiV=b`J6w$47^8bIlNetn0=;ftB$T%hgs1JCB}f=_$~^;UPtDW*E(36WbV z!y5vp*4LoenFozg_7>PA&)gpJNlT&C0Bq|Z)2K1{O z@H5zOhuecs$eA!hTtM(v&TBA~CKT$mNbSD(J=PGiprEc`*z`QmMA%6{{t54_Z~oWj zrzeiCI285cQ|(lu(N&+k>q=pbS&xRGT~nhMqxfMl$E!q<0}KD7AP%`Oo)rJM3|qUr zP0UYly*oH{OAhizk!;ie%lcYpdQEeHVlkGS{2LnN4RO3@SWdA7?CJzPx_=Z=7fVJk zqjEO1OftsLrvP4#A~PFnCC)C>rZ2I|Ah&kk-&NQ}HK{=goI0i8iaUB!0YuQervK7~ zOlAxnkIg__{SMU?_{>)i-ND&<6_2O{Z&kD;dgEf|to_7QJy^k|DQ1m><>hoLk1Djj zFmfjX0c9ETwUshNy1?^4E zDP{|}_c=jwfu*u?{TUHGfo>ep>l3!hu|usDWFnj6@bJ*!RdNLjX=*dg3#rwX0g4=_ zIN8?7Ik}jq$jyy_m>*;v61hSpO*vNCtf*_38_xK`CKZk%E7(EWb1wtzgt8=3h)v~* zF27OxnRlDA_c(^g2)_l1oDuL!1rMKl5^eP!<^6T|^qbvY9XPlss|+tO%y_mu50x6U zSoEF8-=0&2s>~)t{vo-Y`@I;JTy>?2+Oj^&l1%q?S}p-C?oy{Lv{MB(PRjH0W`iwq z!lm`W`1(~Kj`sWllox2RgQFt3hN#wUm~%khpKyEf+hIVTUvp1Wx$k{1<>;8*l~&%B>TK49+FxL;u*8l%?@8Y z(B9(=UY^Rx0LPXDWR2gAxV9~Vt8;-3+Dr#a67o8P4TG6|C73nM5e9jbYJG`7 zPZ?Gv|KUnxSU8h{0rZA}@4Bdpfm`Ue)qY;ik+6-DkhasJ(0~9182F!I*@)pAL;mfp zCz?rN&>q|k(z@4IN6$=9rs~Tmw8y>cpE7g||6$S02aK$ZoiybuO9iSMMI0ghQbcg7 zdQ|{@xx1@CNw2v`b>No4G7EzNo=JNoQfz128_k$%nCmwg9K$uYWmCqfK_#p(j%X{u!l^7s+3=enY)T zWa!fID{07??UZ``d~ujf$Zu&P()BIM`LG`2b^21c(;1E{4Z+JDlz3aoK7?$Lb^K`8 zr@@B~LI4d)mJptJhE%|A$rn8h_4==jagq%$?@e>mWa^s6I@SsIRFUEZ*17idM*McX z#ZPtTax!f*UN?-%e@bmKss?N_vIr4SX*5h@IeSUFy zHIyK-3|bqL&v^z1ujg$9hC?Ja7T#W3saZ(5`6oO`$?dZ#;#FvAJ%8!k9HL)7TWU!`1ey_D zH-OFGe)}i*f2O_6OGvq}I62(aKU6N{WbuJ|<209H>Fgeo%U{I>oqvVNk9sS41n-di zua8SZjNbdmEnU;;lYu`66enZFZ-KFhOP2H_k&*Fbuyc- zZXfD+LuREOm`|R2Of-ucKoY_go)rztwb%hpG3WW)Zf?u7@cRlN4u01Jg@Nlp0V(54 zqnP6OAo5k0tEpQGvAQ z%515K^_JPly@qJWd^-MhQX^?LznN|+9H1_s-QJ$#cDR}TQ%uf;V*mE)uV3eus3}Aw z`+Vh$1VzJn@9P$>T`T4Tpm(1>9TarR+k;n+%CzORsKNXa0e_;LeOK zv=@+6F3B;=XwIPDP&ysG*T$`}Ch4^eCb?w%w#RH!!=#2GDlr4CLB4N@te&`;)Avk6 zqFUm`OEK8srDT-+pMJ=0QjU|o79Zv6m1(Wa*C^BD8p#~Te07EMJY*VNo=nvh&=X#BLBuYBoh=ZzbYk#8TgO-kLX&6XeL*%dEZ z%N!@Z^7vrlGzfzWfoGdbdi6X4^srB5 z=@F3#S8m(Z{p|p*=`7+K9w`Ez4zsQR0AFJ6TW_W~#O9us&TfXe*9nhwM6UH=<(PRZ zmSmUwKK>FpGe4fJos#6<8$-E7_4p=p=?owf74-O2FgiVOfXz5X)34NX^fgz<+qz|0 z@sc<*Ef3GTU=>WF{YG0FpTS{3@bsRtnAQcX)Qil@#bMhj8(#Hl)zt;5KZ8DLqknoJ z*|u^4cut+E{h@FwZTIl-R}i`Fj1lCkKZHy-89UK?s>Qy*Xn?|v^tqwbPKF<6LP|DH zCBJ@9q>g>rGSjEoNl-chZ_axlOM(nCi{TO&C~Q4ICnqZ_xSlXEc<|;#49sdjSf&93 z77Kr6ZQp#A6!D8Y_Z4eoM_vf7_gj6zikGj%8+iRpjZSW=&zrh`qzCXy|33xQmEG-k z_b=YHVJJW_h_Bm`#}5cwMTy-)XiIl4z17GVrC7B7XiHw?$+;faKqX%YR{rD9_~e~B zP0aTedb{Wq{J}tY3(d@Y4v=pO5?mM=zgWO^W79A;6Zct&PUNZ=7f*O6v)U~VWg9Ke zJ_ntJO}>~ldf<5{sW{y?dkr@9R+<)bJ!R#$c6iThJsz{!!QC!QgWdqkd>lOhFHfO) z?Mt+S>PkWIcUCy0P|U|{WnM?q7JOohT1D+NH#XHJpwp~Iu~fw97l5-o0%OCJnIn`nSdDt{HpI94Tr#8F)?Sy@VBo!Asl#-#4kuU5qp67JD+0IXdSM1D4WIQC zy)!Wf+Lpl{QtzUmq+Pd@hrg!)s$fSCo%&C{{j?pHM%&9x2q8&>XXfeHEVjL}e9kV@ zsaEXH)6S$J)W@@HCChf#3A`a;SehU1NL+lTtfaoAQlAOZdsU7}0W^(}4HC)o^^?lr zjyuW;qOVq2rLt`{3&gg{2d8d*v^3%tjxQuXT?-Bx?Kl4SJXzH3fqDHyHkwBgkmGFc zp^@t2XrGf|NlYKtEoW&b`L%(qFgm5GZ5+45pXNZC?Jy8w08~+`Yf}1Pzq&vF(to1FL4>ay5M?B(eOf)HS`=?`X9U3&FgVtvuxEQD;EuPe}|8JhNNh2rYNE z1o1ZtTzHr3%wp}37oJL!>+KCRWpw{m;5L*gGKK7E-+fW!$G#p~?4`Zq%7Uql>OaTS zP}4yI={G`~lATVNRb8sDp6+6@gJ4=P8|-XbF_5qM45=!7d5-tH=X7o$V|&WR{hM8y~!o+9A_CXQWYd0|SyqF^vT8JRPeSLtjq5 zgwoUxoLd&nWb`FuK3IuzIjqaN6MX0GzbiTLf>fUV^Z`AV%p8tk3r7^!X3B=y%Y|9{ zIpFwmD*Mf~zQtE>XGiv~_W$bNww(T!t&>TUTg_Xwqv7JqX~28f71i+ILwvFxJ&UZe zlJZi3)vFKa$g=tdw-!XwY{on=_?0r(>Z=X5k^)k=HEm(g*Tsdqa7S@k3zoZ}Iky1D zD6@UbeX>rx8OqR2JLNZGP=AI?)edAx9)B1RUhcs8JL(k6MJU*kDzVd?&2WDiv)bPs zqbbWAf^rO-${93bF>q^aLF0CBL}a7|-3@r(zrn`>m*|MwvAP6;2_?e6zLx@j=ENE+ zZ%_cTrqfagF>+kQ%e9M4?A)M%+{G%t7jXVESHBXm*U)+8g6L{3CEpar4c$-PlGPuD zd7IY#q%`#UtNYW^Xg1(7+h*aa-*!%PpB;1`>K-(lj7D7QXG?-HneMnWy!6RbwZQqG z4l&QKew~}9FMWVEvs214s7Jdrr+B819)ZJ~+MW4~b+ks?q=KPsEe~)p0@q&dhWPTB z028-;xi^O2+{*PEz3ml-Oj!G{N0qp@c)IZRi;hsyFy)pA%?Yl`ImL^8XqB1(S>JW9oSaYs7f9sna&+cfqd=xjbLxD*aUGOm+;T* zlW$6eUw)^u?{o`MbElaNMaV~<))Z_*;fZz9{J(C&YC!Dcn=uksI#FJI``}Drwjh2E9#M$Q?1KQ z>b&{!kod?K3Sw7Uuq4HxQL@5vyj|LYE{vS0)7Hy~ z1@=rk;K82~#=$_(MZO$k-GNU!QvU>Uap9Bad9ACx+FABTKHp%fE%3Axt?iIp#Lu5& zOcK5yywMP7=T1}vv75U;JIWDe`MHs-L;;Kx#pQXo9)@W^SMA>(z?k)F@~JsnA;@0@ z=0C(miF{NKHf-Sb3z`2WfYP_Va0YzDwkJ>rovwJXTSc+90ChNJL^6&V!dyQ1GwScx z{OgHz0R(d=7OGkv@h>3#-I$*^{yS=W&S*T|`lPs61xf?3*X)){zAXH#3fDHC6k*_3 zqJwlHlr4Jvi4-HxL$ahD_}5JDK}Sj;3**a&2c_9jNa9r?vP#s>!MpFNY0AgF5oZTt zC}fn_6tG5O@p)~G!l6XoRBNdcqY_s?D$FS{UofjDUkdu7+3PmjH5tPqbtT{KlWK`X z=O7kAJ@F=Y)u?^mbd;g>gn7}8+pGqQ;dM#BEd_-+T;W?M+tjCRJ#X)w-3015<9!&_ z|I*n;moSN7g%%J|rq*zyPt#^v{{ZKUQ7xp}X{ap|d^_85KvBqBu_mjd{FryWsl@6L zsb20A{u+2~)$GGd3Datcr*XN8ix=zj2VYcgnk_ut`z$BpV{JwCNF_0TX^Ht0_vQ)9dq=tbo)e8Una5g7UWPMcB^_7=jySi_CBGgY%3X;lut(n@J)*@ods zxxf1}^L?>IIkPg_WWRjrgX(&Vr-mdgIsWKr8>arjiMn8SMdjtVu3drN7}MPJ5hM4M z7=G1B2z5n@X};IP`-aKe*td+yL$tmVN4a~Tp4X~)?p9@O)xv`1R{nYLTJH||oigKX z{gQ{EmWGDN-$ZH`z$a&JV6PgKCBUP0IS9{WzM|c>JlN0#>9pG%dm?G|+q_eW(=jJ> z`!KoQO9eu*d)hj=qxRZ+@zGTAA*JPK-M7Nj5T_iGBCy)@`|aTAhDLPFE4TC!8HM>3 z-F}`B*ybj|rkkzm}G66qAH zA^h2>j^tJv;v?aFc&Zf+F2f?z*FJO$MQ`vuM)4gHy}OZfCr%`5Zjl5#o&C(%I}Xm) ziJy+N6(d&DLeHseD+-Q}NS~LkZ?{=@W7p<6Chj6VvIjF9v+a+SC@t0%UYh?=7*|@v zSgtLQvg-%gKM!N}U~!@ghT5TTJTi~ZiPb(%p=akn?D=I)H>qGu7_BQBaInKz%LVb7 z>r5fG3Ad^g6d^vJ4zQbZtD=%$nT6@Amvl^jY1+2=hD$})+&`#BxP%5(ZzWo5Atl|| z50);E?Bumwh<3~z5BuBsvTY$%Zc_!ur;5g%6IeCokaYC#2h<}s<-X-~r70$y46Cef z_vGJkk9|Ha0XyOz1!?!uajKC6ZyTH;!I+{HMfr2z%?;nYqMB?wlSwypke3{ZmViSE zSh*{@4G&Hdm^pmJrB8NYpvpC4vNdCO;2Jz6W$y5v9&AIcm-PB0MP2EUkkO;c4ZW#W zw%3ANidp_4gkJH15I4lF>vkZ{h5QN&+I9kf`OL!TMHN7%EEBtp^fBk>EAnkq^1@#R z1Rpq${>#;cA3NT*93JLF(#GM-Luxt5g4*y z^=j5k{+`U|yh7;Czce929cyE?b+xzGo*B8KXNIq73xZhBQpL9EO%Lcj|04x-8^0c3 zebJC2!rASk>@LxwJi4%JTwJ15J$N9Ww58z#w=+^%*qji91>~TEvg<#aA4v5nDq^_v zs1j&SdjMKbE;kS{2lYRStZ*8&F$B{)xNM37LbTq?CF^E%wT~p*E-bzBE$m~< zcacTE%gs^AhB{cOX z-KJI(9E=VA#5X1>(u-X0Q=n0~$5k!0fmG&{E=Za`E63TV3x7C*6`u)x( zao^<4^mhO^6X8=;O_Vf6b#e(4!B=J%S-7E%0w^m#$me}u?`~JJZ^7R!SP80Gv znuP}=@dcW<&9`>LU%~^Y4PX^wp3_!XecU1`>v8kPF7Bzx7lQ%f`F1Z+UGbe-jSp0{ z3B<;d4s=z0lDEm#ZAeKKmD4ldh{dk1LDt^w+ht*>5HGbAGg45r;Ek1~36^ z-iu2Lcph@gX+D(1E0Z@8tqVxzoz^$!+cr*_@-W#xm0XQp(=LU_ca528xZp~U#i@*c zLJN3W%hy8`5=a0NK!8d|DV^1TF$&kz36DFpFKnKu(7)&a?*Ve#bMC7YCIU4mw;W8O zeRkDus%J&tt!-?r1Bs%4iuR*82Xmt>=^;VW2@xCxAqjXJMM(1|>s<~Y;LRxWa@RZE zPOjr!OtZj`?iILjGtl8kK5@+#+h5D9 z^le_m@6?Hgei>jC5zKE>KCX7sAw@3_OX?mwMDh6$%*|H^7!>B7e*C5SPLOv43mfl1 zzBwsZQxBn!?xIL*_zK|e#rOed(Ze$n$vAsy1S9%GoYe&$6c)5fFb-AFCC1YH+g2Id2lmOliTwz-K+|KE~Lf& zne&muAA;&M_o5ot2r&ix)6#mQ%iZt>P4pkiHtfkSc_8tX$zz|o z*C!!mntoyMU2n=JrCDR&{;ij`uyhQ|H84y0`yUWAmRoGnXtD^AHZ(cJlh^rrejy_?zG!L-a4lTpY>x5KY zYXX~`>TO!Ls+P?;+C=69C4d`=-)M$iM?5JjJZ}|JCz^`P)aH-#&ZmsE_wzOA#(4z_j7u z3M3I@{M5d%ukq}MB7exWu#=Sr-`%2v=fz>bi)9Be)IDv?`1Khg{RGPoYqzdtT7YL22Mx~j^ zUx^N??5;w_1c~uYEAc-c_#!&Ux_@2v?NvUoN=hF@JI_V&bSk;Vi;wb3@OjqV=>nl- z7B!5_#YU52jkbw+(4WLzUwtqmpuB?SO@N&B&2gJIk$jw*6VtgA%y?1_A?R|C}s&|#4A62;S!5rl`WGjl{c9!B-p-!eM-@MXX@ISXLW zAJI}gvbOua&p-6e(Oii|$slux1W~Xxe8*;tAR)gX;U4~Hcb2O6N{?P9Sdif_-FZdP z<_nTekH1EduWj>i`4+8d z3@CCi*PD*eyyv8KQRD%-dXJ%tF6`}an)FMv#QL2sndzbK1ILV_Z7YSk8Pw}=A(35$ z>9;)~NtJ(k{&^y(RJkZ{;85JGm{)G=fS45fX_Ua>$IJVG;fv9$5S5h;&d_^$3Y(n#Rl3qBM zPlG`H_B>?>{c7qS+EGI0a0RPMvpNimG0MSYmyp7)U&m>X?a?k@2|PmSAnHdOZuhzf zkw-l78tcC?InQrC*_bzGc>`{9dT~~u2`;ByDGiIkKh92+cY>bYff74*B7YNJ9k`cx zET`0a$LL8Gr$`@AYsd(LuKX)?+-eXi;-Q9@6vMwqv;wP>=DS}HWtQ*V_a;^LGVWCR zGtR)>gY>wCsS+LCHdc8L!hbGYi&fMV+B@zD53TDzu4FQ|J(4dUO4aF*(R)4`zc%jM z@m6gBj6K^fB71%uM!S7jd4OM+fgYmQs!hzt+83hk_@4aiIDp*M4DTNYgPb&F-C6iT zGEc=m$0MY9({uIK2I?-R<}PrjfS4(dZ%(@R`Caq2e`a;&H-2}ANy zpXz<1|1${rIjT{eDWE!_x#t{wooE@laAd&^>*E2d>_(`2zkzp!>H@D!(F~h$z1D;d z39a-rjnn4iu+8=seq=F;aT(e@9=!PIATwLct~+|7AkQ#;l-Qs<+`}av#_amup21*064fybB@r8TC_}jLpm3HhUy*0X zjss$RRr(IQSTkmH_}AAOBNFuzwth9au06lzKyvg2>IluM#?;u*idfH9Czr?--0e*T zt8@L|?x7{IUV#F?t{$Tns$J|!so^Vg4+(N6*EjPy_v_7~R&-tvk+9$?6c<;ux5fl( zARbQnxDYF09Jx2K2J%ur7ivX$VPoSW3@W!cRLYRG6IH*9HJf|Vmcv2HYS%D7xud?p zET$wq5*7w7Hk~red4FuCJFt9|Ym^&h(W(h)I5Y^#3Y)WSxqo^Vs~(Zo&>c+xWM_9x(+F)70O;OXIC zI<5Vi>AL%r8$TT8pWkI2Qh>I0f6(2wMMlxJ?jQeH_@hEMCI9f#3%f4s^)#)%jsJ0U z7Jf~(@B8QZsE+}Hhza5zT3YEw5lI1&Zl!BXa>QU3DIp+CKtQE)bd7CFH%QkuYNI!L zjKTcf-``)bd-v+8yOn`Pv+!lnMU%ewV+l0Ksm~=9HFV5HgW+VM!Yw%_F0ttc5y4Hl;EFq!u z7OD%RW0zta9DI!Ybu`A+tj);>Rv!@~9qFK=#UwpfOyqIJO=f0+z)k9Izy(}YSl z<{ackTag=yNZnn+JBXx!!zFI$(#4q8u5_;~RO=;1z8_B?-n-Z{e}pB z`fgC+b^D6Sw3s9A*8b2a?th{Cras8@x%Sw609Ln_c;_6U9W^`8CI(tuSV>*aMChZN zcZMQWggS2DLQK8Q<7au2ZWeJy_mS^HtlV{un50#yzX6z5mcFcv>=hNxaqAskIa(regCh~ zqD|N+LZbI>Kh@U)9_Enc0ZS(DYy_QL92WZ|+XWA-<#(InOBC7S9BMAsnA#Sr@%d%0 z2pX*(mr4J3hy}??DzWciQPq|}ON8{vEu*S6 ziC^zAUC?yurvNF>c{h}l^120xUGh@teU+hZ-z>a}T7|CwF0$u#mYS9Ae7TpatLpai zlcNW|n%O4zIt?jLU^$Lc4R;z40>raYXGIb?x*1rT{51`JeB|B3ac z|LN~1ABu3;Xm0qXuYm*sb9r5Pc;JoH+~;he>jweY z;H0^QJ!eQubjtUGVeh3vhfCT6YtGnM#uNFzIzruPZu7Ib6SGT;md?PYEFCt!E`tzS znQfi)V=wYfT&tw)o2`64>nNXg-3uzhGY%~i-MaSc;V8?@^afuHk?KP)tq*Ox^8%8o zT6QXG6|_jD4GV79d#;);8U-$c&GS!1ak7#UCT_iZ6Y7e&kd(9>S19}uP>-%!N5ke! z$Vj@Z`Xx=+m;u@(bR2>vxZ&rhC0jAMyx|+6JUafTGB?yf;wG!KlHmw;l`nK`r*Xa% za6-med*h$0^9l`Gk*^~R^Q8x6vS43|jc4R_dPb!~53H+V2cNHjm^fo$Pm{#ss@nG; zP#QL_l3xV^M;Z6z7!7zNZd2JAR2+~?RF~NHCDt_;K1ek$8Q8^)??<@OFxJTxjo7cN z13tNcQccgYqCpt~&rI85kLhv5Z(@%SODbJ0em2T9uMd)*`lN?=}piracaxrUrXhhA!g;`1^S5^HSqZ~!>ss7JtHmv3*ZIyfHtklT}_%^Z7N|h6x0#lZ#+Mb!ltpEUM_W)^PV>F z;Dogt3Jr41@oGlEQJprrIgZ7-V(_6-e#t#b2?-*2^OE~3rI4DeYZD4uRJV*N@c&!` z_W6rnN-DV$sP0KER{nt9od*r%*UbehZ8eSMA?(5G*`}8hp8<_G;G!)-NUtHq{1eGv ze2R`4I&^Z|r7V>VCCUFY=Q-)Of7wTQTb;KZ^X(h9=g^ENlDk1@U;?ZjNW~}G|K6EN z${1A$awB;nv0J@Z5P2+9UR@bWG%dXEM9Ct}0YC3pF!lv8fss+8&zmbmeOqA<8Tz*2<4kkAPe(o?la_#C$yuXDh@yVO1iZ!U`ri21^W?(zMjw$dsD#@3lkHupe1fcvzQSv9 zEV=&LP)aw}bsLM%+ZMR;V|D^5|0KEHU0!#EJUek?GL=_;Xs*n0)-wB_m(qzI67L;z zR`jgD^=E6b;Z=v$07+}Z*ORaG#QM@D;cP&G98D~RKAcmgU2bIjPt>Tkl=XF0jp3$< zdA?Nm^pUu05yD%}8)wM)lK|q2Q$1%R%9%9ihL^{gGN^+F;bz=iZunwjA|5F}P@(Ba ztG_KTT*BNIyLYw$gZq{6MbgH6Ci9^9(6Z|WdwgVq@jT%tSOf5{CgR;@Bg~BUC$o+m z6q^~K)6hgq0$vh9=D)4xzk2L}9yX^v9b9Bxz*{3ThHCl8q&i4n*4+`VZzTc%z4dK-)f$BhTAO zD}XG&s8-w5+dPGQeQvxVCK)@t56-`Eu|QbmbSZ<2C+LRe@F^e2N$D?Bt-)6}vViVN zQTEwJSmD)svuPCVff5e#8Nq%+{t3NB&O7|eLGpSrN{4$i6ftSwNsIUCj7$GT~r|Nd4`fFZ|xr4GmraRjz$ajUna$(_Wg9=UKJFZ zZ;&0~87U|{nfuT`DO29Zqe>%J5F%|Zh)b{yp&p(7JWQ&r(Z)T@put;^<|o(-jiZ6QObBo_$9j9IvWPY^1PuVD6X zefdnwPJi+i#1$Gc7wP@fk6lh3*!ew6+B9HEAkV7LW$<(29(OYIvz8?Cdveux;X!FQ zevp8f(L9!7+^|gagypJVw)t`WBd8lVv7$7z*r{|=%gHqSGs7y_oxeC@61V&?xoTT|Ym-*;oHd zNmxhBE-e_6nFqvugy#}wCzxA%a{bCG^E(8!Xuhbcr=|h}9(xZ9;HHH=$%FOm>LE|m zm-xeScF$%L2!JF!w5%7+e_+!c4XNNCCB-8+^`^a<+9z^gb0^2Ue zbMknn_+@$xNaIq35!M8bhI2gk4~R`PQ~gVe%m3Ft$lTeV z@{$CIA!(N>Rm`?+!iTeymsCBTXt6AToAyLfb*k(wJr;Fiirq;c#Ej4{X3VFP&nn85# zluyZ39uEp_AM_h30s>2{K01w{Lsp7Fou-i2_$>9P!scc|{TRt5FRXp=Z@e|ut{@}=Gj25w7loYUnV<563M}{ zuuAy{e92rk_YvrlRokvEAo>dZG!ahE!(~=~G`yc7ombdlgw|@w`m+5qgc}oy74aH) z73d7{%o>=%fBl?KCO|PFA>sJf{!+q?U-khMyy7XkPZZb~%KcB>ND!1+`!+vhig4^iFY9K3>Sk|DzYC^D2%a3=`utVfmC5+-@h5+ zMU;PweH=9#or7qWPWv|vN0+ybeDhjPU>LMWp7`bUA9<=>5eD=uP=VCUm}`f!7Ooz! zgg8RvV&*Hl@n;GpVuvy2t6WngBGlYZMEzaZwwghA$}(xwT(AWS9CE^-`0{KGq9E1^ z9Nqtp0ar@lYJO=)KiV!8Q7P<3@J0GPEX;>?&oemlGe1_GI*q1oE7EWqA*jd%_Mq;w zSDohi2*Ss^w9?|{cud>jon{@vN(HYe8XuL{7lW0afTn({aMKS4&XM@yh*1C(lQp(2 z^cVk>gnvPGzep!+n@MAj9~t+g2Hbp!P*fodHoMQCUzHV_`{U%08tAOtqHaVrF9^$> z7i|gOD2_hX6>J60>V7|1fB$9b`oV@>rPq;Y;sCMQuZQt@B@tdkI@_W7J`ej6^qLJ< z`qLvv7HT$I?|3)W?Lq&O+{fV*HhMjC8B$^cRl1Uz-%C|<^(=p(cUH?Up+V6V2Avz%|wPxcj4lr}843*JS9;8-#2d8(AU)u{K zFP`_#!x}mO=X6-+-m9gbW;?1<^wuj!YL_LnVnr$KKq(C+k2k#gi)@kFbpLE)xIH^! z@$~6`A8DVLsd4l#d2WTuD-jL}j>pKhF?U42dUU;Tz4#EYWV{>xr@7Tnl4N21XC<(* z{nx1KYII?)P8?pjVlk*E|AG+zdm|NgdqX$l%|F}{V<2GC6HLoa-6j3P@h{+aFm~ukiOBEdMW7<;jomTt=pq>$5LT zNRsx4W=PoGj)7ks-Ys*uNU1_^odsgQ6WsPK9v4~URv%hCJ@52G@4TVy7&^; zIf$QB4KEMdAK*l_$9~dZ+ITg}BWiR%We~wAqne|;`PG&L<9GI}{jaHsTi28ix^!>4 ziiQgx>WX>)sc=b_2WKRb?g}Zl+&dh+$;Sox@e+Y)Hqb@NTJfj0=kSf?nVCu;2K(yl zSMRLP?Ug6rjs|hcAC0~=d?JU-@hFddwW$*%pq;e;r4AOy5-wH_bk)D{yZIcqxH|> zdfb}e&fxyBlsbz*{AZk4T$SCkOR9;`Yay$--ErHke86(wddmI1^_}GF$39LHQe>uu z<$DaX1kXQTZt#sD8wylM83<#9Qaoq8l;!4$Xn4*u`q&%o$}1`VDu+$BOmED>Kt6vU zf=yh~H9qH9aTlL#4oWR8k&o@4E?pIPRU033+B06WKjJ^+uV1*%2KL|zwlHsv!n31W zN%*hau_}>AgMM8qlQJY@TE^(cBZ4x#O}k*;Cgj-4TFvRDA(QwxDbEY6{(BPa?^51g zXam`Y^+)x-3U1>V9xXlI?*O@u!Lq!Xe6ogOt#$6*N#0`}&1*h5sARU@HK2BI%Ufo3 zq*nnZ_Lnxj-{1J;S@P>%eCRje8{e$SzN@9O_vg;Oo|G@5pA3N~+t`dF0d3bNCz?@? zI6BE5H=q1N7P}?q{XhTsL{?wGF@(@XolP68(FPr<<%nBAs2Lhn+|4)7PnMh|EgD^! z%lEB&09k$2s`d6&{Ob3%+@Vikp_jYa4L{uSW}o+#IfU#FUb%i>b|L;?=;COLfJyok zqwX)0oYRB;rNqBXISCB#?F-q+Beuv>xt+PQnrjdtkBfuX&Z`;iq;;`1cySu&4IA$e ziDyevgXNyF|5MTLXPRI5Cjs@C5lC3)yrM7AG13m2%de+%>Fs7bf02YZ&-#R0G+{ho zkWXV0aMsdm9+$w@!g>YVKJ`WF{OS|s*bn9WIv!u(1^&y#a(%u3%p0-jca#MHK0K4y zhS9#0ZhhzX%vQWF=8^mt&J{gRrCC^f-+TbB;Mu{HxE=K_8LNG*ael^kZ?T5y&R-_p zR?PCt@Mm+Tnsk}a^dEwqIP5Ev9#v)5i2CNzV-EB2io>M4w(C#_r%%p>HZIe0_jND4 z2~D!jOiq$VPciOQx=BWx5h$B$p$pGC7o}OwPUC4>Rl6bO^h9EArlnGpwSqyU_T9 zb3b~EjyXDJ3xC{}8&rG?mXbfm70u*-Y#!jztZygwywva12(sy+n>M*7aub#eZhJEv5SYDA=qj0O4)27?Up9X z?bnUhbw<1XrOq}Db1NNe#vNROsU(w9qsSR4@nvUIl;aNQk8+mW_)HyNZcgg9CL|M^k@9hj5 zjcU1Fk_NWb`^}>@IOnHl3CrR4e_yxa8(m_Ipk6+_+wAmVcm!r0A6M@1tD3h=Xt(;qatZ(chyF2_Kp|oq_9(<^;o(7wwcJm5uR%%;@Rx z?sM(}z-C>kzl2A-ARRiUZX^D9o&==K*;`9ph<*6@MG=j)t-jTG*7U!``&%@+%5_rK&qvQ}T?awah#{WoTn}wYqn5Q;Dk= z8x%{ep>MMcYDSQ)k2h5sp&Fb039*k#54e1DS}m++EAumh>X$yrTS?S2H&ux1CiS`J z3B3kAROAk`;4hAxwVSmr!Tp&!!MCpZ2|9 z$d(TTd{quGeU-|9zM`}?SBRRi7!W^-_ zo_Bb=U9vp*!;2Qocn;2~I_kk|oi7qg^VPEo-8a_|*Vb>%YI6ES7T9zidFzprKR++Z zIcq9oos@=D1MU5aitXQt=OY`c)wdOX3#o3Pdo%CwMv(@=%UM@yq;Em}-Z1gSI~9cv zXPOBNxb#2h#!q}EtT$BI{E}2jALlo!)92@>Z8Z;#em^*py-<*yXTUe7+OF?Q9Zomh z>fUAjaIVs;T*(LdW4c#*BQxmh++`0)o*nu7G7%JZ_uytXz-QDIjb!PJ6(k%oqmn&+ z{`*AP7E*!!TPm|LejK2cQqnIluzePqbrO_NYQ#48x*?H-zn>ClYEMrDBxGKOQ>Mq^ zZbb&A8)2^#4f)>_{?*#D1g~8zq1d}DDl=0!37(frk5gYZj(Ix#xAg zE%R2kY$UqGc$Y}eugSSI_j{?#lJ*~w zXg4TIPh#uz<(Rb`lu7?XL?koxUxGBNKJ&I2 zf1{lqevGd1nBr&IWt#HOOXY8Hk#%H%SN2ujx>47L^gA}!YkgOpS)T^pQC0Qi$Cw9= z$`V+%U7f0bq(*izDJrUlmr8DJYDf20ja%QeJ#Dj1`%Pvwvd(sq40}xc;?k^=Ih5xH zn6j4qFbKTRWv@S&5y#}m`k0nz@Y+jq2hX^(C9}y@5kV|)e;(w=<>WJewIh)4&E~d+ zz^)e3bu-UH{tuyDOi^4d|0VL<-0&bt z^7*U%oYSdiN^0aRK#g7%E%tL&BFesYm)YS@W&Vyuw4~Y~@}%rd03~bfRy& z8+WH~KUku1aa+hNQ4XDJI?k6(wpO#c{dx62C+M(kTRG*(y?ceLH~h8C61q&Y(5??yy{96BrKO(g zDx+n|7)pv;3`{RX_Nw28vK5S2pXIn^yK;|p{;-n1F#LYYF|wY*zUEhMUT%MR`EA_? zQR-s_lV4OMWC%^ItOgUd&4 zvGsi))uBIx@5{0|zQTIOKhP~#5=sq*X2Z{5^jmc}Wy4)?LjVd?tJ8cxtdd_N)TfuG zQ?y}$z;jnCxy3YaQktA!pNnt;K1D(&QB))PZhCwG4KT)o+2Jv4KmJzqL!YT1ekn-(Pa)_*s3XV`O%!`Ec3Bu*PNxYII%8mYc#vz7rB8YImu z{n{L2L-xSOFUytilf#Wnx8K<+?n*%gOa1AM7?fSt9bXB8-TcnKUP&B@@sK;4l09ST z4tv{R+&U)nbV#`!b75DoEDW-;W?}p!*h;)ozzFx~{<6Z&O?#GOsQ-dj{RHgsQK^~E zJ_mJelzsnPOm}WNp2@0=_#=juzq0xnvO_ZZs|nwV8NgKJ;x4{m?PI{ME)P-o}e#J8>uX$oEUD$U_j zCc645dV{F-^}uikFxv}MmhH|ER)7&LKeO2KKLr^?81F>6~+ z%}K|mw}JgY%PEz|c7dMRF($*@fAv1INB!LTVkQLlspQu+?UC0y!w&s7BLD*6FO$)= z?Z#T%k@D9N4;zJxUT^%Q$10poZ7wJ!O2M$cvc$o*`l0GFplAJa{SA6>uDj_2AL}`h z9H}>#27`mpyNw;2VDY4=R-IQhC@|Gr-?jR^pWo$k{GiZ{h(|D;(XCSz#{IE!AAt!Z zzgBCe@NPZZGiT%Y<+y#yd6?=148rAko9Cb(m^rEx`13ptT}V`1w=WNmx*oZ@tNKzp zP1iJ+|9+VrjzKT@si}5vPmsdfSP3n=bj-cK-+ZU%7oTdVMP;zi;%XEOU~Zi` zRi8Ys?vf=!1u>m`lPi$tIZFStgM2b+2DoHBan5fMds}6-NN0t z`KLZZ)wClAiHRPbPyZx;=#^av^H>rj9tX)MD2z-YPgwzL%MT^N^4eLR!FlZ-B{uCO zi8&$m)sIZ7tQ3JnDf#=49CSQF?VF*nvO+tf zlDXc53b}{Io(VXExo7ox1*6n1gU z|H{x!K8iac9M<9k`@M+0f1LXpF{`t8+idKhYN>D3yhCKLN8t{IGK$XWTOxs2K#BH} zql;52`lY3FR&%p@?ByB1Obkr4{zQ%Uv-u{rMfmgdZ{`wBO z=)KrBm;%#YD)je-I!Sf&`&HwiBKz^XiP)fm#_@}h$c5vKCA6owg>`evle~3k@ng%A z(r+x`^BlH-)ak$KTTp6CU}Z+RXNp|mRM73LgqC-GCFegsQDv*%HojA$jVLnOG?9ES zA+=ug69R1^xmh4>Y&@vxpv&KPRnh_boY!pSA+cNlgT=(1=$kym8ezQxfpIN?SZvqS zt~EzLA3qRkY8u~K1vR_HCx2*;HN4FqR{2bOp+rS4Ai>7!IOB(Yg@;d$?d_E7LJ6Rc zJag|+|M+Bk4%l;#1mJvz`j>7_=2Zl18=p-@3q`Hx(-r-$bez49cY+Yj2FXnn&@qoB zUOQ71E>~Vzo>^-igbNgG*;NIyjRTcq>*s)q$ywhVt=F1t4H2+OX1#Hqh3VW)7I_49 ze{jj+swEiR_(_QzH>DvO(uVApaewIl?N#DD=bxzqai?Fmp!VFmuJ1rGYM@?!F0N%B zDG#Q-?Y;fqbMKAr488yi#*9iOV^n+>?3}h6b~tW*0t=o;cz*Ob-z@MYd*)2UMG~4m zi^c9<>heQKnuS%C0TgcsvUW3!%ObR~-66)>G{|qGp~lt*=p_wFpz}|_V)0D0*egFCZ;r!%l^L1sVoG+eEOl#x zuGXDhG-+y~pS!y>>!hHLme65hy4LAWjiAUCQJ3P6HtyFYB|kc{+Hz26=81V_ zGq8UrE=J27k9A1?^w4R%Hs4e5%5Nc=OU^&JiS_sZz_Qu&1xt1amJP?A&Jz$7r{Y)$ zJ}l5Vk@cU)1AYaH%Sk9r#k~7oHm6v-r;BO%fE|-Qv@rG{f@=3C7qGJB(_ai{ZpYl* zi4Pr)mRX14wB`&y47j{T2>FMv^{iH?zZh@5xukD(>a`%M0242n8LTn*-{MN=$g}>! z4jODk;rC|d^oUmKcL&^N%Y9Vf&*N_0B$ux2s@AJl3jgpte~Vu&yz1!Df{1N3t5|C( zMCR$A&kV(sNzN?k2fHL2N-c(nbnJI~ew|Be22A9l4rQs$7Sfo$UU50y!ukXhw`@+v z0{n&t@V&6BTrIJ2Zw%rB*GsY*=4d#qkhH-4t*@J@v@$l`F~|WBpF7gan&p*mqg&Wh z?SaY+t~8BLOA492Q$o`YUn<9MFfJV0&HC;&j*mprl55^n<^ydy z|8ChdKRo|#c9xgF2f{inJMHr~Eh?(8Aw$9C323mYYFSk}j*ntON^fLfG!SCj3T5aq z8@28A0Q%3>Bw2Ch&e<<54w0=qmD9s{>nH(9(b<^pi_FB;cZb`iUe?=2d_c=wD@$L0oSe)4Xc)|~u}e%A9szp*#GlI?7@Zy?ee<=)$e>a%-jZKFQy zG7dvo8fFDnW3~dpz$SL`)MidhP?x`thWVlW&+fX_c*oxQ&C<;xxTHqO*cYVv%i5rA zw~FmR49;77f$iL>BC09Npe1h8Ad30tu9c^9!|Ng9?DvJ#?Sl$7c6i&vpPD=9sG?Hc z0s~a9)qVWspu>3K4Yop0M)8S5-12bbbuxL`@QcW>NQiN*Bvp6&pv?a6RI9ApYjHxn z0GsnVkBzWVs7{30&Q z_Bc?y?eSi0L5?ycgZ~^;qSS>~R)ozKp?0U`!5};3&VLy^_jWvQKW>2tsY~)(6y3Xi zT#5#1I0+k`i6M!{o{&ufM=Q_LRk_!T`oWHgB)*1|@W&x3@A?*AMP$>bJ`OJ>yzIMF z?PkuwkG z|4dWzulrr9Fk;@|OhlCE7X_<#G=xrll)WqzqIpe%_sh3$Jho96ldRW~F$Gbd3UsY; zp$Gd~kIt5<2XJ*V3ZND3dJj~k7v$quC*9u1Y(hr79mcebAnHTvJZX$X&e_`hVE zMm651o%GuKnY)@J1fqCrrvhGK4)y)cT`H+n(KLtG2gh1z*^N)p`^&Uiq|a%8XG(2M z)RNH7UC~*Z&^H<~G_$PwsG<0{yS-8F=u_pI(LH(dZBpf>Gm2yRzlLmR+g-K9%u(%- zg8UZOpFQmPkr?e&wQdi!L-Ve%dIVk4b}wLEtnJs_@xFe5%c^)vu&S3edxCldXW@0~ z_Gm|oMV#2F{!d!W=dPKD{hV@-`QBf48V6Z-)a?GZlQ38rTRdN$E^iposrZ6LyDkJ2 zoYTHnfj0Uro<}gK_y>HJ=6feo+w5$m=3r>--Dq>Hnn>`=;TNBt)b8ZZmd@)}3pJVP zEGR5J8&N@9CAB{@CtO{4Epw zdOLfi3YB>Wxu|^CuJP{M<^P=2pC6X=#ETCu-l~sf%tFBzANnGPKhEn74~F^YX(M7;T^LoIUr1`U87cG!sol= z#V<4t6;&T9R`ijym8H|&`whND*}R#OdH#U=+TBG+?8uPFRl6IJyTcyMYgLyUK9L2mBL1=!5gZNF6I zFr{ls&z0%kKV)u}f5kn+pJHIPJAsYfa!u+oR`GMN{%&<7ol;#*i)DJ1qHf(>ajZ6H zovGXlLwT*)un+r6Tww{|tCSu$gR>G0TK4sK&rJ{dvSgWCI*7jc7&xoMlGK&GRIqK1 zzWXhtDEL6DAc29Xu#_<$7HI1SopdfZ@4r{8AJQ+}P`j3S=SM@P7jy5W`7N6sp()jC zPCJ8E&F|-ag(e+ML?x8=x&_}3uy^0Pk(%Ak_g@6eLR)-0I#wLEVlYX)Lu-k;e~?FS z#7pk5I<$6&o%3flDBLImmvr@QiUqq*!vl_1r^mcc%{(gS@$T}IYKA|2-nrOykXe*g zi+D?e{U#~xv*kG;6r|p!M5?WC?WU9W;uG7HC)?}hvU6NvTp{&kV8ctKcTm}kUXRC$ zD{mhqRhZ^c>cvku1o|nUFFD+DU9U9nApS*JwaPAC@~${keaUm=0iyb18PSYwlhFh0 z@v}pn1@xHO7(WE-3>TuKvgq||w|#@NtpDVXo3pdn=Cjk_;c`=>7A3uu9A~9ph+i!j z6c{Q|;qm=9wD<}0Zx7PXuVd<40hMl@IRd*=aYaoNFt=h|m}WK~js0fCM(JOsD{-rm zkXGYGvN*;0)A90*xfn#nqQbX4yinf*P6X6B_4>FHio1s*SkHnynT`!|+=$>ox1u}I zNoh%+wXGY1NW#mE@x5grgnqx?G5FInbam@h$oc#UQMSh4Dz(-3Jt|aZIzU}CWLQ>? z@WdmTLMFZj%Dr4QFF7_Y&!7{?k$5(`HK@CYJdQm(Y?Q4~`&8=rSzERnLDbAm^OLq5 zK0nGPL^Temcwh)RC%y7T32mgY!}b;l(`VicO`A7A39lw7_ua)Vh+y&M4mUP~-V7gc zb3Kon5pU@|^)q__b1Su4htIsACFf_WhuIFUj2TE$_Smp8h9LAFCzY?CTN#jku$D16 zvfV5h!()&@;R^*h?Ck$`(6UHDrS<}G9!Nmqau!{F=XBbLtP6^Sa)J}SDS_+8j08Fd zvVaR^GbbF-G^5Sbb~XMo-98*CD-3qBQj+Z?{-Vp)9uiLB&j^NbJlN(AM&=%LC2=Gc) zc*mtJ)I`u}=|sGcVsD3#!X7=_B5#6H(pY(XtKaa?R)DJ7?^P5)bz5DJ*z>Rf$dWlb zwpd9pjJt51a8;rXtafBI<3q{VkEH+Lg|3rLBh-VM(R^Ld2${(hRNa`5_<4_N76)nG z1AzP(Z&{6$K|S#(aL+W)gO=j-V=H|G=@}5TfaY26p1#>x$ep3O`lB#aHH#ThRVysg zb3Gvaj~D(S)Dm&)L;@i==M_!}8-y$gAsNb6N`|tVdE)hvV{mFa!SHj`oL@%o7qDe&gj+()m>`Ew-z1Snwr# zV?3$#%i>+r;?c%3AKb0KOe=n&f0+{bc81el`%4~?DnB*<$rZg3eH@~&&agQs~W z=G^w8A4mOI68)XUEeB-4GuMI5yMbtKBI7RX{H{ez4!4`>pUUm>qO+~WsofhEv=-h& z0hBM*Yj&#@v_N^6-qINBBLS(m^9=I?n-yq&GP3*VeC|*4u&T($5+7&8A-N5qLXnJO zD;w>bn+s9v&bG7la$v4=KLl|Fzi$ioA;Ol6c*_LR{WRW6w-{waq^&YQ1l-KnjdYt+k5YW_`&I2%qdk4`!z5{>A*K+eehwxc#k@vAin}!V z#{T#Id8u@eqpHZ8y);WYKs;{lkN3%nOc3K=zFEsA1zND=MN z#jPv(OQpy9zTZ-hzK?xd`a{ol=;fMA{~-B^M;QhOh5x8V!sJI(p8T6zw5i6^JbHj) z%iPlFd^W@PqYQc#=`Jb%`Qj=x$xKU*hm|4q^%MnHUiATAKA>DU4)Lk1zql9K8;dc!cQ0t}bfdrmfh)%6 zcRif+)ng!hX06nJ&F-pipIacXK0XOQ`rdF7i29N_r%NMB&Oa6RJ>gR6-wS*UuEB;G>>IyScr1*mPb}2oxD&^g-4r)?OZi=+F-# z8Tbztw3gmtmhENO_5V){tcIFfTI zNXY+Y8?sV)^b6*BqK_$LZ5ZMtBe#Zk8IPviw^0oZwJhCmGjPW7bBJ0#1E z@x)WQCLE4Rh9!qrx}dW6@| z|~wP*PNNvNm!x&mrquTh7MG6 zJz(&w4iAWuyuzShdR9pZ+b*`B5nQ6@9ig@{5z=_Jqh>db#=q8@O(Y0D0^zL7WQJEo z0N!FH4R`uAV&C-hY$db@PUo}kPUpE_Zs`*QJD6!4U^om69LlF+S1+4r6lZp0LDonq2<@toe5-oUBYypFT6m+ggE|Q+{eTz# zX4^XBe3)Vxk#ulgP6wxbd9(ztGIJ)XzhbB)>oz}>Br)7d(BnC6xE#Xl<{DGRhatK4 zn@x*;b2F8y)=6?6M%l#gN5#Vf3D{$ga}*l8NcU$sw*q0f@O2Vt zzOafmyys))uq2yzUMJU|BChp%W-|XdKO9afIZn73qCyGfNou0kb72^Au<;c@0-QuD zi4S=;5Um?c7?q7)Vx8tj%Rb`4dDgUi5QDsSQ5&(pZg@b{km-JrMPHf*^4>eEB-XN z#6GnIbtFVJj~*Pq5%S(6Sxtv=sC~7v9jKsjKOAzv6sqTn^u2|%*~)gJgVd5x?;dPC zF_y9U(gt((f70|42bEsQUXyWtHIlQs;Mw@oH~YGbzNF03f^Wku9yt}(LOnBonYxQd z+gG?{vQ`{ClNSxXhL>p_JO=E-@0E~Rekz;xot%e%z3=U#X)xz`LmvSqb0YbLS?5iY zq$GQ}HSNC5$<5`Nr_L0qNWSlqRmPHqhkCgk6R!JY!z!m@ziZ!Q0h=CRFG{ zMgUs(^BlMKnUISuhOXx`O)pItjGiV%?SWqKckjAk$IX+4MWiX)7DuMZDue+iUfV&E zN=-P$P~_*W`m8gzzQH|mg}bXZu9h_G`@+_W|1XpBX;}+0>x*@dWRR^EZv-DHlazf9vGC5&pAkFP9NIO4F#KV9eXMW?m_N? zDl8=Rllx9HnOaima`4>%8q|cYv1S}B7yg$i!>T06i5xx~ z-ru%eeLuUF{=WK4NKX0GR@xCP&2H@2%j)%mTmg%w1a5}sSccBaM>uwe)tiPZsLaXC z=^p6vO=~Z3tXA^0mVO?VK(9Aj48Q@@7yYNu&}tB6u{f7XsdcfC`-$+2f0N%$g$Mo2 zd|@))LD~qSW7eZvFodaOQ zjnG~AVQHH~pS3XhCQvCtPR!H=HG$_3Dct~H%(VCfQY^Th2Wl+>^PymC{pNo#@SLw3 z1WDL#r()>ocrT)bLx*kNu>Oh~0ZT32P2d*cj-7mRYMLiWdJfCmFP9;& za93uS=M51U&8o$=IOcV7+7Z0kz$i87f^`Om%cE<+KXOg_Sm{vD%MVY9%D8TjD1sh!p}>?mcm;=3@)L~+-kq}C9A~q+muvY*j6*jXtNLYesi(hhL|=b; zSV&R#-}(7S5Ogi)xlaO?Xk8}tBjMZGZ1zwGa6AnCnyVrOIP4|s8B1n;smO1mJ~Vif zME`1t!!vTNoq!>%S#%`OkPB1j7n6SO>T<-bZXI_Anx7LyG;R^=Vpa#`sg+&5WuGvWs=KW7kFs|xsls} z4l}E;Lwh`EA&FEW>K+un)NcpM80cw`hfE^2daGNj&9hv&AhOpX+ZNYId!jKGZYSt+ zk=Bu>Rf<`+FM(K!`16~R6Hm)kOK(oo7@|Tt) z`Ya+x!ngZhC@F>a$=vQ-dnR{!dS?Dr!d~ffixRy41>oVi!wJ8Y9k(aQA!IRMp_7D# z?t&<$!eY_}wWQM$A~!!x4KkVxgritBs6@Ej8p!oOE~!jp9CT}_A0x@5BRP%-!tKtZ zG)XGmOvfcSf=(^r+$lPDT#WdhaWeEc`q2y@H>k!QU5hMFeavO$!>ErwKWYefUkzjsAOl{bJuplb2fo?c*>P6%BG2m@`&1S zW(G?yqo5o2J^WI>!LD~{+p5nvJi~%ww)us|<+f`E5wKGkMg(eiu9@nP^P=`4Gw*8v zeM`K2u|Af-}isJmae zdOv(4aZ<5CGTZtRa9^iyqQFiMruhcvJwqZ6eT=r~uvG=Tx)7E}N0p9nty_|Fi7<0h|6I`3pk?|Lx~!aEzN# zrV>)31T3D?N1-<;;2NhA!&TR_Qn&h9)TJf+09&Rm{(kIJd1DlZjf^@@c4)91(i}JJ z1nbYGR)vtt=8v;SNgKnV$O-K}zb7|)pO)C`mu)FGbSLiz*n4_fE2rIQcK9(9+;7%Z zHKyH+@XQOXyx~|{bn-lTUXVE3R&^-4*@11+EsRXFMfNo_0)PCp9Tbu1pxNY7%QEu| z!tEn%de)3P#vrr?U}-E`i04vrI7??{Fz}g*O|UG-YSI0CRCr1`*WAkVgnX(rb{GYA z@AUaV0)=??X=02nTWfublX5U{jV1>a|Evy5U9D(J>fKYr)f*SgDXlhlT8PCHPYdpr zbBB$p2-m0x;)+NWiVl9>#YgY&+LwLFC0C0tMW!a9jqODwci=~6GBGHOQQ8~f+pCLR z+x7V#ee&Ze@v{)+qj0>J+)9Y($`=~?|50=v?reT-9M`GCsH)o3Zq3@Y+p0a%+Qg`u zLByVk(4tkVC~DUpv56T}ZL0PjvDKCY2_e5X?>~@S*LjlXocnyoXRosH_3?n@0c7k7I#Uj8A(tAZ;wQ|P15@_G zv&W6Z|AyNi7k|_|>f>$!(`$}r_f$y@zg~Oceou>6?Ms5>Y5%ZOz=*-9Z~TLb&rv8P z_L(2rB9lTjV=blY?JB8l&O7fwes0r4C8QlAXq^YF+5{Cd1XR~Bd8jxZwD040cdf~m z$ew3m^QtCe%kzxflnHHi6mE%& zFVk#%+~wUf7q$|V-JYz}TeBwOB`12S!_XMnebbVA%^*PJ*TD8PO4KHJ^aOTTr7Ac- zJ#PfY=zguh@nW|<|GvDL{kax zqH-nG%CQPvME9;5QG;HtVLOZ#S_14-h6`ePPiX#E+ z7c^5sMd1UFl=++5APUqEX}ER$7Vjvozc{IMNhK<Q;+go!UupL&cNNh(BJb?$o1q6;4m50E`bw)NcXPXX zTUz6Tp2Q+>@wX_y?m(^L^XQJ@Me+g~<#Skr+!^l6$1X~O5^cyw8I8@~g-;R!oW8|& z$gEGyFl>v1=(|dtEtImSr{*>~nqs*P5*`bDliN#}ZsWh~hddx(K)QqduFAG_T%G>_ z(+1X`WD_joD}p!%r4-Q{Y-1(lma~~X>@%QQmu=C%=Sq_^;Bw1>KyQv!Y}vzKp$bpe zrG_$!(!?ObJn2GKs%8%^zZwQuK4juV(Q3~eFD2@DKe{MaQBKX*c?4wj|IY635USvv z@M*_9h&>aJmsgCU?n|Q~M#g3cc+;3YU5{9wt~8eWNv^FF!^t@?GL@XbHuC*3aJZ7_5H;=&rR?F#?M9 zRz*y8f_pz}Mm&FfS34#y^rKghPdU5b-z#aG2QDq(^<4?eKcx>fLZOAfI)#I--(72A zw*h?aUVhZlG+8eEdzL-n>2IkHQ7zu=e6~!#Qar47cQD?p2Xw{Pn5d{fkn3z;J03EM z@abg4J8e?EJXm0x0Z8#^O!`u`HAmhY+c%h>04aay*HG|_U5J`9C&_4dCl zEDUW6-|55G4d=Tr^vaNKkCqFc9#K=fU@s>AI;B|kFp26g*fvq&`Kv{Q?EtjS@lG65m|LqE zLvHHyAYt(l9)bCKMV)fEo28X&4GO`IpynSEynVT9ww`(I7wL8O*s$~l%bQr1xd5*b zpNERjyBU!iLG*tEdjJB${$u}9*dz)Ti=rye$m}+MxKtWhC2f1On;uz;=waVMaxYWN zfmiHYFe8SezLm|w53!EzHEHC5co;OK*(~BusucTr3G`m2ez>+d zt+2Oa`;GP06TM$m%pdL?rQj#RAcnHIO4tlZeMb`+uFF~KG$JWSSJ3m1-Fr5yTJ88#WMds|-fy0RA2 z#SXa^OJz&T!;L=8u+q%L;M4VrAle9&wCm~+Ozl)i1!;v|>azoTFs%X%1}TfR+g7XY zEE3eJAV=}q<;+f3L-l>!y$TiTR-0H(b{$vP^d{VTV`o! zo-|b(bK{THoGWZi-h6NTMd7ox2h+uLGI`*?)I`0KzWi2x@i&*DUavmvY5!tDSPYg% zkWXcfB{ixTr3tN2(Tkgd7Vsi4t*jb`*snZS=)J0q&%?ufm02NY`y|a@>Gb|ZdajDg z-YyouyRZ)T1>0%vZr^llytFO*t@z5b9FzhAxvm1m9W!P~%Dhi}dc6RZ&!nsviLxfg z2bF~qPJoGxj%40{RWUK4TD+ewCU_Iaab1tM@zFAErIN3>D<9qBYYa*_G8BsXM3bDV{I4Gi_Z89I{j=Tjfbq7%So$Q!rD<`QRlS+#T@J??3X{3f( zh5c z@3zBs6U~mG{_dJC3eV1U0p`k-ts}MZ3Q_4f4%er1&>ufhHd2c1tuK3@duHD)pDeW2 zHkeW&z_g2rP3L6$u8q!jLs(pzGEyXGD3lIbJEmYK04Y*1Wv(L3i9&hDoOh%;oST8h zu7%=(hVaL~X+kjTO*{;@5mf={3np!2?x(Y$Hpxaxxe}pi20CDMT8mS znNvNDZkCV)#~%Y)#Ccier)|I?8LXsJx z-M{L@Kef`Vgd(&gnZG|hkDu8yY~@yco-y=kf0wI){;8>7ug>FMfYOfCPUZe8(GD#P zW`0m$*wY}ZWL6MrpESv-|8!@G{y?tKsaARg^El}N$fu2l6{ZFsD+KmZ{N&lTe+w8D zmrhgAwoeChT#)8vxY=9Zd>iaakt4C)h~F`e&R{(YW_@v}INR->s?}_igX#>UyopN! z)W@BRP;aJNlQU^=xpCLrLd~dP%U$zjM(1{i2!?0gAa*^S1JHhvm6$&2BdEZJtGFR_ zSlF$#Jquw8BI)b&!!;l~sSPlSy#{u3edW#$tlt`!k<7Y~L`# zZ3Wt=$6toBaRhBE?L|yo8kf2TS%0!EH3Rnd@S$+4=jJ5v&*r~0LEAIwJH_e>%l&EE zHm(;_Vw1Z^$hOC<3PV|s55d|xtP=5ccO>jzZM!bZdpRz?)W|1~l>&C2UuCq1AsFV-R` ziMZ=YnWq_-chBA-h{-}0BY>d``;L3i8{YQO72vwMfaA_M#Q`&Hh~aQh#r9c4DugDl zx}lH*9_;?5CNu6b(~cpl#G33OqcSAB%j`_kC7B15Uao}LSkx4l6QcFu@_kmwbm_rL z0*x6*ny@EfCRr2&m>)42&gXQjpMwMG<`$eA=TQ@&`H!=Dp4SuTH*NfA)~>Dd6zK(S z_o=Y$DKn?g(h^+Baijoml_NaO%T8X8fJ$O__A{`6S|YB8gYjyu<~mT;U@0i+qj+49 z>2QeT)cYA^Gvpv9;ddFgrcGH)b`UPd0x$7LDljYXWVW}y`F*o>)v=X%zm;NYsxs{4 zqj@uUc#qsgo_CD?=sWV*T(2Y`M5-BU zjk3yu5;c%8o}Yx*GrD8@C$2Xe;}!t%u*rr)W7ML%LQ>Jo^*wVt&ndylGmoWz2ZWoZ zQr78#{_wz@p8<|Dok0|1^$OA6Ufj4N-U#S;6SIS$glFp~6O?iADva`1&E9;bw_eFE zT-e6`t$3)c`)ltww2h^)F(Gx;il>t$qAJ^Q26?k7Vq5dKn}NRU`>R6=a#-Yi`f%%H z*y9-BEx5jA@-1OtgyMvp6Dj8a<{_-+#JUYiN1Xc{>-XC=iU=L+D^n@GoYXt{nmVqK zC*2iE!l4vw7aX)I2f-$?k%|f>P_24b*D6Lu|2o|PzAz_{?#s)b*B56a6`s#`lG=$C z!u3b-GJvJbN+oX~i3KANBP`uFMdH*Ebis75d`aE96GZ%|>}K*K{iHeY8R&!4{^WT1 z5lpzHiZ@-Uu9K7Yl6f^&oA`F(;hy1S#Sf8keP|j_vO3c(PVwy`m=I#x#=J=ME9q5H?>A$1T zs!raDURsjp9vWNmEvOWOHt)#?ppUzz*n|27$8;UpIohn-_a#cH)V=O;TACC^=M&`bS>_zX4i{uM0|>YeO4u+6lFtUA@I=QS^=OLtZ84guHSHhCLVGr|Si33fNH zRP*@WcG!1!HHU%_xo+Kxp=socE58WOT@U*?lF;YJaXI7f<+;swRZ;k{w?m;TjNWdN zCY*D;R8e-uxlx&Ex&S+K1Z)Xob;`_M*{+hVDcG4wb)KFt{Mv(*z^44+QOqP$2eP!| z3{gvS#bScX10*NK^be{MJw-NRM>&7Uxw_e2d5XYZfcB34grWLa!OSI$%41HW?|W7A z)>|5n7nQEv?Q#UbN_2e9jsILaRqvtz>qsYr*kSZxlwTTLStDBM`baC1oXZ;Isf%m7R1Iwx&T87R_ zfcbj$K2Cvh^qwaAjbU64Yh(o?{(pTpOi0|~O@_Wyt5{ldI z9(OKS)=O2F4BQXqiM|UR8%7R8&I8usT8)Jn`@i!y)PVT3F z#jV{=btM-`vF)7UTxEjl>CBul$~@`MXP;dA=x-N?GO`d&LqO$_wHO!YL>E8#h+kqh`XIOmG8bMH=Qd&mm zAl>UTMs>~KcwHW_FPmU#R%hXY#rXlEz*r74gX3lmgP{>Yi0^4hnDG5_Vx@ib^5dTYuzxY|X3Af8RW-r>`yAfi0?YSk8Jt`AKOtO{ zIWg?*h46}7iAM+N@C@11goKYjx$ZYP{lw=P#P_t?2m!ZZh`kq(e~Eg0M?y<^XP-qY zFdAm#iV7GW&Fqzbj}5Jcyzio~eui=`KPaH+l!-$fmi83Y6cB>QU9{4XMAKv56z@Ec zX=1s*i6{Ua6NZ8=DaouCzQed!qW4%tb5;)2UD-9PC#XQTDqp|Me8?n5sR&2EZjjdW zrHxEwaf(DeyPeOG%U*e4Rax-nBl!wdn92#2O z)A|VtJsz{_V&oEkw81#XfCcbNc}!Bj(JE?AUt3}`O3~W{AxTM4BdWOY9x?iLdQ z*I+hX@*!l#FCD>s;@vU&OU0LYE8Tg=)#fqN(wmvrW~Zi74&|%#klZTw!n0;HTo;VN z{&jnGYVe0U=_7IOqNgfME*G%yn?j(LgXmRJJ6?Fc_7@4(yySt?QmB(>1;J&U-Mce2 zo*_G<7?wN``UCHTcz72(B6o7TL?<VlC+yz1k7ueh|X>iEm>-r~ZGC2@q916fd!t$qIXnkqJtRSACY)5}q)D@_}1 zbjSl6{({sS`>8E~jaZ%*;~U!&4FJj6>vR&i%_01D9pCaDylLkhl{*Qse z7svCli5R+m9*)yOSRt7~V@^9qRU@gN=KvAos{5;cI|yGX(AO@9F%5l^p&hkfz8b+G zQe3ZjxhW8a^3n%TUKp)Zk5>rwg|w^bI5E4$!tc9SSjW`gn zKHJ`ge^<>36nvR`TaKwWXbchHzs43sg8(61SbpyaCJaNkT8N6&%oJ=T3SrbS#CxZu zV_hr72PRcjr&u{sO+l{XI2ypeKVjhpSQ+;2@ft1*NZD4K@~xs8R&0=czyqf1wt4?8 zZ^Pb)*Qw9~a);oeu!W)Rf+=rzx3jC#qj#d+OeyR+Q7>1vi-htr-eTBOBkI9oDbPlL_4aoMA}bGseC-ajz&I#?m&0*L!d&pV<*3iWIv?@Bv-u7bKZ4TDX{Q{7B`c zXLFJHv=C!jM+i~5V?LL`Nf{8bBrtEjl_J^pV+C?IEP^sr-<4dD&DaH$i!oWIX|2ZG z?7{2!nI{Zp<_J4+gn9)Wm`cNG_e}8L2=Ur8B0SATT>DgIRl-)UOV~=;Kd)LF#MBsD zes^mLB;DC77IWgTZjaWh0yD&%=Rqjc>wav zw*pF+e}WpI5KK^-+#erl+dZ>SM;0&L31sE;;eQnOi*n#=B94S}A@}P2C{9WbF?7P> zR~#Ugh3#S_%oZbEaoQGFmP)6}5hrH(J*MH#9H))yHzmY)et4>slPO@jmq9Q%P6r6@ zLe3m2M5}zwesnB9lt;)h7~e|o@q4wkm?9DO%l6aW%yiSR>-th}slOA#d6}&txVuSQ zP4K0kMs|3eLl7JOgduJH=x%__NLM<4a-sU(+GeBa<46h{JL>UdVego23X*SZo*8TW zJ+aSF*>z?JSGwx9h2lqvVxHKh!Bs>V0V>6o%MRUt__~{6IKO?HE#`sdk!CdXggr4zBuZ2@I^}@d#+h17sO0(XpPUc^3 zVZD;mWji5vC!ylEGw08;IC33D!^|VM69wGDT9r(*1J~LNjgR9as}z+-*6;uGDOvrd z=&vKn3~&>?@T-z&knufGPbA;xT761+4ydZEYCk)4bRlsZ+wFMsg+utO2BL()wTgd^ zwfcKlXup70C-NswD}>%PHevDL?CWKOU3JNLh(!-3zNZ95y&A}OeAaqX2EmyGD&f!A zLXEF`@P(e>89uG)!Pg=>x`+@~S6LEQ)6~%_r~=6<}NoAX-oH5xCFt>|6i+9=| zPa*GCyfSX};)><`#!KPd<Ib&j8Bh>{&!h(LKOJ%gN@x;V0;!wK9d&v`2# z&y`>?VWa~L?j|Ge1($6FgXml1$1C?N6l>MRPK?N9+0iP3c3bQo-t!HE_CRK@K72x`rx5^}9<-h?QzsSl|aBj5s zYAlC6*k$41@qC7Ah8$~NQlDzCa$ZIuIb~(k1Qs%_gB)n~B?}IOj$=OlqA7#H<@tdf zG{YY4eCcWt8Bj)L)rZ>=ziu9POxGggzqUUbueUPLVdvL8&Cq1AL29t1j2wT|{5x@A z#c7Io2Zk&6N(&jpZq|?+2trXRxdfNsu(f!)xn=8|#liv=R3FjW2|(OxM1j|dZJb&x zoS$!cS!%XAW&KAn^|E8hn8d$eE%0;E=HIC0Zi)xfdYr80MiQB#U~`6exDIT4Y%n6d zpE$sCo^W}3IGuk`RO}Zxnq?N;Qo#vpvpHuk$1ihb53209i7u;lKobLl(N{Tb7JF+d ztO4I%Io2xtxLCA|Poc%b=gT?6=PxH*_y;eZ@x{HWX2IV%Iik{W;=Ksx*(6!$5U0SRofLo09m=E1t#ddb!4j%`C-v=QrSQ7Mmjg6`9L5eg_4o}< z3ZDH6ov1JBSS3049zXp$7@UTb%TLsqoMVFre{d(FkD$n;wf`vS3AS#r$=NX><0{h- z@~T8t96fNpF#YtCj7U=$If=T?`{2nU7W)5DZSZ1QCkpi+g#g|QO0vP292c`BZj0tf zaf(&toO;W^Y?Qb-ZM2J-(oKH%B?%y1Mnp0nuqp&o_0uT+ne-Ddx;mQu`907^VV`uf zva>1#c=h|$gRk%>eOrtFQ6SH)hGH8^rThhx9OE8s_xa9_1Rbi|g7 ze5QZhd5Aq=YL9$U2yf|y0sc%vlqbl65y%p`cePF%ihd8kO-%f$xjCU$tPxmY-H!ow zT<}%>`L|D|j(CL+l)HG@U!BX6zir_^irJY`n@f$cOT&lr@ZU;glJ!pAh|&BA_CE>+ z4-<>aw|f%6+1VU1_~Fjmtt~&%91#^S5#UykO_$YUIPIL3tNct9{hRUfJRJMxLR3bz z8fRd%Nou4t*wA>oI72-}^3f4i>(Yia#ow_qR^luZ!h@-bwyhbf;5G#1_poe%LVR6)i7vL4V9jc=4ePgk-fWo@_I#lF^-&@;Dz*=$3278Pk%Oo;5g z&1*1Y+xjr*fWtQ`Sx!$%13i24KuJ@WHy3^M*~4sSdazfZZPJJ}$}+z75lkieYiegu zeEg-2;GESgEb%WLamT*#w|n1GY}{>6Q>fMI0r&8@mHsghsNR7&6=qFgi$_tGvI{X| z$4VmV1D&k|3YX)qCJwGFR}V;n0iRwzJ}6t>y*O+OegYI?OmflIz&vMrPu{!uK*6X^WxlG539uD;$`j9 z3nt?)z6;sOnJva-CS%D#k$f96Tm>dvc<(6VzO(tPr=NgLJN<(gkf+OyYi6cz zsrb?ZX|9@?=Y?PpID6uFs-v;gFZAlOE07QU1(es7v|;Pg=jERl^5skJeiLuzx}kn3w`i^Y)g!nsO&_WS?#ZRgjI_P}jYiO9%0vC= zcg0>i|0v2FArLKn<+*yi8S~X=iBmt?p8G*yU|MtF-Hq(;>G5%=RbOPTPrM`o!k~0F z3oCtjW7@WUw$>miw%I**Jx}se6SWOU($9q7e+B~x|E$(5q*AgMQQTs&18s-;xg}~Jz7!TNZGCCHuEpm zkh2$i(~XGz=Bis)AveyFc{pJ^c@s-tv8J1?Fr@6!CEuF*1gFN>L*hGB3YW;~!N#&h zw@Rd9&3ec6=A3&WBc?28B~ZY6@OfmiYvOgSsn%PH-aB89I#yY29V?G_8Kb#Bn~6F> zButq4GDdC?(aGkhG2iIuKxvWS?!5x@GA8hoIG&BpY^Ip2H2|~p_G^PJ@3xQcKC4LO z`?RUp;3TBu9}}{vPE5>iF<8jqTStCcVI?hvs#e+cPoKai5Mm^dkAE6oG45 z7T9%LSO-WPJaFT~{;%yg6_(u9|0r(G5!@Z7p?p6F)?n%yjx?A+hs9&_0{7Q(#c@-! z%Bke%b!V&ySp#CQ*s|7CBR$D34-PW5+zl@6oNF)i!Ua#Du_trPrrEq0S60X!=+oo6 zz}O$@TXM32X1n8BlbKl88L0FswGLVH+gH>mMILN?;mz`gywzl8-kU+19=k{72UtI@ zKHkh%WvSdl{O;5(YzxN1<^MfCd|H$^@>;DqEt54PO>VAFFkdC~at{DHM9_-@rCUi2 z^3*gF*JX(keJq!Vg|J0h{i$gP8p#u%z6lmxk2G$GdJL+;ziU4V0lZh3&a+%Z34S4( zcSI9AUYQLArv;<=eH_>KN6Qsdpa*z(g>LI2^ay9-m*E6<%mK|#SW1vnILT29CtLL* z3!Dn%t*vfzOQ;C%u;*+^-srmaOu3e^AqRrI9ZUE2&+Tkl>Q6H^=#@7Y+e%VfK6x#Y z>tB^k5HjvL-i}9yYjqEm7VS1m`J2VL3!dSEjrx}3QATZONh7__SiAoy%ogFTuO0x& zos_7l1UFpZEN73YyCaEqjlr@c%b#}{FNXb4kbD+Gu9f2`xjd@r!d-1`AVh^!?lgloP{k5`KrQU++(x{XY;RQjsHcwRK7s*fUj@$*;h= z8q+7UvRA`Ms)cvtoB{cx$7H|$wAt?Bku*toRIY6kq1}9wjvGP_A*@KhxkP))OoAng z2MF#J%KcGdN6N6MMqe2&YLtl7NOQqSnYU^+>^}+uy#cRi-!`Px9H(xuDK>{q$s)~W z(0f&Ar}WUhedlz0WaZqYFDE+^VH2Jc{&4Pz-Vwe8$EAVJX?=?tk&xVXuvuMt`#UB} z89bHQ^7)xmlHw5-isW8!klhM@#^r%WG48^a$GgEbs_W6!Q~GGt%?L&K-TW# zG^#{pa^?>CVUvyyfH83q7&aSPZZ@c4@7exN>~U%x4k0Q##FOFJFh_p)naeQpW1tG3 z({OIcemh;mgD!VvK*rVXgirAILFH+PHsVaNxZedeBP;Vafjm8ImZqXih1>17?Zr0o z+)LN}S@q{D+=z{k*hXo3c$MOGXgU8xc#`gCH-3JU4j8(78oA zmUpC$ev^!%C=)*#m5UPHj$Ms?H~CvYh1^Bpg@;aZ3xu?Nubz>g;#Jv z{|Hfb7BBC9-tH3Zu(Srv@%Od))`3q;9i8-8<|n88=&yF=3eSA+4E+FSg+I+Xf)39j z&C(~lJn=5fMYBZGfo7^oUx(Lt>hm^jN%MNq1(vcdJE>*+88P&xMOz@8^^_c>a_PyL zE7I-=5=wtfI*AEyX#VKeH_Ul_<%}y*Ki|{G+UNMlEC3US6G#yxBpRe2n?HMp@wI*%XT`h();BGvCu5RjC|dFODHmzSS_RU z%DX0Hd#NI1w4H}*e*&&bI^YJ%Ue+-{2vbYSE{`lI@!y9t;EQuuAgtRKB8!4C5HDG%o?7sOWD zLfXrbk5Zr7lIkl%@jX?`yPQUq3Lb-ZWE@?9rVJ98^PMOKP)^GMrl@T&V!$>y&9Fi24loCx8j=r?&xGv1qX0MFGq?cJno0Klwh7$!=hQj!Q$vws3xk7{MYOE<*CpgOC|Ps|62J-=`h#kxqeiS^TUjQ6Z;JipzHU zo;WzQSwk~9HmanYanBl4v&r9kRwlV0*wHe1)EI0Wn0d66(`s0O6b@F%--oZBgZ%OZ zhKzegGGk>^aZiaIs|FT)xS(xeZkGxq&+sx6u?E6_?M(Va8N5Stz&7oY^?B->55KP_l-Oy4B^jtFtHzs{({$fHPN z*iF~?=qp6D8uFVaeTZ1Sy_%3f9#qV}ev3JWc;_#DHAv}uS3n3pz`-ibWyR%|tSXc9 z78bxNfvH#N-N!kfs-(n3?We^=8HsfVLZ`ndW`1^jJ8XSVj$JJ65KP45>+xi@I8~+-A^!U=Ne8T^wy>#d(O!oOc$e_M z2dxSXRYO*E1ZWhIKW0X_wL#S1*fHUvMdHe(Md7kzf2v|R2=WXE&oqIyByRrEXeY0@ z>7`Vux5O1DJ#mij3&dxEtl0+6KCFNJrV=3tjeiYXQ+~$Pn4s*igq`Yd$VoapWUyIc zYg}II&B%*;L&C7age2caI%%%Aui*}2dRc~!EO3nD?Y5O zn+Y9}bycVzA;d#>WL??seym>ICNcji&sAi9No9gv*^$^<=D>6~EY~3Uqjf#fdP>4Q zIy}Qy#{S1;j@WQ|5#|rE1J<}zII(oYQ^xY(d@7`($D}oi1pZRqvCI}?ob{M|uLVo5 z?7=CIpS-C$4i^XBwD*UIYv9TO4;S>#z-K!GKTwsuS9g@WgiL^-58xeS2BB`pY<}rv zbm3@rY=Gll(+)|x0N&c9x~B2TRc6|MenC}va~_Z>vvOHnaw3f^CiwA2K^hMl-lYJm za-8?C?WMcn#SnXV#-QmR2=Dtxk%x0HO(|nuuwTLD1Ex-$IR`PfP;h%{*Zz8_mp#s^~kk9uwS`t|P!<+|x>ULY-G@FuO+!~8pM0Qz%%|?Yo3k_KxeVRS+hR-$>ukK_whtN7H#@Vm=bdQ|IvDs^34Sm44Zy@rOz1KgID15zBe0Et^X zlJt$9y4W`I*yS@71(6b?S*$=!KSy8XbAUJNsc<};&CNl#DBcq%jY>H>IY2&5Eme^R zEPOL!ml_c2_L~y3Ep>qfY?TyjY{ZxgqqD~>F@AVc$sJcJ*?TO8{PuU!euplyZBxbx zW>zsQZ7*<-S}ZS9SGrp@eoo4CxP9kFQ4r2VmsO z9v^(3+XUK1(e>X7?Y-?m3B_5cTmMe=`xEjk7;&*gx^p19FJ1B^UVj3~J`H@WU*p@q z8HbsPNw5yY+~^Tfia3j3>FXF@M+THTWN*R#IfO`1>;_i;1q0uWxt$8-+?zuyM^On= z`Fn+i7(Zc))1jXz41^&oLhFyOzVg62%-X@~0eJdq&zPiv^LT7NEr%J-9ew%SWNQmg zc35@^sh9u(wB}uFI*%IL(o(f1tab9{R3rt2@4xrCT{1^*Rd9K=nnC@FJX+{>B;tqf zndilL6@I?sm7iW$W^FS}`32d;A3roHeWxDb=qu+u_c8I&1^ZIX*O|#|tcX5wzltq7 zZ-;wfBk5^v17k6TEu3ZC=5fc&NrDPBQDun4{D`lqqYXJD)-66b-!ohN8UJ2m6G6Qw zMiF`&hA3)0?#YU)DRLcvd3s7`wE~C0H{WQabXo)1HvC2yM*f|(By|=OLgwep-QHR& z52#Gnu_eW&_4tYLCi03~w(8uuy82^#=f`uEr<5;xRV;c7vJ<4@yN&`w{4a;-Ep(JV zwg_a%Y$f_qF;w?)c_>kmH>Vs>AoWtqLd1^-mGRnE`&XIkWJ+9Lmyj8U9;2MWv3_2$#c8(Iw+-KLH6?QIS$i#C>laWxx1^7X^KKdQfa zV)`a9pYpAsM*2|Ix$F7tjv`&|4hP%uhHUEdVg9O;g;WsLIbF~#RS#?sRUfXHOx7pYi8#p80lrtMLkc__Ct+a3gXg1W>X^PFqSV zxI$=lSz=~tdhX@$i^<6hR{VM)P{MQi=zTtMN_orc3Z19evS6H{hk2-1)Yq~n_UK*Y zi>}LJfr;rhp?4`46UNB#dUSGqn=Jm1Ea$RTQbHz$c!IT3A-b!`=Bku&%TZ;IF`M?S z>l7Hmg<<^Yh`H5WM{R00#ZxoiB#J4W*JS@rXjb5vigxNakvoN(Y3#tOeX`|Z4wu2TQClo#(+utWTiQ`b>^p?7(32^(w2&m zq*B+^vuUh$i&a4oEU(v-=g%TrTo*%b9*A+i2w4bv{0rES0dC8Nr!m6+c*!U29atu% z)^^AsE^P7z-{Cu|^p|xH%QvSX^+IM)O}wO<^EI5v_X2PXwDnc5CR5+KnIxf4XPUHB zL~!Xc8dvVQn{ER7^)Q)|>tm>Ab{|9ITCAPX@!y(ag3B^pF#k`=v=>y5DHuIHs{-w=j-Bby;e@i+KHHPt_8u{!3bPb(ffFC<5QGZpqyCo6GQ z#%(5LmyBbJs|?*8Y)hL1~j5M$Dk$ne0C)-^Z42T z5A%+d(LZ9KvQ_G(`1isgz>!Tv>KfTpYs0)?Jx2yLxM#2RQC4s6kmLZ=n7BJt%L4{(BdK9e`SAie{V(xRM|&?-A_B{Wb$u% zX%y|0RjbF=Ll%(6S|m})IAkP$-qvQ^AbR`aW}y8-V(Vo+q}aZd`OZvqt`#h0{>8== zIW$~flY+CeeD);gJ4I;vPNf*V=@eA0@~4)_iNe!z+xgk^v$*Wp@+#V$D)!#bKZm@A zsk2(qfBtsJ-i@Gad}6Fa{R#=@AgAP}AGVwxE=2Js-F+me-Ka>luDrBsci6X#ZXCLt zdzTTzxJmvUZlw9$XFaz)7L6}nkd!D$M-Fj^Ub~i-0s5tQZIUEy!7O?t<(nSdA-Zlo zd0CHU9(tpt&_rS9d}PrwSzT0BVWouAvdaU#9vpKMz@_~-e_L}egHLC_(v+5Qt#!fp24`aHgJpqAmA2>V@W>!5Gu5)fjo|An)IcE z_*VQ8`^_!Wee;`6wIWrpPhPRGksasWMJs2|k(LXYDLRC4OWbm8lYE`-+Pd?k5&3Dr zIGRtQ*)8S<4!36}|HsqSFNFEHCx1x;(qwIUo|MGfUl_HWNZ}TOl#TXf;u!~iqmQFe_mWTVE$%t=-6O=ONF;u50iHrI@Gy%7ZDj34g~*sKsC*4q zoK#M7^kV2!O_&UtA`aD0=6-dqNC_^4pwC~JzRO&xx>1ZR^Mg2f`|}~^CADa*Hk`U1 z3kWt-(1d#G;>LlejjhT+H(CAG*Ye${23qERhMYP)YE0j zo*};86wU={QH`E@-8=2S!CbCYzAu#pv}|jea7-d9=n=U!y}u2|&bnj=-k7HJ>2^hL!j;J+mCyTL_rB>eu2@UDw)g>GA|50=v4oP-@8@H!no$gL^4%e~1IQBf)P!o5*(&k(@@3i7MQg< zMm|-AzuMEk=drN}`#3T-xmKr0^}xbsuzKLazPQ-19Yf{!?fLp(tV__H{2$MIEZe1< zrRAa$#%V!oi}w_T)7I5GMJKN6zaN>(O$iBFo#43Ywq7=ypY><8t*;lIe zH~8_;0DsXexb~2+FEs*XJ&u+Xa}Iarv8)qJ$0qpeYV+NX>0*)yS$=X zWgYvwkF6+|CTrZQ8#h;5PJL(Vnr)U~LG9b*R5AihbkWS*Sp487?KZ|f%uA|X_I9bB zzEp=#0D?2hVq=_1$wSW-c(dpShdJq0Y#9*iNPcf0n;f^sC>r;6iP%P3 z5&&?k|AM2*V-YCbsi0Q1krGdUSNm7zC3%x47+Su=+iRh!qE%2{UML8*6z0~W(eX=@ z-YWfBp__n<1e*JO#$jH4;CYJjo7|}->h&l|wdvN0r3EeRhu@oNMqaDnA1afYJS&AO z4Y{t5ESVoY{-t`2JLt5oe1uQaV`O!QI?}ufohUC`qMolDy{DSzI$NQF+gB5|a^LX1 z5a*)GDcEGQ1id^8s(xq5&Zt*~qL~f*oTl<&HrjtFhmXnDdLf+i<`imxC3g-ruKaEH zIiIH@;Z`MQc?#lE?uWC?^shUd4l19{%$BqE?amZy)FaCLak`Dk>}{?^HY3Ty?#bvjIayzMAo+@V&}lvNKKenlKA!X)O+e@pzuAMfC?h>Z^8 z0css_#T?Yik&HxBk!w(fi!Ni980 zo!vWc;gskezXL7LUa9D$cB%y4Y5b-VsCm8h=Kmbb8^Tl-WQDRC_AW!3B5{@^!{~qT z0gSnxeyHC14{$CThZke&BFk+!UPNjA{DAsHqP=kD>ikHY^1~&{+w0FYc;H3b0Hw2o zje|hLy%y>OKR0M|gx0-*F#l?G<;uwObpE)oS?%WWr_0QP`Q(#>c|y+ca5_vFprAm* z@?{^Ic#7eT=KG`MmS6E7&AWqtJHYaDq41++;LVetezeB*fmXa?;Mdc^e2Fm}#1G|O z$A|ao`j?JXrf+OU(KvlpHlk6z@=}cde8x3Gx58pH_dHm%>V5Oa;mI5sYdf9+I8b0K zcE3+ydOI^~67=UH3wiF+4zqw>+K|p<#AMdjeHoD(kURGFfFdSXUVyh-;;WhKKa|Ij z&60y^(7-i9ylmP-l;esaZ?<^+qf9*?-^G-v$6H!-yhTalvJP}&^4)o2h@SBqUYs3j zf*s#dTrl2v$l^HqkJHPw0A=pE_{88&x063g*pGiz9zTc>F9z=R)%|&@_dfXgwGSp2 zmj5Pin<`zNHQG%k*{!e+pLaG)MJ$R2+i?4Sl)*CEMrn7b$;{U^+Y2dw&Fke(cpnU` zQMloLbZJ?fMpoXCco3xtOX|H`O)KWl}ogaI3G zORFx{*4C3FnQvSp?X4*RGk1pJkOyjueC;8zwlDlj8t`*wqA_^v&CsPjB1Gt?p z+N~v3xCO>4dGfE;~0oDrDH%woxt2*{I zdi{Fg_~w`b<&Ka1Kyc3f_W7O84L%3aABd?_QI7BMV}5aXunR-SM>5O`dn3?3&?Qw9DWp0Eyl-D@3iPAxr_iCh{%K)&ms!2*A= zD{!^TgZ8LggWfJ7T#fxcbrKnrM%xfuHRAe6TGLOjZE;BO<%i}9$zq$CITb7Feb39{ zm$q1%1J01LV;$eBA=N1Xjc*vKXJgt*$4t~(-|P)z_Wk+xvM%-Gx`?9A3N7zP9i7=? zz=kJuc-^vq+k8b!<1+MOKGS%_Cg+t)^5=*0|ctx+7W&<>NbC{45|bedndz&*hF*!v@R> zm^$rUk7DbI*Y%*&9U2dKMs$pB}r%Io(|QhNQDn#hvjE}%^w1I^hWI0{4u zXg9)KH=Gmy$EE`Nt>jv4D^DwL?!)S1O$}l$;Ng6HGvfM^LAl^b&BBPZ^gz5y9b`@= z@XNqMQ}ZVU#k*92GWX9VF_Z(u2%=M7c$AVBrzGF2Dl~P(!(!ChFiJQ|9Me z;e<|`5ikU@=6U=l;BRNp%Bj(arY&`qrM;h>{-aI{MZKTOLt&&wr=Bz7o+*FSz4+a) z%R4)?-?T&=x1KuXTA=}X?#)YGRqI3hma9sI%$@(-2w?QjD=!}$ssQlaXVXDd)Tb?C zQckxE-!c`5k0yVZmX-0u(f#h?nCPGyd(3F#p$|OP!1^B*+*?khv%kSc-xTbsN;-V1 z(YE?5cK<&bb!CndosCcc#8$K{ud_a8C;m$XjyB~JKFo631a~XzIiG9l(!siSIkcVr zU-N(7eq1epj54@60&I}upM09Bk5~_W-PvLj*tEdULV;|E*nFJ-<2AX}@VblUdgVV$ z4?D+`nw2q}_#IDi8HxLv&tYQ0LIJf;KALX@U+y$`wZoFir~di`*RswAv;R0LYnj>l zQ%G$FcT+pZw|#FXGwVOyOey#nI9&w^ITp(&x``q+9e+}WJ|uYT#u+Pz=!oQ}zMxgu zVgx96Usimkn!{ghIxd;C9{5ZU6k!c)uC_b<8(mXTzRt(&0m}oXe%|1+ zn#DS09so1~++!8Fvb@rj7{6g1`V=)8+nl*1G78$-!rOp8NFR)AO%u$*rHG^kj$BW2 zpI#Sbh1K0iUB~7bB)tj|Q1;&XcQ2YD1iU0g4Be>DDab2ai+%NrK_ti0vh5LbRJYN# zOY2#UoP_UsXT)J&3@46u3G@BWe6zqWX7;kBn6Q!LP1V~JjAxV@blOUvGCvF265L2C z*cXece~KS*4J>%Nbc<>3XSKLzU?{W&wY{7dv`^}sw--CYxWQqt!Ac+~c*B^_f!N^4 zIQVNJJcRWmJkIec6&CHh{l{*;@om(ZvN%9}*JIAdGsIIy{?KC8wC26}w%)?RgHno7|RGy=lo^a&u1kZ`<-Mx~8M5>Prxf zzeuWOR_eW#j~ELzwyxRz>M`nc@XBgt)-Llr2|PISIY9bC_5*Od zxt{IwIBzhqd6$-5d{;2=!t}gjXe?6VusTIgU(zIH8lZ)OHe_dlrsPi@88$bJGAj2o z_VFG|F?nf$!L390sd3X0`vHNLKx8ys?LwIP%jw56Wh?+zDNOPRkYE+c6&HRuu0KEw zUr&*Lar|xi?~gBGQ-Ytjb^AFUxNxX!)Y`4sh6UK#%A9Z+=ZCkKx9 zbq5%q!m(lhbAQZbkiq2reWk+A)atTn&E4t z!xbGf*lv{NfD`-046B0TK$HdI{=Nez?pE$r(k-BlpKG?7!!o@@%mUV&y7}?#Ed}RW zhZVokahf_3xeXd{XT>9)6fUAlkXaXdzghkny*^% zr)zA^xYexIV|#L1Dg97@Etmaxvo=B+uRRq#&fdVb;n+uQYeR*}|A8%ubxx!-1V8qx z<-8^A=`x#mq{H{w;+QEe*!N+gubNO;$;SB0T)w}sf3T%4+rl2(dVQhM`Un6;TQ9zj#Od^@{nIjE ziAa8Nen-Ljj&sjVfq#lxv2SD8h}MDw30QRRWlD1wcVl5+C#Lt)z^8#xzkfkVSrnv) zVVOjqZ$jf!C&~Y`RHu0$NyUKc;{&2i~wZGuasEhLbn_>>hDmm+Xky@W>dX#dppoL5Hz!e9j`?RBf%O{IJLlNZ)~~*qT3Opwg$grZ zk;SA%yoNp!1`-6O1>pF88v^<`3!z&Mk0zp8|D&0UF10XUC_c&}*CyaVpH7iaOv*hj z+Z`SFy)(n&kJQ^ykyq3Q^qIjC!`10WNfH%FYBC+KN56K78@|Jzrc9sKr!(t%M<*u+ zd$y%TOxT_dSR-j5M&9E{+(+HN@-3Exx!P%<>xZ$itk4ZUk-RD= zoYrKrkeC`0aj{k?Tq01ML#nuaA*v;Sd)z<&{IRc@gP~K0G{&a?SQ% zqL=N8)Z_Af7#oaFIg#ZEST7roP`$^yaS@}Yy=hRsw{-jCvwHGKS~@6Pl(suU6|-8( z-Q+ZY$Q4x+Wud1SHQmTaK+HvpPEsjKOk`h{4!u$ewa~)0aP9VNd4|sD3^4ppQjr;f zKU&UlH_+F9N=9916>BMF?CVnuPaD0s4^?3)b&&0=-;I-jwSfhl?T!xrhOJnrxbG6< z4*2N9GVD3K}p}ESRUU}omr`pYJI7;gc$rdr0x8I)TX_8Gp@6jB-B^Yi>uzNu^46Q;F zrsh=J-O}E{z3cOfyD%UAr>OR^V{<(wE(%y>yn$v#qaEwiWeA~cv;+}Qduej<(HvP# zrMTB7;}{X|>&x;An)#w-UmU$b8tcJEuL3+LcL}bg*hsKMgovrHRS6sjon5gR*#YAV z8?uk@s=Amr&2>qTwWjB;N=dI861_G|yp>Lk7-?Ym=!od}d2gZG% z-!2%8Pm?Z^Tx~^Kb$1C8%WGg?qHH5&y?ZYdd zA@gkA747|lsh0C!0pP8ikH&Rjq6RZ8hSy1^bir?35?ep8RSPic3F9B`rxW3t(NYo* z01@?tpFh`mPb}K>%1ib?cz=4mn$W;X4MKpJI^?~;N(Ev(?MzZ(n5^s<9kQ|^ca~{kI--EdN)R#v}NaxS{ z`ougXW|2bsBFw8R|4FQ{(R-%x+$CjvfpMqvdUxJj#yZ>+5~TXvSTIo%c~uO~@qFO= zM*c-93KC&(h-9&tWu1x^QE)20cj1|Pw^!*(p&_jsHhGXU4mdts|KCK1V0oi$y~Cx6 zFZbtwx8GGVJ)PH|MpAQGas6FzQJS+$cTTy0*IxxM z&*3r&fhXDb^@`I&AMrx>sN!;>?QsnrbpPPi(qZqs@{`n|fA7i}(J4|vw_+lC1C~H` zEKOlr>%$Z!mR?Zo@=z@8e(^h!M{5wfi1WJff5-~6Sd3HCG;+04b(jO&p;^`D`~1Ep z`-9@n#mH;O;1g{VLh}<*v=O*#ehEYZc831aDYc1ugG0{#?SqQ(>r9vUq6g?5f~Io# z=@6+aZ4F4Fd9sziXQ0=?&u%|tAZ_lBJ1MD1{qhVM7Tm!C2nDPm7{a2P$}8r>-!pV+ zd~~o#03ID8ZPZPckK z>tA{lIJA(ccU62i(iLBCt(LZFFbHHAm0Ylm!I|C~a^>sAWc=pN%jgJomnWMcm}K-I z`D2pJrP~RciXo4J2v{3AhX==F@lNgP1yhU zIj!Dg;z;r(lVf*wOo`@@0HFn*l$qk*{yJM!cUrqW@+4X$ zyc5M@yoz|{A>fhJqB>Kh<+&p#FMmwkrE_y9v#p3;Y;CI~ikt6xUG&kr&ecAMvhNT9 z^d$+>+GYQWUi|$kwykCpb?eo64H)k9bI|T(68ZJ)4;RL(dHMVfDCHhmXX?k|jb{iq z47GM%uRMDmG>lkrT(2f($!whnj4U6uwY^HQJ!&}e;;DsiRSR8REPVCWbzVIK!z%-V zZun-ojT0YwXnLhr5F#ppy#LXxTKr~OHqL`iPe78^g~q8mg(Tq1alF%X{x&t)+xMnj zWd$ISG~vjkkzRuZJ3cWnkyGeZfoF}JO;P(5h8vKTw9aLZ=q<=2b_!?h zE;o=OfwchC7N#{)^)c(^FTPy(6S~g0m&@>3(dCmAv-S+06~Yuhe3uYubyZ{6E__T) zmORsU&~8kAr^nEQltKm+hbmiz@|k^U+)5|ypx}#P6&0t3V^j^jfDe{1Fk)e((uJeX zRhf@Ypduk^4^rfBkkHiRH@qhRWx7c2MEAkevqdyzA_M-S5Q#PA2jUJT%kavfD=gOB z(Njwq*CKmXfu!3mCbo+yjT`4s?~$THMPMt{1VhDOJZ~C5dEc_c@bH9MHqU<{H`L^g z)KAA6;>}N);@2OA^7*S_^ym{iL8171C65p)p<99a`aw~SF`ct|DE>#Xo8Kr+Jf1LNdZdX&#C`K zIgt*rfpPqVxY^MIVC^_;SNlJjECrM`{>YpD;OiCw)Ea}aczU9CRV-%EHxc}1L&J-A(FTiP5q5N<<_kuxHgxrV&LY;bV5n4Fd<^w3LkGv5 z)xKFC36#5N!EE}dJ`F+%W<}?oHzANGZqOg7Eyz?}J}=K{I@P6XSg#|!)B_zJ_vaoL z2LDI%90iE>Nz>@~hmmeg)aRSBF3)oE+4G@|vj?klY zV5`s5cTPesJb(5y?HVE?cWUJ7V^zQEIRP-3;6AUdEfy*+T7JZrx>PQKe9cTr3L1$!wzKL<6L;5=tc z?D`xVFVgbf&-oM&SlVbAXI3K$&Hi4k?GO@#J`=DNcr*8Mqpj1>DkC%n>Nzrk=aUG? zssx)C_LKiEd!6>GphU{hg1pCH%*55hZfYI(<96MaTFJuW7Vf}!S(r1RYg<0v<*&_S zH3Q#>pQ$Ie42vU5b5+0>436@qG4maDhMjW0;vx!fRjKezNGbK<@W<>W{^e#^<+JFb z9}wB3K1y`HLU~ZteM7tpY4!)xWqUP!`PSezLMb46yv_2~C^?aG_VN>XIL4;Py^$~X zokSb;3^iT6bs_T9f-t3wM1+x`&cj31)d`LfN|z?wsQnJ1t#Qyst&sdok#TM))coX2 zFdt#on9N|Jo45@*KC0FvK)#1BaFb`0uclw$X@ZT;5YNp+WcW_7Xnn_UD#h7jQgICG zGztn*b6+hZxa=%@_mMl#T#Q@d-mj7@EQ}6PeT!6!Ln@%Tk6SW$IAA8jM)_Zh_*#6l zxU32he=p5^)Hm^C%=s2h%3W>j6zID}^~q9d{&k-0CHzTsiToEu9dLwH4o*Yby_b3< zSB5ct_CG(KjG-BZcS-qy@O_I?gTi9vqZNWh82MlY3LPIl#A9SKxY46XSG=3?#qN{Y zRu0N$$?WY=IH-)e)q+wyOR@I34GA2BF5M?lu~>5!Ys6*F1!x>Smswlxt!PTqHs#DRQ;+3qEkSNtXp4lj-l8sF zyX2Af+Kq*nj{;*;;l6r^k*r-s#|@OF$~U*HJMzdkodtuZbU)}f1V9-CF^z3KvP4^o zQKlyR>IomA1uI}3%+V-K5`#<(l7v8K_E{n$p6sTeKW{#jJv#D)9ub2nL{COG4p?J!b)=@6nlvXF=Bk;ov{S+~2o1lB{4N_1i->gw= zuxHZ$b~U?7aVG?H)W2#1p-Ih`2gWZ_wQSU%>A`{LU zglED07`9AcAePP79~902Hi>1WcO?ARJ=g6HM0-ieoBd{0$rZ68 zcXQv>r(7{bU$s^G0;*Ys;v>Yy2{B%I_p_9+H6+5HCQ^6pA8BfFj{5QB^k}rfH1_i% zOUT?#t=;JHIG0iKFft8{rp^&9d2vDydB%pOM*>fLR^a<)NHQud-><)afKYwkw@I@} zUF83tPvX5nj>Sh`;=H|qNhjt5&GF|3A@gdX=57=W8`an{45{dvH>YqmR=<{$$bzx5pMVx-_G_*&o(qw-5Al6+%8py4jfG_(>nQ%+KHO^^;b7$cf?%mD8!J2 z*r?m)bse>`PfCaPNn}!^eyp{Qo@hL0oPF8=)KdH2(3deO5m#6)3${3~$_vq+=&K}w z12v7yN)Ou;{%+LWIB7CDipP{wGnN?dfruCxLnzVy&p2jHg| zrWH2^0@L{HrsoCen z;s-c}VJ*zZn#!tO#ap>$4ChPdFz4+dnF+p)aV$riahJ}+P9q!tS)Y45+xVAZ(%m7U z5v5_NB%=%;_6Kjb28N|G4wO$E+A2`C&%IIzR$sO|_;;goE#Du0ITEX{ZwW_nP?6^K z6j`B#?Qx;Ai8lH-{c=?3ACn>f_Yc+MqjPcYf(0?W{fPU~e@dF|a9K#>H`1N<+44cx zn=ap|`%20mbl?MD?VzmFqV`eSHhXD=ggJ@9DT|Zrj!FkcxfvD#Nn!O!Voj{!b7}E` z<@yt2!SnIR42o!vK4^=i%U^BPN$lmkY7vEb{0 z^Tc3%yh33*zOsBUuaD>*OLxWUX@YWy`l?OUz=hsdXq(_K7f;YSg|kU2D*w&2%;DD- z?ZWAxFXe5N`+>1$+JBwh$C1YCkt`AkqmefX#81UwMF4fvsg8N-whz+)iBY=(YSL@% znxYQ^zU+8I)Tju&bXE#C5KjyDi$?od!t(nH-xvU6<7>AoX2I5jh}T*4yFX7!%lQ5Q%&jN zj?crEU+(&-*ZV~{%{3>TtK=aChz|6dZ6|$&xdS=$ODG6_8)`8* zV!5TuF4QzCNrW4?Z=wCaCG!z?xpD^NpMksy*l1Nm&}NAG-7owl)X+g$k4k#tt@jS0 z67!Y(C)E{A1{?+d(ReHlomam+YV+sH>Hmjxy6+$lhh(5ej*{HKcVdQ*kvpSZHtjsW zdOLCyuis2K+o)`zDsbfvcE>VbDZie&S;!(xFBwamsIFS&7aX0#4fX`=ytqyibC5Md z=##Q#QVx<=e!q<9NI5C|zD0wElw19OG+lVunA)d@6;jOf6z4D_+!uYA5h+tpq;W>B zS;O&^C#P$A0_945vs10&_;=;K8~<$1pVh60J0ZGS|8>0ULUJI z^T9$;Ltl`*%7z~}?)`&g9+NM|UQg|Usv!K#cD}UB$TFBnXc|`9=y-BVfBSA8J-Wz! z@dd>Hx(QB=L$$E4lepuoDJ}v&y~)*Yn5KD8M-=%R;gqTAB94weW#M}iobig_Y`jD7 z<;;iYm~HzgTcluNmqTdEzk;Bb1%A5Mmrc_oq*9v2Ri=ok$|mziXJ}rumzv--W|PwM zzkEQLxmFb|U2IlC@zt##$6v?tykkNa#RPFw8^P5&sTN-F^Y_?l#GG3Vfo+v{2Kr3D zfA#6iD`?k3+;*b>huA@yyy@1dM>ueDJy}tvrBweIQ>F&ct>^Y3Zn1I)ZKa+;J;fa* zBn}%T!JVK(D~j#{v9lsOUcY%7TKEzGGpM|x@n2NuN&nkD%#X~;xjKVf?nuAEjK%=&}6YGz7Wot|nmc^?zEh?Ulxt}cgd&r~+5ZJq9r*tbR zx=Qob;ZRAevE4Y>rxzkjmo?Xx#=QIr80qem4l3D`6Q}_X*~W1hsb2V+nPK?N%BgcO z3VV_L<}~>fvnXA1?2{i}6IN`AGn~atYgS63Y&GZ@5Kk|{ctSb%DzXJTQnyzPsyU8v zw_Eh?x%|HVgZ8w~iRk%Uh9k(H#bBaAmdC*(3IkENo2xFl$=kNmt`PDPQyrZ(;=$8W z3nN1n_kQEX`8(f1o~Z$mZLY_lVtXCK^KTu07<%-!)2-dOxP)7DMy8>nt8{SRpXd_g zj<$_8Pl(eN@J$cbx6SV*8Eug{US$3 zTWg>9z_^PzKOF)0uE_aVB0_8K6g85fY1@+KJu*5sY@?b|z@cD@___d)ZxAiTtbmk?_ZN;`u^`u zH)&|DRRMuwmDB`%q)uq2Lc?{hvAThfdr9g$k`!6PBmS;fOSW@q-Mq8QK2jzA#GCzk zi}t2+j8ArDsCd43`G#t!k+!|GMiXcBFXYqg1sJLIdI}=RG7}6(q9}ZL%^eERaX$pT z_9Y^&HrjpdD)4P*%ZhvL0Udonmwa<{Kf06f6Lc5v`=E~26ikvcR$}$5ZIRC5(qUIQ zLWahupEM(G5<#yb7s!93D_pg=3j*Nr6{@0{$K_@6O6P@FwbD9X^CHu~s(ln6;fmr~ z&NIv7J3>M82kxeJ_%{dj_%6taGJ7)#h@8v{LL)gK`OjIzMiybhgz1aY;e$1?I0P@eE4}=g?o!7>-RusICSTS8mz%qCn!aA z7A1x_D!tBqQ%aKiJ>wPNmt?Z@Gi1>8F64q^rWz3f-ax?`1}Z#acsMOHd;?v=kfHTn z&q&Q_1P5J3rwDq?1{7u6nge=B6^G>wcu_2q5poVf&M^LEMhf(KPQ2c1h^B1!K80iY z+aTAK?dyYowUuKh=w~d?v9c}2Wtu>LX`d|1&d+iw%kO=h$9VwYO7JOSbV)MVWr#Rq{+)fToMpl;8h(6QW#w25T5+&P`=ouDN*`UydOI) z4?tR@D066SMa`fLD+D^=p)d**>ized;$$%9s(Vil9 z=SNSyLmIu^!Ti&CDO>3Fj7d%0svgaU)b0{{*`uIvf$7za4OLC^#Iida%IR$*QWSc0p|D_~1ee26* zFzPV&Po1d2MIrU%9Cvj)t#|Vw?81h6DJs~UW%OAM2`C3u+h@oG+{|7mpig#kiZ(R+ zVh$y}pY}YAX+(Y_G|azzF}SR#C>wzt2B<3%41HahrG^K*$A!H&ud7p2%GBaD#*7DI zRYYT(maZAh|MD>J6Gpc6d)S@)?hN=uBb6ixc8299QKpnmHq*$qW(K}KxhEvk%#Cim zqp~-DaeOYC_H6vo|I|!A*Vx#9T>{6cuX9hRdi5P zsFz7uwmS1A3W3<#e(v&jFqyD9Vx1Zc4jda#H_dDnj zTTgq+mi)ZmRqmgQdt9EcslUvPXwg)QN>jsE`&+!@;Aq5};N|^&X?xpzWZpk3SLxXw zzN;DMJqR6->B_B3Dil8)uyQev+c|vQ3KbcxNlwV{;h^8FIy+E&SRM&KUx;=&#l z@<;96v?_kB`T zhb^!!M2DSTe(nPu+7aT`ZgF>^=f)oJ6drly_?n~zW*p8aL$sMpTBof(qBiV`e(Pc; z@^&v_O^aOP-+UbrV37n9-Un+YUrW`2x-5r{|7kD8Qvvl=uelVq#i>P#h4#w)4JR4} zVVDrBiAEu#&;htLUKO1pnJ!Z0@k>lA{e3U$?vOsGE-B|gcpWQ&3xw0<~wKq zy6^MeJLZdP5NK)Di&^~n#8_f5K`8^Ksx#O8_?VC|b##F3k@s6&8p>f->2SY}urDK- zK{YD++Ekp^hpa~YDY^W2_^C(_kAIO=3^aR#b-HW(oIzFm6#1{V8Zz)f`KK}Iwh(Gw zO`(q8z$d1nm=Dey*I!u$df#_Le#!pxa$Obv+k%Y0(&nT8$@AqWv-G|5^dsh5wsp*% zt_12%33a9mFT6`OXnD1nZ8qSfLyNCdmDind{t2Ld68TelbRK2p4sGR(BU4ra=gM%b z@HM_$Xp{r-^U;4aE%R4`repF}roWjA8xVT688 zLN`XK#|$ymn*)mt0zY}A>-=YlOTms5IX@Qj97lm{D!L;&+uZP|cX4kj-2$#%uk2Ls zcTk?8TIW{m4wQ<11iOlMgd8uo0c#8559hZV>>rbY4(TP2GA$Y4p}Tp6QqH&f4(C@! zZslh6;GKT{+)ejaqlg~sCeiMLxZqgO$jQGH=pio$kzOKDqswoDdtC0SbK+{<3V!*2oQEs9#20{FuYfLpqVBC3 zS~+yU3=R#o4IjxZ@~5f^3~lYg9-f+ObSRc+u6N46u(cNwv`BsU!Qfajv-f?LJx@;Y zZM^fZS+Tn3nEL#Yk2kM5m}N?7ti?bX(h{+M#aQ`RJn`+lJ#3OsGld?laWj33oKLN^ zEVmNL19N&603%_DiwJhVy@-lZzWj4HDAY0Q@4RVz49(pK60c4xdrIGW-iBSC%163i z4gXAUHc57W&ZKb==?3%h=G|V}HJaJ_MKXBiYHqm#Yo*Pg#>x+BMXO#_me>+2)LU#- z5Yor7G%jKV$B}ct3Mk{tp2vLy0dznqE`TnS;XWYxhh}fS#pY7vrV4emn*vcW3G|-l zebPjk_?0G%gkB8|@zZ=)I6pMA^IT;|WU9LVCQQD{PR}9JtJ^8I|Q=v+Efr7s%0kXU%cnM+-9Iw))C|Hs6SsLFHf*$ z9<{XxQU;6=-(NE8yXrE4{)lURZ*Wh-K$^`hxEo5~bBkq?kEV`DT&qK?2X5kY_ZadR zhrrlx-UIoUEZEsBc}(hcuD`uybelBZuh$ncF;X-CBpdeu>Hag@$l!*Gb>>Y0a8CA zfU-S+(Y($LyB^`Z_8-zBsIB6Htz^ctzxR-?Yl!$u;aI2R?27M{C!>I8#V)^({6BUE zqKoxU{bl!^%Br19LkN)zyI*UD$y2}VAq_)9(9WX(C8q8)C~;2FX)b+#&dkYvFs!Kf0qNyja*+gp{(@(pojN+NO0DUx5P}F%xGq?9^&W*aV-=8e=cjPOQ<2dxe!bVm z7)35h+1qp~KJbR?tWLtp^8i5Eh%)dXw8omqZ3A$4G5PKZr7dnR!`x+>Fl-D0RvB3@k|3IHI+gJ#L+h5hAt{yBNF# zjvEq?zU4i&B`?ObLmBEc9u?gRBwGxI728io`EFjQXx0(mX_SO1or#qHJS+ zT=Ov9Q-^>z&71@rQ16SgOR@c{j``6+HVbH?RjmUNtUD*(p}4{3%kIG8oTzQKI`gGNo)({wwE7j{syh+$XBRtZXrdemX?G@lhvLW3l-U-rwVUt?nCC8dk5exuftOesc&!-!iahCG)Lyh8RG2 z$p*Nqu{73_Kh4mbP-~&352e>${8l8?Gu=M41l^Z8L<$eE#l8V+Y6#`tVBJ~5Y+9>X zF+IMS6cC^)sTCd`?pc4O{-ji5HK2c}GpAT)uHN2T$F-7(GRD!ylON-h=AuO+*|&gC z2*yiK6qiHT);^Z)POHosf-L7z>!+YQ9pS#^_KVB*;h7FnTuED|0hvyLX{O3&br7Pi zjQYK0FB``cGFLUgvg9bdtg98CY1=6^?PQT*qT8?ZkHSOP`s2v|XzskH@PDqv$#xcg z4Y7$B=UmF)OZVB_%~e$G~K|Y(^z%_1pAJi zHvyplI2{HauA7PoR z<~a2@pXXm3i2+CJz*WJ(9-&n~1#+W7a1~h|7i3zBD%5rnJtTQ^v%8C&JV@Ts>`{*OcuRRhEY;4WyA} zk9G7~r-5Q*ow^o+(40J9+j1zgecNI2mZd*B0>xl9xUTi>n%dr8*hTGit&X2>j~JGfIwI6c>#O8L(9b1pMZF)VlSj*r zXeR-ArdvseSDwUAHPN{MLXf4E<)ovTPya~|g=M~2pX#OW8~Sl7Ab9 zEh{TaOLMPE%iOthXQpPRmgZiSnFEpBTS`lF=OibYdm!b&E#=;Of?{fJ5paQm{NLyO z<~KYzc%I+5uk$*+?2Qw@K5$?>-^X%M_vR75Z<)Fn={AP2!jicx^CiWqsJfk4n~JG? zA=T!cBK~u=m9<{cwhPXxt}GNCYL2Acp9EJOT=aBGH01l%!M!VYNqnd`PCb%9u=GRo zVFI`Dz_+{xe_i61F>T?`IfFtOs&)x~&ve>%fPc}o2nb5}K$~87c zh&-g>qBB@cKqjfqUag0>o^}hMz`yv#H8WF@s?%0Vf6iGrN3qDMA{}H2c6WeYAHQt< zY1*y7S6O5@{}iQXjhML&D7>iWV`NYG6XIioyG7A1rSKjB2@9pHCJIb{^xy(2Rv$ie zUoFp^L$1Ud|64tFt+Gn-RJa4jMl{Mu^2@iev+GjFe97*uclx?^TRz2L#SL#e4zG@g zurQ=^XNFXJRqz=O>^{XSHV3zLN2N=bkvOLZI@+W&E(wn!QClw-h9g{O7`i!_MAkiJ zy9^38Gn&@p6vG@1rqI<6yDk$7t;Q1IhzsVwagK@afe=N2Vwuwt-lY@DCGB~DhdfIh zF>;jK-Qzp2m;6CRZU1ABdLn3~E@C23a953RX^VVxwaVZMZ&%&Y+?v8Si%VQ;`yXV@ z%y98_R9egE%i1@qcl?nR+iz2*>=EQ$zZpRRO6IcG7gfE;@=&dbL&F3aW0y(DwB8=! z)rt?>g(0eZVi3W+#op^jU{BBU!0;8b$;wbQf#&}hobZ}23>)^&1#)|EYG~oMB%C_i zWJyZt1-2Vm(3m=_UHmj|_(F!(&Fi&6U#x%H1~lUB>T)&}vQQ-f&aBbW>M{(gWV_>? zC(h}XC-Gy(4%=zDizeHvll^wJ1U?+W7HhB6gz8hSnA}GCF2-tdQ1n4W0uW%3K@Luc z8#nGRtAAqok6~|=C9iP>@lI!r(y=5SDaFtV;!= zxx>lJ{UcZgk!!#c3SO*-2Y>69js4_+(Fn=vev#B1BI-&&ROVuBwFU=B)-6+OaX?Uk zO-f-KdS$4D8RRnNB*%2_li7aQjAQl(+2N2WmG5 zai^qo;SVMV=D)4M-Tk|^&DaFXKWFzY$skt1BQB}vx9*L-N0l;P1jUHHyz{E-5p@YR z)2m;tba*k`^~wxPT3xAq>gL{5Yse1*#8Hn!%a2P8VV~Vvbr`UyS8Jj4UFaHJ2%yuN znwsjlU}F3>hR1iRl!(LCj2YY-K8r;lng+!UvJ%ou^YX4&bzaPDOh+xvCgp@SzPW^d zLD6ro&(k2)2Dj2?ln{_>w%OK2a(e${`v1yq=XswGUMu)+7pSG%Hlu#$%DB-t++QXJ zY1|oerw?B9Z(1t#gtHvY3s1xCjS9H;7JX~&{kH+UwkY5)cIfP@WRPWhzd?tp0hxg= z6*ueEqdsGQnqB~E^372CrHC?bY5dorv=iE}GQ)jP^=72~+P2ajNOk0k=b>7dcEEA? zYe$i(unSeh#8=eXw0P0OaJidD_-PoLRV^1+R2Uv4+pyQ~C!Y%vS-T5@gSQ-W8_U%C}* z3%h9b5hyxZe^9v@YElsTF7k1lAxTozB(_R)9+mP0a3#|c4Y<2iI1=(HAzgH7QVT%m z(w=8IMgfH`e#`EfRuW3nTB?HD=K_X;4>p&G$$p5SaIPH}@uV!yDNR)C0fszwl1}G9 zz`vmDX^K)sRTZEcUp%EetqTK%>37WHBh(lVs^YpGZlW5;YtfPDONWLUmc|(`!0#*g zf~Iw!ylHMwIrr)c$x_`sNIJ4qpSZI0wk&L!ugel>7N$HH_KNX)Y0sV!3vf-E) zwWj(v$}_iWi+t+2l?;rORIll8TA3C}8rjwbX~15Qomd{@K?^j3^WtDH<)ea)9=s&< z2F2xEvO90uZ5&-R`d?DOl{xj5_lN(IUc8`SJ4Zv=DE0vb8_F@DDmVWtpYyJnKDtIq zlutcCiV>kba|ecakOROyBOa~oad65%qqUzAXW3a-GYHyYSQq zc6lrZb(%?+%xjtXWhiY{w&Px#LK{|XNEeq&XCf&6z^1#yR;r?hESnr>twW>s?R;!7 zjvc3OH}(P}j%0pWf27t!k0JC`!(x+56Dy#=JB_XTDj6n?0)7GEH>+D)YG9p0Zj;cO zDU>>M}mM zK)yectona9jMe5@g2`@qJ+4a4p2PsNNqq@mmC7Sj^vOHW?GU^vu(sff-PAj5p2BPE zABkQB^@S`#g=diJLV}-5u(&{E*Cj|e_A#${{g4b99aO(+Cqtac#Eo1%syp&w-L3zt zZvz~C&&TY&t4Uc~b~tqhjwYG4eNO1sV`=9EQDA*g->ZX*EXjmab%*cfR5+pu9?g}M z;M-C^YU)##|K0_-C>^2s1zRX9jk$^vZNdBYB;d#&Ufemu8$bTp{u7jCjV|6x1ZIHS zMov2pLYbp>s*k9eK(coSFd;a6Cdut?cQ{-JCRn$JcMW8Aj|M8f`6Gvb&z*~=M_OtI z3;4da?+(a7ZPP6m&EiQ)$jVSdlBw-x%@avUSxAXC+P}Alk8Wch(!MySL~@;Qw^-h@ zFD7WIijpmX*>zQ1JN(M(Sc_^_TXU#~wC5NO!z#ZP8ny_d)~z{+#&vSK;JMxpaD6)! zid}^(Y?Us)bh}VGPEPd>t|y0eS<~*UZM_-MMN^$RwN~T7_KaIN8A{lj6EI>nVtL6& zB#wMc7nm9kH0cf(Br1P;3)3GHL6a0$yH^yurxQ77+6#6G(}>c*f-V^ZrD@BszBx@E zy z^6>EEQ`&Aq`y{GnW4rVZXzA*Okbz%yFSJ@Epmk*bnF0`+&CleFAtZlmI!kiDNn+^A z`@$4aGE8EG!w25bbTdb+T_zK2UT#D~`g&u?v2|fKdnRWoY@2u~$AMU~dBZ902)hp! z3gN3LB+mSHytJy&ISH<_jhDen8~)AE3Tj;U44L7Oi9@RU_#Xw!d;>wtUY}?TXOn3H-F- zJ>fJc40SY?Q(6>!)1gD}E_QnymNQ_GUFg%PuFpN6Lxq-| z+={U@a&T{4uT)KWxAC(NdFlV!ZbsXabbkZC?_hhA=f5Ijs&EuTvC-3h_AeL1kAIdOdgyFjB<*`y0(F@9mXjQu{{8$BK@>7vmG zn=NX^11m`Op|JA6xR<93wbjb~H-xfJColY@-6HNgOyF6+w3rudSztmhHHtWWhOI5V z&~cuHyJH*1W&GB%y9E{D^y`ST7|u8&E;%~st5<`xw-x*}tLfH&RN~cB{I>yu^KQ-bwJ8Pwb>{EOS^gKjbMR73YS{2M#pccLqnn-oWyE7kupAl=haAK<%GEs zzf|IdnKG>drLBN6hmxloH0$L{Z(kF)e{;H3x?6ZbCJ!ym&Q}I$iI;BN@MXlHLgkl6 zZrB96Is}e5jvw?@!A|d4i%A+k*;{fn{_SNgC_dwxbjc0=X0*2Ahjn}U)#$tzE z<_Z~*91{;Ienu|}$7vc)JeiqT@{FhE@(-2|PNa%({xQval*8%$=jdO=we04B-g>4X zP1?HaA<|(?U1-UkckZ>x^}fmly)zjbciA6wPw~HEEopVss&P2l8Gf;rIBf#1+s3WS zE-ik}vdD+tt*GiB)me?GQ1}qqYQQ`X2UN?%}VUfo&C@=FVy}+j_z6Xa=Kr#86?Tfd&s1+!qC2hfyWP+kEiQue%!_%Tl{+R*_Nyo5`a^urz_{aSK67Mf-5V1 zqM1$PHy?dlGHI)v;=+;>;0xvVJA#yZcPnf-kFIqH+MD^g5Nn=L+X`OSy9F!Fo-!$x zT>UuPW->rOl)Jbf^iR#AN{?c4=c?f)LsP31|F!Vc{w!p%9{jRRNX}XCb&AgZD*at$^FU_( zu^3G~w9a!az$90oJm)?Q;JWr-cI!Tl8ppDtLlojerqh(pwXIiJeC@a_vm2oCjI?iU zuxGEu6@tauvAD?RMW3NPJhkHSd6^JzF5KoGYX$<_E^M@$_Ej`T z8QouDDt!DO!!D9!fqt9fn!-&F0EiK{2~{Jq)85Pvgc3Wtet~|-4y;(#iNU6;;-oWNzs@yW|1Rndpy@iU(PF^H)97Z*M_Ui8y<4D^D{TNy+)dmLL-iuREK zFUe<~#eW=rX5?@5J0()Vt}?P!F;_hH!?s5Bqpa(jJk7NNHZ5cX{KHNn7T>x8X4o|7 zw+4W|k=fS_a`(%D2J0(|q~6xwpEAiMhpi?ecd9kntdWen5!d(Xai!zfw`#d$vmbk@ zvA#26dp}zBi#rnP-rlFtcBr*_cONd^v9f%8ynrg7g4P}nec5srYAC%nKS;o?Exb5} zka3j;zqBIP%96+aV~D7r{)l1y7QRlLC{AY6ST5%5Re`OR@4OD60+X&uRv0eemO<{K zI386PKxfS=jNX~h`u5qMY95nsvTOd-hT8eHSSbvssw&a@f^XAbKo#V&4#cL1zubNy zbE{{v%y<9Uj@fR{^PxcS%53s3q`%Ux<^6YnSFDqfi&Jhj*xLkk0;}$ z!a!c^(9d(O%@5}mstfA3$@+6A`c084pR3&twZ*)ox!+@-Gm9+SBz|{cDls1^75j5Y z)#MJGh%od_0{bLT)5}Zdssd{JlrsjyEu4F4`b9QLcr^gHiyf*b+_5VXY8h8JSo0Wf z1kfL9|K!|{Ige(h0kcONM+2>8Ij0zSyp(sLG9WW0#SM%#M|V}QFrZ?LK{o8 zzL%nihP9hRYy9blt_G6Qa8YWV`670AT)19L zcZW0~VYmlfRD9>Mqe-Be^WJu0HNh!_F1mUj;~e|;rUt+Rbo3hGMbY4sSWPmu?)I~! z1{d(N*7HOC&uT>AUQluMw8aE`Y{I+GnoId>j&0(NFHB)gtc`egSDQb~Dv`;b*l zo0v6@v>*49gDz4VOOFr+YnqxStuJ;w`SB%!R;dGJ=X#Tx&z2kg$B;NR*P8Isw?YQD z^|FcY!pTT>kiX*h70P*YKP?~Udjn}1E`)&K2q)@ro#&>|?(LU%ujPi5Z6-40Ebp4$ z(odpNp??)E)|PO3Sc^O%*#{gBf&O|OR5a!Ay@4>ATqdQtMmyxV z?QvXRLV9kZln+)Aqwkw{LhrA%ng*IW?Ln^^yh}`qZ53(hOUoTNWJZs4v8g_BYevr% zZ8zGm-EUul#(qu~&{`cRPi0zVgsK@1oKeZI^(ux_% z=_JR@+eY=6WV*>A)IXnf1or3|dW&lQbdPJzq*XwvNt)35Y_E@+em#3&v#G>o)t>FU zN>H25O6Vz2BT=iq7+A7UJ|TCDR`xm!aN$kU#Z7;<$@roOZ5&VwOoi#ralqOSlhl7g z9o+=?8^@Xm2I;pG!}@Z)G7<%N^! z(D{*Xw?WwX9l#|EGR3?BWNmcER;!~wnk%#+8_wYvGFcz!saEtl5MG|2ObQ2}%tp7q z`v99_jG9e8J@NU$)owOFQWc>w(7ZEO2cwkB0F5DY6$Y2{7s=2O4r2@71+xG2O8vKg zE(>%H=J&_@*{g?za>8L`Eb2!{=P^3A0{1nh_}jT-p|x@|4`1NbpeSrtIqsov4k3Ri zKFtbH(ScJqWDgq_MMQF;;>kizr@$e1xtz-&<0-!yJa>cj*4+r6-0U}1TZlW~eEZeR zV>HAoV$f(**2V6}CRavtYAR%?FFUhLmcu3w_H*~qt3a~-(`gT8$_r+2?K$8FuM#sa z7TW`3>fYTaqKD%E!qRw=nf8rZo7VW0I~76&E|1RsaDA>x-h9ywoI|qRgENEtM3Q>@ zL$lr5p7uR@vH@VrWeb;#wrMYWc)T|r9&u@fYW3IM+EpFId@{lrv7cQ;+s#@?~wklBQ@ z0hvp5Rma)~MjaIQ=IA}GFq*mjU>{j4_Gfxu<9BknOK;j&0%Q2e_f%+&MG7PpN*wFA z)Si*o%5G&@nC$c+FVY#G5|}6Yg-cAbVs1#x{}5J>Gq=BW580ZI#sM7U?N8j10M*E8`$;^bsy|qeJ zT`!i-g+>@9EX*zW*i3Z95|KYg<0*x;bBfJ1_Xz9Cg^mI8l`NMi4fNgV3NxK%a^GGx z07gxv%B#<4gm2-G!?ep_t$SjIX?KJ2bu-z$cj+%TAe!SlR3#vCDbY@MOx-{4l$D2> zyDUA@0?^fjd;c-qG)$YTq1HKo0O=U{c2TbIXAx>Mx(C3rtSvbq%sq0N_!g8~2dtqn zNPp#X+PH?78ZW#D5IcQ$d6!s!1yP zWb)4+ErQSE9~!#RM#ASr;3x?{Z9oHwbnOpc{*j$s`;6g*Nz3H88vHp*=D)D4sVElh05 zq@hR6FgQRk{ok|@`;y^8N`dW=JKa{^t9E6Q=&gc$nr)W_<{WVNJpJy^g2=gR9lv}} zFZCz_48mZhgM~`3r>CT+4bTUd5SZu?EqGjFH?Of!W2-NX{rEX)ZK zUL=P3WMyGX=VxHh?dnrj{V|VQDBW3j00s2DT`p`S6Wwfm1Zk5wR0{~(v8cvez-WS- z-G$E!!sOBlcsM#`X@BZH9hmSf1A7QL&qP{;q1wl%Vc$J?uQQu*FkIG^Uo-%bi{=y_RP7Oc#fMeL*A9gD=+fXl60(&Tu2Xcg_4jydxRY4G0 z7?lh~p^$f60W*zd`yq0LUM82Vl4K~^@bogG`&ay)&73v575L4al<$_6=v;i8wQ9N9 zSEVZ_}Y|1V~+oHHe8N=bURxg@j+V3Vl>jhU8330kl8?L7lIKI$>dqw9TM9V#1))dVNA87Ed~Nqzr4E6 za!d=~(wt&~nqkePqBC>>v7z>Y`PIFib9pSX7QR^EQQkW72u`fK+Dfl^A7O1VvMQ^e z@SEfBl`|9SEOjG+<$OaN(Z7Ww{@i zt2lCPq0rmT9h0VNUgNW;mk^Cjq#PoEZ;Wx)JzQ*pcI!fsQg$)r-BjLc{n-e;l?N(2 zjvsAjR;LV!^k$wzy9yJ>6x#KWo?zCRV5rD#>`gR?pz| z`&?U}ZHU3zRc*jr=dBuhF{HRds5eu+!@g%`a=elARRHTy7OK zJg%*0xGd_#- zFZ5VE{MBKw{Nw<7V?OXBfmdFAZ1Z`~P3+#MRak>2y$+}Eb4BSZ)=kKbdSlioReB@f z7q#mbyzHQIA;4h#aNxlXLBXU3i81wcwGC>|iI{guog_`y@&f#pqc!$4mPym5k`4A` zMd;oeM4rzi(8g$@P$UzG3|4NYod&107++7hx0JLq$njEEHbXt3r0UG35yDX6Q?9ES%qr(xfGAAZnM44<8czv zt&gm0UPo%255mJ@)Llqs&*My{6(#(tYm5+bzqtY)-q#l)_1LW86%an1Waay|x_7$9 zm)`D#d!k`xjt>Lb+j+S@`|5&0dM$}=`Roeo>+!G7L@~S-+BD?&62&H+&Ji%@6EPA|M7n1S$JdjpLMN0RXG%$)C@fzyUse zoo10ezmwElR2g643Xx*-rRpN*>@WE?ztWqBUNBjub2vx@DGo6`AFW)ec2hhz=(TYF z`j5jaJW)&oBR1Lg69)@Vl*-B%FnuoRZ0!pI`j^WY4mV>t05d9ci{e2^%Ix5pQef&^tqTz~56+;IQGqn+wbR=DS%g6FxKubzlZYO+$|mJkwV zDKni}c9ya@?V|_MY_G1E%Km<1!oYI4%NhLkKZaLerL}gR+mlc)!GCPGlL)?lWAlNV zF2Yiix~gWYn=@EM=G&~&%H43Hfd5aeT(IP0=h60;EkzPzP8aJx--P_Y24BTlwm5}d(UjbxL zOxse+5T?Zhw{NH%5 zq~Tm+0~=X?G>z3EBCU0O5V7h~H$JvK{_j5q9={;O;YRHf1*(-(P5qfn{s*FoRch;Z z8%Hi|jpT31Zs`fB4VY2e9(p7eoD(WhOjLA>)K0Go`pKWBI%R7h z^V*B`D>i(KHp{IZrt3FsI2Tfd=k70Q+v);FffgD?^a;+Gf(_n66j-x0>)YG#AH!m_RpP%BN{_NiRfhko4qa9h22-EtiKCEM%30uerYBK-{tCdeVjMYnsJrx zqHCaU1VInzr9wlTjg*2!*oqFP2F^eHwfn6B*f1))B(-kZ2edbeA+Q8) zlB&lP#TryUck<%?_b(M!)w7gf3jM@I7q9+YTjS+F^IYQZ@uIx4-g-_}Y|jp(8A&S+ zf~HO=QS zFg|+vAH(Vi`<;F&!XFi5?YOJ|1MA+D(drVk9FoieSIUZWS$lZ4rTTt*M9Jve_bOd} zoHl+5b!(AepRhZ}zb1wb=g+jQ2sM?cvoJmVOOpfp0d#;i3YE3YH?Xm~_bGbSYyZm6 z9)XjY*Oj=_SO{kz{4!eAZ5lM}GHe+kKTmpEC_GG+MkgJ!58XRHrGt-sbwiTs?WC%H zd_~S3o?4E87c4jgqNiKW9uBxOpQeJ8@+FC1{ysid`U~z8MFP9%288_MDcXx=Bi4>^ zq1yfL#M9^#TlMlEV%)4|GpRO$;%y{0$Bh$Tu8gKof3h=A8!gW?C-u+2@SN%JVa0cc zQ&!{ZW9UQ7QCl|30l-_9H8i)h&emYN5s*9dLfoU4X3GzZ@XjP3yLY+egkKXaS|zid zszuu)KEiq&S+^#V_XUkKR|ZkzH0$y$OK%g6sd<0@;k~~DDVLZNm4HY0WGn14)+oBG zG7B-7v5XlPv3_jnUbo*p=|hN=+Z(Ybo?3Im@25Vh=_+_^Chzz1)pWCjxgYiiLJTL1raF}|c~uPyOnI;BuXwXOqz*-H=12wY zrEQz^dKC;13@woZRZ$VezY6F2N^y1_^+B%cD|G?vd*64%BYyf3Zn!(#{tR8Vc4pL} z_Pt5U6o|Tr8TyDNDO&u;U}i0C!ISSCp7`*U-lN1*kf-ZdOF04S*x7BG2AAZ( zFK7(|9pS9BCnOTEX9gR5A3Gr4s@o%S+7UH;k`I?a6Mre-3W}M*OU{h3A+LSi#xu!{ z{D}=GQweH1#Ow~p)v6l4Y;%blZff_;Mso|w%2H;!EXc`4pXX0&X zu0@JjLv1+*xT!Of2q5Yukrw@w#BVy}|GUtG5>w9-ZhFCFJ!^VW>u0E9{%O@pr{%Tm z*T1A*nW@Q&oURG%1^t@})9)l>>}zawOECISW>y@or=d)g+gzaM^$hN3)j1zWNY=uu ztQ(77nf{OVe*Ogy8=H7GoLD4xoYwz(0k5URW3k)W2Pnf$KOQ!&1z}GHl{fxT%(E_8 z^J6>eVvsk}*A^=i9i_lb#QTRMJc4OWj?n}^L$lJwO|pbX(c2VTS5#$DP&)w7BC?lyo;Js`;J|3epX(0*^#?(f+^D#t7Yt5(%DHkjWbvay397FxN-T?_fhqS z7*vi^CrgS-jIHojIaL7NtDX22JbGt*zPfC{kfzW7SJ^lr_Jm)9*E&?CkRVFoc?nb8 zbeuk#DX%XnOLWo?@C^_jA_s6{4~BpPKa08;ClaZ1zH9J)$Ex~}M7@yA1Fa=Hrw)#a zCy6#v6?@gC?WbWCMa1-yZzJKn0i)1yMxli))7{4XQa^YGmzy_NUh`57)U`aeKs*Fq8m zC5Rg#xmqt$4&OXP5$#F?SMc#dONgryK(kJ~3#ws?W{K4C3!jkaa{ao@5%2f>Mi|r6 zl_+Zo*Wun}u}ul=45V$nVUv^Bq7}3r=xA)7H6eHWbc7sz{;l~6((XS7)s%I|5E)rN z>JvnkoU(^da}N&_XLaY>nXErUKI-u&}D^XVEa`p?LS)eoWb_4hMwr?qi`K-*!6Npc8+$$0YM zpl!c!yk%|S#!pg<%!8Zz5y4Z|(v|$SZt`wG>xgXx>X*^JN_tJwx77Lv|7J##0Ed-p zwY!Zo*3s}NEEzGqoH753t@Xj?OC(*3W=>+sFX>v=cqDxB?FSp1$Jc@ozmuOZtUvg( zZO+fMZ)kkt%GRj^!;SyPu)YplFWSZBHvTAv%Jfb13B6lediV9|BblhC=sA z$}7=bMw&}4YGKQ69+j`X_#S7xX4W4jcD^?NB%ioD6MhswAhPta1P66rXuz(?$H?{E zesnyn94uJ3O&1%LK1krwrnn#|np*_xsjv2Z;rj*RrNRUT=C^sB(_^_;xEilI&xE%s z+%Gfr%fG|whqU~cTCJbCjcOWNoy4rzEE>995q}K>DdQNK7c3cnR>A&`bR;-Bpjs)> zRe|Ad2O%LrcG%wUYTudQ+2~;WA&5F;93m45{8C%qy{WZFW6$8vT>p9Vr|IvU^$#ZM zzU6r$S=g>T(Hdgf{jDaWj2JO{(^Kg$5mxOVdmn0=s;FEjE|#kjT}Z9AN1#C!u`d!- z9HfuJZQA;_f7lPg&r?D=Y;r_k2*J6tv z?qR67^FbaT35PttqAmIfI8Yg|scqz~4<-gZUm3cmbsNMQklIXGlMZ?+ZqJoc6XuX* zEu-K_Jfxi%!-Gg#-AJeMtt&j0lAcesZ<;>QNkp6VD6Tq)5d-4=1l|p;jTO{q+h~Sb zjM)bzSEtUW{uTh{j|a&`_OvI{o|^YgQy));sw^eR;W}*!^c9F=d{z=f1BL_czj@+P z%%(&f4B|rqEei~uD6rpExY2l31~wWLqW6%SF4UpuTi%~0Buy}+dlG1UW!#gs&O{s; zt=kN)YL?O^*^O`D*lH*~?@o*XW!1YE=Ma1zDU(jSxsmElCGPp0nUE#flF-|f5ODbh z?oJRF)xkA6OZd{#$FHe5)aj_?^2H5ajhQ6B*0TbRRwQ%m-8`wY`jXG|IKCY+y!ZLj zi>R<|hJ0@0X&@@}&WL>Vs zMc<8A4UZ*1EB*A_y79|nou4rl;atEx zg2HZ10T%~W*+c9m!LP;;yYHInKU-H3q>BD9I@OzN=;ym{SM2tr>4{}*i<3wF40T7TS;kTQui&MriJN4;Dwmf{U z@38x?_<=n^)6C~krh*OCY?>0~E9O9MURSCooA255Rw0*or`N}Zz2Iq~_PFE2z0r2N z>iEVtmAiP~CN+ho#lGBJn$5Ry1-#4(Yt)@a;=-1-VUc^r{fo;Vi41HxZ?ARa9AQGt zWc*mK()2(GEuH%t^!voO37px`bAnDoXNA(L58ih~1e=3hIyJ?JyRa$;6S=@t?IzB# zjnR2K*d>Y5DDDx{BwCWa-O}M6Q9lM@gR$4gTiBf6 zxhHr#VZW<}!0~ROXXZ3(+~Huduxb(hUC*q7Yo{pWu&wFNSY7jCRkv};ijllY#F~_g z-jg~*>P38=8eD$o2jgAV?9a!)n$ach@8Ze>K@W)*Ma~G2s(-}_Up9}V!rITsk)UhH zetWF&O_$_tOrhZdq}w8k5aTN)qYL)wWbbmhlWof*Qj_%Ht62CM<`!fLbg2-``0yvm zGt=puTv$>&=eFk#B3;>AV6o-#xt-zB;Qv>4*|KK&kWVyG8`v3Rl;zCpw!5QMLVxnE zQ66SlWR}|FtRef4o2#TmoW+no65K^HapCJizEro8e@o8Jz(@VHgqY0AiRmRha`Lk zvWimOj~QskNsJ3~a-nP@crbY5vjd5lJzfjhMf@#exIU;2bC%YXjHH1=2uMTnpl#hK zfJkl6>PY}{6ZRC#9WkdHUM4=}m`Cq&rCC}?SQYjXWW zCrasQ==LMh+uv80YH!XobotsqKGEEk!dSaZH$iU8RItMzKR%SFmV`-))$)7q0H;?iPTqTzIsX+U(n0efev+(~KfavW{>X8k-gd?`#af z7NednGTWl;P(XbdnvqhmtlV+RiJ`As8Aw+Bvp&+j^5ONcCW-0euoq?8p{QagAMjkz zx#R5XrhTcMhHikLcEU$sWqm<*c)T!U9k~AF3e<1UyFINa^o6%>kS;*nw(SsMF6`~T zkWN%KxxB>lg&#6jq z?B#9CshiPHnzOK-oNZ#xVRv^_VnJs+&T+4(!61xz-{X?EX^pjwUTLP`gmACkN|hq9 z2VFq()&L62oQ)AJpRueeQ}inyF;cSGdJ~w^trgWIo$zDBpv-Ygkh4jS5<9AQ#qyq| z%DI0zd8b>bvLcGGBN0&&uPGRq*U^Ey+59eJM8ClzPuXEZcp+z9_#8{iOR;iL7E>%z zQRarbw-MCqb+ake>4Lr z((1oopIg@o$eSuCp94HwzNc@rSlu%WzuRt0l>7mMuEmXL@c9$6y^}}Gj;Cf3H0L$< zHX&kF8B@%Gfa>i0ChQ@7PaHrw4~erD-`%GmaF`ERF%0D6#Fm*7PhR*Auk-*}d&fM;4j7R<++*iS<|G>qon# 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 O5}h*7`}9p8O~94opxvz;!jY_>1m}QfR7_O=`Jf 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�!JD;5VJi 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 %g%{Kkc?U}!xku#B0^ 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%0DnY|r(sFr)|75-Ug1<9pB4>`f=m!}EoNWjG0 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

    $#*Y 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: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

    O(}1b^qKuy@qqutV*oU6*i;h3SJ=qTX_UD(& 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%0DPY&YOmQ;F*5SGtgS?=~$Olgj1Z1;*)z+ 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 literal 0 HcmV?d00001 diff --git a/tests/rc/volcano.jpg b/tests/rc/volcano.jpg new file mode 100644 index 0000000000000000000000000000000000000000..429eb58c754805ca54e220d3e67a58744b87cd56 GIT binary patch literal 726157 zcmV(_K-9m9P)ZgXgFbngSdJ^%m!L}^r5bVG7w zVRUJ4ZXi@?ZDjxe0000oFfugjg@hn5H|(2~ATTxToxC6@>bQt0Ancf=?VE%kFg5Ip zoFFhc>$Zd-Ff{D6h`~Tn&Hw-)07*naRCt_hz1^~OxsDu`0J-XG%_~@%QG}nu5x$VD zk>yvCMx*HPg&$dSzP(7o7sv!yJ=zg{y3hWpT1A3DB9Q>?fBwJ!N1PJ?3}%13HWe?0dWEd zz};{R7{d@d-&^k+2l+htkT~bS0JuBOiTvAhVCIMjxaH5*-Y_%3^Znm-UF3uac| za|dnPapE9OzV;jgD^5LQ+N{?0^gh++Latc^P6W);h=Y3&e7s&qE1NUq@0sOih2=B5 z8;oaCc6xTM)tHX=-SrvMUh+-OIoSJ@z51})|NMTg*_;FC?0m1;zhf|*edJm&+@GeTbx*LjQpeB5VKUMelApULZQ+~wmOaq@Gut@Gn*eGE7UZ~%Lqd^qqK zf$KRU_alJk$-T=pc8uZJ>mbfao1#73{v{${2N(nOY%uv+`H(&zhK|M$2T&aQQrxot`VE=JOf=J1g=x7LOs*V1F>Vr5V|xe%Vem>}11 zpa4E#?gf^gUr)Zs%fV1)dn4=N~E&jc+W`;RO z9RvklZMZh17UDXT0te4CDsbOm!_9!50cO7&vC~1~^x+%z9;br9zx?etV1W|{Yi~Ti zW&$ekpm~A?8O)p`lNAE!1TMxTW|u>obKvutSZnkBf`=KouUFCn0MBQXvFdwT3pvXS z+6HG5pgs9n8$WAjtRNWA{j^Gu1gP`(4#pTvCOROly#W}`=DM1a%mh*OO8M2yer=`sXnDu9emE?`XLxW{RaJh0cA!VK?LAalTbpMKs|fbDsPvg&?~ z`q{+6!H#_X1X`Omm`Qg;o}GOTcBB)+$b=`r#F-#6!V0jm2Mjuwj|x za)0*O*eBOQ$>8%01TrW&L1F|dq4$|dk`056OnCQBYXM59j4e-aA2#csl|F-vG5*oCTe9q?? zndH1XE#C5b^Vh_&z&a;wWh5xK354a@*b(`hFa-TD%n~$l|29KqAYdLO0*vHAR3f)` zChP|p5X+Cb0W;rsj0}YP1P<-oJkNMUk_a{iwgqf57H~}ufMbFAYvdj?!8j2J%Zy_q z5Dpx^N1oA6G~IKJ_c;m1rl&8FUngKN`rmiu8K2X?{S9qkJOd$cup8tcfntUQ0K?K(7_fde-hE&n z$NV)B`{1lV?2}2D<>&U#fcwB=;{3z+ba%K9`VS^NB5>T`130mZ7#zd%GZQFgeBLNT zz$B&o)j0`@hz<5RzzO{Ry^6f^Vf3dc->+D()*&G3D7;80=AP#nPXCiw=#M|1j7299 z2iQNkCI`7kW4K&TF>*?x?k{u0`=)&lVFB8Xo^O6U69tk3Wxvdm0bnu-P67pZSFTIY z2KAX4BI+N}an5A$=iT{Q{3-&a$OpS{4Dig1scYpKcK|;>3tZ~L%OY^*bofZS{yZbk z2iJ6wBmf#y0rUZDXTm{WzT)6-@50Yw(n4P`rq!Oqj6@_8vXh{ApN)uo7KCA~1j%Qo zA06&^SNg@_jyb$AFrsnUT1`HS)cN^Y_>f#YC$QgLAYF;X9A0~F(L|#XtsQBIpJ&u_ zB=A4{yTBZ@8zv0zdzjqtx&P@u{BM8eB3e33{`WainTZc(Z6^cUj)P|=fK#@fls5q< z4YF8QOGg*h41ThX4UXn#!bdao&frv*hz#gs4j|Im?W4>oSxYf-X+)i=>sf3zBR-gY z&goOH}q z&pFx?ah(OQRe1>O!>EcwB?{I_a5|E9C;Hrm^+yX zqy083a#uMT960Ti>1>Ad>Z+ z(-R2m`}HSe5owqIs|wE;BmK!$rO@)oPLv>sX_wC#qt9;cchGei&tlrzaIXY*&@buz zm2jFT$Xo=&3DW!g`w)=G1b7nop36S~3}{RkBN8Mw(3p`een1YuBLjs-{>6GVP20{rmS~ zU~Q&)j$}@Qeq~OFn^&+3`l87Sl+#|)ej*bKbW)xG^3?j~dy9Qkg3Zso^W4?B=I8xQ z_FZdM=Q!G*y#y?KZ9H>k0&RVM#&8V!Lox4X-((KGdI&h3%Vz>+dXRwED?&q!ax#4{7`ficAhid{{AIf-(V@GB;-w@C@3pO8Zg z`ogMU&QWJ^$fwCi@%$=b*M=OOZ@#wvJy{h{B?Z^}013Jjx65a6Qx#+D@9Dp_rh`nm zD$3^s=HpojBGPm7Vt?f;21{}JECCdwZcH{#usVTn(yJ;KNKm)MKnKcyOyVs4u9;s| zf6&+E=RArLW0b9_il_w+zE_<37Uq*U?RmVCF#+s6PhRnLl{y0?QaeVBF>oS*=^&{i zO!>^g#G%iGTP8CfGTVURA;D-afZi35a{|AfnU!fM;m+q%)lug+BH!zIW+l`%+Flhe zb%u2w#~k&{itWO5gNdW6e$(5Zi^S9Vz%DEaWW4A3l>O}!Rf*cHW_88UG5+g+__u$~ zp={Z!TrMYKU}@@*J@TtmrW!Fa01txkpaaQ(kqhBwUq)NzBBN#2WUjK97WuH;c2XXK zT)=$}>;m_}z^?Kx1enRj+huGDd}DaAo9BA(eGY8&TI2$D;1l3Y05)oK#Q>Qx&>jYm zp^P!hpoV6JvOF>_U|e<OhyvHO4|TS$ z#Esw%^bHZ6lqe~?%k}{3-#U1egz>nJIjRaKhkTz+AOrIb%Hk?vP-=IbGjsx5XNt*% z&Q9Pe^K(syk7U6^QoQ~f{aUl&avm25AWavBWN;NkgGr?IYdsHrwzbWQNegBh0(Dub zB1nPuNFcVHIL1hzen8?TI#HW9Nh4nlz=qCsuf4#WzzjxKh>fdnXgm zMEg!C+N#oLI0PnJ3Na{waJQ=noP@woqB*=0$feIldp@kp$u9|a@Eb77e0DT>Qp5-) zS}n6lR#fo^=qjfY@0KSqS-*T)AY~G9T2i8CGWs3i2vw*P6Ewb%=S$xiB~g;U{p*_P zJ??7xynMm%274mSTwqb#Zw)rhS`{F_IEl$d0ml433>i<#kM=s914?tg&wk;ki{NoL ztP@o+m`ujp6KE?Ll2O%qbC1i$Oy@#&oBrutJ7abEJb5Ykf&AW_1N$UfJ;uzc5Pv@i zqJ&Y)4rn#e?91p}(;e3P2D98(L{ zGM!VEEH}gW=l}E%f0j`zzS7yJvn{m}0g}VVpl(`hJ1Kl?*3IcGoQA24vdYN}z{Ufq zMV1jsj*yQ-4X83i8gj@P@`LeV0CZ{5Xwb^T-O>pu^V&>_R0>uV;MSeq;IlJ$FM}!; z_?eacRX_$VCf7hOP%N?zTV=|guQ{eyb)gOq*IOB}WH|~V!3xCQ%}yrh`7Te1y=>s$ z>~J}VVdZRZkf`hvKqWQ`Kx2580cjg5(<}ScLv)HD0Ihv(nS-)Y0jJ)BX1Y8QsF}Cs z^zfC%J`URTsY8c4sKxM`VHglB%fg$D@5)L$vAde2&w5KHlwh6Pc~qcnmQ>Xmw=8?7 z9gK1m`*dkhKq4z2v}J-|mD1rYaTAyk(AAgv3FOdVl(0SQ0a3zdEyGAa7#*A(*WZ(g zbF1G`AWZ3!mHbHnOr>@xXrZ4kgOk@Y%Ps_F)AkEhHsBJ#cVmgOle$C4UHu30FAN-2 z$BJBwEXy~WgzIx!frqYU2yA?5un}1ArWTxJ2O0qM*VR*Sx;jv2B((lkY_WP65?J(^ z7D;iKJf1kUXM=uM@+wv53dfszNphttaWktuH6=1`<^KVe{paXjA$?XfOW1xO3WPy+ zGMPZ2eXwj*vFKghFM&Xv6WNH8hCzU|$;=BdmE4P;$te@d^M^|0Pj_ij+3$`9x$)CEWasl709j@j^}Ud`4FhWH*e1 zeyvfyFaKLHmS8LbzzIA)YX5+ae_F%4=O`j2P{TxEFqXS2AyyQzDr-q@jM9or0x&44 zaFSa}GJOt8Ht*yU#ry_=sffed@7`pI0J09(xd8byP@;L^^KmEsl`=>H=pQGgse89nGx7_zGGZd&{ke#2I%>z16 z0i1V3jR_ccGo632fIzcW>6ixgQh>8c2vn*QXec>`sWD?0dobs~yEn3_wo4FWI%1$S z?kYhzvnZA69n^>Ekb}*JZfrK$)GiYEu-q!A1!SpG42kqoa%L$7=+d=}+uX}pi{UAj z1y^Ybl73j})AAR{$yo#1Y|3lk8fFH*uKUdy5a z!zr+$pmPQKIWV7=;8YUFe=Ir)>b*!dR!u=M!NVBE9E-I-fs_~^$VPJinRt=bLU;m| zY>;DV`ZM$WhLI&pU{-+sst~0aq(eW5`bUZK+1V4|wEdq=@N8Dk0J}h<8?v<`>Sz00 zg-zNTEVZhWdi;D}R3oi|(j3hsq@Ccnp)ZD!t!7fLO4|m${7doDrZOdy zX;!P=m3Er@5Op4aV9x;U=mb=$$+JL43rr}XhF1BWF2#?(0Cpt<*%J_*G_ta&K7vXm zECE@81)g7rL9q9wJ^z{$Zop5ZJWdU3Iu{B|l@I`FOV*`dF}L~iP5`qq5O{u#?&aV) z1;}=-e22seD#7QO8En25KwJlq{#=aoIr&-Nla;0MN!c5sS?KghY5Q4;P-S-D=eHz- z4Uk}l{pNE?ilK8-WQjb58G-2_a8ZRUS?JH_0ka71gLQQ&P#V}V5>O3TH~8+;&&vZd zCO`WyEZO@`2}VkF41&&KY13;Td_EHbV@j$d8FlryFgAr8;J&gH<6E2}66Ssv*eWJNFAIgLp=6cC3<%6M=$bm0%fIX}`#zh`_I36Ytvzr4PfBRAzQh0m>)l zdb}%%fjL`xycNgxsX-*a*D84qVA!<3_uVO#Nh9oRL5@s}Ue-1m;OKU}^aQf#;!t`3V25pYc{>M;LUt$ggFY_$LfM8us zm_wO0n?D3#AbJj{!&AVKAT`UWH&c(=)X21#`gxRLAX2ZLWkZ$Hjcc`lpcH`L*O!2e zy06b}X0;o0TPJ=q*2SvxXKEU`Sq3qQw{!!*msVHhE-_9K$po0zEC{mbK&p{dY@mtx zQ4KadU$vim?W+@bduAHoCP z4ZbLbHJBy4d1c;po(O)vL6p@qRA&7o%R8jWkDNvVQ`0M%U+=P80V8W|w#x2Wq6ie2 z+&i0^#Of*`hxUNl*V0ysslAf9)+o!a+Rgw}#XxvL)es+snAU5}N{84`O-v9QtLlY5 z$Xzk8*-qMwJ~)_Ul2H}#F$0;vp6VhnmaNms1jfG0qX<=Kx{=%6YO>B4Jv~X4iNVH5 zHGCTFCDm(JU~ECjK(3fObpI@^WY58Y4NtLOkiI=pqr(Pr@ zR*mo04ELav&&;yNDzbO0c_F18pCy79HIaM&b`?@O#43s+_bnl%X((nzGNYE zUIb1+4#r@ktXOqc(^JF!-H3Xwbrc~35STaUC9VJFuWA4_Xdm{p9Ar|do+48+#sAJ}MNOQPB$S&VEc7+> z0Z~{hZJudTiVg4T2~n_)F|s#Rb6Q%=N(V`YpS|mxX|k4{z3hsZ$fyR8`vNB>+{fO*nCwny9EiU0jUTT){=O^ZNB0Qv^=D*IREYY4P!Lj>-%DYZ<*xTBoX*5 z^XdK*$VPbhu;rJv?M*>IdAOl6iq$0rtfj@0x^rUdlRhg<%o*B5d0dAe!v28zM> zS`{s2aq*^%js#@X50pfw+h+N&d74h^WTTT*@A!c*+J0>)m`tR#DN( zkU-uj{BgxK;ie0~>)-OV`!va=ge%Qe@y^0hGoy4-vDCncg@~%01MaQjLP68!DC;ooFb5;sTRi?s2Sf!CFENty;$~@Bx8<2 zsYxa!h&28=yfUSIu^Goa@Q_9$eT*EroK=qPP?^)JYXyOC;q>D(mY;hz>mqP>&G zHu$>*`1#G@DKSc?e6UWI$4_+7&HYPlak4u3$At>x^1p8MJk zTK7wkdS~N!1GHNLb5|(i`g!^nC$MPdw$FJdWck{9%|5TylS6%RnBk1vn}etdg8WRb z_o3~d3h)BY@;^IvvGA>D4YV*CH7c=zSO+hYopM4(_6m6chm5GXeDW#PCqu9;Ny9!- zKD_z`bk;-;4Ee=CMEfwEVaZqY_ch1>K*Xt@DxMgHF?vw5BYtl%9tenVmg7U5lI0I34MaWL;E*F8j-N}`b@FuzX z-#vTXzhinW*iE z9B~R&DN|yi>USlU!;|py?vr@;_dOgUa#WoxP;RYd2T-Jd_AJ;jr+NQ5<%&~Y=77-; zJkQM69Y%>z%6r#3*h?eC?*z8Vyd15aALjS(RZ5YERl=X2g@}|(?RP`z>iFk>{QE!6 zj6v?|zPHZMy2R6E7_n%eBYd7&3l)a|?SJ7It?jqK-VOQ^@EOiY3B(Yv+o_wAUhDIj zRa%MCX!na7(rK@iAAC%Q#Z{)4v1^18gOX?%jn<2hrfe6``}ON7jXSKzJw4CNY+4y` z=4jZGc<{+o7XO+&f!^3=6ZsQvh?s~P!&dBN|NZ?HfeYMgTp9}e*C;Q(@7gkAqx^~b zYBt>}*vYs~=yHWFZyEt_Y|S{&10a^kt)(=%XW3Wr%vp!z^UV4zD&;=Yv8lU9G{^#+ zWl`W=KUqeS9O+8u#}y>M05aD!(Xb;d=Spi5iWtZ&PZJ>QfDM$iK&+wG7jzO?qVK@y zDwUrOGIF?8o_A*3PnV&A1VlN03>851mF&q4EV?=(Kw4w4F2|&5P$&^4uy-b%7+$4( zIYO9Z8SFV3jvaso23O)Zx*RRNzgY1T=y}+t1cN;eCAn}dYuQWMba2*wG8dUJc{e4S z)nzd9DKINQUUT@Z%a`TJOqG}KGp4bSTEE-ZR4J4t)H=h+%*n>(-|`RY0vU6wN|cUn zelKNmVtC(oL5+L0-=Mri?}Hu(DhBl~aRb0TfkvfsmHgFPB(RXcNt{FW+Dyuzq}z7~ zo30WVsp(BgBe-uWt3yY{>0h{3Et910;qykQHwfu-*)*yd+>$Z8`_z1TCA6*m))@e0 zktl#Dwyj4)q7xW`UYO!k+R&&NC~}L0Q|R1D7IZjqiwyE*E1(bAd*j!yrxL#BV&x8H zXMgByczYZ35W(SK-=qJde4+r zQ}2nuGY02Quky2y-ShKhBHB`)IYvE0`fapN3C22=Bs}t$=sPsdIlQ>cib+QKIx9aVsqed5c5*_KV+f2dU-0|)N|~SF z2eR_}T;nq5Xo*Zz0!I6Et2y^tbMS6oN0C-WDNX4s1?{EL#{~0oVH6q?DkifKig4-P`t2Q7=@V+ZEEs2dO zyEM2D{QUmG^GvA28)!yKUnzG8{Qmt`AW>Gd2`*qNx9!U0<`{V2H-WTYw<{u`%OM7x zi-LCE2a*ksK(eD^Dh`?Po9S}1y6j-BRh`~rIQ41mJl>zT108{%G>e-z$Eo=Pz}I*o ze60rxTqrYzju(SQHivEa7+(gr*2445(pU$Yar{aU2+*rMH}WPvP25R9q-=9H*hFiR zmnNb(z8w46-54954r#a}1cbT&-bs7041yVsYvwo|_J)s!D}AFCZna$TL#9^%HfIXUPx7oy2(koswxF$%0{)x0;679o_Z^CcjZ< zRC|%{fAt9f^-LM?8yIP{VuN_p`O1qu6j-7HC1}_8d9HFetnGjYKtQsdHI%64^W1^2 zY>c*{ncb2$l+B!El4~zc2J_oSqt1Ii=eoeKo=>0Y?8sbAARd5j%U(M#w)%V~8y9z7 zHbM+VqClhG7zD4xND>|a`$;LIG}iZYF92VDuYTq!XVCtF>+P%(9#)aXhUVzJ)*wq8 z{QKwab>OkhTMtDxWvTpm#+SxjakRb&HpJq4aN^o&Qp6)cm-K^?! zt&g#?kZYy>t#h)8alO2Wl4O(sdY%Zz7&a^F0=8iZAYwN|sccu^-K?i_n4!ovO*T^e ziIWZL>aB8of2KJHCo<(>$-+^BpKV!vi~vA_Xqc6ZaqA+%b?UOmyxDUUwoxU&PXPay z=C8!T35t!_8V>;K?!qJ1ksY#zVVrib#yYCeyg8~UaDl2r7JgZ zx4e?|u7(+HMb!#^Hoe+~GydAk7C;NYq?dKo?`x^cpA+CRw7m zW~~OG11bk8ATD`wM8Lv0Eh=Ak@4$0Ohd65Oz8AN!k zbMSDGh*SWQqZ;i_)#Sq%lXCNx1F8o^iC87Ore2tgqPl%`K8fQH*{kvXq)pE!dqm>| z#((?2{_US;S>luSO%D2&b4Zt_tH%Mc^aA1Cyr;6ifF-zTVpRgbUb~n!f!ky^xo!kd z(wIxOQu2lnyWs_lG|M|=1JDEt9>mf+qk;q=R``8o%a}b@U+pyxmpcAYVrp zDOFr_l)U1Qd5tUky;-;0(f1`knPCdt^o0wTp($v4mxI!&kV#W83Id$z{bp{(+}$N^ zY1N8RBn8)Fo2-mCB3Y!DNr~tMfd?_yYQV&4ooXKJl)-GWcM5(2OqFoBXG!gHHab-1 z-B7B_FU|@0)L6vU2M@QJAfw8Oz?`Ngh&9#4Ac1>AOgkj#z(&+fb>-0R{Xu+X;*~hT zP}hGCqclMPkpYoYl_1^n-S;r;N}5|E8B8L~E)dAIF1X~^bPNRy+RDMHWK$IgtwfzY z+MJke0aNhz%&cS%`dRKNfrxi_(w8O+-HnRJP=JJZf&b2Ry7xtldNo*1XN3@@uN2^v z(+)(j?6n5mx9V5m>s1pZP-|y)HB#x!AgcpPzSN8rG#qIs^?C23yfzn zUBKW9AR;f6h?mZ_0GhQwVOiO&gZ%JbySUb3okJPa6@;zl&GQhI&6u{8zo!DD2#czM zc|W&+!Ta-4pWK56szP{uoqbrPOXgbBG2{dL{*YX+wCgB8c23~)$Mcu7cvU{N7jerW zP}N%K_vv?OOwh!mHk@3;!P|KKN{}@6O|N~+e`FClZ(6VK^y}R8WS7>l_ZgDS=xm=zkgvT7 zHdaa&Wk5-B^6{APM9=mw3CU$UaRFq-FI>Ju06u^(Ks-h=<24HU=vLOQ#974*J)7n2 zy?kTo^Yim}1vbxgN+GJ(g&3i3JB_=^JKrNoMX!FYF)wKw&*cRxAj6Z*h?G=(lb_HK z2|?b#HKI^|bH}){^_HrM$Q3|tpUp47E5lkhRyCf!iMsov(w-+{PZ++)v>X&L8UxZ6 z<(^67y9WAR=B~h_U$`fJ9F&#gptmwVh8UR_1kWB{AHA?+Uzmb!?9J%S`?n?PqFu%Pa5Scj0VK7rDxWh}M!WcBKoDm4lO(b*QwI zrO<3})C`7p;`%#DRivLXLm9iW%^Spe$J%m;8nKs}^y>lz8gg9Eo3AhFK!ZrJ7sefP zOX-ZVCUZ}wiP>ivC@pFDATUh!X}VoHr=Gl`veh|(_kAmvs06GR&QX+Eg(&tevQ%m4 zn+}zLH4~d_yd!F)k*XR>hSGnflXD@7Yf7@EqhMg~Q^4 zt|g~@!^qS!k$`2ee)r8Zwr*SB%f62r%ryWm2JVWCU(K8KO?>_TC}-GCHusB(rBmB{ zIe(SsYn}ZD-97Co8H!OewIvO6z8(g0LXGQL^B-x1K^xNeNbN(Pqfu)=hF2v)iBQPT ziA_~9QEP(&f_DO1ept87s((T(n>Bz81ZU!RlbRb!syIJ`4Xak#<;lAtSR0}bWfG## zYrsNkso_mr%xBaYgrS0rf}}G^DgA3|X()^8_mBmgvcV=TA`bT1cpfipvb4fG?s2wp z`Q_{G5UzD41IT~BrPb}ke63wGr3Ee}o7yMWc5Pi{9yO^Z?aT1_H9Jw2!vxCraHz$n?!5Q1ZzvF|-KMmRx< zfth`S=6YR{iXjkw5nuYAXB9xn>|Ie#IS3OXv#Lf(YNl8u38#`~=5bXC;eC>TU6bfI z?l2`6d1Jf&MosNCc9BE!j_i`(Kb{ThC8;yyI`J86?X|i*w~}E1Kpf!bXY+>LT-%gK zaV#}`twwMkRt{S3iL#$t*MC^utM#&$!19P>JS|zFm87&V3-|ORZTUH=8|OJu!lCiG z#cYdYp`E$;eN@ZVWH%z$BKiU?0QFpkwq4o2&`yucOx(~zQbzfSS6GklfA}6roTPEQ zKO2Ainx%4Bn>T24&CLztzy8O6_otZ5hz<}Mji(ZSF|p`VU4hqm{6kmjg3faBXJUYp zO_0;i`YLdDx@)6xQo6IKbwwp_-ns>DSd|Io?8Wj-9w_o8|7x^mkXb2afo0mQ&uCVc;%I;GfG1Y6bcUYm zQ;mjnUOv^d8<@{5Ntc{X1SLf1M8;GVBVb59vX?9+8_ISEf;8y3V1t7HjZKy^p@ zgUymV2*&CnlvE7Cc-CQd>Gq9lZ(V`W=iz&t$l&vNREE93qDYT8s3{P$Dn|s%Xg~zd z#BU35>n-`?`Hb2NkqYmt+lReICBA!K6JVkmx-^p3Eyu$-_d~nz`OFS1X$)+sWh5@O3syyoLog&2=x#ld)_-RB=rwyinX1fGeg|%wYNl?!W72Dew3^6Yhrfo|H&%yspOXE#5DnM5F*; z#MgO#G%baaPDC@8s-{l*<}n7&V$ad^sz&Pkg7&02=R;=@+2|**HQoPJzlUau&(FB} zt-#m^CjE^0{2T)M8g;Ar;SnSU?(@P;@0%u36JLJbU2N*0uYTB!tRzu#i}mWB1U@&} zTwHHceLr@M%DfV*vdw5&lwwWG+fd1!$TVR9k!paX8~wZP0@&$)e*Ky?N;Hr@#@z6p zgI~}18aD_6N+%-K1V2?aMAGS5D)Dlwy=@y$Da-H%rg>>n_G|t8Y>u?f&#NgkUOrEi z5mY5m(of^(K7o{C_HO4nrhmyex{G)e2v?s&kg z=cN6g&;&BYxcu49{V{7*0b0iWO7>L*N+t+lsVYs zS%We|0mFx2L*=s!9No;QTlEA89NkRIFq#hTN~e_RNbVDKa2dE(ZH}Cn0AH1O2$FkB z3o3|ImSlZ9st&&ZsiVRFK@|9eC-Wyqc2Cr)2BmX16?Vgpvah~4iPDDMnVdeWoC%Nt zYK5dvSp~_PA{R7@XzvYIi8^w&vq9Q;N>UiL?tMSenok-1&%1bgVZ#!Q9K9XIeMpWG z(4rF%2+WUB!BKq~V&mjQB-@D7`Zr_tFQx#7I%xUoR(%R8g;j6EZf$rzV6L$kFv+4e z^}1rn6abqOP)y*cQt!ph+c^i+;NjJ_H3&;1E1XyK{1oX~k zzeWA};SrH7m0nkb13EE_O9G%|yvo0{BZy3UQ>N3ltF1N0<}23-O; zKqkv=B=T30X9K_e2SYcA%M{$`kbFAs5%lTmA+q)h8( zW<4gDey(~AZZ_5#NBMbC=46#L)^G<1r{q7H0dIDVRRwj@(d!(6stU(ZGp3qz+aH$g z9r_&+Rp^`E0pRoNQ(#|`Ny+XaDEr}Al7!TT5!B|k*X3AfDWGtqhzG?7F2`37o09%{ zzYgE~M9N31vSwDYosEu30^ldwUsUqN*mB>ds|rEIAj`W{e%_4R)dR+7HgvTjiMOtL zs){c>|S70&bGjDGu2^rwyJ~M#^@kr+}B}WY{8*Z zzAs++Urle(q17I%oEwpvH4906nw1}9VO1K|L>BFlo4~St*(lKLlw>dw{rhxrwI;@A zzJZNKnkjgjfeypVF={W$Db>I6l_Y6An{2ym&($0(AZs-*UI|(Rt9Y{~NL1hoajsm; zk^|Yla`JT=ivG)OhYzKHoDkh>c&P{Gq@~@Pkt2Qi-22=tSF%c}g2w5jT2WTF;m(4PrO_sFTDD@=*&+=(<$ z(xko8&n1Ue^-ANw8y87>6lF`oP-d+!ml^=LNSmO)VI%t8!?q|b8}9i1v&vWJbILc0 zz>vhHt4Zb4PV^dg#$Tf}v&mJ2MOMp`VdwNCCMF2rXYIld&Z?KE6h#NU%P;2y^^Cg8 zI+^9v9vz&sIZ|x%a8n<&Z=JGp5m7)l>b*|AM_oGMR$0(|y0JtvFe9R7zW=O^cQ2fM ziaFOoxf#0m&CX&SN`1~TN8aW-yfPbsDghoKS+e=e3?`q+OO?1*mZK6kq8bxQQo@Bl zk!2r%RrFvouy%IG@0OX!*$F7Y^FYBfbIqB$`AnNHn9Uhchbcev`eMG}Ksc(eK+atH z(!BTz4bH5Y*L`+5?R&1iSlu}6G&eb_%O_#r+cy zt;2%aubjYv0y80JV}Qo*Rf#;rb^)*qSaJl1$(njR#BSt_eqEnzU$3J%uqCBoi9A{P zxNfn$KsZ-d&R3sO@0U`jQw(zfT{;FRN#q)L&}lz|E4Rn&;8%=h+1@pE$!Y7{>y4~jg^j`VzwRR>LCQAvNy$dKyr#c_8%erI>@BxgWK$d`dJYq!;{bfG8^Y?b7J{R<- zW|@E_XgyiI^ngA2d3+drS~ldxflp&V4!{G?XCPcv0K{*%9dZc!C^Z!4; zW>z>oAinG12)>%?0sO=dvE0D(~Y5^)?ahRrSn(GAGk{7L-#?X z9ltv#Q@m&M`zmL1lr01M;gmBaDU}egVqrYTLE&&}Yr&ffo9R{p^c{fHo({6wvDioR zeqFqy1eU}J@_vc6H|FE``B}xRiGFqDZq!T#jrxeQw8X6v(R! zlfbI4E5-zHl93F{y&}FtHAW)sZO&XPG2(Srk)UlpUi~BLrCK{@(WljLJ-JV+mK)zI zk6G`flB^^wa* z-^1xPjNgYg1yp<&Ng&XE7{i~BDk4^&GyTQ4|C8^}3Rv#9B*5+|(GZ)fK^}uKVKQ#- z2r{=)CNx8CZq@UnNhcavDkD&+_&oC(r)q`$UXILELcLDZJp`F3BpylmRri?bBBS?R z{FI7!X)|}CRWj%k_+d{23_O3tqKv&+Imze#P(mZAm(j1N=cJ{AjM+ALH&IkoVQ@Xv z!%&G`NpquYNWGhWy`RyZlmr|^_3{M?k%tv4kqk-%Q+C$zI{>`&cSYQtz^`8uB+=$dX)_Wh6E$kjA9R6EO@h&^dP#+{acx)TuKt7*2Nq)9T0ad30(!QQ`uoa*k z1=7cdGw2PlypKKCgcFe8!pZ3e_iW*cNa-3g4DdRkf^T^{Y1z@e9i42fTfPAABK zrUK=J3?*7$Q%S6ueMurRaZCGFzlf%K1$~DC(LE;4m`FuBr9M~az89RFJ$&phjK4RV zd!pIqmvKP)=>oY&G2j$XOExTh(B}MVHDGTxpr4a^Yaau!DF2gWK?btV=c)CpQn$bz z4WIC4l9j+-f|sPiZDao&^T!C-auUvfjJDZQPXwQjQ{Q=5T^4o z7_xck`}6X^=QHZY=8{&?2RzRN&MEm&oQ%J!c5^enSa9bV>f}fb^y-D9tRPx08mMIg zj|1MdYmB8JLJ&Cij47d`(&7~$xWIu}|0?g) z?~92}kfE!?1I={oINexTsbD{k4e#3tB||cuhuo|W=do*D^L+`#-&Jcnsa4diqRI%x z$fU8?Su3Mf#}9XXaj?&)|W=MqE6(VTAg_%UQwl1^jYkJM-eQH+D_t-NTgM*9V-A3~A} zW%e2Y7*Lt=VoABG9n4Xs-Gpn9S55~>`zYO~87pzzb8oqYZbkLUi=60xlpG_v#3}oG zX5W7RG~g-Q6hbnyV9+xjld+6nz;8dJ(N`Ff;l1*-WWI*g z&B%k*61|_)I(75qb%sQ^hy;>8JLr5?Dyz|Z;&jgp$pvVVAAvXOq|s| zS$5ya9>2#VRXs%dY}r5<<(u7`^%V=Ob18h$XM^XEu~-T7-aVzInmhMV(XbNws^EH0 zNmAmU(^9zhq1!}JzG@6dknPrfXg@U>DNT@<_fQfnzh);J#Dht)63py50K)U3QOTHMg$Gm}4#pbAGB*^Vo3SH*9!RwZpbN6PPfSg#BEU48U&L7MyKKzx z%z>Y(K+ykR_>=iZ`b4b(_iOz3|NIYs0{!6=q>pA+`6Btjtr%V?uEquUS=!TVV_lY1 zqX)Nc+RRaaQ_Wh^zFx_|7@37N!z~A$2B1w$Fr5FfBdRo_vQWLR89{u0ud^g-i&^?P z#^Ts$21Oudj8ULdEWd(8YRf0iMl;6c9Li!~W|SD6`b?GlpgvNqtJyu#1SzdyRv?DF zf#@i0zLEY=#{T^!=b6^%Ok^@MwDLmfF#E!$WZ^oi7s$|+;_C3+wWGnVj{RWnXz(|T~& z0{68l+_Xd8BAK7Ffk-9p05nSU1ggqqZYdpuVOWw}nm|#$mUfVK(UL(eru@S9mG)iP z)A=-@l3}s4IU@I7HWXz50ddm z0e&3GORN%#^4SEK@p~{^@ixyOfm5%KsNQ%t>6~vFaHkIJ=`Eo*@ zcOs6o&-Z6{T-5vV0PM9(Cmo?)hbA4(P!)$^S0m_GToe9a;!S&B*Tfw8dMh$1A4!b2 z?57%J=P1H76G}tfWK198ZrF9!te(AR%eN|^E^E^oT$5v9S8U*iQj==-^`woxKRvTP z!M&AyMMJ&1 ztO|HUmymX3$zO&D0#r>*G5*eG$!w5`ki6s$TEOJ&b zv40Ktet4@?HeOs#R6xamzy1E9&I`40?xWt%%&324sp=fOC!Ox|$qPADCd%xnb-sJ= zYm`)eK3x#ihn>tN!Rg+s3|q$6EJ`k%y3pInvgubcjp&kbX8PT1SIjIAM(WJG%4s@S z`MwVKoXJ1NsA(0Nfhw03NbsyiHU%z$IHyFXMkDS1oxI*RIQLvBtyKUrs413-U>r=( z2B2XX5Pp7Eu~YRWaLOdZJ*UBxj0piR`$CP)0;p^C94A$d)T|uSGiL?XaXFEDiigT} za*AT%Pb3gfLbvIR%Oq&`H^69b$cI7y%_cb0!R^}*$v)Ci%bD!RCK(0%@r<&syR3M# zqDJSOvKGk*IvC0h<@nz>v(m})uFJBz`3MD2^*3f3*NDH&lx85NgX{#TD^dEryKmrm z2J}WD$(b0$0>I54>m3u%>J0Q5O+7E4-3ex$4E0EsHqt2h4}Wg$sK+3P6?<#E8FS=q zcRJtdSHa-#A`o{#sPmg_+KPZtGG~+6i1YyW$1Y;fc$dk+qP&)+?e)0q!1 z!lA4w+1kOxl$C6PD(Ud$LxSsM6%!2eGb(XZ#poCi)37Y?{N01&z#BmT+`c(A^VyT3 z^DM?xqbKjASbnkOhv;TseLaK8)G*B1f1AWgve(bkQ*H#j?miYZ%qK|^)reeYK(BY5 z>6Dj5y)LfUr@wmNjMopV4?P8ml?(3cT75&Z5{P{cZ#}kRT9xQD5Dus}PqHc5*7FRw zd4av>;jPsHPAfwBH76-5@UJO(&m46gav$;;bsKY@_l_;oGr6&g_%K6h+Vu&Qv}dAW zB-aQq(EV!C!+#N8EQvk3H-#H?S4Cw*2TI0KJp%5=I}uI+_|P6g7dAF|sp>$k4`p=( z=#q5(?47=mXGcWMAHSZw--W$X!;>HuQSkfs!si;n{I{PMV;DZ4l=NnW)7W>JRp63C zGKT8e&4Ay(-@;wGPXp-B>#7V}kF_j2K;ZY!E^H-v;1BQA!Raaz&_r$^M^lb}`p3Wj zbBdu806Ph&#FE^j3SkZ268Ny(U}QM<_XR@QpmS}UnENo46D=nnobme?Mq39-WmjdJ zsV{5?QjJ1v=!gS61nha(vuVu3N@qB9iBX`mzLh97WtMq6rq=oAn^24t6GdVh8S^O_Q4R@wg9t(%mCGwYeFZiaK+hGu5KLkEvcbd`uK zYTnG6p~=e^(lO?o=^N1I>&&4E2zmS7ij!kR4LL2xZf3jZ?(Vhg;NRu(a^O&D6UA6S z=Q8^D?=v;)_Tqy8lT6tjlf<*m#n@$nn8|SzTdn5+Pyk827h;jM!}?MJ0VK#8x|hHe zBm~I2K}`FvYwX>7QiXmV1nOZ?{S8WX?nGN)<9TK=A7ZobxzR)Y5q3LUzLs6mCrVc; z!LtNHy6gx9u647tH3^XXcYJ|9`BdY(#X;mfdJt7jGBK8`ZnEXG2GY#m0+>_%18Hn z(CtvJdmHyK=lX_fa;tG zQ0{#tQI@1$Wa$8)J&3pk&p%vbET8X_Bf|go`-M-*W@J15lMJ#ztC~Oe!y}+7GxDyUO;kuwKc}Qlo-D5>XXM$=U)<5- z9QAzsxJ3d~vg{XAb|)R+Gkf~YN=UXY$5Dcse=EIi&wTDPBHx^6V0`_5J!1m@*7*9= zMOlgqrT&L5HcNA1Qo)OKz{CVPr+lj-C$2jfCI_uSSMu-mS&5;#iuIS~ zwME7fXnCNL_52K8Pm$yH(s#{4Fiv?5PR9|I=^r*+E{<$NbaLQsJswtjWH~;wZ=K~c z5XjtPD zoujKXhPHVQ{o@%kCUty`N;E_+coAVrhBT}GZmhp!Ov#(-nY)5gV=#qr*l%=?Z5|^N zllMJr$ToafnOS7gwO0{cZ8+5YJ7ce=ISE{k;n-^zGaf++OyRP|m5PrK_qwYXN)QrE zuZxKJVgKN}R$Y)K>5L}i8ITF~I<4W4j-N_^7L$D4|KTn<5-Z6JG{SPi9lCgQotCqY z|Ms8%{!gQGnDa6;1!w_Y*6Y*}ZMdWkBNua1Y9b@7E6**#Z)^G>-t@>!(!R)hM@>6X+k;|CODip0~s2`P@mS$ z^3WR$Yb^vAyzJ7bYP6;az+KMKzXP$74H&A)s+-vI_xd{EmP81=tI0-(3>5(Q3`#(l zJZglaoIvVlDFwIzYN&y(OPfH{@8f#*yXQhxip<^}R)S8vf^_ON+Uy9#%;s>)DX?nBkWs1=IH;AsJKrc-|Vo1h%7=TbU zfebjuA67C5)Y`})6)>x$uUW`W9>l~dtSWKs&k}Wpyqc;skKA3xXqE8QCpArI9x4dDVI^w*;!4I9&SWYQ#d>pOTKPi{1Elb|npEgWRvf^c{dw(KBvs__)K~qhWLZFt zdsUx<080&fjdz+w79sR?Ug*5kWGerx3X1k6n_0haudRLMde<%74ZGVuy@|NPWFp_W z8Dv$04!d2Wk2-)(@`q)woz8kAIQhi}k=0vdcM_@h>**&VMY_)d6{A#bmH%$Sg0Xe9 zT`Td>vuCK2|Le0X@>J}9zLu~T{V9Kx6|l6^#kCKM!rKw3OMw9Pxe%)iH%^rj@uKPm z{esp?VB6#yc(LKm@u1_H1{J~T--${}8bE*di*b484?f;LC~PWs-YnWO{-?W2prGNozDbL zR05EO*Ed-OF9uTcX&jEx+Fc1ySq?NjZB7TNT!;(~IbZouf7I+kXYVpVfiwUdX_$xP zY)O8aMF$;)CtA)7`WWKS+3pZ3E|7GyV9$K=fU>lxE20Im(}=u+l!Aw(HhkM`h~W&^ z&9yr_U@T>xb0CE7x32BFu`FER8ZLKlmooA>}jiB)e?OzN>3!? z%K7YtjIUtWlLB;+NG2BGm_g*cYm0QQ-eoZ*g$f*lj#r+llQTM8N@5}oe6+LDWBa(k z*BF3w+e%m&(GFSh!BJ#N;0G&aI%ff31vTOBbral1OQT@G{ItBGKEIrnwVb1#)9u<@ zHgy#MZGEiHP6Cul18U6#yf*(`Wy}LkP>7y4JUHzH4MM(q0IWg3W%9SqhRp=*`|PUt zA#_u1C$q}y*EPetY&Qh>_`9b|?gH%XTliUq)&9X-TYkW?XVljwiO~$F$?ohVd*{{- zeAcY08c-up?4W{eM6yu#jOL9jU2m4w$4q+%D-St&N&un*P`UmaW!L4-nVCB^kH@^E3O7lIN3mh#UY5hvyyrUgzNR8ReIB z8?RRC{dsGG4hR@arb+ubN0;}gdXXdWV0kgjT}7JDNVyB;Iy()kNw112dO|?6$gA0( ziOkwNF#>PVMu5%w334)F$rzG71^U}2YCgQjK-I;t9R1o!;U$gW>(-dcV9Y13$q}9b zRibZ(`uSvUn3C?rVHl+g_tdGs)HEA_5X+pdHLDrt9*oe*+ULoh6pfoKU+Bh)uTk#H z{*KCY=;u@=040=WRZTm=2Grp=^7AK39wN(}gK=EIH-z^R7v7iF&CwGG-*@5pOny!) zuwRuzLyz#KulRX)y~h}yx^w_duw}1`?r%s<`XMXciDFHCqo2$(l_xJEFh8S)l$?|H zx;asApMxDKp~_o+S(zY9?vQjTv7Hg;>B3K#;g4S&^=K%3VTiiuOi2@vmDIF#l1|26 zJg(1XOnTpycK1L2%m4nT3<1E^NYhMPvCO-#Xf0R6tSZjcq_{X$Wb+8|kc4wXqaBM5 z^x1vms$M-yO=NdH_0?PKgM@@dQa$rDRPL*n5{9B*USyl{QcZCZJn=4-cZ)FpVC&nT^k{v;{fg6IxrV8|*5H zv^-Q9Phts`~cNp|G0KxP%$qeWP*E+Asc`@AN2ua)Z<|vK7;({c}wE?>A)V@zPD_4o)e%g zV8KSqQqTb^Zdiw8wBNPt>Yz__wIpmKZCf_aXWfBmx`#iZ(d<**Y47gCa%FZ4Ax-%k{BZi+_&RR!_6a6%J^>aVly$mNXJXP}!}`P{6~#H5|A zxg0WduAKV$O*>kd`EUl z?dD(p*MI+~k#cvfNA$xYyL{!6P?fU6W#24G!AxEdll05!X|aszB3%wg9dd-qITa|A z3*`e|L2UFvvWK?O!RVh~JAa{+=63;2gD}Et2Vg^<*$eN|pXox~P%+D~`x*WHKFClY zzh2X4T+SUbmeABQu>7vTHg_Wf-oR=Kb^xh&a!?Re78-SMjqp`@Qi*|KmkL;A{PxFSImuB$&ekO(`fmfJ=ieKMriVEA zi~u&arobL+9NMp)7{NVrB4qhWC#KZ_?%`BGIksvf90#h!h_;;j>yn%+71@qtj6=@t z2)6utZYc*|aiQ;4HCG);O|54*8Em6WIXVUOE1^6Q9&~1VWM=}^x}v411~nWzD9t^`zxReS7YmquTX(}<9MX1^`x>d$g;-_HdF z<(=HXP6`TM(535q#WAn*k#!%5%8jz6PO^Cq4qaw+;^1dH`w0BmAwSVQA%Qt&eRhD= z2ZJ=I=M=SMIao6_Qvp57%mZP;gphoz^rT0tX;i@9tQ5G4^;DC2)X&VnRa?p*xKzD+ zLcyuxb4?~S!@>1D?%){=ytH#WNd+)XVZFPX40qcI!TjYHN3`!~SzR^^&k-eoXU?B175dpL06r{M zz#MEor~5MM3=UQ{s(KvUdjtwtVZew^aw1BmvLtm?r3u~7S3$i4Q~Nd_(o+A5MxZ@K z)Tp|XkER&W{@A|&>g}5Y({@@&2Ogs+ifP$m|hc-sJ5Du$`ymgt`?o0e^t3e-I0D4)gQYu6l= zOkNU1u{~MnvmbL{`3~stPwn@dq9{e+>r0?Z=HUmpzmJi6$G9HI{V#9Iqyb!+e11RJ6O zRANAxHkBoH!A|6^9Mb5?YJ6vxJ^M`^+&S3qi+(f%DR8*<5!3(xAOJ~3K~y@mz#|y6 zpN)T3K`^@NW|qCFnVjNJoq;D0yG!aW{O~z1Ias3YJ&o4y>1X#L*+PqK2#xIeU^Ad| zu#R#L9>nFwsVWCYXs|`rfGrOS;NI(dbrF2VrYaLa8~eS5LTckLCtG@U(@Kzsv(Bu2 zvHHiEb*C#GHiCBCgAFG2Gy0!pKyOV~OrW`owFjDD`0l#ktdg|RKZB1Lyl3S8B@j$P z)~nLoTIC$QXNkn;Lj$M(538cb^D-HEoa5)x$ znu{_5J38Ro=&|)yE2$<^B|jcJZ)GW?`F5%frm{j}i=jh;o+*Law z)YR92wbIS`Jk^vooqQj? z8Zv|qs8ffmP-nE0CymBI?Wnumf&2jijHprQr^fY3$?674CmOW%ZzgaJ(jUQnu7=d1 zGckVKTEu~1qI*16W|i)pI3l7PqJvDzYKp#D&6Wl~Q0t!{WzT0L930*g&!fteIOprA zc#RPno`yo(`MyyTWHAEQH$jIDqUKw^Am%_`1AC~M-8RGEk^M zjr;rVX^wqHq~H=Ld%`_aa48BCMr+jfSIV|4u~KQmy3+=mND&C!V-y`>csjT4fdiQL z?)5cn!(*Q_S3(@F#f5k5!)=9c;A}K@!KxiW^>F6Z%Rz>wy zl6qNyWQ*3axPISX2FTbPZ2L@UO;v7vE(PFOR`HcmS=sd2^fLckX4KhtLR9;#%CjpR zB|W(vxbqM!N>O1|F*VE1a#+?blzog7d>}|L=Ag9iyYO`@o=_vgTC1ug(0P9yd&uVP zl)_HX_kP>}>%7J7&|H9}av^0(otyHJ^|IkR@MzI2_9 zWpUZ&u;iRZTZ84)C21lDOIrqKj#+CKBd~(b#Qc38)=_(4qjvJ+Pt?@9v^Jj4=N0m@ z3gLDz>HxnJi>Ni6mXk_TG>lrP$xuNa4kK+&uMuh-mj}9(uGmx=dNN2GLjg<$PRBlJ z2$(}3%VM%b#m{mu=%01ab|M7k>BV82wl3US9Hs4bbwEzzKl>bnOh;kcd9#{^D~FtuOcWx@MJlyX1{R8;ovuveQY~ z_xG(Jv^9>KiYExyC zi~{NGS@j_ha$tORQUwz`-wFnda{6BR7?xY>?bn$2qvBRGju*OMIlY|50@&H$ZD@lI^cv*C05 zY8_pbaq{Y;!QT%#aPC=LgYyG|lbao!WNyi{0vV~MI9YqqWrlhV{Cwwq+L?HsMQKW% z8zv_ZSkzVF>!zc2g1;&d0ycKx6w~1gU?eP1)qN=7%7p&~&vqwOq<4b^5uFpeY^tL4AfBnz@@lQ9bJntqS zTA9=}C_lA@bR<$-G-fmA#sR>7UwmC2LIf?&#&zGd@ZR(@c#JXdh?lh!_4~%41WzdQ zY8fDiKPqP~^kZk%=Ns{{#_uS^t`Vl+sBDjn&V}NQA$|wSWlWw|hbXwnFtU4as(td0 z;HXM22z-7PGkRT&YTQtRj7wT<7P|UUg3ssjVoN@aHoO|e>%eT(;o!Sp7ahr^F6^4r zCZ}^>mr7Y36z{!jFqOHsO(BX3{Bf*nQ&yTDRTC0}rKGa7YAF_v!O_YlxSh(ZNe0PkIh31|V2&wBa%O;6Tk(AUB`e=t0iP?>*-P zCe%-YI%76G*JT796&xZ%y4ZGrP|&M$H=Ay>_r~zxBz=!*6-ZPt=;Uq-kr?&wUI$d- z_p0Zik`#R}CIiJW4HKxC0a$^~>`nB96V_=U?Heu|gj4n~&a=lpZ8A0vPb`Z$7^fVW9WD zB>R*shVHZ9!|UaJJQY0n{zS<$Ns%eF6recMwAri%Syjd7&v(j=Y1Ig5HHkbXM9zVq zpNIO#s_Yr)>4c2|7HKz8Re*Q(a3ZUnn3D0RNq(*vMy*G2nwOS5{?fDvKK zQm^WUY5CH{&s;B?9}$7A;dOi_R*!zG>(?X!H>%zMhzO3LTdoi?rdnIlGi3Wz)C$(_TDaqNW^GO7G*Ir)w?|f$>&QlVD z&+AzxQUCtO_a*v?5a@A8HfHziKsKRbVjx?Z76v7i zC}`@m@4LYQo(DEByBBAS!27I1>i_lMp3-^;dd=@^QhnxM{u6cFZ5Z9aF@_pBqH=@M z69y9Zb;Hx(Tt?eR;6UD&0!VGF3HK31)Gh7PGDAZBv#Ae>ZVKWR-~q|-v+?JLv-u;C zjpH++WT8-=P0Py)K_b40ZHtEhCCf;^7U2 z1iJY|=wyE>03Xuv1^VFcvyl>IutLqLMj!m%OAc~g)-umBgaJ7Uo1e;Fy|zcQWrQvV zk%yWCAm=f!zT{d!1&l^b1w=^!rBr2hg8X*W@9TGJgstc@+Si&VpwDQfm{4NqpdVE_ ztDs1dUT*xV<57lUSKw_!WJFML!>^>p$XzHQTW>ePoN6)v@bz`q&;I6o_xj`bem4bG zkf^nD17sO68B`}{b=BbIXYAv$4>_!V6>=!DI z9+U0+zt%2kG{1BIeiW=lB+S1nj^FEN?YrwebMm=&RuI)mL*V^bEeaLn)$iFtIptJs zgF7fvQm23Lz$?=t-BUxmrAMp;B+CXGxjKJyX8&7gPxeZzXBYMFT&t;I!vR6+zm;zI z9RE<6S&Q#}DTpaQzz9`AIpj=tRj>R|4LG22lSFWPg$k82S#ZmAGW@2sEOpCOXfy7fmlo2JPB=d-PZ5k5n`5*I|!13~X0C z;0D#qzOOR(1r!({VB(k6o3h@m_wHnY{dROzGe!lFzck@>hX^o=7N_&fo<#dYRT;FV z&81^3Sd;f)O8Jv^}3Ag;JMwL4ead!1OYa91i5&Zrh`^FZVq=m5V;4WI1!TL zQ^8p14$s-p;crfxg9ICG>%s0!{(c`uD4!R75tV547e60<{%zzjN@J7IpAbzzve8 z(@*ipm}$<^D#mdTgAsa_d4VpYBK_HXiE#uqMx!0D0^~otoaYr^nRqujVHi;*VgHV) zLtbOs(`7=Gaf~o(`5O`SpHb2aWdNr3l19zVc6x_jo-fPsIm&Xw=ymf_TZPC?LkOex z*3nM%RLbAMpdI}4th&sFdKC)0v5$c|YquH!d^V#?t;Mg@_xrPGr9h6P5I$t9uB4KL zjV+~+QD^Zin+J~)vX5>Drx}P0^+o`5X!JT5WR#rab~7vO#Y&BX_FdIFWj38{X%eX` zJeiGvc^{#7_K0ZjC*!dAb^hyaCllY;rU#)aJ@B5T1Lz}o;frz4bY?n9MFkdJjnQ7s zQSymA*9yMRz&1N*JBOi}8Ur~;Q%K&ux};w#(#aAPW|Yj!){Pig4>f_80~J3HNISW& ztIiNh`!DLH6%4p{fFc3vX8?dX03%fI#>hmhEHo`6@W>WG$?~qxrwMn!Rmt=Ku5b1@ z6%|V7+vR5jr~|**`!SASL|Fx_u475Hk_MK2SU!selyt7%ovlB;yGh;w9xs@zo4Cjr z!2PAZ8psw#)8DLIW_s1GwX7&TjbJ_^f8uyaES@R%F{x0+2ApK2)L{ufWv`@$rT3U*8v#3k8XLv0rd6&+h={ z&3%7F0rQ$ewlTMDlKlqH(IcgzYf{d0>A79;uO{G|w6M^+`WKzPIJ0^C_Z(QCRcAxX z%fR*}eU33hC!cqO050Gz+KS_bmUZOkGzIQd>9buN!DO)G68?D}X1}gk6yJA|&SeUp&smIMzmQ@K1n}$)L@TiYqJzDg z)F=i=QGYpD+Iy8zw1eN7i0cd{MjZ|hSsG(-kka95o@dG6v)lH%zc44s`tM3SYYY87 zoniA${em>$gAzt-)y2HWR1@Oi)U+YiYmFiG4qXU0vRwCt3{-Xpm^-CFAro88gTA~! zpQkv5HvWz74wZ66$4CdnJTW{Nn$9I-x%I+R26*TqjM-dxBVR+8`|l&-eLy1u_xIIY zR_{+4$^FZ@1aKq)z{&Bx=D@JlyGxnLcQuW{O?vm;x~Oy>^VeSNtg^T~yYfqeNwq_WTfri|H?QAY;8?z?C)Zm4mPXG7{_su~N2 zRA0)mHl^YGxp}$K4HYnXofGbzSd}n3S+7c)<`hib|A=lF4K;9i~7iGdD+0Xr1bIW|rkeZ5_nzaez#m9O|Pq<&9kkb^$2#Eq$Xmbg0p!YGQ8T` zwW(F@^In5(WK-D$-gnMb&9%GnK8~j7>$H)?(6HS;C*LGq@k9ezWzZnF|&Y!TLWtReF&>1sd>{J;i-NIi0<)l9)?qc z@imZ>3H0;ON1l__#~h>>(ew#Oo6Q+d(mbtb^r}LTxhs|+wP;sjYntKL&5Hh60W_ce z)~t<{4P5MzNhs+ipyhSikvZg=b0Up$rjrsH2ZS_j z@4NW&Y$P;7I_jB1#x!Ka_;Ge~4(b$Gf)1-PC2@>wr|&z8k%i!7jQ6pGrs$55!bC_I-C{x~y(5U%8FwY7jkHt;yCYF1$>P-SH(x= z!OIi^t))wXRoRlkTn`6mwIk@jp4B6wxE^BV_41W-V2wOzEdymReHVv=)-5|@^i$wK z;y|h8IJWMdm77dcaYF2b&fnk0*yUaRTm>lp{i-I0Dhv!lTVBvex%b=A?763YSM$Qd ziI%>G6r--PMf(4NgR+(KC!W>}HSl+Zrl@me;yR(sIyV4T4?HtpdW3s94mwCC5kolO zpiMt*h?75~T9)>k$6a=yZM6Tegf)3IV$?p^Rue7My_r*#3M1FRxW}(xc!^rklqr5j ze_+%-HUews=)lo|67S`%1UH71h@=-EV_@9o3I`D4wmuI_)Fbfo*U@M5S}BAH#jW>w zpCy2RAPa}FxNl)pmCnu7F(rEl2Krz3tl+{n^?m72&PmWz#K}Uo=QXk3#bi3zgHaXa zYbsD+!eG1W`-enTLHABoJxQq<=mBSU8?-t_aum?cbzjT0Ot84TEE1HHs!1B0&N52NB2&=nWen86Gam?I5@-2 zkfKFt-6*1Q*pL|IQ`~Q46(p2D>CfFV^0uW;GOBV7+R{>1QYFn*=Dn#vb15--J{#ZP zS5+xWIKg&Y@8J^D5o+}_$*%3}gszlcvKzB=Z+zXRclQ9O@~hFkfByPBuk1RXaZ^%xUYD2JQzX*b-0_Sr{H!wpc+W=LRy6XC_`)E5S^WdOLSYD zW9&*a_Ok3^Xe{z5G`)lBlriiQj13Zl3?mTg;NSe-67olLV0~bH8O(J`I}#s4t;1GB zlY?o?2W1`|({i>$RR!z1LkHPG-?SqRb6>le&B%VDGrW`gZS+Nzoz(D4Iw8nLLC!O$p6D>1OZ_Fvq zXH%a#;P12b^>u4wxNrA83#B=OqEH506sr;SuKjEW@6CY^n%3gr%Vo!uk@R_i99F6Q zIH___KOEFTd)P^us}jXgEF-R_u@QCmOryCbjhS`%YgN;Czd6`WymF%ujEE?sc{<@f zBUypS@Bv5L6fHd5Tj2YbLTvWh1p=IbE^r!l+L-2qwu9q8@^hNksPnTyM_PfPsWnPu zrzCwGV4;Yz;!Hs*}%#kgDaXNVYABaQ_a9QhHquc1Abm>9aa% zVPY^5#c$isE~IUXbNi*~pH9Y1_ww&@V;t{?5;E=QdEVxTa^^)xTtxhe>%VD)Lg&|# zzo|PI5NMPMWZ#XgcSZ6YrqnZPQhFTyVgbXcMddSc>E5VLoFU(x2lXndf?IxYXkzp3 zezueQ><_jU{Rtd+k6k53vS$d0>KCxRa(r<5WPo%SH`ne>N)XpouWOs9l_&79rE-Mw zcMcd0q8QAmiK%*K15Lhf4(86@9sA(+34Klt2vUK}z|Ah3Yar+vj!DRNnAbtAiYQu3 z_dvPl=)6aO%k{K~s56#9QIoEeW~q;5TJ5Oqkk7Oc^Rp+Y{bp0(iVhQ~GiF=mJ~UGo z*_UZrme*fNs{}{x+558-`2ORr*ePIJ$HlYaoGT%m;gE%bJK1>*f<}lQ+<@)c1ZKBm zBcQ4bik8n)M$(YIn<=f$l_rnXpt>HpDj!HHK2tnCe4kX z!yMag%H&GeU`o{@{2o5+eEzF0LZih<^PvF^n(mTo1!ZxpeYT@0r`;6;K#CyxliJ|i zT1Q=$*;SG;2OcE@q32G&V9_t*7{t6LoI2qe_09i+lIvmD2{ z;Ck)~z?}Uicqweqx9g_Smott4+x%kxj;*T2&aHBk(6!VWI@vkSzsss~w%nnE#6sC* zu-qHrfPj4f*#S*hs%jS+=0MR1gwMGh%b6@xz;oQWP|W85m7mv%4S)_Be3}j?QfC!T z7AOAxwcb`@ir|{D8LXR+15Q-C`gPcM2yEdAOcc@>Xs6*Ap20~E=*et}$4a#w^P<L()t>!IzMLeuw3jOf83R=@JI z_=p>Ax2+>J$27Y}7SHn>$NSgf?in0&2 zzB)IFsCN!P!9VNcZs+enZkb?$&g9AiA3)dtniJ(Hp zsNqGnuLfHD{XBbT2|Zx_X#e*)-9w{XOtOsEHPx#z`ko!CIj&++2bY z&%{6M%P6ToS7v~$Az%)|6`fX~S(R$^-K*ezF|hS?b7j)Swe}N`Lri;?N=~jhiZ){( zyE6-%z|OLHTXMss*!5dEP`8i&JWGwrZ5zEN2{LaT0F5IV@Lt%q7X`=^Lj_o8)8ksy zPp91-MJqBY3jj6vCY*rjoCsa#_huzczO%Ot-C%r@vMV)v#tEEe0i?>pY!~23A2WdB z&1WgsWk7q;RZ!a=fakMrUphv}U(dj!kOjUHa0pmN+DRl6WE4As4V#_}-##GaUy+`F zqUrFeh=hEngI%NNLwn<-)Zcji-kW`+Z-c(Hu=^Fkco3j6#3R z)wRR`gg|@0A<)^mQBXGFG7GcZ9&KreW|F|#l6&Hz{Jbv>%Qb<)%ZxcydSVlUgM;{ z$q!N8Q32iad4H889U$h~$TxA%s{*dII)^QYP8emtWg|N7)GI`6BM8tWWKwT9U~dB~q@mtMl%J z>}qUQ!DtH^q~F(t2!aQJMhCrjrl}R8UP)J1q*9k=45HUFd$0G}SWhF9=b24NrD1S1 z`hB%cK4*2f7b7=7fh|(khQ9xKn+weIfuq5j&hzW*hMOr->%*V9Zd2K!*3o~?>WjR# zlKPm3QMI4Bd=by4ujJhN~%(b*~%%&Vl=ntAafHAU838o)_y~rAk%PI<+rX zFu;%KKBP#H?iI&b9y+TD{QUKnjrAR_;0pGi{Os#u6Qn5>J{zwneMX&^WG4aj8$>5L zmFzeTjP3!j-}Q5>MLNv$tdeex2z-5A-~hbtVY$C%Rm0u5yNw{5kDfs6#Lx3+SYnp+ ztnXtt`-jwz7OYd>^fUYDPF~)nM#S%ll%Jb(;OqM;fq}2Di-9Ulfb_(>FJQScYm-p^v3ljMJ! zO1R|HJo}^MwDnAE__X9Q>MleC-n3XjRDzJnxeKR%-)c7HvwP;l(BL_$^n8DdmMhTi zU;pg~F#?}=6}Vc@lX-wtT)=mC}V6MhI0?w!f8K7xL2wsw4;Hv?KKVA?|SmfPpbD zAe`+dTsJd6Jsc=KOHD@1Zuj0boGEt#;#ZYP_GS+q_Uo#{JBDSIg32_|vz-Bo#{L$^ z9B7J6SQ?7D#ba#Is?4n);2O*-Re9u1Qz+RF&htQ;I4N&(Np{dMzQx)4F`;IsWNmDxL> zq;#Ch?YXfd5!Z#>s}RBnAV;6SSw=w@>b{sbg*d=tU`H0{1+BHuCf7SS!aZH3=xSH$ zBKthtb5aRm1fItOV`lArZg8-TN~Iq2jPnWN2u7ptgue>;Ffvv&1tHMraxjB>C1!S7 zzT08s<@k(X3G^TN+NVZ54IKToC+tZFTtREq!Swy9z%sKFfZUR*e6z~?*O)aVsv7KK zAhZ`*>yrwORj*P&>_)-o=fOP&GMV76*ZSb2?1_Ua25Gbp9KfU7(|R&#pL&t>}mF(p+d%D zASNo%jlpr_1QKjIe%t0scmcShi~YA9%yUX=JA3Hv8Li!~Ko6gxAUfyX8CTZkRH7hX z@V-kwlemt(*gMOXdzQxUYD72dS(Knvo7$&9XYGAW<2=Tp*V!lCZ)CP5zm{&}}X zej%Z=sXLi$7<9!GAaeNmyd^K`X1)97$aM=R%xe&h%|26w9w#c$1kEsQwJ0B#0xnN| z{Q9RGdu;}0^3|ri8r}apNXBDMxxX*_+kRoc&FF9@D4{8k$?|;HxZU0^=Uo?wMGLD`tTizE752Ozo`^=liSstym?F zN(LPx_`X(u&nDOYk;nlnBDAaT+8FBD8M3p#;sqt=8+`xofA_^W?PVioRc8_fq9sTl znv*kDx~e1pE4yCR|3JwD4{4mwpt@9m;A7EL5C{dbw2PzG>+|!HH^18^&%^iFFXqmo zZ*?+ne}mdvC@$n)dKj2v9#u?rPuvSocUWI@jG8Rp;K#x4(7wkUr3$!{>;CM8Yf>$1 zCnQqAeO$2WsEd7oeiW6ZmN_bPyuybKvS8>`as2$CBYo2TBIT?&xbF#s7_#NALIT$9VwuhtiySA*HHDW^! zG<14BIIARxbjUe0hx_)3>N2IvKL7^t(ZPc`f2|s#cSrNM*}V9>Dbb(jz|2n4NuUGx zQvtwh?PLx>Q3bBapuM`T^+8;!jf4hu$)J19{W~u;X8Gb|woxhsY_=ka&uN|4JoII4 zggk3NNs%*bm%_|DQ!t8$kZEEUr0{ zYY|zhvVHW=wTgqz;C8@FM|~m!U0p!^_e$!Qt1Yq%eqYg3-4pJ>tx=-l{bQFmFdgdUFp!-^~RZiz5OP~Nnbj7f2krZ~^oal8fb3(_g@AJ=77SR>Z-2J?!hWfn9z1OsA(`wi1 z>7Ri{UAsSkfJY~;yPmE3tRmD~GP^IrTdebQGA_m(5;KrEh_11p#j%-@cO%*Gz6-o4 zS#IsA_rqt^dkMY!2!5WGR?J85IFH{vhlfz6d_DTCsp@9B>NQ9C6bmcxOt&q$@5yG= z5q18*?yGzq8%XVM1qP2J{&XBGd(AbI9Tr8|Hr%mZ0T{Zgt_0Y&cyAGs8Abc>VXhIi zMhC9%%W*3oVDoa%>#7fQqr-5S>uvfBeHbMKp-Zv@h-;RyTq}z&>tJrqp$T9q-fSD3 z6BV3uR>^A!{ZAQNXZ5IqMXu$Vdaf`AR~*X=n~~D-Z+iaDM{so;oQdx zB=&9#;R`l9*crh|WiAQ2s^TOvq3`Db!j7Y%O%}FFdQPb9R8j+teyOuC$n_cgd{oK< zLkl2kPrQ-8s3L)qdCRqHx@N2O@Lt}R)oY{;eU?t${F=b$hw44on23y0d$B=dLc@uA z*ENwl@O)VMV?fv3>h)5qH%<8n)IgZZ8x*NjKzi(1$~Zf59>Fv3M!r&`Scyj*^W0gD zl6(g3_vW*S#f~v1Oyxk5I~{7Q!*0si`;tcE0Lt(9by0tJ)v%QTSE>epe2LJXy2?;M zsCn?5z_?NBH4d|!c#Nc4mmRg8Z#DZLbepob(aEUS(&vchm`!=(_+2*or>tnvVWNN5 zvUt8LQvvxkhNgY80dt6+=m6Ig6We*7wJ67Az{aTV7DTPWo779do`Z2DT$S*(<0{}` z^%**oMkj-I%%&|t$7AQvmu-e*JORes@5@7xg>1 z8^z!FrjyyeCqp*XRTej?wu*)kXsz4Yl@xnz%8ndoeqOT!^@CzjK6P!$oJ!ArCE#;o z5M;|2_X80c!#UF%n%PT57#QA{V=PIgeBhR++K z&%;{zi%;y|?=^p(U4dk+p#Y2(Jg4ERk3Ta}ECN?Yr}_)_rqWO#M9(?y*RXu3l}_|~ zvuU35@b7zP$w!|}*K7Zl=r$ns_t*kSWS#L$Cn@~*Nd+GJLYM;6l^R6*tEs936FE%- zwJfFLFRLSU3KC~C^u8=vQ`B*D}m4s7D@tm+gx2J`%cDRrRp z>r3>gF&MiTeB3*$xmSeu2eNi9&W}C8&7~eUKp6@3`!Z-v z9fSev%CE&qTmc3)mZFNmvd0FHgB+}wLt^@(3xJn-SSoFFlgx>Dokk_~^h;91Y&RG zyNUX35)OvY5hTm~M%ZpOU#)lH{Vb%1I%IGLLnRomBt4reY_$ppEEPy6>ffuBs~~nH zpY_$CG&er2cj5V241V8*P`UJdj0!2JN!?sGv?+-C{7AYr26FMg+bNO8wnZBX1Qpx) z?+biyeV>yJDB1B@U~RMJDIrV#P_o#2wAPMNlRQ_mUo{*erL*7Ne;HxSDSJpXR} zf7>kU8COt}{amN?=@tej%B2inj7Q4q%gL9_>4 z`z&B|QZZ-uVl53u zLWuSdrhQOE;p@v9?FvK#G|c+?{w7t%@_)2A01^DMlw;hBlA zYj*Vvq}-J3X1Y?BMKhe2QFc_nh8zBWex9Q`O>oJY_C`Q1S2%#O-$v=(i(q?SJbL~6 zeP7jdT5qlx#&=~Mcc~hB$7o7R;MW=Rml+5r!i*$+XO6)7(02Lk-M7UD+GpMO&EWR# zs__VEhl`rb0YO;}vCp$=wtxW*)1T~%NO8*o_y}Sq{_XR?Dqa-~CfD=(>%thQsllAV zlK6REJc~AuwrAn{kGrRTYVBg6deR~Wo`+S-&qFmR_mh<5WCT8*VRf$CpdF|T>_?|`xrG3;{LiY|F8e$fBMrI>G$`I z4iOKn=`kpAa|G*5!FOMVfzsTprZhx1W63bGWWWPvWe%38OwVy9D#M#x9RHa!`b!l6 zPtH6k9=@awsJ5J|FL0x?ynGQS+UcQ0;lvVg7(Raniw+E|9LQV75tXT1PV#IloT#zR zHX1Tub|6OA$uV}BknpWDVIvoL7^(z-K@E7z3)Py08k@$T25m^rQ;FHU=)CWH7BYQm zQah{nWWP`VZX4-FmU57zQF|Lo?uQ$gx)S0hXRiAw+QQ%U!i!$9_uqb}sV5wiHRe#V zz_ps9QB_GldRR~!_<{OYak@=ca&U4TI@^HhWd}+QNOcyMxTBh&#=BNsm1JwrNHe&~9*^2fnOz1ZqXRWKLDil7`o2q^wkv5p+pd&Qu9`OH5J=>Na3;B#8=dU)bN-&uipc=uu%6XRZJ4w660q0cF`1Ld1 z=aQ5i4O(~tr2(`3_Q1eWO3|70?=c94fP8`xb5@vFqMDu~+<18ex!H~09)e{`%6+#^ zHvfF!ug{AyL$r*nVAo%+GFV1;9IA7BNjf&A7UYr7ifS)`X{U0@oTd_W;sKqF`@Zl# ztoZuev&yU9k8xJd+x{Whz-hmZgt*h8slSvge&1F8e5fk5^Hf6N`TzRzBwf*B3ae;p z&lb|`;C-t9&Pj6yZRLHjPeqXcES0-Vy_kGvBG*KAPr68mk@2pL`?62l>OFdVlc{OBdRMKJ}WV>bmHO=YI_A9nU)LvIzU+Goy_Y}RlrWQ7$fhG~8|v|E5lz9M14sn<10_3^3ZUPoGpN%D@B$vm#TXsfr=7MfAm%T2l9ZiO6HBs3zwBN;*^qQji$a72~eP=MkTj}NxtGKv7 zg854H_l`!je>rv~oX(>C&c!M9`bHav3b2lI>EOkNX$mb3o_bIniNm-sni}IoX7Wk!wKYYQ>z--^k6l@JqZGgF^cLFX$jKS+HY-g1`HKw!|$p}U;stF zMAY4N0MF!4D<0xwAPe%ofE5PF=oH%ZSedX3S;RZVji1IXiSFVT!hJ>X~Z=S)-J-g=U21x{Q}1-va$ z>cBaXg%0}cxq?)IfA(}hH;d}1^xbt*Cg1Uk`r{yeHyw)K#{IP_l#x3BKBVtE$_63T zlqitJRjaQ4>fe=wkoMDeC6j|@)|TYB-#UP5;&!seVND8pb_(t0 z_a!<(a?<7Vk2)iL&mGXZxzwfl$S7oer@<%R69tJt`8}Zd-=V-S5$f6b4IFsi{k_-4 zp;MPBH`)sw*$R5RmuD6GmU4!ZpR-beV4zf$bs?DvC>SO^%baTaNCR6=P)MbrN{u<* zo*oBE`MJuQmCCrJ3d#`9C`Fg*Uh>QXws;A9#E;m8@ zeG;e&jrRs&8ttSHjbPBdZS!>02B# zW8!&Vn9scy!ArpR7PSVpB`uQCl8OdPPak$lE^c@LqAMJz&x=6Gi<(yEK}Qi;RgA}o zd~|jG9Qfz8@wwirTvTsh9@P@xBM7|Oruwc*KscejDLA*14AaoAYvSG1jd!Ilw9jfz zMQ6F`3&vn0L@%+zLFh8i>yn~Lc2mY4AY(5Iv2%v%%jyi*7t75DR;nlmaTq_7gjag->I2_zi)@*Lv%I2NdR5>{`KVKk9vS^M`Wx=L5gq-5R zPp;UEhz4mC-Zy5>9)C`>r6+v);ARrl+-{n|;V5`=3dQy@Je~L%pcm?!e@n_D$g@s} zgW9wWS8(h^GMy})#*_h!)gOEgi5%1TZD@brg`r*t906d0ynKM?GP0k;+WJf|8<} z%h1_~OroMn28QoSME~>XV9H2$*d8e{^J1Fv(L+WKAY!PuL^KdL)c&2u;5GMil)kzW zY1+b3n)psaY|NeHRKI|2w}P)*DAcRTjL_Lgv@@dOh3-30BkcR`@Gh)(V;sFDXVMr) zQ0}0tnoDJ8uB!vgYnn2n_fQg8&Ms{Svus!S1Ub2#q}Z{lb~;$pJ^0P-dK?CaI9$)LTPg3;2TBdDA<3|T1oE~*9J?a?IFLe~XCSOc8r$WpnBlB#+aq@ASU>&0ejZsfZ*);0x+`*+=@6s3ICs(p8oIYvmqDd0gu1%m1K`D^HB5GXll zueHzm7=dT)qA%E{O*K>^QFAty>`hZ9Q8sD2sxABK;X+7iVn?9)?C6BjNx>YmIP+(d zE974uPr}^l`P04kU6@Wtvd@SUID$p&Em3~NHCVg)LMmq2J$>2KnrAUK>Y82n%rdJZ61W@LSJp23wa`?=< zX_U|Fwb##&?#a;g=p;8r?SCm)!IWALZ3?0E68{*a4PV#Lq*KWL@@E+jWvwf#?cEej znQonxtA~j>xk=q4C}2MU!%NkQlVbA<*yFh$WpiA)x6iX-G;QzSec$+qJ~RtZWu$3< z^-)ESfZB1<>~NeR50KY8K*u-d#lU2cj$vdtLL+-8(Z==e(p}$~$Qc-4;{NJfZc`&1 z6mFyCp%KIF1elR1BPwUZ3uDC>(_1W2l{ol>GOD$>;>kxG&iybH)0(XgJ}ZFa-`9Sn z-D>2AGz%M-@2{IB@8g0RIUGVT{NKre+!gQwbe#7+YaNVYBHEFz-OW+&TB>?Pt-Tu& z%~LitWX@S-A(!XPdv@kORB<>50s-L2;CJD9pK?;~Lj{`{!Jx)oK#S!yyTsQzgYEZy z+L7g%VR!Z)5w#z7xK2oHoPB=wX36q42UEfLUJN1}96RInFdUaMZD@TFNh1oXC`cJ% zeHPbO!N^V;Fr(19tb2aA!?1JCsyO(at%5L}&8PjZ8UZJ@G8iybqR}GnVnse(UNR6~$P;gz7 z&#C)^1rFU&P#)lYc|Hr@_r>2LN3*4mOT>EtLKi23(@=K`5}{^)_cPGgztZ!K0Pc&3 z-x3{y{CGEX?ru!in=J95OM^a+Dp3W0**e8~4<=+G8}XaNInXu+LS?WMBfFA=LCM>- z+R@}D2i6Z5A&QrpwT#~F4gB%P*RSSjzk|=J?~{?U(lXci9pOoZtrF#*(PNhbU(3N6 zf6x0Nc=7pp$^U;hp1uRFz>2_Ud!Sbo+Jyi< z@4~ZIHJ*A;9gMhPcT5c&1Z6FqoKw$PRbv4XU-t!TO}ly9>KnAJrvzDO>4ETzSqa+Z|5v??N+56j^yvxqw~aaQ^I7=$>#3oK&qKLW2gQXTJBWU} zf@qsU5Rm`=tyv1!75M(+#?Q0x5iRR|>BIl}u!kxFI{Q4^RCZEw=$KM_pTL3MGZ?o3 zzi73u0k7B6OZ(T z&MePh{Fj2uNFj_zL$;F&{$H&{3L#xD8%XVl=3s(hibw7&qv%Jd^QfnZ08xL~4rDhd z?hZ~_snhR9s9DxkkLVynfedyQl4u&z5=WH@#VUEewNn9d_aCgavHp4$@PjHf3AV6C zZ~$7O0yQT7vt~tPHb>UMxM>SR1JO#STqoJ@*$v%NN{SA?_C`_vwgSPOz&OtPJ!gF` zf{Cev_yF*JHol}4-1eH3f+fdXl{Ntg*L5ktu+V^d%_G))XlB1= zae&$Ox);^e3TU68=V1?7Q}SGWaRqd*)~v58&*=Snk2TuwLZ~O|qagB%!HL4dHaBa6 zWS#k=U&$QvB^2I4qwj+&Nu}^5dqFC%fHg?xKA8vtC;$o3eKu2TWH9Dz>bBfpNz#U> zMpA+DS)7u0G`bvPw45Z(5Uw%n9mrMYIk^N7{qcQQa_Q>gQeqSV{CqSRNq1-Mqn|CD z$f9Bz0~fB?1X^D6eU~aBJTpeO3z$zdfn z$*@uJC7bs1F~!&v5!xchZNA$@LQwLt_eO>WOhI;$;bHl0uU*&?0YLKI7ZP88T==m* zdUhq=Jq$w>>I^2@p`_pM`1LhQvOI!=nVeYu+s}gp@cnfaVC(gHMb~*0>-gt=4lT}+ zK`{>k2U8%8Vv*T?`MxIRzx?n2;mv^H!7I{s_JGiUBpB^6s&0cBLV8ABun5xu z4&K>_a%Mg>@b8G`HdYrjqBLvWC}Fgxr~$bv5NOVF2Nq6SEY)=)Mf^I@%md9Z4dytT zzZ!5uC<6ziG@@ViI6!<#9+Zf{yU79T>9JAGjK4X^?YL~v{N;E5{m-2=tb?9&25{!y z7AI7DZN8`*Rr~X^5`!~A@K+&>5x>^SYn<5#mNUnma;9mEVYD&pbNJ^SP?V}sqJmfd zdkB#tVnt`kB&xq5^p1eevw~+U3T>6_TZVF0kmC2O!Cg+AWWZUCa!>@)j1c8Os_9D( z!57y_Y#@p%_N!FyL}q7k9)T|DSJI}Sn}2D|G)O12-xCU=e5a?hqu0B{P4(H*Ij-## z3Q-b$#Uhgf*?_s4$NBW<5P@UB;a-fB(+WAH0H1H~lwP+2TnF2xnWP44y$+6~dz_u@ zO_zRM*7v=t`zGz`1V7$Y3S8+KzRTMs=P3n;Wtd5 z19Q!N5A<#xYR2dcHKlqjmcXsv;^s20vyXpQPy2VbO<@^1)$rVQ!U@|gBoo;b2fwe+ zr<=)&s-g8_V%>JD`%O@et?i5Ll99eye`Z>f{mimG(H<0-v897v30|MEp-HdBgGc*; z27nIwJKiKylNi;t6GbOzmeaDST2D%T&0hB3R+&7}0JR75) zCzQO|#-5+U;B!`0($tx~64yP-W_!O}{S!pMN*)g74%=!KNxWP&EJ(vFG7tW~?8kZ} z?>g*H;#aV3J7f^+x-7riAe{rQD1V`Irq47N+iGFZDbEQZ`;S$Yo}CS|c?u=Rm0yM36gc z+Ku@5^)9E%fee8*_`0qt-KMi#8AeV6OpK7i$Y%NPy7`=>t?=SZ8PA!jPOy`%^$BnjZ1oQJ}{p?!g)WhcY`2GG&m)g%n;OrCd^Lg)FUM`;7 zf$*+HWXFcmDjlaYH{wuL>0mgQ3+2=upfaB3FTCzqfj1PWMhu}m zM9$x5;lA%>` zRbUfodY=V1c4Fg@LKG)AlaqswK%)`}(R(6=9Bp%&S*F~wIqzp_-MKEgwj?YA?}u~& zH^CCIAH`eG4U7%syRknD`2twL#H_P3##C}WM4tjCRCQSl3W31-Y>hqVd*%v64o=5g zz@z7k1ZI-9p{c%{`HDF)Lha+jg(llE;SP*4;yk4-Mok1umSZfu+ zbo!gMHzr020Ib9Ixxc_6%(MJwQ3;A2eFhk4fWhnDOjI}oD$BOGsdDcv1b$bry`C+) zgzQF;%7Ve5GDWKzBb1y;=Uso!B?^2^PYX6&W4(U^4z{_d^KJB%G=Z!D?fIyBu4Yju z`c1LQvOTVH8>#oX4ezC&LB1hIw2t=(a`b1@!Kw-_?tbMk3cN=$Kqeg_@uitDmXJO% zi0bvwGZD;b-!}uSitNM+_MWVrO6o>YA&l`@ubgxPowEd!IfU%EV~t(=j}Q`nR43=? z>EiF&dIt*~DER`aN9Xe_0gkQA=CeKI>(2XS`A0y(zk*21u=Zb$T@o&EY-Ow)nmHhU z^QFEOSH>+LN(tI1yATQ}9WOl^=;x-}cP+f~u~pSjV9nwmCom_Xns=upMI+R&gx{49 zD;N2ze6Bx3XV{h0tz@9}&Ut=6&&%HxM5W)IxbBOfw5v6${*7olRt(w-$}jdz08Viq z_<0tV?)XxIXs}{T^%n}{{dwM!boFii`FTqder?*DpS39wK6_6nEox9Zi$A{;c$M5F zjW6c^{h$BmKVul7mXNa zg5|@QeJFW*qsEj6$gz$&@IFrkD>0)+d>4Nhhiu%Sw2n(L_516f2HZGhn*OH|r9 z9YBnJ7pn$5&>LU(m$JB5hi@Y|Y2#3uL0wXR-UvwpMHD~IpA><5?h1IL|E%dPG8&bP z_mg@J?ys9uRmFEFx=aVW_Qu!u-Ptox2-H-$%Yi&Ep^XUYVv)n_#;H;JA2QBHT`XnS z$iJyKRMe>iWd!9NWgrGvj{F?uHa8&;W!GQ#jRYP4*)-BgMeqM@o@)iwsKA@bLPkGG z$*?-W`P?o!*4Gi><~}4f)5v)nUl_qk|853mXV&e8HKQa{Qt-fxRHD0EwyzQ@1*~$C zE+KxNMa^BQLurx+lcf*Wo+uYcH8G6~Rv%$d?gqy7E__{gQHAzPzA6KFbknH@?qc1QW6m3~bZJ-C0eQgjKRnl*FC)@p2_WJX8kF-GEw&T6Y@9oz{IZm)fAmyVYn2B0!dr{JO8= zCMQtZ&ZV$m+ra3|LOX>N7q`8@4xw?+uHkdx=S&YwqiovE5*_#S4`7Q)f^q!@=+y1D7A??M6dRn@XIE$;^l67|ErqS$V zaGJ7na|}%I_fucJfA8=+TuQu#J|8JX8QPLLx*6I*a;AgTMqf`*%W{-UTK@*fsK-4N z;AWj!WMF?5#zh`A`Lt6Y!>+2R*NI6b{nY1qDW|LbvNDl_C>b=Nf&``Z%O=bXCS>ka z+l)xSCSJ)6k3gz;xs(*lYhb@E*Jw2LoR{NZ*GM*i9$Yg-C$palf;D@y0rA#dH8twd z%!XOQx&K)Az7P~qaE|j|Mq|U^Pj&CtB~TJHikmS zoXN&)RT2LjGxDizA6ZSxEHTl>!Gx8>@oT`@TsLS_?=viwv#H2nI-x8sZQP z7`7Id#=%|CHc;Kb=t##J^!)E=9o}f#OgV~eg&8{e2qMsIgr#$LfZUnAI;#C1XgQ_5 zJ6L52O^uo!++?(&kT)3-1!{%9&vC4Of3Gh@Q?9zJyqclX2$c@5(TSrexhNi)hYq`t zQHVDzq{XP-R8m8u+7yFKhz=8l9-8(urS!vCG+{YZHwZhZaYB+Ha&6i{;&($}onx&n z5kaAsGDHEPD68KMKy!0Ljtvfuqb~jk2V`o(RpPbPJnF`rDcP@*ee~~0C%jzyOHJ9F zR?5iFKf%Bl;zsX6!riTJw9t)_bFwMT@~;jiZRkB&*a{aAH`*#9{jMD-n|g4nU%=<^ zS*7bgLJlW;4nxQo`z&${Hk}a^Kv$5fGnt}Wkp`qdY@^PfRZ;kE4&(zPyMf)@QBODa z;F5_b1)dnd=RJaaot?`RuQ~ee`@apA*pX7$KvYAmt23Q&FnNr@XPa|W^>RxB@Lewh z_uX=p8K6px?#$H0VQXlceo+Xr_P(bc^7CAg^PO{&{>S$XE3|yM2~l_DT?{<0=pije z{K;o$bLrQY6il{ki|mf68}=ba*dZ#`HH^pt?%MeLEPUVH12x?XvO8$yxyTC4NyivM z>)KEGh$dPR?yO)2T-~sp7W(UiME{*tuf+Es7ZWtOi#eG@yQ!LcEwkesGwH_bduAdrunJh+rko@`EGzPG&s#9Lyp5(SU#+H6qi17Om`5VtbyYYAnkC z8yxa8n9}RG=h2Lplut4RY^dL0bbdgjSm*MiMAPW_RWgk6D^Pc}?CZYOtE1r4{(cO; z%Ls(d;JgOo)w_Yt)B&H9NV)G5n__3hT~HFb76B2@YOtRe$IKJ!#kcGwsu6aKfiDS( ztW7EmlVSE`x_R~fBGZA0J_R#=QSwGqEd8#9_f(d{!a7)$^aX^ZW;>{@1~wKVn1}r8>RNSP_nMzB@~FD zqH`NV9tQL<1SJv$Z6S{&Dypue0U@K@!(G2I?Jq-%;=8V8he_L{tfOq$RLUUoT14-e%{p2cl$#~y$JMc+|ZKuSUr;`-@a7)cvCm=UM|#q$tc`En5N{ii&h zn-LX&$N?KIb`#G~MQrabA1^geK}qo?bp`lt9d~TXM!c#BIxw@!2DFxI?NSqh+{=kV zT9%QM`&xII2@`2CP~hoxS?|_xC{Z3@B-T}w-*yst=sqKAcE#4+F!jlS`(7K@#h}{6RJ_*mx<$gwknTOcIs7z>5S0lJCJcBWhL`E zw=pNz*J}s`tlJ1G*M<}B3+`E6yJMBhVQw%RP!9jl0d*_NsiZAX=XRnsjwf)H? zP_^aX{8qeT;15X(pBwXemqnR;H;O~52BkS%LBw*kKm-hlS(*;LB zU4yf9-!CEI*Vn`jCgL9W<1@`9epW1$8+B*)LaFCe6Tk0`&Q|px4aZFt%IOR!ri0e% z(3G!v7sGb1!Npe@o#~eeDi-7q+-+rS>wq@iVT;U_dXM<7|xd3p*HgpuxY!9Kd9z>qJFPYb~^x1q}p5hs2Rv@!yjc#X`H3P z0+wxE`gk|F+p!%q%IIh_5nWOYCpptuUUL>bg|tfQ`uqDaEX?4;!A&PgM?*+>{5g5L z>rJfJ@@Hz!5PvvDV6^&#`F3&*n(8n&3ufCn%l<>Sz0Wp5n%{l0tNT4x?rCbiULbm;|i8 z8=ucp!JZ8S3lKpH-8_M{tXGwv@7e-4k0{7RAy%+iFN)j9ta5C@(%Rs(z zu10kCyD>$xfQ&&U4d}qYcjR5WhDmvXu`~R8j@E3}yY^&RZtN1Df5Nh<)*ex4 ztIh%x%w+;IYm0fbg$m9MKwNCgy3#pNl8Z-c06Q9`c@yiik#81yb*X|d0HIpEyi20;MgvZ93& z*PYemH|0o&p1aQnK^8Zhi( z*4rjqmLtc39stgLS#36p;85huO2%wt{4i=a9FbBjL(3d9iIsWp0TBA(?t$~Fv)Syb z%zXEr4y&rPleaIn&qZCPr6+okVXj^SKiDuLXG=6?tSf zIuaO&N<_{2yUHAKfM-)=Z8|rbLFOa5wcfq8XYzP7{meCk>}N9z`;bdQtm&3%M5d-? z5@)pGd)I{aJOlq~QmodRL9&y(3`nAKSmmcww6}(>=bKJs`AL$AG+Rpu`PNSITa~)ZPiiw}|D=L2W7n6{6FU-%Gxgr(}FUfLe zRYdtmmnMt7=8CQF%+1+Hr^i=25nKn*o{dJ6XIHEOMm(eU-U3dq|9 z$N13_l?Yln0(5IZSk7~dQruANz3>0}S@BVvYH=m{P|pHT@)hGY<-o;oa{@cp@=TtY zP8b-cfO~G-pIz^4Nb(v14eBJGs$_CAk&8w>{7x!15|q&xi>c zKm4D+N02>VGI&3_9)bWbv}i#MuO663s5=5Grxbr36^hDryh`t>+0ym)&bb$`A#Cn}Z<*b=DsLFS{Wv%1Oidvu_o zdI3C^cSvv8T9f`)-k_ZVB5UXZCnL6$r3PGyb!m-V~I^rtYh&@$&Q$ zFb)J>uYt7}ngHuHMg<&80$ld3vX%-aYn{@n?He<>$v&SOnHw+p>zdKs%~>`oL$zCt zOZwhe$Jxahb}yY@q#be^JeD1Gty%9d;^87xi2!wSwlTz`YH=pOonYV!4G%vbI){CI zy+%o5kS<@J`+|UuCv~!~;KubD#WqDnYu@`33+#91$)c_jILik(uV6dT+KEeL8s;AI zUsgaXhF|5t1nNGVnC}!L2;kReeRB;kH;>2rDp`nu{j(RK@m+o1Q=_Weag(_huAqeO z^H~5IUYc`2rdBMup6BRfEk-*Mpz_Miz|}j3VuAh9y^j4p=UkG?Fln2gePkF;wDsMQ z1YMr|SV<#P-Kl#&)x53-;#AVm!cv43L&GXsm8DhHdW57pu zn(`+^WObJKTdPDaHj}pvk!|1}C>JD9@3|d5YcGG2qqHt6Yo9nxlbd( z=RNUyT|n4HhdpEgNjZZ1@zz?iq#4kevbJO*z0UaQ2H1#_fsD?x^!=H2txr6*1^$2g z?N!*UDbeFRAG6$cYYY74x378+pLIu?hf=D0h$afTVejsIt_ zdN}*mZr<2v(W`;PN(ms;RCluXOd$I4SU)4s1sK?kMQAgERc$=$X#-l6uVp7ra#OG800C%xmqwrlQ-+7`#qI~O7u1nNi;RPw!_YK zB_dvT)~G&REOPH}R#-mpvVj$-z3MPVBS62WX8~*-jDyT!i_(BPK+G+Tq52STFTR8B z5_yU(U0Uk{;corlAwNG;-sJlnv>;pOz6U2+dnH0^$m8r&nsqlqxmj%Q#FytDC^3rd z@!Pu+Zu{V`wdz2POqPDdd`)R7EorF17$Cr2A_ktxL@`=hnpm+`ef0914;_~GJ@KU` z?94>A#)H~A^pMV36P9+Sq!4l(P*Wtt+BmUruy4WXc}~(bU7m@ACiAVGvIU#4C0Yoy z!fV@LA)xhr+(BGL429PXGM)Els)<_9AdiMrN)u_{#cH}j8BwhA0{0Q69;bS>3uFjz zgsZ2DJ0eiFdl&?YrohDZczB@7?3rZH?|bSU7=-b#Gwyj-cZ!89;LL+}iDY`I5;i}q zva~-{5E?*t9j&iwTt*ZFM{F1M%tMDg&psUrN+Q~e@v?<?em2&2`=jeLS1{2}nkF zRkq1oflSGL&vIhQWJO>@C3>&|K&@|sEpy-RiAy%QeqU>{!ZwvaD^05B5D4VlSj=Ym zY|+Yb)HC+GO05AuS5`Dm?7B7E<5*$0!Zn_1j1BdC z*u$I&2jyW~3Cq%~n-qrhv$otOH5L3QC)_Ap=X-DJLtrfU`SZrrht3~@=eZL z6`2xBY6(A>nEd+nK}{!>LcrC!`?g$~6`s$BaZ8U0O^Go{SM9y-&uaMfzC|QT@84TF z2>tjm@bkm-mn3+v$|!<(p(^5QqyK;Z@8A3$0v82nw5d{}R07nEevPu#i8u#;C<}AO z><)Z_(p|sj5<*wD6>%g5@z7cmkT(VIsEtFgk#!TmLz1GPoRD?W=mqZ2SmBMb2n=?e zf9?+wi6JK5f98Cn8exIb^ly)~6(eev#tc&>cTkf9lqldk<95kq$GUHyNIZM2xA){s z9FXhJNwKm9H)d1KTsRO)3*bQK1yFv!c{1H;jkzwTsl3ViB2cx9iKRNvW?!=<6?_3% zF+KvG7!zmKeg@yFB~Wr!&n4@6LP78Gpyh2Fl|Ytjj&!`ecYN-<{><9i)>>`iV;`B1 z02_5}b1gJG>?n9_ctWEBq-@0u^1Vl%gkuWtU`l8yi;(Kf4H z{S`sh96ooFRVy;hy^@&}173;w%37<{2O}`L1v*nKU&%5e!0Ee=S-!WY0#2nr=MaY7aMPuO`z7I7ZXwzKvu+?WeWbja@Vk7)z}feRcmY$sv?xmZz{ z??rMAD5jTjn(KQ_pX-OocGI&Ll!Z^Oq?u%T{u=6K+e;2|0=A=B>Y@0aD9H;P&v2y4 zT=Qoi83&Z~4k(~j@~-_|))?Nh>RzVsjradE?s-DIn$S*-ZRj%cCunDMqk+WAcQ4D~h2xg~rKhyHu+0f8DMRmK;7e`bOOSX%_5A8Shzy@#MNNqG&+u$R2l zHx`7uLUV5#%{3B`S%4chd7Xr-iU*lhA=<)$(DmPn`>y8N3C7i#A}PM%5bdRX25^x; z$&#;bfNBOneGpveQ?YvM8KJT2X*}WHQ4(^1dyuTvzvq&3n377pV24~r(;XDR)EQ`U`T5P96h(CB`#aI{Ob2cTO)eG_tCMGVcWvZ2W~CwN;=Fy zsdL*IqXI_=6j+;X@av41fDV-mY_W1rW;+B0Ptu^$U)uXspyE#~^b@!n=tJ49%Yksf z@^>jCay7uskPJP3sAAc`!_n_U4?sb7%M!BHv!ZuutJ37N;dyH_`e6MQ2z6fo3iLur z6krB{EN5+$%>$i11!ARIF9y@4+znLfS0*vRrO37bS;Vb1R!y zkk@@$rep@>+4avLw&{cxu|c*Qe@(4-zLEZ8Ys` zFDFTCTB|a@8zpmdef7@Cj>0Jfq={lXGCiP#VA#)Kc@GM-J*$b_Hw4zBbwD7VdhD%1 zNk{uz>{IUr_~%?DdoW<+`^}ToJ7G{B^*}Ce<)I8mqBF0YC)CgD`OQ$!k`55hpA@D@wX4>w3c;z}xqp z1qK1m8zGB!)>}&;KdZo_Syc8&@t@acb8uI8lO#^BfMie4>#JWnOtBODLy3YxP6LpZ zL_QLdc$_7SS(5qf157g{DafeCR9mjL)~YdfXQHK~agz=i4O&O~%t&3!KK)TuMVPKz zJCRWW>B-g6Y5xk_KuSe zv%H^J6z!)p(iLO|J;pB+xodERo>r^EJDHVnE`ob?WC2>(T z$<@@S4AvDmR&++~WdQZ}K63FhL%+d_Pis-6gzwRPd-po?5xnnfo`90G=&1LYnW|tC zxO-Y`Q@^Nt$Wmbbx4(RqhTr(qX|byc-PH>3({N+&s%PAKL;r98{P(|4vAPWWI_wmb zQwK;j_h=&`P*W{)NyFQY-A?ymti{!3!xZ4l*vlF+e%=VO^Qi}tEs(?T)D9=K{PITI zA?>|3V9t#g=OAm1dQ|JFaSj7&^R zw9jIO*DFDIN)UM8tbXud&yo&gqOx2cj`x~6w4M$=fE!93(A?PKs={6>nc81Bn#$PP z@CwsQl^?Ul*lNbqSzp)f&9MvfRE5K*(slKEceHElXPq^(HYm1dO%0LRd|nJ_{89p^ zRe+GP5q+1EsDwwcLoP_{v~L**RWWuz@2xAzRgirI69m*?xmiM00BB2pK_%PK4k!%- zRxbTs)LOGlrw(hJGBJSit#93HnF-AMGqG#xD*t{L!(6&*DB0OZ<6qU8&4EBYtnZEo z%XgByE{|yBu`lFdgJMzu=_pkZsuFj)6Q9j|0Y6891p&26Nt7&@aBx%M^`eYuv;hz0 ziQwU~%17QkC0R*$i&m^8aF|dhz+s@AsMxcsfjTPjHW08CC?J++M zB`hEHG*Cjx^=}83t}4_}B1So6Vt#g!KH=mjf;}>d%eC=wG|R5;nPjSd4(ZMN)o|eu zFr^nJSP(9-qm{x|i_`p=KuDkL_}Sw~6zH6D*yXLhpKk-|6yF=7_7h2}!>&j8T|@r* zVATbO5FwGkbx9Cu-+B#lO7#atgB{!ayhuI~PrP2E)=m)~VbbPIAZ2VjiFNJq@_;|j z{pt<&_ty*IS@oFGyfVve29M{3h;rH0kHWnhJ8iI_7y(M5?|b66A76DHex>&0pVF}J zMJelCi&YgplcUHu&Mn%;=tC9uP0LIs3V9|pTFnAvczz+fi<;$Z;?>< zO!e^4;_=p{J#mrcw$&FYV7(PXYrm+1+&kI&y|Ro}cCyzXg3Ndu#*o0hIPA=X(cBxi z5)HfNcy_^)IAyZvWOmaA*JqvLuqzh*U;p#p{9a{1FDjVr6ziHrm>m62J2pO-4%4O1 z+nz^{=tF&NYsC^ZhIvS@-5SuF?4)#P$6*-_yxcVoYh1OFqglhQiKjcup3XkMWHCCT zdzi_EwU(G^0^~Vofeo~#DR&PEh_fsmz|pK1bt4_AX_od@W#APSbq{7C$~tbGq$nRi z-)xhGvXww6wSJZrtAWlxBG$#v|JkIrHzglFEX>f+1>E0ljz+L19_*h%^P`N}1aK26 zt)76nfJFf#oVe$6!_PbvRH(h(r42*4)F{p6Vm94j2HE8&C=e;3YwdUy>v_4dV%Fi< zQv$Tsj%7fjr1TeGhA$k#lu<1w{YhvZskjd`4X>ae#>C^iX; zYmBlVEV-KA8}we5ynH=v*esK;*^PRHhN{RYQT2V0P1JMha%}-loWWs9GsyV6;&+X4 z;vx*9QDt*iCOzTTasxP?iE+HH!31gJ5$9|#nzfI8U;Wacr99P6IL^$hfj1G9ub2^? zpIOo&1RKHqOl`Xw%`*m2%>Jz*Cw7^M4fG@s3~A$A^z!N7GmqpdQ4${8i#ENFb?-_9 zeGYO#n>}yp=?H8YCed@>F)ejg9kYV@af2stMZ=P_P;P6pO-P~oeCES<{LC6aRl7}i zIXQ-s5}&26BxL|wu2w#q_oI=q)`x(d*+g3)8Vp7zAeW2~7@ykI){EyOE;61cE1Uvu zoL7RfaBK+NANKI1_I#@te8BidKA6v_eR>EZNlLaYN4ciwWRmCCvNQ40GaBjvfI+q6 zW1MR25Sh|~K#hRe_s7^_mX_DS1$one0WCN=DUcfB~Z zcS@7yGust^|9%7;#;@xP=Sm;J$j7xxH8IXyjEc)~roNWxi|)ZVgAzu`V_dC+$sp8O z>2tsT`#=4s-$NIe539n|L#+QWvK1hNvKnNn>0+0qWHrkP*m?j1yW9nGS^zk9Q_TSP zpb7?aEfF6YHPvn({jx!V*<}FuyzjFCdP8)LG>1wpw>5`(KxrHRF_$~DrSG-ZG=Q}x z@2j0e#{i1~{Ch`pWy@Oh1|*@<2;j!lI8qznAqNq7X{UVRJ?r;XdT9gtcpRv40K%NB z+!9K5QHM_yF!d0q)b4*;Lm{Hx*Hd$E@btV^ZSVTK$HSO__s=p3p4{pkcubY!dp(sA zr2N1iKExiR;zQA!f*I|3SKlV{#W{F5hBTC!a3*amEJf4*+JY=hRgVgZHkpwhLcC3YUwSWim{7gzP zHetLIg)PaJfuf$i{{LyDHWQj_mwwj=bdUB(2DFFv`JBTbS(B-C8BDTom5*)BHbyTk ze*wewAPN>idvE>mdj!u7TqmxC`EU!JzO8v2dQf&GS}?e&B*i2Hn|2r7pv7mhLbX?7 zL>yo)7QJcrQ#TJvxmp7j|D4v3C_Vg|1h@A2M?zpX6^cw6@N=u#ekVM27`l$8^#iRj zO7hxS&(^TIzr~-g!?*$E+`~O0P%4>CM61C{wf6hzJFsRyq@xc#*XqO4da5%7XCkF# zCayx9UIoc*a2VPU01PJ3x?jL$|-3P_> z$H&oYh!X#v->aR9;P|X-+;ZPBNk;OL@9=Y5Nf9L(wWKfsTrbZ#DA-xm5hk9kuu~|m z5KlcZkueUcSvp$7`#z-0_8AyQN;D-~>$2G;(TVCm@$)PU+w5MIN>omgVjM9iC(XKA zn{a%!TH-u!z&5ugxLTcOg*pqUw2h_NHDXfCC`ihY=E}&`%A2Q!vl1jAUm1? zN}_dHR!(g=1YWPNDrufZLm%=DV~o-Va?u6&W*SBxJYX&H5s2MDbs;loH8BzH5^n`M zdmr`BLzN34H395YEF47P1olztGq3}my8m^UPyHu>6J%Sf&rLwy%TSW0gh>GAv53yk zJd+FqZBCQ0XGY~ zya%yNUf0|v(i!X5PGEl)0b_HcskPc$jmE&fXX#TdIr3Cf>X-pe{WU|#b?ZQlAX|hA zq_nl`o0J_BTuwKrI}} zptWjC$?PWA{TQRZ-@q|IV3lhFYm-q=(A#^_8+$}UPE}Geux&Rvfmj5soXE=tP{t0* z)z+iOBlppD^M7^UdPX@n)|v>&D|{`iISV|Uex!gaW!i8|!t}1FS?7MswJDFgH+nY8 zv^MW6c9fI=VHul%L-@dz>}Vdx@#`8tG)9NAGAmus@4EF&S9z z1uU+$zDcfN2V%FHtlG09Z=mnM{N#zFw8Oz#Nnhm!RS!DWXS11g0rS0T-a<+?;y>GW zqV0yy9}|1#Nfu#OL`LxfqLLXW3;o zC{fX~-uFiAKu*SYYQuX0N;keTDebksT!l2@lpCrzWSvuXXTf4M@@3~WosG*?#SOGg zGUZtv@y~Cu-+OM&RuBummewE>q?(wVXN@vOG+eDy)};MdmW~0stB8SiOyZy`CV82b zoB$D&G|+ooYgb96tI2a8X`6vM9iO(I>6xtoWW~5=65*+*b8ebCEbY9c&8X)AxMG)% zb2vS3O>&IS!#mwzoOZ~me!qp5XI_oZqzJOc&-27RN(UD`WNX@+b$)9LHOX{59X?u= zCY^~o>B$kM-r-M}1+e7s{7)Vp%133Y?X_otI?Ol^%*W$bR`JPxi>pWfy zxCTAxGf2SRi~T35XFjfhmmJK>PIL_3PwNlKvanbfnDgu$z010l715!|!q?T&|NS5T z_IC%CYRocorXV~Qhv*FXjJg4UFF|_oF(_eZEL~*XfIt*?ca@y2W5s>^Qvt}#0OXalg9dI3%S8ly{-MsMo-o@l{oTV?{0 zhb5TO%|`^@Z+dt~$QJ04{k`8e7pL^?c6W(KaCo|{^f9WE@U8JB`5Zr=Tbu1j9RQTn zWX}2UkQaNb>wGpH`t!{`cxq}j;`TE>-Qe4$vUonTlAnAp#RBK&9I%g1dq}=Rrp}tp z%+vrHjRY5XuS!RYT90OEf{UWchTpDZAK8-`lSCE}cEjv_-(>x?p?eQ9V9|cLIkG$kCQ)pe=^A#t?WLC_bxwd1ozKq9oLZmaE}3>+}gdSmhh z6pMF_QBni?P#Y&A3Jtr zGR9_IqoycdOb|naSbq^Xvl35Pn*TS3s za2i}mI3-@=G%}LR;&+iul+US=3^X3UsW^gyrPTlFiv zt|2XXN0av4mAC1MpnDe^U1x@Xw#l*@Sfz8&a|@h2(h0|n%KV&cD4cUEVccM&=$s2* zUz}`u3Ew4vax?4fHTilCtPOlV6aU9wek+3E$Jcc*W?24xbnaiTQLOsj^wRHQ;QJsc z$O)&^%a7VC2keK4i!pk+8M+@}r{a(*>0e(LfxQy2>+v(!=<>K{41T?s2;@f1F39w3 zq&x$dJZxks0N8=S7I7S9O=c%>N~TTPbXy9N|2Pf~<@S;aj1O?kOmq~83V>R7GfrZX zPRSjQpAY0(1okVHZ7l`dcKmBqda}Eq~J58KR9zbcId zCt>n>qk@^sGG@%53DOgQk1?vuT1=`K@Z5C2v9x8W^P0)iagumy_EPuYAv9&-h^&R% zdgEd>kk*qeU9c9JgIvggM@re@n-wFC-csM{$$!t9(hnNAuvbRalU zi@^PvWa|8LuA;<|5?LFIIQo5-=~Q+W5T0{Z5_uR`R3o#K4fN|m z%%9Cb(Z?u;2;u4nncn-JczwM91+3P{mbqN);CAF&O9za-_kmPpXwC(cHaZ_O0|;&R zy>%GvVnNuW(8~Sd{@={Z*z8_`+c|NA2hl7^ zLzLKipQ^mMl^7w&{yR{X6a@!l1SnH*KTiF<05;gvs5G9Q@%KE|oOV~npJ0|i?9NIU7IJcsd0 zId%C|mn2a!oP%z%&bdqgO5Cv}`w{Rh(}6CKnTe@J)&2nVk&?EE8E%NGt~nV**a5Ax z0u*HTU5(0=K7OO*QMtJm?)OwU)VY?vaIUSHPMS=fDY*xL1sP26-aQa#&h3<5 zc8X!rCCxXY97a5FEH|ntzc6whhIDTxgCW8P@x6)=P@}GplM|#lSIKPL?DI!T%%#=U96p$k{2ap;aDUvdmEU5^kUpI z6YqP%R>^LXtvNzrB9Ay^3M;&Ryf8Nt2Zr{<`%U+n+p|-INfN-%&n(>Jb$iRr%`-PL z58hd8mlSC2lkmMiH_%Yh>43-_23x+fP!ih${lEY7-~Ud4t;5xsO@ifqp!Bi^Rg7lZ zu#bo0k}dyPKv@f#fIf=dF6V`I0-HfPv;nJ>@c4|idFT|ATIGC5udGE__+FbOf@90g z%INTJjUcfgitb_MX7_%osa4l`Nd5Sis8z*TY-K*C7?8Mo(n?Mk>F(vIVqE$M}w1M)DM zsoOXE__RWUmSr>?NstyFpQD{KBrnh=L0ZnE#?o|hD1UV^jF$E|kfskmobNER>qO)G zuLn?4t=lsN$c&%92tc5$fXr!fGFt<^f6oxOUPBqTwCM_hmE?jzpr$42zU(uMzYW9C z001BWNkl!)BPg;yk|pHM4X0jua$&ct9V^4&Xi=N_O0Smi21I>4uA*A6vkfX zz$->nAg|)cwqpn{GQwqhSrOK|@-7E~R>T3KaV94__N}$*bNu^kqR&S>YKIiie&(=~ zre=DR3#VsAOOZ|`0)HpzcFf|=@VzwwurWH|%4$t}%zD@^>T5|qZNi>~uk z8_O$gt;GRTJJoP1&?jBI8x6PDuU3#5b~i<)q$~b?uQUSEJfNf1pWwFJQ9qk~=Q&p_ zQ{nGR3T42VI0SpM9^%AtgWRTbrH_X9=ewTTzY>znIvGz-BPP!4jf0TpvKt%+ z!_E67!FII)zV|Jjq$nu4QnKU*)Tn!RCEr6r*QwCzUQ9%M*1~HH4Gufxt*c^AIH+jm z8~gc-y^-bcG$-Zy)mlqR>RNC3Ob%|d z>60rWUGm8O@BjRFziSzzk8wa+pc?utiQ)a70PoDoGM0!Vkw}nnd>$TfGoBVrHJ3Vr z9)kyj7DMR!BBEY?*(o6*49@@pM^865d1Uz+dC#_~6ENJ^herVMb#;|y3s^nC!<@5{ zm~V}Tk6*>gMpS?{m}893^7{miU7A_;qt`ndGPhW0{j(RM*@wLk&~rGbBmtI5bo~rq zOG-@u<}|VOU%il z@@Majx^<}3sYSoN8=00D$`&YEvpnSYlND zz5e{#;P}4gth@KHr2~Ycz{0pLy%W?LD&Omf@>0%Z3E%P?2W2N9ffIZvhKcm-;LZ4)OJDF@@Ir#fGfQ4%<+cnFhBY^9MiEN+zvc ze7M2n+22g~5__+D7PVFjJZJT8G(Y${`~@V`_*vJo7LcbZNwD0Gk8fl1tK(%Rx>q+eJrlV(H^!@1W10t?Xk~C+jFZ?of^7jrhcp8;${G&A!2X~00FnF|HrQp^ zYPN7<39XgyP38$V!|TtLv_NHa_hxuntD8@q^tRTpCcq{-t(mPgy-__*!4hI6E3}|Y zHO=x}HPET1siDi@yZU8P`ePlSHP}XLJl96vs$A%vxX#u0-~=f_4Res$m`%Qq(9g-OO!s=)w!p3JBr(&ZS>Amqb%e4sp2ueH@0#!Z3L={XizmDYw9&zP0(}r*Z=%CzxO`GZUA#l zHCFC=AnukOdI|jz7_3qDAvO1cz1*kdDE_lOS7js4JiVBEZ#60K*+^<&(}M#Epa5h> zsX(m`5qOgpTQAlPtrm%2azq>}#s|RJkKi!IDCUe31zy*iyDV0p%q^vT+|=V34wBuuIjMhq3Z=E*TXLv-7PI zQcQpjF#u*0kJLfqzk5GSa6Bpx2$i4x9#jd~4vwpIsW2lqO(KY2( z;BIGD&w(oo$2VRvtF;0f>t5CDV~p-*tlTc6@(?%kz1FU&d6(8;ZgGNF03n}y71)l4joK#zG|RSv6=$A z0+&_UNhOs}HyM??FCF@p7}!PSBp!#o1|SfjCf44Itv0j1CzH4y9rv61cTcS~2+p;U zbCJ2pKQRqH{?mmO9DyiXh67K6Hz<_IRP^v~F+aq4CfxhHs*jNb6; z=Z&r%;Ppw+uJ@7d8S1!y-DPj$zi-PQ0TVM&Qq=>p z_v9Jp#LzQ404Ckn%Y)R2SpF<|bQN`POOE6S6z7>fo8zB-IQMOPL?wznRGDg3t?81# zL=ec)()obqvdFaFR|z;Rs09cWU;8+E{xUQcnZWaz#Ettg%8FK>?=#!+K19O!EQ7#n zAo0hqi4n3F1+Qx>cDWyBYTr04tUx8d(E=X<%v(J$2ZKD$foB3W;6B)Dl#chxgJzqS33Nwq!kKUvL_~ z4CaO^5^ngcsj#|tdsPF6!FtfAbr?U(0jNrf)nK+t%e5bg zlsC8kmm6o-2J!|QV)8=IajBsNO^u=#-;tB9z@r4Mh3@B{5a3YoINj}0vIM2*0D#`v zcxyJG04e+~liuhF*w6mkF9jdJs~#F$B=EM?AMhNP?su5$Xfq9bolq9I(*b*3y#R1P z%mB^=N&|DR$y2R3nS3!K3g8ar(3&;CO&!`(fupA8MtlQ@qspcHGY6kF4Uzy|mAzra!h9iCBWfw z_OZ7kNc-HY2nGP<3*1B~v=9R{1|@W2x=o-ESe@WsHgx(#v!b3p9f~_n7@Z792wW;D zyhbm3GQP#*+g>s}ea4pjh=+-iJn8F|o7Ug0cRx?nh6&{;Mt!tK=NAo>iiEWD1d3}O zBLF%iq3)Nx1M~-{wWODJKEG#rcPO#oupDM53y_L_-4 z0|SyK2(-6klG+l;t#d_8f1RspMrCh;Dt#g)Ea^#Os3ddlSOO)T)G5n3OO*(^Md?~n znStJZ(|5blu-2}uRy&OR8bH?y|0H&@ zEZFt@TbB&kwetvHGvwOm;_VS>Hy?zA)$mc$|XfLW6JehPS8${PS z0|kw-Qv2X@)85x)(RCfCn9pb8x;kDOpy}RiG%uZvQ#k|p`DfRoXvcl7L8h|vi+m*A8ZaVl;Pd?f-p_i5)i;1z zH#Okn0T`c>Ei*~c9{V*>tV^y_Ld|$E9s9u!>-(VhSW*RTMz8M!Gff!uZ+qJZpPMHA zEW+0)M(OFsaR#F?2`)DUB_h4KQ4Gaa^J33|={@K#4M_XgqMA^-W`S(2^zrmShGO5* zvIE|N$zB~Dct^e#0!#o8H|?+>fNg58aK=mQ_TvM*heotGQRnM}IJY?ycC< zlbuai5epM+g%UIc*A^Of#b?y}@jcH{X*xo{No70n4q@k{LbW1q#0J~hN9-C)-!iM zE{^T62_;SkZ{M8QJoKrYm0BQrdo)s>^9Nu`k`1zhbWUIpCvm+4r@ip+iPnG|k3(K)P z=G1o zh&{70A2!AGHn^6Bgc(1_v-r1nUjbWB0nDOvpsDTC%v=YR_ z*~7`e=qOvqJj~swMa6rjkM%5I^vu}%V0i{XNy}ba`dL|4?LcU*QHvviDuu=Rj zI?Gs_He@}STbf$%&{_99W0v!K^BXh5!w&l$TZV9eKdL;>%)eJ6;4HXzJLxc)n=>B{ zJpwZdKn|APbk)7DL(0P@05Mu#FA2C&kIZ>gQ1_Ywq+u3FL!{nc*57GLqL$cO4pk~7 ztxCf8QnA66M^bZXK9b`^x%~J5F}Sw$!9kQg2~iDuK7>m*sbtd?FgiHsP*Gr}ex29Q z-FTa);oQ&iNSFl11}DdQ+S}_oC3g<^;(bo}84s~VsXc`_Nl~%J&3ly(!ay?oymfFC z2=L*%Pj|jybc-V~DBb~w-Q$Suqj9vGhxhOqcmnAk<@JlB*LN&fa<%$%1;O9vg$BAuY43SlyMbf`6UIZZh@D2GGf8AI^VBGx1Z~-M z#=7Pru>u=>Mz+gjQu}z&N{H?0z2~XK?R-C;$eVl1Rf=*(B=<(IJrjx@=N&yKa$2TT zXMi^6-jrcQPzvXm8u|}BH!mnJ9!l03`i^thCC$7mPKh8fsW^J;ow7%X*K?^li58lNkvhAT zL@Y{;Zl4XKE8d=pLxhqvpFetOu4XzGTW+MI3twLs=E?%h9>7_Hx%4@9((*eaWrICJ~O`!cYO2S!ol+pi@Q)M{%I4X z`^Ufi{V7u@)}L(>G7kfrmi2 zS;~Nf0mu!jJk+q6bkK6Hk=@x@Q#hG%W%*(|z<$%=2K7r%Hhhe6v}SW0H#7xFlO z4f1We4_KpiWCu#e;jVmWQTavMVFSR)IOXKg2c;B8r+R#7?a>-K&}#^hnj>13_I==R z!vnzF%$WOVb&w+t6CLdU@dI+2m>PKr8&E4K+CiXo9#nR{spqfqXZ<@gqB_Z}`Z)q9 zM}ekyn`!_u(4&S?tY4rkz>Masb+<&xEB9I5$z))gQ`2(=`VF3Z2>G6mO{1Qj*3#(D zUJ(U1v1$HJGfD}{37mENou9vVK)m-@Yi!U>7*OwG#*ZBp50<)7{j-xwfA-af*53hP z2Ko1##R@te+-uezFbf?55A%^M^sxHf|1UJ$NzcQLg^i&8o~z^xT?fik<*WdFH3J@I zkWImSIDQsxjB;b}8G3SO}zGs`m3 z!?_wzAivnag!-96NwBPpEBSazzC8HK4YbfOD&7a>H?E!@AY1!&OB27gCUFNu6>;tE zq#j?E!#fkXP&)c4-8T1?^sE9HPHH2lP5$+37LiuHCR#pQy&MSujVyR*!}-3Ok`JXK zWu3UaFO!;hSH_$iSF*gaWSa)iW4PzdXUXZq@EUM}(b42Yr6$S^Tmt`dF7ybDYfv8O z__a+no$BE|kNuu2H21w9`e7y1I!jz-oS(yl@6ACuR}Dpa*h{VxZ&Q1wDS35+q>~c^ zc?bylOy{$T`aWyM{T*v>+@B-&drOP$>VO-=t+7TU@U!i(2cylk5e@k2bRj9@10Qz{ zCB0(>kk^07Hqn;7nW4c(Q4V&TOOW{a>sEDCF;T(g{k}28I3v@_GyHl_kt#f=ZZSB~ zzBe{|?U-CO5ptJBWh-EONC*>PB5m4{8?DXWir;>Gf&D|XdIAb-ehvJ`A8!(#n}GiH zMJdbYJ!`V|`@ThZG$n4Dc&amll?={I*&F!ry70%(55B555Ny=dI<$m{6?OW>vq>67 z4!+8b%o=C+<-``w-Z7=(O`w|77q;8P9<0wMPsf;T*v!o$)>@E~e| zk}JRgRR6Kg-^?Rg;9j%Jg-u=PZWKHNj!=us*HwW=B~A{ka(#;%ZS5_`n8Wy*N%dke z*eW-RB*QbVA%M~;5%M#QlR@vaP2u=Ow{ec9n0iO~Nv)u;hQAx^4u%a^XysYB@J)dJC zV9t`B4mLhaGK2xGW3L%*E;JmM105b21aqtkowB&ANCs2Z&^_&^Y9HzQo(X^t99tRo zXm!u)-jrPEaBg*9D3(sUvwoK{m^js+IDhJ2YcDn;ryX*#-hlyBS*LD1-gRidq$*q7 zbET_Y8`zRf>7CVeHZ=t*(K6!}fs*eUXxE{OlN{`|i*|Q>^C8swnO15Y{IS9_kkxd* zhuopojGbNra-jl~P2E%J!5@1fVD|}B{K`1MFn#mw03b8ieVoIi%&|50VP_| zIqL!sz|P6n^mTT1L1Bj#yf!qEkqq__gX;BGlYI@M`=ctW#?77FkGW{)=)`UGj`ikg zyk;VH)(ndVCfg&9-@Mt`>+0C|(v;lI21GrVsv3pQgH-_6k`!!Jc$Hvc9p|iyBi?tq z*QRytL}9Na`#o8qnroL2`$?9x-vw$NyF%HP!GM8!xmkISsmd2z#7YnzyEV=~BRris zPSU7#yXVFwHaTU(>Evi5YYn)G(af};qfI6ZDBI(^&;PQaatpYAeO=xl+ z9r(O?=$fQ?|GKN9x;7i!9qW#C@Kgf57JCcLlE5J-(lNpqgF5zG1{fx7*f7h=%e+_Z zh5bmr>72vF{Tdv~=n1QiNi2Jj`F7==&s4Fg9myy_d~nOFoxIa`4Rr5O1Z8Wi+IWzU z$vCg?d+nNhddZ$}S!x!>Ca81l*RQ+g@2q6A@&U&Bo>bNSI(CSyb$lj=1cfYx_v2i% z{3V2|TzN4_{By5lG{$#J#~=bHf&|W1^){XK!tZPpn-A?*pTBc14t3Hw;YGTNa6R%~ zSGGQH>d`;4jYL?Yd&uY3nv5~>VZ-}u9A#qE!si^D@aLv)yIsE$sNScDLtbVketzhJ zw*Y+ZiHwjopWpM6^d~dXc#w8>o-44pG1Sg04(J@v@(}CC8FGWi2Kg&jm=sza13Mw(+K5b>u)W0u)3wY89kaKKI+OV6Zy zgp(l4QV9cLR~*i;8x#v~o$b@si`u{g+6masp<(9THi-rpXVAczR+kAfIbw_I;1Rft zbh$K&g$}d=d>QRXhq#*bZkf%qJgy-*ne{Gp_5#>QrNU2!(Fd>nx61_the19Yo*>8X zB_nGfgq?c$cNHMT9unw7@*is9=Vv3bokUE5(ZR_<;ag)Q4#Qr}oLaW`T3ETOPhwm{ z?>TC?52Dp|A=#+a6E#VbKqS!fu=#$^WTMZ{x*-o4be2&<;BvNg-u9ubL7Qw2*I=Y=VAAkd6MaXk4?_ysrT8 zn+JKQp_s%_JV8BG2pn!c z`bM`2>sNuSroq;Aj~XFwt$$^8kC@pu8-WEQvDc~?1Tv*8blK+_~k24-E{WC9L=0mODgjF!@=DwvX$G z8ycU9o5=xtbni-f)GsCW%?y7JOQXd4hRzfO8(Oy$l9Nm_kn?)nG|35~I#U$;O+?u4 z)H--eFxNbCrXF%ca@Lf9?HWmZp_oJiQGlOWlRUQ_+dP$)zTlqHTtrY+Imo>GTs2l` z`fdaG)Vk+0-^JVmkjqgPS+WK2*Jm*~zK)jNlvC4L!`~5zdw?K-&LFJ3wsHsaS?!(! zHe~ZtudCNNO{s{Ik7ZXevE?^`o~znyY-I)5O|e_mAtxabM^WOqwj!LxGR zj1513-Zc{-SC+%hPBu99i%pdY0=>`V@WX6@Uz3)}B_%;(ya*_*si&Nljr}`07sX_r z_w-JkiJMXn1nml&26S$C5^ksQ0pyOiO*9@dlO!Nx)JLR>fBw2Ue%*^~^VM}iJ+pV8|y71?2xyvLf@q04$D{0Ya^NrH3uVY!=TO1iMoRIRUo07MA zTJGAMfbBt<*BJQm^#!{F1+v`q>_T&|jjtaU`k>|Ymt5JHeCDn5$$(DTkL>Z_!=ar4=pC(EkM z0~?Qx;m^B23v&ZoL1o<>HWGt6RpKW*zBC0CZoIuY<~!0%o|$uMJ?Cd4o9+{|gnYkm z9`sFGKeI>OtSL@%k~{!!K#;%C=QL~A)fl54f#Y^!>peRAa7yjwS0j;{keOoZc@XsL zsspAqWz^}cSds-mfC{y?fE25860LhXPYUGN|`|Z7z1)T%EJ-^0wzv~ZR2TH?$*8x zh}}V;Z&3cQ6M54o`}4U=!)WG?P3*@JAeD$TaBq@D(AaGy{55Izsk;#6YFBCd;md_aASJJ{UjNI@3f2GR(N`g_3B*V;x86RCBTc z0VByXT;6W|xi$!b=bqY2taP*lB?V!=F4#Mu`>W>d2vyk_>$*zrZuo7ZA%--Xy-8Df zfWum}ck|CchYw67gseD&Ng;xzbT`uhj7dHh5CjAeTgk(k4W>=kKAnlfVuH9u-^a{FlSbUr-Kdt69!K{!=Qmaj32vV zRqtfEmn&2{%lxj~z`0i9b1&@NswN-&v)1Om0@Syq-4juhc{xC-OR7SB`jcRD(ranQ zlOQC>PW*h|#o!`KWW~25Vf|nK@r&$r1J9qv`+UAmy(GhHEqc8+2h+U!C{JU=`?kT}VXPYg*nk^ygEF<41iQ{rCU!fB)_c@dPhb zirQjltUGFw5V&y%F8lHKyrDnyR@NYm&^iy-VCen+JQ(m+C0>^Lj?;^quUJ-OK#>K1 zm90t>xD%04B`t4CH`1=n0XXeO|*G1?h!lAE2!-A%U&bbhg^!0>+GI?0YMd269N z^Y`~thufB`l$|Z4>~x^#PS)At;}m>B3sbDOMs)A$?`M;I=gmkix$Or zeR9k4@xd1Flb!Z4swr+R1{i{>0W6n=9y)Zfo^Eb+r2ilI(Yii<6hMwob?GYBgG2m0i5L)1A#;bdmX&jxWsS? z+<-kD0m;vzv3!a^mt1Zwj%&}I*o_CS6YFi6OB{B>2QTy;qjhWzrau$5m%G=L)QGxQRAPS5iPt4Pyxwmg zXNXHpFiy$v1foJxga~>^^OAM1H}#V(&7Pi--N?l2>jH+G4;#jdp2+BO%YnC&5;3g< zSFXNZY@D2*Nj5#GDej2!aR(^9`1+FfbsjlUK#V!eMl0@XZ_ngeHRowii;RlRNDnPK zmBk?dcdv~OGTrw6&qva+ZjPtF=R)o%Hk*AW(!y{4?B~|L+&UpuBuat)lC%YM&YW2b zH6%`S;w76nk|$ZQiqC)*2FF$crNbI~jb5FJE2|0sX0qZIQDg=!GoupuZLqI6VIpnK zv)_lnzFmpN=+c5y@_2vNw|GBQX-SGLANEVZ&U zB#K--x_E@vlW>Yw_+K&AspoOxuK3S(Jlq{)=mypC^+kNPH~UU3Uz%x284Xj&6?D!= zSQ7{)QFbUalhRvfa-NCT)$#t2bojakF5S;P7rwqOy0@&vxEflcM!zbT35-irSx}Kc z`OSc>I_H*V&gVQ%0_OxIlZ1%nKU3`eJ$Jb+?o9gsFB&h59<|RAK>x4uaYvjIv32I9 zN3~W+o61qpx^n}EV=LGwu>bWwpsTro@HB(C+)f7&9?YekE!N4O?a&P!Zo6Dg>~Ri= z%})U!ZEo7_9M5>_5T#EQunn;VmQV~glu9ZQW)hL7G~1}tYGIJQST^=S8Bx!pH#L^5 zRlNWS>c&bgqd;h1(5a5?XG1WcfZ&W-FS@se{jg%PlZ3Ur&-dU4&pmD7#|+RmTJ}J- zHV;6RxvZhgt@3SGpjwv8938oXWN)^%M7`5ii_kJ6G08)gWo8i{YtNA&#L6_iw^TX3 zw3=IzfTe?4(`j?d#*eGK?#B#?OWy`IOWN^bJCg})DygB|;~9tv+P2x9HVzXLr~x4n z4{N=&f4VAEjs7<~0ufnFkloHhkLPD?U+54v7;Gg?Ia7H3Od6nsg4#jKsapjFHyHvb zM%1>g-iNtPqU<$!4KfBu0xvhYS>o06Q5iE)z<`2kw1dD+_*oD@v=-bWT0yVg_1)Zq z9+Y(sPBqdZDkiy+l7~<$0%7i~_t!^P6(`Em-1~9q@ar0o#Y1IdL=%`vvQjus33OPX zh2Ql!$V}^HS{j66@{ha)B|QvjX1nagGC(Fh@l6-&@AX)6+mm*YA^?BRt~J*+&_+~A z97^_2V$r05;$Mq$V$%!0Wb()ogi~d27aNQZtS;#U_A!BYT(hUHdIO~P^mLq7b;G}BZ16GA zcOoLGf@8Jc|6k7=AlU1wvX=3~HVI_eAJ<0N@$Ey-v8ROZ%bqtXC3p8 zaRw{mr@_%IG#zssPf_Rcw6kC9IBO1_K} z)=tV)^)BD{l2)FLqFu?dvrtv5C}LAzrZ79SGWL|Jy(P-S5RT z3$!B5pv19btc{vSr|Q#ILE^f4H9&-{YwR?@MfUJg&7)1X-t7Pgzc}mO!~~eh21=Lc zg{6d#3#FNfrxjupsN*l&2A<+}z)WdvxH#pYjFY^$I$)bNYxfZPTmxl9fvzw>YG=W? z^y6!AC;8Iz7;@C;N=}XrTP(t@<_NJ?O#rp7&)`5jSc?+?BT%ja3(|WkFlVCV3E{L= z&tNTWSfZlS)8LI}VEJIKpIXL~NE{~axke~4pierQhhpK|fwx?R5o;dx1eM&iGuS8# z^XE4vdb#A52eiin2>X>L5|;uZlSB!MpX9!vwS$(G_XWj)qzZ8G&Up6 z&54FrFZL^wQkd?hWF^?v+1bH`avR?dWKBmv>1Q5bRfX}R)jEX$Oao;cwWanh8BcAO zgockCALdK~eOI;YG*R+9$+~;d#ZHhv~Guu+teFq30kIexoZNB(sMcnZZL20i?Opdg zS<7rk6gP`r{YWjmUYar{>)XBe>pp@6!83-vKdWLX43q@UQvZBUIb8`b`#n`MnI75$ zjF(2C8$<`G0BhMTsc;gqG;Oyjabf`Gg%8J|xyxI>iGl8w%%S4Ct1^j){j1_$!-8c z1zp3vN4kGA=j#9^2ROluhhyBXpR=8#E7hh=41kZEGgaa9=QaWE6KCAm3ZU3%gZ7tj zlL7ZNOf2yC>;AkNeiYn?b8(_Wtx@e>wO3b=vO;q#YZaIyIqCA_%Jltr@>S`}r&Y=P?AfOlq4X6j@dvsZH zJTkn|I@V_*bE8XBI_Indat9B*1_JQX{KwE{OB14*xcw$HxO7iE!uh?e3O;_NK(1`Tb(62!^hNT27e8_7<1QXC~><&*oXA@3#Wn!>1 zW7P^Qo1MDv8|@+AB0$wMTznVDqKoTtSgs^6Vy47_X+$SL7XYq_x*C4tgli{&O?}{y z3z0o_*?62)=_$}&328q`*4pKX4L>8X3wZ>?PcC(mhXeL>uN)uEXWGSfhxQN} z9{{LWno-;(xQkEUcg=be%jxvoLU$3peo*ef5} z%Z_WA?%6nHb)@zU2!Nvp5S!BEaPzfdT4xDeNCM46;+m_F>N6=>i0to}y^&!<0&>W5 z(_8NiZ4fLW2p-0D1_xb|)jZQ{9YT;c|N(92LROFf~IFRB_&+4K6P~x0n9fWX}zA9fT>?6+3@Zr_97|* zwXVC?ICO8+AT!wv9nPLS+i>JdP7pu$RKj9H%m6|AP}RDc1p(d@Wpu%L4ce>jTXJmh zXTnLm7+vamxlY`?Nvz=YPHjFXPPU5S3~eU-5>UU7B{x%=cZB6qyQD++XQBq{KuyS? z)X0(-v(R3H{nEY=km#f1^I`J*HDO;UJJI~szhM%{l7o6D#;P7`ZP`T++ea;dhQ?~^|VmR1CL<_ zkd>^y>{zp`XHR_Yjp$K??7epp2uq)DA9W5V;%ByCMUvGC;((6~O4{Ied?Z`3>*s-SjjCQRlRv^a*EOKy;#5YpR;*12 zD3x1_l2ZHLf7A!Sc&tE?QKX=&G}8o^L9}sgvUlm0I-~#hfBC&Qck9I{|&~ zjo0hK`}1LNvOd`?nwUuIvkBCPHcA%z3UG1R($H)dU1*rC?@*5AfEda;tY+R$tvuG#K8Aup-Q=iR4^Zn}scZdJk5-=Jy z_pXO-HJ}1MccTEe-&a{cLX1c-yLKZM1kO>Q+j4}f4z<=BKA)QlvmI?-Q)$Q}lb_d0 zwzO3;}Puwwj?jc8dv!k3tWf zoj_7mx;hd9YU&w`t5@(`Ybgmmg`D^w$3LdP%kxPB$#G?tQI|@uV`9-7pKKLSSiT z6@eJvwP*Y7--(Q299* zpy0ML#qW-K4sNlJ$DkTa*P87CGUFVOMwJu5L67 zq-eM!b8BF9$=!7WQOS=~GeW)`T6=S?8fXjwOiNMkarFZprQg5K9nt0Po8LVgqABc<%XYDNi%-ZCydw{YJzegi5@ z`z!?}oimma^s|Tn-tScagndwM&2^bY05H+(ji!ZAQOdz~gM+4Qp{OJ7JQ~3^W%r&7 ziIhSLb>VlCLb0~rF~8fLfId22?_1st98SG16%^sTfmG$*#5~I~zu)elH=W^J z1AK0YgbSLpe&^a8TFt{*@YxjtAU@|14!B4_v<(AmOPq7&h)#y*-awgC9trG-kC_XB zcZ{))HNQV+3j@5S{SWx8wu%NL`a7cNR4L%}t-<>rUr#LY-+jK{bHnpd|Nhq(B2WSX z@0$g^`Rn|QhumDXFEop2uN<#cpSK8}QKtS#4~(-`-7|UlJ5{D=9hvpOpiSmMIsk>T zA>tTY=z;b=lssi6@J89H#m2}*lrhefI)LI=Im!IwiXW*r{Pvw~7{yeO4HT+7w_A%+ z0|}m)L%c4xOE*q2l2CV{9Wsp%DYvxiS%E_nh&bG6nF5_bm~cH^39_|uJqXvkgU>O& z$ds`|ZIK{)5llcs0USU*Qy)H`NNrcb%2t#3!BvqP&B>2~={oOdZ?!UsP;#Ak+Um3- zUG$kt>q^s^%#`ulMOrhX!zvGNjTPBA1jpzibntc%jT$JtVyf4MLn0 z+V9VDnRa9ZaE8&AW+0SUZq^NYhrJ3)cSfAtAxJA4L1$j)r9~Ihzn5-&hKAgFC078Q z_AKwnj*^oLRpxURBE{C-{&=4Nm0;BF1HU7oBu$0uoM-rtX#QCPZhtRz0$g0Wh=bNX z(TI+HZyn*L2QY~qt)U4;a$6RgTG)}KWSC12kcWtU_}?yCO%HO{&k5e+`7rpRgvLoR zua7P0j?uH5=s>3zTKa1DtZLh?{`_sxWqcyBI(NfFX6&+8{U+}HaPhC?Losz19 z=rOGo+89019~}#*MVBo~;>?ndpZs#=@Z?tu{MhFPs$lMe$%Q`;7E~Ki+TNye3{hza zT=0A|br2nBk0#W8%Rhp}Z8p*%+K@}8W<1P$_x@WmOTIAo)*$YA*L)VOhHC+G`k|ub zvf+ubpF*!vYAR8k4g`@;-fY%$G&R5h-(9K*uC?n@mtvjxWxlDU8WSlUaqfj%U7-6- z&Mf!giGfCN0d<8mfXBi<3l+CBs`EFWlZZnf^smHcXIakTvKp7^1p&JZFw1Wdu8@ z^inzJuPIBwnOB1LygA^emN~!h4_IA^d~bJ8^h|U;Q!!zs=VLaW*HE!!s<7g!auoxJ zy-}Xna<}ER(n%A>+z1hW1I+J2BAFT8LtEoaLeSv{Luf0>9o9t@V>j3XGkb zb1grHuI|mJ<8JCRLP?#2UQrStmmL4Ovuj;T@aDGJ5r03$d5qe}u6;7kd#xC*v@*2tq}52%IN0_EbX z;KsJ#8DgZA_X+C*7V zQb(>ah(xw1RTF+@ui#Nb_WEzWgZ*1E;4`7tEm)BDemI-hmhM6&oS9o@J3%_pBKOvX zBLb9})51%LSGw zKhGXX7m2>!6kR~alZV|nV90gyo~xeIuJb7zjs#M8xG^fGeiouW&*!r8R8-6)`GuQMoQ!*SU|8}Mceq=(GEqvhN*qx>snfl6oKSVuRYjfRq zo{DQ9)t>Nq6)rdr+V1oGB$;P+Yh1k&zZOwNBQ(hGpK}Z%-An65=VB-cP7nlix58_{ zU{>$PeCmC#ifN_LQ|mzQ5tbNbyq{`mH+6@)kn=;~bk~IDO=w*AUEQX8E)>a8Ytb`H zYacE;fKqxfs^34rkLTB;XgM4xT@tW3Io)LmTP3}FAK=f%N_%hocs@vn(d>g6I0RxF zEVsE5MV)CXLgwawliJd1KJPtedA_uU0yQryu<87Ber>tyDG>X8?;3#pz8BA_qf?4ZYRiC72Z0 zm}HDml5^aMy^?Mh0SJ^^D3c2wm~(DikBb3P9O>TqK;Q4ljo+d+4I&tDp?eL|S-PCN z=w+>ncF`cfsB(akX4aSIb7@MRx)9^jL0GD|D3PaRR};@}162al`BKN%1zRU~Ax+V! zBxAmn)oCavwhcm6@G{5UMHdgpRG|6&-4OBM3LDpeeNa4K;7@jS?gF5TJ``GHMu!{_ zJY?r!aJgU-3haX&NsD3+czqTa6=aO8OBdXQ0E8;-J~wed*Rah z;9yR}zEcB?APvIZF0JWHdhO&nLzE8f-TgUW-Kwy<%wbmj5eS~NxzVGO!iIBDa-Fdi zYebyxh_kwE{`Fa~+SSqT#Yui+79G|IP6iK zFQhwiDw^WlBf18+)Io6J7vaJs;CT$BJ1#-wC%Zy(c~*+g_`Y`~{9dQy(eZvUCQn(`)rf*x5@JRF~*2_abdU$*u=FzhASs$?rLFT^GJzccI^}_r#viiee!(Rq(B4 zdLqGt)<0+ToKSNeubr68Pz!`~_wnn=csK8?#QfLyjj!ibYs>io*$7M$zuz}OPMI#f z-mA`&srYM((|s?^L6eZRM5~{13e1@0kRuMEF zdOq1@{eHdi_4OzLgtyk9yK+Rt7nNNE_BN1GodAA*zwuOF`1AWsdJ=$)hVOg9rk}kv ze82ABXx0&=ulX51u7TH0jrI3E@%4PvfHaeKuGIwaZRC9)@EUrqx6}jIQqi&#_uh4H z8!RA98_mSusLEuP?lfC*XA>T}ie>Ol`)x}mjAww3nyTKoao655E&83FVOP+lYVZ?T z2ZV47sh)FI!EiWZl6LHtigFxj|HV5tx!1czM}kWy_!4y}cdNN)nuJ6g4tX-va5=jdHJy2srwT`2jo zlr)eB=mE!rI=Kz!do>NfZ7sGlPglS^IX=6N1lv}8Pg>Z8Bpv>;uO;=YYa=P)E;`o7 z`fKe&x(=t9NF{9MIzos*A;K;mMdN6VJj4`g>UJNKYH72JE&+hWnHFvY*V5GwV&}u* z8bhiW;_XFh?qQbAMrW&psvTJGggi9yLSf>I9;463%=I*8R$)*0oV7f=S)go?4|wh&HwQ1Tt5G53VzT!2VB&qtn9GBrp824uT&q}MHUw)) z4RA`r@{*Fv^KpH=$Ftulmw9H_TD1CJBxBVA@OX?;gc*8PEgJ4M(YuC-MRi_DIne4H z0TtW)EPj2zYhJI5ZNT-xcU-#vx<6jeVOhAl|DL3yJRe=jbyWBEvkUQ(e)}yTxcqW- zKHQ?SCXP>wm6$%oA?Ef_H1N8Ya%6ol$PkC0;*;DJ^yb{%5PNy=%R zh0uFfl$VAb&wU4GX5A0LMIY)c4%~uw8>Jqdf98OGIQ+a1>cV1>9M7v{vV7fsxGq?h z+EUAdc-;r9g2G1u#;$@kiQDPgZ0;hMr{_Y<8}Od9kTs)}E)=@Br$htI<^O1@xvP>N zPJi&g7ApB~A8X7ssxFku!P9}k$Tl*|UC=+@#}Lo_3|dDXq^j%vk`}<33kdONAUWLH zCS);m$oSQzs7*#&Q%PY_D741*T67!*6Z_FyZPHMplK^@rzY$4u33eK`+KJ?Uw~vaQ zC}1mYADCY<0Ou)&mSxU7dw^ru1qD|InUe^)yTOGUXYF;OJ$>-++L*<38PkNUJO8Pb z@2-N2@u;8CzkjY<{khxWJ3pue`?O|@x7v^EBA0-Iz{j9=ajd<*cOv2x21YoYl=RWc zEz_z_H8d6{DG4bkxfpd&Z-@_o0Y^zo@2+1`a6uxj&g8oR8L6b1&oXr=G?^G>B>(wQ zxZZL<4WQ^Ht&`T*RJ?kYr(JgJkJPjHPQHqY3@eT5CQd`Q1x&IuE?JIA$+i6E?Mr!H$GGT}u?h@#suS zL|5>vfaTdXBpoQUx3!RKFTnzKK{QmWwSTK^?oRR4kgIw0JDu1^wbtjNTV)@EmhO(5 zTDNw>G^K#u$uoZwDmHxHSWO{x843W3di_VPYs;%ZNTIkOV$ zXhgR6_SwmKjwt}i$tGoYsW55IA zbbW6^xF?^T?#uoareO7Ju$WqWW1BkjAPW!tG{}`-`(@v|Tq5l0d(KISe3B=#{x_PFz z9cVomVfBej5cvY|DHoSX6Q>LK!2<^P*gM4U655IRd zjLaE{I0X(X=4{?*L<+}aRHB&*N@(P6-%|RCU>oUrTH1!D7}&lI=b zckj{%7RsznfRkZr#wyWM@{)Omi;$2qfv5x8k%9B>Q=I41p$V*QsY)gtpYJ%qVL#|V z@|p{;)g-0IDhVzmJ~`UvWY&9DvTb@$7xI(h$(4(&R9UR~yfqa48wXVP-kK;IA6*B( z{{(QqZ`4ADf4-qbXKUYuZMvBAe1W9Lrv82*3mi1_;n>6l*lWr5`{S8^6z6_cbx<0) zX;EA8Q+3AsKLlY!#E0AP;UFWqUNQk{pPP3}-am^!6-ofC-h%+FE$tigX9KM|R|f=W zRmer-T!07e{KKJulzGf$>;&xM2rG$3hm0_ERMqXu+8rQy-`pli0T$FDKU&qKQx!V_budz;URGI}aMYKER3hdy)6Lvt%Sw z$-7(pOMt^tvVe$6Qr~lxLY0mMcy7jLK^v`-RTokBI!1&`=OJS>-}_oj)b5#ewpq&0 zbkIbQCZm{3uCBkQ$*X{iBbD$umLAF>LAo*Mj_S?$kh|xWRPJ1Kz|HN?h<dD0Ct4 zs0tLHFS>r(*PnveRKIkhUguF%p^Z42*iQ8xk{v!e^at46JMnxH)ilU+dv-|sV+$E| zN5!?fv^NTs$vSFy4wM<=2ubJ&*%21p;PKT+4*!%C7pTZ5ImRR zqQ;aP7u{|2y3foL0}%ok+rWFyGb^Jfcs+*hXW<$HYnk(XXn~wb6wPO6omx+fpH6sIEU`;25cq!I1tPKAz`SH5%B9#jCM8iVbLII6K8v@D<^-e? z%Hc>m8LO6tP@&9^B(R0r{TeC*@P5CmqHetv_Zs#2XMpB)-xcJBA4~==6#}O75b0Rx zozi{o7(`2QQ}>D?{q-`d%a$e8I=yzg<5^5Gq1hBPdsl6r1GH|#OrwBD#zt+UQ7jhk9ivc@647uy9(cXf{vQo+P*tbw@gWr(TJzkw z+_U%1Kig?!*u#{8+%ja*#k^i`@|V|S;RgPXa}lJ&(Y0B@=U%wqvy?GnF+um;x;sg? zWTJBSoI+kV-g6c2yA)40Rg3mbTW$~O4ify~_H{N&8xj@Uc+Hy>kI~3WkHn7cwgXW; zMO|yGx6yGuc=k=9h(!a5vlm^6E$uyX?9t5q-56b6Hl1T#Y6}@40^bAi=u(3LFiHKx z2J*GBe@@`FF|3)t0od_0fOrJZfcM^L&xZc&$jG7#k;e<{NT72Vd8O2lpcoRsdu=I3 zNay;&^>pXvoXiNk_re5eB_SEdU$2`nOGtYJaOpWyGP5(Neo#Z_PQ=gQCHcYk6v`d!mi~I(cquX2XyBt}N9^mzlW69f$&!&$ za-Nx>e7|N1Iy}|6AU2TX@+)As4kf#gniAJ$S0~kLxA%sx=OucqdFw=>@4c~fPg_Z7 z=w3IGD4JOTrQ}hvo8S=QcnqSp*8Bz$(1dyN>io5i?|WiLV1*NT7U>TqVWl?b#2ldN zlE4h^QPJ$2;LXj!#E)42NlmIb1U;Y8x)exU^z4d#MTPAhuX}2ElF0mAiMdH@`tiq; zg*Z?HqdVEry0-@Zht_{1gW&a^`1P6s7dFtiU%p>AyH}n2b_uXUk{b2+qV%lw*`qU# zf4^^icgjVSTIVZwsqeTu_@DmsAGniy={-G2npG5yhi9w;=z;fQzJMU5Y)H|L-JDhm zXKN?!oum_W?wj}A_`W%-(ptk`f8Ds(#%pc7?v31hzGwtaUTbrmC7(s9RrQ7&z)#IE zL2EOj;m7ld|M>L{1ZkslQgYHA8<@U|z%M;?G0B=@}eEPzg>l z5Lgx~H_A9Dl`I%x#!gW)4#k0mpy(lLXND3vYgUsd&2pVBzll%XT%#3hZS=>$-V2s1 z>>mY^(I|7a0Mx%1$|*{Vf8HGo4o0nd4o6DtSP3s_78=oQLXzE<`;DdrcXk*sJtHwp zkI}ll`r%t|p`~6^0URD~Gg5I-`4+8`q|id}+9|qB_0P)phx;NL zojWss(?#YGU6TQnXbcJ-&PzUt);-2>h7_%PE>g-Bo<;&fbti7oVuU9^&h z#Tk_rHYSnTO$XPE97r*k$ZRFBG1Lj{A#~RPh(O3SMs+Vpoymh*dR@dpZ~V{w(Zv`F zrbS25x_1I^Wt}k^w$N7cGx@w8kAc1exl|a;#G}~|2}IK^@#eGK-OZNb=Cgp>O>6V& zM>R&*Jnsd_P>Js+PUp`1OpdD8j|*t(Om?7M4dbD%%V>x}ZgCszeC(8TVv3)xGrt#V z)QUe00U}Uh#Pc4%(Q;NEM@0{dT1GH}?fgH!9{7IWOyIU%E!AmA%{;Bd{gygcqJ}RW zm|pK$fA+qaJZ3uz9XlbNdCpkebK#+mYwzU!|9ahcJ_g?RrlHO7pdf!{^h22qG;y0Z zBC?X+*F9Cp@aNn`SVE9nBY(f-lw07}uZbppauuU{5I@;beNTRvhqBHIF;rGyOpoPj&?m4R)V)2gN zS!@}RH#OPs30faC#X4N{$2IVJ-x^Q{e*U}>fRsiO-`{t6Fx+dGE;^Lp8t953kOG}c z220GJ-_Y>pbrDGi@Lm(vefONf)LypeLU~L?ovZ|pq{R=gbGO`iY08vQH_B^0nyU7(0EY`di9 zM&STdr>pmd$72wwp9`;h!KS4E@Y3*a*Wl@2UvJGS^y-#=Jsz+T>FZ6Y=X-G-0Q@fd zCqxAL|NftU_h)8`F2Z2!%Ak0F4pRDeCX%~QUO0yo-DJ*H#y&pis`pdBP9k3crF~E; zl&D!v!ITAn2&_4)pPW-)FOlX|h`t@QN?Aqg%N*Qjt&9Nr0l4Uz6WQZQ1DmhS+Q>``ZT;g5>Ktr_7c5x-DN(MFjkq~Orn}*f+{#-!7l%3v+ zmmZ^wYs@G5AjHeQl-F$65R`bPr|Lk z3LC}WNMP{D`1KWP!y9!B*l_>9WN@}auEPlyY%ZwxJ`#I*YAEy% zv#AyzZj4}|YPl~L(?FDsJb_jggNOI(Hn5AdtbLu{+kWm&uvNs5$AHbQa>=GVp#k5} zKK*nSR6tPC1F2gWdG>v`J{WK!biKgBCX#%GcQbtt@hM&DOC@H5ckHO8@M-OC-S{9-;3Rz_d4?w z%-l7^dXjRVbG}w52hiHJjHe|t+h795qKdpz^r)o&Er~}h0RCK~=~#Mp#emgiwK4|e z@z5|Z_zs7LjY(k)t=&Vn^xVeY-~ebpQn8lOE5(h;#OnDN1x&eX2B2)}Js07wp9?}D z>YQIw$*Z%pVDaaUQznN$eHeXqsx9xB+7;#=f5t{rqabO-{c&y|ux6hblP34@#)LJI zK-ie-?A^5zI|GmBfYoxAx>_~78&Ui4_!N8se@EUp;s7pQN-pX$jaush;&78w?_&sz zF*S(KpcTc!9ktJ`~tDZ{nkhxvuLrWrXJ+83uDL+-u?MdDVVx-Llvy zWc<2FtNL6kG%q^WV2~~20Dqyq)`ZNK!J$q>CDxh8q(Cy{?xM*)qCt#+NSZ=a(t3MLpqOg2?&u6R1^bHy%nE&bE)9O%i^3?_< zv#jOr>W_%DAFeszr%;K0EWqvhSuJm&8I~xTlXL?+U+ryq%Ld0X1U`ly5(N|2;VN`k z$i$~^bBk8;du=%RW0C*}i3p;mnTbo!cdvzA2e3{#C2B_YTW6cQb@N}96lIp7lBK$= zrM^|vvE4&t)V$%$;}3Aw$8l$?q%$=1(c@#CaFZ}l9OS@BN9#>8e(elKcg<^j9DE+g z-E+fy@847qTCczFcT;>?tp{t4=g04>!OC@_A8yfAba{A+$i$_?EsRQep9l$GYodp{ zN4qrZoq$?`YY4eE&zE}ws45adq!Gs$MSnMNc+suqHKMeMduzojR*J`G5?TN4eF%ks z+I!1NM7$m=YOJ-()eib>7M^ED2JI9X-KI$4fQgU7r&UM6w(MLB8>YwM&$R5G$k!M)W&W?o6D(HgGhUE>R*|K{1xmvsk7kru(aj`MCY*zM|Kqi4Cix{PrRoQg)mCDei904~Z+8+xp{HitI#{LPb|YhzBTluRX!*JFGP{F8RE zAR1w~u%c?m>%Ev*h^}IKSs&x02$ka3O=5ws-$_yx{93=R!b~eM;%cP-`#oU;wE(3H zAG&7cdsXx@cCj0Q#)9*6Fy8=&&vEOT-=7l2usdugu!q2`WI6%$^b!;)AYvNDAvW@V z$>@jxQWWRc=OBl7&peLLN$zv4VDAGTBRaoAz<>ck^RW+ep;d8~I6#hPV;pY{#uVbO zZ&}+^J|^ds4>fa>iEAcjE<7+v#GUW%`##Up6r2(#*wzwP-Vo>eowrnHU@*CFqWEM| zGPj0YGx08g21`_j^!KG0X1cBz1xqss9uj6pXONDP^fqGYI+DNx?H70OtrBFV zIOh{qia`i4)VlK=3&7{LHfeCzHON_S>{Q%SL(-kn;_sXDDQ$F20dod)GmoQdhLn?h zehL|<+6~W)yOMeM|J8o`dOp#6$Ln<;+7zIIoCU(1tBOtMeJ*&5_SD3q*BnwpL)QQL zkN@@0BKGT0C_2biQr4KzUXO=@GymA~LFTWfxTZ|3TGRk$)1+1AMY5>><$4)ekNKFbYo zC-!?D{qJA`J#}c1CPh_>qTV#=?{>mT?Qarw%SYzk)n!TWnoK?Ul=ljp`3Iu_pR)~s z4Ilak>IYa|!g5XCC%pyU?^`Mu{LPsQAr%X67PqilSa(}!YaPl_Yk>+1vow5tNVXQZ zw`IEUfrxPZUXt=^T341*tYS4n2<|}UCKp{iK6kf@TMr@4{Un)l)369q7pmZ??&^&~^3zQ6}TG(ZZR`e$GMt7|h&U%oKXj+3QWWE#@9=n28G^G&<$-uS~ z6c?473}V>Dl*6GN4dg68t_$zijX5_S4-TU;*XBD-t<&BER}1pGTQX_yq>exmvDepC zRD*~{{&$zEhtasrM5kF_UC9Q3qP%(krQc1UhAK^aa$&KPiKsgzy>VWo^^n7<6~P*Z zv<&3z1X4p;ADvH3Qm&SY$I*^$z1J%OW$L$s`@MAKwb!Fj8n_Q8rKY$sE_kj8b$(5C z&o%-%Amnm!R-p0PhPqgDk?PR|blmqWu62IUqEf}s+d9`lia|n7o~_lN85w4rVhoyV z<1c@F;q{*Q`F-P$A5Z-JzVUibQdQoo+VXSR>U>K!uTl3KkRQQ9nK^YSH0fUMd(tTH z(ThIdB!4b)oLlEihKKu`WjHydL;wIF07*naR3z1n@fpuye7=Ua70VhGOgxahktcoz z(a6@Bkd84lSEF^^+DTBjwMED2l`EL;Wg{#mkGqok)SlBk$b_)%#yV8VI+o#~VI=0NxQUl7@)u|H?;K$b!uh*MA_Qm+=1kyB}Xn`G^0gE2^ z`XV)B>VMF=x|3-5>otKSf_&c#->-?UuSdnU1BL*XKxn@(cHRb`kj1vR`k|lBx$(F< zENtSq_Lf{@MBo~tRDDnGxlYBc@0(}vfBd@fd_3^i@3%~rm`A*2^!a>T1=ie?l*ga1 zH~Q%K_2Qmzt_8&{>#|?hz?3fF_iN$n#{=K*so`r<62J9#zrLR8mIQu$J=BplND`G? z|NQHVpu%YC8Uye9=B$Tj#1y|@lCJ*CU%qO_?Cc4~*?TTLH9X$`{J;PEpQQlPJ|=rJ zhytNi<+t}Hj}Z(IG`R7>rgrsC@o|rqCMzQ*2OQcX3SB`^m9UdwUxO0}p5(0_kY99s zAPGm3-mT*!we-5*3dl3g4^v)-w`^1*?Qto<8_Uqau_M}qD`Rmt(oMVp^uJ+ zJyWO@ubHiQAu`}~V=q!8T;Y!>RD=h=lA^UgCb&rj8vS%NObf9BkEV~A5E`wB({3bk z5NKnN)2!#&B-urIFG`t(cW)U`p>bWh_QONA zS%Qn46pToTISq#xL1~t1(@?X4vQUd#hw<-di@0eX@W~L31^A>6bg3~ozZhKw=gp*Y zL@3C2CgSQmxl-tzi0IBlTpcYT1qI2KHllE?Hzx6gny1`1kIWpkickB#ySRcC8;H_} z4g;%0thGK=pEQG@19iS<(H*ReGJ2;pVQ)f=AsQX`IlCIDV#I;W$a7qy66FSVdAb5y zqz0Q6d|hB6A%t1l=w72qKC@MfMyI*gh6*BnC9Ik6PMro}&V*6F}(NhLF>}iB8grya7;aUxTq+8y?u?I+;qGw!SZ- z;s5>jUj(`&eQ9af?|TB`=DPjgn|a!zg{oNmev6JHC8B$hVqxC8hu_!qds9-ocE$L; z%?)NulFS1$w-$a81l#0LkfUdrc!&$ z>`;ZcDO|U>*oQ7807UDk%V5rt___uM+LOg$>t}yBCwku#KfZ|C|MBB-0IjuEQ1Kf6 z`kENeN4?|m7`RvBdUOq)Hms!?1m#L|$&VpXz{Ptm<^(S61!OSR>+r4VLZej?Q0F)DxwB<+tM2Dlg0HNiT zr{$4CP>uE&T_62|4U~wG_iESA$*E^={z|}G6yo1{XX|>KtL=h?E%8>@Cu9tXeqB27 z8L&N&S*9u<_mf6X^uHzVpWe|Ya_lu=l-S(KaybpkpEeC(7LU)cAV7Co6&KhZbO43144yTCTU@1%%()t35+R5y;G0gg~#7^^?c6oH+<$WLD-^`9m+R;E{>cjmULUVE9{CDgf^yIgz`D)xrY+H=Ns zpUHq!Z%Fqj8rEhKoKhdFvvi-cA`(^Lv!2TjNk1i5MmSv}3HTq(I;)g-U8M6iO3qXHA&0^cGfBfSTsByL!JpN zwB|<#q`U++pS?NCKF7AM(Ub}&5>~28XpM^ov9}y5!9CGCT^l_N>UgJDeufH_T$$qH zU!xQGyGAP`o4uUa14I4|0BY{c=6nW}tPwtUo~~s?=~XwKAEbhyk|*xjJo1lCeCB(x zIM?2N-4nwuwpx$={xMp0SECVKu5%wDYD5(0-dtm}D5avUb$L3%n$5yt1FQ{p)7Hkl zg}e`TsJ8Z4D1WhbxD)&W2h_DNN^QDiZ$U7})EpIIJhR2v>zOM9lRiV=lSA6R zXP+PMdtz?j`5YX`ZKRJC{VZ4%Jg&hrz;RBXvQxv-;aAtz?_q5!P}v(KbuR>8G=G;s z|KI=o4}Y?9r20l~CuT|p)vkAf*ha_J=Ey+Fj1@YTsNki00per2TwE<6eoNBlJe+Du zq@6a)F@+(*GAnU75{A461w7LeK9C|W0CVwKXmnVXuaCo5<#5R=r>nh>>WEv<*BDx` zQHh}2k%-Xd2%*hJbF9zGLlxVLlGU0MkF|FtS@*oraBPYTLQ+ulcjrbSN_4OrC4uM- zF}kdZ?Nn)+3Zf1NyFP~Aj}H$tE5mHPn@?&|RO00%!_);H6uk~-Qb~CGZpk)rK2r&L z0HVmayg137r}%YlSFop~A4(4zfijX|&^xpoo@Gae|2K3*&vUL-dhgKv`D(1(L;h|2 zhO$8Gp?AB$sco(SO|R!+vjr!eGB83yZhf87Q?1E1oWTQ$3YMhDoOkbg1DHtnAv@>H zdNK7p+(wnXd8xyMKn1Yf&OMYLfJ92)UuWh=p&emR zLyuDDdNjTtBnnwF$iO|wp*nkem==@^V9~CG5mAK=@)S(5ZG04ku3j28!^fI6^@H7@K_PysATb{^9> z;Fv19Gi9ZzAvfN=KZiGUF1quD^Lt)zj`iWVr|VsNRSdpWJUB*A6(w|jb|-Kn21v#G zNM_tYH=W_O%%a}I7(55(+W7JHMICQl-|1wd62z|gsv(}V_qpfGeEpV?wv@4@g40R= zw${9qMO09|W%g4hIYHF=TQbUCgMJr%^g}UgC#my0;k?69Q8Ull9q`17DR0rQ{`m0} zLQl1uw})1Bz9NF1IYiNCx;ipMa5_CVgpc2^>IXokChVJ%rn#sK znpxcUgWRai3w0ho&?$dL*Mu?BsJ0Mc8!4!Y9E}xO>)hzq<0_=Uc|8C;uYu2mu=v`I zKYPnY+6y6@9KcqTdd!+xrYPJnd6YVeIv{jgNe7g8*-U2Vmb%HPgt~R=Mo$H+mA1V8 zNa#bE$!>Z2$kWm`{5l#?= zM&b-uRT8hmbk2ovQ7VMj$-ZSf0emD%UMeR+3?&adK$*m|f>)uHTV^*7$V9e+rLaOhY|pJCRqH~u z52D_t+@X^9bits+iuZ5&8ES2LO}o=D27N5PC383WnZanL58xC>tu+m5s_-3wiG}gi zF+u)y1~vS5q!b~B61kyH2LS-jIuL>5`F6kWq5?)pVJSlAQkRCZI)*|uDQ(7?n$a7P zc?B$iQs}j)gY+OsIpp4mOx*89bta!5E77#K*0i*r&acUzQ5s!T#nHqk?}5jUCw8tH z$e4IFl(_hxifTj6Ww;fbl%qM>QcoJY!0qjDcb)wT&4f-@Vdp+Wul44hyDNb`kV7*BnY7ugjYoAE!fuP?EH&O1H{K zB*ddtvMDayZjcdBmUeC?*OOOM0%a1#;Z{D&w_Me_+K0a(!(dVjK+o$aEWia9P%{8? zacI{RnxTW*n&7`95kes2JR`5gLcf9I9GY2c$p>lTpl5FJH#mUrlKAw!xR|wB(!3|^ zqG~BsqsL82x}^%)-AGxUYoF}nSZkz&oWG@kD5L)aekn}_j1NES`TD-N*VGahU$M-` z;&i|KS>`hr;=eYIwtv&?hXa2Cn`SHK5=G)_`3ms&lwEWDkFY5i-0t8eKl2LUjL4?DkpF*fp4IQ~hIZ z+;jehRGPPM^Cu?FDhlS3atY7MxmKNxPA=`2kpL*63YuK0sES6>4Ra?xuW5 z?M1SqEi`=n;@Pxy-aGO3^XUdygQ6bHO9GF_z460ACGI`d0lwF`Cg#2h#jR}N??vP zb1u@_5AV2SIsH3-tg=DU3+>A8h9a~t^nVi z_42zJ8o_yjDfPLvnahr=b3Rn(RR6bs`nx}gXti?7%(ck-gA>n%)})xSp-nAabS)}M zDQOz0HKHW_&`F$dLFlR#X*{q81mZKv5d!8Y<&Ep44$+hdMIj4NfVCFqn4I-a?N98i;QyIm>R)*;?PIV8C#knl(|8<*+&NdN`-I-L z17EjfQRokzhulO_R9q8`sqxEa!X=Q>yG!Mb-Q?o zd=B@F-jQ{fr`E?AjPha%wwsFE9APw>KNT57+V(jZYcNcIAHY#Z(9dEkG4$u@AT=WC zb&Fs(0ds2xLl3O6Yv;r*M1$IE7b?s|o5@RT)7%c_t+jyfwtcKub2Yh7qYSBh=noeT zK}62xPJv@2R7gvBFM7s+YoU1XE$W?zTVJr&@PbvQj$<<4V@eXyDC*9Q?1Ay)f$@W? zGUz~Dtz0!*7m5dvo(MS6;!R7c1KX3OM2uRxF9ot&Rmx7CG| zx>wnt|rJQ_6uk$xV_b}JrUC1t4rafe$MM-t~OwNxu}{+Kr~MV4oYoPgJ^>!`e~Q{|;{Nd+JeaI-k% zI=tuBdC0Dq*T~T4d0qKE-ILO)zg`^Vo-%xMSK=BCk1_D`bt@OM>QzYXDl0ZtSL-_9 z?vLj~?@}~Jp!VocA?yTxC5MBd_vo0kX4Y0V7AcOgPT(o@SKwpSE`tp&x$7C!1i&Wb9)f6RpPT$$ukM!ubD^P!OmnI zM_)Mr4Zo6m+=~Am8tMdxtI(=CtcmQ-7GCBt1sUVQPN)Kw<|Z04)cWt8n#7-|OVbca zy7kX5CO1lSB3NC=LvP~SE4bR^=iZ_}0C>-v!8dmuZfjGGz#OoCQA^bdHb&`vKYJw= zYCL4vT6H%pAx5;!0~qUc5Sn=HLM2*61w0o)fu@9oEl?**Zf^skDm4W)BQCAi!R}|n zqzQE&ZIsi_Xt#GoCXjiYbMTbAC zfuOUn1Y9ggXMK#KcZELZzO^5m;0LN2rl$Pi<@#{-&TUFgH+!WgaO6SspkxBuv>oUG zU~$(HNFhgT)s8yQawm%*aqW12n^I*6`3ES`+zbk0Cdf5!5ygS&Gmt42(W=^;4q$N# z@KQICmiN3jV3hXiG|Uj{A4x1!rk(HuBpW5RU<9D79Y->R!*5>+{-bq>F6I-H4vJ3Wy-O&ZN?^j1Hoo#p15S zI=S{J6~QxYvQQh+Y;VyJJF2_H0o0T;aMt=ZZ4eDog6Xt~2Lt5wlr?!HicW+*kS#Hu zgH)jgg!Szs=q@XsXd7p^*wm6lqK}aJ49}u*jY{|-0BA{05Se&BMgbQd(6)k#UK@%of2`05BW-c-q&-83e(lqX?1pUne|F2cz&F&^#U#7 zugAqiev@`dCt^_@29<0USSVYe#{c)8G~b(>$ZzW1q>{U@uLpj8-#E0%11!zSIQQ#4 zvB1PXBk)o}`s<#^Xhdtblde%~;58S4xe(gwWNa}eX2`8l$-WJRQv3b7t{S>$cOa?I zCM2B$u)0qrK8zteN5`NM)^@VqcrU5_;e`KQR2Yfgi2_TN=H5)gmu6NLQBBfVo)6-S z0vKOP93N7UBZ96u!p8h#8ywJsF2~|<{5^DBC!2QH9a6BlCFa56S7>(Q*|))U>7*7o z4x&szdB(9D^yXPL7dE1bopMJ_Xss~kN`WlTuM0C1_vCw7iISJ(VD=V!f#6!S!1rt7 ztu9LM?6`j43!W831SS~2vjtvrmm17goF0!0OY9I+efyy4+V`CJ`nrG!JfGKb78i)} z7SbM|&byfw5m7){1`U|z-1vGvaIb}Xuc9flPy~LxZqaFZZr+<6t!rHDz^;XRZgTfk zoNv*TTMvA{-WZ~WK1#8P>NTeH8I-m$lNEsazy0%n|I=u|+H_)z0LJxzhx*udHP`xJ z1D0#-O7Oc-e6W+1<0E$dcKA+$n7O5RZwSpYR4$RRqN1WGuZ$UmMBM9^Md*`r!W zyV|9#u{CHj87Eisb=RTjfk+n6;;8n(eXG5xWWtFRX$igBjOMsmQ#~qSJ~W=W7dLpd z4EXEucxcEfRTPEVnRXN#;=qx||1PDU6J%UOk!P>ZXoru-q;C{|drRR3I4#7k!`~C| z$Sf}Vnp?bd4KOFQ{f)rB-?L~BUNf{vZk2HI_Uw#E&OacfAyxI!$eHU3&K&rPDxxA9 zl?@zpo294N0kG3v07V13-?xf0p>I2C4r6bYv)e{dqFdO$xipLC(qXZyNHK?Yw5~%I zbwC_#dLAsEvag}b-Vf*PqiYmtqa-?bS{8M$qX02Y15+YAMlV@MCn}>gs=_p`Q6%vF z{pR}!Qf&OpQs!fi>tf+HZ&8FqVd0XhgKbC|U~276wN#(a3$OQE1MXDXIQ+|9?vsI! zd*}`K_g&~CGV!)dnbu&xMx6tDC9dnj>lU{#`8{sKZ*>GYBOo01-ZjK%7{Q#=Xo35+ z@Obo-xJL**MsZ_Juj;+4RU0LZcJGuf@8M{AAT2}#;l3jsUt3LHb?4l<{6Urp68kPalS!Z?hxgvF&3oOhmo**F6p`R z+`q)_rDnM7zxknPXzJvUuGgF9oz}wIG->Hg3Sz8x0Jys=Sve(2Q|^^1?eR4??wdT{ z(0PzbfG+WOfhfe%?R_h~c!2VH9DfAM3eQCsRd%bgP-*`vqctV<|NbA}$RyYJ>+6Zf z*l0uWLIZ6SpjON7Ru32FsYcOhvA^Vgr>c>cJGZuXE=?^ieD;*C@BlITPQn8`g3+utD@blz0u?_rkybe4~x1PWG+tt`qnTl<{GLdgus(Wagw_ z7I*O92SK$2Iq_hMLahJ*AOJ~3K~$-va^=Uqjli$>ElM3hr{XdPpLuVM^4Ebf7If#a zoK5#pHQECG_Da0p3(v0$DNcF7dr9(wFY1%OZ-HuhN1xQsOWn4)Hh%uPDNU%e5ip*| z#P~n|r$6v|Q@8x_eAF8FdQb_)#+L4cAwt9H1O|S6-}ri5*hy`4G@Y&H!V3uar2>Tj zqiMIOxW6;$QE(0X_4{V=)&gITQLKmmc)jtLA7A)CfBmj^+(r2sW8mL^z43TnC0y~i zDDUWaYSzRO*z^5*+==H?4yBRD zRad!cZV!}80cMIyms>O$G65o}JmfjOsrjmCS;|P)HBNj`F}4LP+{*KYhM^72%$>OR zLjRY4`ujiauo*sB%}0`w!%!>bI7@P~mL!i*A0J9aoSZbzIfam_s@e=Pg>)$iV|ATH zA8>1Z=)rP2zg4@{tq=g{ZBQiylBe58Jph?VaMLUyLsnTR`*0ny9EfOmzuzoKy6ua_ zr;`P_H$1><{=V-*QhZOANgCHh&a9H1wO0*bx=XPIExWmBmp~@&tn>xGHhoNfhMb;Aj&WyAJn;y!n>$l6jk*`z|*UR#_Fa_ZO7!6*0JI^yH*=tP}gL$4u zCQ+47uBnms1-G+FH|c0ta~5h~UMJ7KBj07DxRBU5?zu*RBQzheq@?13r7B=L-uDeV zHeQX0w!g6GINcoR?y%XtcL_)^39p9>JF4?|4eUiux%Yz+ z{3cgGxOFPzeJioGye0t)8fz^LQQ1HY5#@-<-=DY!i@{6AOO|Pj2t;mVYZ#9XJUZgX zKznwyuMn@41p}3sh{$JdG$BPQ*Wc&@V%EY6QhsJ;b$5tHuNoAE&~pfMnbT()3UpwicA>RKQy&%c z=HEwXz&(Ng@?XAC^Gi`noxk_&`1QUkxoMq)u$Q{3Ry29tlcEg6)X-3pB{M6T`&k$L zHCdSd<;Rcu?Ca6-dLLheA74*g*TA<5v;?X+M}*E&qOk6uY(4+cySxpU(|88u{bocV zx4TvH8&Xf%uv{z8s#{dNGasc5-#qi+HP6A$=hvg|$NTDaPbP@UCD@f+_{$&9>Sn)h zN-8>*(;ayKMj^`NXFVTXvxU-`p9>Fnxr6fo&NDbW#aL^q)!dt1p0`Xnd&li=K7g0B z){#83bA!cQJK&hl?M!y%o-W4rk?LJrzprA=R317mU!p6~^_W12jLtM~GkPx}3Ukr< zUf7AFBRJm|z}YzG5H@a1_-EOvyQN0tB5KOTJ#+@od%aTQ`+Na%=r#&;!Q}3_?|m4xfV%m592+a`I>78iD$mt>hjdJ8#06l_VS0^q`+n zeJ9Kwf{QxztYm>gK;T3oNc9DfZpEJ>Gn@qF5b zb0EQ!$!v$@+-y^;g=192$p#ZUCW_6;s*;esJ&A3E%RFf(w}9P2eF$<>9-Z1QK9{-M zL`O(1GI!a0b!y0qE3T@u4OYaazBoy9^bR3!B{`=`q$wGwj8_Z8Yo&!H_s*~(Q6e35 z{oI!kV)!$)@ji>2Pwu(DF?{%?J10@ecJl$Ib>3UAYjhDX>+cG^*hjJ|BZR1SyxEn7KG%;1w?uNA;(7c5_n0!L_zDWL2{SGB)aCkS{Jnv=r|&aQNY=BB8j#fg=T1 z@8t~e)f!S_>ZElHD?McuueJ|&;Z+Hhi_?9SgZ4fNKoc4dp-5XrqdA)mT&!Io$Z?ds<~YB)}Xq&k1$16}861_MMTCPKpjh_8-%UZLNE3aRF^ zGY$&hK*~&bDl&;a5lCm zxfiA=r)WN(qJS=Uh;_i?`+eiOMrrI<+(`R|Xul`9{dNz1J}!K}W(_3+hXYLs%_a$I z6t&3Rt^$=>!`w^Kmxo3**N4PqkUn9}_gi^J;<(!)vWhl8U*V^KI=wF3wulJqj@TKw z%L72Pw@d+l8pz&fPusALoztTXbB#_X;nr$hmO+r7Ma^_%)-bgb_MKT?AEch}6>%ta z)jY(?6nA{8xCj+rltDD--=V}XLOXyet&b=efzvpta;0LD}rVeh$xZLuF$N z#%-`lbt6kUh|Zn*u6rS(Gr61#9wxQ)no%()Yj2^xnV?*l_?&EaOt|gh4XLaF9N_EK z0(Ao8fdxPCYYeJyMEr)pGWkCDlZaB%NNqaX(mTm3Qz|8U<~%w%U3;NjTpZ(hshiQO zL*YnJ++GzHx8wo+-h8;8t_K6?oE}&@yjr_Xk~cT&XL{$b>ALS4K%wg$pPM&xYpqOz z$SdVK8qISQ;xl`bgTdjxP3u7gA+)IAiA1eICSoU0_fGjN>kJcNBnOzt?vWSF_}Eab zVPj*fC^VIa>K##%Q*XPk`Fh1m|J0}5D!jbLjPUxpJvbDuU^*oNi(8l}1Fk?$s@{AK zW)c}ZMKC~Abg#sGOLIIETj<;2g;R5#R9QO|1Ci@l4ei;f9@Bx`t7ICT z)OetfvVKFnMy^Ggb^1)?Kq!-(O&LWEOTCS(ZF1EuK}miki@kX-3{V`PYv?Rg+!aEu z;<<&4Pn480!Ad1l0QScHeY0o0X1AD4w~H4 zDO0)qH?%b-61g}x6r+(VFOW%f06duJ^+{8%GoWm`9TPTw-ur-HNtWa=^^b_m>Upye z3hzJwyCkmyfB?v&K)6^^=E&skOjl-vyBmL~s(JPb`^m_>>8`GdjPP(bQ`3*vB}9)! z(5BG{45}YaYAV`>M1U56=6fYNh|iZx%^s(vOm4KD=XvnD-tPgYSHG@-$K%KX_HlNU zs^YfLJuCpc#=uY}K~zp?XDqz0TRz(4PXE7ueG7>NU}p~%bYlkI*Tn0Z8LCr6)p-lO zY>K6Sje(!<8$%NVJHZ5a-j`bOe4et_BNf5Z5W0cf07yA1wcw70Yt7V5-M4_bLLT|+ z9=PTNDtYp8WIA7uOGf*F7`P?D6P$JW0QC01*UU*4A)O26%nH2j2JEPB4W? z_|YrIHSj!WKk6y2X;^Ni?lJLroLNx+d{dM2x^AEr{M5gV3QyH!xAb^!fT8<$*`5^S zTR)zs)}ZPQloYnE0P6wO5N@hkZMd$L^gGfe7b##5y120kqu%klNL90D==nIZetEs$ zSd*N42yi>jo`GglHKCh-)3A6SS>x7H@VBog)r9)-!Tiqa81 z=3CnuaD4o}g^pSDA@cWJP$qg`kk)SJao~DiLIZTM3OI@&f*i$sB_cET9702w1u6yvKA+L;glu;ETI}e-^12OMy<&k-)N+NxnT3lQX7S7EcV#+ zthp$XUAqYMNOMm5CYM0kzLn1Fh~NR5Xqvcj=i^A>)DU7;)m)ec;B-b8?RKd#GPJ~t zt~!W6?JUO_IL{O2!e5iz+A;XKY@2lSGaIlf>&jLe))-0Q(OrUthDGpWu$sx|VF6C5 z6z2Z?^R*ie6-6G6HI19?;apTOZtFIMW&ruZWMQVyZ@&Cm6KU(Dg8aJfjbe+U5sM@K z94oJ2fnJIPH`|Z37TPxXmu(Gq5hT>QmgLh0wxyh>3->iNP8;Nug9!Y%2e3HijiqJ_ zMBT!ul@Nlc78c2&Nt>9P2^T7lqi6iHCk6JG=eH`#T3Fd=ZfZr@$nun%hJ<{zcU;$< zpAWGSxr(aK5;%`j_iw34w1Agu@_ZbaV7QK5AB6s z-J0BFL$fF#T>$FYQ2@rKw<2yY->dtYu9EcxA}6)2Z#Rw7nr1J7<9Xx+ic^nWu+QN8 zU|x7khoy^SEu_+uMo4^KYRRdwJ(`)?%!kCu7bm;4W-}UYy#uY}5Y$k3%J+KRI_O&# z=m8)^Uzid%1`7W9&lmpX`@+}PnP86HJ(e4MA(Wp&RPV=}s@aa#lsh7D_gJ{Dndzbc zWE#NZ%A!>Bg5U2u_k99R5Cu(>W)wUhC#J-rD>k=_L){45t$bIiCC`y{`~8O z-~aB1_E?*8mPDNs%qpC=|Mug_Ms%={XMqF^fpWKK3r<(PtxZza$$5MjU$o7$UI3{t zMMaaI+cZeE0?+56&rLz%H70((E;afyX+{X|r7Upm!;VnFRtnC8^ou2A`nMlX{CwTa z%Fy>QPyElHZ#8gL&rv~Q+GlQ=OjuZX-3$Nb_aFHA{l;}KWf_R}R0*bjOZ>`nfi{=D z+ozvr_6jy?sJ206)A7DXQk9nWjNxfXQ&5szYdDpe`1!i!j0C*r#9!a!nfp9suo03T zQ#COm5Fo>gvVq3;HH2yxasTg}o&Z~f{5X4teO1*45lBs81n}d>15TeEs?8j5m^njp zN$=qA%wN}}wd0xuph52hkc z2@~V<5f-OamMn@}b?maxCpoJEo=ZU~L`xS%u`X6uAi!dH$XfC| z9vJeqEjpC2xB=T@O~-PMc6(>ReV$#;CV?nUlH+xA^Qbv??wwp^7r0(5>=;`Xt89>< z)J4%S)Ksk{+d3UGv~O#Q8ZTMwBe{CI|E*zYM3x1lYTy+9)|#72DO#^>C!D$IO4>uS zr!}&O*g*(=hkB@ZKaPW66FX@zX*Ff9Rra3z{q$TO@^h7rA(lMS3tewKat4q*X^-57 zke@jQNVU+ztn9a;!IbR4@2 z7BU5h2C$)Gk!?H2-YQ}OwQ|$6pKfjK7crMNC&2tYD3nW+h{_7GYlB?102<>i@LgIu zq;4VOMeB0T$r0`c+RyhE==~syb#GTA{y7o!-a5WtZ)k=IyTbJD&7JFasNvod6&7iq z!DC$$yQVSms=)DVq{=kzS+fB3Y)X$5r(J8E_NSW)7UEr&0Oe( zT>Z7UPMf|*sOXPug5>r!7?M|_VBMiC3VA5^D#6|M(9ZGh2RLGpDfFzW0*>ar=pZAZ z<60}Jk#j7X1?U~Q?x`A!XFzL}Hl|}wM0q~#*$t_ET!&Ru8mNJ3#nXgHAN5)q9%t9# z%R+sq;I6gOe;rkOHxN-jtnuuFy}7$nYx26e*Z#}*dnYRjKrqtEIQ5oIwAY&fpCQ^( zz$iEi?6Y?SXrX$D;&NT$6_?6Twp!9Vy!R$MMefZ*T;49U{JMEQ^xpE%JqZxb!u@$g z3i0a4K2~c>!RIGX6hY^$zx(|M{`~o!YqNm#z0mhN4^F9f=#*#)oQvjE!>O0Ob^N>r zgLeSjnsD@PYuT0Wzx>EFoaT+O(#7QH6f&|-X`=ctCAGAM zEoG+5(AV=!=b_#j&Xdi~`%++6BL(TueSAD9j4ejn5pwZa+kUi~q7<0|O7|J*b5ti< zx4=f3&Twmm*1o2yem`}l8vO>4pR?#0&B1ljdP6@LdUV}#tLZy4z#{qHD*pQU=Gl!< zn3U_7NXkt*@__#HKfmAkJpfW3U3V1K5=WzO*QACj5E+#WkfV3383Gm?t}*a9dF?-b zJn(wmX~PL!bCXu<9t(f_jfj7Mbjau9%(K>1tX*JV%CbK)@PL=F4zwk+b;+NgD_ zJcUbfA*n;D)J^@-W}2z3LIX{2>N z0Y3JTHRT^|w0A7DfWnJ3(W@W2rotjD!;aj5Kf01!BPTW%R{6T^t!(;ynR_ba<^>~i z7it26yiXN?zUsO!DI!J5=>qo>-M7LiNCmQ(>%Cb5aCAdTDTL1j^eBdpizC);d4F=iP`j~XAz%5{c zPI)X6d+!L^!SUP#l56cElIhY0$w;X%5P4^jyIp*oUTTX;2ckju0-}Gp;pcRLR1_3Z zRlteDTOnVjSDuHgHkavLT)(D#8qBIfc+aCHE!Wdt=ri83<6PjrW37dG+Y1ydU#6l} z+9|I zoClmfhjNCvo7HUEQM^v1PlL6J6=Sg`F(7Tqn9r&ZsACY%fJK0xWeBl{&eKx4&&;4j zsi|0{@m#)chH)XFwc-hs-K9uP9An~CBW22W`|tnh-~Zv_`q0P;+V~u7GQ~knPVM^O zU}wQ!Qy|mY7696h(nY*QUiWnqA#MA6*hK=xd@HM)d8j%r84>bD*M^|O0p1AZ#G*e$ z7kas5<7Gh-02OFk>}m_9T1ge)F1Uq&p%;DXv!wtk3tRe_n#b)9lw4PzR0T!FL{(#S zT};?B&$6GL#e-06qRl<8+xOQ3&{&{Vn+|{faRw)-pf>M~$Q}#7{_zYvp5p>{?C@4p z?+rmzk>I@>;zC9*`Ll>ZxBNNxm~3u}MW-y-w*!qWMkBlB-i|y`Z8hmpw%1E37Fv;$ z+|_`*uM17~bw<7%#I#3m5GBAxx7L2GvUMssm9ayGsR&#@o1T#fS_D%~!;U*F2TG~H z_~`!I2mgOX(u!S+x?fJ4RV8Y|zAQuc(WVDCkVxG!%B;o*uxlGwBr zR+7*b%=OnTkaUwwl$oT&~|UBgu4+yzP)$)w8#!3;mc$K#MaV9zEp%@`1}zio7! z(mO~rnh4{e@H9K14TB<3u@Zszd*D3!$K+%ew?}VyzprezOr==?rM*TrQ3ik>k3*U> zSuLAyT}$p4&P^~N28a@ck`0F`p<}L1d8rhACaq8)!CHYIKTbIKtN=L;-VSx#FS<}} zBG|NYeVn^S`1AY9Ju8Cm#d}bk>F4QOj~RifuVL{u@b&c|9YT$u^%t!*jKQM)l$iAO zzOVrN?Z*>8Uzgl!Ugo?>%MSF$os;XMj>Aqd(+Xgp7I)s7We|vHoAzyb- z<=0$fvi$e|`0xHO#RK?oQV_!6pcfx*=85{y$kfxKQJaN-rojY6m0?`1EgVa&cs$OH zdIHJ&GWJGW#ydITO=wFMx=|(%sWlc_`EZcXBKN_%gv9DBLpu*z^el@AYrgQk)r@5} zdR(!SSgS^-=koyv>D0R8q&LS;D4e?T2%{h##W@;S>0!&>_a%$krGyg8W4 zYhw`(6s4x+XCPv}CkzqZ6e7jG?wjp|5ITgby59Hu*5R^|9Tvp7#Bm(3 zgO1UOSZpqKpwixlmQMX5q`D^!to{<*;zK@dG_`S6D27|(&fa=b2khrZ9YV-irKhOJ z@0-V{z4hGO3V`c9a-E>sMs#}?d*p0k_?(jmmr=!2xWMT&>Aqr|y;7qS_Ti8NCe`dhq(Z*4)4$)Q%Vz7{!ldc+b?IM$ZFBD8eElC9Z z(8o=&JoHRj|3I;8NwvSBsySBDFANp{8@)Zx1Fvt!Sf>zoQTUs-wZXCQ1TaCtR6Qz2 z;YN<83D2Ric$sL8U;?K!L{`(0Dk71(HCLikwQJ7-V0VbZN-p{C~?^S|MGqvzK5weS|;Gtg%YVgJ^{vgSO1i)Z>xx2vv>}I8xUCjmWq5y#z zC?i;WH-c}WNG^*kjkr5*6&aU>ve&xvA+ zV>ti-AOJ~3K~&>$;8x*?K#B#A$AO=(3yZmS@Z;;0u7@1%<1iJbC1uZ3 zbibpdClc9%9MLE?Jydv+QZwevq|-SU6SuM7FVi19z3Z~}H4Vrh9h)2`&f3tzbeaGp z>f~B~-*@T(&V$A1SPI6uC*C*t$-E8-yqf|G_-5>Ia%a_@vlQLlc32^S2*af*kTrf1CiPKv=(|%SHgNYj6TCK=+=W zMlC#_2e13+`>ds&2_<>8$k@2t)ekuMryS9PUE`<+B+f9JG@6q;{JkUP8f;k47VQI!f= zE-B4yt}M1uD!L9?)Iw@RfL^#l`${ot;R1#)kZp~2q0dI*zPEVL9DdS{G|JbWWmlIj zG>q5Hro)Yw3wYlrSEc5A*#*QC6$^Pvlw1oI8=3<>KccQnQL-qAwy_~$<75$$4_c0t zMAd05RPT>eHDAZxTzODC(8~o?sX!^@z!5Ezm11RM*Hl<971I$L#k|MZ-u0}Y_zKjj zF_ts~m4ZAAuWPk{aPy%#LE0iTz!q603*Bh-mty=gih6|*T*yCtk!o>Be-X>0bk0TD zK=b~29Rrb3)>DNZ@59!jB*m?;fLE>$ir%Ap+-h==8z8Vnwo^??)7SWLn3GfyB4t}2 z;CD8g1|0x?-%W+6#a4>jDabhjTcpf&WAvOzPs2;rUTlw$g^3-0@KIFuZr#VPu35c( z@YIi{CZObja^FMmYD-tD*7hXJ&!ryJa6G;a3Qv!Q5ENf~2M*J-=ueHR!)Y*SlZ_l3 zDqBu+^jh*Dh#4$iRj`DLTNkqPraf9iLENHVDeP!P;QhYnWOazXhyn*;mBO{P?uii# z(Spt3(en_grC=3K4x2@RWs9yo70n{r6BAD;VZ^(tfCtu_&`QyP9@BXedJk6sOZzb4 zR5r~+wxV`=(cf=s?9)!P@FL1wKoBv!)7?rPS%^2P68bAoYa9>8uwJ!P|~*EWnS zcn`ep3#E|a@$;g;{_}aD$P?dd_W3xH25i1J{l}qoN-fv>9zZSldK`FPgZd4<^L_`$ zT=@AK`0+eAvGabW_4s%mEI>_dRPjqHREUSoq)|_#2YYIH^dqUdt+%Ayc-=l82h7Ca ze$`N0PpXIY8u$Q!jJDrn;_Hia%%9(HtQmPN7CjqOHhsoxz|)QuD=BFOTkB)t^7B-q z62Naip12h5)mp>9{QORn4Z7JJ_~$>rvoQ!Y3&m%7+t!w51(<4m-xG5&Y-$LMK3l_k z4D?b}54q&BBO@CETeKbz-ZukbruWhns^`9R-2?3(|F?htM{;*`LEBT31#Q~f=`A+@ zY!`QX#J`KU4-s3diJF%3iKJ^}udd34lsT*0y#_*@jM~&hnb=_~4*R2FFbd(#J4Ki( zqTH#OuluQpcfn(1*FqlxMV=T?RNzrZt6c}if+M*@DACe}D)>(Yr^e3kM!m<7Nh^|9 zYV{^l@QYtBusNq5^BXPkL4a@({@IiWC0_CI*&?6$b&W*WT~OuE)jjm$Tuxd6`QTH{ zL(wy5^VRY`y4&aB&jeTv$C-rLnz+TZWb=k#-)gTH+S2_izVyBA+VUX8M%`HPLF0^U2hdL07YF>KU8>MnU4h!g&h@cPMv9B8T z=RJ-?$cFjPyLj^$-X*xXyVrFy97y+`I)UBr6^*jf0jK`jvy?4fY$8HclCwSJwIR4#} zh|oH9^Q=dr4#xBV7I>fTLkzOg`W0Fq+Stt94gkmVKtBscSqKfpn&>~Xfc;?IW z!Bde%?tQOv$T>Uy{C;ohS1IzL=f2?j=@ycHoBmcv7dk|Rr~)ipkJ#*i#T@z4ZdQ02 z)fD!U+s!@uo-6t3h``a0)GYXVN?|Y-O2O+M$Z4*dOKGp@zS8KiL4opqlu=sY0jnx@gjnJ*M{MuQR`r5# zT=0HhF#pXRO7A<_(uK8Y2x<3dYKTxTHxT|iMs33zmo`iz$Mixb|K}bv#~1F#X#cnm z*j5}IGxfkG?5d*G{YxQhZaFCxA#S%eDTNe`IdLeRQs3dD3$+jyxp0Us+L@px?E~s! zy??TAS>Qj3{>4`_?beJ?N!c zw5aAXx&}C!-kbO1`QUm%NmRSFDvQHC!mh{m@GnK-Izms(Ph>GJ=&qEs^0GKHG-WG3 z{Ka`o0b!;16d=OK4N~cX<_=eKNht{34c}Ts@-0|2+BSr|x;vNF1hsV)sq|jAK&O2O zYTeKv{Ic4Gg1>Ew3pYJ)FuUMB&oljp$C$Y1jzOQ3$a@h6O-dTqw<#D#n)&lL8qSTc zk~8Xkp|y=Dx1vbq3g;_WY-FCMH`jEwaTB6O=RCUTFeMLo7k^#vuZxD{+1CbJy;^X} z_x)g@pA(QRzM7L%2B&CpOvrDIFO~1uYCcjRAPCvo_@ZWgUjmF58YZ-Q%uCC}w1klKwjD>l`Caf|oGvokbBd6fz}!hn@)n`5eP9&Dy-yA~0$$2J);KxgWZCtwLMr z?8N=$maD~3AveXzzO~0dMNo6mkL{w8Nt8lx1KW-3JZ-&e@J45>irn723JHoa4;vkH zQZcMoF{c6EKJdP7Q4+{cf6GSi`8=`ckdSDg-@oVc#Lw>wo=o-L@cp^~ z0FSfh1j+ePU@(F75CFBg^FDVu`QYETO&=msNZXH&$CEaVb{JV8o#8xbTiN@O zMKk@#MY~z?v6q1!^NZ)~J!krTUn*e7TKM`pGl1&8NfBzTB~|EX4YLFSg+k6X@pzs| z)8u>1ea#_5Uq8rOek))HssZ8RXr!ZD(jf>3vT`RlOtd!9Z$K zcGnKfyJU^Yx`^-El{7lKySXrpMIg(;bm!yHGnY2QwWEqs16vLsGZylEp4l*<(4EEf zC2Jk3z=>N^8EQym8C`j{{`vErjj*Q=MU%Wa7XHWo;qSCYSQx)$c+z{r&)20j3ejXs zQbJkhIWSNY|4N4|C!(5q76CjCf>$oMuWNklZ)&iPt=(fyBMOqvLBFQ0(lzKFL$x3G z;ob;JU2pQ-fBw8u@ZA3KKmYw7+zxkV*jm-Yj&z5h@X>{1pq(cm?Dd0?eD$!doHFY@=gvnpw?1Pmv!!#G?A257qNHFm4uIE|{}u z433bE#1(y>*FErfKJvheWd*Vh6&Lzy5L_%mNW@##nnvvIdkZ5_8tyrgvt2ZW826Md z+sv21VHL3gbC~|Xdr=yHR_`1)wcao;78cNdpN|vso{3iYnoPMN?~#^O5poyN;rJ;| zv3RS=I?R+4E4htaRt3LIcc}&199W1v&O@{nT3e2_Py-SiDm7A#(>-r_(;ujyC7&BT zEMDu^*B9Q3qFyQr#$3Q6_xidn%*FLJG&1M4s+0_R%?1>_wRZ8<`+*^jrO|#)NS4r& zE&5%EJTPmewIjf$mcc_1T2-?Esja4qO)mxC*Bj6}_GF1~HV^-$L-aTf+Wg5XDV3t6ARHm68711o<3d|bl zUmc|_pjV(_qhy6^G5O#ClSHc!Q5Bum6uCh!#!OU4egsdCK z7GAEkh{6ZZE#6$9la@q~*^o-S{&*aCy>6Vn<9gkw0-SD5=a!1FstHWJB`(9{BNt zzy}5C0|k-AuX(YtSm3^|K`P-vdg<5KiGTU?8?DRb<(~NKuQz`C@kqUa8}M4oFXFub zGPKFIuZJcq78RCKvS@d~J$3H$eQPYxT1nc&ipcLp(1xPHAHO{l!Cz}33Imr~B|rcB zz5%Vr`9Wc0G0uJPCF%Ch#5uzyJP) z8G*L|iLoZ$*Tj7dJe~)7YorYo7I*K9D0r_0*L%uqJ+Pu^lEEh7`E_uQ(E6$gTpU2D zxW-CudNej1^nxd6-D{A7d4n5ei&wR|e_BMphZ18!?bFc@T1QI1amZSfv`y}+SMjK_) zA&QZ}itD=6(TcyU7i|;yYof=t3v_q1mi#(DHoyG;h&=lMQCZX+kQdM5ori?S%1Fl# z3fznqIr$2Ch|Rfq_@5}BMXZjUHc!^VAVlQni-36YHD9p%9(moKbkJgI`;A={^ zoPzC8qeXc>jtmm;_f1+s+0>mXV#=Qz|P3B_A;a7Bjs|(JW+_b8~ z&VuKmq*adir0yE0CPn@D^A-Dw^~nYArWm0^;Sq9Au0-mkwdhF0=s7k+(pE~^Xufs-79Jb&gZdHKr1kd zirHtws4UvcN%Xq+W4rrkf3cvHlSk1Ii`JM}2eG`z71UK&VRUDpWSLqWkA?EuaOqRJ&=^XqcIq&iHZ|?)&LRosc<0jW3#u{`l|T(eY+#dY2uhW zh-|IE>#eYsh#gMX2sSX5j;~`3fX%7XO64S=#V_J(`U$oRzK#jn_*Xu?Er-HX8HC+?~3R$(c&)t}rUw@uF zljjH(;`Ba$JPwQ%c!?^?X$TvPpYKbc09W^U9%zTT&78R3W8!&=YGL5vl$d|fyunTW zlw#lt#`;% z|6wpldmBZ$)``*C$c=7MqhPAd_nSExuHWAGz~6rRV!f#PV+94TReNoL_XYC*Z-FE% zD++Cn3vj*foJ5Q{lV9vqpVt}jA#Qa-st>H90_2lBY(LTus)%{19}P#^4(g$#av%P0Hc(TW zd-__d0r274kKOG>zEsG=Dzw2uFKaE8vE=&Y=ktru&!?lmM%Ub`IqHzYyTU)zNsPnm zAr~48BxPH`?mlBJd9otASVu#bTGEllqTN8j(sMA;cn zuCbp@EQ}E-;^nu4igi;(08T$#ND*=0`hb3%{I`ozp?Y4!A2)IrI(54m%xs8NXhwcH zpn}rB`f+gja!;bSqLBd}`H?SP>ZUdEDMY^07AjR825%#zVgBlVpZ)y15R{`g+~ZD! zg6JJb)kSm;U-vEm?N!Ye{xkf_nGRDwx2dsMLLy_$yq9(q@Xl5A9Os(o?Z7?md>_{e zpdzVo5s_32H!njrcLm%#yyUBjcE9JfvOy}H1@H0fXlKjyTF-`ZR;&)R6DW^LKlig? zRTiieuTo6xA7y?$Dv_L8`mgVT91W5M1ZN1}ZG`{tAQ{Y51w zKN1MhT95d}vdzz*Uq+hS5^p;#eq&!RKK312tU}M3hdD>*v|g*?eUeLBv&j#LYd(10 zTc2UapFM>N75je12sT!}kM!~9^*i@~?q?9%wkKE%ztW*=WD2b0cUY zc-^#O^nE*2SP*1rIk`O4sJpoF`5c-wmRdwZ;aW|8uFfZi2F)2Nra#VN->brV^^&!$ zC#jxFIi=h_>!iubVJyfGcYZ@a++Ll_M!C0ss^l|@04}@9q_&{syY`ge@vX_53osXh z=7|6JIt0ix`Fx9~9&XC`Z&NOg)-<797&CC5O!c%d7G+!i)+YN-0aF$u9=#LMo{Nod z0rePVheDo*MaL|z)3Q?US?{u7hT`sh#swRL>mHnz3v~GTy74$qfrK@S^nm#Bb0qD{ zqDFoeQ3=lj->(~{E^ZKpO~csiU(bzHWm5AJS7}3VIwl$y&jm<5MEM{i_ne?cKu(BX8 zThOFkbk3P5eFk&f3NBr%+r+ z7hyG<#iWnO{&LPhsSQ(`B^o3O+69g`=ZzM#2tk+!%7bPJo&3}x7#T9+69L@!z_=!w zL`JQ*Ox3IM6(2VRY^I2Dy;hbGLGg6x*|k=2PuYL!kh{m&4Y=MFbHlB8k3gagE*QBf zj-F^rY2~O%>!J1A(D9 zYI|wh#R%GuA|UTzZlIowwXy@IoOF3q9xRN5AK3_vIn(a76ri6+BL1^dmvKB#tOBeG ztOJM+)T3}jZu-pGQNZ^5gvaDhDM!sG1XYm;V@t|O%+GHi`asT55|5K--|B+}bH>Vl%@YvkWLvoU#{ zKi^kQeNwZ~%mY`0q^X7V1CX=Y_xnn#K7N0u+nSCU+RGg1##e#wf)j5aj}zZ7`lugA zQ$qHpIMRQ98$DS60If57$X7k{@Ar*E;D>WQYAg8b`<<>qMB<6OAHC5A^W>T4l-#-E zLxUq)i?lcQnCPwZd3%yjcJk|ePyGJ3lZ_R44&7^0o}u-6YwG(e=*fM$b&5|pB_^#j zR5BZsTGM=d`HHJvoI!mDYQZYN1kcpo4DhjhaboDuyNDpD!qS6+-ScshLL^(`rqpF^ zh14X7t^^?IW<_<3sf}(mq5x|uT#1!)+N1jS47B>*AJUP0zi$0JyCoKkdnLuLi~eQ0 zrRm22vPR^zkN)(vf@ioIpX0EYms6zPJFfSQQ`FJNd0^__Z%rGm!>hHT{kQ+{Z~xex zhKda>eiQNSnc0t)2%QVmJyLh47m7765``R_7EzE3dM-xx+8dmT?MS-EnhTG|1Mlmd z1%Xj(Q%QJm)a>xnUh9KW`4ClVH@jcY2fn}G zI3Hc8xW!#HxzQPR)e36xdKY$B(ZBrlQ#Nla@1-djz4t@{DcIt3A8X=NfW_3tTMMl{ z)7_<1yx#9bL5J3cQ*Mcr78T})n(2=QOAP=m7jNoP`jJ$y`(`{i?Xi{)6c-_Ee*7~n zfU*#48llwl?o#;&LSkvI;p@Ic@oMQf;C+aXM?TBHJy}o-MU92DAth&gkzUdZ&L0oj zz;+hr<$#cHAP(6^%0(uMnk;aiszPuIR20Z!axKwVz(Rs(w$Pa+*e(iUE*zx`snYtY zl|fOxXM@Y;m5r^o?{v2)RRY%pMRa1WNWFpgzE%njADTfPe5}BD-Q>O9wMwY~03ZNK zL_t&+-X|1IS=6vmoJL>h0!{;9+KABVQt23FYsS{AoLD|+ouY`KS;*$K!NYhB<}<`% zk)S?Apbe>S2wC98NAj);K)VyI75IK#yU`cr#TJosF1#)_*JCdHc%FFQ6BRYX*bEeu zf<(q!EqRa6^ThW}Tiow!WP&Qd7=UZsiQXE}`uV!>e4g+{d(yEpLWHo3zUcFDYKrG+ zuW1F=YuSE}*&pQ>#J5YV$1^7#4Khw7q0uM%u>v z9ypJKKI@Im(|I1;2LdRCXR%#lRzwy&ZqzQNc#^lwqHWBTVMJ>#7E2);LI8n&D-HJTO6S{aF0$MtyyjJJ-aM7lU=j!T0{>H>b_-YoH$ufBy9r z07%iK*KY589;8z-XJl$JKF0*6_Fd_uTrVKlaGob~27am$^Ev%EDHJY+w79RY2eoU3 z+7g3`kF(Q$aSZC=YQgJur>4S_yi1mU>Ad7Qf1W!G48exsArE~%UtL=@nC;veHXpC|jmL3p7KQfK*7(k} zfBesX|A(WaduF&^Z7zS#p ztGTJQMDU5^9Tc<*fpr1Vgo5!yuS66+5q}r1UT|wJiQ2Y3rOsrOLarV3{f`IH&EAac zBS#wV>)t&6EJj>lawE)xH_>S}CRH4DZhicqV@y0BL{Zk@_cNl%vA+RZ+4uGs+0xfntf+wH&{JmmPBhmi}Tq6UOi z1|R&}6W`6>>-7c-*Iq#Apgyb7Xwz3RrhJJKk*EwGkc)u`c?6%^qVv9Q7UyT@L`EDr zJD6~sxpEywC^=KeA1N0a9oL%cf`^_3$TwQ+cnC4L24hk^y0@JiIg@XSpXDmV4S>b& z^&S))YICo(;`RN`!p8~1wK}$))09%l4W4smRC_y!98WbGy*K=PztN7)#&w0JFUSc^ z?bImPb;$*DQ(;@|x2~eMA59+pT;&L)Lz9sV?e`wBid$d0>y<(NWIsm>2{7_u;UAYBkix}BSo`S)0f)o z=CvOM%gd$-VXpuh$aD8vLuBf0OeLG@;HxUO%29#Ra(}HVXxG@`T*YYeVntK*PVeTZ zDnm2fiLB#=V40k_ymu;D5>Ud(6dPDosQ_ zx!`_xkgXr@YH2$Z&$+ z$IUa5#ewJJ0o&XeREd!AUk*ujMys`mr(QqK@MGKet&lBZNl`2c)PPFF>1L-jnLKF8 z)@?64CX-4vi~uTwnJ)3T?>TXeiQj+!lDkZ2wgC#t0-&u^ zlL=4OJs~m3V{1+~ME&f#C!T;Y=VC2~JT=uaJBOwpJ( zdsA+;DWJ>ZW55ZOeoj7oAe8O#IE6%rtKA!JiCmGJXB1nK(K|~G{UBJ+Kxlo zijsV97w1O#+{|tyOPkw4i?5{*%Lcay8QL6kkIj#xW8CIk^ZCqJOz@0gth{d=pfDvC z95W|1{ETj1cf-o-9wEELLV65S5KjY|c}RFf9Up6#?=Bm;hLVLGRKy-Cy583k|BJ!ff(RvW1X^`MtBs@D0@(0akD!6IINW{Wpdii(7p ztrk&TLVoAUrsxeJF?1_U-sqvAv&y8?T5*5hTJ79pJh=+_k$dV;3LCs&)dYM@BoUm) z*iJHYidFcQ2)f0rJ&iPKlp2#2z*v9+prAd$`&!jO9r}5kq&5}ja_RB}DFXd$>9`Rp z4!BJgZwIi?a?=DaDTx({E*3TTUaQ{kfY>f4+HV3J`P;tDmYW#@h#U%h6a*FTYbH&` zbTq&3r4l_n`le!RJ(Ps43piy}hhUL!uV|OsMSo^aZ0P!lW> zp2TrpfyeX6sbPUNC|h*v8X$C&JfSnK(uKL{W1dz&jst)Gd?k`uYQbMZvDGfJUeJB^ zBrj>0;8b;Ufs3eXq)t49h8x^lYQg|u1Sv@0ubTqEitSq;wu|IBIMgHsNb9^LMjtBL z2|kfh_Bf@DDFt6oBCvke4%YJ$^_f#Eom-$rd*RwdZ~yV%{?U$uKS-X)HoxD_5uzsClVe!0b0<0-sD<9L=7>g! z3#%5lsW85T;5rR(>PEz3(G^havI<-~s6+%VCHW;$&Jf3DDwpH~G-`Rl{P3Wt+Q-Fg{0EuN}RrJ1Y6?YcK ztlY#=99@rWWTFV|p5_^Es*tA@sYSr1HO)D(rfvV^rCz&eB@}~!C5m8h&gwHZ&Pvn zDf(QwL9y7Yov7LrQZmQNLfazV(iwO{frvyb(n44OT;*1PvIX0D{aOz`=p6vjg*2pK z)XhlYT39Rae4a|i^`RBGubG=N^s^kX-5Q_Mad1udPK3z??~vHct~z5(^h&zfecy?i z13vV9uY3)M-UF`X*Pu;jR5mPCYWvo8Xb6?NrHVJQh1e6M+M6gEc4qN}$$~cNAGANX zp?#buIscPMf~F@>2qr2*Yv{e>`+bS7#Dm}HxtpBU8s4v)8*ytX$QqhZlv2~}X$b|L z_sm8I;8f*!9w@Cc`A#;9=UdqdrwRg}cdb(^^m$HLn21vFIF9Yep+K6ZN#O>FEH>q)?Ph~#1oyJv zzn-~A(?#OI>wU3!IeU)E&!giw_0C5@3A&_ssx>s7wQk_{Gb|;a@gdaHXOkzUOWgMB z8k``9c*$yr(&AKStZiFAtss52@XX{hG3_T1IFFOGy8zC!<(W&1$C`}?x!W#KN$0rk ziR0w;&BZ$7_aDzJ%I`TbLvAb*f7-tCB?@A14e$HrG(p8)t)z#%-*gZA*COjEEaYMZ ze*gUke!i{@&5A%aJqVzLC%$sF(!J;^Kzp@CDXodu;$+7fA3)&IqJZ5ZWheCdeJlmy zT=V(8=eE!N{Kxbr)5lsXqAIExkY?-0*MoT!+UHs=(6N$@=y9-Feq9&-?r%S6PEZQ| z?(crf#8MRcx|<&II6r97jbh_f*d)2B{*rh8bq_W=YirE-HFR}(JbKbuVr_bw-D4=C zoj4yoL&!3X_FpwU1$zR_{mo!9z^0voWm_u183)eN#)e!f7NH4%=NUh1zw2?ga z_j_brb%na(*#XgRMNxpR8iJPF+<#4+yzi+dQ`X`7U;C&3{eSu66V(KeH!~u3 z65{mlnWHDpuQoUyx+ z)}17`1)^sslIE`0LIB?|Zw#>_lRr!GCU)Zc=R3!0kt!iw z>m7)N_xs}EBwicunPTAO-|WxgWKdt5$9i@Lv0W(vbgpivUAHE^@NzS-i3UIF2Lv@3vHPlW4xbr$0s{=dyP+dC9hSD+S3R zcejqRMS=bq4uUHB@AEu4G0}aoP{)V;tr2sxD~ayaJqE)}B5<5NMa8jLk3Nr{4kjL@ zAIE{?=y<*EEX<$s)3^AkmV)osJ1Jat7MPm)<)Nw#e1~`tT{kTTy4nEk&YITSarTTu z?~P~&#kor~FYYfMjYeQkY=WY)aZ|)zK+dOAMFR>V0>I$pLRSS0;HW5%is*s%s94}Z z3Qh3VTv%#w);(!+%8ClT72IoPpiY4cRq2nwDMCafT93u&vgS%5SuGM|mcl}&ZU+x~ zw{y)y@BCyph;k@LpjXid0&7h4vL_^;nxmvD&V`mp5vd(((RVr!+ZE{Sa?{}6hvM{1 z-rpwA@;qyFvr8!$cSz_w(bN4wG9B|N4 zK~d2WS@^mbyT)MT`^O$nYg$g*IB4)x&igg5ZD^Xv;+DmX-A7z-)KWG|uLJ&hp4=C( zi-CJg+7Y&r?-IT4`OB^_blp*yP9bvldf)i*JW)!)_xFY0emv2SmQ&VSXUUigUk?`E z)OJlgpN~wJE-3i(`;D*XnL_z~>}2hGOd;_sdVjtyv|8|fPyF`95GdQ{ooC0bGvEAn zfV3g#{9srP&+tpSmL>r{DLG9=@xqA3TENqmQaI(%S^vH$JpA$XWF)VH*|*q33JP9-N5JI4%J%4Lru(m545_c3eU&Ef_G^J zm5S%{NL>q?05My%p1%JsxLc#)gQpu)LQ~f& z@9QGZ{XKGmx{-E0cQtqvcQVY%(~IjSe;pvLC-q+fCuucHKqfU#gBejWbr)6VOX!`r_Kg4$6bl~gjObb+I$h4e3LGMteV;@~&d9Jbd z&9%h)iu`$>c`9Qr{PyFC_n4V&^Ld7kB_X=NC%#t)DWh8Nuh)(C-~a3X{D%wCu0@)N zXWQ0oE-=jdWq~1ky&yW5;SK7F`(ZR9@}P5ZzP-T9FTT!RJQ3^?y{O8^p@UiwbLOa; ze5FGNv0jc|)1_r2$~7NcPfH{r>oag358mjpQ0l+>%=!drr3b!@r})fksfZ~1AS*?Y zwnEBdhD3Hmqx>^^-TvbNbNJ1L=OOF^yMRA)7c_Q6*lssTbpSWC@9#H`^I+IYVc66? z2GcQt>+xDD3oVo-R=Y6=lkpD_qO6|n^F^DzFW`YZ|2%Emr`yQddWh% z06T}+>dXG#9;>;qJKVKuEtyA0l-%}}n~Fg#Ma%!TQab=dqX_F%Az+6gtLmYNh&N#X zOcn+*Am-DJpypb1mroj)Q{he}r6tlo)eKg;DfzuIitmZY`+dnDmJ_We)Y%QFsbH_y zJEtP1xp`ev6ei0pEb#=n8OCyUlVazmLW%C_;G~)3U5l=tPo@T5 zgTmL=$VJWrNt6M5=rfge=KEEO8%IqS0fUu{zLz2mhLHB9i9uC{MtA~HfEh%h)Qwr}9RBZuJQHfK zfc)qIO=u2sj%z?kwFRwnTEV7x3ktK55=y>=H>pBR@PkDp5%PkfpfIGd0^OVRUTSKQ z6d_R#hJ4q1qYyAqWV5IBE4eM8HMT7z z3&Wz&BaihHu`kq^IZe`3DTmCILKHm_WRMc@daDqXWhN~#e{J?|Q3dXMq^k^@hNAolb7;s8``2XtF?;n*QHvr%l@&UKn^kY%z6Uw#1%j- zuS`H+HqeOx&xMCcY4yY<~U>6*Y-S;YVg@m02(tkIWp+AvzQFxBBE@r zIC<7vv})>wZ<_7?ir^h{<-5k|kLLmN`a?(~5r1u@A5;maDtbIrG!bB$r@VUMhM?re zOA(n}Q|wC*SX^c}eIFtrv~VQq-&DMIg=I`7CRXvx?DvYG?c>r2-DomGJo?Ga!bMH* zJ*^dcb9j%eL$yIpH3HDf!5_oxGHT-DX$LnUy;uPjWA{C1g;vbllXH21ap*F>vR^DIJrgqceP0(&gR((&scze7KIJhf5HWyv7w zX_!Q>4kD_pG0D`QsWlwuDIpFILi%XeEbL8{3lzMsOJZ!h&z)%mNgB&w%cske;$WIL|6(xvofM*+l~MeM@>6 zM`eRhgg%#2l2_jqz~V`!Efwi8PrziVsIY680Sdowc6I`QwtyHw3~!9FjR-~{?u8h^ zBK}?|V<84m#zF%~rO|%Jc1^U5Qu7>G-~nG6shlosc}@J9C?Bb<%j#U9G~^kQY%)dlF&m zxbO>=?$?YMA5;a>Wd!0$LZ^-Yc5-E0^<1&G{hO`8Ks`ktptn%Rn=Q8zYEnY*Yz`Ezc*VjXnF*bnL%{}mOvdF)u1MVt$ z+*+3w9}d}CAHAWqj-Ri$#PIP^%<|oNN)%i`CPC<2U$D%mvSEa2XWV11n}!UvwFDWO zkZWr#?%~W0tv!fxtm#45ROc3mwe5lVdk$W5W`@t9-L$d!pi_28zt0A#pegsrdR#7PKU)1e$P1J+daR~C4ALp4H`uTXIiv7OC>DK1H!d}`y zt89EIx{BNw0+GJS*L5@L)x<&-t@clL(xUHgt@MOO6x{a~j{6;_>xJ zWQ9#jRgpV$levd%PCEs%wReqniN*rtES@JtJmjB~-cxk{YV+?0UavP=tFpm*;QRH0 zEzw%tsjH9YBR62{Bv4B7l;@y-@$ozX{ha4{3W18W=j=z@K*EIFcD5G4Nc-b7in7;z zYvjhJV^r*h#fOr$4-lQl)}>HEQbf0^M?sW(@Hp#(;-P+w&UVbU6q7x%(G@Rv@rss=V~ zVYNrJQ|sD*K;1msS}NT(#zF+o0{X72VC-9*uWD%9PzJEntW%^5EV-;83AxuyZqBM)G0sEUol;RMR6s6K-&P*Fxwb?bH5zxz ziHVvnYj!rTwrgVHg7-W-`Ryz4U?TQZBec-{Bzdob=+DkGnBHs^MENjBO=2(b}9tU18o->~= zdw~t+*&dTTel}OMc;;SxiK;aQotRDuYVF4J_4UBl^ThS06W;6f=5#qfe-+~XfoLN> z1t$&H_09v%1)LFIS6>Yf= z40#jNbz~#L{~9si%PzN*Au*@E=kxJUL8zj)l^lT=9fDmpqT}WZGwy+Y9_aYBIiTQk zaI-lM)Jn<`3gAd%kFvU&x*0%Obk{Ko;6@LHMd#yW0XpVPn?h$GQ1`&;*36BRo6YNe zv1o2|3~Fi~N+Du=9A`EqbVw>V9v%JcLYk5GVq8OX@tCpLkPM;~7C5aH`1$)+9ExG`JanQB~GYD|5c@?7o03ZNKL_t&>2j1^%H?w1) zpN(F=DA@${qbD831?;#+ipY{bIvpX+2IElk?E4ow6t)nrsVQEFuo#sGZx@x!hb^5w zws?E!&}zNn=XLS3)rwUDW8LV_g7T=qqoN*-t`#>hM`ZQPfLwkBh=G7#LIGxl z82c1SBM-UdBkK(?-v$VXrLuhbCzhy52!(y$>9%VNR|kYuXT@0+RYLpDVWI zOo;%RKxMxZ1&b~R#&T!#T7C%~ofAt)zf}s{t7tHG$}u=(+7Ke}{e2M4*B(A6sTM9a zFEt9a7JM2*um)gAQxbI}=^cFRoW$DTp(=doQb9`en){P!leK32_S*}WXhq9U9eh41 zC!DHbe!dRc9|CyEE#_44ol{gz-J3eIzaBeY$0=YV)?{){gC)S@QQ5>#2|qE{^u=L$ zZO}sU>P-{8g!8(VwIcMM8W^ryA^QF??K$P|e_f4Jl`$6pGlgOgHASD+#<@6~fbUk_ zHv}eaI#W>G4B)t$*ct?d{`{vOa1Mc~oMQ|;9y|9mQc)N{RjC83g(&~)`&@RZtTDOA zxq)XL%XfK>f%p4dHseW6bx}xGtrht{|A&A5>(oKS(UlK>9lO(r0XNK4tcDfmGTmsa z3+|K?dLuvj(^X}3Bac`k2P2^=1u_C{^yOTzkRFXUSnR71kGwWi!)M$e=IVsVWsD`X zGwRDjr(+-xI>6@#4Ix(r3p6I!b+VpCV{k#DMA5jTb8=AVl zjufC+-yadkrLw@3{ojOAN%Ku#0F+*MU8ts#s915)Vo~j!w!##ZpfMTHFZaEHK0@pm$fOGe&GoV53a1WBd$D5VN%hgu@-%Ets%gA*4K3{{yIm7 zEPT(CPCi#_EQ}-8^ahwXE{Y_1E&ZMbjJcB67(gR_e9;SfbqY>XEbC2ZL*T}pJ`Nh* z+c9}S*?GcfBk#>Eg!GhX_Obk(J+6-F;)G5wmw0kO~%f%LX`<2B| zqjsU4P7F@QubebXLXtf!on+ImmKFoDqeb|A(CX*UQKuKnYg z*s;bgTL7EvU;g}qR-+h5HBc%r%S3u)L}egTN)&@eN`Mkl#~8qN)4q`Hs!-N5Y(jd; z{SFrFZD3vp;(e?p#8B zyq8T2uvqMbrc3?On7YwhyPZsa_5Pnq0WMMwGpm2hK7euWm;AB3z9Ab~Us8aASqujG zX|uaOmp$DzJte4kNUmLMNDWPLn7XIFmnL$y+Vy>hTwhF^%yLRQ zN2l#?$KrH9w;~R#s3H7;3+ytF*oDIPabgbO$K!7Np^v=m^1{@Zyo$%$Ab`dCsUW1R z_qS|$ISqNlk#Z9E8w*I{yFAx)V@^(jO5(KY>|<$Hy#5yIuCvjx@bjbiy!qdvhzz2h zucP5le||1%O{wG!+kvKC16!?2C~m;RfB}VyMErgJ*_`5P^CR(?*RtoBE+y79RqD8R;?NQIiGD(cU1GMO~zo45Zy8*O~uG)`cK*0Cl^=W)@AZ1j&H zHSIGg*8A$dzn&Uk0aIn@oo{wG6a^R^@GdC_nMsWN(87&Mp$U}|#3{b?IZwtz8 zQ(~*8xSv+Dwkk(JIX7$?P2;qPxHX16UA-g!^WXmZ>q1O~l7~0asj*a{KrkdA4UmVL zfW=8NPt-}NF2;e|jRaZFD&DAq8*?NEle8({-<%M+s9+l_K!Y#wxSdGk?6Ok-VxqT( zVwz6GLOteSLExRS4|*Aj3rWz#*`3$c@oq;q9oAI>>!Scao0jbAh zF1qLB&$2h@XX>dpXi`JOi&reMix6l*nV-#t;IU>~|2+o9U(fwPzx8%gke~wizi+^n zwUh3Fqmvo>fQ52Kx_Njx-87+;??ge{_5t_AU|A`4bJR^yxWiI>4bZ*x)W*R+pT6(5 z&h&IQWn>G znv#>&RA2=pWyfkO5Jr@uF%`%%4R&ctB6k}01#~uW@~r?zt(bOJCOEZI%)*UUYE6FDt6q`GZYt<8;158SOd~glf&Br5)ok9LtVvo3@pK!X*Ix< zJJV!Q92({7vw07<3x#(t7ZogYM03j$t7d;a{=iLjh)xayFBF+dFx!G?`@{-`B0q@N zIh%d#C+0~T(MXB=znT#zUL^`tbe$7PjWb8z+N10o6Hrl4E_D+xA3+cL(4HKaOoffP zGy`mowOS`dj1>IxJhOYqR&H(01e+Rbvq-t37@EzaQiM~MO{RXPl;#Od3zi;P;qN6q^jz!_zty}b8;{3^@7JOCFL0e5&wZC(fX(;& zyw(}R)Kg6i!TKU}4qR84V@&+PCU?fvvxYznf;ac{0&6euJ_y_Zh$$rz36H(vx&|Ji zZd{r=n!-Y)J&THjwFmgQeZSA8y9pJ=4ym&S!RWEih^c0Wr`rmqeO+rRXUCSQ>pHK#>c6HbFX_mlw5mR{ zn^CO=-`}K;<(g&hd{bnQZvH-08}S@3e{gymlddtyu_$;cF=aheGYoCOr!+5|Bq%FH z>p3+Qyf~^=Yuf({7RXhPiv1b4z&KT{-;+gxtEeks>HU^)h)i8NH(i>5l6gM(RCj%Y` zwA!m^y{*HH^bsO0*JV*h$8j7g%IVA6$3)pS3^=-;FaAs+%Rd9Jj<2W7$8lWPb|tut zdo+8U7p>?%US=a7EBr?kmVMuZl=FKxah*#k3pwz3k7z|jYeMSP+1omh|5icW8eZ== zg}FkfJ*GAf@B8~rk?pvBynD0r5LUN50Brk?RO>xqLM*g(4BB8et;sR(F)*1+K@@M0 zi#P|-x6n03XbKQ=;t_ZDmtVdx0X&`$0HkOg#|8H;6C9P1uYMQpEV#;AU*~y}veKLE zFTwjFh5NQ`xEhn+EV4A}?&7$X$_5cUB*(M}nZM2tN>8bog(@ue8A7AfY^?WcuJks8RJ-82rH5+wJtpKcd ze+X$b4d%EmAQ8nz9!OX z`ZblP8zojWJe{$i_s8h!1Uk8+v-4{*GOu+4*FoA*nsU>cKtJf7VczLEI#4n~B6=1U z1F5JW=u`9)xs`?XEImsE*1_(W^Hl6O#^h~>Ede+3J!Cm}3C(S~hxY9bOw^pj{bhl- z@AWn)!9bt)L}zKb)XbHfSI7@QH1gEnzd9T8U!FVK zxE;G}rM&NDSre9;7p?E~bZJhZlml}H&URDtmZQcPc=wLRjvA2zzrWt==d?a#cpzXx zR2c_4J!J=IK%~eHm6{(-YXnd|c21Q$$N{Imh?I$~6g>A$dyWd`lnBH@>rl^?$&;dh zYCkj53(#(GjDbJ@`MHYKBCVOhq)_3-U>{zeC(oSVNXsyR^XxdU3$1tjc10`@FC=0vH0Re6N_}@cZkao+xo`JhpAwFB8@7 zOO!q5#N)BksZDFiR?ZyuvDW*S-+tmB{)fM?0k|3|Uwtgf;irS%E$Y659BJgBMAj^- z@SN*ivQ~x;R%TEzeb??n@8eweIREoM{`FVe;S7z5Q~vPm)@I@j#a1=G0i;lv`f-aA zeb9QPZChRA>YORgvjD)wKF8EViDC>S@ft@W5?6BOrZ4sQoF3PN4y=%8I>RGeczaV{ z-O#jsnQSQsL*9k-|!^X9g52V;kPdyOUx%@!Bm zo%^;d0?8lG3-RO_#$!j*F#7Q5FRe}drqNU(y&oIU7%Q1@YC1u8lS>XVeIWqHajwO< zZ56NAsSWP#63^qJ-{^Vi9un1Q7e{x#4^GlFYGMyn3m4}!{U_w-e4^I8#6bF1i>?5~ z5=hm$QM@N4*N2K8Cib2F!DW*UB7j`0EFl>?Oge{tZxG3)g%bl9&a})z9(!nhHf{O~rx_B-@-`^0n<9E0MQs35bdF z>}!pFzYhF(J~2DB8p}Ra1&gN*Y#KcMxVw4CsTcNAOW?|pSt9PpWg=&Kha;F`v#<&wv!wy6zo8;4%l~x@H{CGTYoOGCaJebqs2@fYh zftnMZ&z<@Kp_MgfJoXL8MTGSAz82>`r`xUPbzUmC2%J0~+{@bN*h*cKqN@#93{Ue2 zPF~*aqMhP|id*jWZHyHVw{4teoF~t`=W|D`8NYwOV7<+qmBIUWogKDy+;)mGn~>zO zniJ*71g%OP(qvSeK$Vf&xpWfC5iCOd>MlSJ3!xw4bnnWkAjq1T%2{M3tIv8}q+KQL z%Xa1}DdFquLG2dUbZ)hBZvyv^0j@`z20S0kZSl13Y8_u+J8XgKv)x5&O82z}fM0%j z;!yMSd{mwL*2?fKJkF-Qfzz^2H@e5pJfGM5#Mjrx=4cFt)J@i>S(9hG<6Z6YAQBJJ zTg)EtS-`28EM8UNk2$gLb(xL4UMJs6O-_%a;rSpaFb4&&u6wJ%s8F3`Mha}AL<|-bfdliH-DPl*`?_9!0mR? zuG@;LHM(U$+}QvA^SLl5mshIQ0GK8R42jfCeX$$xQf1@j6MAE{Q;50$i+U3lyWNxs z`YZ#OcKJ~XVqno9<|Loa(+68f-Dq3jY8T8~r^s@^DY8>DP9xhaO76e|q|o0Lm1j(R zChOiKS@IG2Glck0fT1;;go7E@1aL!-bA|N*Uj;qLx-|PlMN2V>W--n zuDMzq<=xj>_V=FjBmHB;RqH}OH~}fkKF$s)pBA5(60ZdvCf+Kn-DsN2$4LjLVF*!w zfc4ygAY!KGZXHBwN)T9-80!>n@sE(!uxMI*b&assWG-$od~0n{wo>MlsMLh0z(^f4 zbAQT@3KSr33D-E0s|CVyp}~u@E>s((=xYFkM4LP-xu*0}6j7(P0wl3T2loay<8w@u$-Q#)p`SC?A;yF3cD0Jo*G<2(M59>+1EWoHxOKfT z_1qCiYM|XD&bW0;+{dW_FkOqmuyGe)BQ&kT$`)AC=ir~2*0_Exo4Py4gW4-LdN-;@ zdS=*f9*Ut4x~{Z2gj}0EE56s>5=$2A9QtkJh`Ij$ zm)t1al%5xZn`+JyyW3h-_t?eB7>hP$;a)CD0&XIShtgSFAInykM-$hoIl-R5I`3oO zD0pV0t#Q8U2I`W^nuHNlV(^ninK>m2|ANRO0(Ura{$Or zaok!1?=?efwSEA2A$Kiv>?2rYZt^RiI;$9rlomi>7p0-K{Cw`P7Ne9vL|#R)g}im+ z?>QOZd5W6G1hoCl`%#-i|J%)KyIQVKsgI_$bKD^`#>VthHsqq!Cm|$dyZ87E5bWR9D!0 zUk7XdKx6$v(VmgN$hqFuNQOlpizlOY_GMkDl*FOOajM`ZB6c;osF3`**2Vs$RbNVU z?Xl>2t|Bx!K#cuWK_6##E5dgl9PxA#fb0ghd-0966<=y)0i~>S6*@_F~(< z(RpBU1lBb*^18FK-Ij`x@DmoF_$* zG7t&huQyW@W2#7p&;;@~uijKpnAZ*O8VhOv6zhJ{xb9J$x$l`Ae;sxR3awnUQ-ExQ zhlj+rSD!v=>dMEv(b(XrxvRA@{WjAF*ZjgUCeGth${r_8*U`|s8#t2i!eY2rqx zbq!+-Jf0Qi7Mr{Hdc9$R?9{k;1{)klccP*7bn+^3@ zDO%n$@|IDa6*CPW4UB#=vR-?V$Lc=3U2LbEc_OC!P-kNvt5E_H(nv_~I;1F@!9qI7 zBM>Dawv4ECfYv^6>KSE(H24oHxe*Y2)UxQ;*=4EP7pZ?36ZvBl4c%-1tT};(iS($LyY5pZt%rW?NxW99cbHieMB8m& zIb#BS@{p^Aw6;m^zftH^GEhGz$eJpTIWR?eB<)5Wm0Ft50-U-Yy3v%Juy52+l}u_# z4&axsZP6O`eaGv#P-_zJ7f7O1wK0}>E>gnx`&a=+o~%&Z*MzoK{QN%Gy^PG%%dV-$ z1odg#$C+_7o^w^=H}il=*=Vv?o!E*%o1Dm}pGJH69u}RCj+h_rnE0ogf!&=4=}p)&$! zZ=AwBsK0BIg)35Ef9^O;*-!vkN`cu2Hn~T&56Y1PqkjMSLe+jjkdg>^h_?CIs(=In zt5qPwm;jBRZmoceap#r14{9Oa$F(#Ry|J0wx5|`tNTW4qk!z5E&Ph{$|6~(bsOj6c zg8JCj^owC*qWfGFfZ71TVAl8hAjJ(>g?fsF*ZV>ro!s-7bVt(jwvK@{&xHgwnpf-i z@#CQ#;5Kq7Sr*VaW8XHU#Q*>8_cvZIHklLB64Z~W^%yJYi>3sD=cC?8eZ;yq<)g`% zQ-&7*^tXTeYZr=9O1;G!$*4LX;?%fw&cP8d)ZNZlJfqJ}7xIN6dMOXtZCfu+q=Y6h z9s+9wOQE2G2DU1MjAIFeoIF|=DwkArONs@B*~|%e5$k3q)EwKlgR*T~@79GEO1Cp1!Lswxoj-Q9?CFMcq8p9!}vg6_=-bE35i zitxbu&5io;wJ%qxHi2#1bx=`r@c4SrWn<^`ZOjf#p&M@&w-&yoW+l; zVZvmBrzkSF2=)d*Py%TNMr#`?P9R0*wW?{OBhx(%Dmi1e8|ei|Ny@eG8Z?dU zgxnWhraUXKC8S!|glA0@Chu?5Bx8ZRGArsq$4a3o zU@JX?KW8I-AQ{~kc;ffseO?GShvg2Vb1JHN-lLC&CU47+8)%J`gMHgX`{+z^#2wIM z0p-<(Yy(vgE?^+mROh@p-U@X}n*5C^>&o77ULF7HFJB7Bn)vxhldk=JUTf-}giucHiRX2pT?3EDw$}d`9ZqTg`r21AZ0`f#-zT1r z9o91a(0){FW|)o&(Ubzm+3}|zkB=!Ni*=tT=VeVEg@|>_sHT2&JCzX73fwlFOP8Xv zr3nzcE;^WaN;xJ-kEsN_E=^NMrxRC|E`kDcP1iMb*|rVl$NOw{LTw}kE>1mvO(N{= z?xNO$Ng(7(lySbgCN2b}_H9D~mKXfg_x$noz}ct?D6+TY=SmB~cd!{WSzG~8s#|{l z{YCraoO!Ol^u)>8>yVzXBy5$_{^!?@@7E!^HdzbbuM^LG zLn)+h~q44Q0L1eeD;yEP-!>q|f#6oW!k4|2kYyvZp?>UHuBNreF zEMQ?;<0fRX(04oEe02vyP3`{NtjX?pkw^NSONhwT? zbO*hZTyeM?4{qRrv}_wa^)N@d^|p#GA{pdWm!c3V(ImK8-y=DIsAKC5k9}7mN)GQB zd`VKG6{7v>uj>*m%IgBlk%s{c6@AJJxw5%4<)GV6ur+y{Zi_n>DM*(JH9oklCn;Pt zb?0_Wd5d?yKX$y{hsM($9Xjkv>sn2TsX2>YH06>oSctI66dzX{xf^LR?I|y6Of_#= zwp^;?|G)u9PAK~(G>W#5F?|OFhU=P!g zbck@Xzo-=f6u!YjhXp0a`bNy>lm(@Dh#k0*}>WsjN2w=;|gJuFn zUivA5e)C|HIVW=&hQ3!SwBAIr0GJKTo!)rc5a)U8q;ksl6jRD=a2TNDn}Jg zJJO=yENxPR;_0#8vDOJWI3(wNToRXiB1N0Sl1P2{<;NF(zD{}0lbX}VpleBM`1yU{ z&wu)oIFeH#PuQwOoYy5+CGOQl`i|ZQ4*#slg1&fiR@iKPzfT}+F?b8VKf`V|h1&G4 z)Kfj*!0lvHE6?R&xE(AIkBgSQZBAS#=^az&*N^9p@AtX(Xi^deemp6tL}I{GTU3R+ z;KjTXCL;pR=O)@BjSc#^i{ID#MDI*uwIf!ob^@Z9d4dT1OK2=JSr|IkTE~y)LyjcW z6AfiS*jdQ$ji9$_s)$$42% z2242)3dpyt2J=n~{-o*Dy^;^<+r*CmG8@$$PzIX)*w1oD6U_y6;+hW(Q`$-{oq>ICUJ<8fC4$Ri7eWN4wg@DGpQr8O4Nee_ev2YI7=Y1FT2WO?^1EG#!#?9ER;M3`Ds%$ zp-Xe?TfizMH3eomV9+pS@7>Qbx#CKsqBlQU_t zXx&(JwqYR$7d$Xmk;>6-7IM?EZTq5WWLf4>l%b+=PPE=s%u+zICiW>-Fi#-VA$M{8 zl8VQ)xRK_lnV;s>=!TKa*p$dO7V^L%hR@)-t~KQ_EyE23X<}({oxL6yLiG_2g{cEi z$Z(LSXA8`!O>118B(dPcXn^<3e&ZIF1^6Nx70p@2qUcb5R|cl3$%{(FNz#yY>0Dyb zl_CtlzW%;XV|2xqxAiVqNSjMq!n;~Gp_X?uP%FLny{-<4&?5LV_k9<2!cFaYQ(JHg z2Axj4Zw1G3E$h)uX}#BVkp?yv5WPY;{0_RI^p;|$j-e^WajLLN)FfP|?IG>wE3x0; zGfX)Ug&xz9xq-x%(1NH8cjdUJ7hn7G`=cR-dl_pMPlBAl^7YTE$Rd;1pA%_+tzd=^`*D<~3#Km@(T# z?m$gx6;NxlHXt;{@(Z5=X8cb~XhM_#-QyIZ_egXW`jsX>zq#x>HrN#8peR`TlMDVi zCn-AQFd+x^H1v+<_i}VP_w2d!SY5@v5zwUXQEOg%yDkBTra$X`yLl6bH|M}!3u$C2 z>F3MzLHpV7-!IzTd8(vIUQWE$O`$qPMcs4fp>CboB{KkvP`L+&CM%o}Aki7;eK4CM zM30IjOXidm*vEa4HjY?Dw)f9XPGUsDCr*u=n|GEBN{QTW4lkB2%OD{{FSFF>oDV zP%S4~O;Q+5-PHA|EsR?WGF5bX@1hIh6peU_N#XD%2thwreRG@_c;rg+qQbdY+X01e z3UnJ|VpCn5i-f3O`_dD7m2C?BySj93IvWwBfYZiv$f}orXAFz)*`$@6@IEgwQ3N=u zA+uQn!6+J)oUJ4O$N%uxUy+n-ItIq*NWsNYl}cs7j8R2yzGI==1e))g3J}pb#rrdI z{Cs>Z!Izyw%#k;b+oR>a9v~OBgJuAaY;@tjmI8DQzO$=t;5)^()aa1t|+Gf~)W zQ&a3Pt$ynimMavvN%uMK0#t`tk#K$j;-KEh#wpv<6oIk}U`P{XBeyo!gjo~vMqlt; zGEkDxZ7om*u*?*|o-kERb1D{cXBk4C>3xnM)#;MpEK47fQljl+fEJT+7bh0v(L-6D z+Ud?gD56b-xasX`h}8z%zu3qn4BJ1dk#`rIQUKQgq*I8gdUNP&l}sA?yB3DWoT?Mk zqTR50agKlvF-+9GkcN|uo=+g(*Vfw|I=95^fSxVr{q8eDd+?Z(^vK?cn(O+ZLLCA+ z+-wX9bYtGW>qB3Yi;M*(>1tW$ofAoI0I+YB+*ECP=g}4)c7laSsZL646pR)d3GnCQ z17&kFZbTCRX)`Jef4Ks7#7*A*{gsz2Y%1pU*ro~wMe{0-hYApy*RO{*OaWw(}+B>~g zTOW9fqIc(;usCyr`aZ6E>XQY835;aHFDEHTNG^&DpyzbmK}z94oIN=tm{(Nq$$(gwC?Wc7!%`$AI={oVYAl|K~ z`e+u1>WZ>66?l`l`#3rEul45L`{%nhum;D1<5~%2_YfgT$eX|x)1s5Z0qL(d>$U@dDNTrvVTkHXYOR^XL%fY9OrtezrSDDAN21> z%;lcr#Z^kZ3nx!VG`^w$jO!yOB4E8cbxs@D#_@2KD&43Ug;(-4Pb?q-dE2(OC^&9* z5Jb_+R+d6MsW2j<#IJGs9q(5?0Pqw+-UkL0#nLzOem-|;pflSLXf;ac-^(DN!-e3=~P1> zB$tN8{!?Byn~INc=yHRHluqAE;ahBOc1a48nN9H$Gl z?t-9uXCPgl+P7{!0rMZY9knqS3Ib6UCOMIdo;7c4wwyJ}jexdx?I#qJrCjB>G*R5R z573HI&F35wC>hr^81OWC4+1>Iy1q65icU{j3(lCbZcPg@k3nieQzJ7K3^rvi7Zb=x z=x3)ZPmX0nn&Y;HMBzIgGtiID35!6AnDo34P;g)OjZ>IDR4hnO0-zwRgB-9wGt(Vo z6_1neX0pgX77x|@k^VS@X-4GejRJC;k&Pd z%aWG+%;=;PY+J>7U5gTv64(7hW(>zk>f-mi-S0?F3w;Jc5%hstk^<-^US|_+gEUP9 zR+!a!br!Lrjk);GB?F>J9HK>ZfqppxkDdEY8xvn&8-DvfSTyE4TxQ$2r_Er2Zt?8Z z+wxX7S3ISlUEZ+%z$y)|cl}-Y`!6x^dC`vYpf+H+p=dp=bkDdG$AwVhR63~xzzjZF zm&*eo}hU(zTV6^>fB8 z1kNg;FM6UM=f%vN=J2JA@7IY?jWpC;6;X3ocVyis{@bEkPen<6P72}DJFJG`x;lRQ z`Nl85JZZUUT4m;$dK}lvzIn)1>}*XmQmk{FgP&Lc)N+VZM##2RTx~8Y&T(G+{hjYi zii~#gGgoN=Jpo`tPforkGKs|x&eqV?0Pl5^-XyP3sOLl1d{XyeU-{Nq-+C(WdY@~8 zQ%YtdH$DB!t2PX9%^@^lnG;{n$Fd}EV<7*R|Kor8H4^QpC~onAWQ)OhQ#Zt~G$QTp zLcj{bWB3Ri#zYjUpbZL6D?M&qklXIa$huuf>?#qfScVkF_h^eq<5-KCopLp>%Ilou z7#`XL)x&-u%vTEKH5+dNRNytE@tS=x&jN&6rd>FT_(y@to5d2RUue z_tP(G@1*EBVV3rE_lxYYUfl{JEYiCGqJwQ(h>bQ5GLM4xG3*B_1T( zzENoN*w-{CaNDQWN>qp&Irob!9yt*VH|`&k4;31STQnG&ko7)Q%w*V6>J#-O?W(K| zoO?v9d-M4505r@hHDPi=pwBMUb93T zz*HhP=A_@e95s?q?y2{HsCil(DVFEG3sxhd%cMbt z;|$8_f&}G8~G3EeMkqn z(d(^d7AyK(eaLA?Q*jr2+^6WKLhVw)wiW#TeJo(33v|0D>UU1ZA>Z+(@6z7U!6xZY zv3E8WYb-#enUQxsUEX+Y=h+q~9N;AQ?iX1010v4c$z}MFo-p7UaL7;_G?7RLjJK#8* zrY)f?12#+i{a9x?Ynr@7uC)sB-YXuDZ80>OEJGob*)(6*k(b<5JbAFisB0hV2|T4B zm^qiN=_%JGQ?e#Bi4C7ae3qLVw{$Z)ZrfKn-Xu}KHtntNqb;xZE(b88`BRfEXiX)2 zJ-=X2|Hl#+7wig|D$+ovV7-y$VAs2W$g<8z3+elyU^xF@|Nh_niphe_#fUc@3Ic>m z+aEhDNJ{I*PX!085GRn%ky1hz6@yM0j*8_CxBZck$}Vw2wsK9_$l4iYwY06HP_f@>g5|Qn(Q5&G@>udq7g9{f0Z8e zW2LdKDS(SV$lp6#lZ6%dO2U39-Ne6^!61LiO_>w)s zJ4n+RtB~gO#0^nW=cfq^uxL3e6loQ+M1kB`OaNQmh3fi%oNMIe!xfS4mv_u%u@ss2 zeU6)Nem2@78cnny#Z6YIEAYsP2=E;<%>o}p$Tc}(Gw3NrTAlrIHX-I%jiKE zjAggQm}q(X)*|aGuCG$>(PIJy&89ZcY3G8it46oWMV51c3*w@&pvKsqu&7|zYFWJY z^Sag=r<=uG-ue-DXp5~EyV7YrNeUreEFiXpnj5v|2(&5S=|g{^U*?NXZRkVAmZy8( z-vdc-eX|?NHxyh^R&sO2&4`qO?d)Ap=|G@!;FEcec0zi zQBH(E%WT?{y2XaPB!e6d=~`FFt^+f8@4Cj*3F3aIKxj&Zlu&j#U&sco9eg))N_1_} z_scReKoCSoM!fV{ODSx6b#~Y)6vKg5Y*upI;8D#9{gM&EWCLT6scvO86AUe~V+Yr2 zN-WY_pNopN$pvR%;;~mo%11C$E>7de|W?hQ25@I;Qe8q0k~G}Tj< zu{GafT)#sWo7%u2R5Lst^b~JGpiMW*h2|8k>lp_p#%bAr2Wo1q1w4STP2mTHHvVjoW+LTvALd{M9JIjdS?2c z*Su3x9ggHsyNKYKsOFCp6IqO_*~m&eMi5|`rkxI+OQqx`^iC0YJnEW=I7p1)n+e-a zH>pdti~+1j1YDgE>-1g&iaFhB<|z|+>}{Zrdva?bbS;_24cDbGHNAiN&WuSBtH}2= zaxkEqhN1O6=9GPODBp+gS1Adv^AzoHAQictScv9m{%Q*<6)yBUr$=&| z6Hy9}s7wnxqr)@O8kyWt$qA;^xS5)>FOID5;hYpe@|oNl#?=NelOpK(G8OUECoFbS zBNf4r1AV{qy4M12t{R$nt+cx8Ok7mKyH>vz?p7;~O!Hyf#>tdTm=;~HxhCS zXLgN@XUwG`7=RELISa^{Vl+AvCxT zkjPLG#LZi-5LaWU#~|`VHz^h)Zn%biwhK3EV8m%Gn*L=@Z)^?O=N(96yR@~D)+#py z@yCZ<6nK!;Oysg?eFA~w&1uyb^s+9SrcR0X(G$l=5`6|JoGgL-sF>LzGZw@#eF*5C z*WqK7oe;89cS-h-P*EgQj}2l***E&DM_@+62wdtn~3 z!=;j%o^WB>CVHc|Z;XMepdC6C@!ws*!j==z2a2g%gJ|LVXsCNdl@RVc8Ufhdw!p|2cJg9S~!+WXPjDZ z(17%#H)<(t#Lk9XXaZsI4XPQ>v#kW-NP*+(v;vio{jEQLJ{}98$^YqZ|MpiqjP%h( zt#pJuH?_KL7&7Uf^G1!g$~f5bJfW%$7C#P1VJoyJSK2YoF@&hzwu?aAVK91dw!(?5 z^f47_Owodn^*il#+cvazt%746wl2Ibd%pI?h2FM}-LXCw$BP-5MiclTPlZ&BaVJok ztE9IQ9_YH*LAw1@Q%b1&z7`7OZJ7kt$KU}hgmrdyzwD6Nxz?>LaZ(azm(&Pxs3gw3 zPL4zo4pWLX!Jv~*T7}o*{$1<}-54-gt}Q;f*Mj}ClPEBpluT{hSOw+d@mL#G#D^VZ zzn`5QaZ*mmiA_XA5ZS#N-sdH6Z;CT%!8BFOeMAs{zfn@5^;pV8jU{$m;#{G&2>IBL z+r?z4DE7K?=Uyv$cXiv50xKHXjhp}bI1W7aof~hX9U*=7FKwJU(D#DlIMz71Dv6fw z3)jid?-zc2J&;1ET4EBg5s}AZr)6Zx_T)K){b?;F~6VUw@25o241x){0-DQK#pDTD6ydA5&a)sCx8Ja+;Qrc~I5uH-_b zv+%I*m?)33(Dsxw=_x{U$LK2wZ;Vh;>mAO;Q~EdnV@(cMgAsAN%BYzj=a@}d+4Axy z2Y|GdC9s^spo!nJftnJ=sp;p{G22*Fk2xkXc<81Hp~VCQ%%6v*Ea<$iy$=aZMLX%* zzf|l`@aOkF5yef97NU6H6LX=gNyQ)=&$%YEkk){s;cbQUO>t2-g|(yUABTz60U1t%L#pAHMR~{GXfY9f7o9FL?!)a??c@6K}7%S$p9zvbSo(*ePDl( zdUp*PJzTA=#^UT<6d5*)IVBt?ErP$k9)+i^*CTd{j$a=&bbxbKZz9a8F5WTe?3gY}b2< z?r4Xd=hu#_)B5uH+;FLwE~YRhPwh=z9c!YPMHBk%=W9_ZZgjWYfmuG+K;ZBDeW=#q z8sXW)hNr6NXD&(>&=zupxy?6nO6y&DJa+v4df&CtURlpbAiBx&_B@-W+??V(pZi)v zPUC#+8^H-%F(dHHFHg)#%fq^r6`W-UI_R9Y>x`$X2vR(L`^h!q9DsH;q>^MpFjfk> zC-ioKv0(S>i_N9M#U_dt8{L8L*NJ`8nR{O1m#06RZ3d13Ha!k|`g&}@n2QpdD`{p+ z#IMOuAGEpbn!aCctbO!6FRlgAQfn#rdTz@&gSO5D33JK#`6ej#r>`fj*6{s(pwztV zYfI)tkmE`|Gbvu~av-?K&(q zN?!#HM_ne*r<50g9x4#|d$ct3h-Xf)@E=0Vr@dCS_?x1I6YZH&VyF2&Pjco}+?zj3 z!AV}c=%O+6_v^*tRK>E2u=!J|qZg>)NdyAW}AA!3eus zAzagmn0NA>7q?Ma+lxU9Gy>Rn3S=!@FItS9v)zb3d4g`bSCKgYCkEN z+JHfu&?S-^10nYuXwS3w*{%pvnj){E-~!`5wpIFPheo{O0~>iCxM^Ifj(PZB4Mk&^ ziOC!QPl$#lJs>cWQbIo)TpBry$XOmqm4_`Madf1uvT4i-F($6px!!qOvsA$Ka8_sOL4vyugTw`9p zzfs_E)%42^xL6$b{mnvLP0MhCsJYlkz|ZfK&DCTWO$s1Hm5I#8aY)T+#}d9P6A%jS zj0y6m`Mhhssgtx5P`hRKr#n=}=EpZG-{+EXL@=e{pG%(fLAm+3jOiws~ZnYu7p zymH-=UUQlX8o;-TD7%3iSL5|gI>ekG(}=nDwsa%E*|x@-5+zdX_O0SLn?56V_Di(} zX%4}JQ>7f6#z_z=kj3SHeyPdO25gYenz-X^tN3@ph-s}?ULaGkOVs4=2e9_2$G#z{ z&|hb}&VwX@JKwjon&7Ox!TBcvHVD}Q;67G!JI284IPl}^$@giAa|mF6zfUq4dd z=g&8u&z;lNATX1)|Gy7Uu}RNOCE@4y8!2Q}s;OHa)=Cfv+O_X^FIi4Sy0507hPL0S z1EKe^1jVaf)AZYVK%Z}?0*(XWQ0k@><%2c$7;^n-OX%#dH`aCMEyjKyEZmd0#-vu*(>g5QLgO3Yj@kqaJhWL&no7Hr4|JD`HeFU{(##8p-L+2WrM zr+VH8l+kd&Jba5J`TIHZg?4df#|Pj>^t_RVTXc1t=B~HJAHGGeG1*Dm1)@}jBK3X? zSy&WnP%~^rBD+c5o3d4%Ql$DAg>_Nn=Rsxl26NR+S>XM~qFCh54bxmM70>1x^FGtY zuZz~fm#7Mrq+Mia6EZJt>hDZY>{A!zLxqCiHKX`WwHyO#W+bv2wx6oh2uKzGNs}TC z=H3t|WUUkypvs0Ye8|#T3gG5g3I#p(&vz3;p-B}Nu&pA;n-slOZ-HlB_hps^4}?*nPAX%@$Gj3r*oIRV*z z{d(`fLp;FZBZV)7MKn}62f*Sd5~niSACta`FJ0RW$^fDfGR_e|qg7`l`mEb_F$;lD zI&4cVXlK{FjPJtd#EpFDyLh7zI*?R+1c2Vy*iIL0>DKQ+2YIfU9QUgISo>B0=m4S* zptDiO0AkR2#)W#0(Eszf@IDBj04bUVR=jt(h^wOUxB$T|9d{ za@wbOutdt=Cku=*$KvJYOm_>1h`G39)cjl^jSGxB6m71e%}rD(3|JbIP00HqCw~CT ztKH|m_tl{S6TvKlt94}*$odbODhe_0V^Tn!JbkAH>Q*VTj3q)Zi=8+EPI+lM>?de8Iv96!DuoI;DkuU8bNCfYNdNVsf7MW31Cx*bXdUUWcB z#j4J?ZKGA68=0$jfgQJt3xe-TmzTG72%I3($)s>V2%BCe}05`_QS4VBPbv%hBfcwJ&mv>3!nsxzo7^_yD0a5mB9V zc2k>q4O^*;{s_JE@8hDY83Oj?-}j2+o2H#xA9p{DXBx^shz@kzfmTzFi28anMHcHr6BDGg?2|*yDs@!MD5#nex+bFt`*svu zx(@A5OU=^?t^ z8tvvHre269M5{~H-`BLjX?~vCI4mPTuhmlWAJ>Br6gM>s{fAK;Cnw%^jZTNnDczx6 z65Mk9E(Z=I1EfTM6|O{UxsQ>*HkS#|uR2i+5#ai$YKrLy5qKSkrW&{YVR@9R*f<+) z>INhr)ca^>q^##Ug#MILmT0SNmAt{svg};imRM6ABjYy`YYOeqi%?ahyGBrH3Q?#W+-LSZ31`0X%F@kEP#DV1c-7QBpHnf DEaF`oe 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�fnFWEo}fICbqdNAGp**U&02#k>pfQy#0qd!no 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

    opG-w@_Z%! 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Üvuw4GkoZ(LAl8(9c2{53Lxk@!w1O7!^D@D`uG<9 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 zඝ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 Date: Mon, 10 Aug 2026 15:31:48 +0900 Subject: [PATCH 02/48] transfer vision datasets benchmarks and compilation --- benchmark/__init__.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 benchmark/__init__.py diff --git a/benchmark/__init__.py b/benchmark/__init__.py new file mode 100644 index 0000000..4e91524 --- /dev/null +++ b/benchmark/__init__.py @@ -0,0 +1 @@ +"""Dataset and performance benchmark tools for Mobilint Vision.""" From fe9fc498abc5a0862b3abb2369b51465370a1099 Mon Sep 17 00:00:00 2001 From: jinman Date: Mon, 10 Aug 2026 15:32:00 +0900 Subject: [PATCH 03/48] transfer vision datasets benchmarks and compilation --- .agents/skills/mblt-vision-readme/SKILL.md | 39 + .agents/skills/mblt-vision/SKILL.md | 62 + .claude/skills/mblt-vision-readme/SKILL.md | 9 + .claude/skills/mblt-vision/SKILL.md | 9 + AGENTS.md | 36 +- CLAUDE.md | 3 + README.md | 74 +- benchmark/common/__init__.py | 1 + benchmark/common/argparse_utils.py | 106 + benchmark/common/chart_utils.py | 146 + benchmark/common/io_utils.py | 64 + benchmark/common/summary_utils.py | 770 ++++++ benchmark/vision/README.md | 62 + benchmark/vision/__init__.py | 1 + benchmark/vision/benchmark_vision_models.py | 452 +++ benchmark/vision/compare_benchmark_results.py | 179 ++ benchmark/vision/organize_ade20k.py | 22 + benchmark/vision/organize_cityscapes.py | 40 + benchmark/vision/organize_coco.py | 44 + benchmark/vision/organize_dotav1.py | 35 + benchmark/vision/organize_imagenet.py | 45 + benchmark/vision/organize_nyu_depth.py | 29 + benchmark/vision/organize_widerface.py | 42 + compile/vision/README.md | 119 + compile/vision/make_ade20k_subset.py | 47 + compile/vision/make_cityscapes_subset.py | 49 + compile/vision/make_coco_subset.py | 47 + compile/vision/make_dotav1_subset.py | 45 + compile/vision/make_imagenet_subset.py | 52 + compile/vision/make_nyu_depth_subset.py | 49 + compile/vision/make_widerface_subset.py | 52 + compile/vision/vision_model_compile.py | 83 + mblt_vision/README.md | 480 ++-- mblt_vision/compile/__init__.py | 21 + mblt_vision/compile/vision.py | 981 +++++++ mblt_vision/utils/datasets/__init__.py | 63 +- mblt_vision/utils/datasets/dataloader.py | 928 +++++++ mblt_vision/utils/datasets/organizer.py | 1567 +++++++++++ mblt_vision/utils/datasets/readiness.py | 368 +++ mblt_vision/utils/evaluation/__init__.py | 51 + mblt_vision/utils/evaluation/_result.py | 22 + mblt_vision/utils/evaluation/eval_ade20k.py | 290 ++ .../utils/evaluation/eval_cityscapes.py | 32 + mblt_vision/utils/evaluation/eval_coco.py | 276 ++ mblt_vision/utils/evaluation/eval_dota.py | 621 +++++ mblt_vision/utils/evaluation/eval_imagenet.py | 117 + .../utils/evaluation/eval_nyu_depth.py | 160 ++ .../utils/evaluation/eval_widerface.py | 382 +++ pyproject.toml | 13 + tests/TEST.md | 24 +- tests/test_api.py | 56 + tests/test_benchmark_vision.py | 321 +++ tests/test_compile_vision.py | 873 ++++++ tests/test_dataset_organizer.py | 1002 +++++++ tests/test_dataset_readiness.py | 296 ++ tests/test_depth_estimation.py | 94 + tests/test_face_detection.py | 123 + tests/test_model_aliasing.py | 40 + tests/test_model_metadata.py | 42 + tests/test_mxq_inference.py | 25 + tests/test_onnx_classification.py | 40 + tests/test_onnx_yolo.py | 54 + tests/test_postprocess_hierarchy.py | 123 + tests/test_preprocess_validation.py | 86 + tests/test_resnet50.py | 109 - tests/test_results.py | 179 ++ tests/test_semantic_segmentation.py | 144 + tests/test_vision_api.py | 12 - tests/test_wrapper.py | 2446 +++++++++++++++++ tests/test_yolo_det.py | 124 - tests/test_yolo_pose.py | 124 - tests/test_yolo_seg.py | 124 - 72 files changed, 14975 insertions(+), 671 deletions(-) create mode 100644 .agents/skills/mblt-vision-readme/SKILL.md create mode 100644 .agents/skills/mblt-vision/SKILL.md create mode 100644 .claude/skills/mblt-vision-readme/SKILL.md create mode 100644 .claude/skills/mblt-vision/SKILL.md create mode 100644 benchmark/common/__init__.py create mode 100644 benchmark/common/argparse_utils.py create mode 100644 benchmark/common/chart_utils.py create mode 100644 benchmark/common/io_utils.py create mode 100644 benchmark/common/summary_utils.py create mode 100644 benchmark/vision/README.md create mode 100644 benchmark/vision/__init__.py create mode 100644 benchmark/vision/benchmark_vision_models.py create mode 100644 benchmark/vision/compare_benchmark_results.py create mode 100644 benchmark/vision/organize_ade20k.py create mode 100644 benchmark/vision/organize_cityscapes.py create mode 100644 benchmark/vision/organize_coco.py create mode 100644 benchmark/vision/organize_dotav1.py create mode 100644 benchmark/vision/organize_imagenet.py create mode 100644 benchmark/vision/organize_nyu_depth.py create mode 100644 benchmark/vision/organize_widerface.py create mode 100644 compile/vision/README.md create mode 100644 compile/vision/make_ade20k_subset.py create mode 100644 compile/vision/make_cityscapes_subset.py create mode 100644 compile/vision/make_coco_subset.py create mode 100644 compile/vision/make_dotav1_subset.py create mode 100644 compile/vision/make_imagenet_subset.py create mode 100644 compile/vision/make_nyu_depth_subset.py create mode 100644 compile/vision/make_widerface_subset.py create mode 100644 compile/vision/vision_model_compile.py create mode 100644 mblt_vision/compile/__init__.py create mode 100644 mblt_vision/compile/vision.py create mode 100644 mblt_vision/utils/datasets/dataloader.py create mode 100644 mblt_vision/utils/datasets/organizer.py create mode 100644 mblt_vision/utils/datasets/readiness.py create mode 100644 mblt_vision/utils/evaluation/__init__.py create mode 100644 mblt_vision/utils/evaluation/_result.py create mode 100644 mblt_vision/utils/evaluation/eval_ade20k.py create mode 100644 mblt_vision/utils/evaluation/eval_cityscapes.py create mode 100644 mblt_vision/utils/evaluation/eval_coco.py create mode 100644 mblt_vision/utils/evaluation/eval_dota.py create mode 100644 mblt_vision/utils/evaluation/eval_imagenet.py create mode 100644 mblt_vision/utils/evaluation/eval_nyu_depth.py create mode 100644 mblt_vision/utils/evaluation/eval_widerface.py create mode 100644 tests/test_api.py create mode 100644 tests/test_benchmark_vision.py create mode 100644 tests/test_compile_vision.py create mode 100644 tests/test_dataset_organizer.py create mode 100644 tests/test_dataset_readiness.py create mode 100644 tests/test_depth_estimation.py create mode 100644 tests/test_face_detection.py create mode 100644 tests/test_model_aliasing.py create mode 100644 tests/test_model_metadata.py create mode 100644 tests/test_mxq_inference.py create mode 100644 tests/test_onnx_classification.py create mode 100644 tests/test_onnx_yolo.py create mode 100644 tests/test_postprocess_hierarchy.py create mode 100644 tests/test_preprocess_validation.py delete mode 100644 tests/test_resnet50.py create mode 100644 tests/test_results.py create mode 100644 tests/test_semantic_segmentation.py delete mode 100644 tests/test_vision_api.py create mode 100644 tests/test_wrapper.py delete mode 100644 tests/test_yolo_det.py delete mode 100644 tests/test_yolo_pose.py delete mode 100644 tests/test_yolo_seg.py diff --git a/.agents/skills/mblt-vision-readme/SKILL.md b/.agents/skills/mblt-vision-readme/SKILL.md new file mode 100644 index 0000000..5445395 --- /dev/null +++ b/.agents/skills/mblt-vision-readme/SKILL.md @@ -0,0 +1,39 @@ +--- +name: mblt-vision-readme +description: >- + Write and maintain mblt-vision-python README documentation, API examples, model references, + and migration notes. +--- + +# Mobilint Vision README Writing + +## Documentation Ownership + +- Keep the root README concise: package purpose, installation, a minimal example, and a link to + mblt_vision/README.md. +- Keep the detailed Vision API reference in mblt_vision/README.md. It owns Python construction, + framework selection, model discovery, model-family tables, output taxonomy, and migration notes. +- Document Model Zoo compatibility as migration context only. Do not present Model Zoo CLI, + validation, dataset organization, or compilation commands as features of this package. + +## Accuracy Rules + +- Use the public mblt_vision namespace in every executable example. +- Use model_path for new local-artifact examples. Mention mxq_path and onnx_path only as + compatibility aliases. +- State that .mxq and .onnx paths select their framework automatically when framework is omitted. + Document the explicit-framework conflict error. +- Describe file_cfg.filename as the MXQ source artifact and same-stem ONNX derivation. Mention + onnx_filename only for a genuinely different published artifact. +- Keep post_cfg.dataset terminology precise: it identifies output taxonomy, not just a task. +- Use obb as the only oriented-bounding-box name in standalone documentation. + +## Style and Validation + +- Use ATX headings, one blank line between blocks, hyphen lists, concise paragraphs, and + language-tagged code fences. +- Prefer generated discovery examples such as list_tasks() and list_models() over manually + maintained exhaustive name lists. +- When changing models, package metadata, dependencies, public APIs, or runtime behavior, update + the relevant README and this guidance if the workflow changes. +- For documentation-only updates, run git diff --check and verify relative links and headings. diff --git a/.agents/skills/mblt-vision/SKILL.md b/.agents/skills/mblt-vision/SKILL.md new file mode 100644 index 0000000..509d53a --- /dev/null +++ b/.agents/skills/mblt-vision/SKILL.md @@ -0,0 +1,62 @@ +--- +name: mblt-vision +description: >- + Work on the standalone Mobilint Vision Python API, model registry, preprocessing, + postprocessing, results, runtime integration, and package compatibility contracts. +--- + +# Mobilint Vision Python + +## Start Here + +1. Read AGENTS.md. +2. Run git status --short before changing files. +3. Read pyproject.toml, the affected package exports, matching model YAML, and relevant tests. +4. For a compatibility migration, compare against + ../mblt-model-zoo/mblt_model_zoo/vision deliberately; do not make it a runtime dependency. + +## Public API and Model Registry + +- Use mblt_vision.MBLT_Engine and task subpackages as the public surface. +- Keep mblt_vision as the sole intended import namespace. Use obb as the sole + oriented-bounding-box task name. +- Update a task package, top-level lazy exports, and list_models() discovery together. +- Preserve constructor arguments including model_path, mxq_path, onnx_path, + model_type, and core-selection options unless intentionally changing the API. +- Keep .mxq/.onnx suffix routing and explicit-framework conflict errors intact. +- Every model YAML must define stable file_cfg, pre_cfg, and post_cfg mappings. + Use file_cfg.filename for MXQ and derive the same-stem ONNX artifact unless + onnx_filename is required. +- Every post_cfg declares dataset; resolve output taxonomy from the dataset/task pair. + +## Processing and Results + +- Reuse the shared letterbox geometry for both preprocessing and inverse coordinate restoration. +- Detection requires pre_cfg.LetterBox. Keep semantic metadata (img0_shape and + ratio_pad) through postprocessing so logits restore to the original geometry before + argmax. +- Preserve decoded-output layout provenance through NMS. For ambiguous tensors without + provenance, prioritize channels-first raw-output normalization. +- Normalize dense depth and semantic outputs before inverse letterboxing. Validate baked semantic + maps are finite, integral, and in-range before converting them to integer class IDs. +- Keep result shapes, ordering, coordinates, dtype, and empty-result behavior compatible with + the Model Zoo reference. + +## Runtime and Packaging + +- Route NPU runtime access through mblt-npu-python; do not copy backend classes into Vision. +- Keep ONNX Runtime optional and lazy-imported. Raise a specific installation error when it is + requested but unavailable. +- Include model and dataset YAML files as package data. Build a wheel and inspect it after + changing metadata or assets. +- Do not require native bindings, GStreamer, hardware, downloaded models, or caches for normal + imports and unit tests. + +## Validate Proportionately + +- Begin with the smallest relevant test file or -k selection. +- Add deterministic differential tests for Model Zoo compatibility, including invalid inputs, + empty detections, threshold boundaries, task discovery, and image geometry. +- Run pre-commit run --files when available. For docs, run + git diff --check. +- Report unavailable hardware, downloads, or optional dependencies rather than weakening tests. diff --git a/.claude/skills/mblt-vision-readme/SKILL.md b/.claude/skills/mblt-vision-readme/SKILL.md new file mode 100644 index 0000000..ea6a148 --- /dev/null +++ b/.claude/skills/mblt-vision-readme/SKILL.md @@ -0,0 +1,9 @@ +--- +name: mblt-vision-readme +description: Write and maintain documentation for the standalone Mobilint Vision Python package. +--- + +# Mobilint Vision README Writing + +Read and follow the canonical skill at +../../../.agents/skills/mblt-vision-readme/SKILL.md. diff --git a/.claude/skills/mblt-vision/SKILL.md b/.claude/skills/mblt-vision/SKILL.md new file mode 100644 index 0000000..6120c85 --- /dev/null +++ b/.claude/skills/mblt-vision/SKILL.md @@ -0,0 +1,9 @@ +--- +name: mblt-vision +description: Work effectively on the standalone Mobilint Vision Python API and model registry. +--- + +# Mobilint Vision Python + +Read and follow the canonical skill at +../../../.agents/skills/mblt-vision/SKILL.md. diff --git a/AGENTS.md b/AGENTS.md index 652bf0a..30e45a3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -16,7 +16,8 @@ supported native API. The current ownership boundary is deliberate: - This package owns the public Python API, model loading, preprocessing, postprocessing, runtime - integration, package metadata, wheels, documentation, and compatibility shims. + integration, dataset organization, benchmark evaluation, model compilation, package metadata, + wheels, documentation, and compatibility shims. - Keep implementation code in Python; do not block Python API progress on C++ or GStreamer work. - Design internal seams so a future optional `mblt-vision` backend can replace implementation details without changing the documented Python API or result contracts. @@ -49,6 +50,30 @@ The current ownership boundary is deliberate: deterministic `close()`/context-manager behavior and safe finalization as appropriate. - Use `obb` as the sole oriented-bounding-box task name. +## Vision Models and Processing Contracts + +- Use mblt_vision.MBLT_Engine for loading. Prefer model_path; retain mxq_path and + onnx_path as compatibility aliases. +- Update task-package exports and lazy top-level exports together. Confirm that + list_models() discovers every public model class. +- Keep each model YAML's file_cfg, pre_cfg, and post_cfg shape stable. + file_cfg.filename is the canonical MXQ Hub artifact; derive the same-stem ONNX filename + unless the Hub artifact requires an explicit onnx_filename. +- Require post_cfg.dataset in every model YAML and resolve output class counts using the + dataset/task pair. Do not assume one output taxonomy for every model in a task. +- Preserve automatic .mxq/.onnx framework detection and the fail-fast error when a local + suffix conflicts with an explicitly selected framework. +- Preserve anchorless decoded-output layout provenance through NMS. When a tensor is ambiguous + and provenance is unavailable, normalize it as raw channels-first before candidates-first. +- Use the shared letterbox helpers for forward geometry and inverse output restoration. Detection + postprocessors require pre_cfg.LetterBox; metadata-aware semantic preprocessing returns the + original image shape and ratio_pad so logits can be restored before argmax. +- Normalize dense outputs before inverse letterboxing: upsample quarter-resolution depth maps by + four, preserve baked-resize depth maps, convert Cityscapes NHWC logits to NCHW, and reject + non-finite, fractional, or out-of-range baked semantic IDs before casting. +- Keep hardware-specific runtime access behind mblt-npu-python. Optional ONNX Runtime imports + must remain lazy and report the appropriate package extra when unavailable. + ## Python-First Architecture - Keep the public layer independent from a particular backend. Define small internal interfaces @@ -94,6 +119,8 @@ The current ownership boundary is deliberate: - Avoid making hardware, downloaded models, compiled extensions, or GStreamer a requirement for ordinary unit tests. Mark and document integration prerequisites; run the narrowest relevant suite first. +- Use a deterministic default seed of 0 for any public API that samples or otherwise uses + randomness. ## Code Quality and Documentation @@ -102,6 +129,13 @@ The current ownership boundary is deliberate: - Keep imports ordered as standard library, third-party, then local. Catch specific exceptions. - Update the README and API examples whenever installation, native-library discovery, supported platforms, imports, or migration compatibility changes. +- Keep the root README focused on installation and navigation. Maintain the complete Vision API, + model-family, runtime, and taxonomy reference in mblt_vision/README.md. +- Write documentation with ATX headings, one blank line between blocks, hyphen lists, + language-tagged code fences, and concise paragraphs. Keep examples executable against the + public mblt_vision namespace and do not document Model Zoo CLI commands as standalone features. +- When a durable public fact changes, update this guide, the matching agent skill, CLAUDE.md, and + the relevant README in the same change. - For documentation-only changes, run `git diff --check` and verify headings and links. Report skipped platform, hardware, or native-runtime checks clearly. diff --git a/CLAUDE.md b/CLAUDE.md index bae10da..ddefdfd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,3 +4,6 @@ `AGENTS.md` is the canonical guide for this repository. Follow it for the Python-first implementation, PyPI-wheel, lifecycle, and mblt-model-zoo Vision compatibility requirements. + +For focused model, preprocessing, postprocessing, and model-registry work, also read +.claude/skills/mblt-vision/SKILL.md. diff --git a/README.md b/README.md index e35a5b0..a7d8199 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,32 @@ -# mblt-vision-python +# Mobilint Vision Python -**Vision models** for Mobilint NPUs. +Run pre-trained Mobilint Vision models from Python. `mblt-vision-python` provides +model configuration, artifact loading, preprocessing, inference integration, and +typed postprocessing results for image classification, depth estimation, face and +object detection, oriented bounding boxes (OBB), instance and semantic segmentation, +and pose estimation. -Image classification, object detection, instance segmentation and pose estimation on -Mobilint NPUs. Each model is a class that carries its own pre- and post-processing: +Version `0.0.1` is the initial standalone release. + +## Installation + +```bash +pip install mblt-vision-python +``` + +MXQ inference requires a supported Mobilint NPU environment. Model artifacts are +downloaded from the Mobilint Hugging Face organization when no local `model_path` +is supplied. For ONNX execution, install one of the optional extras: + +```bash +pip install "mblt-vision-python[onnxruntime]" +# Or, on supported systems: +pip install "mblt-vision-python[onnxruntime-gpu]" +``` + +## Quick start + +Each model includes its matching preprocess and postprocess behavior: ```python from mblt_vision import ResNet50 @@ -13,15 +36,46 @@ x = model.preprocess("image.jpg") result = model.postprocess(model(x)) ``` -Split out of `mblt-model-zoo`, which still re-exports it as `mblt_model_zoo.vision` -so existing code keeps working. +For configurable model selection and local MXQ or ONNX artifacts, use +`MBLT_Engine`: -## Installation +```python +from mblt_vision import MBLT_Engine -```bash -pip install mblt-vision-python +model = MBLT_Engine(model_cls="resnet50", model_type="DEFAULT") +try: + result = model.postprocess(model(model.preprocess("image.jpg"))) +finally: + model.dispose() ``` +Discover supported tasks and models with `list_tasks()` and `list_models()`. New +code should use the task subpackages (for example, +`mblt_vision.object_detection`) or `MBLT_Engine`. Top-level model imports such as +`from mblt_vision import ResNet50` remain supported for convenience. + +`obb` is the canonical oriented-bounding-box task name. + +## Model Zoo migration + +Vision is now maintained in this package. `mblt-model-zoo` retains +`mblt_model_zoo.vision` as a compatibility facade for existing applications; new +projects should import from `mblt_vision` directly. + +## Documentation and tests + +See [the Vision API guide](mblt_vision/README.md) for supported model families, +model details, artifact selection, and output taxonomy behavior. See the +[compilation guide](compile/vision/README.md) for calibration-data preparation +and MXQ compilation. The [test guide](tests/TEST.md) explains offline, Hugging +Face, and NPU test runs. + +## Support and issues + +For installation, model, or runtime support, visit the +[Mobilint forum](https://discuss.mobilint.com/). Report reproducible package issues in the +[mblt-vision-python issue tracker](https://github.com/mobilint/mblt-vision-python/issues). + ## License -BSD-3-Clause. +Distributed under the [BSD 3-Clause License](LICENSE). diff --git a/benchmark/common/__init__.py b/benchmark/common/__init__.py new file mode 100644 index 0000000..40712df --- /dev/null +++ b/benchmark/common/__init__.py @@ -0,0 +1 @@ +"""Shared helpers for Vision benchmark scripts.""" diff --git a/benchmark/common/argparse_utils.py b/benchmark/common/argparse_utils.py new file mode 100644 index 0000000..bfa9bf6 --- /dev/null +++ b/benchmark/common/argparse_utils.py @@ -0,0 +1,106 @@ +"""Shared argparse validators for benchmark scripts.""" + +from __future__ import annotations + +import argparse + + +def parse_positive_int(raw: str) -> int: + """Parses a positive integer for argparse. + + Args: + raw: Raw command-line value. + + Returns: + Parsed positive integer. + + Raises: + argparse.ArgumentTypeError: If the value is not a positive integer. + """ + try: + value = int(raw) + except (TypeError, ValueError) as e: + raise argparse.ArgumentTypeError("expected a positive integer") from e + if value <= 0: + raise argparse.ArgumentTypeError("expected a positive integer") + return value + + +def parse_positive_int_optional(raw: str | None) -> int | None: + """Parses an optional positive integer for argparse. + + Args: + raw: Raw command-line value or ``None``. + + Returns: + Parsed positive integer, or ``None`` for empty input. + + Raises: + argparse.ArgumentTypeError: If the value is not empty and not a positive integer. + """ + if raw is None or raw == "": + return None + return parse_positive_int(raw) + + +def parse_range_arg(raw: str) -> tuple[int, int, int]: + """Parses ``start:end:step`` or ``start,end,step`` positive integer ranges. + + Args: + raw: Raw command-line value. + + Returns: + Parsed ``(start, end, step)`` tuple. + + Raises: + argparse.ArgumentTypeError: If the value is malformed. + """ + sep = ":" if ":" in raw else ("," if "," in raw else None) + if sep is None: + raise argparse.ArgumentTypeError( + "expected format 'start:end:step' or 'start,end,step'" + ) + parts = [part.strip() for part in raw.split(sep)] + if len(parts) != 3: + raise argparse.ArgumentTypeError( + "expected exactly 3 integers: 'start:end:step' or 'start,end,step'" + ) + try: + start, end, step = (int(part) for part in parts) + except ValueError as e: + raise argparse.ArgumentTypeError("range values must be integers") from e + if start <= 0 or end <= 0 or step <= 0: + raise argparse.ArgumentTypeError("range values must be positive integers") + if start > end: + raise argparse.ArgumentTypeError("range start must be <= end") + return start, end, step + + +def parse_int_csv( + raw: str, *, unique_sorted: bool = True, allow_empty: bool = False +) -> list[int]: + """Parses comma-separated positive integers. + + Args: + raw: Raw command-line value. + unique_sorted: Whether to sort and de-duplicate parsed values. + allow_empty: Whether an empty input should return an empty list. + + Returns: + Parsed positive integers. + + Raises: + argparse.ArgumentTypeError: If the value is malformed. + """ + parts = [item.strip() for item in str(raw).split(",") if item.strip()] + if not parts: + if allow_empty: + return [] + raise argparse.ArgumentTypeError("expected at least one integer") + try: + values = [int(item) for item in parts] + except ValueError as e: + raise argparse.ArgumentTypeError("all values must be integers") from e + if any(value <= 0 for value in values): + raise argparse.ArgumentTypeError("all values must be positive integers") + return sorted(set(values)) if unique_sorted else values diff --git a/benchmark/common/chart_utils.py b/benchmark/common/chart_utils.py new file mode 100644 index 0000000..24a70ce --- /dev/null +++ b/benchmark/common/chart_utils.py @@ -0,0 +1,146 @@ +import os +import re +from pathlib import Path +from typing import Optional, Sequence + +import matplotlib + +if "MPLBACKEND" not in os.environ: + matplotlib.use("Agg") +import matplotlib.pyplot as plt +import numpy as np + + +def sanitize_text(text: str) -> str: + cleaned = re.sub(r"[^A-Za-z0-9._-]+", "-", text).strip("-") + return cleaned or "unnamed" + + +def source_prefix(sources: list[Path], *, use_stem: bool) -> str: + parts: list[str] = [] + for source in sources: + raw = (source.stem if use_stem else source.name) or str(source) + parts.append(sanitize_text(raw)) + return "_".join(parts) + + +def default_charts_dir( + script_dir: Path, + sources: list[Path], + *, + use_stem: bool, +) -> Path: + return script_dir / "results" / "charts" / source_prefix(sources, use_stem=use_stem) + + +def source_labels(sources: list[Path], *, use_stem: bool) -> list[str]: + labels = [ + ((source.stem if use_stem else source.name) or str(source)) + for source in sources + ] + counts: dict[str, int] = {} + for label in labels: + counts[label] = counts.get(label, 0) + 1 + + seen: dict[str, int] = {} + out: list[str] = [] + for idx, label in enumerate(labels): + if counts[label] == 1: + out.append(label) + continue + seen[label] = seen.get(label, 0) + 1 + out.append(f"{label} [{seen[label]}/{counts[label]}]") + + if len(set(out)) != len(out): + out = [f"{label}#{idx + 1}" for idx, label in enumerate(labels)] + return out + + +def plot_grouped_scalar_barh( + *, + models: list[str], + group_labels: list[str], + grouped_values: list[dict[str, Optional[float]]], + x_label: str, + y_label: str, + title: str, + output_path: Path, + fig_width: float = 14.0, +) -> None: + if not models: + return + + y = np.arange(len(models), dtype=float) + group_height = 0.82 + bar_h = group_height / max(len(grouped_values), 1) + start = -group_height / 2 + bar_h / 2 + fig_h = max(5.0, 0.45 * len(models) + 2.0) + fig, ax = plt.subplots(figsize=(fig_width, fig_h)) + cmap = plt.get_cmap("tab10") + + for idx, (label, source_values) in enumerate(zip(group_labels, grouped_values)): + x_vals = [] + y_vals = [] + for i, model in enumerate(models): + value = source_values.get(model) + if value is None: + continue + x_vals.append(float(value)) + y_vals.append(y[i] + start + idx * bar_h) + if x_vals: + ax.barh( + y_vals, + x_vals, + height=bar_h * 0.95, + label=label, + color=cmap(idx % 10), + ) + + ax.set_yticks(y) + ax.set_yticklabels(models) + ax.invert_yaxis() + ax.set_xlabel(x_label) + ax.set_ylabel(y_label) + ax.set_title(title) + ax.grid(axis="x", linestyle="--", alpha=0.3) + handles, labels = ax.get_legend_handles_labels() + if handles: + ax.legend(loc="best") + plt.tight_layout() + fig.savefig(output_path, dpi=220) + plt.close(fig) + + +def plot_simple_barh( + *, + labels: Sequence[str], + values: Sequence[float], + x_label: str, + title: str, + output_path: Path, + fig_width: float = 12.0, +) -> None: + """Plots a single horizontal bar chart. + + Args: + labels: Y-axis labels. + values: Numeric values aligned with labels. + x_label: X-axis label. + title: Chart title. + output_path: Destination PNG path. + fig_width: Figure width. + """ + if not labels: + return + fig, ax = plt.subplots(figsize=(fig_width, max(4.0, 0.45 * len(labels) + 2.0))) + y = list(range(len(labels))) + ax.barh(y, [float(value) for value in values]) + ax.set_yticks(y) + ax.set_yticklabels(list(labels)) + ax.invert_yaxis() + ax.set_xlabel(x_label) + ax.set_title(title) + ax.grid(axis="x", linestyle="--", alpha=0.3) + plt.tight_layout() + fig.savefig(output_path, dpi=220) + plt.close(fig) diff --git a/benchmark/common/io_utils.py b/benchmark/common/io_utils.py new file mode 100644 index 0000000..8d59f83 --- /dev/null +++ b/benchmark/common/io_utils.py @@ -0,0 +1,64 @@ +"""Shared file I/O helpers for benchmark scripts.""" + +from __future__ import annotations + +import csv +import json +from pathlib import Path +from typing import Any, Mapping, Sequence + +JsonObject = dict[str, Any] +CsvRow = dict[str, Any] + + +def safe_filename(text: str, *, replace_slash_only: bool = False) -> str: + """Returns a filename-safe representation of text. + + Args: + text: Source text to convert. + replace_slash_only: Whether to preserve the legacy behavior of replacing only forward slashes. + + Returns: + Sanitized text suitable for benchmark output filenames. + """ + if replace_slash_only: + return text.replace("/", "__") + + cleaned = ( + text.replace("/", "__").replace("\\", "__").replace(":", "_").replace(" ", "_") + ) + return cleaned or "unnamed" + + +def write_json(path: Path, payload: Any) -> None: + """Writes an indented UTF-8 JSON file after creating its parent directory. + + Args: + path: Destination path. + payload: JSON-serializable payload. + """ + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", encoding="utf-8") as f: + json.dump(payload, f, ensure_ascii=False, indent=2) + + +def write_csv(path: Path, rows: Sequence[Mapping[str, Any]]) -> None: + """Writes dictionaries to CSV using the union of row keys as the field order. + + Args: + path: Destination path. + rows: Row mappings to write. Empty rows are ignored to preserve existing script behavior. + """ + if not rows: + return + path.parent.mkdir(parents=True, exist_ok=True) + fieldnames = list(rows[0].keys()) + for row in rows[1:]: + for key in row: + if key not in fieldnames: + fieldnames.append(key) + with path.open("w", newline="", encoding="utf-8") as f: + writer = csv.DictWriter(f, fieldnames=fieldnames) + writer.writeheader() + for row in rows: + writer.writerow({key: row.get(key, "") for key in fieldnames}) diff --git a/benchmark/common/summary_utils.py b/benchmark/common/summary_utils.py new file mode 100644 index 0000000..443ba35 --- /dev/null +++ b/benchmark/common/summary_utils.py @@ -0,0 +1,770 @@ +"""Markdown summary helpers for benchmark outputs.""" + +from __future__ import annotations + +import json +import re +import subprocess +from collections.abc import Mapping, Sequence +from datetime import datetime +from pathlib import Path +from typing import Any + +HOST_PC_INFO_FILENAME = "host_pc_info.json" + +_HOST_INFO_SECTION_ORDER = ("CPU", "Motherboard", "DRAM", "NPU") + +_HOST_INFO_SECTION_ALIASES = { + "cpu": "CPU", + "processor": "CPU", + "motherboard": "Motherboard", + "mainboard": "Motherboard", + "baseboard": "Motherboard", + "board": "Motherboard", + "dram": "DRAM", + "memory": "DRAM", + "ram": "DRAM", + "dimm": "DRAM", + "npu": "NPU", + "npus": "NPU", + "neural": "NPU", + "accelerator": "NPU", +} + +_NPU_ARRAY_KEY_RE = re.compile(r"(?:^|\.)npus\[(\d+)\]\.(.+)$") + + +_PLOT_TITLES_BY_NAME = { + "rtf.png": "Real-Time Factor", + "inverse_rtf.png": "Inverse Real-Time Factor", + "sec_per_j.png": "Seconds Per Joule", + "j_per_sec.png": "Joules Per Audio Second", + "wer.png": "Word Error Rate", + "cer.png": "Character Error Rate", + "p95_latency_s.png": "P95 Latency", + "throughput_samples_per_s.png": "Throughput", + "decode_tokens_per_s.png": "Decode Tokens Per Second", + "prefill_tps.png": "Prefill Tokens Per Second", + "measure_prefill_tps.png": "Prefill Tokens Per Second", + "llm_prefill_tps.png": "Prefill Tokens Per Second", + "measure_llm_prefill_tps.png": "Prefill Tokens Per Second", + "prefill_tps_per_w.png": "Prefill TPS/W", + "measure_prefill_tps_per_w.png": "Prefill TPS/W", + "llm_prefill_tps_per_w.png": "Prefill TPS/W", + "measure_llm_prefill_tps_per_w.png": "Prefill TPS/W", + "decode_tps.png": "Decode Tokens Per Second", + "measure_decode_tps.png": "Decode Tokens Per Second", + "llm_decode_tps.png": "Decode Tokens Per Second", + "measure_llm_decode_tps.png": "Decode Tokens Per Second", + "decode_tps_per_w.png": "Decode TPS/W", + "measure_decode_tps_per_w.png": "Decode TPS/W", + "llm_decode_tps_per_w.png": "Decode TPS/W", + "measure_llm_decode_tps_per_w.png": "Decode TPS/W", + "avg_power_w.png": "Power", + "measure_avg_power_w.png": "Power", + "avg_temperature_c.png": "Temperature", + "measure_avg_temperature_c.png": "Temperature", + "avg_utilization_pct.png": "Utilization", + "measure_avg_utilization_pct.png": "Utilization", + "avg_memory_used_mb.png": "Memory Used Megabytes", + "measure_avg_memory_used_mb.png": "Memory Used Megabytes", + "total_energy_j.png": "Total Energy", + "measure_total_energy_j.png": "Total Energy", + "vision_fps.png": "Vision FPS", + "vision_encode_ms.png": "Vision Encode ms", + "vision_img_per_j.png": "Vision Images Per Joule", +} + +_PLOT_NAME_ORDER = {name: idx for idx, name in enumerate(_PLOT_TITLES_BY_NAME)} + + +def collect_host_pc_info( + results_dir: Path | str, *, filename: str = HOST_PC_INFO_FILENAME +) -> Path: + """Run ``mblt-tracker collect`` and save its JSON output. + + The benchmark should not fail just because host information collection is unavailable. Failures are therefore + converted into a JSON payload that can still be rendered in the summary. + + Args: + results_dir: Benchmark output directory. + filename: JSON filename to write under ``results_dir``. + + Returns: + Path to the written JSON file. + """ + out_dir = Path(results_dir) + out_dir.mkdir(parents=True, exist_ok=True) + output_path = out_dir / filename + payload: Any + try: + proc = subprocess.run( + ["mblt-tracker", "collect"], + check=False, + capture_output=True, + encoding="utf-8", + timeout=30, + ) + if proc.returncode == 0: + try: + payload = json.loads(proc.stdout) + except json.JSONDecodeError: + payload = { + "status": "error", + "message": "mblt-tracker collect did not return valid JSON.", + "stdout": proc.stdout, + "stderr": proc.stderr, + "returncode": proc.returncode, + } + else: + payload = { + "status": "error", + "message": "mblt-tracker collect failed.", + "stdout": proc.stdout, + "stderr": proc.stderr, + "returncode": proc.returncode, + } + except FileNotFoundError: + payload = {"status": "error", "message": "mblt-tracker CLI was not found."} + except subprocess.TimeoutExpired as e: + payload = { + "status": "error", + "message": "mblt-tracker collect timed out.", + "stdout": e.stdout, + "stderr": e.stderr, + "timeout_s": e.timeout, + } + + payload = _with_collection_metadata(payload) + with output_path.open("w", encoding="utf-8") as f: + json.dump(payload, f, ensure_ascii=False, indent=2) + print(f"Saved Host PC Info: {output_path.name}") + return output_path + + +def write_summary_markdown( + path: Path | str, + *, + title: str, + host_info_path: Path | str | None, + table_markdown_path: Path | str | None, + plot_paths: Sequence[Path | str], + plot_tables: Mapping[str, str] | None = None, + host_info_paths: Mapping[str, Path | str] | None = None, +) -> None: + """Write a benchmark summary Markdown file with host info, plots, and table. + + Args: + path: Summary Markdown destination. + title: Document title. + host_info_path: JSON file written by :func:`collect_host_pc_info`. + table_markdown_path: Existing Markdown table to include. + plot_paths: PNG files to embed in the summary. + plot_tables: Optional Markdown tables keyed by plot PNG filename. When provided, matching tables are rendered + directly below each plot and the bottom combined table is omitted. + host_info_paths: Optional source-labeled host info JSON files. When provided, host info is rendered per source. + """ + summary_path = Path(path) + summary_path.parent.mkdir(parents=True, exist_ok=True) + host_info_lines = ( + _host_infos_markdown( + {label: Path(src_path) for label, src_path in host_info_paths.items()} + ) + if host_info_paths + else _host_info_markdown(Path(host_info_path) if host_info_path else None) + ) + lines = [f"# {title}\n\n"] + lines.extend(_device_energy_note_markdown()) + lines.extend( + _plots_markdown( + summary_path.parent, [Path(p) for p in plot_paths], plot_tables=plot_tables + ) + ) + if not plot_tables: + lines.extend( + _table_markdown(Path(table_markdown_path) if table_markdown_path else None) + ) + lines.extend(host_info_lines) + summary_path.write_text("".join(lines), encoding="utf-8") + + +def _device_energy_note_markdown() -> list[str]: + """Return a reusable note describing trace-integrated energy limitations.""" + + return [ + "## Device energy note\n\n", + "Energy and energy-efficiency metrics are computed from mblt-tracker power traces using " + "trapezoidal integration. At least two valid power samples are required, so measurements shorter " + "than the tracker sampling interval may leave energy fields empty.\n\n", + ] + + +def read_csv_rows(path: Path | str) -> list[dict[str, str]]: + """Read CSV rows if the file exists. + + Args: + path: CSV path to read. + + Returns: + CSV rows as dictionaries, or an empty list when the file does not exist. + """ + csv_path = Path(path) + if not csv_path.is_file(): + return [] + import csv + + with csv_path.open("r", encoding="utf-8", newline="") as f: + return list(csv.DictReader(f)) + + +def markdown_table(headers: Sequence[str], rows: Sequence[Sequence[Any]]) -> str: + """Build a compact Markdown table with right-aligned metric columns. + + Args: + headers: Table headers. + rows: Table row values. + + Returns: + Markdown table text, or an empty string for empty rows. + """ + if not rows: + return "" + lines = [ + "| " + " | ".join(_escape_markdown(header) for header in headers) + " |\n", + "| " + " | ".join(["---"] + ["---:" for _ in headers[1:]]) + " |\n", + ] + for row in rows: + lines.append( + "| " + " | ".join(_format_summary_cell(value) for value in row) + " |\n" + ) + return "".join(lines) + + +def scalar_plot_table( + rows: Sequence[Mapping[str, Any]], *, value_key: str, unit_header: str +) -> str: + """Build a model/value table for one scalar plot. + + Args: + rows: Rows containing a ``model`` key and the requested scalar key. + value_key: Key containing the scalar value. + unit_header: Header for the value column. + + Returns: + Markdown table text. + """ + return markdown_table( + ["Model", unit_header], [[row.get("model"), row.get(value_key)] for row in rows] + ) + + +def token_sweep_plot_table( + models: Sequence[str], + metrics_by_model: Mapping[str, Any], + *, + value_key: str, +) -> str: + """Build a model/token table for one token-sweep plot. + + Args: + models: Model names to include. + metrics_by_model: Mapping from model name to metric object with token dictionaries. + value_key: Attribute name containing a ``dict[int, float]`` token metric. + + Returns: + Markdown table text. + """ + token_set: set[int] = set() + for model in models: + token_set.update(getattr(metrics_by_model[model], value_key).keys()) + tokens = sorted(token_set) + if not tokens: + return "" + table_rows = [] + for model in models: + values = getattr(metrics_by_model[model], value_key) + table_rows.append([model, *(values.get(token) for token in tokens)]) + return markdown_table( + ["Model", *(f"{token} tokens" for token in tokens)], table_rows + ) + + +def write_token_combined_markdown( + path: Path | str, + tps_rows: Sequence[Mapping[str, Any]], + device_rows: Sequence[Mapping[str, Any]], +) -> None: + """Write a wide-form token sweep Markdown table shared by transformer benchmarks. + + Args: + path: Markdown output path. + tps_rows: Long-form TPS rows from ``BenchmarkResult.iter_rows``. + device_rows: Per-model device metric rows. + """ + if not tps_rows: + return + models = sorted({str(r["model"]) for r in tps_rows}) + prefill_tokens = sorted( + { + int(r["tokens"]) + for r in tps_rows + if str(r.get("phase")) == "prefill" and _is_int_like(r.get("tokens")) + } + ) + decode_tokens = sorted( + { + int(r["tokens"]) + for r in tps_rows + if str(r.get("phase")) == "decode" and _is_int_like(r.get("tokens")) + } + ) + tps_map: dict[tuple[str, str, int], float] = {} + time_map: dict[tuple[str, str, int], float] = {} + npu_pct_map: dict[tuple[str, str, int], float] = {} + for row in tps_rows: + model = str(row["model"]) + phase = str(row["phase"]) + token = int(row["tokens"]) + tps_val = row.get("tps") + time_ms_val = row.get("time_ms") + npu_pct_val = row.get("avg_npu_token_latency_pct") + if isinstance(tps_val, (int, float)): + tps_map[(model, phase, token)] = float(tps_val) + if isinstance(time_ms_val, (int, float)): + time_map[(model, phase, token)] = float(time_ms_val) + if isinstance(npu_pct_val, (int, float)): + npu_pct_map[(model, phase, token)] = float(npu_pct_val) + + device_map = { + str(r["model"]): r for r in device_rows if isinstance(r.get("model"), str) + } + device_cols = [ + "avg_power_w", + "p99_power_w", + "avg_utilization_pct", + "p99_utilization_pct", + "avg_temperature_c", + "p99_temperature_c", + "avg_memory_used_mb", + "p99_memory_used_mb", + "total_memory_mb", + "avg_memory_used_pct", + "p99_memory_used_pct", + "total_energy_j", + "prefill_tps_last", + "decode_tps_last", + "prefill_tps_per_w_last", + "decode_tps_per_w_last", + "prefill_j_per_tok_last", + "decode_j_per_tok_last", + ] + + headers = ["model"] + headers.extend([f"prefill_tps_{t}" for t in prefill_tokens]) + headers.extend([f"decode_tps_{t}" for t in decode_tokens]) + headers.extend([f"prefill_latency_ms_{t}" for t in prefill_tokens]) + headers.extend([f"decode_duration_ms_{t}" for t in decode_tokens]) + headers.extend([f"prefill_npu_latency_pct_{t}" for t in prefill_tokens]) + headers.extend([f"decode_npu_latency_pct_{t}" for t in decode_tokens]) + headers.extend(device_cols) + + rows: list[list[str]] = [] + for model in models: + values: list[str] = [model] + for token in prefill_tokens: + values.append( + _format_optional_float(tps_map.get((model, "prefill", token))) + ) + for token in decode_tokens: + values.append(_format_optional_float(tps_map.get((model, "decode", token)))) + for token in prefill_tokens: + values.append( + _format_optional_float(time_map.get((model, "prefill", token))) + ) + for token in decode_tokens: + values.append( + _format_optional_float(time_map.get((model, "decode", token))) + ) + for token in prefill_tokens: + values.append( + _format_optional_float(npu_pct_map.get((model, "prefill", token))) + ) + for token in decode_tokens: + values.append( + _format_optional_float(npu_pct_map.get((model, "decode", token))) + ) + + drow = device_map.get(model, {}) + for col in device_cols: + v = drow.get(col) if isinstance(drow, Mapping) else None + values.append(_format_optional_float(v)) + rows.append(values) + + Path(path).write_text(markdown_table(headers, rows), encoding="utf-8") + + +def existing_png_paths( + results_dir: Path | str, *, prefixes: Sequence[str] | None = None +) -> list[Path]: + """Return sorted PNG paths under a benchmark results directory. + + Args: + results_dir: Directory to scan. + prefixes: Optional filename prefixes to include. + + Returns: + Sorted PNG files matching the optional prefixes. + """ + out_dir = Path(results_dir) + paths = sorted( + out_dir.glob("*.png"), + key=lambda path: (_plot_sort_key(path), path.name), + ) + if prefixes is None: + return [path for path in paths if _plot_title(path) is not None] + prefix_tuple = tuple(prefixes) + return [path for path in paths if path.name.startswith(prefix_tuple)] + + +def _with_collection_metadata(payload: Any) -> dict[str, Any]: + collected_at = datetime.now().astimezone().isoformat(timespec="seconds") + if isinstance(payload, dict): + out = dict(payload) + out.setdefault("status", "ok") + out.setdefault("collected_at", collected_at) + return out + return {"status": "ok", "collected_at": collected_at, "data": payload} + + +def _host_info_markdown(path: Path | None) -> list[str]: + lines = ["## Host PC Info\n\n"] + if path is None or not path.is_file(): + lines.append("Host PC info is not available.\n\n") + return lines + try: + with path.open("r", encoding="utf-8") as f: + payload = json.load(f) + except (OSError, json.JSONDecodeError) as e: + lines.append(f"Failed to read `{path.name}`: {e}\n\n") + return lines + + sections = _host_info_sections(payload) + if not sections: + lines.append("Host PC info is empty.\n\n") + return lines + lines.append(f"Source: `{path.name}`\n\n") + for title, rows in sections: + if title == "NPU": + _append_npu_info_markdown(lines, rows) + else: + _append_host_info_table(lines, title, rows) + return lines + + +def _host_infos_markdown(paths_by_label: Mapping[str, Path]) -> list[str]: + """Render source-labeled host info JSON files as merged comparison tables.""" + + lines = ["## Host PC Info\n\n"] + if not paths_by_label: + lines.append("Host PC info is not available.\n\n") + return lines + + metadata_rows: list[tuple[str, dict[str, str]]] = [("Source", {}), ("Status", {})] + sections_by_label: dict[str, dict[str, list[tuple[str, str]]]] = {} + section_order: list[str] = [] + for label, path in paths_by_label.items(): + metadata_rows[0][1][label] = path.as_posix() + if not path.is_file(): + metadata_rows[1][1][label] = ( + "missing: host_pc_info.json was not found in the input folder" + ) + sections_by_label[label] = {} + continue + try: + with path.open("r", encoding="utf-8") as f: + payload = json.load(f) + except (OSError, json.JSONDecodeError) as e: + metadata_rows[1][1][label] = f"error: {e}" + sections_by_label[label] = {} + continue + + sections = _host_info_sections(payload) + if not sections: + metadata_rows[1][1][label] = "empty" + sections_by_label[label] = {} + continue + metadata_rows[1][1][label] = "ok" + label_sections: dict[str, list[tuple[str, str]]] = {} + for title, rows in sections: + label_sections[title] = rows + if title not in section_order: + section_order.append(title) + sections_by_label[label] = label_sections + + labels = list(paths_by_label) + _append_merged_host_info_table(lines, "Sources", labels, metadata_rows) + for section in section_order: + field_values: dict[str, dict[str, str]] = {} + for label in labels: + for field, value in sections_by_label.get(label, {}).get(section, []): + field_values.setdefault(field, {})[label] = value + rows = [(field, values) for field, values in field_values.items()] + _append_merged_host_info_table(lines, section, labels, rows) + return lines + + +def _append_merged_host_info_table( + lines: list[str], + title: str, + labels: Sequence[str], + rows: Sequence[tuple[str, Mapping[str, str]]], +) -> None: + """Append a source-merged host info table.""" + + lines.append(f"### {title}\n\n") + lines.append( + "| Field | " + " | ".join(_escape_markdown(label) for label in labels) + " |\n" + ) + lines.append("| --- | " + " | ".join("---" for _ in labels) + " |\n") + for field, values_by_label in rows: + values = [_escape_markdown(values_by_label.get(label, "")) for label in labels] + lines.append(f"| `{_escape_markdown(field)}` | " + " | ".join(values) + " |\n") + lines.append("\n") + + +def _plots_markdown( + base_dir: Path, + plot_paths: Sequence[Path], + *, + plot_tables: Mapping[str, str] | None = None, +) -> list[str]: + lines = ["## Plots\n\n"] + existing = [path for path in plot_paths if path.is_file()] + if not existing: + lines.append("No plot PNG files were generated.\n\n") + return lines + tables = plot_tables or {} + for path in existing: + rel = path.relative_to(base_dir) if path.is_relative_to(base_dir) else path + title = _plot_title(path) or path.stem.replace("_", " ").title() + lines.append(f"### {title}\n\n") + lines.append(f"![{title}]({rel.as_posix()})\n\n") + table = tables.get(path.name) + if table: + lines.append(table) + if not lines[-1].endswith("\n"): + lines.append("\n") + lines.append("\n") + return lines + + +def _plot_title(path: Path) -> str | None: + title = _PLOT_TITLES_BY_NAME.get(path.name) + if title is not None: + return title + + stem = path.stem + if stem.startswith("rtf_beams"): + return "Real-Time Factor" + if stem.startswith("wer_beams"): + return "Word Error Rate" + if stem.startswith("cer_beams"): + return "Character Error Rate" + return None + + +def _plot_sort_key(path: Path) -> int: + if path.name in _PLOT_NAME_ORDER: + return _PLOT_NAME_ORDER[path.name] + stem = path.stem + if stem.startswith("rtf_beams"): + return len(_PLOT_NAME_ORDER) + if stem.startswith("wer_beams"): + return len(_PLOT_NAME_ORDER) + 1 + if stem.startswith("cer_beams"): + return len(_PLOT_NAME_ORDER) + 2 + return len(_PLOT_NAME_ORDER) + 100 + + +def _host_info_sections(payload: Any) -> list[tuple[str, list[tuple[str, str]]]]: + rows = _flatten_json(payload) + if not rows: + return [] + + grouped: dict[str, list[tuple[str, str]]] = { + section: [] for section in _HOST_INFO_SECTION_ORDER + } + general_rows: list[tuple[str, str]] = [] + for key, value in rows: + section = _host_info_section_for_key(key) + if section is None: + general_rows.append((key, value)) + else: + grouped[section].append((key, value)) + + sections: list[tuple[str, list[tuple[str, str]]]] = [] + if general_rows: + sections.append(("General", general_rows)) + sections.extend( + (section, grouped[section]) + for section in _HOST_INFO_SECTION_ORDER + if grouped[section] + ) + return sections + + +def _append_host_info_table( + lines: list[str], + title: str, + rows: Sequence[tuple[str, str]], + *, + heading_level: int = 3, +) -> None: + """Append one host info section as a Markdown table.""" + lines.append(f"{'#' * heading_level} {title}\n\n") + _append_field_value_table(lines, rows) + + +def _append_npu_info_markdown( + lines: list[str], rows: Sequence[tuple[str, str]], *, heading_level: int = 3 +) -> None: + """Append NPU host info with ``npus`` array entries grouped by index.""" + common_rows: list[tuple[str, str]] = [] + indexed_rows: dict[int, list[tuple[str, str]]] = {} + for key, value in rows: + npu_key = _split_npu_array_key(key) + if npu_key is None: + common_rows.append((key, value)) + continue + index, field = npu_key + indexed_rows.setdefault(index, []).append((field, value)) + + if not indexed_rows: + _append_host_info_table(lines, "NPU", rows, heading_level=heading_level) + return + + lines.append(f"{'#' * heading_level} NPU\n\n") + if common_rows: + lines.append(f"{'#' * (heading_level + 1)} General\n\n") + _append_field_value_table(lines, common_rows) + for index in sorted(indexed_rows): + lines.append(f"{'#' * (heading_level + 1)} NPU {index}\n\n") + _append_field_value_table(lines, indexed_rows[index]) + + +def _append_field_value_table( + lines: list[str], rows: Sequence[tuple[str, str]] +) -> None: + """Append field/value rows as a Markdown table.""" + lines.append("| Field | Value |\n") + lines.append("| --- | --- |\n") + for key, value in rows: + lines.append(f"| `{_escape_markdown(key)}` | {_escape_markdown(value)} |\n") + lines.append("\n") + + +def _host_info_section_for_key(key: str) -> str | None: + if _split_npu_array_key(key) is not None: + return "NPU" + normalized = key.replace("_", ".").replace("-", ".").replace(" ", ".").lower() + parts = [ + part + for part in normalized.replace("[", ".").replace("]", ".").split(".") + if part + ] + for part in parts: + section = _HOST_INFO_SECTION_ALIASES.get(part) + if section is not None: + return section + return None + + +def _split_npu_array_key(key: str) -> tuple[int, str] | None: + """Return the NPU array index and field for flattened ``npus`` keys.""" + match = _NPU_ARRAY_KEY_RE.search(key) + if match is None: + return None + return int(match.group(1)), match.group(2) + + +def _host_info_section_title(value: str) -> str: + upper_names = {"cpu": "CPU", "dram": "DRAM", "gpu": "GPU", "npu": "NPU", "os": "OS"} + normalized = value.replace("_", " ").replace("-", " ").strip() + lowered = normalized.lower() + if lowered in upper_names: + return upper_names[lowered] + return " ".join( + upper_names.get(part.lower(), part.capitalize()) for part in normalized.split() + ) + + +def _table_markdown(path: Path | None) -> list[str]: + lines = ["## Results Table\n\n"] + if path is None or not path.is_file(): + lines.append("Results table is not available.\n") + return lines + lines.append(path.read_text(encoding="utf-8")) + if not lines[-1].endswith("\n"): + lines.append("\n") + return lines + + +def _flatten_json(value: Any, *, prefix: str = "") -> list[tuple[str, str]]: + if isinstance(value, Mapping): + rows: list[tuple[str, str]] = [] + for key, child in value.items(): + child_key = f"{prefix}.{key}" if prefix else str(key) + rows.extend(_flatten_json(child, prefix=child_key)) + return rows + if isinstance(value, list): + if all(not isinstance(item, (Mapping, list)) for item in value): + return [(prefix, ", ".join(_scalar_to_text(item) for item in value))] + rows = [] + for idx, child in enumerate(value): + rows.extend(_flatten_json(child, prefix=f"{prefix}[{idx}]")) + return rows + return [(prefix, _scalar_to_text(value))] if prefix else [] + + +def _scalar_to_text(value: Any) -> str: + if value is None: + return "" + if isinstance(value, (str, int, float, bool)): + return str(value) + return json.dumps(value, ensure_ascii=False) + + +def _format_summary_cell(value: Any) -> str: + """Format one benchmark summary table value.""" + if value is None or value == "": + return "" + if isinstance(value, (int, float)): + return f"{float(value):.6f}" + if isinstance(value, str): + try: + return f"{float(value):.6f}" + except ValueError: + return _escape_markdown(value) + return _escape_markdown(str(value)) + + +def _format_optional_float(value: Any) -> str: + """Format a numeric value for compact benchmark tables.""" + return f"{float(value):.6f}" if isinstance(value, (int, float)) else "" + + +def _is_int_like(value: Any) -> bool: + """Return whether a value can be losslessly parsed as an integer token count.""" + if isinstance(value, int): + return True + if isinstance(value, str): + try: + int(value) + except ValueError: + return False + return True + return False + + +def _escape_markdown(value: str) -> str: + return value.replace("|", "\\|").replace("\n", "
    ") diff --git a/benchmark/vision/README.md b/benchmark/vision/README.md new file mode 100644 index 0000000..3d7ef4d --- /dev/null +++ b/benchmark/vision/README.md @@ -0,0 +1,62 @@ +# Vision datasets and benchmarks + +`mblt-vision-python` owns the utilities that organize validation datasets and +evaluate Vision models. The standardized benchmark runner writes JSON, CSV, +Markdown, and optional chart artifacts for one or more models. + +Run scripts from the repository root, or invoke them as modules after installing +the package from source. + +## Dataset organization + +Most organizers can download their public source archives when paths are omitted; +pass local paths to reuse existing downloads. Organized datasets default to +`~/.mblt_vision/datasets`. + +```bash +python benchmark/vision/organize_coco.py +python benchmark/vision/organize_ade20k.py +python benchmark/vision/organize_nyu_depth.py +``` + +Cityscapes is not downloaded automatically. Supply the official archives: + +```bash +python benchmark/vision/organize_cityscapes.py \ + --image-dir benchmark/leftImg8bit_trainvaltest.zip \ + --annotation-dir benchmark/gtFine_trainvaltest.zip +``` + +The Cityscapes organizer selects only the 500 validation RGB images and their +`gtFine_labelIds` masks, installing them as `images/` and `annotations/` under the +chosen output directory. + +ImageNet and DOTA require their source archives or directories because their terms +of use may restrict automatic retrieval. See each organizer's `--help` output for +required arguments. + +## Running a benchmark + +```bash +python benchmark/vision/benchmark_vision_models.py \ + --models ResNet50 \ + --task image_classification \ + --data-path ~/.mblt_vision/datasets/imagenet +``` + +Use `--framework onnx` (or an `.onnx` `--model-path`) for ONNX Runtime. Use +`--core-mode all` to compare NPU core modes. The runner keeps evaluating remaining +models after an individual failure unless `--fail-fast` is set. + +Compare two or more benchmark result directories with: + +```bash +python benchmark/vision/compare_benchmark_results.py run-a run-b +``` + +## Verification + +The focused tests cover archive download recovery, safe staging and replacement, +dataset readiness, evaluator dispatch, standardized benchmark artifacts, and +comparison validation. Hardware-backed runs require a configured Mobilint NPU; +ONNX benchmarks require the relevant optional ONNX Runtime extra. diff --git a/benchmark/vision/__init__.py b/benchmark/vision/__init__.py new file mode 100644 index 0000000..1adafd3 --- /dev/null +++ b/benchmark/vision/__init__.py @@ -0,0 +1 @@ +"""Vision dataset organization and benchmark command-line tools.""" diff --git a/benchmark/vision/benchmark_vision_models.py b/benchmark/vision/benchmark_vision_models.py new file mode 100644 index 0000000..e5eed1b --- /dev/null +++ b/benchmark/vision/benchmark_vision_models.py @@ -0,0 +1,452 @@ +"""Run reproducible multi-model vision accuracy benchmarks. + +This entry point follows the artifact contract used by the Transformers benchmark: +one results directory contains machine-readable JSON and CSV output, an optional +summary, and an accuracy chart. +""" + +from __future__ import annotations + +import argparse +import sys +import time +from collections.abc import Sequence +from pathlib import Path +from typing import Any, Literal, cast + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[2] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) + +from benchmark.common.argparse_utils import parse_positive_int +from benchmark.common.io_utils import safe_filename, write_csv, write_json +from benchmark.common.summary_utils import ( + collect_host_pc_info, + markdown_table, + write_summary_markdown, +) +from mblt_vision._model_paths import resolve_framework +from mblt_vision._tasks import VISION_TASKS, normalize_vision_task + +CoreMode = Literal["single", "multi", "global4", "global8"] +CORE_MODES: tuple[CoreMode, ...] = ("single", "multi", "global4", "global8") +TASK_CHOICES = VISION_TASKS + + +def parse_unit_interval(value: str) -> float: + """Parse a floating-point value strictly between zero and one.""" + + try: + parsed = float(value) + except ValueError as exc: + raise argparse.ArgumentTypeError( + "expected a number in the open interval (0, 1)" + ) from exc + if not 0 < parsed < 1: + raise argparse.ArgumentTypeError( + f"expected a number in the open interval (0, 1), got {value}" + ) + return parsed + + +def normalize_core_mode(core_mode: str) -> CoreMode: + """Validate and narrow a benchmark NPU core mode.""" + + if core_mode not in CORE_MODES: + raise ValueError( + f"Invalid core mode {core_mode!r}; expected one of {list(CORE_MODES)}." + ) + return cast(CoreMode, core_mode) + + +def _parse_task(value: str) -> str: + """Normalize a benchmark task for argparse.""" + + try: + return normalize_vision_task(value) + except (TypeError, ValueError) as exc: + raise argparse.ArgumentTypeError(str(exc)) from exc + + +def _parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace: + """Parse command-line arguments for the standardized vision benchmark. + + Args: + argv: Optional argument sequence. ``None`` reads process arguments. + + Returns: + Parsed benchmark options. + """ + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "--models", nargs="+", required=True, help="Vision model classes to benchmark." + ) + parser.add_argument( + "--task", + type=_parse_task, + choices=TASK_CHOICES, + required=True, + help="Task shared by all requested models.", + ) + parser.add_argument( + "--model-type", + default="DEFAULT", + help="Model variant from the YAML configuration.", + ) + parser.add_argument( + "--model-path", + default="", + help="Optional local MXQ or ONNX model path for one target.", + ) + parser.add_argument( + "--mxq-path", default="", help="Compatibility alias for a local MXQ path." + ) + parser.add_argument( + "--onnx-path", default="", help="Optional local ONNX path for one target." + ) + parser.add_argument( + "--framework", choices=["mxq", "onnx"], help="Explicit inference framework." + ) + parser.add_argument( + "--core-mode", + default="global8", + choices=[*CORE_MODES, "all"], + help="NPU core mode, or `all` to run every supported mode.", + ) + parser.add_argument("--dev-no", type=int, default=0, help="NPU device number.") + parser.add_argument( + "--batch-size", + type=parse_positive_int, + default=1, + help="Validation batch size.", + ) + parser.add_argument( + "--data-path", required=True, help="Path to an organized validation dataset." + ) + parser.add_argument( + "--conf-thres", + type=parse_unit_interval, + default=None, + help="Optional confidence threshold override.", + ) + parser.add_argument( + "--iou-thres", + type=parse_unit_interval, + default=None, + help="Optional IoU threshold override.", + ) + parser.add_argument( + "--results-dir", + type=Path, + default=Path("benchmark/vision/results"), + help="Output directory.", + ) + parser.add_argument( + "--no-plot", action="store_true", help="Do not write an accuracy chart." + ) + parser.add_argument( + "--collect-host-info", + action="store_true", + help="Collect host metadata with mblt-tracker.", + ) + parser.add_argument( + "--fail-fast", + action="store_true", + help="Stop after the first failed model run.", + ) + args = parser.parse_args(argv) + local_paths = [args.model_path, args.mxq_path, args.onnx_path] + if len(args.models) != 1 and any(local_paths): + parser.error( + "--model-path, --mxq-path, and --onnx-path require exactly one --models target." + ) + return args + + +def _core_modes(core_mode: str, framework: str | None = None) -> tuple[str, ...]: + """Expand the multi-run core-mode shorthand. + + Args: + core_mode: Requested core mode. + framework: Resolved inference framework. + + Returns: + One or more concrete core modes. + """ + if framework == "onnx": + return ("onnx",) + return CORE_MODES if core_mode == "all" else (normalize_core_mode(core_mode),) + + +def _evaluate( + model: Any, args: argparse.Namespace, run_dir: Path +) -> tuple[float, str, dict[str, float]]: + """Evaluate one model and normalize task metrics for benchmark artifacts. + + Args: + model: Initialized vision engine. + args: Parsed benchmark options. + run_dir: Per-run output directory. + + Returns: + Primary score, its name, and all normalized metrics. + + Raises: + ValueError: If the model task differs from the requested benchmark task. + """ + from mblt_vision.utils.evaluation import ( + eval_ade20k, + eval_cityscapes, + eval_coco_metrics, + eval_dota, + eval_imagenet_metrics, + eval_nyu_depth, + eval_widerface, + ) + + model_task = normalize_vision_task(model.post_cfg.get("task", "")) + if model_task != args.task: + raise ValueError( + f"Model task '{model_task}' does not match requested task '{args.task}'." + ) + if args.task == "image_classification": + result = eval_imagenet_metrics(model, args.data_path, args.batch_size) + return ( + float(result.primary_score), + "top1_accuracy", + { + "top1_accuracy": float(result.top1), + "top5_accuracy": float(result.top5), + }, + ) + if args.task in {"object_detection", "instance_segmentation", "pose_estimation"}: + result = eval_coco_metrics( + model, args.data_path, args.batch_size, args.conf_thres, args.iou_thres + ) + return ( + float(result.primary_score), + "map50_95", + {"map50_95": float(result.map5095), "map50": float(result.map50)}, + ) + if args.task == "depth_estimation": + result = eval_nyu_depth(model, args.data_path, args.batch_size) + return ( + float(result.primary_score), + "delta1", + { + "delta1": float(result.delta1), + "abs_rel": float(result.abs_rel), + "rmse": float(result.rmse), + }, + ) + if args.task == "semantic_segmentation": + dataset = str(model.post_cfg.get("dataset", "")).lower() + if dataset == "ade20k": + result = eval_ade20k(model, args.data_path, args.batch_size) + elif dataset == "cityscapes": + result = eval_cityscapes(model, args.data_path, args.batch_size) + else: + raise ValueError( + f"Unsupported semantic segmentation benchmark taxonomy {dataset!r}; expected 'ade20k' or 'cityscapes'." + ) + return ( + float(result.primary_score), + "miou", + { + "miou": float(result.miou), + "pixel_accuracy": float(result.pixel_accuracy), + }, + ) + if args.task == "obb": + result = eval_dota( + model, + args.data_path, + args.batch_size, + args.conf_thres, + args.iou_thres, + str(run_dir / "dota_task1"), + ) + return ( + float(result.primary_score), + "map50_95", + { + "map50_95": float(result.map5095), + "map50": float(result.map50), + }, + ) + if args.task == "face_detection": + result = eval_widerface( + model, args.data_path, args.batch_size, args.conf_thres, args.iou_thres + ) + return ( + float(result.primary_score), + "mean_ap", + { + "easy_ap": float(result.easy_ap), + "medium_ap": float(result.medium_ap), + "hard_ap": float(result.hard_ap), + "mean_ap": float(result.mean_ap), + }, + ) + raise ValueError(f"Unsupported vision benchmark task: {args.task}") + + +def _run_target( + model_name: str, core_mode: str, args: argparse.Namespace, results_dir: Path +) -> dict[str, Any]: + """Run and record one model/core-mode benchmark target. + + Args: + model_name: Vision model class name. + core_mode: Concrete NPU core mode or the neutral ONNX runtime label. + args: Parsed benchmark options. + results_dir: Root directory for benchmark artifacts. + + Returns: + A normalized benchmark result row. + """ + from mblt_vision import MBLT_Engine + + label = f"{model_name}@{core_mode}" + run_dir = results_dir / "runs" / safe_filename(label) + run_dir.mkdir(parents=True, exist_ok=True) + row: dict[str, Any] = { + "model": model_name, + "core_mode": core_mode, + "task": args.task, + "batch_size": args.batch_size, + "status": "error", + } + model = None + started = time.perf_counter() + try: + engine_kwargs: dict[str, Any] = { + "model_cls": model_name, + "model_type": args.model_type, + "model_path": args.model_path, + "mxq_path": args.mxq_path, + "onnx_path": args.onnx_path, + "framework": args.framework, + "dev_no": args.dev_no, + } + if core_mode != "onnx": + engine_kwargs["core_mode"] = core_mode + model = MBLT_Engine( + **engine_kwargs, + ) + score, score_name, metrics = _evaluate(model, args, run_dir) + row.update( + {"status": "ok", "score": score, "score_name": score_name, **metrics} + ) + except ( + ImportError, + OSError, + RuntimeError, + TypeError, + ValueError, + NotImplementedError, + ) as exc: + row["error"] = f"{type(exc).__name__}: {exc}" + finally: + row["elapsed_s"] = round(time.perf_counter() - started, 6) + if model is not None: + model.dispose() + return row + + +def _write_outputs( + rows: list[dict[str, Any]], args: argparse.Namespace, results_dir: Path +) -> None: + """Write the shared JSON, CSV, chart, and Markdown benchmark artifacts. + + Args: + rows: Normalized benchmark rows. + args: Parsed benchmark options. + results_dir: Destination directory. + """ + results_dir.mkdir(parents=True, exist_ok=True) + payload = { + "schema_version": 1, + "benchmark": "vision", + "task": args.task, + "results": rows, + } + write_json(results_dir / "results.json", payload) + write_csv(results_dir / "results.csv", rows) + + successful = [row for row in rows if row["status"] == "ok"] + plot_paths: list[Path] = [] + if successful and not args.no_plot: + from benchmark.common.chart_utils import plot_simple_barh + + chart_path = results_dir / "accuracy.png" + plot_simple_barh( + labels=[f"{row['model']} ({row['core_mode']})" for row in successful], + values=[float(row["score"]) for row in successful], + x_label="Accuracy score", + title=f"{args.task} benchmark accuracy", + output_path=chart_path, + ) + plot_paths.append(chart_path) + + host_info_path = ( + collect_host_pc_info(results_dir) if args.collect_host_info else None + ) + table = markdown_table( + ["Model", "Core mode", "Metric", "Score", "Elapsed (s)", "Status"], + [ + [ + row["model"], + row["core_mode"], + row.get("score_name", "-"), + f"{float(row['score']):.5f}" if row.get("score") is not None else "-", + row["elapsed_s"], + row["status"], + ] + for row in rows + ], + ) + table_path = results_dir / "results.md" + table_path.write_text(table, encoding="utf-8") + write_summary_markdown( + results_dir / "summary.md", + title=f"Vision benchmark: {args.task}", + host_info_path=host_info_path, + table_markdown_path=table_path, + plot_paths=plot_paths, + ) + + +def main(argv: Sequence[str] | None = None) -> int: + """Run the standardized vision benchmark. + + Args: + argv: Optional command-line arguments. + + Returns: + Zero when every target succeeds, otherwise one. + """ + args = _parse_args(argv) + results_dir = args.results_dir.expanduser().resolve() + framework = resolve_framework(args.framework, args.model_path) + rows: list[dict[str, Any]] = [] + for model_name in args.models: + for core_mode in _core_modes(args.core_mode, framework): + print(f"Benchmarking {model_name} with core mode {core_mode}...") + row = _run_target(model_name, core_mode, args, results_dir) + rows.append(row) + if row["status"] == "ok": + print(f" {row['score_name']}: {row['score']:.5f}") + else: + print(f" failed: {row['error']}") + if args.fail_fast: + _write_outputs(rows, args, results_dir) + return 1 + _write_outputs(rows, args, results_dir) + print(f"Saved benchmark artifacts to: {results_dir}") + return 0 if all(row["status"] == "ok" for row in rows) else 1 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/benchmark/vision/compare_benchmark_results.py b/benchmark/vision/compare_benchmark_results.py new file mode 100644 index 0000000..5f5a253 --- /dev/null +++ b/benchmark/vision/compare_benchmark_results.py @@ -0,0 +1,179 @@ +"""Compare standardized vision benchmark result directories.""" + +from __future__ import annotations + +import argparse +import sys +from pathlib import Path +from typing import NamedTuple, Sequence + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[2] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) + +from benchmark.common.summary_utils import read_csv_rows + + +class BenchmarkScore(NamedTuple): + """One successful standardized vision benchmark score.""" + + task: str + metric: str + value: float + + +def _resolve_results_csv(raw: str) -> Path: + """Resolve a standard results CSV file from a path argument. + + Args: + raw: A results directory or explicit CSV path. + + Returns: + Resolved CSV path. + + Raises: + ValueError: If the path is not a standard benchmark results file. + """ + path = Path(raw).expanduser().resolve() + if path.is_dir(): + path = path / "results.csv" + if not path.is_file() or path.name != "results.csv": + raise ValueError( + f"Expected a vision benchmark results.csv file or containing directory: {path}" + ) + return path + + +def _collect_scores(path: Path) -> dict[str, BenchmarkScore]: + """Read successful model/core-mode scores from one results CSV. + + Args: + path: Standardized benchmark ``results.csv`` path. + + Returns: + Scores keyed by model and core mode. + + Raises: + ValueError: If a successful result has invalid standardized fields. + """ + scores: dict[str, BenchmarkScore] = {} + for row in read_csv_rows(path): + if row.get("status") != "ok": + continue + model = (row.get("model") or "").strip() + core_mode = (row.get("core_mode") or "").strip() + task = (row.get("task") or "").strip() + metric = (row.get("score_name") or "").strip() + if not model or not core_mode or not task or not metric: + raise ValueError( + f"Missing model, core_mode, task, or score_name in {path}." + ) + try: + score = float(row["score"]) + except (KeyError, TypeError, ValueError) as exc: + raise ValueError( + f"Invalid score for {model}@{core_mode} in {path}." + ) from exc + scores.setdefault( + f"{model}@{core_mode}", + BenchmarkScore(task=task, metric=metric, value=score), + ) + return scores + + +def _common_targets(scores_by_source: Sequence[dict[str, BenchmarkScore]]) -> list[str]: + """Return model/core-mode targets shared by all comparison sources. + + Args: + scores_by_source: Scores parsed from each result source. + + Returns: + Sorted shared target labels. + """ + if not scores_by_source: + return [] + return sorted(set.intersection(*(set(scores) for scores in scores_by_source))) + + +def main(argv: Sequence[str] | None = None) -> int: + """Generate a grouped score chart from standardized vision result files. + + Args: + argv: Optional command-line arguments. + + Returns: + Zero on success. + """ + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "inputs", + nargs="+", + help="At least two result directories or results.csv files.", + ) + parser.add_argument( + "--output-dir", type=Path, help="Directory for the grouped comparison chart." + ) + args = parser.parse_args(argv) + if len(args.inputs) < 2: + parser.error("Provide at least two benchmark result sources.") + try: + sources = [_resolve_results_csv(raw) for raw in args.inputs] + scores_by_source = [_collect_scores(source) for source in sources] + except ValueError as exc: + parser.error(str(exc)) + + task_names = { + score.task for scores in scores_by_source for score in scores.values() + } + if len(task_names) != 1: + raise SystemExit( + f"Inputs contain incompatible benchmark tasks: {', '.join(sorted(task_names))}." + ) + targets = _common_targets(scores_by_source) + if not targets: + raise SystemExit( + "No successful model/core-mode target is shared by all input sources." + ) + metric_names = { + score.metric for scores in scores_by_source for score in scores.values() + } + if len(metric_names) != 1: + raise SystemExit( + f"Inputs contain incompatible benchmark metrics: {', '.join(sorted(metric_names))}." + ) + metric_name = next(iter(metric_names)) + from benchmark.common.chart_utils import ( + default_charts_dir, + plot_grouped_scalar_barh, + source_labels, + ) + + source_dirs = [source.parent for source in sources] + output_dir = ( + args.output_dir.expanduser().resolve() + if args.output_dir + else default_charts_dir( + Path(__file__).resolve().parent, source_dirs, use_stem=False + ) + ) + output_dir.mkdir(parents=True, exist_ok=True) + plot_grouped_scalar_barh( + models=targets, + group_labels=source_labels(source_dirs, use_stem=False), + grouped_values=[ + {target: scores[target].value for target in targets} + for scores in scores_by_source + ], + x_label=metric_name, + y_label="model@core_mode", + title=f"Vision benchmark comparison: {metric_name}", + output_path=output_dir / "score.png", + ) + print(f"Compared {len(targets)} shared targets using {metric_name}.") + print(f"Saved chart to: {output_dir / 'score.png'}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/benchmark/vision/organize_ade20k.py b/benchmark/vision/organize_ade20k.py new file mode 100644 index 0000000..55cada6 --- /dev/null +++ b/benchmark/vision/organize_ade20k.py @@ -0,0 +1,22 @@ +"""Organize the ADE20K validation dataset for local use.""" + +import argparse +import os + +from mblt_vision.utils.datasets import organize_ade20k +from mblt_vision.utils.datasets.organizer import ADE20K_URL + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Organize ADE20K validation dataset") + parser.add_argument( + "--dataset-path", + default=ADE20K_URL, + help="Local path or download URL for ADE20K", + ) + parser.add_argument( + "--output-dir", + default=os.path.expanduser("~/.mblt_vision/datasets/ADEChallengeData2016"), + help="Path to the organized validation dataset", + ) + args = parser.parse_args() + organize_ade20k(dataset_path=args.dataset_path, output_dir=args.output_dir) diff --git a/benchmark/vision/organize_cityscapes.py b/benchmark/vision/organize_cityscapes.py new file mode 100644 index 0000000..74a9840 --- /dev/null +++ b/benchmark/vision/organize_cityscapes.py @@ -0,0 +1,40 @@ +"""Organize the Cityscapes validation dataset for local use.""" + +from __future__ import annotations + +import argparse + +from mblt_vision.utils.datasets import organize_cityscapes + + +def main() -> None: + """Parse organizer options and materialize Cityscapes validation data.""" + + parser = argparse.ArgumentParser( + description="Organize Cityscapes validation data from official ZIP archives" + ) + parser.add_argument( + "--image-dir", + required=True, + help="Path to leftImg8bit_trainvaltest.zip", + ) + parser.add_argument( + "--annotation-dir", + required=True, + help="Path to gtFine_trainvaltest.zip", + ) + parser.add_argument( + "--output-dir", + default="~/.mblt_vision/datasets/cityscapes", + help="Destination for the flat images/ and annotations/ directories", + ) + args = parser.parse_args() + organize_cityscapes( + image_dir=args.image_dir, + annotation_dir=args.annotation_dir, + output_dir=args.output_dir, + ) + + +if __name__ == "__main__": + main() diff --git a/benchmark/vision/organize_coco.py b/benchmark/vision/organize_coco.py new file mode 100644 index 0000000..abe1ab7 --- /dev/null +++ b/benchmark/vision/organize_coco.py @@ -0,0 +1,44 @@ +""" +Script to organize the COCO dataset. + +This script takes local archives or downloadable sources for the COCO dataset +and organizes them into a structure suitable for the model zoo. +""" + +import argparse +import os + +from mblt_vision.utils.datasets import organize_coco + +DEFAULT_COCO_IMAGE_SOURCE = "http://images.cocodataset.org/zips/val2017.zip" +DEFAULT_COCO_ANNOTATION_SOURCE = ( + "http://images.cocodataset.org/annotations/annotations_trainval2017.zip" +) + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Organize COCO dataset") + parser.add_argument( + "--image-dir", + type=str, + default=DEFAULT_COCO_IMAGE_SOURCE, + help="Local path or download URL for the image zip file", + ) + parser.add_argument( + "--ann-dir", + type=str, + default=DEFAULT_COCO_ANNOTATION_SOURCE, + help="Local path or download URL for the annotation zip file", + ) + parser.add_argument( + "--output-dir", + type=str, + default=os.path.expanduser("~/.mblt_vision/datasets/coco"), + help="Path to the directory to save the organized dataset", + ) + args = parser.parse_args() + + organize_coco( + image_dir=args.image_dir, + annotation_dir=args.ann_dir, + output_dir=args.output_dir, + ) diff --git a/benchmark/vision/organize_dotav1.py b/benchmark/vision/organize_dotav1.py new file mode 100644 index 0000000..16f0c56 --- /dev/null +++ b/benchmark/vision/organize_dotav1.py @@ -0,0 +1,35 @@ +""" +Script to organize the DOTAv1 validation dataset. + +This script takes a local archive, extracted directory, or downloadable source +for DOTAv1 and organizes only the validation split into a structure suitable for +the model zoo. +""" + +import argparse +import os + +from mblt_vision.datasets import get_dataset_config +from mblt_vision.utils.datasets import organize_dotav1 + +DEFAULT_DOTAV1_SOURCE = get_dataset_config("dotav1")["download"]["url"] +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Organize DOTAv1 validation dataset") + parser.add_argument( + "--dataset-path", + type=str, + default=DEFAULT_DOTAV1_SOURCE, + help="Local path, archive URL, or Google Drive folder URL for DOTAv1", + ) + parser.add_argument( + "--output-dir", + type=str, + default=os.path.expanduser("~/.mblt_vision/datasets/dotav1"), + help="Path to the directory to save the organized dataset", + ) + args = parser.parse_args() + + organize_dotav1( + dataset_path=args.dataset_path, + output_dir=args.output_dir, + ) diff --git a/benchmark/vision/organize_imagenet.py b/benchmark/vision/organize_imagenet.py new file mode 100644 index 0000000..8e7c001 --- /dev/null +++ b/benchmark/vision/organize_imagenet.py @@ -0,0 +1,45 @@ +""" +Script to organize the ImageNet dataset. + +This script takes local archives or downloadable sources for the ImageNet +dataset and organizes them into a structure suitable for the model zoo. +""" + +import argparse +import os + +from mblt_vision.utils.datasets import organize_imagenet + +DEFAULT_IMAGENET_IMAGE_SOURCE = ( + "https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar" +) +DEFAULT_IMAGENET_XML_SOURCE = ( + "https://www.image-net.org/data/ILSVRC/2012/ILSVRC2012_bbox_val_v3.tgz" +) +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Organize ImageNet dataset") + parser.add_argument( + "--image-dir", + type=str, + default=DEFAULT_IMAGENET_IMAGE_SOURCE, + help="Local path or download URL for the image tar file", + ) + parser.add_argument( + "--xml-dir", + type=str, + default=DEFAULT_IMAGENET_XML_SOURCE, + help="Local path or download URL for the XML tgz file", + ) + parser.add_argument( + "--output-dir", + type=str, + default=os.path.expanduser("~/.mblt_vision/datasets/imagenet"), + help="Path to the directory to save the organized dataset", + ) + args = parser.parse_args() + + organize_imagenet( + image_dir=args.image_dir, + xml_dir=args.xml_dir, + output_dir=args.output_dir, + ) diff --git a/benchmark/vision/organize_nyu_depth.py b/benchmark/vision/organize_nyu_depth.py new file mode 100644 index 0000000..2073004 --- /dev/null +++ b/benchmark/vision/organize_nyu_depth.py @@ -0,0 +1,29 @@ +"""Organize the NYU Depth dataset for local use. + +The script downloads the published NYU Depth archive by default, or accepts a +local zip file or extracted dataset directory. +""" + +import argparse +import os + +from mblt_vision.utils.datasets import organize_nyu_depth +from mblt_vision.utils.datasets.organizer import NYU_DEPTH_URL + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Organize NYU Depth dataset") + parser.add_argument( + "--dataset-path", + type=str, + default=NYU_DEPTH_URL, + help="Local path or download URL for the NYU Depth zip file or extracted dataset", + ) + parser.add_argument( + "--output-dir", + type=str, + default=os.path.expanduser("~/.mblt_vision/datasets/nyu-depth"), + help="Path to the directory to save the organized dataset", + ) + args = parser.parse_args() + + organize_nyu_depth(dataset_path=args.dataset_path, output_dir=args.output_dir) diff --git a/benchmark/vision/organize_widerface.py b/benchmark/vision/organize_widerface.py new file mode 100644 index 0000000..b44e369 --- /dev/null +++ b/benchmark/vision/organize_widerface.py @@ -0,0 +1,42 @@ +""" +Script to organize the WiderFace dataset. + +This script takes local archives or downloadable sources for the WiderFace +dataset and organizes them into a structure suitable for the model zoo. +""" + +import argparse +import os + +from mblt_vision.utils.datasets import organize_widerface + +DEFAULT_WIDERFACE_IMAGE_SOURCE = "https://huggingface.co/datasets/CUHK-CSE/wider_face/resolve/main/data/WIDER_val.zip" +DEFAULT_WIDERFACE_ANNOTATION_SOURCE = "https://huggingface.co/datasets/CUHK-CSE/wider_face/resolve/main/data/wider_face_split.zip" + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Organize WiderFace dataset") + parser.add_argument( + "--image-dir", + type=str, + default=DEFAULT_WIDERFACE_IMAGE_SOURCE, + help="Local path or download URL for the image zip file", + ) + parser.add_argument( + "--annotation-dir", + type=str, + default=DEFAULT_WIDERFACE_ANNOTATION_SOURCE, + help="Local path or download URL for the annotation zip file", + ) + parser.add_argument( + "--output-dir", + type=str, + default=os.path.expanduser("~/.mblt_vision/datasets/widerface"), + help="Path to the directory to save the organized dataset", + ) + args = parser.parse_args() + + organize_widerface( + image_dir=args.image_dir, + annotation_dir=args.annotation_dir, + output_dir=args.output_dir, + ) diff --git a/compile/vision/README.md b/compile/vision/README.md new file mode 100644 index 0000000..b211414 --- /dev/null +++ b/compile/vision/README.md @@ -0,0 +1,119 @@ +# Vision Model Compilation + +The installable vision compiler uses each model's packaged YAML configuration and +`MBLT_Engine.preprocess` implementation to compile its ONNX artifact for ARIES. + +## Installation + +Install the package with the compilation extra: + +```bash +pip install -e ".[qbcompiler]" +``` + +`qbcompiler` is currently distributed through Mobilint's external package channel and may not be +available from the public Python Package Index. Obtain access to the compiler package before using +this extra. + +qbcompiler is loaded only when `compile_vision_model()` or `mblt-vision-python compile` begins an +actual compilation request. Importing the base package, vision APIs, this compilation module, or +the main CLI does not import qbcompiler. If qbcompiler is unavailable, only the compilation request +fails with an installation message; non-compile APIs and CLI commands remain usable. + +## Python API + +```python +from mblt_vision.compile.vision import compile_vision_model + +output_path = compile_vision_model( + "alexnet", + data_path="~/.mblt_vision/datasets/imagenet", + save_path="./alexnet.mxq", +) +print(output_path) +``` + +## CLI + +```bash +mblt-vision-python compile \ + --model-cls alexnet \ + --data-path ~/.mblt_vision/datasets/imagenet \ + --save-path ./alexnet.mxq +``` + +Start from an existing sampled image subset or a ready calibration tensor directory when those +stages have already been completed: + +```bash +mblt-vision-python compile --model-cls alexnet --subset-path ./sampled-images +mblt-vision-python compile --model-cls alexnet --calib-data-path ./preprocessed-npy +``` + +Use `--model-type` for a non-default YAML variant and `--model-path` or `--onnx-path` to prefer a +local ONNX file. If that path is omitted or does not exist, the configured Hugging Face repository +supplies the ONNX artifact. Downloaded ONNX files and compiled outputs use +`~/.mblt_vision`; without `--save-path`, the compiler writes +`~/.mblt_vision/.mxq`. + +The ONNX preprocessing engine uses ONNX Runtime's CPU provider by default, so compilation does not +probe TensorRT, CUDA, or other accelerators. Callers that construct `MBLT_Engine` directly can opt +into another provider order with `onnx_providers`. + +## Calibration Data + +The compilation data pipeline has three levels: + +1. `data_path` / `--data-path`: Original organized dataset containing all images. The pipeline + prepares the dataset when needed, samples a task-specific subset, and preprocesses it. +2. `subset_path` / `--subset-path`: Already-sampled images. The pipeline skips original dataset + preparation and subset generation, then preprocesses every image in the supplied folder. +3. `calib_data_path` / `--calib-data-path`: Ready HWC, three-channel, contiguous `float32` `.npy` + tensors. The directory is validated and passed directly to qbcompiler without image processing. + +Supply at most one of these paths. When none is supplied, the task's registry-backed original +dataset path is used. `--calib-data-dir` remains an alias for `--calib-data-path` in the CLI and +standalone compatibility wrapper. + +Compilation maps model tasks to the packaged dataset registry: + +- Image classification uses ImageNet. +- Depth estimation uses NYU Depth V2. +- Object detection, instance segmentation, and pose estimation use COCO. +- Semantic segmentation uses the dataset declared by the model's `post_cfg.dataset`: ADE20K or + Cityscapes. +- Face detection uses WiderFace. +- Oriented bounding boxes use DOTAv1. + +`--data-path` is an organized dataset root. An existing ready layout is reused; otherwise the +registry-backed organizer downloads and prepares the dataset. When no path is supplied, the +registry default under `~/.mblt_vision/datasets` is used. + +NYU Depth and ADE20K use their registry download URLs. Cityscapes requires the manually downloaded +official `leftImg8bit_trainvaltest.zip` and `gtFine_trainvaltest.zip` archives; place both inside the +organized dataset path or its parent before compiling a Cityscapes model. + +Selection is deterministic with seed `0`. ImageNet and WiderFace select one image from every +category subfolder by default; COCO, DOTAv1, NYU Depth, ADE20K, and Cityscapes select 100 images +total. Override these values with `--subset-size` and `--seed`. Selected images and preprocessed +NumPy arrays live only in temporary directories and are removed after compilation, including when +compilation fails. + +The compiler uses explicit `--percentile` and `--topk-ratio` values first. Missing values are read +independently from `aries/best_result.json`; if optional hosted values are unavailable, defaults of +`0.9999` and `0.01` are used with a warning. + +## Compatibility Scripts + +The standalone scripts remain available: + +```bash +python compile/vision/vision_model_compile.py --model-cls alexnet +python compile/vision/make_imagenet_subset.py --output-dir ./imagenet-calibration +python compile/vision/make_coco_subset.py --output-dir ./coco-calibration +python compile/vision/make_dotav1_subset.py --output-dir ./dotav1-calibration +python compile/vision/make_widerface_subset.py --output-dir ./widerface-calibration +python compile/vision/make_nyu_depth_subset.py --output-dir ./nyu-depth-calibration +python compile/vision/make_ade20k_subset.py --output-dir ./ade20k-calibration +python compile/vision/make_cityscapes_subset.py --output-dir ./cityscapes-calibration +``` diff --git a/compile/vision/make_ade20k_subset.py b/compile/vision/make_ade20k_subset.py new file mode 100644 index 0000000..8823590 --- /dev/null +++ b/compile/vision/make_ade20k_subset.py @@ -0,0 +1,47 @@ +"""Compatibility entry point for ADE20K calibration subsets.""" + +from __future__ import annotations + +import argparse + +from mblt_vision.compile.vision import make_calibration_subset + +DEFAULT_DATA_DIR = "~/.mblt_model_zoo/datasets/ADEChallengeData2016" + + +def make_ade20k_subset( + data_dir: str, output_dir: str, subset_size: int, seed: int = 0 +) -> None: + """Create a deterministic ADE20K calibration subset. + + Args: + data_dir: Organized ADE20K root. + output_dir: Flat subset destination. + subset_size: Total image count. + seed: Random selection seed. + """ + + copied = make_calibration_subset( + "semantic_segmentation", data_dir, output_dir, subset_size, seed + ) + print(f"Created ADE20K subset with {len(copied)} images at {output_dir}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Create an ADE20K calibration subset") + parser.add_argument( + "--data-dir", + default=DEFAULT_DATA_DIR, + help="Path to the organized ADE20K dataset", + ) + parser.add_argument( + "--output-dir", required=True, help="Path to save the selected images" + ) + parser.add_argument( + "--subset-size", type=int, default=100, help="Number of images to select" + ) + parser.add_argument( + "--seed", type=int, default=0, help="Random seed used to select images" + ) + args = parser.parse_args() + make_ade20k_subset(args.data_dir, args.output_dir, args.subset_size, args.seed) diff --git a/compile/vision/make_cityscapes_subset.py b/compile/vision/make_cityscapes_subset.py new file mode 100644 index 0000000..4efd6c9 --- /dev/null +++ b/compile/vision/make_cityscapes_subset.py @@ -0,0 +1,49 @@ +"""Compatibility entry point for Cityscapes calibration subsets.""" + +from __future__ import annotations + +import argparse + +from mblt_vision.compile.vision import make_calibration_subset + +DEFAULT_DATA_DIR = "~/.mblt_model_zoo/datasets/cityscapes" + + +def make_cityscapes_subset( + data_dir: str, output_dir: str, subset_size: int, seed: int = 0 +) -> None: + """Create a deterministic Cityscapes calibration subset. + + Args: + data_dir: Organized Cityscapes root. + output_dir: Flat subset destination. + subset_size: Total image count. + seed: Random selection seed. + """ + + copied = make_calibration_subset( + "semantic_segmentation", data_dir, output_dir, subset_size, seed + ) + print(f"Created Cityscapes subset with {len(copied)} images at {output_dir}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Create a Cityscapes calibration subset" + ) + parser.add_argument( + "--data-dir", + default=DEFAULT_DATA_DIR, + help="Path to the organized Cityscapes dataset", + ) + parser.add_argument( + "--output-dir", required=True, help="Path to save the selected images" + ) + parser.add_argument( + "--subset-size", type=int, default=100, help="Number of images to select" + ) + parser.add_argument( + "--seed", type=int, default=0, help="Random seed used to select images" + ) + args = parser.parse_args() + make_cityscapes_subset(args.data_dir, args.output_dir, args.subset_size, args.seed) diff --git a/compile/vision/make_coco_subset.py b/compile/vision/make_coco_subset.py new file mode 100644 index 0000000..b936f58 --- /dev/null +++ b/compile/vision/make_coco_subset.py @@ -0,0 +1,47 @@ +"""Compatibility entry point for COCO calibration subsets.""" + +from __future__ import annotations + +import argparse + +from mblt_vision.compile.vision import make_calibration_subset + +DEFAULT_DATA_DIR = "~/.mblt_model_zoo/datasets/coco" + + +def make_coco_subset( + data_dir: str, output_dir: str, subset_size: int, seed: int = 0 +) -> None: + """Create a deterministic COCO calibration subset. + + Args: + data_dir: Organized COCO root. + output_dir: Flat subset destination. + subset_size: Total image count. + seed: Random selection seed. + """ + + copied = make_calibration_subset( + "object_detection", data_dir, output_dir, subset_size, seed + ) + print(f"Created COCO subset with {len(copied)} images at {output_dir}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Create a COCO calibration subset") + parser.add_argument( + "--data-dir", + default=DEFAULT_DATA_DIR, + help="Path to the organized COCO dataset", + ) + parser.add_argument( + "--output-dir", required=True, help="Path to save the selected images" + ) + parser.add_argument( + "--subset-size", type=int, default=100, help="Number of images to select" + ) + parser.add_argument( + "--seed", type=int, default=0, help="Random seed used to select images" + ) + args = parser.parse_args() + make_coco_subset(args.data_dir, args.output_dir, args.subset_size, args.seed) diff --git a/compile/vision/make_dotav1_subset.py b/compile/vision/make_dotav1_subset.py new file mode 100644 index 0000000..730496c --- /dev/null +++ b/compile/vision/make_dotav1_subset.py @@ -0,0 +1,45 @@ +"""Compatibility entry point for DOTAv1 calibration subsets.""" + +from __future__ import annotations + +import argparse + +from mblt_vision.compile.vision import make_calibration_subset + +DEFAULT_DATA_DIR = "~/.mblt_model_zoo/datasets/dotav1" + + +def make_dotav1_subset( + data_dir: str, output_dir: str, subset_size: int, seed: int = 0 +) -> None: + """Create a deterministic DOTAv1 calibration subset. + + Args: + data_dir: Organized DOTAv1 root. + output_dir: Flat subset destination. + subset_size: Total image count. + seed: Random selection seed. + """ + + copied = make_calibration_subset("obb", data_dir, output_dir, subset_size, seed) + print(f"Created DOTAv1 subset with {len(copied)} images at {output_dir}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="Create a DOTAv1 calibration subset") + parser.add_argument( + "--data-dir", + default=DEFAULT_DATA_DIR, + help="Path to the organized DOTAv1 dataset", + ) + parser.add_argument( + "--output-dir", required=True, help="Path to save the selected images" + ) + parser.add_argument( + "--subset-size", type=int, default=100, help="Number of images to select" + ) + parser.add_argument( + "--seed", type=int, default=0, help="Random seed used to select images" + ) + args = parser.parse_args() + make_dotav1_subset(args.data_dir, args.output_dir, args.subset_size, args.seed) diff --git a/compile/vision/make_imagenet_subset.py b/compile/vision/make_imagenet_subset.py new file mode 100644 index 0000000..f70ffd6 --- /dev/null +++ b/compile/vision/make_imagenet_subset.py @@ -0,0 +1,52 @@ +"""Compatibility entry point for ImageNet calibration subsets.""" + +from __future__ import annotations + +import argparse + +from mblt_vision.compile.vision import make_calibration_subset + +DEFAULT_DATA_DIR = "~/.mblt_model_zoo/datasets/imagenet" + + +def make_imagenet_subset( + data_dir: str, output_dir: str, subset_size: int, seed: int = 0 +) -> None: + """Create a deterministic ImageNet calibration subset. + + Args: + data_dir: Organized ImageNet root. + output_dir: Flat subset destination. + subset_size: Images selected per class. + seed: Random selection seed. + """ + + copied = make_calibration_subset( + "image_classification", data_dir, output_dir, subset_size, seed + ) + print(f"Created ImageNet subset with {len(copied)} images at {output_dir}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Create an ImageNet calibration subset" + ) + parser.add_argument( + "--data-dir", + default=DEFAULT_DATA_DIR, + help="Path to the organized ImageNet dataset", + ) + parser.add_argument( + "--output-dir", required=True, help="Path to save the selected images" + ) + parser.add_argument( + "--subset-size", + type=int, + default=1, + help="Number of images to select per category", + ) + parser.add_argument( + "--seed", type=int, default=0, help="Random seed used to select images" + ) + args = parser.parse_args() + make_imagenet_subset(args.data_dir, args.output_dir, args.subset_size, args.seed) diff --git a/compile/vision/make_nyu_depth_subset.py b/compile/vision/make_nyu_depth_subset.py new file mode 100644 index 0000000..6ae128b --- /dev/null +++ b/compile/vision/make_nyu_depth_subset.py @@ -0,0 +1,49 @@ +"""Compatibility entry point for NYU Depth calibration subsets.""" + +from __future__ import annotations + +import argparse + +from mblt_vision.compile.vision import make_calibration_subset + +DEFAULT_DATA_DIR = "~/.mblt_model_zoo/datasets/nyu-depth" + + +def make_nyu_depth_subset( + data_dir: str, output_dir: str, subset_size: int, seed: int = 0 +) -> None: + """Create a deterministic NYU Depth calibration subset. + + Args: + data_dir: Organized NYU Depth root. + output_dir: Flat subset destination. + subset_size: Total image count. + seed: Random selection seed. + """ + + copied = make_calibration_subset( + "depth_estimation", data_dir, output_dir, subset_size, seed + ) + print(f"Created NYU Depth subset with {len(copied)} images at {output_dir}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Create an NYU Depth calibration subset" + ) + parser.add_argument( + "--data-dir", + default=DEFAULT_DATA_DIR, + help="Path to the organized NYU Depth dataset", + ) + parser.add_argument( + "--output-dir", required=True, help="Path to save the selected images" + ) + parser.add_argument( + "--subset-size", type=int, default=100, help="Number of images to select" + ) + parser.add_argument( + "--seed", type=int, default=0, help="Random seed used to select images" + ) + args = parser.parse_args() + make_nyu_depth_subset(args.data_dir, args.output_dir, args.subset_size, args.seed) diff --git a/compile/vision/make_widerface_subset.py b/compile/vision/make_widerface_subset.py new file mode 100644 index 0000000..977a244 --- /dev/null +++ b/compile/vision/make_widerface_subset.py @@ -0,0 +1,52 @@ +"""Compatibility entry point for WiderFace calibration subsets.""" + +from __future__ import annotations + +import argparse + +from mblt_vision.compile.vision import make_calibration_subset + +DEFAULT_DATA_DIR = "~/.mblt_model_zoo/datasets/widerface" + + +def make_widerface_subset( + data_dir: str, output_dir: str, subset_size: int, seed: int = 0 +) -> None: + """Create a deterministic WiderFace calibration subset. + + Args: + data_dir: Organized WiderFace root. + output_dir: Flat subset destination. + subset_size: Images selected per category. + seed: Random selection seed. + """ + + copied = make_calibration_subset( + "face_detection", data_dir, output_dir, subset_size, seed + ) + print(f"Created WiderFace subset with {len(copied)} images at {output_dir}") + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Create a WiderFace calibration subset" + ) + parser.add_argument( + "--data-dir", + default=DEFAULT_DATA_DIR, + help="Path to the organized WiderFace dataset", + ) + parser.add_argument( + "--output-dir", required=True, help="Path to save the selected images" + ) + parser.add_argument( + "--subset-size", + type=int, + default=1, + help="Number of images to select per category", + ) + parser.add_argument( + "--seed", type=int, default=0, help="Random seed used to select images" + ) + args = parser.parse_args() + make_widerface_subset(args.data_dir, args.output_dir, args.subset_size, args.seed) diff --git a/compile/vision/vision_model_compile.py b/compile/vision/vision_model_compile.py new file mode 100644 index 0000000..cfea216 --- /dev/null +++ b/compile/vision/vision_model_compile.py @@ -0,0 +1,83 @@ +"""Compatibility entry point for packaged vision compilation.""" + +from __future__ import annotations + +import argparse + +from mblt_vision.compile.vision import compile_vision_model + + +def build_parser() -> argparse.ArgumentParser: + """Build the standalone compatibility parser. + + Returns: + Configured argument parser. + """ + + parser = argparse.ArgumentParser( + description="Compile a configured vision ONNX model to MXQ" + ) + parser.add_argument("--model-cls", required=True, help="Vision model name.") + parser.add_argument( + "--model-type", + default="DEFAULT", + help="Model variant from the YAML configuration.", + ) + parser.add_argument( + "--model-path", + "--onnx-path", + dest="model_path", + help="Preferred local ONNX file.", + ) + data_group = parser.add_mutually_exclusive_group() + data_group.add_argument("--data-path", help="Original organized dataset root.") + data_group.add_argument("--subset-path", help="Already-sampled image subset root.") + data_group.add_argument( + "--calib-data-path", + "--calib-data-dir", + dest="calib_data_path", + help="Ready directory of preprocessed .npy tensors.", + ) + parser.add_argument( + "--save-path", + help="Output MXQ path. Defaults to the ONNX stem under ~/.mblt_model_zoo.", + ) + parser.add_argument( + "--subset-size", + type=int, + help="Per-category ImageNet/WiderFace count or total count for other datasets.", + ) + parser.add_argument( + "--seed", type=int, default=0, help="Calibration selection seed." + ) + parser.add_argument( + "--percentile", type=float, help="Quantization percentile override." + ) + parser.add_argument( + "--topk-ratio", type=float, help="Quantization top-k ratio override." + ) + return parser + + +def main() -> None: + """Run standalone vision compilation.""" + + args = build_parser().parse_args() + output_path = compile_vision_model( + model_cls=args.model_cls, + model_type=args.model_type, + model_path=args.model_path, + data_path=args.data_path, + subset_path=args.subset_path, + calib_data_path=args.calib_data_path, + save_path=args.save_path, + subset_size=args.subset_size, + seed=args.seed, + percentile=args.percentile, + topk_ratio=args.topk_ratio, + ) + print(f"Compiled MXQ model to {output_path}") + + +if __name__ == "__main__": + main() diff --git a/mblt_vision/README.md b/mblt_vision/README.md index 413ff45..0e81206 100644 --- a/mblt_vision/README.md +++ b/mblt_vision/README.md @@ -1,159 +1,284 @@ -# Pre-Trained Vision Models +# Mobilint Vision API -> Split out of `mblt-model-zoo`, which still re-exports this package as -> `mblt_model_zoo.vision`. +`mblt-vision-python` provides Python access to pre-trained Mobilint Vision models: +image classification, depth estimation, face and object detection, oriented bounding +boxes (OBB), instance and semantic segmentation, and pose estimation. Each model +configuration includes the artifact, preprocessing, output taxonomy, and +postprocessing contract needed to produce task-specific results. -Here, we give the full list of publicly pre-trained models supported by the Mobilint Model Zoo. +## Loading models -Further usage examples can be found in the [tests](../tests) directory. +Use a task subpackage for a known model, or `MBLT_Engine` to choose a model and +artifact at runtime. These imports are both supported: -## Image Classification +```python +from mblt_vision import ResNet50 +from mblt_vision import YOLO11m +``` + +```python +from mblt_vision import MBLT_Engine + +model = MBLT_Engine(model_cls="resnet50", model_type="DEFAULT", model_path="", core_mode="global8") +``` + +```python +from mblt_vision import MBLT_Engine + +# Install the optional `onnxruntime` or `onnxruntime-gpu` extra first. +model = MBLT_Engine(model_cls="alexnet", framework="onnx") +``` + +When `framework="onnx"` is selected, the engine uses ONNX Runtime's `CPUExecutionProvider` by +default. Pass `onnx_providers` to select another provider order explicitly when needed. If +`model_path` or `file_cfg.model_path` ends +with `.mxq` or `.onnx`, the engine auto-detects the framework from that suffix when `framework` is +omitted. + +For Hub-backed models, `file_cfg.filename` is the canonical MXQ artifact name. The engine derives +the corresponding ONNX artifact by replacing its `.mxq` suffix with `.onnx`, so every model uses +the same ONNX loading path. Set `file_cfg.onnx_filename` only when a Hub repository uses a +non-matching ONNX filename. + +Every model configuration also declares `post_cfg.dataset`. This identifies the output taxonomy, +not merely the broad task: COCO detection uses 80 classes, Cityscapes semantic segmentation uses +19, and ADE20K semantic segmentation uses 150. YOLO postprocessing resolves shape-sensitive class +counts from the dataset and task together. + +```python +from mblt_vision.image_classification import ResNet50 +from mblt_vision.object_detection import YOLO11m +``` + +The task subpackages are the clearest import surface; `MBLT_Engine`, `list_tasks()`, +and `list_models()` are the preferred discovery and loading APIs for new code. +Top-level model imports remain available for compatibility. `obb` is the sole +oriented-bounding-box task name. + +## Pre-Trained Vision Models + +This section lists the publicly pre-trained models supported by the vision framework. + +### Image Classification | Model | Input Size
    (H,W,C) | AccTop1
    (NPU) | AccTop1
    (GPU) | FLOPs (B) | params (M) | Source | Note | -|------------|------------|-----------|--------------------|--------|-------|------|------| -| AlexNet | (224,224,3)| 56.022 | 56.552 | 0.71 | 61.10 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.alexnet.html) | | -| ConvNeXt_Tiny | (224,224,3) | 82.302 | 82.460| 4.46 | 28.59 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_tiny.html) | | -| ConvNeXt_Small | (224,224,3) | 83.432 | 83.560 | 8.68 | 50.22 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_small.html) | | -| ConvNeXt_Base | (224,224,3) | 83.834 | 84.050 | 15.36 | 88.59 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_base.html) | | -| ConvNeXt_Large | (224,224,3) | 83.276 | 84.410 | 34.36 | 197.77 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_large.html) | | -| DeiT_Tiny_Patch16_224 | (224,224,3) | 71.864 | 72.030 | 2.53 | 5.72 | [Link](https://huggingface.co/timm/deit_tiny_patch16_224.fb_in1k) | fb_in1k | -| DeiT_Small_Patch16_224 | (224,224,3) | 79.770 | 79.790 | 9.25 | 22.05 | [Link](https://huggingface.co/timm/deit_small_patch16_224.fb_in1k) | fb_in1k | -| DeiT_Base_Patch16_224 | (224,224,3) | 81.886 | 81.980 | 35.23 | 86.57 | [Link](https://huggingface.co/timm/deit_base_patch16_224.fb_in1k) | fb_in1k | -| DeiT_Base_Patch16_384 | (384,384,3) | 83.046 | 83.100 | 111.34 | 86.86 | [Link](https://huggingface.co/timm/deit_base_patch16_384.fb_in1k) | fb_in1k | -| DeiT3_Small_Patch16_224 | (224,224,3) | 81.326 | 81.398 | 9.25 | 22.06 | [Link](https://huggingface.co/timm/deit3_small_patch16_224.fb_in1k) | fb_in1k | -| DeiT3_Small_Patch16_384 | (384,384,3) | 81.304 | 81.414 | 31.17 | 22.21 | [Link](https://huggingface.co/timm/deit3_small_patch16_384.fb_in1k) | fb_in1k | -| DeiT3_Medium_Patch16_224 | (224,224,3) | 82.930 | 83.044 | 16.05 | 38.85 | [Link](https://huggingface.co/timm/deit3_medium_patch16_224.fb_in1k) | fb_in1k | -| DeiT3_Base_Patch16_224 | (224,224,3) | 83.644 | 83.766 | 35.23 | 86.59 | [Link](https://huggingface.co/timm/deit3_base_patch16_224.fb_in1k) | fb_in1k | -| DeiT3_Base_Patch16_384 | (384,384,3) | 84.990 | 85.062 | 111.34 | 86.88 | [Link](https://huggingface.co/timm/deit3_base_patch16_384.fb_in1k) | fb_in1k | -| DeiT3_Large_Patch16_224 | (224,224,3) | 84.658 | 84.738 | 123.39 | 304.37 | [Link](https://huggingface.co/timm/deit3_large_patch16_224.fb_in1k) | fb_in1k | -| DeiT3_Large_Patch16_384 | (384,384,3) | 85.770 | 85.828 | 383.13 | 304.76 | [Link](https://huggingface.co/timm/deit3_large_patch16_384.fb_in1k) | fb_in1k | -| DenseNet121 | (224,224,3) | 74.194 | 74.414 | 2.83 | 7.98 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet121.html) | | -| DenseNet169 | (224,224,3) | 75.476 | 75.566 | 3.36 | 14.15 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet169.html) | | -| DenseNet201 | (224,224,3) | 76.650 | 76.880 | 4.29 | 20.01 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet201.html) | | -| FlexiViT_Small | (240,240,3) | 82.284 | 82.532 | 10.73 | 22.06 | [Link](https://huggingface.co/timm/flexivit_small.1200ep_in1k) | 1200ep_in1k | -| FlexiViT_Base | (240,240,3) | 84.670 | 84.670 | 40.66 | 86.59 | [Link](https://huggingface.co/timm/flexivit_base.1200ep_in1k) | 1200ep_in1k | -| FlexiViT_Large | (240,240,3) | 85.576 | 85.660 | 142.21 | 304.36 | [Link](https://huggingface.co/timm/flexivit_large.1200ep_in1k) | 1200ep_in1k | -| GoogLeNet | (224,224,3) | 69.566 | 69.780 | 1.50 | 6.62 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.googlenet.html) | | -| Inception_V3 | (299,299,3) | 77.120 | 77.278 | 5.71 | 27.16 | [Link](https://docs.pytorch.org/vision/main/models/generated/torchvision.models.inception_v3.html)| | -| MNASNet1_0 | (224,224,3)| 72.696 | 73.422 | 0.31 | 4.38 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.mnasnet1_0.html) | | -| MNASNet1_3 | (224,224,3) | 75.720 | 76.466 | 0.53 | 6.28 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.mnasnet1_3.html) | | -| MobileNet_V2 | (224,224,3)| 71.624 | 72.138 | 0.30 | 3.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.mobilenet_v2.html) | IMAGENET1K_V2 | -| RegNet_X_400MF | (224,224,3) | 72.544 | 72.900 | 0.41 | 5.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_400mf.html) | IMAGENET1K_V1 | -| RegNet_X_400MF | (224,224,3) | 74.218 | 74.846 | 0.41 | 5.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_400mf.html) | IMAGENET1K_V2 | -| RegNet_X_800MF | (224,224,3) | 74.928 | 75.204 | 0.80 | 7.26 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_800mf.html) | IMAGENET1K_V1 | -| RegNet_X_800MF | (224,224,3) | 76.984 | 77.488 | 0.80 | 7.26 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_800mf.html) | IMAGENET1K_V2 | -| RegNet_X_1_6GF | (224,224,3) | 76.756 | 77.080 | 1.60 | 9.19 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_1_6gf.html) | IMAGENET1K_V1 | -| RegNet_X_1_6GF | (224,224,3) | 79.168 | 79.670 | 1.60 | 9.19 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_1_6gf.html) | IMAGENET1K_V2 | -| RegNet_X_3_2GF | (224,224,3) | 77.978 | 78.346 | 3.18 | 15.30 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_x_3_2gf.html) | IMAGENET1K_V1 | -| RegNet_X_3_2GF | (224,224,3) | 80.792 | 81.188 | 3.18 | 15.30 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_x_3_2gf.html) | IMAGENET1K_V2 | -| RegNet_X_8GF | (224,224,3) | 79.322 | 79.368 | 8.00 | 39.57 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_8gf.html) | IMAGENET1K_V1 | -| RegNet_X_8GF | (224,224,3) | 81.388 | 81.680 | 8.00 | 39.57 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_8gf.html) | IMAGENET1K_V2 | -| RegNet_X_16GF | (224,224,3) | 79.884 | 80.090 | 15.94 | 54.28 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_16gf.html) | IMAGENET1K_V1 | -| RegNet_X_16GF | (224,224,3) | 82.312 | 82.712 | 15.94 | 54.28 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_16gf.html) | IMAGENET1K_V2 | -| RegNet_X_32GF | (224,224,3) | 80.482 | 80.592 | 31.74 | 107.81 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_32gf.html) | IMAGENET1K_V1 | -| RegNet_X_32GF | (224,224,3) | 82.722 | 83.014 | 31.74 | 107.81 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_32gf.html) | IMAGENET1K_V2 | -| RegNet_Y_400MF | (224,224,3) | 73.594 | 73.998 | 0.40 | 4.34 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_400mf.html) | IMAGENET1K_V1 | -| RegNet_Y_400MF | (224,224,3) | 75.294 | 75.804 | 0.40 | 4.34 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_400mf.html) | IMAGENET1K_V2 | -| RegNet_Y_800MF | (224,224,3) | 76.132 | 76.406 | 0.83 | 6.43 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_800mf.html) | IMAGENET1K_V1| -| RegNet_Y_800MF | (224,224,3) | 78.280 | 78.904 | 0.83 | 6.43 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_800mf.html) | IMAGENET1K_V2| -| RegNet_Y_1_6GF | (224,224,3) | 77.260 | 77.934 | 1.61 | 11.20 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_1_6gf.html) | IMAGENET1K_V1 | -| RegNet_Y_1_6GF | (224,224,3) | 80.298 | 80.876 | 1.61 | 11.20 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_1_6gf.html) | IMAGENET1K_V2 | -| RegNet_Y_3_2GF | (224,224,3) | 78.504 | 78.962 | 3.18 | 19.44 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_y_3_2gf.html) | IMAGENET1K_V1 | -| RegNet_Y_3_2GF | (224,224,3) | 81.354 | 82.010 | 3.18 | 19.44 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_y_3_2gf.html) | IMAGENET1K_V2 | -| RegNet_Y_8GF | (224,224,3) | 79.768 | 80.052 | 8.47 | 39.38 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_8gf.html) | IMAGENET1K_V1 | -| RegNet_Y_8GF | (224,224,3) | 82.418 | 82.822 | 8.47 | 39.38 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_8gf.html) | IMAGENET1K_V2 | -| RegNet_Y_16GF | (224,224,3) | 80.240 | 80.428 | 15.91 | 83.59 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_16gf.html)| IMAGENET1K_V1 | -| RegNet_Y_16GF | (224,224,3) | 82.348 | 82.868 | 15.91 | 83.59 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_16gf.html)| IMAGENET1K_V2 | -| RegNet_Y_32GF | (224,224,3) | 80.510 | 80.840 | 32.28 | 145.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_32gf.html) | IMAGENET1K_V1 | -| RegNet_Y_32GF | (224,224,3) | 82.798 | 83.362 | 32.28 | 145.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_32gf.html) | IMAGENET1K_V2 | -| ResNet18 | (224,224,3) | 69.530 | 69.770 | 1.81 | 11.69 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet18.html) | | -| ResNet34 | (224,224,3) | 73.166 | 73.308 | 3.66 | 21.80 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet34.html) | | -| ResNet50 | (224,224,3) | 75.946 | 76.128 | 4.09 | 25.56 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet50.html) | IMAGENET1K_V1 | -| ResNet50 | (224,224,3) | 80.326 | 80.844 | 4.09 | 25.56 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet50.html) | IMAGENET1K_V2 | -| ResNet101 | (224,224,3) | 77.112 | 77.362 | 7.80 | 44.55 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet101.html) | IMAGENET1K_V1 | -| ResNet101 | (224,224,3) | 81.472 | 81.918 | 7.80 | 44.55 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet101.html) | IMAGENET1K_V2 | -| ResNet152 | (224,224,3) | 77.922 | 78.316 | 11.51 | 60.19 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet152.html) | IMAGENET1K_V1 | -| ResNet152 | (224,224,3) | 81.950 | 82.272 | 11.51 | 60.19 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet152.html) | IMAGENET1K_V2 | -| ResNeXt50_32X4D | (224,224,3) | 77.528 | 77.630 | 4.23 | 25.03 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext50_32x4d.html) | IMAGENET1K_V1 | -| ResNeXt50_32X4D | (224,224,3) | 80.728 | 81.220 | 4.23 | 25.03 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext50_32x4d.html) | IMAGENET1K_V2 | -| ResNeXt101_32X8D | (224,224,3) | 78.998 | 79.288 | 16.41 | 88.79 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext101_32x8d.html) | IMAGENET1K_V1 | -| ResNeXt101_32X8D | (224,224,3) | 82.510 | 82.780 | 16.41 | 88.79 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext101_32x8d.html) | IMAGENET1K_V2 | -| ResNeXt101_64X4D | (224,224,3) | 82.876 | 83.236 | 15.46 | 83.46 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext101_64x4d.html) | | -| ShuffleNet_V2_X1_0 | (224,224,3) | 68.616 | 69.312 | 0.14 | 2.28 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.shufflenet_v2_x1_0.html) | | -| ShuffleNet_V2_X1_5 | (224,224,3) | 72.240 | 72.966 | 0.30 | 3.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.shufflenet_v2_x1_5.html) | | -| ShuffleNet_V2_X2_0 | (224,224,3) | 75.540 | 76.222 | 0.58 | 7.39 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.shufflenet_v2_x2_0.html) | | -| VGG11 | (224,224,3) | 68.616 | 68.978 | 7.61 | 132.86 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg11.html) | | -| VGG11_BN | (224,224,3) | 70.010 | 70.328 | 7.61 | 132.87 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg11_bn.html) | | -| VGG13 | (224,224,3) | 69.588 | 69.886 | 11.31 | 133.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg13.html) | | -| VGG13_BN | (224,224,3) | 71.262 | 71.570 | 11.31 | 133.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg13_bn.html) | | -| VGG16 | (224,224,3) | 71.350 | 71.610 | 15.47 | 138.36 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg16.html) | | -| VGG16_BN | (224,224,3) | 73.178 | 73.408 | 15.47 | 138.37 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg16_bn.html) | | -| VGG19 | (224,224,3) | 72.140 | 72.384 | 19.63 | 143.67 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg19.html) | | -| VGG19_BN | (224,224,3) | 73.898 | 74.166 | 19.63 | 143.68 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg19_bn.html) | | -| ViT_Tiny_Patch16_224 | (224,224,3) | 75.308 | 75.458 | 2.53 | 5.72 | [Link](https://huggingface.co/timm/vit_tiny_patch16_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Tiny_Patch16_384 | (384,384,3) | 78.213 | 78.466 | 9.46 | 5.79 | [Link](https://huggingface.co/timm/vit_tiny_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Small_Patch16_224 | (224,224,3) | 81.446 | 81.410 | 9.25 | 22.05 | [Link](https://huggingface.co/timm/vit_base_patch16_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Small_Patch16_384 | (384,384,3) | 83.724 | 83.788 | 31.17 | 22.20 | [Link](https://huggingface.co/timm/vit_base_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Small_Patch32_224 | (224,224,3) | 75.716 | 75.926 | 2.30 | 22.88 | [Link](https://huggingface.co/timm/vit_base_patch32_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Small_Patch32_384 | (384,384,3) | 80.412 | 80.460 | 6.92 | 22.92 | [Link](https://huggingface.co/timm/vit_base_patch32_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Base_Patch8_224 | (224,224,3) | 86.348 | 86.270 | 156.86 | 86.58 | [Link](https://huggingface.co/timm/vit_base_patch8_224.augreg2_in21k_ft_in1k) | augreg2_in21k_ft_in1k | -| ViT_Base_Patch16_224 | (224,224,3) | 85.040 | 85.114 | 35.23 | 86.57 | [Link](https://huggingface.co/timm/vit_base_patch16_224.augreg2_in21k_ft_in1k) | augreg2_in21k_ft_in1k | -| ViT_Base_Patch16_384 | (384,384,3) | 86.002 | 86.028 | 111.34 | 86.86 | [Link](https://huggingface.co/timm/vit_base_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Base_Patch32_224 | (224,224,3) | 80.598 | 80.694 | 8.84 | 88.22 | [Link](https://huggingface.co/timm/vit_base_patch32_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Base_Patch32_384 | (384,384,3) | 83.322 | 83.394 | 26.16 | 88.30 | [Link](https://huggingface.co/timm/vit_base_patch32_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Large_Patch16_224 | (224,224,3) | 85.886 | 85.872 | 123.39 | 304.33 | [Link](https://huggingface.co/timm/vit_large_patch16_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Large_Patch16_384 | (384,384,3) | 86.976 | 87.084 | 383.13 | 304.72 | [Link](https://huggingface.co/timm/vit_large_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | -| ViT_Large_Patch32_384 | (384,384,3) | 81.494 | 81.510 | 90.75 | 306.63 | [Link](https://huggingface.co/timm/vit_large_patch32_384.orig_in21k_ft_in1k) | orig_in21k_ft_in1k | -| Wide_ResNet50_2 | (224,224,3) | 78.268 | 78.490 | 11.40 | 68.88 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet50_2.html) | IMAGENET1K_V1 | -| Wide_ResNet50_2 | (224,224,3) | 81.226 | 81.626 | 11.40 | 68.88 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet50_2.html) | IMAGENET1K_V2 | -| Wide_ResNet101_2 | (224,224,3) | 78.384 | 78.834 | 22.75 | 126.89 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet101_2.html) | IMAGENET1K_V1 | -| Wide_ResNet101_2 | (224,224,3) | 82.282 | 82.504 | 22.75 | 126.89 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet101_2.html) | IMAGENET1K_V2 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| AlexNet | (224,224,3) | 56.084 | 56.556 | 1.43 | 61.10 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.alexnet.html) | | +| CAFormer_S18 | (224,224,3) | 82.592 | 83.626 | 9.10 | 26.34 | [Link](https://huggingface.co/timm/caformer_s18.sail_in1k) | sail_in1k | +| CAFormer_B36 | (224,224,3) | 83.938 | 85.482 | 49.41 | 98.75 | [Link](https://huggingface.co/timm/caformer_b36.sail_in1k) | sail_in1k | +| CoAtNet_0_RW_224 | (224,224,3) | 81.842 | 82.418 | 10.06 | 30.46 | [Link](https://huggingface.co/timm/coatnet_0_rw_224.sw_in1k) | sw_in1k | +| CoAtNet_1_RW_224 | (224,224,3) | 83.506 | 83.600 | 18.17 | 47.91 | [Link](https://huggingface.co/timm/coatnet_1_rw_224.sw_in1k) | sw_in1k | +| CoAtNet_2_RW_224 | (224,224,3) | 86.084 | 86.534 | 32.80 | 82.11 | [Link](https://huggingface.co/timm/coatnet_2_rw_224.sw_in12k_ft_in1k) | sw_in12k_ft_in1k | +| ConvFormer S36 | (224,224,3) | 83.360 | 84.016 | 16.66 | 40.01 | [Link](https://huggingface.co/timm/convformer_s36.sail_in1k) | sail_in1k | +| ConvFormer M36 | (224,224,3) | 84.014 | 84.448 | 27.58 | 57.05 | [Link](https://huggingface.co/timm/convformer_m36.sail_in1k) | sail_in1k | +| ConvFormer B36 | (224,224,3) | 84.244 | 84.830 | 47.79 | 99.88 | [Link](https://huggingface.co/timm/convformer_b36.sail_in1k) | sail_in1k | +| ConvNeXt_Tiny | (224,224,3) | 82.354 | 82.458 | 9.11 | 28.59 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_tiny.html) | | +| ConvNeXt_Small | (224,224,3) | 83.434 | 83.560 | 17.68 | 50.22 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_small.html) | | +| ConvNeXt_Base | (224,224,3) | 83.940 | 84.048 | 31.13 | 88.59 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_base.html) | | +| ConvNeXt_Large | (224,224,3) | 84.316 | 84.410 | 69.35 | 197.77 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.convnext_large.html) | | +| DeiT_Tiny_Patch16_224 | (224,224,3) | 71.944 | 72.030 | 2.66 | 5.72 | [Link](https://huggingface.co/timm/deit_tiny_patch16_224.fb_in1k) | fb_in1k | +| DeiT_Small_Patch16_224 | (224,224,3) | 79.722 | 79.790 | 9.50 | 22.05 | [Link](https://huggingface.co/timm/deit_small_patch16_224.fb_in1k) | fb_in1k | +| DeiT_Base_Patch16_224 | (224,224,3) | 81.932 | 81.980 | 35.73 | 86.57 | [Link](https://huggingface.co/timm/deit_base_patch16_224.fb_in1k) | fb_in1k | +| DeiT_Base_Patch16_384 | (384,384,3) | 83.046 | 83.100 | 115.00 | 86.86 | [Link](https://huggingface.co/timm/deit_base_patch16_384.fb_in1k) | fb_in1k | +| DeiT3_Small_Patch16_224 | (224,224,3) | 81.368 | 81.390 | 9.50 | 22.06 | [Link](https://huggingface.co/timm/deit3_small_patch16_224.fb_in1k) | fb_in1k | +| DeiT3_Small_Patch16_384 | (384,384,3) | 83.350 | 83.420 | 33.01 | 22.21 | [Link](https://huggingface.co/timm/deit3_small_patch16_384.fb_in1k) | fb_in1k | +| DeiT3_Medium_Patch16_224 | (224,224,3) | 83.020 | 83.044 | 16.39 | 38.85 | [Link](https://huggingface.co/timm/deit3_medium_patch16_224.fb_in1k) | fb_in1k | +| DeiT3_Base_Patch16_224 | (224,224,3) | 83.708 | 83.766 | 35.74 | 86.59 | [Link](https://huggingface.co/timm/deit3_base_patch16_224.fb_in1k) | fb_in1k | +| DeiT3_Base_Patch16_384 | (384,384,3) | 84.986 | 85.064 | 115.02 | 86.88 | [Link](https://huggingface.co/timm/deit3_base_patch16_384.fb_in1k) | fb_in1k | +| DeiT3_Large_Patch16_224 | (224,224,3) | 84.734 | 84.736 | 124.73 | 304.37 | [Link](https://huggingface.co/timm/deit3_large_patch16_224.fb_in1k) | fb_in1k | +| DeiT3_Large_Patch16_384 | (384,384,3) | 85.806 | 85.826 | 392.94 | 304.76 | [Link](https://huggingface.co/timm/deit3_large_patch16_384.fb_in1k) | fb_in1k | +| ConvFormer S18 | (224,224,3) | 81.862 | 82.866 | 8.59 | 26.77 | [Link](https://huggingface.co/timm/convformer_s18.sail_in1k) | sail_in1k | +| EfficientFormer_L7 | (224,224,3) | 82.526 | 83.352 | 20.67 | 82.14 | [Link](https://huggingface.co/timm/efficientformer_l7.snap_dist_in1k) | snap_dist_in1k | +| DenseNet121 | (224,224,3) | 74.320 | 74.422 | 6.37 | 8.04 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet121.html) | | +| DenseNet161 | (224,224,3) | 77.200 | 77.142 | 16.85 | 28.86 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet161.html) | | +| DenseNet169 | (224,224,3) | 75.554 | 75.568 | 7.62 | 14.28 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet169.html) | | +| DenseNet201 | (224,224,3) | 76.742 | 76.882 | 9.82 | 20.21 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.densenet201.html) | | +| FlexiViT_Small | (240,240,3) | 82.150 | 82.536 | 11.05 | 22.06 | [Link](https://huggingface.co/timm/flexivit_small.1200ep_in1k) | 1200ep_in1k | +| FlexiViT_Base | (240,240,3) | 84.484 | 84.664 | 41.30 | 86.59 | [Link](https://huggingface.co/timm/flexivit_base.1200ep_in1k) | 1200ep_in1k | +| FlexiViT_Large | (240,240,3) | 85.540 | 85.658 | 143.89 | 304.36 | [Link](https://huggingface.co/timm/flexivit_large.1200ep_in1k) | 1200ep_in1k | +| Inception_V3 | (299,299,3) | 77.246 | 77.278 | 11.51 | 23.82 | [Link](https://docs.pytorch.org/vision/main/models/generated/torchvision.models.inception_v3.html) | | +| LeViT_Conv_128 | (224,224,3) | 77.282 | 78.488 | 0.88 | 9.19 | [Link](https://huggingface.co/timm/levit_conv_128.fb_dist_in1k) | fb_dist_in1k | +| LeViT_Conv_128S | (224,224,3) | 75.204 | 76.574 | 0.65 | 7.76 | [Link](https://huggingface.co/timm/levit_conv_128s.fb_dist_in1k) | fb_dist_in1k | +| LeViT_Conv_192 | (224,224,3) | 79.138 | 79.876 | 1.38 | 10.92 | [Link](https://huggingface.co/timm/levit_conv_192.fb_dist_in1k) | fb_dist_in1k | +| LeViT_Conv_256 | (224,224,3) | 80.960 | 81.538 | 2.34 | 18.86 | [Link](https://huggingface.co/timm/levit_conv_256.fb_dist_in1k) | fb_dist_in1k | +| LeViT_Conv_384 | (224,224,3) | 82.170 | 82.582 | 4.83 | 39.08 | [Link](https://huggingface.co/timm/levit_conv_384.fb_dist_in1k) | fb_dist_in1k | +| MNASNet1_0 | (224,224,3) | 72.806 | 73.416 | 0.65 | 4.36 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.mnasnet1_0.html) | | +| MobileNet_V2 | (224,224,3) | 71.728 | 72.142 | 0.64 | 3.49 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.mobilenet_v2.html) | IMAGENET1K_V2 | +| RegNet_X_400MF | (224,224,3) | 72.530 | 72.908 | 0.84 | 5.48 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_400mf.html) | IMAGENET1K_V1 | +| RegNet_X_400MF | (224,224,3) | 74.182 | 74.860 | 0.84 | 5.48 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_400mf.html) | IMAGENET1K_V2 | +| RegNet_X_800MF | (224,224,3) | 74.972 | 75.210 | 1.62 | 7.24 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_800mf.html) | IMAGENET1K_V1 | +| RegNet_X_800MF | (224,224,3) | 77.056 | 77.496 | 1.62 | 7.24 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_800mf.html) | IMAGENET1K_V2 | +| RegNet_X_1_6GF | (224,224,3) | 76.900 | 77.084 | 3.24 | 9.17 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_1_6gf.html) | IMAGENET1K_V1 | +| RegNet_X_1_6GF | (224,224,3) | 79.254 | 79.676 | 3.24 | 9.17 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_1_6gf.html) | IMAGENET1K_V2 | +| RegNet_X_3_2GF | (224,224,3) | 78.142 | 78.342 | 6.40 | 15.27 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_x_3_2gf.html) | IMAGENET1K_V1 | +| RegNet_X_3_2GF | (224,224,3) | 80.888 | 81.194 | 6.40 | 15.27 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_x_3_2gf.html) | IMAGENET1K_V2 | +| RegNet_X_8GF | (224,224,3) | 79.338 | 79.372 | 16.05 | 39.53 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_8gf.html) | IMAGENET1K_V1 | +| RegNet_X_8GF | (224,224,3) | 81.386 | 81.692 | 16.05 | 39.53 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_8gf.html) | IMAGENET1K_V2 | +| RegNet_X_16GF | (224,224,3) | 79.932 | 80.092 | 31.99 | 54.22 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_16gf.html) | IMAGENET1K_V1 | +| RegNet_X_16GF | (224,224,3) | 82.434 | 82.712 | 31.99 | 54.22 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_16gf.html) | IMAGENET1K_V2 | +| RegNet_X_32GF | (224,224,3) | 80.550 | 80.592 | 63.63 | 107.73 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_32gf.html) | IMAGENET1K_V1 | +| RegNet_X_32GF | (224,224,3) | 82.856 | 83.022 | 63.63 | 107.73 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_x_32gf.html) | IMAGENET1K_V2 | +| RegNet_Y_400MF | (224,224,3) | 73.690 | 74.004 | 0.82 | 4.33 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_400mf.html) | IMAGENET1K_V1 | +| RegNet_Y_400MF | (224,224,3) | 75.312 | 75.802 | 0.82 | 4.33 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_400mf.html) | IMAGENET1K_V2 | +| RegNet_Y_800MF | (224,224,3) | 76.100 | 76.396 | 1.70 | 6.42 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_800mf.html) | IMAGENET1K_V1 | +| RegNet_Y_800MF | (224,224,3) | 78.448 | 78.890 | 1.70 | 6.42 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.regnet_y_800mf.html) | IMAGENET1K_V2 | +| RegNet_Y_1_6GF | (224,224,3) | 77.370 | 77.926 | 3.27 | 11.18 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_1_6gf.html) | IMAGENET1K_V1 | +| RegNet_Y_1_6GF | (224,224,3) | 80.490 | 80.882 | 3.27 | 11.18 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_1_6gf.html) | IMAGENET1K_V2 | +| RegNet_Y_3_2GF | (224,224,3) | 78.744 | 78.962 | 6.41 | 19.40 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_y_3_2gf.html) | IMAGENET1K_V1 | +| RegNet_Y_3_2GF | (224,224,3) | 81.454 | 82.018 | 6.41 | 19.40 | [Link](https://docs.pytorch.org//vision/2.0/models/generated/torchvision.models.regnet_y_3_2gf.html) | IMAGENET1K_V2 | +| RegNet_Y_8GF | (224,224,3) | 79.874 | 80.052 | 17.05 | 39.34 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_8gf.html) | IMAGENET1K_V1 | +| RegNet_Y_8GF | (224,224,3) | 82.546 | 82.824 | 17.05 | 39.34 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_8gf.html) | IMAGENET1K_V2 | +| RegNet_Y_16GF | (224,224,3) | 80.326 | 80.424 | 31.95 | 83.53 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_16gf.html) | IMAGENET1K_V1 | +| RegNet_Y_16GF | (224,224,3) | 82.470 | 82.862 | 31.95 | 83.53 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_16gf.html) | IMAGENET1K_V2 | +| RegNet_Y_32GF | (224,224,3) | 80.700 | 80.834 | 64.72 | 144.97 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_32gf.html) | IMAGENET1K_V1 | +| RegNet_Y_32GF | (224,224,3) | 82.890 | 83.362 | 64.72 | 144.97 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.regnet_y_32gf.html) | IMAGENET1K_V2 | +| ResNet18 | (224,224,3) | 69.558 | 69.778 | 3.64 | 11.68 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet18.html) | | +| ResNet34 | (224,224,3) | 73.166 | 73.304 | 7.35 | 21.79 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet34.html) | | +| ResNet50 | (224,224,3) | 75.980 | 76.116 | 8.23 | 25.53 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet50.html) | IMAGENET1K_V1 | +| ResNet50 | (224,224,3) | 80.574 | 80.852 | 8.23 | 25.53 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet50.html) | IMAGENET1K_V2 | +| ResNet101 | (224,224,3) | 77.076 | 77.350 | 15.69 | 44.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet101.html) | IMAGENET1K_V1 | +| ResNet101 | (224,224,3) | 81.534 | 81.914 | 15.69 | 44.50 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet101.html) | IMAGENET1K_V2 | +| ResNet152 | (224,224,3) | 78.044 | 78.306 | 23.14 | 60.12 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet152.html) | IMAGENET1K_V1 | +| ResNet152 | (224,224,3) | 81.952 | 82.272 | 23.14 | 60.12 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnet152.html) | IMAGENET1K_V2 | +| ResNeXt50_32X4D | (224,224,3) | 77.568 | 77.634 | 8.53 | 24.99 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext50_32x4d.html) | IMAGENET1K_V1 | +| ResNeXt50_32X4D | (224,224,3) | 80.896 | 81.212 | 8.53 | 24.99 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext50_32x4d.html) | IMAGENET1K_V2 | +| ResNeXt101_32X8D | (224,224,3) | 79.234 | 79.290 | 32.97 | 88.69 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext101_32x8d.html) | IMAGENET1K_V1 | +| ResNeXt101_32X8D | (224,224,3) | 82.598 | 82.784 | 32.97 | 88.69 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext101_32x8d.html) | IMAGENET1K_V2 | +| ResNeXt101_64X4D | (224,224,3) | 82.980 | 83.234 | 31.06 | 83.35 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.resnext101_64x4d.html) | | +| ShuffleNet_V2_X1_0 | (224,224,3) | 68.734 | 69.312 | 0.30 | 2.27 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.shufflenet_v2_x1_0.html) | | +| ShuffleNet_V2_X1_5 | (224,224,3) | 72.458 | 72.966 | 0.60 | 3.49 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.shufflenet_v2_x1_5.html) | | +| ShuffleNet_V2_X2_0 | (224,224,3) | 75.614 | 76.224 | 1.18 | 7.38 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.shufflenet_v2_x2_0.html) | | +| Swin_B | (224,224,3) | 83.254 | 83.562 | 31.58 | 88.61 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.swin_b.html) | | +| Swin_S | (224,224,3) | 82.848 | 83.180 | 18.02 | 50.24 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.swin_s.html) | | +| Swin_T | (224,224,3) | 81.076 | 81.444 | 9.32 | 28.60 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.swin_t.html) | | +| VGG11 | (224,224,3) | 68.706 | 68.974 | 15.26 | 132.86 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg11.html) | | +| VGG11_BN | (224,224,3) | 70.074 | 70.328 | 15.26 | 132.86 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg11_bn.html) | | +| VGG13 | (224,224,3) | 69.742 | 69.888 | 22.68 | 133.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg13.html) | | +| VGG13_BN | (224,224,3) | 71.370 | 71.564 | 22.68 | 133.05 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg13_bn.html) | | +| VGG16 | (224,224,3) | 71.526 | 71.616 | 31.01 | 138.36 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg16.html) | | +| VGG16_BN | (224,224,3) | 73.276 | 73.406 | 31.01 | 138.36 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg16_bn.html) | | +| VGG19 | (224,224,3) | 72.284 | 72.386 | 39.34 | 143.67 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg19.html) | | +| VGG19_BN | (224,224,3) | 74.022 | 74.170 | 39.34 | 143.67 | [Link](https://docs.pytorch.org//vision/stable/models/generated/torchvision.models.vgg19_bn.html) | | +| ViT_B_16 | (224,224,3) | 81.002 | 81.040 | 35.73 | 86.57 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.vit_b_16.html) | IMAGENET1K_V1 | +| ViT_B_16 | (384,384,3) | 85.118 | 85.276 | 115.01 | 86.86 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.vit_b_16.html) | IMAGENET1K_SWAG_E2E_V1 | +| ViT_B_16 | (224,224,3) | 81.516 | 81.926 | 35.73 | 86.57 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.vit_b_16.html) | IMAGENET1K_SWAG_LINEAR_V1 | +| ViT_B_32 | (224,224,3) | 75.680 | 75.908 | 8.90 | 88.22 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.vit_b_32.html) | | +| RepViT_M1 | (224,224,3) | 77.668 | 78.510 | 1.70 | 5.46 | [Link](https://huggingface.co/timm/repvit_m1.dist_in1k) | dist_in1k | +| RepViT_M1_0 | (224,224,3) | 79.210 | 80.198 | 2.39 | 7.29 | [Link](https://huggingface.co/timm/repvit_m1_0.dist_300e_in1k) | dist_300e_in1k | +| RepViT_M1_1 | (224,224,3) | 79.838 | 80.828 | 2.87 | 8.79 | [Link](https://huggingface.co/timm/repvit_m1_1.dist_300e_in1k) | dist_300e_in1k | +| RepViT_M1_5 | (224,224,3) | 81.532 | 82.374 | 4.88 | 14.62 | [Link](https://huggingface.co/timm/repvit_m1_5.dist_300e_in1k) | dist_300e_in1k | +| RepViT_M2 | (224,224,3) | 79.882 | 80.526 | 2.77 | 8.77 | [Link](https://huggingface.co/timm/repvit_m2.dist_in1k) | dist_in1k | +| RepViT_M2_3 | (224,224,3) | 82.960 | 83.466 | 9.59 | 23.66 | [Link](https://huggingface.co/timm/repvit_m2_3.dist_300e_in1k) | dist_300e_in1k | +| RepViT_M3 | (224,224,3) | 80.896 | 81.478 | 3.85 | 10.65 | [Link](https://huggingface.co/timm/repvit_m3.dist_in1k) | dist_in1k | +| VisFormer_Small | (224,224,3) | 81.586 | 82.106 | 10.05 | 40.24 | [Link](https://huggingface.co/timm/visformer_small.in1k) | in1k | +| VisFormer_Tiny | (224,224,3) | 77.564 | 78.262 | 2.68 | 10.33 | [Link](https://huggingface.co/timm/visformer_tiny.in1k) | in1k | +| ViT_Tiny_Patch16_224 | (224,224,3) | 74.568 | 75.456 | 2.66 | 5.72 | [Link](https://huggingface.co/timm/vit_tiny_patch16_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Tiny_Patch16_384 | (384,384,3) | 77.312 | 78.470 | 10.37 | 5.79 | [Link](https://huggingface.co/timm/vit_tiny_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Small_Patch16_224 | (224,224,3) | 81.404 | 81.412 | 9.50 | 22.05 | [Link](https://huggingface.co/timm/vit_small_patch16_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Small_Patch16_384 | (384,384,3) | 83.560 | 83.782 | 33.00 | 22.20 | [Link](https://huggingface.co/timm/vit_small_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Small_Patch32_224 | (224,224,3) | 75.792 | 75.922 | 2.32 | 22.88 | [Link](https://huggingface.co/timm/vit_small_patch32_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Small_Patch32_384 | (384,384,3) | 80.092 | 80.452 | 7.07 | 22.92 | [Link](https://huggingface.co/timm/vit_small_patch32_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Base_Patch8_224 | (224,224,3) | 86.302 | 86.268 | 163.48 | 86.58 | [Link](https://huggingface.co/timm/vit_base_patch8_224.augreg2_in21k_ft_in1k) | augreg2_in21k_ft_in1k | +| ViT_Base_Patch16_224 | (224,224,3) | 85.080 | 85.112 | 35.73 | 86.57 | [Link](https://huggingface.co/timm/vit_base_patch16_224.augreg2_in21k_ft_in1k) | augreg2_in21k_ft_in1k | +| ViT_Base_Patch16_384 | (384,384,3) | 85.860 | 86.018 | 115.00 | 86.86 | [Link](https://huggingface.co/timm/vit_base_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Base_Patch32_224 | (224,224,3) | 80.612 | 80.698 | 8.89 | 88.22 | [Link](https://huggingface.co/timm/vit_base_patch32_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Base_Patch32_384 | (384,384,3) | 83.138 | 83.398 | 26.45 | 88.30 | [Link](https://huggingface.co/timm/vit_base_patch32_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Large_Patch16_224 | (224,224,3) | 85.880 | 85.870 | 124.71 | 304.33 | [Link](https://huggingface.co/timm/vit_large_patch16_224.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Large_Patch16_384 | (384,384,3) | 86.980 | 87.086 | 392.88 | 304.72 | [Link](https://huggingface.co/timm/vit_large_patch16_384.augreg_in21k_ft_in1k) | augreg_in21k_ft_in1k | +| ViT_Large_Patch32_384 | (384,384,3) | 81.122 | 81.512 | 91.52 | 306.63 | [Link](https://huggingface.co/timm/vit_large_patch32_384.orig_in21k_ft_in1k) | orig_in21k_ft_in1k | +| Wide_ResNet50_2 | (224,224,3) | 78.402 | 78.488 | 22.87 | 68.85 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet50_2.html) | IMAGENET1K_V1 | +| Wide_ResNet50_2 | (224,224,3) | 81.268 | 81.630 | 22.87 | 68.85 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet50_2.html) | IMAGENET1K_V2 | +| Wide_ResNet101_2 | (224,224,3) | 78.500 | 78.830 | 45.61 | 126.82 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet101_2.html) | IMAGENET1K_V1 | +| Wide_ResNet101_2 | (224,224,3) | 82.358 | 82.510 | 45.61 | 126.82 | [Link](https://docs.pytorch.org/vision/stable/models/generated/torchvision.models.wide_resnet101_2.html) | IMAGENET1K_V2 | +| YOLOv5n-cls | (224,224,3) | 63.538 | 63.982 | 0.43 | 2.49 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5s-cls | (224,224,3) | 70.698 | 70.854 | 1.42 | 5.45 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5m-cls | (224,224,3) | 75.348 | 75.418 | 4.03 | 12.95 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5l-cls | (224,224,3) | 77.536 | 77.528 | 8.82 | 26.54 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5x-cls | (224,224,3) | 78.338 | 78.312 | 16.46 | 48.07 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv8s-cls | (224,224,3) | 72.630 | 73.774 | 1.67 | 6.36 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8m-cls | (224,224,3) | 76.032 | 76.824 | 5.37 | 17.04 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8l-cls | (224,224,3) | 77.708 | 78.276 | 12.53 | 37.47 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8x-cls | (224,224,3) | 78.440 | 78.936 | 19.38 | 57.40 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLO11s-cls | (224,224,3) | 74.532 | 75.244 | 1.63 | 6.72 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11m-cls | (224,224,3) | 76.484 | 77.388 | 5.17 | 11.62 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11l-cls | (224,224,3) | 77.658 | 78.284 | 6.51 | 14.10 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11x-cls | (224,224,3) | 78.666 | 79.426 | 14.20 | 29.61 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO26s-cls | (224,224,3) | 75.300 | 75.910 | 1.63 | 6.72 | [Link](https://docs.ultralytics.com/models/yolo26/) | | +| YOLO26m-cls | (224,224,3) | 77.608 | 78.078 | 5.17 | 11.62 | [Link](https://docs.ultralytics.com/models/yolo26/) | | +| YOLO26l-cls | (224,224,3) | 78.614 | 79.060 | 6.51 | 14.10 | [Link](https://docs.ultralytics.com/models/yolo26/) | | +| YOLO26x-cls | (224,224,3) | 79.478 | 79.866 | 14.20 | 29.61 | [Link](https://docs.ultralytics.com/models/yolo26/) | |

    Image Classification (ImageNet) -- AccTop1 values are model accuracies on the [ImageNet](https://www.image-net.org/index.php) dataset validation set. +- AccTop1 values are the primary model accuracies on the + [ImageNet](https://www.image-net.org/index.php) validation set. Validation also reports + AccTop5 as the secondary metric.
    -## Object Detection +### Object Detection | Model | Input Size
    (H,W,C) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{box}}}$
    (NPU) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{box}}}$
    (GPU) | FLOPs (B) | params (M) | Source | Note | -|-------|--------------------------|----------------|---------------|-----------|------------|--------|------| -| YOLOv3u | (640,640,3) | 51.053 | 51.577 | 282.68 | 103.73 | [Link](https://docs.ultralytics.com/models/yolov3/)| | -| YOLOv3-spp | (640,640,3) | 46.715 | 47.613 | 156.91 | 62.97 | [Link](https://github.com/ultralytics/yolov3/)| | -| YOLOv3-sppu | (640,640,3) | 51.382 | 51.763 | 283.57 | 104.78 | [Link](https://docs.ultralytics.com/models/yolov3/)| | -| YOLOv5su | (640,640,3) | 42.206 | 42.871 | 24.03 | 9.14 | [Link](https://docs.ultralytics.com/models/yolov5/)| | -| YOLOv5s6u | (1280,1280,3) | 48.008 | 48.632 | 97,75 | 15.29 | [Link](https://docs.ultralytics.com/models/yolov5/)| | -| YOLOv5mu | (640,640,3) | 48.217 | 48.906 | 64.27 | 25.09 | [Link](https://docs.ultralytics.com/models/yolov5/)| | -| YOLOv5m6u | (1280,1280,3) | 52.938 | 53.475 | 261.56 | 41.19 | [Link](https://docs.ultralytics.com/models/yolov5/)| | -| YOLOv5lu | (640,640,3) | 51.718 | 52.171 | 135.09 | 53.19 | [Link](https://docs.ultralytics.com/models/yolov5/)| | -| YOLOv5l6 | (1280,1280,3) | 52.402 | 53.368 | 445.31 | 72.73 | [Link](https://github.com/ultralytics/yolov5/)| | -| YOLOv5l6u | (1280,1280,3) | 54.974 | 55.465 | 549.86 | 80.05 | [Link](https://docs.ultralytics.com/models/yolov5/)| | -| YOLOv5xu | (640,640,3) | 52.600 | 53.090 | 246.55 | 97.23 | [Link](https://docs.ultralytics.com/models/yolov5/)| | -| YOLOv5x6 | (1280, 1280,3) | 53.706 | 54.706 | 838.81 | 140.73 | [Link](https://github.com/ultralytics/yolov5/)| | -| YOLOv5x6u | (1280,1280,3) | 56.141 | 56.489 | 1003.46 | 155.48 | [Link](https://docs.ultralytics.com/models/yolov5/)| | -| YOLOv7 | (640,640,3) | 50.402 | 50.941 | 104.67 | 36.91 | [Link](https://github.com/WongKinYiu/yolov7/) | | -| YOLOv7d6 | (1280,1280,3) | 55.635 | 55.792 | 702.30 | 133.76 | [Link](https://github.com/WongKinYiu/yolov7/) | | -| YOLOv7e6 | (1280,1280,3) | 55.304 | 55.567 | 514.89 | 97.20 | [Link](https://github.com/WongKinYiu/yolov7/) | | -| YOLOv7e6e | (1280,1280,3) | 55.768 | 56.295 | 842.87 | 151.69 | [Link](https://github.com/WongKinYiu/yolov7/) | | -| YOLOv7w6 | (1280,1280,3) | 53.783 | 54.131 | 359.99 | 70.39 | [Link](https://github.com/WongKinYiu/yolov7/) | | -| YOLOv7x | (640,640,3) | 52.103 | 52.706 | 189.88 | 71.31 | [Link](https://github.com/WongKinYiu/yolov7/) | | -| YOLOv8s | (640,640,3) | 44.062 | 44.918 | 28.64 | 11.16 | [Link](https://docs.ultralytics.com/models/yolov8/) | | -| YOLOv8m | (640,640,3) | 49.657 | 50.240 | 79.00 | 25.89 | [Link](https://docs.ultralytics.com/models/yolov8/) | | -| YOLOv8l | (640,640,3) | 52.340 | 52.773 | 165.24 | 43.67 | [Link](https://docs.ultralytics.com/models/yolov8/) | | -| YOLOv8x | (640,640,3) | 53.365 | 53.802 | 257.92 | 68.20 | [Link](https://docs.ultralytics.com/models/yolov8/) | | -| GELANm | (640,640,3) | 50.108 | 50.923 | 76.44 | 19.98 | [Link](https://github.com/WongKinYiu/yolov9/) | | -| YOLOv9m | (640,640,3) | 50.351 | 51.191 | 76.43 | 19.98 | [Link](https://github.com/WongKinYiu/yolov9/) | | -| GELANc | (640,640,3) | 51.938 | 52.274 | 102.34 | 25.29 | [Link](https://github.com/WongKinYiu/yolov9/) | | -| YOLOv9c | (640,640,3) | 52.391 | 52.918 | 102.34 | 25.29 | [Link](https://github.com/WongKinYiu/yolov9/) | | -| YOLOv10b | (640,640,3) | 51.125 | 52.096 | 92.23 | 19.07 | [Link](https://docs.ultralytics.com/models/yolov10/) | | -| YOLO11s | (640,640,3) | 45.733 | 46.617 | 21.69 | 9.44 | [Link](https://docs.ultralytics.com/models/yolo11/) | | -| YOLO11m | (640,640,3) | 50.638 | 51.310 | 68.24 | 20.09 | [Link](https://docs.ultralytics.com/models/yolo11/) | | -| YOLO11l | (640,640,3) | 52.468 | 53.165 | 87.37 | 25.34 | [Link](https://docs.ultralytics.com/models/yolo11/) | | -| YOLO11x | (640,640,3) | 54.059 | 54.478 | 195.67 | 56.92 | [Link](https://docs.ultralytics.com/models/yolo11/) | | -| YOLO12s | (640,640,3) | 46.746 | 47.687 | 23.84 | 9.26 | [Link](https://docs.ultralytics.com/models/yolo12/) | | -| YOLO12m | (640,640,3) | 51.568 | 52.297 | 71.91 | 20.17 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| --- | --- | --- | --- | --- | --- | --- | --- | +| YOLOv3 | (640,640,3) | 46.354 | 46.839 | 162.27 | 61.92 | [Link](https://docs.ultralytics.com/models/yolov3/) | | +| YOLOv3u | (640,640,3) | 51.214 | 51.582 | 289.23 | 103.73 | [Link](https://docs.ultralytics.com/models/yolov3/) | | +| YOLOv3-spp | (640,640,3) | 47.106 | 47.616 | 163.23 | 62.97 | [Link](https://docs.ultralytics.com/models/yolov3/) | | +| YOLOv3-sppu | (640,640,3) | 51.710 | 51.754 | 290.20 | 104.78 | [Link](https://docs.ultralytics.com/models/yolov3/) | | +| YOLOv5nu | (640,640,3) | 33.549 | 34.286 | 8.79 | 2.65 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5n6 | (1280,1280,3) | 35.021 | 35.892 | 22.10 | 3.24 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5n6u | (1280,1280,3) | 41.637 | 42.111 | 35.63 | 4.33 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5s | (640,640,3) | 36.780 | 37.540 | 18.21 | 7.23 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5su | (640,640,3) | 42.414 | 42.877 | 25.93 | 9.14 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5s6 | (1280,1280,3) | 43.878 | 44.512 | 74.33 | 12.61 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5s6u | (1280,1280,3) | 48.363 | 48.636 | 105.38 | 15.29 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5m | (640,640,3) | 44.446 | 45.238 | 52.14 | 21.17 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5mu | (640,640,3) | 48.388 | 48.910 | 67.70 | 25.09 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5m6 | (1280,1280,3) | 50.637 | 51.078 | 212.83 | 35.70 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5m6u | (1280,1280,3) | 53.259 | 53.476 | 275.41 | 41.19 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5l | (640,640,3) | 48.128 | 48.914 | 114.20 | 46.53 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5lu | (640,640,3) | 51.824 | 52.172 | 140.50 | 53.19 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5l6 | (1280,1280,3) | 52.892 | 53.376 | 466.00 | 76.73 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5l6u | (1280,1280,3) | 55.344 | 55.466 | 571.74 | 86.05 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5x | (640,640,3) | 49.986 | 50.554 | 213.04 | 86.71 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5xu | (640,640,3) | 52.792 | 53.090 | 254.38 | 97.23 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5x6 | (1280,1280,3) | 54.197 | 54.706 | 869.05 | 140.73 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5x6u | (1280,1280,3) | 56.516 | 56.488 | 1035.24 | 155.48 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv7 | (640,640,3) | 50.442 | 50.942 | 110.55 | 36.91 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7x | (640,640,3) | 52.389 | 52.706 | 197.67 | 71.31 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7w6 | (1280,1280,3) | 53.886 | 54.128 | 374.79 | 70.39 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7d6 | (1280,1280,3) | 55.510 | 55.799 | 730.75 | 133.76 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7e6 | (1280,1280,3) | 55.379 | 55.567 | 538.42 | 97.20 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv7e6e | (1280,1280,3) | 55.932 | 56.298 | 878.43 | 151.69 | [Link](https://github.com/WongKinYiu/yolov7/) | | +| YOLOv8n | (640,640,3) | 36.650 | 37.328 | 9.78 | 3.15 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8s | (640,640,3) | 44.243 | 44.918 | 30.49 | 11.16 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8m | (640,640,3) | 49.915 | 50.239 | 82.26 | 25.89 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8l | (640,640,3) | 52.485 | 52.772 | 170.26 | 43.67 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8x | (640,640,3) | 53.497 | 53.802 | 264.17 | 68.20 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| GELANs | (640,640,3) | 45.679 | 46.486 | 29.01 | 7.11 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv9s | (640,640,3) | 45.637 | 46.777 | 29.01 | 7.11 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| GELANm | (640,640,3) | 50.564 | 50.928 | 80.81 | 19.98 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv9m | (640,640,3) | 50.902 | 51.191 | 80.81 | 19.98 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| GELANc | (640,640,3) | 52.086 | 52.273 | 107.83 | 25.29 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv9c | (640,640,3) | 52.598 | 52.917 | 107.83 | 25.29 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| GELANe | (640,640,3) | 54.568 | 54.927 | 199.86 | 57.35 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv9e | (640,640,3) | 55.466 | 55.528 | 199.86 | 57.35 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv10n | (640,640,3) | 37.432 | 38.382 | 8.06 | 2.30 | [Link](https://docs.ultralytics.com/models/yolov10/) | | +| YOLOv10s | (640,640,3) | 45.386 | 46.015 | 24.10 | 7.25 | [Link](https://docs.ultralytics.com/models/yolov10/) | | +| YOLOv10m | (640,640,3) | 50.075 | 50.838 | 63.51 | 15.36 | [Link](https://docs.ultralytics.com/models/yolov10/) | | +| YOLOv10b | (640,640,3) | 51.525 | 52.096 | 97.77 | 19.07 | [Link](https://docs.ultralytics.com/models/yolov10/) | | +| YOLOv10l | (640,640,3) | 52.246 | 52.816 | 127.32 | 24.37 | [Link](https://docs.ultralytics.com/models/yolov10/) | | +| YOLOv10x | (640,640,3) | 53.427 | 53.993 | 170.13 | 29.47 | [Link](https://docs.ultralytics.com/models/yolov10/) | | +| YOLO11n | (640,640,3) | 38.567 | 39.298 | 7.76 | 2.62 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11s | (640,640,3) | 46.179 | 46.617 | 23.80 | 9.44 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11m | (640,640,3) | 50.887 | 51.310 | 72.81 | 20.09 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11l | (640,640,3) | 52.770 | 53.165 | 93.21 | 25.34 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11x | (640,640,3) | 54.136 | 54.478 | 204.31 | 56.92 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO12n | (640,640,3) | 40.172 | 40.740 | 9.27 | 2.59 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO12s | (640,640,3) | 47.124 | 47.687 | 26.73 | 9.26 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO12m | (640,640,3) | 51.899 | 52.297 | 77.22 | 20.17 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO12l | (640,640,3) | 53.200 | 53.508 | 105.07 | 26.40 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO12x | (640,640,3) | 54.758 | 55.061 | 223.27 | 59.14 | [Link](https://docs.ultralytics.com/models/yolo12/) | |
    Object Detection (COCO) @@ -162,35 +287,57 @@ Further usage examples can be found in the [tests](../tests) directory.
    -## Instance Segmentation +### Instance Segmentation | Model | Input Size
    (H,W,C) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{mask}}}$
    (NPU) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{mask}}}$
    (GPU) | FLOPs (B) | params (M) | Source | Note | -|-------|--------------------------|--------------------|-------------------|-----------|------------|------|------| -| YOLOv5l-seg | (640,640,3) | 39.041 | 39.784 | 147.83 | 47.89 | [Link](https://github.com/ultralytics/yolov5/) | | -| YOLOv5x-seg | (640,640,3) | 40.697 | 41.137 | 265.81 | 88.77 | [Link](https://github.com/ultralytics/yolov5/) | | -| YOLOv8s-seg | (640,640,3) | 36.072 | 36.582 | 42.64 | 11.81 | [Link](https://docs.ultralytics.com/models/yolov8/) | | -| YOLOv8m-seg | (640,640,3) | 39.978 | 40.444 | 110.26 | 27.27 | [Link](https://docs.ultralytics.com/models/yolov8/) | | -| YOLOv8l-seg | (640,640,3) | 41.993 | 42.316 | 220.55 | 45.97 | [Link](https://docs.ultralytics.com/models/yolov8/) | | -| YOLOv8x-seg | (640,640,3) | 42.913 | 43.020 | 344.20 | 71.78 | [Link](https://docs.ultralytics.com/models/yolov8/) | | -| YOLOv9c-seg | (640,640,3) | 42.249 | 42.460 | 145.72 | 27.45 | [Link](https://docs.ultralytics.com/models/yolov9/) | | -| YOLO11s-seg | (640,640,3) | 36.874 | 37.602 | 35.69 | 10.10 | [Link](https://docs.ultralytics.com/models/yolo11/) | | -| YOLO11m-seg | (640,640,3) | 41.031 | 41.546 | 123.56 | 22.40 | [Link](https://docs.ultralytics.com/models/yolo11/) | | -| YOLO11l-seg | (640,640,3) | 42.509 | 42.831 | 142.68 | 27.65 | [Link](https://docs.ultralytics.com/models/yolo11/) | | -| YOLO11x-seg | (640,640,3) | 43.614 | 43.746 | 319.78 | 62.09 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| --- | --- | --- | --- | --- | --- | --- | --- | +| YOLOv5n-seg | (640,640,3) | 22.671 | 23.334 | 8.23 | 1.99 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5s-seg | (640,640,3) | 31.164 | 31.592 | 28.47 | 7.61 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5m-seg | (640,640,3) | 36.764 | 37.148 | 74.57 | 21.97 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5l-seg | (640,640,3) | 39.685 | 39.942 | 153.53 | 47.89 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv5x-seg | (640,640,3) | 41.185 | 41.318 | 273.99 | 88.77 | [Link](https://docs.ultralytics.com/models/yolov5/) | | +| YOLOv8n-seg | (640,640,3) | 29.951 | 30.464 | 13.91 | 3.40 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8s-seg | (640,640,3) | 36.534 | 36.691 | 44.86 | 11.81 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8m-seg | (640,640,3) | 40.362 | 40.596 | 114.06 | 27.27 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8l-seg | (640,640,3) | 42.316 | 42.462 | 226.27 | 45.97 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8x-seg | (640,640,3) | 43.048 | 43.155 | 351.31 | 71.80 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| GELANc-seg | (640,640,3) | 42.150 | 42.204 | 150.93 | 27.42 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv9c-seg | (640,640,3) | 42.574 | 42.655 | 152.44 | 27.45 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLOv9e-seg | (640,640,3) | 44.410 | 44.394 | 256.38 | 59.74 | [Link](https://github.com/WongKinYiu/yolov9/) | | +| YOLO11n-seg | (640,640,3) | 31.509 | 32.129 | 11.88 | 2.87 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11s-seg | (640,640,3) | 37.379 | 37.726 | 38.18 | 10.10 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11m-seg | (640,640,3) | 41.552 | 41.683 | 128.82 | 22.40 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11l-seg | (640,640,3) | 42.948 | 42.974 | 149.22 | 27.65 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11x-seg | (640,640,3) | 43.895 | 43.910 | 329.44 | 62.09 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO12n-seg | (640,640,3) | 32.516 | 32.941 | 12.94 | 2.80 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO12s-seg | (640,640,3) | 38.470 | 38.787 | 39.26 | 9.76 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO12m-seg | (640,640,3) | 42.270 | 42.433 | 125.74 | 21.94 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO12l-seg | (640,640,3) | 43.429 | 43.456 | 154.99 | 28.76 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO12x-seg | (640,640,3) | 44.187 | 44.418 | 334.55 | 64.51 | [Link](https://docs.ultralytics.com/models/yolo12/) | | +| YOLO26m-seg | (640,640,3) | 42.961 | 43.732 | 137.37 | 23.57 | [Link](https://docs.ultralytics.com/models/yolo26/) | | +| YOLO26l-seg | (640,640,3) | 44.246 | 45.242 | 157.06 | 27.97 | [Link](https://docs.ultralytics.com/models/yolo26/) | | +| YOLO26x-seg | (640,640,3) | 46.033 | 46.717 | 346.96 | 62.82 | [Link](https://docs.ultralytics.com/models/yolo26/) | |
    - Instance Segmentation (COCO) +Instance Segmentation (COCO) - $\underset{50\text{โ€“}95}{\text{mAP}_{\text{val}}^{\text{mask}}}$ values are for single-model single-scale on the [COCO val2017](https://cocodataset.org/) dataset.
    -## Pose Estimation +### Pose Estimation | Model | Input Size
    (H,W,C) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{pose}}}$
    (NPU) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{pose}}}$
    (GPU) | FLOPs (B) | params (M) | Source | Note | -|-------|--------------------------|--------------------|-------------------|-----------|------------|------|------| -| YOLOv8x-pose | (640,640,3) | 66.416 | 68.367 | 263.33 | 69.46 | [Link](https://docs.ultralytics.com/models/yolov8/) | | -| YOLO11x-pose | (640,640,3) | 67.220 | 68.599 | 203.54 | 58.75 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| --- | --- | --- | --- | --- | --- | --- | --- | +| YOLOv8s-pose | (640,640,3) | 57.007 | 59.366 | 32.10 | 11.62 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8m-pose | (640,640,3) | 62.153 | 64.451 | 84.37 | 26.45 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8l-pose | (640,640,3) | 65.173 | 66.822 | 173.70 | 44.47 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8x-pose | (640,640,3) | 67.063 | 68.357 | 269.63 | 69.46 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLOv8x-pose-p6 | (1280,1280,3) | 69.221 | 70.758 | 1092.51 | 99.14 | [Link](https://docs.ultralytics.com/models/yolov8/) | | +| YOLO11s-pose | (640,640,3) | 55.731 | 57.846 | 25.41 | 9.90 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11m-pose | (640,640,3) | 62.136 | 64.280 | 76.25 | 20.89 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11l-pose | (640,640,3) | 63.174 | 65.414 | 96.65 | 26.14 | [Link](https://docs.ultralytics.com/models/yolo11/) | | +| YOLO11x-pose | (640,640,3) | 67.218 | 68.600 | 212.26 | 58.75 | [Link](https://docs.ultralytics.com/models/yolo11/) | |
    Pose Estimation (COCO) @@ -198,3 +345,18 @@ Further usage examples can be found in the [tests](../tests) directory. - $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{pose}}}$ values are for single-model single-scale on the [COCO Keypoints val2017](https://cocodataset.org/) dataset.
    + +### OBB + +| Model | Input Size
    (H,W,C) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{obb}}}$
    (NPU) | $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{obb}}}$
    (GPU) | FLOPs (B) | params (M) | Source | Note | +| --- | --- | --- | --- | --- | --- | --- | --- | + +
    +Oriented Bounding Boxes (DOTA v1.0) + +- $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{obb}}}$ is the primary metric + for single-model single-scale validation on the + [DOTA v1.0](https://docs.ultralytics.com/datasets/obb/dota-v2#) dataset. Validation also reports + rotated mAP50 as the secondary metric. + +
    diff --git a/mblt_vision/compile/__init__.py b/mblt_vision/compile/__init__.py new file mode 100644 index 0000000..9c09c9d --- /dev/null +++ b/mblt_vision/compile/__init__.py @@ -0,0 +1,21 @@ +"""Vision model compilation and calibration-data preparation.""" + +from .vision import ( + compile_vision_model, + copy_calibration_subset, + ensure_calibration_dataset, + make_calibration_subset, + prepare_calibration_arrays, + resolve_quantization_values, + select_calibration_images, +) + +__all__ = [ + "compile_vision_model", + "copy_calibration_subset", + "ensure_calibration_dataset", + "make_calibration_subset", + "prepare_calibration_arrays", + "resolve_quantization_values", + "select_calibration_images", +] diff --git a/mblt_vision/compile/vision.py b/mblt_vision/compile/vision.py new file mode 100644 index 0000000..9858dd9 --- /dev/null +++ b/mblt_vision/compile/vision.py @@ -0,0 +1,981 @@ +"""Vision model compilation and calibration-data preparation.""" + +from __future__ import annotations + +import hashlib +import importlib +import json +import shutil +import warnings +from collections.abc import Callable, Sequence +from pathlib import Path +from tempfile import TemporaryDirectory, mkdtemp +from typing import Any + +import numpy as np +import torch +from huggingface_hub import hf_hub_download +from huggingface_hub.errors import HfHubHTTPError +from mblt_vision.utils.datasets.readiness import dataset_ready + +from mblt_vision._tasks import normalize_vision_task +from mblt_vision.datasets import get_dataset_config_for_task +from mblt_vision.wrapper import MOBILINT_CACHE_DIR, MBLT_Engine, resolve_model_config + +DEFAULT_PERCENTILE = 0.9999 +DEFAULT_TOPK_RATIO = 0.01 +DEFAULT_SEED = 0 +DEFAULT_MODEL_DIR = Path(MOBILINT_CACHE_DIR) +DEFAULT_SUBSET_SIZES = { + "image_classification": 1, + "depth_estimation": 100, + "object_detection": 100, + "instance_segmentation": 100, + "semantic_segmentation": 100, + "pose_estimation": 100, + "face_detection": 1, + "obb": 100, +} +IMAGE_SUFFIXES = {".bmp", ".jpeg", ".jpg", ".png", ".tif", ".tiff", ".webp"} + + +def _normalize_task(task: str) -> str: + """Validate and normalize a supported task name. + + Args: + task: Task value from a model postprocess configuration. + + Returns: + Canonical task name used by the dataset registry. + + Raises: + ValueError: If the task is not supported by vision compilation. + """ + + return normalize_vision_task(task, supported=DEFAULT_SUBSET_SIZES) + + +def _dataset_ready(task: str, data_path: Path, dataset: str | None = None) -> bool: + """Return whether an organized dataset contains calibration images. + + Args: + task: Canonical vision task name. + data_path: Organized dataset root. + dataset: Optional dense dataset taxonomy. + + Returns: + Whether the expected dataset identity, metadata, and full validation split are present. + """ + + return dataset_ready(data_path, task, dataset) + + +def _find_dataset_source(data_path: Path, filename: str) -> Path | None: + """Find a manually supplied dataset source at or beside its organized root. + + Args: + data_path: Organized dataset destination. + filename: Archive filename to locate. + + Returns: + Existing archive path, or ``None`` when it is unavailable. + """ + + for directory in (data_path, data_path.parent): + candidate = directory / filename + if candidate.is_file(): + return candidate + return None + + +def _organize_dataset(task: str, data_path: Path, dataset: str | None = None) -> None: + """Organize the registry-backed dataset required by a task. + + Args: + task: Canonical vision task name. + data_path: Destination dataset root. + dataset: Optional dataset taxonomy used to disambiguate semantic datasets. + """ + + from mblt_vision.utils.datasets import ( + organize_ade20k, + organize_cityscapes, + organize_coco, + organize_dotav1, + organize_imagenet, + organize_nyu_depth, + organize_widerface, + ) + + config = get_dataset_config_for_task(task, dataset) + download = config.get("download") + if not isinstance(download, dict): + raise ValueError( + f"Dataset `{config.get('name', task)}` does not define download metadata." + ) + + data_path.parent.mkdir(parents=True, exist_ok=True) + if task == "image_classification": + organize_imagenet( + image_dir=str(download["images"]), + xml_dir=str(download["annotations"]), + output_dir=str(data_path), + ) + elif task in {"object_detection", "instance_segmentation", "pose_estimation"}: + organize_coco( + image_dir=str(download["images"]), + annotation_dir=str(download["annotations"]), + output_dir=str(data_path), + ) + elif task == "face_detection": + organize_widerface( + image_dir=str(download["images"]), + annotation_dir=str(download["annotations"]), + output_dir=str(data_path), + ) + elif task == "obb": + organize_dotav1(dataset_path=str(download["url"]), output_dir=str(data_path)) + elif task == "depth_estimation": + organize_nyu_depth(dataset_path=str(download["url"]), output_dir=str(data_path)) + elif config["name"] == "ade20k": + organize_ade20k(dataset_path=str(download["url"]), output_dir=str(data_path)) + elif config["name"] == "cityscapes": + image_archive = _find_dataset_source(data_path, str(download["images_archive"])) + annotation_archive = _find_dataset_source( + data_path, str(download["annotations_archive"]) + ) + if image_archive is None or annotation_archive is None: + raise ValueError( + "Cityscapes compilation requires leftImg8bit_trainvaltest.zip and gtFine_trainvaltest.zip " + f"at {data_path} or {data_path.parent}." + ) + organize_cityscapes( + image_dir=str(image_archive), + annotation_dir=str(annotation_archive), + output_dir=str(data_path), + ) + else: + raise ValueError( + f"Unsupported calibration dataset `{config['name']}` for task `{task}`." + ) + + +def ensure_calibration_dataset( + task: str, + data_path: str | Path | None = None, + dataset: str | None = None, +) -> Path: + """Resolve and, when needed, organize a calibration dataset. + + Args: + task: Vision task name. + data_path: Optional organized dataset root. + dataset: Optional dataset taxonomy from the model postprocess configuration. + + Returns: + Expanded organized dataset root. + """ + + normalized_task = _normalize_task(task) + config = get_dataset_config_for_task(normalized_task, dataset) + dataset_name = str(config["name"]) + resolved_path = Path( + data_path if data_path is not None else config["path"] + ).expanduser() + if not _dataset_ready(normalized_task, resolved_path, dataset_name): + _organize_dataset(normalized_task, resolved_path, dataset) + if not _dataset_ready(normalized_task, resolved_path, dataset_name): + raise ValueError( + f"Organized calibration dataset at {resolved_path} is incomplete or does not match " + f"the expected {dataset_name} dataset." + ) + return resolved_path + + +def _validate_subset_size(subset_size: int) -> None: + """Validate a requested calibration subset size. + + Args: + subset_size: Requested per-class or total sample count. + + Raises: + ValueError: If the size is not positive. + """ + + if subset_size <= 0: + raise ValueError("subset_size must be greater than zero.") + + +def _validate_calibration_image(image_path: Path, dataset_root: Path) -> Path: + """Resolve and validate a calibration image within its dataset root. + + Args: + image_path: Candidate calibration image path. + dataset_root: Resolved organized dataset root. + + Returns: + Resolved regular image path. + + Raises: + ValueError: If the candidate is a symlink, not a regular image, or escapes the dataset root. + """ + + if image_path.is_symlink(): + raise ValueError(f"Calibration image must not be a symlink: {image_path}.") + try: + source = image_path.resolve(strict=True) + except OSError as exc: + raise ValueError( + f"Unable to resolve calibration image {image_path}: {exc}." + ) from exc + if not source.is_file() or source.suffix.lower() not in IMAGE_SUFFIXES: + raise ValueError( + f"Calibration image must be a supported regular image file: {image_path}." + ) + if not source.is_relative_to(dataset_root): + raise ValueError( + f"Calibration image must remain within dataset root: {image_path}." + ) + return source + + +def _selectable_calibration_images( + paths: Sequence[Path], dataset_root: Path +) -> list[Path]: + """Validate supported image candidates before they enter subset sampling. + + Args: + paths: Candidate filesystem paths. + dataset_root: Resolved organized dataset root. + + Returns: + Validated candidate paths, retaining their original names for stable sampling. + """ + + images: list[Path] = [] + for path in paths: + if path.suffix.lower() in IMAGE_SUFFIXES and ( + path.is_symlink() or path.is_file() + ): + _validate_calibration_image(path, dataset_root) + images.append(path) + return images + + +def select_calibration_images( + task: str, + data_path: str | Path, + subset_size: int | None = None, + seed: int = DEFAULT_SEED, +) -> list[Path]: + """Select deterministic calibration images from an organized dataset. + + For ImageNet and WiderFace, ``subset_size`` is the number selected from + every category. For all other datasets it is the total number of selected + validation images. + + Args: + task: Vision task name. + data_path: Organized dataset root. + subset_size: Optional sample count, using task-specific defaults when omitted. + seed: Random selection seed. + + Returns: + Selected image paths in deterministic order. + + Raises: + ValueError: If the dataset layout or requested size is invalid. + """ + + import random + + normalized_task = _normalize_task(task) + root = Path(data_path).expanduser() + resolved_root = root.resolve() + requested_size = ( + DEFAULT_SUBSET_SIZES[normalized_task] if subset_size is None else subset_size + ) + _validate_subset_size(requested_size) + random_generator = random.Random(seed) + + if normalized_task in {"image_classification", "face_detection"}: + category_root = ( + root if normalized_task == "image_classification" else root / "images" + ) + dataset_name = ( + "ImageNet" if normalized_task == "image_classification" else "WiderFace" + ) + category_dirs = ( + sorted(path for path in category_root.iterdir() if path.is_dir()) + if category_root.is_dir() + else [] + ) + if not category_dirs: + raise ValueError( + f"No {dataset_name} category directories found in {category_root}." + ) + selected: list[Path] = [] + for category_dir in category_dirs: + images = _selectable_calibration_images( + sorted(category_dir.iterdir()), resolved_root + ) + if requested_size > len(images): + raise ValueError( + f"subset_size ({requested_size}) exceeds the {len(images)} available images in {category_dir.name}." + ) + selected.extend(random_generator.sample(images, requested_size)) + return selected + + image_dir = { + "depth_estimation": root / "images", + "object_detection": root / "val2017", + "instance_segmentation": root / "val2017", + "semantic_segmentation": root / "images", + "pose_estimation": root / "val2017", + "obb": root / "images", + }[normalized_task] + images = ( + _selectable_calibration_images(sorted(image_dir.rglob("*")), resolved_root) + if image_dir.is_dir() + else [] + ) + if not images: + raise ValueError(f"No calibration images found in {image_dir}.") + if requested_size > len(images): + raise ValueError( + f"subset_size ({requested_size}) exceeds the {len(images)} available images in {image_dir}." + ) + return random_generator.sample(images, requested_size) + + +def copy_calibration_subset( + images: Sequence[Path], data_path: str | Path, output_dir: str | Path +) -> list[Path]: + """Copy selected images into a flat directory using collision-safe names. + + Args: + images: Selected source image paths. + data_path: Dataset root used to derive stable relative names. + output_dir: Destination directory. + + Returns: + Copied image paths in input order. + """ + + root = Path(data_path).expanduser().resolve() + destination = Path(output_dir).expanduser() + destination.mkdir(parents=True, exist_ok=True) + copied: list[Path] = [] + for image_path in images: + source = _validate_calibration_image(image_path, root) + relative_name = source.relative_to(root).as_posix() + digest = hashlib.sha256(relative_name.encode()).hexdigest()[:12] + target = destination / f"{digest}_{source.name}" + if target.exists(): + raise ValueError(f"Calibration subset filename collision for {source}.") + shutil.copy2(source, target) + copied.append(target) + return copied + + +def make_calibration_subset( + task: str, + data_path: str | Path, + output_dir: str | Path, + subset_size: int | None = None, + seed: int = DEFAULT_SEED, +) -> list[Path]: + """Select and copy a deterministic flat calibration subset. + + Args: + task: Vision task name. + data_path: Organized dataset root. + output_dir: Destination for copied images. + subset_size: Optional task-specific selection count. + seed: Random selection seed. + + Returns: + Copied image paths. + """ + + source_root = Path(data_path).expanduser().resolve() + destination = Path(output_dir).expanduser().resolve() + if source_root.is_relative_to(destination) or destination.is_relative_to( + source_root + ): + raise ValueError("output_dir must not overlap data_path.") + images = select_calibration_images(task, data_path, subset_size, seed) + destination.parent.mkdir(parents=True, exist_ok=True) + temporary_destination = Path( + mkdtemp(prefix=f".{destination.name}-", dir=destination.parent) + ) + try: + copied = copy_calibration_subset(images, data_path, temporary_destination) + backup_destination: Path | None = None + if destination.exists(): + backup_destination = Path( + mkdtemp(prefix=f".{destination.name}-backup-", dir=destination.parent) + ) + backup_destination.rmdir() + destination.replace(backup_destination) + try: + temporary_destination.replace(destination) + except BaseException: + if backup_destination is not None and not destination.exists(): + backup_destination.replace(destination) + raise + if backup_destination is not None: + shutil.rmtree(backup_destination) + return [destination / path.name for path in copied] + finally: + if temporary_destination.exists(): + shutil.rmtree(temporary_destination) + + +def _as_hwc_float32(value: Any, image_path: Path) -> np.ndarray: + """Validate and convert engine preprocessing output for qbcompiler. + + Args: + value: Engine preprocessing result. + image_path: Source image used for error context. + + Returns: + Contiguous HWC float32 array. + + Raises: + TypeError: If preprocessing did not return a tensor or array. + ValueError: If preprocessing did not return HWC three-channel data. + """ + + if isinstance(value, torch.Tensor): + array = value.detach().cpu().numpy() + elif isinstance(value, np.ndarray): + array = value + else: + raise TypeError( + f"Preprocessing {image_path} returned unsupported type {type(value).__name__}." + ) + if array.ndim != 3 or array.shape[-1] != 3: + raise ValueError( + f"Preprocessing {image_path} must produce an HWC three-channel array; got shape {array.shape}." + ) + return np.ascontiguousarray(array, dtype=np.float32) + + +def prepare_calibration_arrays( + engine: MBLT_Engine, images: Sequence[Path], output_dir: str | Path +) -> list[Path]: + """Preprocess calibration images and save one NumPy array per sample. + + Args: + engine: ONNX vision engine providing authoritative preprocessing. + images: Flat calibration image paths. + output_dir: Destination directory for ``.npy`` arrays. + + Returns: + Saved NumPy paths. + """ + + destination = Path(output_dir) + destination.mkdir(parents=True, exist_ok=True) + saved: list[Path] = [] + for index, image_path in enumerate(images): + array = _as_hwc_float32(engine.preprocess(str(image_path)), image_path) + array_path = destination / f"{index:06d}.npy" + np.save(array_path, array) + saved.append(array_path) + return saved + + +def get_subset_images(subset_path: str | Path) -> list[Path]: + """Load all images from an already-sampled subset. + + Args: + subset_path: Root containing sampled images, either flat or nested. + + Returns: + Image paths in deterministic order. + + Raises: + ValueError: If the subset contains no supported image files. + """ + + root = Path(subset_path).expanduser() + images = ( + sorted( + path + for path in root.rglob("*") + if path.is_file() and path.suffix.lower() in IMAGE_SUFFIXES + ) + if root.is_dir() + else [] + ) + if not images: + raise ValueError(f"No calibration subset images found in {root}.") + return images + + +def validate_calibration_dataset(calib_data_path: str | Path) -> Path: + """Validate a ready directory of preprocessed calibration arrays. + + Args: + calib_data_path: Directory containing HWC float32 ``.npy`` tensors. + + Returns: + Expanded calibration directory path. + + Raises: + ValueError: If the directory is empty or contains an invalid calibration tensor. + """ + + root = Path(calib_data_path).expanduser() + array_paths = sorted(root.glob("*.npy")) if root.is_dir() else [] + if not array_paths: + raise ValueError(f"No calibration .npy files found in {root}.") + for array_path in array_paths: + try: + array = np.load(array_path, mmap_mode="r", allow_pickle=False) + except (OSError, ValueError) as exc: + raise ValueError( + f"Unable to load calibration tensor {array_path}: {exc}." + ) from exc + if array.ndim != 3 or array.shape[-1] != 3: + raise ValueError( + f"Calibration tensor {array_path} must be HWC with three channels; got {array.shape}." + ) + if array.dtype != np.float32: + raise ValueError( + f"Calibration tensor {array_path} must use float32; got {array.dtype}." + ) + if not array.flags.c_contiguous: + raise ValueError(f"Calibration tensor {array_path} must be C-contiguous.") + return root + + +def _validate_data_level_paths( + data_path: str | Path | None, + subset_path: str | Path | None, + calib_data_path: str | Path | None, +) -> None: + """Ensure at most one calibration pipeline entry level is supplied. + + Args: + data_path: Original organized dataset root. + subset_path: Already-sampled image subset root. + calib_data_path: Ready preprocessed NumPy dataset root. + + Raises: + ValueError: If more than one data level is supplied. + """ + + supplied = [ + name + for name, value in ( + ("data_path", data_path), + ("subset_path", subset_path), + ("calib_data_path", calib_data_path), + ) + if value is not None + ] + if len(supplied) > 1: + raise ValueError( + "Provide only one calibration pipeline input: `data_path`, `subset_path`, or `calib_data_path`; " + f"got {', '.join(supplied)}." + ) + + +def _load_qbcompiler() -> tuple[Callable[..., Any], type[Any]]: + """Load qbcompiler only when compilation is requested. + + Returns: + The ``mxq_compile`` function and ``CalibrationConfig`` class. + + Raises: + ImportError: If qbcompiler is not installed. + """ + + try: + module = importlib.import_module("qbcompiler") + except ImportError as exc: + raise ImportError( + "Vision compilation requires qbcompiler>=1.2.0. Install the compiler package supplied by Mobilint." + ) from exc + return module.mxq_compile, module.CalibrationConfig + + +def _validate_ratio(name: str, value: Any) -> float: + """Validate a quantization ratio. + + Args: + name: Field name used in an error message. + value: Candidate numeric ratio. + + Returns: + Validated float value. + + Raises: + ValueError: If the value is non-numeric or outside zero to one. + """ + + if isinstance(value, bool) or not isinstance(value, (int, float)): + raise ValueError( + f"Quantization metadata `{name}` must be numeric, got {value!r}." + ) + resolved = float(value) + if not 0.0 <= resolved <= 1.0: + raise ValueError( + f"Quantization metadata `{name}` must be between 0 and 1, got {resolved}." + ) + return resolved + + +def _fetch_quantization_config(repo_id: str, revision: str) -> dict[str, Any] | None: + """Fetch optional hosted Aries quantization metadata. + + Args: + repo_id: Hugging Face model repository ID. + revision: Repository revision. + + Returns: + Hosted ``config`` mapping, or ``None`` when the optional file is unavailable. + + Raises: + ValueError: If the hosted JSON or its ``config`` field is malformed. + """ + + try: + metadata_path = hf_hub_download( + repo_id=repo_id, + filename="best_result.json", + subfolder="aries", + revision=revision, + ) + except (HfHubHTTPError, OSError) as exc: + warnings.warn( + f"Unable to load optional quantization metadata for {repo_id}: {exc}. Using fallback values.", + stacklevel=2, + ) + return None + + try: + with Path(metadata_path).open(encoding="utf-8") as metadata_file: + metadata = json.load(metadata_file) + except json.JSONDecodeError as exc: + raise ValueError( + f"Malformed quantization metadata JSON at {metadata_path}: {exc.msg}." + ) from exc + if not isinstance(metadata, dict) or not isinstance(metadata.get("config"), dict): + raise ValueError( + f"Quantization metadata at {metadata_path} must contain a `config` object." + ) + return metadata["config"] + + +def resolve_quantization_values( + file_cfg: dict[str, Any], + percentile: float | None, + topk_ratio: float | None, +) -> tuple[float, float]: + """Resolve explicit, hosted, and fallback quantization values independently. + + Args: + file_cfg: Resolved model file configuration. + percentile: Explicit compiler percentile override. + topk_ratio: Explicit compiler top-k ratio override. + + Returns: + Resolved percentile and top-k ratio. + + Raises: + ValueError: If explicit or hosted values are malformed. + """ + + resolved_percentile = ( + _validate_ratio("percentile", percentile) if percentile is not None else None + ) + resolved_topk = ( + _validate_ratio("topk_ratio", topk_ratio) if topk_ratio is not None else None + ) + hosted_config: dict[str, Any] | None = None + if resolved_percentile is None or resolved_topk is None: + repo_id = file_cfg.get("repo_id") + revision = file_cfg.get("revision", "main") + if isinstance(repo_id, str) and repo_id: + hosted_config = _fetch_quantization_config(repo_id, str(revision)) + else: + warnings.warn( + "Model configuration has no repository ID; using fallback quantization values.", + stacklevel=2, + ) + + if ( + resolved_percentile is None + and hosted_config is not None + and "percentile" in hosted_config + ): + hosted_percentile = _validate_ratio( + "config.percentile", hosted_config["percentile"] + ) + resolved_percentile = 1.0 - hosted_percentile + if resolved_topk is None and hosted_config is not None: + hosted_topk = hosted_config.get("topk_ratio", hosted_config.get("topk")) + if hosted_topk is not None: + resolved_topk = _validate_ratio("config.topk_ratio", hosted_topk) + + if resolved_percentile is None: + warnings.warn( + f"Quantization percentile is unavailable; using {DEFAULT_PERCENTILE}.", + stacklevel=2, + ) + resolved_percentile = DEFAULT_PERCENTILE + if resolved_topk is None: + warnings.warn( + f"Quantization top-k ratio is unavailable; using {DEFAULT_TOPK_RATIO}.", + stacklevel=2, + ) + resolved_topk = DEFAULT_TOPK_RATIO + return resolved_percentile, resolved_topk + + +def _configured_onnx_filename(file_cfg: dict[str, Any]) -> str | None: + """Derive the configured ONNX filename. + + Args: + file_cfg: Resolved model file configuration. + + Returns: + ONNX filename when it can be determined. + """ + + onnx_filename = file_cfg.get("onnx_filename") + if isinstance(onnx_filename, str) and onnx_filename: + return onnx_filename + filename = file_cfg.get("filename") + if isinstance(filename, str) and filename: + return f"{Path(filename).stem}.onnx" + return None + + +def _resolve_compile_onnx_path( + file_cfg: dict[str, Any], model_path: str | Path | None +) -> Path: + """Resolve an ONNX artifact for compilation without constructing an inference runtime. + + Args: + file_cfg: Resolved model file configuration. + model_path: Optional caller-provided ONNX path. + + Returns: + Existing local or downloaded ONNX artifact path. + + Raises: + FileNotFoundError: If no ONNX artifact can be resolved. + """ + + if model_path is not None: + local_path = Path(model_path).expanduser() + if local_path.is_file(): + return local_path.resolve() + configured_path = Path(str(file_cfg.get("onnx_path", ""))).expanduser() + if configured_path.is_file(): + return configured_path.resolve() + repo_id = file_cfg.get("repo_id") + revision = file_cfg.get("revision") + filename = _configured_onnx_filename(file_cfg) + if isinstance(repo_id, str) and isinstance(revision, str) and filename: + downloaded_path = Path( + hf_hub_download( + repo_id=repo_id, + filename=filename, + revision=revision, + local_dir=MOBILINT_CACHE_DIR, + ) + ) + if downloaded_path.is_file(): + return downloaded_path.resolve() + configured_name = filename or "the configured ONNX artifact" + raise FileNotFoundError(f"Unable to resolve {configured_name} for compilation.") + + +def compile_vision_model( + model_cls: str, + *, + model_type: str = "DEFAULT", + model_path: str | Path | None = None, + onnx_path: str | Path | None = None, + data_path: str | Path | None = None, + subset_path: str | Path | None = None, + calib_data_path: str | Path | None = None, + save_path: str | Path | None = None, + subset_size: int | None = None, + seed: int = DEFAULT_SEED, + percentile: float | None = None, + topk_ratio: float | None = None, +) -> Path: + """Compile a configured vision ONNX model into an Aries MXQ artifact. + + Args: + model_cls: Vision model name or YAML path. + model_type: Model variant from the YAML configuration. + model_path: Preferred local ONNX path compatibility option. + onnx_path: Local ONNX path alias. + data_path: Original organized dataset root. The pipeline organizes it when needed, samples + an image subset, and preprocesses that subset. + subset_path: Already-sampled image subset. The pipeline preprocesses every image directly + without organizing or sampling an original dataset. + calib_data_path: Ready directory of HWC float32 ``.npy`` tensors. The pipeline passes it + directly to qbcompiler without dataset preparation, sampling, or preprocessing. + save_path: Output MXQ path. Defaults to the ONNX stem under ``~/.mblt_model_zoo``. + subset_size: ImageNet/WiderFace per-category count or total count for other datasets. + seed: Deterministic calibration selection seed. + percentile: Explicit quantization percentile. + topk_ratio: Explicit quantization top-k ratio. + + Returns: + Output MXQ path. + + Raises: + ImportError: If qbcompiler is unavailable. + ValueError: If model metadata, calibration data, or quantization values are invalid. + """ + + _validate_data_level_paths(data_path, subset_path, calib_data_path) + mxq_compile, calibration_config_class = _load_qbcompiler() + model_config = resolve_model_config(model_cls, model_type) + file_cfg = model_config.get("file_cfg") + post_cfg = model_config.get("post_cfg") + if not isinstance(file_cfg, dict) or not isinstance(post_cfg, dict): + raise ValueError( + "Resolved vision model configuration requires `file_cfg` and `post_cfg` objects." + ) + + task = _normalize_task(str(post_cfg.get("task", ""))) + dataset = post_cfg.get("dataset") + if not isinstance(dataset, str) or not dataset: + raise ValueError( + "Resolved vision model configuration requires a non-empty `post_cfg.dataset` value." + ) + selected_local_path = model_path if model_path is not None else onnx_path + if calib_data_path is not None: + resolved_onnx = _resolve_compile_onnx_path(file_cfg, selected_local_path) + output_path = ( + Path(save_path).expanduser() + if save_path is not None + else DEFAULT_MODEL_DIR / f"{resolved_onnx.stem}.mxq" + ).resolve() + output_path.parent.mkdir(parents=True, exist_ok=True) + resolved_percentile, resolved_topk = resolve_quantization_values( + file_cfg, percentile, topk_ratio + ) + calibration_config = calibration_config_class( + method=1, + output=0 if task == "image_classification" else 1, + mode=1, + max_percentile={ + "percentile": resolved_percentile, + "topk_ratio": resolved_topk, + }, + ) + mxq_compile( + model=str(resolved_onnx), + calib_data_path=str(validate_calibration_dataset(calib_data_path)), + save_path=str(output_path), + image_channels=3, + backend="onnx", + device="gpu", + target_device="aries-rb", + inference_scheme="all", + calibration_config=calibration_config, + ) + return output_path + engine_kwargs: dict[str, Any] = { + "model_cls": model_cls, + "model_type": model_type, + "framework": "onnx", + "onnx_providers": ["CPUExecutionProvider"], + } + if selected_local_path is not None: + expanded_local_path = Path(selected_local_path).expanduser() + if expanded_local_path.is_file(): + engine_kwargs["model_path"] = str(expanded_local_path) + + engine: MBLT_Engine | None = None + try: + engine = MBLT_Engine(**engine_kwargs) + resolved_onnx = Path(str(engine.file_cfg.get("onnx_path", ""))).expanduser() + if not resolved_onnx.is_file(): + configured_name = ( + _configured_onnx_filename(file_cfg) or "the configured ONNX artifact" + ) + raise FileNotFoundError( + f"Unable to resolve {configured_name} for model `{model_cls}`." + ) + + output_path = ( + Path(save_path).expanduser() + if save_path is not None + else DEFAULT_MODEL_DIR / f"{resolved_onnx.stem}.mxq" + ) + output_path = output_path.resolve() + output_path.parent.mkdir(parents=True, exist_ok=True) + resolved_percentile, resolved_topk = resolve_quantization_values( + file_cfg, percentile, topk_ratio + ) + calibration_config = calibration_config_class( + method=1, + output=0 if task == "image_classification" else 1, + mode=1, + max_percentile={ + "percentile": resolved_percentile, + "topk_ratio": resolved_topk, + }, + ) + + def _compile(calibration_path: Path) -> None: + """Run qbcompiler with a resolved calibration directory.""" + + mxq_compile( + model=str(resolved_onnx), + calib_data_path=str(calibration_path), + save_path=str(output_path), + image_channels=3, + backend="onnx", + device="gpu", + target_device="aries-rb", + inference_scheme="all", + calibration_config=calibration_config, + ) + + with TemporaryDirectory(prefix="mblt-vision-calibration-") as temporary_root: + temporary_path = Path(temporary_root) + if subset_path is not None: + subset_images = get_subset_images(subset_path) + else: + dataset_path = ensure_calibration_dataset(task, data_path, dataset) + subset_images = make_calibration_subset( + task, + dataset_path, + temporary_path / "images", + subset_size=subset_size, + seed=seed, + ) + array_dir = temporary_path / "arrays" + prepare_calibration_arrays(engine, subset_images, array_dir) + _compile(array_dir) + return output_path + finally: + if engine is not None: + engine.dispose() + + +__all__ = [ + "compile_vision_model", + "copy_calibration_subset", + "ensure_calibration_dataset", + "get_subset_images", + "make_calibration_subset", + "prepare_calibration_arrays", + "resolve_quantization_values", + "select_calibration_images", + "validate_calibration_dataset", +] diff --git a/mblt_vision/utils/datasets/__init__.py b/mblt_vision/utils/datasets/__init__.py index dec390f..b0751a8 100644 --- a/mblt_vision/utils/datasets/__init__.py +++ b/mblt_vision/utils/datasets/__init__.py @@ -1,28 +1,85 @@ -"""Dataset metadata helpers used by Vision result rendering.""" +""" +Datasets utilities and loaders. +""" + +from __future__ import annotations from .ade20k import get_ade20k_palette from .cityscapes import get_cityscapes_palette from .coco import ( get_coco_class_num, get_coco_det_palette, + get_coco_inv, get_coco_keypoint_palette, get_coco_label, get_coco_limb_palette, get_coco_pose_skeleton, ) -from .dotav1 import get_dotav1_label, get_dotav1_palette +from .dataloader import ( + CustomADE20K, + CustomCityscapes, + CustomCocodata, + CustomCOCODataset, + CustomDOTAv1, + CustomImageFolder, + CustomNYUDepth, + CustomWiderface, + CustomWiderFaceDataset, + get_ade20k_loader, + get_cityscapes_loader, + get_coco_loader, + get_dota_loader, + get_imagenet_loader, + get_nyu_depth_loader, + get_widerface_loader, +) +from .dotav1 import get_dotav1_class_num, get_dotav1_label, get_dotav1_palette from .imagenet import get_imagenet_label +from .organizer import ( + organize_ade20k, + organize_cityscapes, + organize_coco, + organize_dotav1, + organize_imagenet, + organize_nyu_depth, + organize_widerface, +) -__all__ = [ +__all__: list[str] = [ "get_ade20k_palette", "get_cityscapes_palette", "get_coco_class_num", "get_coco_det_palette", + "get_coco_inv", "get_coco_keypoint_palette", "get_coco_label", "get_coco_limb_palette", "get_coco_pose_skeleton", + "get_dotav1_class_num", "get_dotav1_label", "get_dotav1_palette", + "CustomADE20K", + "CustomCityscapes", + "CustomCOCODataset", + "CustomCocodata", + "CustomDOTAv1", + "CustomImageFolder", + "CustomNYUDepth", + "CustomWiderFaceDataset", + "CustomWiderface", + "get_ade20k_loader", + "get_cityscapes_loader", + "get_coco_loader", + "get_dota_loader", + "get_imagenet_loader", + "get_nyu_depth_loader", + "get_widerface_loader", "get_imagenet_label", + "organize_coco", + "organize_ade20k", + "organize_cityscapes", + "organize_dotav1", + "organize_imagenet", + "organize_nyu_depth", + "organize_widerface", ] diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py new file mode 100644 index 0000000..5713b91 --- /dev/null +++ b/mblt_vision/utils/datasets/dataloader.py @@ -0,0 +1,928 @@ +""" +Custom dataloaders for vision datasets. +""" + +from __future__ import annotations + +import os +from typing import Any, Callable + +import cv2 +import numpy as np +import torch +from faster_coco_eval import COCO +from mblt_vision.utils.preprocess.letterbox import letterbox_semantic_mask +from PIL import Image + +from .cityscapes import CITYSCAPES_SOURCE_TO_TRAIN_ID + + +class CustomCOCODataset(torch.utils.data.Dataset[tuple[np.ndarray, int, int, int]]): + """Custom COCO dataset class for loading images and metadata. + + This class provides a simple interface for accessing COCO formatted data + without requiring external library dependencies like torchvision. + + Attributes: + root (str): Root directory path containing the images. + coco (COCO): COCO helper object from faster_coco_eval. + ids (list[int]): Sorted list of image IDs in the dataset. + """ + + def __init__( + self, root: str, annFile: str, min_keypoints: int | None = None + ) -> None: + """Initialize the custom COCO dataset. + + Args: + root (str): Path to the directory containing images. + annFile (str): Path to the COCO annotation JSON file. + min_keypoints: If set, keep only images with at least one + annotation whose ``num_keypoints`` is greater than this value. + """ + self.root = root + self.coco = COCO(annFile) + if min_keypoints is None: + self.ids = list(sorted(self.coco.imgs.keys())) + else: + self.ids = list( + sorted( + { + ann["image_id"] + for ann in self.coco.anns.values() + if ann.get("num_keypoints", 0) > min_keypoints + } + ) + ) + + def _load_image(self, image_id: int) -> np.ndarray: + """Load image by ID""" + image_path = os.path.join( + self.root, self.coco.loadImgs(image_id)[0]["file_name"] + ) + image = cv2.imread(image_path) # Load image (BGR format) + + if image is None: + raise FileNotFoundError(f"Image not found: {image_path}") + + return cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # Convert to RGB + + def __getitem__(self, index: int) -> tuple[np.ndarray, int, int, int]: + """Get the image and target by index""" + image_id = self.ids[index] + image = self._load_image(image_id) + height = self.coco.imgs[image_id]["height"] + width = self.coco.imgs[image_id]["width"] + return image, index, height, width + + def __len__(self) -> int: + """Return the total number of images""" + return len(self.ids) + + +CustomCocodata = CustomCOCODataset + + +def get_coco_loader( + dataset: CustomCOCODataset, + batch_size: int, + preprocess_fn: Callable, +) -> torch.utils.data.DataLoader: + """Creates a DataLoader for the COCO dataset. + + Args: + dataset (CustomCOCODataset): The dataset instance to load from. + batch_size (int): Number of samples per batch. + preprocess_fn (Callable): Function used to preprocess images. + + Returns: + torch.utils.data.DataLoader: A configured DataLoader for the COCO dataset. + """ + + def loader( + batch: list[Any], + ) -> tuple[np.ndarray, np.ndarray, list[Any], tuple[int, ...]]: + """Collate function for COCO DataLoader.""" + batch = list(filter(lambda x: x is not None, batch)) + images, idx, height, width = zip(*batch) + + processed_images = [] + ratio_pads = [] + for img in images: + processed = preprocess_fn(img) + if ( + isinstance(processed, tuple) + and len(processed) == 2 + and isinstance(processed[1], dict) + ): + processed_img, metadata = processed + ratio_pads.append(metadata.get("ratio_pad")) + else: + processed_img = processed + ratio_pads.append(None) + processed_images.append(processed_img) + + height_arr = np.array(height) + width_arr = np.array(width) + + return ( + np.stack(processed_images, axis=0), + np.stack((height_arr, width_arr), axis=1), + ratio_pads, + idx, + ) + + return torch.utils.data.DataLoader( + dataset, + batch_size=batch_size, + shuffle=False, + num_workers=0, + collate_fn=loader, + ) + + +class CustomNYUDepth(torch.utils.data.Dataset[tuple[np.ndarray, np.ndarray, str]]): + """NYU Depth V2 validation dataset with paired RGB images and ``.npy`` depth maps.""" + + IMG_EXTENSIONS = (".jpg", ".jpeg", ".png", ".bmp") + + def __init__(self, root: str) -> None: + """Validate the organizer's ``images/`` and ``depth/`` validation-only layout.""" + + self.root = root + image_root, depth_root = ( + os.path.join(root, "images"), + os.path.join(root, "depth"), + ) + if not os.path.isdir(image_root) or not os.path.isdir(depth_root): + raise FileNotFoundError( + f"NYU Depth requires images/ and depth/ directories under: {root}" + ) + images = { + os.path.splitext(name)[0]: os.path.join(image_root, name) + for name in os.listdir(image_root) + if name.lower().endswith(self.IMG_EXTENSIONS) + } + depths = { + os.path.splitext(name)[0]: os.path.join(depth_root, name) + for name in os.listdir(depth_root) + if name.lower().endswith(".npy") + } + missing_depths, missing_images = ( + sorted(set(images) - set(depths)), + sorted(set(depths) - set(images)), + ) + if missing_depths or missing_images: + details = [] + if missing_depths: + details.append( + f"images without depth maps: {', '.join(missing_depths[:5])}" + ) + if missing_images: + details.append( + f"depth maps without images: {', '.join(missing_images[:5])}" + ) + raise ValueError(f"NYU Depth image/depth mismatch ({'; '.join(details)}).") + if not images: + raise ValueError(f"NYU Depth contains no image/depth pairs: {root}") + self.samples = [(images[stem], depths[stem], stem) for stem in sorted(images)] + + def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: + """Load an RGB image and finite-safe depth target.""" + + image_path, depth_path, stem = self.samples[index] + image = cv2.imread(image_path) + if image is None: + raise FileNotFoundError(f"NYU Depth image not found: {image_path}") + depth = np.asarray(np.load(depth_path), dtype=np.float32) + if depth.ndim != 2: + raise ValueError( + f"NYU Depth target must be two-dimensional, got {depth.shape}: {depth_path}" + ) + return ( + cv2.cvtColor(image, cv2.COLOR_BGR2RGB), + np.nan_to_num(depth, nan=0.0, posinf=0.0, neginf=0.0), + stem, + ) + + def __len__(self) -> int: + """Return the number of paired validation samples.""" + + return len(self.samples) + + +def get_nyu_depth_loader( + dataset: CustomNYUDepth, + batch_size: int, + preprocess_fn: Callable, + image_size: tuple[int, int] | None = None, +) -> torch.utils.data.DataLoader: + """Create a NYU Depth loader with optional stretch-to-size validation preprocessing. + + Args: + dataset: Paired NYU Depth validation dataset. + batch_size: Number of samples per batch. + preprocess_fn: Preprocessing applied after an optional validation resize. + image_size: Optional ``(height, width)`` used to stretch RGB inputs with bilinear + interpolation and depth targets with nearest-neighbor interpolation. This + matches the Ultralytics depth validation pipeline. + + Returns: + Configured NYU Depth validation loader. + """ + + def loader( + batch: list[Any], + ) -> tuple[ + np.ndarray, list[np.ndarray], list[tuple[int, int]], list[Any], tuple[str, ...] + ]: + images, targets, stems = zip(*batch) + processed_images, shapes, ratio_pads = [], [], [] + processed_targets = [] + for image, target in zip(images, targets): + if image_size is not None: + height, width = image_size + image = cv2.resize( + image, (width, height), interpolation=cv2.INTER_LINEAR + ) + target = cv2.resize( + target, (width, height), interpolation=cv2.INTER_NEAREST + ) + shapes.append(tuple(image.shape[:2])) + processed = preprocess_fn(image) + if ( + isinstance(processed, tuple) + and len(processed) == 2 + and isinstance(processed[1], dict) + ): + processed_image, metadata = processed + ratio_pads.append(metadata.get("ratio_pad")) + else: + processed_image = processed + ratio_pads.append(None) + processed_images.append(processed_image) + processed_targets.append(target) + return np.stack(processed_images), processed_targets, shapes, ratio_pads, stems + + return torch.utils.data.DataLoader( + dataset, batch_size=batch_size, shuffle=False, num_workers=0, collate_fn=loader + ) + + +class CustomADE20K(torch.utils.data.Dataset[tuple[np.ndarray, np.ndarray, str]]): + """ADE20K validation dataset with paired RGB images and semantic PNG masks.""" + + IMG_EXTENSIONS = (".jpg", ".jpeg", ".png", ".bmp") + + def __init__(self, root: str) -> None: + """Validate the organizer's flat ``images/`` and ``annotations/`` layout.""" + + self.root = root + image_root = os.path.join(root, "images") + annotation_root = os.path.join(root, "annotations") + if not os.path.isdir(image_root) or not os.path.isdir(annotation_root): + raise FileNotFoundError( + f"ADE20K requires images/ and annotations/ directories under: {root}" + ) + images = { + os.path.splitext(name)[0]: os.path.join(image_root, name) + for name in os.listdir(image_root) + if name.lower().endswith(self.IMG_EXTENSIONS) + } + annotations = { + os.path.splitext(name)[0]: os.path.join(annotation_root, name) + for name in os.listdir(annotation_root) + if name.lower().endswith(".png") + } + missing_annotations = sorted(set(images) - set(annotations)) + missing_images = sorted(set(annotations) - set(images)) + if missing_annotations or missing_images: + details = [] + if missing_annotations: + details.append( + f"images without annotations: {', '.join(missing_annotations[:5])}" + ) + if missing_images: + details.append( + f"annotations without images: {', '.join(missing_images[:5])}" + ) + raise ValueError( + f"ADE20K image/annotation mismatch ({'; '.join(details)})." + ) + if not images: + raise ValueError(f"ADE20K contains no image/annotation pairs: {root}") + self.samples = [ + (images[stem], annotations[stem], stem) for stem in sorted(images) + ] + + def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: + """Load one RGB image and map its source labels to model class IDs.""" + + image_path, annotation_path, stem = self.samples[index] + image = cv2.imread(image_path, cv2.IMREAD_COLOR) + if image is None: + raise FileNotFoundError(f"ADE20K image not found: {image_path}") + annotation = cv2.imread(annotation_path, cv2.IMREAD_GRAYSCALE) + if annotation is None: + raise FileNotFoundError(f"ADE20K annotation not found: {annotation_path}") + if image.shape[:2] != annotation.shape: + raise ValueError( + f"ADE20K image and annotation shapes must match, got {image.shape[:2]} and {annotation.shape}: {stem}" + ) + if annotation.size and int(annotation.max()) > 150: + raise ValueError( + f"ADE20K annotation values must be in [0, 150]: {annotation_path}" + ) + target = np.full(annotation.shape, 255, dtype=np.uint8) + valid = annotation > 0 + target[valid] = annotation[valid] - 1 + return cv2.cvtColor(image, cv2.COLOR_BGR2RGB), target, stem + + def __len__(self) -> int: + """Return the number of paired validation samples.""" + + return len(self.samples) + + +def get_ade20k_loader( + dataset: CustomADE20K, + batch_size: int, + preprocess_fn: Callable, + image_size: tuple[int, int], +) -> torch.utils.data.DataLoader: + """Create an ADE20K loader that applies matching letterbox geometry to masks. + + Args: + dataset: Paired ADE20K validation dataset. + batch_size: Number of samples per batch. + preprocess_fn: Image preprocessing function that returns letterbox metadata. + image_size: Configured model input size as ``(height, width)``. + + Returns: + Configured ADE20K validation loader. + """ + + def loader( + batch: list[Any], + ) -> tuple[ + np.ndarray, np.ndarray, list[tuple[int, int]], list[Any], tuple[str, ...] + ]: + images, targets, stems = zip(*batch) + processed_images, processed_targets, shapes, ratio_pads = [], [], [], [] + input_height, input_width = image_size + for image, target in zip(images, targets): + shapes.append(tuple(image.shape[:2])) + processed = preprocess_fn(image) + if not ( + isinstance(processed, tuple) + and len(processed) == 2 + and isinstance(processed[1], dict) + ): + raise ValueError( + "ADE20K preprocessing must return image data and letterbox metadata." + ) + processed_image, metadata = processed + ratio_pad = metadata.get("ratio_pad") + if ratio_pad is None: + raise ValueError( + "ADE20K preprocessing requires LetterBox ratio_pad metadata." + ) + processed_target, target_ratio_pad = letterbox_semantic_mask( + target, + [input_height, input_width], + ) + if target_ratio_pad != ratio_pad: + raise ValueError( + "ADE20K image and mask LetterBox geometry do not match." + ) + processed_images.append(processed_image) + processed_targets.append(processed_target) + ratio_pads.append(ratio_pad) + return ( + np.stack(processed_images), + np.stack(processed_targets), + shapes, + ratio_pads, + stems, + ) + + return torch.utils.data.DataLoader( + dataset, batch_size=batch_size, shuffle=False, num_workers=0, collate_fn=loader + ) + + +class CustomCityscapes(torch.utils.data.Dataset[tuple[np.ndarray, np.ndarray, str]]): + """Cityscapes validation dataset with paired RGB images and source-ID masks.""" + + IMG_EXTENSIONS = (".jpg", ".jpeg", ".png", ".bmp") + + def __init__(self, root: str) -> None: + """Validate the organizer's flat ``images/`` and ``annotations/`` layout.""" + + self.root = root + image_root = os.path.join(root, "images") + annotation_root = os.path.join(root, "annotations") + if not os.path.isdir(image_root) or not os.path.isdir(annotation_root): + raise FileNotFoundError( + f"Cityscapes requires images/ and annotations/ directories under: {root}" + ) + images = { + os.path.splitext(name)[0]: os.path.join(image_root, name) + for name in os.listdir(image_root) + if name.lower().endswith(self.IMG_EXTENSIONS) + } + annotations = { + os.path.splitext(name)[0]: os.path.join(annotation_root, name) + for name in os.listdir(annotation_root) + if name.lower().endswith(".png") + } + missing_annotations = sorted(set(images) - set(annotations)) + missing_images = sorted(set(annotations) - set(images)) + if missing_annotations or missing_images: + details = [] + if missing_annotations: + details.append( + f"images without annotations: {', '.join(missing_annotations[:5])}" + ) + if missing_images: + details.append( + f"annotations without images: {', '.join(missing_images[:5])}" + ) + raise ValueError( + f"Cityscapes image/annotation mismatch ({'; '.join(details)})." + ) + if not images: + raise ValueError(f"Cityscapes contains no image/annotation pairs: {root}") + self.samples = [ + (images[stem], annotations[stem], stem) for stem in sorted(images) + ] + + def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: + """Load an image and map Cityscapes source IDs to contiguous train IDs.""" + + image_path, annotation_path, stem = self.samples[index] + image = cv2.imread(image_path, cv2.IMREAD_COLOR) + if image is None: + raise FileNotFoundError(f"Cityscapes image not found: {image_path}") + with Image.open(annotation_path) as annotation_image: + annotation = np.asarray(annotation_image) + if annotation.ndim == 3: + if annotation.shape[2] not in {3, 4} or not np.array_equal( + annotation[..., 0], annotation[..., 1] + ): + raise ValueError( + f"Cityscapes RGB annotation channels must contain identical source IDs: {annotation_path}" + ) + if not np.array_equal(annotation[..., 0], annotation[..., 2]): + raise ValueError( + f"Cityscapes RGB annotation channels must contain identical source IDs: {annotation_path}" + ) + annotation = annotation[..., 0] + if annotation.ndim != 2: + raise ValueError( + f"Cityscapes annotation must be grayscale or RGB-grayscale: {annotation_path}" + ) + if image.shape[:2] != annotation.shape: + raise ValueError( + "Cityscapes image and annotation shapes must match, " + f"got {image.shape[:2]} and {annotation.shape}: {stem}" + ) + if annotation.size and ( + int(annotation.min()) < 0 or int(annotation.max()) > 255 + ): + raise ValueError( + f"Cityscapes annotation values must be in [0, 255]: {annotation_path}" + ) + target = CITYSCAPES_SOURCE_TO_TRAIN_ID[annotation.astype(np.uint8)] + return cv2.cvtColor(image, cv2.COLOR_BGR2RGB), target, stem + + def __len__(self) -> int: + """Return the number of paired validation samples.""" + + return len(self.samples) + + +def get_cityscapes_loader( + dataset: CustomCityscapes, + batch_size: int, + preprocess_fn: Callable, + image_size: tuple[int, int], +) -> torch.utils.data.DataLoader: + """Create a Cityscapes loader with image-matching letterbox geometry.""" + + def loader( + batch: list[Any], + ) -> tuple[ + np.ndarray, np.ndarray, list[tuple[int, int]], list[Any], tuple[str, ...] + ]: + images, targets, stems = zip(*batch) + processed_images, processed_targets, shapes, ratio_pads = [], [], [], [] + input_height, input_width = image_size + for image, target in zip(images, targets): + shapes.append(tuple(image.shape[:2])) + processed = preprocess_fn(image) + if not ( + isinstance(processed, tuple) + and len(processed) == 2 + and isinstance(processed[1], dict) + ): + raise ValueError( + "Cityscapes preprocessing must return image data and letterbox metadata." + ) + processed_image, metadata = processed + ratio_pad = metadata.get("ratio_pad") + if ratio_pad is None: + raise ValueError( + "Cityscapes preprocessing requires LetterBox ratio_pad metadata." + ) + processed_target, target_ratio_pad = letterbox_semantic_mask( + target, + [input_height, input_width], + ) + if target_ratio_pad != ratio_pad: + raise ValueError( + "Cityscapes image and mask LetterBox geometry do not match." + ) + processed_images.append(processed_image) + processed_targets.append(processed_target) + ratio_pads.append(ratio_pad) + return ( + np.stack(processed_images), + np.stack(processed_targets), + shapes, + ratio_pads, + stems, + ) + + return torch.utils.data.DataLoader( + dataset, batch_size=batch_size, shuffle=False, num_workers=0, collate_fn=loader + ) + + +class CustomDOTAv1(torch.utils.data.Dataset[tuple[np.ndarray, str, int, int]]): + """Custom DOTAv1 validation dataset for OBB evaluation. + + Attributes: + root: DOTAv1 dataset root. + image_root: Directory containing validation images. + ids: Image IDs derived from file stems. + """ + + IMG_EXTENSIONS = (".jpg", ".jpeg", ".png", ".bmp", ".tif", ".tiff") + + def __init__(self, root: str) -> None: + """Initializes the DOTAv1 validation dataset. + + Args: + root: DOTAv1 root containing flat ``images/`` or legacy + ``images/val`` validation images. + + Raises: + FileNotFoundError: If the validation image directory is missing. + ValueError: If neither supported layout contains validation images. + """ + self.root = root + self.image_root = os.path.join(root, "images") + if not os.path.isdir(self.image_root): + raise FileNotFoundError( + f"DOTAv1 image directory not found: {self.image_root}" + ) + self.image_paths = self._find_image_paths(self.image_root) + legacy_image_root = os.path.join(self.image_root, "val") + if not self.image_paths and os.path.isdir(legacy_image_root): + self.image_root = legacy_image_root + self.image_paths = self._find_image_paths(self.image_root) + if not self.image_paths: + raise ValueError( + f"DOTAv1 validation images not found directly under {os.path.join(root, 'images')} " + "or its legacy `val` subdirectory." + ) + self.ids = [ + os.path.splitext(os.path.basename(path))[0] for path in self.image_paths + ] + + def _find_image_paths(self, image_root: str) -> list[str]: + """Return supported image files directly under a DOTAv1 image directory.""" + + return [ + os.path.join(image_root, file_name) + for file_name in sorted(os.listdir(image_root)) + if file_name.lower().endswith(self.IMG_EXTENSIONS) + ] + + def _load_image(self, image_path: str) -> np.ndarray: + """Load an image as RGB.""" + image = cv2.imread(image_path) + if image is None: + raise FileNotFoundError(f"Image not found: {image_path}") + return cv2.cvtColor(image, cv2.COLOR_BGR2RGB) + + def __getitem__(self, index: int) -> tuple[np.ndarray, str, int, int]: + """Get the image and metadata by index.""" + image_path = self.image_paths[index] + image = self._load_image(image_path) + height, width = image.shape[:2] + return image, self.ids[index], height, width + + def __len__(self) -> int: + """Return the number of validation images.""" + return len(self.image_paths) + + +def get_dota_loader( + dataset: CustomDOTAv1, batch_size: int, preprocess_fn: Callable +) -> torch.utils.data.DataLoader: + """Creates a DataLoader for DOTAv1 validation. + + Args: + dataset: The DOTAv1 dataset instance. + batch_size: Number of samples per batch. + preprocess_fn: Function used to preprocess images. + + Returns: + Configured DataLoader for DOTAv1. + """ + + def loader( + batch: list[Any], + ) -> tuple[np.ndarray, np.ndarray, list[Any], tuple[str, ...]]: + """Collate function for DOTAv1 DataLoader.""" + batch = list(filter(lambda x: x is not None, batch)) + images, image_ids, height, width = zip(*batch) + + processed_images = [] + ratio_pads = [] + for img in images: + processed = preprocess_fn(img) + if ( + isinstance(processed, tuple) + and len(processed) == 2 + and isinstance(processed[1], dict) + ): + processed_img, metadata = processed + ratio_pads.append(metadata.get("ratio_pad")) + else: + processed_img = processed + ratio_pads.append(None) + processed_images.append(processed_img) + + return ( + np.stack(processed_images, axis=0), + np.stack((np.array(height), np.array(width)), axis=1), + ratio_pads, + image_ids, + ) + + return torch.utils.data.DataLoader( + dataset, + batch_size=batch_size, + shuffle=False, + num_workers=0, + collate_fn=loader, + ) + + +class CustomImageFolder(torch.utils.data.Dataset[tuple[Image.Image, int]]): + """Custom ImageFolder dataset for loading images from class-based directory structures. + + Expects data to be organized in the format: root/class_name/image.jpg. + + Attributes: + root (str): Root directory path. + classes (list[str]): List of class names found in the root directory. + class_to_idx (dict): Mapping from class name to class index. + samples (list[tuple]): List of (image_path, class_index) tuples. + """ + + def __init__(self, root: str) -> None: + """Initializes the CustomImageFolder instance. + + Args: + root (str): Path to the root directory. + """ + self.root = root + self.classes, self.class_to_idx = self.find_classes(root) + self.samples: list[tuple[str, int]] = [] + self.make_dataset() + + def make_dataset(self) -> None: + """Scans the root directory to create a list of samples.""" + instances = [] + for target_class in sorted(self.class_to_idx.keys()): + class_index = self.class_to_idx[target_class] + target_dir = os.path.join(self.root, target_class) + if not os.path.isdir(target_dir): + continue + for root, _, fnames in sorted(os.walk(target_dir, followlinks=True)): + for fname in sorted(fnames): + path = os.path.join(root, fname) + item = path, class_index + instances.append(item) + + self.samples = instances + + def loader(self, path: str) -> Image.Image: + """Load image from path using PIL.""" + with open(path, "rb") as f: + img = Image.open(f) + return img.convert("RGB") + + def find_classes(self, directory: str) -> tuple[list[str], dict[str, int]]: + """Find classes in the specified directory.""" + classes = sorted([d.name for d in os.scandir(directory) if d.is_dir()]) + class_to_idx = {cls: i for i, cls in enumerate(classes)} + return classes, class_to_idx + + def __getitem__(self, index: int) -> tuple[Image.Image, int]: + """ + Get sample and target at the specified index. + Args: + index (int): Index of the sample to retrieve. + Returns: + tuple: (sample, target) where sample is the loaded image and target is the class index. + """ + path, target = self.samples[index] + sample = self.loader(path) + return sample, target + + def __len__(self) -> int: + """ + Return the total number of samples. + Returns: + int: Number of samples in the dataset. + """ + return len(self.samples) + + +def get_imagenet_loader( + dataset: CustomImageFolder, batch_size: int, preprocess_fn: Callable +) -> torch.utils.data.DataLoader: + """Creates a DataLoader for the ImageNet dataset. + + Args: + dataset (CustomImageFolder): The dataset instance to load from. + batch_size (int): Number of samples per batch. + preprocess_fn (Callable): Function used to preprocess images. + + Returns: + torch.utils.data.DataLoader: A configured DataLoader for the ImageNet dataset. + """ + + def loader(batch: list[Any]) -> tuple[np.ndarray, np.ndarray]: + """Collate function for ImageNet DataLoader.""" + batch = list(filter(lambda x: x is not None, batch)) # remove None + images, labels = zip(*batch) + processed_images = [] + for img in images: + img = preprocess_fn(img) + processed_images.append(img) + + return ( + np.stack(processed_images, axis=0), + np.array(labels), + ) # BHWC, labels + + return torch.utils.data.DataLoader( + dataset, + batch_size=batch_size, + shuffle=False, + num_workers=0, + collate_fn=loader, + ) + + +class CustomWiderFaceDataset(torch.utils.data.Dataset[tuple[np.ndarray, str, str]]): + """Custom dataset class for the WiderFace dataset. + + Attributes: + root (str): Path to the root directory containing WiderFace images. + classes (list[str]): List of class/event names found in the root. + samples (list[tuple]): List of (image_path, class_name, file_name) tuples. + """ + + def __init__(self, root: str) -> None: + """Initialize the custom WiderFace dataset. + + Args: + root (str): Path to the directory containing WiderFace images. + """ + self.root = root + self.classes = self.find_classes(root) + self.samples: list[tuple[str, str, str]] = [] + self.make_dataset() + + def make_dataset(self) -> None: + """Scans the root directory to create a list of samples.""" + instances = [] + for target_class in self.classes: + target_dir = os.path.join(self.root, target_class) + if not os.path.isdir(target_dir): + continue + for root, _, fnames in sorted(os.walk(target_dir, followlinks=True)): + for fname in sorted(fnames): + path = os.path.join(root, fname) + item = path, target_class, fname + instances.append(item) + + self.samples = instances + + def loader(self, image_path: str) -> np.ndarray: + """Load image by image path""" + image = cv2.imread(image_path) # Load image (BGR format) + if image is None: + raise FileNotFoundError(f"Image not found: {image_path}") + return cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # Convert to RGB + + def find_classes(self, directory: str) -> list[str]: + """Find classes in the specified directory.""" + unsorted_classes = [d.name for d in os.scandir(directory) if d.is_dir()] + class_to_idx = {} + for cls_name in unsorted_classes: + cls_idx = int(cls_name.split("--")[0]) + class_to_idx[cls_name] = cls_idx + + sorted_classes = sorted( + class_to_idx.keys(), key=lambda x: class_to_idx[x] + ) # sort by dictionary value with ascending order + + return sorted_classes + + def __getitem__(self, index: int) -> tuple[np.ndarray, str, str]: + """ + Get the image and target by index. + Args: + index (int): Index of the sample to retrieve. + Returns: + tuple: (image, target_class, fname) where image is the loaded image in RGB format. + """ + image_path, target_class, fname = self.samples[index] + image = self.loader(image_path) + + return image, target_class, fname + + def __len__(self) -> int: + """ + Return the total number of images. + Returns: + int: Number of images in the dataset. + """ + return len(self.samples) + + +CustomWiderface = CustomWiderFaceDataset + + +def get_widerface_loader( + dataset: CustomWiderFaceDataset, batch_size: int, preprocess_fn: Callable +) -> torch.utils.data.DataLoader: + """Creates a DataLoader for the WiderFace dataset. + + Args: + dataset (CustomWiderFaceDataset): The dataset instance to load from. + batch_size (int): Number of samples per batch. + preprocess_fn (Callable): Function used to preprocess images. + + Returns: + torch.utils.data.DataLoader: A configured DataLoader for the WiderFace dataset. + """ + + def loader( + batch: list[Any], + ) -> tuple[ + np.ndarray, np.ndarray, list[Any | None], tuple[str, ...], tuple[str, ...] + ]: + """Collate function for WiderFace DataLoader.""" + batch = list(filter(lambda x: x is not None, batch)) + images, target_classes, fnames = zip(*batch) + processed_images = [] + heights = [] + widths = [] + ratio_pads = [] + for img in images: + height, width = img.shape[:2] + processed = preprocess_fn(img) + if isinstance(processed, tuple): + processed_img, metadata = processed + ratio_pads.append(metadata.get("ratio_pad")) + else: + processed_img = processed + ratio_pads.append(None) + processed_images.append(processed_img) + heights.append(height) + widths.append(width) + + return ( + np.stack(processed_images, axis=0), + np.stack((heights, widths), axis=1), + ratio_pads, + target_classes, + fnames, + ) + + return torch.utils.data.DataLoader( + dataset, + batch_size=batch_size, + shuffle=False, + num_workers=0, + collate_fn=loader, + ) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py new file mode 100644 index 0000000..e1205df --- /dev/null +++ b/mblt_vision/utils/datasets/organizer.py @@ -0,0 +1,1567 @@ +""" +Utilities for organizing datasets. +""" + +from __future__ import annotations + +import concurrent.futures +import os +import re +import shutil +import stat +import tarfile +import xml.etree.ElementTree as ET +import zipfile +from collections.abc import Iterable +from pathlib import Path +from tempfile import TemporaryDirectory, mkdtemp +from time import sleep +from typing import Protocol, TypeGuard +from urllib.parse import urlparse + +import requests +from gdown.download import download +from gdown.download_folder import download_folder +from PIL import Image +from tqdm import tqdm + +from ...datasets import get_dataset_config +from .readiness import ( + ADE20K_METADATA_FILES, + ADE20K_VALIDATION_SAMPLE_COUNT, + CITYSCAPES_SAMPLE_ID_PATTERN, + CITYSCAPES_VALIDATION_SAMPLE_COUNT, + DOTAV1_VALIDATION_SAMPLE_COUNT, + NYU_DEPTH_VALIDATION_SAMPLE_COUNT, + _path_has_symlink_component, + dataset_ready, +) + +DOWNLOAD_CHUNK_SIZE = 1 * 1024 * 1024 +DOWNLOAD_RETRY_LIMIT = 4 +DOWNLOAD_RETRY_BACKOFF_SECONDS = 2.0 +DOWNLOAD_TIMEOUT = (10, 30) +DOTAV1_DOWNLOAD_CONFIG = get_dataset_config("dotav1")["download"] +DOTAV1_GOOGLE_DRIVE_ARCHIVES = { + DOTAV1_DOWNLOAD_CONFIG["images_archive"], + DOTAV1_DOWNLOAD_CONFIG["labels_archive"], +} +DOTAV1_CLASS_TO_IDX = { + name: int(index) for index, name in get_dataset_config("dotav1")["names"].items() +} +NYU_DEPTH_URL = ( + "https://github.com/ultralytics/assets/releases/download/v0.0.0/nyu-depth.zip" +) +ADE20K_URL = "http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip" +CITYSCAPES_IMAGE_SUFFIX = "_leftImg8bit.png" +CITYSCAPES_ANNOTATION_SUFFIX = "_gtFine_labelIds.png" + + +def _replace_staged_directories( + replacements: Iterable[tuple[str, str]], + output_parent_dir: str, + backup_prefix: str, +) -> None: + """Atomically install staged directories while preserving failed rollback backups. + + Args: + replacements: Pairs of staged and destination directories. + output_parent_dir: Parent directory where the backup directory is created. + backup_prefix: Prefix identifying the temporary backup directory. + + Raises: + OSError: If installation or rollback fails. A failed rollback leaves its + backup directory in place and includes its path in the error. + """ + + replacement_list = list(replacements) + backup_dir = mkdtemp(dir=output_parent_dir, prefix=backup_prefix) + backups: dict[str, str] = {} + installed_dirs: list[str] = [] + try: + for _, destination_dir in replacement_list: + if os.path.lexists(destination_dir): + backup_path = os.path.join( + backup_dir, os.path.basename(destination_dir) + ) + os.replace(destination_dir, backup_path) + backups[destination_dir] = backup_path + for staged_dir, destination_dir in replacement_list: + os.makedirs(os.path.dirname(destination_dir), exist_ok=True) + os.replace(staged_dir, destination_dir) + installed_dirs.append(destination_dir) + except OSError: + try: + for directory in installed_dirs: + if os.path.isdir(directory) and not os.path.islink(directory): + shutil.rmtree(directory) + elif os.path.lexists(directory): + os.remove(directory) + for destination_dir, backup_path in backups.items(): + os.makedirs(os.path.dirname(destination_dir), exist_ok=True) + os.replace(backup_path, destination_dir) + except OSError as rollback_error: + raise OSError( + f"Dataset installation rollback failed; backups are preserved at {backup_dir}." + ) from rollback_error + shutil.rmtree(backup_dir) + raise + shutil.rmtree(backup_dir) + + +def _validate_staged_dataset( + staged_output_dir: str, + dataset: str, + tasks: Iterable[str], +) -> None: + """Validate a complete staged dataset before replacing its managed cache. + + Args: + staged_output_dir: Root of the staged organized dataset. + dataset: Validation dataset taxonomy. + tasks: Tasks whose required metadata and files must all be ready. + + Raises: + ValueError: If the staged dataset is incomplete or has mismatched identity. + """ + + if all(dataset_ready(staged_output_dir, task, dataset) for task in tasks): + return + raise ValueError( + f"Staged {dataset} validation dataset is incomplete or has mismatched metadata; " + "the existing dataset cache was not replaced." + ) + + +class _GoogleDriveDownloadEntry(Protocol): + """The public attributes needed from a gdown folder-listing entry.""" + + id: str + path: str + + +def _is_google_drive_download_entry( + value: object, +) -> TypeGuard[_GoogleDriveDownloadEntry]: + """Returns whether a folder-listing value has the Google Drive file attributes needed here.""" + + return isinstance(getattr(value, "id", None), str) and isinstance( + getattr(value, "path", None), str + ) + + +def _is_url(path_or_url: str) -> bool: + """Returns whether the given string looks like an HTTP(S) URL.""" + parsed = urlparse(path_or_url) + return parsed.scheme in {"http", "https"} and bool(parsed.netloc) + + +def _download_url(url: str, local_path: str) -> str: + """Downloads a URL to a local file with progress and resume support. + + Args: + url: HTTP(S) URL to download. + local_path: Destination file path. + + Returns: + The local destination path. + + Raises: + RuntimeError: If all download attempts fail. + """ + os.makedirs(os.path.dirname(local_path), exist_ok=True) + + for attempt in range(1, DOWNLOAD_RETRY_LIMIT + 1): + existing_size = os.path.getsize(local_path) if os.path.exists(local_path) else 0 + headers: dict[str, str] = {} + mode = "wb" + if existing_size > 0: + headers["Range"] = f"bytes={existing_size}-" + mode = "ab" + + try: + with requests.get( + url, stream=True, timeout=DOWNLOAD_TIMEOUT, headers=headers + ) as response: + response.raise_for_status() + + if response.status_code == 200 and existing_size > 0: + existing_size = 0 + mode = "wb" + + total_size = response.headers.get("Content-Length") + total_bytes = ( + existing_size + int(total_size) if total_size is not None else None + ) + + desc = f"Downloading {os.path.basename(local_path)}" + with tqdm( + total=total_bytes, + initial=existing_size, + unit="B", + unit_scale=True, + unit_divisor=1024, + desc=desc, + ) as pbar: + with open(local_path, mode) as file_obj: + for chunk in response.iter_content( + chunk_size=DOWNLOAD_CHUNK_SIZE + ): + if not chunk: + continue + file_obj.write(chunk) + pbar.update(len(chunk)) + return local_path + except ( + requests.ConnectionError, + requests.Timeout, + requests.exceptions.ChunkedEncodingError, + ) as exc: + if attempt == DOWNLOAD_RETRY_LIMIT: + raise RuntimeError( + f"Failed to download {url} after {DOWNLOAD_RETRY_LIMIT} attempts." + ) from exc + resumed_size = ( + os.path.getsize(local_path) if os.path.exists(local_path) else 0 + ) + print( + f"Download interrupted for {os.path.basename(local_path)}; " + f"retrying from {resumed_size} bytes (attempt {attempt + 1}/{DOWNLOAD_RETRY_LIMIT})..." + ) + sleep(DOWNLOAD_RETRY_BACKOFF_SECONDS * attempt) + + raise RuntimeError( + f"Failed to download {url} after {DOWNLOAD_RETRY_LIMIT} attempts." + ) + + +def _should_download_serially(path_or_urls: list[str]) -> bool: + """Returns whether URL inputs should be downloaded one by one. + + Dataset hosts such as ImageNet often throttle concurrent archive downloads + from the same origin. Serializing same-host downloads is slower in the best + case, but much more stable for the large validation archives used here. + """ + + hosts = [ + urlparse(path_or_url).netloc + for path_or_url in path_or_urls + if _is_url(path_or_url) + ] + return len(hosts) > 1 and len(set(hosts)) == 1 + + +def _download_if_url(path_or_url: str, download_dir: str) -> str: + """Downloads a remote dataset archive when needed. + + Args: + path_or_url: Local path or HTTP(S) URL pointing to a dataset archive. + download_dir: Directory to store downloaded archives. + + Returns: + A local filesystem path to the archive or directory. + + Raises: + ValueError: If the URL path does not contain a filename. + """ + if not _is_url(path_or_url): + return path_or_url + + parsed = urlparse(path_or_url) + filename = os.path.basename(parsed.path) + if not filename: + raise ValueError(f"Unable to determine a filename from URL: {path_or_url}") + + local_path = os.path.join(download_dir, filename) + print(f"Downloading dataset archive from {path_or_url} to {local_path}...") + _download_url(path_or_url, local_path) + print("Download completed") + return local_path + + +def _resolve_source(path_or_url: str, download_dir: str) -> str: + """Resolves a local path for a dataset source.""" + + return _download_if_url(path_or_url, download_dir) + + +def _resolve_sources(path_or_urls: list[str], download_dir: str) -> list[str]: + """Resolves multiple dataset sources, downloading URL inputs in parallel.""" + + if _should_download_serially(path_or_urls): + return [ + _resolve_source(path_or_url, download_dir) for path_or_url in path_or_urls + ] + + local_paths: list[str | None] = [None] * len(path_or_urls) + futures: dict[concurrent.futures.Future[str], int] = {} + with concurrent.futures.ThreadPoolExecutor( + max_workers=min(4, len(path_or_urls)) + ) as executor: + for idx, path_or_url in enumerate(path_or_urls): + if _is_url(path_or_url): + futures[executor.submit(_resolve_source, path_or_url, download_dir)] = ( + idx + ) + else: + local_paths[idx] = path_or_url + + for future in concurrent.futures.as_completed(futures): + local_paths[futures[future]] = future.result() + + return [path for path in local_paths if path is not None] + + +def _get_object_name(obj: ET.Element, xml_file: str) -> str: + """Extracts a non-empty object name from an ImageNet annotation node. + + Args: + obj: XML ``object`` element from an annotation file. + xml_file: Source XML filename used for error context. + + Returns: + The validated object name. + + Raises: + ValueError: If the object name node is missing or empty. + """ + name_element = obj.find("name") + if name_element is None or name_element.text is None: + raise ValueError(f"XML file {xml_file} has an object without a valid name") + + object_name = name_element.text.strip() + if not object_name: + raise ValueError(f"XML file {xml_file} has an object with an empty name") + + return object_name + + +def construct_imagenet(image_dir: str, xml_dir: str, output_dir: str) -> None: + """Constructs the ImageNet dataset by organizing images into category folders. + + Args: + image_dir (str): Directory containing the ImageNet validation images. + xml_dir (str): Directory containing the ImageNet bounding box XML files. + output_dir (str): Directory where the organized dataset will be stored. + + Raises: + ValueError: If an XML file has no objects or contains multiple object names. + ValueError: If the number of XML files and images do not match. + """ + + xml_count = len(os.listdir(xml_dir + "/val")) + image_count = len(os.listdir(image_dir)) + if xml_count != image_count: + raise ValueError( + f"Number of XML and image files do not match: {xml_count} != {image_count}." + ) + + # validate the XML files + pbar = tqdm(os.listdir(xml_dir + "/val"), desc="Validating XML files") + for xml_file in pbar: + xml_path = os.path.join(xml_dir + "/val", xml_file) + xml_tree = ET.parse(xml_path) + root = xml_tree.getroot() + + if len(root.findall("object")) < 1: + raise ValueError( + f"XML file {xml_file} has no object, but expected at least 1" + ) + + # check whether the object names in the XML files are the same + object_names = [ + _get_object_name(obj, xml_file) for obj in root.findall("object") + ] + if len(set(object_names)) != 1: + raise ValueError( + f"Object names in XML file {xml_file} are not the same. " + f"It has {len(set(object_names))} different object names." + ) + + pbar.close() + + output_dir = os.path.abspath(output_dir) + output_parent_dir = os.path.dirname(output_dir) + os.makedirs(output_parent_dir, exist_ok=True) + with TemporaryDirectory( + dir=output_parent_dir, prefix=".imagenet-staging-" + ) as staging_dir: + staged_output_dir = os.path.join(staging_dir, "imagenet") + + # construct the ImageNet dataset + pbar = tqdm(os.listdir(xml_dir + "/val"), desc="Constructing ImageNet dataset") + for xml_file in pbar: + xml_path = os.path.join(xml_dir + "/val", xml_file) + xml_tree = ET.parse(xml_path) + root = xml_tree.getroot() + object_name = _get_object_name(root.findall("object")[0], xml_file) + image_path = os.path.join(image_dir, xml_file.replace(".xml", ".JPEG")) + if not os.path.isfile(image_path): + raise FileNotFoundError(f"Image file not found: {image_path}") + + os.makedirs(os.path.join(staged_output_dir, object_name), exist_ok=True) + shutil.copy( + image_path, + os.path.join( + staged_output_dir, object_name, os.path.basename(image_path) + ), + ) + pbar.close() + + # validate the staged ImageNet dataset before replacing the managed output root + pbar = tqdm(os.listdir(staged_output_dir), desc="Validating ImageNet dataset") + print(f"Number of categories: {len(os.listdir(staged_output_dir))}") + for object_name in pbar: + num_images = len(os.listdir(os.path.join(staged_output_dir, object_name))) + if num_images != 50: + raise ValueError( + f"Object {object_name} has {num_images} images, but expected 50" + ) + pbar.close() + _validate_staged_dataset( + staged_output_dir, "imagenet", ("image_classification",) + ) + _replace_staged_directories( + ((staged_output_dir, output_dir),), + output_parent_dir, + ".imagenet-backup-", + ) + print("Each category has 50 images") + print("ImageNet dataset constructed successfully") + + +def organize_imagenet( + image_dir: str, + xml_dir: str, + output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/imagenet"), +) -> None: + """Organizes the ImageNet dataset, unpacking archives if necessary. + + Args: + image_dir (str): Path or URL to the image directory or archive (.tar). + xml_dir (str): Path or URL to the XML directory or archive (.tgz). + output_dir (str, optional): Directory to store the organized dataset. + Defaults to ~/.mblt_vision/datasets/imagenet. + """ + with TemporaryDirectory() as temp_dir: + local_image_dir, local_xml_dir = _resolve_sources( + [image_dir, xml_dir], temp_dir + ) + + if local_image_dir.endswith(".tar") and local_xml_dir.endswith(".tgz"): + print("Unpacking image and XML files to temporary directory...") + _safe_unpack_archive( + local_image_dir, os.path.join(temp_dir, "ILSVRC2012_img_val") + ) + _safe_unpack_archive( + local_xml_dir, os.path.join(temp_dir, "ILSVRC2012_bbox_val_v3") + ) + print("Unpacking completed") + construct_imagenet( + os.path.join(temp_dir, "ILSVRC2012_img_val"), + os.path.join(temp_dir, "ILSVRC2012_bbox_val_v3"), + output_dir, + ) + return + + construct_imagenet(local_image_dir, local_xml_dir, output_dir) + + +def construct_coco(image_dir: str, annotation_dir: str, output_dir: str) -> None: + """Constructs the COCO dataset by copying images and annotations to a target directory. + + Args: + image_dir (str): Directory containing COCO images. + annotation_dir (str): Directory containing COCO annotations. + output_dir (str): Directory where the organized dataset will be stored. + """ + print( + f"Constructing COCO dataset from {image_dir} and {annotation_dir} to {output_dir}" + ) + output_dir = os.path.abspath(output_dir) + output_parent_dir = os.path.dirname(output_dir) + os.makedirs(output_parent_dir, exist_ok=True) + with TemporaryDirectory( + dir=output_parent_dir, prefix=".coco-staging-" + ) as staging_dir: + staged_output_dir = os.path.join(staging_dir, "coco") + shutil.copytree(image_dir, os.path.join(staged_output_dir, "val2017")) + for file in os.listdir(os.path.join(annotation_dir, "annotations")): + if file.endswith("_val2017.json"): + shutil.copy( + os.path.join(annotation_dir, "annotations", file), + os.path.join(staged_output_dir, file), + ) + _validate_staged_dataset( + staged_output_dir, + "coco", + ("object_detection", "pose_estimation"), + ) + _replace_staged_directories( + ((staged_output_dir, output_dir),), + output_parent_dir, + ".coco-backup-", + ) + print("Constructing COCO dataset completed") + + +def organize_coco( + image_dir: str, + annotation_dir: str, + output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/coco"), +) -> None: + """Organizes the COCO dataset, unpacking archives if necessary. + + Args: + image_dir (str): Path or URL to the image zip file or directory. + annotation_dir (str): Path or URL to the annotation zip file or directory. + output_dir (str, optional): Directory to store the organized dataset. + Defaults to ~/.mblt_vision/datasets/coco. + """ + with TemporaryDirectory() as temp_dir: + local_image_dir, local_annotation_dir = _resolve_sources( + [image_dir, annotation_dir], temp_dir + ) + + if local_image_dir.endswith(".zip") and local_annotation_dir.endswith(".zip"): + print("Unpacking image and annotation files to temporary directory...") + _safe_unpack_archive(local_image_dir, temp_dir) + _safe_unpack_archive( + local_annotation_dir, os.path.join(temp_dir, "annotations_trainval2017") + ) + print("Unpacking completed") + construct_coco( + os.path.join(temp_dir, "val2017"), + os.path.join(temp_dir, "annotations_trainval2017"), + output_dir, + ) + return + + construct_coco(local_image_dir, local_annotation_dir, output_dir) + + +def construct_widerface(image_dir: str, annotation_dir: str, output_dir: str) -> None: + """Constructs the WiderFace dataset by copying images and annotations to a target directory. + + Args: + image_dir (str): Directory containing WiderFace images. + annotation_dir (str): Directory containing WiderFace annotations. + output_dir (str): Directory where the organized dataset will be stored. + """ + print( + f"Constructing WiderFace dataset from {image_dir} and {annotation_dir} to {output_dir}" + ) + output_dir = os.path.abspath(output_dir) + output_parent_dir = os.path.dirname(output_dir) + os.makedirs(output_parent_dir, exist_ok=True) + with TemporaryDirectory( + dir=output_parent_dir, prefix=".widerface-staging-" + ) as staging_dir: + staged_output_dir = os.path.join(staging_dir, "widerface") + shutil.copytree( + os.path.join(image_dir, "images"), + os.path.join(staged_output_dir, "images"), + ) + for file in os.listdir(annotation_dir): + if "_val" in file: + shutil.copy(os.path.join(annotation_dir, file), staged_output_dir) + _validate_staged_dataset(staged_output_dir, "widerface", ("face_detection",)) + _replace_staged_directories( + ((staged_output_dir, output_dir),), + output_parent_dir, + ".widerface-backup-", + ) + print("Constructing WiderFace dataset completed") + + +def organize_widerface( + image_dir: str, + annotation_dir: str, + output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/widerface"), +) -> None: + """Organizes the WiderFace dataset, unpacking archives if necessary. + + Args: + image_dir (str): Path or URL to the image zip file or directory. + annotation_dir (str): Path or URL to the annotation zip file or directory. + output_dir (str, optional): Directory to store the organized dataset. + Defaults to ~/.mblt_vision/datasets/widerface. + """ + with TemporaryDirectory() as temp_dir: + local_image_dir, local_annotation_dir = _resolve_sources( + [image_dir, annotation_dir], temp_dir + ) + + if local_image_dir.endswith(".zip") and local_annotation_dir.endswith(".zip"): + print("Unpacking image and annotation files to temporary directory...") + _safe_unpack_archive(local_image_dir, temp_dir) + _safe_unpack_archive(local_annotation_dir, temp_dir) + print("Unpacking completed") + construct_widerface( + os.path.join(temp_dir, "WIDER_val"), + os.path.join(temp_dir, "wider_face_split"), + output_dir, + ) + return + + construct_widerface(local_image_dir, local_annotation_dir, output_dir) + + +def _resolve_nyu_depth_validation_dirs(dataset_dir: str) -> tuple[str, str, str]: + """Resolves NYU Depth validation image and depth directories. + + Args: + dataset_dir: Directory containing the NYU Depth root or its parent. + + Returns: + Paths to the selected dataset root, validation image directory, and + validation depth directory. + + Raises: + ValueError: If the expected NYU Depth layout is not present. + """ + + roots = (os.path.join(dataset_dir, "nyu-depth"), dataset_dir) + for root in roots: + candidates = ( + (os.path.join(root, "images", "val"), os.path.join(root, "depth", "val")), + (os.path.join(root, "val", "images"), os.path.join(root, "val", "depth")), + (os.path.join(root, "images"), os.path.join(root, "depth")), + ) + for image_dir, depth_dir in candidates: + if os.path.isdir(image_dir) and os.path.isdir(depth_dir): + return root, image_dir, depth_dir + raise ValueError( + f"NYU Depth dataset must contain matching images/ and depth/ directories: {dataset_dir}" + ) + + +def _validate_dense_source_file(source_path: str, dataset_root: Path) -> str: + """Resolve a non-symlink regular file contained by a dense dataset root. + + Args: + source_path: Candidate data or metadata file. + dataset_root: Resolved root of the extracted dataset. + + Returns: + Resolved source path safe to copy. + + Raises: + ValueError: If the source is a symlink, is not a regular file, cannot be + resolved, or escapes the dataset root. + """ + + source = Path(source_path) + if source.is_symlink(): + raise ValueError(f"Dense dataset source file must not be a symlink: {source}.") + try: + resolved_source = source.resolve(strict=True) + except OSError as exc: + raise ValueError( + f"Unable to resolve dense dataset source file {source}: {exc}." + ) from exc + if not resolved_source.is_file(): + raise ValueError(f"Dense dataset source must be a regular file: {source}.") + if not resolved_source.is_relative_to(dataset_root): + raise ValueError( + f"Dense dataset source must remain within dataset root: {source}." + ) + return str(resolved_source) + + +def _validate_dense_output_root( + output_dir: str, + dataset_name: str, + layout_names: Iterable[str], +) -> str: + """Reject symlinks in a dense managed root before organization. + + Args: + output_dir: Requested managed dataset root. + dataset_name: Human-readable dataset name for error reporting. + layout_names: Dataset-specific directories managed below the root. + + Returns: + Expanded absolute output path. + + Raises: + ValueError: If the managed root, an ancestor, or a managed layout + directory is a symlink. + """ + + requested_path = Path(output_dir).expanduser() + output_path = Path(os.path.abspath(requested_path)) + if _path_has_symlink_component(requested_path): + raise ValueError( + f"{dataset_name} output directory and its existing parents must not be symlinks: {output_path}. " + "Remove the symlink or choose a path beneath regular directories." + ) + for layout_name in layout_names: + layout_path = output_path / layout_name + if layout_path.is_symlink(): + raise ValueError( + f"{dataset_name} output layout directories must not be symlinks: {layout_path}. " + "Remove the symlink or choose a different output directory." + ) + return str(output_path) + + +def _collect_nyu_depth_validation_files( + image_dir: str, + depth_dir: str, + dataset_root: Path, +) -> tuple[dict[str, str], dict[str, str]]: + """Validates and returns matching NYU Depth validation image/depth pairs.""" + + images = { + os.path.splitext(os.path.basename(path))[0]: _validate_dense_source_file( + path, dataset_root + ) + for path in _iter_files(image_dir, [".jpg", ".jpeg", ".png"]) + } + depths = { + os.path.splitext(os.path.basename(path))[0]: _validate_dense_source_file( + path, dataset_root + ) + for path in _iter_files(depth_dir, [".npy"]) + } + missing_depths = sorted(set(images) - set(depths)) + missing_images = sorted(set(depths) - set(images)) + if missing_depths or missing_images: + details = [] + if missing_depths: + details.append( + f"images without depth maps: {', '.join(missing_depths[:5])}" + ) + if missing_images: + details.append( + f"depth maps without images: {', '.join(missing_images[:5])}" + ) + raise ValueError( + f"NYU Depth validation image/depth mismatch ({'; '.join(details)})." + ) + if len(images) != NYU_DEPTH_VALIDATION_SAMPLE_COUNT: + raise ValueError( + "NYU Depth validation dataset must contain " + f"{NYU_DEPTH_VALIDATION_SAMPLE_COUNT} matching image/depth pairs, found {len(images)}." + ) + return images, depths + + +def construct_nyu_depth(dataset_dir: str, output_dir: str) -> None: + """Constructs the NYU Depth layout from an extracted dataset directory. + + Args: + dataset_dir: Directory containing the NYU Depth root or its parent. + output_dir: Directory where the organized dataset will be stored. + """ + + output_dir = _validate_dense_output_root( + output_dir, "NYU Depth", ("images", "depth") + ) + selected_root, image_dir, depth_dir = _resolve_nyu_depth_validation_dirs( + dataset_dir + ) + try: + dataset_root = Path(selected_root).resolve(strict=True) + except OSError as exc: + raise ValueError( + f"Unable to resolve NYU Depth dataset root {selected_root}: {exc}." + ) from exc + images, depths = _collect_nyu_depth_validation_files( + image_dir, depth_dir, dataset_root + ) + print( + f"Constructing NYU Depth validation dataset from {dataset_dir} to {output_dir}" + ) + + output_parent_dir = os.path.dirname(output_dir) + os.makedirs(output_parent_dir, exist_ok=True) + with TemporaryDirectory( + dir=output_parent_dir, prefix=".nyu-depth-staging-" + ) as staging_dir: + staged_image_dir = os.path.join(staging_dir, "images") + staged_depth_dir = os.path.join(staging_dir, "depth") + os.makedirs(staged_image_dir) + os.makedirs(staged_depth_dir) + for sample_id in sorted(images): + shutil.copy2( + images[sample_id], + os.path.join(staged_image_dir, os.path.basename(images[sample_id])), + ) + shutil.copy2( + depths[sample_id], + os.path.join(staged_depth_dir, os.path.basename(depths[sample_id])), + ) + + replacements = ( + (staged_image_dir, os.path.join(output_dir, "images")), + (staged_depth_dir, os.path.join(output_dir, "depth")), + ) + _replace_staged_directories( + replacements, output_parent_dir, ".nyu-depth-backup-" + ) + print( + f"Constructed NYU Depth validation dataset with {len(images)} image/depth pairs" + ) + + +def organize_nyu_depth( + dataset_path: str = NYU_DEPTH_URL, + output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/nyu-depth"), +) -> None: + """Organizes NYU Depth, downloading and unpacking an archive when necessary. + + Args: + dataset_path: Path or URL to the NYU Depth zip file or extracted dataset directory. + output_dir: Directory to store the organized dataset. + """ + + output_dir = _validate_dense_output_root( + output_dir, "NYU Depth", ("images", "depth") + ) + with TemporaryDirectory() as temp_dir: + local_dataset_path = _resolve_source(dataset_path, temp_dir) + if local_dataset_path.endswith(".zip"): + print("Unpacking NYU Depth files to temporary directory...") + _safe_unpack_archive(local_dataset_path, temp_dir) + print("Unpacking completed") + construct_nyu_depth(temp_dir, output_dir) + return + + construct_nyu_depth(local_dataset_path, output_dir) + + +def _resolve_ade20k_validation_dirs(dataset_dir: str) -> tuple[str, str, str]: + """Resolves the ADE20K root and validation image/mask directories.""" + + for root in (os.path.join(dataset_dir, "ADEChallengeData2016"), dataset_dir): + for image_dir, annotation_dir in ( + ( + os.path.join(root, "images", "validation"), + os.path.join(root, "annotations", "validation"), + ), + (os.path.join(root, "images"), os.path.join(root, "annotations")), + ): + if os.path.isdir(image_dir) and os.path.isdir(annotation_dir): + return root, image_dir, annotation_dir + raise ValueError( + f"ADE20K dataset must contain matching images/ and annotations/ directories: {dataset_dir}" + ) + + +def construct_ade20k(dataset_dir: str, output_dir: str) -> None: + """Constructs the flat ADE20K validation layout from an extracted dataset. + + Args: + dataset_dir: Directory containing the ADE20K root or its parent. + output_dir: Directory where the organized validation dataset will be stored. + + Raises: + ValueError: If the source does not contain 2,000 matched validation image/mask pairs. + """ + + output_dir = _validate_dense_output_root( + output_dir, "ADE20K", ("images", "annotations") + ) + dataset_root, image_dir, annotation_dir = _resolve_ade20k_validation_dirs( + dataset_dir + ) + try: + resolved_dataset_root = Path(dataset_root).resolve(strict=True) + except OSError as exc: + raise ValueError( + f"Unable to resolve ADE20K dataset root {dataset_root}: {exc}." + ) from exc + images = { + os.path.splitext(file_name)[0]: _validate_dense_source_file( + os.path.join(image_dir, file_name), + resolved_dataset_root, + ) + for file_name in os.listdir(image_dir) + if file_name.startswith("ADE_val_") and file_name.lower().endswith(".jpg") + } + annotations = { + os.path.splitext(file_name)[0]: _validate_dense_source_file( + os.path.join(annotation_dir, file_name), + resolved_dataset_root, + ) + for file_name in os.listdir(annotation_dir) + if file_name.startswith("ADE_val_") and file_name.lower().endswith(".png") + } + if set(images) != set(annotations): + raise ValueError( + "ADE20K validation images and annotations must have matching file stems." + ) + if len(images) != ADE20K_VALIDATION_SAMPLE_COUNT: + raise ValueError( + f"ADE20K validation dataset must contain {ADE20K_VALIDATION_SAMPLE_COUNT} pairs, found {len(images)}." + ) + metadata: dict[str, str] = {} + for file_name in ADE20K_METADATA_FILES: + metadata_path = os.path.join(dataset_root, file_name) + if not os.path.lexists(metadata_path): + raise ValueError( + f"ADE20K dataset is missing required metadata files: {file_name}." + ) + metadata[file_name] = _validate_dense_source_file( + metadata_path, resolved_dataset_root + ) + + output_parent_dir = os.path.dirname(output_dir) + os.makedirs(output_parent_dir, exist_ok=True) + with TemporaryDirectory( + dir=output_parent_dir, prefix=".ade20k-staging-" + ) as staging_dir: + staged_output_dir = os.path.join(staging_dir, "ade20k") + staged_image_dir = os.path.join(staged_output_dir, "images") + staged_annotation_dir = os.path.join(staged_output_dir, "annotations") + os.makedirs(staged_image_dir) + os.makedirs(staged_annotation_dir) + for sample_id in sorted(images): + shutil.copy2( + images[sample_id], + os.path.join(staged_image_dir, os.path.basename(images[sample_id])), + ) + shutil.copy2( + annotations[sample_id], + os.path.join( + staged_annotation_dir, os.path.basename(annotations[sample_id]) + ), + ) + for file_name in ADE20K_METADATA_FILES: + shutil.copy2( + metadata[file_name], + os.path.join(staged_output_dir, file_name), + ) + + _validate_staged_dataset( + staged_output_dir, "ade20k", ("semantic_segmentation",) + ) + _replace_staged_directories( + ((staged_output_dir, output_dir),), + output_parent_dir, + ".ade20k-backup-", + ) + print(f"Constructed ADE20K validation dataset with {len(images)} image/mask pairs") + + +def organize_ade20k( + dataset_path: str = ADE20K_URL, + output_dir: str = os.path.expanduser( + "~/.mblt_vision/datasets/ADEChallengeData2016" + ), +) -> None: + """Organizes ADE20K validation data, downloading and unpacking when necessary.""" + + output_dir = _validate_dense_output_root( + output_dir, "ADE20K", ("images", "annotations") + ) + with TemporaryDirectory() as temp_dir: + local_dataset_path = _resolve_source(dataset_path, temp_dir) + if local_dataset_path.endswith(".zip"): + _safe_unpack_archive(local_dataset_path, temp_dir) + construct_ade20k(temp_dir, output_dir) + return + construct_ade20k(local_dataset_path, output_dir) + + +def _validate_cityscapes_zip(archive_path: str, source_name: str) -> str: + """Validate one official Cityscapes ZIP source. + + Args: + archive_path: Path to the raw Cityscapes archive. + source_name: Human-readable source description for errors. + + Returns: + Expanded absolute archive path. + + Raises: + ValueError: If the path is missing, is not a file, is not a ZIP, or contains duplicate members. + """ + + resolved_path = os.path.abspath(os.path.expanduser(archive_path)) + if not os.path.isfile(resolved_path): + raise ValueError( + f"Cityscapes {source_name} archive does not exist or is not a file: {resolved_path}." + ) + if not zipfile.is_zipfile(resolved_path): + raise ValueError( + f"Cityscapes {source_name} source must be a valid ZIP archive: {resolved_path}." + ) + + with zipfile.ZipFile(resolved_path) as archive: + seen_members: set[str] = set() + duplicate_members: set[str] = set() + for member in archive.infolist(): + if member.filename in seen_members: + duplicate_members.add(member.filename) + seen_members.add(member.filename) + if duplicate_members: + raise ValueError( + f"Cityscapes {source_name} archive contains duplicate members: {', '.join(sorted(duplicate_members)[:3])}." + ) + return resolved_path + + +def _collect_cityscapes_validation_files( + split_dir: str, + suffix: str, + source_name: str, +) -> dict[str, str]: + """Collect official Cityscapes validation files keyed by shared sample ID. + + Args: + split_dir: Extracted ``leftImg8bit/val`` or ``gtFine/val`` directory. + suffix: Required official file suffix. + source_name: Human-readable source description for errors. + + Returns: + Mapping from ``__`` to source path. + + Raises: + ValueError: If a candidate filename is malformed, misplaced, or duplicates an ID. + """ + + files: dict[str, str] = {} + if not os.path.isdir(split_dir): + return files + + for current_root, _, file_names in os.walk(split_dir): + relative_root = os.path.relpath(current_root, split_dir) + for file_name in file_names: + if not file_name.endswith(suffix): + continue + if relative_root == "." or os.sep in relative_root: + raise ValueError( + f"Malformed Cityscapes {source_name} path: " + f"{os.path.relpath(os.path.join(current_root, file_name), split_dir)}." + ) + sample_id = file_name.removesuffix(suffix) + match = CITYSCAPES_SAMPLE_ID_PATTERN.fullmatch(sample_id) + if match is None or match.group("city") != relative_root: + raise ValueError( + f"Malformed Cityscapes {source_name} filename: {file_name}." + ) + if sample_id in files: + raise ValueError( + f"Duplicate Cityscapes {source_name} sample ID: {sample_id}." + ) + files[sample_id] = os.path.join(current_root, file_name) + return files + + +def organize_cityscapes( + image_dir: str, + annotation_dir: str, + output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/cityscapes"), +) -> None: + """Install official Cityscapes validation archives as lossless flat PNG pairs. + + Only validation RGB images and ``gtFine_labelIds`` masks are selected. + Training, test, and auxiliary annotation files remain excluded. + + Args: + image_dir: Path to ``leftImg8bit_trainvaltest.zip``. + annotation_dir: Path to ``gtFine_trainvaltest.zip``. + output_dir: Directory where the organized validation dataset is stored. + + Raises: + ValueError: If either source is invalid or does not contain exactly 500 matching pairs. + OSError: If extraction, copying, or atomic installation fails. + """ + + output_dir = _validate_dense_output_root( + output_dir, "Cityscapes", ("images", "annotations") + ) + image_archive = _validate_cityscapes_zip(image_dir, "image") + annotation_archive = _validate_cityscapes_zip(annotation_dir, "annotation") + output_parent_dir = os.path.dirname(output_dir) + os.makedirs(output_parent_dir, exist_ok=True) + with TemporaryDirectory( + dir=output_parent_dir, prefix=".cityscapes-staging-" + ) as staging_dir: + extracted_image_dir = os.path.join(staging_dir, "raw-images") + extracted_annotation_dir = os.path.join(staging_dir, "raw-annotations") + _safe_unpack_archive(image_archive, extracted_image_dir) + _safe_unpack_archive(annotation_archive, extracted_annotation_dir) + images = _collect_cityscapes_validation_files( + os.path.join(extracted_image_dir, "leftImg8bit", "val"), + CITYSCAPES_IMAGE_SUFFIX, + "image", + ) + annotations = _collect_cityscapes_validation_files( + os.path.join(extracted_annotation_dir, "gtFine", "val"), + CITYSCAPES_ANNOTATION_SUFFIX, + "annotation", + ) + missing_annotations = sorted(images.keys() - annotations.keys()) + missing_images = sorted(annotations.keys() - images.keys()) + if missing_annotations or missing_images: + details = [] + if missing_annotations: + details.append( + f"missing annotations for {', '.join(missing_annotations[:3])}" + ) + if missing_images: + details.append(f"missing images for {', '.join(missing_images[:3])}") + raise ValueError( + f"Cityscapes validation image/annotation mismatch ({'; '.join(details)})." + ) + if len(images) != CITYSCAPES_VALIDATION_SAMPLE_COUNT: + raise ValueError( + "Cityscapes validation archives must contain " + f"{CITYSCAPES_VALIDATION_SAMPLE_COUNT} pairs, found {len(images)}." + ) + + staged_image_dir = os.path.join(staging_dir, "images") + staged_annotation_dir = os.path.join(staging_dir, "annotations") + os.makedirs(staged_image_dir) + os.makedirs(staged_annotation_dir) + for sample_id in sorted(images): + shutil.copy2( + images[sample_id], os.path.join(staged_image_dir, f"{sample_id}.png") + ) + shutil.copy2( + annotations[sample_id], + os.path.join(staged_annotation_dir, f"{sample_id}.png"), + ) + + replacements = ( + (staged_image_dir, os.path.join(output_dir, "images")), + (staged_annotation_dir, os.path.join(output_dir, "annotations")), + ) + os.makedirs(output_dir, exist_ok=True) + _replace_staged_directories( + replacements, output_parent_dir, ".cityscapes-backup-" + ) + print( + f"Constructed Cityscapes validation dataset with {len(images)} image/mask pairs" + ) + + +def _resolve_dotav1_root(dataset_dir: str) -> str: + """Resolves a DOTAv1 dataset root from a directory path. + + Args: + dataset_dir: Directory containing the DOTAv1 dataset or its parent. + + Returns: + Path to the DOTAv1 dataset root. + """ + dotav1_dir = os.path.join(dataset_dir, "DOTAv1") + if os.path.isdir(dotav1_dir): + return dotav1_dir + return dataset_dir + + +def _is_google_drive_folder_url(path_or_url: str) -> bool: + """Returns whether a URL points to a Google Drive folder.""" + + parsed = urlparse(path_or_url) + return parsed.hostname == "drive.google.com" and bool( + re.fullmatch(r"/drive(?:/u/[^/]+)?/folders/[^/]+/?", parsed.path) + ) + + +def _download_dotav1_google_drive_archives( + folder_url: str, download_dir: str +) -> tuple[str, str]: + """Downloads the DOTAv1 image and v1.0-label archives from a Google Drive folder. + + Args: + folder_url: Public Google Drive folder URL containing the DOTAv1 archives. + download_dir: Directory where the selected archives will be stored. + + Returns: + Paths to the image archive and original v1.0-label archive. + + Raises: + ValueError: If the required archives are absent from the Drive folder. + RuntimeError: If gdown fails to download a required archive. + """ + + print(f"Retrieving DOTAv1 archive list from {folder_url}...") + folder_entries = download_folder( + url=folder_url, output=download_dir, quiet=True, skip_download=True + ) + if folder_entries is None: + raise RuntimeError( + f"Failed to retrieve the DOTAv1 Google Drive folder listing: {folder_url}" + ) + files = [ + entry for entry in folder_entries if _is_google_drive_download_entry(entry) + ] + archives: dict[str, _GoogleDriveDownloadEntry] = {} + for archive_path in DOTAV1_GOOGLE_DRIVE_ARCHIVES: + matches = [ + drive_file + for drive_file in files + if drive_file.path == archive_path + or drive_file.path.endswith(f"/{archive_path}") + ] + if len(matches) == 1: + archives[archive_path] = matches[0] + continue + + available = ", ".join(sorted(drive_file.path for drive_file in files)) or "none" + if not matches: + raise ValueError( + f"DOTAv1 Drive folder is missing {archive_path}. Available files: {available}." + ) + ambiguous = ", ".join(sorted(drive_file.path for drive_file in matches)) + raise ValueError( + f"DOTAv1 Drive folder has ambiguous matches for {archive_path}: {ambiguous}." + ) + + local_archives: dict[str, str] = {} + for archive_path in sorted(DOTAV1_GOOGLE_DRIVE_ARCHIVES): + drive_file = archives[archive_path] + local_path = os.path.join(download_dir, os.path.basename(archive_path)) + print(f"Downloading DOTAv1 {archive_path}...") + downloaded_path = download( + id=drive_file.id, output=local_path, quiet=False, resume=True + ) + if not isinstance(downloaded_path, str): + raise RuntimeError( + f"Failed to download DOTAv1 archive {archive_path} from {folder_url}." + ) + local_archives[archive_path] = downloaded_path + + return ( + local_archives[DOTAV1_DOWNLOAD_CONFIG["images_archive"]], + local_archives[DOTAV1_DOWNLOAD_CONFIG["labels_archive"]], + ) + + +def _iter_files(root: str, extensions: Iterable[str]) -> Iterable[str]: + """Yields files below a directory with one of the requested suffixes.""" + + suffixes = tuple(extension.lower() for extension in extensions) + for current_root, _, file_names in os.walk(root): + for file_name in file_names: + if file_name.lower().endswith(suffixes): + yield os.path.join(current_root, file_name) + + +def _safe_archive_member_path(member_name: str, destination: str) -> str: + """Return an archive member destination after enforcing staging-directory containment. + + Args: + member_name: Path stored in an archive member. + destination: Archive extraction directory. + + Returns: + Absolute destination path for the member. + + Raises: + ValueError: If the member path is absolute or escapes the extraction directory. + """ + + root = os.path.abspath(destination) + target = os.path.abspath(os.path.join(root, member_name)) + if os.path.commonpath((root, target)) != root: + raise ValueError(f"Unsafe archive member path: {member_name!r}.") + return target + + +def _safe_unpack_archive(archive_path: str, destination: str) -> None: + """Extract an archive while rejecting links, special files, and escaping paths. + + Args: + archive_path: ZIP or tar-family dataset archive. + destination: Empty staging directory where archive members are written. + + Raises: + ValueError: If the archive format or any member is unsafe or unsupported. + OSError: If a validated archive cannot be read or written. + """ + + if zipfile.is_zipfile(archive_path): + with zipfile.ZipFile(archive_path) as archive: + members = archive.infolist() + for member in members: + _safe_archive_member_path(member.filename, destination) + file_type = stat.S_IFMT(member.external_attr >> 16) + if file_type and not ( + stat.S_ISREG(file_type) or stat.S_ISDIR(file_type) + ): + raise ValueError( + f"Unsafe archive member type: {member.filename!r}." + ) + for member in members: + target = _safe_archive_member_path(member.filename, destination) + if member.is_dir(): + os.makedirs(target, exist_ok=True) + continue + os.makedirs(os.path.dirname(target), exist_ok=True) + with archive.open(member) as source, open(target, "wb") as output_file: + shutil.copyfileobj(source, output_file) + return + + if tarfile.is_tarfile(archive_path): + with tarfile.open(archive_path) as archive: + members = archive.getmembers() + for member in members: + _safe_archive_member_path(member.name, destination) + if not (member.isfile() or member.isdir()): + raise ValueError(f"Unsafe archive member type: {member.name!r}.") + for member in members: + target = _safe_archive_member_path(member.name, destination) + if member.isdir(): + os.makedirs(target, exist_ok=True) + continue + source = archive.extractfile(member) + if source is None: + raise ValueError(f"Unable to read archive member: {member.name!r}.") + os.makedirs(os.path.dirname(target), exist_ok=True) + with source, open(target, "wb") as output_file: + shutil.copyfileobj(source, output_file) + return + + raise ValueError(f"Unsupported archive format: {archive_path}.") + + +def _write_dotav1_yolo_labels( + image_path: str, original_label_path: str, output_path: str +) -> None: + """Converts one official DOTAv1 label file into normalized OBB label format.""" + + with Image.open(image_path) as image: + width, height = image.size + converted_lines: list[str] = [] + with open(original_label_path, encoding="utf-8") as label_file: + for line in label_file: + fields = line.split() + if ( + len(fields) < 10 + or fields[0].startswith("imagesource:") + or fields[0].startswith("gsd:") + ): + continue + # Official DOTAv1 labels use ``1`` for difficult objects. Keep ``2`` + # ignored for compatibility with previously supported label exports. + if fields[9] in {"1", "2"}: + continue + class_name = fields[8] + if class_name not in DOTAV1_CLASS_TO_IDX: + raise ValueError( + f"Unsupported DOTAv1 class in {original_label_path}: {class_name}" + ) + coordinates = [float(value) for value in fields[:8]] + normalized = [ + coordinate / (width if index % 2 == 0 else height) + for index, coordinate in enumerate(coordinates) + ] + converted_lines.append( + f"{DOTAV1_CLASS_TO_IDX[class_name]} " + + " ".join(f"{coordinate:.8g}" for coordinate in normalized) + ) + with open(output_path, "w", encoding="utf-8") as output_file: + output_file.write("\n".join(converted_lines)) + if converted_lines: + output_file.write("\n") + + +def construct_dotav1_from_archives( + image_archive: str, label_archive: str, output_dir: str +) -> None: + """Constructs the DOTAv1 validation layout from the Google Drive archives. + + Args: + image_archive: Path to the DOTAv1 validation-image archive. + label_archive: Path to the original DOTAv1 v1.0 label archive. + output_dir: Directory where the organized validation dataset will be stored. + + Raises: + ValueError: If the archives have no validation files or their image and label stems differ. + OSError: If staging or replacing the organized dataset files fails. + """ + + with TemporaryDirectory() as extract_dir: + image_dir = os.path.join(extract_dir, "images") + label_dir = os.path.join(extract_dir, "labels") + _safe_unpack_archive(image_archive, image_dir) + _safe_unpack_archive(label_archive, label_dir) + + labels = { + os.path.splitext(os.path.basename(path))[0]: path + for path in _iter_files(label_dir, [".txt"]) + } + if not labels: + raise ValueError(f"No DOTAv1 label files found in {label_archive}.") + + images = { + os.path.splitext(os.path.basename(path))[0]: path + for path in _iter_files( + image_dir, [".bmp", ".jpg", ".jpeg", ".png", ".tif", ".tiff"] + ) + } + image_ids = set(images) + label_ids = set(labels) + missing_labels = sorted(image_ids - label_ids) + missing_images = sorted(label_ids - image_ids) + if missing_labels or missing_images: + details = [] + if missing_labels: + details.append( + f"images without labels: {', '.join(missing_labels[:5])}" + ) + if missing_images: + details.append( + f"labels without images: {', '.join(missing_images[:5])}" + ) + raise ValueError(f"DOTAv1 archive stem mismatch ({'; '.join(details)}).") + matching_ids = sorted(image_ids) + if len(matching_ids) != DOTAV1_VALIDATION_SAMPLE_COUNT: + raise ValueError( + "DOTAv1 validation dataset must contain " + f"{DOTAV1_VALIDATION_SAMPLE_COUNT} matching image/label pairs, found {len(matching_ids)}." + ) + + output_dir = os.path.abspath(output_dir) + output_parent_dir = os.path.dirname(output_dir) + os.makedirs(output_parent_dir, exist_ok=True) + with TemporaryDirectory( + dir=output_parent_dir, prefix=".dotav1-staging-" + ) as staging_dir: + staged_output_dir = os.path.join(staging_dir, "dotav1") + staged_image_dir = os.path.join(staged_output_dir, "images") + staged_label_dir = os.path.join(staged_output_dir, "labels", "val") + staged_original_label_dir = os.path.join( + staged_output_dir, "labels", "val_original" + ) + os.makedirs(staged_image_dir) + os.makedirs(staged_label_dir) + os.makedirs(staged_original_label_dir) + + for image_id in matching_ids: + image_path = images[image_id] + shutil.copy2( + image_path, + os.path.join(staged_image_dir, os.path.basename(image_path)), + ) + + for image_id in matching_ids: + shutil.copy2( + labels[image_id], + os.path.join(staged_original_label_dir, f"{image_id}.txt"), + ) + _write_dotav1_yolo_labels( + images[image_id], + labels[image_id], + os.path.join(staged_label_dir, f"{image_id}.txt"), + ) + + _validate_staged_dataset(staged_output_dir, "dotav1", ("obb",)) + _replace_staged_directories( + ((staged_output_dir, output_dir),), + output_parent_dir, + ".dotav1-backup-", + ) + + print(f"Constructed DOTAv1 validation dataset with {len(matching_ids)} images") + + +def _copy_dotav1_layout_to_staging(dataset_root: str, staged_output_dir: str) -> None: + """Copy a flat or legacy DOTAv1 validation layout into canonical staging.""" + + image_root = os.path.join(dataset_root, "images") + supported_image_suffixes = (".jpg", ".jpeg", ".png", ".bmp", ".tif", ".tiff") + flat_image_files = ( + [ + file_name + for file_name in os.listdir(image_root) + if os.path.isfile(os.path.join(image_root, file_name)) + and file_name.lower().endswith(supported_image_suffixes) + ] + if os.path.isdir(image_root) + else [] + ) + source_image_dir = ( + image_root if flat_image_files else os.path.join(image_root, "val") + ) + if not os.path.isdir(source_image_dir): + raise ValueError(f"No DOTAv1 validation images found in {dataset_root}") + + staged_image_dir = os.path.join(staged_output_dir, "images") + os.makedirs(staged_image_dir) + for file_name in os.listdir(source_image_dir): + source_path = os.path.join(source_image_dir, file_name) + if os.path.isfile(source_path) and file_name.lower().endswith( + supported_image_suffixes + ): + shutil.copy2(source_path, os.path.join(staged_image_dir, file_name)) + + for label_directory in ("val", "val_original"): + source_label_dir = os.path.join(dataset_root, "labels", label_directory) + if not os.path.isdir(source_label_dir): + continue + staged_label_dir = os.path.join(staged_output_dir, "labels", label_directory) + os.makedirs(staged_label_dir, exist_ok=True) + for file_name in os.listdir(source_label_dir): + source_path = os.path.join(source_label_dir, file_name) + if os.path.isfile(source_path) and file_name.lower().endswith(".txt"): + shutil.copy2(source_path, os.path.join(staged_label_dir, file_name)) + + +def construct_dotav1(dataset_dir: str, output_dir: str) -> None: + """Constructs a validation-only DOTAv1 dataset. + + Args: + dataset_dir: Directory containing a DOTAv1 dataset or its parent. + output_dir: Directory where the organized validation dataset will be stored. + + Raises: + ValueError: If the staged validation dataset is incomplete or mismatched. + OSError: If staging or replacing the organized dataset files fails. + """ + dataset_root = _resolve_dotav1_root(dataset_dir) + print(f"Constructing DOTAv1 validation dataset from {dataset_root} to {output_dir}") + output_dir = os.path.abspath(output_dir) + output_parent_dir = os.path.dirname(output_dir) + os.makedirs(output_parent_dir, exist_ok=True) + with TemporaryDirectory( + dir=output_parent_dir, prefix=".dotav1-staging-" + ) as staging_dir: + staged_output_dir = os.path.join(staging_dir, "dotav1") + os.makedirs(staged_output_dir) + _copy_dotav1_layout_to_staging(dataset_root, staged_output_dir) + _validate_staged_dataset(staged_output_dir, "dotav1", ("obb",)) + _replace_staged_directories( + ((staged_output_dir, output_dir),), + output_parent_dir, + ".dotav1-backup-", + ) + + print("Constructing DOTAv1 validation dataset completed") + + +def organize_dotav1( + dataset_path: str, + output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/dotav1"), +) -> None: + """Organizes a validation-only DOTAv1 dataset. + + Args: + dataset_path: Path or URL to the DOTAv1 zip file or extracted dataset directory. + output_dir: Directory to store the organized dataset. + """ + with TemporaryDirectory() as temp_dir: + if _is_google_drive_folder_url(dataset_path): + image_archive, label_archive = _download_dotav1_google_drive_archives( + dataset_path, temp_dir + ) + construct_dotav1_from_archives(image_archive, label_archive, output_dir) + return + + local_dataset_path = _resolve_source(dataset_path, temp_dir) + + if local_dataset_path.endswith(".zip"): + print("Unpacking DOTAv1 files to temporary directory...") + _safe_unpack_archive(local_dataset_path, temp_dir) + print("Unpacking completed") + construct_dotav1(temp_dir, output_dir) + return + + construct_dotav1(local_dataset_path, output_dir) diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py new file mode 100644 index 0000000..fdcea72 --- /dev/null +++ b/mblt_vision/utils/datasets/readiness.py @@ -0,0 +1,368 @@ +"""Identity and completeness checks for organized vision validation datasets.""" + +from __future__ import annotations + +import json +import os +import re +from pathlib import Path +from typing import Any + +import numpy as np +from scipy.io import loadmat +from scipy.io.matlab import MatReadError + +from ..._tasks import normalize_vision_task + +IMAGE_SUFFIXES = {".bmp", ".jpeg", ".jpg", ".png", ".tif", ".tiff", ".webp"} +IMAGENET_CLASS_COUNT = 1000 +IMAGENET_IMAGES_PER_CLASS = 50 +COCO_VALIDATION_SAMPLE_COUNT = 5000 +DOTAV1_VALIDATION_SAMPLE_COUNT = 458 +WIDERFACE_EVENT_COUNT = 61 +WIDERFACE_VALIDATION_SAMPLE_COUNT = 3226 +NYU_DEPTH_VALIDATION_SAMPLE_COUNT = 654 +ADE20K_VALIDATION_SAMPLE_COUNT = 2000 +CITYSCAPES_VALIDATION_SAMPLE_COUNT = 500 +ADE20K_METADATA_FILES = ("objectInfo150.txt", "sceneCategories.txt") +IMAGENET_CLASS_PATTERN = re.compile(r"n\d{8}") +IMAGENET_IMAGE_PATTERN = re.compile(r"ILSVRC2012_val_\d{8}") +COCO_IMAGE_PATTERN = re.compile(r"\d{12}") +WIDERFACE_EVENT_PATTERN = re.compile(r"\d+--\S.*") +CITYSCAPES_SAMPLE_ID_PATTERN = re.compile( + r"^(?P[A-Za-z][A-Za-z0-9-]*)_\d{6}_\d{6}$" +) + + +def _path_has_symlink_component(path: Path) -> bool: + """Return whether a path traversal or its normalized ancestors contain a symlink.""" + + expanded_path = path.expanduser() + traversal_path = ( + expanded_path if expanded_path.is_absolute() else Path.cwd() / expanded_path + ) + normalized_path = Path(os.path.abspath(expanded_path)) + candidates = ( + traversal_path, + *traversal_path.parents, + normalized_path, + *normalized_path.parents, + ) + return any(component.is_symlink() for component in candidates) + + +def _files_by_stem( + directory: Path, + suffixes: set[str], + *, + reject_symlinks: bool = False, +) -> dict[str, Path] | None: + """Collect direct child files with supported suffixes by stem. + + Args: + directory: Directory containing candidate files. + suffixes: Accepted lowercase file suffixes. + reject_symlinks: Whether any symlinked directory or entry invalidates + the file collection. + + Returns: + Files keyed by stem, an empty mapping for a missing directory, or + ``None`` for duplicate stems or rejected symlinks. + """ + + if (reject_symlinks and directory.is_symlink()) or not directory.is_dir(): + return {} + entries = list(directory.iterdir()) + if reject_symlinks and any(path.is_symlink() for path in entries): + return None + paths = [ + path for path in entries if path.is_file() and path.suffix.lower() in suffixes + ] + files = {path.stem: path for path in paths} + return files if len(files) == len(paths) else None + + +def _imagenet_ready(root: Path) -> bool: + """Check the organizer's complete ImageNet-1k validation class tree.""" + + if not root.is_dir(): + return False + class_dirs = [path for path in root.iterdir() if path.is_dir()] + if len(class_dirs) != IMAGENET_CLASS_COUNT: + return False + image_names: set[str] = set() + for class_dir in class_dirs: + if IMAGENET_CLASS_PATTERN.fullmatch(class_dir.name) is None: + return False + images = [ + path + for path in class_dir.iterdir() + if path.is_file() and path.suffix.lower() in IMAGE_SUFFIXES + ] + if len(images) != IMAGENET_IMAGES_PER_CLASS or any( + path.suffix != ".JPEG" + or IMAGENET_IMAGE_PATTERN.fullmatch(path.stem) is None + for path in images + ): + return False + image_names.update(path.name for path in images) + return len(image_names) == IMAGENET_CLASS_COUNT * IMAGENET_IMAGES_PER_CLASS + + +def _load_coco_image_names(annotation_path: Path) -> set[str] | None: + """Load unique validation image filenames from a COCO annotation file.""" + + try: + annotation: Any = json.loads(annotation_path.read_text(encoding="utf-8")) + except (json.JSONDecodeError, OSError, UnicodeError): + return None + image_records = annotation.get("images") if isinstance(annotation, dict) else None + if ( + not isinstance(image_records, list) + or len(image_records) != COCO_VALIDATION_SAMPLE_COUNT + ): + return None + names: list[str] = [] + for record in image_records: + if not isinstance(record, dict): + continue + file_name = record.get("file_name") + if isinstance(file_name, str): + names.append(file_name) + return set(names) if len(names) == len(image_records) == len(set(names)) else None + + +def _coco_ready(root: Path, task: str) -> bool: + """Check the complete COCO 2017 image split and task annotation metadata.""" + + annotation_name = ( + "person_keypoints_val2017.json" + if task == "pose_estimation" + else "instances_val2017.json" + ) + annotation_names = _load_coco_image_names(root / annotation_name) + if annotation_names is None: + return False + image_dir = root / "val2017" + if not image_dir.is_dir(): + return False + image_paths = [ + path + for path in image_dir.iterdir() + if path.is_file() and path.suffix.lower() in IMAGE_SUFFIXES + ] + if len(image_paths) != COCO_VALIDATION_SAMPLE_COUNT or any( + path.suffix.lower() != ".jpg" or COCO_IMAGE_PATTERN.fullmatch(path.stem) is None + for path in image_paths + ): + return False + return {path.name for path in image_paths} == annotation_names + + +def _dotav1_ready(root: Path) -> bool: + """Check complete paired DOTAv1 validation images and labels.""" + + flat_image_dir = root / "images" + flat_images = _files_by_stem(flat_image_dir, IMAGE_SUFFIXES) + if flat_images is None: + return False + image_dir = flat_image_dir if flat_images else flat_image_dir / "val" + images = flat_images if flat_images else _files_by_stem(image_dir, IMAGE_SUFFIXES) + if images is None or len(images) != DOTAV1_VALIDATION_SAMPLE_COUNT: + return False + + normalized_labels = _files_by_stem(root / "labels" / "val", {".txt"}) + original_labels = _files_by_stem(root / "labels" / "val_original", {".txt"}) + if normalized_labels is None or original_labels is None: + return False + label_stems = normalized_labels.keys() | original_labels.keys() + return images.keys() == label_stems + + +def _widerface_ready(root: Path) -> bool: + """Check the complete WiderFace validation image tree and metadata files.""" + + required_files = ( + "wider_face_val.mat", + "wider_easy_val.mat", + "wider_medium_val.mat", + "wider_hard_val.mat", + ) + if not all((root / file_name).is_file() for file_name in required_files): + return False + expected_images = _load_widerface_image_names(root / "wider_face_val.mat") + if expected_images is None: + return False + image_root = root / "images" + if not image_root.is_dir(): + return False + event_dirs = [path for path in image_root.iterdir() if path.is_dir()] + if len(event_dirs) != WIDERFACE_EVENT_COUNT or any( + WIDERFACE_EVENT_PATTERN.fullmatch(path.name) is None for path in event_dirs + ): + return False + if {path.name for path in event_dirs} != expected_images.keys(): + return False + actual_images = { + event_dir.name: { + path.name + for path in event_dir.iterdir() + if path.is_file() and path.suffix.lower() in IMAGE_SUFFIXES + } + for event_dir in event_dirs + } + return ( + actual_images == expected_images + and sum(len(image_names) for image_names in actual_images.values()) + == WIDERFACE_VALIDATION_SAMPLE_COUNT + ) + + +def _flatten_matlab_strings(value: Any) -> list[str]: + """Flatten strings stored inside nested MATLAB cell arrays.""" + + if isinstance(value, (str, np.str_)): + return [str(value)] + if isinstance(value, np.ndarray): + strings: list[str] = [] + for item in value.flat: + strings.extend(_flatten_matlab_strings(item)) + return strings + return [] + + +def _load_widerface_image_names(annotation_path: Path) -> dict[str, set[str]] | None: + """Load exact event and image identities from WiderFace validation metadata.""" + + try: + annotation = loadmat(annotation_path) + event_list = annotation["event_list"] + file_list = annotation["file_list"] + except (IndexError, KeyError, MatReadError, OSError, TypeError, ValueError): + return None + if len(event_list) != len(file_list): + return None + + expected: dict[str, set[str]] = {} + for event_cell, file_cell in zip(event_list, file_list, strict=True): + event_names = _flatten_matlab_strings(event_cell) + image_stems = _flatten_matlab_strings(file_cell) + if ( + len(event_names) != 1 + or not image_stems + or len(image_stems) != len(set(image_stems)) + or WIDERFACE_EVENT_PATTERN.fullmatch(event_names[0]) is None + or any(not stem or Path(stem).name != stem for stem in image_stems) + or event_names[0] in expected + ): + return None + expected[event_names[0]] = {f"{stem}.jpg" for stem in image_stems} + if len(expected) != WIDERFACE_EVENT_COUNT: + return None + return expected + + +def dense_dataset_ready(data_path: str | Path, dataset: str) -> bool: + """Return whether a dense dataset matches its taxonomy and full validation split. + + Args: + data_path: Organized dataset root. + dataset: Dense validation taxonomy. + + Returns: + Whether the dataset has the expected filename identity, matched targets, + and complete validation sample count. + """ + + root = Path(data_path).expanduser() + if _path_has_symlink_component(root) or not root.is_dir(): + return False + normalized = dataset.lower() + if normalized == "nyu-depth": + images = _files_by_stem( + root / "images", {".jpg", ".jpeg", ".png"}, reject_symlinks=True + ) + depths = _files_by_stem(root / "depth", {".npy"}, reject_symlinks=True) + if images is None or depths is None: + return False + return ( + len(images) == NYU_DEPTH_VALIDATION_SAMPLE_COUNT + and len(depths) == NYU_DEPTH_VALIDATION_SAMPLE_COUNT + and images.keys() == depths.keys() + ) + + images = _files_by_stem( + root / "images", {".jpg", ".jpeg", ".png"}, reject_symlinks=True + ) + annotations = _files_by_stem(root / "annotations", {".png"}, reject_symlinks=True) + if images is None or annotations is None or images.keys() != annotations.keys(): + return False + + if normalized == "ade20k": + return ( + len(images) == ADE20K_VALIDATION_SAMPLE_COUNT + and all(stem.startswith("ADE_val_") for stem in images) + and all( + path.suffix.lower() in {".jpg", ".jpeg"} for path in images.values() + ) + and all( + not (root / file_name).is_symlink() and (root / file_name).is_file() + for file_name in ADE20K_METADATA_FILES + ) + ) + if normalized == "cityscapes": + return ( + len(images) == CITYSCAPES_VALIDATION_SAMPLE_COUNT + and all( + CITYSCAPES_SAMPLE_ID_PATTERN.fullmatch(stem) is not None + for stem in images + ) + and all(path.suffix.lower() == ".png" for path in images.values()) + ) + return False + + +def dataset_ready(data_path: str | Path, task: str, dataset: str | None = None) -> bool: + """Return whether an organized dataset matches its task, taxonomy, and full validation split. + + Args: + data_path: Organized dataset root. + task: Canonical vision task. + dataset: Optional validation taxonomy. + + Returns: + Whether the dataset has the expected identity, metadata, and sample count. + """ + + root = Path(data_path).expanduser() + normalized_task = normalize_vision_task(task) + expected_dataset = { + "image_classification": "imagenet", + "object_detection": "coco", + "instance_segmentation": "coco", + "pose_estimation": "coco", + "face_detection": "widerface", + "obb": "dotav1", + "depth_estimation": "nyu-depth", + }.get(normalized_task) + normalized_dataset = (dataset or expected_dataset or "").lower() + + if normalized_task == "semantic_segmentation": + return dense_dataset_ready(root, normalized_dataset or "ade20k") + if expected_dataset is None or normalized_dataset != expected_dataset: + return False + if normalized_task == "image_classification": + return _imagenet_ready(root) + if normalized_task in { + "object_detection", + "instance_segmentation", + "pose_estimation", + }: + return _coco_ready(root, normalized_task) + if normalized_task == "face_detection": + return _widerface_ready(root) + if normalized_task == "obb": + return _dotav1_ready(root) + if normalized_task == "depth_estimation": + return dense_dataset_ready(root, normalized_dataset) + return False diff --git a/mblt_vision/utils/evaluation/__init__.py b/mblt_vision/utils/evaluation/__init__.py new file mode 100644 index 0000000..21b2916 --- /dev/null +++ b/mblt_vision/utils/evaluation/__init__.py @@ -0,0 +1,51 @@ +""" +Evaluation scripts for various datasets. +""" + +from __future__ import annotations + +from ._result import EvaluationResult +from .eval_ade20k import ( + ADE20KResult, + SemanticMetricAccumulator, + SemanticSegmentationResult, + calculate_semantic_metrics, + eval_ade20k, + eval_semantic_segmentation, +) +from .eval_cityscapes import eval_cityscapes +from .eval_coco import COCOResult, eval_coco, eval_coco_metrics +from .eval_dota import DOTAResult, eval_dota +from .eval_imagenet import ImageNetResult, eval_imagenet, eval_imagenet_metrics +from .eval_nyu_depth import ( + NYUDepthMetricAccumulator, + NYUDepthResult, + calculate_nyu_depth_metrics, + eval_nyu_depth, +) +from .eval_widerface import WiderFaceResult, eval_widerface + +__all__: list[str] = [ + "eval_coco", + "eval_coco_metrics", + "COCOResult", + "EvaluationResult", + "ADE20KResult", + "SemanticMetricAccumulator", + "SemanticSegmentationResult", + "calculate_semantic_metrics", + "eval_ade20k", + "eval_cityscapes", + "eval_semantic_segmentation", + "DOTAResult", + "eval_dota", + "ImageNetResult", + "eval_imagenet", + "eval_imagenet_metrics", + "NYUDepthResult", + "NYUDepthMetricAccumulator", + "calculate_nyu_depth_metrics", + "eval_nyu_depth", + "WiderFaceResult", + "eval_widerface", +] diff --git a/mblt_vision/utils/evaluation/_result.py b/mblt_vision/utils/evaluation/_result.py new file mode 100644 index 0000000..2e8c202 --- /dev/null +++ b/mblt_vision/utils/evaluation/_result.py @@ -0,0 +1,22 @@ +"""Shared structural contract for Vision evaluator results.""" + +from __future__ import annotations + +from typing import Protocol, runtime_checkable + + +@runtime_checkable +class EvaluationResult(Protocol): + """Result object exposing the primary and secondary benchmark scores.""" + + @property + def primary_score(self) -> float: + """Return the evaluator's primary score.""" + + ... + + @property + def secondary_score(self) -> float: + """Return the evaluator's secondary score.""" + + ... diff --git a/mblt_vision/utils/evaluation/eval_ade20k.py b/mblt_vision/utils/evaluation/eval_ade20k.py new file mode 100644 index 0000000..7e97237 --- /dev/null +++ b/mblt_vision/utils/evaluation/eval_ade20k.py @@ -0,0 +1,290 @@ +"""ADE20K evaluation for semantic-segmentation models.""" + +from __future__ import annotations + +from typing import TYPE_CHECKING, NamedTuple + +import numpy as np +import torch +from tqdm import tqdm + +from ..datasets import ( + CustomADE20K, + CustomCityscapes, + get_ade20k_loader, + get_cityscapes_loader, +) + +if TYPE_CHECKING: + from ...wrapper import MBLT_Engine + + +class SemanticSegmentationResult(NamedTuple): + """Generic semantic metrics ordered from primary to secondary.""" + + miou: float + pixel_accuracy: float + + @property + def primary_score(self) -> float: + """Return mean intersection-over-union.""" + + return self.miou + + @property + def secondary_score(self) -> float: + """Return overall valid-pixel accuracy.""" + + return self.pixel_accuracy + + +ADE20KResult = SemanticSegmentationResult + + +class SemanticMetricAccumulator: + """Accumulate an ignore-aware semantic confusion matrix.""" + + def __init__(self, nc: int, ignore_label: int = 255) -> None: + """Initialize an empty confusion matrix. + + Args: + nc: Number of semantic classes. + ignore_label: Target label excluded from metrics. + """ + + self.nc = nc + self.ignore_label = ignore_label + self.matrix = np.zeros((nc, nc), dtype=np.int64) + + def update(self, prediction: np.ndarray, target: np.ndarray) -> None: + """Accumulate one or more predicted and target class maps. + + Args: + prediction: Predicted class maps. + target: Target class maps with optional ignore labels. + + Raises: + ValueError: If prediction and target shapes differ. + """ + + prediction = np.asarray(prediction) + target = np.asarray(target) + if prediction.shape != target.shape: + raise ValueError( + f"Semantic prediction and target shapes must match, got {prediction.shape} and {target.shape}." + ) + valid_target = ( + (target != self.ignore_label) & (target >= 0) & (target < self.nc) + ) + valid_prediction = ( + np.isfinite(prediction) + & (prediction >= 0) + & (prediction < self.nc) + & (prediction == np.floor(prediction)) + ) + invalid_prediction = valid_target & ~valid_prediction + if invalid_prediction.any(): + invalid_values = np.unique(prediction[invalid_prediction]) + raise ValueError( + f"Semantic predictions at valid target pixels must be finite class IDs in [0, {self.nc - 1}], " + f"got {invalid_values.tolist()}." + ) + if valid_target.any(): + histogram = np.bincount( + self.nc * target[valid_target].astype(np.int64) + + prediction[valid_target].astype(np.int64), + minlength=self.nc**2, + ) + self.matrix += histogram.reshape(self.nc, self.nc) + + def result(self) -> SemanticSegmentationResult: + """Compute mIoU over present classes and overall pixel accuracy. + + Returns: + Pooled semantic-segmentation metrics. + + Raises: + ValueError: If no valid target pixels were accumulated. + """ + + ground_truth = self.matrix.sum(axis=1) + predicted = self.matrix.sum(axis=0) + intersection = np.diag(self.matrix) + union = ground_truth + predicted - intersection + present = ground_truth > 0 + if not present.any(): + raise ValueError("Semantic evaluation received no valid target pixels.") + iou = np.divide( + intersection, + union, + out=np.zeros(self.nc, dtype=np.float64), + where=union > 0, + ) + total = int(self.matrix.sum()) + return SemanticSegmentationResult( + miou=float(iou[present].mean()), + pixel_accuracy=float(intersection.sum() / total), + ) + + +def calculate_semantic_metrics( + prediction: np.ndarray, + target: np.ndarray, + nc: int = 150, + ignore_label: int = 255, +) -> ADE20KResult: + """Calculate semantic metrics for one batch of class maps. + + Args: + prediction: Predicted class maps. + target: Target class maps. + nc: Number of semantic classes. + ignore_label: Target label excluded from metrics. + + Returns: + Semantic metrics exposed through the ADE20K compatibility alias. + + Raises: + ValueError: If shapes differ or no valid target pixels are present. + """ + + accumulator = SemanticMetricAccumulator(nc=nc, ignore_label=ignore_label) + accumulator.update(prediction, target) + return accumulator.result() + + +def _evaluate_semantic_loader( + model: MBLT_Engine, + loader: torch.utils.data.DataLoader, + nc: int, + description: str = "Evaluating semantic segmentation", +) -> SemanticSegmentationResult: + """Evaluate input-space semantic maps from an organized validation loader. + + Args: + model: Initialized semantic-segmentation engine. + loader: Organized validation data loader. + nc: Number of semantic classes. + description: Progress-bar description. + + Returns: + Pooled semantic-segmentation metrics. + + Raises: + ValueError: If postprocessing returns no class maps or no valid targets exist. + """ + + accumulator = SemanticMetricAccumulator(nc=nc) + for inputs, targets, _, _, _ in tqdm(loader, desc=description): + result = model.postprocess(model(inputs)) + semantic_mask = result.semantic_mask + if semantic_mask is None: + raise ValueError("Semantic postprocessor returned no class maps.") + prediction = ( + semantic_mask.detach().cpu().numpy() + if isinstance(semantic_mask, torch.Tensor) + else semantic_mask + ) + accumulator.update(np.asarray(prediction), targets) + return accumulator.result() + + +def eval_semantic_segmentation( + model: MBLT_Engine, + data_path: str, + batch_size: int, + dataset: str | None = None, +) -> SemanticSegmentationResult: + """Evaluate a semantic model with the loader for its configured taxonomy. + + Args: + model: Initialized semantic-segmentation engine. + data_path: Organized dataset root. + batch_size: Number of validation samples per inference batch. + dataset: Optional taxonomy override. Defaults to ``model.post_cfg.dataset``. + + Returns: + Generic mIoU and pixel-accuracy result. + + Raises: + ValueError: If preprocessing metadata, image size, taxonomy, predictions, or targets are invalid. + """ + + configured_dataset = model.post_cfg.get("dataset") + if not isinstance(configured_dataset, str) or not configured_dataset: + raise ValueError( + "Semantic validation requires model.post_cfg.dataset to declare the model taxonomy." + ) + configured_taxonomy = configured_dataset.lower() + if dataset is not None: + if not isinstance(dataset, str) or not dataset: + raise ValueError( + "Semantic validation dataset overrides must be non-empty strings." + ) + requested_taxonomy = dataset.lower() + if requested_taxonomy != configured_taxonomy: + raise ValueError( + f"Requested semantic validation taxonomy {requested_taxonomy!r} conflicts with " + f"the model's configured taxonomy {configured_taxonomy!r}." + ) + taxonomy = configured_taxonomy + + letterbox_cfg = model.pre_cfg.get("LetterBox") + if not isinstance(letterbox_cfg, dict) or "img_size" not in letterbox_cfg: + raise ValueError( + "Semantic validation requires a LetterBox img_size in the model preprocessing config." + ) + image_size = letterbox_cfg["img_size"] + if not isinstance(image_size, list) or len(image_size) != 2: + raise ValueError( + "Semantic validation img_size must be a two-item [height, width] list." + ) + + image_size_tuple = (int(image_size[0]), int(image_size[1])) + if taxonomy == "ade20k": + validation_dataset = CustomADE20K(data_path) + loader = get_ade20k_loader( + validation_dataset, + batch_size, + model.preprocess_with_metadata, + image_size=image_size_tuple, + ) + default_nc = 150 + description = "Evaluating ADE20K" + elif taxonomy == "cityscapes": + validation_dataset = CustomCityscapes(data_path) + loader = get_cityscapes_loader( + validation_dataset, + batch_size, + model.preprocess_with_metadata, + image_size=image_size_tuple, + ) + default_nc = 19 + description = "Evaluating Cityscapes" + else: + raise ValueError(f"Unsupported semantic validation dataset: {taxonomy!r}.") + nc = int(getattr(model.postprocessor, "nc", default_nc)) + return _evaluate_semantic_loader(model, loader, nc, description=description) + + +def eval_ade20k(model: MBLT_Engine, data_path: str, batch_size: int) -> ADE20KResult: + """Evaluate a semantic-segmentation model on ADE20K validation masks. + + Args: + model: Initialized semantic-segmentation engine. + data_path: Organized ADE20K dataset root. + batch_size: Number of validation samples per inference batch. + + Returns: + ADE20K metrics through the generic semantic result type. + + Raises: + ValueError: If the dataset, preprocessing metadata, predictions, or targets are invalid. + """ + + return eval_semantic_segmentation( + model, + data_path, + batch_size, + dataset="ade20k", + ) diff --git a/mblt_vision/utils/evaluation/eval_cityscapes.py b/mblt_vision/utils/evaluation/eval_cityscapes.py new file mode 100644 index 0000000..d12f9e5 --- /dev/null +++ b/mblt_vision/utils/evaluation/eval_cityscapes.py @@ -0,0 +1,32 @@ +"""Cityscapes evaluation for semantic-segmentation models.""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +from .eval_ade20k import SemanticSegmentationResult, eval_semantic_segmentation + +if TYPE_CHECKING: + from ...wrapper import MBLT_Engine + + +def eval_cityscapes( + model: MBLT_Engine, data_path: str, batch_size: int +) -> SemanticSegmentationResult: + """Evaluate a semantic-segmentation model on Cityscapes validation masks. + + Args: + model: Initialized semantic-segmentation engine. + data_path: Organized Cityscapes dataset root. + batch_size: Number of validation samples per inference batch. + + Returns: + Cityscapes mIoU and pixel-accuracy metrics. + + Raises: + ValueError: If the dataset, preprocessing metadata, predictions, or targets are invalid. + """ + + return eval_semantic_segmentation( + model, data_path, batch_size, dataset="cityscapes" + ) diff --git a/mblt_vision/utils/evaluation/eval_coco.py b/mblt_vision/utils/evaluation/eval_coco.py new file mode 100644 index 0000000..32014a8 --- /dev/null +++ b/mblt_vision/utils/evaluation/eval_coco.py @@ -0,0 +1,276 @@ +"""Evaluation script for COCO dataset.""" + +from __future__ import annotations + +import logging +import math +import os +from time import time +from typing import TYPE_CHECKING, Any, NamedTuple + +from faster_coco_eval import COCO, COCOeval_faster +from tqdm import tqdm + +from ..._tasks import normalize_vision_task +from ..datasets import CustomCOCODataset, get_coco_loader + +if TYPE_CHECKING: + from ...wrapper import MBLT_Engine + from ..results import Results + +logger = logging.getLogger(__name__) + + +class COCOResult(NamedTuple): + """COCO mAP metrics.""" + + map5095: float + map50: float + + @property + def primary_score(self) -> float: + """Return mAP50-95.""" + + return self.map5095 + + @property + def secondary_score(self) -> float: + """Return mAP50.""" + + return self.map50 + + +def format_coco_results( + task: str, + nms_outs: Results, + input_shape: tuple[int, ...], + org_shape: tuple[int, ...], + ratio_pad: list[Any], + idx: list[int], + dataset_ids: list[int], + postprocess: Any, +) -> list[dict[str, Any]]: + """Format the results for COCO evaluation. + + Args: + task (str): The task to evaluate. + nms_outs (Results): The output of the postprocessing. + input_shape (tuple): The shape of the input tensor. + org_shape (tuple): The original shape of the image. + idx (list): The indices of the images in the batch. + dataset_ids (list): The list of image IDs in the dataset. + postprocess: The postprocessing instance. + Returns: + list: The formatted results. + """ + results = [] + if task == "object_detection": + labels_list, boxes_list, scores_list = postprocess.nmsout2eval( + nms_outs.output, + input_shape, + org_shape, + ratio_pad=ratio_pad, + ) + for i, labels, boxes, scores in zip(idx, labels_list, boxes_list, scores_list): + results.extend( + [ + { + "image_id": dataset_ids[i], + "category_id": label, + "bbox": box, + "score": score, + } + for box, score, label in zip(boxes, scores, labels) + ] + ) + elif task == "instance_segmentation": + labels_list, boxes_list, scores_list, extra_list = postprocess.nmsout2eval( + nms_outs.output, + input_shape, + org_shape, + ratio_pad=ratio_pad, + ) + for i, labels, boxes, scores, extra in zip( + idx, labels_list, boxes_list, scores_list, extra_list + ): + results.extend( + [ + { + "image_id": dataset_ids[i], + "category_id": label, + "bbox": box, + "score": score, + "segmentation": extra, + } + for box, score, label, extra in zip(boxes, scores, labels, extra) + ] + ) + elif task == "pose_estimation": + labels_list, boxes_list, scores_list, extra_list = postprocess.nmsout2eval( + nms_outs.output, + input_shape, + org_shape, + ratio_pad=ratio_pad, + ) + for i, labels, boxes, scores, extra in zip( + idx, labels_list, boxes_list, scores_list, extra_list + ): + results.extend( + [ + { + "image_id": dataset_ids[i], + "category_id": label, + "bbox": box, + "score": score, + "keypoints": extra, + } + for box, score, label, extra in zip(boxes, scores, labels, extra) + ] + ) + else: + raise NotImplementedError( + f"Only object detection, instance segmentation, and pose estimation are supported, but we got {task}" + ) + return results + + +def eval_coco( + model: MBLT_Engine, + data_path: str, + batch_size: int, + conf_thres: float | None = None, + iou_thres: float | None = None, +) -> float: + """Evaluate a model on COCO and return the legacy numeric mAP50-95 score.""" + + return eval_coco_metrics( + model, data_path, batch_size, conf_thres, iou_thres + ).primary_score + + +def eval_coco_metrics( + model: MBLT_Engine, + data_path: str, + batch_size: int, + conf_thres: float | None = None, + iou_thres: float | None = None, +) -> COCOResult: + """Evaluate a model on COCO and return structured mAP metrics. + + Args: + model (MBLT_Engine): The model engine to evaluate. + data_path (str): Path to the COCO dataset. + batch_size (int): Batch size for evaluation. + conf_thres (float | None): Optional confidence threshold override. + iou_thres (float | None): Optional IoU threshold override. + + Returns: + Structured mAP50-95 primary and mAP50 secondary metrics. + """ + task = normalize_vision_task( + model.post_cfg["task"], + supported=("object_detection", "instance_segmentation", "pose_estimation"), + ) + if task in {"object_detection", "instance_segmentation"}: + dataset = CustomCOCODataset( + os.path.join(data_path, "val2017"), + os.path.join(data_path, "instances_val2017.json"), + ) + else: + dataset = CustomCOCODataset( + os.path.join(data_path, "val2017"), + os.path.join(data_path, "person_keypoints_val2017.json"), + min_keypoints=0, + ) + + dataloader = get_coco_loader(dataset, batch_size, model.preprocess_with_metadata) + model.set_postprocess_thresholds(conf_thres=conf_thres, iou_thres=iou_thres) + + results = [] + num_data = len(dataset) + total_iter = math.ceil(num_data / batch_size) + pbar = tqdm(dataloader, total=total_iter, desc="Evaluating COCO") + + inference_time = 0.0 + cum_num_data = 0 + + for input_npu, org_shape, ratio_pad, idx in pbar: + cum_num_data += len(idx) + tic = time() + out_npu = model(input_npu) + inference_time += time() - tic + + nms_outs = model.postprocess(out_npu, multi_label=True) + results.extend( + format_coco_results( + task, + nms_outs, + input_npu.shape[1:-1], + org_shape, + ratio_pad, + idx, + dataset.ids, + model.postprocessor, + ) + ) + + pbar.set_postfix_str(f"NPU FPS: {cum_num_data / inference_time:.3f}") + + pbar.close() + res = evaluate_predictions_on_coco(dataset.coco, results, task, img_ids=dataset.ids) + + print("COCO evaluation completed") + return COCOResult( + map5095=float(res.stats[0].item()), map50=float(res.stats[1].item()) + ) + + +def evaluate_predictions_on_coco( + coco_gt: COCO, + coco_results: list[dict[str, Any]], + task: str, + img_ids: list[int] | None = None, +) -> COCOeval_faster: + """Evaluates predictions using the COCO API. + + Args: + coco_gt (COCO): Ground truth COCO object. + coco_results (list): Predictions in COCO format. + task (str): Task type ('object_detection', 'instance_segmentation', or 'pose_estimation'). + img_ids: Optional image IDs to include in evaluation. + + Returns: + COCOeval_faster: The COCO evaluation object containing results. + """ + normalized_task = normalize_vision_task( + task, + supported=("object_detection", "instance_segmentation", "pose_estimation"), + ) + + if coco_results: + coco_dt = coco_gt.loadRes(coco_results) + else: + coco_dt = COCO() + + if normalized_task == "object_detection": + coco_eval = COCOeval_faster( + coco_gt, coco_dt, "bbox", print_function=logger.info + ) + elif normalized_task == "instance_segmentation": + coco_eval = COCOeval_faster( + coco_gt, coco_dt, "segm", print_function=logger.info + ) + elif normalized_task == "pose_estimation": + coco_eval = COCOeval_faster( + coco_gt, coco_dt, "keypoints", print_function=logger.info + ) + else: + raise RuntimeError(f"Unexpected validated COCO task: {normalized_task}") + + if img_ids is not None: + coco_eval.params.imgIds = img_ids + + coco_eval.evaluate() + coco_eval.accumulate() + coco_eval.summarize() + return coco_eval diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py new file mode 100644 index 0000000..999bb78 --- /dev/null +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -0,0 +1,621 @@ +"""Evaluation script for DOTAv1 oriented bounding boxes.""" + +from __future__ import annotations + +import math +import re +from collections import defaultdict +from pathlib import Path +from time import time +from typing import TYPE_CHECKING, Any, NamedTuple, cast + +import numpy as np +import torch +from mblt_vision.utils.postprocess.common import ( + batch_probiou, + rotated_nms, + xywhr2xyxyxyxy, + xyxyxyxy2xywhr, +) +from tqdm import tqdm + +from ..._tasks import normalize_vision_task +from ..datasets import ( + CustomDOTAv1, + get_dota_loader, + get_dotav1_class_num, + get_dotav1_label, +) +from ..letterbox import RatioPad, resolve_ratio_pad + +if TYPE_CHECKING: + from ...wrapper import MBLT_Engine + from ..results import Results + +DOTAV1_CLASS_TO_IDX = { + get_dotav1_label(index): index for index in range(get_dotav1_class_num()) +} + + +class DOTAResult(NamedTuple): + """DOTAv1 rotated detection metrics in the legacy tuple order.""" + + map50: float + map5095: float + + @property + def primary_score(self) -> float: + """Return the primary DOTAv1 validation metric.""" + return self.map5095 + + @property + def secondary_score(self) -> float: + """Return the secondary DOTAv1 validation metric.""" + return self.map50 + + +def _label_to_index(label: str) -> int: + """Convert a DOTAv1 class token to a class index.""" + try: + return int(label) + except ValueError: + return DOTAV1_CLASS_TO_IDX[label] + + +def _load_ground_truths( + data_path: str, dataset: CustomDOTAv1 +) -> dict[str, dict[str, torch.Tensor]]: + """Load DOTAv1 OBB ground-truth labels in original-image coordinates. + + Args: + data_path: DOTAv1 root directory. + dataset: Dataset containing image IDs and image paths. + + Returns: + Mapping from image ID to tensors for classes, polygons, and ``xywhr`` boxes. + """ + label_dir = Path(data_path) / "labels" / "val" + original_label_dir = Path(data_path) / "labels" / "val_original" + ground_truths: dict[str, dict[str, torch.Tensor]] = {} + for image_id, image_path in zip(dataset.ids, dataset.image_paths): + image = dataset._load_image(image_path) + height, width = image.shape[:2] + label_path = label_dir / f"{image_id}.txt" + original_label_path = original_label_dir / f"{image_id}.txt" + classes = [] + polygons = [] + + if label_path.is_file(): + for line in label_path.read_text(encoding="utf-8").splitlines(): + parts = line.split() + if len(parts) < 9: + continue + cls = _label_to_index(parts[0]) + if cls >= get_dotav1_class_num(): + raise ValueError( + f"Unsupported DOTAv1 class index {cls} in {label_path}." + ) + coords = torch.tensor( + [float(value) for value in parts[1:9]], dtype=torch.float32 + ).reshape(4, 2) + if coords.numel() and float(coords.max()) <= 1.5: + coords[:, 0] *= width + coords[:, 1] *= height + classes.append(cls) + polygons.append(coords) + elif original_label_path.is_file(): + for line in original_label_path.read_text(encoding="utf-8").splitlines(): + parts = line.split() + if len(parts) < 9: + continue + # Official DOTAv1 labels use ``1`` for difficult objects. Keep ``2`` + # ignored for compatibility with previously supported label exports. + if len(parts) >= 10 and parts[9] in {"1", "2"}: + continue + cls = _label_to_index(parts[8]) + if cls >= get_dotav1_class_num(): + raise ValueError( + f"Unsupported DOTAv1 class index {cls} in {original_label_path}." + ) + coords = torch.tensor( + [float(value) for value in parts[:8]], dtype=torch.float32 + ).reshape(4, 2) + classes.append(cls) + polygons.append(coords) + + polygon_tensor = ( + torch.stack(polygons).to(torch.float32) + if polygons + else torch.zeros((0, 4, 2), dtype=torch.float32) + ) + if polygon_tensor.numel(): + boxes_xywhr = xyxyxyxy2xywhr(polygon_tensor) + boxes = cast(torch.Tensor, boxes_xywhr).to(torch.float32) + else: + boxes = torch.zeros((0, 5), dtype=torch.float32) + + ground_truths[image_id] = { + "cls": torch.tensor(classes, dtype=torch.int64), + "polygons": polygon_tensor, + "bboxes": boxes, + } + return ground_truths + + +def format_dota_results( + nms_outs: Results, + input_shape: tuple[int, ...], + org_shape: tuple[int, ...], + ratio_pad: list[Any], + image_ids: tuple[str, ...], + postprocess: Any, +) -> list[dict[str, Any]]: + """Format model outputs for DOTAv1 evaluation and export. + + Args: + nms_outs: Postprocessed model results. + input_shape: Preprocessed image shape. + org_shape: Original image shapes. + ratio_pad: Letterbox metadata. + image_ids: DOTAv1 image IDs. + postprocess: Postprocessor instance. + + Returns: + List of formatted prediction dictionaries. + """ + labels_list, polygons_list, scores_list, xywhr_list = postprocess.nmsout2eval( + nms_outs.output, + input_shape, + org_shape, + ratio_pad=ratio_pad, + include_xywhr=True, + ) + results = [] + for image_id, labels, polygons, scores, xywhrs in zip( + image_ids, labels_list, polygons_list, scores_list, xywhr_list + ): + for label, polygon, score, xywhr in zip(labels, polygons, scores, xywhrs): + results.append( + { + "image_id": image_id, + "category_id": DOTAV1_CLASS_TO_IDX[label], + "category_name": label, + "poly": polygon, + "score": score, + "rbox": xywhr, + } + ) + return results + + +def _compute_ap( + recall: np.ndarray, precision: np.ndarray +) -> tuple[float, np.ndarray, np.ndarray]: + """Compute AP from recall and precision curves with Ultralytics interpolation.""" + mrec = np.concatenate(([0.0], recall, [recall[-1] if len(recall) else 1.0], [1.0])) + mpre = np.concatenate(([1.0], precision, [0.0], [0.0])) + mpre = np.flip(np.maximum.accumulate(np.flip(mpre))) + grid = np.linspace(0, 1, 101) + integrate = getattr(np, "trapezoid", None) + if integrate is None: + integrate = np.trapz + return float(integrate(np.interp(grid, mrec, mpre), grid)), mpre, mrec + + +def _ap_per_class( + tp: np.ndarray, + conf: np.ndarray, + pred_cls: np.ndarray, + target_cls: np.ndarray, + eps: float = 1e-16, +) -> np.ndarray: + """Compute AP per class using the Ultralytics object-detection metric policy.""" + if target_cls.size == 0: + niou = tp.shape[1] if tp.ndim == 2 else 10 + return np.zeros((0, niou), dtype=np.float64) + + order = np.argsort(-conf) + tp = tp[order] + conf = conf[order] + pred_cls = pred_cls[order] + + unique_classes, target_count = np.unique(target_cls, return_counts=True) + ap = np.zeros((unique_classes.shape[0], tp.shape[1]), dtype=np.float64) + for class_index, class_id in enumerate(unique_classes): + pred_mask = pred_cls == class_id + num_labels = target_count[class_index] + num_predictions = pred_mask.sum() + if num_predictions == 0 or num_labels == 0: + continue + + false_positive = (1 - tp[pred_mask]).cumsum(0) + true_positive = tp[pred_mask].cumsum(0) + recall = true_positive / (num_labels + eps) + precision = true_positive / (true_positive + false_positive + eps) + for iou_index in range(tp.shape[1]): + ap[class_index, iou_index], _, _ = _compute_ap( + recall[:, iou_index], precision[:, iou_index] + ) + return ap + + +def _match_predictions( + pred_classes: torch.Tensor, + true_classes: torch.Tensor, + iou: torch.Tensor, + iouv: torch.Tensor, +) -> np.ndarray: + """Match predictions to ground-truth boxes with Ultralytics one-to-one matching.""" + correct = np.zeros((pred_classes.shape[0], iouv.shape[0]), dtype=bool) + if pred_classes.numel() == 0 or true_classes.numel() == 0: + return correct + + correct_class = true_classes[:, None] == pred_classes + iou_np = (iou * correct_class).cpu().numpy() + for iou_index, threshold in enumerate(iouv.cpu().tolist()): + matches = np.array(np.nonzero(iou_np >= threshold)).T + if matches.shape[0] == 0: + continue + if matches.shape[0] > 1: + matches = matches[iou_np[matches[:, 0], matches[:, 1]].argsort()[::-1]] + # Preserve the IoU-ranked order while keeping the first match per prediction and target. + matches = matches[np.sort(np.unique(matches[:, 1], return_index=True)[1])] + matches = matches[np.sort(np.unique(matches[:, 0], return_index=True)[1])] + correct[matches[:, 1].astype(int), iou_index] = True + return correct + + +def _empty_stats() -> dict[str, list[np.ndarray]]: + """Create an empty DOTAv1 metric statistics accumulator.""" + return {"tp": [], "conf": [], "pred_cls": [], "target_cls": []} + + +def _append_stats( + stats: dict[str, list[np.ndarray]], image_stats: dict[str, np.ndarray] +) -> None: + """Append one image's metric statistics to the accumulator.""" + for key, value in image_stats.items(): + stats[key].append(value) + + +def _nms_output_to_predictions(nms_out: torch.Tensor) -> dict[str, torch.Tensor]: + """Convert OBB NMS rows to the prediction dictionary used by metric matching.""" + if nms_out.numel() == 0: + return { + "bboxes": torch.zeros((0, 5), dtype=torch.float32), + "conf": torch.zeros(0, dtype=torch.float32), + "cls": torch.zeros(0, dtype=torch.int64), + } + + nms_out = nms_out.detach().cpu() + return { + "bboxes": torch.cat([nms_out[:, :4], nms_out[:, 6:7]], dim=-1).to( + torch.float32 + ), + "conf": nms_out[:, 4].to(torch.float32), + "cls": nms_out[:, 5].to(torch.int64), + } + + +def _ratio_pad_for_shape( + input_shape: tuple[int, ...], + org_shape: tuple[int, int], + ratio_pad: RatioPad | None, +) -> tuple[float, tuple[float, float]]: + """Return letterbox gain and padding for an image.""" + if len(input_shape) < 2: + raise ValueError(f"Expected at least 2 input dimensions, got {input_shape}.") + + ratio, pad = resolve_ratio_pad( + (input_shape[0], input_shape[1]), org_shape, ratio_pad + ) + return float(ratio[0]), (float(pad[0]), float(pad[1])) + + +def _ground_truth_to_input_space( + ground_truth: dict[str, torch.Tensor], + input_shape: tuple[int, ...], + org_shape: tuple[int, int], + ratio_pad: RatioPad | None, +) -> dict[str, torch.Tensor]: + """Transform original-image DOTAv1 polygons to letterboxed ``xywhr`` boxes.""" + classes = ground_truth["cls"] + polygons = ground_truth.get("polygons") + if polygons is None: + return {"cls": classes, "bboxes": ground_truth["bboxes"]} + if polygons.numel() == 0: + return {"cls": classes, "bboxes": torch.zeros((0, 5), dtype=torch.float32)} + + gain, pad = _ratio_pad_for_shape(input_shape, org_shape, ratio_pad) + transformed = polygons.clone().to(torch.float32) + transformed[..., 0] = transformed[..., 0] * gain + pad[0] + transformed[..., 1] = transformed[..., 1] * gain + pad[1] + transformed_boxes = xyxyxyxy2xywhr(transformed) + return { + "cls": classes, + "bboxes": cast(torch.Tensor, transformed_boxes).to(torch.float32), + } + + +def _process_image_stats( + predictions: dict[str, torch.Tensor], + target: dict[str, torch.Tensor], + iouv: torch.Tensor, +) -> dict[str, np.ndarray]: + """Build one image's true-positive, confidence, class, and target arrays.""" + target_cls = target["cls"].cpu().numpy() + if target["cls"].numel() == 0 or predictions["cls"].numel() == 0: + true_positive = np.zeros( + (predictions["cls"].shape[0], iouv.numel()), dtype=bool + ) + else: + iou = batch_probiou(target["bboxes"], predictions["bboxes"]) + true_positive = _match_predictions(predictions["cls"], target["cls"], iou, iouv) + return { + "tp": true_positive, + "conf": predictions["conf"].cpu().numpy(), + "pred_cls": predictions["cls"].cpu().numpy(), + "target_cls": target_cls, + } + + +def _evaluate_stats(stats: dict[str, list[np.ndarray]], niou: int = 10) -> DOTAResult: + """Compute DOTAv1 metrics in legacy tuple order: mAP50, then mAP50-95.""" + target_cls = ( + np.concatenate(stats["target_cls"], 0) + if stats["target_cls"] + else np.zeros(0, dtype=np.float64) + ) + if target_cls.size == 0: + return DOTAResult(map5095=0.0, map50=0.0) + + tp = ( + np.concatenate(stats["tp"], 0) + if stats["tp"] + else np.zeros((0, niou), dtype=bool) + ) + conf = ( + np.concatenate(stats["conf"], 0) + if stats["conf"] + else np.zeros(0, dtype=np.float64) + ) + pred_cls = ( + np.concatenate(stats["pred_cls"], 0) + if stats["pred_cls"] + else np.zeros(0, dtype=np.float64) + ) + ap = _ap_per_class(tp, conf, pred_cls, target_cls) + if ap.size == 0: + return DOTAResult(map5095=0.0, map50=0.0) + return DOTAResult(map5095=float(ap.mean()), map50=float(ap[:, 0].mean())) + + +def evaluate_dota_predictions( + ground_truths: dict[str, dict[str, torch.Tensor]], + predictions: list[dict[str, Any]], +) -> DOTAResult: + """Evaluate DOTAv1 predictions with local rotated mAP. + + Args: + ground_truths: Mapping of image IDs to class and OBB tensors. + predictions: Formatted prediction dictionaries. + + Returns: + Rotated mAP at IoU ``0.50`` followed by mAP averaged across ``0.50:0.95``. + The ``primary_score`` and ``secondary_score`` properties expose mAP50-95 + and mAP50, respectively. + """ + iouv = torch.linspace(0.5, 0.95, 10) + stats = _empty_stats() + predictions_by_image: dict[str, list[dict[str, Any]]] = defaultdict(list) + for prediction in predictions: + predictions_by_image[str(prediction["image_id"])].append(prediction) + + image_ids = set(ground_truths) | set(predictions_by_image) + for image_id in sorted(image_ids): + rows = predictions_by_image.get(image_id, []) + if rows: + pred_dict = { + "bboxes": torch.tensor( + [row["rbox"] for row in rows], dtype=torch.float32 + ), + "conf": torch.tensor( + [row["score"] for row in rows], dtype=torch.float32 + ), + "cls": torch.tensor( + [row["category_id"] for row in rows], dtype=torch.int64 + ), + } + else: + pred_dict = _nms_output_to_predictions( + torch.zeros((0, 7), dtype=torch.float32) + ) + target = ground_truths.get( + image_id, + { + "cls": torch.zeros(0, dtype=torch.int64), + "bboxes": torch.zeros((0, 5), dtype=torch.float32), + }, + ) + _append_stats(stats, _process_image_stats(pred_dict, target, iouv)) + return _evaluate_stats(stats, niou=iouv.numel()) + + +def save_dota_task1_predictions( + predictions: list[dict[str, Any]], save_dir: str +) -> tuple[Path, Path]: + """Save split and merged predictions in DOTA Task1 text format. + + Args: + predictions: Formatted prediction dictionaries. + save_dir: Directory where prediction folders are written. + + Returns: + Tuple of split and merged prediction directories. + """ + root = Path(save_dir) + pred_txt = root / "predictions_txt" + pred_merged_txt = root / "predictions_merged_txt" + pred_txt.mkdir(parents=True, exist_ok=True) + pred_merged_txt.mkdir(parents=True, exist_ok=True) + + for cls_idx in range(get_dotav1_class_num()): + (pred_txt / f"Task1_{get_dotav1_label(cls_idx)}.txt").write_text( + "", encoding="utf-8" + ) + (pred_merged_txt / f"Task1_{get_dotav1_label(cls_idx)}.txt").write_text( + "", encoding="utf-8" + ) + + for pred in predictions: + class_name = pred["category_name"] + polygon = pred["poly"] + with (pred_txt / f"Task1_{class_name}.txt").open("a", encoding="utf-8") as file: + file.write( + f"{pred['image_id']} {pred['score']} " + f"{polygon[0]} {polygon[1]} {polygon[2]} {polygon[3]} " + f"{polygon[4]} {polygon[5]} {polygon[6]} {polygon[7]}\n" + ) + + merged_results: dict[str, list[list[float]]] = defaultdict(list) + offset_pattern = re.compile(r"(\d+)___(\d+)") + for pred in predictions: + image_id = pred["image_id"] + base_image_id = image_id.split("__", 1)[0] + offset_match = offset_pattern.search(image_id) + x_offset, y_offset = (0, 0) + if offset_match is not None: + x_offset, y_offset = ( + int(offset_match.group(1)), + int(offset_match.group(2)), + ) + rbox = list(pred["rbox"]) + rbox[0] += x_offset + rbox[1] += y_offset + merged_results[base_image_id].append( + [*rbox, pred["score"], float(pred["category_id"])] + ) + + for image_id, rows in merged_results.items(): + bbox = torch.tensor(rows, dtype=torch.float32) + if bbox.numel() == 0: + continue + max_wh = max(float(torch.max(bbox[:, :2]).item() * 2), 1.0) + class_offsets = bbox[:, 6:7] * max_wh + boxes = bbox[:, :5].clone() + boxes[:, :2] += class_offsets + keep = rotated_nms(boxes, bbox[:, 5], 0.3) + bbox = bbox[keep] + polygons = xywhr2xyxyxyxy(bbox[:, :5]).reshape(-1, 8) + for polygon, score, cls in zip( + polygons.tolist(), bbox[:, 5].tolist(), bbox[:, 6].tolist() + ): + class_name = get_dotav1_label(int(cls)) + rounded_polygon = [round(float(value), 3) for value in polygon] + with (pred_merged_txt / f"Task1_{class_name}.txt").open( + "a", encoding="utf-8" + ) as file: + file.write( + f"{image_id} {round(float(score), 3)} " + f"{rounded_polygon[0]} {rounded_polygon[1]} {rounded_polygon[2]} {rounded_polygon[3]} " + f"{rounded_polygon[4]} {rounded_polygon[5]} {rounded_polygon[6]} {rounded_polygon[7]}\n" + ) + + return pred_txt, pred_merged_txt + + +def _nms_output_list(nms_output: Any) -> list[torch.Tensor]: + """Normalize postprocess output to a per-image list of OBB tensors.""" + if isinstance(nms_output, list): + return nms_output + if isinstance(nms_output, tuple): + return list(nms_output) + if isinstance(nms_output, torch.Tensor): + if nms_output.ndim == 3: + return [image[image[:, 4] > 0] for image in nms_output] + return [nms_output] + raise TypeError(f"Unsupported OBB NMS output type: {type(nms_output).__name__}.") + + +def eval_dota( + model: MBLT_Engine, + data_path: str, + batch_size: int, + conf_thres: float | None = None, + iou_thres: float | None = None, + save_dir: str | None = None, +) -> DOTAResult: + """Evaluate a model on DOTAv1 validation. + + Args: + model: Model engine to evaluate. + data_path: DOTAv1 dataset root. + batch_size: Batch size for evaluation. + conf_thres: Optional confidence threshold override. + iou_thres: Optional IoU threshold override. + save_dir: Optional directory for DOTA Task1 prediction files. + + Returns: + Local rotated mAP scores. + """ + if normalize_vision_task(model.post_cfg["task"]) != "obb": + raise NotImplementedError( + f"Task {model.post_cfg['task']} is not supported for DOTAv1 evaluation." + ) + + dataset = CustomDOTAv1(data_path) + dataloader = get_dota_loader(dataset, batch_size, model.preprocess_with_metadata) + model.set_postprocess_thresholds(conf_thres=conf_thres, iou_thres=iou_thres) + ground_truths = _load_ground_truths(data_path, dataset) + iouv = torch.linspace(0.5, 0.95, 10) + stats = _empty_stats() + + results = [] + num_data = len(dataset) + total_iter = math.ceil(num_data / batch_size) + pbar = tqdm(dataloader, total=total_iter, desc="Evaluating DOTAv1") + inference_time = 0.0 + cum_num_data = 0 + + for input_npu, org_shape, ratio_pad, image_ids in pbar: + cum_num_data += len(image_ids) + tic = time() + out_npu = model(input_npu) + inference_time += time() - tic + nms_outs = model.postprocess(out_npu) + input_shape = tuple(int(value) for value in input_npu.shape[1:-1]) + for nms_out, image_id, image_shape, image_ratio_pad in zip( + _nms_output_list(nms_outs.output), + image_ids, + org_shape, + ratio_pad, + ): + target = _ground_truth_to_input_space( + ground_truths[image_id], + input_shape, + (int(image_shape[0]), int(image_shape[1])), + image_ratio_pad, + ) + _append_stats( + stats, + _process_image_stats(_nms_output_to_predictions(nms_out), target, iouv), + ) + if save_dir is not None: + results.extend( + format_dota_results( + nms_outs, + input_shape, + org_shape, + ratio_pad, + image_ids, + model.postprocessor, + ) + ) + pbar.set_postfix_str(f"NPU FPS: {cum_num_data / inference_time:.3f}") + + pbar.close() + map_score = _evaluate_stats(stats, niou=iouv.numel()) + if save_dir is not None: + save_dota_task1_predictions(results, save_dir) + print("DOTAv1 evaluation completed") + return map_score diff --git a/mblt_vision/utils/evaluation/eval_imagenet.py b/mblt_vision/utils/evaluation/eval_imagenet.py new file mode 100644 index 0000000..3d2b21b --- /dev/null +++ b/mblt_vision/utils/evaluation/eval_imagenet.py @@ -0,0 +1,117 @@ +""" +Evaluation script for ImageNet dataset. +""" + +from __future__ import annotations + +import math +from time import time +from typing import TYPE_CHECKING, NamedTuple + +import numpy as np +import torch +from tqdm import tqdm + +from ..datasets import CustomImageFolder, get_imagenet_loader + +if TYPE_CHECKING: + from ...wrapper import MBLT_Engine + + +class ImageNetResult(NamedTuple): + """ImageNet metrics ordered from primary to secondary.""" + + top1: float + top5: float + + @property + def primary_score(self) -> float: + """Return the primary ImageNet validation metric.""" + return self.top1 + + @property + def secondary_score(self) -> float: + """Return the secondary ImageNet validation metric.""" + return self.top5 + + +def eval_imagenet_metrics( + model: MBLT_Engine, data_path: str, batch_size: int +) -> ImageNetResult: + """Evaluates a classification model on the ImageNet validation set. + + Computes Top-1 and Top-5 accuracy and inference speed (FPS) on the NPU. + + Args: + model (MBLT_Engine): The vision engine to evaluate. + data_path (str): Path to the ImageNet validation images. + batch_size (int): Number of images per inference batch. + + Returns: + ImageNetResult: Top-1 primary accuracy and Top-5 secondary accuracy. + """ + dataset = CustomImageFolder(data_path) + dataloader = get_imagenet_loader(dataset, batch_size, model.preprocess) + num_data = len(dataset) + total_iter = math.ceil(num_data / batch_size) + pbar = tqdm(dataloader, total=total_iter, desc="Evaluating ImageNet") + inference_time = 0.0 + cum_num_data = 0 + cum_top1_correct = 0 + cum_top5_correct = 0 + top1_acc = 0.0 + top5_acc = 0.0 + for input_npu, label in pbar: + cum_num_data += len(label) + tic = time() + out_npu = model(input_npu) + inference_time += time() - tic + result = model.postprocess(out_npu) + output = result.output + if isinstance(output, np.ndarray): + prediction = output.argmax(-1) + elif isinstance(output, torch.Tensor): + prediction = output.argmax(-1).cpu().numpy() + else: + raise TypeError( + f"Expected classification output to be a tensor or ndarray, got {type(output)}." + ) + top_k = min(5, output.shape[-1]) + if isinstance(output, torch.Tensor): + top5_prediction = output.topk(top_k, dim=-1).indices.cpu().numpy() + else: + top5_prediction = np.argpartition(output, -top_k, axis=-1)[:, -top_k:] + label_array = np.asarray(label) + cum_top1_correct += (prediction == label_array).sum().item() + cum_top5_correct += ( + np.any(top5_prediction == label_array[:, np.newaxis], axis=-1).sum().item() + ) + top1_acc = cum_top1_correct / cum_num_data + top5_acc = cum_top5_correct / cum_num_data + pbar.set_postfix_str( + f"Top 1 Acc.: {100 * top1_acc:.3f}%, Top 5 Acc.: {100 * top5_acc:.3f}%, " + f"NPU FPS: {cum_num_data / inference_time:.3f}" + ) + pbar.close() + print("ImageNet evaluation completed") + print( + f"Top 1 Acc.: {100 * top1_acc:.3f}%, " + f"Top 5 Acc.: {100 * top5_acc:.3f}%, " + f"NPU FPS: {cum_num_data / inference_time:.3f}" + ) + return ImageNetResult(top1=top1_acc, top5=top5_acc) + + +def eval_imagenet(model: MBLT_Engine, data_path: str, batch_size: int) -> float: + """Evaluate ImageNet and return Top-1 accuracy for numeric API compatibility. + + Args: + model: Vision engine to evaluate. + data_path: Path to the ImageNet validation images. + batch_size: Number of images per inference batch. + + Returns: + Top-1 accuracy in the range 0.0 to 1.0. + """ + + return eval_imagenet_metrics(model, data_path, batch_size).top1 diff --git a/mblt_vision/utils/evaluation/eval_nyu_depth.py b/mblt_vision/utils/evaluation/eval_nyu_depth.py new file mode 100644 index 0000000..efac872 --- /dev/null +++ b/mblt_vision/utils/evaluation/eval_nyu_depth.py @@ -0,0 +1,160 @@ +"""NYU Depth V2 evaluation for monocular depth-estimation models.""" + +from __future__ import annotations + +from dataclasses import dataclass +from typing import TYPE_CHECKING + +import numpy as np +from mblt_vision.utils.preprocess import build_preprocess +from tqdm import tqdm + +from ..datasets import CustomNYUDepth, get_nyu_depth_loader + +if TYPE_CHECKING: + from ...wrapper import MBLT_Engine + + +@dataclass(frozen=True) +class NYUDepthResult: + """Median-aligned NYU Depth V2 metrics.""" + + delta1: float + abs_rel: float + rmse: float + + @property + def primary_score(self) -> float: + """Return the primary NYU Depth validation metric.""" + + return self.delta1 + + @property + def secondary_score(self) -> float: + """Return the secondary NYU Depth validation metric.""" + + return self.abs_rel + + +class NYUDepthMetricAccumulator: + """Accumulate median-aligned metrics over every valid NYU depth pixel.""" + + MIN_DEPTH = 0.001 + MAX_DEPTH = 100.0 + + def __init__(self) -> None: + """Initialize zero-valued pixel sums.""" + + self.delta1_sum = 0.0 + self.abs_rel_sum = 0.0 + self.squared_error_sum = 0.0 + self.valid_pixel_count = 0 + + def update(self, prediction: np.ndarray, target: np.ndarray) -> None: + """Median-align one prediction and add its valid-pixel statistics.""" + + prediction = np.asarray(prediction, dtype=np.float32) + target = np.asarray(target, dtype=np.float32) + if prediction.shape != target.shape: + raise ValueError( + f"NYU Depth prediction and target shapes must match, got {prediction.shape} and {target.shape}." + ) + valid = ( + np.isfinite(target) & (target > self.MIN_DEPTH) & (target < self.MAX_DEPTH) + ) + valid_pixel_count = int(valid.sum()) + if valid_pixel_count == 0: + raise ValueError( + "NYU Depth sample has no valid pixels in the (0.001, 100.0) range." + ) + + predicted, actual = prediction[valid], target[valid] + invalid_prediction_count = int((~np.isfinite(predicted)).sum()) + if invalid_prediction_count: + raise ValueError( + f"NYU Depth prediction contains {invalid_prediction_count} non-finite value(s) at valid target pixels." + ) + median_prediction = np.median(np.maximum(predicted, self.MIN_DEPTH)) + median_target = np.median(actual) + aligned = predicted * (median_target / median_prediction) + aligned = np.clip(aligned, self.MIN_DEPTH, self.MAX_DEPTH) + ratio = np.maximum(actual / aligned, aligned / actual) + self.delta1_sum += float(np.sum(ratio < 1.25)) + self.abs_rel_sum += float(np.sum(np.abs(actual - aligned) / actual)) + self.squared_error_sum += float(np.sum((actual - aligned) ** 2)) + self.valid_pixel_count += valid_pixel_count + + def result(self) -> NYUDepthResult: + """Return metrics pooled over all accumulated valid pixels.""" + + if self.valid_pixel_count == 0: + raise ValueError("NYU Depth evaluation received no valid pixels.") + return NYUDepthResult( + delta1=self.delta1_sum / self.valid_pixel_count, + abs_rel=self.abs_rel_sum / self.valid_pixel_count, + rmse=float(np.sqrt(self.squared_error_sum / self.valid_pixel_count)), + ) + + +def calculate_nyu_depth_metrics( + prediction: np.ndarray, target: np.ndarray +) -> NYUDepthResult: + """Calculate official pooled metrics for one median-aligned NYU sample.""" + + accumulator = NYUDepthMetricAccumulator() + accumulator.update(prediction, target) + return accumulator.result() + + +def eval_nyu_depth( + model: MBLT_Engine, data_path: str, batch_size: int +) -> NYUDepthResult: + """Evaluate a depth model on paired NYU validation images and depth maps.""" + + dataset = CustomNYUDepth(data_path) + letterbox_cfg = model.pre_cfg.get("LetterBox") + if not isinstance(letterbox_cfg, dict) or "img_size" not in letterbox_cfg: + raise ValueError( + "NYU Depth validation requires a LetterBox img_size in the model preprocessing config." + ) + image_size = letterbox_cfg["img_size"] + if not isinstance(image_size, list) or len(image_size) != 2: + raise ValueError( + "NYU Depth validation img_size must be a two-item [height, width] list." + ) + + validation_pre_cfg = { + name: config for name, config in model.pre_cfg.items() if name != "LetterBox" + } + validation_preprocessor = build_preprocess(validation_pre_cfg) + loader = get_nyu_depth_loader( + dataset, + batch_size, + validation_preprocessor, + image_size=(int(image_size[0]), int(image_size[1])), + ) + accumulator = NYUDepthMetricAccumulator() + for inputs, targets, _, _, _ in tqdm(loader, desc="Evaluating NYU Depth"): + output = model(inputs) + result = model.postprocess(output) + depth = result.depth + if depth is None: + raise ValueError("Depth postprocessor returned no depth maps.") + if isinstance(depth, list): + maps = depth + elif len(targets) == 1 and depth.ndim == 2: + maps = [depth] + else: + maps = [depth[index] for index in range(len(targets))] + if len(maps) != len(targets): + raise ValueError( + f"Depth postprocessor returned {len(maps)} maps for {len(targets)} targets." + ) + for prediction, target in zip(maps, targets): + array = ( + prediction.detach().cpu().numpy() + if hasattr(prediction, "detach") + else np.asarray(prediction) + ) + accumulator.update(array, target) + return accumulator.result() diff --git a/mblt_vision/utils/evaluation/eval_widerface.py b/mblt_vision/utils/evaluation/eval_widerface.py new file mode 100644 index 0000000..ac7879b --- /dev/null +++ b/mblt_vision/utils/evaluation/eval_widerface.py @@ -0,0 +1,382 @@ +"""Evaluation script for WiderFace face detection.""" + +from __future__ import annotations + +import math +import os +from time import time +from typing import TYPE_CHECKING, Any, NamedTuple, cast + +import numpy as np +from mblt_vision.utils.postprocess.base import YOLODetectionPostBase +from scipy.io import loadmat +from tqdm import tqdm + +from ..datasets import CustomWiderFaceDataset, get_widerface_loader + +if TYPE_CHECKING: + from ...wrapper import MBLT_Engine + +CustomWiderface = CustomWiderFaceDataset + + +class WiderFaceResult(NamedTuple): + """WiderFace AP metrics.""" + + easy_ap: float + medium_ap: float + hard_ap: float + + @property + def mean_ap(self) -> float: + """Return the mean AP across Easy, Medium, and Hard.""" + + return (self.easy_ap + self.medium_ap + self.hard_ap) / 3.0 + + @property + def primary_score(self) -> float: + """Return mean AP across the three validation splits.""" + + return self.mean_ap + + @property + def secondary_score(self) -> float: + """Return Hard-set AP.""" + + return self.hard_ap + + +def _empty_prediction() -> np.ndarray: + """Return an empty WiderFace prediction array.""" + + return np.zeros((0, 5), dtype=np.float32) + + +def _initialize_predictions( + dataset: CustomWiderFaceDataset, +) -> dict[str, dict[str, np.ndarray]]: + """Initialize empty predictions for every WiderFace sample.""" + + predictions: dict[str, dict[str, np.ndarray]] = {} + for _, event_name, file_name in dataset.samples: + predictions.setdefault(event_name, {})[os.path.splitext(file_name)[0]] = ( + _empty_prediction() + ) + return predictions + + +def _boxes_scores_to_prediction( + boxes: list[list[float]], scores: list[float] +) -> np.ndarray: + """Convert xywh boxes and scores to a WiderFace prediction array.""" + + if not boxes: + return _empty_prediction() + prediction = np.zeros((len(boxes), 5), dtype=np.float32) + for index, (box, score) in enumerate(zip(boxes, scores)): + prediction[index, :4] = np.asarray(box, dtype=np.float32) + prediction[index, 4] = float(score) + return prediction + + +def eval_widerface( + model: MBLT_Engine, + data_path: str, + batch_size: int, + conf_thres: float | None = None, + iou_thres: float | None = None, +) -> WiderFaceResult: + """Evaluate a face-detection model on WiderFace validation data. + + Args: + model: The face-detection engine to evaluate. + data_path: Organized WiderFace dataset root. + batch_size: Validation batch size. + conf_thres: Optional confidence threshold override. + iou_thres: Optional IoU threshold override. + + Returns: + WiderFace Easy, Medium, and Hard AP metrics. + """ + + if model.post_cfg["task"] != "face_detection": + raise NotImplementedError( + f"Task {model.post_cfg['task']} is not supported for WiderFace evaluation." + ) + + dataset = CustomWiderface(os.path.join(data_path, "images")) + dataloader = get_widerface_loader( + dataset, batch_size, model.preprocess_with_metadata + ) + model.set_postprocess_thresholds(conf_thres=conf_thres, iou_thres=iou_thres) + + predictions = _initialize_predictions(dataset) + num_data = len(dataset) + total_iter = math.ceil(num_data / batch_size) + pbar = tqdm(dataloader, total=total_iter, desc="Evaluating WiderFace") + inference_time = 0.0 + cum_num_data = 0 + + for input_npu, org_shape, ratio_pad, target_classes, fnames in pbar: + cum_num_data += len(fnames) + tic = time() + out_npu = model(input_npu) + inference_time += time() - tic + nms_outs = model.postprocess(out_npu) + input_shape = (int(input_npu.shape[1]), int(input_npu.shape[2])) + img0_shapes = [(int(shape[0]), int(shape[1])) for shape in org_shape.tolist()] + postprocessor = cast(YOLODetectionPostBase, model.postprocessor) + _, boxes_list, scores_list = postprocessor.nmsout2eval( + nms_outs.output, + input_shape, + img0_shapes, + ratio_pad=ratio_pad, + ) + + for event_name, file_name, boxes, scores in zip( + target_classes, fnames, boxes_list, scores_list + ): + predictions[event_name][os.path.splitext(file_name)[0]] = ( + _boxes_scores_to_prediction(boxes, scores) + ) + + pbar.set_postfix_str(f"NPU FPS: {cum_num_data / inference_time:.3f}") + + pbar.close() + aps = evaluation(norm_score(predictions), data_path) + print("WiderFace evaluation completed") + return WiderFaceResult(*aps) + + +def bbox_overlaps(boxes: np.ndarray, query_boxes: np.ndarray) -> np.ndarray: + """Compute pairwise IoU overlaps between boxes and query boxes.""" + + boxes = boxes.astype(np.float32) + query_boxes = query_boxes.astype(np.float32) + + boxes = boxes[:, None, :] + query_boxes = query_boxes[None, :, :] + + iw = ( + np.minimum(boxes[..., 2], query_boxes[..., 2]) + - np.maximum(boxes[..., 0], query_boxes[..., 0]) + + 1 + ) + ih = ( + np.minimum(boxes[..., 3], query_boxes[..., 3]) + - np.maximum(boxes[..., 1], query_boxes[..., 1]) + + 1 + ) + iw = np.maximum(iw, 0) + ih = np.maximum(ih, 0) + inter = iw * ih + + box_area = (boxes[..., 2] - boxes[..., 0] + 1) * (boxes[..., 3] - boxes[..., 1] + 1) + query_area = (query_boxes[..., 2] - query_boxes[..., 0] + 1) * ( + query_boxes[..., 3] - query_boxes[..., 1] + 1 + ) + union = box_area + query_area - inter + + return inter / union + + +def get_gt_boxes(gt_dir: str) -> tuple[Any, ...]: + """Load WiderFace evaluation `.mat` files from the organized dataset.""" + + gt_mat = loadmat(os.path.join(gt_dir, "wider_face_val.mat")) + hard_mat = loadmat(os.path.join(gt_dir, "wider_hard_val.mat")) + medium_mat = loadmat(os.path.join(gt_dir, "wider_medium_val.mat")) + easy_mat = loadmat(os.path.join(gt_dir, "wider_easy_val.mat")) + + facebox_list = gt_mat["face_bbx_list"] + event_list = gt_mat["event_list"] + file_list = gt_mat["file_list"] + hard_gt_list = hard_mat["gt_list"] + medium_gt_list = medium_mat["gt_list"] + easy_gt_list = easy_mat["gt_list"] + + return ( + facebox_list, + event_list, + file_list, + hard_gt_list, + medium_gt_list, + easy_gt_list, + ) + + +def norm_score(pred: dict[str, Any]) -> dict[str, Any]: + """Normalize WiderFace prediction scores to ``[0, 1]``.""" + + max_score = -1e9 + min_score = 1e9 + found = False + + for _, event_predictions in pred.items(): + for _, image_predictions in event_predictions.items(): + if len(image_predictions) == 0: + continue + found = True + _min = float(np.min(image_predictions[:, -1])) + _max = float(np.max(image_predictions[:, -1])) + if _max > max_score: + max_score = _max + if _min < min_score: + min_score = _min + + if not found: + return pred + + diff = max_score - min_score + if diff <= 0: + return pred + + for _, event_predictions in pred.items(): + for _, image_predictions in event_predictions.items(): + if len(image_predictions) == 0: + continue + image_predictions[:, -1] = (image_predictions[:, -1] - min_score) / diff + + return pred + + +def image_eval( + pred: np.ndarray, gt: np.ndarray, ignore: np.ndarray, iou_thresh: float +) -> tuple[np.ndarray, np.ndarray]: + """Evaluate one image worth of WiderFace predictions.""" + + _pred = pred.copy() + _gt = gt.copy() + pred_recall = np.zeros(_pred.shape[0]) + recall_list = np.zeros(_gt.shape[0]) + proposal_list = np.ones(_pred.shape[0]) + + _pred[:, 2] = _pred[:, 2] + _pred[:, 0] + _pred[:, 3] = _pred[:, 3] + _pred[:, 1] + _gt[:, 2] = _gt[:, 2] + _gt[:, 0] + _gt[:, 3] = _gt[:, 3] + _gt[:, 1] + + overlaps = bbox_overlaps(_pred[:, :4], _gt) + + for prediction_index in range(_pred.shape[0]): + gt_overlap = overlaps[prediction_index] + max_overlap = np.max(gt_overlap) + max_idx = np.argmax(gt_overlap) + if max_overlap >= iou_thresh: + if ignore[max_idx] == 0: + recall_list[max_idx] = -1 + proposal_list[prediction_index] = -1 + elif recall_list[max_idx] == 0: + recall_list[max_idx] = 1 + + r_keep_index = np.where(recall_list == 1)[0] + pred_recall[prediction_index] = len(r_keep_index) + return pred_recall, proposal_list + + +def img_pr_info( + thresh_num: int, + pred_info: np.ndarray, + proposal_list: np.ndarray, + pred_recall: np.ndarray, +) -> np.ndarray: + """Compute precision and recall contributions for one image.""" + + pr_info = np.zeros((thresh_num, 2), dtype=np.float32) + for threshold_index in range(thresh_num): + thresh = 1 - (threshold_index + 1) / thresh_num + recall_index = np.where(pred_info[:, 4] >= thresh)[0] + if len(recall_index) == 0: + pr_info[threshold_index, 0] = 0 + pr_info[threshold_index, 1] = 0 + else: + last_index = recall_index[-1] + proposal_index = np.where(proposal_list[: last_index + 1] == 1)[0] + pr_info[threshold_index, 0] = len(proposal_index) + pr_info[threshold_index, 1] = pred_recall[last_index] + return pr_info + + +def dataset_pr_info( + thresh_num: int, pr_curve: np.ndarray, count_face: int +) -> np.ndarray: + """Normalize a WiderFace precision-recall accumulator.""" + + _pr_curve = np.zeros((thresh_num, 2), dtype=np.float32) + for threshold_index in range(thresh_num): + proposals = pr_curve[threshold_index, 0] + matched = pr_curve[threshold_index, 1] + _pr_curve[threshold_index, 0] = matched / proposals if proposals > 0 else 0.0 + _pr_curve[threshold_index, 1] = matched / count_face if count_face > 0 else 0.0 + return _pr_curve + + +def voc_ap(rec: np.ndarray, prec: np.ndarray) -> float: + """Compute VOC-style average precision.""" + + mrec = np.concatenate((np.array([0.0]), rec, np.array([1.0]))) + mpre = np.concatenate((np.array([0.0]), prec, np.array([0.0]))) + + for index in range(mpre.size - 1, 0, -1): + mpre[index - 1] = np.maximum(mpre[index - 1], mpre[index]) + + recall_change_index = np.where(mrec[1:] != mrec[:-1])[0] + ap = np.sum( + (mrec[recall_change_index + 1] - mrec[recall_change_index]) + * mpre[recall_change_index + 1] + ) + return float(ap) + + +def evaluation( + pred: dict[str, Any], gt_path: str, iou_thresh: float = 0.5 +) -> list[float]: + """Evaluate WiderFace predictions against Easy, Medium, and Hard settings.""" + + facebox_list, event_list, file_list, hard_gt_list, medium_gt_list, easy_gt_list = ( + get_gt_boxes(gt_path) + ) + event_num = len(event_list) + thresh_num = 1000 + settings = ["easy", "medium", "hard"] + setting_gts = [easy_gt_list, medium_gt_list, hard_gt_list] + aps = [] + for setting_id in range(3): + gt_list = setting_gts[setting_id] + count_face = 0 + pr_curve = np.zeros((thresh_num, 2), dtype=np.float32) + pbar = tqdm(range(event_num)) + for event_index in pbar: + pbar.set_description(f"Processing {settings[setting_id]}") + event_name = str(event_list[event_index][0][0]) + img_list = file_list[event_index][0] + pred_list = pred[event_name] + sub_gt_list = gt_list[event_index][0] + gt_bbx_list = facebox_list[event_index][0] + for image_index, img_info in enumerate(img_list): + pred_info = pred_list[str(img_info[0][0])] + gt_boxes = np.array(gt_bbx_list[image_index][0], dtype=np.float32) + keep_index = np.array(sub_gt_list[image_index][0], dtype=np.int64) + count_face += len(keep_index) + + if len(gt_boxes) == 0 or len(pred_info) == 0: + continue + ignore = np.zeros(gt_boxes.shape[0]) + if len(keep_index) != 0: + ignore[keep_index - 1] = 1 + pred_recall, proposal_list = image_eval( + pred_info, gt_boxes, ignore, iou_thresh + ) + pr_curve += img_pr_info( + thresh_num, pred_info, proposal_list, pred_recall + ) + pbar.close() + pr_curve = dataset_pr_info(thresh_num, pr_curve, count_face) + aps.append(voc_ap(pr_curve[:, 1], pr_curve[:, 0])) + + print("==================== Results ====================") + print(f"Easy Val AP: {aps[0]}") + print(f"Medium Val AP: {aps[1]}") + print(f"Hard Val AP: {aps[2]}") + print("=================================================") + return aps diff --git a/pyproject.toml b/pyproject.toml index f6edd6f..558816b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,10 @@ dependencies = [ "opencv-python>=4.11.0.86", "pillow>=11.1.0", "faster-coco-eval", + "gdown>=5.2.0", "huggingface-hub", + "matplotlib", + "requests>=2.32.0", "scipy", "tqdm", "PyYAML", @@ -48,6 +51,10 @@ onnxruntime-gpu = [ "onnx; sys_platform != 'darwin'", "onnxruntime-gpu; sys_platform != 'darwin'", ] +qbcompiler = [ + "qbcompiler>=1.2.0", + "onnxruntime", +] [tool.setuptools] packages = { find = { where = ["."], include = ["mblt_vision", "mblt_vision.*"] } } @@ -61,6 +68,12 @@ version = { attr = "mblt_vision.__version__" } "datasets/*.yaml", ] +[tool.pytest.ini_options] +markers = [ + "requires_network: test downloads model artifacts from Hugging Face Hub.", + "requires_npu: test requires a configured Mobilint NPU runtime and device.", +] + [dependency-groups] dev = [ "pre-commit", diff --git a/tests/TEST.md b/tests/TEST.md index 3d45b51..ffd156d 100644 --- a/tests/TEST.md +++ b/tests/TEST.md @@ -13,16 +13,30 @@ pip install pytest ## Run All Tests -Execute the entire Vision test matrix (this may take a while because it loads every supported model): +Execute the complete standalone Vision test matrix: ```bash -pytest tests/vision +pytest tests ``` -## Run a Single Test File +## Run Offline Unit Tests -Target a specific test file to focus on one model family: +Exclude Hugging Face downloads and NPU hardware: ```bash -pytest tests/vision/test_resnet50.py +pytest tests -m "not requires_network and not requires_npu" +``` + +## Run Optional Integration Tests + +After authenticating with Hugging Face Hub, exercise representative ONNX models: + +```bash +pytest tests/test_onnx_classification.py -m requires_network +``` + +To run MXQ inference, add a configured NPU and the shared runtime options: + +```bash +pytest tests/test_mxq_inference.py -m requires_npu --mxq-path /path/to/model.mxq ``` diff --git a/tests/test_api.py b/tests/test_api.py new file mode 100644 index 0000000..80df7a0 --- /dev/null +++ b/tests/test_api.py @@ -0,0 +1,56 @@ +"""Tests for the standalone public Vision API.""" + +from __future__ import annotations + +import importlib + +import pytest + +import mblt_vision +from mblt_vision import list_models, list_tasks +from mblt_vision._tasks import normalize_vision_task + + +def test_public_discovery_exposes_all_supported_tasks() -> None: + """Expose every standalone Vision task through the public API.""" + + assert list_tasks() == [ + "image_classification", + "depth_estimation", + "object_detection", + "instance_segmentation", + "semantic_segmentation", + "obb", + "pose_estimation", + "face_detection", + ] + assert list_models("obb")["obb"] + + +def test_public_exports_use_only_the_canonical_obb_name() -> None: + """Keep the standalone namespace free of the legacy OBB spelling.""" + + assert "oriented_bounding_boxes" not in mblt_vision.__all__ + assert not hasattr(mblt_vision, "oriented_bounding_boxes") + with pytest.raises(ModuleNotFoundError): + importlib.import_module("mblt_vision.oriented_bounding_boxes") + + +def test_model_exports_are_discoverable_from_task_and_top_level_namespaces() -> None: + """Keep task exports synchronized with lazy top-level compatibility exports.""" + + from mblt_vision.image_classification import ResNet50 + from mblt_vision.object_detection import YOLO11m + + assert mblt_vision.ResNet50 is ResNet50 + assert mblt_vision.YOLO11m is YOLO11m + assert "ResNet50" in list_models("image_classification")["image_classification"] + assert "YOLO11m" in list_models("object_detection")["object_detection"] + + +@pytest.mark.parametrize("task", [None, 1, object()]) +def test_task_normalization_rejects_non_strings(task: object) -> None: + """Reject invalid task inputs with a stable, actionable error.""" + + with pytest.raises(TypeError, match="must be a string"): + normalize_vision_task(task) # type: ignore[arg-type] diff --git a/tests/test_benchmark_vision.py b/tests/test_benchmark_vision.py new file mode 100644 index 0000000..5e3e5f5 --- /dev/null +++ b/tests/test_benchmark_vision.py @@ -0,0 +1,321 @@ +"""Tests for the standardized multi-model vision benchmark tools.""" + +from __future__ import annotations + +import argparse +import csv +from pathlib import Path + +import pytest + +from benchmark.vision import benchmark_vision_models, compare_benchmark_results +from mblt_vision.utils.evaluation import ( + DOTAResult, + ImageNetResult, + NYUDepthResult, + SemanticSegmentationResult, +) + + +def test_benchmark_records_imagenet_metrics_in_primary_order( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Use Top-1 as the score while retaining Top-5 in benchmark metrics.""" + + class FakeModel: + """Minimal classification model double.""" + + post_cfg = {"task": "image_classification"} + + import mblt_vision.utils.evaluation as evaluation_module + + monkeypatch.setattr( + evaluation_module, + "eval_imagenet_metrics", + lambda *args, **kwargs: ImageNetResult(top1=0.75, top5=0.95), + ) + args = argparse.Namespace( + task="image_classification", + data_path=str(tmp_path), + batch_size=1, + ) + + score, score_name, metrics = benchmark_vision_models._evaluate( + FakeModel(), args, tmp_path + ) + + assert score == 0.75 + assert score_name == "top1_accuracy" + assert metrics == {"top1_accuracy": 0.75, "top5_accuracy": 0.95} + + +def test_benchmark_records_depth_metrics( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Record all NYU depth metrics with delta1 as primary.""" + + class FakeModel: + post_cfg = {"task": "depth_estimation", "dataset": "nyu-depth"} + + import mblt_vision.utils.evaluation as evaluation_module + + monkeypatch.setattr( + evaluation_module, + "eval_nyu_depth", + lambda *args, **kwargs: NYUDepthResult(delta1=0.8, abs_rel=0.1, rmse=0.2), + ) + args = argparse.Namespace( + task="depth_estimation", data_path=str(tmp_path), batch_size=1 + ) + + score, score_name, metrics = benchmark_vision_models._evaluate( + FakeModel(), args, tmp_path + ) + + assert (score, score_name) == (0.8, "delta1") + assert metrics == {"delta1": 0.8, "abs_rel": 0.1, "rmse": 0.2} + + +@pytest.mark.parametrize( + ("dataset", "evaluator_name"), + [("ade20k", "eval_ade20k"), ("cityscapes", "eval_cityscapes")], +) +def test_benchmark_dispatches_semantic_taxonomy( + dataset: str, + evaluator_name: str, + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Dispatch semantic evaluation explicitly from the configured taxonomy.""" + + class FakeModel: + post_cfg = {"task": "semantic_segmentation", "dataset": dataset} + + import mblt_vision.utils.evaluation as evaluation_module + + monkeypatch.setattr( + evaluation_module, + evaluator_name, + lambda *args, **kwargs: SemanticSegmentationResult( + miou=0.6, pixel_accuracy=0.9 + ), + ) + args = argparse.Namespace( + task="semantic_segmentation", data_path=str(tmp_path), batch_size=1 + ) + + score, score_name, metrics = benchmark_vision_models._evaluate( + FakeModel(), args, tmp_path + ) + + assert (score, score_name) == (0.6, "miou") + assert metrics == {"miou": 0.6, "pixel_accuracy": 0.9} + + +def test_benchmark_accepts_oriented_bounding_boxes_model_alias( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Dispatch an alias-configured OBB model through DOTAv1 evaluation.""" + + class FakeModel: + post_cfg = {"task": "oriented_bounding_boxes", "dataset": "dotav1"} + + import mblt_vision.utils.evaluation as evaluation_module + + monkeypatch.setattr( + evaluation_module, + "eval_dota", + lambda *args, **kwargs: DOTAResult(map50=0.7, map5095=0.5), + ) + args = argparse.Namespace( + task="obb", + data_path=str(tmp_path), + batch_size=1, + conf_thres=None, + iou_thres=None, + ) + + score, score_name, metrics = benchmark_vision_models._evaluate( + FakeModel(), args, tmp_path + ) + + assert (score, score_name) == (0.5, "map50_95") + assert metrics == {"map50_95": 0.5, "map50": 0.7} + + +def test_benchmark_continues_after_evaluator_type_error( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Record an unsupported evaluator output without aborting later targets.""" + + class FakeEngine: + """Minimal engine used to exercise per-target error handling.""" + + def __init__(self, *, model_cls: str, **kwargs: object) -> None: + self.model_cls = model_cls + + def dispose(self) -> None: + """Release the fake benchmark engine.""" + + def fake_evaluate( + model: FakeEngine, + args: object, + run_dir: Path, + ) -> tuple[float, str, dict[str, float]]: + if model.model_cls == "invalid-output": + raise TypeError("Unsupported model output") + return 0.9, "top1_accuracy", {"top1_accuracy": 0.9} + + import mblt_vision as vision + + monkeypatch.setattr(vision, "MBLT_Engine", FakeEngine) + monkeypatch.setattr(benchmark_vision_models, "_evaluate", fake_evaluate) + + result = benchmark_vision_models.main( + [ + "--models", + "invalid-output", + "valid-output", + "--task", + "image_classification", + "--data-path", + str(tmp_path / "dataset"), + "--results-dir", + str(tmp_path / "results"), + "--no-plot", + ] + ) + + with (tmp_path / "results" / "results.csv").open( + newline="", encoding="utf-8" + ) as results_file: + rows = list(csv.DictReader(results_file)) + + assert result == 1 + assert [row["status"] for row in rows] == ["error", "ok"] + assert rows[0]["error"] == "TypeError: Unsupported model output" + + +def test_comparison_rejects_matching_metrics_from_different_tasks( + tmp_path: Path, +) -> None: + """Reject task-incompatible inputs even when their score metric matches.""" + + for name, task in ( + ("detection", "object_detection"), + ("segmentation", "instance_segmentation"), + ): + results_path = tmp_path / name / "results.csv" + results_path.parent.mkdir() + results_path.write_text( + f"model,core_mode,task,status,score_name,score\nmodel-a,global8,{task},ok,map50_95,0.5\n", + encoding="utf-8", + ) + + with pytest.raises(SystemExit, match="incompatible benchmark tasks"): + compare_benchmark_results.main( + [str(tmp_path / "detection"), str(tmp_path / "segmentation")] + ) + + +@pytest.mark.parametrize( + "framework_args", + [ + ["--framework", "onnx"], + ["--model-path", "model.onnx"], + ["--model-path", "MODEL.ONNX"], + ], +) +def test_onnx_benchmark_uses_one_neutral_runtime_target( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + framework_args: list[str], +) -> None: + """Avoid recording repeated NPU core-mode runs for ONNX inference.""" + + captured_modes: list[str] = [] + + def fake_run_target( + model_name: str, core_mode: str, args: object, results_dir: Path + ) -> dict[str, object]: + captured_modes.append(core_mode) + return { + "model": model_name, + "core_mode": core_mode, + "task": "image_classification", + "batch_size": 1, + "status": "ok", + "score": 0.9, + "score_name": "top1", + "elapsed_s": 0.0, + } + + monkeypatch.setattr(benchmark_vision_models, "_run_target", fake_run_target) + + assert ( + benchmark_vision_models.main( + [ + "--models", + "model-a", + "--task", + "image_classification", + *framework_args, + "--core-mode", + "all", + "--data-path", + str(tmp_path / "dataset"), + "--results-dir", + str(tmp_path / "results"), + "--no-plot", + ] + ) + == 0 + ) + assert captured_modes == ["onnx"] + + +def test_comparison_uses_result_directory_names( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Derive default chart paths and legend labels from result directories.""" + + for name in ("baseline", "candidate"): + results_path = tmp_path / name / "results.csv" + results_path.parent.mkdir() + results_path.write_text( + "model,core_mode,task,status,score_name,score\nmodel-a,global8,object_detection,ok,map50_95,0.5\n", + encoding="utf-8", + ) + import benchmark.common.chart_utils as chart_utils + + captured: dict[str, object] = {} + + def fake_default_charts_dir( + script_dir: Path, sources: list[Path], **kwargs: object + ) -> Path: + captured["sources"] = sources + return tmp_path / "charts" + + monkeypatch.setattr(chart_utils, "default_charts_dir", fake_default_charts_dir) + monkeypatch.setattr( + chart_utils, + "plot_grouped_scalar_barh", + lambda **kwargs: captured.update(kwargs), + ) + + assert ( + compare_benchmark_results.main( + [str(tmp_path / "baseline"), str(tmp_path / "candidate")] + ) + == 0 + ) + sources = captured["sources"] + assert isinstance(sources, list) + source_paths: list[Path] = [] + for source in sources: + assert isinstance(source, Path) + source_paths.append(source) + assert [path.name for path in source_paths] == ["baseline", "candidate"] + assert captured["group_labels"] == ["baseline", "candidate"] diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py new file mode 100644 index 0000000..f052e50 --- /dev/null +++ b/tests/test_compile_vision.py @@ -0,0 +1,873 @@ +"""Tests for packaged vision compilation and calibration preparation.""" + +from __future__ import annotations + +import json +from pathlib import Path +from typing import Any + +import numpy as np +import pytest + +from mblt_vision.compile import vision as compile_module +from mblt_vision.compile.vision import ( + copy_calibration_subset, + prepare_calibration_arrays, + resolve_quantization_values, + select_calibration_images, +) +from mblt_vision.utils import datasets as dataset_utils +from mblt_vision.utils.datasets import readiness as readiness_module +from mblt_vision.wrapper import resolve_model_config + + +def _write_images(directory: Path, names: list[str]) -> list[Path]: + """Create placeholder image files for selection tests. + + Args: + directory: Destination directory. + names: Relative filenames to create. + + Returns: + Created image paths. + """ + + created: list[Path] = [] + for name in names: + path = directory / name + path.parent.mkdir(parents=True, exist_ok=True) + path.write_bytes(name.encode()) + created.append(path) + return created + + +def test_resolve_model_config_derives_onnx_filename() -> None: + """Derive ONNX artifact names consistently from MXQ artifact names.""" + + hub_config = resolve_model_config("alexnet") + direct_config = resolve_model_config( + { + "file_cfg": { + "filename": "example.mxq", + }, + "pre_cfg": {}, + "post_cfg": {}, + } + ) + custom_config = resolve_model_config( + { + "file_cfg": { + "filename": "example.mxq", + "onnx_filename": "exported-model.onnx", + }, + "pre_cfg": {}, + "post_cfg": {}, + } + ) + + assert hub_config["file_cfg"]["onnx_filename"] == "alexnet_IMAGENET1K_V1.onnx" + assert direct_config["file_cfg"]["onnx_filename"] == "example.onnx" + assert custom_config["file_cfg"]["onnx_filename"] == "exported-model.onnx" + + +@pytest.mark.parametrize( + ("task", "relative_dir"), + [ + ("depth_estimation", "images"), + ("object_detection", "val2017"), + ("semantic_segmentation", "images"), + ("obb", "images"), + ], +) +def test_non_imagenet_selection_is_deterministic( + task: str, relative_dir: str, tmp_path: Path +) -> None: + """Select deterministic total-count COCO and DOTAv1 samples.""" + + _write_images(tmp_path / relative_dir, [f"image-{index}.jpg" for index in range(5)]) + + first = select_calibration_images(task, tmp_path, subset_size=3, seed=7) + second = select_calibration_images(task, tmp_path, subset_size=3, seed=7) + + assert first == second + assert len(first) == 3 + + +def test_legacy_obb_alias_selects_calibration_images(tmp_path: Path) -> None: + """Normalize the legacy OBB task name in exported sampling helpers.""" + + images = _write_images(tmp_path / "images", ["P0001.png", "P0002.png"]) + + assert select_calibration_images( + "oriented_bounding_boxes", + tmp_path, + subset_size=2, + ) == select_calibration_images("obb", tmp_path, subset_size=2) + assert set( + select_calibration_images("oriented_bounding_boxes", tmp_path, subset_size=2) + ) == set(images) + + +@pytest.mark.parametrize( + ("task", "relative_dir"), + [ + ("depth_estimation", "images"), + ("object_detection", "val2017"), + ("instance_segmentation", "val2017"), + ("semantic_segmentation", "images"), + ("pose_estimation", "val2017"), + ("obb", "images"), + ], +) +def test_selection_defaults_to_seed_zero( + task: str, relative_dir: str, tmp_path: Path +) -> None: + """Use seed zero whenever callers omit the vision sampling seed.""" + + _write_images(tmp_path / relative_dir, [f"image-{index}.jpg" for index in range(5)]) + + assert select_calibration_images( + task, tmp_path, subset_size=3 + ) == select_calibration_images( + task, + tmp_path, + subset_size=3, + seed=0, + ) + + +def test_widerface_selection_uses_per_category_size(tmp_path: Path) -> None: + """Select the requested number of images from every WiderFace category.""" + + _write_images( + tmp_path / "images" / "0--Parade", [f"parade-{index}.jpg" for index in range(3)] + ) + _write_images( + tmp_path / "images" / "1--Handshaking", + [f"handshake-{index}.jpg" for index in range(3)], + ) + + first = select_calibration_images("face_detection", tmp_path, subset_size=2, seed=7) + second = select_calibration_images( + "face_detection", tmp_path, subset_size=2, seed=7 + ) + default = select_calibration_images("face_detection", tmp_path) + seed_zero = select_calibration_images("face_detection", tmp_path, seed=0) + + assert first == second + assert len(first) == 4 + assert len(default) == 2 + assert default == seed_zero + assert {path.parent.name for path in first} == {"0--Parade", "1--Handshaking"} + + +def test_imagenet_selection_uses_per_class_size(tmp_path: Path) -> None: + """Select the requested number of images independently from each class.""" + + _write_images(tmp_path / "class-a", ["same.jpg", "a.jpg"]) + _write_images(tmp_path / "class-b", ["same.jpg", "b.jpg"]) + + selected = select_calibration_images( + "image_classification", tmp_path, subset_size=1 + ) + seed_zero = select_calibration_images( + "image_classification", tmp_path, subset_size=1, seed=0 + ) + + assert len(selected) == 2 + assert selected == seed_zero + assert {path.parent.name for path in selected} == {"class-a", "class-b"} + + +@pytest.mark.parametrize("subset_size", [0, -1, 4]) +def test_selection_rejects_invalid_sizes(subset_size: int, tmp_path: Path) -> None: + """Reject non-positive and unavailable calibration subset sizes.""" + + _write_images(tmp_path / "val2017", ["one.jpg", "two.jpg", "three.jpg"]) + + with pytest.raises(ValueError, match="subset_size"): + select_calibration_images("object_detection", tmp_path, subset_size=subset_size) + + +def test_selection_rejects_symlinked_images(tmp_path: Path) -> None: + """Reject image-looking symlinks instead of sampling their targets.""" + + external_image = _write_images(tmp_path / "external", ["secret.jpg"])[0] + image_dir = tmp_path / "dataset" / "val2017" + image_dir.mkdir(parents=True) + (image_dir / "stolen.jpg").symlink_to(external_image) + + with pytest.raises(ValueError, match="must not be a symlink"): + select_calibration_images( + "object_detection", tmp_path / "dataset", subset_size=1 + ) + + +def test_copy_rejects_symlinked_or_outside_images(tmp_path: Path) -> None: + """Defend direct copy callers against symlink and outside-root sources.""" + + dataset = tmp_path / "dataset" + external_image = _write_images(tmp_path / "external", ["secret.jpg"])[0] + symlink = dataset / "stolen.jpg" + dataset.mkdir() + symlink.symlink_to(external_image) + + with pytest.raises(ValueError, match="must not be a symlink"): + copy_calibration_subset([symlink], dataset, tmp_path / "subset") + with pytest.raises(ValueError, match="must remain within dataset root"): + copy_calibration_subset([external_image], dataset, tmp_path / "subset") + + +def test_flat_subset_names_are_collision_safe(tmp_path: Path) -> None: + """Preserve images with duplicate basenames from nested source directories.""" + + images = _write_images( + tmp_path / "dataset", ["images/a/same.jpg", "images/b/same.jpg"] + ) + + copied = copy_calibration_subset(images, tmp_path / "dataset", tmp_path / "subset") + + assert len(copied) == 2 + assert copied[0].name != copied[1].name + assert all(path.is_file() for path in copied) + + +@pytest.mark.parametrize("output_name", [".", "parent-output", "val2017/subset"]) +def test_subset_rejects_overlapping_output_paths( + tmp_path: Path, output_name: str +) -> None: + """Protect the organized source dataset from destructive replacement.""" + + data_path = tmp_path / "dataset" + image_path = _write_images(data_path / "val2017", ["one.jpg"])[0] + output_path = tmp_path if output_name == "." else data_path / output_name + + with pytest.raises(ValueError, match="must not overlap"): + compile_module.make_calibration_subset( + "object_detection", data_path, output_path, subset_size=1 + ) + + assert image_path.is_file() + + +def test_subset_keeps_existing_output_when_selection_fails(tmp_path: Path) -> None: + """Leave an existing subset untouched when a replacement cannot be selected.""" + + data_path = tmp_path / "dataset" + output_path = tmp_path / "subset" + _write_images(data_path / "val2017", ["one.jpg"]) + existing = _write_images(output_path, ["existing.jpg"])[0] + + with pytest.raises(ValueError, match="subset_size"): + compile_module.make_calibration_subset( + "object_detection", data_path, output_path, subset_size=2 + ) + + assert existing.read_bytes() == b"existing.jpg" + + +def test_imagenet_readiness_rejects_partial_class_tree(tmp_path: Path) -> None: + """Organize ImageNet again when the existing class layout is incomplete.""" + + _write_images(tmp_path / "class-a", ["image.jpg"]) + + assert not compile_module._dataset_ready("image_classification", tmp_path) + + +def test_depth_dataset_readiness_requires_complete_pairs( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Require all paired NYU samples before sampling calibration images.""" + + monkeypatch.setattr(readiness_module, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + _write_images(tmp_path / "images", ["image.png"]) + (tmp_path / "depth").mkdir() + assert not compile_module._dataset_ready("depth_estimation", tmp_path, "nyu-depth") + + (tmp_path / "depth" / "image.npy").write_bytes(b"depth") + assert compile_module._dataset_ready("depth_estimation", tmp_path, "nyu-depth") + + +@pytest.mark.parametrize( + ("dataset", "image_name", "other_dataset"), + [ + ("ade20k", "ADE_val_00000001.jpg", "cityscapes"), + ("cityscapes", "frankfurt_000000_000001.png", "ade20k"), + ], +) +def test_semantic_dataset_readiness_checks_taxonomy( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + dataset: str, + image_name: str, + other_dataset: str, +) -> None: + """Require complete pairs with filenames belonging to the selected taxonomy.""" + + monkeypatch.setattr(readiness_module, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setattr(readiness_module, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 1) + image_path = _write_images(tmp_path / "images", [image_name])[0] + (tmp_path / "annotations").mkdir() + assert not compile_module._dataset_ready("semantic_segmentation", tmp_path, dataset) + + (tmp_path / "annotations" / f"{image_path.stem}.png").write_bytes(b"annotation") + if dataset == "ade20k": + (tmp_path / "objectInfo150.txt").write_bytes(b"labels") + (tmp_path / "sceneCategories.txt").write_bytes(b"scenes") + assert compile_module._dataset_ready("semantic_segmentation", tmp_path, dataset) + assert not compile_module._dataset_ready( + "semantic_segmentation", tmp_path, other_dataset + ) + + +def test_obb_dataset_readiness_accepts_flat_images( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Accept the flat image layout produced by the DOTAv1 organizer.""" + + data_path = tmp_path / "dotav1" + monkeypatch.setattr( + compile_module, + "get_dataset_config_for_task", + lambda task, dataset=None: { + "name": "dotav1", + "path": str(data_path), + "download": {"url": "https://example.test/dotav1.zip"}, + }, + ) + + def _organize_dotav1(**kwargs: str) -> None: + assert kwargs["output_dir"] == str(data_path) + _write_images(data_path / "images", ["P0001.png"]) + (data_path / "labels" / "val_original").mkdir(parents=True) + (data_path / "labels" / "val_original" / "P0001.txt").write_bytes(b"label") + + monkeypatch.setattr(dataset_utils, "organize_dotav1", _organize_dotav1) + monkeypatch.setattr(readiness_module, "DOTAV1_VALIDATION_SAMPLE_COUNT", 1) + + assert ( + compile_module.ensure_calibration_dataset( + "oriented_bounding_boxes", dataset="dotav1" + ) + == data_path + ) + + +def test_dense_dataset_organizers_follow_model_taxonomy( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Route dense compilation through the matching registry-backed organizer.""" + + data_path = tmp_path / "dataset" + cityscapes_images = tmp_path / "leftImg8bit_trainvaltest.zip" + cityscapes_annotations = tmp_path / "gtFine_trainvaltest.zip" + cityscapes_images.write_bytes(b"images") + cityscapes_annotations.write_bytes(b"annotations") + configs = { + "nyu-depth": { + "name": "nyu-depth", + "download": {"url": "https://example.test/nyu.zip"}, + }, + "ade20k": { + "name": "ade20k", + "download": {"url": "https://example.test/ade.zip"}, + }, + "cityscapes": { + "name": "cityscapes", + "download": { + "images_archive": cityscapes_images.name, + "annotations_archive": cityscapes_annotations.name, + }, + }, + } + calls: list[tuple[str, dict[str, str]]] = [] + monkeypatch.setattr( + compile_module, + "get_dataset_config_for_task", + lambda task, dataset=None: configs[str(dataset)], + ) + monkeypatch.setattr( + dataset_utils, + "organize_nyu_depth", + lambda **kwargs: calls.append(("nyu-depth", kwargs)), + ) + monkeypatch.setattr( + dataset_utils, + "organize_ade20k", + lambda **kwargs: calls.append(("ade20k", kwargs)), + ) + monkeypatch.setattr( + dataset_utils, + "organize_cityscapes", + lambda **kwargs: calls.append(("cityscapes", kwargs)), + ) + + compile_module._organize_dataset("depth_estimation", data_path, "nyu-depth") + compile_module._organize_dataset("semantic_segmentation", data_path, "ade20k") + compile_module._organize_dataset("semantic_segmentation", data_path, "cityscapes") + + assert calls == [ + ( + "nyu-depth", + { + "dataset_path": "https://example.test/nyu.zip", + "output_dir": str(data_path), + }, + ), + ( + "ade20k", + { + "dataset_path": "https://example.test/ade.zip", + "output_dir": str(data_path), + }, + ), + ( + "cityscapes", + { + "image_dir": str(cityscapes_images), + "annotation_dir": str(cityscapes_annotations), + "output_dir": str(data_path), + }, + ), + ] + + +def test_prepare_calibration_arrays_preserves_preprocess_output(tmp_path: Path) -> None: + """Save contiguous HWC float32 arrays matching engine preprocessing.""" + + source = _write_images(tmp_path, ["image.jpg"])[0] + expected = np.arange(18, dtype=np.float64).reshape(2, 3, 3) + + class _Engine: + def preprocess(self, image_path: str) -> np.ndarray: + assert image_path == str(source) + return expected + + saved = prepare_calibration_arrays(_Engine(), [source], tmp_path / "arrays") # type: ignore[arg-type] + actual = np.load(saved[0]) + + assert actual.dtype == np.float32 + assert actual.flags.c_contiguous + np.testing.assert_array_equal(actual, expected.astype(np.float32)) + + +def test_prepare_calibration_arrays_rejects_chw(tmp_path: Path) -> None: + """Reject preprocessing output that is not three-channel HWC data.""" + + source = _write_images(tmp_path, ["image.jpg"])[0] + + class _Engine: + def preprocess(self, image_path: str) -> np.ndarray: + return np.zeros((3, 2, 2), dtype=np.float32) + + with pytest.raises(ValueError, match="HWC three-channel"): + prepare_calibration_arrays(_Engine(), [source], tmp_path / "arrays") # type: ignore[arg-type] + + +def test_quantization_explicit_values_do_not_fetch( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Give explicit quantization values precedence over hosted metadata.""" + + monkeypatch.setattr( + compile_module, + "_fetch_quantization_config", + lambda *args: pytest.fail("hosted metadata should not be fetched"), + ) + + assert resolve_quantization_values({"repo_id": "owner/model"}, 0.98, 0.03) == ( + 0.98, + 0.03, + ) + + +@pytest.mark.parametrize("topk_key", ["topk", "topk_ratio"]) +def test_quantization_reads_both_hosted_topk_spellings( + topk_key: str, monkeypatch: pytest.MonkeyPatch +) -> None: + """Read hosted percentile conversion and both supported top-k field names.""" + + monkeypatch.setattr( + compile_module, + "_fetch_quantization_config", + lambda repo_id, revision: {"percentile": 0.002, topk_key: 0.04}, + ) + + percentile, topk = resolve_quantization_values( + {"repo_id": "owner/model", "revision": "v1"}, None, None + ) + + assert percentile == pytest.approx(0.998) + assert topk == 0.04 + + +def test_quantization_resolves_missing_values_independently( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Retain an explicit percentile while obtaining only missing top-k metadata.""" + + monkeypatch.setattr( + compile_module, + "_fetch_quantization_config", + lambda repo_id, revision: {"percentile": 0.25, "topk_ratio": 0.08}, + ) + + assert resolve_quantization_values({"repo_id": "owner/model"}, 0.97, None) == ( + 0.97, + 0.08, + ) + + +def test_quantization_warns_and_falls_back(monkeypatch: pytest.MonkeyPatch) -> None: + """Use documented defaults when optional hosted values are unavailable.""" + + monkeypatch.setattr( + compile_module, "_fetch_quantization_config", lambda repo_id, revision: None + ) + + with pytest.warns(UserWarning) as warning_records: + values = resolve_quantization_values({"repo_id": "owner/model"}, None, None) + + assert values == ( + compile_module.DEFAULT_PERCENTILE, + compile_module.DEFAULT_TOPK_RATIO, + ) + assert len(warning_records) == 2 + + +def test_quantization_rejects_malformed_hosted_json( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Raise a contextual error for malformed hosted JSON.""" + + metadata_path = tmp_path / "best_result.json" + metadata_path.write_text("{bad json", encoding="utf-8") + monkeypatch.setattr( + compile_module, "hf_hub_download", lambda **kwargs: str(metadata_path) + ) + + with pytest.raises(ValueError, match="Malformed quantization metadata JSON"): + compile_module._fetch_quantization_config("owner/model", "main") + + +def test_quantization_rejects_malformed_config_value( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Reject non-numeric hosted quantization fields.""" + + metadata_path = tmp_path / "best_result.json" + metadata_path.write_text( + json.dumps({"config": {"percentile": "invalid"}}), encoding="utf-8" + ) + monkeypatch.setattr( + compile_module, "hf_hub_download", lambda **kwargs: str(metadata_path) + ) + + with pytest.raises(ValueError, match="must be numeric"): + resolve_quantization_values({"repo_id": "owner/model"}, None, 0.01) + + +def _run_fake_compile( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + *, + task: str, + model_path: Path | None, + entry_level: str = "data", + dataset: str | None = None, + fail: bool = False, + calls: dict[str, Any] | None = None, +) -> tuple[dict[str, Any], Path]: + """Run compilation with fake engine and qbcompiler dependencies. + + Args: + monkeypatch: Pytest monkeypatch fixture. + tmp_path: Temporary test root. + task: Fake model task. + model_path: Optional user-supplied model path. + entry_level: Calibration pipeline level to supply. + dataset: Optional fake model dataset taxonomy. + fail: Whether the fake compiler should fail. + calls: Optional mapping populated even when compilation fails. + + Returns: + Captured calls and resolved hosted ONNX path. + """ + + calls = {} if calls is None else calls + hosted_onnx = tmp_path / "hosted-model.onnx" + hosted_onnx.write_bytes(b"onnx") + dataset_path = tmp_path / "dataset" + dataset = ( + dataset + or { + "image_classification": "imagenet", + "depth_estimation": "nyu-depth", + "object_detection": "coco", + "instance_segmentation": "coco", + "semantic_segmentation": "ade20k", + "pose_estimation": "coco", + "face_detection": "widerface", + "obb": "dotav1", + }[task] + ) + if task == "image_classification": + _write_images(dataset_path / "class-a", ["one.jpg"]) + elif task in {"depth_estimation", "semantic_segmentation"}: + _write_images(dataset_path / "images", ["one.jpg"]) + else: + _write_images(dataset_path / "val2017", ["one.jpg"]) + + class _Engine: + def __init__(self, **kwargs: Any) -> None: + calls["engine_kwargs"] = kwargs + resolved_path = Path(str(kwargs.get("model_path", hosted_onnx))) + self.file_cfg = {"onnx_path": str(resolved_path)} + + def preprocess(self, image_path: str) -> np.ndarray: + if entry_level == "calibration": + pytest.fail("ready calibration tensors must skip preprocessing") + calls.setdefault("preprocessed", []).append(image_path) + return np.arange(12, dtype=np.float64).reshape(2, 2, 3) + + def dispose(self) -> None: + calls["disposed"] = True + + class _CalibrationConfig: + def __init__(self, **kwargs: Any) -> None: + self.kwargs = kwargs + + def _compile(**kwargs: Any) -> None: + calls["compile_kwargs"] = kwargs + array_dir = Path(kwargs["calib_data_path"]) + calls["temporary_root"] = array_dir.parent + calls["array"] = np.load(next(array_dir.glob("*.npy"))) + calls["calibration_kwargs"] = kwargs["calibration_config"].kwargs + if fail: + raise RuntimeError("compile failed") + + monkeypatch.setattr(compile_module, "MBLT_Engine", _Engine) + monkeypatch.setattr( + compile_module, "_load_qbcompiler", lambda: (_compile, _CalibrationConfig) + ) + monkeypatch.setattr( + compile_module, + "resolve_model_config", + lambda model_cls, model_type: { + "file_cfg": { + "repo_id": "owner/model", + "revision": "main", + "filename": "hosted-model.mxq", + "onnx_path": str(hosted_onnx), + }, + "post_cfg": {"task": task, "dataset": dataset}, + }, + ) + monkeypatch.setattr( + compile_module, "resolve_quantization_values", lambda *args: (0.99, 0.02) + ) + subset_path: Path | None = None + calib_data_path: Path | None = None + original_data_path: Path | None = dataset_path + if entry_level == "subset": + original_data_path = None + subset_path = tmp_path / "provided-subset" + _write_images(subset_path, ["nested/selected.jpg"]) + elif entry_level == "calibration": + original_data_path = None + calib_data_path = tmp_path / "provided-calibration" + calib_data_path.mkdir() + np.save(calib_data_path / "selected.npy", np.ones((2, 2, 3), dtype=np.float32)) + elif entry_level != "data": + raise ValueError(f"Unsupported test entry level: {entry_level}") + + def _ensure_dataset( + task: str, data_path: str | Path | None, dataset: str | None + ) -> Path: + calls["ensure_dataset"] = (task, dataset) + if entry_level != "data": + pytest.fail(f"{entry_level} input must skip original dataset preparation") + return dataset_path + + monkeypatch.setattr(compile_module, "ensure_calibration_dataset", _ensure_dataset) + + compile_module.compile_vision_model( + "fake-model", + model_type="VARIANT", + model_path=model_path, + data_path=original_data_path, + subset_path=subset_path, + calib_data_path=calib_data_path, + subset_size=1, + ) + return calls, hosted_onnx + + +def test_compile_uses_local_onnx_and_exact_options( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Prefer a local ONNX and pass exact Aries/GPU compiler options.""" + + local_onnx = tmp_path / "local.onnx" + local_onnx.write_bytes(b"onnx") + model_dir = tmp_path / ".mblt_model_zoo" + monkeypatch.setattr(compile_module, "DEFAULT_MODEL_DIR", model_dir) + + calls, _ = _run_fake_compile( + monkeypatch, tmp_path, task="image_classification", model_path=local_onnx + ) + + assert calls["engine_kwargs"]["model_path"] == str(local_onnx) + assert calls["engine_kwargs"]["model_type"] == "VARIANT" + assert calls["compile_kwargs"] | {"calibration_config": None} == { + "model": str(local_onnx), + "calib_data_path": calls["compile_kwargs"]["calib_data_path"], + "save_path": str(model_dir / "local.mxq"), + "image_channels": 3, + "backend": "onnx", + "device": "gpu", + "target_device": "aries-rb", + "inference_scheme": "all", + "calibration_config": None, + } + assert calls["calibration_kwargs"]["output"] == 0 + assert calls["calibration_kwargs"]["method"] == 1 + assert calls["calibration_kwargs"]["mode"] == 1 + assert calls["array"].dtype == np.float32 + assert calls["disposed"] is True + assert not calls["temporary_root"].exists() + + +def test_compile_normalizes_legacy_obb_task_from_model_config( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Compile legacy custom model metadata through the canonical OBB task.""" + + calls, _ = _run_fake_compile( + monkeypatch, + tmp_path, + task="oriented_bounding_boxes", + model_path=None, + dataset="dotav1", + entry_level="calibration", + ) + + assert calls["calibration_kwargs"]["output"] == 1 + + +def test_compile_ignores_missing_local_path_and_uses_hosted_onnx( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Construct the engine without a nonexistent local path so Hub fallback applies.""" + + model_dir = tmp_path / ".mblt_model_zoo" + monkeypatch.setattr(compile_module, "DEFAULT_MODEL_DIR", model_dir) + calls, hosted_onnx = _run_fake_compile( + monkeypatch, + tmp_path, + task="object_detection", + model_path=tmp_path / "missing.onnx", + ) + + assert "model_path" not in calls["engine_kwargs"] + assert calls["compile_kwargs"]["model"] == str(hosted_onnx) + assert calls["compile_kwargs"]["save_path"] == str(model_dir / "hosted-model.mxq") + assert calls["calibration_kwargs"]["output"] == 1 + + +def test_compile_routes_semantic_calibration_by_model_dataset( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Use postprocess taxonomy to distinguish ADE20K and Cityscapes compilation.""" + + calls, _ = _run_fake_compile( + monkeypatch, + tmp_path, + task="semantic_segmentation", + dataset="cityscapes", + model_path=None, + ) + + assert calls["ensure_dataset"] == ("semantic_segmentation", "cityscapes") + assert calls["preprocessed"] + + +def test_compile_starts_from_provided_image_subset( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Skip original dataset preparation and sampling for a supplied image subset.""" + + calls, _ = _run_fake_compile( + monkeypatch, + tmp_path, + task="object_detection", + model_path=None, + entry_level="subset", + ) + + assert "ensure_dataset" not in calls + assert calls["preprocessed"] == [ + str(tmp_path / "provided-subset" / "nested" / "selected.jpg") + ] + assert not calls["temporary_root"].exists() + + +def test_compile_uses_provided_calibration_dataset_directly( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Pass ready NumPy tensors directly without image dataset processing.""" + + calls, _ = _run_fake_compile( + monkeypatch, + tmp_path, + task="object_detection", + model_path=None, + entry_level="calibration", + ) + + calibration_path = tmp_path / "provided-calibration" + assert "ensure_dataset" not in calls + assert "engine_kwargs" not in calls + assert "preprocessed" not in calls + assert calls["compile_kwargs"]["calib_data_path"] == str(calibration_path) + assert (calibration_path / "selected.npy").is_file() + + +def test_compile_rejects_multiple_data_levels() -> None: + """Reject ambiguous original, subset, and calibration path combinations.""" + + with pytest.raises(ValueError, match="Provide only one calibration pipeline input"): + compile_module.compile_vision_model( + "alexnet", data_path="original", subset_path="subset" + ) + + +def test_compile_cleans_up_and_disposes_after_failure( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Dispose the engine and delete temporary images and arrays after compiler failure.""" + + calls: dict[str, Any] = {} + with pytest.raises(RuntimeError, match="compile failed"): + _run_fake_compile( + monkeypatch, + tmp_path, + task="image_classification", + model_path=None, + fail=True, + calls=calls, + ) + + assert calls["disposed"] is True + assert not calls["temporary_root"].exists() + + +def test_cli_compile_parser_and_dispatch( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Parse compile options and dispatch them to the packaged API.""" diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py new file mode 100644 index 0000000..f8b28d1 --- /dev/null +++ b/tests/test_dataset_organizer.py @@ -0,0 +1,1002 @@ +"""Tests for dataset download organization helpers.""" + +from __future__ import annotations + +import io +import tarfile +from pathlib import Path +from typing import Any +from zipfile import ZipFile + +import pytest +import requests + +import mblt_vision.utils.datasets.organizer as organizer +from mblt_vision.utils.datasets import readiness as readiness_module + + +class _DummyTqdm: + """Minimal tqdm stub for download tests.""" + + def __init__(self, *args: Any, **kwargs: Any) -> None: + self.updated = 0 + + def __enter__(self) -> _DummyTqdm: + return self + + def __exit__(self, exc_type: object, exc: object, tb: object) -> None: + return None + + def update(self, value: int) -> None: + self.updated += value + + +class _FakeResponse: + """Simple streaming response test double.""" + + def __init__( + self, status_code: int, headers: dict[str, str], chunks: list[bytes | Exception] + ) -> None: + self.status_code = status_code + self.headers = headers + self._chunks = chunks + + def __enter__(self) -> _FakeResponse: + return self + + def __exit__(self, exc_type: object, exc: object, tb: object) -> None: + return None + + def raise_for_status(self) -> None: + return None + + def iter_content(self, chunk_size: int) -> Any: + del chunk_size + for chunk in self._chunks: + if isinstance(chunk, Exception): + raise chunk + yield chunk + + +def test_download_url_retries_and_resumes_partial_file( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Resume a partial archive download after a transient connection failure.""" + + first_chunk = b"abc" + second_chunk = b"def" + calls: list[dict[str, str]] = [] + responses = [ + _FakeResponse( + status_code=200, + headers={"Content-Length": str(len(first_chunk) + len(second_chunk))}, + chunks=[first_chunk, requests.ConnectionError("interrupted")], + ), + _FakeResponse( + status_code=206, + headers={"Content-Length": str(len(second_chunk))}, + chunks=[second_chunk], + ), + ] + + def _fake_get( + url: str, stream: bool, timeout: tuple[int, int], headers: dict[str, str] + ) -> _FakeResponse: + del url, stream, timeout + calls.append(dict(headers)) + return responses.pop(0) + + monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) + monkeypatch.setattr(organizer, "sleep", lambda _: None) + + local_path = tmp_path / "archive.tar" + result = organizer._download_url("https://example.com/archive.tar", str(local_path)) + + assert result == str(local_path) + assert local_path.read_bytes() == first_chunk + second_chunk + assert calls == [{}, {"Range": "bytes=3-"}] + + +def test_should_download_serially_for_same_host_urls() -> None: + """Serialize same-host dataset archive downloads to avoid throttling.""" + + assert organizer._should_download_serially( + [ + "https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar", + "https://image-net.org/data/ILSVRC/2012/ILSVRC2012_bbox_val_v3.tgz", + ] + ) + + assert not organizer._should_download_serially( + [ + "https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar", + "https://example.com/data/annotations.tgz", + ] + ) + + +def _create_imagenet_source(tmp_path: Path) -> tuple[Path, Path]: + """Create a small structurally valid ImageNet organizer source.""" + + image_dir = tmp_path / "source-images" + xml_dir = tmp_path / "source-xml" / "val" + image_dir.mkdir() + xml_dir.mkdir(parents=True) + for index in range(50): + stem = f"ILSVRC2012_val_{index + 1:08d}" + (image_dir / f"{stem}.JPEG").write_bytes(b"image") + (xml_dir / f"{stem}.xml").write_text( + "n00000001", + encoding="utf-8", + ) + return image_dir, xml_dir.parent + + +def _create_coco_source(tmp_path: Path) -> tuple[Path, Path]: + """Create a small COCO organizer source.""" + + image_dir = tmp_path / "source-images" + annotation_dir = tmp_path / "source-annotations" / "annotations" + image_dir.mkdir() + annotation_dir.mkdir(parents=True) + (image_dir / "000000000001.jpg").write_bytes(b"image") + (annotation_dir / "instances_val2017.json").write_text("{}", encoding="utf-8") + return image_dir, annotation_dir.parent + + +def _create_widerface_source(tmp_path: Path) -> tuple[Path, Path]: + """Create a small WiderFace organizer source.""" + + image_dir = tmp_path / "source-images" / "images" / "0--Parade" + annotation_dir = tmp_path / "source-annotations" + image_dir.mkdir(parents=True) + annotation_dir.mkdir() + (image_dir / "sample.jpg").write_bytes(b"image") + (annotation_dir / "wider_face_val.mat").write_bytes(b"metadata") + return image_dir.parent.parent, annotation_dir + + +def test_construct_imagenet_replaces_stale_output( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Replace a managed ImageNet root only after staged readiness succeeds.""" + + image_dir, xml_dir = _create_imagenet_source(tmp_path) + readiness_calls: list[tuple[str, str]] = [] + + def _dataset_ready(_: str, task: str, dataset: str) -> bool: + readiness_calls.append((task, dataset)) + return True + + monkeypatch.setattr(organizer, "dataset_ready", _dataset_ready) + + output_dir = tmp_path / "imagenet" + (output_dir / "stale-class").mkdir(parents=True) + (output_dir / "stale-class" / "stale.JPEG").write_bytes(b"stale") + + organizer.construct_imagenet(str(image_dir), str(xml_dir), str(output_dir)) + + assert {path.name for path in output_dir.iterdir()} == {"n00000001"} + assert len(list((output_dir / "n00000001").iterdir())) == 50 + assert readiness_calls == [("image_classification", "imagenet")] + + +def test_construct_coco_replaces_stale_output( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Replace a managed COCO root only after staged readiness succeeds.""" + + image_dir, annotation_dir = _create_coco_source(tmp_path) + readiness_calls: list[tuple[str, str]] = [] + + def _dataset_ready(_: str, task: str, dataset: str) -> bool: + readiness_calls.append((task, dataset)) + return True + + monkeypatch.setattr(organizer, "dataset_ready", _dataset_ready) + + output_dir = tmp_path / "coco" + (output_dir / "val2017").mkdir(parents=True) + (output_dir / "val2017" / "stale.jpg").write_bytes(b"stale") + (output_dir / "stale_val2017.json").write_text("{}", encoding="utf-8") + + organizer.construct_coco(str(image_dir), str(annotation_dir), str(output_dir)) + + assert {path.name for path in (output_dir / "val2017").iterdir()} == { + "000000000001.jpg" + } + assert {path.name for path in output_dir.iterdir()} == { + "val2017", + "instances_val2017.json", + } + assert readiness_calls == [ + ("object_detection", "coco"), + ("pose_estimation", "coco"), + ] + + +def test_construct_widerface_replaces_stale_output( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Replace a managed WiderFace root only after staged readiness succeeds.""" + + image_dir, annotation_dir = _create_widerface_source(tmp_path) + readiness_calls: list[tuple[str, str]] = [] + + def _dataset_ready(_: str, task: str, dataset: str) -> bool: + readiness_calls.append((task, dataset)) + return True + + monkeypatch.setattr(organizer, "dataset_ready", _dataset_ready) + + output_dir = tmp_path / "widerface" + (output_dir / "images" / "stale-event").mkdir(parents=True) + (output_dir / "images" / "stale-event" / "stale.jpg").write_bytes(b"stale") + (output_dir / "stale_val.mat").write_bytes(b"stale") + + organizer.construct_widerface(str(image_dir), str(annotation_dir), str(output_dir)) + + assert {path.name for path in (output_dir / "images").iterdir()} == {"0--Parade"} + assert {path.name for path in output_dir.iterdir()} == { + "images", + "wider_face_val.mat", + } + assert readiness_calls == [("face_detection", "widerface")] + + +@pytest.mark.parametrize("dataset", ["imagenet", "coco", "widerface"]) +def test_incomplete_staged_dataset_preserves_existing_cache( + tmp_path: Path, + dataset: str, +) -> None: + """Reject incomplete staged roots before replacing any existing cache.""" + + source_builders = { + "imagenet": _create_imagenet_source, + "coco": _create_coco_source, + "widerface": _create_widerface_source, + } + constructors = { + "imagenet": organizer.construct_imagenet, + "coco": organizer.construct_coco, + "widerface": organizer.construct_widerface, + } + first_source, second_source = source_builders[dataset](tmp_path) + + output_dir = tmp_path / dataset + output_dir.mkdir() + (output_dir / "valid-cache-marker").write_bytes(b"existing") + + with pytest.raises(ValueError, match="existing dataset cache was not replaced"): + constructors[dataset](str(first_source), str(second_source), str(output_dir)) + + assert (output_dir / "valid-cache-marker").read_bytes() == b"existing" + + +def test_safe_unpack_archive_preserves_regular_tar_layout(tmp_path: Path) -> None: + """Extract regular files and directories from a supported tar archive.""" + + archive_path = tmp_path / "dataset.tar" + with tarfile.open(archive_path, "w") as archive: + directory = tarfile.TarInfo("dataset/") + directory.type = tarfile.DIRTYPE + archive.addfile(directory) + payload = b"dataset contents" + member = tarfile.TarInfo("dataset/sample.txt") + member.size = len(payload) + archive.addfile(member, io.BytesIO(payload)) + + extract_dir = tmp_path / "extracted" + organizer._safe_unpack_archive(str(archive_path), str(extract_dir)) + + assert (extract_dir / "dataset" / "sample.txt").read_bytes() == b"dataset contents" + + +def test_safe_unpack_archive_rejects_tar_traversal_before_writing( + tmp_path: Path, +) -> None: + """Reject a traversal member without extracting earlier valid members.""" + + archive_path = tmp_path / "dataset.tar" + outside_path = tmp_path / "outside.txt" + with tarfile.open(archive_path, "w") as archive: + safe_payload = b"safe" + safe_member = tarfile.TarInfo("dataset/safe.txt") + safe_member.size = len(safe_payload) + archive.addfile(safe_member, io.BytesIO(safe_payload)) + outside_payload = b"outside" + outside_member = tarfile.TarInfo("../outside.txt") + outside_member.size = len(outside_payload) + archive.addfile(outside_member, io.BytesIO(outside_payload)) + + extract_dir = tmp_path / "extracted" + with pytest.raises(ValueError, match="Unsafe archive member path"): + organizer._safe_unpack_archive(str(archive_path), str(extract_dir)) + + assert not outside_path.exists() + assert not (extract_dir / "dataset" / "safe.txt").exists() + + +def test_organize_imagenet_rejects_tar_symlink_escape(tmp_path: Path) -> None: + """Reject a tar symlink before ImageNet extraction can write through it.""" + + image_archive = tmp_path / "images.tar" + xml_archive = tmp_path / "annotations.tgz" + outside_path = tmp_path / "outside.txt" + with tarfile.open(image_archive, "w") as archive: + link = tarfile.TarInfo("redirect") + link.type = tarfile.SYMTYPE + link.linkname = str(tmp_path) + archive.addfile(link) + payload = b"outside" + member = tarfile.TarInfo("redirect/outside.txt") + member.size = len(payload) + archive.addfile(member, io.BytesIO(payload)) + with tarfile.open(xml_archive, "w:gz"): + pass + + with pytest.raises(ValueError, match="Unsafe archive member type"): + organizer.organize_imagenet( + str(image_archive), str(xml_archive), str(tmp_path / "imagenet") + ) + + assert not outside_path.exists() + + +def test_organize_nyu_depth_extracts_only_validation_layout( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Install only NYU Depth validation image/depth pairs from an archive.""" + + monkeypatch.setattr(organizer, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + archive_path = tmp_path / "nyu-depth.zip" + with ZipFile(archive_path, "w") as archive: + archive.writestr("nyu-depth/images/train/nyu_train.jpg", b"training image") + archive.writestr("nyu-depth/depth/train/nyu_train.npy", b"training depth") + archive.writestr("nyu-depth/images/val/nyu_0000.jpg", b"validation image") + archive.writestr("nyu-depth/depth/val/nyu_0000.npy", b"validation depth") + + output_dir = tmp_path / "organized" + organizer.organize_nyu_depth(str(archive_path), str(output_dir)) + + assert archive_path.is_file() + assert (output_dir / "images" / "nyu_0000.jpg").read_bytes() == b"validation image" + assert (output_dir / "depth" / "nyu_0000.npy").read_bytes() == b"validation depth" + assert not (output_dir / "images" / "train").exists() + assert not (output_dir / "depth" / "train").exists() + + +@pytest.mark.parametrize("relative_path", ["images/sample.jpg", "depth/sample.npy"]) +def test_construct_nyu_depth_rejects_symlinked_data_files( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + relative_path: str, +) -> None: + """Reject NYU data symlinks without replacing an existing managed cache.""" + + monkeypatch.setattr(organizer, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + dataset_dir = tmp_path / "source" + (dataset_dir / "images").mkdir(parents=True) + (dataset_dir / "depth").mkdir() + (dataset_dir / "images" / "sample.jpg").write_bytes(b"image") + (dataset_dir / "depth" / "sample.npy").write_bytes(b"depth") + external_file = tmp_path / "secret" + external_file.write_bytes(b"outside dataset") + source_path = dataset_dir / relative_path + source_path.unlink() + source_path.symlink_to(external_file) + output_dir = tmp_path / "organized" + output_dir.mkdir() + marker = output_dir / "valid-cache-marker" + marker.write_bytes(b"existing") + + with pytest.raises(ValueError, match="must not be a symlink"): + organizer.construct_nyu_depth(str(dataset_dir), str(output_dir)) + + assert marker.read_bytes() == b"existing" + assert not (output_dir / Path(relative_path).name).exists() + + +def test_construct_nyu_depth_rejects_source_outside_resolved_root( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Reject regular files reached through a directory symlink escaping the dataset root.""" + + monkeypatch.setattr(organizer, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + dataset_dir = tmp_path / "source" + selected_root = dataset_dir / "nyu-depth" + selected_root.mkdir(parents=True) + external_images = dataset_dir / "external-images" + external_images.mkdir() + (external_images / "sample.jpg").write_bytes(b"outside dataset") + (selected_root / "images").symlink_to(external_images, target_is_directory=True) + (selected_root / "depth").mkdir() + (selected_root / "depth" / "sample.npy").write_bytes(b"depth") + + with pytest.raises(ValueError, match="must remain within dataset root"): + organizer.construct_nyu_depth(str(dataset_dir), str(tmp_path / "organized")) + + +def test_nyu_depth_install_preserves_backups_when_rollback_fails( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Leave recoverable NYU backups outside staging when rollback fails.""" + + monkeypatch.setattr(organizer, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + dataset_dir = tmp_path / "source" + (dataset_dir / "images").mkdir(parents=True) + (dataset_dir / "depth").mkdir() + (dataset_dir / "images" / "sample.jpg").write_bytes(b"new image") + (dataset_dir / "depth" / "sample.npy").write_bytes(b"new depth") + + output_dir = tmp_path / "organized" + (output_dir / "images").mkdir(parents=True) + (output_dir / "depth").mkdir() + (output_dir / "images" / "keep.jpg").write_bytes(b"old image") + (output_dir / "depth" / "keep.npy").write_bytes(b"old depth") + + real_replace = organizer.os.replace + + def _fail_install_and_rollback(source: str, destination: str) -> None: + source_path = Path(source) + destination_path = Path(destination) + if ( + source_path.parent.name.startswith(".nyu-depth-staging-") + and source_path.name == "depth" + ): + raise OSError("simulated install failure") + if ( + source_path.parent.name.startswith(".nyu-depth-backup-") + and destination_path == output_dir / "images" + ): + raise OSError("simulated rollback failure") + real_replace(source, destination) + + monkeypatch.setattr(organizer.os, "replace", _fail_install_and_rollback) + + with pytest.raises(OSError, match="backups are preserved"): + organizer.construct_nyu_depth(str(dataset_dir), str(output_dir)) + + backup_dirs = list(tmp_path.glob(".nyu-depth-backup-*")) + assert len(backup_dirs) == 1 + assert (backup_dirs[0] / "images" / "keep.jpg").read_bytes() == b"old image" + assert (backup_dirs[0] / "depth" / "keep.npy").read_bytes() == b"old depth" + + +def _create_ade20k_source(tmp_path: Path) -> Path: + """Create a compact extracted ADE20K validation source.""" + + dataset_dir = tmp_path / "ADEChallengeData2016" + (dataset_dir / "images").mkdir(parents=True) + (dataset_dir / "annotations").mkdir() + (dataset_dir / "images" / "ADE_val_00000001.jpg").write_bytes(b"validation") + (dataset_dir / "annotations" / "ADE_val_00000001.png").write_bytes(b"annotation") + (dataset_dir / "objectInfo150.txt").write_bytes(b"labels") + (dataset_dir / "sceneCategories.txt").write_bytes(b"scenes") + return dataset_dir + + +def test_organize_ade20k_extracts_flat_validation_layout( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Install only ADE20K validation image/mask pairs in the reference layout.""" + + monkeypatch.setattr(organizer, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setattr(readiness_module, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + archive_path = tmp_path / "ADEChallengeData2016.zip" + with ZipFile(archive_path, "w") as archive: + archive.writestr( + "ADEChallengeData2016/images/training/ADE_train_00000001.jpg", b"training" + ) + archive.writestr( + "ADEChallengeData2016/annotations/training/ADE_train_00000001.png", + b"training", + ) + archive.writestr( + "ADEChallengeData2016/images/validation/ADE_val_00000001.jpg", b"validation" + ) + archive.writestr( + "ADEChallengeData2016/annotations/validation/ADE_val_00000001.png", + b"validation", + ) + archive.writestr("ADEChallengeData2016/objectInfo150.txt", b"labels") + archive.writestr("ADEChallengeData2016/sceneCategories.txt", b"scenes") + + output_dir = tmp_path / "organized" + organizer.organize_ade20k(str(archive_path), str(output_dir)) + + assert ( + output_dir / "images" / "ADE_val_00000001.jpg" + ).read_bytes() == b"validation" + assert ( + output_dir / "annotations" / "ADE_val_00000001.png" + ).read_bytes() == b"validation" + assert (output_dir / "objectInfo150.txt").read_bytes() == b"labels" + assert (output_dir / "sceneCategories.txt").read_bytes() == b"scenes" + assert not (output_dir / "images" / "training").exists() + + +def test_construct_ade20k_requires_metadata_before_replacing_cache( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Preserve the cache when an ADE20K source omits required metadata.""" + + monkeypatch.setattr(organizer, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + dataset_dir = _create_ade20k_source(tmp_path) + (dataset_dir / "sceneCategories.txt").unlink() + output_dir = tmp_path / "organized" + output_dir.mkdir() + (output_dir / "valid-cache-marker").write_bytes(b"existing") + + with pytest.raises(ValueError, match="sceneCategories.txt"): + organizer.construct_ade20k(str(dataset_dir), str(output_dir)) + + assert (output_dir / "valid-cache-marker").read_bytes() == b"existing" + + +@pytest.mark.parametrize( + "relative_path", + [ + "images/ADE_val_00000001.jpg", + "annotations/ADE_val_00000001.png", + "objectInfo150.txt", + "sceneCategories.txt", + ], +) +def test_construct_ade20k_rejects_symlinked_sources( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + relative_path: str, +) -> None: + """Reject ADE20K data and metadata symlinks before replacing a managed cache.""" + + monkeypatch.setattr(organizer, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + dataset_dir = _create_ade20k_source(tmp_path) + external_file = tmp_path / "secret" + external_file.write_bytes(b"outside dataset") + source_path = dataset_dir / relative_path + source_path.unlink() + source_path.symlink_to(external_file) + output_dir = tmp_path / "organized" + output_dir.mkdir() + marker = output_dir / "valid-cache-marker" + marker.write_bytes(b"existing") + + with pytest.raises(ValueError, match="must not be a symlink"): + organizer.construct_ade20k(str(dataset_dir), str(output_dir)) + + assert marker.read_bytes() == b"existing" + + +def test_construct_ade20k_preserves_cache_when_metadata_staging_fails( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Preserve the cache when copying required ADE20K metadata into staging fails.""" + + monkeypatch.setattr(organizer, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + dataset_dir = _create_ade20k_source(tmp_path) + output_dir = tmp_path / "organized" + output_dir.mkdir() + (output_dir / "valid-cache-marker").write_bytes(b"existing") + real_copy2 = organizer.shutil.copy2 + + def _fail_scene_metadata_copy(source: str, destination: str) -> str: + if Path(source).name == "sceneCategories.txt": + raise OSError("simulated metadata copy failure") + return real_copy2(source, destination) + + monkeypatch.setattr(organizer.shutil, "copy2", _fail_scene_metadata_copy) + + with pytest.raises(OSError, match="simulated metadata copy failure"): + organizer.construct_ade20k(str(dataset_dir), str(output_dir)) + + assert (output_dir / "valid-cache-marker").read_bytes() == b"existing" + + +def _write_cityscapes_archives( + tmp_path: Path, sample_ids: list[str] +) -> tuple[Path, Path]: + """Create compact official-layout Cityscapes ZIP fixtures.""" + + image_archive = tmp_path / "leftImg8bit_trainvaltest.zip" + annotation_archive = tmp_path / "gtFine_trainvaltest.zip" + with ZipFile(image_archive, "w") as archive: + archive.writestr( + "leftImg8bit/train/aachen/aachen_000000_000001_leftImg8bit.png", + b"train image", + ) + archive.writestr( + "leftImg8bit/test/berlin/berlin_000000_000001_leftImg8bit.png", + b"test image", + ) + for sample_id in sample_ids: + city = sample_id.split("_", maxsplit=1)[0] + archive.writestr( + f"leftImg8bit/val/{city}/{sample_id}_leftImg8bit.png", + f"image:{sample_id}".encode(), + ) + with ZipFile(annotation_archive, "w") as archive: + archive.writestr( + "gtFine/train/aachen/aachen_000000_000001_gtFine_labelIds.png", + b"train mask", + ) + for sample_id in sample_ids: + city = sample_id.split("_", maxsplit=1)[0] + archive.writestr( + f"gtFine/val/{city}/{sample_id}_gtFine_labelIds.png", + f"mask:{sample_id}".encode(), + ) + archive.writestr( + f"gtFine/val/{city}/{sample_id}_gtFine_color.png", b"color" + ) + archive.writestr( + f"gtFine/val/{city}/{sample_id}_gtFine_instanceIds.png", b"instance" + ) + archive.writestr( + f"gtFine/val/{city}/{sample_id}_gtFine_polygons.json", b"{}" + ) + archive.writestr( + f"gtFine/val/{city}/{sample_id}_gtFine_trainIds.png", b"train IDs" + ) + return image_archive, annotation_archive + + +@pytest.mark.parametrize("dataset", ["nyu-depth", "ade20k", "cityscapes"]) +def test_dense_organizers_reject_symlinked_output_roots( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + dataset: str, +) -> None: + """Fail before organizing through a symlinked managed root or ancestor.""" + + if dataset == "nyu-depth": + monkeypatch.setattr(organizer, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + source_dir = tmp_path / "nyu-source" + (source_dir / "images").mkdir(parents=True) + (source_dir / "depth").mkdir() + (source_dir / "images" / "sample.jpg").write_bytes(b"image") + (source_dir / "depth" / "sample.npy").write_bytes(b"depth") + + def organizer_fn(output_dir: str) -> None: + organizer.organize_nyu_depth(str(source_dir), output_dir) + elif dataset == "ade20k": + monkeypatch.setattr(organizer, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + source_dir = _create_ade20k_source(tmp_path) + + def organizer_fn(output_dir: str) -> None: + organizer.organize_ade20k(str(source_dir), output_dir) + else: + monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 1) + image_archive, annotation_archive = _write_cityscapes_archives( + tmp_path, + ["lindau_000000_000019"], + ) + + def organizer_fn(output_dir: str) -> None: + organizer.organize_cityscapes( + str(image_archive), + str(annotation_archive), + output_dir, + ) + + for topology in ( + "root", + "ancestor", + "normalized-ancestor", + "symlink-parent-traversal", + ): + if topology == "root": + protected_dir = tmp_path / "root-target" + protected_dir.mkdir() + output_dir = tmp_path / "managed" + output_dir.symlink_to(protected_dir, target_is_directory=True) + elif topology == "ancestor": + target_parent = tmp_path / "ancestor-target" + protected_dir = target_parent / "managed" + protected_dir.mkdir(parents=True) + symlinked_parent = tmp_path / "datasets-link" + symlinked_parent.symlink_to(target_parent, target_is_directory=True) + output_dir = symlinked_parent / "managed" + elif topology == "normalized-ancestor": + target_parent = tmp_path / "normalized-ancestor-target" + protected_dir = target_parent / "managed" + protected_dir.mkdir(parents=True) + symlinked_parent = tmp_path / "normalized-datasets-link" + symlinked_parent.symlink_to(target_parent, target_is_directory=True) + output_dir = tmp_path / "missing" / ".." / symlinked_parent.name / "managed" + else: + target_parent = tmp_path / "traversal-target" + target_child = target_parent / "child" + target_child.mkdir(parents=True) + protected_dir = target_parent / "traversed-managed" + protected_dir.mkdir() + symlinked_parent = tmp_path / "traversal-link" + symlinked_parent.symlink_to(target_child, target_is_directory=True) + output_dir = symlinked_parent / ".." / protected_dir.name + marker = protected_dir / "keep" + marker.write_bytes(b"existing") + + with pytest.raises(ValueError, match="existing parents must not be symlinks"): + organizer_fn(str(output_dir)) + + assert marker.read_bytes() == b"existing" + assert list(protected_dir.iterdir()) == [marker] + + +@pytest.mark.parametrize( + ("dataset", "layout_name"), + [ + ("nyu-depth", "images"), + ("nyu-depth", "depth"), + ("ade20k", "images"), + ("ade20k", "annotations"), + ("cityscapes", "images"), + ("cityscapes", "annotations"), + ], +) +def test_dense_organizers_reject_symlinked_output_layout_directories( + tmp_path: Path, + dataset: str, + layout_name: str, +) -> None: + """Reject symlinked managed layout children without modifying their targets.""" + + output_dir = tmp_path / "managed" + output_dir.mkdir() + protected_dir = tmp_path / "protected-layout" + protected_dir.mkdir() + marker = protected_dir / "keep" + marker.write_bytes(b"existing") + (output_dir / layout_name).symlink_to(protected_dir, target_is_directory=True) + + with pytest.raises(ValueError, match="layout directories must not be symlinks"): + if dataset == "nyu-depth": + organizer.organize_nyu_depth("unused", str(output_dir)) + elif dataset == "ade20k": + organizer.organize_ade20k("unused", str(output_dir)) + else: + organizer.organize_cityscapes( + "unused-images", "unused-annotations", str(output_dir) + ) + + assert marker.read_bytes() == b"existing" + assert list(protected_dir.iterdir()) == [marker] + assert (output_dir / layout_name).is_symlink() + + +def test_organize_cityscapes_materializes_lossless_validation_pairs( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Copy only exactly paired validation images and label-ID masks without transcoding.""" + + monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 2) + sample_ids = ["frankfurt_000000_000294", "munster_000001_000019"] + image_archive, annotation_archive = _write_cityscapes_archives(tmp_path, sample_ids) + output_dir = tmp_path / "cityscapes" + (output_dir / "images").mkdir(parents=True) + (output_dir / "annotations").mkdir() + (output_dir / "images" / "stale.png").write_bytes(b"stale") + (output_dir / "annotations" / "stale.png").write_bytes(b"stale") + + organizer.organize_cityscapes( + str(image_archive), str(annotation_archive), str(output_dir) + ) + + image_paths = sorted((output_dir / "images").glob("*.png")) + annotation_paths = sorted((output_dir / "annotations").glob("*.png")) + assert [path.name for path in image_paths] == [ + f"{sample_id}.png" for sample_id in sample_ids + ] + assert [path.name for path in annotation_paths] == [ + f"{sample_id}.png" for sample_id in sample_ids + ] + assert image_paths[0].read_bytes() == f"image:{sample_ids[0]}".encode() + assert annotation_paths[0].read_bytes() == f"mask:{sample_ids[0]}".encode() + assert not list(output_dir.rglob("*train*")) + assert not list(output_dir.rglob("*color*")) + assert not list(output_dir.rglob("*instance*")) + assert not list(output_dir.rglob("*.json")) + + +def test_organize_cityscapes_enforces_validation_pair_count( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Reject incomplete validation sources before replacing existing data.""" + + monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 2) + image_archive, annotation_archive = _write_cityscapes_archives( + tmp_path, ["lindau_000000_000019"] + ) + output_dir = tmp_path / "cityscapes" + (output_dir / "images").mkdir(parents=True) + marker = output_dir / "images" / "keep.png" + marker.write_bytes(b"keep") + + with pytest.raises(ValueError, match="must contain 2 pairs"): + organizer.organize_cityscapes( + str(image_archive), str(annotation_archive), str(output_dir) + ) + + assert marker.read_bytes() == b"keep" + + +def test_organize_cityscapes_rejects_mismatched_and_malformed_sources( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Require exact official stems and reject malformed validation candidates.""" + + monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 1) + image_archive, annotation_archive = _write_cityscapes_archives( + tmp_path, ["lindau_000000_000019"] + ) + with ZipFile(annotation_archive, "w") as archive: + archive.writestr( + "gtFine/val/lindau/lindau_000000_000020_gtFine_labelIds.png", b"mask" + ) + with pytest.raises(ValueError, match="mismatch"): + organizer.organize_cityscapes( + str(image_archive), str(annotation_archive), str(tmp_path / "mismatched") + ) + + with ZipFile(annotation_archive, "w") as archive: + archive.writestr( + "gtFine/val/lindau/frankfurt_000000_000019_gtFine_labelIds.png", b"mask" + ) + with pytest.raises(ValueError, match="Malformed Cityscapes annotation filename"): + organizer.organize_cityscapes( + str(image_archive), str(annotation_archive), str(tmp_path / "malformed") + ) + + +def test_organize_cityscapes_rejects_non_zip_duplicate_and_unsafe_inputs( + tmp_path: Path, +) -> None: + """Reject invalid ZIPs, duplicate members, and traversal paths before installation.""" + + invalid_archive = tmp_path / "invalid.zip" + invalid_archive.write_bytes(b"not a zip") + valid_image_archive, valid_annotation_archive = _write_cityscapes_archives( + tmp_path, + ["lindau_000000_000019"], + ) + with pytest.raises(ValueError, match="does not exist"): + organizer.organize_cityscapes( + str(tmp_path / "missing.zip"), + str(valid_annotation_archive), + str(tmp_path / "missing"), + ) + with pytest.raises(ValueError, match="must be a valid ZIP"): + organizer.organize_cityscapes( + str(invalid_archive), + str(valid_annotation_archive), + str(tmp_path / "invalid"), + ) + + duplicate_archive = tmp_path / "duplicate.zip" + duplicate_member = "leftImg8bit/val/lindau/lindau_000000_000019_leftImg8bit.png" + with pytest.warns(UserWarning, match="Duplicate name"): + with ZipFile(duplicate_archive, "w") as archive: + archive.writestr(duplicate_member, b"first") + archive.writestr(duplicate_member, b"second") + with pytest.raises(ValueError, match="duplicate members"): + organizer.organize_cityscapes( + str(duplicate_archive), + str(valid_annotation_archive), + str(tmp_path / "duplicate"), + ) + + unsafe_archive = tmp_path / "unsafe.zip" + outside_marker = tmp_path / "outside.png" + with ZipFile(unsafe_archive, "w") as archive: + archive.writestr("../outside.png", b"outside") + with pytest.raises(ValueError, match="Unsafe archive member path"): + organizer.organize_cityscapes( + str(unsafe_archive), str(valid_annotation_archive), str(tmp_path / "unsafe") + ) + assert not outside_marker.exists() + + +def test_organize_cityscapes_rolls_back_failed_atomic_replacement( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Restore both previous directories if the staged installation fails.""" + + monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 1) + image_archive, annotation_archive = _write_cityscapes_archives( + tmp_path, ["lindau_000000_000019"] + ) + output_dir = tmp_path / "cityscapes" + (output_dir / "images").mkdir(parents=True) + (output_dir / "annotations").mkdir() + (output_dir / "images" / "keep.png").write_bytes(b"old image") + (output_dir / "annotations" / "keep.png").write_bytes(b"old annotation") + real_replace = organizer.os.replace + failed = False + + def _fail_annotation_install(source: str, destination: str) -> None: + nonlocal failed + if ( + not failed + and Path(source).name == "annotations" + and Path(destination) == output_dir / "annotations" + ): + failed = True + raise OSError("simulated install failure") + real_replace(source, destination) + + monkeypatch.setattr(organizer.os, "replace", _fail_annotation_install) + + with pytest.raises(OSError, match="simulated"): + organizer.organize_cityscapes( + str(image_archive), str(annotation_archive), str(output_dir) + ) + + assert (output_dir / "images" / "keep.png").read_bytes() == b"old image" + assert (output_dir / "annotations" / "keep.png").read_bytes() == b"old annotation" + + +def test_dense_install_preserves_backups_when_rollback_fails( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Keep recoverable backups outside staging when rollback cannot finish.""" + + staging_dir = tmp_path / ".staging" + staged_images = staging_dir / "images" + staged_annotations = staging_dir / "annotations" + staged_images.mkdir(parents=True) + staged_annotations.mkdir() + (staged_images / "new.png").write_bytes(b"new image") + (staged_annotations / "new.png").write_bytes(b"new annotation") + + output_dir = tmp_path / "organized" + (output_dir / "images").mkdir(parents=True) + (output_dir / "annotations").mkdir() + (output_dir / "images" / "keep.png").write_bytes(b"old image") + (output_dir / "annotations" / "keep.png").write_bytes(b"old annotation") + + real_replace = organizer.os.replace + + def _fail_install_and_rollback(source: str, destination: str) -> None: + source_path = Path(source) + destination_path = Path(destination) + if source_path == staged_annotations: + raise OSError("simulated install failure") + if ( + source_path.parent.name.startswith(".dense-backup-") + and destination_path == output_dir / "images" + ): + raise OSError("simulated rollback failure") + real_replace(source, destination) + + monkeypatch.setattr(organizer.os, "replace", _fail_install_and_rollback) + + replacements = ( + (str(staged_images), str(output_dir / "images")), + (str(staged_annotations), str(output_dir / "annotations")), + ) + with pytest.raises(OSError, match="backups are preserved"): + organizer._replace_staged_directories( + replacements, str(tmp_path), ".dense-backup-" + ) + + backup_dirs = list(tmp_path.glob(".dense-backup-*")) + assert len(backup_dirs) == 1 + assert (backup_dirs[0] / "images" / "keep.png").read_bytes() == b"old image" + assert ( + backup_dirs[0] / "annotations" / "keep.png" + ).read_bytes() == b"old annotation" diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py new file mode 100644 index 0000000..53b63a5 --- /dev/null +++ b/tests/test_dataset_readiness.py @@ -0,0 +1,296 @@ +"""Tests for organized vision dataset identity and completeness checks.""" + +from __future__ import annotations + +import json +from pathlib import Path + +import numpy as np +import pytest +from scipy.io import savemat + +from mblt_vision.utils.datasets import readiness + + +def _write_file(path: Path) -> None: + """Create a placeholder dataset file and its parent directories.""" + + path.parent.mkdir(parents=True, exist_ok=True) + path.write_bytes(b"data") + + +def _write_widerface_metadata(path: Path, event_images: dict[str, list[str]]) -> None: + """Write the WiderFace event and image-name cell arrays used by readiness.""" + + event_list = np.empty((len(event_images), 1), dtype=object) + file_list = np.empty((len(event_images), 1), dtype=object) + for index, (event_name, image_stems) in enumerate(event_images.items()): + event_list[index, 0] = event_name + file_list[index, 0] = np.array([[stem] for stem in image_stems], dtype=object) + savemat(path, {"event_list": event_list, "file_list": file_list}) + + +def test_imagenet_readiness_requires_complete_official_class_tree( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Reject incomplete or non-ImageNet classification directory trees.""" + + monkeypatch.setattr(readiness, "IMAGENET_CLASS_COUNT", 2) + monkeypatch.setattr(readiness, "IMAGENET_IMAGES_PER_CLASS", 2) + for class_index in range(2): + for image_index in range(2): + if (class_index, image_index) == (1, 1): + continue + _write_file( + tmp_path + / f"n{class_index:08d}" + / f"ILSVRC2012_val_{class_index * 2 + image_index + 1:08d}.JPEG" + ) + + assert not readiness.dataset_ready(tmp_path, "image_classification", "imagenet") + + _write_file(tmp_path / "n00000001" / "ILSVRC2012_val_00000004.JPEG") + + assert readiness.dataset_ready(tmp_path, "image_classification", "imagenet") + assert not readiness.dataset_ready(tmp_path, "image_classification", "coco") + + +@pytest.mark.parametrize( + ("task", "annotation_name"), + [ + ("object_detection", "instances_val2017.json"), + ("instance_segmentation", "instances_val2017.json"), + ("pose_estimation", "person_keypoints_val2017.json"), + ], +) +def test_coco_readiness_matches_images_to_task_annotations( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + task: str, + annotation_name: str, +) -> None: + """Require every official COCO image in the task-specific annotation file.""" + + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 2) + image_names = ["000000000001.jpg", "000000000002.jpg"] + for image_name in image_names: + _write_file(tmp_path / "val2017" / image_name) + (tmp_path / annotation_name).write_text( + json.dumps({"images": [{"file_name": image_names[0]}]}), + encoding="utf-8", + ) + + assert not readiness.dataset_ready(tmp_path, task, "coco") + + (tmp_path / annotation_name).write_text( + json.dumps( + {"images": [{"file_name": image_name} for image_name in image_names]} + ), + encoding="utf-8", + ) + + assert readiness.dataset_ready(tmp_path, task, "coco") + assert not readiness.dataset_ready(tmp_path, task, "imagenet") + + +@pytest.mark.parametrize("relative_image_dir", ["images", "images/val"]) +def test_dotav1_readiness_requires_complete_image_label_pairs( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + relative_image_dir: str, +) -> None: + """Accept flat and legacy DOTA images only when every image has a label.""" + + monkeypatch.setattr(readiness, "DOTAV1_VALIDATION_SAMPLE_COUNT", 2) + for stem in ("P0001", "P0002"): + _write_file(tmp_path / relative_image_dir / f"{stem}.png") + _write_file(tmp_path / "labels" / "val_original" / "P0001.txt") + + assert not readiness.dataset_ready(tmp_path, "obb", "dotav1") + + _write_file(tmp_path / "labels" / "val" / "P0002.txt") + + assert readiness.dataset_ready(tmp_path, "obb", "dotav1") + + external_image = tmp_path / "external.png" + external_label = tmp_path / "external.txt" + _write_file(external_image) + _write_file(external_label) + image_path = tmp_path / relative_image_dir / "P0001.png" + label_path = tmp_path / "labels" / "val" / "P0002.txt" + image_path.unlink() + label_path.unlink() + image_path.symlink_to(external_image) + label_path.symlink_to(external_label) + + assert readiness.dataset_ready(tmp_path, "obb", "dotav1") + + +def test_widerface_readiness_requires_complete_event_tree_and_metadata( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Require all WiderFace validation events, images, and evaluation metadata.""" + + monkeypatch.setattr(readiness, "WIDERFACE_EVENT_COUNT", 2) + monkeypatch.setattr(readiness, "WIDERFACE_VALIDATION_SAMPLE_COUNT", 2) + _write_widerface_metadata( + tmp_path / "wider_face_val.mat", + {"0--Parade": ["sample-0"], "1--Handshaking": ["sample-1"]}, + ) + for file_name in ( + "wider_easy_val.mat", + "wider_medium_val.mat", + "wider_hard_val.mat", + ): + _write_file(tmp_path / file_name) + _write_file(tmp_path / "images" / "0--Parade" / "sample-0.jpg") + (tmp_path / "images" / "1--Handshaking").mkdir() + + assert not readiness.dataset_ready(tmp_path, "face_detection", "widerface") + + _write_file(tmp_path / "images" / "1--Handshaking" / "sample-1.jpg") + + assert readiness.dataset_ready(tmp_path, "face_detection", "widerface") + assert not readiness.dataset_ready(tmp_path, "face_detection", "coco") + + +@pytest.mark.parametrize( + ("event_name", "image_name"), + [ + ("0--Parade", "stale"), + ("1--Handshaking", "expected"), + ], +) +def test_widerface_readiness_rejects_tree_not_named_by_metadata( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + event_name: str, + image_name: str, +) -> None: + """Reject complete-looking trees whose event or image identity differs from metadata.""" + + monkeypatch.setattr(readiness, "WIDERFACE_EVENT_COUNT", 1) + monkeypatch.setattr(readiness, "WIDERFACE_VALIDATION_SAMPLE_COUNT", 1) + _write_widerface_metadata( + tmp_path / "wider_face_val.mat", {"0--Parade": ["expected"]} + ) + for file_name in ( + "wider_easy_val.mat", + "wider_medium_val.mat", + "wider_hard_val.mat", + ): + _write_file(tmp_path / file_name) + _write_file(tmp_path / "images" / event_name / f"{image_name}.jpg") + + assert not readiness.dataset_ready(tmp_path, "face_detection", "widerface") + + +def test_ade20k_readiness_requires_source_metadata( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Require both ADE20K metadata files before reusing an organized cache.""" + + monkeypatch.setattr(readiness, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + _write_file(tmp_path / "images" / "ADE_val_00000001.jpg") + _write_file(tmp_path / "annotations" / "ADE_val_00000001.png") + + assert not readiness.dataset_ready(tmp_path, "semantic_segmentation", "ade20k") + + _write_file(tmp_path / "objectInfo150.txt") + assert not readiness.dataset_ready(tmp_path, "semantic_segmentation", "ade20k") + + _write_file(tmp_path / "sceneCategories.txt") + assert readiness.dataset_ready(tmp_path, "semantic_segmentation", "ade20k") + + +@pytest.mark.parametrize( + ("dataset", "task", "relative_path"), + [ + ("nyu-depth", "depth_estimation", "images/sample.jpg"), + ("nyu-depth", "depth_estimation", "depth/sample.npy"), + ("nyu-depth", "depth_estimation", "images/extra.jpg"), + ("ade20k", "semantic_segmentation", "images/ADE_val_00000001.jpg"), + ("ade20k", "semantic_segmentation", "annotations/ADE_val_00000001.png"), + ("ade20k", "semantic_segmentation", "objectInfo150.txt"), + ], +) +def test_dense_readiness_rejects_symlinked_files( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + dataset: str, + task: str, + relative_path: str, +) -> None: + """Do not reuse a complete-looking dense cache containing symlinked files.""" + + monkeypatch.setattr(readiness, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setattr(readiness, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + if dataset == "nyu-depth": + _write_file(tmp_path / "images" / "sample.jpg") + _write_file(tmp_path / "depth" / "sample.npy") + else: + _write_file(tmp_path / "images" / "ADE_val_00000001.jpg") + _write_file(tmp_path / "annotations" / "ADE_val_00000001.png") + for file_name in readiness.ADE20K_METADATA_FILES: + _write_file(tmp_path / file_name) + external_file = tmp_path.parent / f"{tmp_path.name}-outside" + external_file.write_bytes(b"outside dataset") + source_path = tmp_path / relative_path + if source_path.exists(): + source_path.unlink() + source_path.symlink_to(external_file) + + assert not readiness.dataset_ready(tmp_path, task, dataset) + + +def test_dense_readiness_rejects_symlinked_root_ancestors( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Do not reuse complete dense roots reached through a symlinked parent.""" + + monkeypatch.setattr(readiness, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setattr(readiness, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + target_parent = tmp_path / "target" + nyu_root = target_parent / "nyu-depth" + _write_file(nyu_root / "images" / "sample.jpg") + _write_file(nyu_root / "depth" / "sample.npy") + ade20k_root = target_parent / "ade20k" + _write_file(ade20k_root / "images" / "ADE_val_00000001.jpg") + _write_file(ade20k_root / "annotations" / "ADE_val_00000001.png") + for file_name in readiness.ADE20K_METADATA_FILES: + _write_file(ade20k_root / file_name) + symlinked_parent = tmp_path / "datasets" + symlinked_parent.symlink_to(target_parent, target_is_directory=True) + + assert not readiness.dataset_ready( + symlinked_parent / "nyu-depth", "depth_estimation", "nyu-depth" + ) + assert not readiness.dataset_ready( + symlinked_parent / "ade20k", "semantic_segmentation", "ade20k" + ) + + existing_dir = tmp_path / "existing" + existing_dir.mkdir() + traversed_parent = existing_dir / ".." / symlinked_parent.name + assert not readiness.dataset_ready( + traversed_parent / "nyu-depth", "depth_estimation", "nyu-depth" + ) + assert not readiness.dataset_ready( + traversed_parent / "ade20k", "semantic_segmentation", "ade20k" + ) + + target_child = target_parent / "child" + target_child.mkdir() + traversal_link = tmp_path / "traversal-link" + traversal_link.symlink_to(target_child, target_is_directory=True) + symlink_traversed_parent = traversal_link / ".." + assert not readiness.dataset_ready( + symlink_traversed_parent / "nyu-depth", "depth_estimation", "nyu-depth" + ) + assert not readiness.dataset_ready( + symlink_traversed_parent / "ade20k", "semantic_segmentation", "ade20k" + ) diff --git a/tests/test_depth_estimation.py b/tests/test_depth_estimation.py new file mode 100644 index 0000000..a29ac7c --- /dev/null +++ b/tests/test_depth_estimation.py @@ -0,0 +1,94 @@ +"""Unit tests for YOLO26 depth-estimation support.""" + +from __future__ import annotations + + +import pytest +import torch +from mblt_vision.utils.postprocess import DepthPost + +from mblt_vision.wrapper import resolve_model_config + + +@pytest.mark.parametrize( + ("model_name", "task"), + [ + ("yolo26s", "object_detection"), + ("yolo26s-seg", "instance_segmentation"), + ("yolo26s-pose", "pose_estimation"), + ("yolo26s-obb", "obb"), + ], +) +def test_other_yolo_validation_tasks_keep_letterbox(model_name: str, task: str) -> None: + """Keep aspect-preserving letterbox preprocessing for non-depth YOLO tasks.""" + + config = resolve_model_config(model_name) + assert "LetterBox" in config["pre_cfg"] + assert "Resize" not in config["pre_cfg"] + assert config["post_cfg"]["task"] == task + + +def test_depth_post_restores_letterbox_padding() -> None: + """Crop letterbox padding before bilinearly restoring an original image shape.""" + + post = DepthPost({"LetterBox": {"img_size": [8, 8]}}, {}) + output = torch.zeros((1, 1, 8, 8)) + output[:, :, 2:6, :] = 2.0 + restored = post(output, img0_shape=(2, 4), ratio_pad=((2.0, 2.0), (0.0, 2.0))) + assert isinstance(restored, torch.Tensor) + assert restored.shape == (2, 4) + assert torch.allclose(restored, torch.full((2, 4), 2.0)) + with pytest.raises(ValueError, match=r"expects \[B, 1, H, W\] or \[B, H, W, 1\]"): + post(torch.zeros((1, 2, 8, 8))) + + +def test_depth_post_normalizes_quarter_resolution_mxq_before_restoring() -> None: + """Upsample the MXQ depth layout before undoing letterbox padding.""" + + post = DepthPost({"LetterBox": {"img_size": [8, 8]}}, {}) + mxq_depth = torch.arange(4, dtype=torch.float32).reshape(1, 2, 2) + expected = torch.nn.functional.interpolate( + mxq_depth[:, None], scale_factor=4.0, mode="bilinear", align_corners=False + )[:, 0] + + normalized = post(mxq_depth) + assert isinstance(normalized, torch.Tensor) + assert torch.equal(normalized, expected) + + restored = post(mxq_depth, img0_shape=(2, 4), ratio_pad=((2.0, 2.0), (0.0, 2.0))) + assert isinstance(restored, torch.Tensor) + assert restored.shape == (2, 4) + expected_restored = torch.nn.functional.interpolate( + expected[0, 2:6][None, None], size=(2, 4), mode="bilinear", align_corners=False + )[0, 0] + assert torch.equal(restored, expected_restored) + + +def test_depth_post_keeps_full_resolution_onnx_output_and_rejects_other_scales() -> ( + None +): + """Keep ONNX depth unchanged while rejecting unsupported dense output scales.""" + + post = DepthPost({"LetterBox": {"img_size": [8, 8]}}, {}) + full_resolution = torch.arange(64, dtype=torch.float32).reshape(1, 1, 8, 8) + normalized = post(full_resolution) + assert isinstance(normalized, torch.Tensor) + assert torch.equal(normalized, full_resolution[:, 0]) + + with pytest.raises(ValueError, match="spatial shape must be"): + post(torch.zeros((1, 3, 3))) + + +def test_depth_post_normalizes_full_resolution_channel_last_mxq_output() -> None: + """Normalize batched and single-image baked MXQ resize outputs without resizing again.""" + + post = DepthPost({"LetterBox": {"img_size": [8, 8]}}, {}) + full_resolution = torch.arange(64, dtype=torch.float32).reshape(1, 8, 8, 1) + normalized = post(full_resolution) + assert isinstance(normalized, torch.Tensor) + assert torch.equal(normalized, full_resolution[..., 0]) + + single_image = full_resolution[0] + normalized_single_image = post(single_image) + assert isinstance(normalized_single_image, torch.Tensor) + assert torch.equal(normalized_single_image, full_resolution[..., 0]) diff --git a/tests/test_face_detection.py b/tests/test_face_detection.py new file mode 100644 index 0000000..58a8091 --- /dev/null +++ b/tests/test_face_detection.py @@ -0,0 +1,123 @@ +"""CPU regression tests for face-detection postprocessing and exports.""" + +from __future__ import annotations + +from typing import Any, cast + +import cv2 +import numpy as np +import pytest +import torch +from mblt_vision.utils.postprocess import build_postprocess +from mblt_vision.utils.postprocess.base import YOLODetectionPostBase +from mblt_vision.utils.postprocess.yolo_anchor_post import YOLOAnchorDetectionPost +from mblt_vision.utils.postprocess.yolo_anchorless_post import ( + YOLOAnchorlessDetectionPost, +) +from mblt_vision.utils.postprocess.yolo_dflfree_post import YOLODFLFreeDetectionPost +from mblt_vision.utils.postprocess.yolo_nmsfree_post import YOLONMSFreeDetectionPost + +from mblt_vision import YOLO11m_face, list_models +from mblt_vision.face_detection import YOLO11m_face as FaceDetectionYOLO11mFace +from mblt_vision.utils.results import Results + + +def _pre_cfg() -> dict[str, Any]: + """Return a representative face preprocessing configuration.""" + + return {"LetterBox": {"img_size": [640, 640]}} + + +def _post_cfg(**overrides: Any) -> dict[str, Any]: + """Return a representative face postprocessing configuration.""" + + return { + "task": "face_detection", + "nl": 3, + "reg_max": 16, + "conf_thres": 0.25, + **overrides, + } + + +@pytest.mark.parametrize( + ("post_cfg", "expected_type"), + [ + ({"nl": 3, "reg_max": 16}, YOLOAnchorlessDetectionPost), + ({"nl": 3, "dflfree": True}, YOLODFLFreeDetectionPost), + ({"nl": 3, "nmsfree": True}, YOLONMSFreeDetectionPost), + ({"anchors": [[10, 13, 16, 30, 33, 23]]}, YOLOAnchorDetectionPost), + ], +) +def test_face_detection_routes_postprocessors( + post_cfg: dict[str, Any], expected_type: type[YOLODetectionPostBase] +) -> None: + """Route every supported face head family to its YOLO postprocessor.""" + + postprocessor = build_postprocess(_pre_cfg(), _post_cfg(**post_cfg)) + + assert isinstance(postprocessor, expected_type) + assert cast(YOLODetectionPostBase, postprocessor).nc == 1 + + +def test_face_detection_exports_and_plot_label( + monkeypatch: pytest.MonkeyPatch, tmp_path: Any +) -> None: + """Preserve legacy exports and render a face-specific detection label.""" + + assert "YOLO11m_face" in list_models("face_detection")["face_detection"] + assert YOLO11m_face is FaceDetectionYOLO11mFace + source_path = tmp_path / "source.jpg" + output_path = tmp_path / "face.jpg" + cv2.imwrite(str(source_path), np.full((32, 32, 3), 255, dtype=np.uint8)) + labels: list[str] = [] + original_put_text = cv2.putText + monkeypatch.setattr( + cv2, + "putText", + lambda *args, **kwargs: ( + labels.append(args[1]), + original_put_text(*args, **kwargs), + )[1], + ) + + Results( + _pre_cfg(), + {"task": "face_detection"}, + [torch.tensor([[1, 1, 16, 16, 0.95, 0]])], + ).plot(str(source_path), save_path=str(output_path)) + + assert output_path.is_file() + assert labels == ["face 95%"] + + +def test_face_detection_non_e2e_converted_and_raw_outputs() -> None: + """Keep converted and raw face heads available through the legacy non-E2E contract.""" + + postprocessor = build_postprocess(_pre_cfg(), _post_cfg(e2e=False)) + converted = torch.tensor( + [ + [ + [10.0, 12.0, 0.9], + [20.0, 18.0, 0.1], + [8.0, 7.0, 0.2], + [9.0, 6.0, 0.3], + [0.8, 0.5, 0.1], + ] + ] + ) + converted_result = postprocessor(converted) + raw_heads = [torch.zeros((1, size, size, 64)) for size in (80, 40, 20)] + raw_heads = [ + tensor + for pair in zip( + raw_heads, [torch.zeros((*tensor.shape[:3], 1)) for tensor in raw_heads] + ) + for tensor in pair + ] + raw_result = postprocessor(raw_heads) + + assert isinstance(converted_result, torch.Tensor) + assert converted_result.shape == (1, 5, 3) + assert isinstance(raw_result, torch.Tensor) + assert raw_result.shape == (1, 5, 8400) diff --git a/tests/test_model_aliasing.py b/tests/test_model_aliasing.py new file mode 100644 index 0000000..80a0e2e --- /dev/null +++ b/tests/test_model_aliasing.py @@ -0,0 +1,40 @@ +"""Tests for vision model name aliasing.""" + +from __future__ import annotations + +import pytest + +from mblt_vision.wrapper import MBLT_Engine + + +@pytest.mark.parametrize( + ("model_name", "expected_yaml"), + [ + ("regnet_x_16gf", "RegNet_X_16GF.yaml"), + ("regnet-x-16gf", "RegNet_X_16GF.yaml"), + ("RegNet_X_16GF.yaml", "RegNet_X_16GF.yaml"), + ("regnet_x_1_6gf", "RegNet_X_1_6GF.yaml"), + ("regnet-x-1-6gf", "RegNet_X_1_6GF.yaml"), + ("resnet50", "ResNet50.yaml"), + ("resnet-50", "ResNet50.yaml"), + ("resnet_50", "ResNet50.yaml"), + ], +) +def test_model_name_aliasing_resolves_precise_separator_matches( + model_name: str, + expected_yaml: str, +) -> None: + """Resolve aliases without collapsing distinct separator boundaries too early.""" + + engine = MBLT_Engine.__new__(MBLT_Engine) + + assert engine.model_name_aliasing(model_name) == expected_yaml + + +def test_model_name_aliasing_reports_compact_ambiguity() -> None: + """Keep compact ambiguous names explicit.""" + + engine = MBLT_Engine.__new__(MBLT_Engine) + + with pytest.raises(ValueError, match="Ambiguous model name"): + engine.model_name_aliasing("regnetx16gf") diff --git a/tests/test_model_metadata.py b/tests/test_model_metadata.py new file mode 100644 index 0000000..de3fb68 --- /dev/null +++ b/tests/test_model_metadata.py @@ -0,0 +1,42 @@ +"""Tests for model dataset metadata and dataset-aware postprocessing.""" + +from __future__ import annotations + +from pathlib import Path + +import mblt_vision +import yaml + +from mblt_vision.wrapper import resolve_model_config + +MODEL_CONFIG_DIR = Path(mblt_vision.__file__).parent / "models" + +DATASETS_BY_TASK = { + "depth_estimation": {"nyu-depth"}, + "face_detection": {"widerface"}, + "image_classification": {"imagenet"}, + "instance_segmentation": {"coco"}, + "object_detection": {"coco"}, + "obb": {"dotav1"}, + "pose_estimation": {"coco"}, + "semantic_segmentation": {"ade20k", "cityscapes"}, +} + + +def test_all_model_variants_declare_a_supported_dataset() -> None: + """Require every resolved model variant to identify its output taxonomy.""" + + checked = 0 + for config_path in sorted(MODEL_CONFIG_DIR.glob("*.yaml")): + full_config = yaml.safe_load(config_path.read_text(encoding="utf-8")) + assert isinstance(full_config, dict) + for variant in full_config: + config = resolve_model_config(str(config_path), variant) + post_cfg = config["post_cfg"] + task = post_cfg["task"] + assert ( + post_cfg["dataset"] in DATASETS_BY_TASK[task] + ), f"{config_path.name}:{variant}" + checked += 1 + + assert checked > 0 diff --git a/tests/test_mxq_inference.py b/tests/test_mxq_inference.py new file mode 100644 index 0000000..3962751 --- /dev/null +++ b/tests/test_mxq_inference.py @@ -0,0 +1,25 @@ +"""Optional end-to-end MXQ inference coverage for the standalone package.""" + +from __future__ import annotations + +from pathlib import Path + +import pytest + +from mblt_npu.pytest_plugin import NpuParams +from mblt_vision import MBLT_Engine + +pytestmark = [pytest.mark.requires_network, pytest.mark.requires_npu] + + +def test_mxq_classification_runs_with_shared_npu_options(npu_params: NpuParams) -> None: + """Load a representative MXQ model using the shared NPU test options.""" + + image_path = Path(__file__).parent / "rc" / "tabby.jpg" + model = MBLT_Engine(model_cls="resnet50", **npu_params.base) + try: + result = model.postprocess(model(model.preprocess(str(image_path)))) + assert result.task == "image_classification" + assert result.acc is not None + finally: + model.dispose() diff --git a/tests/test_onnx_classification.py b/tests/test_onnx_classification.py new file mode 100644 index 0000000..5df190e --- /dev/null +++ b/tests/test_onnx_classification.py @@ -0,0 +1,40 @@ +"""Tests for vision model ONNX inference on image classification.""" + +from __future__ import annotations + +import os +from pathlib import Path + +import pytest + +from mblt_vision.image_classification import AlexNet, CAFormer_B36, YOLO26sCls + +TEST_DIR = Path(__file__).parent +pytestmark = pytest.mark.requires_network + + +@pytest.mark.parametrize( + "model_cls", + [ + AlexNet, + CAFormer_B36, + YOLO26sCls, + ], +) +def test_onnx_classification(model_cls) -> None: + """Run ONNX inference for representative classification models.""" + image_path = os.path.join(TEST_DIR, "rc", "volcano.jpg") + + model = model_cls(framework="onnx") + + try: + input_img = model.preprocess(image_path) + output = model(input_img) + result = model.postprocess(output) + + assert result is not None + assert result.task == "image_classification" + assert result.acc is not None + assert result.output is not None + finally: + model.dispose() diff --git a/tests/test_onnx_yolo.py b/tests/test_onnx_yolo.py new file mode 100644 index 0000000..e8e0876 --- /dev/null +++ b/tests/test_onnx_yolo.py @@ -0,0 +1,54 @@ +"""Tests for ONNX inference across representative YOLO postprocess families.""" + +from __future__ import annotations + +import os +from pathlib import Path + +import pytest + +from mblt_vision import MBLT_Engine + +TEST_DIR = Path(__file__).parent +TMP_DIR = TEST_DIR / "tmp" +pytestmark = pytest.mark.requires_network + + +@pytest.mark.parametrize( + ("model_cls", "task", "image_name"), + [ + ("yolov5m", "object_detection", "cr7.jpg"), + ("yolov5m-seg", "instance_segmentation", "cr7.jpg"), + ("yolo11m", "object_detection", "cr7.jpg"), + ("yolo11m-seg", "instance_segmentation", "cr7.jpg"), + ("yolo11m-pose", "pose_estimation", "cr7.jpg"), + ("yolov10m", "object_detection", "cr7.jpg"), + ("yolo26m", "object_detection", "cr7.jpg"), + ("yolo26m-seg", "instance_segmentation", "cr7.jpg"), + ("yolo26m-pose", "pose_estimation", "cr7.jpg"), + ("yolov8m-obb", "obb", "cr7.jpg"), + ("yolo11m-obb", "obb", "cr7.jpg"), + ("yolo26m-obb", "obb", "cr7.jpg"), + ], +) +def test_onnx_yolo_inference( + model_cls: str, task: str, image_name: str, tmp_path: Path +) -> None: + """Run ONNX inference for representative YOLO postprocess families.""" + + image_path = os.path.join(TEST_DIR, "rc", image_name) + save_path = tmp_path / f"{model_cls}_visualization.jpg" + model = MBLT_Engine(model_cls=model_cls, framework="onnx") + + try: + input_img = model.preprocess(image_path) + output = model(input_img) + result = model.postprocess(output) + + assert result is not None + assert result.task == task + assert result.output is not None + result.plot(image_path, save_path=str(save_path)) + assert save_path.is_file() + finally: + model.dispose() diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py new file mode 100644 index 0000000..13ac8de --- /dev/null +++ b/tests/test_postprocess_hierarchy.py @@ -0,0 +1,123 @@ +"""Focused tests for the vision postprocessor class hierarchy and builder.""" + +from __future__ import annotations + +import warnings +from typing import Any + +import pytest +from mblt_vision.utils.postprocess import build_postprocess +from mblt_vision.utils.postprocess.base import PostBase, YOLODetectionPostBase +from mblt_vision.utils.postprocess.cls_post import ClsPost +from mblt_vision.utils.postprocess.depth_post import DepthPost +from mblt_vision.utils.postprocess.semantic_seg_post import SemanticSegPost +from mblt_vision.utils.postprocess.yolo_anchor_post import ( + YOLOAnchorDetectionPost, + YOLOAnchorSegPost, +) +from mblt_vision.utils.postprocess.yolo_anchorless_post import ( + YOLOAnchorlessDetectionPost, + YOLOAnchorlessOBBPost, + YOLOAnchorlessPosePost, + YOLOAnchorlessSegPost, +) +from mblt_vision.utils.postprocess.yolo_dflfree_post import ( + YOLODFLFreeDetectionPost, + YOLODFLFreeOBBPost, + YOLODFLFreePosePost, + YOLODFLFreeSegPost, +) +from mblt_vision.utils.postprocess.yolo_nmsfree_post import YOLONMSFreeDetectionPost + + +@pytest.mark.parametrize( + ("post_cfg", "expected_type"), + [ + ( + {"task": "object_detection", "anchors": [[10, 13, 16, 30, 33, 23]]}, + YOLOAnchorDetectionPost, + ), + ( + {"task": "object_detection", "nl": 3, "reg_max": 16}, + YOLOAnchorlessDetectionPost, + ), + ( + {"task": "object_detection", "nl": 3, "dflfree": True}, + YOLODFLFreeDetectionPost, + ), + ( + {"task": "object_detection", "nl": 3, "reg_max": 16, "nmsfree": True}, + YOLONMSFreeDetectionPost, + ), + ( + { + "task": "instance_segmentation", + "anchors": [[10, 13, 16, 30, 33, 23]], + "n_extra": 32, + }, + YOLOAnchorSegPost, + ), + ( + {"task": "instance_segmentation", "nl": 3, "reg_max": 16, "n_extra": 32}, + YOLOAnchorlessSegPost, + ), + ( + {"task": "instance_segmentation", "nl": 3, "dflfree": True, "n_extra": 32}, + YOLODFLFreeSegPost, + ), + ( + {"task": "pose_estimation", "nl": 3, "reg_max": 16, "n_extra": 51}, + YOLOAnchorlessPosePost, + ), + ( + {"task": "pose_estimation", "nl": 3, "dflfree": True, "n_extra": 51}, + YOLODFLFreePosePost, + ), + ({"task": "obb", "nl": 3, "reg_max": 16, "n_extra": 1}, YOLOAnchorlessOBBPost), + ({"task": "obb", "nl": 3, "dflfree": True, "n_extra": 1}, YOLODFLFreeOBBPost), + ], +) +def test_builder_routes_detection_backends_without_warnings( + post_cfg: dict[str, Any], expected_type: type[YOLODetectionPostBase] +) -> None: + """Build every detection family through canonical warning-free imports.""" + + with warnings.catch_warnings(): + warnings.simplefilter("error", DeprecationWarning) + postprocessor = build_postprocess( + {"LetterBox": {"img_size": [640, 640]}}, post_cfg + ) + assert type(postprocessor) is expected_type + + +@pytest.mark.parametrize( + ("pre_cfg", "post_cfg", "expected_type"), + [ + ({}, {"task": "image_classification"}, ClsPost), + ({"LetterBox": {"img_size": [8, 8]}}, {"task": "depth_estimation"}, DepthPost), + ( + {"LetterBox": {"img_size": [8, 8]}}, + {"task": "semantic_segmentation", "dataset": "ade20k"}, + SemanticSegPost, + ), + ], +) +def test_builder_keeps_non_detection_routing_warning_free( + pre_cfg: dict[str, Any], post_cfg: dict[str, Any], expected_type: type[PostBase] +) -> None: + """Preserve classification and dense prediction builder routes.""" + + with warnings.catch_warnings(): + warnings.simplefilter("error", DeprecationWarning) + postprocessor = build_postprocess(pre_cfg, post_cfg) + assert type(postprocessor) is expected_type + + +def test_detection_postprocessor_rejects_missing_head_count() -> None: + """Raise a stable runtime error when anchorless metadata omits nl.""" + + with pytest.raises(ValueError, match="nl should be provided in post_cfg"): + YOLOAnchorlessDetectionPost( + {"LetterBox": {"img_size": [640, 640]}}, + {"task": "object_detection", "dataset": "coco"}, + ) diff --git a/tests/test_preprocess_validation.py b/tests/test_preprocess_validation.py new file mode 100644 index 0000000..051a07e --- /dev/null +++ b/tests/test_preprocess_validation.py @@ -0,0 +1,86 @@ +"""Runtime validation tests for shared Vision preprocessing.""" + +from __future__ import annotations + +import subprocess +import sys + +import numpy as np +import pytest +from mblt_vision.utils.preprocess.center_crop import CenterCrop +from mblt_vision.utils.preprocess.letterbox import LetterBox +from mblt_vision.utils.preprocess.normalize import Normalize +from mblt_vision.utils.preprocess.order import SetOrder +from mblt_vision.utils.preprocess.reader import Reader +from mblt_vision.utils.preprocess.resize import Resize + + +@pytest.mark.parametrize( + "operation", [CenterCrop(2), Resize(2, "bilinear"), LetterBox([2, 2])] +) +def test_image_size_operations_reject_nonpositive_sizes(operation: object) -> None: + """Keep size validation active when Python assertions are optimized away.""" + + operation_type = type(operation) + argument = [0, 2] if operation_type is not Resize else 0 + if operation_type is Resize: + with pytest.raises(ValueError, match="positive"): + Resize(argument, "bilinear") + else: + with pytest.raises(ValueError, match="positive"): + operation_type(argument) + + +@pytest.mark.parametrize("size", [[1], [1, 2, 3], [1.5, 2], "2"]) +def test_center_crop_rejects_invalid_size_values(size: object) -> None: + """Reject invalid crop types and dimensions before processing.""" + + with pytest.raises((TypeError, ValueError)): + CenterCrop(size) # type: ignore[arg-type] + + +def test_set_order_rejects_ambiguous_channel_layout() -> None: + """Do not guess between CHW and HWC when both ends have three channels.""" + + with pytest.raises(ValueError, match="ambiguous"): + SetOrder("HWC")(np.zeros((3, 5, 3), dtype=np.uint8)) + + +@pytest.mark.parametrize( + ("factory", "expected"), + [ + (lambda: Reader("unsupported"), ValueError), + (lambda: Normalize("unsupported"), ValueError), + (lambda: SetOrder("unsupported"), ValueError), + ], +) +def test_preprocessing_styles_raise_explicit_errors( + factory, expected: type[Exception] +) -> None: + """Use explicit configuration errors instead of runtime assertions.""" + + with pytest.raises(expected): + factory() + + +def test_runtime_validation_survives_optimized_python() -> None: + """Keep configuration checks active under ``python -O``.""" + + code = """ +from mblt_vision.utils.postprocess import build_postprocess +try: + build_postprocess( + {"LetterBox": {"img_size": [640, 640]}}, + { + "task": "object_detection", + "dataset": "coco", + "nl": 3, + "reg_max": 16, + "conf_thres": 0, + }, + ) +except ValueError: + raise SystemExit(0) +raise SystemExit(1) +""" + subprocess.run([sys.executable, "-O", "-c", code], check=True) diff --git a/tests/test_resnet50.py b/tests/test_resnet50.py deleted file mode 100644 index 8a7a86b..0000000 --- a/tests/test_resnet50.py +++ /dev/null @@ -1,109 +0,0 @@ -""" -Test script for ResNet50 model. - -This script tests the ResNet50 model by running inference on a sample image. -It can be run as a pytest test or as a standalone script. -""" - -import argparse -import os -from pathlib import Path - -import pytest - -from mblt_vision import ResNet50 - -TEST_DIR = Path(__file__).parent - - -@pytest.fixture -def resnet50(): - """Fixture to initialize and dispose of the ResNet50 model.""" - model = ResNet50() - yield model - model.dispose() - - -def run_inference(model, image_path, save_path): - """Run inference with the given model and image.""" - os.makedirs(os.path.dirname(save_path), exist_ok=True) - - input_img = model.preprocess(image_path) - output = model(input_img) - result = model.postprocess(output) - - result.plot( - source_path=image_path, - save_path=save_path, - topk=5, - ) - - -def test_resnet50(resnet50): - """Test ResNet50 inference on a sample image.""" - image_path = os.path.join(TEST_DIR, "rc", "volcano.jpg") - save_path = os.path.join( - TEST_DIR, "tmp", f"resnet50_{os.path.basename(image_path)}" - ) - - run_inference(resnet50, image_path, save_path) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Run ResNet50 inference") - parser.add_argument( - "--mxq-path", - type=str, - default=None, - help="Path to the ResNet50 model file (.mxq)", - ) - parser.add_argument( - "--model-type", - type=str, - default="DEFAULT", - help="Model type", - ) - parser.add_argument( - "--infer-mode", - type=str, - default="global8", - choices=["single", "multi", "global4", "global8"], - help="Inference mode", - ) - parser.add_argument( - "--product", - type=str, - default="aries", - help="Product", - ) - parser.add_argument( - "--input-path", - type=str, - default=os.path.join(TEST_DIR, "rc", "volcano.jpg"), - help="Path to the input image", - ) - parser.add_argument( - "--save-path", - type=str, - default=None, - help="Path to save the output image", - ) - - args = parser.parse_args() - - # Load model with the specified mxq_path - model = ResNet50( - local_path=args.mxq_path, - model_type=args.model_type, - infer_mode=args.infer_mode, - product=args.product, - ) - if args.save_path is None: - args.save_path = os.path.join( - TEST_DIR, "tmp", f"resnet50_{os.path.basename(args.input_path)}" - ) - - try: - run_inference(model, args.input_path, args.save_path) - finally: - model.dispose() diff --git a/tests/test_results.py b/tests/test_results.py new file mode 100644 index 0000000..e1361f8 --- /dev/null +++ b/tests/test_results.py @@ -0,0 +1,179 @@ +"""Tests for vision plotting helpers.""" + +from __future__ import annotations + +from pathlib import Path + +import cv2 +import numpy as np +import pytest +import torch + +import mblt_vision.utils.results as results_module +from mblt_vision.utils.datasets import get_dotav1_palette +from mblt_vision.utils.results import Results +from mblt_vision.utils.types import NestedListTensorLike + + +def test_image_classification_plot_saves_without_gui_cleanup( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Save classification results without requiring OpenCV GUI support.""" + + source_path = tmp_path / "source.jpg" + save_path = tmp_path / "result.jpg" + image = np.full((32, 32, 3), 255, dtype=np.uint8) + cv2.imwrite(str(source_path), image) + + def _raise_destroy_all_windows() -> None: + raise cv2.error("cvDestroyAllWindows is unavailable") + + monkeypatch.setattr(cv2, "destroyAllWindows", _raise_destroy_all_windows) + + output = torch.zeros(1000) + output[980] = 0.9 + result = Results({}, {"task": "image_classification"}, output) + + plotted = result.plot(str(source_path), str(save_path), topk=1) + + assert plotted is not None + assert save_path.is_file() + + +def test_image_classification_plot_rejects_missing_output() -> None: + """Raise a runtime validation error when classification output is absent.""" + + result = Results({}, {"task": "image_classification"}, torch.zeros(1)) + result.acc = None + + with pytest.raises(ValueError, match="No accuracy output found"): + result.plot(np.zeros((8, 8, 3), dtype=np.uint8), topk=1) + + +def test_instance_segmentation_plot_supports_nonzero_coco_labels( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Plot segmentation results when detections use regular COCO class ids.""" + + source_path = tmp_path / "source.jpg" + save_path = tmp_path / "segmentation.jpg" + image = np.full((32, 32, 3), 255, dtype=np.uint8) + cv2.imwrite(str(source_path), image) + + monkeypatch.setattr(results_module, "scale_boxes", lambda *args, **kwargs: args[1]) + monkeypatch.setattr(results_module, "scale_masks", lambda mask, img0_shape: mask) + monkeypatch.setattr(results_module, "crop_mask", lambda mask, boxes: mask) + + box_cls = torch.tensor([[4.0, 6.0, 20.0, 24.0, 0.9, 45.0]], dtype=torch.float32) + mask = torch.ones((1, 32, 32), dtype=torch.float32) + result = Results( + {"LetterBox": {"img_size": (32, 32)}}, + {"task": "instance_segmentation"}, + [[box_cls, mask]], + ) + + plotted = result.plot(str(source_path), str(save_path)) + + assert plotted is not None + assert save_path.is_file() + + +def test_obb_plot_uses_dotav1_palette(monkeypatch: pytest.MonkeyPatch) -> None: + """Plot DOTAv1 boxes without consulting the COCO palette.""" + + def _reject_coco_palette(label_idx: int) -> tuple[int, int, int]: + raise AssertionError( + f"Unexpected COCO palette lookup for DOTAv1 class {label_idx}." + ) + + monkeypatch.setattr(results_module, "get_coco_det_palette", _reject_coco_palette) + box_cls = torch.tensor( + [[16.0, 16.0, 10.0, 10.0, 0.9, 2.0, 0.0]], dtype=torch.float32 + ) + result = Results( + {"LetterBox": {"img_size": (32, 32)}}, + {"task": "obb"}, + [box_cls], + ) + + plotted = result.plot(np.zeros((32, 32, 3), dtype=np.uint8)) + + assert plotted is not None + assert np.any(np.all(plotted == get_dotav1_palette(2), axis=2)) + + +def test_dotav1_palette_wraps_class_indices() -> None: + """Match the modulo behavior used by the other visualization palettes.""" + + assert get_dotav1_palette(15) == get_dotav1_palette(0) + + +def test_results_accept_path_and_basename_save_path( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Accept pathlib inputs and avoid creating an empty parent directory.""" + + source_path = tmp_path / "source.jpg" + assert cv2.imwrite(str(source_path), np.zeros((8, 8, 3), dtype=np.uint8)) + monkeypatch.chdir(tmp_path) + result = Results( + {}, {"task": "image_classification"}, torch.arange(3, dtype=torch.float32) + ) + + result.plot(source_path, Path("result.jpg"), topk=10) + + assert (tmp_path / "result.jpg").is_file() + + +def test_results_report_failed_image_write(monkeypatch: pytest.MonkeyPatch) -> None: + """Raise OSError when OpenCV cannot encode or write the requested image.""" + + monkeypatch.setattr(cv2, "imwrite", lambda *args, **kwargs: False) + result = Results({}, {"task": "image_classification"}, torch.ones(2)) + + with pytest.raises(OSError, match="Failed to write"): + result.plot(np.zeros((8, 8, 3), dtype=np.uint8), "result.jpg", topk=1) + + +@pytest.mark.parametrize("topk", [0, -1, 1.5, True]) +def test_results_validate_classification_topk(topk: object) -> None: + """Reject invalid classification Top-K values.""" + + result = Results({}, {"task": "image_classification"}, torch.ones(2)) + with pytest.raises((TypeError, ValueError)): + result.plot(np.zeros((8, 8, 3), dtype=np.uint8), topk=topk) + + +@pytest.mark.parametrize( + ("task", "output"), + [ + ("object_detection", []), + ("instance_segmentation", []), + ("instance_segmentation", [[]]), + ], +) +def test_results_reject_empty_structured_outputs( + task: str, output: NestedListTensorLike +) -> None: + """Validate structured result containers before indexing.""" + + with pytest.raises(ValueError): + Results({}, {"task": task}, output) + + +def test_results_normalize_task_alias_and_semantic_taxonomy_case() -> None: + """Normalize OBB aliases and semantic palette taxonomy casing.""" + + obb = Results({}, {"task": "oriented_bounding_boxes"}, [torch.zeros((0, 7))]) + semantic = Results( + {}, + {"task": "semantic_segmentation", "dataset": "CityScapes"}, + np.zeros((1, 4, 4), dtype=np.uint8), + ) + + assert obb.task == "obb" + plotted = semantic.plot(np.zeros((4, 4, 3), dtype=np.uint8)) + assert plotted is not None + assert plotted.shape == (4, 4, 3) diff --git a/tests/test_semantic_segmentation.py b/tests/test_semantic_segmentation.py new file mode 100644 index 0000000..1675e10 --- /dev/null +++ b/tests/test_semantic_segmentation.py @@ -0,0 +1,144 @@ +"""Tests for YOLO26 ADE20K semantic segmentation support.""" + +from __future__ import annotations + + +import pytest +import torch +from mblt_vision.utils.postprocess import SemanticSegPost + + +def test_semantic_postprocess_supports_logits_and_baked_maps() -> None: + """Convert logits or baked maps to input-sized integer class maps.""" + + post = SemanticSegPost( + {"LetterBox": {"img_size": [4, 4]}}, + {"task": "semantic_segmentation", "dataset": "ade20k"}, + ) + logits = torch.zeros((1, 150, 2, 2)) + logits[:, 7] = 1.0 + result = post(logits) + assert isinstance(result, torch.Tensor) + assert result.shape == (1, 4, 4) + assert result.dtype == torch.int64 + assert torch.equal(result, torch.full((1, 4, 4), 7)) + + baked = post(torch.tensor([[[1.0, 2.0], [3.0, 4.0]]])) + assert isinstance(baked, torch.Tensor) + assert baked.shape == (1, 4, 4) + assert set(baked.unique().tolist()) == {1, 2, 3, 4} + + with pytest.raises(ValueError, match=r"expects \[B, 150, H, W\]"): + post(torch.zeros((1, 19, 4, 4))) + with pytest.raises(ValueError, match=r"must be in \[0, 149\]"): + post(torch.full((1, 4, 4), 150)) + + +@pytest.mark.parametrize("invalid_value", [float("nan"), float("inf"), float("-inf")]) +def test_semantic_postprocess_rejects_non_finite_baked_class_ids( + invalid_value: float, +) -> None: + """Reject non-finite baked class IDs before converting their dtype.""" + + post = SemanticSegPost( + {"LetterBox": {"img_size": [4, 4]}}, + {"task": "semantic_segmentation", "dataset": "cityscapes"}, + ) + class_map = torch.zeros((1, 2, 2), dtype=torch.float32) + class_map[0, 0, 0] = invalid_value + + with pytest.raises(ValueError, match="must be finite"): + post(class_map) + + +def test_semantic_postprocess_rejects_fractional_baked_class_ids() -> None: + """Reject fractional baked class IDs instead of silently truncating them.""" + + post = SemanticSegPost( + {"LetterBox": {"img_size": [4, 4]}}, + {"task": "semantic_segmentation", "dataset": "cityscapes"}, + ) + + with pytest.raises(ValueError, match="must be integer-valued"): + post(torch.tensor([[[0.0, 1.9], [2.0, 18.0]]])) + + +def test_semantic_postprocess_reports_semantic_letterbox_errors() -> None: + """Use semantic task labels when validating preprocessing configuration.""" + + with pytest.raises( + ValueError, + match=r"Semantic segmentation requires a LetterBox configuration in pre_cfg", + ): + SemanticSegPost({}, {"task": "semantic_segmentation", "dataset": "ade20k"}) + + +def test_semantic_postprocess_supports_mxq_hwc_and_batched_nhwc_logits() -> None: + """Convert Cityscapes MXQ channel-last logits before choosing class maps.""" + + post = SemanticSegPost( + {"LetterBox": {"img_size": [4, 8]}}, + {"task": "semantic_segmentation", "dataset": "cityscapes"}, + ) + hwc_logits = torch.zeros((4, 8, 19)) + hwc_logits[..., 6] = 2.0 + hwc_result = post(hwc_logits) + assert isinstance(hwc_result, torch.Tensor) + assert hwc_result.shape == (1, 4, 8) + assert torch.equal(hwc_result, torch.full((1, 4, 8), 6)) + + nhwc_logits = torch.zeros((2, 2, 4, 19)) + nhwc_logits[0, ..., 3] = 2.0 + nhwc_logits[1, ..., 9] = 2.0 + nhwc_result = post(nhwc_logits) + assert isinstance(nhwc_result, torch.Tensor) + assert nhwc_result.shape == (2, 4, 8) + assert torch.equal(nhwc_result[0], torch.full((4, 8), 3)) + assert torch.equal(nhwc_result[1], torch.full((4, 8), 9)) + + with pytest.raises(ValueError, match=r"expects \[B, 19, H, W\]"): + post(torch.zeros((1, 4, 8, 18))) + with pytest.raises(ValueError, match=r"expects \[H, W, 19\] MXQ logits"): + post(torch.zeros((4, 8, 18))) + + baked_width_matches_nc = torch.arange(19).reshape(1, 1, 19) + baked_result = post(baked_width_matches_nc) + assert isinstance(baked_result, torch.Tensor) + assert baked_result.shape == (1, 4, 8) + assert torch.equal(baked_result[0, 0], torch.tensor([0, 2, 4, 7, 9, 11, 14, 16])) + + +def test_semantic_postprocess_restores_letterbox_padding() -> None: + """Crop padding before nearest-restoring a semantic map.""" + + post = SemanticSegPost( + {"LetterBox": {"img_size": [8, 8]}}, + {"task": "semantic_segmentation", "dataset": "ade20k"}, + ) + output = torch.zeros((1, 8, 8)) + output[:, 2:6, :] = 5 + restored = post(output, img0_shape=(2, 4), ratio_pad=((2.0, 2.0), (0.0, 2.0))) + assert isinstance(restored, torch.Tensor) + assert restored.shape == (2, 4) + assert torch.equal(restored, torch.full((2, 4), 5)) + + +def test_semantic_logits_restore_before_argmax_and_support_batches() -> None: + """Bilinearly restore logits before choosing classes for each original shape.""" + + post = SemanticSegPost( + {"LetterBox": {"img_size": [4, 8]}}, + {"task": "semantic_segmentation", "dataset": "cityscapes"}, + ) + logits = torch.zeros((2, 19, 2, 4)) + logits[:, 0] = 1.0 + logits[:, 1, :, 2:] = 2.0 + restored = post( + logits, + img0_shape=[(2, 8), (1, 4)], + ratio_pad=[((1.0, 1.0), (0.0, 1.0)), ((2.0, 2.0), (0.0, 1.0))], + ) + + assert isinstance(restored, list) + assert [tuple(item.shape) for item in restored] == [(2, 8), (1, 4)] + assert set(restored[0].unique().tolist()) == {0, 1} diff --git a/tests/test_vision_api.py b/tests/test_vision_api.py deleted file mode 100644 index 9f3b4bd..0000000 --- a/tests/test_vision_api.py +++ /dev/null @@ -1,12 +0,0 @@ -""" -Test script for Vision API. - -This script tests the API for listing available models and tasks in the vision module. -""" - -from pprint import pprint - -from mblt_vision import list_models, list_tasks - -print(list_tasks()) -pprint(list_models()) diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py new file mode 100644 index 0000000..08a1d1a --- /dev/null +++ b/tests/test_wrapper.py @@ -0,0 +1,2446 @@ +"""Tests for vision wrapper MXQ path resolution.""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any, cast + +import numpy as np +import pytest +import torch +from huggingface_hub.errors import EntryNotFoundError +from mblt_vision.utils.postprocess import build_postprocess +from mblt_vision.utils.postprocess.base import YOLODetectionPostBase +from mblt_vision.utils.postprocess.common import ( + crop_mask, + dual_topk, + nmsout2eval, + normalize_image_shapes, + normalize_ratio_pads, + scale_coords, + scale_masks, +) +from mblt_vision.utils.postprocess.yolo_anchorless_post import ( + AnchorlessOutputLayout, + YOLOAnchorlessDetectionPost, + YOLOAnchorlessOBBPost, + YOLOAnchorlessPosePost, + _AnchorlessNMSInput, +) + +import mblt_vision.wrapper as wrapper +from mblt_vision._compat import create_model_class +from mblt_vision.utils.letterbox import resolve_ratio_pad +from mblt_vision.utils.results import Results +from mblt_vision.utils.types import ListTensorLike +from mblt_vision.wrapper import MBLT_Engine + + +@pytest.mark.parametrize( + ("model_name", "output_shape", "expected_shape", "expected_class"), + [ + ("yolo26m-depth", (1, 192, 192), (1, 768, 768), None), + ("yolo26m-sem", (1024, 2048, 19), (1, 1024, 2048), 8), + ], +) +def test_local_mxq_dense_pipeline_uses_normalized_results( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + model_name: str, + output_shape: tuple[int, ...], + expected_shape: tuple[int, int, int], + expected_class: int | None, +) -> None: + """Exercise preprocessing, MXQ output normalization, and ``Results`` without an NPU.""" + + mxq_path = tmp_path / f"{model_name}.mxq" + mxq_path.write_bytes(b"mxq") + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + assert kwargs["mxq_path"] == str(mxq_path) + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def __call__(self, input_value: np.ndarray) -> np.ndarray: + assert input_value.ndim == 3 + output = np.zeros(output_shape, dtype=np.float32) + if expected_class is not None: + output[..., expected_class] = 1.0 + else: + output[...] = 1.0 + return output + + def dispose(self) -> None: + return None + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + engine = MBLT_Engine(model_name, model_path=str(mxq_path)) + try: + preprocessed = engine.preprocess(np.zeros((20, 40, 3), dtype=np.uint8)) + raw_output = engine(preprocessed) + result = engine.postprocess(raw_output) + if expected_class is None: + assert isinstance(result.depth, torch.Tensor) + assert tuple(result.depth.shape) == expected_shape + assert torch.isfinite(result.depth).all() + else: + assert isinstance(result.semantic_mask, torch.Tensor) + assert tuple(result.semantic_mask.shape) == expected_shape + assert set(result.semantic_mask.unique().tolist()) == {expected_class} + finally: + engine.dispose() + + +def test_default_cache_dir_uses_private_temporary_fallback( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Avoid a predictable shared cache when the preferred cache cannot be created.""" + + shared_cache = tmp_path / "mblt_model_zoo" + shared_cache.mkdir() + (shared_cache / "poisoned.onnx").write_bytes(b"untrusted") + + def _fail_mkdir(self: Path, *args: object, **kwargs: object) -> None: + del self, args, kwargs + raise OSError("home cache is unavailable") + + monkeypatch.setattr(wrapper.Path, "mkdir", _fail_mkdir) + monkeypatch.setattr(wrapper.tempfile, "gettempdir", lambda: str(tmp_path)) + + cache_dir = Path(wrapper._default_cache_dir()) + + assert cache_dir.parent == tmp_path + assert cache_dir.name.startswith("mblt_model_zoo-") + assert cache_dir != shared_cache + assert not (cache_dir / "poisoned.onnx").exists() + assert cache_dir.stat().st_mode & 0o777 == 0o700 + + +def test_onnx_runtime_defaults_to_cpu_provider() -> None: + """Avoid accelerator provider probing unless callers explicitly opt in.""" + + class _FakeOrt: + @staticmethod + def get_available_providers() -> list[str]: + return [ + "TensorrtExecutionProvider", + "CUDAExecutionProvider", + "CPUExecutionProvider", + ] + + assert wrapper._resolve_onnx_providers(_FakeOrt()) == ["CPUExecutionProvider"] + assert wrapper._resolve_onnx_providers(_FakeOrt(), ["CUDAExecutionProvider"]) == [ + "CUDAExecutionProvider" + ] + + +def test_dual_topk_logits_matches_sigmoid_scores() -> None: + """Select the same NMS-free detections before converting logits to probabilities.""" + torch.manual_seed(0) + boxes = torch.rand(24, 4) + logits = torch.rand(24, 5).mul(10.0).sub(5.0) + extra = torch.rand(24, 2) + logits_input = torch.cat([boxes, logits, extra], dim=1) + probability_input = torch.cat([boxes, logits.sigmoid(), extra], dim=1) + + actual = dual_topk( + logits_input, nc=5, n_extra=2, max_det=8, conf_thres=0.25, score_is_logits=True + ) + expected = dual_topk(probability_input, nc=5, n_extra=2, max_det=8, conf_thres=0.25) + + torch.testing.assert_close(actual, expected) + + +def test_file_config_cleansing_prefers_existing_mxq_path( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Use an existing local MXQ path without attempting a Hub download.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + + def _unexpected_download(**kwargs: Any) -> str: + raise AssertionError("hf_hub_download should not be called") + + monkeypatch.setattr(wrapper, "hf_hub_download", _unexpected_download) + + engine = MBLT_Engine.__new__(MBLT_Engine) + engine.file_cfg = { + "mxq_path": str(mxq_path), + "repo_id": "mobilint/example", + "filename": "model.mxq", + "revision": "main", + "core_mode": "global8", + } + + engine.file_config_cleansing() + + assert engine.file_cfg["mxq_path"] == str(mxq_path) + assert "repo_id" not in engine.file_cfg + assert "filename" not in engine.file_cfg + assert "revision" not in engine.file_cfg + + +def test_model_path_defaults_to_local_mxq_for_mxq_framework(tmp_path: Path) -> None: + """Map ``model_path`` to ``mxq_path`` when MXQ inference is requested.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + + engine = MBLT_Engine.__new__(MBLT_Engine) + engine.framework = "mxq" + engine.file_cfg = {"model_path": str(mxq_path)} + + engine.file_config_cleansing() + + assert engine.file_cfg["mxq_path"] == str(mxq_path) + assert "onnx_path" not in engine.file_cfg or not engine.file_cfg["onnx_path"] + + +def test_model_path_defaults_to_local_onnx_for_onnx_framework(tmp_path: Path) -> None: + """Map ``model_path`` to ``onnx_path`` when ONNX inference is requested.""" + + onnx_path = tmp_path / "model.onnx" + onnx_path.write_bytes(b"onnx") + + engine = MBLT_Engine.__new__(MBLT_Engine) + engine.framework = "onnx" + engine.file_cfg = {"model_path": str(onnx_path)} + + engine.file_config_cleansing() + + assert engine.file_cfg["onnx_path"] == str(onnx_path) + assert "mxq_path" not in engine.file_cfg or not engine.file_cfg["mxq_path"] + + +def test_engine_init_accepts_local_mxq_model_path( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Route API ``model_path`` to the MXQ backend for local MXQ inference.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + backend_kwargs: dict[str, Any] = {} + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + backend_kwargs.update(kwargs) + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + return None + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + + engine = MBLT_Engine( + model_cls={ + "file_cfg": {}, + "pre_cfg": {}, + "post_cfg": {}, + }, + model_path=str(mxq_path), + ) + + try: + assert engine.file_cfg["mxq_path"] == str(mxq_path) + assert backend_kwargs["mxq_path"] == str(mxq_path) + finally: + engine.dispose() + + +def test_engine_init_preserves_legacy_positional_arguments( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Keep pre-``model_path`` positional arguments bound to their original fields.""" + + mxq_path = tmp_path / "legacy.mxq" + onnx_path = tmp_path / "legacy.onnx" + mxq_path.write_bytes(b"mxq") + onnx_path.write_bytes(b"onnx") + backend_kwargs: dict[str, Any] = {} + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + backend_kwargs.update(kwargs) + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + return None + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + + engine = MBLT_Engine( + {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, + "DEFAULT", + str(mxq_path), + str(onnx_path), + 3, + "global8", + ) + + try: + assert engine.file_cfg["mxq_path"] == str(mxq_path) + assert engine.file_cfg["onnx_path"] == str(onnx_path) + assert backend_kwargs["dev_no"] == 3 + assert backend_kwargs["core_mode"] == "global8" + finally: + engine.dispose() + + +def test_engine_init_preserves_shifted_positional_mxq_runtime_arguments( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Keep runtime arguments after a positional MXQ ``model_path``.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + backend_kwargs: dict[str, Any] = {} + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + backend_kwargs.update(kwargs) + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + return None + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + + engine = MBLT_Engine( + {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, + "DEFAULT", + str(mxq_path), + "", + "", + 3, + "global8", + ) + + try: + assert engine.file_cfg["mxq_path"] == str(mxq_path) + assert backend_kwargs["dev_no"] == 3 + assert backend_kwargs["core_mode"] == "global8" + finally: + engine.dispose() + + +def test_legacy_wrapper_preserves_positional_path_and_framework_arguments( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Keep the generated compatibility constructor's original positional order.""" + + captured_kwargs: dict[str, Any] = {} + + def _capture_engine_init(self: MBLT_Engine, **kwargs: Any) -> None: + del self + captured_kwargs.update(kwargs) + + monkeypatch.setattr(MBLT_Engine, "__init__", _capture_engine_init) + compat_cls = create_model_class( + "ResNet50", "mblt_model_zoo.vision.image_classification" + ) + + compat_cls( + None, + "DEFAULT", + "global8", + "aries", + 3, + ["0:0"], + [0], + "legacy.mxq", + "legacy.onnx", + "onnx", + ) + + assert captured_kwargs["model_path"] == "" + assert captured_kwargs["mxq_path"] == "legacy.mxq" + assert captured_kwargs["onnx_path"] == "legacy.onnx" + assert captured_kwargs["framework"] == "onnx" + + +def test_legacy_wrapper_preserves_shifted_positional_model_path( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Keep the generated positional ``model_path`` slot working for ONNX.""" + + captured_kwargs: dict[str, Any] = {} + + def _capture_engine_init(self: MBLT_Engine, **kwargs: Any) -> None: + del self + captured_kwargs.update(kwargs) + + monkeypatch.setattr(MBLT_Engine, "__init__", _capture_engine_init) + compat_cls = create_model_class( + "ResNet50", "mblt_model_zoo.vision.image_classification" + ) + + compat_cls( + None, + "DEFAULT", + "global8", + "aries", + 3, + ["0:0"], + [0], + "legacy.onnx", + None, + None, + "onnx", + ) + + assert captured_kwargs["model_path"] == "legacy.onnx" + assert captured_kwargs["mxq_path"] == "" + assert captured_kwargs["onnx_path"] == "" + assert captured_kwargs["framework"] == "onnx" + + +def test_legacy_wrapper_preserves_shifted_positional_mxq_tail( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Keep the generated shifted positional tail working for MXQ.""" + + captured_kwargs: dict[str, Any] = {} + + def _capture_engine_init(self: MBLT_Engine, **kwargs: Any) -> None: + del self + captured_kwargs.update(kwargs) + + monkeypatch.setattr(MBLT_Engine, "__init__", _capture_engine_init) + compat_cls = create_model_class( + "ResNet50", "mblt_model_zoo.vision.image_classification" + ) + + compat_cls( + None, + "DEFAULT", + "global8", + "aries", + 3, + ["0:0"], + [0], + "legacy.mxq", + None, + None, + "mxq", + ) + + assert captured_kwargs["model_path"] == "legacy.mxq" + assert captured_kwargs["mxq_path"] == "" + assert captured_kwargs["onnx_path"] == "" + assert captured_kwargs["framework"] == "mxq" + + +def test_engine_init_accepts_oriented_bounding_boxes_task_alias( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Construct the canonical OBB postprocessor from the compatibility task spelling.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + self.kwargs = kwargs + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + return None + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + + engine = MBLT_Engine( + model_cls={ + "file_cfg": {}, + "pre_cfg": {"LetterBox": {"img_size": [640, 640]}}, + "post_cfg": { + "task": "oriented_bounding_boxes", + "dataset": "dotav1", + "nl": 3, + "reg_max": 16, + "n_extra": 1, + }, + }, + model_path=str(mxq_path), + ) + + try: + assert isinstance(engine.postprocessor, YOLOAnchorlessOBBPost) + assert engine.postprocessor.task == "obb" + finally: + engine.dispose() + + +def test_engine_init_auto_detects_mxq_framework_from_model_path( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Infer the MXQ framework from a local MXQ path when framework is omitted.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + self.kwargs = kwargs + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + return None + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + + engine = MBLT_Engine( + model_cls={ + "file_cfg": {}, + "pre_cfg": {}, + "post_cfg": {}, + }, + model_path=str(mxq_path), + ) + + try: + assert engine.framework == "mxq" + assert engine.file_cfg["mxq_path"] == str(mxq_path) + finally: + engine.dispose() + + +@pytest.mark.parametrize( + "model_path_style", ["keyword", "positional", "positional-runtime"] +) +def test_engine_init_accepts_local_onnx_model_path( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + model_path_style: str, +) -> None: + """Route API ``model_path`` to the ONNX runtime session for local ONNX inference.""" + + onnx_path = tmp_path / "model.onnx" + onnx_path.write_bytes(b"onnx") + + class _FakeInput: + name = "input" + shape = [1, 3, 224, 224] + + class _FakeOutput: + name = "output" + + class _FakeSession: + def __init__(self, path: str, providers: list[str]) -> None: + self.path = path + self.providers = providers + + def get_inputs(self) -> list[_FakeInput]: + return [_FakeInput()] + + def get_outputs(self) -> list[_FakeOutput]: + return [_FakeOutput()] + + class _FakeOrt: + def __init__(self) -> None: + self.session: _FakeSession | None = None + + @staticmethod + def get_available_providers() -> list[str]: + return ["CPUExecutionProvider"] + + def InferenceSession(self, path: str, providers: list[str]) -> _FakeSession: + self.session = _FakeSession(path, providers) + return self.session + + fake_ort = _FakeOrt() + monkeypatch.setattr(wrapper, "_load_onnxruntime", lambda: fake_ort) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + + model_config = { + "file_cfg": {}, + "pre_cfg": {}, + "post_cfg": {}, + } + if model_path_style == "positional": + engine = MBLT_Engine(model_config, "DEFAULT", str(onnx_path)) + elif model_path_style == "positional-runtime": + engine = MBLT_Engine( + model_config, + "DEFAULT", + str(onnx_path), + "", + "", + 3, + "global8", + ["0:0"], + [1], + {"confidence": 0.25}, + "onnx", + ["CPUExecutionProvider"], + ) + else: + engine = MBLT_Engine(model_cls=model_config, model_path=str(onnx_path)) + + assert engine.file_cfg["onnx_path"] == str(onnx_path) + assert fake_ort.session is not None + assert fake_ort.session.path == str(onnx_path) + assert engine.framework == "onnx" + if model_path_style == "positional-runtime": + assert engine.file_cfg["dev_no"] == 3 + assert engine.file_cfg["core_mode"] == "global8" + assert engine.file_cfg["target_cores"] == ["0:0"] + assert engine.file_cfg["target_clusters"] == [1] + assert engine.postprocess_kwargs == {"confidence": 0.25} + assert fake_ort.session.providers == ["CPUExecutionProvider"] + + +def test_engine_init_rejects_conflicting_framework_and_model_path( + tmp_path: Path, +) -> None: + """Fail fast when the explicit framework conflicts with the local model suffix.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + + with pytest.raises(ValueError, match="conflicts with model path"): + MBLT_Engine( + model_cls={ + "file_cfg": {}, + "pre_cfg": {}, + "post_cfg": {}, + }, + framework="onnx", + model_path=str(mxq_path), + ) + + +def test_engine_init_auto_detects_onnx_framework_from_config_model_path( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Infer ONNX from ``file_cfg.model_path`` when constructor inputs omit the framework.""" + + onnx_path = tmp_path / "model.onnx" + onnx_path.write_bytes(b"onnx") + + class _FakeInput: + name = "input" + shape = [1, 3, 224, 224] + + class _FakeOutput: + name = "output" + + class _FakeSession: + def __init__(self, path: str, providers: list[str]) -> None: + self.path = path + self.providers = providers + + def get_inputs(self) -> list[_FakeInput]: + return [_FakeInput()] + + def get_outputs(self) -> list[_FakeOutput]: + return [_FakeOutput()] + + class _FakeOrt: + def __init__(self) -> None: + self.session: _FakeSession | None = None + + @staticmethod + def get_available_providers() -> list[str]: + return ["CPUExecutionProvider"] + + def InferenceSession(self, path: str, providers: list[str]) -> _FakeSession: + self.session = _FakeSession(path, providers) + return self.session + + fake_ort = _FakeOrt() + monkeypatch.setattr(wrapper, "_load_onnxruntime", lambda: fake_ort) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + + engine = MBLT_Engine( + model_cls={ + "file_cfg": {"model_path": str(onnx_path)}, + "pre_cfg": {}, + "post_cfg": {}, + } + ) + + assert engine.file_cfg["onnx_path"] == str(onnx_path) + assert fake_ort.session is not None + assert fake_ort.session.path == str(onnx_path) + assert engine.framework == "onnx" + + +def test_engine_init_rejects_conflicting_framework_and_config_model_path( + tmp_path: Path, +) -> None: + """Fail fast when the explicit framework conflicts with ``file_cfg.model_path``.""" + + onnx_path = tmp_path / "model.onnx" + onnx_path.write_bytes(b"onnx") + + with pytest.raises(ValueError, match="conflicts with model path"): + MBLT_Engine( + model_cls={ + "file_cfg": {"model_path": str(onnx_path)}, + "pre_cfg": {}, + "post_cfg": {}, + }, + framework="mxq", + ) + + +def test_legacy_local_path_stays_mxq_specific_for_onnx_framework( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Keep legacy ``local_path`` semantics stable in compatibility wrappers.""" + + mxq_path = tmp_path / "resnet50.mxq" + onnx_path = tmp_path / "resnet50.onnx" + mxq_path.write_bytes(b"mxq") + onnx_path.write_bytes(b"onnx") + + class _FakeInput: + name = "input" + shape = [1, 3, 224, 224] + + class _FakeOutput: + name = "output" + + class _FakeSession: + def __init__(self, path: str, providers: list[str]) -> None: + self.path = path + self.providers = providers + + def get_inputs(self) -> list[_FakeInput]: + return [_FakeInput()] + + def get_outputs(self) -> list[_FakeOutput]: + return [_FakeOutput()] + + class _FakeOrt: + def __init__(self) -> None: + self.session: _FakeSession | None = None + + @staticmethod + def get_available_providers() -> list[str]: + return ["CPUExecutionProvider"] + + def InferenceSession(self, path: str, providers: list[str]) -> _FakeSession: + self.session = _FakeSession(path, providers) + return self.session + + fake_ort = _FakeOrt() + monkeypatch.setattr(wrapper, "_load_onnxruntime", lambda: fake_ort) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + + compat_cls = create_model_class( + "ResNet50", "mblt_model_zoo.vision.image_classification" + ) + engine = compat_cls(local_path=str(mxq_path), framework="onnx") + + assert engine.file_cfg["mxq_path"] == str(mxq_path) + assert engine.file_cfg["onnx_path"] == str(onnx_path) + assert fake_ort.session is not None + assert fake_ort.session.path == str(onnx_path) + assert engine.framework == "onnx" + + +def test_engine_init_defaults_to_mxq_without_model_path( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Use MXQ as the fallback framework when no model path is provided.""" + + backend_kwargs: dict[str, Any] = {} + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + backend_kwargs.update(kwargs) + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + return None + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + monkeypatch.setattr( + wrapper.MBLT_Engine, + "_download_hub_artifact", + lambda self, **kwargs: "/tmp/model.mxq", + ) + + engine = MBLT_Engine( + model_cls={ + "file_cfg": { + "repo_id": "mobilint/example", + "filename": "model.mxq", + "revision": "main", + }, + "pre_cfg": {}, + "post_cfg": {}, + }, + ) + + try: + assert engine.framework == "mxq" + assert "mxq_path" in backend_kwargs + finally: + engine.dispose() + + +@pytest.mark.parametrize("mask_count", [1, 50]) +def test_crop_mask_matches_ultralytics_fractional_boundaries(mask_count: int) -> None: + """Use identical fractional crop semantics on both sides of the former CPU branch.""" + + masks = torch.ones((mask_count, 5, 5), dtype=torch.float32) + boxes = torch.tensor([[1.2, 1.8, 3.6, 4.2]], dtype=torch.float32).repeat( + mask_count, 1 + ) + + cropped = crop_mask(masks, boxes) + + expected = torch.zeros((mask_count, 5, 5), dtype=torch.float32) + expected[:, 2:5, 2:4] = 1 + assert torch.equal(cropped, expected) + + +def test_file_config_cleansing_downloads_aries_before_core_mode( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Download only the MXQ artifact and try the legacy aries layout first.""" + + calls: list[str] = [] + + def _fake_download(**kwargs: Any) -> str: + subfolder = kwargs["subfolder"] + calls.append(subfolder) + if subfolder == "aries": + raise EntryNotFoundError("missing") + return "/tmp/global8.mxq" + + monkeypatch.setattr(wrapper, "hf_hub_download", _fake_download) + + engine = MBLT_Engine.__new__(MBLT_Engine) + engine.framework = "mxq" + engine.file_cfg = { + "mxq_path": "", + "repo_id": "mobilint/example", + "filename": "model.mxq", + "revision": "main", + "core_mode": "global8", + } + + engine.file_config_cleansing() + + assert calls == ["aries", "aries/global8"] + assert engine.file_cfg["mxq_path"] == "/tmp/global8.mxq" + assert engine.file_cfg["onnx_filename"] == "model.onnx" + assert "onnx_path" not in engine.file_cfg + + +def test_file_config_cleansing_downloads_only_onnx_for_onnx_framework( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Download only the ONNX artifact when ONNX inference is requested.""" + + calls: list[dict[str, Any]] = [] + + def _fake_download(**kwargs: Any) -> str: + calls.append(kwargs) + assert kwargs["filename"] == "model.onnx" + assert "subfolder" not in kwargs + return "/tmp/model.onnx" + + monkeypatch.setattr(wrapper, "hf_hub_download", _fake_download) + + engine = MBLT_Engine.__new__(MBLT_Engine) + engine.framework = "onnx" + engine.file_cfg = { + "onnx_path": "", + "repo_id": "mobilint/example", + "filename": "model.mxq", + "revision": "main", + "core_mode": "global8", + } + + engine.file_config_cleansing() + + assert len(calls) == 1 + assert engine.file_cfg["onnx_filename"] == "model.onnx" + assert engine.file_cfg["onnx_path"] == "/tmp/model.onnx" + assert "mxq_path" not in engine.file_cfg or not engine.file_cfg["mxq_path"] + + +def test_file_config_cleansing_resolves_local_onnx( + tmp_path: Path, +) -> None: + """Resolve ONNX file path next to local MXQ file when they exist locally.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + onnx_path = tmp_path / "model.onnx" + onnx_path.write_bytes(b"onnx") + + engine = MBLT_Engine.__new__(MBLT_Engine) + engine.file_cfg = { + "mxq_path": str(mxq_path), + "repo_id": "mobilint/example", + "filename": "model.mxq", + "revision": "main", + "core_mode": "global8", + } + + engine.file_config_cleansing() + + assert engine.file_cfg["mxq_path"] == str(mxq_path) + assert engine.file_cfg["onnx_filename"] == "model.onnx" + assert engine.file_cfg["onnx_path"] == str(onnx_path) + + +def test_prepare_onnx_inputs_keeps_batched_nchw_layout() -> None: + """Preserve existing NCHW batches when feeding ONNX sessions.""" + + class _FakeInput: + name = "input" + shape = [1, 3, 224, 224] + + class _FakeSession: + def get_inputs(self) -> list[_FakeInput]: + return [_FakeInput()] + + engine = MBLT_Engine.__new__(MBLT_Engine) + engine.framework = "onnx" + fake_session = _FakeSession() + engine._onnx_session = fake_session + engine.model = fake_session + engine.input_name = "input" + + batch = torch.zeros((2, 3, 224, 224), dtype=torch.float32) + + inputs = engine._prepare_onnx_inputs(batch) + + assert set(inputs) == {"input"} + assert inputs["input"].shape == (2, 3, 224, 224) + assert inputs["input"].dtype == np.float32 + + +def test_prepare_onnx_inputs_transposes_hwc_images() -> None: + """Convert single HWC images to batched NCHW arrays for ONNX runtime.""" + + class _FakeInput: + name = "input" + shape = [1, 3, 224, 224] + + class _FakeSession: + def get_inputs(self) -> list[_FakeInput]: + return [_FakeInput()] + + engine = MBLT_Engine.__new__(MBLT_Engine) + engine.framework = "onnx" + fake_session = _FakeSession() + engine._onnx_session = fake_session + engine.model = fake_session + engine.input_name = "input" + + image = np.zeros((224, 224, 3), dtype=np.float32) + + inputs = engine._prepare_onnx_inputs(image) + + assert inputs["input"].shape == (1, 3, 224, 224) + + +def test_final_onnx_detections_apply_confidence_threshold() -> None: + """Filter confidence on already-decoded ONNX detection outputs.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "object_detection", + "nl": 3, + "nmsfree": True, + "reg_max": 16, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + final_output = np.array( + [ + [ + [10.0, 20.0, 30.0, 40.0, 0.49, 0.0], + [11.0, 21.0, 31.0, 41.0, 0.50, 1.0], + [12.0, 22.0, 32.0, 42.0, 0.90, 2.0], + ] + ], + dtype=np.float32, + ) + + result = postprocessor(final_output) + + assert len(result) == 1 + assert result[0].shape == (1, 6) + assert torch.all(result[0][:, 4] > 0.5) + + +def test_nmsfree_postprocess_supports_multilabel_dispatch( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Keep COCO's multi-label postprocess path compatible with NMS-free models.""" + + postprocessor = build_postprocess( + {"LetterBox": {"img_size": [640, 640]}}, + {"task": "object_detection", "nl": 3, "reg_max": 16, "nmsfree": True}, + ) + decoded = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0, 0.9, 2.0], [11.0, 21.0, 31.0, 41.0, 0.0, 1.0]]], + dtype=torch.float32, + ) + monkeypatch.setattr(postprocessor, "extract_final_outputs", lambda _: (None, None)) + monkeypatch.setattr(postprocessor, "check_input", lambda x: x) + monkeypatch.setattr(postprocessor, "_pre_process", lambda _: (decoded, None)) + + result = postprocessor([torch.empty(1)], multi_label=True) + + assert len(result) == 1 + assert torch.equal(result[0], decoded[0, :1]) + + +def test_final_onnx_detections_normalize_singleton_and_channel_first() -> None: + """Accept common ONNX final-detection layouts without decoding them again.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "object_detection", + "nl": 3, + "nmsfree": True, + "reg_max": 16, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + final_output = torch.tensor( + [ + [ + [10.0, 20.0, 30.0, 40.0, 0.90, 2.0], + [11.0, 21.0, 31.0, 41.0, 0.40, 1.0], + ] + ], + dtype=torch.float32, + ) + + singleton_result = postprocessor(final_output[:, None]) + channel_first_result = postprocessor(final_output.transpose(1, 2)) + + assert torch.equal(singleton_result[0], final_output[0, :1]) + assert torch.equal(channel_first_result[0], final_output[0, :1]) + + +def test_anchorless_pose_nms_uses_converted_provenance_for_ambiguous_shape() -> None: + """Keep converted row-major pose tensors row-major when both dimensions match.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "pose_estimation", + "nl": 3, + "n_extra": 51, + "reg_max": 16, + "conf_thres": 0.001, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + row_major = torch.zeros((56, 56), dtype=torch.float32) + row_major[:, :4] = torch.tensor([10.0, 10.0, 20.0, 20.0]) + row_major[:, 4] = torch.linspace(0.9, 0.1, 56) + + result = postprocessor.nms(_AnchorlessNMSInput([row_major], "candidates_first")) + + assert len(result) == 1 + assert result[0].shape == (1, 57) + assert torch.allclose(result[0][0, 4], torch.tensor(0.9)) + + +def test_final_onnx_segmentation_normalizes_detections_and_proto() -> None: + """Use final segmentation detections directly while preserving prototype layout.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "dflfree": True, + "nc": 80, + "n_extra": 32, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + final_output = torch.zeros((1, 1, 2, 38), dtype=torch.float32) + final_output[0, 0, 0, :6] = torch.tensor([10.0, 20.0, 30.0, 40.0, 0.90, 2.0]) + final_output[0, 0, 1, :6] = torch.tensor([11.0, 21.0, 31.0, 41.0, 0.40, 1.0]) + proto = torch.zeros((1, 32, 160, 160), dtype=torch.float32) + + result = postprocessor([final_output, proto]) + + assert len(result) == 1 + assert result[0][0].shape == (1, 38) + assert result[0][1].shape == (1, 640, 640) + + +def test_final_onnx_pose_normalizes_detections() -> None: + """Use final pose detections directly without sending them through decode.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "pose_estimation", + "nl": 3, + "n_extra": 51, + "reg_max": 16, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + final_output = torch.zeros((1, 2, 57), dtype=torch.float32) + final_output[0, 0, :6] = torch.tensor([10.0, 20.0, 30.0, 40.0, 0.90, 0.0]) + final_output[0, 1, :6] = torch.tensor([11.0, 21.0, 31.0, 41.0, 0.40, 0.0]) + + result = postprocessor(final_output) + + assert len(result) == 1 + assert result[0].shape == (1, 57) + assert torch.equal(result[0], final_output[0, :1]) + + +@pytest.mark.parametrize( + ("task", "post_cfg_extra", "converted_dim"), + [ + ("object_detection", {}, 7), + ("pose_estimation", {"n_extra": 51}, 56), + ], +) +def test_non_e2e_single_converted_outputs_follow_task_shape( + task: str, + post_cfg_extra: dict[str, int], + converted_dim: int, +) -> None: + """Route non-e2e single converted detection and pose outputs by task shape.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": task, + "nl": 3, + "reg_max": 16, + "nc": 3 if task == "object_detection" else 1, + "conf_thres": 0.5, + "iou_thres": 0.7, + "e2e": False, + **post_cfg_extra, + } + postprocessor = build_postprocess(pre_cfg, post_cfg) + converted = torch.zeros((1, 2, converted_dim), dtype=torch.float32) + + result = postprocessor(converted) + + assert isinstance(result, torch.Tensor) + assert result.shape == (1, converted_dim, 2) + + +def test_non_e2e_segmentation_uses_converted_detections_and_proto() -> None: + """Route non-e2e segmentation converted detections with prototype masks.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "reg_max": 16, + "nc": 3, + "n_extra": 32, + "conf_thres": 0.5, + "iou_thres": 0.7, + "e2e": False, + } + postprocessor = build_postprocess(pre_cfg, post_cfg) + detections = torch.zeros((1, 2, 39), dtype=torch.float32) + proto = torch.zeros((1, 16, 16, 32), dtype=torch.float32) + + result = postprocessor([detections, proto]) + + assert isinstance(result, list) + assert result[0].shape == (1, 39, 2) + assert result[1].shape == (1, 32, 16, 16) + + +def test_dflfree_detection_accepts_decode_true_mxq_parts_with_reducemax() -> None: + """Accept split decode-true DFL-free detection outputs with an extra reducemax tensor.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "object_detection", + "nl": 3, + "dflfree": True, + "nc": 3, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]]], dtype=torch.float32 + ) + scores = torch.tensor([[[0.1, 0.9, 0.2], [0.2, 0.3, 0.4]]], dtype=torch.float32) + reducemax = scores.max(dim=-1, keepdim=True).values + + result = postprocessor([scores, reducemax, boxes]) + + assert len(result) == 1 + assert result[0].shape == (1, 6) + assert torch.equal(result[0][0, :4], boxes[0, 0]) + assert torch.allclose(result[0][0, 4], torch.tensor(0.9)) + assert torch.allclose(result[0][0, 5], torch.tensor(1.0)) + + +def test_dflfree_detection_accepts_batched_decode_true_mxq_parts_with_reducemax() -> ( + None +): + """Preserve batched split decode-true DFL-free detection outputs.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "object_detection", + "nl": 3, + "dflfree": True, + "nc": 3, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [ + [[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]], + [[50.0, 60.0, 70.0, 80.0], [51.0, 61.0, 71.0, 81.0]], + ], + dtype=torch.float32, + ) + scores = torch.tensor( + [ + [[0.1, 0.9, 0.2], [0.2, 0.3, 0.4]], + [[0.8, 0.1, 0.2], [0.1, 0.2, 0.3]], + ], + dtype=torch.float32, + ) + reducemax = scores.max(dim=-1, keepdim=True).values.unsqueeze(1) + batched_scores = scores.unsqueeze(1) + batched_boxes = boxes.unsqueeze(1) + + result = postprocessor([batched_scores, reducemax, batched_boxes]) + + assert len(result) == 2 + assert result[0].shape == (1, 6) + assert result[1].shape == (1, 6) + assert torch.equal(result[0][0, :4], boxes[0, 0]) + assert torch.equal(result[1][0, :4], boxes[1, 0]) + assert torch.allclose(result[0][0, 4], torch.tensor(0.9)) + assert torch.allclose(result[1][0, 4], torch.tensor(0.8)) + assert torch.allclose(result[0][0, 5], torch.tensor(1.0)) + assert torch.allclose(result[1][0, 5], torch.tensor(0.0)) + + +def test_dflfree_detection_distinguishes_equal_width_box_and_score_parts() -> None: + """Use reducemax to distinguish boxes from scores when ``nc == 4``.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "object_detection", + "nl": 3, + "dflfree": True, + "nc": 4, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]]], dtype=torch.float32 + ) + scores = torch.tensor( + [[[0.1, 0.9, 0.2, 0.3], [0.2, 0.3, 0.4, 0.1]]], dtype=torch.float32 + ) + reducemax = scores.max(dim=-1, keepdim=True).values + + result = postprocessor([boxes, reducemax, scores]) + + assert len(result) == 1 + assert result[0].shape == (1, 6) + assert torch.equal(result[0][0, :4], boxes[0, 0]) + assert torch.allclose(result[0][0, 4], torch.tensor(0.9)) + assert torch.allclose(result[0][0, 5], torch.tensor(1.0)) + + +def test_dflfree_segmentation_accepts_decode_true_mxq_parts_with_reducemax() -> None: + """Accept split decode-true DFL-free segmentation outputs with reducemax and proto tensors.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "dflfree": True, + "nc": 3, + "n_extra": 2, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]]], dtype=torch.float32 + ) + scores = torch.tensor([[[0.1, 0.9, 0.2], [0.2, 0.3, 0.4]]], dtype=torch.float32) + reducemax = scores.max(dim=-1, keepdim=True).values + coeffs = torch.tensor([[[0.4, 0.6], [0.2, 0.1]]], dtype=torch.float32) + proto = torch.zeros((9, 9, 2), dtype=torch.float32) + + result = postprocessor([coeffs, scores, reducemax, proto, boxes]) + + assert len(result) == 1 + assert result[0][0].shape == (1, 8) + assert result[0][1].shape == (1, 64, 64) + + +def test_dflfree_segmentation_accepts_approximate_reducemax_scores() -> None: + """Match quantized reducemax tensors without appending them as mask coefficients.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "dflfree": True, + "nc": 3, + "n_extra": 2, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]]], dtype=torch.float32 + ) + scores = torch.tensor([[[0.1, 0.9, 0.2], [0.2, 0.3, 0.4]]], dtype=torch.float32) + reducemax = scores.max(dim=-1, keepdim=True).values - 0.01 + coeffs = torch.tensor([[[0.4, 0.6], [0.2, 0.1]]], dtype=torch.float32) + proto = torch.zeros((9, 9, 2), dtype=torch.float32) + + result = postprocessor([coeffs, scores, reducemax, proto, boxes]) + + assert len(result) == 1 + assert result[0][0].shape == (1, 8) + assert result[0][1].shape == (1, 64, 64) + + +def test_dflfree_segmentation_excludes_reducemax_from_proto_candidates() -> None: + """Ignore unused reducemax tensors when ``n_extra == 1`` and selecting the proto tensor.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "dflfree": True, + "nc": 3, + "n_extra": 1, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]]], dtype=torch.float32 + ) + scores = torch.tensor([[[0.1, 0.9, 0.2], [0.2, 0.3, 0.4]]], dtype=torch.float32) + reducemax = scores.max(dim=-1, keepdim=True).values + coeffs = torch.tensor([[[0.6], [0.1]]], dtype=torch.float32) + proto = torch.zeros((9, 9, 1), dtype=torch.float32) + + result = postprocessor([coeffs, scores, reducemax, proto, boxes]) + + assert len(result) == 1 + assert result[0][0].shape == (1, 7) + assert result[0][1].shape == (1, 64, 64) + + +def test_non_e2e_dflfree_segmentation_accepts_decode_true_mxq_parts_with_reducemax() -> ( + None +): + """Route 5-part decode-true segmentation outputs through the segmentation non-e2e path.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "dflfree": True, + "nc": 3, + "n_extra": 2, + "conf_thres": 0.5, + "iou_thres": 0.7, + "e2e": False, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]]], dtype=torch.float32 + ) + scores = torch.tensor([[[0.1, 0.9, 0.2], [0.2, 0.3, 0.4]]], dtype=torch.float32) + reducemax = scores.max(dim=-1, keepdim=True).values + coeffs = torch.tensor([[[0.4, 0.6], [0.2, 0.1]]], dtype=torch.float32) + proto = torch.zeros((1, 9, 9, 2), dtype=torch.float32) + + result = postprocessor([coeffs, scores, reducemax, proto, boxes]) + + assert isinstance(result, list) + assert result[0].shape == (1, 300, 8) + assert result[1].shape == (1, 2, 9, 9) + assert torch.equal(result[0][0, 0, :4], boxes[0, 0]) + assert torch.allclose(result[0][0, 0, 4], torch.tensor(0.9)) + assert torch.allclose(result[0][0, 0, 5], torch.tensor(1.0)) + assert torch.equal(result[0][0, 0, 6:], coeffs[0, 0]) + + +def test_dflfree_pose_accepts_decode_true_mxq_parts_with_reducemax() -> None: + """Accept split decode-true DFL-free pose outputs with a duplicate score max tensor.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "pose_estimation", + "nl": 3, + "dflfree": True, + "nc": 1, + "n_extra": 51, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]]], dtype=torch.float32 + ) + scores = torch.tensor([[[0.9], [0.4]]], dtype=torch.float32) + reducemax = scores.clone() + keypoints = torch.arange(102, dtype=torch.float32).reshape(1, 2, 51) + + result = postprocessor([reducemax, scores, boxes, keypoints]) + + assert len(result) == 1 + assert result[0].shape == (1, 57) + assert torch.equal(result[0][0, :4], boxes[0, 0]) + assert torch.equal(result[0][0, 6:], keypoints[0, 0]) + + +def test_dflfree_pose_prefers_score_tensor_over_reducemax_duplicate() -> None: + """Use the actual score tensor when MXQ exports both reducemax and score parts.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "pose_estimation", + "nl": 3, + "dflfree": True, + "nc": 1, + "n_extra": 51, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]]], dtype=torch.float32 + ) + reducemax = torch.tensor([[[0.88], [0.39]]], dtype=torch.float32) + scores = torch.tensor([[[0.9], [0.4]]], dtype=torch.float32) + keypoints = torch.arange(102, dtype=torch.float32).reshape(1, 2, 51) + + for output_order in ( + [reducemax, scores, boxes, keypoints], + [scores, reducemax, boxes, keypoints], + ): + result = postprocessor(output_order) + + assert len(result) == 1 + assert result[0].shape == (1, 57) + assert torch.allclose(result[0][0, 4], torch.tensor(0.9)) + assert torch.equal(result[0][0, 6:], keypoints[0, 0]) + + +def test_non_e2e_dflfree_pose_accepts_decode_true_mxq_parts_with_reducemax() -> None: + """Route 4-part decode-true pose outputs through the pose non-e2e path.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "pose_estimation", + "nl": 3, + "dflfree": True, + "nc": 1, + "n_extra": 51, + "conf_thres": 0.5, + "iou_thres": 0.7, + "e2e": False, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + boxes = torch.tensor( + [[[10.0, 20.0, 30.0, 40.0], [11.0, 21.0, 31.0, 41.0]]], dtype=torch.float32 + ) + scores = torch.tensor([[[0.9], [0.4]]], dtype=torch.float32) + reducemax = scores.clone() + keypoints = torch.arange(102, dtype=torch.float32).reshape(1, 2, 51) + + result = postprocessor([reducemax, scores, boxes, keypoints]) + + assert isinstance(result, torch.Tensor) + assert result.shape == (1, 300, 57) + first_detection = result[0][0] + assert torch.equal(first_detection[:4], boxes[0, 0]) + assert torch.allclose(first_detection[4], torch.tensor(0.9)) + assert torch.allclose(first_detection[5], torch.tensor(0.0)) + assert torch.equal(first_detection[6:], keypoints[0, 0]) + + +def test_non_e2e_dflfree_obb_preserves_canonical_row_width() -> None: + """Pad non-e2e DFL-free OBB converted outputs using canonical pre-NMS row widths.""" + + expected_max_det = 300 + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "obb", + "nl": 3, + "nc": 15, + "n_extra": 1, + "conf_thres": 0.8, + "iou_thres": 0.7, + "dflfree": True, + "e2e": False, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + + result = postprocessor(_make_converted_obb_parts()) + + assert isinstance(result, torch.Tensor) + assert result.shape == (1, expected_max_det, 20) + first_image = result[0] + assert torch.equal(first_image[:3], _make_converted_obb_rows()[0]) + assert torch.count_nonzero(first_image[3:]) == 0 + + +def test_raw_mxq_like_outputs_are_not_final_detections() -> None: + """Do not treat split MXQ-style head tensors as already-decoded detections.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "object_detection", + "nl": 3, + "dflfree": True, + "nc": 80, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + raw_outputs: ListTensorLike = [ + torch.zeros((1, 80, 80, 4), dtype=torch.float32), + torch.zeros((1, 80, 80, 80), dtype=torch.float32), + ] + + detections, proto = postprocessor.extract_final_outputs(raw_outputs) + + assert detections is None + assert proto is None + + +def _make_anchorless_obb_mxq_heads() -> ListTensorLike: + """Build synthetic channel-first MXQ OBB heads for anchorless models.""" + + outputs: list[np.ndarray] = [] + scale_specs = ((8, 0, 0, 0), (4, 0, 0, 1), (2, 0, 0, 2)) + for size, y_idx, x_idx, cls_idx in scale_specs: + det = np.full((1, 64, size, size), -10.0, dtype=np.float32) + for side in range(4): + det[0, side * 16 + 2, y_idx, x_idx] = 10.0 + + cls = np.full((1, 15, size, size), -10.0, dtype=np.float32) + cls[0, cls_idx, y_idx, x_idx] = 10.0 + + angle = np.zeros((1, 1, size, size), dtype=np.float32) + outputs.extend([det, cls, angle]) + return outputs + + +def _make_dflfree_obb_mxq_heads() -> ListTensorLike: + """Build synthetic channel-first MXQ OBB heads for DFL-free models.""" + + outputs: list[np.ndarray] = [] + scale_specs = ((8, 0, 0, 0), (4, 0, 0, 1), (2, 0, 0, 2)) + for size, y_idx, x_idx, cls_idx in scale_specs: + det = np.zeros((1, 4, size, size), dtype=np.float32) + det[0, :, y_idx, x_idx] = np.array([2.0, 2.0, 2.0, 2.0], dtype=np.float32) + + cls = np.full((1, 15, size, size), -10.0, dtype=np.float32) + cls[0, cls_idx, y_idx, x_idx] = 10.0 + + angle = np.zeros((1, 1, size, size), dtype=np.float32) + outputs.extend([det, cls, angle]) + return outputs + + +def _make_converted_obb_rows() -> torch.Tensor: + """Build synthetic converted OBB rows in canonical row-major format.""" + + output = torch.zeros((1, 3, 20), dtype=torch.float32) + output[0, :, :4] = torch.tensor( + [ + [12.0, 12.0, 6.0, 4.0], + [32.0, 24.0, 8.0, 6.0], + [48.0, 48.0, 10.0, 8.0], + ], + dtype=torch.float32, + ) + output[0, 0, 4] = 0.95 + output[0, 1, 5] = 0.90 + output[0, 2, 6] = 0.85 + output[0, :, -1] = torch.tensor([0.0, 0.1, -0.2], dtype=torch.float32) + return output + + +def _make_converted_obb_parts() -> ListTensorLike: + """Build shuffled converted MXQ OBB parts for decode-true outputs.""" + + rows = _make_converted_obb_rows() + boxes = rows[:, :, :4].unsqueeze(1) + scores = rows[:, :, 4:-1].unsqueeze(1) + angle = rows[:, :, -1:].unsqueeze(1) + return [angle, boxes, scores] + + +def _make_split_converted_obb_parts(class_first: bool) -> ListTensorLike: + """Build decode-true MXQ OBB parts split into box subchannels.""" + + rows = _make_converted_obb_rows() + scores = rows[:, :, 4:-1].transpose(1, 2) + angle = rows[:, :, -1:].transpose(1, 2) + xy = rows[:, :, :2].transpose(1, 2) + width = rows[:, :, 2:3].transpose(1, 2) + height = rows[:, :, 3:4].transpose(1, 2) + if class_first: + return [scores, angle, xy, width, height] + return [angle, scores, xy, width, height] + + +@pytest.mark.parametrize("dflfree", [False, True]) +def test_obb_accepts_single_converted_output(dflfree: bool) -> None: + """Accept ONNX-style converted OBB tensors before rotated NMS.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "obb", + "nl": 3, + "nc": 15, + "n_extra": 1, + "conf_thres": 0.8, + "iou_thres": 0.7, + } + if dflfree: + post_cfg["dflfree"] = True + else: + post_cfg["reg_max"] = 16 + + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + result = postprocessor(_make_converted_obb_rows().transpose(1, 2)) + + assert len(result) == 1 + assert result[0].shape == (3, 7) + assert torch.equal(result[0][:, 5], torch.tensor([0.0, 1.0, 2.0])) + + +@pytest.mark.parametrize("dflfree", [False, True]) +@pytest.mark.parametrize("class_first", [False, True]) +def test_obb_accepts_decode_true_converted_mxq_parts( + dflfree: bool, class_first: bool +) -> None: + """Accept converted MXQ OBB box, class, and angle outputs before rotated NMS.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "obb", + "nl": 3, + "nc": 15, + "n_extra": 1, + "conf_thres": 0.8, + "iou_thres": 0.7, + } + if dflfree: + post_cfg["dflfree"] = True + else: + post_cfg["reg_max"] = 16 + + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + result = postprocessor(_make_converted_obb_parts()) + split_result = postprocessor(_make_split_converted_obb_parts(class_first)) + + assert len(result) == 1 + assert result[0].shape == (3, 7) + assert torch.equal(result[0][:, 5], torch.tensor([0.0, 1.0, 2.0])) + assert len(split_result) == 1 + assert split_result[0].shape == (3, 7) + assert torch.equal(split_result[0][:, 5], torch.tensor([0.0, 1.0, 2.0])) + + +def test_anchorless_obb_accepts_channel_first_mxq_heads_and_plots_airport( + tmp_path: Path, +) -> None: + """Accept channel-first MXQ OBB heads for YOLOv8/YOLO11-style models.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "obb", + "nl": 3, + "reg_max": 16, + "nc": 15, + "n_extra": 1, + "conf_thres": 0.8, + "iou_thres": 0.7, + } + image_path = np.zeros((64, 64, 3), dtype=np.uint8) + save_path = tmp_path / "anchorless_obb_airport.jpg" + + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + result = postprocessor(_make_anchorless_obb_mxq_heads()) + + assert len(result) == 1 + assert result[0].shape[1] == 7 + assert result[0].shape[0] >= 1 + + plotted = Results(pre_cfg, post_cfg, result).plot( + image_path, save_path=str(save_path) + ) + + assert plotted is not None + assert save_path.is_file() + + +def test_dflfree_obb_accepts_channel_first_mxq_heads_and_plots_airport( + tmp_path: Path, +) -> None: + """Accept channel-first MXQ OBB heads for YOLO26-style models.""" + + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "obb", + "nl": 3, + "dflfree": True, + "nc": 15, + "n_extra": 1, + "conf_thres": 0.8, + "iou_thres": 0.7, + } + image_path = np.zeros((64, 64, 3), dtype=np.uint8) + save_path = tmp_path / "dflfree_obb_airport.jpg" + + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + result = postprocessor(_make_dflfree_obb_mxq_heads()) + + assert len(result) == 1 + assert result[0].shape[1] == 7 + assert result[0].shape[0] >= 1 + + plotted = Results(pre_cfg, post_cfg, result).plot( + image_path, save_path=str(save_path) + ) + + assert plotted is not None + assert save_path.is_file() + + +def test_anchor_segmentation_ignores_auxiliary_onnx_heads() -> None: + """Use converted YOLOv5-seg ONNX outputs and ignore auxiliary raw heads.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "instance_segmentation", + "anchors": [ + [10, 13, 16, 30, 33, 23], + [30, 61, 62, 45, 59, 119], + [116, 90, 156, 198, 373, 326], + ], + "n_extra": 32, + "nc": 80, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = cast(YOLODetectionPostBase, build_postprocess(pre_cfg, post_cfg)) + det = torch.zeros((1, 2, 117), dtype=torch.float32) + proto = torch.zeros((1, 32, 160, 160), dtype=torch.float32) + aux_heads = [ + torch.zeros((1, 3, 80, 80, 117), dtype=torch.float32), + torch.zeros((1, 3, 40, 40, 117), dtype=torch.float32), + torch.zeros((1, 3, 20, 20, 117), dtype=torch.float32), + ] + + result = postprocessor([det, proto, *aux_heads]) + + assert len(result) == 1 + assert result[0][0].shape == (0, 38) + assert result[0][1].shape == (0, 640, 640) + + +def test_anchor_segmentation_accepts_mxq_raw_heads() -> None: + """Use raw YOLOv5-seg MXQ heads when no converted detection tensor is present.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "instance_segmentation", + "anchors": [ + [10, 13, 16, 30, 33, 23], + [30, 61, 62, 45, 59, 119], + [116, 90, 156, 198, 373, 326], + ], + "n_extra": 32, + "nc": 80, + "conf_thres": 0.5, + "iou_thres": 0.7, + } + postprocessor = build_postprocess(pre_cfg, post_cfg) + raw_outputs = [ + torch.zeros((2, 20, 20, 351), dtype=torch.float32), + torch.zeros((2, 40, 40, 351), dtype=torch.float32), + torch.zeros((2, 80, 80, 351), dtype=torch.float32), + torch.zeros((2, 160, 160, 32), dtype=torch.float32), + ] + + result = postprocessor(raw_outputs) + + assert len(result) == 2 + assert result[0][0].shape == (0, 38) + assert result[0][1].shape == (0, 640, 640) + assert result[1][0].shape == (0, 38) + assert result[1][1].shape == (0, 640, 640) + + +def test_anchorless_prediction_nms_keeps_best_class_per_box() -> None: + """Keep ordinary prediction output limited to the best class per box.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "object_detection", + "nl": 3, + "reg_max": 16, + "nc": 3, + "conf_thres": 0.25, + "iou_thres": 0.7, + } + postprocessor = cast( + YOLOAnchorlessDetectionPost, build_postprocess(pre_cfg, post_cfg) + ) + decoded = torch.tensor( + [ + [ + [10.0, 50.0], + [10.0, 50.0], + [20.0, 60.0], + [20.0, 60.0], + [0.90, 0.80], + [0.10, 0.85], + [0.10, 0.70], + ] + ], + dtype=torch.float32, + ) + + result = postprocessor.nms([decoded[0]]) + + assert len(result) == 1 + assert result[0].shape == (2, 6) + assert torch.equal(result[0][:, 5], torch.tensor([0.0, 1.0])) + + +@pytest.mark.parametrize( + ("layout", "candidate_count"), + [ + ("channels_first", 117), + ("candidates_first", 117), + ("channels_first", 116), + ("candidates_first", 116), + ], +) +def test_anchorless_nms_normalizes_known_layout_before_suppression( + layout: AnchorlessOutputLayout, + candidate_count: int, + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Use source provenance to normalize raw and converted segmentation outputs.""" + + pre_cfg = {"LetterBox": {"img_size": [640, 640]}} + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "reg_max": 16, + "nc": 80, + "n_extra": 32, + "conf_thres": 0.25, + "iou_thres": 0.7, + } + postprocessor = cast( + YOLOAnchorlessDetectionPost, build_postprocess(pre_cfg, post_cfg) + ) + canonical = torch.arange(candidate_count * 116, dtype=torch.float32).reshape( + candidate_count, 116 + ) + source = canonical.transpose(0, 1) if layout == "channels_first" else canonical + captured: list[torch.Tensor] = [] + + def capture_canonical(xi: torch.Tensor, **_: Any) -> torch.Tensor: + captured.append(xi) + return torch.empty((0, 38), dtype=torch.float32) + + monkeypatch.setattr(postprocessor, "_nms_single_legacy_rows", capture_canonical) + + postprocessor.nms(_AnchorlessNMSInput([source], layout)) + + assert captured[0].shape == (candidate_count, 116) + torch.testing.assert_close(captured[0], canonical) + + +def test_anchorless_nms_shape_fallback_prefers_raw_layout_for_square_tensor( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Treat an ambiguous provenance-free square tensor as channel-first.""" + + pre_cfg = {"LetterBox": {"img_size": [640, 640]}} + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "reg_max": 16, + "nc": 80, + "n_extra": 32, + } + postprocessor = cast( + YOLOAnchorlessDetectionPost, build_postprocess(pre_cfg, post_cfg) + ) + source = torch.arange(116 * 116, dtype=torch.float32).reshape(116, 116) + captured: list[torch.Tensor] = [] + + def capture_canonical(xi: torch.Tensor, **_: Any) -> torch.Tensor: + captured.append(xi) + return torch.empty((0, 38), dtype=torch.float32) + + monkeypatch.setattr(postprocessor, "_nms_single_legacy_rows", capture_canonical) + + postprocessor.nms([source]) + + torch.testing.assert_close(captured[0], source.transpose(0, 1)) + + +def test_anchorless_segmentation_preprocess_preserves_layout_provenance( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Tag decoded MXQ heads as channel-first and converted outputs as candidates-first.""" + + pre_cfg = {"LetterBox": {"img_size": [640, 640]}} + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "reg_max": 16, + "nc": 80, + "n_extra": 32, + } + postprocessor = cast( + YOLOAnchorlessDetectionPost, build_postprocess(pre_cfg, post_cfg) + ) + decoded = torch.zeros((116, 116), dtype=torch.float32) + converted = decoded.transpose(0, 1).unsqueeze(0) + proto = torch.zeros((1, 160, 160, 32), dtype=torch.float32) + rearranged = torch.empty(0) + + monkeypatch.setattr(postprocessor, "rearrange", lambda _: (rearranged, proto)) + monkeypatch.setattr( + postprocessor, "decode", lambda value: [decoded] if value is rearranged else [] + ) + raw_predictions, raw_proto = postprocessor._pre_process([torch.empty(0)] * 3) + + monkeypatch.setattr(postprocessor, "conversion", lambda _: (converted, proto)) + monkeypatch.setattr( + postprocessor, "filter_conversion", lambda _: [converted.squeeze(0)] + ) + converted_predictions, converted_proto = postprocessor._pre_process( + [torch.empty(0)] * 2 + ) + + assert raw_predictions.layout == "channels_first" + assert isinstance(raw_predictions.detections, list) + assert raw_predictions.detections[0] is decoded + assert raw_proto is proto + assert converted_predictions.layout == "candidates_first" + assert isinstance(converted_predictions.detections, list) + torch.testing.assert_close( + converted_predictions.detections[0], converted.squeeze(0) + ) + assert converted_proto is proto + + +def test_anchorless_nms_normalizes_detection_without_extra_channels( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Normalize raw detection output when no segmentation or pose extras exist.""" + + pre_cfg = {"LetterBox": {"img_size": [640, 640]}} + post_cfg = { + "task": "object_detection", + "nl": 3, + "reg_max": 16, + "nc": 80, + "conf_thres": 0.25, + "iou_thres": 0.7, + } + postprocessor = cast( + YOLOAnchorlessDetectionPost, build_postprocess(pre_cfg, post_cfg) + ) + source = torch.arange(84 * 91, dtype=torch.float32).reshape(84, 91) + captured: list[torch.Tensor] = [] + + def capture_canonical(xi: torch.Tensor, **_: Any) -> torch.Tensor: + captured.append(xi) + return torch.empty((0, 6), dtype=torch.float32) + + monkeypatch.setattr(postprocessor, "_nms_single_legacy_rows", capture_canonical) + + postprocessor.nms(_AnchorlessNMSInput([source], "channels_first")) + + assert postprocessor.n_extra == 0 + assert captured[0].shape == (91, 84) + torch.testing.assert_close(captured[0], source.transpose(0, 1)) + + +def test_anchorless_nonambiguous_layouts_keep_identical_nms_results() -> None: + """Keep existing suppression results after canonical layout normalization.""" + + pre_cfg = {"LetterBox": {"img_size": [640, 640]}} + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "reg_max": 16, + "nc": 80, + "n_extra": 32, + "conf_thres": 0.25, + "iou_thres": 0.7, + } + postprocessor = cast( + YOLOAnchorlessDetectionPost, build_postprocess(pre_cfg, post_cfg) + ) + canonical = torch.zeros((2, 116), dtype=torch.float32) + canonical[0, :4] = torch.tensor([10.0, 10.0, 20.0, 20.0]) + canonical[1, :4] = torch.tensor([40.0, 40.0, 60.0, 60.0]) + canonical[0, 4] = 0.9 + canonical[1, 5] = 0.8 + canonical[:, 84:] = torch.arange(64, dtype=torch.float32).reshape(2, 32) + + raw_result = postprocessor.nms( + _AnchorlessNMSInput([canonical.transpose(0, 1)], "channels_first") + ) + converted_result = postprocessor.nms( + _AnchorlessNMSInput([canonical], "candidates_first") + ) + + torch.testing.assert_close(raw_result[0], converted_result[0]) + + +def test_anchorless_validation_nms_keeps_multilabel_candidates() -> None: + """Retain all above-threshold classes when validation requests Ultralytics semantics.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "object_detection", + "nl": 3, + "reg_max": 16, + "nc": 3, + "conf_thres": 0.25, + "iou_thres": 0.7, + } + postprocessor = cast( + YOLOAnchorlessDetectionPost, build_postprocess(pre_cfg, post_cfg) + ) + decoded = torch.tensor( + [ + [10.0, 10.0, 20.0, 20.0, 0.90, 0.80, 0.10], + [50.0, 50.0, 60.0, 60.0, 0.20, 0.85, 0.70], + ], + dtype=torch.float32, + ) + + result = postprocessor.nms([decoded], multi_label=True) + + assert len(result) == 1 + assert result[0].shape == (4, 6) + assert torch.equal(result[0][:, 5], torch.tensor([0.0, 1.0, 1.0, 2.0])) + + +def test_anchorless_segmentation_validation_duplicates_mask_coefficients_per_class() -> ( + None +): + """Copy mask coefficients when validation expands a box into multiple class candidates.""" + + pre_cfg = { + "LetterBox": { + "img_size": [640, 640], + } + } + post_cfg = { + "task": "instance_segmentation", + "nl": 3, + "reg_max": 16, + "nc": 3, + "n_extra": 2, + "conf_thres": 0.25, + "iou_thres": 0.7, + } + postprocessor = cast( + YOLOAnchorlessDetectionPost, build_postprocess(pre_cfg, post_cfg) + ) + decoded = torch.tensor( + [[10.0, 10.0, 20.0, 20.0, 0.90, 0.80, 0.10, 0.25, -0.50]], + dtype=torch.float32, + ) + + result = postprocessor.nms([decoded], multi_label=True) + + assert result[0].shape == (2, 8) + assert torch.equal(result[0][:, 5], torch.tensor([0.0, 1.0])) + assert torch.equal(result[0][:, 6:], decoded[:, 7:].repeat(2, 1)) + + +def test_anchorless_pose_single_and_batch_decode_are_equivalent() -> None: + """Keep batched pose decoding equivalent to the verified v1.5.1 per-image formula.""" + + torch.manual_seed(0) + pre_cfg = { + "LetterBox": { + "img_size": [64, 64], + } + } + post_cfg = { + "task": "pose_estimation", + "nl": 3, + "reg_max": 16, + "nc": 1, + "n_extra": 51, + "conf_thres": 0.25, + "iou_thres": 0.7, + } + postprocessor = cast(YOLOAnchorlessPosePost, build_postprocess(pre_cfg, post_cfg)) + anchor_count = postprocessor.anchors_as_tensor().shape[-1] + raw = torch.randn((2, 116, anchor_count), dtype=torch.float32) + raw[:, 64, :] = 10.0 + + batched = postprocessor.decode_batch(raw) + per_image = torch.stack([postprocessor.process_box_cls(image) for image in raw]) + + torch.testing.assert_close(batched, per_image) + + +def test_scale_coords_matches_ultralytics_rounding() -> None: + """Match upstream letterbox padding rounding for keypoint scaling.""" + + coords = torch.tensor( + [[[160.0, 100.0, 1.0], [480.0, 500.0, 1.0]]], dtype=torch.float32 + ) + + ratio_pad = resolve_ratio_pad((640, 640), (581, 640)) + scaled = scale_coords((640, 640), coords.clone(), (581, 640)) + + expected = torch.tensor( + [[[160.0, 71.0, 1.0], [480.0, 471.0, 1.0]]], dtype=torch.float32 + ) + assert ratio_pad == ((1.0, 1.0), (0, 29)) + torch.testing.assert_close(scaled, expected) + + +def test_letterbox_metadata_normalization_is_batch_aware() -> None: + """Share consistent shape and ratio-pad normalization across postprocessors.""" + + ratio_pad = ((1.0, 1.0), (0.0, 80.0)) + + assert normalize_image_shapes((481, 640), batch_size=2) == [(481, 640), (481, 640)] + assert normalize_ratio_pads(ratio_pad, batch_size=2) == [ratio_pad, ratio_pad] + assert normalize_ratio_pads((ratio_pad, ratio_pad), batch_size=2) == [ + ratio_pad, + ratio_pad, + ] + labels, boxes, scores = nmsout2eval( + [torch.zeros((0, 6)), torch.zeros((0, 6))], + (640, 640), + (481, 640), + ratio_pads=ratio_pad, + ) + assert labels == boxes == scores == [[], []] + with pytest.raises(ValueError, match="Expected 2 image shapes"): + normalize_image_shapes([(481, 640)], batch_size=2) + with pytest.raises(ValueError, match="Expected 2 ratio_pad values"): + normalize_ratio_pads([ratio_pad], batch_size=2) + + +def test_scale_masks_matches_ultralytics_rounding() -> None: + """Crop mask padding with the same rounding as upstream Ultralytics.""" + + masks = torch.zeros((1, 640, 640), dtype=torch.float32) + masks[:, 80:560, :] = 1.0 + + scaled = scale_masks(masks, (481, 640)) + + assert scaled.shape == (1, 481, 640) + assert float(scaled[:, 0, :].max()) == pytest.approx(0.0) + assert float(scaled[:, 1, :].max()) > 0.0 + assert float(scaled[:, -1, :].max()) == pytest.approx(1.0) + + +def test_preprocess_with_metadata_returns_letterbox_ratio_pad() -> None: + """Expose exact LetterBox ratio and integer padding for validation scaling.""" + + engine = MBLT_Engine.__new__(MBLT_Engine) + engine.pre_cfg = { + "Reader": {"style": "numpy"}, + "LetterBox": {"img_size": [640, 640]}, + "SetOrder": {"shape": "HWC"}, + "Normalize": {"style": "cv"}, + } + engine.preprocessor = wrapper.build_preprocess(engine.pre_cfg) + image = np.zeros((481, 640, 3), dtype=np.uint8) + + processed, metadata = engine.preprocess_with_metadata(image) + + assert processed.shape == (640, 640, 3) + assert metadata["img0_shape"] == (481, 640) + assert metadata["ratio_pad"] == ((1.0, 1.0), (0, 79)) + + +def test_nmsout2eval_matches_coco_json_format_without_mutation() -> None: + """Serialize detections like Ultralytics validation without changing NMS output.""" + + nms_out = torch.tensor( + [ + [10.12345, 20.23456, 110.34567, 220.45678, 0.876543, 0.0], + ], + dtype=torch.float32, + ) + original = nms_out.clone() + + labels, boxes, scores = nmsout2eval([nms_out], (640, 640), [(640, 640)]) + + assert labels == [[1]] + assert boxes == [[[10.123, 20.235, 100.222, 200.222]]] + assert scores == [[0.87654]] + assert torch.equal(nms_out, original) + + +def test_nmsout2eval_uses_explicit_ratio_pad() -> None: + """Use dataloader-provided LetterBox padding instead of recomputing from shape.""" + + nms_out = torch.tensor([[0.0, 79.0, 10.0, 89.0, 0.9, 0.0]], dtype=torch.float32) + + _labels, boxes, _scores = nmsout2eval( + [nms_out], + (640, 640), + [(481, 640)], + ratio_pads=[((1.0, 1.0), (0, 79))], + ) + + assert boxes == [[[0.0, 0.0, 10.0, 10.0]]] diff --git a/tests/test_yolo_det.py b/tests/test_yolo_det.py deleted file mode 100644 index d7ab603..0000000 --- a/tests/test_yolo_det.py +++ /dev/null @@ -1,124 +0,0 @@ -""" -Test script for YOLO26m model. - -This script tests the YOLO26m model by running inference on a sample image. -It can be run as a pytest test or as a standalone script. -""" - -import argparse -import os -from pathlib import Path - -import pytest - -from mblt_vision import YOLO26m - -TEST_DIR = Path(__file__).parent - - -@pytest.fixture -def yolo_det(): - """Fixture to initialize and dispose of the YOLO26m model.""" - model = YOLO26m() - yield model - model.dispose() - - -def run_inference(model, image_path, save_path, conf_thres=0.5, iou_thres=0.5): - """Run inference with the given model and image.""" - os.makedirs(os.path.dirname(save_path), exist_ok=True) - - input_img = model.preprocess(image_path) - output = model(input_img) - result = model.postprocess(output, conf_thres=conf_thres, iou_thres=iou_thres) - - result.plot( - source_path=image_path, - save_path=save_path, - ) - - -def test_yolo_det(yolo_det): - """Test YOLO26m inference on a sample image.""" - image_path = os.path.join(TEST_DIR, "rc", "cr7.jpg") - save_path = os.path.join( - TEST_DIR, - "tmp", - f"yolo26m_{os.path.basename(image_path)}", - ) - - run_inference(yolo_det, image_path, save_path) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Run YOLO26m inference") - parser.add_argument( - "--mxq-path", - type=str, - default=None, - help="Path to the YOLO26m model file (.mxq)", - ) - parser.add_argument( - "--model-type", - type=str, - default="DEFAULT", - help="Model type", - ) - parser.add_argument( - "--infer-mode", - type=str, - default="global8", - choices=["single", "multi", "global4", "global8"], - help="Inference mode", - ) - parser.add_argument( - "--product", - type=str, - default="aries", - help="Product", - ) - parser.add_argument( - "--input-path", - type=str, - default=os.path.join(TEST_DIR, "rc", "cr7.jpg"), - help="Path to the input image", - ) - parser.add_argument( - "--save-path", - type=str, - default=None, - help="Path to save the output image", - ) - parser.add_argument( - "--conf-thres", - type=float, - default=0.5, - help="Confidence threshold", - ) - parser.add_argument( - "--iou-thres", - type=float, - default=0.5, - help="IoU threshold", - ) - - args = parser.parse_args() - - # Load model with the specified mxq_path - model = YOLO26m( - local_path=args.mxq_path, - model_type=args.model_type, - infer_mode=args.infer_mode, - product=args.product, - ) - if args.save_path is None: - args.save_path = os.path.join( - TEST_DIR, "tmp", f"yolo26m_{os.path.basename(args.input_path)}" - ) - - try: - run_inference( - model, args.input_path, args.save_path, args.conf_thres, args.iou_thres - ) - finally: - model.dispose() diff --git a/tests/test_yolo_pose.py b/tests/test_yolo_pose.py deleted file mode 100644 index 4ab2481..0000000 --- a/tests/test_yolo_pose.py +++ /dev/null @@ -1,124 +0,0 @@ -""" -Test script for YOLOv8mPose model. - -This script tests the YOLOv8mPose model by running inference on a sample image. -It can be run as a pytest test or as a standalone script. -""" - -import argparse -import os -from pathlib import Path - -import pytest - -from mblt_vision import YOLO26mPose - -TEST_DIR = Path(__file__).parent - - -@pytest.fixture -def yolo_pose(): - """Fixture to initialize and dispose of the YOLO26mPose model.""" - model = YOLO26mPose() - yield model - model.dispose() - - -def run_inference(model, image_path, save_path, conf_thres=0.5, iou_thres=0.5): - """Run inference with the given model and image.""" - os.makedirs(os.path.dirname(save_path), exist_ok=True) - - input_img = model.preprocess(image_path) - output = model(input_img) - result = model.postprocess(output, conf_thres=conf_thres, iou_thres=iou_thres) - - result.plot( - source_path=image_path, - save_path=save_path, - ) - - -def test_yolo_pose(yolo_pose): - """Test YOLO26mPose inference on a sample image.""" - image_path = os.path.join(TEST_DIR, "rc", "cr7.jpg") - save_path = os.path.join( - TEST_DIR, - "tmp", - f"yolo26m_pose_{os.path.basename(image_path)}", - ) - - run_inference(yolo_pose, image_path, save_path) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Run YOLO26mPose inference") - parser.add_argument( - "--mxq-path", - type=str, - default=None, - help="Path to the YOLO26mPose model file (.mxq)", - ) - parser.add_argument( - "--model-type", - type=str, - default="DEFAULT", - help="Model type", - ) - parser.add_argument( - "--infer-mode", - type=str, - default="global8", - choices=["single", "multi", "global4", "global8"], - help="Inference mode", - ) - parser.add_argument( - "--product", - type=str, - default="aries", - help="Product", - ) - parser.add_argument( - "--input-path", - type=str, - default=os.path.join(TEST_DIR, "rc", "cr7.jpg"), - help="Path to the input image", - ) - parser.add_argument( - "--save-path", - type=str, - default=None, - help="Path to save the output image", - ) - parser.add_argument( - "--conf-thres", - type=float, - default=0.5, - help="Confidence threshold", - ) - parser.add_argument( - "--iou-thres", - type=float, - default=0.5, - help="IoU threshold", - ) - - args = parser.parse_args() - - # Load model with the specified mxq_path - model = YOLO26mPose( - local_path=args.mxq_path, - model_type=args.model_type, - infer_mode=args.infer_mode, - product=args.product, - ) - if args.save_path is None: - args.save_path = os.path.join( - TEST_DIR, "tmp", f"yolo26m_pose_{os.path.basename(args.input_path)}" - ) - - try: - run_inference( - model, args.input_path, args.save_path, args.conf_thres, args.iou_thres - ) - finally: - model.dispose() diff --git a/tests/test_yolo_seg.py b/tests/test_yolo_seg.py deleted file mode 100644 index c66e0cc..0000000 --- a/tests/test_yolo_seg.py +++ /dev/null @@ -1,124 +0,0 @@ -""" -Test script for YOLO26mSeg model. - -This script tests the YOLO26mSeg model by running inference on a sample image. -It can be run as a pytest test or as a standalone script. -""" - -import argparse -import os -from pathlib import Path - -import pytest - -from mblt_vision import YOLO26mSeg - -TEST_DIR = Path(__file__).parent - - -@pytest.fixture -def yolo_seg(): - """Fixture to initialize and dispose of the YOLO26mSeg model.""" - model = YOLO26mSeg() - yield model - model.dispose() - - -def run_inference(model, image_path, save_path, conf_thres=0.5, iou_thres=0.5): - """Run inference with the given model and image.""" - os.makedirs(os.path.dirname(save_path), exist_ok=True) - - input_img = model.preprocess(image_path) - output = model(input_img) - result = model.postprocess(output, conf_thres=conf_thres, iou_thres=iou_thres) - - result.plot( - source_path=image_path, - save_path=save_path, - ) - - -def test_yolo_seg(yolo_seg): - """Test YOLO26mSeg inference on a sample image.""" - image_path = os.path.join(TEST_DIR, "rc", "cr7.jpg") - save_path = os.path.join( - TEST_DIR, - "tmp", - f"yolo26m_seg_{os.path.basename(image_path)}", - ) - - run_inference(yolo_seg, image_path, save_path) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Run YOLO26mSeg inference") - parser.add_argument( - "--mxq-path", - type=str, - default=None, - help="Path to the YOLO26mSeg model file (.mxq)", - ) - parser.add_argument( - "--model-type", - type=str, - default="DEFAULT", - help="Model type", - ) - parser.add_argument( - "--infer-mode", - type=str, - default="global8", - choices=["single", "multi", "global4", "global8"], - help="Inference mode", - ) - parser.add_argument( - "--product", - type=str, - default="aries", - help="Product", - ) - parser.add_argument( - "--input-path", - type=str, - default=os.path.join(TEST_DIR, "rc", "cr7.jpg"), - help="Path to the input image", - ) - parser.add_argument( - "--save-path", - type=str, - default=None, - help="Path to save the output image", - ) - parser.add_argument( - "--conf-thres", - type=float, - default=0.5, - help="Confidence threshold", - ) - parser.add_argument( - "--iou-thres", - type=float, - default=0.5, - help="IoU threshold", - ) - - args = parser.parse_args() - - # Load model with the specified mxq_path - model = YOLO26mSeg( - local_path=args.mxq_path, - model_type=args.model_type, - infer_mode=args.infer_mode, - product=args.product, - ) - if args.save_path is None: - args.save_path = os.path.join( - TEST_DIR, "tmp", f"yolo26m_seg_{os.path.basename(args.input_path)}" - ) - - try: - run_inference( - model, args.input_path, args.save_path, args.conf_thres, args.iou_thres - ) - finally: - model.dispose() From a04bfadd94ad3b4ff919d650457bc58a6f676f6a Mon Sep 17 00:00:00 2001 From: jinman Date: Mon, 10 Aug 2026 16:35:34 +0900 Subject: [PATCH 04/48] Implement standalone CLI for Mobilint Vision with predict, validate, and compile commands; update .gitignore and add tests --- .gitignore | 4 + README.md | 15 +- mblt_vision/cli/__init__.py | 5 + mblt_vision/cli/__main__.py | 5 + mblt_vision/cli/_vision.py | 320 +++++++++++++++++++++ mblt_vision/cli/compile.py | 110 ++++++++ mblt_vision/cli/main.py | 35 +++ mblt_vision/cli/predict.py | 45 +++ mblt_vision/cli/val.py | 543 ++++++++++++++++++++++++++++++++++++ pyproject.toml | 3 + tests/test_cli.py | 24 ++ 11 files changed, 1108 insertions(+), 1 deletion(-) create mode 100644 mblt_vision/cli/__init__.py create mode 100644 mblt_vision/cli/__main__.py create mode 100644 mblt_vision/cli/_vision.py create mode 100644 mblt_vision/cli/compile.py create mode 100644 mblt_vision/cli/main.py create mode 100644 mblt_vision/cli/predict.py create mode 100644 mblt_vision/cli/val.py create mode 100644 tests/test_cli.py diff --git a/.gitignore b/.gitignore index 7bcf7eb..2c98cff 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,7 @@ compile_commands.json *.swo .DS_Store Thumbs.db + +*.zip +*.tar.gz +*.egg \ No newline at end of file diff --git a/README.md b/README.md index a7d8199..a142a84 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,20 @@ code should use the task subpackages (for example, Vision is now maintained in this package. `mblt-model-zoo` retains `mblt_model_zoo.vision` as a compatibility facade for existing applications; new -projects should import from `mblt_vision` directly. +projects should import from `mblt_vision` directly. Its `mblt-model-zoo predict`, +`val`, and `compile` commands also delegate to this package. + +## Command line + +The standalone package provides the `mblt-vision` command with `predict`, `val`, +and `compile` subcommands: + +```bash +mblt-vision predict --source image.jpg --model resnet50 +``` + +The corresponding `mblt-model-zoo` commands use the same standalone handlers for +backward compatibility. ## Documentation and tests diff --git a/mblt_vision/cli/__init__.py b/mblt_vision/cli/__init__.py new file mode 100644 index 0000000..eb8e256 --- /dev/null +++ b/mblt_vision/cli/__init__.py @@ -0,0 +1,5 @@ +"""Command-line interface for standalone Mobilint Vision workflows.""" + +from .main import build_parser, main + +__all__ = ["build_parser", "main"] diff --git a/mblt_vision/cli/__main__.py b/mblt_vision/cli/__main__.py new file mode 100644 index 0000000..13522c2 --- /dev/null +++ b/mblt_vision/cli/__main__.py @@ -0,0 +1,5 @@ +"""Run the standalone Vision CLI with ``python -m mblt_vision.cli``.""" + +from .main import main + +raise SystemExit(main()) diff --git a/mblt_vision/cli/_vision.py b/mblt_vision/cli/_vision.py new file mode 100644 index 0000000..1e85c6b --- /dev/null +++ b/mblt_vision/cli/_vision.py @@ -0,0 +1,320 @@ +"""Shared helpers for vision CLI commands.""" + +from __future__ import annotations + +import argparse +import os +import sys +from pathlib import Path +from typing import Any + +import torch +from mblt_vision._tasks import normalize_vision_task + +DEFAULT_OUTPUT_DIR = Path("runs") / "vision" + + +def parse_unit_interval(value: str) -> float: + """Parse a floating-point value strictly between zero and one.""" + + try: + parsed = float(value) + except ValueError as exc: + raise argparse.ArgumentTypeError( + "expected a number in the open interval (0, 1)" + ) from exc + if not 0 < parsed < 1: + raise argparse.ArgumentTypeError( + f"expected a number in the open interval (0, 1), got {value}" + ) + return parsed + + +def parse_target_cores(value: str | None) -> list[str] | None: + """Parses a semicolon-separated target core list.""" + + if value is None: + return None + cores = [item.strip() for item in value.split(";") if item.strip()] + return cores or None + + +def parse_target_clusters(value: str | None) -> list[int] | None: + """Parses a semicolon-separated target cluster list.""" + + if value is None: + return None + try: + clusters = [int(item.strip()) for item in value.split(";") if item.strip()] + except ValueError as exc: + raise argparse.ArgumentTypeError( + "target clusters must be semicolon-separated integers" + ) from exc + return clusters or None + + +def add_common_vision_args(parser: argparse.ArgumentParser) -> None: + """Adds arguments shared by all vision inference commands.""" + + parser.add_argument("--source", required=True, help="Path to the source image.") + parser.add_argument( + "--model", + required=True, + help="Vision model name, for example `resnet50` or `yolo11m`.", + ) + parser.add_argument( + "--output", + "--save-path", + dest="output", + help="Path to save the plotted result image.", + ) + parser.add_argument( + "--framework", + default=None, + choices=["mxq", "onnx"], + help="Inference framework to use. When omitted, `--model-path` suffix is used first, then `mxq`.", + ) + parser.add_argument( + "--model-path", + dest="model_path", + default="", + help="Optional generic local model path for MXQ or ONNX inference.", + ) + parser.add_argument( + "--mxq-path", + dest="mxq_path", + default="", + help="Optional local MXQ model path. Preserved as a compatibility alias.", + ) + parser.add_argument( + "--onnx-path", + dest="onnx_path", + default="", + help="Optional local ONNX model path.", + ) + parser.add_argument( + "--model-type", + default="DEFAULT", + help="Model variant from the YAML configuration.", + ) + parser.add_argument( + "--core-mode", + default="global8", + choices=["single", "multi", "global4", "global8"], + help="NPU core execution mode.", + ) + parser.add_argument("--dev-no", type=int, default=0, help="NPU device number.") + parser.add_argument( + "--target-cores", + type=parse_target_cores, + help="Optional semicolon-separated core list for single-core mode, for example `0:0;0:1`.", + ) + parser.add_argument( + "--target-clusters", + type=parse_target_clusters, + help="Optional semicolon-separated cluster list for multi/global modes, for example `0;1`.", + ) + + +def add_threshold_args( + parser: argparse.ArgumentParser, + *, + conf_default: float | None = 0.25, + iou_default: float | None = None, +) -> None: + """Adds postprocess threshold arguments for dense vision tasks.""" + + parser.add_argument( + "--conf-thres", + type=parse_unit_interval, + default=conf_default, + help="Confidence threshold.", + ) + parser.add_argument( + "--iou-thres", + type=parse_unit_interval, + default=iou_default, + help="IoU threshold.", + ) + + +def parse_bool(value: str) -> bool: + """Parses a case-insensitive boolean CLI value. + + Args: + value: Boolean text to parse. + + Returns: + Parsed boolean value. + + Raises: + argparse.ArgumentTypeError: If the value is not a supported boolean spelling. + """ + + normalized = value.strip().lower() + if normalized in {"true", "1", "yes", "on"}: + return True + if normalized in {"false", "0", "no", "off"}: + return False + raise argparse.ArgumentTypeError("expected a boolean value: true or false") + + +def add_e2e_arg(parser: argparse.ArgumentParser) -> None: + """Adds an optional YOLO end-to-end postprocessing mode override. + + Leaving the option unset preserves the model configuration's default. + """ + + parser.add_argument( + "--e2e", + nargs="?", + const=True, + type=parse_bool, + default=None, + help="Enable or disable YOLO end-to-end postprocessing (true/false). Bare `--e2e` means true.", + ) + + +def add_vision_parser( + subparsers: argparse._SubParsersAction[argparse.ArgumentParser], + *, + command: str, + help_text: str, + handler: Any, + aliases: list[str] | None = None, +) -> argparse.ArgumentParser: + """Creates a vision command parser with common arguments.""" + + parser = subparsers.add_parser(command, aliases=aliases or [], help=help_text) + parser.set_defaults(_handler=handler) + add_common_vision_args(parser) + return parser + + +def build_default_output_path(command: str, source: str, model: str) -> str: + """Builds the default path used for plotted vision command output.""" + + source_path = Path(source) + suffix = source_path.suffix or ".jpg" + return str(DEFAULT_OUTPUT_DIR / command / f"{source_path.stem}_{model}{suffix}") + + +def resolve_output_path( + output: str | None, command: str, source: str, model: str +) -> str: + """Returns an absolute result image path and ensures its parent exists.""" + + save_path = Path( + output or build_default_output_path(command, source, model) + ).expanduser() + save_path.parent.mkdir(parents=True, exist_ok=True) + return str(save_path.resolve()) + + +def require_source_file(source: str) -> None: + """Exits with a clear message when the source image is unavailable.""" + + source_path = Path(source).expanduser() + if not source_path.is_file(): + raise SystemExit(f"Source image not found: {source}") + + +def create_vision_engine(args: argparse.Namespace) -> Any: + """Creates a vision engine from shared CLI model options. + + Args: + args: Parsed command options containing common vision model arguments. + + Returns: + Initialized vision inference engine. + + Raises: + SystemExit: If the vision runtime dependencies are unavailable. + """ + + try: + from mblt_vision import MBLT_Engine + from mblt_vision.wrapper import normalize_core_mode + except ImportError as exc: + print(f"Missing dependencies for vision CLI: {exc}", file=sys.stderr) + raise SystemExit(2) from exc + + postprocess_kwargs: dict[str, Any] = {} + if getattr(args, "e2e", None) is not None: + postprocess_kwargs["e2e"] = args.e2e + + return MBLT_Engine( + model_cls=args.model, + model_type=args.model_type, + framework=args.framework, + model_path=args.model_path, + mxq_path=args.mxq_path, + onnx_path=args.onnx_path, + dev_no=args.dev_no, + core_mode=normalize_core_mode(args.core_mode), + target_cores=args.target_cores, + target_clusters=args.target_clusters, + postprocess_kwargs=postprocess_kwargs, + ) + + +def run_vision_inference( + args: argparse.Namespace, + *, + command: str, +) -> Any: + """Runs a complete vision inference pipeline for a CLI command.""" + + require_source_file(args.source) + model = create_vision_engine(args) + try: + actual_task = normalize_vision_task(model.post_cfg.get("task", "")) + plot_kwargs: dict[str, Any] = {} + if actual_task == "image_classification": + plot_kwargs["topk"] = args.topk + elif actual_task in { + "object_detection", + "face_detection", + "instance_segmentation", + "pose_estimation", + "obb", + }: + model.set_postprocess_thresholds( + conf_thres=args.conf_thres, iou_thres=args.iou_thres + ) + + postprocess_kwargs: dict[str, Any] = {} + if actual_task == "semantic_segmentation": + input_img, metadata = model.preprocess_with_metadata(args.source) + postprocess_kwargs["img0_shape"] = metadata["img0_shape"] + postprocess_kwargs["ratio_pad"] = metadata.get("ratio_pad") + else: + input_img = model.preprocess(args.source) + output = model(input_img) + if not getattr(getattr(model, "postprocessor", None), "e2e", True): + if args.output: + raise SystemExit( + "`--output` is unavailable with `--e2e false`; use `--raw-output` instead." + ) + + raw_output = model.postprocessor(output) + raw_output_path = getattr(args, "raw_output", None) + if raw_output_path: + output_path = Path(raw_output_path).expanduser() + output_path.parent.mkdir(parents=True, exist_ok=True) + torch.save(raw_output, output_path) + print(f"Saved raw postprocess output to {output_path}") + else: + print( + "Generated raw export-style postprocess output. Use `--raw-output` to save it." + ) + return raw_output + + result = model.postprocess(output, **postprocess_kwargs) + + save_path = resolve_output_path(args.output, command, args.source, args.model) + result.plot(source_path=args.source, save_path=save_path, **plot_kwargs) + print(f"Saved result to {os.path.relpath(save_path)}") + return result + finally: + model.dispose() diff --git a/mblt_vision/cli/compile.py b/mblt_vision/cli/compile.py new file mode 100644 index 0000000..7858b3e --- /dev/null +++ b/mblt_vision/cli/compile.py @@ -0,0 +1,110 @@ +"""Vision compilation CLI command.""" + +from __future__ import annotations + +import argparse +import sys + + +def _run_compile(args: argparse.Namespace) -> int: + """Compile a vision model from parsed CLI arguments. + + Args: + args: Parsed compilation arguments. + + Returns: + Successful process status. + """ + + try: + from mblt_vision.compile import compile_vision_model + + output_path = compile_vision_model( + model_cls=args.model_cls, + model_type=args.model_type, + model_path=args.model_path, + data_path=args.data_path, + subset_path=args.subset_path, + calib_data_path=args.calib_data_path, + save_path=args.save_path, + subset_size=args.subset_size, + seed=args.seed, + percentile=args.percentile, + topk_ratio=args.topk_ratio, + ) + except ImportError as exc: + print(str(exc), file=sys.stderr) + raise SystemExit(2) from exc + print(f"Compiled MXQ model to {output_path}") + return 0 + + +def add_compile_parser( + subparsers: argparse._SubParsersAction[argparse.ArgumentParser], +) -> argparse.ArgumentParser: + """Register the vision compilation command. + + Args: + subparsers: Main CLI subparser collection. + + Returns: + Registered compile command parser. + """ + + parser = subparsers.add_parser( + "compile", help="Compile a configured vision ONNX model to MXQ." + ) + parser.set_defaults(_handler=_run_compile) + parser.add_argument( + "--model-cls", + required=True, + help="Vision model name, for example `alexnet` or `yolo11m`.", + ) + parser.add_argument( + "--model-type", + default="DEFAULT", + help="Model variant from the YAML configuration.", + ) + parser.add_argument( + "--model-path", + "--onnx-path", + dest="model_path", + help="Preferred local ONNX file. Missing files fall back to the configured hosted artifact.", + ) + data_group = parser.add_mutually_exclusive_group() + data_group.add_argument( + "--data-path", + help="Original organized dataset root; organize, sample, and preprocess it as needed.", + ) + data_group.add_argument( + "--subset-path", + help="Already-sampled image subset; skip original dataset preparation and sampling.", + ) + data_group.add_argument( + "--calib-data-path", + "--calib-data-dir", + dest="calib_data_path", + help="Ready directory of preprocessed .npy tensors; pass it directly to qbcompiler.", + ) + parser.add_argument( + "--save-path", + help="Output MXQ path. Defaults to the ONNX stem under ~/.mblt_model_zoo.", + ) + parser.add_argument( + "--subset-size", + type=int, + help="Per-category ImageNet/WiderFace count or total count for other datasets.", + ) + parser.add_argument( + "--seed", type=int, default=0, help="Deterministic calibration subset seed." + ) + parser.add_argument( + "--percentile", type=float, help="Quantization percentile override." + ) + parser.add_argument( + "--topk-ratio", type=float, help="Quantization top-k ratio override." + ) + return parser + + +__all__ = ["add_compile_parser"] diff --git a/mblt_vision/cli/main.py b/mblt_vision/cli/main.py new file mode 100644 index 0000000..814b7d0 --- /dev/null +++ b/mblt_vision/cli/main.py @@ -0,0 +1,35 @@ +"""Standalone command-line entry point for Mobilint Vision.""" + +from __future__ import annotations + +import argparse +from collections.abc import Sequence + +from .compile import add_compile_parser +from .predict import add_predict_parser +from .val import add_val_parser + + +def build_parser() -> argparse.ArgumentParser: + """Build the standalone Vision command parser.""" + + parser = argparse.ArgumentParser( + prog="mblt-vision", + description="Run, validate, and compile Mobilint Vision models.", + ) + subparsers = parser.add_subparsers(help="mblt-vision commands") + add_predict_parser(subparsers) + add_val_parser(subparsers) + add_compile_parser(subparsers) + return parser + + +def main(argv: Sequence[str] | None = None) -> int: + """Run the standalone Vision command-line interface.""" + + parser = build_parser() + args = parser.parse_args(argv) + if hasattr(args, "_handler"): + return int(args._handler(args)) + parser.print_help() + return 1 diff --git a/mblt_vision/cli/predict.py b/mblt_vision/cli/predict.py new file mode 100644 index 0000000..e142c8e --- /dev/null +++ b/mblt_vision/cli/predict.py @@ -0,0 +1,45 @@ +"""Vision prediction CLI command.""" + +from __future__ import annotations + +import argparse + +from ._vision import ( + add_e2e_arg, + add_threshold_args, + add_vision_parser, + run_vision_inference, +) + + +def _cmd_predict(args: argparse.Namespace) -> int: + """Runs vision inference on a source image.""" + + run_vision_inference(args, command="predict") + return 0 + + +def add_predict_parser( + subparsers: argparse._SubParsersAction[argparse.ArgumentParser], +) -> None: + """Registers the unified vision prediction CLI command.""" + + parser = add_vision_parser( + subparsers, + command="predict", + aliases=["classify", "detect", "pose", "segment"], + help_text=( + "Run vision inference for classification, depth estimation, detection, instance or semantic " + "segmentation, OBB, pose, and face detection." + ), + handler=_cmd_predict, + ) + parser.add_argument( + "--topk", type=int, default=5, help="Number of classification labels to show." + ) + parser.add_argument( + "--raw-output", + help="Path to save raw export-style output with `--e2e false`.", + ) + add_threshold_args(parser, conf_default=0.25, iou_default=None) + add_e2e_arg(parser) diff --git a/mblt_vision/cli/val.py b/mblt_vision/cli/val.py new file mode 100644 index 0000000..c324994 --- /dev/null +++ b/mblt_vision/cli/val.py @@ -0,0 +1,543 @@ +"""Vision validation CLI command.""" + +from __future__ import annotations + +import argparse +import os +import sys +from pathlib import Path + +from mblt_vision._tasks import normalize_vision_task +from mblt_vision.datasets import get_dataset_config, get_dataset_config_for_task +from mblt_vision.utils.datasets.readiness import dataset_ready + +from ._vision import ( + add_e2e_arg, + add_threshold_args, + create_vision_engine, + parse_target_clusters, + parse_target_cores, +) + +DEFAULT_IMAGENET_IMAGE_SOURCE = get_dataset_config("imagenet")["download"]["images"] +DEFAULT_IMAGENET_XML_SOURCE = get_dataset_config("imagenet")["download"]["annotations"] +DEFAULT_COCO_IMAGE_SOURCE = get_dataset_config("coco")["download"]["images"] +DEFAULT_COCO_ANNOTATION_SOURCE = get_dataset_config("coco")["download"]["annotations"] +DEFAULT_WIDERFACE_IMAGE_SOURCE = get_dataset_config("widerface")["download"]["images"] +DEFAULT_WIDERFACE_ANNOTATION_SOURCE = get_dataset_config("widerface")["download"][ + "annotations" +] +DEFAULT_DOTAV1_SOURCE = get_dataset_config("dotav1")["download"]["url"] +DEFAULT_NYU_DEPTH_SOURCE = get_dataset_config("nyu-depth")["download"]["url"] +DEFAULT_ADE20K_SOURCE = get_dataset_config("ade20k")["download"]["url"] +CITYSCAPES_DOWNLOAD_CONFIG = get_dataset_config("cityscapes")["download"] +CITYSCAPES_IMAGE_ARCHIVE = CITYSCAPES_DOWNLOAD_CONFIG["images_archive"] +CITYSCAPES_ANNOTATION_ARCHIVE = CITYSCAPES_DOWNLOAD_CONFIG["annotations_archive"] + + +def _candidate_search_roots(data_path: str) -> list[Path]: + """Returns directories to inspect for existing raw dataset sources.""" + + root = Path(data_path).expanduser() + candidates = [root, root.parent, Path.cwd()] + ordered: list[Path] = [] + seen: set[Path] = set() + for candidate in candidates: + resolved = candidate.resolve() + if resolved in seen: + continue + seen.add(resolved) + ordered.append(resolved) + return ordered + + +def _find_existing_source(data_path: str, candidate_names: list[str]) -> str | None: + """Finds a nearby raw archive or extracted dataset directory.""" + + for root in _candidate_search_roots(data_path): + for name in candidate_names: + candidate = root / name + if candidate.exists(): + return str(candidate) + return None + + +def _normalize_coco_annotation_source(annotation_dir: str | None) -> str | None: + """Normalizes a COCO annotation source for the organizer contract. + + The COCO organizer expects either the annotation archive or the extracted + parent directory that contains an ``annotations`` subdirectory. When source + discovery finds the extracted leaf ``annotations`` directory directly, + return its parent so downstream code does not resolve ``annotations`` + twice. + """ + + if annotation_dir is None: + return None + + candidate = Path(annotation_dir).expanduser() + if candidate.is_dir() and candidate.name == "annotations": + return str(candidate.parent) + return annotation_dir + + +def _resolve_imagenet_sources( + args: argparse.Namespace, data_path: str +) -> tuple[str, str]: + """Resolves local or remote sources for ImageNet organization.""" + + image_dir = args.image_dir + xml_dir = args.xml_dir + if not args.force_organize: + image_dir = image_dir or _find_existing_source( + data_path, ["ILSVRC2012_img_val.tar", "ILSVRC2012_img_val"] + ) + xml_dir = xml_dir or _find_existing_source( + data_path, ["ILSVRC2012_bbox_val_v3.tgz", "ILSVRC2012_bbox_val_v3"] + ) + return ( + image_dir or DEFAULT_IMAGENET_IMAGE_SOURCE, + xml_dir or DEFAULT_IMAGENET_XML_SOURCE, + ) + + +def _resolve_coco_sources(args: argparse.Namespace, data_path: str) -> tuple[str, str]: + """Resolves local or remote sources for COCO organization.""" + + image_dir = args.image_dir + annotation_dir = _normalize_coco_annotation_source(args.annotation_dir) + if not args.force_organize: + image_dir = image_dir or _find_existing_source( + data_path, ["val2017.zip", "val2017"] + ) + annotation_dir = annotation_dir or _normalize_coco_annotation_source( + _find_existing_source( + data_path, + [ + "annotations_trainval2017.zip", + "annotations_trainval2017", + "annotations", + ], + ) + ) + return ( + image_dir or DEFAULT_COCO_IMAGE_SOURCE, + annotation_dir or DEFAULT_COCO_ANNOTATION_SOURCE, + ) + + +def _resolve_widerface_sources( + args: argparse.Namespace, data_path: str +) -> tuple[str, str]: + """Resolves local or remote sources for WiderFace organization.""" + + image_dir = args.image_dir + annotation_dir = args.annotation_dir + if not args.force_organize: + image_dir = image_dir or _find_existing_source( + data_path, ["WIDER_val.zip", "WIDER_val"] + ) + annotation_dir = annotation_dir or _find_existing_source( + data_path, + ["wider_face_split.zip", "wider_face_split"], + ) + return ( + image_dir or DEFAULT_WIDERFACE_IMAGE_SOURCE, + annotation_dir or DEFAULT_WIDERFACE_ANNOTATION_SOURCE, + ) + + +def _resolve_dotav1_source(args: argparse.Namespace, data_path: str) -> str: + """Resolves a local or remote source for DOTAv1 organization.""" + + dataset_path = args.annotation_dir or args.image_dir + if not args.force_organize: + dataset_path = dataset_path or _find_existing_source( + data_path, ["DOTAv1.zip", "DOTAv1"] + ) + return dataset_path or DEFAULT_DOTAV1_SOURCE + + +def _resolve_nyu_depth_source(args: argparse.Namespace, data_path: str) -> str: + """Resolve a local archive or URL for NYU Depth organization.""" + + dataset_path = args.annotation_dir or args.image_dir + if not args.force_organize: + dataset_path = dataset_path or _find_existing_source( + data_path, ["nyu-depth.zip", "nyu-depth"] + ) + return dataset_path or DEFAULT_NYU_DEPTH_SOURCE + + +def _resolve_ade20k_source(args: argparse.Namespace, data_path: str) -> str: + """Resolve a local archive, extracted directory, or URL for ADE20K organization.""" + + dataset_path = args.annotation_dir or args.image_dir + if not args.force_organize: + dataset_path = dataset_path or _find_existing_source( + data_path, + ["ADEChallengeData2016.zip", "ADEChallengeData2016"], + ) + return dataset_path or DEFAULT_ADE20K_SOURCE + + +def _resolve_cityscapes_sources( + args: argparse.Namespace, data_path: str +) -> tuple[str, str]: + """Resolve the two manually downloaded official Cityscapes archives. + + Args: + args: Parsed validation CLI arguments. + data_path: Organized Cityscapes output path used as a discovery anchor. + + Returns: + Image and annotation ZIP paths. + + Raises: + SystemExit: If either required archive cannot be found. + """ + + image_dir = args.image_dir or _find_existing_source( + data_path, [CITYSCAPES_IMAGE_ARCHIVE] + ) + annotation_dir = args.annotation_dir or _find_existing_source( + data_path, [CITYSCAPES_ANNOTATION_ARCHIVE] + ) + if image_dir is None or annotation_dir is None: + raise SystemExit( + "Cityscapes organization requires the official image and annotation ZIP archives. " + "Register at https://www.cityscapes-dataset.com/, then download them with:\n" + " csDownload -d gtFine_trainvaltest.zip leftImg8bit_trainvaltest.zip\n" + "Pass the resulting files with --image-dir and --annotation-dir, or place them near the dataset path." + ) + return image_dir, annotation_dir + + +def _default_data_path_for_task(task: str, dataset: str | None = None) -> str: + """Returns the default organized dataset path for a vision task.""" + + try: + return str(get_dataset_config_for_task(task, dataset)["path"]) + except ValueError as exc: + raise SystemExit(f"Unsupported vision task for validation: {task}") from exc + + +def _dataset_ready(task: str, data_path: str, dataset: str | None = None) -> bool: + """Checks whether the organized dataset appears ready for validation.""" + + return dataset_ready(data_path, task, dataset) + + +def _ensure_dataset( + args: argparse.Namespace, task: str, dataset: str | None = None +) -> str: + """Organizes the dataset automatically when the expected layout is missing.""" + + task = normalize_vision_task(task) + data_path = os.path.expanduser( + args.data_path or _default_data_path_for_task(task, dataset) + ) + if _dataset_ready(task, data_path, dataset) and not args.force_organize: + print(f"Using organized dataset at {data_path}") + return data_path + + try: + from mblt_vision.utils.datasets import ( + organize_ade20k, + organize_cityscapes, + organize_coco, + organize_dotav1, + organize_imagenet, + organize_nyu_depth, + organize_widerface, + ) + except ImportError as exc: + print( + f"Missing dependencies for vision dataset organization: {exc}", + file=sys.stderr, + ) + raise SystemExit(2) from exc + + print(f"Preparing validation dataset for task `{task}` at {data_path}...") + if task == "image_classification": + image_dir, xml_dir = _resolve_imagenet_sources(args, data_path) + organize_imagenet( + image_dir=image_dir, + xml_dir=xml_dir, + output_dir=data_path, + ) + elif task in {"object_detection", "instance_segmentation", "pose_estimation"}: + image_dir, annotation_dir = _resolve_coco_sources(args, data_path) + organize_coco( + image_dir=image_dir, + annotation_dir=annotation_dir, + output_dir=data_path, + ) + elif task == "face_detection": + image_dir, annotation_dir = _resolve_widerface_sources(args, data_path) + organize_widerface( + image_dir=image_dir, + annotation_dir=annotation_dir, + output_dir=data_path, + ) + elif task == "obb": + organize_dotav1( + dataset_path=_resolve_dotav1_source(args, data_path), + output_dir=data_path, + ) + elif task == "depth_estimation": + organize_nyu_depth( + dataset_path=_resolve_nyu_depth_source(args, data_path), + output_dir=data_path, + ) + elif task == "semantic_segmentation": + if dataset == "cityscapes": + image_dir, annotation_dir = _resolve_cityscapes_sources(args, data_path) + organize_cityscapes( + image_dir=image_dir, + annotation_dir=annotation_dir, + output_dir=data_path, + ) + else: + organize_ade20k( + dataset_path=_resolve_ade20k_source(args, data_path), + output_dir=data_path, + ) + else: + raise SystemExit(f"Unsupported vision task for validation: {task}") + + if not _dataset_ready(task, data_path, dataset): + raise SystemExit( + f"Organized validation dataset at {data_path} is incomplete or does not match " + f"the expected {dataset or task} dataset." + ) + return data_path + + +def _run_validation(args: argparse.Namespace) -> float: + """Runs model validation on the dataset associated with the model task.""" + + try: + from mblt_vision.utils.evaluation import ( + eval_ade20k, + eval_cityscapes, + eval_coco_metrics, + eval_dota, + eval_imagenet_metrics, + eval_nyu_depth, + eval_widerface, + ) + except ImportError as exc: + print(f"Missing dependencies for vision CLI: {exc}", file=sys.stderr) + raise SystemExit(2) from exc + + model = create_vision_engine(args) + try: + if not getattr(getattr(model, "postprocessor", None), "e2e", True): + raise SystemExit( + "Validation requires end-to-end YOLO postprocessing. Use `--e2e true` or omit the option." + ) + + task = normalize_vision_task(model.post_cfg.get("task", "")) + dataset = model.post_cfg.get("dataset") + taxonomy = str(dataset).lower() if isinstance(dataset, str) else None + if task == "semantic_segmentation" and taxonomy not in {"ade20k", "cityscapes"}: + raise SystemExit( + f"Unsupported semantic segmentation taxonomy for validation: {taxonomy!r}. " + "Expected `ade20k` or `cityscapes`." + ) + data_path = _ensure_dataset(args, task, taxonomy) + + if task == "image_classification": + imagenet_result = eval_imagenet_metrics( + model=model, data_path=data_path, batch_size=args.batch_size + ) + print( + "Validation score " + f"(Top-1 accuracy): {imagenet_result.top1:.5f}, " + f"(Top-5 accuracy): {imagenet_result.top5:.5f}" + ) + return imagenet_result.primary_score + + if task == "depth_estimation": + depth_result = eval_nyu_depth( + model=model, data_path=data_path, batch_size=args.batch_size + ) + print( + "Validation score " + f"(delta1): {depth_result.delta1:.5f}, " + f"(abs_rel): {depth_result.abs_rel:.5f}, " + f"(rmse): {depth_result.rmse:.5f}" + ) + return depth_result.primary_score + + if task == "semantic_segmentation": + if taxonomy == "cityscapes": + semantic_result = eval_cityscapes( + model=model, data_path=data_path, batch_size=args.batch_size + ) + elif taxonomy == "ade20k": + semantic_result = eval_ade20k( + model=model, data_path=data_path, batch_size=args.batch_size + ) + else: + raise AssertionError( + f"Unexpected validated semantic taxonomy: {taxonomy!r}" + ) + print( + "Validation score " + f"(mIoU): {semantic_result.miou:.5f}, " + f"(pixel accuracy): {semantic_result.pixel_accuracy:.5f}" + ) + return semantic_result.primary_score + + if task in {"object_detection", "instance_segmentation", "pose_estimation"}: + coco_result = eval_coco_metrics( + model=model, + data_path=data_path, + batch_size=args.batch_size, + conf_thres=args.conf_thres, + iou_thres=args.iou_thres, + ) + print( + f"Validation score (mAP50-95): {coco_result.map5095:.5f}, (mAP50): {coco_result.map50:.5f}" + ) + return coco_result.primary_score + + if task == "obb": + dota_result = eval_dota( + model=model, + data_path=data_path, + batch_size=args.batch_size, + conf_thres=args.conf_thres, + iou_thres=args.iou_thres, + ) + print( + "Validation score " + f"(rotated mAP50-95): {dota_result.map5095:.5f}, " + f"(rotated mAP50): {dota_result.map50:.5f}" + ) + return dota_result.primary_score + + if task == "face_detection": + widerface_result = eval_widerface( + model=model, + data_path=data_path, + batch_size=args.batch_size, + conf_thres=args.conf_thres, + iou_thres=args.iou_thres, + ) + print( + "Validation score " + f"(Easy AP): {widerface_result.easy_ap:.5f}, " + f"(Medium AP): {widerface_result.medium_ap:.5f}, " + f"(Hard AP): {widerface_result.hard_ap:.5f}, " + f"(Mean AP): {widerface_result.mean_ap:.5f}" + ) + return widerface_result.primary_score + + raise SystemExit(f"Unsupported vision task for validation: {task}") + finally: + model.dispose() + + +def _cmd_val(args: argparse.Namespace) -> int: + """Runs vision validation on the task-appropriate benchmark dataset.""" + + _run_validation(args) + return 0 + + +def add_val_parser( + subparsers: argparse._SubParsersAction[argparse.ArgumentParser], +) -> None: + """Registers the unified vision validation CLI command.""" + + parser = subparsers.add_parser( + "val", help="Validate a vision model on its benchmark dataset." + ) + parser.set_defaults(_handler=_cmd_val) + parser.add_argument( + "--model", + required=True, + help="Vision model name, for example `resnet50` or `yolo11m`.", + ) + parser.add_argument( + "--framework", + default=None, + choices=["mxq", "onnx"], + help="Inference framework to use. When omitted, `--model-path` suffix is used first, then `mxq`.", + ) + parser.add_argument( + "--model-path", + dest="model_path", + default="", + help="Optional generic local model path for MXQ or ONNX inference.", + ) + parser.add_argument( + "--mxq-path", + dest="mxq_path", + default="", + help="Optional local MXQ model path. Preserved as a compatibility alias.", + ) + parser.add_argument( + "--onnx-path", + dest="onnx_path", + default="", + help="Optional local ONNX model path.", + ) + parser.add_argument( + "--model-type", + default="DEFAULT", + help="Model variant from the YAML configuration.", + ) + parser.add_argument( + "--core-mode", + default="global8", + choices=["single", "multi", "global4", "global8"], + help="NPU core execution mode.", + ) + parser.add_argument("--dev-no", type=int, default=0, help="NPU device number.") + parser.add_argument( + "--target-cores", + type=parse_target_cores, + help="Optional semicolon-separated core list for single-core mode, for example `0:0;0:1`.", + ) + parser.add_argument( + "--target-clusters", + type=parse_target_clusters, + help="Optional semicolon-separated cluster list for multi/global modes, for example `0;1`.", + ) + parser.add_argument( + "--batch-size", type=int, default=1, help="Batch size for validation." + ) + parser.add_argument( + "--data-path", + help="Path to an already organized validation dataset. If omitted, the default cache path is used.", + ) + parser.add_argument( + "--force-organize", + "--force", + "--reload", + action="store_true", + dest="force_organize", + help="Rebuild the organized dataset even when the target directory already looks ready.", + ) + parser.add_argument( + "--image-dir", + help=( + "Local archive path or download URL for dataset images. Cityscapes requires leftImg8bit_trainvaltest.zip." + ), + ) + parser.add_argument( + "--xml-dir", + help="Local archive path or download URL for ImageNet annotations used by automatic organization.", + ) + parser.add_argument( + "--annotation-dir", + help=( + "Local archive path or download URL for dataset annotations. Cityscapes requires gtFine_trainvaltest.zip." + ), + ) + add_threshold_args(parser, conf_default=None, iou_default=None) + add_e2e_arg(parser) diff --git a/pyproject.toml b/pyproject.toml index 558816b..05e1178 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,6 +42,9 @@ classifiers = [ Home = "https://www.mobilint.com/" Repository = "https://github.com/mobilint/mblt-vision-python" +[project.scripts] +mblt-vision = "mblt_vision.cli:main" + [project.optional-dependencies] onnxruntime = [ "onnx", diff --git a/tests/test_cli.py b/tests/test_cli.py new file mode 100644 index 0000000..2395cec --- /dev/null +++ b/tests/test_cli.py @@ -0,0 +1,24 @@ +"""Tests for the standalone Vision CLI parser.""" + +from __future__ import annotations + +from mblt_vision.cli import build_parser +from mblt_vision.cli.compile import _run_compile +from mblt_vision.cli.predict import _cmd_predict +from mblt_vision.cli.val import _cmd_val + + +def test_standalone_cli_registers_vision_commands() -> None: + """Expose the supported Vision commands from the standalone distribution.""" + + parser = build_parser() + + predict_args = parser.parse_args( + ["predict", "--source", "image.jpg", "--model", "resnet50"] + ) + val_args = parser.parse_args(["val", "--model", "resnet50"]) + compile_args = parser.parse_args(["compile", "--model-cls", "resnet50"]) + + assert predict_args._handler is _cmd_predict + assert val_args._handler is _cmd_val + assert compile_args._handler is _run_compile From 0fd14c2cd90eb1312f26a93f2ccc489410b9292c Mon Sep 17 00:00:00 2001 From: jinman Date: Mon, 10 Aug 2026 16:55:23 +0900 Subject: [PATCH 05/48] Refactor OBB terminology and remove legacy aliases across documentation and codebase --- README.md | 2 +- compile/vision/README.md | 2 +- mblt_vision/README.md | 2 +- mblt_vision/_tasks.py | 4 +- mblt_vision/utils/evaluation/eval_dota.py | 2 +- mblt_vision/utils/labels.py | 112 ---------------------- mblt_vision/utils/postprocess/common.py | 2 +- mblt_vision/utils/results.py | 2 +- tests/test_api.py | 11 --- tests/test_benchmark_vision.py | 6 +- tests/test_compile_vision.py | 24 ++--- tests/test_results.py | 6 +- tests/test_wrapper.py | 6 +- 13 files changed, 23 insertions(+), 158 deletions(-) delete mode 100644 mblt_vision/utils/labels.py diff --git a/README.md b/README.md index a142a84..f3ed197 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Run pre-trained Mobilint Vision models from Python. `mblt-vision-python` provides model configuration, artifact loading, preprocessing, inference integration, and typed postprocessing results for image classification, depth estimation, face and -object detection, oriented bounding boxes (OBB), instance and semantic segmentation, +object detection, OBB, instance and semantic segmentation, and pose estimation. Version `0.0.1` is the initial standalone release. diff --git a/compile/vision/README.md b/compile/vision/README.md index b211414..26a7173 100644 --- a/compile/vision/README.md +++ b/compile/vision/README.md @@ -83,7 +83,7 @@ Compilation maps model tasks to the packaged dataset registry: - Semantic segmentation uses the dataset declared by the model's `post_cfg.dataset`: ADE20K or Cityscapes. - Face detection uses WiderFace. -- Oriented bounding boxes use DOTAv1. +- OBB uses DOTAv1. `--data-path` is an organized dataset root. An existing ready layout is reused; otherwise the registry-backed organizer downloads and prepares the dataset. When no path is supplied, the diff --git a/mblt_vision/README.md b/mblt_vision/README.md index 0e81206..1ee0e47 100644 --- a/mblt_vision/README.md +++ b/mblt_vision/README.md @@ -352,7 +352,7 @@ This section lists the publicly pre-trained models supported by the vision frame | --- | --- | --- | --- | --- | --- | --- | --- |
    -Oriented Bounding Boxes (DOTA v1.0) +OBB (DOTA v1.0) - $\underset{\texttt{50-95}}{\texttt{mAP}_{\texttt{val}}^{\texttt{obb}}}$ is the primary metric for single-model single-scale validation on the diff --git a/mblt_vision/_tasks.py b/mblt_vision/_tasks.py index af5c442..df9a462 100644 --- a/mblt_vision/_tasks.py +++ b/mblt_vision/_tasks.py @@ -15,15 +15,13 @@ "face_detection", ) -_INPUT_TASK_ALIASES = {"oriented_bounding_boxes": "obb"} - def normalize_vision_task(task: str, *, supported: Iterable[str] | None = None) -> str: """Normalize a Vision task name and validate it against supported tasks.""" if not isinstance(task, str): raise TypeError(f"Vision task must be a string, got {type(task).__name__}.") - normalized = _INPUT_TASK_ALIASES.get(task.lower(), task.lower()) + normalized = task.lower() supported_tasks = tuple(VISION_TASKS if supported is None else supported) if normalized not in supported_tasks: raise ValueError( diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 999bb78..698ef82 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -1,4 +1,4 @@ -"""Evaluation script for DOTAv1 oriented bounding boxes.""" +"""Evaluation script for DOTAv1 OBB.""" from __future__ import annotations diff --git a/mblt_vision/utils/labels.py b/mblt_vision/utils/labels.py deleted file mode 100644 index 4119905..0000000 --- a/mblt_vision/utils/labels.py +++ /dev/null @@ -1,112 +0,0 @@ -"""Small dataset metadata tables needed by output conversion.""" - -from __future__ import annotations - -COCO_CATEGORY_IDS = ( - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 27, - 28, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 67, - 70, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 84, - 85, - 86, - 87, - 88, - 89, - 90, -) - -DOTAV1_LABELS = ( - "plane", - "ship", - "storage-tank", - "baseball-diamond", - "tennis-court", - "basketball-court", - "ground-track-field", - "harbor", - "bridge", - "large-vehicle", - "small-vehicle", - "helicopter", - "roundabout", - "soccer-ball-field", - "swimming-pool", -) - - -def get_coco_inv(index: int) -> int: - return COCO_CATEGORY_IDS[index] - - -def get_dotav1_label(index: int) -> str: - return DOTAV1_LABELS[index] diff --git a/mblt_vision/utils/postprocess/common.py b/mblt_vision/utils/postprocess/common.py index 0579aa8..9cee0e1 100644 --- a/mblt_vision/utils/postprocess/common.py +++ b/mblt_vision/utils/postprocess/common.py @@ -11,7 +11,7 @@ import torch import torch.nn.functional as F -from ..labels import get_coco_inv, get_dotav1_label +from ..datasets import get_coco_inv, get_dotav1_label from ..letterbox import RatioPad, resolve_ratio_pad diff --git a/mblt_vision/utils/results.py b/mblt_vision/utils/results.py index 36d769f..c344936 100644 --- a/mblt_vision/utils/results.py +++ b/mblt_vision/utils/results.py @@ -646,7 +646,7 @@ def _plot_obb( save_path: str | Path | None = None, **kwargs, ) -> np.ndarray: - """Plots oriented bounding boxes on an image. + """Plot OBB detections on an image. Args: source_path: Path or image object. diff --git a/tests/test_api.py b/tests/test_api.py index 80df7a0..40b4182 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -2,8 +2,6 @@ from __future__ import annotations -import importlib - import pytest import mblt_vision @@ -27,15 +25,6 @@ def test_public_discovery_exposes_all_supported_tasks() -> None: assert list_models("obb")["obb"] -def test_public_exports_use_only_the_canonical_obb_name() -> None: - """Keep the standalone namespace free of the legacy OBB spelling.""" - - assert "oriented_bounding_boxes" not in mblt_vision.__all__ - assert not hasattr(mblt_vision, "oriented_bounding_boxes") - with pytest.raises(ModuleNotFoundError): - importlib.import_module("mblt_vision.oriented_bounding_boxes") - - def test_model_exports_are_discoverable_from_task_and_top_level_namespaces() -> None: """Keep task exports synchronized with lazy top-level compatibility exports.""" diff --git a/tests/test_benchmark_vision.py b/tests/test_benchmark_vision.py index 5e3e5f5..8e93a3f 100644 --- a/tests/test_benchmark_vision.py +++ b/tests/test_benchmark_vision.py @@ -113,14 +113,14 @@ class FakeModel: assert metrics == {"miou": 0.6, "pixel_accuracy": 0.9} -def test_benchmark_accepts_oriented_bounding_boxes_model_alias( +def test_benchmark_accepts_obb_model_task( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, ) -> None: - """Dispatch an alias-configured OBB model through DOTAv1 evaluation.""" + """Dispatch an OBB model through DOTAv1 evaluation.""" class FakeModel: - post_cfg = {"task": "oriented_bounding_boxes", "dataset": "dotav1"} + post_cfg = {"task": "obb", "dataset": "dotav1"} import mblt_vision.utils.evaluation as evaluation_module diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py index f052e50..57232fb 100644 --- a/tests/test_compile_vision.py +++ b/tests/test_compile_vision.py @@ -93,19 +93,12 @@ def test_non_imagenet_selection_is_deterministic( assert len(first) == 3 -def test_legacy_obb_alias_selects_calibration_images(tmp_path: Path) -> None: - """Normalize the legacy OBB task name in exported sampling helpers.""" +def test_obb_selects_calibration_images(tmp_path: Path) -> None: + """Select OBB calibration images through exported sampling helpers.""" images = _write_images(tmp_path / "images", ["P0001.png", "P0002.png"]) - assert select_calibration_images( - "oriented_bounding_boxes", - tmp_path, - subset_size=2, - ) == select_calibration_images("obb", tmp_path, subset_size=2) - assert set( - select_calibration_images("oriented_bounding_boxes", tmp_path, subset_size=2) - ) == set(images) + assert set(select_calibration_images("obb", tmp_path, subset_size=2)) == set(images) @pytest.mark.parametrize( @@ -348,10 +341,7 @@ def _organize_dotav1(**kwargs: str) -> None: monkeypatch.setattr(readiness_module, "DOTAV1_VALIDATION_SAMPLE_COUNT", 1) assert ( - compile_module.ensure_calibration_dataset( - "oriented_bounding_boxes", dataset="dotav1" - ) - == data_path + compile_module.ensure_calibration_dataset("obb", dataset="dotav1") == data_path ) @@ -741,16 +731,16 @@ def test_compile_uses_local_onnx_and_exact_options( assert not calls["temporary_root"].exists() -def test_compile_normalizes_legacy_obb_task_from_model_config( +def test_compile_uses_obb_task_from_model_config( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, ) -> None: - """Compile legacy custom model metadata through the canonical OBB task.""" + """Compile custom model metadata using the canonical OBB task.""" calls, _ = _run_fake_compile( monkeypatch, tmp_path, - task="oriented_bounding_boxes", + task="obb", model_path=None, dataset="dotav1", entry_level="calibration", diff --git a/tests/test_results.py b/tests/test_results.py index e1361f8..1f17bf1 100644 --- a/tests/test_results.py +++ b/tests/test_results.py @@ -163,10 +163,10 @@ def test_results_reject_empty_structured_outputs( Results({}, {"task": task}, output) -def test_results_normalize_task_alias_and_semantic_taxonomy_case() -> None: - """Normalize OBB aliases and semantic palette taxonomy casing.""" +def test_results_normalize_obb_task_and_semantic_taxonomy_case() -> None: + """Normalize the OBB task and semantic palette taxonomy casing.""" - obb = Results({}, {"task": "oriented_bounding_boxes"}, [torch.zeros((0, 7))]) + obb = Results({}, {"task": "obb"}, [torch.zeros((0, 7))]) semantic = Results( {}, {"task": "semantic_segmentation", "dataset": "CityScapes"}, diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 08a1d1a..94119bb 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -485,11 +485,11 @@ def _capture_engine_init(self: MBLT_Engine, **kwargs: Any) -> None: assert captured_kwargs["framework"] == "mxq" -def test_engine_init_accepts_oriented_bounding_boxes_task_alias( +def test_engine_init_accepts_obb_task( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, ) -> None: - """Construct the canonical OBB postprocessor from the compatibility task spelling.""" + """Construct the OBB postprocessor from its canonical task name.""" mxq_path = tmp_path / "model.mxq" mxq_path.write_bytes(b"mxq") @@ -517,7 +517,7 @@ def dispose(self) -> None: "file_cfg": {}, "pre_cfg": {"LetterBox": {"img_size": [640, 640]}}, "post_cfg": { - "task": "oriented_bounding_boxes", + "task": "obb", "dataset": "dotav1", "nl": 3, "reg_max": 16, From 8d3c699d1b075bb02bde1b595a460f40bdeaf0a6 Mon Sep 17 00:00:00 2001 From: jinman Date: Mon, 10 Aug 2026 18:15:01 +0900 Subject: [PATCH 06/48] Add target device support for vision compilation and CLI commands --- compile/vision/README.md | 9 +++++++-- mblt_vision/_compat.py | 5 ++--- mblt_vision/cli/_vision.py | 16 +++++++++++++--- mblt_vision/cli/compile.py | 7 +++++++ mblt_vision/cli/val.py | 10 ++++++++-- mblt_vision/compile/vision.py | 34 +++++++++++++++++++++++++++------- mblt_vision/wrapper.py | 20 ++++++++++++++------ tests/test_cli.py | 27 ++++++++++++++++++++++++++- tests/test_compile_vision.py | 23 ++++++++++++++++++++++- tests/test_wrapper.py | 10 ++++------ 10 files changed, 130 insertions(+), 31 deletions(-) diff --git a/compile/vision/README.md b/compile/vision/README.md index 26a7173..cd47ec6 100644 --- a/compile/vision/README.md +++ b/compile/vision/README.md @@ -27,6 +27,7 @@ from mblt_vision.compile.vision import compile_vision_model output_path = compile_vision_model( "alexnet", + target_device="aries-rb", data_path="~/.mblt_vision/datasets/imagenet", save_path="./alexnet.mxq", ) @@ -38,6 +39,7 @@ print(output_path) ```bash mblt-vision-python compile \ --model-cls alexnet \ + --target-device aries-rb \ --data-path ~/.mblt_vision/datasets/imagenet \ --save-path ./alexnet.mxq ``` @@ -46,8 +48,8 @@ Start from an existing sampled image subset or a ready calibration tensor direct stages have already been completed: ```bash -mblt-vision-python compile --model-cls alexnet --subset-path ./sampled-images -mblt-vision-python compile --model-cls alexnet --calib-data-path ./preprocessed-npy +mblt-vision-python compile --model-cls alexnet --target-device aries-rb --subset-path ./sampled-images +mblt-vision-python compile --model-cls alexnet --target-device aries-rb --calib-data-path ./preprocessed-npy ``` Use `--model-type` for a non-default YAML variant and `--model-path` or `--onnx-path` to prefer a @@ -56,6 +58,9 @@ supplies the ONNX artifact. Downloaded ONNX files and compiled outputs use `~/.mblt_vision`; without `--save-path`, the compiler writes `~/.mblt_vision/.mxq`. +`target_device` / `--target-device` is required: choose `aries-rb`, `regulus-ra`, or `regulus-rb` +to compile an artifact for that board. + The ONNX preprocessing engine uses ONNX Runtime's CPU provider by default, so compilation does not probe TensorRT, CUDA, or other accelerators. Callers that construct `MBLT_Engine` directly can opt into another provider order with `onnx_providers`. diff --git a/mblt_vision/_compat.py b/mblt_vision/_compat.py index ca47c70..99ee148 100644 --- a/mblt_vision/_compat.py +++ b/mblt_vision/_compat.py @@ -120,8 +120,7 @@ def __init__( explicit MXQ-only override. model_type: YAML config variant to load. infer_mode: Execution mode forwarded to ``MBLT_Engine``. - product: Retained for backward compatibility but ignored by the - YAML-backed registry in `2.0.0`. + product: Legacy product/board value forwarded as ``target_device``. dev_no: Accelerator device number. target_cores: Optional core selection for single-core mode. target_clusters: Optional cluster selection for multi/global modes. @@ -132,7 +131,6 @@ def __init__( model_path: Optional explicit local model path for MXQ or ONNX. """ - del product if uses_shifted_compat_model_path_layout( model_path, mxq_path, onnx_path, framework ): @@ -155,6 +153,7 @@ def __init__( target_clusters=list(target_clusters) if target_clusters is not None else None, + target_device=product, framework=framework, ) diff --git a/mblt_vision/cli/_vision.py b/mblt_vision/cli/_vision.py index 1e85c6b..79f0180 100644 --- a/mblt_vision/cli/_vision.py +++ b/mblt_vision/cli/_vision.py @@ -99,11 +99,17 @@ def add_common_vision_args(parser: argparse.ArgumentParser) -> None: ) parser.add_argument( "--core-mode", - default="global8", + default=None, choices=["single", "multi", "global4", "global8"], - help="NPU core execution mode.", + help="NPU core execution mode. Defaults to global8 on Aries and single on Regulus.", ) parser.add_argument("--dev-no", type=int, default=0, help="NPU device number.") + parser.add_argument( + "--target-device", + default="aries-rb", + choices=["aries-rb", "regulus-ra", "regulus-rb"], + help="NPU board target. Determines the backend implementation.", + ) parser.add_argument( "--target-cores", type=parse_target_cores, @@ -251,7 +257,11 @@ def create_vision_engine(args: argparse.Namespace) -> Any: mxq_path=args.mxq_path, onnx_path=args.onnx_path, dev_no=args.dev_no, - core_mode=normalize_core_mode(args.core_mode), + target_device=args.target_device, + core_mode=normalize_core_mode( + args.core_mode + or ("single" if args.target_device.startswith("regulus-") else "global8") + ), target_cores=args.target_cores, target_clusters=args.target_clusters, postprocess_kwargs=postprocess_kwargs, diff --git a/mblt_vision/cli/compile.py b/mblt_vision/cli/compile.py index 7858b3e..4726243 100644 --- a/mblt_vision/cli/compile.py +++ b/mblt_vision/cli/compile.py @@ -21,6 +21,7 @@ def _run_compile(args: argparse.Namespace) -> int: output_path = compile_vision_model( model_cls=args.model_cls, + target_device=args.target_device, model_type=args.model_type, model_path=args.model_path, data_path=args.data_path, @@ -60,6 +61,12 @@ def add_compile_parser( required=True, help="Vision model name, for example `alexnet` or `yolo11m`.", ) + parser.add_argument( + "--target-device", + required=True, + choices=["aries-rb", "regulus-ra", "regulus-rb"], + help="Required NPU board target for the compiled MXQ artifact.", + ) parser.add_argument( "--model-type", default="DEFAULT", diff --git a/mblt_vision/cli/val.py b/mblt_vision/cli/val.py index c324994..45189c7 100644 --- a/mblt_vision/cli/val.py +++ b/mblt_vision/cli/val.py @@ -493,11 +493,17 @@ def add_val_parser( ) parser.add_argument( "--core-mode", - default="global8", + default=None, choices=["single", "multi", "global4", "global8"], - help="NPU core execution mode.", + help="NPU core execution mode. Defaults to global8 on Aries and single on Regulus.", ) parser.add_argument("--dev-no", type=int, default=0, help="NPU device number.") + parser.add_argument( + "--target-device", + default="aries-rb", + choices=["aries-rb", "regulus-ra", "regulus-rb"], + help="NPU board target. Determines the backend implementation.", + ) parser.add_argument( "--target-cores", type=parse_target_cores, diff --git a/mblt_vision/compile/vision.py b/mblt_vision/compile/vision.py index 9858dd9..19d1b52 100644 --- a/mblt_vision/compile/vision.py +++ b/mblt_vision/compile/vision.py @@ -20,12 +20,14 @@ from mblt_vision._tasks import normalize_vision_task from mblt_vision.datasets import get_dataset_config_for_task +from mblt_npu import normalize_target_device from mblt_vision.wrapper import MOBILINT_CACHE_DIR, MBLT_Engine, resolve_model_config DEFAULT_PERCENTILE = 0.9999 DEFAULT_TOPK_RATIO = 0.01 DEFAULT_SEED = 0 DEFAULT_MODEL_DIR = Path(MOBILINT_CACHE_DIR) +SUPPORTED_TARGET_DEVICES = frozenset({"aries-rb", "regulus-ra", "regulus-rb"}) DEFAULT_SUBSET_SIZES = { "image_classification": 1, "depth_estimation": 100, @@ -629,12 +631,15 @@ def _validate_ratio(name: str, value: Any) -> float: return resolved -def _fetch_quantization_config(repo_id: str, revision: str) -> dict[str, Any] | None: - """Fetch optional hosted Aries quantization metadata. +def _fetch_quantization_config( + repo_id: str, revision: str, target_device: str = "aries-rb" +) -> dict[str, Any] | None: + """Fetch optional hosted board quantization metadata. Args: repo_id: Hugging Face model repository ID. revision: Repository revision. + target_device: Board folder containing the metadata. Returns: Hosted ``config`` mapping, or ``None`` when the optional file is unavailable. @@ -647,7 +652,7 @@ def _fetch_quantization_config(repo_id: str, revision: str) -> dict[str, Any] | metadata_path = hf_hub_download( repo_id=repo_id, filename="best_result.json", - subfolder="aries", + subfolder=normalize_target_device(target_device), revision=revision, ) except (HfHubHTTPError, OSError) as exc: @@ -701,7 +706,13 @@ def resolve_quantization_values( repo_id = file_cfg.get("repo_id") revision = file_cfg.get("revision", "main") if isinstance(repo_id, str) and repo_id: - hosted_config = _fetch_quantization_config(repo_id, str(revision)) + target_device = file_cfg.get("target_device") + if isinstance(target_device, str): + hosted_config = _fetch_quantization_config( + repo_id, str(revision), normalize_target_device(target_device) + ) + else: + hosted_config = _fetch_quantization_config(repo_id, str(revision)) else: warnings.warn( "Model configuration has no repository ID; using fallback quantization values.", @@ -800,6 +811,7 @@ def _resolve_compile_onnx_path( def compile_vision_model( model_cls: str, *, + target_device: str, model_type: str = "DEFAULT", model_path: str | Path | None = None, onnx_path: str | Path | None = None, @@ -812,10 +824,11 @@ def compile_vision_model( percentile: float | None = None, topk_ratio: float | None = None, ) -> Path: - """Compile a configured vision ONNX model into an Aries MXQ artifact. + """Compile a configured vision ONNX model into a board-specific MXQ artifact. Args: model_cls: Vision model name or YAML path. + target_device: Required target board: ``aries-rb``, ``regulus-ra``, or ``regulus-rb``. model_type: Model variant from the YAML configuration. model_path: Preferred local ONNX path compatibility option. onnx_path: Local ONNX path alias. @@ -840,6 +853,12 @@ def compile_vision_model( """ _validate_data_level_paths(data_path, subset_path, calib_data_path) + target_device = normalize_target_device(target_device) + if target_device not in SUPPORTED_TARGET_DEVICES: + raise ValueError( + f"Unsupported target_device {target_device!r}; expected one of " + f"{sorted(SUPPORTED_TARGET_DEVICES)}." + ) mxq_compile, calibration_config_class = _load_qbcompiler() model_config = resolve_model_config(model_cls, model_type) file_cfg = model_config.get("file_cfg") @@ -848,6 +867,7 @@ def compile_vision_model( raise ValueError( "Resolved vision model configuration requires `file_cfg` and `post_cfg` objects." ) + file_cfg["target_device"] = target_device task = _normalize_task(str(post_cfg.get("task", ""))) dataset = post_cfg.get("dataset") @@ -883,7 +903,7 @@ def compile_vision_model( image_channels=3, backend="onnx", device="gpu", - target_device="aries-rb", + target_device=target_device, inference_scheme="all", calibration_config=calibration_config, ) @@ -941,7 +961,7 @@ def _compile(calibration_path: Path) -> None: image_channels=3, backend="onnx", device="gpu", - target_device="aries-rb", + target_device=target_device, inference_scheme="all", calibration_config=calibration_config, ) diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index 75a4c0f..1e59b45 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -19,7 +19,7 @@ from huggingface_hub.errors import EntryNotFoundError from qbruntime import Cluster, CoreId -from mblt_npu import MobilintNPUBackend +from mblt_npu import MobilintNPUBackend, normalize_target_device from ._model_paths import resolve_framework as _resolve_framework from ._model_paths import split_model_paths as _split_model_paths from ._model_paths import ( @@ -320,6 +320,7 @@ def __init__( framework: str | None = None, onnx_providers: Sequence[str] | None = None, model_path: str = "", + target_device: str = "aries-rb", ) -> None: """Initializes the MBLT_Engine. @@ -333,6 +334,7 @@ def __init__( core_mode: single, multi, global4, global8 target_cores: single mode target_clusters: multi, global modes + target_device: NPU board identifier; defaults to ``aries-rb``. pre_cfg: Preprocessing configuration. post_cfg: Postprocessing configuration. model_cls(not dict): model name or yaml path @@ -398,10 +400,16 @@ def __init__( dev_no = 0 if core_mode is None: core_mode = "single" + target_device = normalize_target_device(target_device) + is_regulus = target_device in {"regulus-ra", "regulus-rb"} if target_cores is None: - target_cores = ["0:0", "0:1", "0:2", "0:3", "1:0", "1:1", "1:2", "1:3"] + target_cores = ( + [] + if is_regulus + else ["0:0", "0:1", "0:2", "0:3", "1:0", "1:1", "1:2", "1:3"] + ) if target_clusters is None: - target_clusters = [0, 1] + target_clusters = [] if is_regulus else [0, 1] self.file_cfg = copy.deepcopy(model_config_part["file_cfg"]) file_cfg_model_path = self.file_cfg.pop("model_path", "") @@ -426,6 +434,7 @@ def __init__( self.file_cfg["target_clusters"] = target_clusters if _dev_no_passed or "dev_no" not in self.file_cfg: self.file_cfg["dev_no"] = dev_no + self.file_cfg["target_device"] = target_device self.pre_cfg = copy.deepcopy(model_config_part["pre_cfg"]) self.post_cfg = copy.deepcopy(model_config_part["post_cfg"]) @@ -591,13 +600,12 @@ def file_config_cleansing(self) -> None: return if filename and framework == "mxq": - core_mode = self.file_cfg.get("core_mode") - subfolders = ["aries", f"aries/{core_mode}"] if core_mode else ["aries"] + target_device = self.file_cfg.get("target_device", "aries-rb") self.file_cfg["mxq_path"] = self._download_hub_artifact( repo_id=repo_id, filename=filename, revision=revision, - subfolders=subfolders, + subfolders=[target_device], ) if onnx_filename and framework == "onnx" and not self.file_cfg.get("onnx_path"): diff --git a/tests/test_cli.py b/tests/test_cli.py index 2395cec..5de8958 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -17,8 +17,33 @@ def test_standalone_cli_registers_vision_commands() -> None: ["predict", "--source", "image.jpg", "--model", "resnet50"] ) val_args = parser.parse_args(["val", "--model", "resnet50"]) - compile_args = parser.parse_args(["compile", "--model-cls", "resnet50"]) + compile_args = parser.parse_args( + ["compile", "--model-cls", "resnet50", "--target-device", "aries-rb"] + ) assert predict_args._handler is _cmd_predict assert val_args._handler is _cmd_val assert compile_args._handler is _run_compile + assert compile_args.target_device == "aries-rb" + assert predict_args.target_device == "aries-rb" + assert val_args.target_device == "aries-rb" + + +def test_vision_cli_uses_single_core_mode_by_default_on_regulus() -> None: + """Keep the CLI's implicit core mode compatible with a Regulus target.""" + + parser = build_parser() + args = parser.parse_args( + [ + "predict", + "--source", + "image.jpg", + "--model", + "resnet50", + "--target-device", + "regulus-ra", + ] + ) + + assert args.target_device == "regulus-ra" + assert args.core_mode is None diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py index 57232fb..e1815a0 100644 --- a/tests/test_compile_vision.py +++ b/tests/test_compile_vision.py @@ -568,6 +568,7 @@ def _run_fake_compile( model_path: Path | None, entry_level: str = "data", dataset: str | None = None, + target_device: str = "aries-rb", fail: bool = False, calls: dict[str, Any] | None = None, ) -> tuple[dict[str, Any], Path]: @@ -686,6 +687,7 @@ def _ensure_dataset( compile_module.compile_vision_model( "fake-model", + target_device=target_device, model_type="VARIANT", model_path=model_path, data_path=original_data_path, @@ -731,6 +733,22 @@ def test_compile_uses_local_onnx_and_exact_options( assert not calls["temporary_root"].exists() +def test_compile_forwards_required_target_device( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Forward the selected board to qbcompiler rather than hard-coding Aries.""" + + calls, _ = _run_fake_compile( + monkeypatch, + tmp_path, + task="image_classification", + model_path=None, + target_device="regulus-rb", + ) + + assert calls["compile_kwargs"]["target_device"] == "regulus-rb" + + def test_compile_uses_obb_task_from_model_config( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, @@ -833,7 +851,10 @@ def test_compile_rejects_multiple_data_levels() -> None: with pytest.raises(ValueError, match="Provide only one calibration pipeline input"): compile_module.compile_vision_model( - "alexnet", data_path="original", subset_path="subset" + "alexnet", + target_device="aries-rb", + data_path="original", + subset_path="subset", ) diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 94119bb..442ec70 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -8,7 +8,6 @@ import numpy as np import pytest import torch -from huggingface_hub.errors import EntryNotFoundError from mblt_vision.utils.postprocess import build_postprocess from mblt_vision.utils.postprocess.base import YOLODetectionPostBase from mblt_vision.utils.postprocess.common import ( @@ -907,18 +906,16 @@ def test_crop_mask_matches_ultralytics_fractional_boundaries(mask_count: int) -> assert torch.equal(cropped, expected) -def test_file_config_cleansing_downloads_aries_before_core_mode( +def test_file_config_cleansing_downloads_from_exact_target_device_folder( monkeypatch: pytest.MonkeyPatch, ) -> None: - """Download only the MXQ artifact and try the legacy aries layout first.""" + """Download only the MXQ artifact from the selected board folder.""" calls: list[str] = [] def _fake_download(**kwargs: Any) -> str: subfolder = kwargs["subfolder"] calls.append(subfolder) - if subfolder == "aries": - raise EntryNotFoundError("missing") return "/tmp/global8.mxq" monkeypatch.setattr(wrapper, "hf_hub_download", _fake_download) @@ -931,11 +928,12 @@ def _fake_download(**kwargs: Any) -> str: "filename": "model.mxq", "revision": "main", "core_mode": "global8", + "target_device": "aries-rb", } engine.file_config_cleansing() - assert calls == ["aries", "aries/global8"] + assert calls == ["aries-rb"] assert engine.file_cfg["mxq_path"] == "/tmp/global8.mxq" assert engine.file_cfg["onnx_filename"] == "model.onnx" assert "onnx_path" not in engine.file_cfg From 0f2268256680b7356041c4c57001cc5f435cb115 Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 11 Aug 2026 11:21:36 +0900 Subject: [PATCH 07/48] Bump version of mblt-npu-python dependency to 0.0.0 and update package version to 0.0.0 --- mblt_vision/__init__.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mblt_vision/__init__.py b/mblt_vision/__init__.py index 3e24464..1731c14 100644 --- a/mblt_vision/__init__.py +++ b/mblt_vision/__init__.py @@ -19,7 +19,7 @@ from ._api import list_tasks as list_tasks from .wrapper import MBLT_Engine as MBLT_Engine -__version__ = "0.0.1" +__version__ = "0.0.0" _TASK_MODULES = ( face_detection, diff --git a/pyproject.toml b/pyproject.toml index 05e1178..1643915 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ dynamic = ["version"] description = "Mobilint NPU vision models: classification, detection, segmentation, pose" readme = "README.md" dependencies = [ - "mblt-npu-python>=0.0.1", + "mblt-npu-python>=0.0.0", "mobilint-qb-runtime>=1.0.0", "numpy>=1.26.0", "torch>=2.4.1", From 2943b1f0a7d6701e2c085576c884f34d7214b7e2 Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 11 Aug 2026 12:08:44 +0900 Subject: [PATCH 08/48] feat: Add chart, I/O, and summary utilities for benchmark results - Introduced `chart_utils.py` for plotting grouped and simple bar charts. - Added `io_utils.py` for file I/O operations including JSON and CSV writing. - Created `summary_utils.py` for generating Markdown summaries of benchmark outputs. - Enhanced CLI argument parsing in `_vision.py` and `predict.py` to include descriptions and examples. - Updated `MBLT_Engine` in `wrapper.py` to support ONNX models alongside MXQ. - Improved error handling in `eval_ade20k.py` for invalid predictions. - Refactored tests to ensure proper functionality and coverage for new features. --- README.md | 16 +- benchmark/README.md | 180 +++-------------- benchmark/__init__.py | 1 - benchmark/benchmark_coco.py | 183 ------------------ benchmark/benchmark_imagenet.py | 137 ------------- .../{vision => }/benchmark_vision_models.py | 12 +- benchmark/common/__init__.py | 1 - .../{vision => }/compare_benchmark_results.py | 6 +- benchmark/{vision => }/organize_ade20k.py | 0 benchmark/{vision => }/organize_cityscapes.py | 0 benchmark/organize_coco.py | 22 ++- benchmark/{vision => }/organize_dotav1.py | 0 benchmark/organize_imagenet.py | 22 ++- benchmark/{vision => }/organize_nyu_depth.py | 0 benchmark/organize_widerface.py | 18 +- benchmark/vision/README.md | 62 ------ benchmark/vision/__init__.py | 1 - benchmark/vision/organize_coco.py | 44 ----- benchmark/vision/organize_imagenet.py | 45 ----- benchmark/vision/organize_widerface.py | 42 ---- compile/{vision => }/README.md | 28 +-- compile/{vision => }/make_ade20k_subset.py | 0 .../{vision => }/make_cityscapes_subset.py | 0 compile/{vision => }/make_coco_subset.py | 0 compile/{vision => }/make_dotav1_subset.py | 0 compile/{vision => }/make_imagenet_subset.py | 0 compile/{vision => }/make_nyu_depth_subset.py | 0 compile/{vision => }/make_widerface_subset.py | 0 compile/{vision => }/vision_model_compile.py | 7 + mblt_vision/benchmark/__init__.py | 1 + .../benchmark}/argparse_utils.py | 0 .../benchmark}/chart_utils.py | 0 .../benchmark}/io_utils.py | 0 .../benchmark}/summary_utils.py | 0 mblt_vision/cli/_vision.py | 11 +- mblt_vision/cli/predict.py | 21 +- mblt_vision/utils/evaluation/eval_ade20k.py | 2 +- mblt_vision/wrapper.py | 23 ++- tests/test_benchmark_vision.py | 4 +- tests/test_cli.py | 24 +++ 40 files changed, 189 insertions(+), 724 deletions(-) delete mode 100644 benchmark/__init__.py delete mode 100644 benchmark/benchmark_coco.py delete mode 100644 benchmark/benchmark_imagenet.py rename benchmark/{vision => }/benchmark_vision_models.py (97%) delete mode 100644 benchmark/common/__init__.py rename benchmark/{vision => }/compare_benchmark_results.py (97%) rename benchmark/{vision => }/organize_ade20k.py (100%) rename benchmark/{vision => }/organize_cityscapes.py (100%) rename benchmark/{vision => }/organize_dotav1.py (100%) rename benchmark/{vision => }/organize_nyu_depth.py (100%) delete mode 100644 benchmark/vision/README.md delete mode 100644 benchmark/vision/__init__.py delete mode 100644 benchmark/vision/organize_coco.py delete mode 100644 benchmark/vision/organize_imagenet.py delete mode 100644 benchmark/vision/organize_widerface.py rename compile/{vision => }/README.md (81%) rename compile/{vision => }/make_ade20k_subset.py (100%) rename compile/{vision => }/make_cityscapes_subset.py (100%) rename compile/{vision => }/make_coco_subset.py (100%) rename compile/{vision => }/make_dotav1_subset.py (100%) rename compile/{vision => }/make_imagenet_subset.py (100%) rename compile/{vision => }/make_nyu_depth_subset.py (100%) rename compile/{vision => }/make_widerface_subset.py (100%) rename compile/{vision => }/vision_model_compile.py (91%) create mode 100644 mblt_vision/benchmark/__init__.py rename {benchmark/common => mblt_vision/benchmark}/argparse_utils.py (100%) rename {benchmark/common => mblt_vision/benchmark}/chart_utils.py (100%) rename {benchmark/common => mblt_vision/benchmark}/io_utils.py (100%) rename {benchmark/common => mblt_vision/benchmark}/summary_utils.py (100%) diff --git a/README.md b/README.md index f3ed197..688ed6a 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,20 @@ and `compile` subcommands: mblt-vision predict --source image.jpg --model resnet50 ``` +`predict` is the single inference command for classification, depth estimation, +object and face detection, instance and semantic segmentation, OBB, and pose +estimation. The selected model determines its task and processing pipeline. +By default it downloads the model artifact and saves a plotted result under +`runs/vision/predict/`. Use `--output` to choose the result-image path, +`--topk` for classification labels, and `--conf-thres`/`--iou-thres` for +detection-style tasks. `--framework onnx` selects ONNX Runtime inference; +`--target-device` and `--core-mode` select the MXQ board/runtime mode. + +```bash +mblt-vision predict --source image.jpg --model yolo11m --conf-thres 0.4 --output result.jpg +mblt-vision predict --source image.jpg --model yolo11m-pose --target-device regulus-ra --core-mode single +``` + The corresponding `mblt-model-zoo` commands use the same standalone handlers for backward compatibility. @@ -79,7 +93,7 @@ backward compatibility. See [the Vision API guide](mblt_vision/README.md) for supported model families, model details, artifact selection, and output taxonomy behavior. See the -[compilation guide](compile/vision/README.md) for calibration-data preparation +[compilation guide](compile/README.md) for calibration-data preparation and MXQ compilation. The [test guide](tests/TEST.md) explains offline, Hugging Face, and NPU test runs. diff --git a/benchmark/README.md b/benchmark/README.md index 884e327..d70e1c7 100644 --- a/benchmark/README.md +++ b/benchmark/README.md @@ -1,172 +1,48 @@ -# Measuring the Performance of Vision Models +# Vision benchmark commands -You can run the benchmark as the following steps: +`mblt-vision-python` is a Vision-only package, so every command script lives +directly in this directory. Reusable benchmark supportโ€”argument parsing, +artifact writing, charts, and summariesโ€”is packaged under +`mblt_vision.benchmark` for use by library code and command scripts alike. -1. Download the vision benchmark dataset and organize the dataset. -2. Prepare the model for benchmark. -3. Run the benchmark and evaluate the performance. +The old per-dataset benchmark scripts and duplicated organizer wrappers were +removed. Use the unified runner and the organizer that matches your dataset. -> โš ๏ธ **Warning:** Mobilint does not provide the vision benchmark dataset or direct download link due to the terms of use of the dataset. -Mobilint model zoo provides utilities on dataset organization, model preparation, and benchmark evaluation, therefore you can easily reproduce the [published benchmark results](../mblt_vision/README.md). +## Organize a dataset -Furthermore, you can simply run the benchmark with the model you compiled with custom quantization recipe. - -## Benchmark with ImageNet Dataset - -### Download the ImageNet Dataset - -To download the ImageNet dataset, visit the [ImageNet website](https://image-net.org/) and download the dataset with the following steps: - -0. Login with your account. If you don't have an account, you can register a new account. (Using `.edu` email is highly recommended) -1. Click on the "Download" button on the menu bar. -2. Go to "ImageNet Large-scale Visual Recognition Challenge (ILSVRC)" section, and click 2012 button. -3. Download the following files: - - ILSVRC2012_img_val.tar: Displayes as "Validation images (all tasks)" with MD5 checksum `29b22e2961454d5413ddabcf34fc5622`. - - ILSVRC2012_bbox_val_v3.tgz: Displayes as "Validation bounding box annotations (all tasks)" with MD5 checksum `f4cd18b5ea29fe6bbea62ec9c20d80f0`. - -### Organize the ImageNet Dataset - -You can organize the ImageNet dataset with the following command: +Public datasets can use their default download sources. ImageNet, DOTA, and +Cityscapes require the appropriate source archives or credentials. ```bash -python organize_imagenet.py --image_dir {path_to_ILSVRC2012_img_val.tar} --xml_dir {path_to_ILSVRC2012_bbox_val_v3.tgz} --output_dir ~/.mblt_model_zoo/datasets/imagenet +python benchmark/organize_coco.py +python benchmark/organize_ade20k.py +python benchmark/organize_nyu_depth.py ``` -This will organize the dataset into the following structure: - -```text -~/.mblt_model_zoo/datasets/imagenet/ -โ”œโ”€โ”€ n01440764/ -โ”‚ โ”œโ”€โ”€ ILSVRC2012_val_00000293.JPEG -โ”‚ โ”œโ”€โ”€ ILSVRC2012_val_00002138.JPEG -โ”‚ โ”œโ”€โ”€ ... -โ”œโ”€โ”€ n01443537/ -โ”œโ”€โ”€ n01484850/ -โ”œโ”€โ”€ ... -``` - -### Prepare the Model for ImageNet Benchmark - -You can prepare the model for ImageNet benchmark or simply run the benchmark with the model that is provided in [mblt-model-zoo](../mblt_vision/README.md). - -If you want to try with your own model, refer to the [tutorial guide](https://github.com/mobilint/mblt-sdk-tutorial/) to compile the model with custom quantization recipe. - -### Run the ImageNet Benchmark - -You can run the ImageNetbenchmark with the following command: +For Cityscapes, provide the official archives: ```bash -python benchmark_imagenet.py --local_path {path to local mxq(optional)}\ ---model_type {model type(optional)}\ ---infer_mode {single, multi, global, global4, global8(optional). Default is global}\ ---product {aries, regulus(optional). Default is aries}\ ---batch_size {batch size(optional). Default is 1}\ ---data_path {path to the ImageNet data(optional). Default is ~/.mblt_model_zoo/datasets/imagenet} +python benchmark/organize_cityscapes.py \ + --image-dir path/to/leftImg8bit_trainvaltest.zip \ + --annotation-dir path/to/gtFine_trainvaltest.zip ``` -Example: +## Run a benchmark -```bash -python benchmark_imagenet.py --local_path ./resnet50_IMAGENET1K_V1.mxq --model_type IMAGENET1K_V1 --infer_mode multi --product aries --batch_size 8 --data_path ~/.mblt_model_zoo/datasets/imagenet -``` - -## Benchmark with COCO Dataset - -### Download the COCO Dataset - -To download the COCO dataset, visit the [COCO website](https://cocodataset.org/) and download the dataset with the following steps: - -1. Click on the "Dataset" button on the menu bar, and click "Download" button. -2. On the "Images" column, click "2017 Val images" button to download `val2017.zip` file. -3. On the "Annotations" column, click "2017 Train/Val annotations" button to download `annotations_trainval2017.zip` file. - -### Organize the COCO Dataset - -You can organize the COCO dataset with the following command: +Use the unified runner for every Vision task. It chooses the evaluator from +`--task`, writes JSON/CSV/Markdown artifacts, and can create an accuracy chart. ```bash -python organize_coco.py --image_dir {path_to_val2017.zip} --annotation_dir {path_to_annotations_trainval2017.zip} --output_dir ~/.mblt_model_zoo/datasets/coco -``` - -This will organize the dataset into the following structure: - -```text -~/.mblt_model_zoo/datasets/coco/ -โ”œโ”€โ”€ val2017/ -โ”‚ โ”œโ”€โ”€ 000000000139.jpg -โ”‚ โ”œโ”€โ”€ 000000000285.jpg -โ”‚ โ”œโ”€โ”€ ... -โ”œโ”€โ”€ captions_val2017.json -โ”œโ”€โ”€ instances_val2017.json -โ”œโ”€โ”€ person_keypoints_val2017.json +python benchmark/benchmark_vision_models.py \ + --models ResNet50 \ + --task image_classification \ + --data-path ~/.mblt_vision/datasets/imagenet ``` -### Prepare the Model for COCO Benchmark - -You can prepare the model for COCO benchmark or simply run the benchmark with the model that is provided in [mblt-model-zoo](../mblt_vision/README.md). - -If you want to try with your own model, refer to the [tutorial guide](https://github.com/mobilint/mblt-sdk-tutorial/) to compile the model with custom quantization recipe. - -### Run the COCO Benchmark - -You can run the COCO benchmark with the following command: - -```bash -python benchmark_coco.py --local_path {path to local mxq(optional)}\ ---model_type {model type(optional)}\ ---infer_mode {single, multi, global, global4, global8(optional). Default is global}\ ---product {aries, regulus(optional). Default is aries}\ ---batch_size {batch size(optional). Default is 1}\ ---data_path {path to the COCO data(optional). Default is ~/.mblt_model_zoo/datasets/coco} ---conf_thres {confidence threshold for object detection(optional). Default is 0.001}\ ---iou_thres {IOU threshold for object detection(optional). Default is 0.7} -``` - -Example: - -```bash -python benchmark_coco.py --infer_mode single --product aries --batch_size 8 --data_path ~/.mblt_model_zoo/datasets/coco --conf_thres 0.001 --iou_thres 0.7 -``` - -## Benchmark with WiderFace Dataset - -### Download the WiderFace Dataset - -To download the WiderFace dataset, visit the [WiderFace's Hugging Face page](https://huggingface.co/datasets/CUHK-CSE/wider_face) and download the dataset with the following steps: - -1. Go to the "Files and versions" section, and click "data" folder. -2. Download "WIDER_val.zip" file and "wider_face_split.zip" file. - -### Organize the WiderFace Dataset - -You can organize the WiderFace dataset with the following command: +Use `--framework onnx` for ONNX Runtime, `--core-mode all` to compare supported +MXQ core modes, and `--fail-fast` to stop on the first failed target. Compare +completed runs with: ```bash -python organize_widerface.py --image_dir {path_to_WIDER_val.zip} --annotation_dir {path_to_wider_face_split.zip} --output_dir ~/.mblt_model_zoo/datasets/widerface -``` - -This will organize the dataset into the following structure: - -```text -~/.mblt_model_zoo/datasets/widerface/ -โ”œโ”€โ”€ images/ -โ”‚ โ”œโ”€โ”€ 0--Parade/ -| โ”œโ”€โ”€ 0_Parade_Parade_0_102.jpg -| โ”œโ”€โ”€ 0_Parade_Parade_0_120.jpg -| |... -| โ”œโ”€โ”€ 1--Handshaking/ -| |... -| โ”œโ”€โ”€ ... -โ”œโ”€โ”€ wider_face_val.mat -โ”œโ”€โ”€ wider_face_val_bbx_gt.txt +python benchmark/compare_benchmark_results.py run-a run-b ``` - -### Prepare the Model for WiderFace Benchmark - -You can prepare the model for WiderFace benchmark or simply run the benchmark with the model that is provided in [mblt-model-zoo](../mblt_vision/README.md). - -If you want to try with your own model, refer to the [tutorial guide](https://github.com/mobilint/mblt-sdk-tutorial/) to compile the model with custom quantization recipe. - -### Run the WiderFace Benchmark - -Pending \ No newline at end of file diff --git a/benchmark/__init__.py b/benchmark/__init__.py deleted file mode 100644 index 4e91524..0000000 --- a/benchmark/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Dataset and performance benchmark tools for Mobilint Vision.""" diff --git a/benchmark/benchmark_coco.py b/benchmark/benchmark_coco.py deleted file mode 100644 index 2135a4e..0000000 --- a/benchmark/benchmark_coco.py +++ /dev/null @@ -1,183 +0,0 @@ -""" -Benchmark script for YOLOv5m on COCO dataset. - -This script runs the benchmark for the YOLOv5m model using the COCO dataset. -It initializes the model and evaluates its performance. -""" - -import argparse -import os - -import mblt_vision -from mblt_vision.utils.evaluation import eval_coco - -MODEL_LIST = ( - [ - "YOLO11lSeg", - "YOLO11mSeg", - "YOLO11nSeg", - "YOLO11sSeg", - "YOLO11xSeg", - "YOLO26lSeg", - "YOLO26mSeg", - "YOLO26nSeg", - "YOLO26sSeg", - "YOLO26xSeg", - "YOLOv5lSeg", - "YOLOv5mSeg", - "YOLOv5nSeg", - "YOLOv5sSeg", - "YOLOv5xSeg", - "YOLOv8lSeg", - "YOLOv8mSeg", - "YOLOv8nSeg", - "YOLOv8sSeg", - "YOLOv8xSeg", - "YOLOv9cSeg", - "YOLOv9eSeg", - ] - + [ - "GELANc", - "GELANe", - "GELANm", - "GELANs", - "YOLO11l", - "YOLO11m", - "YOLO11n", - "YOLO11s", - "YOLO11x", - "YOLO12l", - "YOLO12m", - "YOLO12n", - "YOLO12s", - "YOLO12x", - "YOLO26l", - "YOLO26m", - "YOLO26n", - "YOLO26s", - "YOLO26x", - "YOLOv10b", - "YOLOv10l", - "YOLOv10m", - "YOLOv10n", - "YOLOv10s", - "YOLOv10x", - "YOLOv3", - "YOLOv3_spp", - "YOLOv3_sppu", - "YOLOv3_tiny", - "YOLOv3_tinyu", - "YOLOv3u", - "YOLOv5l", - "YOLOv5l6", - "YOLOv5l6u", - "YOLOv5lu", - "YOLOv5m", - "YOLOv5m6", - "YOLOv5m6u", - "YOLOv5mu", - "YOLOv5n", - "YOLOv5n6", - "YOLOv5n6u", - "YOLOv5nu", - "YOLOv5s", - "YOLOv5s6", - "YOLOv5s6u", - "YOLOv5su", - "YOLOv5x", - "YOLOv5x6", - "YOLOv5x6u", - "YOLOv5xu", - "YOLOv7", - "YOLOv7d6", - "YOLOv7e6", - "YOLOv7e6e", - "YOLOv7w6", - "YOLOv7x", - "YOLOv8l", - "YOLOv8m", - "YOLOv8n", - "YOLOv8s", - "YOLOv8x", - "YOLOv9c", - "YOLOv9e", - "YOLOv9m", - "YOLOv9s", - "YOLOv9t", - ] - + [ - "YOLO11lPose", - "YOLO11mPose", - "YOLO11nPose", - "YOLO11sPose", - "YOLO11xPose", - "YOLO26lPose", - "YOLO26mPose", - "YOLO26nPose", - "YOLO26sPose", - "YOLO26xPose", - "YOLOv8lPose", - "YOLOv8mPose", - "YOLOv8nPose", - "YOLOv8sPose", - "YOLOv8xPose", - ] -) - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Run YOLOv5m Benchmark") - # --- Model Configuration --- - parser.add_argument( - "--model-name", - type=str, - default="YOLOv5m", - choices=MODEL_LIST, - help="Model name", - ) - parser.add_argument( - "--local-path", - type=str, - default=None, - help="Path to the YOLOv5m model file (.mxq)", - ) - parser.add_argument("--model-type", type=str, default="DEFAULT", help="Model type") - parser.add_argument( - "--infer-mode", - type=str, - default="global8", - choices=["single", "multi", "global4", "global8"], - help="Inference mode", - ) - parser.add_argument("--product", type=str, default="aries", help="Product") - # --- Benchmark Configuration --- - parser.add_argument("--batch-size", type=int, default=1, help="Batch size") - parser.add_argument( - "--data-path", - type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/coco"), - help="Path to the COCO data", - ) - parser.add_argument( - "--conf-thres", - type=float, - default=0.001, - help="Confidence threshold for object detection", - ) - parser.add_argument( - "--iou-thres", - type=float, - default=0.7, - help="IOU threshold for object detection", - ) - args = parser.parse_args() - - model_cls = getattr(mblt_vision, args.model_name) - # --- Model Initialization --- - model = model_cls(args.local_path, args.model_type, args.infer_mode, args.product) - - # --- Benchmark Execution --- - acc = eval_coco( - model, args.data_path, args.batch_size, args.conf_thres, args.iou_thres - ) - print(f"COCO evaluation completed. mAP 50:95: {acc:.5f}") diff --git a/benchmark/benchmark_imagenet.py b/benchmark/benchmark_imagenet.py deleted file mode 100644 index dd7dab1..0000000 --- a/benchmark/benchmark_imagenet.py +++ /dev/null @@ -1,137 +0,0 @@ -""" -Benchmark script for ResNet50 on ImageNet dataset. - -This script runs the benchmark for the ResNet50 model using the ImageNet dataset. -It initializes the model and evaluates its performance. -""" - -import argparse -import os - -import mblt_vision -from mblt_vision.utils.evaluation import eval_imagenet - -MODEL_LIST = [ - "AlexNet", - "ConvNeXt_Base", - "ConvNeXt_Large", - "ConvNeXt_Small", - "ConvNeXt_Tiny", - "DeiT3_Base_Patch16_224", - "DeiT3_Base_Patch16_384", - "DeiT3_Large_Patch16_224", - "DeiT3_Large_Patch16_384", - "DeiT3_Medium_Patch16_224", - "DeiT3_Small_Patch16_224", - "DeiT3_Small_Patch16_384", - "DeiT_Base_Patch16_224", - "DeiT_Base_Patch16_384", - "DeiT_Small_Patch16_224", - "DeiT_Tiny_Patch16_224", - "DenseNet121", - "DenseNet169", - "DenseNet201", - "FlexiViT_Base", - "FlexiViT_Large", - "FlexiViT_Small", - "GoogLeNet", - "Inception_V3", - "MNasNet1_0", - "MNasNet1_3", - "MobileNet_V2", - "RegNet_X_16GF", - "RegNet_X_1_6GF", - "RegNet_X_32GF", - "RegNet_X_3_2GF", - "RegNet_X_400MF", - "RegNet_X_800MF", - "RegNet_X_8GF", - "RegNet_Y_16GF", - "RegNet_Y_1_6GF", - "RegNet_Y_32GF", - "RegNet_Y_3_2GF", - "RegNet_Y_400MF", - "RegNet_Y_800MF", - "RegNet_Y_8GF", - "ResNet101", - "ResNet152", - "ResNet18", - "ResNet34", - "ResNet50", - "ResNext101_32x8d", - "ResNext101_64x4d", - "ResNext50_32x4d", - "ShuffleNet_V2_X1_0", - "ShuffleNet_V2_X1_5", - "ShuffleNet_V2_X2_0", - "VGG11", - "VGG11_BN", - "VGG13", - "VGG13_BN", - "VGG16", - "VGG16_BN", - "VGG19", - "VGG19_BN", - "ViT_Base_Patch16_224", - "ViT_Base_Patch16_384", - "ViT_Base_Patch32_224", - "ViT_Base_Patch32_384", - "ViT_Base_Patch8_224", - "ViT_Large_Patch16_224", - "ViT_Large_Patch16_384", - "ViT_Large_Patch32_384", - "ViT_Small_Patch16_224", - "ViT_Small_Patch16_384", - "ViT_Small_Patch32_224", - "ViT_Small_Patch32_384", - "ViT_Tiny_Patch16_224", - "ViT_Tiny_Patch16_384", - "Wide_ResNet101_2", - "Wide_ResNet50_2", -] - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Run ResNet50 Benchmark") - # --- Model Configuration --- - parser.add_argument( - "--model-name", - type=str, - default="ResNet50", - choices=MODEL_LIST, - help="Model name", - ) - parser.add_argument( - "--local-path", - type=str, - default=None, - help="Path to the ResNet50 model file (.mxq)", - ) - parser.add_argument("--model-type", type=str, default="DEFAULT", help="Model type") - parser.add_argument( - "--infer-mode", - type=str, - default="global8", - choices=["single", "multi", "global4", "global8"], - help="Inference mode", - ) - parser.add_argument("--product", type=str, default="aries", help="Product") - # --- Benchmark Configuration --- - parser.add_argument("--batch-size", type=int, default=1, help="Batch size") - parser.add_argument( - "--data-path", - type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/imagenet"), - help="Path to the ImageNet data", - ) - args = parser.parse_args() - model_cls = getattr(mblt_vision, args.model_name) - # --- Model Initialization --- - model = model_cls( - local_path=args.local_path, - model_type=args.model_type, - infer_mode=args.infer_mode, - product=args.product, - ) - - # --- Benchmark Execution --- - eval_imagenet(model, args.data_path, args.batch_size) diff --git a/benchmark/vision/benchmark_vision_models.py b/benchmark/benchmark_vision_models.py similarity index 97% rename from benchmark/vision/benchmark_vision_models.py rename to benchmark/benchmark_vision_models.py index e5eed1b..f62bac3 100644 --- a/benchmark/vision/benchmark_vision_models.py +++ b/benchmark/benchmark_vision_models.py @@ -15,13 +15,13 @@ from typing import Any, Literal, cast # ruff: noqa: E402 -_REPO_ROOT = Path(__file__).resolve().parents[2] +_REPO_ROOT = Path(__file__).resolve().parents[1] if str(_REPO_ROOT) not in sys.path: sys.path.insert(0, str(_REPO_ROOT)) -from benchmark.common.argparse_utils import parse_positive_int -from benchmark.common.io_utils import safe_filename, write_csv, write_json -from benchmark.common.summary_utils import ( +from mblt_vision.benchmark.argparse_utils import parse_positive_int +from mblt_vision.benchmark.io_utils import safe_filename, write_csv, write_json +from mblt_vision.benchmark.summary_utils import ( collect_host_pc_info, markdown_table, write_summary_markdown, @@ -139,7 +139,7 @@ def _parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace: parser.add_argument( "--results-dir", type=Path, - default=Path("benchmark/vision/results"), + default=Path("benchmark/results"), help="Output directory.", ) parser.add_argument( @@ -378,7 +378,7 @@ def _write_outputs( successful = [row for row in rows if row["status"] == "ok"] plot_paths: list[Path] = [] if successful and not args.no_plot: - from benchmark.common.chart_utils import plot_simple_barh + from mblt_vision.benchmark.chart_utils import plot_simple_barh chart_path = results_dir / "accuracy.png" plot_simple_barh( diff --git a/benchmark/common/__init__.py b/benchmark/common/__init__.py deleted file mode 100644 index 40712df..0000000 --- a/benchmark/common/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Shared helpers for Vision benchmark scripts.""" diff --git a/benchmark/vision/compare_benchmark_results.py b/benchmark/compare_benchmark_results.py similarity index 97% rename from benchmark/vision/compare_benchmark_results.py rename to benchmark/compare_benchmark_results.py index 5f5a253..b67d96a 100644 --- a/benchmark/vision/compare_benchmark_results.py +++ b/benchmark/compare_benchmark_results.py @@ -8,11 +8,11 @@ from typing import NamedTuple, Sequence # ruff: noqa: E402 -_REPO_ROOT = Path(__file__).resolve().parents[2] +_REPO_ROOT = Path(__file__).resolve().parents[1] if str(_REPO_ROOT) not in sys.path: sys.path.insert(0, str(_REPO_ROOT)) -from benchmark.common.summary_utils import read_csv_rows +from mblt_vision.benchmark.summary_utils import read_csv_rows class BenchmarkScore(NamedTuple): @@ -143,7 +143,7 @@ def main(argv: Sequence[str] | None = None) -> int: f"Inputs contain incompatible benchmark metrics: {', '.join(sorted(metric_names))}." ) metric_name = next(iter(metric_names)) - from benchmark.common.chart_utils import ( + from mblt_vision.benchmark.chart_utils import ( default_charts_dir, plot_grouped_scalar_barh, source_labels, diff --git a/benchmark/vision/organize_ade20k.py b/benchmark/organize_ade20k.py similarity index 100% rename from benchmark/vision/organize_ade20k.py rename to benchmark/organize_ade20k.py diff --git a/benchmark/vision/organize_cityscapes.py b/benchmark/organize_cityscapes.py similarity index 100% rename from benchmark/vision/organize_cityscapes.py rename to benchmark/organize_cityscapes.py diff --git a/benchmark/organize_coco.py b/benchmark/organize_coco.py index 28e52cf..abe1ab7 100644 --- a/benchmark/organize_coco.py +++ b/benchmark/organize_coco.py @@ -1,7 +1,7 @@ """ Script to organize the COCO dataset. -This script takes the raw image and annotation zip files for the COCO dataset +This script takes local archives or downloadable sources for the COCO dataset and organizes them into a structure suitable for the model zoo. """ @@ -10,27 +10,35 @@ from mblt_vision.utils.datasets import organize_coco +DEFAULT_COCO_IMAGE_SOURCE = "http://images.cocodataset.org/zips/val2017.zip" +DEFAULT_COCO_ANNOTATION_SOURCE = ( + "http://images.cocodataset.org/annotations/annotations_trainval2017.zip" +) + if __name__ == "__main__": parser = argparse.ArgumentParser(description="Organize COCO dataset") parser.add_argument( - "--image-dir", type=str, required=True, help="Path to the image zip file" + "--image-dir", + type=str, + default=DEFAULT_COCO_IMAGE_SOURCE, + help="Local path or download URL for the image zip file", ) parser.add_argument( - "--annotation-dir", + "--ann-dir", type=str, - required=True, - help="Path to the annotation zip file", + default=DEFAULT_COCO_ANNOTATION_SOURCE, + help="Local path or download URL for the annotation zip file", ) parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/coco"), + default=os.path.expanduser("~/.mblt_vision/datasets/coco"), help="Path to the directory to save the organized dataset", ) args = parser.parse_args() organize_coco( image_dir=args.image_dir, - annotation_dir=args.annotation_dir, + annotation_dir=args.ann_dir, output_dir=args.output_dir, ) diff --git a/benchmark/vision/organize_dotav1.py b/benchmark/organize_dotav1.py similarity index 100% rename from benchmark/vision/organize_dotav1.py rename to benchmark/organize_dotav1.py diff --git a/benchmark/organize_imagenet.py b/benchmark/organize_imagenet.py index a946773..8e7c001 100644 --- a/benchmark/organize_imagenet.py +++ b/benchmark/organize_imagenet.py @@ -1,8 +1,8 @@ """ Script to organize the ImageNet dataset. -This script takes the raw image tar file and xml tgz file for the ImageNet dataset -and organizes them into a structure suitable for the model zoo. +This script takes local archives or downloadable sources for the ImageNet +dataset and organizes them into a structure suitable for the model zoo. """ import argparse @@ -10,18 +10,30 @@ from mblt_vision.utils.datasets import organize_imagenet +DEFAULT_IMAGENET_IMAGE_SOURCE = ( + "https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar" +) +DEFAULT_IMAGENET_XML_SOURCE = ( + "https://www.image-net.org/data/ILSVRC/2012/ILSVRC2012_bbox_val_v3.tgz" +) if __name__ == "__main__": parser = argparse.ArgumentParser(description="Organize ImageNet dataset") parser.add_argument( - "--image-dir", type=str, required=True, help="Path to the image tar file" + "--image-dir", + type=str, + default=DEFAULT_IMAGENET_IMAGE_SOURCE, + help="Local path or download URL for the image tar file", ) parser.add_argument( - "--xml-dir", type=str, required=True, help="Path to the xml tgz file" + "--xml-dir", + type=str, + default=DEFAULT_IMAGENET_XML_SOURCE, + help="Local path or download URL for the XML tgz file", ) parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/imagenet"), + default=os.path.expanduser("~/.mblt_vision/datasets/imagenet"), help="Path to the directory to save the organized dataset", ) args = parser.parse_args() diff --git a/benchmark/vision/organize_nyu_depth.py b/benchmark/organize_nyu_depth.py similarity index 100% rename from benchmark/vision/organize_nyu_depth.py rename to benchmark/organize_nyu_depth.py diff --git a/benchmark/organize_widerface.py b/benchmark/organize_widerface.py index 617d5be..b44e369 100644 --- a/benchmark/organize_widerface.py +++ b/benchmark/organize_widerface.py @@ -1,8 +1,8 @@ """ Script to organize the WiderFace dataset. -This script takes the raw image and annotation zip files for the WiderFace dataset -and organizes them into a structure suitable for the model zoo. +This script takes local archives or downloadable sources for the WiderFace +dataset and organizes them into a structure suitable for the model zoo. """ import argparse @@ -10,21 +10,27 @@ from mblt_vision.utils.datasets import organize_widerface +DEFAULT_WIDERFACE_IMAGE_SOURCE = "https://huggingface.co/datasets/CUHK-CSE/wider_face/resolve/main/data/WIDER_val.zip" +DEFAULT_WIDERFACE_ANNOTATION_SOURCE = "https://huggingface.co/datasets/CUHK-CSE/wider_face/resolve/main/data/wider_face_split.zip" + if __name__ == "__main__": parser = argparse.ArgumentParser(description="Organize WiderFace dataset") parser.add_argument( - "--image-dir", type=str, required=True, help="Path to the image zip file" + "--image-dir", + type=str, + default=DEFAULT_WIDERFACE_IMAGE_SOURCE, + help="Local path or download URL for the image zip file", ) parser.add_argument( "--annotation-dir", type=str, - required=True, - help="Path to the annotation zip file", + default=DEFAULT_WIDERFACE_ANNOTATION_SOURCE, + help="Local path or download URL for the annotation zip file", ) parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/widerface"), + default=os.path.expanduser("~/.mblt_vision/datasets/widerface"), help="Path to the directory to save the organized dataset", ) args = parser.parse_args() diff --git a/benchmark/vision/README.md b/benchmark/vision/README.md deleted file mode 100644 index 3d7ef4d..0000000 --- a/benchmark/vision/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Vision datasets and benchmarks - -`mblt-vision-python` owns the utilities that organize validation datasets and -evaluate Vision models. The standardized benchmark runner writes JSON, CSV, -Markdown, and optional chart artifacts for one or more models. - -Run scripts from the repository root, or invoke them as modules after installing -the package from source. - -## Dataset organization - -Most organizers can download their public source archives when paths are omitted; -pass local paths to reuse existing downloads. Organized datasets default to -`~/.mblt_vision/datasets`. - -```bash -python benchmark/vision/organize_coco.py -python benchmark/vision/organize_ade20k.py -python benchmark/vision/organize_nyu_depth.py -``` - -Cityscapes is not downloaded automatically. Supply the official archives: - -```bash -python benchmark/vision/organize_cityscapes.py \ - --image-dir benchmark/leftImg8bit_trainvaltest.zip \ - --annotation-dir benchmark/gtFine_trainvaltest.zip -``` - -The Cityscapes organizer selects only the 500 validation RGB images and their -`gtFine_labelIds` masks, installing them as `images/` and `annotations/` under the -chosen output directory. - -ImageNet and DOTA require their source archives or directories because their terms -of use may restrict automatic retrieval. See each organizer's `--help` output for -required arguments. - -## Running a benchmark - -```bash -python benchmark/vision/benchmark_vision_models.py \ - --models ResNet50 \ - --task image_classification \ - --data-path ~/.mblt_vision/datasets/imagenet -``` - -Use `--framework onnx` (or an `.onnx` `--model-path`) for ONNX Runtime. Use -`--core-mode all` to compare NPU core modes. The runner keeps evaluating remaining -models after an individual failure unless `--fail-fast` is set. - -Compare two or more benchmark result directories with: - -```bash -python benchmark/vision/compare_benchmark_results.py run-a run-b -``` - -## Verification - -The focused tests cover archive download recovery, safe staging and replacement, -dataset readiness, evaluator dispatch, standardized benchmark artifacts, and -comparison validation. Hardware-backed runs require a configured Mobilint NPU; -ONNX benchmarks require the relevant optional ONNX Runtime extra. diff --git a/benchmark/vision/__init__.py b/benchmark/vision/__init__.py deleted file mode 100644 index 1adafd3..0000000 --- a/benchmark/vision/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Vision dataset organization and benchmark command-line tools.""" diff --git a/benchmark/vision/organize_coco.py b/benchmark/vision/organize_coco.py deleted file mode 100644 index abe1ab7..0000000 --- a/benchmark/vision/organize_coco.py +++ /dev/null @@ -1,44 +0,0 @@ -""" -Script to organize the COCO dataset. - -This script takes local archives or downloadable sources for the COCO dataset -and organizes them into a structure suitable for the model zoo. -""" - -import argparse -import os - -from mblt_vision.utils.datasets import organize_coco - -DEFAULT_COCO_IMAGE_SOURCE = "http://images.cocodataset.org/zips/val2017.zip" -DEFAULT_COCO_ANNOTATION_SOURCE = ( - "http://images.cocodataset.org/annotations/annotations_trainval2017.zip" -) - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Organize COCO dataset") - parser.add_argument( - "--image-dir", - type=str, - default=DEFAULT_COCO_IMAGE_SOURCE, - help="Local path or download URL for the image zip file", - ) - parser.add_argument( - "--ann-dir", - type=str, - default=DEFAULT_COCO_ANNOTATION_SOURCE, - help="Local path or download URL for the annotation zip file", - ) - parser.add_argument( - "--output-dir", - type=str, - default=os.path.expanduser("~/.mblt_vision/datasets/coco"), - help="Path to the directory to save the organized dataset", - ) - args = parser.parse_args() - - organize_coco( - image_dir=args.image_dir, - annotation_dir=args.ann_dir, - output_dir=args.output_dir, - ) diff --git a/benchmark/vision/organize_imagenet.py b/benchmark/vision/organize_imagenet.py deleted file mode 100644 index 8e7c001..0000000 --- a/benchmark/vision/organize_imagenet.py +++ /dev/null @@ -1,45 +0,0 @@ -""" -Script to organize the ImageNet dataset. - -This script takes local archives or downloadable sources for the ImageNet -dataset and organizes them into a structure suitable for the model zoo. -""" - -import argparse -import os - -from mblt_vision.utils.datasets import organize_imagenet - -DEFAULT_IMAGENET_IMAGE_SOURCE = ( - "https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar" -) -DEFAULT_IMAGENET_XML_SOURCE = ( - "https://www.image-net.org/data/ILSVRC/2012/ILSVRC2012_bbox_val_v3.tgz" -) -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Organize ImageNet dataset") - parser.add_argument( - "--image-dir", - type=str, - default=DEFAULT_IMAGENET_IMAGE_SOURCE, - help="Local path or download URL for the image tar file", - ) - parser.add_argument( - "--xml-dir", - type=str, - default=DEFAULT_IMAGENET_XML_SOURCE, - help="Local path or download URL for the XML tgz file", - ) - parser.add_argument( - "--output-dir", - type=str, - default=os.path.expanduser("~/.mblt_vision/datasets/imagenet"), - help="Path to the directory to save the organized dataset", - ) - args = parser.parse_args() - - organize_imagenet( - image_dir=args.image_dir, - xml_dir=args.xml_dir, - output_dir=args.output_dir, - ) diff --git a/benchmark/vision/organize_widerface.py b/benchmark/vision/organize_widerface.py deleted file mode 100644 index b44e369..0000000 --- a/benchmark/vision/organize_widerface.py +++ /dev/null @@ -1,42 +0,0 @@ -""" -Script to organize the WiderFace dataset. - -This script takes local archives or downloadable sources for the WiderFace -dataset and organizes them into a structure suitable for the model zoo. -""" - -import argparse -import os - -from mblt_vision.utils.datasets import organize_widerface - -DEFAULT_WIDERFACE_IMAGE_SOURCE = "https://huggingface.co/datasets/CUHK-CSE/wider_face/resolve/main/data/WIDER_val.zip" -DEFAULT_WIDERFACE_ANNOTATION_SOURCE = "https://huggingface.co/datasets/CUHK-CSE/wider_face/resolve/main/data/wider_face_split.zip" - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Organize WiderFace dataset") - parser.add_argument( - "--image-dir", - type=str, - default=DEFAULT_WIDERFACE_IMAGE_SOURCE, - help="Local path or download URL for the image zip file", - ) - parser.add_argument( - "--annotation-dir", - type=str, - default=DEFAULT_WIDERFACE_ANNOTATION_SOURCE, - help="Local path or download URL for the annotation zip file", - ) - parser.add_argument( - "--output-dir", - type=str, - default=os.path.expanduser("~/.mblt_vision/datasets/widerface"), - help="Path to the directory to save the organized dataset", - ) - args = parser.parse_args() - - organize_widerface( - image_dir=args.image_dir, - annotation_dir=args.annotation_dir, - output_dir=args.output_dir, - ) diff --git a/compile/vision/README.md b/compile/README.md similarity index 81% rename from compile/vision/README.md rename to compile/README.md index cd47ec6..6272f73 100644 --- a/compile/vision/README.md +++ b/compile/README.md @@ -1,7 +1,7 @@ # Vision Model Compilation The installable vision compiler uses each model's packaged YAML configuration and -`MBLT_Engine.preprocess` implementation to compile its ONNX artifact for ARIES. +`MBLT_Engine.preprocess` implementation to compile its ONNX artifact for a selected board. ## Installation @@ -15,7 +15,7 @@ pip install -e ".[qbcompiler]" available from the public Python Package Index. Obtain access to the compiler package before using this extra. -qbcompiler is loaded only when `compile_vision_model()` or `mblt-vision-python compile` begins an +qbcompiler is loaded only when `compile_vision_model()` or `mblt-vision compile` begins an actual compilation request. Importing the base package, vision APIs, this compilation module, or the main CLI does not import qbcompiler. If qbcompiler is unavailable, only the compilation request fails with an installation message; non-compile APIs and CLI commands remain usable. @@ -37,7 +37,7 @@ print(output_path) ## CLI ```bash -mblt-vision-python compile \ +mblt-vision compile \ --model-cls alexnet \ --target-device aries-rb \ --data-path ~/.mblt_vision/datasets/imagenet \ @@ -48,8 +48,8 @@ Start from an existing sampled image subset or a ready calibration tensor direct stages have already been completed: ```bash -mblt-vision-python compile --model-cls alexnet --target-device aries-rb --subset-path ./sampled-images -mblt-vision-python compile --model-cls alexnet --target-device aries-rb --calib-data-path ./preprocessed-npy +mblt-vision compile --model-cls alexnet --target-device aries-rb --subset-path ./sampled-images +mblt-vision compile --model-cls alexnet --target-device aries-rb --calib-data-path ./preprocessed-npy ``` Use `--model-type` for a non-default YAML variant and `--model-path` or `--onnx-path` to prefer a @@ -105,7 +105,7 @@ NumPy arrays live only in temporary directories and are removed after compilatio compilation fails. The compiler uses explicit `--percentile` and `--topk-ratio` values first. Missing values are read -independently from `aries/best_result.json`; if optional hosted values are unavailable, defaults of +independently from `/best_result.json`; if optional hosted values are unavailable, defaults of `0.9999` and `0.01` are used with a warning. ## Compatibility Scripts @@ -113,12 +113,12 @@ independently from `aries/best_result.json`; if optional hosted values are unava The standalone scripts remain available: ```bash -python compile/vision/vision_model_compile.py --model-cls alexnet -python compile/vision/make_imagenet_subset.py --output-dir ./imagenet-calibration -python compile/vision/make_coco_subset.py --output-dir ./coco-calibration -python compile/vision/make_dotav1_subset.py --output-dir ./dotav1-calibration -python compile/vision/make_widerface_subset.py --output-dir ./widerface-calibration -python compile/vision/make_nyu_depth_subset.py --output-dir ./nyu-depth-calibration -python compile/vision/make_ade20k_subset.py --output-dir ./ade20k-calibration -python compile/vision/make_cityscapes_subset.py --output-dir ./cityscapes-calibration +python compile/vision_model_compile.py --model-cls alexnet --target-device aries-rb +python compile/make_imagenet_subset.py --output-dir ./imagenet-calibration +python compile/make_coco_subset.py --output-dir ./coco-calibration +python compile/make_dotav1_subset.py --output-dir ./dotav1-calibration +python compile/make_widerface_subset.py --output-dir ./widerface-calibration +python compile/make_nyu_depth_subset.py --output-dir ./nyu-depth-calibration +python compile/make_ade20k_subset.py --output-dir ./ade20k-calibration +python compile/make_cityscapes_subset.py --output-dir ./cityscapes-calibration ``` diff --git a/compile/vision/make_ade20k_subset.py b/compile/make_ade20k_subset.py similarity index 100% rename from compile/vision/make_ade20k_subset.py rename to compile/make_ade20k_subset.py diff --git a/compile/vision/make_cityscapes_subset.py b/compile/make_cityscapes_subset.py similarity index 100% rename from compile/vision/make_cityscapes_subset.py rename to compile/make_cityscapes_subset.py diff --git a/compile/vision/make_coco_subset.py b/compile/make_coco_subset.py similarity index 100% rename from compile/vision/make_coco_subset.py rename to compile/make_coco_subset.py diff --git a/compile/vision/make_dotav1_subset.py b/compile/make_dotav1_subset.py similarity index 100% rename from compile/vision/make_dotav1_subset.py rename to compile/make_dotav1_subset.py diff --git a/compile/vision/make_imagenet_subset.py b/compile/make_imagenet_subset.py similarity index 100% rename from compile/vision/make_imagenet_subset.py rename to compile/make_imagenet_subset.py diff --git a/compile/vision/make_nyu_depth_subset.py b/compile/make_nyu_depth_subset.py similarity index 100% rename from compile/vision/make_nyu_depth_subset.py rename to compile/make_nyu_depth_subset.py diff --git a/compile/vision/make_widerface_subset.py b/compile/make_widerface_subset.py similarity index 100% rename from compile/vision/make_widerface_subset.py rename to compile/make_widerface_subset.py diff --git a/compile/vision/vision_model_compile.py b/compile/vision_model_compile.py similarity index 91% rename from compile/vision/vision_model_compile.py rename to compile/vision_model_compile.py index cfea216..0acb382 100644 --- a/compile/vision/vision_model_compile.py +++ b/compile/vision_model_compile.py @@ -23,6 +23,12 @@ def build_parser() -> argparse.ArgumentParser: default="DEFAULT", help="Model variant from the YAML configuration.", ) + parser.add_argument( + "--target-device", + default="aries-rb", + choices=["aries-rb", "regulus-ra", "regulus-rb"], + help="Board target for the compiled MXQ artifact.", + ) parser.add_argument( "--model-path", "--onnx-path", @@ -66,6 +72,7 @@ def main() -> None: output_path = compile_vision_model( model_cls=args.model_cls, model_type=args.model_type, + target_device=args.target_device, model_path=args.model_path, data_path=args.data_path, subset_path=args.subset_path, diff --git a/mblt_vision/benchmark/__init__.py b/mblt_vision/benchmark/__init__.py new file mode 100644 index 0000000..b7039b2 --- /dev/null +++ b/mblt_vision/benchmark/__init__.py @@ -0,0 +1 @@ +"""Reusable benchmark reporting and command support for Mobilint Vision.""" diff --git a/benchmark/common/argparse_utils.py b/mblt_vision/benchmark/argparse_utils.py similarity index 100% rename from benchmark/common/argparse_utils.py rename to mblt_vision/benchmark/argparse_utils.py diff --git a/benchmark/common/chart_utils.py b/mblt_vision/benchmark/chart_utils.py similarity index 100% rename from benchmark/common/chart_utils.py rename to mblt_vision/benchmark/chart_utils.py diff --git a/benchmark/common/io_utils.py b/mblt_vision/benchmark/io_utils.py similarity index 100% rename from benchmark/common/io_utils.py rename to mblt_vision/benchmark/io_utils.py diff --git a/benchmark/common/summary_utils.py b/mblt_vision/benchmark/summary_utils.py similarity index 100% rename from benchmark/common/summary_utils.py rename to mblt_vision/benchmark/summary_utils.py diff --git a/mblt_vision/cli/_vision.py b/mblt_vision/cli/_vision.py index 79f0180..096a2ef 100644 --- a/mblt_vision/cli/_vision.py +++ b/mblt_vision/cli/_vision.py @@ -187,11 +187,18 @@ def add_vision_parser( command: str, help_text: str, handler: Any, - aliases: list[str] | None = None, + description: str | None = None, + epilog: str | None = None, ) -> argparse.ArgumentParser: """Creates a vision command parser with common arguments.""" - parser = subparsers.add_parser(command, aliases=aliases or [], help=help_text) + parser = subparsers.add_parser( + command, + help=help_text, + description=description, + epilog=epilog, + formatter_class=argparse.RawDescriptionHelpFormatter, + ) parser.set_defaults(_handler=handler) add_common_vision_args(parser) return parser diff --git a/mblt_vision/cli/predict.py b/mblt_vision/cli/predict.py index e142c8e..739900d 100644 --- a/mblt_vision/cli/predict.py +++ b/mblt_vision/cli/predict.py @@ -27,11 +27,30 @@ def add_predict_parser( parser = add_vision_parser( subparsers, command="predict", - aliases=["classify", "detect", "pose", "segment"], help_text=( "Run vision inference for classification, depth estimation, detection, instance or semantic " "segmentation, OBB, pose, and face detection." ), + description=( + "Run a configured Vision model on one image. The selected model determines the task, " + "preprocessing, postprocessing, and output visualization automatically." + ), + epilog="""Supported tasks: + image classification, depth estimation, object and face detection, instance + and semantic segmentation, oriented bounding boxes (OBB), and pose estimation. + +The command downloads the default MXQ artifact when no local model path is supplied, +then writes a plotted result under runs/vision/predict/ by default. Use --output to +choose the image destination. Use --framework onnx with --model-path or --onnx-path +for ONNX Runtime inference; MXQ is the default framework. + +Examples: + mblt-vision predict --source image.jpg --model resnet50 --topk 3 + mblt-vision predict --source image.jpg --model yolo11m --conf-thres 0.4 --output result.jpg + mblt-vision predict --source image.jpg --model yolo11m --framework onnx + mblt-vision predict --source image.jpg --model yolo11m-pose --target-device regulus-ra --core-mode single + +For export-style YOLO output, use --e2e false and optionally save it with --raw-output.""", handler=_cmd_predict, ) parser.add_argument( diff --git a/mblt_vision/utils/evaluation/eval_ade20k.py b/mblt_vision/utils/evaluation/eval_ade20k.py index 7e97237..8dfc404 100644 --- a/mblt_vision/utils/evaluation/eval_ade20k.py +++ b/mblt_vision/utils/evaluation/eval_ade20k.py @@ -84,7 +84,7 @@ def update(self, prediction: np.ndarray, target: np.ndarray) -> None: ) invalid_prediction = valid_target & ~valid_prediction if invalid_prediction.any(): - invalid_values = np.unique(prediction[invalid_prediction]) + invalid_values = np.asarray(np.unique(prediction[invalid_prediction])) raise ValueError( f"Semantic predictions at valid target pixels must be finite class IDs in [0, {self.nc - 1}], " f"got {invalid_values.tolist()}." diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index 1e59b45..31487a0 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -19,7 +19,7 @@ from huggingface_hub.errors import EntryNotFoundError from qbruntime import Cluster, CoreId -from mblt_npu import MobilintNPUBackend, normalize_target_device +from mblt_npu import MobilintNPUBackend, ONNXBackend, normalize_target_device from ._model_paths import resolve_framework as _resolve_framework from ._model_paths import split_model_paths as _split_model_paths from ._model_paths import ( @@ -445,6 +445,7 @@ def __init__( self.model: Any self._mxq_model: MobilintNPUBackend | None = None + self._onnx_model: ONNXBackend | None = None self._onnx_session: Any = None if self.framework == "onnx": @@ -458,19 +459,23 @@ def __init__( raise FileNotFoundError(f"ONNX file not found at: {resolved_onnx_path}") providers = _resolve_onnx_providers(ort, onnx_providers) - self._onnx_session = ort.InferenceSession( - resolved_onnx_path, providers=providers + onnx_model = ONNXBackend( + resolved_onnx_path, providers=providers, ort_module=ort ) + onnx_model.create() + self._onnx_model = onnx_model + self._onnx_session = onnx_model.session self.model = self._onnx_session self.input_name = self._onnx_session.get_inputs()[0].name self.output_names = [o.name for o in self._onnx_session.get_outputs()] else: - self._mxq_model = MobilintNPUBackend(**self._mxq_backend_kwargs()) - self.model = self._mxq_model - self._mxq_model.create() - self._mxq_model.launch() + mxq_model = MobilintNPUBackend(**self._mxq_backend_kwargs()) + self._mxq_model = mxq_model + self.model = mxq_model + mxq_model.create() + mxq_model.launch() - if self._mxq_model.get_dtype() == "DataType.Uint8": + if mxq_model.get_dtype() == "DataType.Uint8": self.pre_cfg.pop("Normalize", None) self.preprocessor = build_preprocess(self.pre_cfg) @@ -906,6 +911,8 @@ def dispose(self) -> None: """Disposes the underlying model.""" if self.framework == "mxq": self._require_mxq_model().dispose() + elif self._onnx_model is not None: + self._onnx_model.dispose() def model_name_aliasing(self, model_name: str) -> str: """Finds the YAML config filename that matches the given model name. diff --git a/tests/test_benchmark_vision.py b/tests/test_benchmark_vision.py index 8e93a3f..e114fad 100644 --- a/tests/test_benchmark_vision.py +++ b/tests/test_benchmark_vision.py @@ -8,7 +8,7 @@ import pytest -from benchmark.vision import benchmark_vision_models, compare_benchmark_results +from benchmark import benchmark_vision_models, compare_benchmark_results from mblt_vision.utils.evaluation import ( DOTAResult, ImageNetResult, @@ -288,7 +288,7 @@ def test_comparison_uses_result_directory_names( "model,core_mode,task,status,score_name,score\nmodel-a,global8,object_detection,ok,map50_95,0.5\n", encoding="utf-8", ) - import benchmark.common.chart_utils as chart_utils + import mblt_vision.benchmark.chart_utils as chart_utils captured: dict[str, object] = {} diff --git a/tests/test_cli.py b/tests/test_cli.py index 5de8958..f112ee4 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -2,6 +2,8 @@ from __future__ import annotations +import pytest + from mblt_vision.cli import build_parser from mblt_vision.cli.compile import _run_compile from mblt_vision.cli.predict import _cmd_predict @@ -47,3 +49,25 @@ def test_vision_cli_uses_single_core_mode_by_default_on_regulus() -> None: assert args.target_device == "regulus-ra" assert args.core_mode is None + + +@pytest.mark.parametrize("removed_alias", ["classify", "detect", "pose", "segment"]) +def test_predict_command_has_no_task_aliases(removed_alias: str) -> None: + """Keep prediction discoverable through one task-agnostic command.""" + + with pytest.raises(SystemExit): + build_parser().parse_args([removed_alias]) + + +def test_predict_help_explains_supported_workflows( + capsys: pytest.CaptureFixture[str], +) -> None: + """Describe tasks, output behavior, framework choice, and examples in CLI help.""" + + with pytest.raises(SystemExit, match="0"): + build_parser().parse_args(["predict", "--help"]) + help_text = capsys.readouterr().out + + assert "Supported tasks:" in help_text + assert "--framework onnx" in help_text + assert "--target-device regulus-ra" in help_text From b2de8f2f831c9f3b91326a4a6cd4133e2ad060e1 Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 11 Aug 2026 12:13:44 +0900 Subject: [PATCH 09/48] feat: Update documentation for benchmark and compilation tooling, including organization and synchronization guidelines --- .agents/skills/mblt-vision-readme/SKILL.md | 4 +++- .agents/skills/mblt-vision/SKILL.md | 16 ++++++++++++++-- AGENTS.md | 16 +++++++++++++++- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/.agents/skills/mblt-vision-readme/SKILL.md b/.agents/skills/mblt-vision-readme/SKILL.md index 5445395..2970e51 100644 --- a/.agents/skills/mblt-vision-readme/SKILL.md +++ b/.agents/skills/mblt-vision-readme/SKILL.md @@ -13,6 +13,8 @@ description: >- mblt_vision/README.md. - Keep the detailed Vision API reference in mblt_vision/README.md. It owns Python construction, framework selection, model discovery, model-family tables, output taxonomy, and migration notes. +- Keep development-tool instructions in `benchmark/README.md` and `compile/README.md`; their + command scripts live directly in those directories. - Document Model Zoo compatibility as migration context only. Do not present Model Zoo CLI, validation, dataset organization, or compilation commands as features of this package. @@ -35,5 +37,5 @@ description: >- - Prefer generated discovery examples such as list_tasks() and list_models() over manually maintained exhaustive name lists. - When changing models, package metadata, dependencies, public APIs, or runtime behavior, update - the relevant README and this guidance if the workflow changes. + the relevant README, `AGENTS.md`, and the canonical `mblt-vision` skill if the workflow changes. - For documentation-only updates, run git diff --check and verify relative links and headings. diff --git a/.agents/skills/mblt-vision/SKILL.md b/.agents/skills/mblt-vision/SKILL.md index 509d53a..63b5245 100644 --- a/.agents/skills/mblt-vision/SKILL.md +++ b/.agents/skills/mblt-vision/SKILL.md @@ -45,13 +45,25 @@ description: >- ## Runtime and Packaging - Route NPU runtime access through mblt-npu-python; do not copy backend classes into Vision. -- Keep ONNX Runtime optional and lazy-imported. Raise a specific installation error when it is - requested but unavailable. +- Use the shared `ONNXBackend` for ONNX inference. Keep ONNX Runtime optional and lazy-imported; + raise a specific installation error when it is requested but unavailable. +- Normalize legacy `aries` and `regulus` target values through mblt-npu-python. MXQ artifacts and + compilation metadata must resolve only from the selected board folder, never a core-mode path or + a fallback board folder. - Include model and dataset YAML files as package data. Build a wheel and inspect it after changing metadata or assets. - Do not require native bindings, GStreamer, hardware, downloaded models, or caches for normal imports and unit tests. +## Tooling Layout and Documentation + +- Keep all executable benchmark scripts directly in `benchmark/`; reusable reporting helpers belong + in `mblt_vision.benchmark`. +- Keep all executable compile scripts and the compile guide directly in `compile/`. +- For every significant package change (public API, CLI, runtime/dependency, artifact layout, or + tooling structure), update `AGENTS.md`, this canonical skill, the Claude skill entry point when + its workflow changes, and the relevant README in the same change. + ## Validate Proportionately - Begin with the smallest relevant test file or -k selection. diff --git a/AGENTS.md b/AGENTS.md index 30e45a3..69fa1e5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -91,6 +91,18 @@ The current ownership boundary is deliberate: `mblt-vision` interface, and preserve the Python public API, exceptions, result values, layouts, and lifecycle behavior. Add native capability/version checks at that time. +## Benchmark and Compilation Tooling + +- Keep executable benchmark organizers, the unified benchmark runner, and result comparison scripts + directly under `benchmark/`. Put reusable benchmark reporting helpers in `mblt_vision.benchmark`. +- Keep executable compilation helpers and their guide directly under `compile/`. Do not recreate a + Vision-only subdirectory under either tooling root. +- Benchmark and compilation commands are development tools; do not package them as public CLI + entry points without an explicit product decision. The supported end-user command is + `mblt-vision`. +- Compile and artifact resolution must use normalized board identifiers (`aries-rb`, `regulus-ra`, + or `regulus-rb`) and must not fall back to a different board folder. + ## PyPI and Wheel Packaging - `pyproject.toml` is the source of truth for Python metadata, supported Python versions, @@ -135,7 +147,9 @@ The current ownership boundary is deliberate: language-tagged code fences, and concise paragraphs. Keep examples executable against the public mblt_vision namespace and do not document Model Zoo CLI commands as standalone features. - When a durable public fact changes, update this guide, the matching agent skill, CLAUDE.md, and - the relevant README in the same change. + the relevant README in the same change. Treat a significant package changeโ€”public API, + dependency/runtime, artifact layout, CLI, or tooling structureโ€”as a required guide-and-skill + synchronization point. - For documentation-only changes, run `git diff --check` and verify headings and links. Report skipped platform, hardware, or native-runtime checks clearly. From 424c0be04be41703684c5acc0419e3a52372c34e Mon Sep 17 00:00:00 2001 From: jinman Date: Wed, 12 Aug 2026 12:38:52 +0900 Subject: [PATCH 10/48] feat: Enhance mask processing with ROI prototype masking and add corresponding tests --- mblt_vision/utils/postprocess/common.py | 112 +++++++++++++++++++++++- tests/test_wrapper.py | 33 ++++++- 2 files changed, 142 insertions(+), 3 deletions(-) diff --git a/mblt_vision/utils/postprocess/common.py b/mblt_vision/utils/postprocess/common.py index 9cee0e1..c498a02 100644 --- a/mblt_vision/utils/postprocess/common.py +++ b/mblt_vision/utils/postprocess/common.py @@ -975,13 +975,123 @@ def process_mask_upsample( Returns: torch.Tensor: Upsampled and thresholded binary masks. """ + target_shape = (int(shape[0]), int(shape[1])) c, mh, mw = protos.shape # CHW + + # Evaluate only the prototype pixels that contribute to each retained ROI. + # The ROI interpolation preserves the original global bilinear sampling + # coordinates, so it produces the same binary mask as the full-mask path. + if _use_roi_prototype_masks(masks_in, bboxes, c, mh, mw, target_shape): + return _process_mask_upsample_roi(protos, masks_in, bboxes, target_shape) + masks = (masks_in @ protos.float().view(c, -1)).view(-1, mh, mw) # n, CHW - masks = scale_masks(masks, (shape[0], shape[1])) # CHW + masks = scale_masks(masks, target_shape) # CHW masks = crop_mask(masks, bboxes) # CHW return masks.gt_(0.0) +def _use_roi_prototype_masks( + masks_in: torch.Tensor, + bboxes: torch.Tensor, + channels: int, + proto_h: int, + proto_w: int, + shape: tuple[int, int], +) -> bool: + """Return whether exact low-resolution ROI masking is expected to be cheaper.""" + count = masks_in.shape[0] + if bboxes.numel() == 0: + return False + height, width = shape + clipped = bboxes[:, :4].clone() + clipped[:, 0::2].clamp_(0, width) + clipped[:, 1::2].clamp_(0, height) + roi_pixels = ( + (clipped[:, 2] - clipped[:, 0]).clamp_min_(0).ceil() + * (clipped[:, 3] - clipped[:, 1]).clamp_min_(0).ceil() + ).sum() + # This is a conservative upper-bound for ROI work: the actual dot product + # runs at prototype resolution, while interpolation touches only ROI pixels. + full_work = count * (channels * proto_h * proto_w + height * width) + roi_work = channels * height * width + channels * roi_pixels + return bool(roi_work < full_work) + + +def _process_mask_upsample_roi( + protos: torch.Tensor, + masks_in: torch.Tensor, + bboxes: torch.Tensor, + shape: tuple[int, int], +) -> torch.Tensor: + """Create exact cropped masks from low-resolution prototype ROIs. + + The interpolation grid uses global ``align_corners=False`` coordinates. + Therefore every target pixel samples the same prototype neighborhood as + ``scale_masks(coefficients @ protos)`` without evaluating pixels outside + its bounding box. + """ + protos = protos.float() + channels, proto_h, proto_w = protos.shape + height, width = shape + top, left, bottom, right = _mask_scale_crop_bounds((proto_h, proto_w), shape) + crop_h, crop_w = bottom - top, right - left + masks = torch.zeros( + (masks_in.shape[0], height, width), dtype=torch.float32, device=protos.device + ) + boxes = bboxes.to(protos.device) + for index, box in enumerate(boxes): + x1 = max(0, min(width, math.ceil(float(box[0])))) + y1 = max(0, min(height, math.ceil(float(box[1])))) + x2 = max(0, min(width, math.ceil(float(box[2])))) + y2 = max(0, min(height, math.ceil(float(box[3])))) + if x1 >= x2 or y1 >= y2: + continue + proto_x1 = max(0, math.floor((x1 + 0.5) * crop_w / width - 0.5)) + proto_y1 = max(0, math.floor((y1 + 0.5) * crop_h / height - 0.5)) + proto_x2 = min(crop_w, math.floor((x2 - 0.5) * crop_w / width - 0.5) + 2) + proto_y2 = min(crop_h, math.floor((y2 - 0.5) * crop_h / height - 0.5) + 2) + proto_x1, proto_x2 = left + proto_x1, left + proto_x2 + proto_y1, proto_y2 = top + proto_y1, top + proto_y2 + prototype_roi = protos[:, proto_y1:proto_y2, proto_x1:proto_x2] + lowres_mask = (masks_in[index] @ prototype_roi.reshape(channels, -1)).reshape( + 1, 1, proto_y2 - proto_y1, proto_x2 - proto_x1 + ) + ys = torch.arange(y1, y2, device=protos.device, dtype=torch.float32) + xs = torch.arange(x1, x2, device=protos.device, dtype=torch.float32) + global_y, global_x = torch.meshgrid(ys, xs, indexing="ij") + local_y = (global_y + 0.5) * crop_h / height - 0.5 - (proto_y1 - top) + local_x = (global_x + 0.5) * crop_w / width - 0.5 - (proto_x1 - left) + grid = torch.stack( + ( + (local_x + 0.5) * 2 / (proto_x2 - proto_x1) - 1, + (local_y + 0.5) * 2 / (proto_y2 - proto_y1) - 1, + ), + dim=-1, + ).unsqueeze(0) + masks[index, y1:y2, x1:x2] = F.grid_sample( + lowres_mask, + grid, + mode="bilinear", + padding_mode="border", + align_corners=False, + )[0, 0] + return masks.gt_(0.0) + + +def _mask_scale_crop_bounds( + mask_shape: tuple[int, int], target_shape: tuple[int, int] +) -> tuple[int, int, int, int]: + """Return the crop applied by :func:`scale_masks` before interpolation.""" + mask_h, mask_w = mask_shape + target_h, target_w = target_shape + gain = min(mask_h / target_h, mask_w / target_w) + pad_w = (mask_w - round(target_w * gain)) / 2 + pad_h = (mask_h - round(target_h * gain)) / 2 + top, left = round(pad_h - 0.1), round(pad_w - 0.1) + bottom, right = mask_h - round(pad_h + 0.1), mask_w - round(pad_w + 0.1) + return top, left, bottom, right + + def crop_mask(masks: torch.Tensor, boxes: torch.Tensor) -> torch.Tensor: """Crops masks to bounding boxes. diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 442ec70..b93724a 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -16,6 +16,7 @@ nmsout2eval, normalize_image_shapes, normalize_ratio_pads, + process_mask_upsample, scale_coords, scale_masks, ) @@ -359,7 +360,9 @@ def dispose(self) -> None: lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), ) - engine = MBLT_Engine( + # This intentionally exercises the legacy shifted positional layout, which + # does not match the current typed ``MBLT_Engine`` constructor signature. + engine = cast(Any, MBLT_Engine)( {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, "DEFAULT", str(mxq_path), @@ -642,7 +645,9 @@ def InferenceSession(self, path: str, providers: list[str]) -> _FakeSession: if model_path_style == "positional": engine = MBLT_Engine(model_config, "DEFAULT", str(onnx_path)) elif model_path_style == "positional-runtime": - engine = MBLT_Engine( + # Keep this legacy positional-runtime invocation untyped: its argument + # order is normalized at runtime by ``MBLT_Engine``. + engine = cast(Any, MBLT_Engine)( model_config, "DEFAULT", str(onnx_path), @@ -2390,6 +2395,30 @@ def test_scale_masks_matches_ultralytics_rounding() -> None: assert float(scaled[:, -1, :].max()) == pytest.approx(1.0) +@pytest.mark.parametrize("shape", [(640, 640), (481, 640)]) +def test_roi_prototype_masking_preserves_full_mask_result( + shape: tuple[int, int], +) -> None: + """ROI masking must retain the conventional path's binary mask exactly.""" + + generator = torch.Generator().manual_seed(42) + proto = torch.randn((32, 160, 160), generator=generator) + coefficients = torch.randn((40, 32), generator=generator) + # Small, fractional boxes activate the ROI path and exercise crop bounds. + starts = torch.rand((40, 2), generator=generator) + starts[:, 0] *= shape[1] - 80 + starts[:, 1] *= shape[0] - 80 + boxes = torch.cat((starts + 0.25, starts + 48.75), dim=1) + + channels, mask_h, mask_w = proto.shape + full = (coefficients @ proto.float().view(channels, -1)).view(-1, mask_h, mask_w) + expected = crop_mask(scale_masks(full, shape), boxes).gt_(0.0) + + actual = process_mask_upsample(proto, coefficients, boxes, shape) + + assert torch.equal(actual, expected) + + def test_preprocess_with_metadata_returns_letterbox_ratio_pad() -> None: """Expose exact LetterBox ratio and integer padding for validation scaling.""" From 1c33e9cce749a569f96fd3511461d2e2388975a6 Mon Sep 17 00:00:00 2001 From: jinman Date: Wed, 12 Aug 2026 13:58:26 +0900 Subject: [PATCH 11/48] Refactor dataset organization and evaluation logic - Updated dataset organization functions to change default output directories from ~/.mblt_vision to ~/.mblt_model_zoo. - Enhanced validation in the calibration dataset preparation to reject non-finite values. - Improved error handling for ONNX model path resolution and added checks for explicit MXQ paths. - Added tests for validating calibration datasets and ensuring proper handling of difficult regions in DOTAv1 evaluation. - Refactored plotting functions to maintain raw output coordinates and ensure correct color format conversion. - Introduced new tests for engine initialization to verify proper disposal of backends on setup failures. --- .agents/skills/mblt-vision/SKILL.md | 2 + AGENTS.md | 2 + README.md | 2 +- benchmark/README.md | 6 +- benchmark/benchmark_vision_models.py | 25 +++++ benchmark/organize_ade20k.py | 9 +- benchmark/organize_cityscapes.py | 9 +- benchmark/organize_coco.py | 9 +- benchmark/organize_dotav1.py | 9 +- benchmark/organize_imagenet.py | 9 +- benchmark/organize_nyu_depth.py | 9 +- benchmark/organize_widerface.py | 9 +- compile/README.md | 10 +- compile/make_ade20k_subset.py | 7 ++ compile/make_cityscapes_subset.py | 7 ++ compile/make_coco_subset.py | 7 ++ compile/make_dotav1_subset.py | 7 ++ compile/make_imagenet_subset.py | 7 ++ compile/make_nyu_depth_subset.py | 7 ++ compile/make_widerface_subset.py | 7 ++ compile/vision_model_compile.py | 7 ++ mblt_vision/compile/vision.py | 9 ++ mblt_vision/utils/datasets/organizer.py | 27 +++-- mblt_vision/utils/evaluation/eval_dota.py | 127 ++++++++++++++++------ mblt_vision/utils/results.py | 17 +-- mblt_vision/wrapper.py | 83 ++++++++------ tests/test_benchmark_vision.py | 58 ++++++++++ tests/test_compile_vision.py | 33 ++++++ tests/test_dataset_organizer.py | 49 +++++++++ tests/test_eval_dota.py | 87 +++++++++++++++ tests/test_results.py | 87 +++++++++++++++ tests/test_wrapper.py | 118 ++++++++++++++++++++ 32 files changed, 756 insertions(+), 105 deletions(-) create mode 100644 tests/test_eval_dota.py diff --git a/.agents/skills/mblt-vision/SKILL.md b/.agents/skills/mblt-vision/SKILL.md index 63b5245..1da33c1 100644 --- a/.agents/skills/mblt-vision/SKILL.md +++ b/.agents/skills/mblt-vision/SKILL.md @@ -60,6 +60,8 @@ description: >- - Keep all executable benchmark scripts directly in `benchmark/`; reusable reporting helpers belong in `mblt_vision.benchmark`. - Keep all executable compile scripts and the compile guide directly in `compile/`. +- Use `~/.mblt_model_zoo` as the shared artifact and dataset cache root. Keep organizer defaults, + dataset registry YAMLs, compilation defaults, and documented commands aligned to it. - For every significant package change (public API, CLI, runtime/dependency, artifact layout, or tooling structure), update `AGENTS.md`, this canonical skill, the Claude skill entry point when its workflow changes, and the relevant README in the same change. diff --git a/AGENTS.md b/AGENTS.md index 69fa1e5..deecb55 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -97,6 +97,8 @@ The current ownership boundary is deliberate: directly under `benchmark/`. Put reusable benchmark reporting helpers in `mblt_vision.benchmark`. - Keep executable compilation helpers and their guide directly under `compile/`. Do not recreate a Vision-only subdirectory under either tooling root. +- Use `~/.mblt_model_zoo` as the shared artifact and dataset cache root. Organizer defaults, + dataset registry YAMLs, compilation defaults, and documented commands must agree on that root. - Benchmark and compilation commands are development tools; do not package them as public CLI entry points without an explicit product decision. The supported end-user command is `mblt-vision`. diff --git a/README.md b/README.md index 688ed6a..b21c357 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ typed postprocessing results for image classification, depth estimation, face an object detection, OBB, instance and semantic segmentation, and pose estimation. -Version `0.0.1` is the initial standalone release. +Version `0.0.0` is the initial standalone release. ## Installation diff --git a/benchmark/README.md b/benchmark/README.md index d70e1c7..d3dc3dd 100644 --- a/benchmark/README.md +++ b/benchmark/README.md @@ -36,11 +36,13 @@ Use the unified runner for every Vision task. It chooses the evaluator from python benchmark/benchmark_vision_models.py \ --models ResNet50 \ --task image_classification \ - --data-path ~/.mblt_vision/datasets/imagenet + --target-device aries-rb \ + --data-path ~/.mblt_model_zoo/datasets/imagenet ``` Use `--framework onnx` for ONNX Runtime, `--core-mode all` to compare supported -MXQ core modes, and `--fail-fast` to stop on the first failed target. Compare +MXQ core modes, `--target-device regulus-ra` or `regulus-rb` for the corresponding +Regulus board artifact, and `--fail-fast` to stop on the first failed target. Compare completed runs with: ```bash diff --git a/benchmark/benchmark_vision_models.py b/benchmark/benchmark_vision_models.py index f62bac3..fb5f54f 100644 --- a/benchmark/benchmark_vision_models.py +++ b/benchmark/benchmark_vision_models.py @@ -28,10 +28,12 @@ ) from mblt_vision._model_paths import resolve_framework from mblt_vision._tasks import VISION_TASKS, normalize_vision_task +from mblt_npu import normalize_target_device CoreMode = Literal["single", "multi", "global4", "global8"] CORE_MODES: tuple[CoreMode, ...] = ("single", "multi", "global4", "global8") TASK_CHOICES = VISION_TASKS +SUPPORTED_TARGET_DEVICES = frozenset({"aries-rb", "regulus-ra", "regulus-rb"}) def parse_unit_interval(value: str) -> float: @@ -69,6 +71,21 @@ def _parse_task(value: str) -> str: raise argparse.ArgumentTypeError(str(exc)) from exc +def _parse_target_device(value: str) -> str: + """Normalize and validate a benchmark target board.""" + + try: + target_device = normalize_target_device(value) + except TypeError as exc: + raise argparse.ArgumentTypeError(str(exc)) from exc + if target_device not in SUPPORTED_TARGET_DEVICES: + raise argparse.ArgumentTypeError( + f"unsupported target device {value!r}; expected one of " + f"{sorted(SUPPORTED_TARGET_DEVICES)}." + ) + return target_device + + def _parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace: """Parse command-line arguments for the standardized vision benchmark. @@ -108,6 +125,12 @@ def _parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace: parser.add_argument( "--framework", choices=["mxq", "onnx"], help="Explicit inference framework." ) + parser.add_argument( + "--target-device", + type=_parse_target_device, + default="aries-rb", + help="NPU board: aries-rb, regulus-ra, or regulus-rb (legacy aries/regulus accepted).", + ) parser.add_argument( "--core-mode", default="global8", @@ -316,6 +339,7 @@ def _run_target( "core_mode": core_mode, "task": args.task, "batch_size": args.batch_size, + "target_device": args.target_device, "status": "error", } model = None @@ -329,6 +353,7 @@ def _run_target( "onnx_path": args.onnx_path, "framework": args.framework, "dev_no": args.dev_no, + "target_device": args.target_device, } if core_mode != "onnx": engine_kwargs["core_mode"] = core_mode diff --git a/benchmark/organize_ade20k.py b/benchmark/organize_ade20k.py index 55cada6..82cfd8a 100644 --- a/benchmark/organize_ade20k.py +++ b/benchmark/organize_ade20k.py @@ -2,6 +2,13 @@ import argparse import os +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.utils.datasets import organize_ade20k from mblt_vision.utils.datasets.organizer import ADE20K_URL @@ -15,7 +22,7 @@ ) parser.add_argument( "--output-dir", - default=os.path.expanduser("~/.mblt_vision/datasets/ADEChallengeData2016"), + default=os.path.expanduser("~/.mblt_model_zoo/datasets/ADEChallengeData2016"), help="Path to the organized validation dataset", ) args = parser.parse_args() diff --git a/benchmark/organize_cityscapes.py b/benchmark/organize_cityscapes.py index 74a9840..7051d79 100644 --- a/benchmark/organize_cityscapes.py +++ b/benchmark/organize_cityscapes.py @@ -3,6 +3,13 @@ from __future__ import annotations import argparse +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.utils.datasets import organize_cityscapes @@ -25,7 +32,7 @@ def main() -> None: ) parser.add_argument( "--output-dir", - default="~/.mblt_vision/datasets/cityscapes", + default="~/.mblt_model_zoo/datasets/cityscapes", help="Destination for the flat images/ and annotations/ directories", ) args = parser.parse_args() diff --git a/benchmark/organize_coco.py b/benchmark/organize_coco.py index abe1ab7..adb4601 100644 --- a/benchmark/organize_coco.py +++ b/benchmark/organize_coco.py @@ -7,6 +7,13 @@ import argparse import os +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.utils.datasets import organize_coco @@ -32,7 +39,7 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_vision/datasets/coco"), + default=os.path.expanduser("~/.mblt_model_zoo/datasets/coco"), help="Path to the directory to save the organized dataset", ) args = parser.parse_args() diff --git a/benchmark/organize_dotav1.py b/benchmark/organize_dotav1.py index 16f0c56..5537d8e 100644 --- a/benchmark/organize_dotav1.py +++ b/benchmark/organize_dotav1.py @@ -8,6 +8,13 @@ import argparse import os +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.datasets import get_dataset_config from mblt_vision.utils.datasets import organize_dotav1 @@ -24,7 +31,7 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_vision/datasets/dotav1"), + default=os.path.expanduser("~/.mblt_model_zoo/datasets/dotav1"), help="Path to the directory to save the organized dataset", ) args = parser.parse_args() diff --git a/benchmark/organize_imagenet.py b/benchmark/organize_imagenet.py index 8e7c001..65187ea 100644 --- a/benchmark/organize_imagenet.py +++ b/benchmark/organize_imagenet.py @@ -7,6 +7,13 @@ import argparse import os +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.utils.datasets import organize_imagenet @@ -33,7 +40,7 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_vision/datasets/imagenet"), + default=os.path.expanduser("~/.mblt_model_zoo/datasets/imagenet"), help="Path to the directory to save the organized dataset", ) args = parser.parse_args() diff --git a/benchmark/organize_nyu_depth.py b/benchmark/organize_nyu_depth.py index 2073004..6b41622 100644 --- a/benchmark/organize_nyu_depth.py +++ b/benchmark/organize_nyu_depth.py @@ -6,6 +6,13 @@ import argparse import os +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.utils.datasets import organize_nyu_depth from mblt_vision.utils.datasets.organizer import NYU_DEPTH_URL @@ -21,7 +28,7 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_vision/datasets/nyu-depth"), + default=os.path.expanduser("~/.mblt_model_zoo/datasets/nyu-depth"), help="Path to the directory to save the organized dataset", ) args = parser.parse_args() diff --git a/benchmark/organize_widerface.py b/benchmark/organize_widerface.py index b44e369..701b763 100644 --- a/benchmark/organize_widerface.py +++ b/benchmark/organize_widerface.py @@ -7,6 +7,13 @@ import argparse import os +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.utils.datasets import organize_widerface @@ -30,7 +37,7 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_vision/datasets/widerface"), + default=os.path.expanduser("~/.mblt_model_zoo/datasets/widerface"), help="Path to the directory to save the organized dataset", ) args = parser.parse_args() diff --git a/compile/README.md b/compile/README.md index 6272f73..c9f1350 100644 --- a/compile/README.md +++ b/compile/README.md @@ -28,7 +28,7 @@ from mblt_vision.compile.vision import compile_vision_model output_path = compile_vision_model( "alexnet", target_device="aries-rb", - data_path="~/.mblt_vision/datasets/imagenet", + data_path="~/.mblt_model_zoo/datasets/imagenet", save_path="./alexnet.mxq", ) print(output_path) @@ -40,7 +40,7 @@ print(output_path) mblt-vision compile \ --model-cls alexnet \ --target-device aries-rb \ - --data-path ~/.mblt_vision/datasets/imagenet \ + --data-path ~/.mblt_model_zoo/datasets/imagenet \ --save-path ./alexnet.mxq ``` @@ -55,8 +55,8 @@ mblt-vision compile --model-cls alexnet --target-device aries-rb --calib-data-pa Use `--model-type` for a non-default YAML variant and `--model-path` or `--onnx-path` to prefer a local ONNX file. If that path is omitted or does not exist, the configured Hugging Face repository supplies the ONNX artifact. Downloaded ONNX files and compiled outputs use -`~/.mblt_vision`; without `--save-path`, the compiler writes -`~/.mblt_vision/.mxq`. +`~/.mblt_model_zoo`; without `--save-path`, the compiler writes +`~/.mblt_model_zoo/.mxq`. `target_device` / `--target-device` is required: choose `aries-rb`, `regulus-ra`, or `regulus-rb` to compile an artifact for that board. @@ -92,7 +92,7 @@ Compilation maps model tasks to the packaged dataset registry: `--data-path` is an organized dataset root. An existing ready layout is reused; otherwise the registry-backed organizer downloads and prepares the dataset. When no path is supplied, the -registry default under `~/.mblt_vision/datasets` is used. +registry default under `~/.mblt_model_zoo/datasets` is used. NYU Depth and ADE20K use their registry download URLs. Cityscapes requires the manually downloaded official `leftImg8bit_trainvaltest.zip` and `gtFine_trainvaltest.zip` archives; place both inside the diff --git a/compile/make_ade20k_subset.py b/compile/make_ade20k_subset.py index 8823590..43df262 100644 --- a/compile/make_ade20k_subset.py +++ b/compile/make_ade20k_subset.py @@ -3,6 +3,13 @@ from __future__ import annotations import argparse +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.compile.vision import make_calibration_subset diff --git a/compile/make_cityscapes_subset.py b/compile/make_cityscapes_subset.py index 4efd6c9..eeaae62 100644 --- a/compile/make_cityscapes_subset.py +++ b/compile/make_cityscapes_subset.py @@ -3,6 +3,13 @@ from __future__ import annotations import argparse +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.compile.vision import make_calibration_subset diff --git a/compile/make_coco_subset.py b/compile/make_coco_subset.py index b936f58..c6c1e2d 100644 --- a/compile/make_coco_subset.py +++ b/compile/make_coco_subset.py @@ -3,6 +3,13 @@ from __future__ import annotations import argparse +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.compile.vision import make_calibration_subset diff --git a/compile/make_dotav1_subset.py b/compile/make_dotav1_subset.py index 730496c..5ff5b77 100644 --- a/compile/make_dotav1_subset.py +++ b/compile/make_dotav1_subset.py @@ -3,6 +3,13 @@ from __future__ import annotations import argparse +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.compile.vision import make_calibration_subset diff --git a/compile/make_imagenet_subset.py b/compile/make_imagenet_subset.py index f70ffd6..e108e5b 100644 --- a/compile/make_imagenet_subset.py +++ b/compile/make_imagenet_subset.py @@ -3,6 +3,13 @@ from __future__ import annotations import argparse +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.compile.vision import make_calibration_subset diff --git a/compile/make_nyu_depth_subset.py b/compile/make_nyu_depth_subset.py index 6ae128b..04e6d25 100644 --- a/compile/make_nyu_depth_subset.py +++ b/compile/make_nyu_depth_subset.py @@ -3,6 +3,13 @@ from __future__ import annotations import argparse +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.compile.vision import make_calibration_subset diff --git a/compile/make_widerface_subset.py b/compile/make_widerface_subset.py index 977a244..1344aee 100644 --- a/compile/make_widerface_subset.py +++ b/compile/make_widerface_subset.py @@ -3,6 +3,13 @@ from __future__ import annotations import argparse +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.compile.vision import make_calibration_subset diff --git a/compile/vision_model_compile.py b/compile/vision_model_compile.py index 0acb382..da48c8b 100644 --- a/compile/vision_model_compile.py +++ b/compile/vision_model_compile.py @@ -3,6 +3,13 @@ from __future__ import annotations import argparse +import sys +from pathlib import Path + +# ruff: noqa: E402 +_REPO_ROOT = Path(__file__).resolve().parents[1] +if str(_REPO_ROOT) not in sys.path: + sys.path.insert(0, str(_REPO_ROOT)) from mblt_vision.compile.vision import compile_vision_model diff --git a/mblt_vision/compile/vision.py b/mblt_vision/compile/vision.py index 19d1b52..8ca6d74 100644 --- a/mblt_vision/compile/vision.py +++ b/mblt_vision/compile/vision.py @@ -549,6 +549,10 @@ def validate_calibration_dataset(calib_data_path: str | Path) -> Path: raise ValueError( f"Calibration tensor {array_path} must use float32; got {array.dtype}." ) + if not np.isfinite(array).all(): + raise ValueError( + f"Calibration tensor {array_path} must contain only finite values." + ) if not array.flags.c_contiguous: raise ValueError(f"Calibration tensor {array_path} must be C-contiguous.") return root @@ -786,6 +790,11 @@ def _resolve_compile_onnx_path( if model_path is not None: local_path = Path(model_path).expanduser() if local_path.is_file(): + if local_path.suffix.lower() != ".onnx": + raise ValueError( + "Compilation requires an ONNX model; " + f"local model path must end with `.onnx`, got {local_path}." + ) return local_path.resolve() configured_path = Path(str(file_cfg.get("onnx_path", ""))).expanduser() if configured_path.is_file(): diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index e1205df..5dd9b18 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -433,7 +433,7 @@ def construct_imagenet(image_dir: str, xml_dir: str, output_dir: str) -> None: def organize_imagenet( image_dir: str, xml_dir: str, - output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/imagenet"), + output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/imagenet"), ) -> None: """Organizes the ImageNet dataset, unpacking archives if necessary. @@ -441,7 +441,7 @@ def organize_imagenet( image_dir (str): Path or URL to the image directory or archive (.tar). xml_dir (str): Path or URL to the XML directory or archive (.tgz). output_dir (str, optional): Directory to store the organized dataset. - Defaults to ~/.mblt_vision/datasets/imagenet. + Defaults to ~/.mblt_model_zoo/datasets/imagenet. """ with TemporaryDirectory() as temp_dir: local_image_dir, local_xml_dir = _resolve_sources( @@ -508,7 +508,7 @@ def construct_coco(image_dir: str, annotation_dir: str, output_dir: str) -> None def organize_coco( image_dir: str, annotation_dir: str, - output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/coco"), + output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/coco"), ) -> None: """Organizes the COCO dataset, unpacking archives if necessary. @@ -516,7 +516,7 @@ def organize_coco( image_dir (str): Path or URL to the image zip file or directory. annotation_dir (str): Path or URL to the annotation zip file or directory. output_dir (str, optional): Directory to store the organized dataset. - Defaults to ~/.mblt_vision/datasets/coco. + Defaults to ~/.mblt_model_zoo/datasets/coco. """ with TemporaryDirectory() as temp_dir: local_image_dir, local_annotation_dir = _resolve_sources( @@ -577,7 +577,7 @@ def construct_widerface(image_dir: str, annotation_dir: str, output_dir: str) -> def organize_widerface( image_dir: str, annotation_dir: str, - output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/widerface"), + output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/widerface"), ) -> None: """Organizes the WiderFace dataset, unpacking archives if necessary. @@ -585,7 +585,7 @@ def organize_widerface( image_dir (str): Path or URL to the image zip file or directory. annotation_dir (str): Path or URL to the annotation zip file or directory. output_dir (str, optional): Directory to store the organized dataset. - Defaults to ~/.mblt_vision/datasets/widerface. + Defaults to ~/.mblt_model_zoo/datasets/widerface. """ with TemporaryDirectory() as temp_dir: local_image_dir, local_annotation_dir = _resolve_sources( @@ -808,7 +808,7 @@ def construct_nyu_depth(dataset_dir: str, output_dir: str) -> None: def organize_nyu_depth( dataset_path: str = NYU_DEPTH_URL, - output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/nyu-depth"), + output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/nyu-depth"), ) -> None: """Organizes NYU Depth, downloading and unpacking an archive when necessary. @@ -949,7 +949,7 @@ def construct_ade20k(dataset_dir: str, output_dir: str) -> None: def organize_ade20k( dataset_path: str = ADE20K_URL, output_dir: str = os.path.expanduser( - "~/.mblt_vision/datasets/ADEChallengeData2016" + "~/.mblt_model_zoo/datasets/ADEChallengeData2016" ), ) -> None: """Organizes ADE20K validation data, downloading and unpacking when necessary.""" @@ -1054,7 +1054,7 @@ def _collect_cityscapes_validation_files( def organize_cityscapes( image_dir: str, annotation_dir: str, - output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/cityscapes"), + output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/cityscapes"), ) -> None: """Install official Cityscapes validation archives as lossless flat PNG pairs. @@ -1339,10 +1339,6 @@ def _write_dotav1_yolo_labels( or fields[0].startswith("gsd:") ): continue - # Official DOTAv1 labels use ``1`` for difficult objects. Keep ``2`` - # ignored for compatibility with previously supported label exports. - if fields[9] in {"1", "2"}: - continue class_name = fields[8] if class_name not in DOTAV1_CLASS_TO_IDX: raise ValueError( @@ -1356,6 +1352,9 @@ def _write_dotav1_yolo_labels( converted_lines.append( f"{DOTAV1_CLASS_TO_IDX[class_name]} " + " ".join(f"{coordinate:.8g}" for coordinate in normalized) + # The trailing flag is normalized-label metadata, not a YOLO OBB + # coordinate. It preserves official difficult regions for evaluation. + + f" {int(fields[9] in {'1', '2'})}" ) with open(output_path, "w", encoding="utf-8") as output_file: output_file.write("\n".join(converted_lines)) @@ -1539,7 +1538,7 @@ def construct_dotav1(dataset_dir: str, output_dir: str) -> None: def organize_dotav1( dataset_path: str, - output_dir: str = os.path.expanduser("~/.mblt_vision/datasets/dotav1"), + output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/dotav1"), ) -> None: """Organizes a validation-only DOTAv1 dataset. diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 698ef82..bc20662 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -72,7 +72,8 @@ def _load_ground_truths( dataset: Dataset containing image IDs and image paths. Returns: - Mapping from image ID to tensors for classes, polygons, and ``xywhr`` boxes. + Mapping from image ID to tensors for positive and ignored classes, polygons, + and ``xywhr`` boxes. """ label_dir = Path(data_path) / "labels" / "val" original_label_dir = Path(data_path) / "labels" / "val_original" @@ -84,12 +85,22 @@ def _load_ground_truths( original_label_path = original_label_dir / f"{image_id}.txt" classes = [] polygons = [] + ignore_classes = [] + ignore_polygons = [] if label_path.is_file(): - for line in label_path.read_text(encoding="utf-8").splitlines(): + for line_number, line in enumerate( + label_path.read_text(encoding="utf-8").splitlines(), start=1 + ): parts = line.split() - if len(parts) < 9: + if not parts: continue + if len(parts) < 9: + raise ValueError( + "Malformed normalized DOTAv1 annotation at " + f"{label_path}:{line_number}: expected at least 9 fields, " + f"got {len(parts)}." + ) cls = _label_to_index(parts[0]) if cls >= get_dotav1_class_num(): raise ValueError( @@ -101,17 +112,17 @@ def _load_ground_truths( if coords.numel() and float(coords.max()) <= 1.5: coords[:, 0] *= width coords[:, 1] *= height - classes.append(cls) - polygons.append(coords) + if len(parts) >= 10 and parts[9] in {"1", "2"}: + ignore_classes.append(cls) + ignore_polygons.append(coords) + else: + classes.append(cls) + polygons.append(coords) elif original_label_path.is_file(): for line in original_label_path.read_text(encoding="utf-8").splitlines(): parts = line.split() if len(parts) < 9: continue - # Official DOTAv1 labels use ``1`` for difficult objects. Keep ``2`` - # ignored for compatibility with previously supported label exports. - if len(parts) >= 10 and parts[9] in {"1", "2"}: - continue cls = _label_to_index(parts[8]) if cls >= get_dotav1_class_num(): raise ValueError( @@ -120,8 +131,12 @@ def _load_ground_truths( coords = torch.tensor( [float(value) for value in parts[:8]], dtype=torch.float32 ).reshape(4, 2) - classes.append(cls) - polygons.append(coords) + if len(parts) >= 10 and parts[9] in {"1", "2"}: + ignore_classes.append(cls) + ignore_polygons.append(coords) + else: + classes.append(cls) + polygons.append(coords) polygon_tensor = ( torch.stack(polygons).to(torch.float32) @@ -134,10 +149,24 @@ def _load_ground_truths( else: boxes = torch.zeros((0, 5), dtype=torch.float32) + ignore_polygon_tensor = ( + torch.stack(ignore_polygons).to(torch.float32) + if ignore_polygons + else torch.zeros((0, 4, 2), dtype=torch.float32) + ) + if ignore_polygon_tensor.numel(): + ignored_xywhr = xyxyxyxy2xywhr(ignore_polygon_tensor) + ignore_boxes = cast(torch.Tensor, ignored_xywhr).to(torch.float32) + else: + ignore_boxes = torch.zeros((0, 5), dtype=torch.float32) + ground_truths[image_id] = { "cls": torch.tensor(classes, dtype=torch.int64), "polygons": polygon_tensor, "bboxes": boxes, + "ignore_cls": torch.tensor(ignore_classes, dtype=torch.int64), + "ignore_polygons": ignore_polygon_tensor, + "ignore_bboxes": ignore_boxes, } return ground_truths @@ -204,6 +233,7 @@ def _compute_ap( def _ap_per_class( tp: np.ndarray, + ignore: np.ndarray, conf: np.ndarray, pred_cls: np.ndarray, target_cls: np.ndarray, @@ -216,6 +246,7 @@ def _ap_per_class( order = np.argsort(-conf) tp = tp[order] + ignore = ignore[order] conf = conf[order] pred_cls = pred_cls[order] @@ -224,18 +255,20 @@ def _ap_per_class( for class_index, class_id in enumerate(unique_classes): pred_mask = pred_cls == class_id num_labels = target_count[class_index] - num_predictions = pred_mask.sum() - if num_predictions == 0 or num_labels == 0: + if not pred_mask.any() or num_labels == 0: continue - false_positive = (1 - tp[pred_mask]).cumsum(0) - true_positive = tp[pred_mask].cumsum(0) - recall = true_positive / (num_labels + eps) - precision = true_positive / (true_positive + false_positive + eps) + class_tp = tp[pred_mask] + class_ignore = ignore[pred_mask] for iou_index in range(tp.shape[1]): - ap[class_index, iou_index], _, _ = _compute_ap( - recall[:, iou_index], precision[:, iou_index] - ) + keep = ~class_ignore[:, iou_index] + if not keep.any(): + continue + true_positive = class_tp[keep, iou_index].cumsum(0) + false_positive = (1 - class_tp[keep, iou_index]).cumsum(0) + recall = true_positive / (num_labels + eps) + precision = true_positive / (true_positive + false_positive + eps) + ap[class_index, iou_index], _, _ = _compute_ap(recall, precision) return ap @@ -267,7 +300,7 @@ def _match_predictions( def _empty_stats() -> dict[str, list[np.ndarray]]: """Create an empty DOTAv1 metric statistics accumulator.""" - return {"tp": [], "conf": [], "pred_cls": [], "target_cls": []} + return {"tp": [], "ignore": [], "conf": [], "pred_cls": [], "target_cls": []} def _append_stats( @@ -319,21 +352,29 @@ def _ground_truth_to_input_space( ratio_pad: RatioPad | None, ) -> dict[str, torch.Tensor]: """Transform original-image DOTAv1 polygons to letterboxed ``xywhr`` boxes.""" - classes = ground_truth["cls"] - polygons = ground_truth.get("polygons") - if polygons is None: - return {"cls": classes, "bboxes": ground_truth["bboxes"]} - if polygons.numel() == 0: - return {"cls": classes, "bboxes": torch.zeros((0, 5), dtype=torch.float32)} - gain, pad = _ratio_pad_for_shape(input_shape, org_shape, ratio_pad) - transformed = polygons.clone().to(torch.float32) - transformed[..., 0] = transformed[..., 0] * gain + pad[0] - transformed[..., 1] = transformed[..., 1] * gain + pad[1] - transformed_boxes = xyxyxyxy2xywhr(transformed) + + def transform(polygons: torch.Tensor | None, boxes: torch.Tensor) -> torch.Tensor: + if polygons is None: + return boxes + if polygons.numel() == 0: + return torch.zeros((0, 5), dtype=torch.float32) + transformed = polygons.clone().to(torch.float32) + transformed[..., 0] = transformed[..., 0] * gain + pad[0] + transformed[..., 1] = transformed[..., 1] * gain + pad[1] + return cast(torch.Tensor, xyxyxyxy2xywhr(transformed)).to(torch.float32) + + transformed_boxes = transform(ground_truth.get("polygons"), ground_truth["bboxes"]) + ignore_classes = ground_truth.get("ignore_cls", torch.zeros(0, dtype=torch.int64)) + ignore_boxes = transform( + ground_truth.get("ignore_polygons"), + ground_truth.get("ignore_bboxes", torch.zeros((0, 5), dtype=torch.float32)), + ) return { - "cls": classes, - "bboxes": cast(torch.Tensor, transformed_boxes).to(torch.float32), + "cls": ground_truth["cls"], + "bboxes": transformed_boxes, + "ignore_cls": ignore_classes, + "ignore_bboxes": ignore_boxes, } @@ -351,8 +392,19 @@ def _process_image_stats( else: iou = batch_probiou(target["bboxes"], predictions["bboxes"]) true_positive = _match_predictions(predictions["cls"], target["cls"], iou, iouv) + ignore = np.zeros_like(true_positive) + ignore_classes = target.get("ignore_cls", torch.zeros(0, dtype=torch.int64)) + ignore_boxes = target.get("ignore_bboxes", torch.zeros((0, 5), dtype=torch.float32)) + if ignore_classes.numel() and predictions["cls"].numel(): + ignored_iou = batch_probiou(ignore_boxes, predictions["bboxes"]) + same_class = ignore_classes[:, None] == predictions["cls"] + ignored_matches = ( + (ignored_iou[:, :, None] >= iouv[None, None, :]) & same_class[:, :, None] + ).any(dim=0) + ignore = ignored_matches.cpu().numpy() & ~true_positive return { "tp": true_positive, + "ignore": ignore, "conf": predictions["conf"].cpu().numpy(), "pred_cls": predictions["cls"].cpu().numpy(), "target_cls": target_cls, @@ -374,6 +426,11 @@ def _evaluate_stats(stats: dict[str, list[np.ndarray]], niou: int = 10) -> DOTAR if stats["tp"] else np.zeros((0, niou), dtype=bool) ) + ignore = ( + np.concatenate(stats["ignore"], 0) + if stats["ignore"] + else np.zeros((0, niou), dtype=bool) + ) conf = ( np.concatenate(stats["conf"], 0) if stats["conf"] @@ -384,7 +441,7 @@ def _evaluate_stats(stats: dict[str, list[np.ndarray]], niou: int = 10) -> DOTAR if stats["pred_cls"] else np.zeros(0, dtype=np.float64) ) - ap = _ap_per_class(tp, conf, pred_cls, target_cls) + ap = _ap_per_class(tp, ignore, conf, pred_cls, target_cls) if ap.size == 0: return DOTAResult(map5095=0.0, map50=0.0) return DOTAResult(map5095=float(ap.mean()), map50=float(ap[:, 0].mean())) diff --git a/mblt_vision/utils/results.py b/mblt_vision/utils/results.py index c344936..59f18d9 100644 --- a/mblt_vision/utils/results.py +++ b/mblt_vision/utils/results.py @@ -99,6 +99,7 @@ def _read_image( raise ValueError( f"Image arrays must have HWC shape with three channels, got {source_img.shape}." ) + source_img = cv2.cvtColor(source_img, cv2.COLOR_RGB2BGR) elif isinstance(source_path, (str, Path)): image_path = Path(source_path) if not image_path.is_file(): @@ -510,7 +511,7 @@ def _plot_object_detection( self.scores = box_cls[:, 4] self.boxes = scale_boxes( img1_shape, - box_cls[:, :4], + box_cls[:, :4].clone(), img0_shape, ) boxes = self.boxes @@ -602,7 +603,7 @@ def _plot_pose_estimation( img0_shape: tuple[int, int] = (img.shape[0], img.shape[1]) self.kpts = scale_coords( self.pre_cfg["LetterBox"]["img_size"], - box_cls[:, 6:].reshape(-1, 17, 3), + box_cls[:, 6:].reshape(-1, 17, 3).clone(), img0_shape, ) kpts = self.kpts @@ -611,8 +612,8 @@ def _plot_pose_estimation( for kpt in kpts: for i, (x, y, v) in enumerate(kpt): color_k = get_coco_keypoint_palette(i) - # if v < self.conf_thres: - # continue + if float(v) < self.conf_thres: + continue cv2.circle( img, (int(x), int(y)), @@ -622,12 +623,12 @@ def _plot_pose_estimation( lineType=cv2.LINE_AA, ) for j, sk in enumerate(get_coco_pose_skeleton()): + conf1 = float(kpt[sk[0] - 1, 2]) + conf2 = float(kpt[sk[1] - 1, 2]) + if conf1 < self.conf_thres or conf2 < self.conf_thres: + continue pos1 = (int(kpt[sk[0] - 1, 0]), int(kpt[sk[0] - 1, 1])) pos2 = (int(kpt[sk[1] - 1, 0]), int(kpt[sk[1] - 1, 1])) - # conf1 = kpt[sk[0] - 1, 2] - # conf2 = kpt[sk[1] - 1, 2] - # if conf1 < self.conf_thres or conf2 < self.conf_thres: - # continue cv2.line( img, pos1, diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index 31487a0..b4ba5b9 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -391,6 +391,11 @@ def __init__( _mxq_path_passed = bool(mxq_path) _onnx_path_passed = bool(onnx_path) + if _mxq_path_passed and not os.path.isfile(mxq_path): + raise FileNotFoundError( + "Explicit MXQ model path does not exist: " + f"{mxq_path}. Remove model_path/mxq_path to download the configured artifact." + ) _dev_no_passed = dev_no is not None _core_mode_passed = core_mode is not None _target_cores_passed = target_cores is not None @@ -448,41 +453,53 @@ def __init__( self._onnx_model: ONNXBackend | None = None self._onnx_session: Any = None - if self.framework == "onnx": - ort = _load_onnxruntime() - resolved_onnx_path = self.file_cfg.get("onnx_path") - if not resolved_onnx_path: - raise RuntimeError( - f"ONNX path not resolved for model {model_cls}. Make sure the model repository has an ONNX file." - ) - if not os.path.isfile(resolved_onnx_path): - raise FileNotFoundError(f"ONNX file not found at: {resolved_onnx_path}") + try: + if self.framework == "onnx": + ort = _load_onnxruntime() + resolved_onnx_path = self.file_cfg.get("onnx_path") + if not resolved_onnx_path: + raise RuntimeError( + f"ONNX path not resolved for model {model_cls}. Make sure the model repository has an ONNX file." + ) + if not os.path.isfile(resolved_onnx_path): + raise FileNotFoundError( + f"ONNX file not found at: {resolved_onnx_path}" + ) - providers = _resolve_onnx_providers(ort, onnx_providers) - onnx_model = ONNXBackend( - resolved_onnx_path, providers=providers, ort_module=ort + providers = _resolve_onnx_providers(ort, onnx_providers) + onnx_model = ONNXBackend( + resolved_onnx_path, providers=providers, ort_module=ort + ) + self._onnx_model = onnx_model + onnx_model.create() + self._onnx_session = onnx_model.session + self.model = self._onnx_session + self.input_name = self._onnx_session.get_inputs()[0].name + self.output_names = [o.name for o in self._onnx_session.get_outputs()] + else: + mxq_model = MobilintNPUBackend(**self._mxq_backend_kwargs()) + self._mxq_model = mxq_model + self.model = mxq_model + mxq_model.create() + mxq_model.launch() + + if mxq_model.get_dtype() == "DataType.Uint8": + self.pre_cfg.pop("Normalize", None) + + self.preprocessor = build_preprocess(self.pre_cfg) + self.postprocessor = build_postprocess( + self.pre_cfg, self.post_cfg, **self.postprocess_kwargs ) - onnx_model.create() - self._onnx_model = onnx_model - self._onnx_session = onnx_model.session - self.model = self._onnx_session - self.input_name = self._onnx_session.get_inputs()[0].name - self.output_names = [o.name for o in self._onnx_session.get_outputs()] - else: - mxq_model = MobilintNPUBackend(**self._mxq_backend_kwargs()) - self._mxq_model = mxq_model - self.model = mxq_model - mxq_model.create() - mxq_model.launch() - - if mxq_model.get_dtype() == "DataType.Uint8": - self.pre_cfg.pop("Normalize", None) - - self.preprocessor = build_preprocess(self.pre_cfg) - self.postprocessor = build_postprocess( - self.pre_cfg, self.post_cfg, **self.postprocess_kwargs - ) - self.device = torch.device("cpu") + self.device = torch.device("cpu") + except Exception: + for backend in (self._mxq_model, self._onnx_model): + if backend is None: + continue + try: + backend.dispose() + except Exception: + pass + raise def _mxq_backend_kwargs(self) -> dict[str, Any]: """Builds the MXQ backend kwargs from the resolved file config.""" diff --git a/tests/test_benchmark_vision.py b/tests/test_benchmark_vision.py index e114fad..c9ac659 100644 --- a/tests/test_benchmark_vision.py +++ b/tests/test_benchmark_vision.py @@ -198,6 +198,64 @@ def fake_evaluate( assert rows[0]["error"] == "TypeError: Unsupported model output" +def test_benchmark_forwards_normalized_target_device( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Construct each benchmark engine with the requested board identifier.""" + + engine_kwargs: list[dict[str, object]] = [] + + class FakeEngine: + """Minimal benchmark engine that records its construction options.""" + + def __init__(self, **kwargs: object) -> None: + engine_kwargs.append(kwargs) + + def dispose(self) -> None: + """Release the fake benchmark engine.""" + + import mblt_vision as vision + + monkeypatch.setattr(vision, "MBLT_Engine", FakeEngine) + monkeypatch.setattr( + benchmark_vision_models, + "_evaluate", + lambda *args: (0.9, "top1_accuracy", {"top1_accuracy": 0.9}), + ) + + assert ( + benchmark_vision_models.main( + [ + "--models", + "model-a", + "--task", + "image_classification", + "--target-device", + "regulus", + "--data-path", + str(tmp_path / "dataset"), + "--results-dir", + str(tmp_path / "results"), + "--no-plot", + ] + ) + == 0 + ) + assert engine_kwargs == [ + { + "model_cls": "model-a", + "model_type": "DEFAULT", + "model_path": "", + "mxq_path": "", + "onnx_path": "", + "framework": None, + "dev_no": 0, + "target_device": "regulus-ra", + "core_mode": "global8", + } + ] + + def test_comparison_rejects_matching_metrics_from_different_tasks( tmp_path: Path, ) -> None: diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py index e1815a0..ca2270c 100644 --- a/tests/test_compile_vision.py +++ b/tests/test_compile_vision.py @@ -15,6 +15,7 @@ prepare_calibration_arrays, resolve_quantization_values, select_calibration_images, + validate_calibration_dataset, ) from mblt_vision.utils import datasets as dataset_utils from mblt_vision.utils.datasets import readiness as readiness_module @@ -457,6 +458,20 @@ def preprocess(self, image_path: str) -> np.ndarray: prepare_calibration_arrays(_Engine(), [source], tmp_path / "arrays") # type: ignore[arg-type] +@pytest.mark.parametrize("invalid_value", [np.nan, np.inf, -np.inf]) +def test_validate_calibration_dataset_rejects_nonfinite_values( + tmp_path: Path, invalid_value: float +) -> None: + """Reject non-finite ready calibration tensors before compilation.""" + + array = np.ones((2, 2, 3), dtype=np.float32) + array[0, 0, 0] = invalid_value + np.save(tmp_path / "selected.npy", array) + + with pytest.raises(ValueError, match="must contain only finite values"): + validate_calibration_dataset(tmp_path) + + def test_quantization_explicit_values_do_not_fetch( monkeypatch: pytest.MonkeyPatch, ) -> None: @@ -767,6 +782,24 @@ def test_compile_uses_obb_task_from_model_config( assert calls["calibration_kwargs"]["output"] == 1 +def test_compile_rejects_non_onnx_local_model_with_ready_calibration_data( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Fail clearly before sending an MXQ file to the ONNX compiler backend.""" + + mxq_path = tmp_path / "local.mxq" + mxq_path.write_bytes(b"mxq") + + with pytest.raises(ValueError, match=r"requires an ONNX model.*local\.mxq"): + _run_fake_compile( + monkeypatch, + tmp_path, + task="image_classification", + model_path=mxq_path, + entry_level="calibration", + ) + + def test_compile_ignores_missing_local_path_and_uses_hosted_onnx( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index f8b28d1..e47fa35 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -3,6 +3,7 @@ from __future__ import annotations import io +import inspect import tarfile from pathlib import Path from typing import Any @@ -10,6 +11,7 @@ import pytest import requests +from PIL import Image import mblt_vision.utils.datasets.organizer as organizer from mblt_vision.utils.datasets import readiness as readiness_module @@ -31,6 +33,53 @@ def update(self, value: int) -> None: self.updated += value +def test_dotav1_normalized_labels_preserve_difficult_metadata(tmp_path: Path) -> None: + """Keep official difficult regions in the normalized label export.""" + + image_path = tmp_path / "image.png" + Image.new("RGB", (100, 50)).save(image_path) + source_path = tmp_path / "source.txt" + source_path.write_text( + "imagesource:GoogleEarth\n" + "0 0 20 0 20 20 0 20 plane 0\n" + "30 0 50 0 50 20 30 20 plane 1\n", + encoding="utf-8", + ) + output_path = tmp_path / "normalized.txt" + + organizer._write_dotav1_yolo_labels( + str(image_path), str(source_path), str(output_path) + ) + + assert output_path.read_text(encoding="utf-8").splitlines() == [ + "0 0 0 0.2 0 0.2 0.4 0 0.4 0", + "0 0.3 0 0.5 0 0.5 0.4 0.3 0.4 1", + ] + + +@pytest.mark.parametrize( + ("organize_dataset", "dataset_name"), + [ + (organizer.organize_imagenet, "imagenet"), + (organizer.organize_coco, "coco"), + (organizer.organize_widerface, "widerface"), + (organizer.organize_nyu_depth, "nyu-depth"), + (organizer.organize_ade20k, "ADEChallengeData2016"), + (organizer.organize_cityscapes, "cityscapes"), + (organizer.organize_dotav1, "dotav1"), + ], +) +def test_organizer_defaults_match_registry_cache_root( + organize_dataset: object, dataset_name: str +) -> None: + """Write datasets where the packaged registry resolves them by default.""" + + output_dir = inspect.signature(organize_dataset).parameters["output_dir"].default + assert output_dir == str( + Path.home() / ".mblt_model_zoo" / "datasets" / dataset_name + ) + + class _FakeResponse: """Simple streaming response test double.""" diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py new file mode 100644 index 0000000..938bf3b --- /dev/null +++ b/tests/test_eval_dota.py @@ -0,0 +1,87 @@ +"""Tests for DOTAv1 difficult-region evaluation.""" + +from __future__ import annotations + +from types import SimpleNamespace + +import numpy as np +import pytest +import torch + +from mblt_vision.utils.evaluation.eval_dota import ( + _load_ground_truths, + evaluate_dota_predictions, +) + + +def test_normalized_difficult_flag_loads_as_an_ignored_region(tmp_path) -> None: + """Read organizer-produced difficult metadata before selecting evaluation targets.""" + + label_dir = tmp_path / "labels" / "val" + label_dir.mkdir(parents=True) + (label_dir / "image.txt").write_text( + "0 0 0 0.2 0 0.2 0.2 0 0.2 0\n" "0 0.4 0.4 0.6 0.4 0.6 0.6 0.4 0.6 1\n", + encoding="utf-8", + ) + dataset = SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ) + + ground_truth = _load_ground_truths(str(tmp_path), dataset)["image"] + + assert ground_truth["cls"].tolist() == [0] + assert ground_truth["ignore_cls"].tolist() == [0] + + +def test_normalized_truncated_annotation_raises_with_file_and_line(tmp_path) -> None: + """Reject nonblank normalized annotations without a complete OBB polygon.""" + + label_dir = tmp_path / "labels" / "val" + label_dir.mkdir(parents=True) + label_path = label_dir / "image.txt" + label_path.write_text("\n0 0 0 0.2\n", encoding="utf-8") + dataset = SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ) + + with pytest.raises( + ValueError, + match=r"image\.txt:2: expected at least 9 fields, got 4", + ): + _load_ground_truths(str(tmp_path), dataset) + + +def test_difficult_regions_do_not_count_as_positive_or_false_positive() -> None: + """Ignore a detection on a difficult region while retaining positive matching.""" + + ground_truths = { + "image": { + "cls": torch.tensor([0]), + "bboxes": torch.tensor([[10.0, 10.0, 4.0, 4.0, 0.0]]), + "ignore_cls": torch.tensor([0]), + "ignore_bboxes": torch.tensor([[30.0, 30.0, 4.0, 4.0, 0.0]]), + } + } + predictions = [ + { + "image_id": "image", + "category_id": 0, + "score": 0.99, + "rbox": [30.0, 30.0, 4.0, 4.0, 0.0], + }, + { + "image_id": "image", + "category_id": 0, + "score": 0.90, + "rbox": [10.0, 10.0, 4.0, 4.0, 0.0], + }, + ] + + result = evaluate_dota_predictions(ground_truths, predictions) + baseline = evaluate_dota_predictions(ground_truths, predictions[1:]) + + assert result == baseline diff --git a/tests/test_results.py b/tests/test_results.py index 1f17bf1..9d02498 100644 --- a/tests/test_results.py +++ b/tests/test_results.py @@ -80,6 +80,93 @@ def test_instance_segmentation_plot_supports_nonzero_coco_labels( assert save_path.is_file() +def test_object_detection_plot_preserves_raw_output_coordinates() -> None: + """Inverse scaling for plotting must not mutate stored postprocess boxes.""" + + box_cls = torch.tensor([[40.0, 60.0, 160.0, 180.0, 0.9, 0.0]], dtype=torch.float32) + result = Results( + {"LetterBox": {"img_size": (200, 200)}}, + {"task": "object_detection"}, + [box_cls], + ) + expected = box_cls.clone() + image = np.zeros((100, 100, 3), dtype=np.uint8) + + first = result.plot(image) + second = result.plot(image) + + torch.testing.assert_close(box_cls, expected) + torch.testing.assert_close(result._box_cls_tensor(), expected) + assert np.array_equal(first, second) + + +def test_plot_converts_rgb_array_source_to_bgr() -> None: + """Return OpenCV-order output when callers provide an RGB NumPy image.""" + + result = Results( + {"LetterBox": {"img_size": (1, 1)}}, + {"task": "object_detection"}, + [torch.zeros((0, 6), dtype=torch.float32)], + ) + rgb = np.array([[[255, 0, 0]]], dtype=np.uint8) + + plotted = result.plot(rgb) + + assert np.array_equal(plotted, np.array([[[0, 0, 255]]], dtype=np.uint8)) + assert np.array_equal(rgb, np.array([[[255, 0, 0]]], dtype=np.uint8)) + + +def test_pose_plot_hides_low_visibility_keypoints_and_limbs( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Draw pose elements only when every required keypoint is visible.""" + + circles: list[tuple[int, int]] = [] + limbs: list[tuple[tuple[int, int], tuple[int, int]]] = [] + + def capture_circle( + image: np.ndarray, center: tuple[int, int], *args: object, **kwargs: object + ) -> np.ndarray: + del args, kwargs + circles.append(center) + return image + + def capture_line( + image: np.ndarray, + point1: tuple[int, int], + point2: tuple[int, int], + *args: object, + **kwargs: object, + ) -> np.ndarray: + del args, kwargs + limbs.append((point1, point2)) + return image + + monkeypatch.setattr(cv2, "circle", capture_circle) + monkeypatch.setattr(cv2, "line", capture_line) + keypoints = torch.zeros((17, 3), dtype=torch.float32) + keypoints[0] = torch.tensor([20.0, 20.0, 0.9]) + keypoints[1] = torch.tensor([40.0, 20.0, 0.9]) + box_cls = torch.cat( + [ + torch.tensor([[10.0, 10.0, 50.0, 50.0, 0.9, 0.0]]), + keypoints.reshape(1, -1), + ], + dim=1, + ) + result = Results( + {"LetterBox": {"img_size": (100, 100)}}, + {"task": "pose_estimation", "n_extra": 51}, + [box_cls], + conf_thres=0.5, + ) + + result.plot(np.zeros((100, 100, 3), dtype=np.uint8)) + + assert circles == [(20, 20), (40, 20)] + assert limbs == [((20, 20), (40, 20))] + + def test_obb_plot_uses_dotav1_palette(monkeypatch: pytest.MonkeyPatch) -> None: """Plot DOTAv1 boxes without consulting the COCO palette.""" diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index b93724a..041b008 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -222,6 +222,124 @@ def test_model_path_defaults_to_local_onnx_for_onnx_framework(tmp_path: Path) -> assert "mxq_path" not in engine.file_cfg or not engine.file_cfg["mxq_path"] +@pytest.mark.parametrize("path_argument", ["model_path", "mxq_path"]) +def test_engine_init_rejects_nonexistent_explicit_mxq_path( + tmp_path: Path, path_argument: str +) -> None: + """Do not replace an explicit missing MXQ path with a Hub artifact.""" + + missing_path = tmp_path / "missing.mxq" + model_config = { + "file_cfg": { + "repo_id": "mobilint/example", + "filename": "model.mxq", + "revision": "main", + }, + "pre_cfg": {}, + "post_cfg": {}, + } + + with pytest.raises( + FileNotFoundError, match=r"Explicit MXQ model path.*missing\.mxq" + ): + MBLT_Engine(model_config, **{path_argument: str(missing_path)}) + + +def test_engine_init_disposes_mxq_backend_after_postprocess_setup_failure( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Dispose an acquired NPU backend when later engine setup fails.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + disposed = False + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + del kwargs + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + nonlocal disposed + disposed = True + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda *args, **kwargs: (_ for _ in ()).throw( + ValueError("invalid postprocess") + ), + ) + + with pytest.raises(ValueError, match="invalid postprocess"): + MBLT_Engine( + {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, + model_path=str(mxq_path), + ) + + assert disposed + + +def test_engine_init_disposes_onnx_backend_after_preprocess_setup_failure( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Dispose an acquired ONNX backend when later engine setup fails.""" + + onnx_path = tmp_path / "model.onnx" + onnx_path.write_bytes(b"onnx") + disposed = False + + class _Session: + def get_inputs(self) -> list[Any]: + return [type("Input", (), {"name": "input"})()] + + def get_outputs(self) -> list[Any]: + return [type("Output", (), {"name": "output"})()] + + class _FakeONNXBackend: + def __init__(self, *args: Any, **kwargs: Any) -> None: + del args, kwargs + self.session: _Session | None = None + + def create(self) -> None: + self.session = _Session() + + def dispose(self) -> None: + nonlocal disposed + disposed = True + self.session = None + + monkeypatch.setattr(wrapper, "ONNXBackend", _FakeONNXBackend) + monkeypatch.setattr(wrapper, "_load_onnxruntime", lambda: object()) + monkeypatch.setattr( + wrapper, + "build_preprocess", + lambda config: (_ for _ in ()).throw(ValueError("invalid preprocess")), + ) + + with pytest.raises(ValueError, match="invalid preprocess"): + MBLT_Engine( + { + "file_cfg": {"onnx_path": str(onnx_path)}, + "pre_cfg": {}, + "post_cfg": {}, + }, + framework="onnx", + ) + + assert disposed + + def test_engine_init_accepts_local_mxq_model_path( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, From ee2d121890e76b5d3ed06465b6f328443253f7ab Mon Sep 17 00:00:00 2001 From: jinman Date: Wed, 12 Aug 2026 15:33:16 +0900 Subject: [PATCH 12/48] feat: Improve cache directory handling and validation across modules --- .agents/skills/mblt-vision/SKILL.md | 2 + AGENTS.md | 2 + mblt_vision/compile/vision.py | 44 ++++++++++++--- mblt_vision/utils/datasets/organizer.py | 25 +++++++-- .../utils/postprocess/yolo_anchor_post.py | 14 ++--- .../utils/postprocess/yolo_dflfree_post.py | 24 +++------ .../utils/postprocess/yolo_nmsfree_post.py | 2 +- mblt_vision/wrapper.py | 25 +++++++-- tests/test_compile_vision.py | 27 ++++++++++ tests/test_dataset_organizer.py | 21 ++++++++ tests/test_postprocess_hierarchy.py | 54 +++++++++++++++++++ tests/test_wrapper.py | 18 +++++++ 12 files changed, 214 insertions(+), 44 deletions(-) diff --git a/.agents/skills/mblt-vision/SKILL.md b/.agents/skills/mblt-vision/SKILL.md index 1da33c1..a42cd26 100644 --- a/.agents/skills/mblt-vision/SKILL.md +++ b/.agents/skills/mblt-vision/SKILL.md @@ -62,6 +62,8 @@ description: >- - Keep all executable compile scripts and the compile guide directly in `compile/`. - Use `~/.mblt_model_zoo` as the shared artifact and dataset cache root. Keep organizer defaults, dataset registry YAMLs, compilation defaults, and documented commands aligned to it. +- Keep imports free of cache-directory creation, write probes, downloads, and temporary-directory + allocation; resolve a writable cache only when an artifact or compilation output needs it. - For every significant package change (public API, CLI, runtime/dependency, artifact layout, or tooling structure), update `AGENTS.md`, this canonical skill, the Claude skill entry point when its workflow changes, and the relevant README in the same change. diff --git a/AGENTS.md b/AGENTS.md index deecb55..d1788e6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -99,6 +99,8 @@ The current ownership boundary is deliberate: Vision-only subdirectory under either tooling root. - Use `~/.mblt_model_zoo` as the shared artifact and dataset cache root. Organizer defaults, dataset registry YAMLs, compilation defaults, and documented commands must agree on that root. +- Keep package imports free of cache-directory creation, write probes, downloads, and temporary + directory allocation. Resolve a writable cache lazily only when an artifact or compilation output needs it. - Benchmark and compilation commands are development tools; do not package them as public CLI entry points without an explicit product decision. The supported end-user command is `mblt-vision`. diff --git a/mblt_vision/compile/vision.py b/mblt_vision/compile/vision.py index 8ca6d74..efa9e65 100644 --- a/mblt_vision/compile/vision.py +++ b/mblt_vision/compile/vision.py @@ -16,12 +16,20 @@ import torch from huggingface_hub import hf_hub_download from huggingface_hub.errors import HfHubHTTPError -from mblt_vision.utils.datasets.readiness import dataset_ready +from mblt_vision.utils.datasets.readiness import ( + _path_has_symlink_component, + dataset_ready, +) from mblt_vision._tasks import normalize_vision_task from mblt_vision.datasets import get_dataset_config_for_task from mblt_npu import normalize_target_device -from mblt_vision.wrapper import MOBILINT_CACHE_DIR, MBLT_Engine, resolve_model_config +from mblt_vision.wrapper import ( + MOBILINT_CACHE_DIR, + MBLT_Engine, + get_mobilint_cache_dir, + resolve_model_config, +) DEFAULT_PERCENTILE = 0.9999 DEFAULT_TOPK_RATIO = 0.01 @@ -41,6 +49,14 @@ IMAGE_SUFFIXES = {".bmp", ".jpeg", ".jpg", ".png", ".tif", ".tiff", ".webp"} +def _default_model_dir() -> Path: + """Return the writable default compilation output directory lazily.""" + + if DEFAULT_MODEL_DIR != Path(MOBILINT_CACHE_DIR): + return DEFAULT_MODEL_DIR + return Path(get_mobilint_cache_dir()) + + def _normalize_task(task: str) -> str: """Validate and normalize a supported task name. @@ -57,6 +73,18 @@ def _normalize_task(task: str) -> str: return normalize_vision_task(task, supported=DEFAULT_SUBSET_SIZES) +def _validate_calibration_output_dir(output_dir: str | Path) -> Path: + """Return an output path only when it and its ancestors are not symlinks.""" + + destination = Path(output_dir).expanduser() + if _path_has_symlink_component(destination): + raise ValueError( + "Calibration output_dir must not be or contain a symlink: " + f"{destination}." + ) + return destination + + def _dataset_ready(task: str, data_path: Path, dataset: str | None = None) -> bool: """Return whether an organized dataset contains calibration images. @@ -365,7 +393,7 @@ def copy_calibration_subset( """ root = Path(data_path).expanduser().resolve() - destination = Path(output_dir).expanduser() + destination = _validate_calibration_output_dir(output_dir) destination.mkdir(parents=True, exist_ok=True) copied: list[Path] = [] for image_path in images: @@ -401,7 +429,7 @@ def make_calibration_subset( """ source_root = Path(data_path).expanduser().resolve() - destination = Path(output_dir).expanduser().resolve() + destination = _validate_calibration_output_dir(output_dir).resolve() if source_root.is_relative_to(destination) or destination.is_relative_to( source_root ): @@ -478,7 +506,7 @@ def prepare_calibration_arrays( Saved NumPy paths. """ - destination = Path(output_dir) + destination = _validate_calibration_output_dir(output_dir) destination.mkdir(parents=True, exist_ok=True) saved: list[Path] = [] for index, image_path in enumerate(images): @@ -808,7 +836,7 @@ def _resolve_compile_onnx_path( repo_id=repo_id, filename=filename, revision=revision, - local_dir=MOBILINT_CACHE_DIR, + local_dir=get_mobilint_cache_dir(), ) ) if downloaded_path.is_file(): @@ -890,7 +918,7 @@ def compile_vision_model( output_path = ( Path(save_path).expanduser() if save_path is not None - else DEFAULT_MODEL_DIR / f"{resolved_onnx.stem}.mxq" + else _default_model_dir() / f"{resolved_onnx.stem}.mxq" ).resolve() output_path.parent.mkdir(parents=True, exist_ok=True) resolved_percentile, resolved_topk = resolve_quantization_values( @@ -943,7 +971,7 @@ def compile_vision_model( output_path = ( Path(save_path).expanduser() if save_path is not None - else DEFAULT_MODEL_DIR / f"{resolved_onnx.stem}.mxq" + else _default_model_dir() / f"{resolved_onnx.stem}.mxq" ) output_path = output_path.resolve() output_path.parent.mkdir(parents=True, exist_ok=True) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 5dd9b18..58cdf04 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -55,6 +55,7 @@ ADE20K_URL = "http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip" CITYSCAPES_IMAGE_SUFFIX = "_leftImg8bit.png" CITYSCAPES_ANNOTATION_SUFFIX = "_gtFine_labelIds.png" +IMAGENET_SYNSET_PATTERN = re.compile(r"n\d{8}") def _replace_staged_directories( @@ -332,10 +333,27 @@ def _get_object_name(obj: ET.Element, xml_file: str) -> str: object_name = name_element.text.strip() if not object_name: raise ValueError(f"XML file {xml_file} has an object with an empty name") + if IMAGENET_SYNSET_PATTERN.fullmatch(object_name) is None: + raise ValueError( + f"XML file {xml_file} has invalid ImageNet synset name {object_name!r}; " + "expected n########." + ) return object_name +def _imagenet_class_output_dir(staged_output_dir: str, object_name: str) -> Path: + """Return a containment-checked class directory below the staging root.""" + + staged_root = Path(staged_output_dir).resolve() + class_dir = (staged_root / object_name).resolve() + if class_dir.parent != staged_root: + raise ValueError( + f"ImageNet class directory escapes staging root: {object_name!r}." + ) + return class_dir + + def construct_imagenet(image_dir: str, xml_dir: str, output_dir: str) -> None: """Constructs the ImageNet dataset by organizing images into category folders. @@ -399,12 +417,11 @@ def construct_imagenet(image_dir: str, xml_dir: str, output_dir: str) -> None: if not os.path.isfile(image_path): raise FileNotFoundError(f"Image file not found: {image_path}") - os.makedirs(os.path.join(staged_output_dir, object_name), exist_ok=True) + class_dir = _imagenet_class_output_dir(staged_output_dir, object_name) + os.makedirs(class_dir, exist_ok=True) shutil.copy( image_path, - os.path.join( - staged_output_dir, object_name, os.path.basename(image_path) - ), + class_dir / os.path.basename(image_path), ) pbar.close() diff --git a/mblt_vision/utils/postprocess/yolo_anchor_post.py b/mblt_vision/utils/postprocess/yolo_anchor_post.py index 19d58da..4aac9e7 100644 --- a/mblt_vision/utils/postprocess/yolo_anchor_post.py +++ b/mblt_vision/utils/postprocess/yolo_anchor_post.py @@ -150,9 +150,7 @@ def process_box_cls(self, x: torch.Tensor) -> torch.Tensor: ic = x[:, 4] > self.inv_conf_thres # candidates box_cls = x[ic] # (n, 85) if box_cls.numel() == 0: - return torch.zeros( - (0, 5 + self.nc + self.n_extra), dtype=torch.float32, device=x.device - ) + return box_cls.new_zeros((0, 5 + self.nc + self.n_extra)) grid = self.grid[ic, :] # (n, 2) anchor_grid = self.anchor_grid[ic, :] # (n, 2) @@ -189,7 +187,7 @@ def process_conversion(x: torch.Tensor) -> torch.Tensor: ic = x[:, 4] > self.conf_thres # candidates x = x[ic] # (n, 85) if len(x) == 0: - return torch.zeros((0, self.no), dtype=torch.float32) + return x.new_zeros((0, self.no)) return x return [process_conversion(xi) for xi in x_list] @@ -200,16 +198,12 @@ def _nms_single( """Apply anchor-based NMS to a single decoded image tensor.""" mi = 5 + self.nc # mask index if xi.numel() == 0: - return torch.zeros( - (0, 6 + self.n_extra), dtype=torch.float32, device=self.device - ) + return xi.new_zeros((0, 6 + self.n_extra)) scores = xi[:, 5:mi] * xi[:, 4:5] match_index = (scores > self.conf_thres).nonzero(as_tuple=False) if match_index.numel() == 0: - return torch.zeros( - (0, 6 + self.n_extra), dtype=torch.float32, device=xi.device - ) + return xi.new_zeros((0, 6 + self.n_extra)) i = match_index[:, 0] j = match_index[:, 1] diff --git a/mblt_vision/utils/postprocess/yolo_dflfree_post.py b/mblt_vision/utils/postprocess/yolo_dflfree_post.py index 7cf47e5..6833361 100644 --- a/mblt_vision/utils/postprocess/yolo_dflfree_post.py +++ b/mblt_vision/utils/postprocess/yolo_dflfree_post.py @@ -348,9 +348,7 @@ def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: ) box_cls = box_cls[:, ic] # (84, *) if box_cls.numel() == 0: - return torch.zeros( - (0, 4 + self.nc + self.n_extra), dtype=torch.float32 - ) # (0, 84) + return box_cls.new_zeros((0, 4 + self.nc + self.n_extra)) anchors = self.anchors_as_tensor() stride = self.stride_as_tensor() box, scores, extra = torch.split( @@ -665,9 +663,7 @@ def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: ) box_cls = box_cls[:, ic] # (116, *) if box_cls.numel() == 0: - return torch.zeros( - (0, 4 + self.nc + self.n_extra), dtype=torch.float32 - ) # (0, 56) + return box_cls.new_zeros((0, 4 + self.nc + self.n_extra)) anchors = self.anchors_as_tensor() stride = self.stride_as_tensor() box, scores, keypoints = torch.split( @@ -892,9 +888,7 @@ def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: ) box_cls = box_cls[:, ic] if box_cls.numel() == 0: - return torch.zeros( - (0, 4 + self.nc + self.n_extra), dtype=torch.float32, device=self.device - ) + return box_cls.new_zeros((0, 4 + self.nc + self.n_extra)) anchors = self.anchors_as_tensor() stride = self.stride_as_tensor() box, scores, angle = torch.split( @@ -936,9 +930,7 @@ def filter_conversion(self, x: torch.Tensor) -> list[torch.Tensor]: if torch.any(keep): outputs.append(xi[keep]) else: - outputs.append( - torch.zeros((0, expected_dim), dtype=xi.dtype, device=xi.device) - ) + outputs.append(xi.new_zeros((0, expected_dim))) return outputs def nms( @@ -963,9 +955,7 @@ def nms( output = [] for xi in detections: if xi.numel() == 0: - output.append( - torch.zeros((0, 7), dtype=torch.float32, device=self.device) - ) + output.append(xi.new_zeros((0, 7))) continue if xi.shape[1] == 4 + self.nc + self.n_extra: xi = yolo_multilabel_candidates( @@ -976,9 +966,7 @@ def nms( else: raise ValueError(f"Unsupported OBB detection shape {tuple(xi.shape)}.") if xi.numel() == 0: - output.append( - torch.zeros((0, 7), dtype=torch.float32, device=self.device) - ) + output.append(xi.new_zeros((0, 7))) continue xi = xi[torch.argsort(xi[:, 4], descending=True)[:max_nms]] c = xi[:, 5:6] * max_wh diff --git a/mblt_vision/utils/postprocess/yolo_nmsfree_post.py b/mblt_vision/utils/postprocess/yolo_nmsfree_post.py index e2cdfac..cd4f125 100644 --- a/mblt_vision/utils/postprocess/yolo_nmsfree_post.py +++ b/mblt_vision/utils/postprocess/yolo_nmsfree_post.py @@ -118,7 +118,7 @@ def process_box_cls(self, box_cls: torch.Tensor) -> torch.Tensor: ic = torch.amax(box_cls[-self.nc :, :], dim=0) > self.inv_conf_thres box_cls = box_cls[:, ic] # (144, *) if box_cls.numel() == 0: - return torch.zeros((0, 6), dtype=torch.float32) # (0, 6) + return box_cls.new_zeros((0, 6)) anchors = self.anchors_as_tensor() stride = self.stride_as_tensor() box, scores = torch.split( diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index b4ba5b9..2e28bea 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -55,7 +55,14 @@ def normalize_core_mode(core_mode: str) -> CoreMode: return core_mode -__all__ = ["CoreMode", "normalize_core_mode", "resolve_model_config", "MBLT_Engine"] +__all__ = [ + "CoreMode", + "MOBILINT_CACHE_DIR", + "get_mobilint_cache_dir", + "normalize_core_mode", + "resolve_model_config", + "MBLT_Engine", +] def _derive_onnx_filename(file_cfg: dict[str, Any]) -> str | None: @@ -105,7 +112,19 @@ def _default_cache_dir() -> str: return tempfile.mkdtemp(prefix="mblt_model_zoo-", dir=tempfile.gettempdir()) -MOBILINT_CACHE_DIR = _default_cache_dir() +MOBILINT_CACHE_DIR = os.path.expanduser("~/.mblt_model_zoo") +"""Preferred artifact cache root, without creating it during import.""" + +_resolved_cache_dir: str | None = None + + +def get_mobilint_cache_dir() -> str: + """Return a writable artifact cache directory, creating it only when needed.""" + + global _resolved_cache_dir + if _resolved_cache_dir is None: + _resolved_cache_dir = _default_cache_dir() + return _resolved_cache_dir def _load_onnxruntime() -> Any: @@ -562,7 +581,7 @@ def _download_hub_artifact( "repo_id": repo_id, "filename": filename, "revision": revision, - "local_dir": MOBILINT_CACHE_DIR, + "local_dir": get_mobilint_cache_dir(), } if subfolder: kwargs["subfolder"] = subfolder diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py index ca2270c..a08a187 100644 --- a/tests/test_compile_vision.py +++ b/tests/test_compile_vision.py @@ -260,6 +260,33 @@ def test_subset_keeps_existing_output_when_selection_fails(tmp_path: Path) -> No assert existing.read_bytes() == b"existing.jpg" +@pytest.mark.parametrize("symlinked_parent", [False, True]) +def test_subset_rejects_symlinked_output_path_before_replacement( + tmp_path: Path, symlinked_parent: bool +) -> None: + """Do not resolve a caller-controlled subset output through a symlink.""" + + data_path = tmp_path / "dataset" + _write_images(data_path / "val2017", ["one.jpg"]) + external_output = tmp_path / "external-parent" / "subset" + existing = _write_images(external_output, ["keep.jpg"])[0] + if symlinked_parent: + output_path = tmp_path / "linked-parent" / "subset" + (tmp_path / "linked-parent").symlink_to( + external_output.parent, target_is_directory=True + ) + else: + output_path = tmp_path / "subset" + output_path.symlink_to(external_output, target_is_directory=True) + + with pytest.raises(ValueError, match="output_dir must not be or contain a symlink"): + compile_module.make_calibration_subset( + "object_detection", data_path, output_path, subset_size=1 + ) + + assert existing.read_bytes() == b"keep.jpg" + + def test_imagenet_readiness_rejects_partial_class_tree(tmp_path: Path) -> None: """Organize ImageNet again when the existing class layout is incomplete.""" diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index e47fa35..dfb6fa3 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -233,6 +233,27 @@ def _dataset_ready(_: str, task: str, dataset: str) -> bool: assert readiness_calls == [("image_classification", "imagenet")] +@pytest.mark.parametrize("class_name", ["../../escaped", "/tmp/escaped"]) +def test_construct_imagenet_rejects_unsafe_xml_class_name( + tmp_path: Path, class_name: str +) -> None: + """Reject XML class names that could escape the ImageNet staging root.""" + + image_dir, xml_dir = _create_imagenet_source(tmp_path) + xml_path = next((xml_dir / "val").glob("*.xml")) + xml_path.write_text( + f"{class_name}", + encoding="utf-8", + ) + output_dir = tmp_path / "imagenet" + + with pytest.raises(ValueError, match="invalid ImageNet synset name"): + organizer.construct_imagenet(str(image_dir), str(xml_dir), str(output_dir)) + + assert not (tmp_path / "escaped").exists() + assert not output_dir.exists() + + def test_construct_coco_replaces_stale_output( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index 13ac8de..12d2e2d 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -6,6 +6,7 @@ from typing import Any import pytest +import torch from mblt_vision.utils.postprocess import build_postprocess from mblt_vision.utils.postprocess.base import PostBase, YOLODetectionPostBase from mblt_vision.utils.postprocess.cls_post import ClsPost @@ -113,6 +114,59 @@ def test_builder_keeps_non_detection_routing_warning_free( assert type(postprocessor) is expected_type +@pytest.mark.parametrize( + ("postprocessor_type", "input_shape", "n_extra", "output_width"), + [ + (YOLONMSFreeDetectionPost, (5, 1), 0, 6), + (YOLODFLFreeDetectionPost, (5, 1), 0, 5), + (YOLODFLFreePosePost, (56, 1), 51, 56), + (YOLODFLFreeOBBPost, (6, 1), 1, 6), + ], +) +def test_empty_anchorless_outputs_preserve_input_device_and_dtype( + postprocessor_type: type[YOLODetectionPostBase], + input_shape: tuple[int, int], + n_extra: int, + output_width: int, +) -> None: + """Create empty decoded rows from the selected input tensor.""" + + postprocessor = postprocessor_type.__new__(postprocessor_type) + postprocessor.nc = 1 + postprocessor.n_extra = n_extra + postprocessor.inv_conf_thres = 1.0 + input_tensor = torch.zeros(input_shape, dtype=torch.float64) + + output = postprocessor.process_box_cls(input_tensor) + + assert output.shape == (0, output_width) + assert output.device == input_tensor.device + assert output.dtype == input_tensor.dtype + + +def test_empty_anchor_outputs_preserve_input_device_and_dtype() -> None: + """Keep converted and decoded empty anchor rows on the input device.""" + + postprocessor = YOLOAnchorDetectionPost.__new__(YOLOAnchorDetectionPost) + postprocessor.nc = 1 + postprocessor.n_extra = 0 + postprocessor.no = 6 + postprocessor.inv_conf_thres = 1.0 + postprocessor.conf_thres = 1.0 + decoded_input = torch.zeros((1, 6), dtype=torch.float64) + converted_input = torch.zeros((1, 1, 6), dtype=torch.float64) + + decoded_output = postprocessor.process_box_cls(decoded_input) + converted_output = postprocessor.filter_conversion(converted_input)[0] + + for output, input_tensor in ( + (decoded_output, decoded_input), + (converted_output, converted_input), + ): + assert output.device == input_tensor.device + assert output.dtype == input_tensor.dtype + + def test_detection_postprocessor_rejects_missing_head_count() -> None: """Raise a stable runtime error when anchorless metadata omits nl.""" diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 041b008..ed5ed8f 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -124,6 +124,24 @@ def _fail_mkdir(self: Path, *args: object, **kwargs: object) -> None: assert cache_dir.stat().st_mode & 0o777 == 0o700 +def test_cache_directory_is_resolved_lazily(monkeypatch: pytest.MonkeyPatch) -> None: + """Do not create or probe the artifact cache until an operation needs it.""" + + calls: list[str] = [] + + def resolve_cache_dir() -> str: + calls.append("resolved") + return "/tmp/mblt-model-zoo-cache" + + monkeypatch.setattr(wrapper, "_resolved_cache_dir", None) + monkeypatch.setattr(wrapper, "_default_cache_dir", resolve_cache_dir) + + assert calls == [] + assert wrapper.get_mobilint_cache_dir() == "/tmp/mblt-model-zoo-cache" + assert wrapper.get_mobilint_cache_dir() == "/tmp/mblt-model-zoo-cache" + assert calls == ["resolved"] + + def test_onnx_runtime_defaults_to_cpu_provider() -> None: """Avoid accelerator provider probing unless callers explicitly opt in.""" From 13da9a7cafeadfa0800350f93aa795e1e8dde329 Mon Sep 17 00:00:00 2001 From: jinman Date: Wed, 12 Aug 2026 15:37:05 +0900 Subject: [PATCH 13/48] feat: Add validation step for package distributions before upload --- .github/workflows/publish.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index dea7cbc..09a32dd 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -25,11 +25,14 @@ jobs: - name: Install build dependencies run: | python -m pip install --upgrade pip - python -m pip install build + python -m pip install build twine - name: Build package run: python -m build + - name: Validate distributions + run: python -m twine check dist/* + - name: Upload built distributions uses: actions/upload-artifact@v7 with: From 767b648f81381d6bed457e4530d2808c135bf0f9 Mon Sep 17 00:00:00 2001 From: jinman Date: Wed, 12 Aug 2026 15:44:26 +0900 Subject: [PATCH 14/48] feat: Update semantic loader evaluation to include shape and padding information --- mblt_vision/utils/evaluation/eval_ade20k.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mblt_vision/utils/evaluation/eval_ade20k.py b/mblt_vision/utils/evaluation/eval_ade20k.py index 8dfc404..389f204 100644 --- a/mblt_vision/utils/evaluation/eval_ade20k.py +++ b/mblt_vision/utils/evaluation/eval_ade20k.py @@ -175,7 +175,9 @@ def _evaluate_semantic_loader( """ accumulator = SemanticMetricAccumulator(nc=nc) - for inputs, targets, _, _, _ in tqdm(loader, desc=description): + for inputs, targets, _shapes, _ratio_pads, _ in tqdm(loader, desc=description): + # TODO: Restore logits to original geometry using shapes and ratio_pads when + # Ultralytics adopts native-geometry semantic validation metrics. result = model.postprocess(model(inputs)) semantic_mask = result.semantic_mask if semantic_mask is None: From 5526cd140cfc97beff5a9bfea43be33f2a2e3c03 Mon Sep 17 00:00:00 2001 From: jinman Date: Wed, 12 Aug 2026 17:02:56 +0900 Subject: [PATCH 15/48] feat: Update Python version to 3.12 and add smoke test for built wheel API; enhance cache directory handling --- .github/workflows/publish.yml | 11 ++++++++++- mblt_vision/utils/postprocess/base.py | 5 +++++ mblt_vision/wrapper.py | 5 ++--- tests/test_postprocess_hierarchy.py | 17 +++++++++++++++++ tests/test_wrapper.py | 15 +++++++++++++++ 5 files changed, 49 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 09a32dd..6394562 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,7 +20,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v6 with: - python-version: '3.x' + python-version: '3.12' - name: Install build dependencies run: | @@ -33,6 +33,15 @@ jobs: - name: Validate distributions run: python -m twine check dist/* + - name: Smoke-test built wheel API + run: | + python -m venv /tmp/mblt-vision-wheel-smoke + /tmp/mblt-vision-wheel-smoke/bin/python -m pip install --upgrade pip + /tmp/mblt-vision-wheel-smoke/bin/python -m pip install --index-url https://download.pytorch.org/whl/cpu torch + /tmp/mblt-vision-wheel-smoke/bin/python -m pip install dist/*.whl + cd /tmp + /tmp/mblt-vision-wheel-smoke/bin/python -c "from mblt_vision import MBLT_Engine, list_models, list_tasks; assert MBLT_Engine; assert list_tasks(); assert list_models()" + - name: Upload built distributions uses: actions/upload-artifact@v7 with: diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index d141939..b88e171 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -608,6 +608,11 @@ def masking( Returns: list: Detection results with masks. """ + if len(x) != len(proto_outs): + raise ValueError( + "Detection and prototype batch sizes must match for instance " + f"segmentation, got {len(x)} detections and {len(proto_outs)} prototypes." + ) masks = [] for pred, proto in zip(x, proto_outs): if proto.ndim != 3: diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index 2e28bea..131b284 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -104,9 +104,8 @@ def _default_cache_dir() -> str: preferred = Path(os.path.expanduser("~/.mblt_model_zoo")) try: preferred.mkdir(parents=True, exist_ok=True) - test_file = preferred / ".write_test" - test_file.touch(exist_ok=True) - test_file.unlink(missing_ok=True) + with tempfile.NamedTemporaryFile(prefix=".write_test-", dir=preferred): + pass return str(preferred) except OSError: return tempfile.mkdtemp(prefix="mblt_model_zoo-", dir=tempfile.gettempdir()) diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index 12d2e2d..fba8ae1 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -175,3 +175,20 @@ def test_detection_postprocessor_rejects_missing_head_count() -> None: {"LetterBox": {"img_size": [640, 640]}}, {"task": "object_detection", "dataset": "coco"}, ) + + +def test_segmentation_postprocessor_rejects_mismatched_prototype_batch() -> None: + """Do not silently drop detections when prototypes have fewer images.""" + + postprocessor = YOLODFLFreeSegPost( + {"LetterBox": {"img_size": [640, 640]}}, + {"task": "instance_segmentation", "nl": 3, "n_extra": 32}, + ) + detections = [torch.empty((0, 38)), torch.empty((0, 38))] + prototypes = torch.empty((1, 32, 160, 160)) + + with pytest.raises( + ValueError, + match="Detection and prototype batch sizes must match.*2 detections and 1 prototypes", + ): + postprocessor.masking(detections, prototypes) diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index ed5ed8f..cdbfcca 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -124,6 +124,21 @@ def _fail_mkdir(self: Path, *args: object, **kwargs: object) -> None: assert cache_dir.stat().st_mode & 0o777 == 0o700 +def test_default_cache_dir_preserves_existing_probe_named_file( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Never remove a caller-owned file while checking cache writability.""" + + preferred = tmp_path / "mblt_model_zoo" + preferred.mkdir() + marker = preferred / ".write_test" + marker.write_bytes(b"caller-owned") + monkeypatch.setattr(wrapper.os.path, "expanduser", lambda _: str(preferred)) + + assert wrapper._default_cache_dir() == str(preferred) + assert marker.read_bytes() == b"caller-owned" + + def test_cache_directory_is_resolved_lazily(monkeypatch: pytest.MonkeyPatch) -> None: """Do not create or probe the artifact cache until an operation needs it.""" From b4e3451809ab136df86228cba91467c86577cbe5 Mon Sep 17 00:00:00 2001 From: jinman Date: Wed, 12 Aug 2026 17:36:58 +0900 Subject: [PATCH 16/48] feat: Enhance cache handling and validation; improve resize preprocessing and tests --- .agents/skills/mblt-vision/SKILL.md | 2 + AGENTS.md | 2 + mblt_vision/utils/preprocess/resize.py | 14 ++++++- mblt_vision/wrapper.py | 53 ++++++++++++++++++++--- pyproject.toml | 2 +- tests/test_preprocess_validation.py | 29 +++++++++++++ tests/test_wrapper.py | 58 +++++++++++++++++++++----- 7 files changed, 143 insertions(+), 17 deletions(-) diff --git a/.agents/skills/mblt-vision/SKILL.md b/.agents/skills/mblt-vision/SKILL.md index a42cd26..e183c8b 100644 --- a/.agents/skills/mblt-vision/SKILL.md +++ b/.agents/skills/mblt-vision/SKILL.md @@ -64,6 +64,8 @@ description: >- dataset registry YAMLs, compilation defaults, and documented commands aligned to it. - Keep imports free of cache-directory creation, write probes, downloads, and temporary-directory allocation; resolve a writable cache only when an artifact or compilation output needs it. +- Make fallback caches stable, private, and user-owned. Never use a new temporary directory per + process or trust a shared fallback cache without validating it. - For every significant package change (public API, CLI, runtime/dependency, artifact layout, or tooling structure), update `AGENTS.md`, this canonical skill, the Claude skill entry point when its workflow changes, and the relevant README in the same change. diff --git a/AGENTS.md b/AGENTS.md index d1788e6..b90b62b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -101,6 +101,8 @@ The current ownership boundary is deliberate: dataset registry YAMLs, compilation defaults, and documented commands must agree on that root. - Keep package imports free of cache-directory creation, write probes, downloads, and temporary directory allocation. Resolve a writable cache lazily only when an artifact or compilation output needs it. +- If the preferred cache is unavailable, use a stable, private, user-owned fallback cache. Do not + create a new temporary cache per process or reuse an unsafe shared directory. - Benchmark and compilation commands are development tools; do not package them as public CLI entry points without an explicit product decision. The supported end-user command is `mblt-vision`. diff --git a/mblt_vision/utils/preprocess/resize.py b/mblt_vision/utils/preprocess/resize.py index 5115095..e1ed399 100644 --- a/mblt_vision/utils/preprocess/resize.py +++ b/mblt_vision/utils/preprocess/resize.py @@ -21,6 +21,7 @@ "hamming": Image.Resampling.HAMMING, "lanczos": Image.Resampling.LANCZOS, } +TORCH_INTERPOLATION_MODES = frozenset({"nearest", "bilinear", "bicubic"}) class Resize(PreOps): @@ -69,9 +70,10 @@ def __call__( Raises: TypeError: If input type is not supported. - ValueError: If a NumPy input is not HWC or a tensor input is not CHW or BCHW. + ValueError: If an input has an invalid layout or uses a PIL-only interpolation mode. """ if isinstance(x, np.ndarray): + self._validate_tensor_interpolation() if x.ndim != 3: raise ValueError( f"Expected an HWC NumPy array, but got x.shape={x.shape}." @@ -100,6 +102,7 @@ def __call__( ) return tensor_x.permute(1, 2, 0).cpu().numpy() elif isinstance(x, torch.Tensor): + self._validate_tensor_interpolation() tensor_x = x.to(self.device) elif isinstance(x, Image.Image): img_w, img_h = x.size @@ -136,6 +139,15 @@ def __call__( tensor_x = self._cast_squeeze_out(tensor_x, need_cast, need_squeeze, out_dtype) return tensor_x.to(self.device) + def _validate_tensor_interpolation(self) -> None: + """Reject interpolation modes unsupported by PyTorch tensors.""" + + if self.interpolation not in TORCH_INTERPOLATION_MODES: + raise ValueError( + f"Resize interpolation {self.interpolation!r} is supported only for PIL images; " + f"NumPy arrays and tensors require one of {sorted(TORCH_INTERPOLATION_MODES)}." + ) + def _compute_resized_output_size(self, img_h: int, img_w: int) -> list[int]: if isinstance(self.size, int): # to match the shortest side to self.size with the same ratio diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index 131b284..27a7948 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -7,17 +7,17 @@ import copy import importlib import os +import stat import sys import tempfile from pathlib import Path -from typing import Any, Sequence, cast +from typing import TYPE_CHECKING, Any, Sequence, cast import numpy as np import torch import yaml from huggingface_hub import hf_hub_download from huggingface_hub.errors import EntryNotFoundError -from qbruntime import Cluster, CoreId from mblt_npu import MobilintNPUBackend, ONNXBackend, normalize_target_device from ._model_paths import resolve_framework as _resolve_framework @@ -30,6 +30,9 @@ from .utils.results import Results from .utils.types import TensorLike +if TYPE_CHECKING: + from qbruntime import Cluster, CoreId + MODEL_CONFIG_DIR = Path(__file__).parent / "models" ONNXRUNTIME_INSTALL_GUIDE = ( @@ -108,7 +111,42 @@ def _default_cache_dir() -> str: pass return str(preferred) except OSError: - return tempfile.mkdtemp(prefix="mblt_model_zoo-", dir=tempfile.gettempdir()) + return _fallback_cache_dir() + + +def _fallback_cache_dir() -> str: + """Return a stable private fallback cache when the home cache is unavailable.""" + + uid = os.getuid() + fallback = Path(tempfile.gettempdir()) / f"mblt_model_zoo-{uid}" + try: + os.mkdir(fallback, mode=0o700) + except FileExistsError: + pass + except OSError as exc: + raise RuntimeError( + f"Unable to create fallback Mobilint cache directory: {fallback}" + ) from exc + + fallback_stat = os.lstat(fallback) + if ( + not stat.S_ISDIR(fallback_stat.st_mode) + or stat.S_ISLNK(fallback_stat.st_mode) + or fallback_stat.st_uid != uid + or fallback_stat.st_mode & 0o077 + ): + raise RuntimeError( + f"Fallback Mobilint cache directory is not a private directory owned by this user: {fallback}" + ) + + try: + with tempfile.NamedTemporaryFile(prefix=".write_test-", dir=fallback): + pass + except OSError as exc: + raise RuntimeError( + f"Fallback Mobilint cache directory is not writable: {fallback}" + ) from exc + return str(fallback) MOBILINT_CACHE_DIR = os.path.expanduser("~/.mblt_model_zoo") @@ -389,8 +427,8 @@ def __init__( cast(str, dev_no or ""), cast(int | None, core_mode), cast(CoreMode | None, target_cores), - cast(Sequence[str | CoreId] | None, target_clusters), - cast(Sequence[int | Cluster] | None, postprocess_kwargs), + cast(Sequence[str | Any] | None, target_clusters), + cast(Sequence[int | Any] | None, postprocess_kwargs), cast(dict[str, Any] | None, framework), cast(str | None, onnx_providers), cast(Sequence[str] | None, model_path or None), @@ -414,6 +452,11 @@ def __init__( "Explicit MXQ model path does not exist: " f"{mxq_path}. Remove model_path/mxq_path to download the configured artifact." ) + if _onnx_path_passed and not os.path.isfile(onnx_path): + raise FileNotFoundError( + "Explicit ONNX model path does not exist: " + f"{onnx_path}. Remove model_path/onnx_path to download the configured artifact." + ) _dev_no_passed = dev_no is not None _core_mode_passed = core_mode is not None _target_cores_passed = target_cores is not None diff --git a/pyproject.toml b/pyproject.toml index 1643915..c15d4ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,8 +8,8 @@ dynamic = ["version"] description = "Mobilint NPU vision models: classification, detection, segmentation, pose" readme = "README.md" dependencies = [ - "mblt-npu-python>=0.0.0", "mobilint-qb-runtime>=1.0.0", + "mblt-npu-python>=0.0.0", "numpy>=1.26.0", "torch>=2.4.1", "opencv-python>=4.11.0.86", diff --git a/tests/test_preprocess_validation.py b/tests/test_preprocess_validation.py index 051a07e..b0c3db9 100644 --- a/tests/test_preprocess_validation.py +++ b/tests/test_preprocess_validation.py @@ -7,6 +7,8 @@ import numpy as np import pytest +import torch +from PIL import Image from mblt_vision.utils.preprocess.center_crop import CenterCrop from mblt_vision.utils.preprocess.letterbox import LetterBox from mblt_vision.utils.preprocess.normalize import Normalize @@ -63,6 +65,33 @@ def test_preprocessing_styles_raise_explicit_errors( factory() +@pytest.mark.parametrize("interpolation", ["box", "hamming", "lanczos"]) +@pytest.mark.parametrize( + "image", [np.zeros((2, 3, 3), dtype=np.uint8), torch.zeros((3, 2, 3))] +) +def test_resize_rejects_pil_only_modes_for_tensor_backed_inputs( + interpolation: str, image: np.ndarray | torch.Tensor +) -> None: + """Fail clearly instead of passing unsupported modes to torch.interpolate.""" + + with pytest.raises(ValueError, match="supported only for PIL images"): + Resize([4, 6], interpolation)(image) + + +@pytest.mark.parametrize("interpolation", ["box", "hamming", "lanczos"]) +def test_resize_keeps_pil_only_modes_available_for_pil_images( + interpolation: str, +) -> None: + """Retain the documented PIL resize modes for PIL callers.""" + + image = Image.fromarray(np.zeros((2, 3, 3), dtype=np.uint8)) + + resized = Resize([4, 6], interpolation)(image) + + assert isinstance(resized, Image.Image) + assert resized.size == (6, 4) + + def test_runtime_validation_survives_optimized_python() -> None: """Keep configuration checks active under ``python -O``.""" diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index cdbfcca..274ea9d 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -2,6 +2,7 @@ from __future__ import annotations +import os from pathlib import Path from typing import Any, cast @@ -99,14 +100,10 @@ def dispose(self) -> None: engine.dispose() -def test_default_cache_dir_uses_private_temporary_fallback( +def test_default_cache_dir_uses_stable_private_fallback( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: - """Avoid a predictable shared cache when the preferred cache cannot be created.""" - - shared_cache = tmp_path / "mblt_model_zoo" - shared_cache.mkdir() - (shared_cache / "poisoned.onnx").write_bytes(b"untrusted") + """Reuse a private fallback cache when the preferred cache cannot be created.""" def _fail_mkdir(self: Path, *args: object, **kwargs: object) -> None: del self, args, kwargs @@ -117,13 +114,31 @@ def _fail_mkdir(self: Path, *args: object, **kwargs: object) -> None: cache_dir = Path(wrapper._default_cache_dir()) - assert cache_dir.parent == tmp_path - assert cache_dir.name.startswith("mblt_model_zoo-") - assert cache_dir != shared_cache - assert not (cache_dir / "poisoned.onnx").exists() + assert cache_dir == tmp_path / f"mblt_model_zoo-{os.getuid()}" + assert wrapper._default_cache_dir() == str(cache_dir) assert cache_dir.stat().st_mode & 0o777 == 0o700 +def test_default_cache_dir_rejects_unsafe_existing_fallback( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Do not reuse a fallback cache that other users can write to.""" + + unsafe_fallback = tmp_path / f"mblt_model_zoo-{os.getuid()}" + unsafe_fallback.mkdir(mode=0o700) + unsafe_fallback.chmod(0o777) + + def _fail_mkdir(self: Path, *args: object, **kwargs: object) -> None: + del self, args, kwargs + raise OSError("home cache is unavailable") + + monkeypatch.setattr(wrapper.Path, "mkdir", _fail_mkdir) + monkeypatch.setattr(wrapper.tempfile, "gettempdir", lambda: str(tmp_path)) + + with pytest.raises(RuntimeError, match="not a private directory"): + wrapper._default_cache_dir() + + def test_default_cache_dir_preserves_existing_probe_named_file( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: @@ -278,6 +293,29 @@ def test_engine_init_rejects_nonexistent_explicit_mxq_path( MBLT_Engine(model_config, **{path_argument: str(missing_path)}) +@pytest.mark.parametrize("path_argument", ["model_path", "onnx_path"]) +def test_engine_init_rejects_nonexistent_explicit_onnx_path( + tmp_path: Path, path_argument: str +) -> None: + """Do not replace an explicit missing ONNX path with a Hub artifact.""" + + missing_path = tmp_path / "missing.onnx" + model_config = { + "file_cfg": { + "repo_id": "mobilint/example", + "filename": "model.mxq", + "revision": "main", + }, + "pre_cfg": {}, + "post_cfg": {}, + } + + with pytest.raises( + FileNotFoundError, match=r"Explicit ONNX model path.*missing\.onnx" + ): + MBLT_Engine(model_config, **{path_argument: str(missing_path)}) + + def test_engine_init_disposes_mxq_backend_after_postprocess_setup_failure( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: From 350dcf88c7e8a177b2f6a8b8c4c9929944d4aac3 Mon Sep 17 00:00:00 2001 From: jinman Date: Wed, 12 Aug 2026 18:04:39 +0900 Subject: [PATCH 17/48] feat: Refactor evaluation and postprocessing logic; add validation for split head counts and enhance tests --- .github/workflows/publish.yml | 9 --- mblt_vision/utils/evaluation/eval_coco.py | 1 - mblt_vision/utils/postprocess/base.py | 14 ++++ .../utils/postprocess/yolo_anchorless_post.py | 16 +++-- .../utils/postprocess/yolo_dflfree_post.py | 16 +++-- mblt_vision/wrapper.py | 3 + tests/test_eval_coco.py | 67 +++++++++++++++++++ tests/test_postprocess_hierarchy.py | 46 +++++++++++++ tests/test_preprocess_validation.py | 5 +- tests/test_wrapper.py | 20 +++++- 10 files changed, 173 insertions(+), 24 deletions(-) create mode 100644 tests/test_eval_coco.py diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6394562..de47c4d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -33,15 +33,6 @@ jobs: - name: Validate distributions run: python -m twine check dist/* - - name: Smoke-test built wheel API - run: | - python -m venv /tmp/mblt-vision-wheel-smoke - /tmp/mblt-vision-wheel-smoke/bin/python -m pip install --upgrade pip - /tmp/mblt-vision-wheel-smoke/bin/python -m pip install --index-url https://download.pytorch.org/whl/cpu torch - /tmp/mblt-vision-wheel-smoke/bin/python -m pip install dist/*.whl - cd /tmp - /tmp/mblt-vision-wheel-smoke/bin/python -c "from mblt_vision import MBLT_Engine, list_models, list_tasks; assert MBLT_Engine; assert list_tasks(); assert list_models()" - - name: Upload built distributions uses: actions/upload-artifact@v7 with: diff --git a/mblt_vision/utils/evaluation/eval_coco.py b/mblt_vision/utils/evaluation/eval_coco.py index 32014a8..15f84a4 100644 --- a/mblt_vision/utils/evaluation/eval_coco.py +++ b/mblt_vision/utils/evaluation/eval_coco.py @@ -180,7 +180,6 @@ def eval_coco_metrics( dataset = CustomCOCODataset( os.path.join(data_path, "val2017"), os.path.join(data_path, "person_keypoints_val2017.json"), - min_keypoints=0, ) dataloader = get_coco_loader(dataset, batch_size, model.preprocess_with_metadata) diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index b88e171..8d66410 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -596,6 +596,20 @@ def nms_multilabel(self, x: Any) -> list[torch.Tensor]: """ return self.nms(x) + def validate_split_head_counts(self, **head_groups: Sequence[object]) -> None: + """Require every raw split-output group to provide every detection head.""" + + expected_count = self.nl + counts = {name: len(heads) for name, heads in head_groups.items()} + if any(count != expected_count for count in counts.values()): + found_counts = ", ".join( + f"{name}={count}" for name, count in counts.items() + ) + raise ValueError( + "Incomplete split-head outputs: " + f"expected {expected_count} heads per group, got {found_counts}." + ) + def masking( self, x: list[torch.Tensor], proto_outs: torch.Tensor | list[torch.Tensor] ) -> list[list[torch.Tensor]]: diff --git a/mblt_vision/utils/postprocess/yolo_anchorless_post.py b/mblt_vision/utils/postprocess/yolo_anchorless_post.py index 30c0260..cecbd72 100644 --- a/mblt_vision/utils/postprocess/yolo_anchorless_post.py +++ b/mblt_vision/utils/postprocess/yolo_anchorless_post.py @@ -128,6 +128,7 @@ def rearrange( # sort as box, scores y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + self.validate_split_head_counts(detection=y_det, classification=y_cls) return torch.cat( [ torch.cat((yi_det, yi_cls), dim=1).flatten(2) @@ -546,10 +547,9 @@ def rearrange(self, x: list[torch.Tensor]) -> tuple[torch.Tensor, torch.Tensor]: proto = y_ext.pop(0).permute(0, 2, 3, 1) y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) - if not len(y_cls) == len(y_det) == len(y_ext): - raise ValueError( - "Classification, detection, and extra output counts must match." - ) + self.validate_split_head_counts( + detection=y_det, classification=y_cls, extra=y_ext + ) y = torch.cat( [ torch.cat((yi_det, yi_cls, yi_ext), dim=1).flatten(2) @@ -602,6 +602,9 @@ def rearrange(self, x: list[torch.Tensor]) -> torch.Tensor: y_kpt = sorted( y_kpt, key=lambda x: x.numel(), reverse=True ) # (b, 51, 6400), (b, 51, 1600), (b, 51, 400) + self.validate_split_head_counts( + detection=y_det, classification=y_cls, keypoint=y_kpt + ) y_tmp = [ torch.cat((yi_det, yi_cls), dim=1).flatten(2) for (yi_det, yi_cls) in zip( @@ -810,8 +813,9 @@ def rearrange(self, x: list[torch.Tensor]) -> torch.Tensor: y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) y_angle = sorted(y_angle, key=lambda x: x.numel(), reverse=True) - if not (len(y_det) == len(y_cls) == len(y_angle)): - raise ValueError("OBB output arguments are not in a proper form.") + self.validate_split_head_counts( + detection=y_det, classification=y_cls, angle=y_angle + ) return torch.cat( [ torch.cat((yi_det, yi_cls, yi_angle), dim=1).flatten(2) diff --git a/mblt_vision/utils/postprocess/yolo_dflfree_post.py b/mblt_vision/utils/postprocess/yolo_dflfree_post.py index 6833361..02b557e 100644 --- a/mblt_vision/utils/postprocess/yolo_dflfree_post.py +++ b/mblt_vision/utils/postprocess/yolo_dflfree_post.py @@ -311,6 +311,7 @@ def rearrange( # sort as box, scores y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) + self.validate_split_head_counts(detection=y_det, classification=y_cls) return torch.cat( [ torch.cat((yi_det, yi_cls), dim=1).flatten(2) @@ -537,10 +538,9 @@ def rearrange(self, x: list[torch.Tensor]) -> tuple[torch.Tensor, torch.Tensor]: proto = y_ext.pop(0).permute(0, 2, 3, 1) y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) - if not len(y_cls) == len(y_det) == len(y_ext): - raise ValueError( - "Classification, detection, and extra output counts must match." - ) + self.validate_split_head_counts( + detection=y_det, classification=y_cls, extra=y_ext + ) y = torch.cat( [ torch.cat((yi_det, yi_cls, yi_ext), dim=1).flatten(2) @@ -634,6 +634,9 @@ def rearrange(self, x: list[torch.Tensor]) -> torch.Tensor: y_kpt = sorted( y_kpt, key=lambda x: x.numel(), reverse=True ) # (b, 51, 6400), (b, 51, 1600), (b, 51, 400) + self.validate_split_head_counts( + detection=y_det, classification=y_cls, keypoint=y_kpt + ) y_tmp = [ torch.cat((yi_det, yi_cls), dim=1).flatten(2) for (yi_det, yi_cls) in zip( @@ -855,8 +858,9 @@ def rearrange(self, x: list[torch.Tensor]) -> torch.Tensor: y_det = sorted(y_det, key=lambda x: x.numel(), reverse=True) y_cls = sorted(y_cls, key=lambda x: x.numel(), reverse=True) y_angle = sorted(y_angle, key=lambda x: x.numel(), reverse=True) - if not (len(y_det) == len(y_cls) == len(y_angle)): - raise ValueError("OBB output arguments are not in a proper form.") + self.validate_split_head_counts( + detection=y_det, classification=y_cls, angle=y_angle + ) return torch.cat( [ torch.cat((yi_det, yi_cls, yi_angle), dim=1).flatten(2) diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index 27a7948..d247837 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -436,7 +436,10 @@ def __init__( model_config_part = resolve_model_config(model_cls, model_type) file_cfg_model_path = str(model_config_part["file_cfg"].get("model_path", "")) + file_cfg_onnx_path = str(model_config_part["file_cfg"].get("onnx_path", "")) framework_model_path = model_path or file_cfg_model_path + if not framework_model_path and not mxq_path: + framework_model_path = onnx_path or file_cfg_onnx_path self.framework = _resolve_framework(framework, framework_model_path) mxq_path, onnx_path = _split_model_paths( framework=self.framework, diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py new file mode 100644 index 0000000..3c13eba --- /dev/null +++ b/tests/test_eval_coco.py @@ -0,0 +1,67 @@ +"""Focused COCO evaluator regression tests.""" + +from __future__ import annotations + +import importlib +from types import SimpleNamespace +from typing import Any + +import pytest + +eval_coco_module = importlib.import_module("mblt_vision.utils.evaluation.eval_coco") + + +def test_pose_evaluation_uses_all_keypoints_annotation_images( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Do not omit COCO images that lack visible-person keypoint annotations.""" + + constructed_kwargs: dict[str, Any] = {} + evaluated_image_ids: list[int] | None = None + + class _Dataset: + def __init__(self, root: str, annotation_path: str, **kwargs: Any) -> None: + constructed_kwargs.update( + root=root, annotation_path=annotation_path, **kwargs + ) + self.ids = [1, 2] + self.coco = object() + + def __len__(self) -> int: + return len(self.ids) + + class _Model: + post_cfg = {"task": "pose_estimation"} + + def set_postprocess_thresholds( + self, *, conf_thres: float | None, iou_thres: float | None + ) -> None: + del conf_thres, iou_thres + + def preprocess_with_metadata(self, image: object) -> object: + return image + + def _evaluate( + coco_gt: object, + coco_results: list[dict[str, Any]], + task: str, + img_ids: list[int] | None = None, + ) -> SimpleNamespace: + nonlocal evaluated_image_ids + del coco_gt, coco_results + assert task == "pose_estimation" + evaluated_image_ids = img_ids + return SimpleNamespace(stats=[SimpleNamespace(item=lambda: 0.1)] * 2) + + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", _Dataset) + monkeypatch.setattr(eval_coco_module, "get_coco_loader", lambda *_: []) + monkeypatch.setattr(eval_coco_module, "evaluate_predictions_on_coco", _evaluate) + + result = eval_coco_module.eval_coco_metrics(_Model(), "/dataset", batch_size=2) + + assert "min_keypoints" not in constructed_kwargs + assert constructed_kwargs["annotation_path"].endswith( + "person_keypoints_val2017.json" + ) + assert evaluated_image_ids == [1, 2] + assert result.map5095 == result.map50 == 0.1 diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index fba8ae1..f974cf4 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -177,6 +177,52 @@ def test_detection_postprocessor_rejects_missing_head_count() -> None: ) +@pytest.mark.parametrize( + ("post_cfg", "channels"), + [ + ({"task": "object_detection", "nl": 3, "reg_max": 16}, [64] * 3 + [80] * 2), + ( + {"task": "instance_segmentation", "nl": 3, "reg_max": 16, "n_extra": 32}, + [32] * 4 + [64] * 3 + [80] * 2, + ), + ( + {"task": "pose_estimation", "nl": 3, "reg_max": 16, "n_extra": 51}, + [64] * 3 + [1] * 2 + [51] * 3, + ), + ( + {"task": "obb", "nl": 3, "reg_max": 16, "n_extra": 1}, + [64] * 3 + [15] * 2 + [1] * 3, + ), + ({"task": "object_detection", "nl": 3, "dflfree": True}, [4] * 3 + [80] * 2), + ( + {"task": "instance_segmentation", "nl": 3, "dflfree": True, "n_extra": 32}, + [32] * 4 + [4] * 3 + [80] * 2, + ), + ( + {"task": "pose_estimation", "nl": 3, "dflfree": True, "n_extra": 51}, + [4] * 3 + [1] * 2 + [51] * 3, + ), + ( + {"task": "obb", "nl": 3, "dflfree": True, "n_extra": 1}, + [4] * 3 + [15] * 2 + [1] * 3, + ), + ], +) +def test_split_head_postprocessors_reject_incomplete_head_groups( + post_cfg: dict[str, Any], channels: list[int] +) -> None: + """Reject malformed raw output sets before zip can discard a detection scale.""" + + postprocessor = build_postprocess({"LetterBox": {"img_size": [64, 64]}}, post_cfg) + raw_outputs = [torch.zeros((1, 2, 2, channel)) for channel in channels] + + with pytest.raises( + ValueError, + match=r"Incomplete split-head outputs: expected 3 heads per group.*classification=2", + ): + postprocessor.rearrange(raw_outputs) # type: ignore[attr-defined] + + def test_segmentation_postprocessor_rejects_mismatched_prototype_batch() -> None: """Do not silently drop detections when prototypes have fewer images.""" diff --git a/tests/test_preprocess_validation.py b/tests/test_preprocess_validation.py index b0c3db9..ed3ed4f 100644 --- a/tests/test_preprocess_validation.py +++ b/tests/test_preprocess_validation.py @@ -28,9 +28,12 @@ def test_image_size_operations_reject_nonpositive_sizes(operation: object) -> No if operation_type is Resize: with pytest.raises(ValueError, match="positive"): Resize(argument, "bilinear") + elif operation_type is CenterCrop: + with pytest.raises(ValueError, match="positive"): + CenterCrop(argument) else: with pytest.raises(ValueError, match="positive"): - operation_type(argument) + LetterBox(argument) @pytest.mark.parametrize("size", [[1], [1, 2, 3], [1.5, 2], "2"]) diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 274ea9d..4e39c99 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -775,7 +775,7 @@ def dispose(self) -> None: @pytest.mark.parametrize( - "model_path_style", ["keyword", "positional", "positional-runtime"] + "model_path_style", ["keyword", "positional", "positional-runtime", "onnx-path"] ) def test_engine_init_accepts_local_onnx_model_path( monkeypatch: pytest.MonkeyPatch, @@ -850,6 +850,8 @@ def InferenceSession(self, path: str, providers: list[str]) -> _FakeSession: "onnx", ["CPUExecutionProvider"], ) + elif model_path_style == "onnx-path": + engine = MBLT_Engine(model_cls=model_config, onnx_path=str(onnx_path)) else: engine = MBLT_Engine(model_cls=model_config, model_path=str(onnx_path)) @@ -866,6 +868,22 @@ def InferenceSession(self, path: str, providers: list[str]) -> _FakeSession: assert fake_ort.session.providers == ["CPUExecutionProvider"] +def test_engine_init_rejects_framework_conflicting_with_onnx_path_alias( + tmp_path: Path, +) -> None: + """Do not silently route an explicit ONNX alias through MXQ inference.""" + + onnx_path = tmp_path / "model.onnx" + onnx_path.write_bytes(b"onnx") + + with pytest.raises(ValueError, match=r"Framework `mxq` conflicts with model path"): + MBLT_Engine( + {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, + onnx_path=str(onnx_path), + framework="mxq", + ) + + def test_engine_init_rejects_conflicting_framework_and_model_path( tmp_path: Path, ) -> None: From 785202574dd8616217e91d333afaddaf82a48f19 Mon Sep 17 00:00:00 2001 From: jinman Date: Thu, 13 Aug 2026 09:31:35 +0900 Subject: [PATCH 18/48] feat: Enhance framework model path resolution for ONNX compatibility in benchmark --- benchmark/benchmark_vision_models.py | 7 ++++++- tests/test_benchmark_vision.py | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/benchmark/benchmark_vision_models.py b/benchmark/benchmark_vision_models.py index fb5f54f..4823e66 100644 --- a/benchmark/benchmark_vision_models.py +++ b/benchmark/benchmark_vision_models.py @@ -454,7 +454,12 @@ def main(argv: Sequence[str] | None = None) -> int: """ args = _parse_args(argv) results_dir = args.results_dir.expanduser().resolve() - framework = resolve_framework(args.framework, args.model_path) + # Keep compatibility-path routing aligned with MBLT_Engine: an explicit + # ONNX path selects the ONNX backend unless an MXQ path takes precedence. + framework_model_path = args.model_path + if not framework_model_path and not args.mxq_path: + framework_model_path = args.onnx_path + framework = resolve_framework(args.framework, framework_model_path) rows: list[dict[str, Any]] = [] for model_name in args.models: for core_mode in _core_modes(args.core_mode, framework): diff --git a/tests/test_benchmark_vision.py b/tests/test_benchmark_vision.py index c9ac659..6c81c6e 100644 --- a/tests/test_benchmark_vision.py +++ b/tests/test_benchmark_vision.py @@ -284,6 +284,7 @@ def test_comparison_rejects_matching_metrics_from_different_tasks( ["--framework", "onnx"], ["--model-path", "model.onnx"], ["--model-path", "MODEL.ONNX"], + ["--onnx-path", "model.onnx"], ], ) def test_onnx_benchmark_uses_one_neutral_runtime_target( From 01a7dbf922d5daec870d90f7c10c8b7efdfbd5b2 Mon Sep 17 00:00:00 2001 From: jinman Date: Thu, 13 Aug 2026 09:55:46 +0900 Subject: [PATCH 19/48] feat: Improve error handling during model disposal and enhance validation for batch size in CLI --- benchmark/benchmark_vision_models.py | 12 ++++- mblt_vision/cli/val.py | 6 ++- mblt_vision/utils/datasets/dataloader.py | 5 +++ pyproject.toml | 1 - tests/test_benchmark_vision.py | 57 ++++++++++++++++++++++++ tests/test_cli.py | 10 +++++ tests/test_dataloader.py | 43 ++++++++++++++++++ 7 files changed, 130 insertions(+), 4 deletions(-) create mode 100644 tests/test_dataloader.py diff --git a/benchmark/benchmark_vision_models.py b/benchmark/benchmark_vision_models.py index 4823e66..2b7220f 100644 --- a/benchmark/benchmark_vision_models.py +++ b/benchmark/benchmark_vision_models.py @@ -374,9 +374,17 @@ def _run_target( ) as exc: row["error"] = f"{type(exc).__name__}: {exc}" finally: - row["elapsed_s"] = round(time.perf_counter() - started, 6) if model is not None: - model.dispose() + try: + model.dispose() + except Exception as exc: + cleanup_error = f"{type(exc).__name__}: {exc}" + if "error" in row: + row["cleanup_error"] = cleanup_error + else: + row["error"] = cleanup_error + row["status"] = "error" + row["elapsed_s"] = round(time.perf_counter() - started, 6) return row diff --git a/mblt_vision/cli/val.py b/mblt_vision/cli/val.py index 45189c7..56ec3e2 100644 --- a/mblt_vision/cli/val.py +++ b/mblt_vision/cli/val.py @@ -8,6 +8,7 @@ from pathlib import Path from mblt_vision._tasks import normalize_vision_task +from mblt_vision.benchmark.argparse_utils import parse_positive_int from mblt_vision.datasets import get_dataset_config, get_dataset_config_for_task from mblt_vision.utils.datasets.readiness import dataset_ready @@ -515,7 +516,10 @@ def add_val_parser( help="Optional semicolon-separated cluster list for multi/global modes, for example `0;1`.", ) parser.add_argument( - "--batch-size", type=int, default=1, help="Batch size for validation." + "--batch-size", + type=parse_positive_int, + default=1, + help="Positive batch size for validation.", ) parser.add_argument( "--data-path", diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index 5713b91..f4d067e 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -15,6 +15,7 @@ from PIL import Image from .cityscapes import CITYSCAPES_SOURCE_TO_TRAIN_ID +from .readiness import IMAGE_SUFFIXES class CustomCOCODataset(torch.utils.data.Dataset[tuple[np.ndarray, int, int, int]]): @@ -715,6 +716,8 @@ def make_dataset(self) -> None: continue for root, _, fnames in sorted(os.walk(target_dir, followlinks=True)): for fname in sorted(fnames): + if os.path.splitext(fname)[1].lower() not in IMAGE_SUFFIXES: + continue path = os.path.join(root, fname) item = path, class_index instances.append(item) @@ -820,6 +823,8 @@ def make_dataset(self) -> None: continue for root, _, fnames in sorted(os.walk(target_dir, followlinks=True)): for fname in sorted(fnames): + if os.path.splitext(fname)[1].lower() not in IMAGE_SUFFIXES: + continue path = os.path.join(root, fname) item = path, target_class, fname instances.append(item) diff --git a/pyproject.toml b/pyproject.toml index c15d4ee..ea5c96c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,6 @@ dynamic = ["version"] description = "Mobilint NPU vision models: classification, detection, segmentation, pose" readme = "README.md" dependencies = [ - "mobilint-qb-runtime>=1.0.0", "mblt-npu-python>=0.0.0", "numpy>=1.26.0", "torch>=2.4.1", diff --git a/tests/test_benchmark_vision.py b/tests/test_benchmark_vision.py index 6c81c6e..cfeb440 100644 --- a/tests/test_benchmark_vision.py +++ b/tests/test_benchmark_vision.py @@ -198,6 +198,63 @@ def fake_evaluate( assert rows[0]["error"] == "TypeError: Unsupported model output" +def test_benchmark_records_dispose_failures_without_losing_other_results( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Write artifacts and continue when a backend fails during cleanup.""" + + class FakeEngine: + """Minimal engine that can fail evaluation or disposal by model name.""" + + def __init__(self, *, model_cls: str, **kwargs: object) -> None: + self.model_cls = model_cls + + def dispose(self) -> None: + if self.model_cls in {"evaluation-failure", "cleanup-failure"}: + raise RuntimeError("Backend cleanup failed") + + def fake_evaluate( + model: FakeEngine, + args: object, + run_dir: Path, + ) -> tuple[float, str, dict[str, float]]: + if model.model_cls == "evaluation-failure": + raise ValueError("Evaluation failed") + return 0.9, "top1_accuracy", {"top1_accuracy": 0.9} + + import mblt_vision as vision + + monkeypatch.setattr(vision, "MBLT_Engine", FakeEngine) + monkeypatch.setattr(benchmark_vision_models, "_evaluate", fake_evaluate) + + result = benchmark_vision_models.main( + [ + "--models", + "evaluation-failure", + "cleanup-failure", + "valid-output", + "--task", + "image_classification", + "--data-path", + str(tmp_path / "dataset"), + "--results-dir", + str(tmp_path / "results"), + "--no-plot", + ] + ) + + with (tmp_path / "results" / "results.csv").open( + newline="", encoding="utf-8" + ) as results_file: + rows = list(csv.DictReader(results_file)) + + assert result == 1 + assert [row["status"] for row in rows] == ["error", "error", "ok"] + assert rows[0]["error"] == "ValueError: Evaluation failed" + assert rows[0]["cleanup_error"] == "RuntimeError: Backend cleanup failed" + assert rows[1]["error"] == "RuntimeError: Backend cleanup failed" + + def test_benchmark_forwards_normalized_target_device( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: diff --git a/tests/test_cli.py b/tests/test_cli.py index f112ee4..aaa38aa 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -51,6 +51,16 @@ def test_vision_cli_uses_single_core_mode_by_default_on_regulus() -> None: assert args.core_mode is None +@pytest.mark.parametrize("batch_size", ["0", "-1"]) +def test_val_rejects_nonpositive_batch_sizes(batch_size: str) -> None: + """Fail argument parsing before validation can construct a model.""" + + with pytest.raises(SystemExit): + build_parser().parse_args( + ["val", "--model", "resnet50", "--batch-size", batch_size] + ) + + @pytest.mark.parametrize("removed_alias", ["classify", "detect", "pose", "segment"]) def test_predict_command_has_no_task_aliases(removed_alias: str) -> None: """Keep prediction discoverable through one task-agnostic command.""" diff --git a/tests/test_dataloader.py b/tests/test_dataloader.py new file mode 100644 index 0000000..cb117f3 --- /dev/null +++ b/tests/test_dataloader.py @@ -0,0 +1,43 @@ +"""Tests for vision dataset sample discovery.""" + +from __future__ import annotations + +from pathlib import Path + +import pytest + +from mblt_vision.utils.datasets.dataloader import ( + CustomImageFolder, + CustomWiderFaceDataset, +) + + +@pytest.mark.parametrize( + ("dataset_class", "class_name"), + [ + (CustomImageFolder, "class-a"), + (CustomWiderFaceDataset, "0--Parade"), + ], +) +def test_class_based_datasets_ignore_non_image_files( + tmp_path: Path, + dataset_class: type[CustomImageFolder] | type[CustomWiderFaceDataset], + class_name: str, +) -> None: + """Keep incidental files out of ImageNet and WiderFace sample lists.""" + + class_dir = tmp_path / class_name + nested_dir = class_dir / "nested" + nested_dir.mkdir(parents=True) + (class_dir / "image.JPG").write_bytes(b"image") + (nested_dir / "image.png").write_bytes(b"image") + (class_dir / ".DS_Store").write_bytes(b"metadata") + (nested_dir / "labels.txt").write_text("metadata", encoding="utf-8") + + dataset = dataset_class(str(tmp_path)) + + assert len(dataset) == 2 + assert {Path(sample[0]).suffix.lower() for sample in dataset.samples} == { + ".jpg", + ".png", + } From 33b1218a4b10212fa253ef61de1fb14cdc6ae49b Mon Sep 17 00:00:00 2001 From: jinman Date: Thu, 13 Aug 2026 10:21:44 +0900 Subject: [PATCH 20/48] feat: Enhance normalization logic to support both HWC and CHW formats; improve error handling and add tests for preprocessing validation --- mblt_vision/utils/preprocess/normalize.py | 12 ++++++++- mblt_vision/wrapper.py | 3 +++ tests/test_dataset_organizer.py | 3 ++- tests/test_eval_dota.py | 24 +++++++++++------ tests/test_postprocess_hierarchy.py | 4 +-- tests/test_preprocess_validation.py | 32 ++++++++++++++++++++--- tests/test_results.py | 3 +++ tests/test_wrapper.py | 27 +++++++++++++++++-- 8 files changed, 90 insertions(+), 18 deletions(-) diff --git a/mblt_vision/utils/preprocess/normalize.py b/mblt_vision/utils/preprocess/normalize.py index 8d7316b..c03b460 100644 --- a/mblt_vision/utils/preprocess/normalize.py +++ b/mblt_vision/utils/preprocess/normalize.py @@ -74,5 +74,15 @@ def __call__(self, x: TensorLike | Image.Image) -> np.ndarray: f"Normalize expects a three-dimensional image, got shape {x.shape}." ) x = x.astype(np.float32) / 255.0 - x = (x - self.mean) / self.std + if x.shape[-1] == len(self.mean): + mean, std = self.mean, self.std + elif x.shape[0] == len(self.mean): + mean = self.mean[:, None, None] + std = self.std[:, None, None] + else: + raise ValueError( + f"Normalize expects HWC or CHW data with {len(self.mean)} channels, " + f"got shape {x.shape}." + ) + x = (x - mean) / std return x.astype(np.float32) diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index d247837..905f947 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -469,6 +469,8 @@ def __init__( dev_no = 0 if core_mode is None: core_mode = "single" + else: + core_mode = normalize_core_mode(core_mode) target_device = normalize_target_device(target_device) is_regulus = target_device in {"regulus-ra", "regulus-rb"} if target_cores is None: @@ -503,6 +505,7 @@ def __init__( self.file_cfg["target_clusters"] = target_clusters if _dev_no_passed or "dev_no" not in self.file_cfg: self.file_cfg["dev_no"] = dev_no + self.file_cfg["core_mode"] = normalize_core_mode(self.file_cfg["core_mode"]) self.file_cfg["target_device"] = target_device self.pre_cfg = copy.deepcopy(model_config_part["pre_cfg"]) diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index dfb6fa3..fbfbafc 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -5,6 +5,7 @@ import io import inspect import tarfile +from collections.abc import Callable from pathlib import Path from typing import Any from zipfile import ZipFile @@ -70,7 +71,7 @@ def test_dotav1_normalized_labels_preserve_difficult_metadata(tmp_path: Path) -> ], ) def test_organizer_defaults_match_registry_cache_root( - organize_dataset: object, dataset_name: str + organize_dataset: Callable[..., Any], dataset_name: str ) -> None: """Write datasets where the packaged registry resolves them by default.""" diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index 938bf3b..52d0ecf 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -3,11 +3,13 @@ from __future__ import annotations from types import SimpleNamespace +from typing import cast import numpy as np import pytest import torch +from mblt_vision.utils.datasets import CustomDOTAv1 from mblt_vision.utils.evaluation.eval_dota import ( _load_ground_truths, evaluate_dota_predictions, @@ -23,10 +25,13 @@ def test_normalized_difficult_flag_loads_as_an_ignored_region(tmp_path) -> None: "0 0 0 0.2 0 0.2 0.2 0 0.2 0\n" "0 0.4 0.4 0.6 0.4 0.6 0.6 0.4 0.6 1\n", encoding="utf-8", ) - dataset = SimpleNamespace( - ids=["image"], - image_paths=["unused"], - _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), ) ground_truth = _load_ground_truths(str(tmp_path), dataset)["image"] @@ -42,10 +47,13 @@ def test_normalized_truncated_annotation_raises_with_file_and_line(tmp_path) -> label_dir.mkdir(parents=True) label_path = label_dir / "image.txt" label_path.write_text("\n0 0 0 0.2\n", encoding="utf-8") - dataset = SimpleNamespace( - ids=["image"], - image_paths=["unused"], - _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), ) with pytest.raises( diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index f974cf4..b84c89d 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -3,7 +3,7 @@ from __future__ import annotations import warnings -from typing import Any +from typing import Any, cast import pytest import torch @@ -131,7 +131,7 @@ def test_empty_anchorless_outputs_preserve_input_device_and_dtype( ) -> None: """Create empty decoded rows from the selected input tensor.""" - postprocessor = postprocessor_type.__new__(postprocessor_type) + postprocessor = cast(Any, postprocessor_type.__new__(postprocessor_type)) postprocessor.nc = 1 postprocessor.n_extra = n_extra postprocessor.inv_conf_thres = 1.0 diff --git a/tests/test_preprocess_validation.py b/tests/test_preprocess_validation.py index ed3ed4f..ec826bd 100644 --- a/tests/test_preprocess_validation.py +++ b/tests/test_preprocess_validation.py @@ -24,16 +24,15 @@ def test_image_size_operations_reject_nonpositive_sizes(operation: object) -> No """Keep size validation active when Python assertions are optimized away.""" operation_type = type(operation) - argument = [0, 2] if operation_type is not Resize else 0 if operation_type is Resize: with pytest.raises(ValueError, match="positive"): - Resize(argument, "bilinear") + Resize(0, "bilinear") elif operation_type is CenterCrop: with pytest.raises(ValueError, match="positive"): - CenterCrop(argument) + CenterCrop([0, 2]) else: with pytest.raises(ValueError, match="positive"): - LetterBox(argument) + LetterBox([0, 2]) @pytest.mark.parametrize("size", [[1], [1, 2, 3], [1.5, 2], "2"]) @@ -51,6 +50,31 @@ def test_set_order_rejects_ambiguous_channel_layout() -> None: SetOrder("HWC")(np.zeros((3, 5, 3), dtype=np.uint8)) +def test_normalize_supports_channel_first_set_order_output() -> None: + """Broadcast normalization statistics per channel after a CHW conversion.""" + + image = np.array( + [ + [[255, 0, 127], [0, 255, 127], [127, 127, 255], [64, 32, 16], [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]], + ], + dtype=np.uint8, + ) + + normalized = Normalize("torch")(SetOrder("CHW")(image)) + expected = ( + image.transpose(2, 0, 1) / 255.0 + - np.array([0.485, 0.456, 0.406])[:, None, None] + ) / np.array([0.229, 0.224, 0.225])[:, None, None] + + assert normalized.shape == (3, 4, 5) + np.testing.assert_allclose( + normalized, expected.astype(np.float32), rtol=1e-6, atol=1e-6 + ) + + @pytest.mark.parametrize( ("factory", "expected"), [ diff --git a/tests/test_results.py b/tests/test_results.py index 9d02498..2ef10c5 100644 --- a/tests/test_results.py +++ b/tests/test_results.py @@ -97,6 +97,8 @@ def test_object_detection_plot_preserves_raw_output_coordinates() -> None: torch.testing.assert_close(box_cls, expected) torch.testing.assert_close(result._box_cls_tensor(), expected) + assert first is not None + assert second is not None assert np.array_equal(first, second) @@ -112,6 +114,7 @@ def test_plot_converts_rgb_array_source_to_bgr() -> None: plotted = result.plot(rgb) + assert plotted is not None assert np.array_equal(plotted, np.array([[[0, 0, 255]]], dtype=np.uint8)) assert np.array_equal(rgb, np.array([[[255, 0, 0]]], dtype=np.uint8)) diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 4e39c99..82dcee7 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -290,7 +290,8 @@ def test_engine_init_rejects_nonexistent_explicit_mxq_path( with pytest.raises( FileNotFoundError, match=r"Explicit MXQ model path.*missing\.mxq" ): - MBLT_Engine(model_config, **{path_argument: str(missing_path)}) + path_kwargs: dict[str, Any] = {path_argument: str(missing_path)} + MBLT_Engine(model_config, **path_kwargs) @pytest.mark.parametrize("path_argument", ["model_path", "onnx_path"]) @@ -313,7 +314,8 @@ def test_engine_init_rejects_nonexistent_explicit_onnx_path( with pytest.raises( FileNotFoundError, match=r"Explicit ONNX model path.*missing\.onnx" ): - MBLT_Engine(model_config, **{path_argument: str(missing_path)}) + path_kwargs: dict[str, Any] = {path_argument: str(missing_path)} + MBLT_Engine(model_config, **path_kwargs) def test_engine_init_disposes_mxq_backend_after_postprocess_setup_failure( @@ -515,6 +517,27 @@ def dispose(self) -> None: engine.dispose() +@pytest.mark.parametrize( + ("configured_core_mode", "core_mode"), + [(None, "unsupported"), ("unsupported", None)], +) +def test_engine_init_rejects_invalid_core_modes( + configured_core_mode: str | None, + core_mode: str | None, +) -> None: + """Validate direct caller and model-config core modes before backend setup.""" + + file_cfg: dict[str, Any] = {} + if configured_core_mode is not None: + file_cfg["core_mode"] = configured_core_mode + + with pytest.raises(ValueError, match="Invalid core mode 'unsupported'"): + MBLT_Engine( + model_cls={"file_cfg": file_cfg, "pre_cfg": {}, "post_cfg": {}}, + core_mode=core_mode, + ) + + def test_engine_init_preserves_shifted_positional_mxq_runtime_arguments( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, From 532cec25f0b6d5cc432e9ed694362f2cf7c684c5 Mon Sep 17 00:00:00 2001 From: jinman Date: Thu, 13 Aug 2026 10:41:40 +0900 Subject: [PATCH 21/48] feat: Enhance HTTP error handling in download functions; add validation for negative class indices in DOTAv1 annotations; improve preprocessing tensor handling --- .github/workflows/publish.yml | 4 ++ mblt_vision/py.typed | 1 + mblt_vision/utils/datasets/organizer.py | 11 +++- mblt_vision/utils/evaluation/eval_dota.py | 4 +- mblt_vision/utils/preprocess/center_crop.py | 2 +- mblt_vision/utils/preprocess/letterbox.py | 2 +- mblt_vision/utils/preprocess/normalize.py | 12 +++- mblt_vision/utils/preprocess/reader.py | 4 +- pyproject.toml | 1 + tests/test_dataset_organizer.py | 61 ++++++++++++++++++++- tests/test_eval_dota.py | 28 ++++++++++ tests/test_preprocess_validation.py | 27 +++++++++ 12 files changed, 146 insertions(+), 11 deletions(-) create mode 100644 mblt_vision/py.typed diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index de47c4d..45f0af2 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -33,6 +33,10 @@ jobs: - name: Validate distributions run: python -m twine check dist/* + - name: Verify wheel package contents + run: | + python -c "from pathlib import Path; from zipfile import ZipFile; wheel, = Path('dist').glob('*.whl'); archive = ZipFile(wheel); assert 'mblt_vision/py.typed' in archive.namelist(), 'Wheel is missing mblt_vision/py.typed'" + - name: Upload built distributions uses: actions/upload-artifact@v7 with: diff --git a/mblt_vision/py.typed b/mblt_vision/py.typed new file mode 100644 index 0000000..be1a4ff --- /dev/null +++ b/mblt_vision/py.typed @@ -0,0 +1 @@ +# PEP 561 marker: mblt_vision ships inline type information. diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 58cdf04..c2c7280 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -56,6 +56,7 @@ CITYSCAPES_IMAGE_SUFFIX = "_leftImg8bit.png" CITYSCAPES_ANNOTATION_SUFFIX = "_gtFine_labelIds.png" IMAGENET_SYNSET_PATTERN = re.compile(r"n\d{8}") +RETRYABLE_HTTP_STATUS_CODES = frozenset({408, 429}) def _replace_staged_directories( @@ -217,7 +218,15 @@ def _download_url(url: str, local_path: str) -> str: requests.ConnectionError, requests.Timeout, requests.exceptions.ChunkedEncodingError, + requests.HTTPError, ) as exc: + if isinstance(exc, requests.HTTPError): + status_code = getattr(exc.response, "status_code", None) + if not isinstance(status_code, int) or ( + status_code not in RETRYABLE_HTTP_STATUS_CODES + and not 500 <= status_code < 600 + ): + raise if attempt == DOWNLOAD_RETRY_LIMIT: raise RuntimeError( f"Failed to download {url} after {DOWNLOAD_RETRY_LIMIT} attempts." @@ -226,7 +235,7 @@ def _download_url(url: str, local_path: str) -> str: os.path.getsize(local_path) if os.path.exists(local_path) else 0 ) print( - f"Download interrupted for {os.path.basename(local_path)}; " + f"Download attempt failed for {os.path.basename(local_path)}; " f"retrying from {resumed_size} bytes (attempt {attempt + 1}/{DOWNLOAD_RETRY_LIMIT})..." ) sleep(DOWNLOAD_RETRY_BACKOFF_SECONDS * attempt) diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index bc20662..534066a 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -102,7 +102,7 @@ def _load_ground_truths( f"got {len(parts)}." ) cls = _label_to_index(parts[0]) - if cls >= get_dotav1_class_num(): + if not 0 <= cls < get_dotav1_class_num(): raise ValueError( f"Unsupported DOTAv1 class index {cls} in {label_path}." ) @@ -124,7 +124,7 @@ def _load_ground_truths( if len(parts) < 9: continue cls = _label_to_index(parts[8]) - if cls >= get_dotav1_class_num(): + if not 0 <= cls < get_dotav1_class_num(): raise ValueError( f"Unsupported DOTAv1 class index {cls} in {original_label_path}." ) diff --git a/mblt_vision/utils/preprocess/center_crop.py b/mblt_vision/utils/preprocess/center_crop.py index 5ea1cfa..b116b3c 100644 --- a/mblt_vision/utils/preprocess/center_crop.py +++ b/mblt_vision/utils/preprocess/center_crop.py @@ -38,7 +38,7 @@ def __call__(self, x: TensorLike | Image.Image) -> np.ndarray: np.ndarray: Center-cropped image in HWC format. """ if isinstance(x, torch.Tensor): - image = x.cpu().numpy() + image = x.detach().cpu().numpy() elif isinstance(x, Image.Image): image = np.array(x) elif isinstance(x, np.ndarray): diff --git a/mblt_vision/utils/preprocess/letterbox.py b/mblt_vision/utils/preprocess/letterbox.py index e6d11b6..1700dfa 100644 --- a/mblt_vision/utils/preprocess/letterbox.py +++ b/mblt_vision/utils/preprocess/letterbox.py @@ -104,7 +104,7 @@ def __call__(self, x: TensorLike) -> torch.Tensor: torch.Tensor: Preprocessed image in HWC format on the selected device. """ if isinstance(x, torch.Tensor): - x = x.cpu().numpy() + x = x.detach().cpu().numpy() elif not isinstance(x, np.ndarray): raise TypeError( f"LetterBox expects a NumPy array or tensor, got {type(x).__name__}." diff --git a/mblt_vision/utils/preprocess/normalize.py b/mblt_vision/utils/preprocess/normalize.py index c03b460..be7dd1b 100644 --- a/mblt_vision/utils/preprocess/normalize.py +++ b/mblt_vision/utils/preprocess/normalize.py @@ -62,7 +62,7 @@ def __call__(self, x: TensorLike | Image.Image) -> np.ndarray: np.ndarray: The normalized image as a float32 numpy array. """ if isinstance(x, torch.Tensor): - x = x.cpu().numpy() + x = x.detach().cpu().numpy() elif isinstance(x, Image.Image): x = np.array(x) elif not isinstance(x, np.ndarray): @@ -74,9 +74,15 @@ def __call__(self, x: TensorLike | Image.Image) -> np.ndarray: f"Normalize expects a three-dimensional image, got shape {x.shape}." ) x = x.astype(np.float32) / 255.0 - if x.shape[-1] == len(self.mean): + channels_first = x.shape[0] == len(self.mean) + channels_last = x.shape[-1] == len(self.mean) + if channels_first and channels_last: + raise ValueError( + f"Normalize cannot infer channel order from ambiguous shape {x.shape}." + ) + if channels_last: mean, std = self.mean, self.std - elif x.shape[0] == len(self.mean): + elif channels_first: mean = self.mean[:, None, None] std = self.std[:, None, None] else: diff --git a/mblt_vision/utils/preprocess/reader.py b/mblt_vision/utils/preprocess/reader.py index 69a83e7..c62e986 100644 --- a/mblt_vision/utils/preprocess/reader.py +++ b/mblt_vision/utils/preprocess/reader.py @@ -53,7 +53,7 @@ def __call__( if isinstance(x, np.ndarray): return x elif isinstance(x, torch.Tensor): - return x.cpu().numpy() + return x.detach().cpu().numpy() elif isinstance(x, (str, Path)): image = cv2.imread(str(x)) if image is None: @@ -69,7 +69,7 @@ def __call__( if isinstance(x, np.ndarray): return Image.fromarray(x.astype(np.uint8)) elif isinstance(x, torch.Tensor): - x = x.cpu().numpy() + x = x.detach().cpu().numpy() return Image.fromarray(x.astype(np.uint8)) elif isinstance(x, (str, Path)): return Image.open(x).convert("RGB") diff --git a/pyproject.toml b/pyproject.toml index ea5c96c..840154d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -66,6 +66,7 @@ version = { attr = "mblt_vision.__version__" } [tool.setuptools.package-data] "mblt_vision" = [ + "py.typed", "models/*.yaml", "datasets/*.yaml", ] diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index fbfbafc..0526ec4 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -98,7 +98,10 @@ def __exit__(self, exc_type: object, exc: object, tb: object) -> None: return None def raise_for_status(self) -> None: - return None + if self.status_code >= 400: + response = requests.Response() + response.status_code = self.status_code + raise requests.HTTPError(response=response) def iter_content(self, chunk_size: int) -> Any: del chunk_size @@ -149,6 +152,62 @@ def _fake_get( assert calls == [{}, {"Range": "bytes=3-"}] +@pytest.mark.parametrize("status_code", [408, 429, 503]) +def test_download_url_retries_transient_http_responses( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + status_code: int, +) -> None: + """Retry transient HTTP responses before accepting a successful download.""" + + calls = 0 + responses = [ + _FakeResponse(status_code=status_code, headers={}, chunks=[]), + _FakeResponse(status_code=200, headers={"Content-Length": "2"}, chunks=[b"ok"]), + ] + + def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: + nonlocal calls + del url, kwargs + calls += 1 + return responses.pop(0) + + monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) + monkeypatch.setattr(organizer, "sleep", lambda _: None) + + local_path = tmp_path / "archive.tar" + assert organizer._download_url( + "https://example.com/archive.tar", str(local_path) + ) == str(local_path) + assert local_path.read_bytes() == b"ok" + assert calls == 2 + + +def test_download_url_does_not_retry_permanent_http_client_errors( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Fail immediately for permanent client errors such as HTTP 404.""" + + calls = 0 + + def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: + nonlocal calls + del url, kwargs + calls += 1 + return _FakeResponse(status_code=404, headers={}, chunks=[]) + + monkeypatch.setattr(organizer.requests, "get", _fake_get) + + with pytest.raises(requests.HTTPError): + organizer._download_url( + "https://example.com/archive.tar", str(tmp_path / "archive.tar") + ) + + assert calls == 1 + + def test_should_download_serially_for_same_host_urls() -> None: """Serialize same-host dataset archive downloads to avoid throttling.""" diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index 52d0ecf..d56e73a 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -63,6 +63,34 @@ def test_normalized_truncated_annotation_raises_with_file_and_line(tmp_path) -> _load_ground_truths(str(tmp_path), dataset) +@pytest.mark.parametrize( + ("label_path", "annotation"), + [ + ("labels/val/image.txt", "-1 0 0 0.2 0 0.2 0.2 0 0.2"), + ("labels/val_original/image.txt", "0 0 20 0 20 20 0 20 -1"), + ], +) +def test_dota_annotations_reject_negative_class_indices( + tmp_path, label_path: str, annotation: str +) -> None: + """Reject invalid negative classes in normalized and original labels.""" + + path = tmp_path / label_path + path.parent.mkdir(parents=True) + path.write_text(annotation, encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises(ValueError, match="Unsupported DOTAv1 class index -1"): + _load_ground_truths(str(tmp_path), dataset) + + def test_difficult_regions_do_not_count_as_positive_or_false_positive() -> None: """Ignore a detection on a difficult region while retaining positive matching.""" diff --git a/tests/test_preprocess_validation.py b/tests/test_preprocess_validation.py index ec826bd..6fb78a7 100644 --- a/tests/test_preprocess_validation.py +++ b/tests/test_preprocess_validation.py @@ -50,6 +50,13 @@ def test_set_order_rejects_ambiguous_channel_layout() -> None: SetOrder("HWC")(np.zeros((3, 5, 3), dtype=np.uint8)) +def test_normalize_rejects_ambiguous_channel_layout() -> None: + """Do not silently apply HWC statistics to potentially CHW data.""" + + with pytest.raises(ValueError, match="ambiguous"): + Normalize("torch")(np.zeros((3, 640, 3), dtype=np.uint8)) + + def test_normalize_supports_channel_first_set_order_output() -> None: """Broadcast normalization statistics per channel after a CHW conversion.""" @@ -75,6 +82,26 @@ def test_normalize_supports_channel_first_set_order_output() -> None: ) +@pytest.mark.parametrize( + ("operation", "output_type"), + [ + (Reader("numpy"), np.ndarray), + (Reader("pil"), Image.Image), + (Normalize("cv"), np.ndarray), + (CenterCrop([2, 3]), np.ndarray), + (LetterBox([2, 3]), torch.Tensor), + ], +) +def test_preprocessors_accept_grad_tracking_tensors( + operation: object, output_type: type[object] +) -> None: + """Detach tensors before preprocessing converts them to NumPy arrays.""" + + image = torch.ones((4, 5, 3), requires_grad=True) + + assert isinstance(operation(image), output_type) # type: ignore[operator] + + @pytest.mark.parametrize( ("factory", "expected"), [ From dcfad1075e172666a28ef9f895f5d5369207b5a7 Mon Sep 17 00:00:00 2001 From: jinman Date: Thu, 13 Aug 2026 12:54:09 +0900 Subject: [PATCH 22/48] feat: Enhance core mode handling for NPU boards; update dataset download URLs to use HTTPS and add SHA-256 verification for integrity --- benchmark/benchmark_vision_models.py | 42 ++++- mblt_vision/datasets/ade20k.yaml | 3 +- mblt_vision/datasets/coco.yaml | 8 +- mblt_vision/utils/datasets/organizer.py | 98 ++++++++++- mblt_vision/wrapper.py | 50 ++++-- tests/test_benchmark_vision.py | 55 +++++- tests/test_dataset_organizer.py | 218 +++++++++++++++++++++++- tests/test_wrapper.py | 88 ++++++++++ 8 files changed, 536 insertions(+), 26 deletions(-) diff --git a/benchmark/benchmark_vision_models.py b/benchmark/benchmark_vision_models.py index 2b7220f..489f3d2 100644 --- a/benchmark/benchmark_vision_models.py +++ b/benchmark/benchmark_vision_models.py @@ -28,10 +28,13 @@ ) from mblt_vision._model_paths import resolve_framework from mblt_vision._tasks import VISION_TASKS, normalize_vision_task +from mblt_vision.wrapper import core_modes_for_target_device from mblt_npu import normalize_target_device CoreMode = Literal["single", "multi", "global4", "global8"] -CORE_MODES: tuple[CoreMode, ...] = ("single", "multi", "global4", "global8") +CORE_MODES: tuple[CoreMode, ...] = cast( + tuple[CoreMode, ...], core_modes_for_target_device("aries-rb") +) TASK_CHOICES = VISION_TASKS SUPPORTED_TARGET_DEVICES = frozenset({"aries-rb", "regulus-ra", "regulus-rb"}) @@ -133,9 +136,12 @@ def _parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace: ) parser.add_argument( "--core-mode", - default="global8", + default=None, choices=[*CORE_MODES, "all"], - help="NPU core mode, or `all` to run every supported mode.", + help=( + "NPU core mode, or `all` to run every mode supported by the selected " + "board. Defaults to global8 on Aries and single on Regulus." + ), ) parser.add_argument("--dev-no", type=int, default=0, help="NPU device number.") parser.add_argument( @@ -187,19 +193,36 @@ def _parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace: return args -def _core_modes(core_mode: str, framework: str | None = None) -> tuple[str, ...]: +def _core_modes( + core_mode: str | None, + framework: str | None = None, + target_device: str = "aries-rb", +) -> tuple[str, ...]: """Expand the multi-run core-mode shorthand. Args: - core_mode: Requested core mode. + core_mode: Requested core mode, or ``None`` for the board default. framework: Resolved inference framework. + target_device: Selected NPU board. Returns: One or more concrete core modes. """ if framework == "onnx": return ("onnx",) - return CORE_MODES if core_mode == "all" else (normalize_core_mode(core_mode),) + supported_modes = core_modes_for_target_device(target_device) + if core_mode is None: + return (supported_modes[-1],) + if core_mode == "all": + return supported_modes + normalized_core_mode = normalize_core_mode(core_mode) + if normalized_core_mode not in supported_modes: + raise ValueError( + f"Core mode {normalized_core_mode!r} is not supported by " + f"{normalize_target_device(target_device)}; expected one of " + f"{list(supported_modes)}." + ) + return (normalized_core_mode,) def _evaluate( @@ -469,8 +492,13 @@ def main(argv: Sequence[str] | None = None) -> int: framework_model_path = args.onnx_path framework = resolve_framework(args.framework, framework_model_path) rows: list[dict[str, Any]] = [] + try: + core_modes = _core_modes(args.core_mode, framework, args.target_device) + except ValueError as exc: + print(f"error: {exc}", file=sys.stderr) + return 2 for model_name in args.models: - for core_mode in _core_modes(args.core_mode, framework): + for core_mode in core_modes: print(f"Benchmarking {model_name} with core mode {core_mode}...") row = _run_target(model_name, core_mode, args, results_dir) rows.append(row) diff --git a/mblt_vision/datasets/ade20k.yaml b/mblt_vision/datasets/ade20k.yaml index 33fcb02..2423bc6 100644 --- a/mblt_vision/datasets/ade20k.yaml +++ b/mblt_vision/datasets/ade20k.yaml @@ -156,7 +156,8 @@ names: 148: clock 149: flag download: - url: http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip + url: https://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip + sha256: 7ff1be44964418441f542a7cc1e1a650e7dc0fc275f5d23252bc9bbdbc977b29 nc: 150 source_ignore_label: 0 ignore_label: 255 diff --git a/mblt_vision/datasets/coco.yaml b/mblt_vision/datasets/coco.yaml index a3ade17..020e094 100644 --- a/mblt_vision/datasets/coco.yaml +++ b/mblt_vision/datasets/coco.yaml @@ -7,8 +7,12 @@ tasks: - pose_estimation val: val2017 download: - images: http://images.cocodataset.org/zips/val2017.zip - annotations: http://images.cocodataset.org/annotations/annotations_trainval2017.zip + # The official COCO object-store hostname has no valid TLS certificate. Use a + # pinned HTTPS mirror and verify each archive digest before extraction. + images: https://huggingface.co/datasets/pcuenq/coco-2017-mirror/resolve/5200d2cffae8121713bec767b4693bdafc0eeb0b/val2017.zip + images_sha256: 4f7e2ccb2866ec5041993c9cf2a952bbed69647b115d0f74da7ce8f4bef82f05 + annotations: https://huggingface.co/datasets/pcuenq/coco-2017-mirror/resolve/5200d2cffae8121713bec767b4693bdafc0eeb0b/annotations_trainval2017.zip + annotations_sha256: 113a836d90195ee1f884e704da6304dfaaecff1f023f49b6ca93c4aaae470268 names: 0: person diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index c2c7280..a3dee9e 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -5,6 +5,7 @@ from __future__ import annotations import concurrent.futures +import hashlib import os import re import shutil @@ -49,14 +50,23 @@ DOTAV1_CLASS_TO_IDX = { name: int(index) for index, name in get_dataset_config("dotav1")["names"].items() } +COCO_DOWNLOAD_CONFIG = get_dataset_config("coco")["download"] +ADE20K_DOWNLOAD_CONFIG = get_dataset_config("ade20k")["download"] NYU_DEPTH_URL = ( "https://github.com/ultralytics/assets/releases/download/v0.0.0/nyu-depth.zip" ) -ADE20K_URL = "http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip" +ADE20K_URL = ADE20K_DOWNLOAD_CONFIG["url"] CITYSCAPES_IMAGE_SUFFIX = "_leftImg8bit.png" CITYSCAPES_ANNOTATION_SUFFIX = "_gtFine_labelIds.png" IMAGENET_SYNSET_PATTERN = re.compile(r"n\d{8}") RETRYABLE_HTTP_STATUS_CODES = frozenset({408, 429}) +CONTENT_RANGE_PATTERN = re.compile(r"^bytes (\d+)-(\d+)/(\d+|\*)$") +UNSATISFIABLE_CONTENT_RANGE_PATTERN = re.compile(r"^bytes \*/(\d+)$") +PINNED_ARCHIVE_SHA256 = { + COCO_DOWNLOAD_CONFIG["images"]: COCO_DOWNLOAD_CONFIG["images_sha256"], + COCO_DOWNLOAD_CONFIG["annotations"]: COCO_DOWNLOAD_CONFIG["annotations_sha256"], + ADE20K_DOWNLOAD_CONFIG["url"]: ADE20K_DOWNLOAD_CONFIG["sha256"], +} def _replace_staged_directories( @@ -158,12 +168,66 @@ def _is_url(path_or_url: str) -> bool: return parsed.scheme in {"http", "https"} and bool(parsed.netloc) -def _download_url(url: str, local_path: str) -> str: +def _verify_archive_sha256( + archive_path: str, expected_sha256: str, source_url: str +) -> None: + """Verify a downloaded archive before it can be extracted.""" + + digest = hashlib.sha256() + with open(archive_path, "rb") as archive: + for chunk in iter(lambda: archive.read(DOWNLOAD_CHUNK_SIZE), b""): + digest.update(chunk) + actual_sha256 = digest.hexdigest() + if actual_sha256 != expected_sha256: + Path(archive_path).unlink(missing_ok=True) + raise ValueError( + f"Downloaded archive SHA-256 mismatch for {source_url}: " + f"expected {expected_sha256}, got {actual_sha256}." + ) + + +def _has_expected_resume_offset(content_range: str | None, existing_size: int) -> bool: + """Return whether a partial response begins exactly after local archive bytes.""" + + if content_range is None: + return False + match = CONTENT_RANGE_PATTERN.fullmatch(content_range) + if match is None: + return False + start, end, total = match.groups() + return ( + int(start) == existing_size + and int(end) >= int(start) + and (total == "*" or int(end) < int(total)) + ) + + +def _is_completed_range_response(content_range: str | None, existing_size: int) -> bool: + """Return whether a 416 confirms that the local archive is complete.""" + + if content_range is None: + return False + match = UNSATISFIABLE_CONTENT_RANGE_PATTERN.fullmatch(content_range) + return match is not None and int(match.group(1)) == existing_size + + +def _restart_partial_download(local_path: str, url: str) -> None: + """Discard an invalid partial archive before retrying from byte zero.""" + + Path(local_path).unlink(missing_ok=True) + print( + f"Server returned an invalid resume response for {os.path.basename(local_path)}; " + "restarting from byte zero." + ) + + +def _download_url(url: str, local_path: str, expected_sha256: str | None = None) -> str: """Downloads a URL to a local file with progress and resume support. Args: url: HTTP(S) URL to download. local_path: Destination file path. + expected_sha256: Optional pinned SHA-256 digest to verify before return. Returns: The local destination path. @@ -185,11 +249,28 @@ def _download_url(url: str, local_path: str) -> str: with requests.get( url, stream=True, timeout=DOWNLOAD_TIMEOUT, headers=headers ) as response: + if response.status_code == 416 and existing_size > 0: + if _is_completed_range_response( + response.headers.get("Content-Range"), existing_size + ): + if expected_sha256 is not None: + _verify_archive_sha256(local_path, expected_sha256, url) + return local_path + _restart_partial_download(local_path, url) + continue response.raise_for_status() if response.status_code == 200 and existing_size > 0: existing_size = 0 mode = "wb" + elif existing_size > 0 and ( + response.status_code != 206 + or not _has_expected_resume_offset( + response.headers.get("Content-Range"), existing_size + ) + ): + _restart_partial_download(local_path, url) + continue total_size = response.headers.get("Content-Length") total_bytes = ( @@ -213,6 +294,8 @@ def _download_url(url: str, local_path: str) -> str: continue file_obj.write(chunk) pbar.update(len(chunk)) + if expected_sha256 is not None: + _verify_archive_sha256(local_path, expected_sha256, url) return local_path except ( requests.ConnectionError, @@ -278,13 +361,22 @@ def _download_if_url(path_or_url: str, download_dir: str) -> str: return path_or_url parsed = urlparse(path_or_url) + if parsed.scheme != "https": + raise ValueError( + "Dataset archive URLs must use HTTPS. Download the archive locally " + f"and provide its path instead: {path_or_url}" + ) filename = os.path.basename(parsed.path) if not filename: raise ValueError(f"Unable to determine a filename from URL: {path_or_url}") local_path = os.path.join(download_dir, filename) print(f"Downloading dataset archive from {path_or_url} to {local_path}...") - _download_url(path_or_url, local_path) + _download_url( + path_or_url, + local_path, + expected_sha256=PINNED_ARCHIVE_SHA256.get(path_or_url), + ) print("Download completed") return local_path diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index 905f947..d8a4e67 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -45,21 +45,41 @@ ) ) CoreMode = str +CORE_MODES: tuple[CoreMode, ...] = ("single", "multi", "global4", "global8") +REGULUS_TARGET_DEVICES = frozenset({"regulus-ra", "regulus-rb"}) -def normalize_core_mode(core_mode: str) -> CoreMode: - """Validate a Vision engine core-mode value.""" +def core_modes_for_target_device(target_device: str) -> tuple[CoreMode, ...]: + """Return the Vision core modes supported by a normalized NPU board.""" - valid_modes = {"single", "multi", "global4", "global8"} - if core_mode not in valid_modes: + if normalize_target_device(target_device) in REGULUS_TARGET_DEVICES: + return ("single",) + return CORE_MODES + + +def normalize_core_mode( + core_mode: str, *, target_device: str | None = None +) -> CoreMode: + """Validate a Vision engine core mode, including board compatibility.""" + + if core_mode not in CORE_MODES: raise ValueError( - f"Invalid core mode '{core_mode}'. Expected one of {sorted(valid_modes)}." + f"Invalid core mode '{core_mode}'. Expected one of {list(CORE_MODES)}." ) + if target_device is not None: + normalized_target_device = normalize_target_device(target_device) + supported_modes = core_modes_for_target_device(normalized_target_device) + if core_mode not in supported_modes: + raise ValueError( + f"Core mode '{core_mode}' is not supported by " + f"{normalized_target_device}; expected one of {list(supported_modes)}." + ) return core_mode __all__ = [ "CoreMode", + "core_modes_for_target_device", "MOBILINT_CACHE_DIR", "get_mobilint_cache_dir", "normalize_core_mode", @@ -376,7 +396,7 @@ def __init__( framework: str | None = None, onnx_providers: Sequence[str] | None = None, model_path: str = "", - target_device: str = "aries-rb", + target_device: str | None = None, ) -> None: """Initializes the MBLT_Engine. @@ -398,6 +418,8 @@ def __init__( framework: Execution framework, either "mxq" or "onnx". When omitted, ``model_path`` suffix is used first, then MXQ is the fallback. onnx_providers: Optional ONNX Runtime execution provider order. + target_device: NPU board identifier. An explicit value takes precedence + over ``file_cfg.target_device``; otherwise defaults to ``aries-rb``. """ if _uses_shifted_engine_model_path_layout( @@ -467,12 +489,16 @@ def __init__( if dev_no is None: dev_no = 0 + if target_device is None: + target_device = model_config_part["file_cfg"].get( + "target_device", "aries-rb" + ) + target_device = normalize_target_device(target_device) + is_regulus = target_device in {"regulus-ra", "regulus-rb"} if core_mode is None: core_mode = "single" else: - core_mode = normalize_core_mode(core_mode) - target_device = normalize_target_device(target_device) - is_regulus = target_device in {"regulus-ra", "regulus-rb"} + core_mode = normalize_core_mode(core_mode, target_device=target_device) if target_cores is None: target_cores = ( [] @@ -497,7 +523,7 @@ def __init__( self.file_cfg["mxq_path"] = mxq_path if _onnx_path_passed or "onnx_path" not in self.file_cfg: self.file_cfg["onnx_path"] = onnx_path - if _core_mode_passed or "core_mode" not in self.file_cfg: + if _core_mode_passed or "core_mode" not in self.file_cfg or is_regulus: self.file_cfg["core_mode"] = core_mode if _target_cores_passed or "target_cores" not in self.file_cfg: self.file_cfg["target_cores"] = target_cores @@ -505,7 +531,9 @@ def __init__( self.file_cfg["target_clusters"] = target_clusters if _dev_no_passed or "dev_no" not in self.file_cfg: self.file_cfg["dev_no"] = dev_no - self.file_cfg["core_mode"] = normalize_core_mode(self.file_cfg["core_mode"]) + self.file_cfg["core_mode"] = normalize_core_mode( + self.file_cfg["core_mode"], target_device=target_device + ) self.file_cfg["target_device"] = target_device self.pre_cfg = copy.deepcopy(model_config_part["pre_cfg"]) diff --git a/tests/test_benchmark_vision.py b/tests/test_benchmark_vision.py index cfeb440..67ed22e 100644 --- a/tests/test_benchmark_vision.py +++ b/tests/test_benchmark_vision.py @@ -308,11 +308,64 @@ def dispose(self) -> None: "framework": None, "dev_no": 0, "target_device": "regulus-ra", - "core_mode": "global8", + "core_mode": "single", } ] +@pytest.mark.parametrize( + ("target_device", "core_mode", "expected_modes"), + [ + ("aries-rb", None, ("global8",)), + ("aries-rb", "all", ("single", "multi", "global4", "global8")), + ("regulus-ra", None, ("single",)), + ("regulus-rb", "all", ("single",)), + ], +) +def test_benchmark_core_modes_follow_the_selected_target_device( + target_device: str, core_mode: str | None, expected_modes: tuple[str, ...] +) -> None: + """Use only execution modes supported by the selected NPU board.""" + + assert ( + benchmark_vision_models._core_modes(core_mode, target_device=target_device) + == expected_modes + ) + + +def test_benchmark_rejects_explicit_unsupported_regulus_core_mode( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Fail before creating an invalid Regulus benchmark engine.""" + + monkeypatch.setattr( + benchmark_vision_models, + "_run_target", + lambda *args: pytest.fail("unsupported mode must not start a benchmark"), + ) + + assert ( + benchmark_vision_models.main( + [ + "--models", + "model-a", + "--task", + "image_classification", + "--target-device", + "regulus-ra", + "--core-mode", + "global8", + "--data-path", + str(tmp_path / "dataset"), + "--results-dir", + str(tmp_path / "results"), + "--no-plot", + ] + ) + == 2 + ) + + def test_comparison_rejects_matching_metrics_from_different_tasks( tmp_path: Path, ) -> None: diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index 0526ec4..98dcf26 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -2,12 +2,14 @@ from __future__ import annotations +import hashlib import io import inspect import tarfile from collections.abc import Callable from pathlib import Path from typing import Any +from urllib.parse import urlparse from zipfile import ZipFile import pytest @@ -128,7 +130,10 @@ def test_download_url_retries_and_resumes_partial_file( ), _FakeResponse( status_code=206, - headers={"Content-Length": str(len(second_chunk))}, + headers={ + "Content-Length": str(len(second_chunk)), + "Content-Range": "bytes 3-5/6", + }, chunks=[second_chunk], ), ] @@ -152,6 +157,112 @@ def _fake_get( assert calls == [{}, {"Range": "bytes=3-"}] +def test_download_url_restarts_when_resume_offset_does_not_match( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Discard a partial file when a range response starts at another offset.""" + + calls: list[dict[str, str]] = [] + responses = [ + _FakeResponse( + status_code=206, + headers={"Content-Length": "3", "Content-Range": "bytes 0-2/6"}, + chunks=[b"bad"], + ), + _FakeResponse( + status_code=200, + headers={"Content-Length": "6"}, + chunks=[b"fresh!"], + ), + ] + + def _fake_get( + url: str, stream: bool, timeout: tuple[int, int], headers: dict[str, str] + ) -> _FakeResponse: + del url, stream, timeout + calls.append(dict(headers)) + return responses.pop(0) + + monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) + local_path = tmp_path / "archive.tar" + local_path.write_bytes(b"old") + + assert organizer._download_url( + "https://example.com/archive.tar", str(local_path) + ) == str(local_path) + assert local_path.read_bytes() == b"fresh!" + assert calls == [{"Range": "bytes=3-"}, {}] + + +def test_download_url_accepts_completed_archive_on_range_not_satisfiable( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Treat a matching 416 total as confirmation that the local file is complete.""" + + payload = b"complete" + calls: list[dict[str, str]] = [] + + def _fake_get( + url: str, stream: bool, timeout: tuple[int, int], headers: dict[str, str] + ) -> _FakeResponse: + del url, stream, timeout + calls.append(dict(headers)) + return _FakeResponse( + status_code=416, + headers={"Content-Range": f"bytes */{len(payload)}"}, + chunks=[], + ) + + monkeypatch.setattr(organizer.requests, "get", _fake_get) + local_path = tmp_path / "archive.tar" + local_path.write_bytes(payload) + + assert organizer._download_url( + "https://example.com/archive.tar", + str(local_path), + expected_sha256=hashlib.sha256(payload).hexdigest(), + ) == str(local_path) + assert local_path.read_bytes() == payload + assert calls == [{"Range": f"bytes={len(payload)}-"}] + + +def test_download_url_restarts_after_incomplete_range_not_satisfiable( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Do not accept a 416 when the local partial file has the wrong size.""" + + responses = [ + _FakeResponse( + status_code=416, + headers={"Content-Range": "bytes */6"}, + chunks=[], + ), + _FakeResponse( + status_code=200, + headers={"Content-Length": "6"}, + chunks=[b"fresh!"], + ), + ] + + def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: + del url, kwargs + return responses.pop(0) + + monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) + local_path = tmp_path / "archive.tar" + local_path.write_bytes(b"old") + + assert organizer._download_url( + "https://example.com/archive.tar", str(local_path) + ) == str(local_path) + assert local_path.read_bytes() == b"fresh!" + + @pytest.mark.parametrize("status_code", [408, 429, 503]) def test_download_url_retries_transient_http_responses( monkeypatch: pytest.MonkeyPatch, @@ -208,6 +319,111 @@ def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: assert calls == 1 +def test_download_url_verifies_pinned_archive_sha256( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Accept only downloaded archive bytes matching the configured digest.""" + + payload = b"verified archive" + + def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: + del url, kwargs + return _FakeResponse( + status_code=200, + headers={"Content-Length": str(len(payload))}, + chunks=[payload], + ) + + monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) + local_path = tmp_path / "archive.zip" + + assert organizer._download_url( + "https://example.com/archive.zip", + str(local_path), + expected_sha256=hashlib.sha256(payload).hexdigest(), + ) == str(local_path) + assert local_path.read_bytes() == payload + + +def test_download_url_rejects_and_removes_digest_mismatches( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Never leave an unverified archive available for later extraction.""" + + def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: + del url, kwargs + return _FakeResponse( + status_code=200, + headers={"Content-Length": "9"}, + chunks=[b"malicious"], + ) + + monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) + local_path = tmp_path / "archive.zip" + + with pytest.raises(ValueError, match="SHA-256 mismatch"): + organizer._download_url( + "https://example.com/archive.zip", + str(local_path), + expected_sha256=hashlib.sha256(b"expected").hexdigest(), + ) + + assert not local_path.exists() + + +def test_download_if_url_passes_registered_archive_digest( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Use the package-pinned digest whenever a default archive is downloaded.""" + + source_url, expected_sha256 = next(iter(organizer.PINNED_ARCHIVE_SHA256.items())) + recorded: dict[str, str | None] = {} + + def _fake_download( + url: str, local_path: str, expected_sha256: str | None = None + ) -> str: + recorded.update(url=url, local_path=local_path, expected_sha256=expected_sha256) + return local_path + + monkeypatch.setattr(organizer, "_download_url", _fake_download) + + assert organizer._download_if_url(source_url, str(tmp_path)) == str( + tmp_path / Path(urlparse(source_url).path).name + ) + assert recorded["url"] == source_url + assert recorded["expected_sha256"] == expected_sha256 + + +def test_download_if_url_rejects_plaintext_http( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Do not fetch benchmark inputs over an unauthenticated transport.""" + + monkeypatch.setattr( + organizer.requests, + "get", + lambda *args, **kwargs: pytest.fail("plaintext URL must not be requested"), + ) + + with pytest.raises(ValueError, match="must use HTTPS"): + organizer._download_if_url("http://example.com/archive.zip", str(tmp_path)) + + +def test_coco_and_ade20k_downloads_use_pinned_https_archives() -> None: + """Keep default benchmark datasets on authenticated, integrity-checked URLs.""" + + assert all(url.startswith("https://") for url in organizer.PINNED_ARCHIVE_SHA256) + assert all( + len(digest) == 64 + and all(character in "0123456789abcdef" for character in digest) + for digest in organizer.PINNED_ARCHIVE_SHA256.values() + ) + + def test_should_download_serially_for_same_host_urls() -> None: """Serialize same-host dataset archive downloads to avoid throttling.""" diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 82dcee7..7e9a9ae 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -538,6 +538,94 @@ def test_engine_init_rejects_invalid_core_modes( ) +def test_engine_init_rejects_core_modes_not_supported_by_regulus() -> None: + """Reject an Aries-only allocation mode before creating a Regulus backend.""" + + with pytest.raises(ValueError, match="not supported by regulus-ra"): + MBLT_Engine( + model_cls={"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, + core_mode="global8", + target_device="regulus-ra", + ) + + +@pytest.mark.parametrize( + ( + "explicit_target_device", + "expected_target_device", + "expected_cores", + "expected_core_mode", + ), + [ + (None, "regulus-rb", [], "single"), + ( + "aries-rb", + "aries-rb", + ["0:0", "0:1", "0:2", "0:3", "1:0", "1:1", "1:2", "1:3"], + "global8", + ), + ], +) +def test_engine_init_resolves_target_device_before_default_core_settings( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + explicit_target_device: str | None, + expected_target_device: str, + expected_cores: list[str], + expected_core_mode: str, +) -> None: + """Prefer an explicit board, otherwise retain the configured board and defaults.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + backend_kwargs: dict[str, Any] = {} + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + backend_kwargs.update(kwargs) + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + return None + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + + engine = MBLT_Engine( + model_cls={ + "file_cfg": {"target_device": "regulus-rb", "core_mode": "global8"}, + "pre_cfg": {}, + "post_cfg": {}, + }, + model_path=str(mxq_path), + target_device=explicit_target_device, + ) + + try: + assert engine.file_cfg["target_device"] == expected_target_device + assert backend_kwargs["target_device"] == expected_target_device + assert backend_kwargs["core_mode"] == expected_core_mode + assert backend_kwargs["target_cores"] == expected_cores + assert backend_kwargs["target_clusters"] == ( + [] if expected_target_device == "regulus-rb" else [0, 1] + ) + finally: + engine.dispose() + + def test_engine_init_preserves_shifted_positional_mxq_runtime_arguments( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, From a75f8bbc2a59c29460980850d15f3c2daf10011e Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 10:30:12 +0900 Subject: [PATCH 23/48] feat: Update COCO dataset organization to use registry download URLs; add validation for evaluation batch lengths and enhance segmentation mask encoding --- benchmark/organize_coco.py | 8 +-- mblt_vision/utils/evaluation/eval_dota.py | 34 ++++++++++++- mblt_vision/utils/postprocess/common.py | 41 ++++++++------- mblt_vision/wrapper.py | 30 ++--------- tests/conftest.py | 14 ++++++ tests/rc/cr7.jpg | Bin 107563 -> 0 bytes tests/rc/tabby.jpg | Bin 2039072 -> 0 bytes tests/rc/volcano.jpg | Bin 726157 -> 0 bytes tests/test_benchmark_vision.py | 15 ++++++ tests/test_eval_dota.py | 58 ++++++++++++++++++++++ tests/test_mxq_inference.py | 9 ++-- tests/test_onnx_classification.py | 9 +--- tests/test_onnx_yolo.py | 36 ++++++-------- tests/test_postprocess_hierarchy.py | 25 ++++++++++ tests/test_wrapper.py | 8 ++- 15 files changed, 203 insertions(+), 84 deletions(-) delete mode 100644 tests/rc/cr7.jpg delete mode 100644 tests/rc/tabby.jpg delete mode 100644 tests/rc/volcano.jpg diff --git a/benchmark/organize_coco.py b/benchmark/organize_coco.py index adb4601..65056e3 100644 --- a/benchmark/organize_coco.py +++ b/benchmark/organize_coco.py @@ -15,12 +15,12 @@ if str(_REPO_ROOT) not in sys.path: sys.path.insert(0, str(_REPO_ROOT)) +from mblt_vision.datasets import get_dataset_config from mblt_vision.utils.datasets import organize_coco -DEFAULT_COCO_IMAGE_SOURCE = "http://images.cocodataset.org/zips/val2017.zip" -DEFAULT_COCO_ANNOTATION_SOURCE = ( - "http://images.cocodataset.org/annotations/annotations_trainval2017.zip" -) +COCO_DOWNLOAD_CONFIG = get_dataset_config("coco")["download"] +DEFAULT_COCO_IMAGE_SOURCE = COCO_DOWNLOAD_CONFIG["images"] +DEFAULT_COCO_ANNOTATION_SOURCE = COCO_DOWNLOAD_CONFIG["annotations"] if __name__ == "__main__": parser = argparse.ArgumentParser(description="Organize COCO dataset") diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 534066a..c732f9d 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -594,6 +594,29 @@ def _nms_output_list(nms_output: Any) -> list[torch.Tensor]: raise TypeError(f"Unsupported OBB NMS output type: {type(nms_output).__name__}.") +def _validate_evaluation_batch_lengths( + nms_outputs: list[torch.Tensor], + input_batch_size: int, + org_shape: Any, + ratio_pad: Any, + image_ids: Any, +) -> None: + """Reject batches whose output or loader metadata omits an image.""" + + batch_lengths = { + "model outputs": len(nms_outputs), + "input batch": input_batch_size, + "original shapes": len(org_shape), + "ratio pads": len(ratio_pad), + "image IDs": len(image_ids), + } + if len(set(batch_lengths.values())) != 1: + details = ", ".join( + f"{name}={length}" for name, length in batch_lengths.items() + ) + raise ValueError(f"DOTAv1 evaluation batch length mismatch: {details}.") + + def eval_dota( model: MBLT_Engine, data_path: str, @@ -641,11 +664,20 @@ def eval_dota( inference_time += time() - tic nms_outs = model.postprocess(out_npu) input_shape = tuple(int(value) for value in input_npu.shape[1:-1]) + nms_outputs = _nms_output_list(nms_outs.output) + _validate_evaluation_batch_lengths( + nms_outputs, + int(input_npu.shape[0]), + org_shape, + ratio_pad, + image_ids, + ) for nms_out, image_id, image_shape, image_ratio_pad in zip( - _nms_output_list(nms_outs.output), + nms_outputs, image_ids, org_shape, ratio_pad, + strict=True, ): target = _ground_truth_to_input_space( ground_truths[image_id], diff --git a/mblt_vision/utils/postprocess/common.py b/mblt_vision/utils/postprocess/common.py index c498a02..e40993c 100644 --- a/mblt_vision/utils/postprocess/common.py +++ b/mblt_vision/utils/postprocess/common.py @@ -1225,6 +1225,25 @@ def multi_encode(pixels: torch.Tensor) -> list[list[int]]: return counts +def _encode_segmentation_masks(seg_result: torch.Tensor) -> list[dict[str, Any]]: + """Threshold resized instance masks and encode them as COCO RLE objects.""" + + h, w = seg_result.shape[1:3] + binary_masks = seg_result > 0.5 + encoded_pixels = ( + binary_masks.permute(0, 2, 1) + .contiguous() + .view(binary_masks.shape[0], h * w) + .to(torch.uint8) + ) + counts = multi_encode(encoded_pixels) + if len(counts) != encoded_pixels.shape[0]: + raise RuntimeError( + f"Encoded {len(counts)} masks for a mask tensor batch of {encoded_pixels.shape[0]}." + ) + return [{"size": [h, w], "counts": to_string(count)} for count in counts] + + def nmsout2eval( nms_outs: list[torch.Tensor] | torch.Tensor, img1_shape: tuple[int, int], @@ -1337,25 +1356,9 @@ def nmsout2eval_seg( ) ] - def mask_encode(seg_result: torch.Tensor) -> list[dict[str, Any]]: - extra = [] - h, w = seg_result.shape[1:3] - seg_result = ( - seg_result.permute(0, 2, 1) - .contiguous() - .view(seg_result.shape[0], h * w) - .byte() - ) - counts = multi_encode(seg_result) - if len(counts) != seg_result.shape[0]: - raise RuntimeError( - f"Encoded {len(counts)} masks for a mask tensor batch of {seg_result.shape[0]}." - ) - for c in counts: - extra.append({"size": [h, w], "counts": to_string(c)}) - return extra - - extra_list = [mask_encode(seg_result) for seg_result in scaled_seg_results] + extra_list = [ + _encode_segmentation_masks(seg_result) for seg_result in scaled_seg_results + ] for labels, boxes, scores, extra in zip( labels_list, boxes_list, scores_list, extra_list ): diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index d8a4e67..af12b86 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -747,36 +747,14 @@ def _prepare_onnx_inputs(self, x: TensorLike) -> dict[str, np.ndarray]: expected_shape = self._require_onnx_session().get_inputs()[0].shape if len(expected_shape) == 4: - if x_np.ndim == 3: - first_channel_count = x_np.shape[0] - last_channel_count = x_np.shape[-1] - elif x_np.ndim == 4: - first_channel_count = x_np.shape[1] - last_channel_count = x_np.shape[-1] - else: - first_channel_count = None - last_channel_count = None - expected_second_dim = expected_shape[1] expected_last_dim = expected_shape[-1] - second_matches_channels = isinstance(expected_second_dim, int) and ( - expected_second_dim == first_channel_count - or expected_second_dim == last_channel_count - ) - last_matches_channels = isinstance(expected_last_dim, int) and ( - expected_last_dim == first_channel_count - or expected_last_dim == last_channel_count - ) - expected_layout = None expected_channels = None - if second_matches_channels and not last_matches_channels: - expected_layout = "nchw" - expected_channels = expected_second_dim - elif last_matches_channels and not second_matches_channels: - expected_layout = "nhwc" - expected_channels = expected_last_dim - elif isinstance(expected_second_dim, int) and expected_second_dim in { + # ONNX layout is encoded by the channel axis, not by a spatial + # dimension that happens to equal a channel count. This is crucial + # for square static inputs such as [1, 3, 224, 224]. + if isinstance(expected_second_dim, int) and expected_second_dim in { 1, 2, 3, diff --git a/tests/conftest.py b/tests/conftest.py index c9e9b9f..671929d 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,4 +2,18 @@ # through its pytest11 entry point and this file is unnecessary; from a source # checkout the star import is what puts pytest_addoption in the root conftest # namespace, which is the only place pytest looks for it. +from pathlib import Path + +import pytest +from PIL import Image + from mblt_npu.pytest_plugin import * # noqa: F401,F403 + + +@pytest.fixture +def synthetic_image_path(tmp_path: Path) -> Path: + """Create a small RGB image for inference tests without committing assets.""" + + image_path = tmp_path / "synthetic-image.jpg" + Image.new("RGB", (64, 48), color=(64, 128, 192)).save(image_path) + return image_path diff --git a/tests/rc/cr7.jpg b/tests/rc/cr7.jpg deleted file mode 100644 index 8b590b64f9dc439f51b2a8f4d984b30ff8d3e85e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107563 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%0Ab*zJ?HR28!lK3;PXdH5jpk!5);7~| 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 z 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%0AeC(W6jw>y*{Ld>EFv5^*Y-jKv48gdS4#{T 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 |;50`!r=N73*?WJ^F`QBpQW@c3 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

      0b7o!yq8B*op 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

      F2dh>I{p6H}YI@&BU_eH2u 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�A1Rl=WoMKLX9^}Q=Zh- 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�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%0D6#Fm*7PhR*Auk-*}d&fM;4j7R<++*iS<|G>qon# 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 O5}h*7`}9p8O~94opxvz;!jY_>1m}QfR7_O=`Jf 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�!JD;5VJi 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 %g%{Kkc?U}!xku#B0^ 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%0DnY|r(sFr)|75-Ug1<9pB4>`f=m!}EoNWjG0 z%i58xZyptja;#633s%6Wy?m$TCq0Y7+?TZ5D)f)7(o;Z#J{!xwz!%Jf-&D>pE zzj#xIAML;OeOK`I>Lso&_UPZoquJ03S=`dY-yo_H53gEf>QwYh@WZQ+BW4`5Zv^^69ul3BJhH40PWq38&W`zsJB6 zzH`30KIjbo1ER?D;}ip?_70hfOftrm@%~#?$#ASyQlhkljFXyQ*DRKXo5v4%$`l!i zPad*Yd%bg5cYia(DRS9A<*>`At{b;V)>7jKZc_!<-gZ8P{c{>z`<8)QoKomf&zamT zJ0ZVz^Z*I9(7o(4crKJF&b`DWD^nPg*Vu^I#L|K5Or_583&t6u;2y`3QoE#2rqf?W zQ@@+=w&me{p^78W5utZ1GEbBC)!z6=M9h}y#5P7e#$tv$g0 zt(~Nv)}+f;vHf2PyxC6eSmS*AfwpEHi)pV>B)mlHqo2QgrJN*7wO`%YOE@jq{aF%d z7Aj)?qG?RYFhd5-i*8NOx0_XDZVkQF`0FaeWx1hPJlnZ8`2LLaQRuUZrcI>5a$oDD zs!Ym3$+H~n8=euGOO00=)u^w!os~yxQjJ?Xjf~)goC^oM&AIjt6jS8`7;(7;HSOh0 z$WJ<>tbyhq3|CqATrR*1csWdvs)`)VlPAiziuN+I#qFZ@y9Qs_mu_85@i`;;A|{kJ z9MoENgQL$`3RbPoQch^L?C+b93*Hz%cWCne~6yRCHu z2cHdR@GM*vq78OUeof|j#}zTaE1va!wz16OXyiC(iz1xm)Vso2_Lo6}2E5Zc1#y99 z)}{0iKHsb9^5*o=Eba;$yMFQ9{6@QqN_vXX+h=0~qC`B`sVfG zB-Y0e@KvjK>vKEF(5sty3IBAscpe}1>`AV!hML>+!Z-~I9h=^`^rqyL#Zh8QEtdNh z*&!!lbQerA-SPT^%d=czuwQG-zDC$!D;dzGaj+4|we%Il)*k#2389yp> zK0|b932=-w<6ATgyc%Y*B8DI@N~k1pK$@5FgE#?93dX3?#mr#>`O+E~uuXtLg}qWS zwR48bMpLm_kWMG-1s7KJxkAwFzXX!_=DjE7QfM!6hAv3>H$qJ@F8jTJ&zihG&K^vc*h-=1#GaQO}u%ho+Owv^64 z3%r+|_|eDI%-xA~i>o(^i`wiI8{IxWp{|#pcv2}7RdA7cY4**8wv%eNq@Qw*T33a= zDs{S=4@(z-TVz_hG1abPPP+qXV5N5CkDVNnTVMWs#Pp2+pjw6DUxqEm|3Y}y!II;> z>lC}Ryr^rR4TP`UWm6b}xA@v!3bQ+jUXWw*YP}x?t zhD9B(SGIL$4s(6ep7ex~ca^Vy%ZsPCTJ-0fL=(a2VdE?j4-Dc&wv)A_KVN;yUJ+Y^ zKBUM^t<&!A!7Cv1ienI5bu+-}sBG#^{OkR~mqA-TU*9QY(Pf32?>Iw9BxkMXu~c~Y z!gW&3Qvn@H9qdPgPy4?t@Gh1V+>=~>^zC+FcN(zOB(&sfy_Y#=z&s2VVl{!3eMHy@ciHGL9$ zrZMpLPA6CGXZ1L~2-ILE{0ukDlD=>{1@D#cn8|j?`wtgQ-bJ6{nwln@M>3Y&UQ@1! zEdK-Bm2xH0s0;Ro$m;nE$#tTaqPwh1MjUAGTupOPyV==V19ByaF%eziM;o!NP}I_T z%`x7eJ?ki{XFGJSc$qw(AQ)gGn+?H7P)u5;ZBM?pQI*ev_APXB+(Skecam~KDTyty zPA87mLpl6W`h*l1(0y2-;|Y^lBHkisZ}X=Bu^LFSSz zZx$6cCc0akX}VvLv_$yg-QZ@PmAk+__bRwz(e$~*i(bv@x^lmIZ4r7>AtZNF`N#SQ zA|Lo4Ne-ER;OC#kceFG{y5+bEjNe~xdKNzdTrD{2P>k+PtM0kJl|tI9tp6=|#Z%CI zNKuZZA`9vL+UwIhoU#IiIbr3T+z7Y@vI}`)LS@oavC{Z7u*e3rTUxouH6L7%((j>c zxt%d8=52Rb;tnaJ`DccMcaWhzrQ^ZGwt}VAq?G-|>v(2Ag%eBcb&aP@%_#E3X2qKt zV7r{`V_Taz4$JQK5Pl>1bNh>`*NUj-hmPIdB6U=rkD2%`2G)erwKH??Stlo#g2GIn zp)Ot{e~qQSs-9mf4AeI472(NO zesx+0`(JokydSJh#&7oDYoSCVT-}sLzC2>PDi^9xA@(pJKe^ zyOX%FVJfvs{gj^Wf}1~vGV`2=j$w_8|MY?9UL_CuvOaT)I3;I5=CL;(l7b^;mlD*n z3y~_PyP#q-lS?D$@b~%t&ZspY>SuKZmKPm0NvBo&Aka|Q5ZYEMnBJQ z^k!aM3LD=4F5&_8%B6F!-`e+1WRIVZR)(49KjBjjq6pW3 zD%m4eLb`O&TlK(%q_W>&S?MK5x$J#0_C%lQr86tWcCfD^U+U3vQu$*eIbI8TIC!2P(sMUkR;`)AHwLYT(F@<5!RV{vZu9L2an1V1SDEAo=pu21tXHq*6PLhO8~}Ch ztyK1CH(~vl#e}c#J08y&@eGjcRf3yPYt_m3GK`lE7)0(y>}S!dJ-S}TOO3@&Y^yDr znJ!1mjPFe7X3wG&VNo%8#1O1i`hwC$$87YgDHm%b7|W@}Rs7F;r*CsGy74#NLF(jt z?RrfoQ8$JU>m2{j?JBeNf4Z2|&(NM>h9_n7UAr!rNKK(~qRD?}tbqbQuMFgIb6*bF zaDdEP?oF?wivGuZ9Q-mJldNj-P-{vp=wShzyA^&|>k^EKg5dv7UC(=RV+=J(S|21z&-LTNlAz9Qd zv$jIg6L(nYiN^@5qThp&G|Amj^=x`Jp(v*pR7*DUy8TLYmnr6kl)w7FTKq~W{4_jj@mtkt7@8i<4FrSkD4nrK>8Z;6ks z%nWi$UY`j9^wc409_^fjnr&1Y$(_NIz=Bik*C9+-=GStXQD5Fjh4IQYEyGm3#48Rw z@eUIhi;&;&LAdltm~#E_NladH59n>|azv7RuJku>SArCvja0ilTjg3y^3s3*HV7Ri zpgxzn5(rE9Oq#NiUKVAO@k>as^)-dbuaBR^ zROk!D(W7D36)R5haHq)*}xu|3QY~} zY%m5<@v`yy#!tS`g>NHn2=;TG(L>P8WAK62KXhhMQ1|VBdT;)@6vso>G~D%CNNnS$ zN$gr-{>w;y3Mzij{N;=RI;eHh;Xic#7`J=TG7)_kuCV!eL*?K3B}sp&o4l8A>J?GP zQV}6pUk_k%_&4khw(vtGsd|zD1dmw?6-&7@D?T1*64NS-u0;(#jkS!u`jL0>@{OM< zqlZ5?CA;2jAM|@JnxAAZzzoZ@*htP+W`@~6_}=28+p`UB6&upNXHXcz+ZO75 zWV&`VwY_|OxuQKBly(VFb!i-Zs2Z5a>WSDb*OV*KV~HxCGYwSueaGkL>{pE7AUiw! z9yi?RPQSO5!R7ybC2V zY(5O#d$AXXg15-N-(8%~zNjOA11dZ6x~XOA z#O+^0y?>tuF*06az7x>Jtpq=QxC}hnx9?5;#x5HO^8!4rMCO2UC03P#(viWpji`eP z!RZbf6%PGZYIdIh&S7f$8Pz+#>LUsb~9D_;aI+ z1=z&Ekk=yBK)C)=?_p(EJ287U;s*WN;NU);0aor^=H{bhI>D)`<)b7B56LKX*Z|T}#WbXkKcW|C_Rek9Bi8G7cT#`Sk z^HyRHr^%^@XI|NqHDqZ0z>&E>nDHn}8L>+3g?=eR6@57PvKPFd1>1x>o;N+A_VDAP z3(Tu)#tv}IUFFk8!k`bND}NbM5LC3@Poi?k!VNd786{K0cSSStH<%`=rakKN19ra7 z;i%OTfFYYJE34ag5yhe}8jcg^=~wM0erv-~^nLFgMH{D!5d?jwFH)ZTKRtz zorfdT{~yOSwIr30P>Ag8>{NC~WUouMbIx|=71=9~ueZ@N&H*I7^vTOR@$ukVqjFNp29vW{%- zT}T`KJ)H%ed;MGjvER91rNNTq(y}4=sus9-lU;5XHgT>6<@M$8$IrYopjAo5*n}W*I?o#Q#4NTTlNOsygT|5Gbu9+Tq9{UI*hKn^EJcCvwe-3}MXZ&7Y)% zF3b+Mdhb!1G}yobPxUntRh~eU8n|xm`}49$UUdAvz;P zg7hmLtKE0v-fV5r9)rGcppK9wCcQ;a--Vs_h$xl9jqmqFEw!t1qVj1L8m=-% z8!1Uvc>1RvArZ*WA@z<}lbv~uJhD8){A+m2mR)w&rIKwW*ImiuNi8^G|5(K`Rd1&; z)m93@7Pm=Wy*O;GPsUH{9~6IEytaDb&6Aj{kQhfAT^~Hhfbr7SsDagi=aq@nU_Hkj zmu=Fs$*X7h2$8Y2IDFlQy9(6%0d`)%#Iqy-un3HpaEY|hk-`XNM6$+(6kow=gT9R@ z^7VV!-c1VHH(u8e)*B>1vOhDirsv^zQ?dt6KTMdJrkN2FK`2+mMsc`(X5%tgROgZxR38`pgfqhQHvDzPb=3Ib@%`!DPwbS?midQcbzOda2 z;O|=m?AUBu39cWx1#&lYBo!?i95Al>xt{DVCQ1NlPTo+on9YudRGjp9A$G6KZxKquM+RZeJZz z4um;BA=6y{J}@%1vLxIPlDN4A=Q*3SP+TlaYR`W9S3=7+86h#*xf6C<&ec#%)kNci z=t=qt5@#zjNb*8Hf~L!9*?}7aHe#&%&-Xu``5A1YhrI-OBkYZA$Kg1+eZ=B6HVYdU%y-Jl=8Z1RjMq*q^kkH?pHl&1Zy$ zaXJfu#<*0bi1$Sb`Cq=Ob%jji6$}@aRrWt;=}1RRF{KLnn}B*nJ{D!qHsf#Isq<-p z-CzUiZ3@GS74@iAPhyObq}ANr!7%WiIe?ZVnCiCXf4DjNRbSq!tYuE%d3;;dmxO{&Fian6URbrey?gqovh;~=t6-74lYh?hWB!W&rpx6>g( zDH`7E`_7x^_6T$_rFjtd7Cve20>e067LiFF6^byDIeJ3S`9@{L97ITd6|VL;3Y|Sl z`#CnsT1Qv&2k2~=9ZsdX_+8tQy%>~2deLuFE85?ydZx9|En^ng{Xm^^iQtKCA>tLIWfB z?qVq;a`CC>Dndy!tk0jU@McjpZqt%}^<7nGBdcf(t<34$YX?vC4e@s?7Aw;O{S5~X zx&`A((z?(-V@#+FrZMDocn0F2JfP$FxGOJZ z>b&n%J;^cM`NVk*8FCKvabqivd9JnKtty(#=fA#oG|jsnXbX8e%3-zxoh zqcJ^=K|d#TeV2V-waXb+R2DlyN-OdRt|+=kZOxx}L}MdfzNGn$)v zhPGo+r`aY`L_50Tv>>G$@@n5T1>rtTQ2fs33PxrUWcXsu3X3Lu5r zXn9IiSiiYz(*Hg?IRim8VX!k&DFi6$Wr3ls=^XMch@T?`%Vl78-cM|__V(jwtLvK%z@MqwsMn+h}=ndliKi+q#6ChwEYv2#em zE=;T6$j?@pD*c(b%KJ=L4Z&?{7f$tW?LO3V!iHki?qf-LF0&$UPYeJ?z+ri}Vy!$V zUwiy#44Hd)l$9&O)r0Ga{S{ucn_tEzolsH64!PAEWB3@f06Nu3G0T40Q={aeuvW+p zi`;M&3c4{Z+!?TyO#x?z!b*XY(^6S*wW~f1|7ehVMy}tm@1~D^tTXSb`NgYJVfI49 zejO33NSueDT0k?6ZKH)S1-*38#CTgq!%fws`4r4Zy-n72U) zV#od(vbIQglO`s!w3O&~iBKu;R=UQ1e}{-ESyXx`8H*wTx4Z$-^@(^Ng%R;xUOipvlGTTK+eVg)Q9U^>g8r zBlagbt&j8hd$GOPV3X^|E^QsoKIfrOXNue|GRli8#W}HmN9m|adCgg$_O7bEfYje3 z<1RiMbx238!ehgmC{Hly3wEEVhZ{2|UrqY|bZjq|x-Unq_}H}TuQGMhq0BZ%E0BaX zGW|Vs5CMX8k_|?bKGO2sfAnfBp?fjrQXEf!c-f_FsNf4{r ze{9N=bn9D`{G2Z`8_@ym!XAB(fv~lyko6A+9D^=q^Ckg(@D`@;=!p~iHv=msTo;Eu z+f>FVvPfam)WURY!^82W^n_hx&=xo=e{{@<4^%R>9xWN#FwtGU;ao&aS~mW=Wj2W? zqY+@xqojPXH6L*em`57{&UtSzsp)3U{J|ld&%I4^GO2faGEaCzcJ#>DLbiQEYx>O` zW$)G5GX-hspWCK8>l2}c@N+=Le7w($Gf}^Pc=Xc3c4WFwi-H)d|80{)j(gR*pFE!^bMI>b_x&uNOfGDqSw)^zgr0rht%8c4SyApM+O9fQfmj3USq@l(HPZ& zOn9vB`=)gTD}5Cc(@}0SXc*oCmmBrf>fUVb%RT7)tQ}M^KvWnhZpdzkqrS-_ z=!`#SDwzUYG~a#ylT+yPBadD|ZhoHyP)8v37`$`Ha+$9yiT7*B=n&&?D7=F~4c=L5 z+{dLO-5sWdOkiEZCH09KoZqzd^0$_b39yAS_X>Bb*64n3U3^LHlE#H-Yx2vFj#e_n zOEhF3oilk1IR|K6ivUHZhRwX7g2O8Qa$?P0nFwzu2aBa6ynqjT>J%es#}5wwm}G3f z+UQZP2j83q+eRPwOD^D?QS;Izor_QC(cr80e4-`F$Ghk0} z-lrm;5Q#z?mai|b76oqp7{Vzdq49ba;_s>$1l=KxBanyXx_q>kbX5DDJ@W+8r~2P; zz36h{EnstBK1$$kE{75DJ9kgm(IXCtz>TAAH%I4Ln^0-o9%kT++?C<%k<|&6>8MH7 zbTDe-o9q2!zi;J+kFLaUCL|>dCbcOs9G2B2X%7<9gz~woTH#`uRz`7O3=^q%9B*X- zEkuP+H8j1wjiU930Kt{juQY8(l}JYs8;$iIrQxH5;B;Go8j>w1YR#jvJlPZQ$U;X+ zgzmQ_$YQrj-=F5Bq3n@C2R<-Q{wlZAq_#=j0oyg3c{(s6SmM-3GH$WO4H%dvuUtMU zRPICj(iCa#xyp9U6I86>{+~`NWEbXhW+a$iKaB(N-p0o4&%)8prkc9U_Ir$ClRe0A zPslp>=Jaa4OaHEQBkxbV-6Q>b}@Jf9Jko zj*4v#=&!}|`Q zQ5EM{J#5e>t@=18cIKq)L%7<-!6Y7l0`;!3?|N16q{;tSBoD7Wvl?14RX1V5UW@=2 z%3vT&co}I@t)cs8!@W(YT~f&22qOCp#HSe0tT_98bOktH*r!AYm^JOw{azb1e-vkt zZm$X-_W|e0P64N+^6qNWTBeHGD-NU%}jf+yg3aitk zlk}2Ul?TU4GX;*hFD5D0?;8HPtN5fk4?d-EWPo)?c-{7!b8wbUto0paVCTg&TH7o# z4^m%i_K$|GY=46Rvs~}Lt;kV}E@=d{3~ZEh>I3@E^*c$;0sp~;Ex!t=?0fOn*NmgP zN0eXG23@nCb#nN=)%FoHqD#9A-mEK9(ADHY>_0nIiUhG-`RM|SSoPB2DSJ3@8gZEQ zd~^QS@I{WuYs-xQq`L`ZG2G|&9>HsRI1zJVJJDEQrbt?0{oV-?JBvC0gB=1<6&^5{m3 za2q-2)ar=-2*~#l1icy3Bp{;A&8OR|)RjhDmQ|sh<#Z1WYiqq~LyyYb5k?SXg_OjQ zxzxyM2IvzW6L`VzTR2s7u6VSvq~)D}%_=T)^>IG+x!aQMH~fh1XdRa&qHT6cJJXXx zRRnb!mnp2z&upiu`XJbd{oum%Gk8#5aS!f7TVprVM1xy%q#;G}xxsFx$N&8_B@HWRG0EjU;c<>*XC09^IGfX# z;oJ3ZW?0h?|NBQ%7K!m3UR5ERVaV8ruyE2 zL)RX9a%i>_6b0A8_PH|_P^V_*?f7xw37&lxexIg3_pT*|{=0hL0b24yOp+VpCkr=ik*?uJWzI6)M|+J4BXu|LwPHn|D5^ zz{LBhNo^4-PteryEEbh=yzbR-tG$;qh7Gyr_ABm!@9Az_>LO812fG80T%cOioa;$o zWck?h<=U>Sn3izM)*Vpp2+n_}2*8KV==OgBk$5iZ^vHDzQm1b8O(7{7B{aHt%&CA>-!u21|D5{nAt!ouEfbOBndZ?W6Lu`@Kd0+-OIM` z{3hHzLm5_UJgLvehJF=3Uu?X@F>k=yYKo5y5Otfs-JQWFL@X4sb@#dX!REoks6g3I z>1GNp5GJV0qUNr2cuvc)`>&7gqXTV%9&mo666c)U#X|S9a#IZ(0`A#v@bNqQf(O+KRXP@ql=uR(Lf7)g;GG|?UlDm_;q6c|g8 z*OI|+H6jMJL+jmerS!TZ<+a9-O*;@{kTZI^o|44P5O!UPg0-20g(8A3)8_E&R3rdY%p%j*y5ky4n}UWmi((XL}GzpraP? zEsdP`5fmAqN$ryB#{a?AeqsAgWR;$COWIqaj)s~>1H5*ln^WxoZ}qW+MgLb5Y>I#$ zyr;EaLh$R&(_26zI9>sHcG2$j#CK^5Qr1v@;4?#*^#Ns2n0IKy&Kclpr6)!P*xlGZj7}||C37zgAG@jDb!f9gEI-o;FhP%vFjV{b|-TYsT&{EYw0x)oX}>G zjFr~hg?yb=Zj_>et6MFnmembyI=a6${bny}K&mvxe+Z+~QXUrc5|GI_PT+2`h2$|L zCAAp|F0xyU9`4_GCD$HYiYNX~@EecAS$C)5b4Q={9tj0ujYsF7^ zcn+_5o?88YU@|}=GpZYnC!0~5o^+NgtP%6Ir@5b{!JF|2*OyxRLM@?=iX_tcKA{f5 zGgl{~YD?j-0TP`Vl13DCR4VKDZN?(07gqm5@FY&|NU57L;_9c0%!ucOk-IItGOR{V z@byuHx=aloU@1-)AH&jp^$f=uO7y%jLKtsf`$Y(EH+#V?)y&U

      $#*Y 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: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

      O(}1b^qKuy@qqutV*oU6*i;h3SJ=qTX_UD(& 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%0DPY&YOmQ;F*5SGtgS?=~$Olgj1Z1;*)z+ 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 diff --git a/tests/rc/volcano.jpg b/tests/rc/volcano.jpg deleted file mode 100644 index 429eb58c754805ca54e220d3e67a58744b87cd56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726157 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 DEaF`oe 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�fnFWEo}fICbqdNAGp**U&02#k>pfQy#0qd!no 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

      opG-w@_Z%! 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Üvuw4GkoZ(LAl8(9c2{53Lxk@!w1O7!^D@D`uG<9 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 zඝ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 None: + """Keep documented COCO organizer defaults aligned with accepted registry URLs.""" + + script = Path(__file__).parents[1] / "benchmark" / "organize_coco.py" + namespace = runpy.run_path(str(script)) + download_config = get_dataset_config("coco")["download"] + + assert namespace["DEFAULT_COCO_IMAGE_SOURCE"] == download_config["images"] + assert namespace["DEFAULT_COCO_ANNOTATION_SOURCE"] == download_config["annotations"] + assert namespace["DEFAULT_COCO_IMAGE_SOURCE"].startswith("https://") + assert namespace["DEFAULT_COCO_ANNOTATION_SOURCE"].startswith("https://") + + def test_benchmark_records_imagenet_metrics_in_primary_order( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index d56e73a..ec36de6 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -2,6 +2,7 @@ from __future__ import annotations +import importlib from types import SimpleNamespace from typing import cast @@ -15,6 +16,63 @@ evaluate_dota_predictions, ) +eval_dota_module = importlib.import_module("mblt_vision.utils.evaluation.eval_dota") + + +def test_eval_dota_rejects_truncated_postprocess_batches( + monkeypatch: pytest.MonkeyPatch, tmp_path +) -> None: + """Do not silently omit ground truths when a batched model output is short.""" + + class _FakeProgress: + def __init__(self, iterable, **kwargs) -> None: + del kwargs + self._iterable = iterable + + def __iter__(self): + return iter(self._iterable) + + def set_postfix_str(self, value: str) -> None: + del value + + def close(self) -> None: + return None + + class _FakeModel: + post_cfg = {"task": "obb"} + preprocess_with_metadata = object() + + def set_postprocess_thresholds(self, **kwargs) -> None: + del kwargs + + def __call__(self, inputs: torch.Tensor) -> torch.Tensor: + return inputs + + def postprocess(self, outputs: torch.Tensor) -> SimpleNamespace: + del outputs + return SimpleNamespace(output=[torch.zeros((0, 7), dtype=torch.float32)]) + + class _FakeDataset: + def __len__(self) -> int: + return 2 + + batch = ( + torch.zeros((2, 8, 8, 3), dtype=torch.float32), + [(8, 8), (8, 8)], + [None, None], + ("first", "second"), + ) + monkeypatch.setattr(eval_dota_module, "CustomDOTAv1", lambda _: _FakeDataset()) + monkeypatch.setattr(eval_dota_module, "get_dota_loader", lambda *args: [batch]) + monkeypatch.setattr(eval_dota_module, "_load_ground_truths", lambda *args: {}) + monkeypatch.setattr(eval_dota_module, "tqdm", _FakeProgress) + + with pytest.raises( + ValueError, + match=r"DOTAv1 evaluation batch length mismatch: model outputs=1, input batch=2", + ): + eval_dota_module.eval_dota(_FakeModel(), str(tmp_path), batch_size=2) + def test_normalized_difficult_flag_loads_as_an_ignored_region(tmp_path) -> None: """Read organizer-produced difficult metadata before selecting evaluation targets.""" diff --git a/tests/test_mxq_inference.py b/tests/test_mxq_inference.py index 3962751..a99a526 100644 --- a/tests/test_mxq_inference.py +++ b/tests/test_mxq_inference.py @@ -2,8 +2,6 @@ from __future__ import annotations -from pathlib import Path - import pytest from mblt_npu.pytest_plugin import NpuParams @@ -12,13 +10,14 @@ pytestmark = [pytest.mark.requires_network, pytest.mark.requires_npu] -def test_mxq_classification_runs_with_shared_npu_options(npu_params: NpuParams) -> None: +def test_mxq_classification_runs_with_shared_npu_options( + npu_params: NpuParams, synthetic_image_path +) -> None: """Load a representative MXQ model using the shared NPU test options.""" - image_path = Path(__file__).parent / "rc" / "tabby.jpg" model = MBLT_Engine(model_cls="resnet50", **npu_params.base) try: - result = model.postprocess(model(model.preprocess(str(image_path)))) + result = model.postprocess(model(model.preprocess(str(synthetic_image_path)))) assert result.task == "image_classification" assert result.acc is not None finally: diff --git a/tests/test_onnx_classification.py b/tests/test_onnx_classification.py index 5df190e..d05d31f 100644 --- a/tests/test_onnx_classification.py +++ b/tests/test_onnx_classification.py @@ -2,14 +2,10 @@ from __future__ import annotations -import os -from pathlib import Path - import pytest from mblt_vision.image_classification import AlexNet, CAFormer_B36, YOLO26sCls -TEST_DIR = Path(__file__).parent pytestmark = pytest.mark.requires_network @@ -21,14 +17,13 @@ YOLO26sCls, ], ) -def test_onnx_classification(model_cls) -> None: +def test_onnx_classification(model_cls, synthetic_image_path) -> None: """Run ONNX inference for representative classification models.""" - image_path = os.path.join(TEST_DIR, "rc", "volcano.jpg") model = model_cls(framework="onnx") try: - input_img = model.preprocess(image_path) + input_img = model.preprocess(str(synthetic_image_path)) output = model(input_img) result = model.postprocess(output) diff --git a/tests/test_onnx_yolo.py b/tests/test_onnx_yolo.py index e8e0876..6b85592 100644 --- a/tests/test_onnx_yolo.py +++ b/tests/test_onnx_yolo.py @@ -2,53 +2,49 @@ from __future__ import annotations -import os from pathlib import Path import pytest from mblt_vision import MBLT_Engine -TEST_DIR = Path(__file__).parent -TMP_DIR = TEST_DIR / "tmp" pytestmark = pytest.mark.requires_network @pytest.mark.parametrize( - ("model_cls", "task", "image_name"), + ("model_cls", "task"), [ - ("yolov5m", "object_detection", "cr7.jpg"), - ("yolov5m-seg", "instance_segmentation", "cr7.jpg"), - ("yolo11m", "object_detection", "cr7.jpg"), - ("yolo11m-seg", "instance_segmentation", "cr7.jpg"), - ("yolo11m-pose", "pose_estimation", "cr7.jpg"), - ("yolov10m", "object_detection", "cr7.jpg"), - ("yolo26m", "object_detection", "cr7.jpg"), - ("yolo26m-seg", "instance_segmentation", "cr7.jpg"), - ("yolo26m-pose", "pose_estimation", "cr7.jpg"), - ("yolov8m-obb", "obb", "cr7.jpg"), - ("yolo11m-obb", "obb", "cr7.jpg"), - ("yolo26m-obb", "obb", "cr7.jpg"), + ("yolov5m", "object_detection"), + ("yolov5m-seg", "instance_segmentation"), + ("yolo11m", "object_detection"), + ("yolo11m-seg", "instance_segmentation"), + ("yolo11m-pose", "pose_estimation"), + ("yolov10m", "object_detection"), + ("yolo26m", "object_detection"), + ("yolo26m-seg", "instance_segmentation"), + ("yolo26m-pose", "pose_estimation"), + ("yolov8m-obb", "obb"), + ("yolo11m-obb", "obb"), + ("yolo26m-obb", "obb"), ], ) def test_onnx_yolo_inference( - model_cls: str, task: str, image_name: str, tmp_path: Path + model_cls: str, task: str, tmp_path: Path, synthetic_image_path: Path ) -> None: """Run ONNX inference for representative YOLO postprocess families.""" - image_path = os.path.join(TEST_DIR, "rc", image_name) save_path = tmp_path / f"{model_cls}_visualization.jpg" model = MBLT_Engine(model_cls=model_cls, framework="onnx") try: - input_img = model.preprocess(image_path) + input_img = model.preprocess(str(synthetic_image_path)) output = model(input_img) result = model.postprocess(output) assert result is not None assert result.task == task assert result.output is not None - result.plot(image_path, save_path=str(save_path)) + result.plot(str(synthetic_image_path), save_path=str(save_path)) assert save_path.is_file() finally: model.dispose() diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index b84c89d..486e19b 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -8,6 +8,7 @@ import pytest import torch from mblt_vision.utils.postprocess import build_postprocess +from mblt_vision.utils.postprocess import common as common_module from mblt_vision.utils.postprocess.base import PostBase, YOLODetectionPostBase from mblt_vision.utils.postprocess.cls_post import ClsPost from mblt_vision.utils.postprocess.depth_post import DepthPost @@ -31,6 +32,30 @@ from mblt_vision.utils.postprocess.yolo_nmsfree_post import YOLONMSFreeDetectionPost +def test_segmentation_rle_encoding_thresholds_resized_masks( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Keep fractional bilinear boundaries from being truncated during RLE export.""" + + resized_mask = common_module.scale_masks( + torch.tensor([[[1.0, 0.0], [1.0, 0.0]]]), (3, 4) + ) + captured_pixels: list[torch.Tensor] = [] + + def _capture_encode(pixels: torch.Tensor) -> list[list[int]]: + captured_pixels.append(pixels.clone()) + return [[pixels.numel()]] + + monkeypatch.setattr(common_module, "multi_encode", _capture_encode) + + common_module._encode_segmentation_masks(resized_mask) + + assert 0.5 < resized_mask[0, 0, 1] < 1.0 + assert captured_pixels[0].view(1, 4, 3).permute(0, 2, 1).tolist() == [ + [[1, 1, 0, 0]] * 3 + ] + + @pytest.mark.parametrize( ("post_cfg", "expected_type"), [ diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 7e9a9ae..3eb0a96 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -1348,8 +1348,8 @@ def get_inputs(self) -> list[_FakeInput]: assert inputs["input"].dtype == np.float32 -def test_prepare_onnx_inputs_transposes_hwc_images() -> None: - """Convert single HWC images to batched NCHW arrays for ONNX runtime.""" +def test_prepare_onnx_inputs_transposes_static_square_hwc_images() -> None: + """Use the static ONNX channel axis to convert square HWC images to NCHW.""" class _FakeInput: name = "input" @@ -1367,10 +1367,14 @@ def get_inputs(self) -> list[_FakeInput]: engine.input_name = "input" image = np.zeros((224, 224, 3), dtype=np.float32) + image[..., 0] = 1.0 + image[..., 1] = 2.0 + image[..., 2] = 3.0 inputs = engine._prepare_onnx_inputs(image) assert inputs["input"].shape == (1, 3, 224, 224) + assert inputs["input"][0, :, 0, 0].tolist() == [1.0, 2.0, 3.0] def test_final_onnx_detections_apply_confidence_threshold() -> None: From 815f246fe054d42789dc8a10eeea60b0e68ef458 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 11:06:07 +0900 Subject: [PATCH 24/48] feat: Enhance compilation output path resolution and validation; improve evaluation metrics handling and add tests for classification postprocessing --- mblt_vision/compile/vision.py | 42 +++++++--- mblt_vision/utils/evaluation/eval_imagenet.py | 23 ++++-- mblt_vision/utils/postprocess/cls_post.py | 22 +++++ mblt_vision/utils/postprocess/depth_post.py | 6 +- mblt_vision/utils/preprocess/reader.py | 38 ++++++++- mblt_vision/wrapper.py | 79 +++++++++++++++--- tests/test_compile_vision.py | 41 ++++++++++ tests/test_depth_estimation.py | 18 ++++ tests/test_eval_imagenet.py | 65 +++++++++++++++ tests/test_postprocess_hierarchy.py | 12 +++ tests/test_preprocess_validation.py | 25 ++++++ tests/test_wrapper.py | 82 +++++++++++++++++++ 12 files changed, 417 insertions(+), 36 deletions(-) create mode 100644 tests/test_eval_imagenet.py diff --git a/mblt_vision/compile/vision.py b/mblt_vision/compile/vision.py index efa9e65..8ccdea3 100644 --- a/mblt_vision/compile/vision.py +++ b/mblt_vision/compile/vision.py @@ -845,6 +845,35 @@ def _resolve_compile_onnx_path( raise FileNotFoundError(f"Unable to resolve {configured_name} for compilation.") +def _resolve_compile_output_path( + save_path: str | Path | None, resolved_onnx: Path +) -> Path: + """Resolve and validate an MXQ compilation output path.""" + + requested_output_path = ( + Path(save_path).expanduser() + if save_path is not None + else _default_model_dir() / f"{resolved_onnx.stem}.mxq" + ) + if requested_output_path.suffix.lower() != ".mxq": + raise ValueError( + "Compilation output path must end with `.mxq`, " + f"got {requested_output_path}." + ) + output_path = requested_output_path.resolve() + if output_path == resolved_onnx.resolve(): + raise ValueError( + "Compilation output path must not be the same as the input ONNX path: " + f"{output_path}." + ) + if output_path.suffix.lower() != ".mxq": + raise ValueError( + "Compilation output path must resolve to a path ending with `.mxq`, " + f"got {output_path}." + ) + return output_path + + def compile_vision_model( model_cls: str, *, @@ -915,11 +944,7 @@ def compile_vision_model( selected_local_path = model_path if model_path is not None else onnx_path if calib_data_path is not None: resolved_onnx = _resolve_compile_onnx_path(file_cfg, selected_local_path) - output_path = ( - Path(save_path).expanduser() - if save_path is not None - else _default_model_dir() / f"{resolved_onnx.stem}.mxq" - ).resolve() + output_path = _resolve_compile_output_path(save_path, resolved_onnx) output_path.parent.mkdir(parents=True, exist_ok=True) resolved_percentile, resolved_topk = resolve_quantization_values( file_cfg, percentile, topk_ratio @@ -968,12 +993,7 @@ def compile_vision_model( f"Unable to resolve {configured_name} for model `{model_cls}`." ) - output_path = ( - Path(save_path).expanduser() - if save_path is not None - else _default_model_dir() / f"{resolved_onnx.stem}.mxq" - ) - output_path = output_path.resolve() + output_path = _resolve_compile_output_path(save_path, resolved_onnx) output_path.parent.mkdir(parents=True, exist_ok=True) resolved_percentile, resolved_topk = resolve_quantization_values( file_cfg, percentile, topk_ratio diff --git a/mblt_vision/utils/evaluation/eval_imagenet.py b/mblt_vision/utils/evaluation/eval_imagenet.py index 3d2b21b..fe46a6c 100644 --- a/mblt_vision/utils/evaluation/eval_imagenet.py +++ b/mblt_vision/utils/evaluation/eval_imagenet.py @@ -68,20 +68,31 @@ def eval_imagenet_metrics( inference_time += time() - tic result = model.postprocess(out_npu) output = result.output - if isinstance(output, np.ndarray): - prediction = output.argmax(-1) - elif isinstance(output, torch.Tensor): - prediction = output.argmax(-1).cpu().numpy() - else: + label_array = np.asarray(label) + if not isinstance(output, (np.ndarray, torch.Tensor)): raise TypeError( f"Expected classification output to be a tensor or ndarray, got {type(output)}." ) + if output.ndim != 2: + raise ValueError( + f"ImageNet classification output must have shape [B, C], got {tuple(output.shape)}." + ) + + output_batch_size = output.shape[0] + if output_batch_size != len(label_array): + raise ValueError( + "ImageNet classification output batch size does not match labels: " + f"got {output_batch_size} outputs for {len(label_array)} labels." + ) + if isinstance(output, np.ndarray): + prediction = output.argmax(-1) + else: + prediction = output.argmax(-1).cpu().numpy() top_k = min(5, output.shape[-1]) if isinstance(output, torch.Tensor): top5_prediction = output.topk(top_k, dim=-1).indices.cpu().numpy() else: top5_prediction = np.argpartition(output, -top_k, axis=-1)[:, -top_k:] - label_array = np.asarray(label) cum_top1_correct += (prediction == label_array).sum().item() cum_top5_correct += ( np.any(top5_prediction == label_array[:, np.newaxis], axis=-1).sum().item() diff --git a/mblt_vision/utils/postprocess/cls_post.py b/mblt_vision/utils/postprocess/cls_post.py index 2ad4730..02d7c80 100644 --- a/mblt_vision/utils/postprocess/cls_post.py +++ b/mblt_vision/utils/postprocess/cls_post.py @@ -9,6 +9,7 @@ import numpy as np import torch +from ...datasets import get_dataset_class_names, get_dataset_config from ..types import ListTensorLike, TensorLike from .base import PostBase @@ -28,6 +29,22 @@ def __init__(self, pre_cfg: dict, post_cfg: dict) -> None: """ super().__init__() self.softmax = post_cfg.get("softmax", False) + self.dataset: str | None = None + self.num_classes: int | None = None + dataset = post_cfg.get("dataset") + if dataset is not None: + if not isinstance(dataset, str) or not dataset: + raise ValueError( + "Classification postprocessing requires post_cfg.dataset to be a non-empty string." + ) + dataset = dataset.lower() + dataset_config = get_dataset_config(dataset) + if "image_classification" not in dataset_config["tasks"]: + raise ValueError( + f"Dataset '{dataset}' does not support image classification." + ) + self.dataset = dataset + self.num_classes = len(get_dataset_class_names(dataset)) def __call__(self, x: TensorLike | ListTensorLike) -> torch.Tensor: """Executes classification post-processing. @@ -64,6 +81,11 @@ def __call__(self, x: TensorLike | ListTensorLike) -> torch.Tensor: x = x.flatten( 1 ) # Classification heads may retain singleton spatial dimensions. + if self.num_classes is not None and x.shape[1] != self.num_classes: + raise ValueError( + f"Classification output has {x.shape[1]} classes, but dataset " + f"'{self.dataset}' requires {self.num_classes}." + ) if self.softmax: return x return x.softmax(dim=-1) diff --git a/mblt_vision/utils/postprocess/depth_post.py b/mblt_vision/utils/postprocess/depth_post.py index 1c9514b..22a4deb 100644 --- a/mblt_vision/utils/postprocess/depth_post.py +++ b/mblt_vision/utils/postprocess/depth_post.py @@ -70,11 +70,7 @@ def _normalize_output(self, x: TensorLike | ListTensorLike) -> torch.Tensor: raise ValueError( f"Depth estimation expects [B, 1, H, W] or [B, H, W, 1], got {tuple(depth.shape)}." ) - elif ( - depth.ndim == 3 - and depth.shape[-1] == 1 - and tuple(depth.shape[:2]) == self.input_shape - ): + elif depth.ndim == 3 and depth.shape[-1] == 1: depth = depth[..., 0].unsqueeze(0) elif depth.ndim != 3: raise ValueError( diff --git a/mblt_vision/utils/preprocess/reader.py b/mblt_vision/utils/preprocess/reader.py index c62e986..7a426a9 100644 --- a/mblt_vision/utils/preprocess/reader.py +++ b/mblt_vision/utils/preprocess/reader.py @@ -19,6 +19,10 @@ class Reader(PreOps): """ Reader for loading images from file paths or converting existing objects. Supports "pil" and "numpy" reading styles. + + For ``style="pil"``, arrays must be ``uint8`` RGB values or finite floating-point + RGB values. Floating-point arrays in ``[0, 1]`` are treated as normalized RGB and + scaled to ``[0, 255]``; other floating-point arrays must already be in ``[0, 255]``. """ def __init__(self, style: str) -> None: @@ -67,10 +71,10 @@ def __call__( ) elif self.style == "pil": if isinstance(x, np.ndarray): - return Image.fromarray(x.astype(np.uint8)) + return Image.fromarray(self._to_uint8_image_array(x)) elif isinstance(x, torch.Tensor): x = x.detach().cpu().numpy() - return Image.fromarray(x.astype(np.uint8)) + return Image.fromarray(self._to_uint8_image_array(x)) elif isinstance(x, (str, Path)): return Image.open(x).convert("RGB") elif isinstance(x, Image.Image): @@ -83,3 +87,33 @@ def __call__( raise RuntimeError( f"Reader has an invalid validated style: {self.style!r}." ) + + @staticmethod + def _to_uint8_image_array(image: np.ndarray) -> np.ndarray: + """Convert a validated array to byte RGB values for Pillow.""" + + if image.dtype == np.uint8: + return image + if not np.issubdtype(image.dtype, np.floating): + raise TypeError( + "Reader(style='pil') accepts uint8 arrays or floating-point arrays " + "with RGB values in [0, 1] or [0, 255]; " + f"got {image.dtype}." + ) + if not np.isfinite(image).all(): + raise ValueError( + "Reader(style='pil') requires floating-point image arrays to contain " + "only finite RGB values." + ) + + min_value = float(image.min()) + max_value = float(image.max()) + if min_value < 0.0 or max_value > 255.0: + raise ValueError( + "Reader(style='pil') accepts floating-point RGB values only in " + "[0, 1] or [0, 255]; " + f"got range [{min_value}, {max_value}]." + ) + if max_value <= 1.0: + image = image * 255.0 + return np.rint(image).astype(np.uint8) diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index af12b86..4606d79 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -11,6 +11,7 @@ import sys import tempfile from pathlib import Path +from types import TracebackType from typing import TYPE_CHECKING, Any, Sequence, cast import numpy as np @@ -547,6 +548,7 @@ def __init__( self._mxq_model: MobilintNPUBackend | None = None self._onnx_model: ONNXBackend | None = None self._onnx_session: Any = None + self._closed = False try: if self.framework == "onnx": @@ -587,13 +589,7 @@ def __init__( ) self.device = torch.device("cpu") except Exception: - for backend in (self._mxq_model, self._onnx_model): - if backend is None: - continue - try: - backend.dispose() - except Exception: - pass + self._close(suppress_errors=True) raise def _mxq_backend_kwargs(self) -> dict[str, Any]: @@ -857,6 +853,7 @@ def __call__( Returns: Raw model output. """ + self._ensure_open() if self.framework == "onnx": outputs = self._require_onnx_session().run( self.output_names, self._prepare_onnx_inputs(x) @@ -994,15 +991,73 @@ def cuda( def launch(self) -> None: """Launches the underlying model.""" + self._ensure_open() if self.framework == "mxq": self._require_mxq_model().launch() def dispose(self) -> None: - """Disposes the underlying model.""" - if self.framework == "mxq": - self._require_mxq_model().dispose() - elif self._onnx_model is not None: - self._onnx_model.dispose() + """Compatibility alias for :meth:`close`.""" + + self.close() + + def close(self) -> None: + """Release backend resources. Safe to call more than once.""" + + self._close(suppress_errors=False) + + def __enter__(self) -> MBLT_Engine: + """Return this engine for use in a context manager.""" + + self._ensure_open() + return self + + def __exit__( + self, + exc_type: type[BaseException] | None, + exc_value: BaseException | None, + traceback: TracebackType | None, + ) -> bool: + """Release resources when leaving a context manager block.""" + + del exc_value, traceback + self._close(suppress_errors=exc_type is not None) + return False + + def __del__(self) -> None: + """Best-effort cleanup for engines not explicitly closed by callers.""" + + try: + self._close(suppress_errors=True) + except Exception: + pass + + def _ensure_open(self) -> None: + """Raise when inference is attempted after backend disposal.""" + + if getattr(self, "_closed", False): + raise RuntimeError("MBLT_Engine is closed.") + + def _close(self, *, suppress_errors: bool) -> None: + """Dispose acquired backends once, optionally suppressing cleanup failures.""" + + if getattr(self, "_closed", False): + return + self._closed = True + first_error: Exception | None = None + for backend in ( + getattr(self, "_mxq_model", None), + getattr(self, "_onnx_model", None), + ): + if backend is None: + continue + try: + backend.dispose() + except Exception as exc: + if first_error is None: + first_error = exc + self._onnx_session = None + if first_error is not None and not suppress_errors: + raise first_error def model_name_aliasing(self, model_name: str) -> str: """Finds the YAML config filename that matches the given model name. diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py index a08a187..f8a82e2 100644 --- a/tests/test_compile_vision.py +++ b/tests/test_compile_vision.py @@ -611,6 +611,7 @@ def _run_fake_compile( entry_level: str = "data", dataset: str | None = None, target_device: str = "aries-rb", + save_path: Path | None = None, fail: bool = False, calls: dict[str, Any] | None = None, ) -> tuple[dict[str, Any], Path]: @@ -735,6 +736,7 @@ def _ensure_dataset( data_path=original_data_path, subset_path=subset_path, calib_data_path=calib_data_path, + save_path=save_path, subset_size=1, ) return calls, hosted_onnx @@ -827,6 +829,45 @@ def test_compile_rejects_non_onnx_local_model_with_ready_calibration_data( ) +@pytest.mark.parametrize("entry_level", ["data", "calibration"]) +def test_compile_requires_an_mxq_output_path( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path, entry_level: str +) -> None: + """Reject mislabeled compiler output paths in both compilation branches.""" + + with pytest.raises(ValueError, match=r"output path must end with `.mxq`"): + _run_fake_compile( + monkeypatch, + tmp_path, + task="image_classification", + model_path=None, + entry_level=entry_level, + save_path=tmp_path / "compiled.onnx", + ) + + +@pytest.mark.parametrize("entry_level", ["data", "calibration"]) +def test_compile_rejects_output_path_resolving_to_source_onnx( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path, entry_level: str +) -> None: + """Do not let an MXQ-named symlink overwrite the input ONNX model.""" + + source_onnx = tmp_path / "source.onnx" + source_onnx.write_bytes(b"onnx") + output_alias = tmp_path / "compiled.mxq" + output_alias.symlink_to(source_onnx) + + with pytest.raises(ValueError, match="must not be the same as the input ONNX path"): + _run_fake_compile( + monkeypatch, + tmp_path, + task="image_classification", + model_path=source_onnx, + entry_level=entry_level, + save_path=output_alias, + ) + + def test_compile_ignores_missing_local_path_and_uses_hosted_onnx( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: diff --git a/tests/test_depth_estimation.py b/tests/test_depth_estimation.py index a29ac7c..b52a4b0 100644 --- a/tests/test_depth_estimation.py +++ b/tests/test_depth_estimation.py @@ -92,3 +92,21 @@ def test_depth_post_normalizes_full_resolution_channel_last_mxq_output() -> None normalized_single_image = post(single_image) assert isinstance(normalized_single_image, torch.Tensor) assert torch.equal(normalized_single_image, full_resolution[..., 0]) + + +def test_depth_post_normalizes_quarter_resolution_channel_last_output() -> None: + """Remove a single-image channel-last axis before checking quarter resolution.""" + + post = DepthPost({"LetterBox": {"img_size": [8, 8]}}, {}) + channel_last_depth = torch.arange(4, dtype=torch.float32).reshape(2, 2, 1) + expected = torch.nn.functional.interpolate( + channel_last_depth[..., 0][None, None], + scale_factor=4.0, + mode="bilinear", + align_corners=False, + )[:, 0] + + normalized = post(channel_last_depth) + + assert isinstance(normalized, torch.Tensor) + assert torch.equal(normalized, expected) diff --git a/tests/test_eval_imagenet.py b/tests/test_eval_imagenet.py new file mode 100644 index 0000000..f478d14 --- /dev/null +++ b/tests/test_eval_imagenet.py @@ -0,0 +1,65 @@ +"""Focused ImageNet evaluator regression tests.""" + +from __future__ import annotations + +import importlib +from types import SimpleNamespace + +import pytest +import torch + +eval_imagenet_module = importlib.import_module( + "mblt_vision.utils.evaluation.eval_imagenet" +) + + +def test_imagenet_evaluation_rejects_truncated_classification_batches( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Do not broadcast one classification row across a multi-image label batch.""" + + class _FakeDataset: + def __len__(self) -> int: + return 2 + + class _FakeProgress: + def __init__(self, iterable, **kwargs) -> None: + del kwargs + self._iterable = iterable + + def __iter__(self): + return iter(self._iterable) + + def set_postfix_str(self, value: str) -> None: + del value + + def close(self) -> None: + return None + + class _FakeModel: + def preprocess(self, value: object) -> object: + return value + + def __call__(self, inputs: torch.Tensor) -> torch.Tensor: + return inputs + + def postprocess(self, outputs: torch.Tensor) -> SimpleNamespace: + del outputs + return SimpleNamespace(output=torch.zeros((1, 5), dtype=torch.float32)) + + batch = (torch.zeros((2, 3, 8, 8)), torch.tensor([0, 1])) + monkeypatch.setattr( + eval_imagenet_module, "CustomImageFolder", lambda _: _FakeDataset() + ) + monkeypatch.setattr( + eval_imagenet_module, "get_imagenet_loader", lambda *args: [batch] + ) + monkeypatch.setattr(eval_imagenet_module, "tqdm", _FakeProgress) + + with pytest.raises( + ValueError, + match="got 1 outputs for 2 labels", + ): + eval_imagenet_module.eval_imagenet_metrics( + _FakeModel(), "/dataset", batch_size=2 + ) diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index 486e19b..0be0636 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -56,6 +56,18 @@ def _capture_encode(pixels: torch.Tensor) -> list[list[int]]: ] +def test_classification_postprocessor_rejects_wrong_taxonomy_width() -> None: + """Reject local classification artifacts whose heads do not match ImageNet.""" + + postprocessor = ClsPost({}, {"task": "image_classification", "dataset": "imagenet"}) + + with pytest.raises( + ValueError, + match="Classification output has 999 classes, but dataset 'imagenet' requires 1000", + ): + postprocessor(torch.zeros((1, 999), dtype=torch.float32)) + + @pytest.mark.parametrize( ("post_cfg", "expected_type"), [ diff --git a/tests/test_preprocess_validation.py b/tests/test_preprocess_validation.py index 6fb78a7..e37697e 100644 --- a/tests/test_preprocess_validation.py +++ b/tests/test_preprocess_validation.py @@ -102,6 +102,31 @@ def test_preprocessors_accept_grad_tracking_tensors( assert isinstance(operation(image), output_type) # type: ignore[operator] +def test_reader_pil_scales_normalized_float_arrays() -> None: + """Convert normalized float RGB inputs deliberately instead of truncating them.""" + + image = np.full((2, 3, 3), 0.5, dtype=np.float32) + + converted = np.asarray(Reader("pil")(image)) + + np.testing.assert_array_equal(converted, np.full((2, 3, 3), 128, dtype=np.uint8)) + + +@pytest.mark.parametrize( + "image", + [ + np.full((2, 3, 3), -0.1, dtype=np.float32), + np.full((2, 3, 3), 256.0, dtype=np.float32), + np.full((2, 3, 3), np.nan, dtype=np.float32), + ], +) +def test_reader_pil_rejects_invalid_float_image_arrays(image: np.ndarray) -> None: + """Do not silently cast invalid float RGB values to byte images.""" + + with pytest.raises(ValueError, match=r"finite RGB values|\[0, 1\] or \[0, 255\]"): + Reader("pil")(image) + + @pytest.mark.parametrize( ("factory", "expected"), [ diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 3eb0a96..7af7e15 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -3,6 +3,7 @@ from __future__ import annotations import os +import gc from pathlib import Path from typing import Any, cast @@ -413,6 +414,87 @@ def dispose(self) -> None: assert disposed +def test_engine_context_manager_closes_backend_once( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Context exit releases an MXQ backend and close/dispose remain idempotent.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + dispose_calls = 0 + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + del kwargs + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + nonlocal dispose_calls + dispose_calls += 1 + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr(wrapper, "build_postprocess", lambda *args, **kwargs: object()) + + with MBLT_Engine( + {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, model_path=str(mxq_path) + ) as engine: + assert engine is not None + + engine.close() + engine.dispose() + assert dispose_calls == 1 + with pytest.raises(RuntimeError, match="closed"): + engine(torch.zeros((1, 3, 8, 8))) + + +def test_engine_finalizer_closes_unmanaged_backend( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Best-effort finalization prevents leaked backends for unmanaged engines.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + dispose_calls = 0 + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + del kwargs + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + nonlocal dispose_calls + dispose_calls += 1 + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr(wrapper, "build_postprocess", lambda *args, **kwargs: object()) + + engine = MBLT_Engine( + {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, model_path=str(mxq_path) + ) + del engine + gc.collect() + + assert dispose_calls == 1 + + def test_engine_init_accepts_local_mxq_model_path( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, From 65bc705caaa1c735343def779dfd21c661994df9 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 12:36:01 +0900 Subject: [PATCH 25/48] feat: Enhance validation for DOTAv1 annotations and COCO class IDs; add tests for malformed inputs and preprocessing functions --- mblt_vision/utils/datasets/organizer.py | 14 +++-- mblt_vision/utils/postprocess/common.py | 12 ++++ mblt_vision/utils/preprocess/_validation.py | 34 +++++++++++ mblt_vision/utils/preprocess/letterbox.py | 7 ++- mblt_vision/utils/preprocess/reader.py | 39 +++---------- mblt_vision/wrapper.py | 2 +- tests/test_dataset_organizer.py | 22 +++++++ tests/test_preprocess_validation.py | 26 +++++++++ tests/test_wrapper.py | 65 +++++++++++++++++++++ 9 files changed, 181 insertions(+), 40 deletions(-) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index a3dee9e..879a12f 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -1449,14 +1449,18 @@ def _write_dotav1_yolo_labels( width, height = image.size converted_lines: list[str] = [] with open(original_label_path, encoding="utf-8") as label_file: - for line in label_file: + for line_number, line in enumerate(label_file, start=1): fields = line.split() - if ( - len(fields) < 10 - or fields[0].startswith("imagesource:") - or fields[0].startswith("gsd:") + if fields and ( + fields[0].startswith("imagesource:") or fields[0].startswith("gsd:") ): continue + if len(fields) < 10: + raise ValueError( + "Malformed DOTAv1 annotation in " + f"{original_label_path} at line {line_number}: expected at least " + f"10 fields, got {len(fields)}." + ) class_name = fields[8] if class_name not in DOTAV1_CLASS_TO_IDX: raise ValueError( diff --git a/mblt_vision/utils/postprocess/common.py b/mblt_vision/utils/postprocess/common.py index e40993c..dc6ed5a 100644 --- a/mblt_vision/utils/postprocess/common.py +++ b/mblt_vision/utils/postprocess/common.py @@ -1278,6 +1278,18 @@ def nmsout2eval( boxes = nms_out[:, :4].clone() scores = nms_out[:, 4] labels = nms_out[:, 5] + valid_labels = ( + torch.isfinite(labels) + & (labels == labels.round()) + & (labels >= 0) + & (labels < 80) + ) + if not bool(valid_labels.all()): + invalid_labels = labels[~valid_labels].detach().cpu().tolist() + raise ValueError( + "COCO class IDs must be finite integral values in [0, 79]; " + f"got {invalid_labels}." + ) boxes = scale_boxes( img1_shape, boxes, img0_shape, ratio_pad=ratio_pad ) # scale boxes to original image size diff --git a/mblt_vision/utils/preprocess/_validation.py b/mblt_vision/utils/preprocess/_validation.py index fff82ae..5d393d9 100644 --- a/mblt_vision/utils/preprocess/_validation.py +++ b/mblt_vision/utils/preprocess/_validation.py @@ -4,6 +4,40 @@ from collections.abc import Sequence +import numpy as np + + +def normalize_uint8_rgb_array(image: np.ndarray, *, operation: str) -> np.ndarray: + """Return byte RGB data after validating or scaling a floating-point image. + + ``[0, 1]`` floating-point input is treated as normalized RGB and scaled to + ``[0, 255]``. Other floating-point input must already lie in ``[0, 255]``. + """ + + if image.dtype == np.uint8: + return image + if not np.issubdtype(image.dtype, np.floating): + raise TypeError( + f"{operation} accepts uint8 arrays or floating-point arrays with RGB " + f"values in [0, 1] or [0, 255]; got {image.dtype}." + ) + if not np.isfinite(image).all(): + raise ValueError( + f"{operation} requires floating-point image arrays to contain only " + "finite RGB values." + ) + + min_value = float(image.min()) + max_value = float(image.max()) + if min_value < 0.0 or max_value > 255.0: + raise ValueError( + f"{operation} accepts floating-point RGB values only in [0, 1] or " + f"[0, 255]; got range [{min_value}, {max_value}]." + ) + if max_value <= 1.0: + image = image * 255.0 + return np.rint(image).astype(np.uint8) + def normalize_image_size(size: int | Sequence[int], *, name: str = "size") -> list[int]: """Normalize a positive scalar or two-dimensional image size to ``[height, width]``.""" diff --git a/mblt_vision/utils/preprocess/letterbox.py b/mblt_vision/utils/preprocess/letterbox.py index 1700dfa..4d2c1fe 100644 --- a/mblt_vision/utils/preprocess/letterbox.py +++ b/mblt_vision/utils/preprocess/letterbox.py @@ -6,7 +6,7 @@ from ..letterbox import LetterBoxGeometry, RatioPad from ..types import TensorLike -from ._validation import normalize_image_size +from ._validation import normalize_image_size, normalize_uint8_rgb_array from .base import PreOps @@ -79,7 +79,9 @@ class LetterBox(PreOps): """Preprocessing for YOLO models, implementing letterbox resizing. Resizes the image while maintaining aspect ratio, adding padding to meet - target dimensions. Based on Ultralytics implementation. + target dimensions. Floating-point RGB inputs in ``[0, 1]`` are scaled to + byte RGB; other floating-point values must be finite and in ``[0, 255]``. + Based on Ultralytics implementation. Ref: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/data/augment.py#L1535 """ @@ -111,6 +113,7 @@ def __call__(self, x: TensorLike) -> torch.Tensor: ) if x.ndim != 3: raise ValueError(f"LetterBox expects an HWC image, got shape {x.shape}.") + x = normalize_uint8_rgb_array(x, operation="LetterBox") img, self.ratio_pad = _apply_letterbox( x, self.img_size, diff --git a/mblt_vision/utils/preprocess/reader.py b/mblt_vision/utils/preprocess/reader.py index 7a426a9..69c9f8d 100644 --- a/mblt_vision/utils/preprocess/reader.py +++ b/mblt_vision/utils/preprocess/reader.py @@ -12,6 +12,7 @@ from PIL import Image from ..types import TensorLike +from ._validation import normalize_uint8_rgb_array from .base import PreOps @@ -71,10 +72,14 @@ def __call__( ) elif self.style == "pil": if isinstance(x, np.ndarray): - return Image.fromarray(self._to_uint8_image_array(x)) + return Image.fromarray( + normalize_uint8_rgb_array(x, operation="Reader(style='pil')") + ) elif isinstance(x, torch.Tensor): x = x.detach().cpu().numpy() - return Image.fromarray(self._to_uint8_image_array(x)) + return Image.fromarray( + normalize_uint8_rgb_array(x, operation="Reader(style='pil')") + ) elif isinstance(x, (str, Path)): return Image.open(x).convert("RGB") elif isinstance(x, Image.Image): @@ -87,33 +92,3 @@ def __call__( raise RuntimeError( f"Reader has an invalid validated style: {self.style!r}." ) - - @staticmethod - def _to_uint8_image_array(image: np.ndarray) -> np.ndarray: - """Convert a validated array to byte RGB values for Pillow.""" - - if image.dtype == np.uint8: - return image - if not np.issubdtype(image.dtype, np.floating): - raise TypeError( - "Reader(style='pil') accepts uint8 arrays or floating-point arrays " - "with RGB values in [0, 1] or [0, 255]; " - f"got {image.dtype}." - ) - if not np.isfinite(image).all(): - raise ValueError( - "Reader(style='pil') requires floating-point image arrays to contain " - "only finite RGB values." - ) - - min_value = float(image.min()) - max_value = float(image.max()) - if min_value < 0.0 or max_value > 255.0: - raise ValueError( - "Reader(style='pil') accepts floating-point RGB values only in " - "[0, 1] or [0, 255]; " - f"got range [{min_value}, {max_value}]." - ) - if max_value <= 1.0: - image = image * 255.0 - return np.rint(image).astype(np.uint8) diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index 4606d79..a40d294 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -497,7 +497,7 @@ def __init__( target_device = normalize_target_device(target_device) is_regulus = target_device in {"regulus-ra", "regulus-rb"} if core_mode is None: - core_mode = "single" + core_mode = "single" if is_regulus else "global8" else: core_mode = normalize_core_mode(core_mode, target_device=target_device) if target_cores is None: diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index 98dcf26..3cd8506 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -60,6 +60,28 @@ def test_dotav1_normalized_labels_preserve_difficult_metadata(tmp_path: Path) -> ] +def test_dotav1_organizer_rejects_truncated_raw_annotation_rows( + tmp_path: Path, +) -> None: + """Do not silently remove malformed source annotations during organization.""" + + image_path = tmp_path / "image.png" + Image.new("RGB", (100, 50)).save(image_path) + source_path = tmp_path / "source.txt" + source_path.write_text( + "imagesource:GoogleEarth\n" "gsd:0.5\n" "0 0 20 0 20 20 0 plane 0\n", + encoding="utf-8", + ) + + with pytest.raises( + ValueError, + match=r"source\.txt at line 3: expected at least 10 fields, got 9", + ): + organizer._write_dotav1_yolo_labels( + str(image_path), str(source_path), str(tmp_path / "normalized.txt") + ) + + @pytest.mark.parametrize( ("organize_dataset", "dataset_name"), [ diff --git a/tests/test_preprocess_validation.py b/tests/test_preprocess_validation.py index e37697e..9ed34d1 100644 --- a/tests/test_preprocess_validation.py +++ b/tests/test_preprocess_validation.py @@ -112,6 +112,17 @@ def test_reader_pil_scales_normalized_float_arrays() -> None: np.testing.assert_array_equal(converted, np.full((2, 3, 3), 128, dtype=np.uint8)) +def test_letterbox_scales_normalized_float_arrays() -> None: + """Do not truncate normalized float RGB input before LetterBox resizing.""" + + image = np.full((2, 2, 3), 0.5, dtype=np.float32) + + converted = LetterBox([4, 4])(image) + + assert converted.dtype == torch.uint8 + assert torch.equal(converted, torch.full((4, 4, 3), 128, dtype=torch.uint8)) + + @pytest.mark.parametrize( "image", [ @@ -127,6 +138,21 @@ def test_reader_pil_rejects_invalid_float_image_arrays(image: np.ndarray) -> Non Reader("pil")(image) +@pytest.mark.parametrize( + "image", + [ + np.full((2, 3, 3), -0.1, dtype=np.float32), + np.full((2, 3, 3), 256.0, dtype=np.float32), + np.full((2, 3, 3), np.nan, dtype=np.float32), + ], +) +def test_letterbox_rejects_invalid_float_image_arrays(image: np.ndarray) -> None: + """Do not wrap out-of-range or non-finite float pixels to byte RGB.""" + + with pytest.raises(ValueError, match=r"finite RGB values|\[0, 1\] or \[0, 255\]"): + LetterBox([4, 4])(image) + + @pytest.mark.parametrize( ("factory", "expected"), [ diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 7af7e15..4be37c0 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -708,6 +708,59 @@ def dispose(self) -> None: engine.dispose() +@pytest.mark.parametrize( + ("target_device", "expected_core_mode"), + [("aries-rb", "global8"), ("regulus-ra", "single")], +) +def test_engine_init_uses_board_specific_default_core_mode( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + target_device: str, + expected_core_mode: str, +) -> None: + """Keep direct engine construction aligned with the CLI board defaults.""" + + mxq_path = tmp_path / "model.mxq" + mxq_path.write_bytes(b"mxq") + backend_kwargs: dict[str, Any] = {} + + class _FakeBackend: + def __init__(self, **kwargs: Any) -> None: + backend_kwargs.update(kwargs) + + def create(self) -> None: + return None + + def launch(self) -> None: + return None + + def get_dtype(self) -> str: + return "DataType.Float32" + + def dispose(self) -> None: + return None + + monkeypatch.setattr(wrapper, "MobilintNPUBackend", _FakeBackend) + monkeypatch.setattr(wrapper, "build_preprocess", lambda config: config) + monkeypatch.setattr( + wrapper, + "build_postprocess", + lambda pre_cfg, post_cfg, **kwargs: (pre_cfg, post_cfg, kwargs), + ) + + engine = MBLT_Engine( + {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, + model_path=str(mxq_path), + target_device=target_device, + ) + + try: + assert engine.file_cfg["core_mode"] == expected_core_mode + assert backend_kwargs["core_mode"] == expected_core_mode + finally: + engine.dispose() + + def test_engine_init_preserves_shifted_positional_mxq_runtime_arguments( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, @@ -2862,6 +2915,18 @@ def test_nmsout2eval_matches_coco_json_format_without_mutation() -> None: assert torch.equal(nms_out, original) +@pytest.mark.parametrize("class_id", [-1.0, 1.9, 80.0, float("nan"), float("inf")]) +def test_nmsout2eval_rejects_invalid_coco_class_ids(class_id: float) -> None: + """Reject malformed decoded class IDs before COCO taxonomy remapping.""" + + nms_out = torch.tensor( + [[10.0, 20.0, 110.0, 220.0, 0.9, class_id]], dtype=torch.float32 + ) + + with pytest.raises(ValueError, match="finite integral values"): + nmsout2eval([nms_out], (640, 640), [(640, 640)]) + + def test_nmsout2eval_uses_explicit_ratio_pad() -> None: """Use dataloader-provided LetterBox padding instead of recomputing from shape.""" From bbe2b11346cf8af3bc261c031baef322102e30a2 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 12:58:34 +0900 Subject: [PATCH 26/48] fix: validate vision review edge cases --- mblt_vision/compile/vision.py | 5 ++-- mblt_vision/utils/evaluation/eval_dota.py | 16 ++++++++--- mblt_vision/utils/postprocess/base.py | 18 ++++++++++++- mblt_vision/utils/postprocess/cls_post.py | 2 ++ mblt_vision/utils/results.py | 2 ++ tests/test_compile_vision.py | 25 ++++++++++++++++- tests/test_eval_dota.py | 29 ++++++++++++++++++-- tests/test_postprocess_hierarchy.py | 33 +++++++++++++++++++++++ tests/test_results.py | 17 ++++++++++++ 9 files changed, 137 insertions(+), 10 deletions(-) diff --git a/mblt_vision/compile/vision.py b/mblt_vision/compile/vision.py index 8ccdea3..8559bd1 100644 --- a/mblt_vision/compile/vision.py +++ b/mblt_vision/compile/vision.py @@ -79,8 +79,7 @@ def _validate_calibration_output_dir(output_dir: str | Path) -> Path: destination = Path(output_dir).expanduser() if _path_has_symlink_component(destination): raise ValueError( - "Calibration output_dir must not be or contain a symlink: " - f"{destination}." + f"Calibration output_dir must not be or contain a symlink: {destination}." ) return destination @@ -941,7 +940,7 @@ def compile_vision_model( raise ValueError( "Resolved vision model configuration requires a non-empty `post_cfg.dataset` value." ) - selected_local_path = model_path if model_path is not None else onnx_path + selected_local_path = model_path or onnx_path if calib_data_path is not None: resolved_onnx = _resolve_compile_onnx_path(file_cfg, selected_local_path) output_path = _resolve_compile_output_path(save_path, resolved_onnx) diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index c732f9d..bb408ed 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -119,10 +119,20 @@ def _load_ground_truths( classes.append(cls) polygons.append(coords) elif original_label_path.is_file(): - for line in original_label_path.read_text(encoding="utf-8").splitlines(): + for line_number, line in enumerate( + original_label_path.read_text(encoding="utf-8").splitlines(), start=1 + ): parts = line.split() - if len(parts) < 9: + if parts and ( + parts[0].startswith("imagesource:") or parts[0].startswith("gsd:") + ): continue + if len(parts) < 10: + raise ValueError( + "Malformed original DOTAv1 annotation at " + f"{original_label_path}:{line_number}: expected at least 10 fields, " + f"got {len(parts)}." + ) cls = _label_to_index(parts[8]) if not 0 <= cls < get_dotav1_class_num(): raise ValueError( @@ -131,7 +141,7 @@ def _load_ground_truths( coords = torch.tensor( [float(value) for value in parts[:8]], dtype=torch.float32 ).reshape(4, 2) - if len(parts) >= 10 and parts[9] in {"1", "2"}: + if parts[9] in {"1", "2"}: ignore_classes.append(cls) ignore_polygons.append(coords) else: diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index 8d66410..8ac936c 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -368,7 +368,23 @@ def _final_detection_batches( tensor = torch.from_numpy(x).to(self.device) else: tensor = x.to(self.device) - return [batch[batch[:, 4] > self.conf_thres] for batch in tensor] + batches: list[torch.Tensor] = [] + for batch in tensor: + labels = batch[:, 5] + valid_labels = ( + torch.isfinite(labels) + & (labels == labels.round()) + & (labels >= 0) + & (labels < self.nc) + ) + if not bool(valid_labels.all()): + invalid_labels = labels[~valid_labels].detach().cpu().tolist() + raise ValueError( + "Decoded detection class IDs must be finite integral values in " + f"[0, {self.nc}); got {invalid_labels}." + ) + batches.append(batch[batch[:, 4] > self.conf_thres]) + return batches def _normalize_proto_batch( self, proto_outs: np.ndarray | torch.Tensor diff --git a/mblt_vision/utils/postprocess/cls_post.py b/mblt_vision/utils/postprocess/cls_post.py index 02d7c80..7fcb2a4 100644 --- a/mblt_vision/utils/postprocess/cls_post.py +++ b/mblt_vision/utils/postprocess/cls_post.py @@ -86,6 +86,8 @@ def __call__(self, x: TensorLike | ListTensorLike) -> torch.Tensor: f"Classification output has {x.shape[1]} classes, but dataset " f"'{self.dataset}' requires {self.num_classes}." ) + if not torch.isfinite(x).all(): + raise ValueError("Classification output scores must all be finite.") if self.softmax: return x return x.softmax(dim=-1) diff --git a/mblt_vision/utils/results.py b/mblt_vision/utils/results.py index 59f18d9..884a333 100644 --- a/mblt_vision/utils/results.py +++ b/mblt_vision/utils/results.py @@ -35,6 +35,7 @@ scale_rboxes, xywhr2xyxyxyxy, ) +from .preprocess._validation import normalize_uint8_rgb_array from .types import ListTensorLike, NestedListTensorLike, TensorLike LW = 2 # line width @@ -99,6 +100,7 @@ def _read_image( raise ValueError( f"Image arrays must have HWC shape with three channels, got {source_img.shape}." ) + source_img = normalize_uint8_rgb_array(source_img, operation="Results.plot") source_img = cv2.cvtColor(source_img, cv2.COLOR_RGB2BGR) elif isinstance(source_path, (str, Path)): image_path = Path(source_path) diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py index f8a82e2..17f3f13 100644 --- a/tests/test_compile_vision.py +++ b/tests/test_compile_vision.py @@ -607,7 +607,8 @@ def _run_fake_compile( tmp_path: Path, *, task: str, - model_path: Path | None, + model_path: str | Path | None, + onnx_path: str | Path | None = None, entry_level: str = "data", dataset: str | None = None, target_device: str = "aries-rb", @@ -733,6 +734,7 @@ def _ensure_dataset( target_device=target_device, model_type="VARIANT", model_path=model_path, + onnx_path=onnx_path, data_path=original_data_path, subset_path=subset_path, calib_data_path=calib_data_path, @@ -829,6 +831,27 @@ def test_compile_rejects_non_onnx_local_model_with_ready_calibration_data( ) +@pytest.mark.parametrize("entry_level", ["data", "calibration"]) +def test_compile_uses_onnx_path_when_model_path_is_empty( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path, entry_level: str +) -> None: + """Treat an adapter-provided empty model path as absent, not preferred.""" + + local_onnx = tmp_path / "alias.onnx" + local_onnx.write_bytes(b"onnx") + + calls, _ = _run_fake_compile( + monkeypatch, + tmp_path, + task="image_classification", + model_path="", + onnx_path=local_onnx, + entry_level=entry_level, + ) + + assert calls["compile_kwargs"]["model"] == str(local_onnx) + + @pytest.mark.parametrize("entry_level", ["data", "calibration"]) def test_compile_requires_an_mxq_output_path( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, entry_level: str diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index ec36de6..4c24732 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -80,7 +80,7 @@ def test_normalized_difficult_flag_loads_as_an_ignored_region(tmp_path) -> None: label_dir = tmp_path / "labels" / "val" label_dir.mkdir(parents=True) (label_dir / "image.txt").write_text( - "0 0 0 0.2 0 0.2 0.2 0 0.2 0\n" "0 0.4 0.4 0.6 0.4 0.6 0.6 0.4 0.6 1\n", + "0 0 0 0.2 0 0.2 0.2 0 0.2 0\n0 0.4 0.4 0.6 0.4 0.6 0.6 0.4 0.6 1\n", encoding="utf-8", ) dataset = cast( @@ -121,11 +121,36 @@ def test_normalized_truncated_annotation_raises_with_file_and_line(tmp_path) -> _load_ground_truths(str(tmp_path), dataset) +def test_original_truncated_annotation_raises_with_file_and_line(tmp_path) -> None: + """Require a difficulty flag when loading original DOTAv1 labels directly.""" + + original_label_dir = tmp_path / "labels" / "val_original" + original_label_dir.mkdir(parents=True) + label_path = original_label_dir / "image.txt" + label_path.write_text( + "imagesource:GoogleEarth\n0 0 20 0 20 20 0 20 plane\n", encoding="utf-8" + ) + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises( + ValueError, + match=r"image\.txt:2: expected at least 10 fields, got 9", + ): + _load_ground_truths(str(tmp_path), dataset) + + @pytest.mark.parametrize( ("label_path", "annotation"), [ ("labels/val/image.txt", "-1 0 0 0.2 0 0.2 0.2 0 0.2"), - ("labels/val_original/image.txt", "0 0 20 0 20 20 0 20 -1"), + ("labels/val_original/image.txt", "0 0 20 0 20 20 0 20 -1 0"), ], ) def test_dota_annotations_reject_negative_class_indices( diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index 0be0636..1263188 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -68,6 +68,39 @@ def test_classification_postprocessor_rejects_wrong_taxonomy_width() -> None: postprocessor(torch.zeros((1, 999), dtype=torch.float32)) +@pytest.mark.parametrize("invalid_score", [float("nan"), float("inf")]) +def test_classification_postprocessor_rejects_nonfinite_scores( + invalid_score: float, +) -> None: + """Do not convert malformed classification logits into plausible predictions.""" + + scores = torch.zeros((1, 1000), dtype=torch.float32) + scores[0, 0] = invalid_score + + with pytest.raises(ValueError, match="scores must all be finite"): + ClsPost({}, {"task": "image_classification", "dataset": "imagenet"})(scores) + + +@pytest.mark.parametrize("invalid_class", [-1.0, 1.5, 2.0, float("nan")]) +def test_already_decoded_detections_reject_invalid_task_class_ids( + invalid_class: float, +) -> None: + """Validate local decoded detection outputs against the configured taxonomy.""" + + postprocessor = cast( + Any, YOLOAnchorlessDetectionPost.__new__(YOLOAnchorlessDetectionPost) + ) + postprocessor.device = torch.device("cpu") + postprocessor.conf_thres = 0.25 + postprocessor.nc = 2 + detections = torch.tensor( + [[[0.0, 0.0, 1.0, 1.0, 0.9, invalid_class]]], dtype=torch.float32 + ) + + with pytest.raises(ValueError, match="Decoded detection class IDs"): + postprocessor._final_detection_batches(detections) + + @pytest.mark.parametrize( ("post_cfg", "expected_type"), [ diff --git a/tests/test_results.py b/tests/test_results.py index 2ef10c5..0b4d446 100644 --- a/tests/test_results.py +++ b/tests/test_results.py @@ -119,6 +119,23 @@ def test_plot_converts_rgb_array_source_to_bgr() -> None: assert np.array_equal(rgb, np.array([[[255, 0, 0]]], dtype=np.uint8)) +def test_plot_normalizes_float_rgb_array_source_to_uint8_bgr() -> None: + """Plot normalized RGB arrays without rendering a near-black background.""" + + result = Results( + {"LetterBox": {"img_size": (1, 1)}}, + {"task": "object_detection"}, + [torch.zeros((0, 6), dtype=torch.float32)], + ) + rgb = np.array([[[0.5, 0.0, 0.0]]], dtype=np.float32) + + plotted = result.plot(rgb) + + assert plotted is not None + assert np.array_equal(plotted, np.array([[[0, 0, 128]]], dtype=np.uint8)) + assert np.array_equal(rgb, np.array([[[0.5, 0.0, 0.0]]], dtype=np.float32)) + + def test_pose_plot_hides_low_visibility_keypoints_and_limbs( monkeypatch: pytest.MonkeyPatch, ) -> None: From 7905e243633150ed9f91b6109a67fe503f182f4c Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 13:17:39 +0900 Subject: [PATCH 27/48] fix: harden validation inputs --- mblt_vision/cli/val.py | 11 ++++++++++- mblt_vision/utils/datasets/dataloader.py | 5 +++++ mblt_vision/utils/postprocess/base.py | 13 +++++++++++++ tests/test_cli.py | 24 ++++++++++++++++++++++++ tests/test_depth_estimation.py | 22 ++++++++++++++++++++-- tests/test_postprocess_hierarchy.py | 24 +++++++++++++++++++++++- 6 files changed, 95 insertions(+), 4 deletions(-) diff --git a/mblt_vision/cli/val.py b/mblt_vision/cli/val.py index 56ec3e2..ccdd66d 100644 --- a/mblt_vision/cli/val.py +++ b/mblt_vision/cli/val.py @@ -11,6 +11,7 @@ from mblt_vision.benchmark.argparse_utils import parse_positive_int from mblt_vision.datasets import get_dataset_config, get_dataset_config_for_task from mblt_vision.utils.datasets.readiness import dataset_ready +from mblt_vision.wrapper import get_mobilint_cache_dir from ._vision import ( add_e2e_arg, @@ -218,10 +219,18 @@ def _default_data_path_for_task(task: str, dataset: str | None = None) -> str: """Returns the default organized dataset path for a vision task.""" try: - return str(get_dataset_config_for_task(task, dataset)["path"]) + configured_path = Path(get_dataset_config_for_task(task, dataset)["path"]) except ValueError as exc: raise SystemExit(f"Unsupported vision task for validation: {task}") from exc + configured_path = configured_path.expanduser() + default_cache_root = Path.home() / ".mblt_model_zoo" + try: + relative_path = configured_path.relative_to(default_cache_root) + except ValueError: + return str(configured_path) + return str(Path(get_mobilint_cache_dir()) / relative_path) + def _dataset_ready(task: str, data_path: str, dataset: str | None = None) -> bool: """Checks whether the organized dataset appears ready for validation.""" diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index f4d067e..a4b3152 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -200,6 +200,11 @@ def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: raise ValueError( f"NYU Depth target must be two-dimensional, got {depth.shape}: {depth_path}" ) + if depth.shape != image.shape[:2]: + raise ValueError( + "NYU Depth image and target shapes must match for " + f"{stem}: image {image.shape[:2]}, depth {depth.shape}." + ) return ( cv2.cvtColor(image, cv2.COLOR_BGR2RGB), np.nan_to_num(depth, nan=0.0, posinf=0.0, neginf=0.0), diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index 8ac936c..394e086 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -370,6 +370,19 @@ def _final_detection_batches( tensor = x.to(self.device) batches: list[torch.Tensor] = [] for batch in tensor: + valid_rows = torch.isfinite(batch).all(dim=1) + if not bool(valid_rows.all()): + invalid_rows = ( + torch.nonzero(~valid_rows, as_tuple=False) + .flatten() + .detach() + .cpu() + .tolist() + ) + raise ValueError( + "Decoded detection rows must contain only finite values; " + f"invalid rows: {invalid_rows}." + ) labels = batch[:, 5] valid_labels = ( torch.isfinite(labels) diff --git a/tests/test_cli.py b/tests/test_cli.py index aaa38aa..62250fe 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -2,11 +2,14 @@ from __future__ import annotations +from pathlib import Path + import pytest from mblt_vision.cli import build_parser from mblt_vision.cli.compile import _run_compile from mblt_vision.cli.predict import _cmd_predict +from mblt_vision.cli import val as val_module from mblt_vision.cli.val import _cmd_val @@ -81,3 +84,24 @@ def test_predict_help_explains_supported_workflows( assert "Supported tasks:" in help_text assert "--framework onnx" in help_text assert "--target-device regulus-ra" in help_text + + +def test_validation_default_dataset_path_uses_resolved_cache_root( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Keep default organization alongside artifacts when the home cache falls back.""" + + configured_path = Path.home() / ".mblt_model_zoo" / "datasets" / "coco" + fallback_cache = tmp_path / "cache" + monkeypatch.setattr( + val_module, + "get_dataset_config_for_task", + lambda _task, _dataset: {"path": str(configured_path)}, + ) + monkeypatch.setattr( + val_module, "get_mobilint_cache_dir", lambda: str(fallback_cache) + ) + + assert val_module._default_data_path_for_task("object_detection") == str( + fallback_cache / "datasets" / "coco" + ) diff --git a/tests/test_depth_estimation.py b/tests/test_depth_estimation.py index b52a4b0..f439b1e 100644 --- a/tests/test_depth_estimation.py +++ b/tests/test_depth_estimation.py @@ -2,11 +2,13 @@ from __future__ import annotations - +import cv2 +import numpy as np import pytest import torch -from mblt_vision.utils.postprocess import DepthPost +from mblt_vision.utils.datasets import CustomNYUDepth +from mblt_vision.utils.postprocess import DepthPost from mblt_vision.wrapper import resolve_model_config @@ -110,3 +112,19 @@ def test_depth_post_normalizes_quarter_resolution_channel_last_output() -> None: assert isinstance(normalized, torch.Tensor) assert torch.equal(normalized, expected) + + +def test_nyu_depth_dataset_rejects_mismatched_image_and_target_shapes(tmp_path) -> None: + """Reject paired NYU files whose pixels cannot be compared one-to-one.""" + + image_dir = tmp_path / "images" + depth_dir = tmp_path / "depth" + image_dir.mkdir() + depth_dir.mkdir() + assert cv2.imwrite( + str(image_dir / "sample.png"), np.zeros((4, 5, 3), dtype=np.uint8) + ) + np.save(depth_dir / "sample.npy", np.zeros((3, 5), dtype=np.float32)) + + with pytest.raises(ValueError, match=r"sample: image \(4, 5\), depth \(3, 5\)"): + CustomNYUDepth(str(tmp_path))[0] diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index 1263188..f60e74e 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -81,7 +81,7 @@ def test_classification_postprocessor_rejects_nonfinite_scores( ClsPost({}, {"task": "image_classification", "dataset": "imagenet"})(scores) -@pytest.mark.parametrize("invalid_class", [-1.0, 1.5, 2.0, float("nan")]) +@pytest.mark.parametrize("invalid_class", [-1.0, 1.5, 2.0]) def test_already_decoded_detections_reject_invalid_task_class_ids( invalid_class: float, ) -> None: @@ -101,6 +101,28 @@ def test_already_decoded_detections_reject_invalid_task_class_ids( postprocessor._final_detection_batches(detections) +@pytest.mark.parametrize( + ("column", "invalid_value"), + [(0, float("nan")), (4, float("inf")), (5, float("-inf"))], +) +def test_already_decoded_detections_reject_nonfinite_rows( + column: int, invalid_value: float +) -> None: + """Reject malformed coordinates, scores, and labels before filtering them.""" + + postprocessor = cast( + Any, YOLOAnchorlessDetectionPost.__new__(YOLOAnchorlessDetectionPost) + ) + postprocessor.device = torch.device("cpu") + postprocessor.conf_thres = 0.25 + postprocessor.nc = 2 + detections = torch.tensor([[[0.0, 0.0, 1.0, 1.0, 0.9, 1.0]]], dtype=torch.float32) + detections[0, 0, column] = invalid_value + + with pytest.raises(ValueError, match="finite values"): + postprocessor._final_detection_batches(detections) + + @pytest.mark.parametrize( ("post_cfg", "expected_type"), [ From 7d6866e5133f7705f8deda327b345d75a09ebfb1 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 13:36:21 +0900 Subject: [PATCH 28/48] fix: validate vision artifacts and datasets --- benchmark/organize_ade20k.py | 5 +- benchmark/organize_cityscapes.py | 4 +- benchmark/organize_coco.py | 5 +- benchmark/organize_dotav1.py | 5 +- benchmark/organize_imagenet.py | 5 +- benchmark/organize_nyu_depth.py | 5 +- benchmark/organize_widerface.py | 5 +- mblt_vision/utils/datasets/dataloader.py | 20 ++++--- mblt_vision/utils/datasets/organizer.py | 52 +++++++++++++------ mblt_vision/utils/datasets/readiness.py | 17 +++++- mblt_vision/utils/evaluation/eval_dota.py | 10 ++++ .../utils/evaluation/eval_nyu_depth.py | 6 +++ mblt_vision/utils/postprocess/base.py | 4 ++ .../utils/postprocess/semantic_seg_post.py | 27 ++++++---- tests/test_dataloader.py | 35 ++++++++++--- tests/test_dataset_organizer.py | 19 +++++-- tests/test_dataset_readiness.py | 33 +++++++++++- tests/test_eval_dota.py | 28 ++++++++++ tests/test_eval_nyu_depth.py | 48 +++++++++++++++++ tests/test_postprocess_hierarchy.py | 19 +++++++ tests/test_semantic_segmentation.py | 22 ++++++++ 21 files changed, 303 insertions(+), 71 deletions(-) create mode 100644 tests/test_eval_nyu_depth.py diff --git a/benchmark/organize_ade20k.py b/benchmark/organize_ade20k.py index 82cfd8a..67290e9 100644 --- a/benchmark/organize_ade20k.py +++ b/benchmark/organize_ade20k.py @@ -1,7 +1,6 @@ """Organize the ADE20K validation dataset for local use.""" import argparse -import os import sys from pathlib import Path @@ -22,8 +21,8 @@ ) parser.add_argument( "--output-dir", - default=os.path.expanduser("~/.mblt_model_zoo/datasets/ADEChallengeData2016"), - help="Path to the organized validation dataset", + default=None, + help="Path to the organized validation dataset (defaults to cache)", ) args = parser.parse_args() organize_ade20k(dataset_path=args.dataset_path, output_dir=args.output_dir) diff --git a/benchmark/organize_cityscapes.py b/benchmark/organize_cityscapes.py index 7051d79..1966865 100644 --- a/benchmark/organize_cityscapes.py +++ b/benchmark/organize_cityscapes.py @@ -32,8 +32,8 @@ def main() -> None: ) parser.add_argument( "--output-dir", - default="~/.mblt_model_zoo/datasets/cityscapes", - help="Destination for the flat images/ and annotations/ directories", + default=None, + help="Destination for the flat images/ and annotations/ directories (defaults to cache)", ) args = parser.parse_args() organize_cityscapes( diff --git a/benchmark/organize_coco.py b/benchmark/organize_coco.py index 65056e3..6ad9cf6 100644 --- a/benchmark/organize_coco.py +++ b/benchmark/organize_coco.py @@ -6,7 +6,6 @@ """ import argparse -import os import sys from pathlib import Path @@ -39,8 +38,8 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/coco"), - help="Path to the directory to save the organized dataset", + default=None, + help="Path to the directory to save the organized dataset (defaults to cache)", ) args = parser.parse_args() diff --git a/benchmark/organize_dotav1.py b/benchmark/organize_dotav1.py index 5537d8e..4a9b4eb 100644 --- a/benchmark/organize_dotav1.py +++ b/benchmark/organize_dotav1.py @@ -7,7 +7,6 @@ """ import argparse -import os import sys from pathlib import Path @@ -31,8 +30,8 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/dotav1"), - help="Path to the directory to save the organized dataset", + default=None, + help="Path to the directory to save the organized dataset (defaults to cache)", ) args = parser.parse_args() diff --git a/benchmark/organize_imagenet.py b/benchmark/organize_imagenet.py index 65187ea..cec0c93 100644 --- a/benchmark/organize_imagenet.py +++ b/benchmark/organize_imagenet.py @@ -6,7 +6,6 @@ """ import argparse -import os import sys from pathlib import Path @@ -40,8 +39,8 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/imagenet"), - help="Path to the directory to save the organized dataset", + default=None, + help="Path to the directory to save the organized dataset (defaults to cache)", ) args = parser.parse_args() diff --git a/benchmark/organize_nyu_depth.py b/benchmark/organize_nyu_depth.py index 6b41622..e8187a1 100644 --- a/benchmark/organize_nyu_depth.py +++ b/benchmark/organize_nyu_depth.py @@ -5,7 +5,6 @@ """ import argparse -import os import sys from pathlib import Path @@ -28,8 +27,8 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/nyu-depth"), - help="Path to the directory to save the organized dataset", + default=None, + help="Path to the directory to save the organized dataset (defaults to cache)", ) args = parser.parse_args() diff --git a/benchmark/organize_widerface.py b/benchmark/organize_widerface.py index 701b763..bebf78f 100644 --- a/benchmark/organize_widerface.py +++ b/benchmark/organize_widerface.py @@ -6,7 +6,6 @@ """ import argparse -import os import sys from pathlib import Path @@ -37,8 +36,8 @@ parser.add_argument( "--output-dir", type=str, - default=os.path.expanduser("~/.mblt_model_zoo/datasets/widerface"), - help="Path to the directory to save the organized dataset", + default=None, + help="Path to the directory to save the organized dataset (defaults to cache)", ) args = parser.parse_args() diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index a4b3152..ca8ea14 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -74,6 +74,12 @@ def __getitem__(self, index: int) -> tuple[np.ndarray, int, int, int]: image = self._load_image(image_id) height = self.coco.imgs[image_id]["height"] width = self.coco.imgs[image_id]["width"] + if (height, width) != image.shape[:2]: + raise ValueError( + "COCO annotation geometry does not match decoded image for " + f"image ID {image_id}: annotation {(height, width)}, " + f"image {image.shape[:2]}." + ) return image, index, height, width def __len__(self) -> int: @@ -719,13 +725,13 @@ def make_dataset(self) -> None: target_dir = os.path.join(self.root, target_class) if not os.path.isdir(target_dir): continue - for root, _, fnames in sorted(os.walk(target_dir, followlinks=True)): - for fname in sorted(fnames): - if os.path.splitext(fname)[1].lower() not in IMAGE_SUFFIXES: - continue - path = os.path.join(root, fname) - item = path, class_index - instances.append(item) + for fname in sorted(os.listdir(target_dir)): + path = os.path.join(target_dir, fname) + if not os.path.isfile(path): + continue + if os.path.splitext(fname)[1].lower() not in IMAGE_SUFFIXES: + continue + instances.append((path, class_index)) self.samples = instances diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 879a12f..8fce971 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -69,6 +69,16 @@ } +def _resolve_organizer_output_dir(output_dir: str | None, dataset_name: str) -> str: + """Return an explicit output directory or the lazily resolved artifact cache.""" + + if output_dir is not None: + return os.path.expanduser(output_dir) + from mblt_vision.wrapper import get_mobilint_cache_dir + + return os.path.join(get_mobilint_cache_dir(), "datasets", dataset_name) + + def _replace_staged_directories( replacements: Iterable[tuple[str, str]], output_parent_dir: str, @@ -551,16 +561,17 @@ def construct_imagenet(image_dir: str, xml_dir: str, output_dir: str) -> None: def organize_imagenet( image_dir: str, xml_dir: str, - output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/imagenet"), + output_dir: str | None = None, ) -> None: """Organizes the ImageNet dataset, unpacking archives if necessary. Args: image_dir (str): Path or URL to the image directory or archive (.tar). xml_dir (str): Path or URL to the XML directory or archive (.tgz). - output_dir (str, optional): Directory to store the organized dataset. - Defaults to ~/.mblt_model_zoo/datasets/imagenet. + output_dir: Directory to store the organized dataset. Defaults to the + resolved Mobilint cache directory. """ + output_dir = _resolve_organizer_output_dir(output_dir, "imagenet") with TemporaryDirectory() as temp_dir: local_image_dir, local_xml_dir = _resolve_sources( [image_dir, xml_dir], temp_dir @@ -626,16 +637,17 @@ def construct_coco(image_dir: str, annotation_dir: str, output_dir: str) -> None def organize_coco( image_dir: str, annotation_dir: str, - output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/coco"), + output_dir: str | None = None, ) -> None: """Organizes the COCO dataset, unpacking archives if necessary. Args: image_dir (str): Path or URL to the image zip file or directory. annotation_dir (str): Path or URL to the annotation zip file or directory. - output_dir (str, optional): Directory to store the organized dataset. - Defaults to ~/.mblt_model_zoo/datasets/coco. + output_dir: Directory to store the organized dataset. Defaults to the + resolved Mobilint cache directory. """ + output_dir = _resolve_organizer_output_dir(output_dir, "coco") with TemporaryDirectory() as temp_dir: local_image_dir, local_annotation_dir = _resolve_sources( [image_dir, annotation_dir], temp_dir @@ -695,16 +707,17 @@ def construct_widerface(image_dir: str, annotation_dir: str, output_dir: str) -> def organize_widerface( image_dir: str, annotation_dir: str, - output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/widerface"), + output_dir: str | None = None, ) -> None: """Organizes the WiderFace dataset, unpacking archives if necessary. Args: image_dir (str): Path or URL to the image zip file or directory. annotation_dir (str): Path or URL to the annotation zip file or directory. - output_dir (str, optional): Directory to store the organized dataset. - Defaults to ~/.mblt_model_zoo/datasets/widerface. + output_dir: Directory to store the organized dataset. Defaults to the + resolved Mobilint cache directory. """ + output_dir = _resolve_organizer_output_dir(output_dir, "widerface") with TemporaryDirectory() as temp_dir: local_image_dir, local_annotation_dir = _resolve_sources( [image_dir, annotation_dir], temp_dir @@ -926,15 +939,17 @@ def construct_nyu_depth(dataset_dir: str, output_dir: str) -> None: def organize_nyu_depth( dataset_path: str = NYU_DEPTH_URL, - output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/nyu-depth"), + output_dir: str | None = None, ) -> None: """Organizes NYU Depth, downloading and unpacking an archive when necessary. Args: dataset_path: Path or URL to the NYU Depth zip file or extracted dataset directory. - output_dir: Directory to store the organized dataset. + output_dir: Directory to store the organized dataset. Defaults to the + resolved Mobilint cache directory. """ + output_dir = _resolve_organizer_output_dir(output_dir, "nyu-depth") output_dir = _validate_dense_output_root( output_dir, "NYU Depth", ("images", "depth") ) @@ -1066,12 +1081,11 @@ def construct_ade20k(dataset_dir: str, output_dir: str) -> None: def organize_ade20k( dataset_path: str = ADE20K_URL, - output_dir: str = os.path.expanduser( - "~/.mblt_model_zoo/datasets/ADEChallengeData2016" - ), + output_dir: str | None = None, ) -> None: """Organizes ADE20K validation data, downloading and unpacking when necessary.""" + output_dir = _resolve_organizer_output_dir(output_dir, "ADEChallengeData2016") output_dir = _validate_dense_output_root( output_dir, "ADE20K", ("images", "annotations") ) @@ -1172,7 +1186,7 @@ def _collect_cityscapes_validation_files( def organize_cityscapes( image_dir: str, annotation_dir: str, - output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/cityscapes"), + output_dir: str | None = None, ) -> None: """Install official Cityscapes validation archives as lossless flat PNG pairs. @@ -1183,12 +1197,14 @@ def organize_cityscapes( image_dir: Path to ``leftImg8bit_trainvaltest.zip``. annotation_dir: Path to ``gtFine_trainvaltest.zip``. output_dir: Directory where the organized validation dataset is stored. + Defaults to the resolved Mobilint cache directory. Raises: ValueError: If either source is invalid or does not contain exactly 500 matching pairs. OSError: If extraction, copying, or atomic installation fails. """ + output_dir = _resolve_organizer_output_dir(output_dir, "cityscapes") output_dir = _validate_dense_output_root( output_dir, "Cityscapes", ("images", "annotations") ) @@ -1660,14 +1676,16 @@ def construct_dotav1(dataset_dir: str, output_dir: str) -> None: def organize_dotav1( dataset_path: str, - output_dir: str = os.path.expanduser("~/.mblt_model_zoo/datasets/dotav1"), + output_dir: str | None = None, ) -> None: """Organizes a validation-only DOTAv1 dataset. Args: dataset_path: Path or URL to the DOTAv1 zip file or extracted dataset directory. - output_dir: Directory to store the organized dataset. + output_dir: Directory to store the organized dataset. Defaults to the + resolved Mobilint cache directory. """ + output_dir = _resolve_organizer_output_dir(output_dir, "dotav1") with TemporaryDirectory() as temp_dir: if _is_google_drive_folder_url(dataset_path): image_archive, label_archive = _download_dotav1_google_drive_archives( diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index fdcea72..d643dd7 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -123,13 +123,26 @@ def _load_coco_image_names(annotation_path: Path) -> set[str] | None: ): return None names: list[str] = [] + image_ids: list[int] = [] for record in image_records: if not isinstance(record, dict): continue file_name = record.get("file_name") - if isinstance(file_name, str): + image_id = record.get("id") + if ( + isinstance(file_name, str) + and isinstance(image_id, int) + and not isinstance(image_id, bool) + ): names.append(file_name) - return set(names) if len(names) == len(image_records) == len(set(names)) else None + image_ids.append(image_id) + if ( + len(names) != len(image_records) + or len(names) != len(set(names)) + or len(image_ids) != len(set(image_ids)) + ): + return None + return set(names) def _coco_ready(root: Path, task: str) -> bool: diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index bb408ed..a23f08f 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -109,6 +109,11 @@ def _load_ground_truths( coords = torch.tensor( [float(value) for value in parts[1:9]], dtype=torch.float32 ).reshape(4, 2) + if not bool(torch.isfinite(coords).all()): + raise ValueError( + "DOTAv1 annotation coordinates must be finite at " + f"{label_path}:{line_number}." + ) if coords.numel() and float(coords.max()) <= 1.5: coords[:, 0] *= width coords[:, 1] *= height @@ -141,6 +146,11 @@ def _load_ground_truths( coords = torch.tensor( [float(value) for value in parts[:8]], dtype=torch.float32 ).reshape(4, 2) + if not bool(torch.isfinite(coords).all()): + raise ValueError( + "DOTAv1 annotation coordinates must be finite at " + f"{original_label_path}:{line_number}." + ) if parts[9] in {"1", "2"}: ignore_classes.append(cls) ignore_polygons.append(coords) diff --git a/mblt_vision/utils/evaluation/eval_nyu_depth.py b/mblt_vision/utils/evaluation/eval_nyu_depth.py index efac872..84358b4 100644 --- a/mblt_vision/utils/evaluation/eval_nyu_depth.py +++ b/mblt_vision/utils/evaluation/eval_nyu_depth.py @@ -145,6 +145,12 @@ def eval_nyu_depth( elif len(targets) == 1 and depth.ndim == 2: maps = [depth] else: + if depth.ndim < 3 or depth.shape[0] != len(targets): + raise ValueError( + "Depth postprocessor output batch length mismatch: " + f"maps={depth.shape[0] if depth.ndim else 0}, " + f"targets={len(targets)}." + ) maps = [depth[index] for index in range(len(targets))] if len(maps) != len(targets): raise ValueError( diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index 394e086..b074970 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -489,6 +489,10 @@ def check_input(self, x: TensorLike | ListTensorLike) -> list[torch.Tensor]: tensors = [xi.to(self.device) for xi in torch_inputs] else: raise TypeError(f"Got unexpected element type for x[0]={type(x[0])}.") + if any(not bool(torch.isfinite(tensor).all()) for tensor in tensors): + raise ValueError( + "Detection output tensors must contain only finite values." + ) return self.check_dim(tensors) def check_dim(self, x: list[torch.Tensor]) -> list[torch.Tensor]: diff --git a/mblt_vision/utils/postprocess/semantic_seg_post.py b/mblt_vision/utils/postprocess/semantic_seg_post.py index 25d5668..a4ddea6 100644 --- a/mblt_vision/utils/postprocess/semantic_seg_post.py +++ b/mblt_vision/utils/postprocess/semantic_seg_post.py @@ -89,23 +89,21 @@ def _normalize_output( output = torch.as_tensor(x, device=self.device) if output.ndim == 4: if output.shape[1] == self.nc: - return output.to(dtype=torch.float32), True + return self._validate_logits(output), True if output.shape[-1] == self.nc: - return output.permute(0, 3, 1, 2).to(dtype=torch.float32), True + return self._validate_logits(output.permute(0, 3, 1, 2)), True raise ValueError( f"Semantic segmentation for '{self.dataset}' expects [B, {self.nc}, H, W] or " f"[B, H, W, {self.nc}] logits, got {tuple(output.shape)}." ) if output.ndim == 3: + if output.shape[-1] == self.nc and output.is_floating_point(): + return self._validate_logits(output.permute(2, 0, 1).unsqueeze(0)), True if tuple(output.shape[:2]) == self.input_shape: - if output.shape[-1] != self.nc: - raise ValueError( - f"Semantic segmentation for '{self.dataset}' expects [H, W, {self.nc}] MXQ logits, " - f"got {tuple(output.shape)}." - ) - return output.permute(2, 0, 1).unsqueeze(0).to( - dtype=torch.float32 - ), True + raise ValueError( + f"Semantic segmentation for '{self.dataset}' expects [H, W, {self.nc}] MXQ logits, " + f"got {tuple(output.shape)}." + ) if output.is_complex(): raise ValueError("Semantic class-map values must be finite integers.") if output.is_floating_point(): @@ -127,6 +125,15 @@ def _normalize_output( f"got {tuple(output.shape)}." ) + @staticmethod + def _validate_logits(output: torch.Tensor) -> torch.Tensor: + """Convert semantic logits to float while rejecting invalid artifact output.""" + + logits = output.to(dtype=torch.float32) + if not bool(torch.isfinite(logits).all()): + raise ValueError("Semantic logits must contain only finite values.") + return logits + def _to_input_space(self, output: torch.Tensor, is_logits: bool) -> torch.Tensor: """Restore model output resolution to configured input space.""" diff --git a/tests/test_dataloader.py b/tests/test_dataloader.py index cb117f3..bfda94e 100644 --- a/tests/test_dataloader.py +++ b/tests/test_dataloader.py @@ -3,26 +3,31 @@ from __future__ import annotations from pathlib import Path +from types import SimpleNamespace +import numpy as np import pytest from mblt_vision.utils.datasets.dataloader import ( + CustomCOCODataset, CustomImageFolder, CustomWiderFaceDataset, ) @pytest.mark.parametrize( - ("dataset_class", "class_name"), + ("dataset_class", "class_name", "expected_count", "expected_suffixes"), [ - (CustomImageFolder, "class-a"), - (CustomWiderFaceDataset, "0--Parade"), + (CustomImageFolder, "class-a", 1, {".jpg"}), + (CustomWiderFaceDataset, "0--Parade", 2, {".jpg", ".png"}), ], ) def test_class_based_datasets_ignore_non_image_files( tmp_path: Path, dataset_class: type[CustomImageFolder] | type[CustomWiderFaceDataset], class_name: str, + expected_count: int, + expected_suffixes: set[str], ) -> None: """Keep incidental files out of ImageNet and WiderFace sample lists.""" @@ -36,8 +41,22 @@ def test_class_based_datasets_ignore_non_image_files( dataset = dataset_class(str(tmp_path)) - assert len(dataset) == 2 - assert {Path(sample[0]).suffix.lower() for sample in dataset.samples} == { - ".jpg", - ".png", - } + assert len(dataset) == expected_count + assert { + Path(sample[0]).suffix.lower() for sample in dataset.samples + } == expected_suffixes + + +def test_coco_dataset_rejects_annotation_geometry_mismatching_image() -> None: + """Do not evaluate COCO labels with geometry different from their decoded image.""" + + dataset = SimpleNamespace( + ids=[1], + coco=SimpleNamespace(imgs={1: {"height": 4, "width": 5}}), + _load_image=lambda _: np.zeros((3, 5, 3), dtype=np.uint8), + ) + + with pytest.raises( + ValueError, match=r"image ID 1: annotation \(4, 5\), image \(3, 5\)" + ): + CustomCOCODataset.__getitem__(dataset, 0) diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index 3cd8506..df4a02d 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -94,14 +94,23 @@ def test_dotav1_organizer_rejects_truncated_raw_annotation_rows( (organizer.organize_dotav1, "dotav1"), ], ) -def test_organizer_defaults_match_registry_cache_root( - organize_dataset: Callable[..., Any], dataset_name: str +def test_organizer_defaults_use_the_lazy_cache_resolver( + monkeypatch: pytest.MonkeyPatch, + organize_dataset: Callable[..., Any], + dataset_name: str, + tmp_path: Path, ) -> None: - """Write datasets where the packaged registry resolves them by default.""" + """Keep direct organizer APIs consistent with artifact cache fallback behavior.""" output_dir = inspect.signature(organize_dataset).parameters["output_dir"].default - assert output_dir == str( - Path.home() / ".mblt_model_zoo" / "datasets" / dataset_name + assert output_dir is None + + import mblt_vision.wrapper as wrapper + + cache_dir = tmp_path / "cache" + monkeypatch.setattr(wrapper, "get_mobilint_cache_dir", lambda: str(cache_dir)) + assert organizer._resolve_organizer_output_dir(None, dataset_name) == str( + cache_dir / "datasets" / dataset_name ) diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index 53b63a5..7490f58 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -77,7 +77,7 @@ def test_coco_readiness_matches_images_to_task_annotations( for image_name in image_names: _write_file(tmp_path / "val2017" / image_name) (tmp_path / annotation_name).write_text( - json.dumps({"images": [{"file_name": image_names[0]}]}), + json.dumps({"images": [{"id": 1, "file_name": image_names[0]}]}), encoding="utf-8", ) @@ -85,7 +85,12 @@ def test_coco_readiness_matches_images_to_task_annotations( (tmp_path / annotation_name).write_text( json.dumps( - {"images": [{"file_name": image_name} for image_name in image_names]} + { + "images": [ + {"id": index, "file_name": image_name} + for index, image_name in enumerate(image_names, start=1) + ] + } ), encoding="utf-8", ) @@ -94,6 +99,30 @@ def test_coco_readiness_matches_images_to_task_annotations( assert not readiness.dataset_ready(tmp_path, task, "imagenet") +def test_coco_readiness_rejects_duplicate_image_ids( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Reject COCO metadata whose duplicate IDs would overwrite image records.""" + + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 2) + image_names = ["000000000001.jpg", "000000000002.jpg"] + for image_name in image_names: + _write_file(tmp_path / "val2017" / image_name) + (tmp_path / "instances_val2017.json").write_text( + json.dumps( + { + "images": [ + {"id": 1, "file_name": image_names[0]}, + {"id": 1, "file_name": image_names[1]}, + ] + } + ), + encoding="utf-8", + ) + + assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") + + @pytest.mark.parametrize("relative_image_dir", ["images", "images/val"]) def test_dotav1_readiness_requires_complete_image_label_pairs( monkeypatch: pytest.MonkeyPatch, diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index 4c24732..3409e00 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -174,6 +174,34 @@ def test_dota_annotations_reject_negative_class_indices( _load_ground_truths(str(tmp_path), dataset) +@pytest.mark.parametrize( + ("label_path", "annotation"), + [ + ("labels/val/image.txt", "0 nan 0 0.2 0 0.2 0.2 0 0.2"), + ("labels/val_original/image.txt", "inf 0 20 0 20 20 0 20 plane 0"), + ], +) +def test_dota_annotations_reject_nonfinite_coordinates( + tmp_path, label_path: str, annotation: str +) -> None: + """Reject poisoned normalized and original DOTA polygon coordinates.""" + + path = tmp_path / label_path + path.parent.mkdir(parents=True) + path.write_text(annotation, encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises(ValueError, match=r"coordinates must be finite.*image\.txt:1"): + _load_ground_truths(str(tmp_path), dataset) + + def test_difficult_regions_do_not_count_as_positive_or_false_positive() -> None: """Ignore a detection on a difficult region while retaining positive matching.""" diff --git a/tests/test_eval_nyu_depth.py b/tests/test_eval_nyu_depth.py new file mode 100644 index 0000000..a0f9271 --- /dev/null +++ b/tests/test_eval_nyu_depth.py @@ -0,0 +1,48 @@ +"""Regression tests for NYU depth-evaluation output validation.""" + +from __future__ import annotations + +import importlib +from types import SimpleNamespace + +import numpy as np +import pytest +import torch + +eval_nyu_depth_module = importlib.import_module( + "mblt_vision.utils.evaluation.eval_nyu_depth" +) + + +def test_nyu_depth_evaluation_rejects_surplus_output_batch( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Do not silently discard depth maps from a malformed backend batch.""" + + class _Model: + pre_cfg = {"LetterBox": {"img_size": [4, 4]}} + + def __call__(self, inputs: torch.Tensor) -> torch.Tensor: + return inputs + + def postprocess(self, output: torch.Tensor) -> SimpleNamespace: + del output + return SimpleNamespace(depth=torch.zeros((2, 4, 4))) + + batch = ( + torch.zeros((1, 4, 4, 3)), + np.ones((1, 4, 4), dtype=np.float32), + [(4, 4)], + [None], + ("sample",), + ) + monkeypatch.setattr(eval_nyu_depth_module, "CustomNYUDepth", lambda _: object()) + monkeypatch.setattr( + eval_nyu_depth_module, "get_nyu_depth_loader", lambda *_args, **_kwargs: [batch] + ) + monkeypatch.setattr(eval_nyu_depth_module, "build_preprocess", lambda _: object()) + + with pytest.raises( + ValueError, match=r"output batch length mismatch: maps=2, targets=1" + ): + eval_nyu_depth_module.eval_nyu_depth(_Model(), "/dataset", batch_size=1) diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index f60e74e..23a8191 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -123,6 +123,25 @@ def test_already_decoded_detections_reject_nonfinite_rows( postprocessor._final_detection_batches(detections) +@pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) +def test_detection_postprocessor_rejects_nonfinite_raw_heads( + invalid_value: float, +) -> None: + """Reject malformed raw detector heads before they reach decoding and NMS.""" + + postprocessor = cast( + Any, YOLOAnchorlessDetectionPost.__new__(YOLOAnchorlessDetectionPost) + ) + postprocessor.device = torch.device("cpu") + raw_head = torch.zeros((1, 6, 2, 2), dtype=torch.float32) + raw_head[0, 0, 0, 0] = invalid_value + + with pytest.raises( + ValueError, match="Detection output tensors must contain only finite" + ): + postprocessor.check_input(raw_head) + + @pytest.mark.parametrize( ("post_cfg", "expected_type"), [ diff --git a/tests/test_semantic_segmentation.py b/tests/test_semantic_segmentation.py index 1675e10..b0fcccb 100644 --- a/tests/test_semantic_segmentation.py +++ b/tests/test_semantic_segmentation.py @@ -96,6 +96,13 @@ def test_semantic_postprocess_supports_mxq_hwc_and_batched_nhwc_logits() -> None assert torch.equal(nhwc_result[0], torch.full((4, 8), 3)) assert torch.equal(nhwc_result[1], torch.full((4, 8), 9)) + low_resolution_hwc_logits = torch.zeros((2, 4, 19)) + low_resolution_hwc_logits[..., 12] = 2.0 + low_resolution_result = post(low_resolution_hwc_logits) + assert isinstance(low_resolution_result, torch.Tensor) + assert low_resolution_result.shape == (1, 4, 8) + assert torch.equal(low_resolution_result, torch.full((1, 4, 8), 12)) + with pytest.raises(ValueError, match=r"expects \[B, 19, H, W\]"): post(torch.zeros((1, 4, 8, 18))) with pytest.raises(ValueError, match=r"expects \[H, W, 19\] MXQ logits"): @@ -108,6 +115,21 @@ def test_semantic_postprocess_supports_mxq_hwc_and_batched_nhwc_logits() -> None assert torch.equal(baked_result[0, 0], torch.tensor([0, 2, 4, 7, 9, 11, 14, 16])) +@pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) +def test_semantic_postprocess_rejects_nonfinite_logits(invalid_value: float) -> None: + """Reject invalid local logits before they can be converted by argmax.""" + + post = SemanticSegPost( + {"LetterBox": {"img_size": [4, 4]}}, + {"task": "semantic_segmentation", "dataset": "cityscapes"}, + ) + logits = torch.zeros((1, 19, 2, 2)) + logits[0, 0, 0, 0] = invalid_value + + with pytest.raises(ValueError, match="logits must contain only finite values"): + post(logits) + + def test_semantic_postprocess_restores_letterbox_padding() -> None: """Crop padding before nearest-restoring a semantic map.""" From 09eefb0b9ff1e930949b4946cd16475bdafcf0b0 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 13:56:05 +0900 Subject: [PATCH 29/48] fix: validate vision dataset integrity --- mblt_vision/_model_paths.py | 2 - mblt_vision/datasets/imagenet_synsets.txt | 1000 +++++++++++++++++++ mblt_vision/utils/datasets/dataloader.py | 14 +- mblt_vision/utils/datasets/organizer.py | 14 +- mblt_vision/utils/datasets/readiness.py | 118 ++- mblt_vision/utils/postprocess/base.py | 2 + mblt_vision/utils/postprocess/depth_post.py | 2 + mblt_vision/wrapper.py | 7 + pyproject.toml | 1 + tests/test_dataloader.py | 21 + tests/test_dataset_organizer.py | 22 + tests/test_dataset_readiness.py | 71 +- tests/test_depth_estimation.py | 33 + tests/test_postprocess_hierarchy.py | 18 + tests/test_wrapper.py | 17 +- 15 files changed, 1329 insertions(+), 13 deletions(-) create mode 100644 mblt_vision/datasets/imagenet_synsets.txt diff --git a/mblt_vision/_model_paths.py b/mblt_vision/_model_paths.py index dc51c47..a4eb2f6 100644 --- a/mblt_vision/_model_paths.py +++ b/mblt_vision/_model_paths.py @@ -49,8 +49,6 @@ def uses_shifted_engine_model_path_layout( and model_path.lower() not in SUPPORTED_FRAMEWORKS ): return False - if inferred_framework == "onnx": - return True return ( isinstance(dev_no, str) or isinstance(core_mode, int) diff --git a/mblt_vision/datasets/imagenet_synsets.txt b/mblt_vision/datasets/imagenet_synsets.txt new file mode 100644 index 0000000..1fab3e9 --- /dev/null +++ b/mblt_vision/datasets/imagenet_synsets.txt @@ -0,0 +1,1000 @@ ++n01440764 +n01443537 +n01484850 +n01491361 +n01494475 +n01496331 +n01498041 +n01514668 +n01514859 +n01518878 +n01530575 +n01531178 +n01532829 +n01534433 +n01537544 +n01558993 +n01560419 +n01580077 +n01582220 +n01592084 +n01601694 +n01608432 +n01614925 +n01616318 +n01622779 +n01629819 +n01630670 +n01631663 +n01632458 +n01632777 +n01641577 +n01644373 +n01644900 +n01664065 +n01665541 +n01667114 +n01667778 +n01669191 +n01675722 +n01677366 +n01682714 +n01685808 +n01687978 +n01688243 +n01689811 +n01692333 +n01693334 +n01694178 +n01695060 +n01697457 +n01698640 +n01704323 +n01728572 +n01728920 +n01729322 +n01729977 +n01734418 +n01735189 +n01737021 +n01739381 +n01740131 +n01742172 +n01744401 +n01748264 +n01749939 +n01751748 +n01753488 +n01755581 +n01756291 +n01768244 +n01770081 +n01770393 +n01773157 +n01773549 +n01773797 +n01774384 +n01774750 +n01775062 +n01776313 +n01784675 +n01795545 +n01796340 +n01797886 +n01798484 +n01806143 +n01806567 +n01807496 +n01817953 +n01818515 +n01819313 +n01820546 +n01824575 +n01828970 +n01829413 +n01833805 +n01843065 +n01843383 +n01847000 +n01855032 +n01855672 +n01860187 +n01871265 +n01872401 +n01873310 +n01877812 +n01882714 +n01883070 +n01910747 +n01914609 +n01917289 +n01924916 +n01930112 +n01943899 +n01944390 +n01945685 +n01950731 +n01955084 +n01968897 +n01978287 +n01978455 +n01980166 +n01981276 +n01983481 +n01984695 +n01985128 +n01986214 +n01990800 +n02002556 +n02002724 +n02006656 +n02007558 +n02009229 +n02009912 +n02011460 +n02012849 +n02013706 +n02017213 +n02018207 +n02018795 +n02025239 +n02027492 +n02028035 +n02033041 +n02037110 +n02051845 +n02056570 +n02058221 +n02066245 +n02071294 +n02074367 +n02077923 +n02085620 +n02085782 +n02085936 +n02086079 +n02086240 +n02086646 +n02086910 +n02087046 +n02087394 +n02088094 +n02088238 +n02088364 +n02088466 +n02088632 +n02089078 +n02089867 +n02089973 +n02090379 +n02090622 +n02090721 +n02091032 +n02091134 +n02091244 +n02091467 +n02091635 +n02091831 +n02092002 +n02092339 +n02093256 +n02093428 +n02093647 +n02093754 +n02093859 +n02093991 +n02094114 +n02094258 +n02094433 +n02095314 +n02095570 +n02095889 +n02096051 +n02096177 +n02096294 +n02096437 +n02096585 +n02097047 +n02097130 +n02097209 +n02097298 +n02097474 +n02097658 +n02098105 +n02098286 +n02098413 +n02099267 +n02099429 +n02099601 +n02099712 +n02099849 +n02100236 +n02100583 +n02100735 +n02100877 +n02101006 +n02101388 +n02101556 +n02102040 +n02102177 +n02102318 +n02102480 +n02102973 +n02104029 +n02104365 +n02105056 +n02105162 +n02105251 +n02105412 +n02105505 +n02105641 +n02105855 +n02106030 +n02106166 +n02106382 +n02106550 +n02106662 +n02107142 +n02107312 +n02107574 +n02107683 +n02107908 +n02108000 +n02108089 +n02108422 +n02108551 +n02108915 +n02109047 +n02109525 +n02109961 +n02110063 +n02110185 +n02110341 +n02110627 +n02110806 +n02110958 +n02111129 +n02111277 +n02111500 +n02111889 +n02112018 +n02112137 +n02112350 +n02112706 +n02113023 +n02113186 +n02113624 +n02113712 +n02113799 +n02113978 +n02114367 +n02114548 +n02114712 +n02114855 +n02115641 +n02115913 +n02116738 +n02117135 +n02119022 +n02119789 +n02120079 +n02120505 +n02123045 +n02123159 +n02123394 +n02123597 +n02124075 +n02125311 +n02127052 +n02128385 +n02128757 +n02128925 +n02129165 +n02129604 +n02130308 +n02132136 +n02133161 +n02134084 +n02134418 +n02137549 +n02138441 +n02165105 +n02165456 +n02167151 +n02168699 +n02169497 +n02172182 +n02174001 +n02177972 +n02190166 +n02206856 +n02219486 +n02226429 +n02229544 +n02231487 +n02233338 +n02236044 +n02256656 +n02259212 +n02264363 +n02268443 +n02268853 +n02276258 +n02277742 +n02279972 +n02280649 +n02281406 +n02281787 +n02317335 +n02319095 +n02321529 +n02325366 +n02326432 +n02328150 +n02342885 +n02346627 +n02356798 +n02361337 +n02363005 +n02364673 +n02389026 +n02391049 +n02395406 +n02396427 +n02397096 +n02398521 +n02403003 +n02408429 +n02410509 +n02412080 +n02415577 +n02417914 +n02422106 +n02422699 +n02423022 +n02437312 +n02437616 +n02441942 +n02442845 +n02443114 +n02443484 +n02444819 +n02445715 +n02447366 +n02454379 +n02457408 +n02480495 +n02480855 +n02481823 +n02483362 +n02483708 +n02484975 +n02486261 +n02486410 +n02487347 +n02488291 +n02488702 +n02489166 +n02490219 +n02492035 +n02492660 +n02493509 +n02493793 +n02494079 +n02497673 +n02500267 +n02504013 +n02504458 +n02509815 +n02510455 +n02514041 +n02526121 +n02536864 +n02606052 +n02607072 +n02640242 +n02641379 +n02643566 +n02655020 +n02666196 +n02667093 +n02669723 +n02672831 +n02676566 +n02687172 +n02690373 +n02692877 +n02699494 +n02701002 +n02704792 +n02708093 +n02727426 +n02730930 +n02747177 +n02749479 +n02769748 +n02776631 +n02777292 +n02782093 +n02783161 +n02786058 +n02787622 +n02788148 +n02790996 +n02791124 +n02791270 +n02793495 +n02794156 +n02795169 +n02797295 +n02799071 +n02802426 +n02804414 +n02804610 +n02807133 +n02808304 +n02808440 +n02814533 +n02814860 +n02815834 +n02817516 +n02823428 +n02823750 +n02825657 +n02834397 +n02835271 +n02837789 +n02840245 +n02841315 +n02843684 +n02859443 +n02860847 +n02865351 +n02869837 +n02870880 +n02871525 +n02877765 +n02879718 +n02883205 +n02892201 +n02892767 +n02894605 +n02895154 +n02906734 +n02909870 +n02910353 +n02916936 +n02917067 +n02927161 +n02930766 +n02939185 +n02948072 +n02950826 +n02951358 +n02951585 +n02963159 +n02965783 +n02966193 +n02966687 +n02971356 +n02974003 +n02977058 +n02978881 +n02979186 +n02980441 +n02981792 +n02988304 +n02992211 +n02992529 +n02999410 +n03000134 +n03000247 +n03000684 +n03014705 +n03016953 +n03017168 +n03018349 +n03026506 +n03028079 +n03032252 +n03041632 +n03042490 +n03045698 +n03047690 +n03062245 +n03063599 +n03063689 +n03065424 +n03075370 +n03085013 +n03089624 +n03095699 +n03100240 +n03109150 +n03110669 +n03124043 +n03124170 +n03125729 +n03126707 +n03127747 +n03127925 +n03131574 +n03133878 +n03134739 +n03141823 +n03146219 +n03160309 +n03179701 +n03180011 +n03187595 +n03188531 +n03196217 +n03197337 +n03201208 +n03207743 +n03207941 +n03208938 +n03216828 +n03218198 +n03220513 +n03223299 +n03240683 +n03249569 +n03250847 +n03255030 +n03259280 +n03271574 +n03272010 +n03272562 +n03290653 +n03291819 +n03297495 +n03314780 +n03325584 +n03337140 +n03344393 +n03345487 +n03347037 +n03355925 +n03372029 +n03376595 +n03379051 +n03384352 +n03388043 +n03388183 +n03388549 +n03393912 +n03394916 +n03400231 +n03404251 +n03417042 +n03424325 +n03425413 +n03443371 +n03444034 +n03445777 +n03445924 +n03447447 +n03447721 +n03450230 +n03452741 +n03457902 +n03459775 +n03461385 +n03467068 +n03476684 +n03476991 +n03478589 +n03481172 +n03482405 +n03483316 +n03485407 +n03485794 +n03492542 +n03494278 +n03495258 +n03496892 +n03498962 +n03527444 +n03529860 +n03530642 +n03532672 +n03534580 +n03535780 +n03538406 +n03544143 +n03584254 +n03584829 +n03590841 +n03594734 +n03594945 +n03595614 +n03598930 +n03599486 +n03602883 +n03617480 +n03623198 +n03627232 +n03630383 +n03633091 +n03637318 +n03642806 +n03649909 +n03657121 +n03658185 +n03661043 +n03662601 +n03666591 +n03670208 +n03673027 +n03676483 +n03680355 +n03690938 +n03691459 +n03692522 +n03697007 +n03706229 +n03709823 +n03710193 +n03710637 +n03710721 +n03717622 +n03720891 +n03721384 +n03724870 +n03729826 +n03733131 +n03733281 +n03733805 +n03742115 +n03743016 +n03759954 +n03761084 +n03763968 +n03764736 +n03769881 +n03770439 +n03770679 +n03773504 +n03775071 +n03775546 +n03776460 +n03777568 +n03777754 +n03781244 +n03782006 +n03785016 +n03786901 +n03787032 +n03788195 +n03788365 +n03791053 +n03792782 +n03792972 +n03793489 +n03794056 +n03796401 +n03803284 +n03804744 +n03814639 +n03814906 +n03825788 +n03832673 +n03837869 +n03838899 +n03840681 +n03841143 +n03843555 +n03854065 +n03857828 +n03866082 +n03868242 +n03868863 +n03871628 +n03873416 +n03874293 +n03874599 +n03876231 +n03877472 +n03877845 +n03884397 +n03887697 +n03888257 +n03888605 +n03891251 +n03891332 +n03895866 +n03899768 +n03902125 +n03903868 +n03908618 +n03908714 +n03916031 +n03920288 +n03924679 +n03929660 +n03929855 +n03930313 +n03930630 +n03933933 +n03935335 +n03937543 +n03938244 +n03942813 +n03944341 +n03947888 +n03950228 +n03954731 +n03956157 +n03958227 +n03961711 +n03967562 +n03970156 +n03976467 +n03976657 +n03977966 +n03980874 +n03982430 +n03983396 +n03991062 +n03992509 +n03995372 +n03998194 +n04004767 +n04005630 +n04008634 +n04009552 +n04019541 +n04023962 +n04026417 +n04033901 +n04033995 +n04037443 +n04039381 +n04040759 +n04041544 +n04044716 +n04049303 +n04065272 +n04067472 +n04069434 +n04070727 +n04074963 +n04081281 +n04086273 +n04090263 +n04099969 +n04111531 +n04116512 +n04118538 +n04118776 +n04120489 +n04125021 +n04127249 +n04131690 +n04133789 +n04136333 +n04141076 +n04141327 +n04141975 +n04146614 +n04147183 +n04149813 +n04152593 +n04153751 +n04154565 +n04162706 +n04179913 +n04192698 +n04200800 +n04201297 +n04204238 +n04204347 +n04208210 +n04209133 +n04209239 +n04228054 +n04229816 +n04235860 +n04238763 +n04239074 +n04243546 +n04251144 +n04252077 +n04252225 +n04254120 +n04254680 +n04254777 +n04258138 +n04259630 +n04263257 +n04264628 +n04265275 +n04266014 +n04270147 +n04273569 +n04275548 +n04277352 +n04285008 +n04286575 +n04296562 +n04310018 +n04311004 +n04311174 +n04317175 +n04325704 +n04326547 +n04328186 +n04330267 +n04332243 +n04335435 +n04336792 +n04344873 +n04346328 +n04347754 +n04350905 +n04355338 +n04355933 +n04356056 +n04357314 +n04366367 +n04367480 +n04370456 +n04371430 +n04371774 +n04372370 +n04376876 +n04380533 +n04389033 +n04392985 +n04398044 +n04399382 +n04404412 +n04409515 +n04417672 +n04418357 +n04423845 +n04428191 +n04429376 +n04435653 +n04442312 +n04443257 +n04447861 +n04456115 +n04458633 +n04461696 +n04462240 +n04465501 +n04467665 +n04476259 +n04479046 +n04482393 +n04483307 +n04485082 +n04486054 +n04487081 +n04487394 +n04493381 +n04501370 +n04505470 +n04507155 +n04509417 +n04515003 +n04517823 +n04522168 +n04523525 +n04525038 +n04525305 +n04532106 +n04532670 +n04536866 +n04540053 +n04542943 +n04548280 +n04548362 +n04550184 +n04552348 +n04553703 +n04554684 +n04557648 +n04560804 +n04562935 +n04579145 +n04579432 +n04584207 +n04589890 +n04590129 +n04591157 +n04591713 +n04592741 +n04596742 +n04597913 +n04599235 +n04604644 +n04606251 +n04612504 +n04613696 +n06359193 +n06596364 +n06785654 +n06794110 +n06874185 +n07248320 +n07565083 +n07579787 +n07583066 +n07584110 +n07590611 +n07613480 +n07614500 +n07615774 +n07684084 +n07693725 +n07695742 +n07697313 +n07697537 +n07711569 +n07714571 +n07714990 +n07715103 +n07716358 +n07716906 +n07717410 +n07717556 +n07718472 +n07718747 +n07720875 +n07730033 +n07734744 +n07742313 +n07745940 +n07747607 +n07749582 +n07753113 +n07753275 +n07753592 +n07754684 +n07760859 +n07768694 +n07802026 +n07831146 +n07836838 +n07860988 +n07871810 +n07873807 +n07875152 +n07880968 +n07892512 +n07920052 +n07930864 +n07932039 +n09193705 +n09229709 +n09246464 +n09256479 +n09288635 +n09332890 +n09399592 +n09421951 +n09428293 +n09468604 +n09472597 +n09835506 +n10148035 +n10565667 +n11879895 +n11939491 +n12057211 +n12144580 +n12267677 +n12620546 +n12768682 +n12985857 +n12998815 +n13037406 +n13040303 +n13044778 +n13052670 +n13054560 +n13133613 +n15075141 diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index ca8ea14..239c802 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -211,9 +211,13 @@ def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: "NYU Depth image and target shapes must match for " f"{stem}: image {image.shape[:2]}, depth {depth.shape}." ) + if not bool(np.isfinite(depth).all()): + raise ValueError( + f"NYU Depth target must contain only finite values: {depth_path}" + ) return ( cv2.cvtColor(image, cv2.COLOR_BGR2RGB), - np.nan_to_num(depth, nan=0.0, posinf=0.0, neginf=0.0), + depth, stem, ) @@ -505,6 +509,14 @@ def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: raise ValueError( f"Cityscapes annotation values must be in [0, 255]: {annotation_path}" ) + source_ids = np.unique(annotation.astype(np.uint8)) + known_ids = np.array([*range(34), 255], dtype=np.uint8) + unknown_ids = source_ids[~np.isin(source_ids, known_ids)] + if unknown_ids.size: + raise ValueError( + "Cityscapes annotation contains unsupported source IDs " + f"{unknown_ids.tolist()}: {annotation_path}" + ) target = CITYSCAPES_SOURCE_TO_TRAIN_ID[annotation.astype(np.uint8)] return cv2.cvtColor(image, cv2.COLOR_BGR2RGB), target, stem diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 8fce971..5ae0b4e 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -1414,8 +1414,14 @@ def _safe_unpack_archive(archive_path: str, destination: str) -> None: if zipfile.is_zipfile(archive_path): with zipfile.ZipFile(archive_path) as archive: members = archive.infolist() + targets: set[str] = set() for member in members: - _safe_archive_member_path(member.filename, destination) + target = _safe_archive_member_path(member.filename, destination) + if target in targets: + raise ValueError( + f"Duplicate archive member path: {member.filename!r}." + ) + targets.add(target) file_type = stat.S_IFMT(member.external_attr >> 16) if file_type and not ( stat.S_ISREG(file_type) or stat.S_ISDIR(file_type) @@ -1436,8 +1442,12 @@ def _safe_unpack_archive(archive_path: str, destination: str) -> None: if tarfile.is_tarfile(archive_path): with tarfile.open(archive_path) as archive: members = archive.getmembers() + targets: set[str] = set() for member in members: - _safe_archive_member_path(member.name, destination) + target = _safe_archive_member_path(member.name, destination) + if target in targets: + raise ValueError(f"Duplicate archive member path: {member.name!r}.") + targets.add(target) if not (member.isfile() or member.isdir()): raise ValueError(f"Unsafe archive member type: {member.name!r}.") for member in members: diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index d643dd7..0fcfeae 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -5,6 +5,7 @@ import json import os import re +from importlib.resources import files from pathlib import Path from typing import Any @@ -32,6 +33,20 @@ CITYSCAPES_SAMPLE_ID_PATTERN = re.compile( r"^(?P[A-Za-z][A-Za-z0-9-]*)_\d{6}_\d{6}$" ) +IMAGENET_SYNSETS = frozenset( + files("mblt_vision.datasets") + .joinpath("imagenet_synsets.txt") + .read_text(encoding="utf-8") + .splitlines() +) +COCO_ANNOTATION_COUNTS = { + "instances_val2017.json": 36781, + "person_keypoints_val2017.json": 11004, +} +COCO_CATEGORY_COUNTS = { + "instances_val2017.json": 80, + "person_keypoints_val2017.json": 1, +} def _path_has_symlink_component(path: Path) -> bool: @@ -88,7 +103,7 @@ def _imagenet_ready(root: Path) -> bool: if not root.is_dir(): return False class_dirs = [path for path in root.iterdir() if path.is_dir()] - if len(class_dirs) != IMAGENET_CLASS_COUNT: + if {path.name for path in class_dirs} != IMAGENET_SYNSETS: return False image_names: set[str] = set() for class_dir in class_dirs: @@ -116,7 +131,9 @@ def _load_coco_image_names(annotation_path: Path) -> set[str] | None: annotation: Any = json.loads(annotation_path.read_text(encoding="utf-8")) except (json.JSONDecodeError, OSError, UnicodeError): return None - image_records = annotation.get("images") if isinstance(annotation, dict) else None + if not isinstance(annotation, dict): + return None + image_records = annotation.get("images") if ( not isinstance(image_records, list) or len(image_records) != COCO_VALIDATION_SAMPLE_COUNT @@ -142,6 +159,48 @@ def _load_coco_image_names(annotation_path: Path) -> set[str] | None: or len(image_ids) != len(set(image_ids)) ): return None + annotation_records = annotation.get("annotations") + categories = annotation.get("categories") + expected_annotations = COCO_ANNOTATION_COUNTS.get(annotation_path.name) + expected_categories = COCO_CATEGORY_COUNTS.get(annotation_path.name) + if ( + not isinstance(annotation_records, list) + or not isinstance(categories, list) + or len(annotation_records) != expected_annotations + or len(categories) != expected_categories + ): + return None + category_ids = [ + category.get("id") for category in categories if isinstance(category, dict) + ] + if ( + len(category_ids) != len(categories) + or any( + not isinstance(category_id, int) or isinstance(category_id, bool) + for category_id in category_ids + ) + or len(category_ids) != len(set(category_ids)) + ): + return None + annotation_ids: list[int] = [] + for record in annotation_records: + if not isinstance(record, dict): + return None + annotation_id = record.get("id") + image_id = record.get("image_id") + category_id = record.get("category_id") + if ( + not isinstance(annotation_id, int) + or isinstance(annotation_id, bool) + or not isinstance(image_id, int) + or isinstance(image_id, bool) + or image_id not in image_ids + or category_id not in category_ids + ): + return None + annotation_ids.append(annotation_id) + if len(annotation_ids) != len(set(annotation_ids)): + return None return set(names) @@ -228,9 +287,64 @@ def _widerface_ready(root: Path) -> bool: actual_images == expected_images and sum(len(image_names) for image_names in actual_images.values()) == WIDERFACE_VALIDATION_SAMPLE_COUNT + and _widerface_difficulty_metadata_ready(root, expected_images) ) +def _widerface_difficulty_metadata_ready( + root: Path, expected_images: dict[str, set[str]] +) -> bool: + """Validate WiderFace difficulty table dimensions and one-based face indices.""" + + try: + main = loadmat(root / "wider_face_val.mat") + face_boxes = main["face_bbx_list"] + difficulties = [ + loadmat(root / file_name)["gt_list"] + for file_name in ( + "wider_easy_val.mat", + "wider_medium_val.mat", + "wider_hard_val.mat", + ) + ] + except (IndexError, KeyError, MatReadError, OSError, TypeError, ValueError): + return False + if len(face_boxes) != len(expected_images) or any( + len(table) != len(expected_images) for table in difficulties + ): + return False + for event_index, image_names in enumerate(expected_images.values()): + try: + event_faces = face_boxes[event_index][0] + except (IndexError, TypeError): + return False + if len(event_faces) != len(image_names): + return False + for table in difficulties: + try: + event_indices = table[event_index][0] + except (IndexError, TypeError): + return False + if len(event_indices) != len(image_names): + return False + for image_index, face_entry in enumerate(event_faces): + try: + face_count = len(np.asarray(face_entry[0])) + keep_indices = np.asarray(event_indices[image_index][0]) + except (IndexError, TypeError): + return False + if ( + not np.isfinite(keep_indices).all() + or not np.equal(keep_indices, np.trunc(keep_indices)).all() + ): + return False + if keep_indices.size and ( + int(keep_indices.min()) < 1 or int(keep_indices.max()) > face_count + ): + return False + return True + + def _flatten_matlab_strings(value: Any) -> list[str]: """Flatten strings stored inside nested MATLAB cell arrays.""" diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index b074970..246ff9a 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -413,6 +413,8 @@ def _normalize_proto_batch( raise ValueError( f"Expected 4D prototype tensor, got shape {tuple(proto.shape)}." ) + if not bool(torch.isfinite(proto).all()): + raise ValueError("Mask prototype tensor must contain only finite values.") if proto.shape[-1] == self.n_extra: return proto if proto.shape[1] == self.n_extra: diff --git a/mblt_vision/utils/postprocess/depth_post.py b/mblt_vision/utils/postprocess/depth_post.py index 22a4deb..075d938 100644 --- a/mblt_vision/utils/postprocess/depth_post.py +++ b/mblt_vision/utils/postprocess/depth_post.py @@ -78,6 +78,8 @@ def _normalize_output(self, x: TensorLike | ListTensorLike) -> torch.Tensor: f"got {tuple(depth.shape)}." ) depth = depth.to(device=self.device, dtype=torch.float32) + if not bool(torch.isfinite(depth).all()): + raise ValueError("Depth estimation output must contain only finite values.") if tuple(depth.shape[-2:]) == self.input_shape: return depth diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index a40d294..f17bb1b 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -458,6 +458,13 @@ def __init__( ) model_config_part = resolve_model_config(model_cls, model_type) + if mxq_path and Path(mxq_path).suffix.lower() != ".mxq": + raise ValueError(f"Explicit mxq_path must end in '.mxq', got {mxq_path!r}.") + if onnx_path and Path(onnx_path).suffix.lower() != ".onnx": + raise ValueError( + f"Explicit onnx_path must end in '.onnx', got {onnx_path!r}." + ) + file_cfg_model_path = str(model_config_part["file_cfg"].get("model_path", "")) file_cfg_onnx_path = str(model_config_part["file_cfg"].get("onnx_path", "")) framework_model_path = model_path or file_cfg_model_path diff --git a/pyproject.toml b/pyproject.toml index 840154d..5514221 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,6 +69,7 @@ version = { attr = "mblt_vision.__version__" } "py.typed", "models/*.yaml", "datasets/*.yaml", + "datasets/*.txt", ] [tool.pytest.ini_options] diff --git a/tests/test_dataloader.py b/tests/test_dataloader.py index bfda94e..88a704c 100644 --- a/tests/test_dataloader.py +++ b/tests/test_dataloader.py @@ -5,11 +5,14 @@ from pathlib import Path from types import SimpleNamespace +import cv2 import numpy as np import pytest +from PIL import Image from mblt_vision.utils.datasets.dataloader import ( CustomCOCODataset, + CustomCityscapes, CustomImageFolder, CustomWiderFaceDataset, ) @@ -60,3 +63,21 @@ def test_coco_dataset_rejects_annotation_geometry_mismatching_image() -> None: ValueError, match=r"image ID 1: annotation \(4, 5\), image \(3, 5\)" ): CustomCOCODataset.__getitem__(dataset, 0) + + +def test_cityscapes_dataset_rejects_unknown_source_ids(tmp_path: Path) -> None: + """Reject corrupted Cityscapes labels instead of remapping them to ignore.""" + + image_dir = tmp_path / "images" + annotation_dir = tmp_path / "annotations" + image_dir.mkdir() + annotation_dir.mkdir() + assert cv2.imwrite( + str(image_dir / "sample.png"), np.zeros((2, 2, 3), dtype=np.uint8) + ) + Image.fromarray(np.full((2, 2), 200, dtype=np.uint8)).save( + annotation_dir / "sample.png" + ) + + with pytest.raises(ValueError, match=r"unsupported source IDs \[200\]"): + CustomCityscapes(str(tmp_path))[0] diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index df4a02d..5a27449 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -674,6 +674,28 @@ def test_safe_unpack_archive_preserves_regular_tar_layout(tmp_path: Path) -> Non assert (extract_dir / "dataset" / "sample.txt").read_bytes() == b"dataset contents" +@pytest.mark.parametrize("suffix", [".zip", ".tar"]) +def test_safe_unpack_archive_rejects_duplicate_member_paths( + tmp_path: Path, suffix: str +) -> None: + """Reject duplicate archive members before any staged file can be replaced.""" + + archive_path = tmp_path / f"dataset{suffix}" + if suffix == ".zip": + with ZipFile(archive_path, "w") as archive: + archive.writestr("dataset/sample.txt", b"first") + archive.writestr("dataset/sample.txt", b"second") + else: + with tarfile.open(archive_path, "w") as archive: + for payload in (b"first", b"second"): + member = tarfile.TarInfo("dataset/sample.txt") + member.size = len(payload) + archive.addfile(member, io.BytesIO(payload)) + + with pytest.raises(ValueError, match="Duplicate archive member path"): + organizer._safe_unpack_archive(str(archive_path), str(tmp_path / "extracted")) + + def test_safe_unpack_archive_rejects_tar_traversal_before_writing( tmp_path: Path, ) -> None: diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index 7490f58..2f999c9 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -38,6 +38,7 @@ def test_imagenet_readiness_requires_complete_official_class_tree( monkeypatch.setattr(readiness, "IMAGENET_CLASS_COUNT", 2) monkeypatch.setattr(readiness, "IMAGENET_IMAGES_PER_CLASS", 2) + monkeypatch.setattr(readiness, "IMAGENET_SYNSETS", {"n00000000", "n00000001"}) for class_index in range(2): for image_index in range(2): if (class_index, image_index) == (1, 1): @@ -73,6 +74,8 @@ def test_coco_readiness_matches_images_to_task_annotations( """Require every official COCO image in the task-specific annotation file.""" monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 2) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, annotation_name, 2) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, annotation_name, 1) image_names = ["000000000001.jpg", "000000000002.jpg"] for image_name in image_names: _write_file(tmp_path / "val2017" / image_name) @@ -89,7 +92,12 @@ def test_coco_readiness_matches_images_to_task_annotations( "images": [ {"id": index, "file_name": image_name} for index, image_name in enumerate(image_names, start=1) - ] + ], + "categories": [{"id": 1}], + "annotations": [ + {"id": index, "image_id": index, "category_id": 1} + for index in range(1, 3) + ], } ), encoding="utf-8", @@ -105,6 +113,8 @@ def test_coco_readiness_rejects_duplicate_image_ids( """Reject COCO metadata whose duplicate IDs would overwrite image records.""" monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 2) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 2) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) image_names = ["000000000001.jpg", "000000000002.jpg"] for image_name in image_names: _write_file(tmp_path / "val2017" / image_name) @@ -114,7 +124,12 @@ def test_coco_readiness_rejects_duplicate_image_ids( "images": [ {"id": 1, "file_name": image_names[0]}, {"id": 1, "file_name": image_names[1]}, - ] + ], + "categories": [{"id": 1}], + "annotations": [ + {"id": 1, "image_id": 1, "category_id": 1}, + {"id": 2, "image_id": 1, "category_id": 1}, + ], } ), encoding="utf-8", @@ -123,6 +138,55 @@ def test_coco_readiness_rejects_duplicate_image_ids( assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") +def test_coco_readiness_rejects_truncated_annotation_table( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Do not reuse complete-looking images with incomplete COCO ground truth.""" + + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 2) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 2) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + image_names = ["000000000001.jpg", "000000000002.jpg"] + for image_name in image_names: + _write_file(tmp_path / "val2017" / image_name) + (tmp_path / "instances_val2017.json").write_text( + json.dumps( + { + "images": [ + {"id": index, "file_name": image_name} + for index, image_name in enumerate(image_names, start=1) + ], + "categories": [{"id": 1}], + "annotations": [{"id": 1, "image_id": 1, "category_id": 1}], + } + ), + encoding="utf-8", + ) + + assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") + + +def test_widerface_readiness_rejects_invalid_difficulty_metadata( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Reject present-but-malformed difficulty files before evaluation indexes them.""" + + monkeypatch.setattr(readiness, "WIDERFACE_EVENT_COUNT", 1) + monkeypatch.setattr(readiness, "WIDERFACE_VALIDATION_SAMPLE_COUNT", 1) + _write_widerface_metadata( + tmp_path / "wider_face_val.mat", {"0--Parade": ["sample"]} + ) + for file_name in ( + "wider_easy_val.mat", + "wider_medium_val.mat", + "wider_hard_val.mat", + ): + _write_file(tmp_path / file_name) + _write_file(tmp_path / "images" / "0--Parade" / "sample.jpg") + + assert not readiness.dataset_ready(tmp_path, "face_detection", "widerface") + + @pytest.mark.parametrize("relative_image_dir", ["images", "images/val"]) def test_dotav1_readiness_requires_complete_image_label_pairs( monkeypatch: pytest.MonkeyPatch, @@ -164,6 +228,9 @@ def test_widerface_readiness_requires_complete_event_tree_and_metadata( monkeypatch.setattr(readiness, "WIDERFACE_EVENT_COUNT", 2) monkeypatch.setattr(readiness, "WIDERFACE_VALIDATION_SAMPLE_COUNT", 2) + monkeypatch.setattr( + readiness, "_widerface_difficulty_metadata_ready", lambda *_: True + ) _write_widerface_metadata( tmp_path / "wider_face_val.mat", {"0--Parade": ["sample-0"], "1--Handshaking": ["sample-1"]}, diff --git a/tests/test_depth_estimation.py b/tests/test_depth_estimation.py index f439b1e..79c9f90 100644 --- a/tests/test_depth_estimation.py +++ b/tests/test_depth_estimation.py @@ -114,6 +114,18 @@ def test_depth_post_normalizes_quarter_resolution_channel_last_output() -> None: assert torch.equal(normalized, expected) +@pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) +def test_depth_post_rejects_nonfinite_outputs(invalid_value: float) -> None: + """Reject invalid local depth tensors before resizing or visualization.""" + + post = DepthPost({"LetterBox": {"img_size": [8, 8]}}, {}) + depth = torch.zeros((1, 8, 8)) + depth[0, 0, 0] = invalid_value + + with pytest.raises(ValueError, match="must contain only finite values"): + post(depth) + + def test_nyu_depth_dataset_rejects_mismatched_image_and_target_shapes(tmp_path) -> None: """Reject paired NYU files whose pixels cannot be compared one-to-one.""" @@ -128,3 +140,24 @@ def test_nyu_depth_dataset_rejects_mismatched_image_and_target_shapes(tmp_path) with pytest.raises(ValueError, match=r"sample: image \(4, 5\), depth \(3, 5\)"): CustomNYUDepth(str(tmp_path))[0] + + +@pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) +def test_nyu_depth_dataset_rejects_nonfinite_targets( + tmp_path, invalid_value: float +) -> None: + """Do not silently remove invalid NYU ground-truth pixels from metrics.""" + + image_dir = tmp_path / "images" + depth_dir = tmp_path / "depth" + image_dir.mkdir() + depth_dir.mkdir() + assert cv2.imwrite( + str(image_dir / "sample.png"), np.zeros((4, 5, 3), dtype=np.uint8) + ) + depth = np.ones((4, 5), dtype=np.float32) + depth[0, 0] = invalid_value + np.save(depth_dir / "sample.npy", depth) + + with pytest.raises(ValueError, match=r"finite values: .*sample\.npy"): + CustomNYUDepth(str(tmp_path))[0] diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index 23a8191..7923925 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -142,6 +142,24 @@ def test_detection_postprocessor_rejects_nonfinite_raw_heads( postprocessor.check_input(raw_head) +@pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) +def test_detection_postprocessor_rejects_nonfinite_mask_prototypes( + invalid_value: float, +) -> None: + """Reject invalid mask prototypes from already-decoded segmentation artifacts.""" + + postprocessor = cast(Any, YOLOAnchorlessSegPost.__new__(YOLOAnchorlessSegPost)) + postprocessor.device = torch.device("cpu") + postprocessor.n_extra = 2 + prototype = torch.zeros((1, 2, 2, 2)) + prototype[0, 0, 0, 0] = invalid_value + + with pytest.raises( + ValueError, match="Mask prototype tensor must contain only finite" + ): + postprocessor._normalize_proto_batch(prototype) + + @pytest.mark.parametrize( ("post_cfg", "expected_type"), [ diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 4be37c0..0df8263 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -319,6 +319,17 @@ def test_engine_init_rejects_nonexistent_explicit_onnx_path( MBLT_Engine(model_config, **path_kwargs) +def test_engine_init_rejects_wrong_suffix_for_mxq_path(tmp_path: Path) -> None: + """Do not route an existing ONNX file through the MXQ compatibility alias.""" + + onnx_path = tmp_path / "model.onnx" + onnx_path.write_bytes(b"onnx") + with pytest.raises(ValueError, match=r"mxq_path must end in '.mxq'"): + MBLT_Engine( + {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, mxq_path=str(onnx_path) + ) + + def test_engine_init_disposes_mxq_backend_after_postprocess_setup_failure( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: @@ -1021,7 +1032,7 @@ def dispose(self) -> None: @pytest.mark.parametrize( - "model_path_style", ["keyword", "positional", "positional-runtime", "onnx-path"] + "model_path_style", ["keyword", "positional-runtime", "onnx-path"] ) def test_engine_init_accepts_local_onnx_model_path( monkeypatch: pytest.MonkeyPatch, @@ -1077,9 +1088,7 @@ def InferenceSession(self, path: str, providers: list[str]) -> _FakeSession: "pre_cfg": {}, "post_cfg": {}, } - if model_path_style == "positional": - engine = MBLT_Engine(model_config, "DEFAULT", str(onnx_path)) - elif model_path_style == "positional-runtime": + if model_path_style == "positional-runtime": # Keep this legacy positional-runtime invocation untyped: its argument # order is normalized at runtime by ``MBLT_Engine``. engine = cast(Any, MBLT_Engine)( From 5d812bdb8d9863396133c7339e1bfac23afc5316 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 14:02:49 +0900 Subject: [PATCH 30/48] fix: update imports for consistency and clarity in postprocessing modules --- mblt_vision/utils/postprocess/depth_post.py | 3 +- .../utils/postprocess/semantic_seg_post.py | 3 +- tests/test_dataloader.py | 12 +++-- tests/test_dataset_organizer.py | 46 +++++++++++-------- tests/test_wrapper.py | 21 ++++++--- 5 files changed, 54 insertions(+), 31 deletions(-) diff --git a/mblt_vision/utils/postprocess/depth_post.py b/mblt_vision/utils/postprocess/depth_post.py index 075d938..ee7dee0 100644 --- a/mblt_vision/utils/postprocess/depth_post.py +++ b/mblt_vision/utils/postprocess/depth_post.py @@ -8,10 +8,11 @@ import torch import torch.nn.functional as functional +from ..letterbox import RatioPad from ..types import ListTensorLike, TensorLike from ._letterbox import crop_letterbox, get_letterbox_input_shape, resolve_ratio_pads from .base import PostBase -from .common import RatioPad, normalize_image_shapes +from .common import normalize_image_shapes class DepthPost(PostBase): diff --git a/mblt_vision/utils/postprocess/semantic_seg_post.py b/mblt_vision/utils/postprocess/semantic_seg_post.py index a4ddea6..03f43ef 100644 --- a/mblt_vision/utils/postprocess/semantic_seg_post.py +++ b/mblt_vision/utils/postprocess/semantic_seg_post.py @@ -8,10 +8,11 @@ import torch import torch.nn.functional as functional +from ..letterbox import RatioPad from ..types import ListTensorLike, TensorLike from ._letterbox import crop_letterbox, get_letterbox_input_shape, resolve_ratio_pads from .base import PostBase -from .common import RatioPad, normalize_image_shapes +from .common import normalize_image_shapes class SemanticSegPost(PostBase): diff --git a/tests/test_dataloader.py b/tests/test_dataloader.py index 88a704c..0b90062 100644 --- a/tests/test_dataloader.py +++ b/tests/test_dataloader.py @@ -4,6 +4,7 @@ from pathlib import Path from types import SimpleNamespace +from typing import cast import cv2 import numpy as np @@ -53,10 +54,13 @@ def test_class_based_datasets_ignore_non_image_files( def test_coco_dataset_rejects_annotation_geometry_mismatching_image() -> None: """Do not evaluate COCO labels with geometry different from their decoded image.""" - dataset = SimpleNamespace( - ids=[1], - coco=SimpleNamespace(imgs={1: {"height": 4, "width": 5}}), - _load_image=lambda _: np.zeros((3, 5, 3), dtype=np.uint8), + dataset = cast( + CustomCOCODataset, + SimpleNamespace( + ids=[1], + coco=SimpleNamespace(imgs={1: {"height": 4, "width": 5}}), + _load_image=lambda _: np.zeros((3, 5, 3), dtype=np.uint8), + ), ) with pytest.raises( diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index 5a27449..ff6d073 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -5,6 +5,8 @@ import hashlib import io import inspect +import os +import shutil import tarfile from collections.abc import Callable from pathlib import Path @@ -176,7 +178,7 @@ def _fake_get( calls.append(dict(headers)) return responses.pop(0) - monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr("mblt_vision.utils.datasets.organizer.requests.get", _fake_get) monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) monkeypatch.setattr(organizer, "sleep", lambda _: None) @@ -215,7 +217,7 @@ def _fake_get( calls.append(dict(headers)) return responses.pop(0) - monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr("mblt_vision.utils.datasets.organizer.requests.get", _fake_get) monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) local_path = tmp_path / "archive.tar" local_path.write_bytes(b"old") @@ -247,7 +249,7 @@ def _fake_get( chunks=[], ) - monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr("mblt_vision.utils.datasets.organizer.requests.get", _fake_get) local_path = tmp_path / "archive.tar" local_path.write_bytes(payload) @@ -283,7 +285,7 @@ def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: del url, kwargs return responses.pop(0) - monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr("mblt_vision.utils.datasets.organizer.requests.get", _fake_get) monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) local_path = tmp_path / "archive.tar" local_path.write_bytes(b"old") @@ -314,7 +316,7 @@ def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: calls += 1 return responses.pop(0) - monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr("mblt_vision.utils.datasets.organizer.requests.get", _fake_get) monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) monkeypatch.setattr(organizer, "sleep", lambda _: None) @@ -340,7 +342,7 @@ def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: calls += 1 return _FakeResponse(status_code=404, headers={}, chunks=[]) - monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr("mblt_vision.utils.datasets.organizer.requests.get", _fake_get) with pytest.raises(requests.HTTPError): organizer._download_url( @@ -366,7 +368,7 @@ def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: chunks=[payload], ) - monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr("mblt_vision.utils.datasets.organizer.requests.get", _fake_get) monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) local_path = tmp_path / "archive.zip" @@ -392,7 +394,7 @@ def _fake_get(url: str, **kwargs: Any) -> _FakeResponse: chunks=[b"malicious"], ) - monkeypatch.setattr(organizer.requests, "get", _fake_get) + monkeypatch.setattr("mblt_vision.utils.datasets.organizer.requests.get", _fake_get) monkeypatch.setattr(organizer, "tqdm", _DummyTqdm) local_path = tmp_path / "archive.zip" @@ -435,8 +437,7 @@ def test_download_if_url_rejects_plaintext_http( """Do not fetch benchmark inputs over an unauthenticated transport.""" monkeypatch.setattr( - organizer.requests, - "get", + "mblt_vision.utils.datasets.organizer.requests.get", lambda *args, **kwargs: pytest.fail("plaintext URL must not be requested"), ) @@ -842,7 +843,7 @@ def test_nyu_depth_install_preserves_backups_when_rollback_fails( (output_dir / "images" / "keep.jpg").write_bytes(b"old image") (output_dir / "depth" / "keep.npy").write_bytes(b"old depth") - real_replace = organizer.os.replace + real_replace = os.replace def _fail_install_and_rollback(source: str, destination: str) -> None: source_path = Path(source) @@ -859,7 +860,9 @@ def _fail_install_and_rollback(source: str, destination: str) -> None: raise OSError("simulated rollback failure") real_replace(source, destination) - monkeypatch.setattr(organizer.os, "replace", _fail_install_and_rollback) + monkeypatch.setattr( + "mblt_vision.utils.datasets.organizer.os.replace", _fail_install_and_rollback + ) with pytest.raises(OSError, match="backups are preserved"): organizer.construct_nyu_depth(str(dataset_dir), str(output_dir)) @@ -987,14 +990,17 @@ def test_construct_ade20k_preserves_cache_when_metadata_staging_fails( output_dir = tmp_path / "organized" output_dir.mkdir() (output_dir / "valid-cache-marker").write_bytes(b"existing") - real_copy2 = organizer.shutil.copy2 + real_copy2 = shutil.copy2 def _fail_scene_metadata_copy(source: str, destination: str) -> str: if Path(source).name == "sceneCategories.txt": raise OSError("simulated metadata copy failure") return real_copy2(source, destination) - monkeypatch.setattr(organizer.shutil, "copy2", _fail_scene_metadata_copy) + monkeypatch.setattr( + "mblt_vision.utils.datasets.organizer.shutil.copy2", + _fail_scene_metadata_copy, + ) with pytest.raises(OSError, match="simulated metadata copy failure"): organizer.construct_ade20k(str(dataset_dir), str(output_dir)) @@ -1323,7 +1329,7 @@ def test_organize_cityscapes_rolls_back_failed_atomic_replacement( (output_dir / "annotations").mkdir() (output_dir / "images" / "keep.png").write_bytes(b"old image") (output_dir / "annotations" / "keep.png").write_bytes(b"old annotation") - real_replace = organizer.os.replace + real_replace = os.replace failed = False def _fail_annotation_install(source: str, destination: str) -> None: @@ -1337,7 +1343,9 @@ def _fail_annotation_install(source: str, destination: str) -> None: raise OSError("simulated install failure") real_replace(source, destination) - monkeypatch.setattr(organizer.os, "replace", _fail_annotation_install) + monkeypatch.setattr( + "mblt_vision.utils.datasets.organizer.os.replace", _fail_annotation_install + ) with pytest.raises(OSError, match="simulated"): organizer.organize_cityscapes( @@ -1368,7 +1376,7 @@ def test_dense_install_preserves_backups_when_rollback_fails( (output_dir / "images" / "keep.png").write_bytes(b"old image") (output_dir / "annotations" / "keep.png").write_bytes(b"old annotation") - real_replace = organizer.os.replace + real_replace = os.replace def _fail_install_and_rollback(source: str, destination: str) -> None: source_path = Path(source) @@ -1382,7 +1390,9 @@ def _fail_install_and_rollback(source: str, destination: str) -> None: raise OSError("simulated rollback failure") real_replace(source, destination) - monkeypatch.setattr(organizer.os, "replace", _fail_install_and_rollback) + monkeypatch.setattr( + "mblt_vision.utils.datasets.organizer.os.replace", _fail_install_and_rollback + ) replacements = ( (str(staged_images), str(output_dir / "images")), diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 0df8263..2436b8c 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -2,8 +2,8 @@ from __future__ import annotations -import os import gc +import os from pathlib import Path from typing import Any, cast @@ -33,6 +33,7 @@ import mblt_vision.wrapper as wrapper from mblt_vision._compat import create_model_class from mblt_vision.utils.letterbox import resolve_ratio_pad +from mblt_vision.utils.preprocess import build_preprocess from mblt_vision.utils.results import Results from mblt_vision.utils.types import ListTensorLike from mblt_vision.wrapper import MBLT_Engine @@ -110,8 +111,10 @@ def _fail_mkdir(self: Path, *args: object, **kwargs: object) -> None: del self, args, kwargs raise OSError("home cache is unavailable") - monkeypatch.setattr(wrapper.Path, "mkdir", _fail_mkdir) - monkeypatch.setattr(wrapper.tempfile, "gettempdir", lambda: str(tmp_path)) + monkeypatch.setattr(Path, "mkdir", _fail_mkdir) + monkeypatch.setattr( + "mblt_vision.wrapper.tempfile.gettempdir", lambda: str(tmp_path) + ) cache_dir = Path(wrapper._default_cache_dir()) @@ -133,8 +136,10 @@ def _fail_mkdir(self: Path, *args: object, **kwargs: object) -> None: del self, args, kwargs raise OSError("home cache is unavailable") - monkeypatch.setattr(wrapper.Path, "mkdir", _fail_mkdir) - monkeypatch.setattr(wrapper.tempfile, "gettempdir", lambda: str(tmp_path)) + monkeypatch.setattr(Path, "mkdir", _fail_mkdir) + monkeypatch.setattr( + "mblt_vision.wrapper.tempfile.gettempdir", lambda: str(tmp_path) + ) with pytest.raises(RuntimeError, match="not a private directory"): wrapper._default_cache_dir() @@ -149,7 +154,9 @@ def test_default_cache_dir_preserves_existing_probe_named_file( preferred.mkdir() marker = preferred / ".write_test" marker.write_bytes(b"caller-owned") - monkeypatch.setattr(wrapper.os.path, "expanduser", lambda _: str(preferred)) + monkeypatch.setattr( + "mblt_vision.wrapper.os.path.expanduser", lambda _: str(preferred) + ) assert wrapper._default_cache_dir() == str(preferred) assert marker.read_bytes() == b"caller-owned" @@ -2895,7 +2902,7 @@ def test_preprocess_with_metadata_returns_letterbox_ratio_pad() -> None: "SetOrder": {"shape": "HWC"}, "Normalize": {"style": "cv"}, } - engine.preprocessor = wrapper.build_preprocess(engine.pre_cfg) + engine.preprocessor = build_preprocess(engine.pre_cfg) image = np.zeros((481, 640, 3), dtype=np.uint8) processed, metadata = engine.preprocess_with_metadata(image) From e407cec7cdade3866d862d6ee14cbf747cc1b8ea Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 14:17:19 +0900 Subject: [PATCH 31/48] fix: validate vision evaluation inputs --- mblt_vision/utils/datasets/dataloader.py | 42 +++++++++++++++------ mblt_vision/utils/datasets/organizer.py | 5 +++ mblt_vision/utils/datasets/readiness.py | 10 ++++- mblt_vision/utils/evaluation/eval_ade20k.py | 12 +++++- mblt_vision/utils/evaluation/eval_dota.py | 15 +++++++- tests/test_dataloader.py | 24 +++++++++++- tests/test_eval_dota.py | 28 ++++++++++++++ tests/test_semantic_segmentation.py | 11 ++++++ 8 files changed, 131 insertions(+), 16 deletions(-) diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index 239c802..774e825 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -165,10 +165,17 @@ def __init__(self, root: str) -> None: raise FileNotFoundError( f"NYU Depth requires images/ and depth/ directories under: {root}" ) - images = { - os.path.splitext(name)[0]: os.path.join(image_root, name) + image_names = [ + name for name in os.listdir(image_root) if name.lower().endswith(self.IMG_EXTENSIONS) + ] + image_stems = [os.path.splitext(name)[0] for name in image_names] + if len(image_stems) != len(set(image_stems)): + raise ValueError("ADE20K images contain duplicate filename stems.") + images = { + stem: os.path.join(image_root, name) + for stem, name in zip(image_stems, image_names, strict=True) } depths = { os.path.splitext(name)[0]: os.path.join(depth_root, name) @@ -338,9 +345,18 @@ def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: image = cv2.imread(image_path, cv2.IMREAD_COLOR) if image is None: raise FileNotFoundError(f"ADE20K image not found: {image_path}") - annotation = cv2.imread(annotation_path, cv2.IMREAD_GRAYSCALE) - if annotation is None: - raise FileNotFoundError(f"ADE20K annotation not found: {annotation_path}") + try: + with Image.open(annotation_path) as annotation_image: + annotation = np.asarray(annotation_image) + except OSError as exc: + raise FileNotFoundError( + f"ADE20K annotation not found: {annotation_path}" + ) from exc + if annotation.ndim != 2 or annotation.dtype != np.uint8: + raise ValueError( + "ADE20K annotations must be single-channel 8-bit PNG masks: " + f"{annotation_path}" + ) if image.shape[:2] != annotation.shape: raise ValueError( f"ADE20K image and annotation shapes must match, got {image.shape[:2]} and {annotation.shape}: {stem}" @@ -844,13 +860,15 @@ def make_dataset(self) -> None: target_dir = os.path.join(self.root, target_class) if not os.path.isdir(target_dir): continue - for root, _, fnames in sorted(os.walk(target_dir, followlinks=True)): - for fname in sorted(fnames): - if os.path.splitext(fname)[1].lower() not in IMAGE_SUFFIXES: - continue - path = os.path.join(root, fname) - item = path, target_class, fname - instances.append(item) + for fname in sorted(os.listdir(target_dir)): + path = os.path.join(target_dir, fname) + if ( + os.path.islink(path) + or not os.path.isfile(path) + or os.path.splitext(fname)[1].lower() not in IMAGE_SUFFIXES + ): + continue + instances.append((path, target_class, fname)) self.samples = instances diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 5ae0b4e..b083b82 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -1493,6 +1493,11 @@ def _write_dotav1_yolo_labels( f"Unsupported DOTAv1 class in {original_label_path}: {class_name}" ) coordinates = [float(value) for value in fields[:8]] + if fields[9] not in {"0", "1", "2"}: + raise ValueError( + f"Unsupported DOTAv1 difficulty flag {fields[9]!r} in " + f"{original_label_path} at line {line_number}." + ) normalized = [ coordinate / (width if index % 2 == 0 else height) for index, coordinate in enumerate(coordinates) diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index 0fcfeae..998907f 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -329,7 +329,15 @@ def _widerface_difficulty_metadata_ready( return False for image_index, face_entry in enumerate(event_faces): try: - face_count = len(np.asarray(face_entry[0])) + face_array = np.asarray(face_entry[0]) + if ( + face_array.ndim != 2 + or face_array.shape[1] != 4 + or not np.isfinite(face_array).all() + or (face_array[:, 2:] <= 0).any() + ): + return False + face_count = len(face_array) keep_indices = np.asarray(event_indices[image_index][0]) except (IndexError, TypeError): return False diff --git a/mblt_vision/utils/evaluation/eval_ade20k.py b/mblt_vision/utils/evaluation/eval_ade20k.py index 389f204..5b6897a 100644 --- a/mblt_vision/utils/evaluation/eval_ade20k.py +++ b/mblt_vision/utils/evaluation/eval_ade20k.py @@ -74,8 +74,18 @@ def update(self, prediction: np.ndarray, target: np.ndarray) -> None: f"Semantic prediction and target shapes must match, got {prediction.shape} and {target.shape}." ) valid_target = ( - (target != self.ignore_label) & (target >= 0) & (target < self.nc) + np.isfinite(target) + & (target >= 0) + & (target < self.nc) + & (target == np.floor(target)) ) + allowed_target = valid_target | (target == self.ignore_label) + if not bool(allowed_target.all()): + invalid_values = np.asarray(np.unique(target[~allowed_target])) + raise ValueError( + f"Semantic targets must be finite class IDs in [0, {self.nc - 1}] " + f"or ignore label {self.ignore_label}; got {invalid_values.tolist()}." + ) valid_prediction = ( np.isfinite(prediction) & (prediction >= 0) diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index a23f08f..cc49a92 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -88,7 +88,10 @@ def _load_ground_truths( ignore_classes = [] ignore_polygons = [] - if label_path.is_file(): + # Organizer output keeps the official original annotation alongside the + # normalized convenience label. Prefer the authoritative original when + # both are present so a stale normalized file cannot hide ground truth. + if label_path.is_file() and not original_label_path.is_file(): for line_number, line in enumerate( label_path.read_text(encoding="utf-8").splitlines(), start=1 ): @@ -117,6 +120,11 @@ def _load_ground_truths( if coords.numel() and float(coords.max()) <= 1.5: coords[:, 0] *= width coords[:, 1] *= height + if len(parts) >= 10 and parts[9] not in {"0", "1", "2"}: + raise ValueError( + f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " + f"{label_path}:{line_number}." + ) if len(parts) >= 10 and parts[9] in {"1", "2"}: ignore_classes.append(cls) ignore_polygons.append(coords) @@ -151,6 +159,11 @@ def _load_ground_truths( "DOTAv1 annotation coordinates must be finite at " f"{original_label_path}:{line_number}." ) + if parts[9] not in {"0", "1", "2"}: + raise ValueError( + f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " + f"{original_label_path}:{line_number}." + ) if parts[9] in {"1", "2"}: ignore_classes.append(cls) ignore_polygons.append(coords) diff --git a/tests/test_dataloader.py b/tests/test_dataloader.py index 0b90062..eb6f228 100644 --- a/tests/test_dataloader.py +++ b/tests/test_dataloader.py @@ -13,6 +13,7 @@ from mblt_vision.utils.datasets.dataloader import ( CustomCOCODataset, + CustomADE20K, CustomCityscapes, CustomImageFolder, CustomWiderFaceDataset, @@ -23,7 +24,7 @@ ("dataset_class", "class_name", "expected_count", "expected_suffixes"), [ (CustomImageFolder, "class-a", 1, {".jpg"}), - (CustomWiderFaceDataset, "0--Parade", 2, {".jpg", ".png"}), + (CustomWiderFaceDataset, "0--Parade", 1, {".jpg"}), ], ) def test_class_based_datasets_ignore_non_image_files( @@ -85,3 +86,24 @@ def test_cityscapes_dataset_rejects_unknown_source_ids(tmp_path: Path) -> None: with pytest.raises(ValueError, match=r"unsupported source IDs \[200\]"): CustomCityscapes(str(tmp_path))[0] + + +@pytest.mark.parametrize( + "mask", [np.zeros((2, 2, 3), dtype=np.uint8), np.zeros((2, 2), dtype=np.uint16)] +) +def test_ade20k_dataset_rejects_noncanonical_mask_encodings( + tmp_path: Path, mask: np.ndarray +) -> None: + """Reject color and high-bit-depth ADE20K masks before source-ID conversion.""" + + image_dir = tmp_path / "images" + annotation_dir = tmp_path / "annotations" + image_dir.mkdir() + annotation_dir.mkdir() + assert cv2.imwrite( + str(image_dir / "sample.png"), np.zeros((2, 2, 3), dtype=np.uint8) + ) + Image.fromarray(mask).save(annotation_dir / "sample.png") + + with pytest.raises(ValueError, match="single-channel 8-bit PNG masks"): + CustomADE20K(str(tmp_path))[0] diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index 3409e00..9cc2bda 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -202,6 +202,34 @@ def test_dota_annotations_reject_nonfinite_coordinates( _load_ground_truths(str(tmp_path), dataset) +@pytest.mark.parametrize( + ("label_path", "annotation"), + [ + ("labels/val/image.txt", "0 0 0 0.2 0 0.2 0.2 0 0.2 3"), + ("labels/val_original/image.txt", "0 0 20 0 20 20 0 20 plane invalid"), + ], +) +def test_dota_annotations_reject_unknown_difficulty_flags( + tmp_path, label_path: str, annotation: str +) -> None: + """Keep invalid difficult-region metadata from changing positive counts.""" + + path = tmp_path / label_path + path.parent.mkdir(parents=True) + path.write_text(annotation, encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises(ValueError, match="Unsupported DOTAv1 difficulty flag"): + _load_ground_truths(str(tmp_path), dataset) + + def test_difficult_regions_do_not_count_as_positive_or_false_positive() -> None: """Ignore a detection on a difficult region while retaining positive matching.""" diff --git a/tests/test_semantic_segmentation.py b/tests/test_semantic_segmentation.py index b0fcccb..3bb591d 100644 --- a/tests/test_semantic_segmentation.py +++ b/tests/test_semantic_segmentation.py @@ -5,6 +5,8 @@ import pytest import torch +import numpy as np +from mblt_vision.utils.evaluation.eval_ade20k import SemanticMetricAccumulator from mblt_vision.utils.postprocess import SemanticSegPost @@ -130,6 +132,15 @@ def test_semantic_postprocess_rejects_nonfinite_logits(invalid_value: float) -> post(logits) +@pytest.mark.parametrize("invalid_target", [1.5, -1.0, float("nan"), float("inf")]) +def test_semantic_metrics_reject_invalid_target_ids(invalid_target: float) -> None: + """Do not treat corrupted semantic ground truth as ignored pixels.""" + + target = torch.tensor([[invalid_target]], dtype=torch.float32).numpy() + with pytest.raises(ValueError, match="Semantic targets must be finite class IDs"): + SemanticMetricAccumulator(nc=2).update(np.zeros((1, 1)), target) + + def test_semantic_postprocess_restores_letterbox_padding() -> None: """Crop padding before nearest-restoring a semantic map.""" From 49deb5084f7cecc04636711be2cab9a255fe2fdc Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 14:33:43 +0900 Subject: [PATCH 32/48] fix: harden vision validation boundaries --- mblt_vision/utils/datasets/dataloader.py | 24 +++++++++++---- mblt_vision/utils/datasets/organizer.py | 6 ++++ mblt_vision/utils/datasets/readiness.py | 23 ++++++++++++--- .../utils/evaluation/eval_nyu_depth.py | 2 ++ mblt_vision/utils/postprocess/base.py | 9 ++++++ mblt_vision/utils/postprocess/cls_post.py | 13 ++++++++- mblt_vision/wrapper.py | 5 ++++ tests/test_eval_nyu_depth.py | 9 ++++++ tests/test_postprocess_hierarchy.py | 29 +++++++++++++++++++ tests/test_wrapper.py | 12 ++++++++ 10 files changed, 122 insertions(+), 10 deletions(-) diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index 774e825..16f8574 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -172,7 +172,7 @@ def __init__(self, root: str) -> None: ] image_stems = [os.path.splitext(name)[0] for name in image_names] if len(image_stems) != len(set(image_stems)): - raise ValueError("ADE20K images contain duplicate filename stems.") + raise ValueError("NYU Depth images contain duplicate filename stems.") images = { stem: os.path.join(image_root, name) for stem, name in zip(image_stems, image_names, strict=True) @@ -307,10 +307,17 @@ def __init__(self, root: str) -> None: raise FileNotFoundError( f"ADE20K requires images/ and annotations/ directories under: {root}" ) - images = { - os.path.splitext(name)[0]: os.path.join(image_root, name) + image_names = [ + name for name in os.listdir(image_root) if name.lower().endswith(self.IMG_EXTENSIONS) + ] + image_stems = [os.path.splitext(name)[0] for name in image_names] + if len(image_stems) != len(set(image_stems)): + raise ValueError("ADE20K images contain duplicate filename stems.") + images = { + stem: os.path.join(image_root, name) + for stem, name in zip(image_stems, image_names, strict=True) } annotations = { os.path.splitext(name)[0]: os.path.join(annotation_root, name) @@ -458,10 +465,17 @@ def __init__(self, root: str) -> None: raise FileNotFoundError( f"Cityscapes requires images/ and annotations/ directories under: {root}" ) - images = { - os.path.splitext(name)[0]: os.path.join(image_root, name) + image_names = [ + name for name in os.listdir(image_root) if name.lower().endswith(self.IMG_EXTENSIONS) + ] + image_stems = [os.path.splitext(name)[0] for name in image_names] + if len(image_stems) != len(set(image_stems)): + raise ValueError("Cityscapes images contain duplicate filename stems.") + images = { + stem: os.path.join(image_root, name) + for stem, name in zip(image_stems, image_names, strict=True) } annotations = { os.path.splitext(name)[0]: os.path.join(annotation_root, name) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index b083b82..0ba905a 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -6,6 +6,7 @@ import concurrent.futures import hashlib +import math import os import re import shutil @@ -1493,6 +1494,11 @@ def _write_dotav1_yolo_labels( f"Unsupported DOTAv1 class in {original_label_path}: {class_name}" ) coordinates = [float(value) for value in fields[:8]] + if not all(math.isfinite(coordinate) for coordinate in coordinates): + raise ValueError( + f"DOTAv1 coordinates must be finite in {original_label_path} " + f"at line {line_number}." + ) if fields[9] not in {"0", "1", "2"}: raise ValueError( f"Unsupported DOTAv1 difficulty flag {fields[9]!r} in " diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index 998907f..cfc74b0 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -33,6 +33,7 @@ CITYSCAPES_SAMPLE_ID_PATTERN = re.compile( r"^(?P[A-Za-z][A-Za-z0-9-]*)_\d{6}_\d{6}$" ) +CITYSCAPES_VALIDATION_CITY_COUNTS = {"frankfurt": 267, "lindau": 59, "munster": 174} IMAGENET_SYNSETS = frozenset( files("mblt_vision.datasets") .joinpath("imagenet_synsets.txt") @@ -341,10 +342,14 @@ def _widerface_difficulty_metadata_ready( keep_indices = np.asarray(event_indices[image_index][0]) except (IndexError, TypeError): return False - if ( - not np.isfinite(keep_indices).all() - or not np.equal(keep_indices, np.trunc(keep_indices)).all() - ): + try: + valid_indices = ( + np.isfinite(keep_indices).all() + and np.equal(keep_indices, np.trunc(keep_indices)).all() + ) + except (TypeError, ValueError): + return False + if not valid_indices: return False if keep_indices.size and ( int(keep_indices.min()) < 1 or int(keep_indices.max()) > face_count @@ -446,6 +451,12 @@ def dense_dataset_ready(data_path: str | Path, dataset: str) -> bool: ) ) if normalized == "cityscapes": + city_counts: dict[str, int] = {} + for stem in images: + match = CITYSCAPES_SAMPLE_ID_PATTERN.fullmatch(stem) + if match is not None: + city = match.group("city") + city_counts[city] = city_counts.get(city, 0) + 1 return ( len(images) == CITYSCAPES_VALIDATION_SAMPLE_COUNT and all( @@ -453,6 +464,10 @@ def dense_dataset_ready(data_path: str | Path, dataset: str) -> bool: for stem in images ) and all(path.suffix.lower() == ".png" for path in images.values()) + and ( + CITYSCAPES_VALIDATION_SAMPLE_COUNT != 500 + or city_counts == CITYSCAPES_VALIDATION_CITY_COUNTS + ) ) return False diff --git a/mblt_vision/utils/evaluation/eval_nyu_depth.py b/mblt_vision/utils/evaluation/eval_nyu_depth.py index 84358b4..1a5432c 100644 --- a/mblt_vision/utils/evaluation/eval_nyu_depth.py +++ b/mblt_vision/utils/evaluation/eval_nyu_depth.py @@ -59,6 +59,8 @@ def update(self, prediction: np.ndarray, target: np.ndarray) -> None: raise ValueError( f"NYU Depth prediction and target shapes must match, got {prediction.shape} and {target.shape}." ) + if not np.isfinite(target).all(): + raise ValueError("NYU Depth target contains non-finite values.") valid = ( np.isfinite(target) & (target > self.MIN_DEPTH) & (target < self.MAX_DEPTH) ) diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index 246ff9a..35193b0 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -384,6 +384,15 @@ def _final_detection_batches( f"invalid rows: {invalid_rows}." ) labels = batch[:, 5] + scores = batch[:, 4] + if not bool(((scores >= 0) & (scores <= 1)).all()): + invalid_scores = ( + scores[(scores < 0) | (scores > 1)].detach().cpu().tolist() + ) + raise ValueError( + "Decoded detection confidence values must be in [0, 1]; " + f"got {invalid_scores}." + ) valid_labels = ( torch.isfinite(labels) & (labels == labels.round()) diff --git a/mblt_vision/utils/postprocess/cls_post.py b/mblt_vision/utils/postprocess/cls_post.py index 7fcb2a4..f07c5f6 100644 --- a/mblt_vision/utils/postprocess/cls_post.py +++ b/mblt_vision/utils/postprocess/cls_post.py @@ -73,7 +73,18 @@ def __call__(self, x: TensorLike | ListTensorLike) -> torch.Tensor: if x.ndim == 2: x = x.unsqueeze(-1).unsqueeze(-1) elif x.ndim == 3: - x = x.unsqueeze(0) + if self.num_classes is None: + raise ValueError( + "Classification 3D outputs require a configured class count to disambiguate layout." + ) + if x.shape[1] == self.num_classes and x.shape[-1] == 1: + x = x.unsqueeze(-1) + elif x.shape[0] == self.num_classes: + x = x.unsqueeze(0) + else: + raise ValueError( + f"Unsupported 3D classification output shape {tuple(x.shape)} for {self.num_classes} classes." + ) if x.ndim != 4: raise ValueError( f"Classification output must be convertible to NCHW, got shape {tuple(x.shape)}." diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index f17bb1b..93b98a2 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -457,6 +457,11 @@ def __init__( cast(Sequence[str] | None, model_path or None), ) model_config_part = resolve_model_config(model_cls, model_type) + for section in ("file_cfg", "pre_cfg", "post_cfg"): + if not isinstance(model_config_part.get(section), dict): + raise ValueError( + f"Model configuration section '{section}' must be a mapping." + ) if mxq_path and Path(mxq_path).suffix.lower() != ".mxq": raise ValueError(f"Explicit mxq_path must end in '.mxq', got {mxq_path!r}.") diff --git a/tests/test_eval_nyu_depth.py b/tests/test_eval_nyu_depth.py index a0f9271..4fea03d 100644 --- a/tests/test_eval_nyu_depth.py +++ b/tests/test_eval_nyu_depth.py @@ -46,3 +46,12 @@ def postprocess(self, output: torch.Tensor) -> SimpleNamespace: ValueError, match=r"output batch length mismatch: maps=2, targets=1" ): eval_nyu_depth_module.eval_nyu_depth(_Model(), "/dataset", batch_size=1) + + +@pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) +def test_nyu_depth_metrics_reject_nonfinite_targets(invalid_value: float) -> None: + """Keep direct metric callers from silently excluding corrupt depth targets.""" + + target = np.array([[1.0, invalid_value]], dtype=np.float32) + with pytest.raises(ValueError, match="target contains non-finite"): + eval_nyu_depth_module.calculate_nyu_depth_metrics(np.ones((1, 2)), target) diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index 7923925..c24a449 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -68,6 +68,15 @@ def test_classification_postprocessor_rejects_wrong_taxonomy_width() -> None: postprocessor(torch.zeros((1, 999), dtype=torch.float32)) +def test_classification_postprocessor_keeps_batched_singleton_outputs() -> None: + """Preserve batch size for local logits shaped [B, C, 1].""" + + postprocessor = ClsPost({}, {"task": "image_classification", "dataset": "imagenet"}) + output = postprocessor(torch.zeros((2, 1000, 1), dtype=torch.float32)) + + assert output.shape == (2, 1000) + + @pytest.mark.parametrize("invalid_score", [float("nan"), float("inf")]) def test_classification_postprocessor_rejects_nonfinite_scores( invalid_score: float, @@ -123,6 +132,26 @@ def test_already_decoded_detections_reject_nonfinite_rows( postprocessor._final_detection_batches(detections) +@pytest.mark.parametrize("invalid_score", [-0.1, 1.1]) +def test_already_decoded_detections_reject_invalid_confidence( + invalid_score: float, +) -> None: + """Reject finite but impossible confidence values before thresholding.""" + + postprocessor = cast( + Any, YOLOAnchorlessDetectionPost.__new__(YOLOAnchorlessDetectionPost) + ) + postprocessor.device = torch.device("cpu") + postprocessor.conf_thres = 0.25 + postprocessor.nc = 2 + detections = torch.tensor( + [[[0.0, 0.0, 1.0, 1.0, invalid_score, 1.0]]], dtype=torch.float32 + ) + + with pytest.raises(ValueError, match=r"confidence values must be in \[0, 1\]"): + postprocessor._final_detection_batches(detections) + + @pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) def test_detection_postprocessor_rejects_nonfinite_raw_heads( invalid_value: float, diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 2436b8c..76d0f17 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -337,6 +337,18 @@ def test_engine_init_rejects_wrong_suffix_for_mxq_path(tmp_path: Path) -> None: ) +@pytest.mark.parametrize("section", ["file_cfg", "pre_cfg", "post_cfg"]) +def test_engine_init_rejects_nonmapping_direct_configuration_sections( + section: str, +) -> None: + """Report malformed direct model mappings before backend construction.""" + + config: dict[str, Any] = {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}} + config[section] = [] + with pytest.raises(ValueError, match=rf"section '{section}' must be a mapping"): + MBLT_Engine(config) + + def test_engine_init_disposes_mxq_backend_after_postprocess_setup_failure( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: From fe2ecf7af2d14604fe1fc813566d3085afea3445 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 14:35:20 +0900 Subject: [PATCH 33/48] fix: import RatioPad from letterbox --- mblt_vision/utils/postprocess/base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index 35193b0..3fac5c7 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -8,9 +8,10 @@ import torch from ..._tasks import normalize_vision_task +from ..letterbox import RatioPad from ..preprocess._validation import normalize_image_size from ..types import ListTensorLike, TensorLike -from .common import RatioPad, nmsout2eval, process_mask_upsample +from .common import nmsout2eval, process_mask_upsample class PostBase(ABC): From bf92255f663384aceff980d7f2add44a60aced27 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 15:01:36 +0900 Subject: [PATCH 34/48] fix: validate vision artifacts --- mblt_vision/compile/vision.py | 59 +++++++++++++++++++++-- mblt_vision/utils/datasets/dataloader.py | 36 ++++++++++++-- mblt_vision/utils/datasets/organizer.py | 16 +++--- mblt_vision/utils/datasets/readiness.py | 10 ++++ mblt_vision/utils/postprocess/base.py | 6 +++ mblt_vision/utils/postprocess/cls_post.py | 13 +++++ mblt_vision/wrapper.py | 20 +++++++- tests/test_compile_vision.py | 12 +++++ tests/test_dataloader.py | 31 ++++++++++++ tests/test_dataset_readiness.py | 28 +++++++++++ tests/test_depth_estimation.py | 19 ++++++++ tests/test_postprocess_hierarchy.py | 38 +++++++++++++++ tests/test_wrapper.py | 35 ++++++++++++++ 13 files changed, 306 insertions(+), 17 deletions(-) diff --git a/mblt_vision/compile/vision.py b/mblt_vision/compile/vision.py index 8559bd1..ef781fb 100644 --- a/mblt_vision/compile/vision.py +++ b/mblt_vision/compile/vision.py @@ -7,7 +7,7 @@ import json import shutil import warnings -from collections.abc import Callable, Sequence +from collections.abc import Callable, Mapping, Sequence from pathlib import Path from tempfile import TemporaryDirectory, mkdtemp from typing import Any @@ -544,7 +544,41 @@ def get_subset_images(subset_path: str | Path) -> list[Path]: return images -def validate_calibration_dataset(calib_data_path: str | Path) -> Path: +def _calibration_image_shape(pre_cfg: Mapping[str, Any]) -> tuple[int, int]: + """Derive the final HWC spatial shape produced by a model preprocessor.""" + + image_shape: tuple[int, int] | None = None + for operation, config in pre_cfg.items(): + if operation not in {"LetterBox", "Resize", "CenterCrop"} or not isinstance( + config, Mapping + ): + continue + size = config.get("img_size", config.get("size")) + if isinstance(size, int) and not isinstance(size, bool) and size > 0: + image_shape = (size, size) + elif ( + isinstance(size, Sequence) + and not isinstance(size, (str, bytes)) + and len(size) == 2 + and all( + isinstance(value, int) and not isinstance(value, bool) and value > 0 + for value in size + ) + ): + image_shape = (size[0], size[1]) + if image_shape is None: + raise ValueError( + "Unable to derive calibration image shape from pre_cfg; expected a " + "positive LetterBox.img_size, Resize.size, or CenterCrop.size." + ) + return image_shape + + +def validate_calibration_dataset( + calib_data_path: str | Path, + *, + image_shape: tuple[int, int] | None = None, +) -> Path: """Validate a ready directory of preprocessed calibration arrays. Args: @@ -572,6 +606,11 @@ def validate_calibration_dataset(calib_data_path: str | Path) -> Path: raise ValueError( f"Calibration tensor {array_path} must be HWC with three channels; got {array.shape}." ) + if image_shape is not None and array.shape[:2] != image_shape: + raise ValueError( + f"Calibration tensor {array_path} must match the model pre_cfg " + f"image shape {image_shape}, got {array.shape[:2]}." + ) if array.dtype != np.float32: raise ValueError( f"Calibration tensor {array_path} must use float32; got {array.dtype}." @@ -927,10 +966,15 @@ def compile_vision_model( mxq_compile, calibration_config_class = _load_qbcompiler() model_config = resolve_model_config(model_cls, model_type) file_cfg = model_config.get("file_cfg") + pre_cfg = model_config.get("pre_cfg") post_cfg = model_config.get("post_cfg") - if not isinstance(file_cfg, dict) or not isinstance(post_cfg, dict): + if ( + not isinstance(file_cfg, dict) + or not isinstance(pre_cfg, dict) + or not isinstance(post_cfg, dict) + ): raise ValueError( - "Resolved vision model configuration requires `file_cfg` and `post_cfg` objects." + "Resolved vision model configuration requires `file_cfg`, `pre_cfg`, and `post_cfg` objects." ) file_cfg["target_device"] = target_device @@ -959,7 +1003,12 @@ def compile_vision_model( ) mxq_compile( model=str(resolved_onnx), - calib_data_path=str(validate_calibration_dataset(calib_data_path)), + calib_data_path=str( + validate_calibration_dataset( + calib_data_path, + image_shape=_calibration_image_shape(pre_cfg), + ) + ), save_path=str(output_path), image_channels=3, backend="onnx", diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index 16f8574..a609cef 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -5,6 +5,7 @@ from __future__ import annotations import os +from pathlib import Path from typing import Any, Callable import cv2 @@ -58,10 +59,23 @@ def __init__( def _load_image(self, image_id: int) -> np.ndarray: """Load image by ID""" - image_path = os.path.join( - self.root, self.coco.loadImgs(image_id)[0]["file_name"] - ) - image = cv2.imread(image_path) # Load image (BGR format) + file_name = self.coco.loadImgs(image_id)[0]["file_name"] + if not isinstance(file_name, str) or not file_name: + raise ValueError(f"COCO image ID {image_id} has an invalid file_name.") + relative_path = Path(file_name) + if relative_path.is_absolute() or ".." in relative_path.parts: + raise ValueError( + f"COCO image ID {image_id} has an unsafe file_name: {file_name!r}." + ) + image_root = Path(self.root).resolve() + image_path = (image_root / relative_path).resolve() + try: + image_path.relative_to(image_root) + except ValueError as exc: + raise ValueError( + f"COCO image ID {image_id} resolves outside the image root: {file_name!r}." + ) from exc + image = cv2.imread(str(image_path)) # Load image (BGR format) if image is None: raise FileNotFoundError(f"Image not found: {image_path}") @@ -208,7 +222,15 @@ def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: image = cv2.imread(image_path) if image is None: raise FileNotFoundError(f"NYU Depth image not found: {image_path}") - depth = np.asarray(np.load(depth_path), dtype=np.float32) + raw_depth = np.load(depth_path, allow_pickle=False) + if not np.issubdtype(raw_depth.dtype, np.number) or np.issubdtype( + raw_depth.dtype, np.complexfloating + ): + raise ValueError( + "NYU Depth target must use a real numeric dtype, " + f"got {raw_depth.dtype}: {depth_path}" + ) + depth = np.asarray(raw_depth, dtype=np.float32) if depth.ndim != 2: raise ValueError( f"NYU Depth target must be two-dimensional, got {depth.shape}: {depth_path}" @@ -654,6 +676,10 @@ def __init__(self, root: str) -> None: self.ids = [ os.path.splitext(os.path.basename(path))[0] for path in self.image_paths ] + if len(self.ids) != len(set(self.ids)): + raise ValueError( + "DOTAv1 validation images contain duplicate filename stems." + ) def _find_image_paths(self, image_root: str) -> list[str]: """Return supported image files directly under a DOTAv1 image directory.""" diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 0ba905a..4233caf 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -1542,19 +1542,23 @@ def construct_dotav1_from_archives( _safe_unpack_archive(image_archive, image_dir) _safe_unpack_archive(label_archive, label_dir) + label_paths = list(_iter_files(label_dir, [".txt"])) labels = { - os.path.splitext(os.path.basename(path))[0]: path - for path in _iter_files(label_dir, [".txt"]) + os.path.splitext(os.path.basename(path))[0]: path for path in label_paths } + if len(labels) != len(label_paths): + raise ValueError("DOTAv1 archive contains duplicate label stems.") if not labels: raise ValueError(f"No DOTAv1 label files found in {label_archive}.") + image_paths = list( + _iter_files(image_dir, [".bmp", ".jpg", ".jpeg", ".png", ".tif", ".tiff"]) + ) images = { - os.path.splitext(os.path.basename(path))[0]: path - for path in _iter_files( - image_dir, [".bmp", ".jpg", ".jpeg", ".png", ".tif", ".tiff"] - ) + os.path.splitext(os.path.basename(path))[0]: path for path in image_paths } + if len(images) != len(image_paths): + raise ValueError("DOTAv1 archive contains duplicate image stems.") image_ids = set(images) label_ids = set(labels) missing_labels = sorted(image_ids - label_ids) diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index cfc74b0..559932c 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -14,6 +14,7 @@ from scipy.io.matlab import MatReadError from ..._tasks import normalize_vision_task +from ...datasets import get_dataset_category_ids IMAGE_SUFFIXES = {".bmp", ".jpeg", ".jpg", ".png", ".tif", ".tiff", ".webp"} IMAGENET_CLASS_COUNT = 1000 @@ -48,6 +49,8 @@ "instances_val2017.json": 80, "person_keypoints_val2017.json": 1, } +COCO_CATEGORY_IDS = frozenset(get_dataset_category_ids("coco")) +COCO_PERSON_KEYPOINT_CATEGORY_IDS = frozenset({1}) def _path_has_symlink_component(path: Path) -> bool: @@ -183,6 +186,13 @@ def _load_coco_image_names(annotation_path: Path) -> set[str] | None: or len(category_ids) != len(set(category_ids)) ): return None + expected_category_ids = ( + COCO_PERSON_KEYPOINT_CATEGORY_IDS + if annotation_path.name == "person_keypoints_val2017.json" + else COCO_CATEGORY_IDS + ) + if set(category_ids) != expected_category_ids: + return None annotation_ids: list[int] = [] for record in annotation_records: if not isinstance(record, dict): diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index 3fac5c7..bd8eeb0 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -394,6 +394,12 @@ def _final_detection_batches( "Decoded detection confidence values must be in [0, 1]; " f"got {invalid_scores}." ) + if not bool( + ((batch[:, 2] > batch[:, 0]) & (batch[:, 3] > batch[:, 1])).all() + ): + raise ValueError( + "Decoded detection boxes must have positive xyxy area." + ) valid_labels = ( torch.isfinite(labels) & (labels == labels.round()) diff --git a/mblt_vision/utils/postprocess/cls_post.py b/mblt_vision/utils/postprocess/cls_post.py index f07c5f6..48bd5bf 100644 --- a/mblt_vision/utils/postprocess/cls_post.py +++ b/mblt_vision/utils/postprocess/cls_post.py @@ -100,5 +100,18 @@ def __call__(self, x: TensorLike | ListTensorLike) -> torch.Tensor: if not torch.isfinite(x).all(): raise ValueError("Classification output scores must all be finite.") if self.softmax: + if not bool(((x >= 0) & (x <= 1)).all()): + raise ValueError( + "Classification probability outputs must be in [0, 1] when post_cfg.softmax is true." + ) + if not torch.allclose( + x.sum(dim=-1), + torch.ones(x.shape[0], dtype=x.dtype, device=x.device), + rtol=1e-4, + atol=1e-4, + ): + raise ValueError( + "Classification probability outputs must sum to 1 per sample when post_cfg.softmax is true." + ) return x return x.softmax(dim=-1) diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index 93b98a2..ae576fe 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -127,7 +127,15 @@ def _default_cache_dir() -> str: preferred = Path(os.path.expanduser("~/.mblt_model_zoo")) try: - preferred.mkdir(parents=True, exist_ok=True) + preferred.mkdir(parents=True, mode=0o700, exist_ok=True) + preferred_stat = os.lstat(preferred) + if ( + not stat.S_ISDIR(preferred_stat.st_mode) + or stat.S_ISLNK(preferred_stat.st_mode) + or preferred_stat.st_uid != os.getuid() + or preferred_stat.st_mode & 0o077 + ): + return _fallback_cache_dir() with tempfile.NamedTemporaryFile(prefix=".write_test-", dir=preferred): pass return str(preferred) @@ -469,6 +477,16 @@ def __init__( raise ValueError( f"Explicit onnx_path must end in '.onnx', got {onnx_path!r}." ) + for key, suffix in (("mxq_path", ".mxq"), ("onnx_path", ".onnx")): + configured_path = model_config_part["file_cfg"].get(key) + if configured_path and ( + not isinstance(configured_path, str) + or Path(configured_path).suffix.lower() != suffix + ): + raise ValueError( + f"Configured file_cfg.{key} must end in {suffix!r}, " + f"got {configured_path!r}." + ) file_cfg_model_path = str(model_config_part["file_cfg"].get("model_path", "")) file_cfg_onnx_path = str(model_config_part["file_cfg"].get("onnx_path", "")) diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py index 17f3f13..db7a597 100644 --- a/tests/test_compile_vision.py +++ b/tests/test_compile_vision.py @@ -499,6 +499,17 @@ def test_validate_calibration_dataset_rejects_nonfinite_values( validate_calibration_dataset(tmp_path) +def test_validate_calibration_dataset_rejects_unexpected_model_image_shape( + tmp_path: Path, +) -> None: + """Ready calibration arrays must retain the configured preprocessor geometry.""" + + np.save(tmp_path / "selected.npy", np.ones((2, 2, 3), dtype=np.float32)) + + with pytest.raises(ValueError, match=r"pre_cfg image shape \(3, 2\)"): + validate_calibration_dataset(tmp_path, image_shape=(3, 2)) + + def test_quantization_explicit_values_do_not_fetch( monkeypatch: pytest.MonkeyPatch, ) -> None: @@ -698,6 +709,7 @@ def _compile(**kwargs: Any) -> None: "filename": "hosted-model.mxq", "onnx_path": str(hosted_onnx), }, + "pre_cfg": {"LetterBox": {"img_size": [2, 2]}}, "post_cfg": {"task": task, "dataset": dataset}, }, ) diff --git a/tests/test_dataloader.py b/tests/test_dataloader.py index eb6f228..80b8162 100644 --- a/tests/test_dataloader.py +++ b/tests/test_dataloader.py @@ -15,6 +15,7 @@ CustomCOCODataset, CustomADE20K, CustomCityscapes, + CustomDOTAv1, CustomImageFolder, CustomWiderFaceDataset, ) @@ -70,6 +71,36 @@ def test_coco_dataset_rejects_annotation_geometry_mismatching_image() -> None: CustomCOCODataset.__getitem__(dataset, 0) +@pytest.mark.parametrize("file_name", ["/tmp/outside.jpg", "../outside.jpg"]) +def test_coco_dataset_rejects_unsafe_annotation_file_names(file_name: str) -> None: + """Do not let COCO metadata access images outside the configured root.""" + + dataset = cast( + CustomCOCODataset, + SimpleNamespace( + root="/dataset", + coco=SimpleNamespace( + loadImgs=lambda _: [{"file_name": file_name}], + ), + ), + ) + + with pytest.raises(ValueError, match="unsafe file_name"): + CustomCOCODataset._load_image(dataset, 1) + + +def test_dota_dataset_rejects_duplicate_image_stems(tmp_path: Path) -> None: + """Direct DOTAv1 loading must not silently collapse same-stem images.""" + + image_dir = tmp_path / "images" + image_dir.mkdir() + (image_dir / "sample.jpg").write_bytes(b"jpg") + (image_dir / "sample.png").write_bytes(b"png") + + with pytest.raises(ValueError, match="duplicate filename stems"): + CustomDOTAv1(str(tmp_path)) + + def test_cityscapes_dataset_rejects_unknown_source_ids(tmp_path: Path) -> None: """Reject corrupted Cityscapes labels instead of remapping them to ignore.""" diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index 2f999c9..07c8ee1 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -76,6 +76,7 @@ def test_coco_readiness_matches_images_to_task_annotations( monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 2) monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, annotation_name, 2) monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, annotation_name, 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) image_names = ["000000000001.jpg", "000000000002.jpg"] for image_name in image_names: _write_file(tmp_path / "val2017" / image_name) @@ -107,6 +108,31 @@ def test_coco_readiness_matches_images_to_task_annotations( assert not readiness.dataset_ready(tmp_path, task, "imagenet") +def test_coco_readiness_rejects_noncanonical_category_ids( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Require the canonical COCO category-ID set, not merely its count.""" + + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 1) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) + image_name = "000000000001.jpg" + _write_file(tmp_path / "val2017" / image_name) + (tmp_path / "instances_val2017.json").write_text( + json.dumps( + { + "images": [{"id": 1, "file_name": image_name}], + "categories": [{"id": 2}], + "annotations": [{"id": 1, "image_id": 1, "category_id": 2}], + } + ), + encoding="utf-8", + ) + + assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") + + def test_coco_readiness_rejects_duplicate_image_ids( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: @@ -115,6 +141,7 @@ def test_coco_readiness_rejects_duplicate_image_ids( monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 2) monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 2) monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) image_names = ["000000000001.jpg", "000000000002.jpg"] for image_name in image_names: _write_file(tmp_path / "val2017" / image_name) @@ -146,6 +173,7 @@ def test_coco_readiness_rejects_truncated_annotation_table( monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 2) monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 2) monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) image_names = ["000000000001.jpg", "000000000002.jpg"] for image_name in image_names: _write_file(tmp_path / "val2017" / image_name) diff --git a/tests/test_depth_estimation.py b/tests/test_depth_estimation.py index 79c9f90..5bd9087 100644 --- a/tests/test_depth_estimation.py +++ b/tests/test_depth_estimation.py @@ -161,3 +161,22 @@ def test_nyu_depth_dataset_rejects_nonfinite_targets( with pytest.raises(ValueError, match=r"finite values: .*sample\.npy"): CustomNYUDepth(str(tmp_path))[0] + + +@pytest.mark.parametrize("dtype", [np.complex64, np.dtype("U4")]) +def test_nyu_depth_dataset_rejects_nonreal_or_nonnumeric_targets( + tmp_path, dtype: np.dtype +) -> None: + """Reject target arrays before lossy conversion to float32.""" + + image_dir = tmp_path / "images" + depth_dir = tmp_path / "depth" + image_dir.mkdir() + depth_dir.mkdir() + assert cv2.imwrite( + str(image_dir / "sample.png"), np.zeros((4, 5, 3), dtype=np.uint8) + ) + np.save(depth_dir / "sample.npy", np.ones((4, 5), dtype=dtype)) + + with pytest.raises(ValueError, match="real numeric dtype"): + CustomNYUDepth(str(tmp_path))[0] diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index c24a449..d9b3a26 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -77,6 +77,26 @@ def test_classification_postprocessor_keeps_batched_singleton_outputs() -> None: assert output.shape == (2, 1000) +@pytest.mark.parametrize( + "scores", + [ + torch.tensor([[1.1] + [0.0] * 999]), + torch.tensor([[0.5] + [0.0] * 999]), + ], +) +def test_classification_probability_postprocessor_rejects_invalid_probabilities( + scores: torch.Tensor, +) -> None: + """Validate local artifacts that declare already-softmaxed outputs.""" + + postprocessor = ClsPost( + {}, {"task": "image_classification", "dataset": "imagenet", "softmax": True} + ) + + with pytest.raises(ValueError, match="probability outputs"): + postprocessor(scores) + + @pytest.mark.parametrize("invalid_score", [float("nan"), float("inf")]) def test_classification_postprocessor_rejects_nonfinite_scores( invalid_score: float, @@ -152,6 +172,24 @@ def test_already_decoded_detections_reject_invalid_confidence( postprocessor._final_detection_batches(detections) +@pytest.mark.parametrize("coordinates", [(1.0, 0.0, 1.0, 2.0), (0.0, 2.0, 1.0, 2.0)]) +def test_already_decoded_detections_reject_nonpositive_box_area( + coordinates: tuple[float, float, float, float], +) -> None: + """Reject degenerate decoded XYXY boxes before they reach evaluation.""" + + postprocessor = cast( + Any, YOLOAnchorlessDetectionPost.__new__(YOLOAnchorlessDetectionPost) + ) + postprocessor.device = torch.device("cpu") + postprocessor.conf_thres = 0.25 + postprocessor.nc = 2 + detections = torch.tensor([[[*coordinates, 0.9, 1.0]]], dtype=torch.float32) + + with pytest.raises(ValueError, match="positive xyxy area"): + postprocessor._final_detection_batches(detections) + + @pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) def test_detection_postprocessor_rejects_nonfinite_raw_heads( invalid_value: float, diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 76d0f17..4f202e5 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -152,6 +152,7 @@ def test_default_cache_dir_preserves_existing_probe_named_file( preferred = tmp_path / "mblt_model_zoo" preferred.mkdir() + preferred.chmod(0o700) marker = preferred / ".write_test" marker.write_bytes(b"caller-owned") monkeypatch.setattr( @@ -162,6 +163,40 @@ def test_default_cache_dir_preserves_existing_probe_named_file( assert marker.read_bytes() == b"caller-owned" +def test_default_cache_dir_rejects_unsafe_preferred_directory( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Do not use a preferred cache other users can write to.""" + + preferred = tmp_path / "mblt_model_zoo" + preferred.mkdir(mode=0o700) + preferred.chmod(0o777) + fallback = tmp_path / "fallback" + monkeypatch.setattr( + "mblt_vision.wrapper.os.path.expanduser", lambda _: str(preferred) + ) + monkeypatch.setattr(wrapper, "_fallback_cache_dir", lambda: str(fallback)) + + assert wrapper._default_cache_dir() == str(fallback) + + +@pytest.mark.parametrize( + ("key", "value", "expected_suffix"), + [("mxq_path", "artifact.onnx", ".mxq"), ("onnx_path", "artifact.mxq", ".onnx")], +) +def test_engine_rejects_wrong_suffix_in_direct_file_config( + key: str, value: str, expected_suffix: str +) -> None: + """Validate compatibility path aliases provided through a direct config mapping.""" + + with pytest.raises( + ValueError, match=rf"file_cfg\.{key} must end in '{expected_suffix}'" + ): + MBLT_Engine( + {"file_cfg": {key: value}, "pre_cfg": {}, "post_cfg": {}}, + ) + + def test_cache_directory_is_resolved_lazily(monkeypatch: pytest.MonkeyPatch) -> None: """Do not create or probe the artifact cache until an operation needs it.""" From a7f87edf82b4683b532b289ad0b299e448eeaa39 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 15:26:26 +0900 Subject: [PATCH 35/48] fix: harden vision evaluation inputs --- mblt_vision/datasets/imagenet_synsets.txt | 2 +- mblt_vision/utils/datasets/organizer.py | 5 ++ mblt_vision/utils/datasets/readiness.py | 29 ++++++++ mblt_vision/utils/evaluation/eval_coco.py | 64 +++++++++++++++-- mblt_vision/utils/evaluation/eval_dota.py | 18 +++++ .../utils/evaluation/eval_nyu_depth.py | 17 ++++- mblt_vision/utils/postprocess/base.py | 28 ++++++-- tests/test_dataset_organizer.py | 28 ++++++++ tests/test_dataset_readiness.py | 68 ++++++++++++++++++- tests/test_eval_coco.py | 31 ++++++++- tests/test_eval_dota.py | 28 ++++++++ tests/test_eval_nyu_depth.py | 10 +++ tests/test_postprocess_hierarchy.py | 53 +++++++++++++++ 13 files changed, 363 insertions(+), 18 deletions(-) diff --git a/mblt_vision/datasets/imagenet_synsets.txt b/mblt_vision/datasets/imagenet_synsets.txt index 1fab3e9..88aa58f 100644 --- a/mblt_vision/datasets/imagenet_synsets.txt +++ b/mblt_vision/datasets/imagenet_synsets.txt @@ -1,4 +1,4 @@ -+n01440764 +n01440764 n01443537 n01484850 n01491361 diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 4233caf..59cfe95 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -1262,6 +1262,11 @@ def organize_cityscapes( os.path.join(staged_annotation_dir, f"{sample_id}.png"), ) + if not dataset_ready(staging_dir, "semantic_segmentation", "cityscapes"): + raise ValueError( + "Staged Cityscapes validation data failed identity and completeness checks." + ) + replacements = ( (staged_image_dir, os.path.join(output_dir, "images")), (staged_annotation_dir, os.path.join(output_dir, "annotations")), diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index 559932c..96f98b8 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -2,6 +2,7 @@ from __future__ import annotations +import hashlib import json import os import re @@ -51,6 +52,9 @@ } COCO_CATEGORY_IDS = frozenset(get_dataset_category_ids("coco")) COCO_PERSON_KEYPOINT_CATEGORY_IDS = frozenset({1}) +COCO_VALIDATION_IMAGE_IDENTITIES_SHA256 = ( + "f57f71ba25171a0fd99be8c425a91d4a6fdd43d25aadc7e5be51dd37a73281a7" +) def _path_has_symlink_component(path: Path) -> bool: @@ -163,6 +167,16 @@ def _load_coco_image_names(annotation_path: Path) -> set[str] | None: or len(image_ids) != len(set(image_ids)) ): return None + if len(image_records) == 5000: + identity_payload = "".join( + f"{image_id}:{file_name}\n" + for image_id, file_name in sorted(zip(image_ids, names, strict=True)) + ).encode() + if ( + hashlib.sha256(identity_payload).hexdigest() + != COCO_VALIDATION_IMAGE_IDENTITIES_SHA256 + ): + return None annotation_records = annotation.get("annotations") categories = annotation.get("categories") expected_annotations = COCO_ANNOTATION_COUNTS.get(annotation_path.name) @@ -209,6 +223,21 @@ def _load_coco_image_names(annotation_path: Path) -> set[str] | None: or category_id not in category_ids ): return None + if annotation_path.name == "instances_val2017.json": + bbox = record.get("bbox") + if ( + not isinstance(bbox, list) + or len(bbox) != 4 + or any( + not isinstance(value, (int, float)) + or isinstance(value, bool) + or not np.isfinite(value) + for value in bbox + ) + or bbox[2] <= 0 + or bbox[3] <= 0 + ): + return None annotation_ids.append(annotation_id) if len(annotation_ids) != len(set(annotation_ids)): return None diff --git a/mblt_vision/utils/evaluation/eval_coco.py b/mblt_vision/utils/evaluation/eval_coco.py index 15f84a4..8ff9b75 100644 --- a/mblt_vision/utils/evaluation/eval_coco.py +++ b/mblt_vision/utils/evaluation/eval_coco.py @@ -40,6 +40,20 @@ def secondary_score(self) -> float: return self.map50 +def _require_batch_cardinality(expected: int, **values: Any) -> None: + """Reject postprocessing metadata that cannot represent every input image.""" + + invalid = { + name: len(value) for name, value in values.items() if len(value) != expected + } + if invalid: + details = ", ".join(f"{name}={length}" for name, length in invalid.items()) + raise ValueError( + "COCO evaluation batch cardinality mismatch: " + f"expected {expected}, got {details}." + ) + + def format_coco_results( task: str, nms_outs: Results, @@ -71,7 +85,17 @@ def format_coco_results( org_shape, ratio_pad=ratio_pad, ) - for i, labels, boxes, scores in zip(idx, labels_list, boxes_list, scores_list): + _require_batch_cardinality( + len(idx), + org_shape=org_shape, + ratio_pad=ratio_pad, + labels=labels_list, + boxes=boxes_list, + scores=scores_list, + ) + for i, labels, boxes, scores in zip( + idx, labels_list, boxes_list, scores_list, strict=True + ): results.extend( [ { @@ -80,7 +104,7 @@ def format_coco_results( "bbox": box, "score": score, } - for box, score, label in zip(boxes, scores, labels) + for box, score, label in zip(boxes, scores, labels, strict=True) ] ) elif task == "instance_segmentation": @@ -90,8 +114,17 @@ def format_coco_results( org_shape, ratio_pad=ratio_pad, ) + _require_batch_cardinality( + len(idx), + org_shape=org_shape, + ratio_pad=ratio_pad, + labels=labels_list, + boxes=boxes_list, + scores=scores_list, + extra=extra_list, + ) for i, labels, boxes, scores, extra in zip( - idx, labels_list, boxes_list, scores_list, extra_list + idx, labels_list, boxes_list, scores_list, extra_list, strict=True ): results.extend( [ @@ -102,7 +135,9 @@ def format_coco_results( "score": score, "segmentation": extra, } - for box, score, label, extra in zip(boxes, scores, labels, extra) + for box, score, label, extra in zip( + boxes, scores, labels, extra, strict=True + ) ] ) elif task == "pose_estimation": @@ -112,8 +147,17 @@ def format_coco_results( org_shape, ratio_pad=ratio_pad, ) + _require_batch_cardinality( + len(idx), + org_shape=org_shape, + ratio_pad=ratio_pad, + labels=labels_list, + boxes=boxes_list, + scores=scores_list, + extra=extra_list, + ) for i, labels, boxes, scores, extra in zip( - idx, labels_list, boxes_list, scores_list, extra_list + idx, labels_list, boxes_list, scores_list, extra_list, strict=True ): results.extend( [ @@ -124,7 +168,9 @@ def format_coco_results( "score": score, "keypoints": extra, } - for box, score, label, extra in zip(boxes, scores, labels, extra) + for box, score, label, extra in zip( + boxes, scores, labels, extra, strict=True + ) ] ) else: @@ -171,6 +217,12 @@ def eval_coco_metrics( model.post_cfg["task"], supported=("object_detection", "instance_segmentation", "pose_estimation"), ) + dataset_name = model.post_cfg.get("dataset") + if not isinstance(dataset_name, str) or dataset_name.lower() != "coco": + raise ValueError( + "COCO evaluation requires model post_cfg.dataset to be 'coco', " + f"got {dataset_name!r}." + ) if task in {"object_detection", "instance_segmentation"}: dataset = CustomCOCODataset( os.path.join(data_path, "val2017"), diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index cc49a92..41ab221 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -62,6 +62,22 @@ def _label_to_index(label: str) -> int: return DOTAV1_CLASS_TO_IDX[label] +def _validate_polygon_area( + coords: torch.Tensor, annotation_path: Path, line_number: int +) -> None: + """Require a non-degenerate quadrilateral before converting it to an OBB.""" + + shifted = torch.roll(coords, shifts=-1, dims=0) + area = 0.5 * torch.abs( + torch.sum(coords[:, 0] * shifted[:, 1] - coords[:, 1] * shifted[:, 0]) + ) + if not bool(area > 0): + raise ValueError( + "DOTAv1 annotation polygon must have positive area at " + f"{annotation_path}:{line_number}." + ) + + def _load_ground_truths( data_path: str, dataset: CustomDOTAv1 ) -> dict[str, dict[str, torch.Tensor]]: @@ -120,6 +136,7 @@ def _load_ground_truths( if coords.numel() and float(coords.max()) <= 1.5: coords[:, 0] *= width coords[:, 1] *= height + _validate_polygon_area(coords, label_path, line_number) if len(parts) >= 10 and parts[9] not in {"0", "1", "2"}: raise ValueError( f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " @@ -159,6 +176,7 @@ def _load_ground_truths( "DOTAv1 annotation coordinates must be finite at " f"{original_label_path}:{line_number}." ) + _validate_polygon_area(coords, original_label_path, line_number) if parts[9] not in {"0", "1", "2"}: raise ValueError( f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " diff --git a/mblt_vision/utils/evaluation/eval_nyu_depth.py b/mblt_vision/utils/evaluation/eval_nyu_depth.py index 1a5432c..1e5ed83 100644 --- a/mblt_vision/utils/evaluation/eval_nyu_depth.py +++ b/mblt_vision/utils/evaluation/eval_nyu_depth.py @@ -53,8 +53,8 @@ def __init__(self) -> None: def update(self, prediction: np.ndarray, target: np.ndarray) -> None: """Median-align one prediction and add its valid-pixel statistics.""" - prediction = np.asarray(prediction, dtype=np.float32) - target = np.asarray(target, dtype=np.float32) + prediction = _as_real_float32(prediction, "prediction") + target = _as_real_float32(target, "target") if prediction.shape != target.shape: raise ValueError( f"NYU Depth prediction and target shapes must match, got {prediction.shape} and {target.shape}." @@ -98,6 +98,19 @@ def result(self) -> NYUDepthResult: ) +def _as_real_float32(values: np.ndarray, name: str) -> np.ndarray: + """Validate metric input dtype before converting it to float32.""" + + array = np.asarray(values) + if not np.issubdtype(array.dtype, np.number) or np.issubdtype( + array.dtype, np.complexfloating + ): + raise ValueError( + f"NYU Depth {name} must use a real numeric dtype, got {array.dtype}." + ) + return np.asarray(array, dtype=np.float32) + + def calculate_nyu_depth_metrics( prediction: np.ndarray, target: np.ndarray ) -> NYUDepthResult: diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index bd8eeb0..cf6fdf3 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -323,6 +323,12 @@ def extract_final_outputs( try: normalized_proto = self._normalize_proto_batch(output) except ValueError: + if ( + normalized_detections is not None + and self.task == "instance_segmentation" + and output.ndim == 4 + ): + raise continue if normalized_detections is not None: @@ -394,12 +400,6 @@ def _final_detection_batches( "Decoded detection confidence values must be in [0, 1]; " f"got {invalid_scores}." ) - if not bool( - ((batch[:, 2] > batch[:, 0]) & (batch[:, 3] > batch[:, 1])).all() - ): - raise ValueError( - "Decoded detection boxes must have positive xyxy area." - ) valid_labels = ( torch.isfinite(labels) & (labels == labels.round()) @@ -412,7 +412,21 @@ def _final_detection_batches( "Decoded detection class IDs must be finite integral values in " f"[0, {self.nc}); got {invalid_labels}." ) - batches.append(batch[batch[:, 4] > self.conf_thres]) + retained = batch[batch[:, 4] > self.conf_thres] + if getattr(self, "task", "object_detection") == "obb": + valid_geometry = (retained[:, 2] > 0) & (retained[:, 3] > 0) + geometry_description = "positive width and height" + else: + valid_geometry = (retained[:, 2] > retained[:, 0]) & ( + retained[:, 3] > retained[:, 1] + ) + geometry_description = "positive xyxy area" + if not bool(valid_geometry.all()): + raise ValueError( + "Decoded detection boxes must have " + f"{geometry_description} after confidence filtering." + ) + batches.append(retained) return batches def _normalize_proto_batch( diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index ff6d073..efe0827 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -1186,6 +1186,7 @@ def test_organize_cityscapes_materializes_lossless_validation_pairs( """Copy only exactly paired validation images and label-ID masks without transcoding.""" monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 2) + monkeypatch.setattr(organizer, "dataset_ready", lambda *_: True) sample_ids = ["frankfurt_000000_000294", "munster_000001_000019"] image_archive, annotation_archive = _write_cityscapes_archives(tmp_path, sample_ids) output_dir = tmp_path / "cityscapes" @@ -1321,6 +1322,7 @@ def test_organize_cityscapes_rolls_back_failed_atomic_replacement( """Restore both previous directories if the staged installation fails.""" monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setattr(organizer, "dataset_ready", lambda *_: True) image_archive, annotation_archive = _write_cityscapes_archives( tmp_path, ["lindau_000000_000019"] ) @@ -1356,6 +1358,32 @@ def _fail_annotation_install(source: str, destination: str) -> None: assert (output_dir / "annotations" / "keep.png").read_bytes() == b"old annotation" +def test_organize_cityscapes_preserves_cache_when_staging_fails_readiness( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Validate the staged tree before it can replace a usable Cityscapes cache.""" + + monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setattr(organizer, "dataset_ready", lambda *_: False) + image_archive, annotation_archive = _write_cityscapes_archives( + tmp_path, ["lindau_000000_000019"] + ) + output_dir = tmp_path / "cityscapes" + (output_dir / "images").mkdir(parents=True) + (output_dir / "annotations").mkdir() + (output_dir / "images" / "keep.png").write_bytes(b"old image") + (output_dir / "annotations" / "keep.png").write_bytes(b"old annotation") + + with pytest.raises(ValueError, match="failed identity and completeness checks"): + organizer.organize_cityscapes( + str(image_archive), str(annotation_archive), str(output_dir) + ) + + assert (output_dir / "images" / "keep.png").read_bytes() == b"old image" + assert (output_dir / "annotations" / "keep.png").read_bytes() == b"old annotation" + + def test_dense_install_preserves_backups_when_rollback_fails( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index 07c8ee1..a0b4e9a 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -2,6 +2,7 @@ from __future__ import annotations +import hashlib import json from pathlib import Path @@ -96,7 +97,12 @@ def test_coco_readiness_matches_images_to_task_annotations( ], "categories": [{"id": 1}], "annotations": [ - {"id": index, "image_id": index, "category_id": 1} + { + "id": index, + "image_id": index, + "category_id": 1, + "bbox": [0, 0, 1, 1], + } for index in range(1, 3) ], } @@ -133,6 +139,66 @@ def test_coco_readiness_rejects_noncanonical_category_ids( assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") +@pytest.mark.parametrize("bbox", [[0, 0, 0, 1], [0, 0, 1, float("nan")]]) +def test_coco_readiness_rejects_invalid_instance_box_geometry( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path, bbox: list[float] +) -> None: + """Reject invalid instance boxes before a malformed cache reaches COCOeval.""" + + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 1) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) + _write_file(tmp_path / "val2017" / "000000000001.jpg") + (tmp_path / "instances_val2017.json").write_text( + json.dumps( + { + "images": [{"id": 1, "file_name": "000000000001.jpg"}], + "categories": [{"id": 1}], + "annotations": [ + {"id": 1, "image_id": 1, "category_id": 1, "bbox": bbox} + ], + } + ), + encoding="utf-8", + ) + + assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") + + +def test_coco_annotation_identity_digest_rejects_wrong_validation_split( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Bind a complete COCO annotation table to its canonical image identities.""" + + images = [ + {"id": index, "file_name": f"{index:012d}.jpg"} for index in range(1, 5001) + ] + payload = "".join(f"{item['id']}:{item['file_name']}\n" for item in images).encode() + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 5000) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 0) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) + monkeypatch.setattr( + readiness, + "COCO_VALIDATION_IMAGE_IDENTITIES_SHA256", + hashlib.sha256(payload).hexdigest(), + ) + annotation_path = tmp_path / "instances_val2017.json" + annotation_path.write_text( + json.dumps({"images": images, "categories": [{"id": 1}], "annotations": []}), + encoding="utf-8", + ) + + assert readiness._load_coco_image_names(annotation_path) is not None + images[0]["file_name"] = "999999999999.jpg" + annotation_path.write_text( + json.dumps({"images": images, "categories": [{"id": 1}], "annotations": []}), + encoding="utf-8", + ) + assert readiness._load_coco_image_names(annotation_path) is None + + def test_coco_readiness_rejects_duplicate_image_ids( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py index 3c13eba..db25e74 100644 --- a/tests/test_eval_coco.py +++ b/tests/test_eval_coco.py @@ -31,7 +31,7 @@ def __len__(self) -> int: return len(self.ids) class _Model: - post_cfg = {"task": "pose_estimation"} + post_cfg = {"task": "pose_estimation", "dataset": "coco"} def set_postprocess_thresholds( self, *, conf_thres: float | None, iou_thres: float | None @@ -65,3 +65,32 @@ def _evaluate( ) assert evaluated_image_ids == [1, 2] assert result.map5095 == result.map50 == 0.1 + + +def test_coco_evaluation_rejects_non_coco_model_taxonomy() -> None: + """Do not evaluate another taxonomy using the hard-coded COCO ID mapping.""" + + model = SimpleNamespace(post_cfg={"task": "object_detection", "dataset": "dotav1"}) + + with pytest.raises(ValueError, match="post_cfg.dataset to be 'coco'"): + eval_coco_module.eval_coco_metrics(model, "/dataset", batch_size=1) + + +def test_coco_result_formatter_rejects_truncated_postprocess_batch() -> None: + """Require one decoded result for every submitted COCO image.""" + + postprocess = SimpleNamespace( + nmsout2eval=lambda *_args, **_kwargs: ([[1]], [[[0, 0, 1, 1]]], [[0.9]]) + ) + + with pytest.raises(ValueError, match="batch cardinality mismatch"): + eval_coco_module.format_coco_results( + "object_detection", + SimpleNamespace(output=[]), + (640, 640), + [(640, 640), (640, 640)], + [None, None], + [0, 1], + [101, 102], + postprocess, + ) diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index 9cc2bda..459d475 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -146,6 +146,34 @@ def test_original_truncated_annotation_raises_with_file_and_line(tmp_path) -> No _load_ground_truths(str(tmp_path), dataset) +@pytest.mark.parametrize( + ("label_path", "annotation"), + [ + ("labels/val/image.txt", "0 0 0 1 0 2 0 3 0"), + ("labels/val_original/image.txt", "0 0 1 0 2 0 3 0 plane 0"), + ], +) +def test_dota_annotations_reject_degenerate_polygons( + tmp_path, label_path: str, annotation: str +) -> None: + """Reject line-like quadrilaterals before deriving rotated boxes.""" + + path = tmp_path / label_path + path.parent.mkdir(parents=True) + path.write_text(annotation, encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises(ValueError, match="polygon must have positive area"): + _load_ground_truths(str(tmp_path), dataset) + + @pytest.mark.parametrize( ("label_path", "annotation"), [ diff --git a/tests/test_eval_nyu_depth.py b/tests/test_eval_nyu_depth.py index 4fea03d..4dddf0b 100644 --- a/tests/test_eval_nyu_depth.py +++ b/tests/test_eval_nyu_depth.py @@ -55,3 +55,13 @@ def test_nyu_depth_metrics_reject_nonfinite_targets(invalid_value: float) -> Non target = np.array([[1.0, invalid_value]], dtype=np.float32) with pytest.raises(ValueError, match="target contains non-finite"): eval_nyu_depth_module.calculate_nyu_depth_metrics(np.ones((1, 2)), target) + + +@pytest.mark.parametrize("dtype", [np.complex64, np.dtype("U4")]) +def test_nyu_depth_metrics_reject_nonreal_or_nonnumeric_inputs(dtype: np.dtype) -> None: + """Direct metric callers must not lose source-dtype corruption during casting.""" + + values = np.ones((1, 2), dtype=dtype) + + with pytest.raises(ValueError, match="real numeric dtype"): + eval_nyu_depth_module.calculate_nyu_depth_metrics(values, values) diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index d9b3a26..3f422f4 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -190,6 +190,59 @@ def test_already_decoded_detections_reject_nonpositive_box_area( postprocessor._final_detection_batches(detections) +def test_already_decoded_detections_ignore_degenerate_padding_rows() -> None: + """Validate geometry only after low-confidence fixed-size padding is removed.""" + + postprocessor = cast( + Any, YOLOAnchorlessDetectionPost.__new__(YOLOAnchorlessDetectionPost) + ) + postprocessor.device = torch.device("cpu") + postprocessor.conf_thres = 0.25 + postprocessor.nc = 2 + detections = torch.tensor([[[0.0, 0.0, 0.0, 0.0, 0.1, 1.0]]], dtype=torch.float32) + + assert postprocessor._final_detection_batches(detections)[0].shape == (0, 6) + + +def test_already_decoded_obb_uses_width_height_geometry() -> None: + """Do not interpret OBB center/size fields as XYXY corners.""" + + postprocessor = cast( + Any, YOLOAnchorlessDetectionPost.__new__(YOLOAnchorlessDetectionPost) + ) + postprocessor.device = torch.device("cpu") + postprocessor.conf_thres = 0.25 + postprocessor.nc = 2 + postprocessor.task = "obb" + detections = torch.tensor( + [[[500.0, 20.0, 100.0, 10.0, 0.9, 1.0]]], dtype=torch.float32 + ) + + assert postprocessor._final_detection_batches(detections)[0].shape == (1, 6) + + +def test_decoded_segmentation_propagates_invalid_mask_prototypes() -> None: + """Do not discard malformed required prototype tensors as unrelated outputs.""" + + postprocessor = cast( + Any, YOLOAnchorlessDetectionPost.__new__(YOLOAnchorlessDetectionPost) + ) + postprocessor.device = torch.device("cpu") + postprocessor.conf_thres = 0.25 + postprocessor.nc = 2 + postprocessor.n_extra = 2 + postprocessor.task = "instance_segmentation" + detections = torch.tensor( + [[[0.0, 0.0, 1.0, 1.0, 0.9, 1.0, 0.0, 0.0]]], dtype=torch.float32 + ) + invalid_proto = torch.full((1, 2, 2, 2), float("nan")) + + with pytest.raises( + ValueError, match="Mask prototype tensor must contain only finite" + ): + postprocessor.extract_final_outputs([detections, invalid_proto]) + + @pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) def test_detection_postprocessor_rejects_nonfinite_raw_heads( invalid_value: float, From e1846a164028febb5ace92d07c367d307a8330fe Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 15:44:38 +0900 Subject: [PATCH 36/48] fix: validate vision dataset evaluators --- mblt_vision/utils/datasets/organizer.py | 41 +++++++++ mblt_vision/utils/evaluation/eval_dota.py | 12 +++ mblt_vision/utils/evaluation/eval_imagenet.py | 6 ++ .../utils/evaluation/eval_nyu_depth.py | 6 ++ .../utils/evaluation/eval_widerface.py | 22 ++++- tests/test_dataset_organizer.py | 23 +++++ tests/test_eval_dota.py | 31 ++++++- tests/test_eval_imagenet.py | 11 +++ tests/test_eval_nyu_depth.py | 10 +++ tests/test_eval_widerface.py | 84 +++++++++++++++++++ 10 files changed, 244 insertions(+), 2 deletions(-) create mode 100644 tests/test_eval_widerface.py diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 59cfe95..ad784d6 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -5,6 +5,7 @@ from __future__ import annotations import concurrent.futures +import cv2 import hashlib import math import os @@ -22,6 +23,7 @@ from urllib.parse import urlparse import requests +import numpy as np from gdown.download import download from gdown.download_folder import download_folder from PIL import Image @@ -926,6 +928,8 @@ def construct_nyu_depth(dataset_dir: str, output_dir: str) -> None: os.path.join(staged_depth_dir, os.path.basename(depths[sample_id])), ) + _validate_staged_nyu_depth(staging_dir) + replacements = ( (staged_image_dir, os.path.join(output_dir, "images")), (staged_depth_dir, os.path.join(output_dir, "depth")), @@ -938,6 +942,43 @@ def construct_nyu_depth(dataset_dir: str, output_dir: str) -> None: ) +def _validate_staged_nyu_depth(staging_dir: str) -> None: + """Decode staged NYU pairs before they can replace an existing cache.""" + + image_dir = Path(staging_dir) / "images" + depth_dir = Path(staging_dir) / "depth" + for image_path in sorted(image_dir.iterdir()): + if image_path.suffix.lower() not in {".jpg", ".jpeg", ".png"}: + continue + depth_path = depth_dir / f"{image_path.stem}.npy" + image = cv2.imread(str(image_path)) + if image is None: + raise ValueError(f"Staged NYU Depth image is unreadable: {image_path}.") + try: + raw_depth = np.load(depth_path, allow_pickle=False) + except (OSError, ValueError) as exc: + raise ValueError( + f"Unable to load staged NYU Depth target {depth_path}: {exc}." + ) from exc + if not np.issubdtype(raw_depth.dtype, np.number) or np.issubdtype( + raw_depth.dtype, np.complexfloating + ): + raise ValueError( + "Staged NYU Depth target must use a real numeric dtype, " + f"got {raw_depth.dtype}: {depth_path}." + ) + depth = np.asarray(raw_depth, dtype=np.float32) + if depth.ndim != 2 or depth.shape != image.shape[:2]: + raise ValueError( + "Staged NYU Depth image and target shapes must match: " + f"image {image.shape[:2]}, depth {depth.shape}: {image_path}." + ) + if not bool(np.isfinite(depth).all()): + raise ValueError( + f"Staged NYU Depth target must contain only finite values: {depth_path}." + ) + + def organize_nyu_depth( dataset_path: str = NYU_DEPTH_URL, output_dir: str | None = None, diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 41ab221..90b2356 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -189,6 +189,12 @@ def _load_ground_truths( classes.append(cls) polygons.append(coords) + else: + raise FileNotFoundError( + "DOTAv1 annotation not found for image " + f"{image_id!r}; expected {label_path} or {original_label_path}." + ) + polygon_tensor = ( torch.stack(polygons).to(torch.float32) if polygons @@ -693,6 +699,12 @@ def eval_dota( raise NotImplementedError( f"Task {model.post_cfg['task']} is not supported for DOTAv1 evaluation." ) + dataset_name = model.post_cfg.get("dataset") + if not isinstance(dataset_name, str) or dataset_name.lower() != "dotav1": + raise ValueError( + "DOTAv1 evaluation requires model post_cfg.dataset to be 'dotav1', " + f"got {dataset_name!r}." + ) dataset = CustomDOTAv1(data_path) dataloader = get_dota_loader(dataset, batch_size, model.preprocess_with_metadata) diff --git a/mblt_vision/utils/evaluation/eval_imagenet.py b/mblt_vision/utils/evaluation/eval_imagenet.py index fe46a6c..292c68c 100644 --- a/mblt_vision/utils/evaluation/eval_imagenet.py +++ b/mblt_vision/utils/evaluation/eval_imagenet.py @@ -50,6 +50,12 @@ def eval_imagenet_metrics( Returns: ImageNetResult: Top-1 primary accuracy and Top-5 secondary accuracy. """ + dataset_name = model.post_cfg.get("dataset") + if not isinstance(dataset_name, str) or dataset_name.lower() != "imagenet": + raise ValueError( + "ImageNet evaluation requires model post_cfg.dataset to be 'imagenet', " + f"got {dataset_name!r}." + ) dataset = CustomImageFolder(data_path) dataloader = get_imagenet_loader(dataset, batch_size, model.preprocess) num_data = len(dataset) diff --git a/mblt_vision/utils/evaluation/eval_nyu_depth.py b/mblt_vision/utils/evaluation/eval_nyu_depth.py index 1e5ed83..6e8caf0 100644 --- a/mblt_vision/utils/evaluation/eval_nyu_depth.py +++ b/mblt_vision/utils/evaluation/eval_nyu_depth.py @@ -126,6 +126,12 @@ def eval_nyu_depth( ) -> NYUDepthResult: """Evaluate a depth model on paired NYU validation images and depth maps.""" + dataset_name = model.post_cfg.get("dataset") + if not isinstance(dataset_name, str) or dataset_name.lower() != "nyu-depth": + raise ValueError( + "NYU Depth evaluation requires model post_cfg.dataset to be 'nyu-depth', " + f"got {dataset_name!r}." + ) dataset = CustomNYUDepth(data_path) letterbox_cfg = model.pre_cfg.get("LetterBox") if not isinstance(letterbox_cfg, dict) or "img_size" not in letterbox_cfg: diff --git a/mblt_vision/utils/evaluation/eval_widerface.py b/mblt_vision/utils/evaluation/eval_widerface.py index ac7879b..c6b33ed 100644 --- a/mblt_vision/utils/evaluation/eval_widerface.py +++ b/mblt_vision/utils/evaluation/eval_widerface.py @@ -103,6 +103,12 @@ def eval_widerface( raise NotImplementedError( f"Task {model.post_cfg['task']} is not supported for WiderFace evaluation." ) + dataset_name = model.post_cfg.get("dataset") + if not isinstance(dataset_name, str) or dataset_name.lower() != "widerface": + raise ValueError( + "WiderFace evaluation requires model post_cfg.dataset to be 'widerface', " + f"got {dataset_name!r}." + ) dataset = CustomWiderface(os.path.join(data_path, "images")) dataloader = get_widerface_loader( @@ -132,9 +138,23 @@ def eval_widerface( img0_shapes, ratio_pad=ratio_pad, ) + batch_lengths = { + "input batch": int(input_npu.shape[0]), + "original shapes": len(org_shape), + "ratio pads": len(ratio_pad), + "target classes": len(target_classes), + "file names": len(fnames), + "boxes": len(boxes_list), + "scores": len(scores_list), + } + if len(set(batch_lengths.values())) != 1: + details = ", ".join( + f"{name}={length}" for name, length in batch_lengths.items() + ) + raise ValueError(f"WiderFace evaluation batch length mismatch: {details}.") for event_name, file_name, boxes, scores in zip( - target_classes, fnames, boxes_list, scores_list + target_classes, fnames, boxes_list, scores_list, strict=True ): predictions[event_name][os.path.splitext(file_name)[0]] = ( _boxes_scores_to_prediction(boxes, scores) diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index efe0827..8a72e05 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -16,6 +16,7 @@ import pytest import requests +import numpy as np from PIL import Image import mblt_vision.utils.datasets.organizer as organizer @@ -755,6 +756,7 @@ def test_organize_nyu_depth_extracts_only_validation_layout( """Install only NYU Depth validation image/depth pairs from an archive.""" monkeypatch.setattr(organizer, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setattr(organizer, "_validate_staged_nyu_depth", lambda _: None) archive_path = tmp_path / "nyu-depth.zip" with ZipFile(archive_path, "w") as archive: archive.writestr("nyu-depth/images/train/nyu_train.jpg", b"training image") @@ -831,6 +833,7 @@ def test_nyu_depth_install_preserves_backups_when_rollback_fails( """Leave recoverable NYU backups outside staging when rollback fails.""" monkeypatch.setattr(organizer, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setattr(organizer, "_validate_staged_nyu_depth", lambda _: None) dataset_dir = tmp_path / "source" (dataset_dir / "images").mkdir(parents=True) (dataset_dir / "depth").mkdir() @@ -873,6 +876,26 @@ def _fail_install_and_rollback(source: str, destination: str) -> None: assert (backup_dirs[0] / "depth" / "keep.npy").read_bytes() == b"old depth" +@pytest.mark.parametrize( + "depth", + [np.array([[np.nan]], dtype=np.float32), np.array([[1]], dtype=np.complex64)], +) +def test_staged_nyu_depth_validation_rejects_malformed_payloads( + tmp_path: Path, depth: np.ndarray +) -> None: + """Reject corrupt staged NYU targets before cache replacement can begin.""" + + image_dir = tmp_path / "images" + depth_dir = tmp_path / "depth" + image_dir.mkdir() + depth_dir.mkdir() + Image.new("RGB", (1, 1)).save(image_dir / "sample.png") + np.save(depth_dir / "sample.npy", depth) + + with pytest.raises(ValueError, match="real numeric dtype|finite values"): + organizer._validate_staged_nyu_depth(str(tmp_path)) + + def _create_ade20k_source(tmp_path: Path) -> Path: """Create a compact extracted ADE20K validation source.""" diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index 459d475..9d5e83d 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -39,7 +39,7 @@ def close(self) -> None: return None class _FakeModel: - post_cfg = {"task": "obb"} + post_cfg = {"task": "obb", "dataset": "dotav1"} preprocess_with_metadata = object() def set_postprocess_thresholds(self, **kwargs) -> None: @@ -74,6 +74,35 @@ def __len__(self) -> int: eval_dota_module.eval_dota(_FakeModel(), str(tmp_path), batch_size=2) +def test_eval_dota_rejects_wrong_model_taxonomy(tmp_path) -> None: + """Do not score another OBB taxonomy against DOTAv1 ground truth.""" + + with pytest.raises(ValueError, match="post_cfg.dataset to be 'dotav1'"): + eval_dota_module.eval_dota( + SimpleNamespace(post_cfg={"task": "obb", "dataset": "coco"}), + str(tmp_path), + batch_size=1, + ) + + +def test_dota_ground_truth_requires_annotation_for_every_image(tmp_path) -> None: + """Do not silently manufacture empty ground truth for unlabeled DOTAv1 samples.""" + + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises( + FileNotFoundError, match="annotation not found for image 'image'" + ): + _load_ground_truths(str(tmp_path), dataset) + + def test_normalized_difficult_flag_loads_as_an_ignored_region(tmp_path) -> None: """Read organizer-produced difficult metadata before selecting evaluation targets.""" diff --git a/tests/test_eval_imagenet.py b/tests/test_eval_imagenet.py index f478d14..ed5d3b3 100644 --- a/tests/test_eval_imagenet.py +++ b/tests/test_eval_imagenet.py @@ -37,6 +37,8 @@ def close(self) -> None: return None class _FakeModel: + post_cfg = {"dataset": "imagenet"} + def preprocess(self, value: object) -> object: return value @@ -63,3 +65,12 @@ def postprocess(self, outputs: torch.Tensor) -> SimpleNamespace: eval_imagenet_module.eval_imagenet_metrics( _FakeModel(), "/dataset", batch_size=2 ) + + +def test_imagenet_evaluation_rejects_wrong_model_taxonomy() -> None: + """Do not score another classification taxonomy against ImageNet labels.""" + + with pytest.raises(ValueError, match="post_cfg.dataset to be 'imagenet'"): + eval_imagenet_module.eval_imagenet_metrics( + SimpleNamespace(post_cfg={"dataset": "coco"}), "/dataset", batch_size=1 + ) diff --git a/tests/test_eval_nyu_depth.py b/tests/test_eval_nyu_depth.py index 4dddf0b..58e7fb0 100644 --- a/tests/test_eval_nyu_depth.py +++ b/tests/test_eval_nyu_depth.py @@ -20,6 +20,7 @@ def test_nyu_depth_evaluation_rejects_surplus_output_batch( """Do not silently discard depth maps from a malformed backend batch.""" class _Model: + post_cfg = {"dataset": "nyu-depth"} pre_cfg = {"LetterBox": {"img_size": [4, 4]}} def __call__(self, inputs: torch.Tensor) -> torch.Tensor: @@ -65,3 +66,12 @@ def test_nyu_depth_metrics_reject_nonreal_or_nonnumeric_inputs(dtype: np.dtype) with pytest.raises(ValueError, match="real numeric dtype"): eval_nyu_depth_module.calculate_nyu_depth_metrics(values, values) + + +def test_nyu_depth_evaluation_rejects_wrong_model_taxonomy() -> None: + """Require the model's declared depth taxonomy before loading a dataset.""" + + with pytest.raises(ValueError, match="post_cfg.dataset to be 'nyu-depth'"): + eval_nyu_depth_module.eval_nyu_depth( + SimpleNamespace(post_cfg={"dataset": "ade20k"}), "/dataset", batch_size=1 + ) diff --git a/tests/test_eval_widerface.py b/tests/test_eval_widerface.py new file mode 100644 index 0000000..1c897cb --- /dev/null +++ b/tests/test_eval_widerface.py @@ -0,0 +1,84 @@ +"""Focused WiderFace evaluator validation tests.""" + +from __future__ import annotations + +import importlib +from types import SimpleNamespace + +import numpy as np +import pytest +import torch + +eval_widerface_module = importlib.import_module( + "mblt_vision.utils.evaluation.eval_widerface" +) + + +def test_widerface_evaluation_rejects_wrong_model_taxonomy() -> None: + """Do not evaluate another detector taxonomy using WiderFace metadata.""" + + with pytest.raises(ValueError, match="post_cfg.dataset to be 'widerface'"): + eval_widerface_module.eval_widerface( + SimpleNamespace(post_cfg={"task": "face_detection", "dataset": "coco"}), + "/dataset", + batch_size=1, + ) + + +def test_widerface_evaluation_rejects_truncated_postprocess_batch( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Require one decoded face prediction list for every submitted image.""" + + class _Dataset: + samples = [("unused", "event", "first.jpg"), ("unused", "event", "second.jpg")] + + def __len__(self) -> int: + return 2 + + class _Progress: + def __init__(self, iterable, **kwargs) -> None: + del kwargs + self.iterable = iterable + + def __iter__(self): + return iter(self.iterable) + + def set_postfix_str(self, value: str) -> None: + del value + + def close(self) -> None: + return None + + class _Model: + post_cfg = {"task": "face_detection", "dataset": "widerface"} + postprocessor = SimpleNamespace( + nmsout2eval=lambda *_args, **_kwargs: ([], [[]], [[]]) + ) + preprocess_with_metadata = object() + + def set_postprocess_thresholds(self, **kwargs) -> None: + del kwargs + + def __call__(self, inputs: torch.Tensor) -> torch.Tensor: + return inputs + + def postprocess(self, outputs: torch.Tensor) -> SimpleNamespace: + del outputs + return SimpleNamespace(output=[]) + + batch = ( + torch.zeros((2, 8, 8, 3)), + np.array([[8, 8], [8, 8]]), + [None, None], + ("event", "event"), + ("first.jpg", "second.jpg"), + ) + monkeypatch.setattr(eval_widerface_module, "CustomWiderface", lambda _: _Dataset()) + monkeypatch.setattr( + eval_widerface_module, "get_widerface_loader", lambda *_: [batch] + ) + monkeypatch.setattr(eval_widerface_module, "tqdm", _Progress) + + with pytest.raises(ValueError, match="WiderFace evaluation batch length mismatch"): + eval_widerface_module.eval_widerface(_Model(), "/dataset", batch_size=2) From 7c53025ed99998751cc079092b5b6f8667d88766 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 16:15:43 +0900 Subject: [PATCH 37/48] fix: validate vision evaluation inputs --- mblt_vision/utils/datasets/dataloader.py | 80 ++++++++-------------- mblt_vision/utils/datasets/readiness.py | 77 ++++++++++++++++++++- mblt_vision/utils/postprocess/base.py | 8 +++ mblt_vision/wrapper.py | 9 ++- tests/test_dataloader.py | 27 ++++++++ tests/test_dataset_readiness.py | 86 ++++++++++++++++++++++++ tests/test_wrapper.py | 73 ++++++++++++++++++++ 7 files changed, 305 insertions(+), 55 deletions(-) diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index a609cef..27c7df4 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -19,6 +19,21 @@ from .readiness import IMAGE_SUFFIXES +def _unique_paths_by_stem( + directory: str, suffixes: tuple[str, ...], description: str +) -> dict[str, str]: + """Return supported direct-child files keyed by unique case-preserving stems.""" + + names = [name for name in os.listdir(directory) if name.lower().endswith(suffixes)] + stems = [os.path.splitext(name)[0] for name in names] + if len(stems) != len(set(stems)): + raise ValueError(f"{description} contain duplicate filename stems.") + return { + stem: os.path.join(directory, name) + for stem, name in zip(stems, names, strict=True) + } + + class CustomCOCODataset(torch.utils.data.Dataset[tuple[np.ndarray, int, int, int]]): """Custom COCO dataset class for loading images and metadata. @@ -179,23 +194,10 @@ def __init__(self, root: str) -> None: raise FileNotFoundError( f"NYU Depth requires images/ and depth/ directories under: {root}" ) - image_names = [ - name - for name in os.listdir(image_root) - if name.lower().endswith(self.IMG_EXTENSIONS) - ] - image_stems = [os.path.splitext(name)[0] for name in image_names] - if len(image_stems) != len(set(image_stems)): - raise ValueError("NYU Depth images contain duplicate filename stems.") - images = { - stem: os.path.join(image_root, name) - for stem, name in zip(image_stems, image_names, strict=True) - } - depths = { - os.path.splitext(name)[0]: os.path.join(depth_root, name) - for name in os.listdir(depth_root) - if name.lower().endswith(".npy") - } + images = _unique_paths_by_stem( + image_root, self.IMG_EXTENSIONS, "NYU Depth images" + ) + depths = _unique_paths_by_stem(depth_root, (".npy",), "NYU Depth depth maps") missing_depths, missing_images = ( sorted(set(images) - set(depths)), sorted(set(depths) - set(images)), @@ -329,23 +331,10 @@ def __init__(self, root: str) -> None: raise FileNotFoundError( f"ADE20K requires images/ and annotations/ directories under: {root}" ) - image_names = [ - name - for name in os.listdir(image_root) - if name.lower().endswith(self.IMG_EXTENSIONS) - ] - image_stems = [os.path.splitext(name)[0] for name in image_names] - if len(image_stems) != len(set(image_stems)): - raise ValueError("ADE20K images contain duplicate filename stems.") - images = { - stem: os.path.join(image_root, name) - for stem, name in zip(image_stems, image_names, strict=True) - } - annotations = { - os.path.splitext(name)[0]: os.path.join(annotation_root, name) - for name in os.listdir(annotation_root) - if name.lower().endswith(".png") - } + images = _unique_paths_by_stem(image_root, self.IMG_EXTENSIONS, "ADE20K images") + annotations = _unique_paths_by_stem( + annotation_root, (".png",), "ADE20K annotations" + ) missing_annotations = sorted(set(images) - set(annotations)) missing_images = sorted(set(annotations) - set(images)) if missing_annotations or missing_images: @@ -487,23 +476,12 @@ def __init__(self, root: str) -> None: raise FileNotFoundError( f"Cityscapes requires images/ and annotations/ directories under: {root}" ) - image_names = [ - name - for name in os.listdir(image_root) - if name.lower().endswith(self.IMG_EXTENSIONS) - ] - image_stems = [os.path.splitext(name)[0] for name in image_names] - if len(image_stems) != len(set(image_stems)): - raise ValueError("Cityscapes images contain duplicate filename stems.") - images = { - stem: os.path.join(image_root, name) - for stem, name in zip(image_stems, image_names, strict=True) - } - annotations = { - os.path.splitext(name)[0]: os.path.join(annotation_root, name) - for name in os.listdir(annotation_root) - if name.lower().endswith(".png") - } + images = _unique_paths_by_stem( + image_root, self.IMG_EXTENSIONS, "Cityscapes images" + ) + annotations = _unique_paths_by_stem( + annotation_root, (".png",), "Cityscapes annotations" + ) missing_annotations = sorted(set(images) - set(annotations)) missing_images = sorted(set(annotations) - set(images)) if missing_annotations or missing_images: diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index 96f98b8..43752b9 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -132,7 +132,9 @@ def _imagenet_ready(root: Path) -> bool: return len(image_names) == IMAGENET_CLASS_COUNT * IMAGENET_IMAGES_PER_CLASS -def _load_coco_image_names(annotation_path: Path) -> set[str] | None: +def _load_coco_image_names( + annotation_path: Path, task: str = "object_detection" +) -> set[str] | None: """Load unique validation image filenames from a COCO annotation file.""" try: @@ -223,7 +225,10 @@ def _load_coco_image_names(annotation_path: Path) -> set[str] | None: or category_id not in category_ids ): return None - if annotation_path.name == "instances_val2017.json": + if annotation_path.name in { + "instances_val2017.json", + "person_keypoints_val2017.json", + }: bbox = record.get("bbox") if ( not isinstance(bbox, list) @@ -238,6 +243,71 @@ def _load_coco_image_names(annotation_path: Path) -> set[str] | None: or bbox[3] <= 0 ): return None + if task == "instance_segmentation": + segmentation = record.get("segmentation") + if isinstance(segmentation, list): + if not segmentation or any( + not isinstance(polygon, list) + or len(polygon) < 6 + or len(polygon) % 2 + or any( + not isinstance(value, (int, float)) + or isinstance(value, bool) + or not np.isfinite(value) + for value in polygon + ) + for polygon in segmentation + ): + return None + elif isinstance(segmentation, dict): + counts = segmentation.get("counts") + size = segmentation.get("size") + if ( + not isinstance(size, list) + or len(size) != 2 + or any( + not isinstance(value, int) + or isinstance(value, bool) + or value <= 0 + for value in size + ) + or not isinstance(counts, (str, list)) + or ( + isinstance(counts, list) + and any( + not isinstance(value, int) + or isinstance(value, bool) + or value < 0 + for value in counts + ) + ) + ): + return None + else: + return None + if task == "pose_estimation": + keypoints = record.get("keypoints") + num_keypoints = record.get("num_keypoints") + if ( + not isinstance(keypoints, list) + or len(keypoints) != 51 + or any( + not isinstance(value, (int, float)) + or isinstance(value, bool) + or not np.isfinite(value) + for value in keypoints + ) + or not isinstance(num_keypoints, int) + or isinstance(num_keypoints, bool) + or not 0 <= num_keypoints <= 17 + or any( + keypoints[index] not in {0, 1, 2} + for index in range(2, len(keypoints), 3) + ) + or num_keypoints + != sum(keypoints[index] > 0 for index in range(2, len(keypoints), 3)) + ): + return None annotation_ids.append(annotation_id) if len(annotation_ids) != len(set(annotation_ids)): return None @@ -252,7 +322,7 @@ def _coco_ready(root: Path, task: str) -> bool: if task == "pose_estimation" else "instances_val2017.json" ) - annotation_names = _load_coco_image_names(root / annotation_name) + annotation_names = _load_coco_image_names(root / annotation_name, task) if annotation_names is None: return False image_dir = root / "val2017" @@ -373,6 +443,7 @@ def _widerface_difficulty_metadata_ready( if ( face_array.ndim != 2 or face_array.shape[1] != 4 + or len(face_array) == 0 or not np.isfinite(face_array).all() or (face_array[:, 2:] <= 0).any() ): diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index cf6fdf3..84ae50b 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -426,6 +426,14 @@ def _final_detection_batches( "Decoded detection boxes must have " f"{geometry_description} after confidence filtering." ) + if getattr(self, "task", "object_detection") == "pose_estimation": + keypoint_confidences = retained[:, 8::3] + if not bool( + ((keypoint_confidences >= 0) & (keypoint_confidences <= 1)).all() + ): + raise ValueError( + "Decoded pose keypoint confidence values must be in [0, 1]." + ) batches.append(retained) return batches diff --git a/mblt_vision/wrapper.py b/mblt_vision/wrapper.py index ae576fe..73552a3 100644 --- a/mblt_vision/wrapper.py +++ b/mblt_vision/wrapper.py @@ -601,7 +601,14 @@ def __init__( onnx_model.create() self._onnx_session = onnx_model.session self.model = self._onnx_session - self.input_name = self._onnx_session.get_inputs()[0].name + onnx_inputs = self._onnx_session.get_inputs() + if len(onnx_inputs) != 1: + raise ValueError( + "ONNX models must declare exactly one input because " + "MBLT_Engine accepts one preprocessed tensor; got " + f"{len(onnx_inputs)} inputs." + ) + self.input_name = onnx_inputs[0].name self.output_names = [o.name for o in self._onnx_session.get_outputs()] else: mxq_model = MobilintNPUBackend(**self._mxq_backend_kwargs()) diff --git a/tests/test_dataloader.py b/tests/test_dataloader.py index 80b8162..cb25ac1 100644 --- a/tests/test_dataloader.py +++ b/tests/test_dataloader.py @@ -17,6 +17,7 @@ CustomCityscapes, CustomDOTAv1, CustomImageFolder, + CustomNYUDepth, CustomWiderFaceDataset, ) @@ -101,6 +102,32 @@ def test_dota_dataset_rejects_duplicate_image_stems(tmp_path: Path) -> None: CustomDOTAv1(str(tmp_path)) +@pytest.mark.parametrize( + ("dataset_class", "target_dir", "target_names"), + [ + (CustomNYUDepth, "depth", ("sample.npy", "sample.NPY")), + (CustomADE20K, "annotations", ("sample.png", "sample.PNG")), + (CustomCityscapes, "annotations", ("sample.png", "sample.PNG")), + ], +) +def test_dense_datasets_reject_duplicate_target_stems( + tmp_path: Path, + dataset_class: type[CustomNYUDepth] | type[CustomADE20K] | type[CustomCityscapes], + target_dir: str, + target_names: tuple[str, str], +) -> None: + """Do not let case variants silently overwrite a dense target mapping.""" + + (tmp_path / "images").mkdir() + (tmp_path / target_dir).mkdir() + (tmp_path / "images" / "sample.jpg").write_bytes(b"image") + for target_name in target_names: + (tmp_path / target_dir / target_name).write_bytes(b"target") + + with pytest.raises(ValueError, match="duplicate filename stems"): + dataset_class(str(tmp_path)) + + def test_cityscapes_dataset_rejects_unknown_source_ids(tmp_path: Path) -> None: """Reject corrupted Cityscapes labels instead of remapping them to ignore.""" diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index a0b4e9a..48069f8 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -102,6 +102,16 @@ def test_coco_readiness_matches_images_to_task_annotations( "image_id": index, "category_id": 1, "bbox": [0, 0, 1, 1], + **( + {"segmentation": [[0, 0, 1, 0, 1, 1]]} + if task == "instance_segmentation" + else {} + ), + **( + {"keypoints": [0, 0, 0] * 17, "num_keypoints": 0} + if task == "pose_estimation" + else {} + ), } for index in range(1, 3) ], @@ -114,6 +124,56 @@ def test_coco_readiness_matches_images_to_task_annotations( assert not readiness.dataset_ready(tmp_path, task, "imagenet") +@pytest.mark.parametrize( + ("task", "invalid_field"), + [ + ("instance_segmentation", "segmentation"), + ("pose_estimation", "keypoints"), + ("pose_estimation", "num_keypoints"), + ], +) +def test_coco_readiness_rejects_missing_task_specific_ground_truth( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + task: str, + invalid_field: str, +) -> None: + """Reject COCO metadata missing the payload required by its evaluation task.""" + + annotation_name = ( + "person_keypoints_val2017.json" + if task == "pose_estimation" + else "instances_val2017.json" + ) + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, annotation_name, 1) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, annotation_name, 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) + _write_file(tmp_path / "val2017" / "000000000001.jpg") + annotation = { + "id": 1, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "segmentation": [[0, 0, 1, 0, 1, 1]], + "keypoints": [0, 0, 0] * 17, + "num_keypoints": 0, + } + del annotation[invalid_field] + (tmp_path / annotation_name).write_text( + json.dumps( + { + "images": [{"id": 1, "file_name": "000000000001.jpg"}], + "categories": [{"id": 1}], + "annotations": [annotation], + } + ), + encoding="utf-8", + ) + + assert not readiness.dataset_ready(tmp_path, task, "coco") + + def test_coco_readiness_rejects_noncanonical_category_ids( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: @@ -281,6 +341,32 @@ def test_widerface_readiness_rejects_invalid_difficulty_metadata( assert not readiness.dataset_ready(tmp_path, "face_detection", "widerface") +def test_widerface_readiness_rejects_empty_face_ground_truth( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Do not accept empty face arrays that evaluation would silently skip.""" + + face_boxes = np.empty((1, 1), dtype=object) + event_faces = np.empty((1, 1), dtype=object) + event_faces[0, 0] = np.empty((0, 4), dtype=np.float64) + face_boxes[0, 0] = event_faces + difficulty = np.empty((1, 1), dtype=object) + event_indices = np.empty((1, 1), dtype=object) + event_indices[0, 0] = np.empty((0,), dtype=np.int64) + difficulty[0, 0] = event_indices + + def _loadmat(path: Path) -> dict[str, np.ndarray]: + if path.name == "wider_face_val.mat": + return {"face_bbx_list": face_boxes} + return {"gt_list": difficulty} + + monkeypatch.setattr(readiness, "loadmat", _loadmat) + + assert not readiness._widerface_difficulty_metadata_ready( + tmp_path, {"0--Parade": {"sample.jpg"}} + ) + + @pytest.mark.parametrize("relative_image_dir", ["images", "images/val"]) def test_dotav1_readiness_requires_complete_image_label_pairs( monkeypatch: pytest.MonkeyPatch, diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 4f202e5..2b90362 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -1193,6 +1193,52 @@ def test_engine_init_rejects_framework_conflicting_with_onnx_path_alias( ) +@pytest.mark.parametrize("input_count", [0, 2]) +def test_engine_init_rejects_onnx_models_without_exactly_one_input( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path, input_count: int +) -> None: + """The public tensor-only engine API cannot satisfy multi-input ONNX graphs.""" + + onnx_path = tmp_path / "model.onnx" + onnx_path.write_bytes(b"onnx") + + class _Input: + def __init__(self, index: int) -> None: + self.name = f"input-{index}" + + class _Session: + def get_inputs(self) -> list[_Input]: + return [_Input(index) for index in range(input_count)] + + def get_outputs(self) -> list[object]: + return [] + + class _Backend: + def __init__(self, *args: Any, **kwargs: Any) -> None: + del args, kwargs + self.session = _Session() + + def create(self) -> None: + return None + + def dispose(self) -> None: + return None + + class _Ort: + @staticmethod + def get_available_providers() -> list[str]: + return ["CPUExecutionProvider"] + + monkeypatch.setattr(wrapper, "ONNXBackend", _Backend) + monkeypatch.setattr(wrapper, "_load_onnxruntime", _Ort) + + with pytest.raises(ValueError, match=rf"got {input_count} inputs"): + MBLT_Engine( + {"file_cfg": {}, "pre_cfg": {}, "post_cfg": {}}, + onnx_path=str(onnx_path), + ) + + def test_engine_init_rejects_conflicting_framework_and_model_path( tmp_path: Path, ) -> None: @@ -1753,6 +1799,33 @@ def test_final_onnx_pose_normalizes_detections() -> None: assert torch.equal(result[0], final_output[0, :1]) +def test_final_onnx_pose_rejects_invalid_keypoint_confidence() -> None: + """Reject decoded pose confidences that normal decoding would sigmoid.""" + + postprocessor = cast( + YOLODetectionPostBase, + build_postprocess( + {"LetterBox": {"img_size": [640, 640]}}, + { + "task": "pose_estimation", + "nl": 3, + "n_extra": 51, + "reg_max": 16, + "conf_thres": 0.5, + "iou_thres": 0.7, + }, + ), + ) + final_output = torch.zeros((1, 1, 57), dtype=torch.float32) + final_output[0, 0, :6] = torch.tensor([10.0, 20.0, 30.0, 40.0, 0.9, 0.0]) + final_output[0, 0, 8] = 1.1 + + with pytest.raises( + ValueError, match="keypoint confidence values must be in \\[0, 1\\]" + ): + postprocessor(final_output) + + @pytest.mark.parametrize( ("task", "post_cfg_extra", "converted_dim"), [ From 7bf6b25d3189ab157002cdee697547237073d769 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 16:38:49 +0900 Subject: [PATCH 38/48] fix: validate vision dataset payloads --- mblt_vision/utils/datasets/dataloader.py | 4 + mblt_vision/utils/datasets/organizer.py | 174 +++++++++++++++++- mblt_vision/utils/datasets/readiness.py | 28 ++- mblt_vision/utils/evaluation/eval_imagenet.py | 13 ++ .../utils/evaluation/eval_nyu_depth.py | 2 + .../utils/postprocess/yolo_anchor_post.py | 54 ++++-- tests/test_dataloader.py | 14 ++ tests/test_dataset_organizer.py | 44 ++++- tests/test_dataset_readiness.py | 75 ++++++++ tests/test_eval_imagenet.py | 51 +++++ tests/test_eval_nyu_depth.py | 6 +- tests/test_wrapper.py | 28 +++ 12 files changed, 469 insertions(+), 24 deletions(-) diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index 27c7df4..034b06a 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -246,6 +246,10 @@ def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: raise ValueError( f"NYU Depth target must contain only finite values: {depth_path}" ) + if bool((depth < 0).any()): + raise ValueError( + f"NYU Depth target must not contain negative values: {depth_path}" + ) return ( cv2.cvtColor(image, cv2.COLOR_BGR2RGB), depth, diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index ad784d6..d6735db 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -150,12 +150,169 @@ def _validate_staged_dataset( ValueError: If the staged dataset is incomplete or has mismatched identity. """ - if all(dataset_ready(staged_output_dir, task, dataset) for task in tasks): - return - raise ValueError( - f"Staged {dataset} validation dataset is incomplete or has mismatched metadata; " - "the existing dataset cache was not replaced." - ) + if not all(dataset_ready(staged_output_dir, task, dataset) for task in tasks): + raise ValueError( + f"Staged {dataset} validation dataset is incomplete or has mismatched metadata; " + "the existing dataset cache was not replaced." + ) + _validate_staged_payloads(Path(staged_output_dir), dataset) + + +def _validate_staged_payloads(staged_root: Path, dataset: str) -> None: + """Decode staged data files before a structurally valid cache is replaced.""" + + image_roots = { + "imagenet": (staged_root,), + "coco": (staged_root / "val2017",), + "widerface": (staged_root / "images",), + "dotav1": (staged_root / "images",), + "ade20k": (staged_root / "images",), + "cityscapes": (staged_root / "images",), + } + for image_root in image_roots.get(dataset, ()): + for image_path in image_root.rglob("*"): + if image_path.is_file() and image_path.suffix.lower() in { + ".bmp", + ".jpeg", + ".jpg", + ".png", + ".tif", + ".tiff", + ".webp", + }: + if cv2.imread(str(image_path), cv2.IMREAD_COLOR) is None: + raise ValueError( + f"Staged {dataset} image is unreadable: {image_path}." + ) + + if dataset in {"ade20k", "cityscapes"}: + _validate_staged_semantic_masks(staged_root, dataset) + elif dataset == "dotav1": + _validate_staged_dotav1_labels(staged_root) + + +def _validate_staged_semantic_masks(staged_root: Path, dataset: str) -> None: + """Validate decoded semantic targets against their paired staged images.""" + + image_dir = staged_root / "images" + annotation_dir = staged_root / "annotations" + for annotation_path in sorted(annotation_dir.glob("*.png")): + image_path = next( + ( + candidate + for candidate in image_dir.glob(f"{annotation_path.stem}.*") + if candidate.suffix.lower() in {".jpg", ".jpeg", ".png"} + ), + None, + ) + if image_path is None: + raise ValueError( + f"Staged {dataset} target has no paired image: {annotation_path}." + ) + image = cv2.imread(str(image_path), cv2.IMREAD_COLOR) + try: + with Image.open(annotation_path) as annotation_image: + annotation = np.asarray(annotation_image) + except OSError as exc: + raise ValueError( + f"Staged {dataset} annotation is unreadable: {annotation_path}." + ) from exc + if dataset == "cityscapes" and annotation.ndim == 3: + if ( + annotation.shape[2] not in {3, 4} + or not np.array_equal(annotation[..., 0], annotation[..., 1]) + or not np.array_equal(annotation[..., 0], annotation[..., 2]) + ): + raise ValueError( + f"Staged Cityscapes annotation must be grayscale or RGB-grayscale: {annotation_path}." + ) + annotation = annotation[..., 0] + if image is None or annotation.ndim != 2 or annotation.shape != image.shape[:2]: + raise ValueError( + f"Staged {dataset} image and annotation geometry is invalid: {annotation_path}." + ) + if dataset == "ade20k" and ( + annotation.dtype != np.uint8 + or (annotation.size and int(annotation.max()) > 150) + ): + raise ValueError( + f"Staged ADE20K annotation must be an 8-bit mask with values in [0, 150]: {annotation_path}." + ) + + +def _validate_staged_dotav1_labels(staged_root: Path) -> None: + """Validate both DOTAv1 label representations before cache replacement.""" + + label_dirs = { + "normalized": staged_root / "labels" / "val", + "original": staged_root / "labels" / "val_original", + } + valid_indices = set(DOTAV1_CLASS_TO_IDX.values()) + for kind, label_dir in label_dirs.items(): + for label_path in sorted(label_dir.glob("*.txt")): + for line_number, line in enumerate( + label_path.read_text(encoding="utf-8").splitlines(), start=1 + ): + fields = line.split() + if not fields or ( + kind == "original" + and ( + fields[0].startswith("imagesource:") + or fields[0].startswith("gsd:") + ) + ): + continue + min_fields = 9 if kind == "normalized" else 10 + if len(fields) < min_fields: + raise ValueError( + f"Malformed staged DOTAv1 {kind} annotation at " + f"{label_path}:{line_number}: expected at least {min_fields} fields." + ) + try: + coordinates = [ + float(value) + for value in ( + fields[1:9] if kind == "normalized" else fields[:8] + ) + ] + except ValueError as exc: + raise ValueError( + f"Malformed staged DOTAv1 coordinates at {label_path}:{line_number}." + ) from exc + if not all(math.isfinite(value) for value in coordinates): + raise ValueError( + f"Staged DOTAv1 coordinates must be finite at {label_path}:{line_number}." + ) + points = np.asarray(coordinates, dtype=np.float64).reshape(4, 2) + signed_double_area = np.dot( + points[:, 0], np.roll(points[:, 1], -1) + ) - np.dot(points[:, 1], np.roll(points[:, 0], -1)) + if abs(signed_double_area) <= 0: + raise ValueError( + f"Staged DOTAv1 polygon must have positive area at {label_path}:{line_number}." + ) + if kind == "normalized": + try: + class_index = int(fields[0]) + except ValueError as exc: + raise ValueError( + f"Malformed staged DOTAv1 class index at {label_path}:{line_number}." + ) from exc + difficulty = fields[9] if len(fields) >= 10 else "0" + if class_index not in valid_indices: + raise ValueError( + f"Unsupported staged DOTAv1 class index at {label_path}:{line_number}." + ) + else: + difficulty = fields[9] + if fields[8] not in DOTAV1_CLASS_TO_IDX: + raise ValueError( + f"Unsupported staged DOTAv1 class at {label_path}:{line_number}." + ) + if difficulty not in {"0", "1", "2"}: + raise ValueError( + f"Unsupported staged DOTAv1 difficulty flag at {label_path}:{line_number}." + ) class _GoogleDriveDownloadEntry(Protocol): @@ -977,6 +1134,10 @@ def _validate_staged_nyu_depth(staging_dir: str) -> None: raise ValueError( f"Staged NYU Depth target must contain only finite values: {depth_path}." ) + if bool((depth < 0).any()): + raise ValueError( + f"Staged NYU Depth target must not contain negative values: {depth_path}." + ) def organize_nyu_depth( @@ -1307,6 +1468,7 @@ def organize_cityscapes( raise ValueError( "Staged Cityscapes validation data failed identity and completeness checks." ) + _validate_staged_payloads(Path(staging_dir), "cityscapes") replacements = ( (staged_image_dir, os.path.join(output_dir, "images")), diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index 43752b9..c47b48d 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -36,12 +36,13 @@ r"^(?P[A-Za-z][A-Za-z0-9-]*)_\d{6}_\d{6}$" ) CITYSCAPES_VALIDATION_CITY_COUNTS = {"frankfurt": 267, "lindau": 59, "munster": 174} -IMAGENET_SYNSETS = frozenset( +IMAGENET_SYNSET_ORDER = tuple( files("mblt_vision.datasets") .joinpath("imagenet_synsets.txt") .read_text(encoding="utf-8") .splitlines() ) +IMAGENET_SYNSETS = frozenset(IMAGENET_SYNSET_ORDER) COCO_ANNOTATION_COUNTS = { "instances_val2017.json": 36781, "person_keypoints_val2017.json": 11004, @@ -105,6 +106,16 @@ def _files_by_stem( return files if len(files) == len(paths) else None +def _has_positive_polygon_area(polygon: list[int | float]) -> bool: + """Return whether a finite flat polygon encloses non-zero signed area.""" + + points = np.asarray(polygon, dtype=np.float64).reshape(-1, 2) + signed_double_area = np.dot(points[:, 0], np.roll(points[:, 1], -1)) - np.dot( + points[:, 1], np.roll(points[:, 0], -1) + ) + return bool(abs(signed_double_area) > 0) + + def _imagenet_ready(root: Path) -> bool: """Check the organizer's complete ImageNet-1k validation class tree.""" @@ -243,6 +254,18 @@ def _load_coco_image_names( or bbox[3] <= 0 ): return None + area = record.get("area") + iscrowd = record.get("iscrowd") + if ( + not isinstance(area, (int, float)) + or isinstance(area, bool) + or not np.isfinite(area) + or area <= 0 + or not isinstance(iscrowd, int) + or isinstance(iscrowd, bool) + or iscrowd not in {0, 1} + ): + return None if task == "instance_segmentation": segmentation = record.get("segmentation") if isinstance(segmentation, list): @@ -256,6 +279,7 @@ def _load_coco_image_names( or not np.isfinite(value) for value in polygon ) + or not _has_positive_polygon_area(polygon) for polygon in segmentation ): return None @@ -465,6 +489,8 @@ def _widerface_difficulty_metadata_ready( int(keep_indices.min()) < 1 or int(keep_indices.max()) > face_count ): return False + if len(np.unique(keep_indices)) != keep_indices.size: + return False return True diff --git a/mblt_vision/utils/evaluation/eval_imagenet.py b/mblt_vision/utils/evaluation/eval_imagenet.py index 292c68c..ed23ddf 100644 --- a/mblt_vision/utils/evaluation/eval_imagenet.py +++ b/mblt_vision/utils/evaluation/eval_imagenet.py @@ -13,6 +13,7 @@ from tqdm import tqdm from ..datasets import CustomImageFolder, get_imagenet_loader +from ..datasets.readiness import IMAGENET_SYNSET_ORDER, IMAGENET_SYNSETS if TYPE_CHECKING: from ...wrapper import MBLT_Engine @@ -57,6 +58,18 @@ def eval_imagenet_metrics( f"got {dataset_name!r}." ) dataset = CustomImageFolder(data_path) + unknown_synsets = set(dataset.classes) - IMAGENET_SYNSETS + if unknown_synsets: + raise ValueError( + "ImageNet evaluation found non-canonical synset directories: " + f"{', '.join(sorted(unknown_synsets)[:5])}." + ) + dataset.class_to_idx = { + synset: index + for index, synset in enumerate(IMAGENET_SYNSET_ORDER) + if synset in dataset.class_to_idx + } + dataset.make_dataset() dataloader = get_imagenet_loader(dataset, batch_size, model.preprocess) num_data = len(dataset) total_iter = math.ceil(num_data / batch_size) diff --git a/mblt_vision/utils/evaluation/eval_nyu_depth.py b/mblt_vision/utils/evaluation/eval_nyu_depth.py index 6e8caf0..6d0099a 100644 --- a/mblt_vision/utils/evaluation/eval_nyu_depth.py +++ b/mblt_vision/utils/evaluation/eval_nyu_depth.py @@ -61,6 +61,8 @@ def update(self, prediction: np.ndarray, target: np.ndarray) -> None: ) if not np.isfinite(target).all(): raise ValueError("NYU Depth target contains non-finite values.") + if (target < 0).any(): + raise ValueError("NYU Depth target contains negative values.") valid = ( np.isfinite(target) & (target > self.MIN_DEPTH) & (target < self.MAX_DEPTH) ) diff --git a/mblt_vision/utils/postprocess/yolo_anchor_post.py b/mblt_vision/utils/postprocess/yolo_anchor_post.py index 4aac9e7..3848cd4 100644 --- a/mblt_vision/utils/postprocess/yolo_anchor_post.py +++ b/mblt_vision/utils/postprocess/yolo_anchor_post.py @@ -193,7 +193,13 @@ def process_conversion(x: torch.Tensor) -> torch.Tensor: return [process_conversion(xi) for xi in x_list] def _nms_single( - self, xi: torch.Tensor, max_det: int, max_nms: int, max_wh: int + self, + xi: torch.Tensor, + max_det: int, + max_nms: int, + max_wh: int, + *, + multi_label: bool, ) -> torch.Tensor: """Apply anchor-based NMS to a single decoded image tensor.""" mi = 5 + self.nc # mask index @@ -201,13 +207,19 @@ def _nms_single( return xi.new_zeros((0, 6 + self.n_extra)) scores = xi[:, 5:mi] * xi[:, 4:5] - match_index = (scores > self.conf_thres).nonzero(as_tuple=False) - if match_index.numel() == 0: - return xi.new_zeros((0, 6 + self.n_extra)) - - i = match_index[:, 0] - j = match_index[:, 1] - rows = xi[i] + if multi_label: + match_index = (scores > self.conf_thres).nonzero(as_tuple=False) + if match_index.numel() == 0: + return xi.new_zeros((0, 6 + self.n_extra)) + i, j = match_index[:, 0], match_index[:, 1] + rows = xi[i] + row_scores = scores[i, j] + else: + row_scores, j = scores.max(dim=1) + keep = row_scores > self.conf_thres + if not bool(keep.any()): + return xi.new_zeros((0, 6 + self.n_extra)) + rows, row_scores, j = xi[keep], row_scores[keep], j[keep] boxes_xywh = rows[:, :4] out = torch.empty( (rows.shape[0], 6 + self.n_extra), dtype=rows.dtype, device=rows.device @@ -216,7 +228,7 @@ def _nms_single( out[:, 1] = boxes_xywh[:, 1] - boxes_xywh[:, 3] / 2 out[:, 2] = boxes_xywh[:, 0] + boxes_xywh[:, 2] / 2 out[:, 3] = boxes_xywh[:, 1] + boxes_xywh[:, 3] / 2 - out[:, 4] = scores[i, j] + out[:, 4] = row_scores out[:, 5] = j.to(rows.dtype) if self.n_extra > 0: out[:, 6:] = rows[:, mi:] @@ -232,6 +244,7 @@ def nms( max_det: int = 300, max_nms: int = 30000, max_wh: int = 7680, + multi_label: bool = False, ) -> list[torch.Tensor]: """ Perform Non-Maximum Suppression (NMS) on the decoded detections. @@ -247,14 +260,33 @@ def nms( """ if isinstance(x, list): return [ - self._nms_single(xi, max_det=max_det, max_nms=max_nms, max_wh=max_wh) + self._nms_single( + xi, + max_det=max_det, + max_nms=max_nms, + max_wh=max_wh, + multi_label=multi_label, + ) for xi in x ] return [ - self._nms_single(xi, max_det=max_det, max_nms=max_nms, max_wh=max_wh) + self._nms_single( + xi, + max_det=max_det, + max_nms=max_nms, + max_wh=max_wh, + multi_label=multi_label, + ) for xi in x ] + def nms_multilabel( + self, x: torch.Tensor | list[torch.Tensor] + ) -> list[torch.Tensor]: + """Perform Ultralytics-compatible multi-label NMS for validation.""" + + return self.nms(x, multi_label=True) + def make_anchor_grid(self) -> None: """ Pre-calculate the anchor grid for decoding. diff --git a/tests/test_dataloader.py b/tests/test_dataloader.py index cb25ac1..edb6371 100644 --- a/tests/test_dataloader.py +++ b/tests/test_dataloader.py @@ -128,6 +128,20 @@ def test_dense_datasets_reject_duplicate_target_stems( dataset_class(str(tmp_path)) +def test_nyu_dataset_rejects_negative_depth_targets(tmp_path: Path) -> None: + """Do not silently exclude corrupted negative depths during evaluation.""" + + image_dir = tmp_path / "images" + depth_dir = tmp_path / "depth" + image_dir.mkdir() + depth_dir.mkdir() + assert cv2.imwrite(str(image_dir / "sample.jpg"), np.zeros((1, 1, 3), np.uint8)) + np.save(depth_dir / "sample.npy", np.array([[-1]], dtype=np.float32)) + + with pytest.raises(ValueError, match="must not contain negative values"): + CustomNYUDepth(str(tmp_path))[0] + + def test_cityscapes_dataset_rejects_unknown_source_ids(tmp_path: Path) -> None: """Reject corrupted Cityscapes labels instead of remapping them to ignore.""" diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index 8a72e05..5fba268 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -72,7 +72,7 @@ def test_dotav1_organizer_rejects_truncated_raw_annotation_rows( Image.new("RGB", (100, 50)).save(image_path) source_path = tmp_path / "source.txt" source_path.write_text( - "imagesource:GoogleEarth\n" "gsd:0.5\n" "0 0 20 0 20 20 0 plane 0\n", + "imagesource:GoogleEarth\ngsd:0.5\n0 0 20 0 20 20 0 plane 0\n", encoding="utf-8", ) @@ -530,6 +530,7 @@ def _dataset_ready(_: str, task: str, dataset: str) -> bool: return True monkeypatch.setattr(organizer, "dataset_ready", _dataset_ready) + monkeypatch.setattr(organizer, "_validate_staged_payloads", lambda *_: None) output_dir = tmp_path / "imagenet" (output_dir / "stale-class").mkdir(parents=True) @@ -577,6 +578,7 @@ def _dataset_ready(_: str, task: str, dataset: str) -> bool: return True monkeypatch.setattr(organizer, "dataset_ready", _dataset_ready) + monkeypatch.setattr(organizer, "_validate_staged_payloads", lambda *_: None) output_dir = tmp_path / "coco" (output_dir / "val2017").mkdir(parents=True) @@ -612,6 +614,7 @@ def _dataset_ready(_: str, task: str, dataset: str) -> bool: return True monkeypatch.setattr(organizer, "dataset_ready", _dataset_ready) + monkeypatch.setattr(organizer, "_validate_staged_payloads", lambda *_: None) output_dir = tmp_path / "widerface" (output_dir / "images" / "stale-event").mkdir(parents=True) @@ -878,7 +881,11 @@ def _fail_install_and_rollback(source: str, destination: str) -> None: @pytest.mark.parametrize( "depth", - [np.array([[np.nan]], dtype=np.float32), np.array([[1]], dtype=np.complex64)], + [ + np.array([[np.nan]], dtype=np.float32), + np.array([[1]], dtype=np.complex64), + np.array([[-1]], dtype=np.float32), + ], ) def test_staged_nyu_depth_validation_rejects_malformed_payloads( tmp_path: Path, depth: np.ndarray @@ -892,10 +899,38 @@ def test_staged_nyu_depth_validation_rejects_malformed_payloads( Image.new("RGB", (1, 1)).save(image_dir / "sample.png") np.save(depth_dir / "sample.npy", depth) - with pytest.raises(ValueError, match="real numeric dtype|finite values"): + with pytest.raises( + ValueError, match="real numeric dtype|finite values|negative values" + ): organizer._validate_staged_nyu_depth(str(tmp_path)) +@pytest.mark.parametrize("dataset", ["ade20k", "dotav1"]) +def test_staged_payload_validation_rejects_corrupt_files( + tmp_path: Path, dataset: str +) -> None: + """Do not replace a valid cache with structurally complete corrupt data.""" + + image_dir = tmp_path / "images" + image_dir.mkdir() + if dataset == "ade20k": + annotation_dir = tmp_path / "annotations" + annotation_dir.mkdir() + (image_dir / "ADE_val_00000001.jpg").write_bytes(b"not an image") + (annotation_dir / "ADE_val_00000001.png").write_bytes(b"not a PNG") + else: + Image.new("RGB", (1, 1)).save(image_dir / "P0001.png") + label_dir = tmp_path / "labels" / "val" + original_label_dir = tmp_path / "labels" / "val_original" + label_dir.mkdir(parents=True) + original_label_dir.mkdir() + (label_dir / "P0001.txt").write_text("bad label", encoding="utf-8") + (original_label_dir / "P0001.txt").write_text("bad label", encoding="utf-8") + + with pytest.raises(ValueError, match="unreadable|Malformed staged DOTAv1"): + organizer._validate_staged_payloads(tmp_path, dataset) + + def _create_ade20k_source(tmp_path: Path) -> Path: """Create a compact extracted ADE20K validation source.""" @@ -916,6 +951,7 @@ def test_organize_ade20k_extracts_flat_validation_layout( monkeypatch.setattr(organizer, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) monkeypatch.setattr(readiness_module, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setattr(organizer, "_validate_staged_payloads", lambda *_: None) archive_path = tmp_path / "ADEChallengeData2016.zip" with ZipFile(archive_path, "w") as archive: archive.writestr( @@ -1210,6 +1246,7 @@ def test_organize_cityscapes_materializes_lossless_validation_pairs( monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 2) monkeypatch.setattr(organizer, "dataset_ready", lambda *_: True) + monkeypatch.setattr(organizer, "_validate_staged_payloads", lambda *_: None) sample_ids = ["frankfurt_000000_000294", "munster_000001_000019"] image_archive, annotation_archive = _write_cityscapes_archives(tmp_path, sample_ids) output_dir = tmp_path / "cityscapes" @@ -1346,6 +1383,7 @@ def test_organize_cityscapes_rolls_back_failed_atomic_replacement( monkeypatch.setattr(organizer, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 1) monkeypatch.setattr(organizer, "dataset_ready", lambda *_: True) + monkeypatch.setattr(organizer, "_validate_staged_payloads", lambda *_: None) image_archive, annotation_archive = _write_cityscapes_archives( tmp_path, ["lindau_000000_000019"] ) diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index 48069f8..d4d03c3 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -102,6 +102,8 @@ def test_coco_readiness_matches_images_to_task_annotations( "image_id": index, "category_id": 1, "bbox": [0, 0, 1, 1], + "area": 1, + "iscrowd": 0, **( {"segmentation": [[0, 0, 1, 0, 1, 1]]} if task == "instance_segmentation" @@ -155,6 +157,8 @@ def test_coco_readiness_rejects_missing_task_specific_ground_truth( "image_id": 1, "category_id": 1, "bbox": [0, 0, 1, 1], + "area": 1, + "iscrowd": 0, "segmentation": [[0, 0, 1, 0, 1, 1]], "keypoints": [0, 0, 0] * 17, "num_keypoints": 0, @@ -199,6 +203,51 @@ def test_coco_readiness_rejects_noncanonical_category_ids( assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") +@pytest.mark.parametrize( + ("field", "value"), + [ + ("segmentation", [[0, 0, 1, 1, 2, 2]]), + ("area", 0), + ("iscrowd", 2), + ], +) +def test_coco_readiness_rejects_invalid_evaluation_metadata( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + field: str, + value: object, +) -> None: + """Reject metadata that can alter COCO matching or area-range evaluation.""" + + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 1) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) + _write_file(tmp_path / "val2017" / "000000000001.jpg") + annotation = { + "id": 1, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "area": 1, + "iscrowd": 0, + "segmentation": [[0, 0, 1, 0, 1, 1]], + } + annotation[field] = value + (tmp_path / "instances_val2017.json").write_text( + json.dumps( + { + "images": [{"id": 1, "file_name": "000000000001.jpg"}], + "categories": [{"id": 1}], + "annotations": [annotation], + } + ), + encoding="utf-8", + ) + + assert not readiness.dataset_ready(tmp_path, "instance_segmentation", "coco") + + @pytest.mark.parametrize("bbox", [[0, 0, 0, 1], [0, 0, 1, float("nan")]]) def test_coco_readiness_rejects_invalid_instance_box_geometry( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, bbox: list[float] @@ -367,6 +416,32 @@ def _loadmat(path: Path) -> dict[str, np.ndarray]: ) +def test_widerface_readiness_rejects_duplicate_difficulty_indices( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Difficulty masks must identify each eligible face at most once.""" + + face_boxes = np.empty((1, 1), dtype=object) + event_faces = np.empty((1, 1), dtype=object) + event_faces[0, 0] = np.array([[0, 0, 1, 1]], dtype=np.float64) + face_boxes[0, 0] = event_faces + difficulty = np.empty((1, 1), dtype=object) + event_indices = np.empty((1, 1), dtype=object) + event_indices[0, 0] = np.array([1, 1], dtype=np.int64) + difficulty[0, 0] = event_indices + + def _loadmat(path: Path) -> dict[str, np.ndarray]: + if path.name == "wider_face_val.mat": + return {"face_bbx_list": face_boxes} + return {"gt_list": difficulty} + + monkeypatch.setattr(readiness, "loadmat", _loadmat) + + assert not readiness._widerface_difficulty_metadata_ready( + tmp_path, {"0--Parade": {"sample.jpg"}} + ) + + @pytest.mark.parametrize("relative_image_dir", ["images", "images/val"]) def test_dotav1_readiness_requires_complete_image_label_pairs( monkeypatch: pytest.MonkeyPatch, diff --git a/tests/test_eval_imagenet.py b/tests/test_eval_imagenet.py index ed5d3b3..3d532bb 100644 --- a/tests/test_eval_imagenet.py +++ b/tests/test_eval_imagenet.py @@ -19,6 +19,12 @@ def test_imagenet_evaluation_rejects_truncated_classification_batches( """Do not broadcast one classification row across a multi-image label batch.""" class _FakeDataset: + classes = ["n00000000", "n00000001"] + class_to_idx = {"n00000000": 0, "n00000001": 1} + + def make_dataset(self) -> None: + return None + def __len__(self) -> int: return 2 @@ -57,6 +63,12 @@ def postprocess(self, outputs: torch.Tensor) -> SimpleNamespace: eval_imagenet_module, "get_imagenet_loader", lambda *args: [batch] ) monkeypatch.setattr(eval_imagenet_module, "tqdm", _FakeProgress) + monkeypatch.setattr( + eval_imagenet_module, "IMAGENET_SYNSET_ORDER", ("n00000000", "n00000001") + ) + monkeypatch.setattr( + eval_imagenet_module, "IMAGENET_SYNSETS", frozenset({"n00000000", "n00000001"}) + ) with pytest.raises( ValueError, @@ -67,6 +79,45 @@ def postprocess(self, outputs: torch.Tensor) -> SimpleNamespace: ) +def test_imagenet_evaluation_preserves_canonical_synset_indices( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Do not renumber a partial ImageNet directory tree by local sort order.""" + + dataset = SimpleNamespace( + classes=["n00000001"], + class_to_idx={"n00000001": 0}, + make_dataset=lambda: None, + ) + monkeypatch.setattr(eval_imagenet_module, "CustomImageFolder", lambda _: dataset) + monkeypatch.setattr( + eval_imagenet_module, "IMAGENET_SYNSET_ORDER", ("n00000000", "n00000001") + ) + monkeypatch.setattr( + eval_imagenet_module, "IMAGENET_SYNSETS", frozenset({"n00000000", "n00000001"}) + ) + + class _StopAfterClassMapping(Exception): + pass + + def _stop_after_mapping(*args: object) -> object: + del args + raise _StopAfterClassMapping + + monkeypatch.setattr( + eval_imagenet_module, "get_imagenet_loader", _stop_after_mapping + ) + + with pytest.raises(_StopAfterClassMapping): + eval_imagenet_module.eval_imagenet_metrics( + SimpleNamespace(post_cfg={"dataset": "imagenet"}, preprocess=object()), + "/dataset", + batch_size=1, + ) + + assert dataset.class_to_idx == {"n00000001": 1} + + def test_imagenet_evaluation_rejects_wrong_model_taxonomy() -> None: """Do not score another classification taxonomy against ImageNet labels.""" diff --git a/tests/test_eval_nyu_depth.py b/tests/test_eval_nyu_depth.py index 58e7fb0..e635938 100644 --- a/tests/test_eval_nyu_depth.py +++ b/tests/test_eval_nyu_depth.py @@ -49,12 +49,12 @@ def postprocess(self, output: torch.Tensor) -> SimpleNamespace: eval_nyu_depth_module.eval_nyu_depth(_Model(), "/dataset", batch_size=1) -@pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) -def test_nyu_depth_metrics_reject_nonfinite_targets(invalid_value: float) -> None: +@pytest.mark.parametrize("invalid_value", [float("nan"), float("inf"), -1.0]) +def test_nyu_depth_metrics_reject_invalid_targets(invalid_value: float) -> None: """Keep direct metric callers from silently excluding corrupt depth targets.""" target = np.array([[1.0, invalid_value]], dtype=np.float32) - with pytest.raises(ValueError, match="target contains non-finite"): + with pytest.raises(ValueError, match="target contains non-finite|negative values"): eval_nyu_depth_module.calculate_nyu_depth_metrics(np.ones((1, 2)), target) diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index 2b90362..5e671e9 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py @@ -2646,6 +2646,34 @@ def test_anchorless_prediction_nms_keeps_best_class_per_box() -> None: assert torch.equal(result[0][:, 5], torch.tensor([0.0, 1.0])) +def test_anchor_prediction_nms_keeps_best_class_per_box() -> None: + """Keep ordinary anchor-model prediction output single-label per box.""" + + postprocessor = cast( + YOLODetectionPostBase, + build_postprocess( + {"LetterBox": {"img_size": [640, 640]}}, + { + "task": "object_detection", + "anchors": [[10, 13, 16, 30, 33, 23]], + "nl": 1, + "nc": 2, + "conf_thres": 0.25, + "iou_thres": 0.7, + }, + ), + ) + decoded = torch.tensor( + [[50.0, 50.0, 20.0, 20.0, 1.0, 0.9, 0.8]], dtype=torch.float32 + ) + + prediction = postprocessor.nms([decoded]) + validation = postprocessor.nms_multilabel([decoded]) + + assert prediction[0].shape == (1, 6) + assert validation[0].shape == (2, 6) + + @pytest.mark.parametrize( ("layout", "candidate_count"), [ From 14c872459f55174f05125db0f19b172ec766547d Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 17:19:14 +0900 Subject: [PATCH 39/48] fix: harden vision review validation --- mblt_vision/utils/datasets/organizer.py | 92 ++++++++++++++++------- mblt_vision/utils/evaluation/eval_dota.py | 4 +- mblt_vision/utils/postprocess/base.py | 18 +++-- tests/test_dataset_organizer.py | 61 +++++++++++++++ tests/test_eval_dota.py | 9 +++ tests/test_postprocess_hierarchy.py | 10 ++- 6 files changed, 154 insertions(+), 40 deletions(-) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index d6735db..8cbd604 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -238,6 +238,14 @@ def _validate_staged_semantic_masks(staged_root: Path, dataset: str) -> None: raise ValueError( f"Staged ADE20K annotation must be an 8-bit mask with values in [0, 150]: {annotation_path}." ) + if dataset == "cityscapes": + valid_ids = (annotation <= 33) | (annotation == 255) + if not np.all(valid_ids): + invalid_ids = np.unique(annotation[~valid_ids]) + raise ValueError( + "Staged Cityscapes annotation contains unsupported source IDs " + f"{invalid_ids.tolist()}; expected IDs in [0, 33] or 255: {annotation_path}." + ) def _validate_staged_dotav1_labels(staged_root: Path) -> None: @@ -784,7 +792,7 @@ def construct_coco(image_dir: str, annotation_dir: str, output_dir: str) -> None _validate_staged_dataset( staged_output_dir, "coco", - ("object_detection", "pose_estimation"), + ("object_detection", "instance_segmentation", "pose_estimation"), ) _replace_staged_directories( ((staged_output_dir, output_dir),), @@ -960,6 +968,32 @@ def _validate_dense_source_file(source_path: str, dataset_root: Path) -> str: return str(resolved_source) +def _collect_unique_dense_sources( + source_paths: Iterable[str], + dataset_root: Path, + source_description: str, +) -> dict[str, str]: + """Return validated dense sources keyed by unique filename stem. + + Dense organizers flatten source files into a single output directory. Reject + repeated stems up front instead of silently retaining whichever recursive + traversal entry happened to be processed last. + """ + + sources: dict[str, str] = {} + for source_path in sorted(source_paths): + sample_id = Path(source_path).stem + validated_path = _validate_dense_source_file(source_path, dataset_root) + previous_path = sources.get(sample_id) + if previous_path is not None: + raise ValueError( + f"{source_description} contain duplicate filename stem {sample_id!r}: " + f"{previous_path} and {validated_path}." + ) + sources[sample_id] = validated_path + return sources + + def _validate_dense_output_root( output_dir: str, dataset_name: str, @@ -1004,18 +1038,16 @@ def _collect_nyu_depth_validation_files( ) -> tuple[dict[str, str], dict[str, str]]: """Validates and returns matching NYU Depth validation image/depth pairs.""" - images = { - os.path.splitext(os.path.basename(path))[0]: _validate_dense_source_file( - path, dataset_root - ) - for path in _iter_files(image_dir, [".jpg", ".jpeg", ".png"]) - } - depths = { - os.path.splitext(os.path.basename(path))[0]: _validate_dense_source_file( - path, dataset_root - ) - for path in _iter_files(depth_dir, [".npy"]) - } + images = _collect_unique_dense_sources( + _iter_files(image_dir, [".jpg", ".jpeg", ".png"]), + dataset_root, + "NYU Depth images", + ) + depths = _collect_unique_dense_sources( + _iter_files(depth_dir, [".npy"]), + dataset_root, + "NYU Depth depth maps", + ) missing_depths = sorted(set(images) - set(depths)) missing_images = sorted(set(depths) - set(images)) if missing_depths or missing_images: @@ -1209,22 +1241,24 @@ def construct_ade20k(dataset_dir: str, output_dir: str) -> None: raise ValueError( f"Unable to resolve ADE20K dataset root {dataset_root}: {exc}." ) from exc - images = { - os.path.splitext(file_name)[0]: _validate_dense_source_file( - os.path.join(image_dir, file_name), - resolved_dataset_root, - ) - for file_name in os.listdir(image_dir) - if file_name.startswith("ADE_val_") and file_name.lower().endswith(".jpg") - } - annotations = { - os.path.splitext(file_name)[0]: _validate_dense_source_file( - os.path.join(annotation_dir, file_name), - resolved_dataset_root, - ) - for file_name in os.listdir(annotation_dir) - if file_name.startswith("ADE_val_") and file_name.lower().endswith(".png") - } + images = _collect_unique_dense_sources( + ( + os.path.join(image_dir, file_name) + for file_name in os.listdir(image_dir) + if file_name.startswith("ADE_val_") and file_name.lower().endswith(".jpg") + ), + resolved_dataset_root, + "ADE20K images", + ) + annotations = _collect_unique_dense_sources( + ( + os.path.join(annotation_dir, file_name) + for file_name in os.listdir(annotation_dir) + if file_name.startswith("ADE_val_") and file_name.lower().endswith(".png") + ), + resolved_dataset_root, + "ADE20K annotations", + ) if set(images) != set(annotations): raise ValueError( "ADE20K validation images and annotations must have matching file stems." diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 90b2356..2d70b73 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -278,8 +278,8 @@ def _compute_ap( recall: np.ndarray, precision: np.ndarray ) -> tuple[float, np.ndarray, np.ndarray]: """Compute AP from recall and precision curves with Ultralytics interpolation.""" - mrec = np.concatenate(([0.0], recall, [recall[-1] if len(recall) else 1.0], [1.0])) - mpre = np.concatenate(([1.0], precision, [0.0], [0.0])) + mrec = np.concatenate(([0.0], recall, [1.0])) + mpre = np.concatenate(([1.0], precision, [0.0])) mpre = np.flip(np.maximum.accumulate(np.flip(mpre))) grid = np.linspace(0, 1, 101) integrate = getattr(np, "trapezoid", None) diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index 84ae50b..6b07792 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -310,6 +310,7 @@ def extract_final_outputs( normalized_detections: np.ndarray | torch.Tensor | None = None normalized_proto: torch.Tensor | None = None + invalid_proto_error: ValueError | None = None for output in x: if not isinstance(output, (np.ndarray, torch.Tensor)): continue @@ -322,16 +323,19 @@ def extract_final_outputs( if normalized_proto is None: try: normalized_proto = self._normalize_proto_batch(output) - except ValueError: - if ( - normalized_detections is not None - and self.task == "instance_segmentation" - and output.ndim == 4 - ): - raise + except ValueError as exc: + if self.task == "instance_segmentation" and output.ndim == 4: + # Defer this until detections are found so unrelated + # four-dimensional outputs do not prevent raw-head + # decoding. Once this is a decoded segmentation output, + # every candidate prototype must be valid regardless of + # its position in the backend output sequence. + invalid_proto_error = exc continue if normalized_detections is not None: + if invalid_proto_error is not None: + raise invalid_proto_error return self._final_detection_batches( normalized_detections ), normalized_proto diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index 5fba268..d33b23a 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -596,6 +596,7 @@ def _dataset_ready(_: str, task: str, dataset: str) -> bool: } assert readiness_calls == [ ("object_detection", "coco"), + ("instance_segmentation", "coco"), ("pose_estimation", "coco"), ] @@ -829,6 +830,31 @@ def test_construct_nyu_depth_rejects_source_outside_resolved_root( organizer.construct_nyu_depth(str(dataset_dir), str(tmp_path / "organized")) +def test_construct_nyu_depth_rejects_duplicate_nested_source_stems( + tmp_path: Path, +) -> None: + """Do not let recursive NYU source traversal overwrite a flattened sample.""" + + dataset_dir = tmp_path / "source" + for relative_path in ( + "images/first/sample.jpg", + "images/second/sample.png", + "depth/sample.npy", + ): + path = dataset_dir / relative_path + path.parent.mkdir(parents=True, exist_ok=True) + path.write_bytes(b"source") + + with pytest.raises( + ValueError, match="NYU Depth images contain duplicate filename stem" + ): + organizer._collect_nyu_depth_validation_files( + str(dataset_dir / "images"), + str(dataset_dir / "depth"), + dataset_dir.resolve(), + ) + + def test_nyu_depth_install_preserves_backups_when_rollback_fails( monkeypatch: pytest.MonkeyPatch, tmp_path: Path, @@ -931,6 +957,24 @@ def test_staged_payload_validation_rejects_corrupt_files( organizer._validate_staged_payloads(tmp_path, dataset) +def test_staged_cityscapes_payload_validation_rejects_unknown_source_ids( + tmp_path: Path, +) -> None: + """Reject source IDs the Cityscapes loader cannot classify consistently.""" + + image_dir = tmp_path / "images" + annotation_dir = tmp_path / "annotations" + image_dir.mkdir() + annotation_dir.mkdir() + Image.new("RGB", (2, 2)).save(image_dir / "sample.png") + Image.fromarray(np.array([[0, 34], [255, 7]], dtype=np.uint8)).save( + annotation_dir / "sample.png" + ) + + with pytest.raises(ValueError, match="unsupported source IDs.*34"): + organizer._validate_staged_payloads(tmp_path, "cityscapes") + + def _create_ade20k_source(tmp_path: Path) -> Path: """Create a compact extracted ADE20K validation source.""" @@ -1004,6 +1048,23 @@ def test_construct_ade20k_requires_metadata_before_replacing_cache( assert (output_dir / "valid-cache-marker").read_bytes() == b"existing" +def test_construct_ade20k_rejects_duplicate_source_stems( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, +) -> None: + """Reject flat ADE20K source names that would overwrite during staging.""" + + monkeypatch.setattr(organizer, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) + dataset_dir = _create_ade20k_source(tmp_path) + image_path = dataset_dir / "images" / "ADE_val_00000001.jpg" + shutil.copy2(image_path, image_path.with_suffix(".JPG")) + + with pytest.raises( + ValueError, match="ADE20K images contain duplicate filename stem" + ): + organizer.construct_ade20k(str(dataset_dir), str(tmp_path / "organized")) + + @pytest.mark.parametrize( "relative_path", [ diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index 9d5e83d..ca1427e 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -317,3 +317,12 @@ def test_difficult_regions_do_not_count_as_positive_or_false_positive() -> None: baseline = evaluate_dota_predictions(ground_truths, predictions[1:]) assert result == baseline + + +def test_dota_ap_interpolation_uses_terminal_recall_sentinel() -> None: + """Preserve the reference AP curve after the final observed recall point.""" + + ap, _, recall_curve = eval_dota_module._compute_ap(np.array([0.5]), np.array([1.0])) + + assert recall_curve.tolist() == [0.0, 0.5, 1.0] + assert ap == pytest.approx(0.75) diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index 3f422f4..10c2e57 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -221,7 +221,10 @@ def test_already_decoded_obb_uses_width_height_geometry() -> None: assert postprocessor._final_detection_batches(detections)[0].shape == (1, 6) -def test_decoded_segmentation_propagates_invalid_mask_prototypes() -> None: +@pytest.mark.parametrize("prototype_first", [False, True]) +def test_decoded_segmentation_propagates_invalid_mask_prototypes( + prototype_first: bool, +) -> None: """Do not discard malformed required prototype tensors as unrelated outputs.""" postprocessor = cast( @@ -236,11 +239,14 @@ def test_decoded_segmentation_propagates_invalid_mask_prototypes() -> None: [[[0.0, 0.0, 1.0, 1.0, 0.9, 1.0, 0.0, 0.0]]], dtype=torch.float32 ) invalid_proto = torch.full((1, 2, 2, 2), float("nan")) + outputs = ( + [invalid_proto, detections] if prototype_first else [detections, invalid_proto] + ) with pytest.raises( ValueError, match="Mask prototype tensor must contain only finite" ): - postprocessor.extract_final_outputs([detections, invalid_proto]) + postprocessor.extract_final_outputs(outputs) @pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) From 89977abdc499a34998e028d0253ebe2d46473f19 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 17:41:29 +0900 Subject: [PATCH 40/48] fix: validate vision evaluation payloads --- mblt_vision/utils/datasets/readiness.py | 113 ++++++++++++++---- mblt_vision/utils/evaluation/eval_imagenet.py | 6 +- mblt_vision/utils/postprocess/base.py | 8 ++ tests/test_dataset_readiness.py | 51 ++++++++ tests/test_eval_imagenet.py | 42 ++++++- tests/test_postprocess_hierarchy.py | 19 +++ 6 files changed, 215 insertions(+), 24 deletions(-) diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index c47b48d..93e6fbf 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -4,6 +4,7 @@ import hashlib import json +import math import os import re from importlib.resources import files @@ -11,6 +12,7 @@ from typing import Any import numpy as np +from faster_coco_eval import mask as coco_mask from scipy.io import loadmat from scipy.io.matlab import MatReadError @@ -162,6 +164,7 @@ def _load_coco_image_names( return None names: list[str] = [] image_ids: list[int] = [] + image_shapes: dict[int, tuple[int, int] | None] = {} for record in image_records: if not isinstance(record, dict): continue @@ -174,6 +177,18 @@ def _load_coco_image_names( ): names.append(file_name) image_ids.append(image_id) + height, width = record.get("height"), record.get("width") + if ( + isinstance(height, int) + and not isinstance(height, bool) + and height > 0 + and isinstance(width, int) + and not isinstance(width, bool) + and width > 0 + ): + image_shapes[image_id] = (height, width) + else: + image_shapes[image_id] = None if ( len(names) != len(image_records) or len(names) != len(set(names)) @@ -284,28 +299,7 @@ def _load_coco_image_names( ): return None elif isinstance(segmentation, dict): - counts = segmentation.get("counts") - size = segmentation.get("size") - if ( - not isinstance(size, list) - or len(size) != 2 - or any( - not isinstance(value, int) - or isinstance(value, bool) - or value <= 0 - for value in size - ) - or not isinstance(counts, (str, list)) - or ( - isinstance(counts, list) - and any( - not isinstance(value, int) - or isinstance(value, bool) - or value < 0 - for value in counts - ) - ) - ): + if not _valid_coco_rle(segmentation, image_shapes.get(image_id)): return None else: return None @@ -338,6 +332,81 @@ def _load_coco_image_names( return set(names) +def _decode_coco_rle_counts(counts: str) -> list[int] | None: + """Decode COCO's compact RLE run-length string without trusting its payload.""" + + run_counts: list[int] = [] + position = 0 + while position < len(counts): + value = 0 + shift = 0 + more = True + while more: + if position >= len(counts): + return None + code = ord(counts[position]) - 48 + position += 1 + if not 0 <= code <= 0x3F: + return None + value |= (code & 0x1F) << shift + more = bool(code & 0x20) + shift += 5 + if shift > 60: + return None + if not more and code & 0x10: + value |= -1 << shift + if len(run_counts) > 2: + value += run_counts[-2] + if value < 0: + return None + run_counts.append(value) + return run_counts + + +def _valid_coco_rle( + segmentation: dict[str, Any], image_shape: tuple[int, int] | None +) -> bool: + """Validate and decode an RLE mask against its referenced COCO image shape.""" + + counts = segmentation.get("counts") + size = segmentation.get("size") + if ( + image_shape is None + or not isinstance(size, list) + or len(size) != 2 + or any( + not isinstance(value, int) or isinstance(value, bool) or value <= 0 + for value in size + ) + or tuple(size) != image_shape + or not isinstance(counts, (str, list)) + ): + return False + if isinstance(counts, list): + if any( + not isinstance(value, int) or isinstance(value, bool) or value < 0 + for value in counts + ): + return False + run_counts = counts + else: + run_counts = _decode_coco_rle_counts(counts) + if run_counts is None: + return False + if sum(run_counts) != math.prod(size): + return False + try: + encoded = ( + coco_mask.frPyObjects(segmentation, size[0], size[1]) + if isinstance(counts, list) + else segmentation + ) + decoded = np.asarray(coco_mask.decode(encoded)) + except (RuntimeError, TypeError, ValueError): + return False + return decoded.shape == tuple(size) and bool(np.any(decoded)) + + def _coco_ready(root: Path, task: str) -> bool: """Check the complete COCO 2017 image split and task annotation metadata.""" diff --git a/mblt_vision/utils/evaluation/eval_imagenet.py b/mblt_vision/utils/evaluation/eval_imagenet.py index ed23ddf..c0eb716 100644 --- a/mblt_vision/utils/evaluation/eval_imagenet.py +++ b/mblt_vision/utils/evaluation/eval_imagenet.py @@ -70,8 +70,12 @@ def eval_imagenet_metrics( if synset in dataset.class_to_idx } dataset.make_dataset() - dataloader = get_imagenet_loader(dataset, batch_size, model.preprocess) num_data = len(dataset) + if num_data == 0: + raise ValueError( + f"ImageNet evaluation dataset contains no supported images: {data_path}." + ) + dataloader = get_imagenet_loader(dataset, batch_size, model.preprocess) total_iter = math.ceil(num_data / batch_size) pbar = tqdm(dataloader, total=total_iter, desc="Evaluating ImageNet") inference_time = 0.0 diff --git a/mblt_vision/utils/postprocess/base.py b/mblt_vision/utils/postprocess/base.py index 6b07792..4671e15 100644 --- a/mblt_vision/utils/postprocess/base.py +++ b/mblt_vision/utils/postprocess/base.py @@ -336,6 +336,10 @@ def extract_final_outputs( if normalized_detections is not None: if invalid_proto_error is not None: raise invalid_proto_error + if self.task == "instance_segmentation" and normalized_proto is None: + raise ValueError( + "Decoded instance-segmentation outputs require a mask prototype tensor." + ) return self._final_detection_batches( normalized_detections ), normalized_proto @@ -343,6 +347,10 @@ def extract_final_outputs( normalized_x = self._normalize_final_detection_tensor(x, final_det_dim) if normalized_x is not None: + if self.task == "instance_segmentation": + raise ValueError( + "Decoded instance-segmentation outputs require a mask prototype tensor." + ) return self._final_detection_batches(normalized_x), None return None, None diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index d4d03c3..c81a0a7 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -275,6 +275,57 @@ def test_coco_readiness_rejects_invalid_instance_box_geometry( assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") +@pytest.mark.parametrize( + ("counts", "expected_ready"), + [([3, 1], True), ("31", True), ([4], False), ([3], False), ("4", False)], +) +def test_coco_readiness_decodes_and_validates_rle_segmentations( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + counts: list[int] | str, + expected_ready: bool, +) -> None: + """Require nonempty, complete RLE masks with the referenced image geometry.""" + + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 1) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) + _write_file(tmp_path / "val2017" / "000000000001.jpg") + (tmp_path / "instances_val2017.json").write_text( + json.dumps( + { + "images": [ + { + "id": 1, + "file_name": "000000000001.jpg", + "height": 2, + "width": 2, + } + ], + "categories": [{"id": 1}], + "annotations": [ + { + "id": 1, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "area": 1, + "iscrowd": 0, + "segmentation": {"size": [2, 2], "counts": counts}, + } + ], + } + ), + encoding="utf-8", + ) + + assert ( + readiness.dataset_ready(tmp_path, "instance_segmentation", "coco") + is expected_ready + ) + + def test_coco_annotation_identity_digest_rejects_wrong_validation_split( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: diff --git a/tests/test_eval_imagenet.py b/tests/test_eval_imagenet.py index 3d532bb..4520575 100644 --- a/tests/test_eval_imagenet.py +++ b/tests/test_eval_imagenet.py @@ -84,7 +84,11 @@ def test_imagenet_evaluation_preserves_canonical_synset_indices( ) -> None: """Do not renumber a partial ImageNet directory tree by local sort order.""" - dataset = SimpleNamespace( + class _Dataset(SimpleNamespace): + def __len__(self) -> int: + return 1 + + dataset = _Dataset( classes=["n00000001"], class_to_idx={"n00000001": 0}, make_dataset=lambda: None, @@ -118,6 +122,42 @@ def _stop_after_mapping(*args: object) -> object: assert dataset.class_to_idx == {"n00000001": 1} +def test_imagenet_evaluation_rejects_empty_dataset( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Fail before loader construction when no supported samples are available.""" + + class _EmptyDataset: + classes = ["n00000000"] + class_to_idx = {"n00000000": 0} + + def make_dataset(self) -> None: + return None + + def __len__(self) -> int: + return 0 + + monkeypatch.setattr( + eval_imagenet_module, "CustomImageFolder", lambda _: _EmptyDataset() + ) + monkeypatch.setattr(eval_imagenet_module, "IMAGENET_SYNSET_ORDER", ("n00000000",)) + monkeypatch.setattr( + eval_imagenet_module, "IMAGENET_SYNSETS", frozenset({"n00000000"}) + ) + monkeypatch.setattr( + eval_imagenet_module, + "get_imagenet_loader", + lambda *_: pytest.fail("empty datasets must not create an ImageNet loader"), + ) + + with pytest.raises(ValueError, match="contains no supported images"): + eval_imagenet_module.eval_imagenet_metrics( + SimpleNamespace(post_cfg={"dataset": "imagenet"}, preprocess=object()), + "/empty", + batch_size=1, + ) + + def test_imagenet_evaluation_rejects_wrong_model_taxonomy() -> None: """Do not score another classification taxonomy against ImageNet labels.""" diff --git a/tests/test_postprocess_hierarchy.py b/tests/test_postprocess_hierarchy.py index 10c2e57..a03d490 100644 --- a/tests/test_postprocess_hierarchy.py +++ b/tests/test_postprocess_hierarchy.py @@ -249,6 +249,25 @@ def test_decoded_segmentation_propagates_invalid_mask_prototypes( postprocessor.extract_final_outputs(outputs) +def test_decoded_segmentation_requires_mask_prototypes() -> None: + """Reject decoded segmentation artifacts that cannot produce instance masks.""" + + postprocessor = cast( + Any, YOLOAnchorlessDetectionPost.__new__(YOLOAnchorlessDetectionPost) + ) + postprocessor.device = torch.device("cpu") + postprocessor.conf_thres = 0.25 + postprocessor.nc = 2 + postprocessor.n_extra = 2 + postprocessor.task = "instance_segmentation" + detections = torch.tensor( + [[[0.0, 0.0, 1.0, 1.0, 0.9, 1.0, 0.0, 0.0]]], dtype=torch.float32 + ) + + with pytest.raises(ValueError, match="require a mask prototype tensor"): + postprocessor.extract_final_outputs([detections]) + + @pytest.mark.parametrize("invalid_value", [float("nan"), float("inf")]) def test_detection_postprocessor_rejects_nonfinite_raw_heads( invalid_value: float, From c150f2f28145e89b0c4c5cf917abece38da169a7 Mon Sep 17 00:00:00 2001 From: jinman Date: Fri, 14 Aug 2026 18:25:07 +0900 Subject: [PATCH 41/48] fix: harden vision dataset evaluation --- mblt_vision/utils/datasets/dataloader.py | 8 ++ mblt_vision/utils/datasets/organizer.py | 78 ++++++++++++++++++- mblt_vision/utils/evaluation/eval_coco.py | 25 ++++++ .../utils/evaluation/eval_widerface.py | 14 ++++ tests/test_dataloader.py | 25 ++++++ tests/test_dataset_organizer.py | 53 ++++++++++++- tests/test_eval_coco.py | 18 ++++- tests/test_eval_widerface.py | 34 ++++++++ 8 files changed, 250 insertions(+), 5 deletions(-) diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index 034b06a..3bdfa1b 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -390,6 +390,10 @@ def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: target = np.full(annotation.shape, 255, dtype=np.uint8) valid = annotation > 0 target[valid] = annotation[valid] - 1 + if not valid.any(): + raise ValueError( + f"ADE20K annotation contains no evaluable class IDs: {annotation_path}" + ) return cv2.cvtColor(image, cv2.COLOR_BGR2RGB), target, stem def __len__(self) -> int: @@ -552,6 +556,10 @@ def __getitem__(self, index: int) -> tuple[np.ndarray, np.ndarray, str]: f"{unknown_ids.tolist()}: {annotation_path}" ) target = CITYSCAPES_SOURCE_TO_TRAIN_ID[annotation.astype(np.uint8)] + if not (target != 255).any(): + raise ValueError( + f"Cityscapes annotation contains no evaluable class IDs: {annotation_path}" + ) return cv2.cvtColor(image, cv2.COLOR_BGR2RGB), target, stem def __len__(self) -> int: diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 8cbd604..9eac44d 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -7,6 +7,7 @@ import concurrent.futures import cv2 import hashlib +import json import math import os import re @@ -30,6 +31,7 @@ from tqdm import tqdm from ...datasets import get_dataset_config +from .cityscapes import CITYSCAPES_SOURCE_TO_TRAIN_ID from .readiness import ( ADE20K_METADATA_FILES, ADE20K_VALIDATION_SAMPLE_COUNT, @@ -163,7 +165,6 @@ def _validate_staged_payloads(staged_root: Path, dataset: str) -> None: image_roots = { "imagenet": (staged_root,), - "coco": (staged_root / "val2017",), "widerface": (staged_root / "images",), "dotav1": (staged_root / "images",), "ade20k": (staged_root / "images",), @@ -185,12 +186,72 @@ def _validate_staged_payloads(staged_root: Path, dataset: str) -> None: f"Staged {dataset} image is unreadable: {image_path}." ) - if dataset in {"ade20k", "cityscapes"}: + if dataset == "coco": + _validate_staged_coco_image_geometry(staged_root) + elif dataset in {"ade20k", "cityscapes"}: _validate_staged_semantic_masks(staged_root, dataset) elif dataset == "dotav1": _validate_staged_dotav1_labels(staged_root) +def _validate_staged_coco_image_geometry(staged_root: Path) -> None: + """Compare every staged COCO image with its JSON-declared geometry.""" + + image_root = staged_root / "val2017" + decoded_shapes: dict[str, tuple[int, int]] = {} + for annotation_path in sorted(staged_root.glob("*_val2017.json")): + try: + annotation = json.loads(annotation_path.read_text(encoding="utf-8")) + image_records = annotation["images"] + except (json.JSONDecodeError, KeyError, OSError, TypeError) as exc: + raise ValueError( + f"Staged COCO annotation is unreadable: {annotation_path}." + ) from exc + if not isinstance(image_records, list): + raise ValueError( + f"Staged COCO annotation has an invalid images table: {annotation_path}." + ) + for record in image_records: + if not isinstance(record, dict): + raise ValueError( + f"Staged COCO annotation has an invalid image record: {annotation_path}." + ) + file_name, height, width = ( + record.get("file_name"), + record.get("height"), + record.get("width"), + ) + if ( + not isinstance(file_name, str) + or not file_name + or Path(file_name).is_absolute() + or ".." in Path(file_name).parts + or not isinstance(height, int) + or isinstance(height, bool) + or not isinstance(width, int) + or isinstance(width, bool) + or height <= 0 + or width <= 0 + ): + raise ValueError( + f"Staged COCO image metadata is invalid: {annotation_path}." + ) + image_shape = decoded_shapes.get(file_name) + if image_shape is None: + image = cv2.imread(str(image_root / file_name), cv2.IMREAD_COLOR) + if image is None: + raise ValueError( + f"Staged COCO image is unreadable: {image_root / file_name}." + ) + image_shape = (int(image.shape[0]), int(image.shape[1])) + decoded_shapes[file_name] = image_shape + if image_shape != (height, width): + raise ValueError( + "Staged COCO image geometry does not match annotation metadata for " + f"{file_name}: image {image_shape}, annotation {(height, width)}." + ) + + def _validate_staged_semantic_masks(staged_root: Path, dataset: str) -> None: """Validate decoded semantic targets against their paired staged images.""" @@ -246,6 +307,17 @@ def _validate_staged_semantic_masks(staged_root: Path, dataset: str) -> None: "Staged Cityscapes annotation contains unsupported source IDs " f"{invalid_ids.tolist()}; expected IDs in [0, 33] or 255: {annotation_path}." ) + has_evaluable_class = bool( + ( + CITYSCAPES_SOURCE_TO_TRAIN_ID[annotation.astype(np.uint8)] != 255 + ).any() + ) + else: + has_evaluable_class = bool((annotation > 0).any()) + if not has_evaluable_class: + raise ValueError( + f"Staged {dataset} annotation contains no evaluable class IDs: {annotation_path}." + ) def _validate_staged_dotav1_labels(staged_root: Path) -> None: @@ -1322,7 +1394,7 @@ def organize_ade20k( ) -> None: """Organizes ADE20K validation data, downloading and unpacking when necessary.""" - output_dir = _resolve_organizer_output_dir(output_dir, "ADEChallengeData2016") + output_dir = _resolve_organizer_output_dir(output_dir, "ade20k") output_dir = _validate_dense_output_root( output_dir, "ADE20K", ("images", "annotations") ) diff --git a/mblt_vision/utils/evaluation/eval_coco.py b/mblt_vision/utils/evaluation/eval_coco.py index 8ff9b75..84e3067 100644 --- a/mblt_vision/utils/evaluation/eval_coco.py +++ b/mblt_vision/utils/evaluation/eval_coco.py @@ -12,6 +12,7 @@ from tqdm import tqdm from ..._tasks import normalize_vision_task +from ...datasets import get_dataset_category_ids from ..datasets import CustomCOCODataset, get_coco_loader if TYPE_CHECKING: @@ -54,6 +55,29 @@ def _require_batch_cardinality(expected: int, **values: Any) -> None: ) +def _validate_coco_dataset_taxonomy(dataset: CustomCOCODataset, task: str) -> None: + """Ensure direct COCO evaluation uses only task-compatible category IDs.""" + + categories = getattr(dataset.coco, "cats", None) + if not isinstance(categories, dict) or not categories: + raise ValueError("COCO evaluation dataset must define at least one category.") + category_ids = set(categories) + if any( + not isinstance(category_id, int) or isinstance(category_id, bool) + for category_id in category_ids + ): + raise ValueError("COCO evaluation dataset contains invalid category IDs.") + expected_ids = ( + {1} if task == "pose_estimation" else set(get_dataset_category_ids("coco")) + ) + unsupported_ids = category_ids - expected_ids + if unsupported_ids: + raise ValueError( + "COCO evaluation dataset contains unsupported category IDs: " + f"{sorted(unsupported_ids)}." + ) + + def format_coco_results( task: str, nms_outs: Results, @@ -233,6 +257,7 @@ def eval_coco_metrics( os.path.join(data_path, "val2017"), os.path.join(data_path, "person_keypoints_val2017.json"), ) + _validate_coco_dataset_taxonomy(dataset, task) dataloader = get_coco_loader(dataset, batch_size, model.preprocess_with_metadata) model.set_postprocess_thresholds(conf_thres=conf_thres, iou_thres=iou_thres) diff --git a/mblt_vision/utils/evaluation/eval_widerface.py b/mblt_vision/utils/evaluation/eval_widerface.py index c6b33ed..646d07e 100644 --- a/mblt_vision/utils/evaluation/eval_widerface.py +++ b/mblt_vision/utils/evaluation/eval_widerface.py @@ -4,6 +4,7 @@ import math import os +from pathlib import Path from time import time from typing import TYPE_CHECKING, Any, NamedTuple, cast @@ -13,6 +14,10 @@ from tqdm import tqdm from ..datasets import CustomWiderFaceDataset, get_widerface_loader +from ..datasets.readiness import ( + _load_widerface_image_names, + _widerface_difficulty_metadata_ready, +) if TYPE_CHECKING: from ...wrapper import MBLT_Engine @@ -110,6 +115,15 @@ def eval_widerface( f"got {dataset_name!r}." ) + dataset_root = Path(data_path) + expected_images = _load_widerface_image_names(dataset_root / "wider_face_val.mat") + if expected_images is None or not _widerface_difficulty_metadata_ready( + dataset_root, expected_images + ): + raise ValueError( + "WiderFace evaluation metadata is malformed or has inconsistent difficulty indices." + ) + dataset = CustomWiderface(os.path.join(data_path, "images")) dataloader = get_widerface_loader( dataset, batch_size, model.preprocess_with_metadata diff --git a/tests/test_dataloader.py b/tests/test_dataloader.py index edb6371..6ca39c8 100644 --- a/tests/test_dataloader.py +++ b/tests/test_dataloader.py @@ -102,6 +102,31 @@ def test_dota_dataset_rejects_duplicate_image_stems(tmp_path: Path) -> None: CustomDOTAv1(str(tmp_path)) +@pytest.mark.parametrize( + ("dataset_class", "source_id"), + [(CustomADE20K, 0), (CustomCityscapes, 255)], +) +def test_dense_semantic_datasets_reject_all_ignored_targets( + tmp_path: Path, + dataset_class: type[CustomADE20K] | type[CustomCityscapes], + source_id: int, +) -> None: + """Reject direct semantic evaluation samples that contain no valid labels.""" + + image_dir = tmp_path / "images" + annotation_dir = tmp_path / "annotations" + image_dir.mkdir() + annotation_dir.mkdir() + Image.new("RGB", (2, 2)).save(image_dir / "sample.png") + Image.fromarray(np.full((2, 2), source_id, dtype=np.uint8)).save( + annotation_dir / "sample.png" + ) + dataset = dataset_class(str(tmp_path)) + + with pytest.raises(ValueError, match="contains no evaluable class IDs"): + dataset[0] + + @pytest.mark.parametrize( ("dataset_class", "target_dir", "target_names"), [ diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index d33b23a..f856c3b 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -5,6 +5,7 @@ import hashlib import io import inspect +import json import os import shutil import tarfile @@ -92,7 +93,7 @@ def test_dotav1_organizer_rejects_truncated_raw_annotation_rows( (organizer.organize_coco, "coco"), (organizer.organize_widerface, "widerface"), (organizer.organize_nyu_depth, "nyu-depth"), - (organizer.organize_ade20k, "ADEChallengeData2016"), + (organizer.organize_ade20k, "ade20k"), (organizer.organize_cityscapes, "cityscapes"), (organizer.organize_dotav1, "dotav1"), ], @@ -975,6 +976,56 @@ def test_staged_cityscapes_payload_validation_rejects_unknown_source_ids( organizer._validate_staged_payloads(tmp_path, "cityscapes") +@pytest.mark.parametrize( + ("dataset", "source_id"), + [("ade20k", 0), ("cityscapes", 255)], +) +def test_staged_semantic_payload_validation_rejects_all_ignored_targets( + tmp_path: Path, dataset: str, source_id: int +) -> None: + """Do not install semantic masks that cannot contribute to validation metrics.""" + + image_dir = tmp_path / "images" + annotation_dir = tmp_path / "annotations" + image_dir.mkdir() + annotation_dir.mkdir() + Image.new("RGB", (2, 2)).save(image_dir / "sample.png") + Image.fromarray(np.full((2, 2), source_id, dtype=np.uint8)).save( + annotation_dir / "sample.png" + ) + + with pytest.raises(ValueError, match="contains no evaluable class IDs"): + organizer._validate_staged_payloads(tmp_path, dataset) + + +def test_staged_coco_payload_validation_rejects_annotation_geometry_mismatch( + tmp_path: Path, +) -> None: + """Preserve a usable cache when JSON dimensions differ from staged image bytes.""" + + image_dir = tmp_path / "val2017" + image_dir.mkdir() + Image.new("RGB", (2, 1)).save(image_dir / "000000000001.jpg") + (tmp_path / "instances_val2017.json").write_text( + json.dumps( + { + "images": [ + { + "id": 1, + "file_name": "000000000001.jpg", + "height": 2, + "width": 1, + } + ] + } + ), + encoding="utf-8", + ) + + with pytest.raises(ValueError, match="geometry does not match"): + organizer._validate_staged_payloads(tmp_path, "coco") + + def _create_ade20k_source(tmp_path: Path) -> Path: """Create a compact extracted ADE20K validation source.""" diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py index db25e74..9e39909 100644 --- a/tests/test_eval_coco.py +++ b/tests/test_eval_coco.py @@ -25,7 +25,7 @@ def __init__(self, root: str, annotation_path: str, **kwargs: Any) -> None: root=root, annotation_path=annotation_path, **kwargs ) self.ids = [1, 2] - self.coco = object() + self.coco = SimpleNamespace(cats={1: {}}) def __len__(self) -> int: return len(self.ids) @@ -76,6 +76,22 @@ def test_coco_evaluation_rejects_non_coco_model_taxonomy() -> None: eval_coco_module.eval_coco_metrics(model, "/dataset", batch_size=1) +def test_coco_evaluation_rejects_noncanonical_artifact_categories( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Do not score direct COCO artifacts with an incompatible category taxonomy.""" + + dataset = SimpleNamespace(coco=SimpleNamespace(cats={999: {}})) + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) + + with pytest.raises(ValueError, match=r"unsupported category IDs: \[999\]"): + eval_coco_module.eval_coco_metrics( + SimpleNamespace(post_cfg={"task": "object_detection", "dataset": "coco"}), + "/dataset", + batch_size=1, + ) + + def test_coco_result_formatter_rejects_truncated_postprocess_batch() -> None: """Require one decoded result for every submitted COCO image.""" diff --git a/tests/test_eval_widerface.py b/tests/test_eval_widerface.py index 1c897cb..4cda20c 100644 --- a/tests/test_eval_widerface.py +++ b/tests/test_eval_widerface.py @@ -75,6 +75,14 @@ def postprocess(self, outputs: torch.Tensor) -> SimpleNamespace: ("first.jpg", "second.jpg"), ) monkeypatch.setattr(eval_widerface_module, "CustomWiderface", lambda _: _Dataset()) + monkeypatch.setattr( + eval_widerface_module, + "_load_widerface_image_names", + lambda _: {"event": {"first.jpg", "second.jpg"}}, + ) + monkeypatch.setattr( + eval_widerface_module, "_widerface_difficulty_metadata_ready", lambda *_: True + ) monkeypatch.setattr( eval_widerface_module, "get_widerface_loader", lambda *_: [batch] ) @@ -82,3 +90,29 @@ def postprocess(self, outputs: torch.Tensor) -> SimpleNamespace: with pytest.raises(ValueError, match="WiderFace evaluation batch length mismatch"): eval_widerface_module.eval_widerface(_Model(), "/dataset", batch_size=2) + + +def test_widerface_evaluation_rejects_malformed_difficulty_metadata( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Validate metadata before direct evaluation constructs a dataset or loader.""" + + model = SimpleNamespace(post_cfg={"task": "face_detection", "dataset": "widerface"}) + monkeypatch.setattr( + eval_widerface_module, + "_load_widerface_image_names", + lambda _: {"0--Parade": {"sample.jpg"}}, + ) + monkeypatch.setattr( + eval_widerface_module, "_widerface_difficulty_metadata_ready", lambda *_: False + ) + monkeypatch.setattr( + eval_widerface_module, + "CustomWiderface", + lambda _: pytest.fail( + "invalid metadata must not construct a WiderFace dataset" + ), + ) + + with pytest.raises(ValueError, match="metadata is malformed"): + eval_widerface_module.eval_widerface(model, "/dataset", batch_size=1) From a58723d2d047b53e9953b83f2af85d72570369c0 Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 18 Aug 2026 09:25:16 +0900 Subject: [PATCH 42/48] fix: validate vision evaluation boundaries --- mblt_vision/compile/vision.py | 20 ++++++++-- mblt_vision/utils/datasets/organizer.py | 5 +++ mblt_vision/utils/datasets/readiness.py | 6 +++ mblt_vision/utils/evaluation/eval_coco.py | 18 +++++++++ mblt_vision/utils/evaluation/eval_dota.py | 31 +++++++++++++++- .../utils/evaluation/eval_widerface.py | 9 +++++ tests/test_compile_vision.py | 22 +++++++++++ tests/test_dataset_organizer.py | 5 ++- tests/test_dataset_readiness.py | 26 +++++++++++++ tests/test_eval_coco.py | 22 ++++++++++- tests/test_eval_dota.py | 37 +++++++++++++++++++ tests/test_eval_widerface.py | 28 ++++++++++++++ 12 files changed, 221 insertions(+), 8 deletions(-) diff --git a/mblt_vision/compile/vision.py b/mblt_vision/compile/vision.py index ef781fb..0b9c019 100644 --- a/mblt_vision/compile/vision.py +++ b/mblt_vision/compile/vision.py @@ -208,9 +208,11 @@ def ensure_calibration_dataset( normalized_task = _normalize_task(task) config = get_dataset_config_for_task(normalized_task, dataset) dataset_name = str(config["name"]) - resolved_path = Path( - data_path if data_path is not None else config["path"] - ).expanduser() + resolved_path = ( + Path(data_path).expanduser() + if data_path is not None + else _resolve_default_dataset_path(config["path"]) + ) if not _dataset_ready(normalized_task, resolved_path, dataset_name): _organize_dataset(normalized_task, resolved_path, dataset) if not _dataset_ready(normalized_task, resolved_path, dataset_name): @@ -221,6 +223,18 @@ def ensure_calibration_dataset( return resolved_path +def _resolve_default_dataset_path(configured_path: str | Path) -> Path: + """Translate registry cache paths to the active writable artifact cache.""" + + path = Path(configured_path).expanduser() + default_cache_root = Path.home() / ".mblt_model_zoo" + try: + relative_path = path.relative_to(default_cache_root) + except ValueError: + return path + return Path(get_mobilint_cache_dir()) / relative_path + + def _validate_subset_size(subset_size: int) -> None: """Validate a requested calibration subset size. diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 9eac44d..26556be 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -1242,6 +1242,11 @@ def _validate_staged_nyu_depth(staging_dir: str) -> None: raise ValueError( f"Staged NYU Depth target must not contain negative values: {depth_path}." ) + if not bool(((depth > 0.001) & (depth < 100.0)).any()): + raise ValueError( + "Staged NYU Depth target must contain at least one valid metric depth " + f"in the (0.001, 100.0) range: {depth_path}." + ) def organize_nyu_depth( diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index 93e6fbf..0185942 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -545,6 +545,12 @@ def _widerface_difficulty_metadata_ready( keep_indices = np.asarray(event_indices[image_index][0]) except (IndexError, TypeError): return False + if keep_indices.ndim == 0: + keep_indices = keep_indices.reshape(1) + elif keep_indices.ndim == 2 and keep_indices.shape[1] == 1: + keep_indices = keep_indices[:, 0] + elif keep_indices.ndim != 1: + return False try: valid_indices = ( np.isfinite(keep_indices).all() diff --git a/mblt_vision/utils/evaluation/eval_coco.py b/mblt_vision/utils/evaluation/eval_coco.py index 84e3067..8726f67 100644 --- a/mblt_vision/utils/evaluation/eval_coco.py +++ b/mblt_vision/utils/evaluation/eval_coco.py @@ -76,6 +76,24 @@ def _validate_coco_dataset_taxonomy(dataset: CustomCOCODataset, task: str) -> No "COCO evaluation dataset contains unsupported category IDs: " f"{sorted(unsupported_ids)}." ) + annotations = getattr(dataset.coco, "anns", None) + if not isinstance(annotations, dict): + raise ValueError("COCO evaluation dataset must define an annotation table.") + for annotation_id, annotation in annotations.items(): + if not isinstance(annotation, dict): + raise ValueError( + f"COCO evaluation dataset has an invalid annotation {annotation_id!r}." + ) + category_id = annotation.get("category_id") + if ( + not isinstance(category_id, int) + or isinstance(category_id, bool) + or category_id not in category_ids + ): + raise ValueError( + "COCO evaluation annotation references an undeclared or unsupported " + f"category ID {category_id!r}: annotation {annotation_id!r}." + ) def format_coco_results( diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 2d70b73..019351e 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -256,11 +256,38 @@ def format_dota_results( ratio_pad=ratio_pad, include_xywhr=True, ) + outer_lengths = { + "image IDs": len(image_ids), + "labels": len(labels_list), + "polygons": len(polygons_list), + "scores": len(scores_list), + "rotated boxes": len(xywhr_list), + } + if len(set(outer_lengths.values())) != 1: + details = ", ".join( + f"{name}={length}" for name, length in outer_lengths.items() + ) + raise ValueError(f"DOTAv1 export batch length mismatch: {details}.") results = [] for image_id, labels, polygons, scores, xywhrs in zip( - image_ids, labels_list, polygons_list, scores_list, xywhr_list + image_ids, labels_list, polygons_list, scores_list, xywhr_list, strict=True ): - for label, polygon, score, xywhr in zip(labels, polygons, scores, xywhrs): + detection_lengths = { + "labels": len(labels), + "polygons": len(polygons), + "scores": len(scores), + "rotated boxes": len(xywhrs), + } + if len(set(detection_lengths.values())) != 1: + details = ", ".join( + f"{name}={length}" for name, length in detection_lengths.items() + ) + raise ValueError( + f"DOTAv1 export detection length mismatch for {image_id}: {details}." + ) + for label, polygon, score, xywhr in zip( + labels, polygons, scores, xywhrs, strict=True + ): results.append( { "image_id": image_id, diff --git a/mblt_vision/utils/evaluation/eval_widerface.py b/mblt_vision/utils/evaluation/eval_widerface.py index 646d07e..757dce1 100644 --- a/mblt_vision/utils/evaluation/eval_widerface.py +++ b/mblt_vision/utils/evaluation/eval_widerface.py @@ -125,6 +125,15 @@ def eval_widerface( ) dataset = CustomWiderface(os.path.join(data_path, "images")) + actual_images: dict[str, set[str]] = {} + for _, event_name, file_name in dataset.samples: + actual_images.setdefault(event_name, set()).add(file_name) + if actual_images != expected_images or sum( + len(file_names) for file_names in actual_images.values() + ) != len(dataset.samples): + raise ValueError( + "WiderFace image tree does not match the validation metadata identities." + ) dataloader = get_widerface_loader( dataset, batch_size, model.preprocess_with_metadata ) diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py index db7a597..4c0c7a2 100644 --- a/tests/test_compile_vision.py +++ b/tests/test_compile_vision.py @@ -102,6 +102,28 @@ def test_obb_selects_calibration_images(tmp_path: Path) -> None: assert set(select_calibration_images("obb", tmp_path, subset_size=2)) == set(images) +def test_calibration_default_dataset_path_uses_resolved_cache_root( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Keep implicit compilation datasets alongside the active artifact cache.""" + + configured_path = Path.home() / ".mblt_model_zoo" / "datasets" / "coco" + fallback_cache = tmp_path / "cache" + monkeypatch.setattr( + compile_module, + "get_dataset_config_for_task", + lambda *_: {"name": "coco", "path": str(configured_path)}, + ) + monkeypatch.setattr( + compile_module, "get_mobilint_cache_dir", lambda: str(fallback_cache) + ) + monkeypatch.setattr(compile_module, "_dataset_ready", lambda *_: True) + + assert compile_module.ensure_calibration_dataset("object_detection") == ( + fallback_cache / "datasets" / "coco" + ) + + @pytest.mark.parametrize( ("task", "relative_dir"), [ diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index f856c3b..06f5c53 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -912,6 +912,8 @@ def _fail_install_and_rollback(source: str, destination: str) -> None: np.array([[np.nan]], dtype=np.float32), np.array([[1]], dtype=np.complex64), np.array([[-1]], dtype=np.float32), + np.array([[0]], dtype=np.float32), + np.array([[100]], dtype=np.float32), ], ) def test_staged_nyu_depth_validation_rejects_malformed_payloads( @@ -927,7 +929,8 @@ def test_staged_nyu_depth_validation_rejects_malformed_payloads( np.save(depth_dir / "sample.npy", depth) with pytest.raises( - ValueError, match="real numeric dtype|finite values|negative values" + ValueError, + match="real numeric dtype|finite values|negative values|valid metric depth", ): organizer._validate_staged_nyu_depth(str(tmp_path)) diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index c81a0a7..f6db87f 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -493,6 +493,32 @@ def _loadmat(path: Path) -> dict[str, np.ndarray]: ) +def test_widerface_readiness_rejects_row_vector_difficulty_indices( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Reject row vectors that the evaluator would count as one eligible face.""" + + face_boxes = np.empty((1, 1), dtype=object) + event_faces = np.empty((1, 1), dtype=object) + event_faces[0, 0] = np.array([[0, 0, 1, 1], [1, 1, 1, 1]], dtype=np.float64) + face_boxes[0, 0] = event_faces + difficulty = np.empty((1, 1), dtype=object) + event_indices = np.empty((1, 1), dtype=object) + event_indices[0, 0] = np.array([[1, 2]], dtype=np.int64) + difficulty[0, 0] = event_indices + + def _loadmat(path: Path) -> dict[str, np.ndarray]: + if path.name == "wider_face_val.mat": + return {"face_bbx_list": face_boxes} + return {"gt_list": difficulty} + + monkeypatch.setattr(readiness, "loadmat", _loadmat) + + assert not readiness._widerface_difficulty_metadata_ready( + tmp_path, {"0--Parade": {"sample.jpg"}} + ) + + @pytest.mark.parametrize("relative_image_dir", ["images", "images/val"]) def test_dotav1_readiness_requires_complete_image_label_pairs( monkeypatch: pytest.MonkeyPatch, diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py index 9e39909..ec3aa12 100644 --- a/tests/test_eval_coco.py +++ b/tests/test_eval_coco.py @@ -25,7 +25,7 @@ def __init__(self, root: str, annotation_path: str, **kwargs: Any) -> None: root=root, annotation_path=annotation_path, **kwargs ) self.ids = [1, 2] - self.coco = SimpleNamespace(cats={1: {}}) + self.coco = SimpleNamespace(cats={1: {}}, anns={}) def __len__(self) -> int: return len(self.ids) @@ -81,7 +81,7 @@ def test_coco_evaluation_rejects_noncanonical_artifact_categories( ) -> None: """Do not score direct COCO artifacts with an incompatible category taxonomy.""" - dataset = SimpleNamespace(coco=SimpleNamespace(cats={999: {}})) + dataset = SimpleNamespace(coco=SimpleNamespace(cats={999: {}}, anns={})) monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) with pytest.raises(ValueError, match=r"unsupported category IDs: \[999\]"): @@ -92,6 +92,24 @@ def test_coco_evaluation_rejects_noncanonical_artifact_categories( ) +def test_coco_evaluation_rejects_undeclared_annotation_categories( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Do not let malformed annotation categories be omitted from direct AP.""" + + dataset = SimpleNamespace( + coco=SimpleNamespace(cats={1: {}}, anns={7: {"category_id": 999}}) + ) + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) + + with pytest.raises(ValueError, match="undeclared or unsupported"): + eval_coco_module.eval_coco_metrics( + SimpleNamespace(post_cfg={"task": "object_detection", "dataset": "coco"}), + "/dataset", + batch_size=1, + ) + + def test_coco_result_formatter_rejects_truncated_postprocess_batch() -> None: """Require one decoded result for every submitted COCO image.""" diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index ca1427e..c0725ff 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -14,6 +14,7 @@ from mblt_vision.utils.evaluation.eval_dota import ( _load_ground_truths, evaluate_dota_predictions, + format_dota_results, ) eval_dota_module = importlib.import_module("mblt_vision.utils.evaluation.eval_dota") @@ -326,3 +327,39 @@ def test_dota_ap_interpolation_uses_terminal_recall_sentinel() -> None: assert recall_curve.tolist() == [0.0, 0.5, 1.0] assert ap == pytest.approx(0.75) + + +def test_dota_export_rejects_truncated_converted_batches() -> None: + """Do not silently omit Task1 files when converted output batches are short.""" + + postprocess = SimpleNamespace( + nmsout2eval=lambda *_args, **_kwargs: ([[]], [[]], [[]], [[]]) + ) + + with pytest.raises(ValueError, match="export batch length mismatch"): + format_dota_results( + SimpleNamespace(output=[]), + (640, 640), + [(640, 640), (640, 640)], + [None, None], + ("first", "second"), + postprocess, + ) + + +def test_dota_export_rejects_mismatched_detection_fields() -> None: + """Require a polygon, score, and rotated box for every exported label.""" + + postprocess = SimpleNamespace( + nmsout2eval=lambda *_args, **_kwargs: ([["plane"]], [[]], [[0.9]], [[]]) + ) + + with pytest.raises(ValueError, match="export detection length mismatch"): + format_dota_results( + SimpleNamespace(output=[]), + (640, 640), + [(640, 640)], + [None], + ("first",), + postprocess, + ) diff --git a/tests/test_eval_widerface.py b/tests/test_eval_widerface.py index 4cda20c..1425671 100644 --- a/tests/test_eval_widerface.py +++ b/tests/test_eval_widerface.py @@ -116,3 +116,31 @@ def test_widerface_evaluation_rejects_malformed_difficulty_metadata( with pytest.raises(ValueError, match="metadata is malformed"): eval_widerface_module.eval_widerface(model, "/dataset", batch_size=1) + + +def test_widerface_evaluation_rejects_image_tree_mismatching_metadata( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Require exact event and filename identities before direct inference.""" + + class _Dataset: + samples = [("unused", "0--Parade", "sample.png")] + + model = SimpleNamespace(post_cfg={"task": "face_detection", "dataset": "widerface"}) + monkeypatch.setattr( + eval_widerface_module, + "_load_widerface_image_names", + lambda _: {"0--Parade": {"sample.jpg"}}, + ) + monkeypatch.setattr( + eval_widerface_module, "_widerface_difficulty_metadata_ready", lambda *_: True + ) + monkeypatch.setattr(eval_widerface_module, "CustomWiderface", lambda _: _Dataset()) + monkeypatch.setattr( + eval_widerface_module, + "get_widerface_loader", + lambda *_: pytest.fail("mismatched image trees must not create a loader"), + ) + + with pytest.raises(ValueError, match="does not match the validation metadata"): + eval_widerface_module.eval_widerface(model, "/dataset", batch_size=1) From 2ce00fb25c7c0b3bf37fe8516c2460ee8eb2df3c Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 18 Aug 2026 09:39:56 +0900 Subject: [PATCH 43/48] fix: validate direct vision evaluation --- mblt_vision/utils/datasets/readiness.py | 102 +++++++++++++--------- mblt_vision/utils/evaluation/eval_coco.py | 44 +++++++--- tests/test_dataset_readiness.py | 26 ++++++ tests/test_eval_coco.py | 48 +++++++++- 4 files changed, 163 insertions(+), 57 deletions(-) diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index 0185942..823e2b4 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -216,17 +216,15 @@ def _load_coco_image_names( or len(categories) != expected_categories ): return None - category_ids = [ - category.get("id") for category in categories if isinstance(category, dict) - ] - if ( - len(category_ids) != len(categories) - or any( - not isinstance(category_id, int) or isinstance(category_id, bool) - for category_id in category_ids - ) - or len(category_ids) != len(set(category_ids)) - ): + category_ids: list[int] = [] + for category in categories: + if not isinstance(category, dict): + return None + category_id = category.get("id") + if not isinstance(category_id, int) or isinstance(category_id, bool): + return None + category_ids.append(category_id) + if len(category_ids) != len(set(category_ids)): return None expected_category_ids = ( COCO_PERSON_KEYPOINT_CATEGORY_IDS @@ -235,10 +233,31 @@ def _load_coco_image_names( ) if set(category_ids) != expected_category_ids: return None + if not _coco_task_annotations_valid( + annotation_records, + image_ids=set(image_ids), + category_ids=set(category_ids), + image_shapes=image_shapes, + task=task, + ): + return None + return set(names) + + +def _coco_task_annotations_valid( + annotation_records: list[Any], + *, + image_ids: set[int], + category_ids: set[int], + image_shapes: dict[int, tuple[int, int] | None], + task: str, +) -> bool: + """Validate task-specific COCO annotation payloads for readiness and APIs.""" + annotation_ids: list[int] = [] for record in annotation_records: if not isinstance(record, dict): - return None + return False annotation_id = record.get("id") image_id = record.get("image_id") category_id = record.get("category_id") @@ -248,27 +267,25 @@ def _load_coco_image_names( or not isinstance(image_id, int) or isinstance(image_id, bool) or image_id not in image_ids + or not isinstance(category_id, int) + or isinstance(category_id, bool) or category_id not in category_ids ): - return None - if annotation_path.name in { - "instances_val2017.json", - "person_keypoints_val2017.json", - }: - bbox = record.get("bbox") - if ( - not isinstance(bbox, list) - or len(bbox) != 4 - or any( - not isinstance(value, (int, float)) - or isinstance(value, bool) - or not np.isfinite(value) - for value in bbox - ) - or bbox[2] <= 0 - or bbox[3] <= 0 - ): - return None + return False + bbox = record.get("bbox") + if ( + not isinstance(bbox, list) + or len(bbox) != 4 + or any( + not isinstance(value, (int, float)) + or isinstance(value, bool) + or not np.isfinite(value) + for value in bbox + ) + or bbox[2] <= 0 + or bbox[3] <= 0 + ): + return False area = record.get("area") iscrowd = record.get("iscrowd") if ( @@ -280,7 +297,7 @@ def _load_coco_image_names( or isinstance(iscrowd, bool) or iscrowd not in {0, 1} ): - return None + return False if task == "instance_segmentation": segmentation = record.get("segmentation") if isinstance(segmentation, list): @@ -297,12 +314,12 @@ def _load_coco_image_names( or not _has_positive_polygon_area(polygon) for polygon in segmentation ): - return None + return False elif isinstance(segmentation, dict): if not _valid_coco_rle(segmentation, image_shapes.get(image_id)): - return None + return False else: - return None + return False if task == "pose_estimation": keypoints = record.get("keypoints") num_keypoints = record.get("num_keypoints") @@ -325,11 +342,9 @@ def _load_coco_image_names( or num_keypoints != sum(keypoints[index] > 0 for index in range(2, len(keypoints), 3)) ): - return None + return False annotation_ids.append(annotation_id) - if len(annotation_ids) != len(set(annotation_ids)): - return None - return set(names) + return len(annotation_ids) == len(set(annotation_ids)) def _decode_coco_rle_counts(counts: str) -> list[int] | None: @@ -547,8 +562,13 @@ def _widerface_difficulty_metadata_ready( return False if keep_indices.ndim == 0: keep_indices = keep_indices.reshape(1) - elif keep_indices.ndim == 2 and keep_indices.shape[1] == 1: - keep_indices = keep_indices[:, 0] + elif keep_indices.ndim == 2: + if keep_indices.size == 0: + keep_indices = keep_indices.reshape(0) + elif keep_indices.shape[1] == 1: + keep_indices = keep_indices[:, 0] + else: + return False elif keep_indices.ndim != 1: return False try: diff --git a/mblt_vision/utils/evaluation/eval_coco.py b/mblt_vision/utils/evaluation/eval_coco.py index 8726f67..92175f3 100644 --- a/mblt_vision/utils/evaluation/eval_coco.py +++ b/mblt_vision/utils/evaluation/eval_coco.py @@ -14,6 +14,7 @@ from ..._tasks import normalize_vision_task from ...datasets import get_dataset_category_ids from ..datasets import CustomCOCODataset, get_coco_loader +from ..datasets.readiness import _coco_task_annotations_valid if TYPE_CHECKING: from ...wrapper import MBLT_Engine @@ -79,21 +80,38 @@ def _validate_coco_dataset_taxonomy(dataset: CustomCOCODataset, task: str) -> No annotations = getattr(dataset.coco, "anns", None) if not isinstance(annotations, dict): raise ValueError("COCO evaluation dataset must define an annotation table.") - for annotation_id, annotation in annotations.items(): - if not isinstance(annotation, dict): - raise ValueError( - f"COCO evaluation dataset has an invalid annotation {annotation_id!r}." - ) - category_id = annotation.get("category_id") + images = getattr(dataset.coco, "imgs", None) + if not isinstance(images, dict): + raise ValueError("COCO evaluation dataset must define an image table.") + image_shapes: dict[int, tuple[int, int] | None] = {} + for image_id, image in images.items(): if ( - not isinstance(category_id, int) - or isinstance(category_id, bool) - or category_id not in category_ids + not isinstance(image_id, int) + or isinstance(image_id, bool) + or not isinstance(image, dict) ): - raise ValueError( - "COCO evaluation annotation references an undeclared or unsupported " - f"category ID {category_id!r}: annotation {annotation_id!r}." - ) + raise ValueError("COCO evaluation dataset contains invalid image metadata.") + height, width = image.get("height"), image.get("width") + image_shapes[image_id] = ( + (height, width) + if isinstance(height, int) + and not isinstance(height, bool) + and height > 0 + and isinstance(width, int) + and not isinstance(width, bool) + and width > 0 + else None + ) + if not _coco_task_annotations_valid( + list(annotations.values()), + image_ids=set(images), + category_ids=category_ids, + image_shapes=image_shapes, + task=task, + ): + raise ValueError( + "COCO evaluation dataset contains invalid task-specific annotations." + ) def format_coco_results( diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index f6db87f..8dcdcc8 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -519,6 +519,32 @@ def _loadmat(path: Path) -> dict[str, np.ndarray]: ) +def test_widerface_readiness_accepts_empty_difficulty_indices( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Keep valid images with no eligible faces in a difficulty split.""" + + face_boxes = np.empty((1, 1), dtype=object) + event_faces = np.empty((1, 1), dtype=object) + event_faces[0, 0] = np.array([[0, 0, 1, 1]], dtype=np.float64) + face_boxes[0, 0] = event_faces + difficulty = np.empty((1, 1), dtype=object) + event_indices = np.empty((1, 1), dtype=object) + event_indices[0, 0] = np.empty((0, 0), dtype=np.int64) + difficulty[0, 0] = event_indices + + def _loadmat(path: Path) -> dict[str, np.ndarray]: + if path.name == "wider_face_val.mat": + return {"face_bbx_list": face_boxes} + return {"gt_list": difficulty} + + monkeypatch.setattr(readiness, "loadmat", _loadmat) + + assert readiness._widerface_difficulty_metadata_ready( + tmp_path, {"0--Parade": {"sample.jpg"}} + ) + + @pytest.mark.parametrize("relative_image_dir", ["images", "images/val"]) def test_dotav1_readiness_requires_complete_image_label_pairs( monkeypatch: pytest.MonkeyPatch, diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py index ec3aa12..4b4366d 100644 --- a/tests/test_eval_coco.py +++ b/tests/test_eval_coco.py @@ -25,7 +25,11 @@ def __init__(self, root: str, annotation_path: str, **kwargs: Any) -> None: root=root, annotation_path=annotation_path, **kwargs ) self.ids = [1, 2] - self.coco = SimpleNamespace(cats={1: {}}, anns={}) + self.coco = SimpleNamespace( + cats={1: {}}, + anns={}, + imgs={1: {"height": 1, "width": 1}, 2: {"height": 1, "width": 1}}, + ) def __len__(self) -> int: return len(self.ids) @@ -98,11 +102,15 @@ def test_coco_evaluation_rejects_undeclared_annotation_categories( """Do not let malformed annotation categories be omitted from direct AP.""" dataset = SimpleNamespace( - coco=SimpleNamespace(cats={1: {}}, anns={7: {"category_id": 999}}) + coco=SimpleNamespace( + cats={1: {}}, + anns={7: {"category_id": 999}}, + imgs={1: {"height": 1, "width": 1}}, + ) ) monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) - with pytest.raises(ValueError, match="undeclared or unsupported"): + with pytest.raises(ValueError, match="invalid task-specific annotations"): eval_coco_module.eval_coco_metrics( SimpleNamespace(post_cfg={"task": "object_detection", "dataset": "coco"}), "/dataset", @@ -110,6 +118,40 @@ def test_coco_evaluation_rejects_undeclared_annotation_categories( ) +def test_coco_evaluation_rejects_invalid_task_payloads( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Use readiness-equivalent checks before direct COCO evaluation starts.""" + + dataset = SimpleNamespace( + coco=SimpleNamespace( + cats={1: {}}, + imgs={1: {"height": 2, "width": 2}}, + anns={ + 7: { + "id": 7, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "area": -1, + "iscrowd": 0, + "segmentation": [[0, 0, 1, 0, 1, 1]], + } + }, + ) + ) + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) + + with pytest.raises(ValueError, match="invalid task-specific annotations"): + eval_coco_module.eval_coco_metrics( + SimpleNamespace( + post_cfg={"task": "instance_segmentation", "dataset": "coco"} + ), + "/dataset", + batch_size=1, + ) + + def test_coco_result_formatter_rejects_truncated_postprocess_batch() -> None: """Require one decoded result for every submitted COCO image.""" From 065bc47daea3b4491164acff6a7692db411f5979 Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 18 Aug 2026 10:25:35 +0900 Subject: [PATCH 44/48] fix: validate vision ground truth geometry --- mblt_vision/utils/datasets/organizer.py | 34 ++++ mblt_vision/utils/datasets/readiness.py | 183 ++++++++++++++++-- mblt_vision/utils/evaluation/eval_dota.py | 35 +++- .../utils/evaluation/eval_widerface.py | 19 +- tests/test_dataset_readiness.py | 33 +++- tests/test_eval_coco.py | 34 ++++ tests/test_eval_dota.py | 50 +++++ tests/test_eval_widerface.py | 27 ++- 8 files changed, 393 insertions(+), 22 deletions(-) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 26556be..33111f3 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -38,8 +38,10 @@ CITYSCAPES_SAMPLE_ID_PATTERN, CITYSCAPES_VALIDATION_SAMPLE_COUNT, DOTAV1_VALIDATION_SAMPLE_COUNT, + IMAGE_SUFFIXES, NYU_DEPTH_VALIDATION_SAMPLE_COUNT, _path_has_symlink_component, + _polygon_has_positive_image_overlap, dataset_ready, ) @@ -327,9 +329,23 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: "normalized": staged_root / "labels" / "val", "original": staged_root / "labels" / "val_original", } + image_paths = { + path.stem: path + for path in (staged_root / "images").iterdir() + if path.is_file() and path.suffix.lower() in IMAGE_SUFFIXES + } valid_indices = set(DOTAV1_CLASS_TO_IDX.values()) for kind, label_dir in label_dirs.items(): for label_path in sorted(label_dir.glob("*.txt")): + image_path = image_paths.get(label_path.stem) + if image_path is None: + raise ValueError( + f"Staged DOTAv1 label has no matching image: {label_path}." + ) + image = cv2.imread(str(image_path), cv2.IMREAD_COLOR) + if image is None: + raise ValueError(f"Unable to decode staged DOTAv1 image: {image_path}.") + height, width = image.shape[:2] for line_number, line in enumerate( label_path.read_text(encoding="utf-8").splitlines(), start=1 ): @@ -371,6 +387,19 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: raise ValueError( f"Staged DOTAv1 polygon must have positive area at {label_path}:{line_number}." ) + image_coordinates = coordinates.copy() + if kind == "normalized": + image_coordinates = [ + coordinate * (width if index % 2 == 0 else height) + for index, coordinate in enumerate(coordinates) + ] + if not _polygon_has_positive_image_overlap( + image_coordinates, (height, width) + ): + raise ValueError( + "Staged DOTAv1 polygon must overlap its source image at " + f"{label_path}:{line_number}." + ) if kind == "normalized": try: class_index = int(fields[0]) @@ -1818,6 +1847,11 @@ def _write_dotav1_yolo_labels( f"DOTAv1 coordinates must be finite in {original_label_path} " f"at line {line_number}." ) + if not _polygon_has_positive_image_overlap(coordinates, (height, width)): + raise ValueError( + "DOTAv1 polygon must overlap its source image in " + f"{original_label_path} at line {line_number}." + ) if fields[9] not in {"0", "1", "2"}: raise ValueError( f"Unsupported DOTAv1 difficulty flag {fields[9]!r} in " diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index 823e2b4..bec35e6 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -13,6 +13,7 @@ import numpy as np from faster_coco_eval import mask as coco_mask +from PIL import Image from scipy.io import loadmat from scipy.io.matlab import MatReadError @@ -118,6 +119,84 @@ def _has_positive_polygon_area(polygon: list[int | float]) -> bool: return bool(abs(signed_double_area) > 0) +def _polygon_has_positive_image_overlap( + polygon: list[int | float], image_shape: tuple[int, int] | None +) -> bool: + """Return whether a polygon covers non-zero area within an image rectangle.""" + + if image_shape is None: + return True + height, width = image_shape + if height <= 0 or width <= 0: + return False + points = [ + tuple(point) for point in np.asarray(polygon, dtype=np.float64).reshape(-1, 2) + ] + + def _clip( + vertices: list[tuple[float, float]], + inside: Any, + intersect: Any, + ) -> list[tuple[float, float]]: + clipped: list[tuple[float, float]] = [] + if not vertices: + return clipped + previous = vertices[-1] + previous_inside = bool(inside(previous)) + for current in vertices: + current_inside = bool(inside(current)) + if current_inside != previous_inside: + clipped.append(intersect(previous, current)) + if current_inside: + clipped.append(current) + previous = current + previous_inside = current_inside + return clipped + + def _vertical_intersection( + x: float, start: tuple[float, float], end: tuple[float, float] + ) -> tuple[float, float]: + delta_x = end[0] - start[0] + if delta_x == 0: + return x, start[1] + ratio = (x - start[0]) / delta_x + return x, start[1] + ratio * (end[1] - start[1]) + + def _horizontal_intersection( + y: float, start: tuple[float, float], end: tuple[float, float] + ) -> tuple[float, float]: + delta_y = end[1] - start[1] + if delta_y == 0: + return start[0], y + ratio = (y - start[1]) / delta_y + return start[0] + ratio * (end[0] - start[0]), y + + points = _clip( + points, + lambda point: point[0] >= 0, + lambda a, b: _vertical_intersection(0, a, b), + ) + points = _clip( + points, + lambda point: point[0] <= width, + lambda a, b: _vertical_intersection(width, a, b), + ) + points = _clip( + points, + lambda point: point[1] >= 0, + lambda a, b: _horizontal_intersection(0, a, b), + ) + points = _clip( + points, + lambda point: point[1] <= height, + lambda a, b: _horizontal_intersection(height, a, b), + ) + if len(points) < 3: + return False + clipped = [coordinate for point in points for coordinate in point] + return _has_positive_polygon_area(clipped) + + def _imagenet_ready(root: Path) -> bool: """Check the organizer's complete ImageNet-1k validation class tree.""" @@ -312,6 +391,9 @@ def _coco_task_annotations_valid( for value in polygon ) or not _has_positive_polygon_area(polygon) + or not _polygon_has_positive_image_overlap( + polygon, image_shapes.get(image_id) + ) for polygon in segmentation ): return False @@ -501,18 +583,25 @@ def _widerface_ready(root: Path) -> bool: } for event_dir in event_dirs } + image_shapes = _widerface_image_shapes(root, expected_images) return ( actual_images == expected_images and sum(len(image_names) for image_names in actual_images.values()) == WIDERFACE_VALIDATION_SAMPLE_COUNT - and _widerface_difficulty_metadata_ready(root, expected_images) + and image_shapes is not None + and _widerface_difficulty_metadata_ready( + root, expected_images, image_shapes=image_shapes + ) ) def _widerface_difficulty_metadata_ready( - root: Path, expected_images: dict[str, set[str]] + root: Path, + expected_images: dict[str, set[str]], + *, + image_shapes: list[list[tuple[int, int]]] | None = None, ) -> bool: - """Validate WiderFace difficulty table dimensions and one-based face indices.""" + """Validate WiderFace difficulty metadata and its decoded-image geometry.""" try: main = loadmat(root / "wider_face_val.mat") @@ -531,6 +620,8 @@ def _widerface_difficulty_metadata_ready( len(table) != len(expected_images) for table in difficulties ): return False + if image_shapes is not None and len(image_shapes) != len(expected_images): + return False for event_index, image_names in enumerate(expected_images.values()): try: event_faces = face_boxes[event_index][0] @@ -538,6 +629,38 @@ def _widerface_difficulty_metadata_ready( return False if len(event_faces) != len(image_names): return False + if image_shapes is not None and len(image_shapes[event_index]) != len( + image_names + ): + return False + face_counts: list[int] = [] + for image_index, face_entry in enumerate(event_faces): + try: + face_array = np.asarray(face_entry[0]) + except (IndexError, TypeError): + return False + if ( + face_array.ndim != 2 + or face_array.shape[1] != 4 + or len(face_array) == 0 + or not np.isfinite(face_array).all() + or (face_array[:, 2:] <= 0).any() + ): + return False + if image_shapes is not None: + height, width = image_shapes[event_index][image_index] + if ( + height <= 0 + or width <= 0 + or not ( + (face_array[:, 0] < width) + & (face_array[:, 0] + face_array[:, 2] > 0) + & (face_array[:, 1] < height) + & (face_array[:, 1] + face_array[:, 3] > 0) + ).all() + ): + return False + face_counts.append(len(face_array)) for table in difficulties: try: event_indices = table[event_index][0] @@ -545,18 +668,8 @@ def _widerface_difficulty_metadata_ready( return False if len(event_indices) != len(image_names): return False - for image_index, face_entry in enumerate(event_faces): + for image_index in range(len(event_faces)): try: - face_array = np.asarray(face_entry[0]) - if ( - face_array.ndim != 2 - or face_array.shape[1] != 4 - or len(face_array) == 0 - or not np.isfinite(face_array).all() - or (face_array[:, 2:] <= 0).any() - ): - return False - face_count = len(face_array) keep_indices = np.asarray(event_indices[image_index][0]) except (IndexError, TypeError): return False @@ -581,7 +694,8 @@ def _widerface_difficulty_metadata_ready( if not valid_indices: return False if keep_indices.size and ( - int(keep_indices.min()) < 1 or int(keep_indices.max()) > face_count + int(keep_indices.min()) < 1 + or int(keep_indices.max()) > face_counts[image_index] ): return False if len(np.unique(keep_indices)) != keep_indices.size: @@ -633,6 +747,45 @@ def _load_widerface_image_names(annotation_path: Path) -> dict[str, set[str]] | return expected +def _widerface_image_shapes( + root: Path, expected_images: dict[str, set[str]] +) -> list[list[tuple[int, int]]] | None: + """Load WiderFace image shapes in the annotation's event and file order.""" + + try: + annotation = loadmat(root / "wider_face_val.mat") + event_list = annotation["event_list"] + file_list = annotation["file_list"] + except (IndexError, KeyError, MatReadError, OSError, TypeError, ValueError): + return None + if len(event_list) != len(file_list) or len(event_list) != len(expected_images): + return None + + all_shapes: list[list[tuple[int, int]]] = [] + for event_cell, file_cell in zip(event_list, file_list, strict=True): + event_names = _flatten_matlab_strings(event_cell) + image_stems = _flatten_matlab_strings(file_cell) + if ( + len(event_names) != 1 + or not image_stems + or expected_images.get(event_names[0]) + != {f"{stem}.jpg" for stem in image_stems} + ): + return None + event_shapes: list[tuple[int, int]] = [] + for stem in image_stems: + try: + with Image.open( + root / "images" / event_names[0] / f"{stem}.jpg" + ) as image: + width, height = image.size + except OSError: + return None + event_shapes.append((height, width)) + all_shapes.append(event_shapes) + return all_shapes + + def dense_dataset_ready(data_path: str | Path, dataset: str) -> bool: """Return whether a dense dataset matches its taxonomy and full validation split. diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 019351e..98ec17e 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -26,6 +26,7 @@ get_dotav1_class_num, get_dotav1_label, ) +from ..datasets.readiness import _polygon_has_positive_image_overlap from ..letterbox import RatioPad, resolve_ratio_pad if TYPE_CHECKING: @@ -78,6 +79,22 @@ def _validate_polygon_area( ) +def _validate_polygon_image_overlap( + coords: torch.Tensor, + image_shape: tuple[int, int], + annotation_path: Path, + line_number: int, +) -> None: + """Require a quadrilateral to cover non-zero area inside its source image.""" + + polygon = [coordinate for point in coords.tolist() for coordinate in point] + if not _polygon_has_positive_image_overlap(polygon, image_shape): + raise ValueError( + "DOTAv1 annotation polygon must overlap its source image at " + f"{annotation_path}:{line_number}." + ) + + def _load_ground_truths( data_path: str, dataset: CustomDOTAv1 ) -> dict[str, dict[str, torch.Tensor]]: @@ -93,6 +110,16 @@ def _load_ground_truths( """ label_dir = Path(data_path) / "labels" / "val" original_label_dir = Path(data_path) / "labels" / "val_original" + image_ids = set(dataset.ids) + label_ids = {path.stem for path in label_dir.glob("*.txt")} | { + path.stem for path in original_label_dir.glob("*.txt") + } + orphan_label_ids = sorted(label_ids - image_ids) + if orphan_label_ids: + raise ValueError( + "DOTAv1 annotations have no corresponding validation image: " + f"{', '.join(orphan_label_ids[:5])}." + ) ground_truths: dict[str, dict[str, torch.Tensor]] = {} for image_id, image_path in zip(dataset.ids, dataset.image_paths): image = dataset._load_image(image_path) @@ -137,6 +164,9 @@ def _load_ground_truths( coords[:, 0] *= width coords[:, 1] *= height _validate_polygon_area(coords, label_path, line_number) + _validate_polygon_image_overlap( + coords, (height, width), label_path, line_number + ) if len(parts) >= 10 and parts[9] not in {"0", "1", "2"}: raise ValueError( f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " @@ -177,6 +207,9 @@ def _load_ground_truths( f"{original_label_path}:{line_number}." ) _validate_polygon_area(coords, original_label_path, line_number) + _validate_polygon_image_overlap( + coords, (height, width), original_label_path, line_number + ) if parts[9] not in {"0", "1", "2"}: raise ValueError( f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " @@ -503,7 +536,7 @@ def _evaluate_stats(stats: dict[str, list[np.ndarray]], niou: int = 10) -> DOTAR else np.zeros(0, dtype=np.float64) ) if target_cls.size == 0: - return DOTAResult(map5095=0.0, map50=0.0) + raise ValueError("DOTAv1 evaluation requires at least one non-ignored target.") tp = ( np.concatenate(stats["tp"], 0) diff --git a/mblt_vision/utils/evaluation/eval_widerface.py b/mblt_vision/utils/evaluation/eval_widerface.py index 757dce1..148e332 100644 --- a/mblt_vision/utils/evaluation/eval_widerface.py +++ b/mblt_vision/utils/evaluation/eval_widerface.py @@ -16,6 +16,7 @@ from ..datasets import CustomWiderFaceDataset, get_widerface_loader from ..datasets.readiness import ( _load_widerface_image_names, + _widerface_image_shapes, _widerface_difficulty_metadata_ready, ) @@ -75,6 +76,11 @@ def _boxes_scores_to_prediction( ) -> np.ndarray: """Convert xywh boxes and scores to a WiderFace prediction array.""" + if len(boxes) != len(scores): + raise ValueError( + "WiderFace postprocess returned unequal box and score counts: " + f"boxes={len(boxes)}, scores={len(scores)}." + ) if not boxes: return _empty_prediction() prediction = np.zeros((len(boxes), 5), dtype=np.float32) @@ -117,8 +123,17 @@ def eval_widerface( dataset_root = Path(data_path) expected_images = _load_widerface_image_names(dataset_root / "wider_face_val.mat") - if expected_images is None or not _widerface_difficulty_metadata_ready( - dataset_root, expected_images + image_shapes = ( + _widerface_image_shapes(dataset_root, expected_images) + if expected_images is not None + else None + ) + if ( + expected_images is None + or image_shapes is None + or not _widerface_difficulty_metadata_ready( + dataset_root, expected_images, image_shapes=image_shapes + ) ): raise ValueError( "WiderFace evaluation metadata is malformed or has inconsistent difficulty indices." diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index 8dcdcc8..94d3f5c 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -545,6 +545,34 @@ def _loadmat(path: Path) -> dict[str, np.ndarray]: ) +def test_widerface_readiness_rejects_face_boxes_outside_images( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Face ground truth must retain foreground in its decoded source image.""" + + face_boxes = np.empty((1, 1), dtype=object) + event_faces = np.empty((1, 1), dtype=object) + event_faces[0, 0] = np.array([[11, 0, 1, 1]], dtype=np.float64) + face_boxes[0, 0] = event_faces + difficulty = np.empty((1, 1), dtype=object) + event_indices = np.empty((1, 1), dtype=object) + event_indices[0, 0] = np.array([1], dtype=np.int64) + difficulty[0, 0] = event_indices + + def _loadmat(path: Path) -> dict[str, np.ndarray]: + if path.name == "wider_face_val.mat": + return {"face_bbx_list": face_boxes} + return {"gt_list": difficulty} + + monkeypatch.setattr(readiness, "loadmat", _loadmat) + + assert not readiness._widerface_difficulty_metadata_ready( + tmp_path, + {"0--Parade": {"sample.jpg"}}, + image_shapes=[[(10, 10)]], + ) + + @pytest.mark.parametrize("relative_image_dir", ["images", "images/val"]) def test_dotav1_readiness_requires_complete_image_label_pairs( monkeypatch: pytest.MonkeyPatch, @@ -587,7 +615,10 @@ def test_widerface_readiness_requires_complete_event_tree_and_metadata( monkeypatch.setattr(readiness, "WIDERFACE_EVENT_COUNT", 2) monkeypatch.setattr(readiness, "WIDERFACE_VALIDATION_SAMPLE_COUNT", 2) monkeypatch.setattr( - readiness, "_widerface_difficulty_metadata_ready", lambda *_: True + readiness, "_widerface_difficulty_metadata_ready", lambda *_, **__: True + ) + monkeypatch.setattr( + readiness, "_widerface_image_shapes", lambda *_: [[(1, 1)], [(1, 1)]] ) _write_widerface_metadata( tmp_path / "wider_face_val.mat", diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py index 4b4366d..88af5ef 100644 --- a/tests/test_eval_coco.py +++ b/tests/test_eval_coco.py @@ -152,6 +152,40 @@ def test_coco_evaluation_rejects_invalid_task_payloads( ) +def test_coco_evaluation_rejects_polygons_outside_image_bounds( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Do not let a nonempty off-image polygon become an empty COCO mask.""" + + dataset = SimpleNamespace( + coco=SimpleNamespace( + cats={1: {}}, + imgs={1: {"height": 10, "width": 10}}, + anns={ + 7: { + "id": 7, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "area": 1, + "iscrowd": 0, + "segmentation": [[11, 0, 12, 0, 12, 1, 11, 1]], + } + }, + ) + ) + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) + + with pytest.raises(ValueError, match="invalid task-specific annotations"): + eval_coco_module.eval_coco_metrics( + SimpleNamespace( + post_cfg={"task": "instance_segmentation", "dataset": "coco"} + ), + "/dataset", + batch_size=1, + ) + + def test_coco_result_formatter_rejects_truncated_postprocess_batch() -> None: """Require one decoded result for every submitted COCO image.""" diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index c0725ff..c48c55e 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -204,6 +204,49 @@ def test_dota_annotations_reject_degenerate_polygons( _load_ground_truths(str(tmp_path), dataset) +@pytest.mark.parametrize( + ("label_path", "annotation"), + [ + ("labels/val/image.txt", "0 1.1 0 1.2 0 1.2 0.1 1.1 0.1"), + ("labels/val_original/image.txt", "110 0 120 0 120 10 110 10 plane 0"), + ], +) +def test_dota_annotations_reject_polygons_outside_images( + tmp_path, label_path: str, annotation: str +) -> None: + """Ground-truth polygons must retain foreground within their source images.""" + + path = tmp_path / label_path + path.parent.mkdir(parents=True) + path.write_text(annotation, encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises(ValueError, match="must overlap its source image"): + _load_ground_truths(str(tmp_path), dataset) + + +def test_dota_ground_truth_rejects_orphan_label_files(tmp_path) -> None: + """Direct evaluation must not ignore labels without a selected image.""" + + label_path = tmp_path / "labels" / "val" / "orphan.txt" + label_path.parent.mkdir(parents=True) + label_path.write_text("0 0 0 0.2 0 0.2 0.2 0 0.2", encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace(ids=[], image_paths=[], _load_image=lambda _: None), + ) + + with pytest.raises(ValueError, match="no corresponding validation image"): + _load_ground_truths(str(tmp_path), dataset) + + @pytest.mark.parametrize( ("label_path", "annotation"), [ @@ -329,6 +372,13 @@ def test_dota_ap_interpolation_uses_terminal_recall_sentinel() -> None: assert ap == pytest.approx(0.75) +def test_dota_metrics_require_non_ignored_ground_truth() -> None: + """Empty or difficult-only labels must not yield a normal AP result.""" + + with pytest.raises(ValueError, match="at least one non-ignored target"): + eval_dota_module._evaluate_stats(eval_dota_module._empty_stats()) + + def test_dota_export_rejects_truncated_converted_batches() -> None: """Do not silently omit Task1 files when converted output batches are short.""" diff --git a/tests/test_eval_widerface.py b/tests/test_eval_widerface.py index 1425671..d86f651 100644 --- a/tests/test_eval_widerface.py +++ b/tests/test_eval_widerface.py @@ -81,7 +81,14 @@ def postprocess(self, outputs: torch.Tensor) -> SimpleNamespace: lambda _: {"event": {"first.jpg", "second.jpg"}}, ) monkeypatch.setattr( - eval_widerface_module, "_widerface_difficulty_metadata_ready", lambda *_: True + eval_widerface_module, + "_widerface_difficulty_metadata_ready", + lambda *_, **__: True, + ) + monkeypatch.setattr( + eval_widerface_module, + "_widerface_image_shapes", + lambda *_: [[(8, 8), (8, 8)]], ) monkeypatch.setattr( eval_widerface_module, "get_widerface_loader", lambda *_: [batch] @@ -104,7 +111,9 @@ def test_widerface_evaluation_rejects_malformed_difficulty_metadata( lambda _: {"0--Parade": {"sample.jpg"}}, ) monkeypatch.setattr( - eval_widerface_module, "_widerface_difficulty_metadata_ready", lambda *_: False + eval_widerface_module, + "_widerface_difficulty_metadata_ready", + lambda *_, **__: False, ) monkeypatch.setattr( eval_widerface_module, @@ -133,7 +142,12 @@ class _Dataset: lambda _: {"0--Parade": {"sample.jpg"}}, ) monkeypatch.setattr( - eval_widerface_module, "_widerface_difficulty_metadata_ready", lambda *_: True + eval_widerface_module, + "_widerface_difficulty_metadata_ready", + lambda *_, **__: True, + ) + monkeypatch.setattr( + eval_widerface_module, "_widerface_image_shapes", lambda *_: [[(8, 8)]] ) monkeypatch.setattr(eval_widerface_module, "CustomWiderface", lambda _: _Dataset()) monkeypatch.setattr( @@ -144,3 +158,10 @@ class _Dataset: with pytest.raises(ValueError, match="does not match the validation metadata"): eval_widerface_module.eval_widerface(model, "/dataset", batch_size=1) + + +def test_widerface_evaluation_rejects_unequal_box_and_score_counts() -> None: + """Do not fabricate or drop face detections during result conversion.""" + + with pytest.raises(ValueError, match="unequal box and score counts"): + eval_widerface_module._boxes_scores_to_prediction([[0, 0, 1, 1]], []) From ee9150b1c1c386691fe9ac0b2c3a12fbc04bcaea Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 18 Aug 2026 10:38:30 +0900 Subject: [PATCH 45/48] fix: validate vision evaluation geometry --- mblt_vision/utils/datasets/organizer.py | 14 +++++ mblt_vision/utils/datasets/readiness.py | 34 +++++++++++ mblt_vision/utils/evaluation/eval_dota.py | 5 +- tests/test_dataset_organizer.py | 14 +++++ tests/test_dataset_readiness.py | 6 +- tests/test_eval_coco.py | 69 +++++++++++++++++++++++ tests/test_eval_dota.py | 22 ++++++++ 7 files changed, 158 insertions(+), 6 deletions(-) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 33111f3..b3545b4 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -335,8 +335,11 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: if path.is_file() and path.suffix.lower() in IMAGE_SUFFIXES } valid_indices = set(DOTAV1_CLASS_TO_IDX.values()) + label_stems = {kind: set() for kind in label_dirs} + positive_stems = {kind: set() for kind in label_dirs} for kind, label_dir in label_dirs.items(): for label_path in sorted(label_dir.glob("*.txt")): + label_stems[kind].add(label_path.stem) image_path = image_paths.get(label_path.stem) if image_path is None: raise ValueError( @@ -346,6 +349,7 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: if image is None: raise ValueError(f"Unable to decode staged DOTAv1 image: {image_path}.") height, width = image.shape[:2] + has_positive_target = False for line_number, line in enumerate( label_path.read_text(encoding="utf-8").splitlines(), start=1 ): @@ -422,6 +426,16 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: raise ValueError( f"Unsupported staged DOTAv1 difficulty flag at {label_path}:{line_number}." ) + has_positive_target |= difficulty == "0" + if has_positive_target: + positive_stems[kind].add(label_path.stem) + authoritative_positive_stems = positive_stems["original"] | ( + positive_stems["normalized"] - label_stems["original"] + ) + if not authoritative_positive_stems: + raise ValueError( + "Staged DOTAv1 dataset must contain at least one non-difficult target." + ) class _GoogleDriveDownloadEntry(Protocol): diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index bec35e6..e42aae7 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -394,6 +394,7 @@ def _coco_task_annotations_valid( or not _polygon_has_positive_image_overlap( polygon, image_shapes.get(image_id) ) + or not _valid_coco_polygon(polygon, image_shapes.get(image_id)) for polygon in segmentation ): return False @@ -425,6 +426,18 @@ def _coco_task_annotations_valid( != sum(keypoints[index] > 0 for index in range(2, len(keypoints), 3)) ): return False + image_shape = image_shapes.get(image_id) + if image_shape is not None: + height, width = image_shape + if any( + keypoints[index + 2] == 2 + and not ( + 0 <= keypoints[index] < width + and 0 <= keypoints[index + 1] < height + ) + for index in range(0, len(keypoints), 3) + ): + return False annotation_ids.append(annotation_id) return len(annotation_ids) == len(set(annotation_ids)) @@ -504,6 +517,22 @@ def _valid_coco_rle( return decoded.shape == tuple(size) and bool(np.any(decoded)) +def _valid_coco_polygon( + polygon: list[int | float], image_shape: tuple[int, int] | None +) -> bool: + """Require a COCO polygon to rasterize to foreground in its image.""" + + if image_shape is None: + return True + height, width = image_shape + try: + encoded = coco_mask.frPyObjects([polygon], height, width) + decoded = np.asarray(coco_mask.decode(encoded)) + except (RuntimeError, TypeError, ValueError): + return False + return bool(np.any(decoded)) + + def _coco_ready(root: Path, task: str) -> bool: """Check the complete COCO 2017 image split and task annotation metadata.""" @@ -668,6 +697,7 @@ def _widerface_difficulty_metadata_ready( return False if len(event_indices) != len(image_names): return False + table_has_eligible_face = False for image_index in range(len(event_faces)): try: keep_indices = np.asarray(event_indices[image_index][0]) @@ -700,6 +730,9 @@ def _widerface_difficulty_metadata_ready( return False if len(np.unique(keep_indices)) != keep_indices.size: return False + table_has_eligible_face |= bool(keep_indices.size) + if not table_has_eligible_face: + return False return True @@ -778,6 +811,7 @@ def _widerface_image_shapes( with Image.open( root / "images" / event_names[0] / f"{stem}.jpg" ) as image: + image.load() width, height = image.size except OSError: return None diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 98ec17e..828b2fa 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -160,9 +160,8 @@ def _load_ground_truths( "DOTAv1 annotation coordinates must be finite at " f"{label_path}:{line_number}." ) - if coords.numel() and float(coords.max()) <= 1.5: - coords[:, 0] *= width - coords[:, 1] *= height + coords[:, 0] *= width + coords[:, 1] *= height _validate_polygon_area(coords, label_path, line_number) _validate_polygon_image_overlap( coords, (height, width), label_path, line_number diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index 06f5c53..dcb9964 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -86,6 +86,20 @@ def test_dotav1_organizer_rejects_truncated_raw_annotation_rows( ) +def test_dotav1_stage_requires_a_non_difficult_target(tmp_path: Path) -> None: + """Do not replace a usable DOTAv1 cache with an unscorable staged split.""" + + image_path = tmp_path / "images" / "P0001.png" + image_path.parent.mkdir() + Image.new("RGB", (100, 50)).save(image_path) + label_path = tmp_path / "labels" / "val_original" / "P0001.txt" + label_path.parent.mkdir(parents=True) + label_path.write_text("0 0 20 0 20 20 0 20 plane 1\n", encoding="utf-8") + + with pytest.raises(ValueError, match="at least one non-difficult target"): + organizer._validate_staged_dotav1_labels(tmp_path) + + @pytest.mark.parametrize( ("organize_dataset", "dataset_name"), [ diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index 94d3f5c..f9d574d 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -519,10 +519,10 @@ def _loadmat(path: Path) -> dict[str, np.ndarray]: ) -def test_widerface_readiness_accepts_empty_difficulty_indices( +def test_widerface_readiness_rejects_all_empty_difficulty_indices( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: - """Keep valid images with no eligible faces in a difficulty split.""" + """Every complete WiderFace difficulty split needs an eligible face.""" face_boxes = np.empty((1, 1), dtype=object) event_faces = np.empty((1, 1), dtype=object) @@ -540,7 +540,7 @@ def _loadmat(path: Path) -> dict[str, np.ndarray]: monkeypatch.setattr(readiness, "loadmat", _loadmat) - assert readiness._widerface_difficulty_metadata_ready( + assert not readiness._widerface_difficulty_metadata_ready( tmp_path, {"0--Parade": {"sample.jpg"}} ) diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py index 88af5ef..51f25ae 100644 --- a/tests/test_eval_coco.py +++ b/tests/test_eval_coco.py @@ -186,6 +186,75 @@ def test_coco_evaluation_rejects_polygons_outside_image_bounds( ) +def test_coco_evaluation_rejects_polygons_without_rasterized_foreground( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Continuous subpixel overlap must not admit an empty raster mask.""" + + dataset = SimpleNamespace( + coco=SimpleNamespace( + cats={1: {}}, + imgs={1: {"height": 10, "width": 10}}, + anns={ + 7: { + "id": 7, + "image_id": 1, + "category_id": 1, + "bbox": [9, 9, 1, 1], + "area": 1, + "iscrowd": 0, + "segmentation": [[9.9, 9.9, 9.99, 9.9, 9.99, 9.99]], + } + }, + ) + ) + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) + + with pytest.raises(ValueError, match="invalid task-specific annotations"): + eval_coco_module.eval_coco_metrics( + SimpleNamespace( + post_cfg={"task": "instance_segmentation", "dataset": "coco"} + ), + "/dataset", + batch_size=1, + ) + + +def test_coco_evaluation_rejects_visible_keypoints_outside_images( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Visible pose coordinates must refer to pixels in the source image.""" + + keypoints = [0.0, 0.0, 0.0] * 17 + keypoints[:3] = [11.0, 1.0, 2.0] + dataset = SimpleNamespace( + coco=SimpleNamespace( + cats={1: {}}, + imgs={1: {"height": 10, "width": 10}}, + anns={ + 7: { + "id": 7, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "area": 1, + "iscrowd": 0, + "keypoints": keypoints, + "num_keypoints": 1, + } + }, + ) + ) + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) + + with pytest.raises(ValueError, match="invalid task-specific annotations"): + eval_coco_module.eval_coco_metrics( + SimpleNamespace(post_cfg={"task": "pose_estimation", "dataset": "coco"}), + "/dataset", + batch_size=1, + ) + + def test_coco_result_formatter_rejects_truncated_postprocess_batch() -> None: """Require one decoded result for every submitted COCO image.""" diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index c48c55e..8963ead 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -232,6 +232,28 @@ def test_dota_annotations_reject_polygons_outside_images( _load_ground_truths(str(tmp_path), dataset) +def test_dota_normalized_coordinates_are_scaled_even_when_partially_clipped( + tmp_path, +) -> None: + """The normalized-label directory always uses normalized image coordinates.""" + + label_path = tmp_path / "labels" / "val" / "image.txt" + label_path.parent.mkdir(parents=True) + label_path.write_text("0 0.9 0 1.6 0 1.6 0.1 0.9 0.1", encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + ground_truth = _load_ground_truths(str(tmp_path), dataset)["image"] + + assert ground_truth["polygons"][0, :, 0].tolist() == [90.0, 160.0, 160.0, 90.0] + + def test_dota_ground_truth_rejects_orphan_label_files(tmp_path) -> None: """Direct evaluation must not ignore labels without a selected image.""" From a91d56dabe5f184da8f3ad9b3f062f83cd1f29c5 Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 18 Aug 2026 10:54:35 +0900 Subject: [PATCH 46/48] fix: validate vision dataset geometry --- mblt_vision/utils/datasets/organizer.py | 25 +++++ mblt_vision/utils/datasets/readiness.py | 47 +++++++- mblt_vision/utils/evaluation/eval_dota.py | 22 ++++ tests/test_dataset_organizer.py | 14 +++ tests/test_dataset_readiness.py | 129 ++++++++++++++++++++-- tests/test_eval_coco.py | 33 ++++++ tests/test_eval_dota.py | 28 +++++ 7 files changed, 285 insertions(+), 13 deletions(-) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index b3545b4..ade7dfb 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -391,6 +391,7 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: raise ValueError( f"Staged DOTAv1 polygon must have positive area at {label_path}:{line_number}." ) + _validate_dotav1_polygon_vertices(coordinates, label_path, line_number) image_coordinates = coordinates.copy() if kind == "normalized": image_coordinates = [ @@ -438,6 +439,27 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: ) +def _validate_dotav1_polygon_vertices( + coordinates: list[float], annotation_path: str | Path, line_number: int +) -> None: + """Require four distinct, consistently ordered DOTAv1 quadrilateral vertices.""" + + points = np.asarray(coordinates, dtype=np.float64).reshape(4, 2) + if len(np.unique(points, axis=0)) != 4: + raise ValueError( + "DOTAv1 polygon must contain four distinct vertices in " + f"{annotation_path} at line {line_number}." + ) + edges = np.roll(points, -1, axis=0) - points + next_edges = np.roll(edges, -1, axis=0) + turns = edges[:, 0] * next_edges[:, 1] - edges[:, 1] * next_edges[:, 0] + if not (np.all(turns > 0) or np.all(turns < 0)): + raise ValueError( + "DOTAv1 polygon vertices must be consistently ordered in " + f"{annotation_path} at line {line_number}." + ) + + class _GoogleDriveDownloadEntry(Protocol): """The public attributes needed from a gdown folder-listing entry.""" @@ -1866,6 +1888,9 @@ def _write_dotav1_yolo_labels( "DOTAv1 polygon must overlap its source image in " f"{original_label_path} at line {line_number}." ) + _validate_dotav1_polygon_vertices( + coordinates, original_label_path, line_number + ) if fields[9] not in {"0", "1", "2"}: raise ValueError( f"Unsupported DOTAv1 difficulty flag {fields[9]!r} in " diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index e42aae7..4fb982b 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -377,6 +377,8 @@ def _coco_task_annotations_valid( or iscrowd not in {0, 1} ): return False + if task == "pose_estimation" and area > bbox[2] * bbox[3]: + return False if task == "instance_segmentation": segmentation = record.get("segmentation") if isinstance(segmentation, list): @@ -557,7 +559,37 @@ def _coco_ready(root: Path, task: str) -> bool: for path in image_paths ): return False - return {path.name for path in image_paths} == annotation_names + if {path.name for path in image_paths} != annotation_names: + return False + try: + payload = json.loads((root / annotation_name).read_text(encoding="utf-8")) + image_records = payload["images"] + image_shapes = { + record["file_name"]: (record["height"], record["width"]) + for record in image_records + } + except (KeyError, TypeError, ValueError, json.JSONDecodeError, OSError): + return False + for image_path in image_paths: + expected_shape = image_shapes.get(image_path.name) + if ( + not isinstance(expected_shape, tuple) + or len(expected_shape) != 2 + or any( + not isinstance(value, int) or isinstance(value, bool) or value <= 0 + for value in expected_shape + ) + ): + return False + try: + with Image.open(image_path) as image: + image.load() + width, height = image.size + except OSError: + return False + if (height, width) != expected_shape: + return False + return True def _dotav1_ready(root: Path) -> bool: @@ -651,6 +683,7 @@ def _widerface_difficulty_metadata_ready( return False if image_shapes is not None and len(image_shapes) != len(expected_images): return False + difficulty_has_eligible_face = [False] * len(difficulties) for event_index, image_names in enumerate(expected_images.values()): try: event_faces = face_boxes[event_index][0] @@ -674,6 +707,7 @@ def _widerface_difficulty_metadata_ready( or len(face_array) == 0 or not np.isfinite(face_array).all() or (face_array[:, 2:] <= 0).any() + or len(np.unique(face_array, axis=0)) != len(face_array) ): return False if image_shapes is not None: @@ -690,14 +724,13 @@ def _widerface_difficulty_metadata_ready( ): return False face_counts.append(len(face_array)) - for table in difficulties: + for difficulty_index, table in enumerate(difficulties): try: event_indices = table[event_index][0] except (IndexError, TypeError): return False if len(event_indices) != len(image_names): return False - table_has_eligible_face = False for image_index in range(len(event_faces)): try: keep_indices = np.asarray(event_indices[image_index][0]) @@ -730,9 +763,11 @@ def _widerface_difficulty_metadata_ready( return False if len(np.unique(keep_indices)) != keep_indices.size: return False - table_has_eligible_face |= bool(keep_indices.size) - if not table_has_eligible_face: - return False + difficulty_has_eligible_face[difficulty_index] |= bool( + keep_indices.size + ) + if not all(difficulty_has_eligible_face): + return False return True diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 828b2fa..535c898 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -79,6 +79,26 @@ def _validate_polygon_area( ) +def _validate_polygon_vertices( + coords: torch.Tensor, annotation_path: Path, line_number: int +) -> None: + """Require four distinct, consistently ordered DOTAv1 quadrilateral vertices.""" + + if torch.unique(coords, dim=0).shape[0] != 4: + raise ValueError( + "DOTAv1 annotation polygon must contain four distinct vertices at " + f"{annotation_path}:{line_number}." + ) + edges = torch.roll(coords, shifts=-1, dims=0) - coords + next_edges = torch.roll(edges, shifts=-1, dims=0) + turns = edges[:, 0] * next_edges[:, 1] - edges[:, 1] * next_edges[:, 0] + if not bool(torch.all(turns > 0) or torch.all(turns < 0)): + raise ValueError( + "DOTAv1 annotation polygon vertices must be consistently ordered at " + f"{annotation_path}:{line_number}." + ) + + def _validate_polygon_image_overlap( coords: torch.Tensor, image_shape: tuple[int, int], @@ -163,6 +183,7 @@ def _load_ground_truths( coords[:, 0] *= width coords[:, 1] *= height _validate_polygon_area(coords, label_path, line_number) + _validate_polygon_vertices(coords, label_path, line_number) _validate_polygon_image_overlap( coords, (height, width), label_path, line_number ) @@ -206,6 +227,7 @@ def _load_ground_truths( f"{original_label_path}:{line_number}." ) _validate_polygon_area(coords, original_label_path, line_number) + _validate_polygon_vertices(coords, original_label_path, line_number) _validate_polygon_image_overlap( coords, (height, width), original_label_path, line_number ) diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index dcb9964..fb7da89 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -86,6 +86,20 @@ def test_dotav1_organizer_rejects_truncated_raw_annotation_rows( ) +def test_dotav1_organizer_rejects_repeated_polygon_vertices(tmp_path: Path) -> None: + """Keep malformed triangle-like rows out of the staged normalized labels.""" + + image_path = tmp_path / "image.png" + Image.new("RGB", (100, 50)).save(image_path) + source_path = tmp_path / "source.txt" + source_path.write_text("0 0 20 0 20 20 0 0 plane 0\n", encoding="utf-8") + + with pytest.raises(ValueError, match="four distinct vertices"): + organizer._write_dotav1_yolo_labels( + str(image_path), str(source_path), str(tmp_path / "normalized.txt") + ) + + def test_dotav1_stage_requires_a_non_difficult_target(tmp_path: Path) -> None: """Do not replace a usable DOTAv1 cache with an unscorable staged split.""" diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index f9d574d..3fd176d 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -8,6 +8,7 @@ import numpy as np import pytest +from PIL import Image from scipy.io import savemat from mblt_vision.utils.datasets import readiness @@ -20,6 +21,13 @@ def _write_file(path: Path) -> None: path.write_bytes(b"data") +def _write_image(path: Path, size: tuple[int, int]) -> None: + """Create a decodable RGB image with the requested ``(width, height)``.""" + + path.parent.mkdir(parents=True, exist_ok=True) + Image.new("RGB", size).save(path) + + def _write_widerface_metadata(path: Path, event_images: dict[str, list[str]]) -> None: """Write the WiderFace event and image-name cell arrays used by readiness.""" @@ -80,7 +88,7 @@ def test_coco_readiness_matches_images_to_task_annotations( monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) image_names = ["000000000001.jpg", "000000000002.jpg"] for image_name in image_names: - _write_file(tmp_path / "val2017" / image_name) + _write_image(tmp_path / "val2017" / image_name, (2, 2)) (tmp_path / annotation_name).write_text( json.dumps({"images": [{"id": 1, "file_name": image_names[0]}]}), encoding="utf-8", @@ -92,7 +100,12 @@ def test_coco_readiness_matches_images_to_task_annotations( json.dumps( { "images": [ - {"id": index, "file_name": image_name} + { + "id": index, + "file_name": image_name, + "height": 2, + "width": 2, + } for index, image_name in enumerate(image_names, start=1) ], "categories": [{"id": 1}], @@ -101,11 +114,11 @@ def test_coco_readiness_matches_images_to_task_annotations( "id": index, "image_id": index, "category_id": 1, - "bbox": [0, 0, 1, 1], - "area": 1, + "bbox": [0, 0, 2, 2], + "area": 4, "iscrowd": 0, **( - {"segmentation": [[0, 0, 1, 0, 1, 1]]} + {"segmentation": [[0, 0, 2, 0, 2, 2]]} if task == "instance_segmentation" else {} ), @@ -151,7 +164,7 @@ def test_coco_readiness_rejects_missing_task_specific_ground_truth( monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, annotation_name, 1) monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, annotation_name, 1) monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) - _write_file(tmp_path / "val2017" / "000000000001.jpg") + _write_image(tmp_path / "val2017" / "000000000001.jpg", (2, 2)) annotation = { "id": 1, "image_id": 1, @@ -291,7 +304,7 @@ def test_coco_readiness_decodes_and_validates_rle_segmentations( monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 1) monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) - _write_file(tmp_path / "val2017" / "000000000001.jpg") + _write_image(tmp_path / "val2017" / "000000000001.jpg", (2, 2)) (tmp_path / "instances_val2017.json").write_text( json.dumps( { @@ -326,6 +339,50 @@ def test_coco_readiness_decodes_and_validates_rle_segmentations( ) +def test_coco_readiness_rejects_corrupt_or_mismatched_images( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Cache readiness must decode COCO images and match annotation geometry.""" + + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 1) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) + _write_image(tmp_path / "val2017" / "000000000001.jpg", (1, 1)) + annotation_path = tmp_path / "instances_val2017.json" + annotation_path.write_text( + json.dumps( + { + "images": [ + { + "id": 1, + "file_name": "000000000001.jpg", + "height": 2, + "width": 2, + } + ], + "categories": [{"id": 1}], + "annotations": [ + { + "id": 1, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "area": 1, + "iscrowd": 0, + } + ], + } + ), + encoding="utf-8", + ) + + assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") + + _write_file(tmp_path / "val2017" / "000000000001.jpg") + assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") + + def test_coco_annotation_identity_digest_rejects_wrong_validation_split( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: @@ -573,6 +630,64 @@ def _loadmat(path: Path) -> dict[str, np.ndarray]: ) +def test_widerface_readiness_allows_empty_event_difficulty_contributions( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """A difficulty split may have no eligible faces in one event but not all.""" + + face_boxes = np.empty((2, 1), dtype=object) + difficulty = np.empty((2, 1), dtype=object) + for event_index in range(2): + event_faces = np.empty((1, 1), dtype=object) + event_faces[0, 0] = np.array([[0, 0, 1, 1]], dtype=np.float64) + face_boxes[event_index, 0] = event_faces + event_indices = np.empty((1, 1), dtype=object) + event_indices[0, 0] = ( + np.empty((0, 0), dtype=np.int64) + if event_index == 0 + else np.array([1], dtype=np.int64) + ) + difficulty[event_index, 0] = event_indices + + def _loadmat(path: Path) -> dict[str, np.ndarray]: + if path.name == "wider_face_val.mat": + return {"face_bbx_list": face_boxes} + return {"gt_list": difficulty} + + monkeypatch.setattr(readiness, "loadmat", _loadmat) + + assert readiness._widerface_difficulty_metadata_ready( + tmp_path, + {"0--Parade": {"first.jpg"}, "1--Handshaking": {"second.jpg"}}, + ) + + +def test_widerface_readiness_rejects_duplicate_face_boxes( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Duplicate ground-truth rows cannot alter the WiderFace recall denominator.""" + + face_boxes = np.empty((1, 1), dtype=object) + event_faces = np.empty((1, 1), dtype=object) + event_faces[0, 0] = np.array([[0, 0, 1, 1], [0, 0, 1, 1]], dtype=np.float64) + face_boxes[0, 0] = event_faces + difficulty = np.empty((1, 1), dtype=object) + event_indices = np.empty((1, 1), dtype=object) + event_indices[0, 0] = np.array([1, 2], dtype=np.int64) + difficulty[0, 0] = event_indices + + def _loadmat(path: Path) -> dict[str, np.ndarray]: + if path.name == "wider_face_val.mat": + return {"face_bbx_list": face_boxes} + return {"gt_list": difficulty} + + monkeypatch.setattr(readiness, "loadmat", _loadmat) + + assert not readiness._widerface_difficulty_metadata_ready( + tmp_path, {"0--Parade": {"sample.jpg"}} + ) + + @pytest.mark.parametrize("relative_image_dir", ["images", "images/val"]) def test_dotav1_readiness_requires_complete_image_label_pairs( monkeypatch: pytest.MonkeyPatch, diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py index 51f25ae..bca0248 100644 --- a/tests/test_eval_coco.py +++ b/tests/test_eval_coco.py @@ -255,6 +255,39 @@ def test_coco_evaluation_rejects_visible_keypoints_outside_images( ) +def test_coco_evaluation_rejects_pose_area_larger_than_its_box( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Do not let inflated pose areas weaken OKS matching thresholds.""" + + dataset = SimpleNamespace( + coco=SimpleNamespace( + cats={1: {}}, + imgs={1: {"height": 10, "width": 10}}, + anns={ + 7: { + "id": 7, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "area": 100, + "iscrowd": 0, + "keypoints": [0, 0, 0] * 17, + "num_keypoints": 0, + } + }, + ) + ) + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) + + with pytest.raises(ValueError, match="invalid task-specific annotations"): + eval_coco_module.eval_coco_metrics( + SimpleNamespace(post_cfg={"task": "pose_estimation", "dataset": "coco"}), + "/dataset", + batch_size=1, + ) + + def test_coco_result_formatter_rejects_truncated_postprocess_batch() -> None: """Require one decoded result for every submitted COCO image.""" diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index 8963ead..a6c209e 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -204,6 +204,34 @@ def test_dota_annotations_reject_degenerate_polygons( _load_ground_truths(str(tmp_path), dataset) +@pytest.mark.parametrize( + ("label_path", "annotation"), + [ + ("labels/val/image.txt", "0 0 0 0.2 0 0.2 0.2 0 0"), + ("labels/val_original/image.txt", "0 0 20 0 20 20 0 0 plane 0"), + ], +) +def test_dota_annotations_reject_repeated_vertices( + tmp_path, label_path: str, annotation: str +) -> None: + """DOTAv1 quadrilaterals cannot silently degrade into triangles.""" + + path = tmp_path / label_path + path.parent.mkdir(parents=True) + path.write_text(annotation, encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises(ValueError, match="four distinct vertices"): + _load_ground_truths(str(tmp_path), dataset) + + @pytest.mark.parametrize( ("label_path", "annotation"), [ From 0fd5226975335f8c89f2720ca3d99289931f4ac3 Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 18 Aug 2026 11:09:46 +0900 Subject: [PATCH 47/48] fix: validate cached vision datasets --- mblt_vision/utils/datasets/organizer.py | 18 ++++++ mblt_vision/utils/datasets/readiness.py | 69 +++++++++++++++++++++-- mblt_vision/utils/evaluation/eval_dota.py | 15 +++++ tests/test_compile_vision.py | 21 +++++-- tests/test_dataset_organizer.py | 28 +++++++-- tests/test_dataset_readiness.py | 6 +- tests/test_eval_coco.py | 9 +-- tests/test_eval_dota.py | 28 +++++++++ 8 files changed, 174 insertions(+), 20 deletions(-) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index ade7dfb..3c20afe 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -350,6 +350,7 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: raise ValueError(f"Unable to decode staged DOTAv1 image: {image_path}.") height, width = image.shape[:2] has_positive_target = False + seen_targets: set[tuple[int | str, tuple[float, ...]]] = set() for line_number, line in enumerate( label_path.read_text(encoding="utf-8").splitlines(), start=1 ): @@ -417,16 +418,25 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: raise ValueError( f"Unsupported staged DOTAv1 class index at {label_path}:{line_number}." ) + target_class: int | str = class_index else: difficulty = fields[9] if fields[8] not in DOTAV1_CLASS_TO_IDX: raise ValueError( f"Unsupported staged DOTAv1 class at {label_path}:{line_number}." ) + target_class = fields[8] if difficulty not in {"0", "1", "2"}: raise ValueError( f"Unsupported staged DOTAv1 difficulty flag at {label_path}:{line_number}." ) + target_key = (target_class, tuple(image_coordinates)) + if target_key in seen_targets: + raise ValueError( + "Duplicate staged DOTAv1 annotation target at " + f"{label_path}:{line_number}." + ) + seen_targets.add(target_key) has_positive_target |= difficulty == "0" if has_positive_target: positive_stems[kind].add(label_path.stem) @@ -1859,6 +1869,7 @@ def _write_dotav1_yolo_labels( with Image.open(image_path) as image: width, height = image.size converted_lines: list[str] = [] + seen_targets: set[tuple[str, tuple[float, ...]]] = set() with open(original_label_path, encoding="utf-8") as label_file: for line_number, line in enumerate(label_file, start=1): fields = line.split() @@ -1896,6 +1907,13 @@ def _write_dotav1_yolo_labels( f"Unsupported DOTAv1 difficulty flag {fields[9]!r} in " f"{original_label_path} at line {line_number}." ) + target_key = (class_name, tuple(coordinates)) + if target_key in seen_targets: + raise ValueError( + "Duplicate DOTAv1 annotation target in " + f"{original_label_path} at line {line_number}." + ) + seen_targets.add(target_key) normalized = [ coordinate / (width if index % 2 == 0 else height) for index, coordinate in enumerate(coordinates) diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index 4fb982b..fa62e2a 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -19,6 +19,7 @@ from ..._tasks import normalize_vision_task from ...datasets import get_dataset_category_ids +from .cityscapes import CITYSCAPES_SOURCE_TO_TRAIN_ID IMAGE_SUFFIXES = {".bmp", ".jpeg", ".jpg", ".png", ".tif", ".tiff", ".webp"} IMAGENET_CLASS_COUNT = 1000 @@ -432,7 +433,7 @@ def _coco_task_annotations_valid( if image_shape is not None: height, width = image_shape if any( - keypoints[index + 2] == 2 + keypoints[index + 2] > 0 and not ( 0 <= keypoints[index] < width and 0 <= keypoints[index + 1] < height @@ -842,10 +843,11 @@ def _widerface_image_shapes( return None event_shapes: list[tuple[int, int]] = [] for stem in image_stems: + image_path = root / "images" / event_names[0] / f"{stem}.jpg" + if image_path.is_symlink(): + return None try: - with Image.open( - root / "images" / event_names[0] / f"{stem}.jpg" - ) as image: + with Image.open(image_path) as image: image.load() width, height = image.size except OSError: @@ -878,11 +880,31 @@ def dense_dataset_ready(data_path: str | Path, dataset: str) -> bool: depths = _files_by_stem(root / "depth", {".npy"}, reject_symlinks=True) if images is None or depths is None: return False - return ( + if not ( len(images) == NYU_DEPTH_VALIDATION_SAMPLE_COUNT and len(depths) == NYU_DEPTH_VALIDATION_SAMPLE_COUNT and images.keys() == depths.keys() - ) + ): + return False + for stem, image_path in images.items(): + try: + with Image.open(image_path) as image: + image.load() + image_shape = (image.height, image.width) + depth = np.load(depths[stem], allow_pickle=False) + except (OSError, ValueError): + return False + if ( + not np.issubdtype(depth.dtype, np.number) + or np.issubdtype(depth.dtype, np.complexfloating) + or depth.ndim != 2 + or depth.shape != image_shape + or not np.isfinite(depth).all() + or bool((depth < 0).any()) + or not bool(((depth >= 0.001) & (depth <= 100.0)).any()) + ): + return False + return True images = _files_by_stem( root / "images", {".jpg", ".jpeg", ".png"}, reject_symlinks=True @@ -891,6 +913,41 @@ def dense_dataset_ready(data_path: str | Path, dataset: str) -> bool: if images is None or annotations is None or images.keys() != annotations.keys(): return False + for stem, image_path in images.items(): + try: + with Image.open(image_path) as image: + image.load() + image_shape = (image.height, image.width) + with Image.open(annotations[stem]) as annotation_image: + annotation = np.asarray(annotation_image) + except OSError: + return False + if normalized == "cityscapes" and annotation.ndim == 3: + if ( + annotation.shape[2] not in {3, 4} + or not np.array_equal(annotation[..., 0], annotation[..., 1]) + or not np.array_equal(annotation[..., 0], annotation[..., 2]) + ): + return False + annotation = annotation[..., 0] + if annotation.ndim != 2 or annotation.shape != image_shape: + return False + if normalized == "ade20k": + if annotation.dtype != np.uint8 or ( + annotation.size and int(annotation.max()) > 150 + ): + return False + if not bool((annotation > 0).any()): + return False + elif normalized == "cityscapes": + if annotation.size and ( + int(annotation.min()) < 0 or int(annotation.max()) > 255 + ): + return False + train_ids = CITYSCAPES_SOURCE_TO_TRAIN_ID[annotation.astype(np.uint8)] + if not bool((train_ids != 255).any()): + return False + if normalized == "ade20k": return ( len(images) == ADE20K_VALIDATION_SAMPLE_COUNT diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 535c898..11e7797 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -150,6 +150,7 @@ def _load_ground_truths( polygons = [] ignore_classes = [] ignore_polygons = [] + seen_targets: set[tuple[int, tuple[float, ...]]] = set() # Organizer output keeps the official original annotation alongside the # normalized convenience label. Prefer the authoritative original when @@ -192,6 +193,13 @@ def _load_ground_truths( f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " f"{label_path}:{line_number}." ) + target_key = (cls, tuple(coords.flatten().tolist())) + if target_key in seen_targets: + raise ValueError( + "Duplicate DOTAv1 annotation target at " + f"{label_path}:{line_number}." + ) + seen_targets.add(target_key) if len(parts) >= 10 and parts[9] in {"1", "2"}: ignore_classes.append(cls) ignore_polygons.append(coords) @@ -236,6 +244,13 @@ def _load_ground_truths( f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " f"{original_label_path}:{line_number}." ) + target_key = (cls, tuple(coords.flatten().tolist())) + if target_key in seen_targets: + raise ValueError( + "Duplicate DOTAv1 annotation target at " + f"{original_label_path}:{line_number}." + ) + seen_targets.add(target_key) if parts[9] in {"1", "2"}: ignore_classes.append(cls) ignore_polygons.append(coords) diff --git a/tests/test_compile_vision.py b/tests/test_compile_vision.py index 4c0c7a2..467f55b 100644 --- a/tests/test_compile_vision.py +++ b/tests/test_compile_vision.py @@ -8,6 +8,7 @@ import numpy as np import pytest +from PIL import Image from mblt_vision.compile import vision as compile_module from mblt_vision.compile.vision import ( @@ -42,6 +43,13 @@ def _write_images(directory: Path, names: list[str]) -> list[Path]: return created +def _write_image(path: Path, size: tuple[int, int] = (2, 2)) -> None: + """Write a minimal valid RGB image for dataset-readiness tests.""" + + path.parent.mkdir(parents=True, exist_ok=True) + Image.new("RGB", size).save(path) + + def test_resolve_model_config_derives_onnx_filename() -> None: """Derive ONNX artifact names consistently from MXQ artifact names.""" @@ -324,11 +332,12 @@ def test_depth_dataset_readiness_requires_complete_pairs( """Require all paired NYU samples before sampling calibration images.""" monkeypatch.setattr(readiness_module, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) - _write_images(tmp_path / "images", ["image.png"]) + image_path = tmp_path / "images" / "image.png" + _write_image(image_path) (tmp_path / "depth").mkdir() assert not compile_module._dataset_ready("depth_estimation", tmp_path, "nyu-depth") - (tmp_path / "depth" / "image.npy").write_bytes(b"depth") + np.save(tmp_path / "depth" / "image.npy", np.ones((2, 2), dtype=np.float32)) assert compile_module._dataset_ready("depth_estimation", tmp_path, "nyu-depth") @@ -350,11 +359,15 @@ def test_semantic_dataset_readiness_checks_taxonomy( monkeypatch.setattr(readiness_module, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) monkeypatch.setattr(readiness_module, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 1) - image_path = _write_images(tmp_path / "images", [image_name])[0] + image_path = tmp_path / "images" / image_name + _write_image(image_path) (tmp_path / "annotations").mkdir() assert not compile_module._dataset_ready("semantic_segmentation", tmp_path, dataset) - (tmp_path / "annotations" / f"{image_path.stem}.png").write_bytes(b"annotation") + annotation_value = 1 if dataset == "ade20k" else 7 + Image.new("L", (2, 2), color=annotation_value).save( + tmp_path / "annotations" / f"{image_path.stem}.png" + ) if dataset == "ade20k": (tmp_path / "objectInfo150.txt").write_bytes(b"labels") (tmp_path / "sceneCategories.txt").write_bytes(b"scenes") diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index fb7da89..ef45532 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -100,6 +100,21 @@ def test_dotav1_organizer_rejects_repeated_polygon_vertices(tmp_path: Path) -> N ) +def test_dotav1_organizer_rejects_duplicate_targets(tmp_path: Path) -> None: + """Reject duplicate raw targets before creating normalized labels.""" + + image_path = tmp_path / "image.png" + Image.new("RGB", (100, 50)).save(image_path) + source_path = tmp_path / "source.txt" + target = "0 0 20 0 20 20 0 20 plane 0\n" + source_path.write_text(target * 2, encoding="utf-8") + + with pytest.raises(ValueError, match="Duplicate DOTAv1 annotation target"): + organizer._write_dotav1_yolo_labels( + str(image_path), str(source_path), str(tmp_path / "normalized.txt") + ) + + def test_dotav1_stage_requires_a_non_difficult_target(tmp_path: Path) -> None: """Do not replace a usable DOTAv1 cache with an unscorable staged split.""" @@ -1079,6 +1094,10 @@ def test_organize_ade20k_extracts_flat_validation_layout( monkeypatch.setattr(readiness_module, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) monkeypatch.setattr(organizer, "_validate_staged_payloads", lambda *_: None) archive_path = tmp_path / "ADEChallengeData2016.zip" + image_buffer = io.BytesIO() + Image.new("RGB", (1, 1)).save(image_buffer, format="JPEG") + annotation_buffer = io.BytesIO() + Image.new("L", (1, 1), color=1).save(annotation_buffer, format="PNG") with ZipFile(archive_path, "w") as archive: archive.writestr( "ADEChallengeData2016/images/training/ADE_train_00000001.jpg", b"training" @@ -1088,11 +1107,12 @@ def test_organize_ade20k_extracts_flat_validation_layout( b"training", ) archive.writestr( - "ADEChallengeData2016/images/validation/ADE_val_00000001.jpg", b"validation" + "ADEChallengeData2016/images/validation/ADE_val_00000001.jpg", + image_buffer.getvalue(), ) archive.writestr( "ADEChallengeData2016/annotations/validation/ADE_val_00000001.png", - b"validation", + annotation_buffer.getvalue(), ) archive.writestr("ADEChallengeData2016/objectInfo150.txt", b"labels") archive.writestr("ADEChallengeData2016/sceneCategories.txt", b"scenes") @@ -1102,10 +1122,10 @@ def test_organize_ade20k_extracts_flat_validation_layout( assert ( output_dir / "images" / "ADE_val_00000001.jpg" - ).read_bytes() == b"validation" + ).read_bytes() == image_buffer.getvalue() assert ( output_dir / "annotations" / "ADE_val_00000001.png" - ).read_bytes() == b"validation" + ).read_bytes() == annotation_buffer.getvalue() assert (output_dir / "objectInfo150.txt").read_bytes() == b"labels" assert (output_dir / "sceneCategories.txt").read_bytes() == b"scenes" assert not (output_dir / "images" / "training").exists() diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index 3fd176d..a913830 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -794,8 +794,10 @@ def test_ade20k_readiness_requires_source_metadata( """Require both ADE20K metadata files before reusing an organized cache.""" monkeypatch.setattr(readiness, "ADE20K_VALIDATION_SAMPLE_COUNT", 1) - _write_file(tmp_path / "images" / "ADE_val_00000001.jpg") - _write_file(tmp_path / "annotations" / "ADE_val_00000001.png") + _write_image(tmp_path / "images" / "ADE_val_00000001.jpg", (1, 1)) + annotation_path = tmp_path / "annotations" / "ADE_val_00000001.png" + annotation_path.parent.mkdir(parents=True, exist_ok=True) + Image.new("L", (1, 1), color=1).save(annotation_path) assert not readiness.dataset_ready(tmp_path, "semantic_segmentation", "ade20k") diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py index bca0248..7265625 100644 --- a/tests/test_eval_coco.py +++ b/tests/test_eval_coco.py @@ -220,13 +220,14 @@ def test_coco_evaluation_rejects_polygons_without_rasterized_foreground( ) -def test_coco_evaluation_rejects_visible_keypoints_outside_images( - monkeypatch: pytest.MonkeyPatch, +@pytest.mark.parametrize("visibility", [1, 2]) +def test_coco_evaluation_rejects_labeled_keypoints_outside_images( + monkeypatch: pytest.MonkeyPatch, visibility: int ) -> None: - """Visible pose coordinates must refer to pixels in the source image.""" + """Both occluded and visible pose coordinates must be in the source image.""" keypoints = [0.0, 0.0, 0.0] * 17 - keypoints[:3] = [11.0, 1.0, 2.0] + keypoints[:3] = [11.0, 1.0, visibility] dataset = SimpleNamespace( coco=SimpleNamespace( cats={1: {}}, diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index a6c209e..5d66604 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -151,6 +151,34 @@ def test_normalized_truncated_annotation_raises_with_file_and_line(tmp_path) -> _load_ground_truths(str(tmp_path), dataset) +@pytest.mark.parametrize( + ("label_path", "annotation"), + [ + ("labels/val/image.txt", "0 0 0 0.2 0 0.2 0.2 0 0.2"), + ("labels/val_original/image.txt", "0 0 20 0 20 20 0 20 plane 0"), + ], +) +def test_dota_annotations_reject_duplicate_targets( + tmp_path, label_path: str, annotation: str +) -> None: + """A target may be represented only once within one source image.""" + + path = tmp_path / label_path + path.parent.mkdir(parents=True) + path.write_text(f"{annotation}\n{annotation}\n", encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises(ValueError, match="Duplicate DOTAv1 annotation target"): + _load_ground_truths(str(tmp_path), dataset) + + def test_original_truncated_annotation_raises_with_file_and_line(tmp_path) -> None: """Require a difficulty flag when loading original DOTAv1 labels directly.""" From c1ff88935e14eafcafd03960bafa038730d2f813 Mon Sep 17 00:00:00 2001 From: jinman Date: Tue, 18 Aug 2026 11:35:09 +0900 Subject: [PATCH 48/48] fix: harden vision dataset validation --- mblt_vision/utils/datasets/dataloader.py | 12 +++ mblt_vision/utils/datasets/organizer.py | 8 +- mblt_vision/utils/datasets/readiness.py | 71 +++++++++++++----- mblt_vision/utils/evaluation/eval_coco.py | 89 +++++++++++++++++++++-- mblt_vision/utils/evaluation/eval_dota.py | 17 ++++- tests/test_dataset_organizer.py | 19 +++++ tests/test_dataset_readiness.py | 85 +++++++++++++++++++++- tests/test_eval_coco.py | 66 ++++++++++++++++- tests/test_eval_dota.py | 39 +++++++++- 9 files changed, 372 insertions(+), 34 deletions(-) diff --git a/mblt_vision/utils/datasets/dataloader.py b/mblt_vision/utils/datasets/dataloader.py index 3bdfa1b..d23d719 100644 --- a/mblt_vision/utils/datasets/dataloader.py +++ b/mblt_vision/utils/datasets/dataloader.py @@ -4,6 +4,7 @@ from __future__ import annotations +import json import os from pathlib import Path from typing import Any, Callable @@ -58,6 +59,17 @@ def __init__( annotation whose ``num_keypoints`` is greater than this value. """ self.root = root + try: + raw_annotation = json.loads(Path(annFile).read_text(encoding="utf-8")) + except (OSError, UnicodeError, json.JSONDecodeError) as exc: + raise ValueError( + f"Unable to read COCO annotation file {annFile}: {exc}." + ) from exc + if not isinstance(raw_annotation, dict): + raise ValueError( + f"COCO annotation file {annFile} must contain a JSON object." + ) + self.raw_annotation = raw_annotation self.coco = COCO(annFile) if min_keypoints is None: self.ids = list(sorted(self.coco.imgs.keys())) diff --git a/mblt_vision/utils/datasets/organizer.py b/mblt_vision/utils/datasets/organizer.py index 3c20afe..f8c3484 100644 --- a/mblt_vision/utils/datasets/organizer.py +++ b/mblt_vision/utils/datasets/organizer.py @@ -40,6 +40,7 @@ DOTAV1_VALIDATION_SAMPLE_COUNT, IMAGE_SUFFIXES, NYU_DEPTH_VALIDATION_SAMPLE_COUNT, + _canonicalize_quadrilateral, _path_has_symlink_component, _polygon_has_positive_image_overlap, dataset_ready, @@ -430,7 +431,10 @@ def _validate_staged_dotav1_labels(staged_root: Path) -> None: raise ValueError( f"Unsupported staged DOTAv1 difficulty flag at {label_path}:{line_number}." ) - target_key = (target_class, tuple(image_coordinates)) + target_key = ( + target_class, + _canonicalize_quadrilateral(image_coordinates), + ) if target_key in seen_targets: raise ValueError( "Duplicate staged DOTAv1 annotation target at " @@ -1907,7 +1911,7 @@ def _write_dotav1_yolo_labels( f"Unsupported DOTAv1 difficulty flag {fields[9]!r} in " f"{original_label_path} at line {line_number}." ) - target_key = (class_name, tuple(coordinates)) + target_key = (class_name, _canonicalize_quadrilateral(coordinates)) if target_key in seen_targets: raise ValueError( "Duplicate DOTAv1 annotation target in " diff --git a/mblt_vision/utils/datasets/readiness.py b/mblt_vision/utils/datasets/readiness.py index fa62e2a..3aeaa5d 100644 --- a/mblt_vision/utils/datasets/readiness.py +++ b/mblt_vision/utils/datasets/readiness.py @@ -120,6 +120,25 @@ def _has_positive_polygon_area(polygon: list[int | float]) -> bool: return bool(abs(signed_double_area) > 0) +def _canonicalize_quadrilateral( + coordinates: list[int | float] | tuple[int | float, ...], +) -> tuple[float, ...]: + """Return a quadrilateral key independent of its start vertex and winding.""" + + if len(coordinates) != 8: + raise ValueError( + "A quadrilateral must contain exactly four two-dimensional vertices." + ) + points = tuple( + (float(coordinates[index]), float(coordinates[index + 1])) + for index in range(0, len(coordinates), 2) + ) + candidates = [] + for winding in (points, tuple(reversed(points))): + candidates.extend(winding[index:] + winding[:index] for index in range(4)) + return tuple(coordinate for point in min(candidates) for coordinate in point) + + def _polygon_has_positive_image_overlap( polygon: list[int | float], image_shape: tuple[int, int] | None ) -> bool: @@ -268,7 +287,7 @@ def _load_coco_image_names( ): image_shapes[image_id] = (height, width) else: - image_shapes[image_id] = None + return None if ( len(names) != len(image_records) or len(names) != len(set(names)) @@ -352,6 +371,10 @@ def _coco_task_annotations_valid( or category_id not in category_ids ): return False + image_shape = image_shapes.get(image_id) + if image_shape is None: + return False + image_height, image_width = image_shape bbox = record.get("bbox") if ( not isinstance(bbox, list) @@ -364,6 +387,10 @@ def _coco_task_annotations_valid( ) or bbox[2] <= 0 or bbox[3] <= 0 + or bbox[0] >= image_width + or bbox[0] + bbox[2] <= 0 + or bbox[1] >= image_height + or bbox[1] + bbox[3] <= 0 ): return False area = record.get("area") @@ -373,6 +400,7 @@ def _coco_task_annotations_valid( or isinstance(area, bool) or not np.isfinite(area) or area <= 0 + or area > image_height * image_width or not isinstance(iscrowd, int) or isinstance(iscrowd, bool) or iscrowd not in {0, 1} @@ -429,18 +457,15 @@ def _coco_task_annotations_valid( != sum(keypoints[index] > 0 for index in range(2, len(keypoints), 3)) ): return False - image_shape = image_shapes.get(image_id) - if image_shape is not None: - height, width = image_shape - if any( - keypoints[index + 2] > 0 - and not ( - 0 <= keypoints[index] < width - and 0 <= keypoints[index + 1] < height - ) - for index in range(0, len(keypoints), 3) - ): - return False + height, width = image_shape + if any( + keypoints[index + 2] > 0 + and not ( + 0 <= keypoints[index] < width and 0 <= keypoints[index + 1] < height + ) + for index in range(0, len(keypoints), 3) + ): + return False annotation_ids.append(annotation_id) return len(annotation_ids) == len(set(annotation_ids)) @@ -706,6 +731,8 @@ def _widerface_difficulty_metadata_ready( face_array.ndim != 2 or face_array.shape[1] != 4 or len(face_array) == 0 + or not np.issubdtype(face_array.dtype, np.number) + or np.issubdtype(face_array.dtype, np.complexfloating) or not np.isfinite(face_array).all() or (face_array[:, 2:] <= 0).any() or len(np.unique(face_array, axis=0)) != len(face_array) @@ -741,6 +768,8 @@ def _widerface_difficulty_metadata_ready( keep_indices = keep_indices.reshape(1) elif keep_indices.ndim == 2: if keep_indices.size == 0: + if keep_indices.shape[0] != 0: + return False keep_indices = keep_indices.reshape(0) elif keep_indices.shape[1] == 1: keep_indices = keep_indices[:, 0] @@ -891,17 +920,21 @@ def dense_dataset_ready(data_path: str | Path, dataset: str) -> bool: with Image.open(image_path) as image: image.load() image_shape = (image.height, image.width) - depth = np.load(depths[stem], allow_pickle=False) + raw_depth = np.load(depths[stem], allow_pickle=False) except (OSError, ValueError): return False + if not np.issubdtype(raw_depth.dtype, np.number) or np.issubdtype( + raw_depth.dtype, np.complexfloating + ): + return False + with np.errstate(over="ignore", invalid="ignore"): + depth = np.asarray(raw_depth, dtype=np.float32) if ( - not np.issubdtype(depth.dtype, np.number) - or np.issubdtype(depth.dtype, np.complexfloating) - or depth.ndim != 2 + depth.ndim != 2 or depth.shape != image_shape or not np.isfinite(depth).all() or bool((depth < 0).any()) - or not bool(((depth >= 0.001) & (depth <= 100.0)).any()) + or not bool(((depth > 0.001) & (depth < 100.0)).any()) ): return False return True @@ -944,6 +977,8 @@ def dense_dataset_ready(data_path: str | Path, dataset: str) -> bool: int(annotation.min()) < 0 or int(annotation.max()) > 255 ): return False + if not bool(np.all((annotation <= 33) | (annotation == 255))): + return False train_ids = CITYSCAPES_SOURCE_TO_TRAIN_ID[annotation.astype(np.uint8)] if not bool((train_ids != 255).any()): return False diff --git a/mblt_vision/utils/evaluation/eval_coco.py b/mblt_vision/utils/evaluation/eval_coco.py index 92175f3..b1e00c7 100644 --- a/mblt_vision/utils/evaluation/eval_coco.py +++ b/mblt_vision/utils/evaluation/eval_coco.py @@ -59,6 +59,36 @@ def _require_batch_cardinality(expected: int, **values: Any) -> None: def _validate_coco_dataset_taxonomy(dataset: CustomCOCODataset, task: str) -> None: """Ensure direct COCO evaluation uses only task-compatible category IDs.""" + raw_annotation = getattr(dataset, "raw_annotation", None) + if raw_annotation is not None and not isinstance(raw_annotation, dict): + raise ValueError("COCO evaluation dataset has invalid raw annotation data.") + raw_images = ( + raw_annotation.get("images") if isinstance(raw_annotation, dict) else None + ) + raw_categories = ( + raw_annotation.get("categories") if isinstance(raw_annotation, dict) else None + ) + raw_annotations = ( + raw_annotation.get("annotations") if isinstance(raw_annotation, dict) else None + ) + raw_image_records: list[Any] = [] + raw_category_records: list[Any] = [] + raw_annotation_records: list[Any] = [] + if raw_annotation is not None: + if not isinstance(raw_images, list): + raise ValueError("COCO evaluation dataset has malformed raw image table.") + if not isinstance(raw_categories, list): + raise ValueError( + "COCO evaluation dataset has malformed raw category table." + ) + if not isinstance(raw_annotations, list): + raise ValueError( + "COCO evaluation dataset has malformed raw annotation table." + ) + raw_image_records = raw_images + raw_category_records = raw_categories + raw_annotation_records = raw_annotations + categories = getattr(dataset.coco, "cats", None) if not isinstance(categories, dict) or not categories: raise ValueError("COCO evaluation dataset must define at least one category.") @@ -92,18 +122,65 @@ def _validate_coco_dataset_taxonomy(dataset: CustomCOCODataset, task: str) -> No ): raise ValueError("COCO evaluation dataset contains invalid image metadata.") height, width = image.get("height"), image.get("width") - image_shapes[image_id] = ( - (height, width) - if isinstance(height, int) + if not ( + isinstance(height, int) and not isinstance(height, bool) and height > 0 and isinstance(width, int) and not isinstance(width, bool) and width > 0 - else None - ) + ): + raise ValueError( + "COCO evaluation dataset contains invalid image dimensions." + ) + image_shapes[image_id] = (height, width) + + annotation_records = ( + raw_annotation_records + if raw_annotation is not None + else list(annotations.values()) + ) + if not annotation_records: + raise ValueError("COCO evaluation dataset must define at least one annotation.") + if raw_annotation is not None: + raw_image_ids = [ + record.get("id") if isinstance(record, dict) else None + for record in raw_image_records + ] + raw_category_ids = [ + record.get("id") if isinstance(record, dict) else None + for record in raw_category_records + ] + raw_annotation_ids = [ + record.get("id") if isinstance(record, dict) else None + for record in raw_annotation_records + ] + if ( + any( + not isinstance(record_id, int) or isinstance(record_id, bool) + for record_id in ( + *raw_image_ids, + *raw_category_ids, + *raw_annotation_ids, + ) + ) + or len(raw_image_ids) != len(set(raw_image_ids)) + or len(raw_category_ids) != len(set(raw_category_ids)) + or len(raw_annotation_ids) != len(set(raw_annotation_ids)) + ): + raise ValueError( + "COCO evaluation dataset has duplicate or invalid raw IDs." + ) + if ( + set(raw_image_ids) != set(images) + or set(raw_category_ids) != category_ids + or set(raw_annotation_ids) != set(annotations) + ): + raise ValueError( + "COCO evaluation dataset raw and indexed records disagree." + ) if not _coco_task_annotations_valid( - list(annotations.values()), + annotation_records, image_ids=set(images), category_ids=category_ids, image_shapes=image_shapes, diff --git a/mblt_vision/utils/evaluation/eval_dota.py b/mblt_vision/utils/evaluation/eval_dota.py index 11e7797..8db6392 100644 --- a/mblt_vision/utils/evaluation/eval_dota.py +++ b/mblt_vision/utils/evaluation/eval_dota.py @@ -26,7 +26,10 @@ get_dotav1_class_num, get_dotav1_label, ) -from ..datasets.readiness import _polygon_has_positive_image_overlap +from ..datasets.readiness import ( + _canonicalize_quadrilateral, + _polygon_has_positive_image_overlap, +) from ..letterbox import RatioPad, resolve_ratio_pad if TYPE_CHECKING: @@ -193,7 +196,10 @@ def _load_ground_truths( f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " f"{label_path}:{line_number}." ) - target_key = (cls, tuple(coords.flatten().tolist())) + target_key = ( + cls, + _canonicalize_quadrilateral(coords.flatten().tolist()), + ) if target_key in seen_targets: raise ValueError( "Duplicate DOTAv1 annotation target at " @@ -244,7 +250,10 @@ def _load_ground_truths( f"Unsupported DOTAv1 difficulty flag {parts[9]!r} at " f"{original_label_path}:{line_number}." ) - target_key = (cls, tuple(coords.flatten().tolist())) + target_key = ( + cls, + _canonicalize_quadrilateral(coords.flatten().tolist()), + ) if target_key in seen_targets: raise ValueError( "Duplicate DOTAv1 annotation target at " @@ -300,7 +309,7 @@ def _load_ground_truths( def format_dota_results( nms_outs: Results, input_shape: tuple[int, ...], - org_shape: tuple[int, ...], + org_shape: list[tuple[int, int]], ratio_pad: list[Any], image_ids: tuple[str, ...], postprocess: Any, diff --git a/tests/test_dataset_organizer.py b/tests/test_dataset_organizer.py index ef45532..94a4098 100644 --- a/tests/test_dataset_organizer.py +++ b/tests/test_dataset_organizer.py @@ -115,6 +115,25 @@ def test_dotav1_organizer_rejects_duplicate_targets(tmp_path: Path) -> None: ) +def test_dotav1_organizer_rejects_reordered_duplicate_targets( + tmp_path: Path, +) -> None: + """Raw DOTAv1 labels cannot duplicate a target with another start vertex.""" + + image_path = tmp_path / "image.png" + Image.new("RGB", (100, 50)).save(image_path) + source_path = tmp_path / "source.txt" + source_path.write_text( + "0 0 20 0 20 20 0 20 plane 0\n20 0 20 20 0 20 0 0 plane 0\n", + encoding="utf-8", + ) + + with pytest.raises(ValueError, match="Duplicate DOTAv1 annotation target"): + organizer._write_dotav1_yolo_labels( + str(image_path), str(source_path), str(tmp_path / "normalized.txt") + ) + + def test_dotav1_stage_requires_a_non_difficult_target(tmp_path: Path) -> None: """Do not replace a usable DOTAv1 cache with an unscorable staged split.""" diff --git a/tests/test_dataset_readiness.py b/tests/test_dataset_readiness.py index a913830..bf2737f 100644 --- a/tests/test_dataset_readiness.py +++ b/tests/test_dataset_readiness.py @@ -288,6 +288,47 @@ def test_coco_readiness_rejects_invalid_instance_box_geometry( assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") +@pytest.mark.parametrize( + ("bbox", "area"), + [([3, 0, 1, 1], 1), ([0, 0, 1, 1], 5)], +) +def test_coco_readiness_rejects_unrealizable_box_or_area( + monkeypatch: pytest.MonkeyPatch, + tmp_path: Path, + bbox: list[int], + area: int, +) -> None: + """Boxes and areas must describe foreground that fits the source image.""" + + monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 1) + monkeypatch.setitem(readiness.COCO_ANNOTATION_COUNTS, "instances_val2017.json", 1) + monkeypatch.setitem(readiness.COCO_CATEGORY_COUNTS, "instances_val2017.json", 1) + monkeypatch.setattr(readiness, "COCO_CATEGORY_IDS", frozenset({1})) + image_name = "000000000001.jpg" + _write_image(tmp_path / "val2017" / image_name, (2, 2)) + (tmp_path / "instances_val2017.json").write_text( + json.dumps( + { + "images": [{"id": 1, "file_name": image_name, "height": 2, "width": 2}], + "categories": [{"id": 1}], + "annotations": [ + { + "id": 1, + "image_id": 1, + "category_id": 1, + "bbox": bbox, + "area": area, + "iscrowd": 0, + } + ], + } + ), + encoding="utf-8", + ) + + assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") + + @pytest.mark.parametrize( ("counts", "expected_ready"), [([3, 1], True), ("31", True), ([4], False), ([3], False), ("4", False)], @@ -383,13 +424,55 @@ def test_coco_readiness_rejects_corrupt_or_mismatched_images( assert not readiness.dataset_ready(tmp_path, "object_detection", "coco") +def test_nyu_readiness_matches_the_evaluator_depth_domain( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Cache reuse must reject depth targets that evaluation cannot score.""" + + monkeypatch.setattr(readiness, "NYU_DEPTH_VALIDATION_SAMPLE_COUNT", 1) + _write_image(tmp_path / "images" / "sample.png", (2, 2)) + depth_path = tmp_path / "depth" / "sample.npy" + depth_path.parent.mkdir() + + np.save(depth_path, np.full((2, 2), 0.001, dtype=np.float64)) + assert not readiness.dense_dataset_ready(tmp_path, "nyu-depth") + + np.save( + depth_path, + np.array([[1.0, np.finfo(np.float64).max], [1.0, 1.0]], dtype=np.float64), + ) + assert not readiness.dense_dataset_ready(tmp_path, "nyu-depth") + + np.save(depth_path, np.ones((2, 2), dtype=np.float32)) + assert readiness.dense_dataset_ready(tmp_path, "nyu-depth") + + +def test_cityscapes_readiness_rejects_unsupported_source_ids( + monkeypatch: pytest.MonkeyPatch, tmp_path: Path +) -> None: + """Source IDs outside the Cityscapes label taxonomy cannot hide as ignore.""" + + monkeypatch.setattr(readiness, "CITYSCAPES_VALIDATION_SAMPLE_COUNT", 1) + stem = "frankfurt_000000_000000" + _write_image(tmp_path / "images" / f"{stem}.png", (2, 2)) + annotation_path = tmp_path / "annotations" / f"{stem}.png" + annotation_path.parent.mkdir() + Image.new("L", (2, 2), color=34).save(annotation_path) + + assert not readiness.dense_dataset_ready(tmp_path, "cityscapes") + + Image.new("L", (2, 2), color=7).save(annotation_path) + assert readiness.dense_dataset_ready(tmp_path, "cityscapes") + + def test_coco_annotation_identity_digest_rejects_wrong_validation_split( monkeypatch: pytest.MonkeyPatch, tmp_path: Path ) -> None: """Bind a complete COCO annotation table to its canonical image identities.""" images = [ - {"id": index, "file_name": f"{index:012d}.jpg"} for index in range(1, 5001) + {"id": index, "file_name": f"{index:012d}.jpg", "height": 1, "width": 1} + for index in range(1, 5001) ] payload = "".join(f"{item['id']}:{item['file_name']}\n" for item in images).encode() monkeypatch.setattr(readiness, "COCO_VALIDATION_SAMPLE_COUNT", 5000) diff --git a/tests/test_eval_coco.py b/tests/test_eval_coco.py index 7265625..98b0b68 100644 --- a/tests/test_eval_coco.py +++ b/tests/test_eval_coco.py @@ -27,7 +27,18 @@ def __init__(self, root: str, annotation_path: str, **kwargs: Any) -> None: self.ids = [1, 2] self.coco = SimpleNamespace( cats={1: {}}, - anns={}, + anns={ + 1: { + "id": 1, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "area": 1, + "iscrowd": 0, + "keypoints": [0, 0, 0] * 17, + "num_keypoints": 0, + } + }, imgs={1: {"height": 1, "width": 1}, 2: {"height": 1, "width": 1}}, ) @@ -96,6 +107,59 @@ def test_coco_evaluation_rejects_noncanonical_artifact_categories( ) +def test_coco_evaluation_rejects_duplicate_raw_annotation_ids( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """Validate raw COCO IDs before the backend's index can overwrite one row.""" + + annotation = { + "id": 1, + "image_id": 1, + "category_id": 1, + "bbox": [0, 0, 1, 1], + "area": 1, + "iscrowd": 0, + } + dataset = SimpleNamespace( + raw_annotation={ + "images": [{"id": 1, "height": 1, "width": 1}], + "categories": [{"id": 1}], + "annotations": [annotation, annotation.copy()], + }, + coco=SimpleNamespace( + cats={1: {}}, + imgs={1: {"height": 1, "width": 1}}, + anns={1: annotation}, + ), + ) + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) + + with pytest.raises(ValueError, match="duplicate or invalid raw IDs"): + eval_coco_module.eval_coco_metrics( + SimpleNamespace(post_cfg={"task": "object_detection", "dataset": "coco"}), + "/dataset", + batch_size=1, + ) + + +def test_coco_evaluation_rejects_empty_ground_truth( + monkeypatch: pytest.MonkeyPatch, +) -> None: + """A direct COCO run must not present undefined AP as a normal metric.""" + + dataset = SimpleNamespace( + coco=SimpleNamespace(cats={1: {}}, imgs={1: {"height": 1, "width": 1}}, anns={}) + ) + monkeypatch.setattr(eval_coco_module, "CustomCOCODataset", lambda *_: dataset) + + with pytest.raises(ValueError, match="at least one annotation"): + eval_coco_module.eval_coco_metrics( + SimpleNamespace(post_cfg={"task": "object_detection", "dataset": "coco"}), + "/dataset", + batch_size=1, + ) + + def test_coco_evaluation_rejects_undeclared_annotation_categories( monkeypatch: pytest.MonkeyPatch, ) -> None: diff --git a/tests/test_eval_dota.py b/tests/test_eval_dota.py index 5d66604..759054c 100644 --- a/tests/test_eval_dota.py +++ b/tests/test_eval_dota.py @@ -16,6 +16,7 @@ evaluate_dota_predictions, format_dota_results, ) +from mblt_vision.utils.results import Results eval_dota_module = importlib.import_module("mblt_vision.utils.evaluation.eval_dota") @@ -179,6 +180,40 @@ def test_dota_annotations_reject_duplicate_targets( _load_ground_truths(str(tmp_path), dataset) +@pytest.mark.parametrize( + ("label_path", "annotations"), + [ + ( + "labels/val/image.txt", + "0 0 0 0.2 0 0.2 0.2 0 0.2\n0 0.2 0 0.2 0.2 0 0.2 0 0", + ), + ( + "labels/val_original/image.txt", + "0 0 20 0 20 20 0 20 plane 0\n20 0 20 20 0 20 0 0 plane 0", + ), + ], +) +def test_dota_annotations_reject_equivalent_reordered_targets( + tmp_path, label_path: str, annotations: str +) -> None: + """Duplicate quadrilaterals remain duplicates after cyclic reordering.""" + + path = tmp_path / label_path + path.parent.mkdir(parents=True) + path.write_text(annotations, encoding="utf-8") + dataset = cast( + CustomDOTAv1, + SimpleNamespace( + ids=["image"], + image_paths=["unused"], + _load_image=lambda _: np.zeros((100, 100, 3), dtype=np.uint8), + ), + ) + + with pytest.raises(ValueError, match="Duplicate DOTAv1 annotation target"): + _load_ground_truths(str(tmp_path), dataset) + + def test_original_truncated_annotation_raises_with_file_and_line(tmp_path) -> None: """Require a difficulty flag when loading original DOTAv1 labels directly.""" @@ -466,7 +501,7 @@ def test_dota_export_rejects_truncated_converted_batches() -> None: with pytest.raises(ValueError, match="export batch length mismatch"): format_dota_results( - SimpleNamespace(output=[]), + cast(Results, SimpleNamespace(output=[])), (640, 640), [(640, 640), (640, 640)], [None, None], @@ -484,7 +519,7 @@ def test_dota_export_rejects_mismatched_detection_fields() -> None: with pytest.raises(ValueError, match="export detection length mismatch"): format_dota_results( - SimpleNamespace(output=[]), + cast(Results, SimpleNamespace(output=[])), (640, 640), [(640, 640)], [None],

      O>2?!-RiT0?XzdeCO5WEL5JHdKhJLqZiJ4Q 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�{G7bAguFXOZ$`;E@*{ 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

    O>2?!-RiT0?XzdeCO5WEL5JHdKhJLqZiJ4Q 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