diff --git a/public/geocron3d.php b/public/geocron3d.php new file mode 100644 index 0000000..720e92a --- /dev/null +++ b/public/geocron3d.php @@ -0,0 +1,790 @@ + + + + + + + Prototyp + 3D-Erde mit live berechneten Satellitenbahnen + + Ziehen zum Drehen, Mausrad zum Zoomen. Die Satellitenpositionen werden aus den + aktuellen TLE-Daten deines Accounts berechnet und als Objekte oberhalb der Erde gezeigt. + + + + Satelliten-Beschriftungen + + Lade 3D-Szene… + + + + + + + + + + + + + + + + diff --git a/public/header.php b/public/header.php index 4dc2f3a..2005e2f 100644 --- a/public/header.php +++ b/public/header.php @@ -60,6 +60,7 @@ $menuGroups = [ ['href' => 'tagbogen.php', 'label' => 'Tagbogen'], ['href' => 'sternenhimmel.php', 'label' => 'Sternenhimmel'], ['href' => 'geocron/index.php', 'label' => 'Geocron'], + ['href' => 'geocron3d.php', 'label' => 'Geocron 3D'], ], ], [ diff --git a/public/images/3DModels/iss-web/ISS-web.gltf b/public/images/3DModels/iss-web/ISS-web.gltf new file mode 100644 index 0000000..0b41246 --- /dev/null +++ b/public/images/3DModels/iss-web/ISS-web.gltf @@ -0,0 +1,27672 @@ +{ + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2269, + "type": "VEC3", + "max": [ + 1.2608014345169067, + -0.24944773316383362, + 1.9252220392227173 + ], + "min": [ + -2.4818074703216553, + -3.8312668800354004, + -1.6401851177215576 + ] + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2269, + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2269, + "type": "VEC2" + }, + { + "bufferView": 3, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 5418, + "type": "SCALAR" + }, + { + "bufferView": 4, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1619, + "type": "VEC3", + "max": [ + 1.7450571060180664, + -0.10703922063112259, + 1.6743062734603882 + ], + "min": [ + -1.9874385595321655, + -4.097751140594482, + -1.987437129020691 + ] + }, + { + "bufferView": 5, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1619, + "type": "VEC3" + }, + { + "bufferView": 6, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1619, + "type": "VEC2" + }, + { + "bufferView": 7, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3819, + "type": "SCALAR" + }, + { + "bufferView": 8, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 661, + "type": "VEC3", + "max": [ + 0.9809279441833496, + 0.5399590730667114, + 1.1627233028411865 + ], + "min": [ + -0.7877404093742371, + -4.264400482177734, + -0.7877373099327087 + ] + }, + { + "bufferView": 9, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 661, + "type": "VEC3" + }, + { + "bufferView": 10, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 661, + "type": "VEC2" + }, + { + "bufferView": 11, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2940, + "type": "SCALAR" + }, + { + "bufferView": 12, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 323, + "type": "VEC3", + "max": [ + 0.7483501434326172, + 1.6431919220849522e-06, + 0.7483482956886292 + ], + "min": [ + -0.7483482956886292, + -3.924781560897827, + -0.7483498454093933 + ] + }, + { + "bufferView": 13, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 323, + "type": "VEC3" + }, + { + "bufferView": 14, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 323, + "type": "VEC2" + }, + { + "bufferView": 15, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1224, + "type": "SCALAR" + }, + { + "bufferView": 16, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2269, + "type": "VEC3", + "max": [ + 2.481807231903076, + 3.8312671184539795, + 1.9252214431762695 + ], + "min": [ + -1.2608015537261963, + 0.2494477927684784, + -1.6401848793029785 + ] + }, + { + "bufferView": 17, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2269, + "type": "VEC3" + }, + { + "bufferView": 18, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2269, + "type": "VEC2" + }, + { + "bufferView": 19, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 5418, + "type": "SCALAR" + }, + { + "bufferView": 20, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1619, + "type": "VEC3", + "max": [ + 1.9874382019042969, + 4.097751140594482, + 1.67430579662323 + ], + "min": [ + -1.7450573444366455, + 0.10703923553228378, + -1.987437129020691 + ] + }, + { + "bufferView": 21, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1619, + "type": "VEC3" + }, + { + "bufferView": 22, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1619, + "type": "VEC2" + }, + { + "bufferView": 23, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3819, + "type": "SCALAR" + }, + { + "bufferView": 24, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 661, + "type": "VEC3", + "max": [ + 0.7877403497695923, + 4.264400482177734, + 1.162723183631897 + ], + "min": [ + -0.9809278249740601, + -0.5399590730667114, + -0.787737250328064 + ] + }, + { + "bufferView": 25, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 661, + "type": "VEC3" + }, + { + "bufferView": 26, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 661, + "type": "VEC2" + }, + { + "bufferView": 27, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2940, + "type": "SCALAR" + }, + { + "bufferView": 28, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 323, + "type": "VEC3", + "max": [ + 0.7483482360839844, + 3.924781560897827, + 0.7483482956886292 + ], + "min": [ + -0.7483501434326172, + -1.5688684698034194e-06, + -0.7483497858047485 + ] + }, + { + "bufferView": 29, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 323, + "type": "VEC3" + }, + { + "bufferView": 30, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 323, + "type": "VEC2" + }, + { + "bufferView": 31, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1224, + "type": "SCALAR" + }, + { + "bufferView": 32, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 14, + "type": "VEC3", + "max": [ + 1.2629643678665161, + 0.01240034680813551, + 1.8559980392456055 + ], + "min": [ + -0.0395156592130661, + 0.012396288104355335, + -1.8531384468078613 + ] + }, + { + "bufferView": 33, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 14, + "type": "VEC3" + }, + { + "bufferView": 34, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 14, + "type": "VEC2" + }, + { + "bufferView": 35, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 36, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 54, + "type": "VEC3", + "max": [ + 1.2629643678665161, + 0.01240034680813551, + 1.8559980392456055 + ], + "min": [ + -0.0395156592130661, + -0.013861672021448612, + -1.8531384468078613 + ] + }, + { + "bufferView": 37, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 54, + "type": "VEC3" + }, + { + "bufferView": 38, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 54, + "type": "VEC2" + }, + { + "bufferView": 39, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 40, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 144, + "type": "VEC3", + "max": [ + 1.327252745628357, + 0.03883148357272148, + 0.27587488293647766 + ], + "min": [ + -0.004512702580541372, + -0.03446799889206886, + -0.27945640683174133 + ] + }, + { + "bufferView": 41, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 144, + "type": "VEC3" + }, + { + "bufferView": 42, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 144, + "type": "VEC2" + }, + { + "bufferView": 43, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 240, + "type": "SCALAR" + }, + { + "bufferView": 44, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 14, + "type": "VEC3", + "max": [ + 0.0395156629383564, + 0.012399174273014069, + 1.8531385660171509 + ], + "min": [ + -1.262964129447937, + 0.012397632002830505, + -1.8559983968734741 + ] + }, + { + "bufferView": 45, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 14, + "type": "VEC3" + }, + { + "bufferView": 46, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 14, + "type": "VEC2" + }, + { + "bufferView": 47, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 48, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 54, + "type": "VEC3", + "max": [ + 0.0395156629383564, + 0.012399174273014069, + 1.8531385660171509 + ], + "min": [ + -1.262964129447937, + -0.013860328122973442, + -1.8559983968734741 + ] + }, + { + "bufferView": 49, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 54, + "type": "VEC3" + }, + { + "bufferView": 50, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 54, + "type": "VEC2" + }, + { + "bufferView": 51, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 52, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 144, + "type": "VEC3", + "max": [ + 0.004512596409767866, + 0.03883162885904312, + 0.27945584058761597 + ], + "min": [ + -1.327252745628357, + -0.03446805849671364, + -0.2758755087852478 + ] + }, + { + "bufferView": 53, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 144, + "type": "VEC3" + }, + { + "bufferView": 54, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 144, + "type": "VEC2" + }, + { + "bufferView": 55, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 240, + "type": "SCALAR" + }, + { + "bufferView": 56, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + 1.5143194198608398, + 0.010219753719866276, + 1.8609716892242432 + ], + "min": [ + 0.020778514444828033, + 0.010205346159636974, + -1.8545316457748413 + ] + }, + { + "bufferView": 57, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 58, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 59, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 60, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC3", + "max": [ + 1.5143194198608398, + 0.010219753719866276, + 1.8609716892242432 + ], + "min": [ + 0.020778510719537735, + -0.016052618622779846, + -1.8545317649841309 + ] + }, + { + "bufferView": 61, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC3" + }, + { + "bufferView": 62, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC2" + }, + { + "bufferView": 63, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 48, + "type": "SCALAR" + }, + { + "bufferView": 64, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + 1.5564719438552856, + 0.0366501584649086, + 0.2776657044887543 + ], + "min": [ + 0.04346353933215141, + -0.03665062412619591, + -0.2776658535003662 + ] + }, + { + "bufferView": 65, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 66, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 67, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 68, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + -0.020778536796569824, + 0.010213679634034634, + 1.8545315265655518 + ], + "min": [ + -1.5143194198608398, + 0.010211626067757607, + -1.8609715700149536 + ] + }, + { + "bufferView": 69, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 70, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 71, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 72, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC3", + "max": [ + -0.020778536796569824, + 0.010213679634034634, + 1.8545315265655518 + ], + "min": [ + -1.5143194198608398, + -0.016046330332756042, + -1.8609715700149536 + ] + }, + { + "bufferView": 73, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC3" + }, + { + "bufferView": 74, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC2" + }, + { + "bufferView": 75, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 48, + "type": "SCALAR" + }, + { + "bufferView": 76, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + -0.04346358776092529, + 0.03664983808994293, + 0.2776657044887543 + ], + "min": [ + -1.556471824645996, + -0.0366499200463295, + -0.2776657044887543 + ] + }, + { + "bufferView": 77, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 78, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 79, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 80, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 1.50185227394104, + 0.010222114622592926, + 1.8609682321548462 + ], + "min": [ + 0.0007569922599941492, + 0.0101994713768363, + -1.8545324802398682 + ] + }, + { + "bufferView": 81, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 82, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 83, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 84, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + 1.50185227394104, + 0.010222114622592926, + 1.8609683513641357 + ], + "min": [ + 0.0007569818990305066, + -0.016058489680290222, + -1.8545324802398682 + ] + }, + { + "bufferView": 85, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 86, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 87, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 88, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + 1.5667471885681152, + 0.03664979711174965, + 0.2776657044887543 + ], + "min": [ + 0.03649086505174637, + -0.03665097802877426, + -0.27766549587249756 + ] + }, + { + "bufferView": 89, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 90, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 91, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 92, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + -0.0007588224834762514, + 0.01021231897175312, + 1.8545324802398682 + ], + "min": [ + -1.501850962638855, + 0.010209680534899235, + -1.8609699010849 + ] + }, + { + "bufferView": 93, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 94, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 95, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 96, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + -0.0007588201551698148, + 0.01021231897175312, + 1.8545324802398682 + ], + "min": [ + -1.501850962638855, + -0.01604827679693699, + -1.8609699010849 + ] + }, + { + "bufferView": 97, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 98, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 99, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 100, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + -0.03649112582206726, + 0.0366496741771698, + 0.2776627540588379 + ], + "min": [ + -1.5667475461959839, + -0.03664995729923248, + -0.27766868472099304 + ] + }, + { + "bufferView": 101, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 102, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 103, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 104, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 1.507616400718689, + 0.010215917602181435, + 1.8609812259674072 + ], + "min": [ + 0.02510957606136799, + 0.010208102874457836, + -1.8545215129852295 + ] + }, + { + "bufferView": 105, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 106, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 107, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 108, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + 1.507616400718689, + 0.010215917602181435, + 1.8609812259674072 + ], + "min": [ + 0.02510957233607769, + -0.016049852594733238, + -1.8545215129852295 + ] + }, + { + "bufferView": 109, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 110, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 111, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 112, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + 1.5450893640518188, + 0.03664989396929741, + 0.2776680886745453 + ], + "min": [ + 0.04346369579434395, + -0.03665032237768173, + -0.2776632308959961 + ] + }, + { + "bufferView": 113, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 114, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 115, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 116, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + -0.025111090391874313, + 0.01021308172494173, + 1.85452139377594 + ], + "min": [ + -1.5076156854629517, + 0.010211287066340446, + -1.8609815835952759 + ] + }, + { + "bufferView": 117, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 118, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 119, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 120, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + -0.025111090391874313, + 0.01021308172494173, + 1.85452139377594 + ], + "min": [ + -1.5076156854629517, + -0.016046671196818352, + -1.8609815835952759 + ] + }, + { + "bufferView": 121, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 122, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 123, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 124, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + -0.04346397519111633, + 0.03664989769458771, + 0.27766314148902893 + ], + "min": [ + -1.5450893640518188, + -0.036649834364652634, + -0.27766814827919006 + ] + }, + { + "bufferView": 125, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 126, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 127, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 128, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 1.4954968690872192, + 0.010219952091574669, + 1.8609765768051147 + ], + "min": [ + 0.005439742002636194, + 0.010201425291597843, + -1.8545247316360474 + ] + }, + { + "bufferView": 129, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 130, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 131, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 132, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + 1.4954968690872192, + 0.010219952091574669, + 1.8609766960144043 + ], + "min": [ + 0.00543973920866847, + -0.016056539490818977, + -1.8545247316360474 + ] + }, + { + "bufferView": 133, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 134, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 135, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 136, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + 1.5615825653076172, + 0.036650072783231735, + 0.27766454219818115 + ], + "min": [ + 0.036491043865680695, + -0.0366503968834877, + -0.2776668667793274 + ] + }, + { + "bufferView": 137, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 138, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 139, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 140, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + -0.005440839100629091, + 0.010211995802819729, + 1.8545247316360474 + ], + "min": [ + -1.4954968690872192, + 0.010209215804934502, + -1.8609768152236938 + ] + }, + { + "bufferView": 141, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 142, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 143, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 144, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + -0.005440833512693644, + 0.010211995802819729, + 1.8545247316360474 + ], + "min": [ + -1.4954968690872192, + -0.016048746183514595, + -1.8609768152236938 + ] + }, + { + "bufferView": 145, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 146, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 147, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 148, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + -0.03649119287729263, + 0.03664952516555786, + 0.2776655852794647 + ], + "min": [ + -1.5615826845169067, + -0.03665012866258621, + -0.2776656448841095 + ] + }, + { + "bufferView": 149, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 150, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 151, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 152, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 1.5666509866714478, + 0.010207791812717915, + 2.0447750091552734 + ], + "min": [ + 0.03154261037707329, + 0.010203779675066471, + -2.038336753845215 + ] + }, + { + "bufferView": 153, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 154, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 155, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 156, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + 1.5666509866714478, + 0.010207791812717915, + 2.0447752475738525 + ], + "min": [ + 0.031541045755147934, + -0.01605418510735035, + -2.038336753845215 + ] + }, + { + "bufferView": 157, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 158, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 159, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 160, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + 1.6124416589736938, + 0.03664986789226532, + 0.2776680290699005 + ], + "min": [ + 0.04346379637718201, + -0.036649659276008606, + -0.2776632010936737 + ] + }, + { + "bufferView": 161, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 162, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 163, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 164, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + -0.03154335916042328, + 0.010206872597336769, + 2.038334608078003 + ], + "min": [ + -1.5666502714157104, + 0.010204804129898548, + -2.0447745323181152 + ] + }, + { + "bufferView": 165, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 166, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 167, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 168, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + -0.03154179826378822, + 0.010206872597336769, + 2.038334608078003 + ], + "min": [ + -1.5666502714157104, + -0.01605316251516342, + -2.0447747707366943 + ] + }, + { + "bufferView": 169, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 170, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 171, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 172, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + -0.04346412420272827, + 0.03665003180503845, + 0.2776630222797394 + ], + "min": [ + -1.6124404668807983, + -0.03664962574839592, + -0.2776680290699005 + ] + }, + { + "bufferView": 173, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 174, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 175, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 176, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + 1.5397769212722778, + 0.010219383053481579, + 2.044771909713745 + ], + "min": [ + -0.002882518107071519, + -0.01606859639286995, + -2.038337230682373 + ] + }, + { + "bufferView": 177, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 178, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 179, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 180, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 1.5397769212722778, + 0.010219383053481579, + 2.044771671295166 + ], + "min": [ + -0.0028809490613639355, + 0.010189361870288849, + -2.038336992263794 + ] + }, + { + "bufferView": 181, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 182, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 183, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 184, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + 1.6238616704940796, + 0.03665037825703621, + 0.2776643931865692 + ], + "min": [ + 0.03648948296904564, + -0.036650799214839935, + -0.27766677737236023 + ] + }, + { + "bufferView": 185, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 186, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 187, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 188, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + 0.0028836613055318594, + 0.010206799022853374, + 2.0383377075195312 + ], + "min": [ + -1.5397765636444092, + -0.016054773703217506, + -2.0447733402252197 + ] + }, + { + "bufferView": 189, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 190, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 191, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 192, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 0.0028820964507758617, + 0.010206799022853374, + 2.038337469100952 + ], + "min": [ + -1.5397765636444092, + 0.010203201323747635, + -2.0447731018066406 + ] + }, + { + "bufferView": 193, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 194, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 195, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 196, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + -0.036489591002464294, + 0.03664984554052353, + 0.2776658833026886 + ], + "min": [ + -1.6238609552383423, + -0.03664981946349144, + -0.2776654362678528 + ] + }, + { + "bufferView": 197, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 198, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 199, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 200, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 1.5766496658325195, + 0.010214575566351414, + 2.0447726249694824 + ], + "min": [ + 0.04154200851917267, + 0.010197104886174202, + -2.038339138031006 + ] + }, + { + "bufferView": 201, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 202, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 203, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 204, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + 1.5766496658325195, + 0.010214575566351414, + 2.0447728633880615 + ], + "min": [ + 0.0415395051240921, + -0.016060875728726387, + -2.038339138031006 + ] + }, + { + "bufferView": 205, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 206, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 207, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 208, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + 1.6279352903366089, + 0.03665019944310188, + 0.2776680886745453 + ], + "min": [ + 0.043464139103889465, + -0.03665013238787651, + -0.27766329050064087 + ] + }, + { + "bufferView": 209, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 210, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 211, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 212, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + -0.041541688144207, + 0.010208348743617535, + 2.038336992263794 + ], + "min": [ + -1.5766499042510986, + 0.01020314171910286, + -2.0447728633880615 + ] + }, + { + "bufferView": 213, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 214, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 215, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 216, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + -0.041539184749126434, + 0.010208348743617535, + 2.038337230682373 + ], + "min": [ + -1.5766499042510986, + -0.01605483517050743, + -2.0447731018066406 + ] + }, + { + "bufferView": 217, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 218, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 219, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 220, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + -0.04346441477537155, + 0.036649614572525024, + 0.27766308188438416 + ], + "min": [ + -1.6279348134994507, + -0.03664989769458771, + -0.2776680886745453 + ] + }, + { + "bufferView": 221, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 222, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 223, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 276, + "type": "SCALAR" + }, + { + "bufferView": 224, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 1.5418357849121094, + 0.01022668182849884, + 2.0447745323181152 + ], + "min": [ + -0.0008217548602260649, + 0.0101824551820755, + -2.038334608078003 + ] + }, + { + "bufferView": 225, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 226, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 227, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 228, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + 1.5418357849121094, + 0.01022668182849884, + 2.0447747707366943 + ], + "min": [ + -0.0008244157070294023, + -0.01607552357017994, + -2.038334608078003 + ] + }, + { + "bufferView": 229, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 230, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 231, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 232, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 596, + "type": "VEC3", + "max": [ + 2.115854263305664, + 0.1681549996137619, + 1.752939224243164 + ], + "min": [ + 0.03871412202715874, + -0.12069043517112732, + -1.6991174221038818 + ] + }, + { + "bufferView": 233, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 596, + "type": "VEC3" + }, + { + "bufferView": 234, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 596, + "type": "VEC2" + }, + { + "bufferView": 235, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1440, + "type": "SCALAR" + }, + { + "bufferView": 236, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 0.0008231444517150521, + 0.010206306353211403, + 2.038334369659424 + ], + "min": [ + -1.5418360233306885, + 0.010202430188655853, + -2.0447752475738525 + ] + }, + { + "bufferView": 237, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 238, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 239, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18, + "type": "SCALAR" + }, + { + "bufferView": 240, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3", + "max": [ + 0.000825811002869159, + 0.010206306353211403, + 2.038334608078003 + ], + "min": [ + -1.5418360233306885, + -0.01605553738772869, + -2.0447754859924316 + ] + }, + { + "bufferView": 241, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC3" + }, + { + "bufferView": 242, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 52, + "type": "VEC2" + }, + { + "bufferView": 243, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 244, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 596, + "type": "VEC3", + "max": [ + -0.03871425241231918, + 0.16817045211791992, + 1.6991161108016968 + ], + "min": [ + -2.115854024887085, + -0.12069312483072281, + -1.7529404163360596 + ] + }, + { + "bufferView": 245, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 596, + "type": "VEC3" + }, + { + "bufferView": 246, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 596, + "type": "VEC2" + }, + { + "bufferView": 247, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1440, + "type": "SCALAR" + }, + { + "bufferView": 248, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 268, + "type": "VEC3", + "max": [ + 0.3952128291130066, + 0.03398316353559494, + 0.2776656746864319 + ], + "min": [ + -0.395212858915329, + -0.03398315981030464, + -0.2776656448841095 + ] + }, + { + "bufferView": 249, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 268, + "type": "VEC3" + }, + { + "bufferView": 250, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 268, + "type": "VEC2" + }, + { + "bufferView": 251, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 408, + "type": "SCALAR" + }, + { + "bufferView": 252, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 268, + "type": "VEC3", + "max": [ + 0.395212858915329, + 0.03398319333791733, + 0.2776656746864319 + ], + "min": [ + -0.395212858915329, + -0.03398318961262703, + -0.27766573429107666 + ] + }, + { + "bufferView": 253, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 268, + "type": "VEC3" + }, + { + "bufferView": 254, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 268, + "type": "VEC2" + }, + { + "bufferView": 255, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 408, + "type": "SCALAR" + }, + { + "bufferView": 256, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 11633, + "type": "VEC3", + "max": [ + 2.2648229598999023, + 2.276658296585083, + -0.3027224540710449 + ], + "min": [ + -2.263415813446045, + -2.259085178375244, + -13.369646072387695 + ] + }, + { + "bufferView": 257, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 11633, + "type": "VEC3" + }, + { + "bufferView": 258, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 11633, + "type": "VEC2" + }, + { + "bufferView": 259, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 17613, + "type": "SCALAR" + }, + { + "bufferView": 260, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC3", + "max": [ + 1.9615285396575928, + 0.23307234048843384, + -0.9881301522254944 + ], + "min": [ + -1.9615285396575928, + -1.4614529609680176, + -2.945157766342163 + ] + }, + { + "bufferView": 261, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC3" + }, + { + "bufferView": 262, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC2" + }, + { + "bufferView": 263, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 72, + "type": "SCALAR" + }, + { + "bufferView": 264, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3991, + "type": "VEC3", + "max": [ + 2.317850351333618, + 4.953429698944092, + -0.22424344718456268 + ], + "min": [ + -2.317849636077881, + -2.4927661418914795, + -14.361968994140625 + ] + }, + { + "bufferView": 265, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3991, + "type": "VEC3" + }, + { + "bufferView": 266, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3991, + "type": "VEC2" + }, + { + "bufferView": 267, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 18636, + "type": "SCALAR" + }, + { + "bufferView": 268, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1981, + "type": "VEC3", + "max": [ + 2.1452231407165527, + 2.1452348232269287, + 0.1688026785850525 + ], + "min": [ + -2.1452229022979736, + -2.145210027694702, + -13.331223487854004 + ] + }, + { + "bufferView": 269, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1981, + "type": "VEC3" + }, + { + "bufferView": 270, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1981, + "type": "VEC2" + }, + { + "bufferView": 271, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6894, + "type": "SCALAR" + }, + { + "bufferView": 272, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 10853, + "type": "VEC3", + "max": [ + 2.204139232635498, + 4.870809078216553, + 0.30868107080459595 + ], + "min": [ + -2.5942718982696533, + -2.460132122039795, + -14.182143211364746 + ] + }, + { + "bufferView": 273, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 10853, + "type": "VEC3" + }, + { + "bufferView": 274, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 10853, + "type": "VEC2" + }, + { + "bufferView": 275, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 22812, + "type": "SCALAR" + }, + { + "bufferView": 276, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3049, + "type": "VEC3", + "max": [ + 2.2040741443634033, + 3.9319753646850586, + 2.59606671333313 + ], + "min": [ + -1.3904411792755127, + -2.5612518787384033, + -2.59606671333313 + ] + }, + { + "bufferView": 277, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3049, + "type": "VEC3" + }, + { + "bufferView": 278, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3049, + "type": "VEC2" + }, + { + "bufferView": 279, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 11514, + "type": "SCALAR" + }, + { + "bufferView": 280, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 552, + "type": "VEC3", + "max": [ + 2.415517807006836, + 3.1450767517089844, + 2.3211543560028076 + ], + "min": [ + -1.2134112119674683, + -2.605241060256958, + -2.3211543560028076 + ] + }, + { + "bufferView": 281, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 552, + "type": "VEC3" + }, + { + "bufferView": 282, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 552, + "type": "VEC2" + }, + { + "bufferView": 283, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2388, + "type": "SCALAR" + }, + { + "bufferView": 284, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 472, + "type": "VEC3", + "max": [ + 0.6847578287124634, + 3.3920183181762695, + 0.6847571730613708 + ], + "min": [ + -0.6847578287124634, + -2.8130011558532715, + -0.6847584247589111 + ] + }, + { + "bufferView": 285, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 472, + "type": "VEC3" + }, + { + "bufferView": 286, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 472, + "type": "VEC2" + }, + { + "bufferView": 287, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1800, + "type": "SCALAR" + }, + { + "bufferView": 288, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 7254, + "type": "VEC3", + "max": [ + 2.1865057945251465, + 3.0229899883270264, + 1.6677769422531128 + ], + "min": [ + -1.9827793836593628, + -3.020148277282715, + -2.0780446529388428 + ] + }, + { + "bufferView": 289, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 7254, + "type": "VEC3" + }, + { + "bufferView": 290, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 7254, + "type": "VEC2" + }, + { + "bufferView": 291, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 13578, + "type": "SCALAR" + }, + { + "bufferView": 292, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4135, + "type": "VEC3", + "max": [ + 1.7833255529403687, + 3.6759564876556396, + -0.1892247051000595 + ], + "min": [ + -1.7833274602890015, + -3.6844682693481445, + -10.744629859924316 + ] + }, + { + "bufferView": 293, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4135, + "type": "VEC3" + }, + { + "bufferView": 294, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4135, + "type": "VEC2" + }, + { + "bufferView": 295, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 7677, + "type": "SCALAR" + }, + { + "bufferView": 296, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 11999, + "type": "VEC3", + "max": [ + 2.113762378692627, + 3.358602285385132, + -0.02504156529903412 + ], + "min": [ + -2.1137642860412598, + -2.540020704269409, + -10.903495788574219 + ] + }, + { + "bufferView": 297, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 11999, + "type": "VEC3" + }, + { + "bufferView": 298, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 11999, + "type": "VEC2" + }, + { + "bufferView": 299, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 35676, + "type": "SCALAR" + }, + { + "bufferView": 300, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2515, + "type": "VEC3", + "max": [ + 2.113762855529785, + 2.109506845474243, + 0.19551891088485718 + ], + "min": [ + -2.1137642860412598, + -2.1180195808410645, + -12.980986595153809 + ] + }, + { + "bufferView": 301, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2515, + "type": "VEC3" + }, + { + "bufferView": 302, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2515, + "type": "VEC2" + }, + { + "bufferView": 303, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6456, + "type": "SCALAR" + }, + { + "bufferView": 304, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2340, + "type": "VEC3", + "max": [ + 1.7889323234558105, + 1.9836164712905884, + -11.260345458984375 + ], + "min": [ + -1.619936227798462, + -1.6832679510116577, + -13.178458213806152 + ] + }, + { + "bufferView": 305, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2340, + "type": "VEC3" + }, + { + "bufferView": 306, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2340, + "type": "VEC2" + }, + { + "bufferView": 307, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 5436, + "type": "SCALAR" + }, + { + "bufferView": 308, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 364, + "type": "VEC3", + "max": [ + 0.8931512832641602, + 1.6128383874893188, + -1.684564232826233 + ], + "min": [ + -0.6441930532455444, + 0.7423489093780518, + -1.7380181550979614 + ] + }, + { + "bufferView": 309, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 364, + "type": "VEC3" + }, + { + "bufferView": 310, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 364, + "type": "VEC2" + }, + { + "bufferView": 311, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 672, + "type": "SCALAR" + }, + { + "bufferView": 312, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1538, + "type": "VEC3", + "max": [ + 1.2885935306549072, + 2.4156956672668457, + 0.0 + ], + "min": [ + -1.2885932922363281, + -1.399745225906372, + -1.4560956954956055 + ] + }, + { + "bufferView": 313, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1538, + "type": "VEC3" + }, + { + "bufferView": 314, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1538, + "type": "VEC2" + }, + { + "bufferView": 315, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2850, + "type": "SCALAR" + }, + { + "bufferView": 316, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1644, + "type": "VEC3", + "max": [ + 1.2885935306549072, + 1.6424258947372437, + -0.3002084493637085 + ], + "min": [ + -1.2885932922363281, + -1.2885935306549072, + -2.6519663333892822 + ] + }, + { + "bufferView": 317, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1644, + "type": "VEC3" + }, + { + "bufferView": 318, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1644, + "type": "VEC2" + }, + { + "bufferView": 319, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4146, + "type": "SCALAR" + }, + { + "bufferView": 320, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2498, + "type": "VEC3", + "max": [ + 4.473033905029297, + 6.665823936462402, + 2.5431900024414062 + ], + "min": [ + -2.6409659385681152, + -3.130195693756832e-07, + -1.8176064491271973 + ] + }, + { + "bufferView": 321, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2498, + "type": "VEC3" + }, + { + "bufferView": 322, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2498, + "type": "VEC2" + }, + { + "bufferView": 323, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4845, + "type": "SCALAR" + }, + { + "bufferView": 324, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 5768, + "type": "VEC3", + "max": [ + 5.377659797668457, + 8.593949317932129, + 1.2100785970687866 + ], + "min": [ + -2.306612968444824, + 3.7113001346588135, + -1.4177285432815552 + ] + }, + { + "bufferView": 325, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 5768, + "type": "VEC3" + }, + { + "bufferView": 326, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 5768, + "type": "VEC2" + }, + { + "bufferView": 327, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12912, + "type": "SCALAR" + }, + { + "bufferView": 328, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 756, + "type": "VEC3", + "max": [ + 2.207426071166992, + 3.7898519039154053, + 1.817803978919983 + ], + "min": [ + -2.3746497631073, + 0.5759946703910828, + -1.3844530582427979 + ] + }, + { + "bufferView": 329, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 756, + "type": "VEC3" + }, + { + "bufferView": 330, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 756, + "type": "VEC2" + }, + { + "bufferView": 331, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3600, + "type": "SCALAR" + }, + { + "bufferView": 332, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 357, + "type": "VEC3", + "max": [ + 2.5042998790740967, + 3.57155179977417, + 2.516184091567993 + ], + "min": [ + -2.5042998790740967, + -3.130195693756832e-07, + -1.8176064491271973 + ] + }, + { + "bufferView": 333, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 357, + "type": "VEC3" + }, + { + "bufferView": 334, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 357, + "type": "VEC2" + }, + { + "bufferView": 335, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 555, + "type": "SCALAR" + }, + { + "bufferView": 336, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 56, + "type": "VEC3", + "max": [ + 1.4851415157318115, + 3.5590882301330566, + -1.2601326704025269 + ], + "min": [ + -1.4911712408065796, + 0.6451239585876465, + -2.2098782062530518 + ] + }, + { + "bufferView": 337, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 56, + "type": "VEC3" + }, + { + "bufferView": 338, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 56, + "type": "VEC2" + }, + { + "bufferView": 339, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 340, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 297, + "type": "VEC3", + "max": [ + -0.06132133677601814, + 0.44315463304519653, + 1.0557584762573242 + ], + "min": [ + -0.09917966276407242, + -0.16385021805763245, + -1.2948439121246338 + ] + }, + { + "bufferView": 341, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 297, + "type": "VEC3" + }, + { + "bufferView": 342, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 297, + "type": "VEC2" + }, + { + "bufferView": 343, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 960, + "type": "SCALAR" + }, + { + "bufferView": 344, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 281, + "type": "VEC3", + "max": [ + 0.5588268041610718, + 0.4870554804801941, + 1.2948439121246338 + ], + "min": [ + -0.5588268041610718, + -0.4870554804801941, + -1.2547274827957153 + ] + }, + { + "bufferView": 345, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 281, + "type": "VEC3" + }, + { + "bufferView": 346, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 281, + "type": "VEC2" + }, + { + "bufferView": 347, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 672, + "type": "SCALAR" + }, + { + "bufferView": 348, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 380, + "type": "VEC3", + "max": [ + 0.4542508125305176, + 1.2388103008270264, + 0.5831797122955322 + ], + "min": [ + -0.46177706122398376, + -6.378548391694494e-07, + -0.3530176281929016 + ] + }, + { + "bufferView": 349, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 380, + "type": "VEC3" + }, + { + "bufferView": 350, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 380, + "type": "VEC2" + }, + { + "bufferView": 351, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 960, + "type": "SCALAR" + }, + { + "bufferView": 352, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1060, + "type": "VEC3", + "max": [ + 1.5035936832427979, + 1.8882774114608765, + 2.1682746410369873 + ], + "min": [ + -1.5035936832427979, + 8.513558213962824e-08, + -0.46165069937705994 + ] + }, + { + "bufferView": 353, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1060, + "type": "VEC3" + }, + { + "bufferView": 354, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1060, + "type": "VEC2" + }, + { + "bufferView": 355, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4689, + "type": "SCALAR" + }, + { + "bufferView": 356, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 129, + "type": "VEC3", + "max": [ + 0.22811150550842285, + 3.1619484275324794e-07, + 0.22811147570610046 + ], + "min": [ + -0.22811149060726166, + -0.9194476008415222, + -0.22811146080493927 + ] + }, + { + "bufferView": 357, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 129, + "type": "VEC3" + }, + { + "bufferView": 358, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 129, + "type": "VEC2" + }, + { + "bufferView": 359, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 522, + "type": "SCALAR" + }, + { + "bufferView": 360, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 86, + "type": "VEC3", + "max": [ + 0.5771133303642273, + 0.2019321620464325, + 0.04131869226694107 + ], + "min": [ + -0.12775157392024994, + -0.1277514100074768, + -0.3157123625278473 + ] + }, + { + "bufferView": 361, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 86, + "type": "VEC3" + }, + { + "bufferView": 362, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 86, + "type": "VEC2" + }, + { + "bufferView": 363, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 364, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 161, + "type": "VEC3", + "max": [ + 1.1884760856628418, + 0.22107084095478058, + 0.012246737256646156 + ], + "min": [ + -0.27448487281799316, + -0.11370738595724106, + -0.35958966612815857 + ] + }, + { + "bufferView": 365, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 161, + "type": "VEC3" + }, + { + "bufferView": 366, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 161, + "type": "VEC2" + }, + { + "bufferView": 367, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 525, + "type": "SCALAR" + }, + { + "bufferView": 368, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 229, + "type": "VEC3", + "max": [ + 1.3618286848068237, + 0.23364481329917908, + 0.49413812160491943 + ], + "min": [ + -0.12775152921676636, + -0.12775349617004395, + -0.21690504252910614 + ] + }, + { + "bufferView": 369, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 229, + "type": "VEC3" + }, + { + "bufferView": 370, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 229, + "type": "VEC2" + }, + { + "bufferView": 371, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 885, + "type": "SCALAR" + }, + { + "bufferView": 372, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 94, + "type": "VEC3", + "max": [ + 0.47859251499176025, + 0.4431610107421875, + 0.14278297126293182 + ], + "min": [ + -0.20228257775306702, + -0.23632146418094635, + -0.2275962084531784 + ] + }, + { + "bufferView": 373, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 94, + "type": "VEC3" + }, + { + "bufferView": 374, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 94, + "type": "VEC2" + }, + { + "bufferView": 375, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 516, + "type": "SCALAR" + }, + { + "bufferView": 376, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC3", + "max": [ + 0.4583362638950348, + 0.09420644491910934, + 0.40522173047065735 + ], + "min": [ + -0.09420327097177505, + -0.5022559762001038, + -0.3122781813144684 + ] + }, + { + "bufferView": 377, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC3" + }, + { + "bufferView": 378, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC2" + }, + { + "bufferView": 379, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 432, + "type": "SCALAR" + }, + { + "bufferView": 380, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 129, + "type": "VEC3", + "max": [ + 0.22811150550842285, + 3.195933686583885e-07, + 0.22811152040958405 + ], + "min": [ + -0.22811153531074524, + -0.9194474816322327, + -0.22811149060726166 + ] + }, + { + "bufferView": 381, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 129, + "type": "VEC3" + }, + { + "bufferView": 382, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 129, + "type": "VEC2" + }, + { + "bufferView": 383, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 522, + "type": "SCALAR" + }, + { + "bufferView": 384, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 86, + "type": "VEC3", + "max": [ + 0.12775158882141113, + 0.2019321620464325, + 0.041318655014038086 + ], + "min": [ + -0.5771132111549377, + -0.1277514398097992, + -0.3157123625278473 + ] + }, + { + "bufferView": 385, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 86, + "type": "VEC3" + }, + { + "bufferView": 386, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 86, + "type": "VEC2" + }, + { + "bufferView": 387, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 388, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 163, + "type": "VEC3", + "max": [ + 0.2744849622249603, + 0.2210708111524582, + 0.012246523052453995 + ], + "min": [ + -1.1884762048721313, + -0.11370741575956345, + -0.3595898151397705 + ] + }, + { + "bufferView": 389, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 163, + "type": "VEC3" + }, + { + "bufferView": 390, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 163, + "type": "VEC2" + }, + { + "bufferView": 391, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 525, + "type": "SCALAR" + }, + { + "bufferView": 392, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 229, + "type": "VEC3", + "max": [ + 0.12775152921676636, + 0.23364496231079102, + 0.49413803219795227 + ], + "min": [ + -1.3618286848068237, + -0.12775348126888275, + -0.2169051468372345 + ] + }, + { + "bufferView": 393, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 229, + "type": "VEC3" + }, + { + "bufferView": 394, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 229, + "type": "VEC2" + }, + { + "bufferView": 395, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 885, + "type": "SCALAR" + }, + { + "bufferView": 396, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 94, + "type": "VEC3", + "max": [ + 0.20228257775306702, + 0.4431609809398651, + 0.14278295636177063 + ], + "min": [ + -0.4785924255847931, + -0.23632144927978516, + -0.2275962382555008 + ] + }, + { + "bufferView": 397, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 94, + "type": "VEC3" + }, + { + "bufferView": 398, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 94, + "type": "VEC2" + }, + { + "bufferView": 399, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 516, + "type": "SCALAR" + }, + { + "bufferView": 400, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC3", + "max": [ + 0.09420327097177505, + 0.09420643746852875, + 0.40522170066833496 + ], + "min": [ + -0.4583362638950348, + -0.5022559762001038, + -0.31227824091911316 + ] + }, + { + "bufferView": 401, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC3" + }, + { + "bufferView": 402, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC2" + }, + { + "bufferView": 403, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 432, + "type": "SCALAR" + }, + { + "bufferView": 404, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 472, + "type": "VEC3", + "max": [ + 1.5103092193603516, + 1.9619139432907104, + 0.25110483169555664 + ], + "min": [ + -1.5103092193603516, + -3.222544933123572e-07, + -0.5147335529327393 + ] + }, + { + "bufferView": 405, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 472, + "type": "VEC3" + }, + { + "bufferView": 406, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 472, + "type": "VEC2" + }, + { + "bufferView": 407, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1290, + "type": "SCALAR" + }, + { + "bufferView": 408, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 64, + "type": "VEC3", + "max": [ + 0.40495532751083374, + 0.22016234695911407, + 0.40495651960372925 + ], + "min": [ + -0.4049580991268158, + -3.7737721868325025e-05, + -0.40495729446411133 + ] + }, + { + "bufferView": 409, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 64, + "type": "VEC3" + }, + { + "bufferView": 410, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 64, + "type": "VEC2" + }, + { + "bufferView": 411, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 192, + "type": "SCALAR" + }, + { + "bufferView": 412, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 190, + "type": "VEC3", + "max": [ + 0.4049551784992218, + 0.004759659990668297, + 0.40495651960372925 + ], + "min": [ + -0.4049580991268158, + -0.25260260701179504, + -0.4049564003944397 + ] + }, + { + "bufferView": 413, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 190, + "type": "VEC3" + }, + { + "bufferView": 414, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 190, + "type": "VEC2" + }, + { + "bufferView": 415, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 936, + "type": "SCALAR" + }, + { + "bufferView": 416, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 380, + "type": "VEC3", + "max": [ + 0.45425090193748474, + 1.238810420036316, + 0.5831795930862427 + ], + "min": [ + -0.46177709102630615, + -6.579803653039562e-07, + -0.35301753878593445 + ] + }, + { + "bufferView": 417, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 380, + "type": "VEC3" + }, + { + "bufferView": 418, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 380, + "type": "VEC2" + }, + { + "bufferView": 419, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 960, + "type": "SCALAR" + }, + { + "bufferView": 420, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3", + "max": [ + -2.5992898144977516e-07, + 0.2875876724720001, + 0.27230843901634216 + ], + "min": [ + -0.5835239887237549, + -0.22052209079265594, + -0.2679220736026764 + ] + }, + { + "bufferView": 421, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3" + }, + { + "bufferView": 422, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC2" + }, + { + "bufferView": 423, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 321, + "type": "SCALAR" + }, + { + "bufferView": 424, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3", + "max": [ + 0.22052209079265594, + 0.2723087668418884, + 0.583523690700531 + ], + "min": [ + -0.2875877320766449, + -0.267922043800354, + 2.3527370274223358e-07 + ] + }, + { + "bufferView": 425, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3" + }, + { + "bufferView": 426, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC2" + }, + { + "bufferView": 427, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 321, + "type": "SCALAR" + }, + { + "bufferView": 428, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 358, + "type": "VEC3", + "max": [ + 0.4921392500400543, + 7.613649368286133, + 0.9841510653495789 + ], + "min": [ + -0.28557026386260986, + -0.27011463046073914, + -6.545781729982991e-07 + ] + }, + { + "bufferView": 429, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 358, + "type": "VEC3" + }, + { + "bufferView": 430, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 358, + "type": "VEC2" + }, + { + "bufferView": 431, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1224, + "type": "SCALAR" + }, + { + "bufferView": 432, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 314, + "type": "VEC3", + "max": [ + 0.2701152265071869, + 0.28996482491493225, + 0.5751739740371704 + ], + "min": [ + -7.613649368286133, + -0.4877447485923767, + -0.40897735953330994 + ] + }, + { + "bufferView": 433, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 314, + "type": "VEC3" + }, + { + "bufferView": 434, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 314, + "type": "VEC2" + }, + { + "bufferView": 435, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1080, + "type": "SCALAR" + }, + { + "bufferView": 436, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3", + "max": [ + 0.47802668809890747, + 0.5754407048225403, + 0.3147711753845215 + ], + "min": [ + -0.20645232498645782, + -0.10000120848417282, + -0.2699412703514099 + ] + }, + { + "bufferView": 437, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3" + }, + { + "bufferView": 438, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC2" + }, + { + "bufferView": 439, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 321, + "type": "SCALAR" + }, + { + "bufferView": 440, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3", + "max": [ + 0.2682274281978607, + 0.4642590284347534, + 0.5678095817565918 + ], + "min": [ + -0.5012204647064209, + -0.23758801817893982, + -0.12958116829395294 + ] + }, + { + "bufferView": 441, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3" + }, + { + "bufferView": 442, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC2" + }, + { + "bufferView": 443, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 321, + "type": "SCALAR" + }, + { + "bufferView": 444, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 380, + "type": "VEC3", + "max": [ + 0.33056601881980896, + 0.6922208070755005, + 1.1359678506851196 + ], + "min": [ + -0.919955849647522, + -0.42280396819114685, + -0.2716744840145111 + ] + }, + { + "bufferView": 445, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 380, + "type": "VEC3" + }, + { + "bufferView": 446, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 380, + "type": "VEC2" + }, + { + "bufferView": 447, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 960, + "type": "SCALAR" + }, + { + "bufferView": 448, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 82, + "type": "VEC3", + "max": [ + 0.9332855343818665, + 3.1141152381896973, + 0.5862058401107788 + ], + "min": [ + -1.058744192123413, + -0.5360206365585327, + -1.844619631767273 + ] + }, + { + "bufferView": 449, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 82, + "type": "VEC3" + }, + { + "bufferView": 450, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 82, + "type": "VEC2" + }, + { + "bufferView": 451, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 156, + "type": "SCALAR" + }, + { + "bufferView": 452, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1868, + "type": "VEC3", + "max": [ + 2.5949506759643555, + 1.934935450553894, + 0.5006592273712158 + ], + "min": [ + -2.594949960708618, + -0.6835145950317383, + -0.3908158838748932 + ] + }, + { + "bufferView": 453, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1868, + "type": "VEC3" + }, + { + "bufferView": 454, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1868, + "type": "VEC2" + }, + { + "bufferView": 455, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4920, + "type": "SCALAR" + }, + { + "bufferView": 456, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6456, + "type": "VEC3", + "max": [ + 3.3700199127197266, + 3.5496127605438232, + 1.26692795753479 + ], + "min": [ + -3.382019281387329, + -0.7046154737472534, + -1.9036998748779297 + ] + }, + { + "bufferView": 457, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6456, + "type": "VEC3" + }, + { + "bufferView": 458, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6456, + "type": "VEC2" + }, + { + "bufferView": 459, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12642, + "type": "SCALAR" + }, + { + "bufferView": 460, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 554, + "type": "VEC3", + "max": [ + 3.3768155574798584, + 0.8576933145523071, + 1.0006120204925537 + ], + "min": [ + 1.7459416389465332, + 0.3398045003414154, + 0.21986396610736847 + ] + }, + { + "bufferView": 461, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 554, + "type": "VEC3" + }, + { + "bufferView": 462, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 554, + "type": "VEC2" + }, + { + "bufferView": 463, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1308, + "type": "SCALAR" + }, + { + "bufferView": 464, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 368, + "type": "VEC3", + "max": [ + 1.925105094909668, + 5.675525665283203, + -0.38914021849632263 + ], + "min": [ + -1.9251656532287598, + -5.6524834632873535, + -1.7598627805709839 + ] + }, + { + "bufferView": 465, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 368, + "type": "VEC3" + }, + { + "bufferView": 466, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 368, + "type": "VEC2" + }, + { + "bufferView": 467, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 552, + "type": "SCALAR" + }, + { + "bufferView": 468, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2528, + "type": "VEC3", + "max": [ + 2.1376070976257324, + 6.029472827911377, + 1.7637697737882263e-06 + ], + "min": [ + -2.089160442352295, + -6.010543346405029, + -25.00429344177246 + ] + }, + { + "bufferView": 469, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2528, + "type": "VEC3" + }, + { + "bufferView": 470, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2528, + "type": "VEC2" + }, + { + "bufferView": 471, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3756, + "type": "SCALAR" + }, + { + "bufferView": 472, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 423, + "type": "VEC3", + "max": [ + 2.2794086933135986, + -1.5686792135238647, + -0.8542851805686951 + ], + "min": [ + 1.6928809881210327, + -2.206059217453003, + -1.1637287139892578 + ] + }, + { + "bufferView": 473, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 423, + "type": "VEC3" + }, + { + "bufferView": 474, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 423, + "type": "VEC2" + }, + { + "bufferView": 475, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1080, + "type": "SCALAR" + }, + { + "bufferView": 476, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 384, + "type": "VEC3", + "max": [ + 0.15261569619178772, + 5.861610412597656, + -1.746024250984192 + ], + "min": [ + -0.16139940917491913, + -5.842682838439941, + -24.873506546020508 + ] + }, + { + "bufferView": 477, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 384, + "type": "VEC3" + }, + { + "bufferView": 478, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 384, + "type": "VEC2" + }, + { + "bufferView": 479, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 576, + "type": "SCALAR" + }, + { + "bufferView": 480, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3", + "max": [ + 6.0393290519714355, + 0.6561462879180908, + 37.1788444519043 + ], + "min": [ + -6.039341926574707, + -0.6561462879180908, + -8.929769990118075e-08 + ] + }, + { + "bufferView": 481, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3" + }, + { + "bufferView": 482, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC2" + }, + { + "bufferView": 483, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4164, + "type": "SCALAR" + }, + { + "bufferView": 484, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3", + "max": [ + 6.039321422576904, + 0.0016399095766246319, + 37.1788444519043 + ], + "min": [ + -6.039336681365967, + 0.0011271834373474121, + 3.0147626399993896 + ] + }, + { + "bufferView": 485, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3" + }, + { + "bufferView": 486, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC2" + }, + { + "bufferView": 487, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 504, + "type": "SCALAR" + }, + { + "bufferView": 488, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 200, + "type": "VEC3", + "max": [ + 6.039325714111328, + 0.5357840061187744, + 37.554527282714844 + ], + "min": [ + -6.039341926574707, + -0.39916661381721497, + 37.121036529541016 + ] + }, + { + "bufferView": 489, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 200, + "type": "VEC3" + }, + { + "bufferView": 490, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 200, + "type": "VEC2" + }, + { + "bufferView": 491, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 492, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3", + "max": [ + 6.039346694946289, + 0.6561465859413147, + 9.33666157720836e-08 + ], + "min": [ + -6.0393290519714355, + -0.6561459898948669, + -37.17884826660156 + ] + }, + { + "bufferView": 493, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3" + }, + { + "bufferView": 494, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC2" + }, + { + "bufferView": 495, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4164, + "type": "SCALAR" + }, + { + "bufferView": 496, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3", + "max": [ + 6.039341926574707, + 0.0016402225010097027, + -3.0147619247436523 + ], + "min": [ + -6.039321422576904, + 0.0011274964781478047, + -37.17884826660156 + ] + }, + { + "bufferView": 497, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3" + }, + { + "bufferView": 498, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC2" + }, + { + "bufferView": 499, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 504, + "type": "SCALAR" + }, + { + "bufferView": 500, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 202, + "type": "VEC3", + "max": [ + 6.039346694946289, + 0.5357843041419983, + -37.121036529541016 + ], + "min": [ + -6.0393195152282715, + -0.3991663157939911, + -37.55452346801758 + ] + }, + { + "bufferView": 501, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 202, + "type": "VEC3" + }, + { + "bufferView": 502, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 202, + "type": "VEC2" + }, + { + "bufferView": 503, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 504, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3", + "max": [ + 6.039331436157227, + 0.6561462879180908, + 37.17884063720703 + ], + "min": [ + -6.039334297180176, + -0.6561462879180908, + 2.390098359228432e-07 + ] + }, + { + "bufferView": 505, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3" + }, + { + "bufferView": 506, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC2" + }, + { + "bufferView": 507, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4164, + "type": "SCALAR" + }, + { + "bufferView": 508, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3", + "max": [ + 6.039323806762695, + 0.0016399095766246319, + 37.17884063720703 + ], + "min": [ + -6.039329528808594, + 0.0011271834373474121, + 3.014763116836548 + ] + }, + { + "bufferView": 509, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3" + }, + { + "bufferView": 510, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC2" + }, + { + "bufferView": 511, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 504, + "type": "SCALAR" + }, + { + "bufferView": 512, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 196, + "type": "VEC3", + "max": [ + 6.039328575134277, + 0.5357840061187744, + 37.55452346801758 + ], + "min": [ + -6.039334297180176, + -0.39916661381721497, + 37.121036529541016 + ] + }, + { + "bufferView": 513, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 196, + "type": "VEC3" + }, + { + "bufferView": 514, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 196, + "type": "VEC2" + }, + { + "bufferView": 515, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 516, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3", + "max": [ + 6.039344310760498, + 0.6561462879180908, + 4.0638619225319417e-07 + ], + "min": [ + -6.0393266677856445, + -0.6561462879180908, + -37.1788444519043 + ] + }, + { + "bufferView": 517, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3" + }, + { + "bufferView": 518, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC2" + }, + { + "bufferView": 519, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4164, + "type": "SCALAR" + }, + { + "bufferView": 520, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3", + "max": [ + 6.039339542388916, + 0.0016399095766246319, + -3.0147616863250732 + ], + "min": [ + -6.039319038391113, + 0.0011271834373474121, + -37.1788444519043 + ] + }, + { + "bufferView": 521, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3" + }, + { + "bufferView": 522, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC2" + }, + { + "bufferView": 523, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 504, + "type": "SCALAR" + }, + { + "bufferView": 524, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3", + "max": [ + 6.039344310760498, + 0.5357840061187744, + -37.12103271484375 + ], + "min": [ + -6.0393171310424805, + -0.39916661381721497, + -37.55452346801758 + ] + }, + { + "bufferView": 525, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3" + }, + { + "bufferView": 526, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC2" + }, + { + "bufferView": 527, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 528, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2276, + "type": "VEC3", + "max": [ + -0.018869362771511078, + 1.3838400840759277, + 1.5216751098632812 + ], + "min": [ + -13.824934005737305, + -15.59856128692627, + -1.534156084060669 + ] + }, + { + "bufferView": 529, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2276, + "type": "VEC3" + }, + { + "bufferView": 530, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2276, + "type": "VEC2" + }, + { + "bufferView": 531, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3426, + "type": "SCALAR" + }, + { + "bufferView": 532, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6374, + "type": "VEC3", + "max": [ + 6.526888319058344e-05, + 3.0127501487731934, + 2.566710948944092 + ], + "min": [ + -13.14576244354248, + -14.672457695007324, + -1.1967042684555054 + ] + }, + { + "bufferView": 533, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6374, + "type": "VEC3" + }, + { + "bufferView": 534, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6374, + "type": "VEC2" + }, + { + "bufferView": 535, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 9588, + "type": "SCALAR" + }, + { + "bufferView": 536, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1130, + "type": "VEC3", + "max": [ + -0.2221413403749466, + 2.588106870651245, + 0.8577113151550293 + ], + "min": [ + -12.151063919067383, + -2.5917584896087646, + -1.1349807977676392 + ] + }, + { + "bufferView": 537, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1130, + "type": "VEC3" + }, + { + "bufferView": 538, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1130, + "type": "VEC2" + }, + { + "bufferView": 539, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2064, + "type": "SCALAR" + }, + { + "bufferView": 540, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 964, + "type": "VEC3", + "max": [ + -5.549062728881836, + 2.250744104385376, + 1.0358755588531494 + ], + "min": [ + -12.126659393310547, + -2.254267930984497, + -1.6949101686477661 + ] + }, + { + "bufferView": 541, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 964, + "type": "VEC3" + }, + { + "bufferView": 542, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 964, + "type": "VEC2" + }, + { + "bufferView": 543, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1476, + "type": "SCALAR" + }, + { + "bufferView": 544, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1470, + "type": "VEC3", + "max": [ + 0.4215319752693176, + 2.5139105319976807, + -0.53084796667099 + ], + "min": [ + -1.6426016092300415, + -2.517164707183838, + -2.4804346561431885 + ] + }, + { + "bufferView": 545, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1470, + "type": "VEC3" + }, + { + "bufferView": 546, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1470, + "type": "VEC2" + }, + { + "bufferView": 547, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3360, + "type": "SCALAR" + }, + { + "bufferView": 548, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4859, + "type": "VEC3", + "max": [ + 1.8659217357635498, + 2.2841172218322754, + 2.065619468688965 + ], + "min": [ + -1.687881350517273, + -2.284116744995117, + -2.311633586883545 + ] + }, + { + "bufferView": 549, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4859, + "type": "VEC3" + }, + { + "bufferView": 550, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4859, + "type": "VEC2" + }, + { + "bufferView": 551, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 10095, + "type": "SCALAR" + }, + { + "bufferView": 552, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 309, + "type": "VEC3", + "max": [ + 1.60237717628479, + 1.4367908239364624, + 0.05494559928774834 + ], + "min": [ + -1.362919807434082, + -1.4291547536849976, + -1.7334043979644775 + ] + }, + { + "bufferView": 553, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 309, + "type": "VEC3" + }, + { + "bufferView": 554, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 309, + "type": "VEC2" + }, + { + "bufferView": 555, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 447, + "type": "SCALAR" + }, + { + "bufferView": 556, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 85, + "type": "VEC3", + "max": [ + 1.60237717628479, + 1.4367908239364624, + 0.05494559928774834 + ], + "min": [ + -1.362919807434082, + -1.4291547536849976, + -1.7334043979644775 + ] + }, + { + "bufferView": 557, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 85, + "type": "VEC3" + }, + { + "bufferView": 558, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 85, + "type": "VEC2" + }, + { + "bufferView": 559, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 117, + "type": "SCALAR" + }, + { + "bufferView": 560, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1310, + "type": "VEC3", + "max": [ + 1.115586757659912, + 2.3180043697357178, + 1.8007596731185913 + ], + "min": [ + -15.534815788269043, + -2.3012378215789795, + -1.7962170839309692 + ] + }, + { + "bufferView": 561, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1310, + "type": "VEC3" + }, + { + "bufferView": 562, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1310, + "type": "VEC2" + }, + { + "bufferView": 563, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2790, + "type": "SCALAR" + }, + { + "bufferView": 564, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1263, + "type": "VEC3", + "max": [ + -1.3185157775878906, + 1.3243002891540527, + 1.8986504077911377 + ], + "min": [ + -7.984704971313477, + -15.606008529663086, + -1.157180666923523 + ] + }, + { + "bufferView": 565, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1263, + "type": "VEC3" + }, + { + "bufferView": 566, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1263, + "type": "VEC2" + }, + { + "bufferView": 567, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1884, + "type": "SCALAR" + }, + { + "bufferView": 568, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4575, + "type": "VEC3", + "max": [ + -1.290176272392273, + 3.0053040981292725, + 1.5715904235839844 + ], + "min": [ + -7.3055338859558105, + -14.679903984069824, + -0.8123873472213745 + ] + }, + { + "bufferView": 569, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4575, + "type": "VEC3" + }, + { + "bufferView": 570, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4575, + "type": "VEC2" + }, + { + "bufferView": 571, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6900, + "type": "SCALAR" + }, + { + "bufferView": 572, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 904, + "type": "VEC3", + "max": [ + -1.4239108562469482, + 2.243298053741455, + 1.4128507375717163 + ], + "min": [ + -6.286430835723877, + -2.261714220046997, + -0.6470836997032166 + ] + }, + { + "bufferView": 573, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 904, + "type": "VEC3" + }, + { + "bufferView": 574, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 904, + "type": "VEC2" + }, + { + "bufferView": 575, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1284, + "type": "SCALAR" + }, + { + "bufferView": 576, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC3", + "max": [ + -5.676241874694824, + 2.580660820007324, + 0.3273818790912628 + ], + "min": [ + -6.310834884643555, + -2.599062919616699, + -0.08120323717594147 + ] + }, + { + "bufferView": 577, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC3" + }, + { + "bufferView": 578, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC2" + }, + { + "bufferView": 579, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 408, + "type": "SCALAR" + }, + { + "bufferView": 580, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 978, + "type": "VEC3", + "max": [ + 0.4630541503429413, + 0.16751602292060852, + 2.660783290863037 + ], + "min": [ + -0.1743369847536087, + -3.320108652114868, + -2.686702251434326 + ] + }, + { + "bufferView": 581, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 978, + "type": "VEC3" + }, + { + "bufferView": 582, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 978, + "type": "VEC2" + }, + { + "bufferView": 583, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2616, + "type": "SCALAR" + }, + { + "bufferView": 584, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 20, + "type": "VEC3", + "max": [ + 0.4491921365261078, + 0.014389528892934322, + 2.3234190940856934 + ], + "min": [ + 0.06621242314577103, + -0.6201978921890259, + -2.3493378162384033 + ] + }, + { + "bufferView": 585, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 20, + "type": "VEC3" + }, + { + "bufferView": 586, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 20, + "type": "VEC2" + }, + { + "bufferView": 587, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 48, + "type": "SCALAR" + }, + { + "bufferView": 588, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4576, + "type": "VEC3", + "max": [ + 0.8969575762748718, + 0.090733103454113, + 2.5835490226745605 + ], + "min": [ + -0.9067540764808655, + -3.2038447856903076, + -2.5882818698883057 + ] + }, + { + "bufferView": 589, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4576, + "type": "VEC3" + }, + { + "bufferView": 590, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4576, + "type": "VEC2" + }, + { + "bufferView": 591, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 7104, + "type": "SCALAR" + }, + { + "bufferView": 592, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 363, + "type": "VEC3", + "max": [ + -0.39439117908477783, + -0.22939029335975647, + -0.45706304907798767 + ], + "min": [ + -1.5273886919021606, + -1.8545985221862793, + -1.9487340450286865 + ] + }, + { + "bufferView": 593, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 363, + "type": "VEC3" + }, + { + "bufferView": 594, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 363, + "type": "VEC2" + }, + { + "bufferView": 595, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2052, + "type": "SCALAR" + }, + { + "bufferView": 596, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC3", + "max": [ + 0.25990304350852966, + -0.27596181631088257, + 2.2213544845581055 + ], + "min": [ + -1.2446624040603638, + -3.191788673400879, + -2.2476933002471924 + ] + }, + { + "bufferView": 597, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC3" + }, + { + "bufferView": 598, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC2" + }, + { + "bufferView": 599, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 198, + "type": "SCALAR" + }, + { + "bufferView": 600, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2503, + "type": "VEC3", + "max": [ + 1.515038013458252, + 2.5187511444091797, + 2.7266929149627686 + ], + "min": [ + -1.8464986085891724, + -2.9257705211639404, + -2.7266945838928223 + ] + }, + { + "bufferView": 601, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2503, + "type": "VEC3" + }, + { + "bufferView": 602, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2503, + "type": "VEC2" + }, + { + "bufferView": 603, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3711, + "type": "SCALAR" + }, + { + "bufferView": 604, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 354, + "type": "VEC3", + "max": [ + 0.2891210913658142, + 2.7589800357818604, + 2.1716063022613525 + ], + "min": [ + -1.7750043869018555, + -2.3808844089508057, + -2.1106646060943604 + ] + }, + { + "bufferView": 605, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 354, + "type": "VEC3" + }, + { + "bufferView": 606, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 354, + "type": "VEC2" + }, + { + "bufferView": 607, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 750, + "type": "SCALAR" + }, + { + "bufferView": 608, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1150, + "type": "VEC3", + "max": [ + 1.3694350719451904, + 2.629446029663086, + 2.7397773265838623 + ], + "min": [ + -0.8816002607345581, + -2.563027858734131, + -2.739778757095337 + ] + }, + { + "bufferView": 609, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1150, + "type": "VEC3" + }, + { + "bufferView": 610, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1150, + "type": "VEC2" + }, + { + "bufferView": 611, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3072, + "type": "SCALAR" + }, + { + "bufferView": 612, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 363, + "type": "VEC3", + "max": [ + 1.745374321937561, + -0.4805142879486084, + -0.32576489448547363 + ], + "min": [ + 0.6123767495155334, + -2.105722427368164, + -1.8174349069595337 + ] + }, + { + "bufferView": 613, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 363, + "type": "VEC3" + }, + { + "bufferView": 614, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 363, + "type": "VEC2" + }, + { + "bufferView": 615, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2052, + "type": "SCALAR" + }, + { + "bufferView": 616, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 684, + "type": "VEC3", + "max": [ + 0.2916194200515747, + 2.3781089782714844, + 2.144939422607422 + ], + "min": [ + -1.2303214073181152, + -2.3781094551086426, + -2.1182024478912354 + ] + }, + { + "bufferView": 617, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 684, + "type": "VEC3" + }, + { + "bufferView": 618, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 684, + "type": "VEC2" + }, + { + "bufferView": 619, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 996, + "type": "SCALAR" + }, + { + "bufferView": 620, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1909, + "type": "VEC3", + "max": [ + 0.8876562714576721, + 2.7304790019989014, + 2.739776372909546 + ], + "min": [ + -1.3806489706039429, + -2.630021810531616, + -2.739778995513916 + ] + }, + { + "bufferView": 621, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1909, + "type": "VEC3" + }, + { + "bufferView": 622, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1909, + "type": "VEC2" + }, + { + "bufferView": 623, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4680, + "type": "SCALAR" + }, + { + "bufferView": 624, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1696, + "type": "VEC3", + "max": [ + 0.6439210176467896, + 2.925771474838257, + 2.402406692504883 + ], + "min": [ + -1.13862144947052, + -2.451571226119995, + -2.402409076690674 + ] + }, + { + "bufferView": 625, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1696, + "type": "VEC3" + }, + { + "bufferView": 626, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1696, + "type": "VEC2" + }, + { + "bufferView": 627, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2526, + "type": "SCALAR" + }, + { + "bufferView": 628, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 158, + "type": "VEC3", + "max": [ + 1.3083213567733765, + 1.4777215719223022, + 1.4482073783874512 + ], + "min": [ + -1.252362847328186, + -1.0715560913085938, + -1.513731837272644 + ] + }, + { + "bufferView": 629, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 158, + "type": "VEC3" + }, + { + "bufferView": 630, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 158, + "type": "VEC2" + }, + { + "bufferView": 631, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 804, + "type": "SCALAR" + }, + { + "bufferView": 632, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 5078, + "type": "VEC3", + "max": [ + 1.344590187072754, + 1.4404475688934326, + 1.7955899238586426 + ], + "min": [ + -1.3594036102294922, + -1.7528868913650513, + -1.7955899238586426 + ] + }, + { + "bufferView": 633, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 5078, + "type": "VEC3" + }, + { + "bufferView": 634, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 5078, + "type": "VEC2" + }, + { + "bufferView": 635, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 9318, + "type": "SCALAR" + }, + { + "bufferView": 636, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1286, + "type": "VEC3", + "max": [ + 1.3724852800369263, + 0.9194172024726868, + 2.132659673690796 + ], + "min": [ + -1.0817986726760864, + -1.4072599411010742, + -2.132660150527954 + ] + }, + { + "bufferView": 637, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1286, + "type": "VEC3" + }, + { + "bufferView": 638, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1286, + "type": "VEC2" + }, + { + "bufferView": 639, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3840, + "type": "SCALAR" + }, + { + "bufferView": 640, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3", + "max": [ + 2.717958927154541, + 2.6478676795959473, + 0.9373586177825928 + ], + "min": [ + -2.166271924972534, + -2.6646242141723633, + -0.9350165724754333 + ] + }, + { + "bufferView": 641, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3" + }, + { + "bufferView": 642, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC2" + }, + { + "bufferView": 643, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 468, + "type": "SCALAR" + }, + { + "bufferView": 644, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 80, + "type": "VEC3", + "max": [ + 2.837559223175049, + 2.2312004566192627, + 0.9832614660263062 + ], + "min": [ + -2.455381393432617, + -2.2479701042175293, + -0.9885480999946594 + ] + }, + { + "bufferView": 645, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 80, + "type": "VEC3" + }, + { + "bufferView": 646, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 80, + "type": "VEC2" + }, + { + "bufferView": 647, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 648, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1758, + "type": "VEC3", + "max": [ + 2.8447866439819336, + 2.3105835914611816, + 1.7558743953704834 + ], + "min": [ + -2.8447866439819336, + -2.3273515701293945, + -1.755873441696167 + ] + }, + { + "bufferView": 649, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1758, + "type": "VEC3" + }, + { + "bufferView": 650, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1758, + "type": "VEC2" + }, + { + "bufferView": 651, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3804, + "type": "SCALAR" + }, + { + "bufferView": 652, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 298, + "type": "VEC3", + "max": [ + 8.184208869934082, + 0.49561607837677, + 0.5403896570205688 + ], + "min": [ + -7.799620628356934, + -0.1026536226272583, + -0.12120617926120758 + ] + }, + { + "bufferView": 653, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 298, + "type": "VEC3" + }, + { + "bufferView": 654, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 298, + "type": "VEC2" + }, + { + "bufferView": 655, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 879, + "type": "SCALAR" + }, + { + "bufferView": 656, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + 7.873180866241455, + 0.3010632395744324, + 0.29546666145324707 + ], + "min": [ + 0.06633264571428299, + 0.22272010147571564, + 0.2079101949930191 + ] + }, + { + "bufferView": 657, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 658, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 659, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 660, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 846, + "type": "VEC3", + "max": [ + 8.111333847045898, + 0.5549477934837341, + 0.4706888198852539 + ], + "min": [ + -0.17927423119544983, + 0.067316934466362, + -0.009270844981074333 + ] + }, + { + "bufferView": 661, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 846, + "type": "VEC3" + }, + { + "bufferView": 662, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 846, + "type": "VEC2" + }, + { + "bufferView": 663, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2256, + "type": "SCALAR" + }, + { + "bufferView": 664, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 6.854877471923828, + 2.1972060203552246, + 0.9289130568504333 + ], + "min": [ + -7.075582027435303, + -2.219459056854248, + -0.8591073155403137 + ] + }, + { + "bufferView": 665, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 666, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 667, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 668, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 560, + "type": "VEC3", + "max": [ + 4.659343242645264, + 2.5785200595855713, + 0.9432881474494934 + ], + "min": [ + -6.356884002685547, + -2.5785186290740967, + -0.9432881474494934 + ] + }, + { + "bufferView": 669, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 560, + "type": "VEC3" + }, + { + "bufferView": 670, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 560, + "type": "VEC2" + }, + { + "bufferView": 671, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1158, + "type": "SCALAR" + }, + { + "bufferView": 672, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC3", + "max": [ + 6.8458662033081055, + 2.035637140274048, + -0.8261063098907471 + ], + "min": [ + -7.06658935546875, + -2.0361006259918213, + -0.8388230204582214 + ] + }, + { + "bufferView": 673, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC3" + }, + { + "bufferView": 674, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC2" + }, + { + "bufferView": 675, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6, + "type": "SCALAR" + }, + { + "bufferView": 676, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4712, + "type": "VEC3", + "max": [ + 7.208393096923828, + 2.239245653152466, + 0.933510959148407 + ], + "min": [ + -7.208395004272461, + -2.2371833324432373, + -0.9329022169113159 + ] + }, + { + "bufferView": 677, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4712, + "type": "VEC3" + }, + { + "bufferView": 678, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4712, + "type": "VEC2" + }, + { + "bufferView": 679, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6864, + "type": "SCALAR" + }, + { + "bufferView": 680, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 398, + "type": "VEC3", + "max": [ + 6.9794697761535645, + 2.306147813796997, + 0.5713481307029724 + ], + "min": [ + -7.199975967407227, + -2.3021843433380127, + -0.5670064091682434 + ] + }, + { + "bufferView": 681, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 398, + "type": "VEC3" + }, + { + "bufferView": 682, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 398, + "type": "VEC2" + }, + { + "bufferView": 683, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 588, + "type": "SCALAR" + }, + { + "bufferView": 684, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 368, + "type": "VEC3", + "max": [ + 1.925105094909668, + 5.675525665283203, + -0.3891404867172241 + ], + "min": [ + -1.9251656532287598, + -5.6524834632873535, + -1.7598626613616943 + ] + }, + { + "bufferView": 685, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 368, + "type": "VEC3" + }, + { + "bufferView": 686, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 368, + "type": "VEC2" + }, + { + "bufferView": 687, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 552, + "type": "SCALAR" + }, + { + "bufferView": 688, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2528, + "type": "VEC3", + "max": [ + 2.1376070976257324, + 6.029473304748535, + 1.7888188494907808e-06 + ], + "min": [ + -2.089160442352295, + -6.010542869567871, + -25.00429344177246 + ] + }, + { + "bufferView": 689, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2528, + "type": "VEC3" + }, + { + "bufferView": 690, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2528, + "type": "VEC2" + }, + { + "bufferView": 691, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3756, + "type": "SCALAR" + }, + { + "bufferView": 692, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 423, + "type": "VEC3", + "max": [ + 2.2794086933135986, + -1.5686792135238647, + -0.8542855978012085 + ], + "min": [ + 1.6928809881210327, + -2.206059217453003, + -1.1637287139892578 + ] + }, + { + "bufferView": 693, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 423, + "type": "VEC3" + }, + { + "bufferView": 694, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 423, + "type": "VEC2" + }, + { + "bufferView": 695, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1080, + "type": "SCALAR" + }, + { + "bufferView": 696, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 384, + "type": "VEC3", + "max": [ + 0.15261372923851013, + 5.861611366271973, + -1.7460243701934814 + ], + "min": [ + -0.16140057146549225, + -5.842681884765625, + -24.873506546020508 + ] + }, + { + "bufferView": 697, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 384, + "type": "VEC3" + }, + { + "bufferView": 698, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 384, + "type": "VEC2" + }, + { + "bufferView": 699, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 576, + "type": "SCALAR" + }, + { + "bufferView": 700, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3", + "max": [ + 6.039325714111328, + 0.6561462879180908, + 37.1788444519043 + ], + "min": [ + -6.039349555969238, + -0.6561462879180908, + -4.6088732119642373e-07 + ] + }, + { + "bufferView": 701, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3" + }, + { + "bufferView": 702, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC2" + }, + { + "bufferView": 703, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4164, + "type": "SCALAR" + }, + { + "bufferView": 704, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3", + "max": [ + 6.039318084716797, + 0.0016399095766246319, + 37.1788444519043 + ], + "min": [ + -6.039344787597656, + 0.0011271834373474121, + 3.014760732650757 + ] + }, + { + "bufferView": 705, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3" + }, + { + "bufferView": 706, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC2" + }, + { + "bufferView": 707, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 504, + "type": "SCALAR" + }, + { + "bufferView": 708, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 196, + "type": "VEC3", + "max": [ + 6.03931188583374, + 0.5357840061187744, + 37.55452346801758 + ], + "min": [ + -6.039349555969238, + -0.39916661381721497, + 37.12103271484375 + ] + }, + { + "bufferView": 709, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 196, + "type": "VEC3" + }, + { + "bufferView": 710, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 196, + "type": "VEC2" + }, + { + "bufferView": 711, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 712, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3", + "max": [ + 6.039339542388916, + 0.6561462879180908, + -1.6780109035607893e-07 + ], + "min": [ + -6.039330959320068, + -0.6561462879180908, + -37.17884063720703 + ] + }, + { + "bufferView": 713, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3" + }, + { + "bufferView": 714, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC2" + }, + { + "bufferView": 715, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4164, + "type": "SCALAR" + }, + { + "bufferView": 716, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 334, + "type": "VEC3", + "max": [ + 6.039334774017334, + 0.0016399095766246319, + -3.0147621631622314 + ], + "min": [ + -6.039323329925537, + 0.0011271834373474121, + -37.17884063720703 + ] + }, + { + "bufferView": 717, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 334, + "type": "VEC3" + }, + { + "bufferView": 718, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 334, + "type": "VEC2" + }, + { + "bufferView": 719, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 504, + "type": "SCALAR" + }, + { + "bufferView": 720, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 196, + "type": "VEC3", + "max": [ + 6.039339542388916, + 0.5357840061187744, + -37.121036529541016 + ], + "min": [ + -6.039323329925537, + -0.39916661381721497, + -37.55452346801758 + ] + }, + { + "bufferView": 721, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 196, + "type": "VEC3" + }, + { + "bufferView": 722, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 196, + "type": "VEC2" + }, + { + "bufferView": 723, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 724, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2199, + "type": "VEC3", + "max": [ + 13.824934005737305, + 1.3838400840759277, + 1.5341577529907227 + ], + "min": [ + 0.018869446590542793, + -15.59856128692627, + -1.5216734409332275 + ] + }, + { + "bufferView": 725, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2199, + "type": "VEC3" + }, + { + "bufferView": 726, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2199, + "type": "VEC2" + }, + { + "bufferView": 727, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3426, + "type": "SCALAR" + }, + { + "bufferView": 728, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6367, + "type": "VEC3", + "max": [ + 13.14576244354248, + 3.0127501487731934, + 1.1967051029205322 + ], + "min": [ + -6.510806997539476e-05, + -14.672457695007324, + -2.5667104721069336 + ] + }, + { + "bufferView": 729, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6367, + "type": "VEC3" + }, + { + "bufferView": 730, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6367, + "type": "VEC2" + }, + { + "bufferView": 731, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 9588, + "type": "SCALAR" + }, + { + "bufferView": 732, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1106, + "type": "VEC3", + "max": [ + 12.151063919067383, + 2.588106870651245, + 1.1349807977676392 + ], + "min": [ + 0.22214120626449585, + -2.5917584896087646, + -0.8577111959457397 + ] + }, + { + "bufferView": 733, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1106, + "type": "VEC3" + }, + { + "bufferView": 734, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1106, + "type": "VEC2" + }, + { + "bufferView": 735, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2064, + "type": "SCALAR" + }, + { + "bufferView": 736, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 892, + "type": "VEC3", + "max": [ + 12.126659393310547, + 2.250744104385376, + 1.6949107646942139 + ], + "min": [ + 5.549062728881836, + -2.254267930984497, + -1.035874366760254 + ] + }, + { + "bufferView": 737, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 892, + "type": "VEC3" + }, + { + "bufferView": 738, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 892, + "type": "VEC2" + }, + { + "bufferView": 739, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1476, + "type": "SCALAR" + }, + { + "bufferView": 740, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3", + "max": [ + 6.039328098297119, + 0.6561465859413147, + 37.17884826660156 + ], + "min": [ + -6.039351940155029, + -0.6561459898948669, + -1.565097846878416e-07 + ] + }, + { + "bufferView": 741, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3" + }, + { + "bufferView": 742, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC2" + }, + { + "bufferView": 743, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4164, + "type": "SCALAR" + }, + { + "bufferView": 744, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3", + "max": [ + 6.039320468902588, + 0.0016402225010097027, + 37.17884826660156 + ], + "min": [ + -6.039347171783447, + 0.0011274964781478047, + 3.014760971069336 + ] + }, + { + "bufferView": 745, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3" + }, + { + "bufferView": 746, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC2" + }, + { + "bufferView": 747, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 504, + "type": "SCALAR" + }, + { + "bufferView": 748, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 202, + "type": "VEC3", + "max": [ + 6.039314270019531, + 0.5357843041419983, + 37.55452346801758 + ], + "min": [ + -6.039351940155029, + -0.3991663157939911, + 37.121036529541016 + ] + }, + { + "bufferView": 749, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 202, + "type": "VEC3" + }, + { + "bufferView": 750, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 202, + "type": "VEC2" + }, + { + "bufferView": 751, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 752, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3", + "max": [ + 6.039347171783447, + 0.6561462879180908, + 0.0 + ], + "min": [ + -6.039328098297119, + -0.6561462879180908, + -37.1788444519043 + ] + }, + { + "bufferView": 753, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC3" + }, + { + "bufferView": 754, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1650, + "type": "VEC2" + }, + { + "bufferView": 755, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4164, + "type": "SCALAR" + }, + { + "bufferView": 756, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3", + "max": [ + 6.039341926574707, + 0.0016399095766246319, + -3.0147616863250732 + ], + "min": [ + -6.039320468902588, + 0.0011271834373474121, + -37.1788444519043 + ] + }, + { + "bufferView": 757, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC3" + }, + { + "bufferView": 758, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 336, + "type": "VEC2" + }, + { + "bufferView": 759, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 504, + "type": "SCALAR" + }, + { + "bufferView": 760, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3", + "max": [ + 6.039347171783447, + 0.5357840061187744, + -37.121036529541016 + ], + "min": [ + -6.039320468902588, + -0.39916661381721497, + -37.554527282714844 + ] + }, + { + "bufferView": 761, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3" + }, + { + "bufferView": 762, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC2" + }, + { + "bufferView": 763, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 324, + "type": "SCALAR" + }, + { + "bufferView": 764, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1470, + "type": "VEC3", + "max": [ + 1.642601490020752, + 2.5139105319976807, + 2.4804346561431885 + ], + "min": [ + -0.42153215408325195, + -2.517164707183838, + 0.5308481454849243 + ] + }, + { + "bufferView": 765, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1470, + "type": "VEC3" + }, + { + "bufferView": 766, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1470, + "type": "VEC2" + }, + { + "bufferView": 767, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3360, + "type": "SCALAR" + }, + { + "bufferView": 768, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4859, + "type": "VEC3", + "max": [ + 1.6878812313079834, + 2.2841172218322754, + 2.311633586883545 + ], + "min": [ + -1.8659217357635498, + -2.284116744995117, + -2.0656192302703857 + ] + }, + { + "bufferView": 769, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4859, + "type": "VEC3" + }, + { + "bufferView": 770, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4859, + "type": "VEC2" + }, + { + "bufferView": 771, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 10095, + "type": "SCALAR" + }, + { + "bufferView": 772, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 309, + "type": "VEC3", + "max": [ + 1.362919807434082, + 1.4367908239364624, + 1.733404517173767 + ], + "min": [ + -1.60237717628479, + -1.4291547536849976, + -0.05494542047381401 + ] + }, + { + "bufferView": 773, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 309, + "type": "VEC3" + }, + { + "bufferView": 774, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 309, + "type": "VEC2" + }, + { + "bufferView": 775, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 447, + "type": "SCALAR" + }, + { + "bufferView": 776, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 85, + "type": "VEC3", + "max": [ + 1.362919807434082, + 1.4367908239364624, + 1.733404517173767 + ], + "min": [ + -1.60237717628479, + -1.4291547536849976, + -0.05494542047381401 + ] + }, + { + "bufferView": 777, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 85, + "type": "VEC3" + }, + { + "bufferView": 778, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 85, + "type": "VEC2" + }, + { + "bufferView": 779, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 117, + "type": "SCALAR" + }, + { + "bufferView": 780, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1310, + "type": "VEC3", + "max": [ + 15.534815788269043, + 2.3180043697357178, + 1.7962170839309692 + ], + "min": [ + -1.115586757659912, + -2.3012378215789795, + -1.8007596731185913 + ] + }, + { + "bufferView": 781, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1310, + "type": "VEC3" + }, + { + "bufferView": 782, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1310, + "type": "VEC2" + }, + { + "bufferView": 783, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2790, + "type": "SCALAR" + }, + { + "bufferView": 784, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1197, + "type": "VEC3", + "max": [ + 7.984704971313477, + 1.3243002891540527, + 1.157181739807129 + ], + "min": [ + 1.3185160160064697, + -15.606008529663086, + -1.8986493349075317 + ] + }, + { + "bufferView": 785, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1197, + "type": "VEC3" + }, + { + "bufferView": 786, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1197, + "type": "VEC2" + }, + { + "bufferView": 787, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1884, + "type": "SCALAR" + }, + { + "bufferView": 788, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4575, + "type": "VEC3", + "max": [ + 7.3055338859558105, + 3.0053040981292725, + 0.8123881220817566 + ], + "min": [ + 1.290176510810852, + -14.679903984069824, + -1.5715895891189575 + ] + }, + { + "bufferView": 789, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4575, + "type": "VEC3" + }, + { + "bufferView": 790, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4575, + "type": "VEC2" + }, + { + "bufferView": 791, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6900, + "type": "SCALAR" + }, + { + "bufferView": 792, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 843, + "type": "VEC3", + "max": [ + 6.286430835723877, + 2.243298053741455, + 0.6470843553543091 + ], + "min": [ + 1.4239109754562378, + -2.261714220046997, + -1.4128504991531372 + ] + }, + { + "bufferView": 793, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 843, + "type": "VEC3" + }, + { + "bufferView": 794, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 843, + "type": "VEC2" + }, + { + "bufferView": 795, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1284, + "type": "SCALAR" + }, + { + "bufferView": 796, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC3", + "max": [ + 6.310834884643555, + 2.580660820007324, + 0.08120408654212952 + ], + "min": [ + 5.676241874694824, + -2.599062919616699, + -0.32738107442855835 + ] + }, + { + "bufferView": 797, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC3" + }, + { + "bufferView": 798, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC2" + }, + { + "bufferView": 799, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 408, + "type": "SCALAR" + }, + { + "bufferView": 800, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1568, + "type": "VEC3", + "max": [ + 1.1386185884475708, + 2.9257712364196777, + 2.726694107055664 + ], + "min": [ + -0.6439210176467896, + -2.4515717029571533, + -2.7266933917999268 + ] + }, + { + "bufferView": 801, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1568, + "type": "VEC3" + }, + { + "bufferView": 802, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1568, + "type": "VEC2" + }, + { + "bufferView": 803, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2709, + "type": "SCALAR" + }, + { + "bufferView": 804, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 685, + "type": "VEC3", + "max": [ + 1.7453694343566895, + 2.126769781112671, + 1.8174346685409546 + ], + "min": [ + 0.6123718619346619, + 0.48203638195991516, + -1.3871794939041138 + ] + }, + { + "bufferView": 805, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 685, + "type": "VEC3" + }, + { + "bufferView": 806, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 685, + "type": "VEC2" + }, + { + "bufferView": 807, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3360, + "type": "SCALAR" + }, + { + "bufferView": 808, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 372, + "type": "VEC3", + "max": [ + 0.29162052273750305, + 2.378113031387329, + 2.1106650829315186 + ], + "min": [ + -1.9024109840393066, + -2.7535853385925293, + -2.1245522499084473 + ] + }, + { + "bufferView": 809, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 372, + "type": "VEC3" + }, + { + "bufferView": 810, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 372, + "type": "VEC2" + }, + { + "bufferView": 811, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 750, + "type": "SCALAR" + }, + { + "bufferView": 812, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1150, + "type": "VEC3", + "max": [ + 1.3806464672088623, + 2.563028573989868, + 2.739778518676758 + ], + "min": [ + -0.8877633810043335, + -2.6302335262298584, + -2.7397773265838623 + ] + }, + { + "bufferView": 813, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1150, + "type": "VEC3" + }, + { + "bufferView": 814, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1150, + "type": "VEC2" + }, + { + "bufferView": 815, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3072, + "type": "SCALAR" + }, + { + "bufferView": 816, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4998, + "type": "VEC3", + "max": [ + 1.6704926490783691, + 2.465815544128418, + 2.402407646179199 + ], + "min": [ + -1.5121198892593384, + -2.925771474838257, + -2.4024078845977783 + ] + }, + { + "bufferView": 817, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4998, + "type": "VEC3" + }, + { + "bufferView": 818, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4998, + "type": "VEC2" + }, + { + "bufferView": 819, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 8604, + "type": "SCALAR" + }, + { + "bufferView": 820, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1573, + "type": "VEC3", + "max": [ + 1.6271917819976807, + 2.6291050910949707, + 2.7397780418395996 + ], + "min": [ + -1.3694353103637695, + -2.563028335571289, + -2.7397778034210205 + ] + }, + { + "bufferView": 821, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1573, + "type": "VEC3" + }, + { + "bufferView": 822, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1573, + "type": "VEC2" + }, + { + "bufferView": 823, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4200, + "type": "SCALAR" + }, + { + "bufferView": 824, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 338, + "type": "VEC3", + "max": [ + 1.9075721502304077, + 2.755185127258301, + 2.1246097087860107 + ], + "min": [ + -0.2891240417957306, + -2.3808908462524414, + -2.1427576541900635 + ] + }, + { + "bufferView": 825, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 338, + "type": "VEC3" + }, + { + "bufferView": 826, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 338, + "type": "VEC2" + }, + { + "bufferView": 827, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 720, + "type": "SCALAR" + }, + { + "bufferView": 828, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 42, + "type": "VEC3", + "max": [ + 1.6038894653320312, + -0.04671716317534447, + 2.1232759952545166 + ], + "min": [ + 0.2696155905723572, + -1.8480523824691772, + 0.7874733209609985 + ] + }, + { + "bufferView": 829, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 42, + "type": "VEC3" + }, + { + "bufferView": 830, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 42, + "type": "VEC2" + }, + { + "bufferView": 831, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 78, + "type": "SCALAR" + }, + { + "bufferView": 832, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3", + "max": [ + 2.1662731170654297, + 2.6478676795959473, + 0.9350206255912781 + ], + "min": [ + -2.7179577350616455, + -2.6646242141723633, + -0.9373618364334106 + ] + }, + { + "bufferView": 833, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3" + }, + { + "bufferView": 834, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC2" + }, + { + "bufferView": 835, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 468, + "type": "SCALAR" + }, + { + "bufferView": 836, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 80, + "type": "VEC3", + "max": [ + 2.455382823944092, + 2.2312004566192627, + 0.9885468482971191 + ], + "min": [ + -2.8375587463378906, + -2.2479701042175293, + -0.9832648038864136 + ] + }, + { + "bufferView": 837, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 80, + "type": "VEC3" + }, + { + "bufferView": 838, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 80, + "type": "VEC2" + }, + { + "bufferView": 839, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 840, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1758, + "type": "VEC3", + "max": [ + 2.8447892665863037, + 2.3105835914611816, + 1.7558773756027222 + ], + "min": [ + -2.8447892665863037, + -2.3273515701293945, + -1.7558786869049072 + ] + }, + { + "bufferView": 841, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1758, + "type": "VEC3" + }, + { + "bufferView": 842, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1758, + "type": "VEC2" + }, + { + "bufferView": 843, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3804, + "type": "SCALAR" + }, + { + "bufferView": 844, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 14.061726570129395, + -0.017723774537444115, + 1.861815094947815 + ], + "min": [ + 0.13127166032791138, + -4.434368133544922, + 0.07379469275474548 + ] + }, + { + "bufferView": 845, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 846, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 847, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 848, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 560, + "type": "VEC3", + "max": [ + 13.343032836914062, + 0.3413427174091339, + 1.876190185546875 + ], + "min": [ + 2.3268067836761475, + -4.815688133239746, + -0.010386145673692226 + ] + }, + { + "bufferView": 849, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 560, + "type": "VEC3" + }, + { + "bufferView": 850, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 560, + "type": "VEC2" + }, + { + "bufferView": 851, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1158, + "type": "SCALAR" + }, + { + "bufferView": 852, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC3", + "max": [ + 14.052739143371582, + -0.20106099545955658, + 0.10679568350315094 + ], + "min": [ + 0.14027725160121918, + -4.272819995880127, + 0.09407898783683777 + ] + }, + { + "bufferView": 853, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC3" + }, + { + "bufferView": 854, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC2" + }, + { + "bufferView": 855, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6, + "type": "SCALAR" + }, + { + "bufferView": 856, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4398, + "type": "VEC3", + "max": [ + 14.194540023803711, + 4.647472451324575e-06, + 1.8664129972457886 + ], + "min": [ + -0.2222466915845871, + -4.476412296295166, + -2.5432839834138576e-07 + ] + }, + { + "bufferView": 857, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4398, + "type": "VEC3" + }, + { + "bufferView": 858, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4398, + "type": "VEC2" + }, + { + "bufferView": 859, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6864, + "type": "SCALAR" + }, + { + "bufferView": 860, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 398, + "type": "VEC3", + "max": [ + 14.186120986938477, + 0.06500101834535599, + 1.504250168800354 + ], + "min": [ + 0.0066786883398890495, + -4.54331111907959, + 0.3658956289291382 + ] + }, + { + "bufferView": 861, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 398, + "type": "VEC3" + }, + { + "bufferView": 862, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 398, + "type": "VEC2" + }, + { + "bufferView": 863, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 588, + "type": "SCALAR" + }, + { + "bufferView": 864, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 448, + "type": "VEC3", + "max": [ + 6.743626594543457, + 2.2047154903411865, + 3.3662660121917725 + ], + "min": [ + -6.7130632400512695, + -2.204716920852661, + 0.0 + ] + }, + { + "bufferView": 865, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 448, + "type": "VEC3" + }, + { + "bufferView": 866, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 448, + "type": "VEC2" + }, + { + "bufferView": 867, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 696, + "type": "SCALAR" + }, + { + "bufferView": 868, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC3", + "max": [ + 6.738344192504883, + 2.049488067626953, + 3.1196820735931396 + ], + "min": [ + -6.707752704620361, + -2.0591628551483154, + 0.011783621273934841 + ] + }, + { + "bufferView": 869, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC3" + }, + { + "bufferView": 870, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 32, + "type": "VEC2" + }, + { + "bufferView": 871, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 48, + "type": "SCALAR" + }, + { + "bufferView": 872, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 352, + "type": "VEC3", + "max": [ + 4.5523905754089355, + 2.5876450538635254, + 1.9030450582504272 + ], + "min": [ + -4.5523905754089355, + -2.587644577026367, + 1.4940637350082397 + ] + }, + { + "bufferView": 873, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 352, + "type": "VEC3" + }, + { + "bufferView": 874, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 352, + "type": "VEC2" + }, + { + "bufferView": 875, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 816, + "type": "SCALAR" + }, + { + "bufferView": 876, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6924, + "type": "VEC3", + "max": [ + 6.821806907653809, + 2.406505823135376, + 7.088836669921875 + ], + "min": [ + -6.836622714996338, + -4.136734962463379, + -0.322890967130661 + ] + }, + { + "bufferView": 877, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6924, + "type": "VEC3" + }, + { + "bufferView": 878, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6924, + "type": "VEC2" + }, + { + "bufferView": 879, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12300, + "type": "SCALAR" + }, + { + "bufferView": 880, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 532, + "type": "VEC3", + "max": [ + 6.750809192657471, + 2.0748345851898193, + 9.079463005065918 + ], + "min": [ + -6.750810623168945, + -3.904296875, + 0.29502782225608826 + ] + }, + { + "bufferView": 881, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 532, + "type": "VEC3" + }, + { + "bufferView": 882, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 532, + "type": "VEC2" + }, + { + "bufferView": 883, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 876, + "type": "SCALAR" + }, + { + "bufferView": 884, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3650, + "type": "VEC3", + "max": [ + 1.2885935306549072, + 1.2885932922363281, + 2.6519663333892822 + ], + "min": [ + -1.2885932922363281, + -1.698913335800171, + 0.3002082407474518 + ] + }, + { + "bufferView": 885, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3650, + "type": "VEC3" + }, + { + "bufferView": 886, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3650, + "type": "VEC2" + }, + { + "bufferView": 887, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 7170, + "type": "SCALAR" + }, + { + "bufferView": 888, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 946, + "type": "VEC3", + "max": [ + 1.1326682567596436, + 1.4976660013198853, + 2.210808753967285 + ], + "min": [ + -1.1227887868881226, + -1.6096962690353394, + 0.4196029305458069 + ] + }, + { + "bufferView": 889, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 946, + "type": "VEC3" + }, + { + "bufferView": 890, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 946, + "type": "VEC2" + }, + { + "bufferView": 891, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1902, + "type": "SCALAR" + }, + { + "bufferView": 892, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 576, + "type": "VEC3", + "max": [ + 1.2885935306549072, + 1.2885929346084595, + 0.3125196099281311 + ], + "min": [ + -1.2885932922363281, + -1.2885938882827759, + -1.9723559319118067e-07 + ] + }, + { + "bufferView": 893, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 576, + "type": "VEC3" + }, + { + "bufferView": 894, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 576, + "type": "VEC2" + }, + { + "bufferView": 895, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1248, + "type": "SCALAR" + }, + { + "bufferView": 896, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 796, + "type": "VEC3", + "max": [ + 0.23130853474140167, + 0.036017969250679016, + 0.377384752035141 + ], + "min": [ + -0.40270403027534485, + -0.5977048873901367, + -0.3181973397731781 + ] + }, + { + "bufferView": 897, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 796, + "type": "VEC3" + }, + { + "bufferView": 898, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 796, + "type": "VEC2" + }, + { + "bufferView": 899, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2124, + "type": "SCALAR" + }, + { + "bufferView": 900, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1406, + "type": "VEC3", + "max": [ + 3.3322021408821456e-06, + 0.4981187582015991, + 0.6273535490036011 + ], + "min": [ + -1.2891695499420166, + -0.9907679557800293, + -0.6157398223876953 + ] + }, + { + "bufferView": 901, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1406, + "type": "VEC3" + }, + { + "bufferView": 902, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1406, + "type": "VEC2" + }, + { + "bufferView": 903, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2826, + "type": "SCALAR" + }, + { + "bufferView": 904, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1136, + "type": "VEC3", + "max": [ + 0.05561177432537079, + -0.06663902848958969, + 0.456552654504776 + ], + "min": [ + -1.3385509252548218, + -0.5749143958091736, + -0.4517214000225067 + ] + }, + { + "bufferView": 905, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1136, + "type": "VEC3" + }, + { + "bufferView": 906, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1136, + "type": "VEC2" + }, + { + "bufferView": 907, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2520, + "type": "SCALAR" + }, + { + "bufferView": 908, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 128, + "type": "VEC3", + "max": [ + -0.5112096667289734, + -0.2603945732116699, + -0.022659575566649437 + ], + "min": [ + -0.9505602717399597, + -0.7277094721794128, + -0.4955403208732605 + ] + }, + { + "bufferView": 909, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 128, + "type": "VEC3" + }, + { + "bufferView": 910, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 128, + "type": "VEC2" + }, + { + "bufferView": 911, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 480, + "type": "SCALAR" + }, + { + "bufferView": 912, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 20, + "type": "VEC3", + "max": [ + -0.3333826959133148, + -0.19591116905212402, + 0.6262006163597107 + ], + "min": [ + -1.109018087387085, + -0.944473922252655, + 0.4770795404911041 + ] + }, + { + "bufferView": 913, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 20, + "type": "VEC3" + }, + { + "bufferView": 914, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 20, + "type": "VEC2" + }, + { + "bufferView": 915, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 84, + "type": "SCALAR" + }, + { + "bufferView": 916, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC3", + "max": [ + 1.648761510848999, + 0.7020682096481323, + 0.6972977519035339 + ], + "min": [ + 1.2548906803131104, + -0.6925178170204163, + -0.6973009705543518 + ] + }, + { + "bufferView": 917, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC3" + }, + { + "bufferView": 918, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC2" + }, + { + "bufferView": 919, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 174, + "type": "SCALAR" + }, + { + "bufferView": 920, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 60, + "type": "VEC3", + "max": [ + -4.4997453689575195, + 3.407499074935913, + 0.6181584000587463 + ], + "min": [ + -7.057093143463135, + -2.500913619995117, + -0.6180807948112488 + ] + }, + { + "bufferView": 921, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 60, + "type": "VEC3" + }, + { + "bufferView": 922, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 60, + "type": "VEC2" + }, + { + "bufferView": 923, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 90, + "type": "SCALAR" + }, + { + "bufferView": 924, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2510, + "type": "VEC3", + "max": [ + 1.5985264778137207, + 2.3832099437713623, + 2.635498046875 + ], + "min": [ + -4.488739013671875, + -2.2674567699432373, + -2.63550066947937 + ] + }, + { + "bufferView": 925, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2510, + "type": "VEC3" + }, + { + "bufferView": 926, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2510, + "type": "VEC2" + }, + { + "bufferView": 927, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 7848, + "type": "SCALAR" + }, + { + "bufferView": 928, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 288, + "type": "VEC3", + "max": [ + 1.832880973815918, + 2.299745798110962, + 2.299739122390747 + ], + "min": [ + -4.407974720001221, + -2.2997453212738037, + -2.299740791320801 + ] + }, + { + "bufferView": 929, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 288, + "type": "VEC3" + }, + { + "bufferView": 930, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 288, + "type": "VEC2" + }, + { + "bufferView": 931, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 576, + "type": "SCALAR" + }, + { + "bufferView": 932, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC3", + "max": [ + 2.053593397140503, + 1.1794958114624023, + 1.1794997453689575 + ], + "min": [ + 1.64876127243042, + -1.1795071363449097, + -1.179503083229065 + ] + }, + { + "bufferView": 933, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC3" + }, + { + "bufferView": 934, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC2" + }, + { + "bufferView": 935, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1860, + "type": "SCALAR" + }, + { + "bufferView": 936, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2750, + "type": "VEC3", + "max": [ + 1.8170926570892334, + 2.3671653270721436, + 2.1656174659729004 + ], + "min": [ + -6.016758441925049, + -2.5450241565704346, + -2.1656224727630615 + ] + }, + { + "bufferView": 937, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2750, + "type": "VEC3" + }, + { + "bufferView": 938, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2750, + "type": "VEC2" + }, + { + "bufferView": 939, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4104, + "type": "SCALAR" + }, + { + "bufferView": 940, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 156, + "type": "VEC3", + "max": [ + 2.4288485050201416, + 1.338846206665039, + 0.6925244331359863 + ], + "min": [ + -2.428849697113037, + -1.5200600624084473, + -0.7020737528800964 + ] + }, + { + "bufferView": 941, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 156, + "type": "VEC3" + }, + { + "bufferView": 942, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 156, + "type": "VEC2" + }, + { + "bufferView": 943, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 330, + "type": "SCALAR" + }, + { + "bufferView": 944, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2039, + "type": "VEC3", + "max": [ + 2.6370019912719727, + 1.8320013284683228, + 2.307065963745117 + ], + "min": [ + -2.6370034217834473, + -1.5743677616119385, + -2.305535316467285 + ] + }, + { + "bufferView": 945, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2039, + "type": "VEC3" + }, + { + "bufferView": 946, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2039, + "type": "VEC2" + }, + { + "bufferView": 947, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6672, + "type": "SCALAR" + }, + { + "bufferView": 948, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 280, + "type": "VEC3", + "max": [ + 2.2997384071350098, + 1.7467854022979736, + 2.299748659133911 + ], + "min": [ + -2.2997403144836426, + -1.7041796445846558, + -2.2997400760650635 + ] + }, + { + "bufferView": 949, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 280, + "type": "VEC3" + }, + { + "bufferView": 950, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 280, + "type": "VEC2" + }, + { + "bufferView": 951, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 750, + "type": "SCALAR" + }, + { + "bufferView": 952, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC3", + "max": [ + 1.1795008182525635, + -1.5200588703155518, + 1.1795014142990112 + ], + "min": [ + -1.179502010345459, + -1.9248909950256348, + -1.1795012950897217 + ] + }, + { + "bufferView": 953, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC3" + }, + { + "bufferView": 954, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC2" + }, + { + "bufferView": 955, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1860, + "type": "SCALAR" + }, + { + "bufferView": 956, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 296, + "type": "VEC3", + "max": [ + 2.3225536346435547, + 1.9732630252838135, + 1.731278896331787 + ], + "min": [ + -2.295069456100464, + -1.3341177701950073, + -2.6167147159576416 + ] + }, + { + "bufferView": 957, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 296, + "type": "VEC3" + }, + { + "bufferView": 958, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 296, + "type": "VEC2" + }, + { + "bufferView": 959, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 468, + "type": "SCALAR" + }, + { + "bufferView": 960, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6, + "type": "VEC3", + "max": [ + 2.211977243423462, + 1.863376498222351, + 0.29721009731292725 + ], + "min": [ + 1.7304123640060425, + 1.6388165950775146, + -0.31634217500686646 + ] + }, + { + "bufferView": 961, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6, + "type": "VEC3" + }, + { + "bufferView": 962, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 6, + "type": "VEC2" + }, + { + "bufferView": 963, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 964, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3", + "max": [ + 1.417350172996521, + 0.18490082025527954, + 0.18489785492420197 + ], + "min": [ + -0.16855479776859283, + -0.18490014970302582, + -0.1849028319120407 + ] + }, + { + "bufferView": 965, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC3" + }, + { + "bufferView": 966, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 168, + "type": "VEC2" + }, + { + "bufferView": 967, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 492, + "type": "SCALAR" + }, + { + "bufferView": 968, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 460, + "type": "VEC3", + "max": [ + 0.734813928604126, + 0.7376875877380371, + 0.23387576639652252 + ], + "min": [ + -0.15693417191505432, + -0.18145424127578735, + -0.2106996774673462 + ] + }, + { + "bufferView": 969, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 460, + "type": "VEC3" + }, + { + "bufferView": 970, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 460, + "type": "VEC2" + }, + { + "bufferView": 971, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1254, + "type": "SCALAR" + }, + { + "bufferView": 972, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 384, + "type": "VEC3", + "max": [ + 4.296658515930176, + 0.22228680551052094, + 0.1685522496700287 + ], + "min": [ + -0.15693411231040955, + -0.22228644788265228, + -0.6765502691268921 + ] + }, + { + "bufferView": 973, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 384, + "type": "VEC3" + }, + { + "bufferView": 974, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 384, + "type": "VEC2" + }, + { + "bufferView": 975, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 996, + "type": "SCALAR" + }, + { + "bufferView": 976, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 372, + "type": "VEC3", + "max": [ + 4.288729190826416, + 0.2222866415977478, + 0.16854925453662872 + ], + "min": [ + -0.15693411231040955, + -0.22228658199310303, + -0.6930620670318604 + ] + }, + { + "bufferView": 977, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 372, + "type": "VEC3" + }, + { + "bufferView": 978, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 372, + "type": "VEC2" + }, + { + "bufferView": 979, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 996, + "type": "SCALAR" + }, + { + "bufferView": 980, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 428, + "type": "VEC3", + "max": [ + 0.2222866266965866, + 0.63075852394104, + 0.68558669090271 + ], + "min": [ + -0.2223091721534729, + -0.12832745909690857, + -0.22228536009788513 + ] + }, + { + "bufferView": 981, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 428, + "type": "VEC3" + }, + { + "bufferView": 982, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 428, + "type": "VEC2" + }, + { + "bufferView": 983, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1050, + "type": "SCALAR" + }, + { + "bufferView": 984, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 20, + "type": "VEC3", + "max": [ + 0.9803115725517273, + 0.1677740216255188, + 0.4144147038459778 + ], + "min": [ + -1.8403711161609778e-16, + -0.16777339577674866, + -0.6198281645774841 + ] + }, + { + "bufferView": 985, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 20, + "type": "VEC3" + }, + { + "bufferView": 986, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 20, + "type": "VEC2" + }, + { + "bufferView": 987, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 30, + "type": "SCALAR" + }, + { + "bufferView": 988, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 729, + "type": "VEC3", + "max": [ + 7.440459251403809, + 0.9405741691589355, + 4.963523864746094 + ], + "min": [ + -5.847675765835447e-07, + -1.0353765487670898, + -2.710271120071411 + ] + }, + { + "bufferView": 989, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 729, + "type": "VEC3" + }, + { + "bufferView": 990, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 729, + "type": "VEC2" + }, + { + "bufferView": 991, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1602, + "type": "SCALAR" + }, + { + "bufferView": 992, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC3", + "max": [ + 5.076159954071045, + 0.5266700983047485, + 2.606910467147827 + ], + "min": [ + 0.19363394379615784, + 0.5266700387001038, + -0.5471436977386475 + ] + }, + { + "bufferView": 993, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC3" + }, + { + "bufferView": 994, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC2" + }, + { + "bufferView": 995, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6, + "type": "SCALAR" + }, + { + "bufferView": 996, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 431, + "type": "VEC3", + "max": [ + 5.138818264007568, + -0.06303180754184723, + 4.895129680633545 + ], + "min": [ + 3.8435065746307373, + -2.470797300338745, + -0.5353071689605713 + ] + }, + { + "bufferView": 997, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 431, + "type": "VEC3" + }, + { + "bufferView": 998, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 431, + "type": "VEC2" + }, + { + "bufferView": 999, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1314, + "type": "SCALAR" + }, + { + "bufferView": 1000, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2830, + "type": "VEC3", + "max": [ + 6.4603800773620605, + 0.7868067026138306, + 3.973660707473755 + ], + "min": [ + -0.07765362411737442, + 0.1413758546113968, + -1.9138941764831543 + ] + }, + { + "bufferView": 1001, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2830, + "type": "VEC3" + }, + { + "bufferView": 1002, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2830, + "type": "VEC2" + }, + { + "bufferView": 1003, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 7512, + "type": "SCALAR" + }, + { + "bufferView": 1004, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 38, + "type": "VEC3", + "max": [ + 0.4135115146636963, + 0.5168886780738831, + 0.1430010199546814 + ], + "min": [ + -0.4135127365589142, + -0.5168882608413696, + -1.7212363481521606 + ] + }, + { + "bufferView": 1005, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 38, + "type": "VEC3" + }, + { + "bufferView": 1006, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 38, + "type": "VEC2" + }, + { + "bufferView": 1007, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 84, + "type": "SCALAR" + }, + { + "bufferView": 1008, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 417, + "type": "VEC3", + "max": [ + 0.29599928855895996, + 0.8112783432006836, + -0.28734418749809265 + ], + "min": [ + -0.299707293510437, + 0.5515435338020325, + -0.9248532652854919 + ] + }, + { + "bufferView": 1009, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 417, + "type": "VEC3" + }, + { + "bufferView": 1010, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 417, + "type": "VEC2" + }, + { + "bufferView": 1011, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1116, + "type": "SCALAR" + }, + { + "bufferView": 1012, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC3", + "max": [ + 4.9962849617004395, + 0.7082108855247498, + 2.3551082611083984 + ], + "min": [ + -4.954368591308594, + -0.692578136920929, + -2.355153799057007 + ] + }, + { + "bufferView": 1013, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC3" + }, + { + "bufferView": 1014, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC2" + }, + { + "bufferView": 1015, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 294, + "type": "SCALAR" + }, + { + "bufferView": 1016, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 69, + "type": "VEC3", + "max": [ + 6.05410099029541, + -1.0862839221954346, + 0.4415774345397949 + ], + "min": [ + 5.138487815856934, + -2.0363245010375977, + -0.6170086860656738 + ] + }, + { + "bufferView": 1017, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 69, + "type": "VEC3" + }, + { + "bufferView": 1018, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 69, + "type": "VEC2" + }, + { + "bufferView": 1019, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 180, + "type": "SCALAR" + }, + { + "bufferView": 1020, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3725, + "type": "VEC3", + "max": [ + 5.688292980194092, + 2.386514902114868, + 2.636979341506958 + ], + "min": [ + -4.978410720825195, + -2.3037147521972656, + -2.637024402618408 + ] + }, + { + "bufferView": 1021, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3725, + "type": "VEC3" + }, + { + "bufferView": 1022, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3725, + "type": "VEC2" + }, + { + "bufferView": 1023, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 9096, + "type": "SCALAR" + }, + { + "bufferView": 1024, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2224, + "type": "VEC3", + "max": [ + 5.12266206741333, + 2.6754236221313477, + 2.902123212814331 + ], + "min": [ + -5.359199047088623, + -1.1795551776885986, + -2.902132034301758 + ] + }, + { + "bufferView": 1025, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2224, + "type": "VEC3" + }, + { + "bufferView": 1026, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2224, + "type": "VEC2" + }, + { + "bufferView": 1027, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 5574, + "type": "SCALAR" + }, + { + "bufferView": 1028, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 562, + "type": "VEC3", + "max": [ + 5.637597560882568, + 2.29974627494812, + 2.299736976623535 + ], + "min": [ + -5.138488292694092, + -2.299745559692383, + -2.299744129180908 + ] + }, + { + "bufferView": 1029, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 562, + "type": "VEC3" + }, + { + "bufferView": 1030, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 562, + "type": "VEC2" + }, + { + "bufferView": 1031, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1170, + "type": "SCALAR" + }, + { + "bufferView": 1032, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC3", + "max": [ + 1.3216336965560913, + 1.2495803833007812, + 2.086005926132202 + ], + "min": [ + -2.0854718685150146, + -2.611988067626953, + -2.0860533714294434 + ] + }, + { + "bufferView": 1033, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC3" + }, + { + "bufferView": 1034, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 140, + "type": "VEC2" + }, + { + "bufferView": 1035, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 216, + "type": "SCALAR" + }, + { + "bufferView": 1036, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 240, + "type": "VEC3", + "max": [ + 1.9524569511413574, + 1.952468991279602, + 6.8149943351745605 + ], + "min": [ + -1.9524565935134888, + -1.9524445533752441, + 0.4048297703266144 + ] + }, + { + "bufferView": 1037, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 240, + "type": "VEC3" + }, + { + "bufferView": 1038, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 240, + "type": "VEC2" + }, + { + "bufferView": 1039, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1044, + "type": "SCALAR" + }, + { + "bufferView": 1040, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 437, + "type": "VEC3", + "max": [ + 2.2997398376464844, + 2.2997512817382812, + 6.795228004455566 + ], + "min": [ + -2.299739122390747, + -2.2997398376464844, + 0.220711350440979 + ] + }, + { + "bufferView": 1041, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 437, + "type": "VEC3" + }, + { + "bufferView": 1042, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 437, + "type": "VEC2" + }, + { + "bufferView": 1043, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1056, + "type": "SCALAR" + }, + { + "bufferView": 1044, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4008, + "type": "VEC3", + "max": [ + 2.3167872428894043, + 2.3167989253997803, + 7.268212795257568 + ], + "min": [ + -2.316787004470825, + -2.316775321960449, + -1.5650978184567066e-06 + ] + }, + { + "bufferView": 1045, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4008, + "type": "VEC3" + }, + { + "bufferView": 1046, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4008, + "type": "VEC2" + }, + { + "bufferView": 1047, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 11304, + "type": "SCALAR" + }, + { + "bufferView": 1048, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1732, + "type": "VEC3", + "max": [ + 2.38321590423584, + 2.3832156658172607, + 6.609768390655518 + ], + "min": [ + -2.3832156658172607, + -2.3831965923309326, + 0.4610505998134613 + ] + }, + { + "bufferView": 1049, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1732, + "type": "VEC3" + }, + { + "bufferView": 1050, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1732, + "type": "VEC2" + }, + { + "bufferView": 1051, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 8232, + "type": "SCALAR" + }, + { + "bufferView": 1052, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 130, + "type": "VEC3", + "max": [ + 0.3628063499927521, + 0.014546636492013931, + 0.8038679361343384 + ], + "min": [ + -0.362806499004364, + -0.018604516983032227, + -0.014383913949131966 + ] + }, + { + "bufferView": 1053, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 130, + "type": "VEC3" + }, + { + "bufferView": 1054, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 130, + "type": "VEC2" + }, + { + "bufferView": 1055, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 384, + "type": "SCALAR" + }, + { + "bufferView": 1056, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC3", + "max": [ + 0.6972996592521667, + 0.702073872089386, + 8.93091869354248 + ], + "min": [ + -0.6972993016242981, + -2.240755558013916, + 0.4048307240009308 + ] + }, + { + "bufferView": 1057, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC3" + }, + { + "bufferView": 1058, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 97, + "type": "VEC2" + }, + { + "bufferView": 1059, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 396, + "type": "SCALAR" + }, + { + "bufferView": 1060, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1588, + "type": "VEC3", + "max": [ + 0.45148971676826477, + 3.161818504333496, + 9.412653923034668 + ], + "min": [ + -3.4937117099761963, + -3.105724334716797, + 2.8152084350585938 + ] + }, + { + "bufferView": 1061, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1588, + "type": "VEC3" + }, + { + "bufferView": 1062, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1588, + "type": "VEC2" + }, + { + "bufferView": 1063, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3282, + "type": "SCALAR" + }, + { + "bufferView": 1064, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 5854, + "type": "VEC3", + "max": [ + 2.623699188232422, + 2.7420995235443115, + 8.936872482299805 + ], + "min": [ + -2.6267008781433105, + -2.308676242828369, + 0.2580902576446533 + ] + }, + { + "bufferView": 1065, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 5854, + "type": "VEC3" + }, + { + "bufferView": 1066, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 5854, + "type": "VEC2" + }, + { + "bufferView": 1067, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 13056, + "type": "SCALAR" + }, + { + "bufferView": 1068, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1624, + "type": "VEC3", + "max": [ + 1.2888400554656982, + 1.288840889930725, + 9.384139060974121 + ], + "min": [ + -1.2888396978378296, + -1.2888388633728027, + -6.260391387513664e-07 + ] + }, + { + "bufferView": 1069, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1624, + "type": "VEC3" + }, + { + "bufferView": 1070, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1624, + "type": "VEC2" + }, + { + "bufferView": 1071, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 4152, + "type": "SCALAR" + }, + { + "bufferView": 1072, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 104, + "type": "VEC3", + "max": [ + 2.299739360809326, + 2.2997403144836426, + 8.911153793334961 + ], + "min": [ + -2.2997395992279053, + -2.2997381687164307, + 0.220711350440979 + ] + }, + { + "bufferView": 1073, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 104, + "type": "VEC3" + }, + { + "bufferView": 1074, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 104, + "type": "VEC2" + }, + { + "bufferView": 1075, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 288, + "type": "SCALAR" + }, + { + "bufferView": 1076, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3", + "max": [ + 2.299739360809326, + 2.299739360809326, + 8.622623443603516 + ], + "min": [ + -2.299738883972168, + -2.299738883972168, + 0.5723381042480469 + ] + }, + { + "bufferView": 1077, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC3" + }, + { + "bufferView": 1078, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 198, + "type": "VEC2" + }, + { + "bufferView": 1079, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 486, + "type": "SCALAR" + }, + { + "bufferView": 1080, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 312, + "type": "VEC3", + "max": [ + -0.17539715766906738, + 0.35493648052215576, + 3.1300153732299805 + ], + "min": [ + -4.691803932189941, + -1.529039978981018, + 0.3848276138305664 + ] + }, + { + "bufferView": 1081, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 312, + "type": "VEC3" + }, + { + "bufferView": 1082, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 312, + "type": "VEC2" + }, + { + "bufferView": 1083, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 642, + "type": "SCALAR" + }, + { + "bufferView": 1084, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 687, + "type": "VEC3", + "max": [ + 0.1619703769683838, + -0.157302588224411, + 3.512709379196167 + ], + "min": [ + -5.029170989990234, + -0.8134692311286926, + 0.20041751861572266 + ] + }, + { + "bufferView": 1085, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 687, + "type": "VEC3" + }, + { + "bufferView": 1086, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 687, + "type": "VEC2" + }, + { + "bufferView": 1087, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1848, + "type": "SCALAR" + }, + { + "bufferView": 1088, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC3", + "max": [ + -0.17539453506469727, + -0.43049052357673645, + 3.3144264221191406 + ], + "min": [ + -4.691805839538574, + -0.8134692311286926, + 0.20041751861572266 + ] + }, + { + "bufferView": 1089, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC3" + }, + { + "bufferView": 1090, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC2" + }, + { + "bufferView": 1091, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 96, + "type": "SCALAR" + }, + { + "bufferView": 1092, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 220, + "type": "VEC3", + "max": [ + 0.1617887020111084, + 0.21631461381912231, + 3.2534639835357666 + ], + "min": [ + -2.3095688819885254, + -1.197705864906311, + -4.76837158203125e-07 + ] + }, + { + "bufferView": 1093, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 220, + "type": "VEC3" + }, + { + "bufferView": 1094, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 220, + "type": "VEC2" + }, + { + "bufferView": 1095, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 474, + "type": "SCALAR" + }, + { + "bufferView": 1096, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC3", + "max": [ + 1.105124831199646, + 1.0691484212875366, + 0.6972994804382324 + ], + "min": [ + 0.7112538814544678, + -0.32543760538101196, + -0.6972993612289429 + ] + }, + { + "bufferView": 1097, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC3" + }, + { + "bufferView": 1098, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC2" + }, + { + "bufferView": 1099, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 174, + "type": "SCALAR" + }, + { + "bufferView": 1100, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 227, + "type": "VEC3", + "max": [ + 0.9031192064285278, + 3.5128555297851562, + 2.202507495880127 + ], + "min": [ + -4.259115695953369, + -3.143521547317505, + -2.900974988937378 + ] + }, + { + "bufferView": 1101, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 227, + "type": "VEC3" + }, + { + "bufferView": 1102, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 227, + "type": "VEC2" + }, + { + "bufferView": 1103, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 576, + "type": "SCALAR" + }, + { + "bufferView": 1104, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2409, + "type": "VEC3", + "max": [ + 0.736521303653717, + 2.934325933456421, + 1.3442165851593018 + ], + "min": [ + -3.914519786834717, + -0.8064528107643127, + -0.819271445274353 + ] + }, + { + "bufferView": 1105, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2409, + "type": "VEC3" + }, + { + "bufferView": 1106, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 2409, + "type": "VEC2" + }, + { + "bufferView": 1107, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 5112, + "type": "SCALAR" + }, + { + "bufferView": 1108, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4500, + "type": "VEC3", + "max": [ + 1.2518653869628906, + 3.480872869491577, + 2.632032871246338 + ], + "min": [ + -4.205463886260986, + -3.1328985691070557, + -2.8709850311279297 + ] + }, + { + "bufferView": 1109, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4500, + "type": "VEC3" + }, + { + "bufferView": 1110, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4500, + "type": "VEC2" + }, + { + "bufferView": 1111, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 10272, + "type": "SCALAR" + }, + { + "bufferView": 1112, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 412, + "type": "VEC3", + "max": [ + 0.9376184940338135, + 2.6668128967285156, + 2.299738883972168 + ], + "min": [ + -4.259115219116211, + -1.9326653480529785, + -2.2997395992279053 + ] + }, + { + "bufferView": 1113, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 412, + "type": "VEC3" + }, + { + "bufferView": 1114, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 412, + "type": "VEC2" + }, + { + "bufferView": 1115, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 984, + "type": "SCALAR" + }, + { + "bufferView": 1116, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 112, + "type": "VEC3", + "max": [ + 1.2892454862594604, + 2.6668143272399902, + 2.2997398376464844 + ], + "min": [ + -1.2684259414672852, + -1.9326635599136353, + -2.299739360809326 + ] + }, + { + "bufferView": 1117, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 112, + "type": "VEC3" + }, + { + "bufferView": 1118, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 112, + "type": "VEC2" + }, + { + "bufferView": 1119, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 288, + "type": "SCALAR" + }, + { + "bufferView": 1120, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC3", + "max": [ + 1.5099561214447021, + 1.5465760231018066, + 1.1795015335083008 + ], + "min": [ + 1.1051242351531982, + -0.8124268651008606, + -1.1795014142990112 + ] + }, + { + "bufferView": 1121, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC3" + }, + { + "bufferView": 1122, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC2" + }, + { + "bufferView": 1123, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1860, + "type": "SCALAR" + }, + { + "bufferView": 1124, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3650, + "type": "VEC3", + "max": [ + 2.6519668102264404, + 1.2885936498641968, + 1.2885932922363281 + ], + "min": [ + 0.30020907521247864, + -1.6989129781723022, + -1.2885935306549072 + ] + }, + { + "bufferView": 1125, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3650, + "type": "VEC3" + }, + { + "bufferView": 1126, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 3650, + "type": "VEC2" + }, + { + "bufferView": 1127, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 7170, + "type": "SCALAR" + }, + { + "bufferView": 1128, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 946, + "type": "VEC3", + "max": [ + 2.2108097076416016, + 1.4976662397384644, + 1.1227887868881226 + ], + "min": [ + 0.4196036756038666, + -1.6096959114074707, + -1.132668137550354 + ] + }, + { + "bufferView": 1129, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 946, + "type": "VEC3" + }, + { + "bufferView": 1130, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 946, + "type": "VEC2" + }, + { + "bufferView": 1131, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1902, + "type": "SCALAR" + }, + { + "bufferView": 1132, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 576, + "type": "VEC3", + "max": [ + 0.3125201463699341, + 1.2885932922363281, + 1.2885932922363281 + ], + "min": [ + 6.136127126410429e-07, + -1.2885935306549072, + -1.2885935306549072 + ] + }, + { + "bufferView": 1133, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 576, + "type": "VEC3" + }, + { + "bufferView": 1134, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 576, + "type": "VEC2" + }, + { + "bufferView": 1135, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1248, + "type": "SCALAR" + }, + { + "bufferView": 1136, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 143, + "type": "VEC3", + "max": [ + 0.023028619587421417, + 0.023434605449438095, + 0.39974114298820496 + ], + "min": [ + -0.6410106420516968, + -0.6633744835853577, + -0.3955237567424774 + ] + }, + { + "bufferView": 1137, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 143, + "type": "VEC3" + }, + { + "bufferView": 1138, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 143, + "type": "VEC2" + }, + { + "bufferView": 1139, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 516, + "type": "SCALAR" + }, + { + "bufferView": 1140, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC3", + "max": [ + 0.24797090888023376, + 0.023766279220581055, + 0.016337374225258827 + ], + "min": [ + -0.521672248840332, + -0.6626462936401367, + -0.6919078826904297 + ] + }, + { + "bufferView": 1141, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC3" + }, + { + "bufferView": 1142, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC2" + }, + { + "bufferView": 1143, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 468, + "type": "SCALAR" + }, + { + "bufferView": 1144, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC3", + "max": [ + 0.5243183970451355, + 0.023274121806025505, + 0.01638759672641754 + ], + "min": [ + -0.24903197586536407, + -0.6604282259941101, + -0.6889596581459045 + ] + }, + { + "bufferView": 1145, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC3" + }, + { + "bufferView": 1146, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC2" + }, + { + "bufferView": 1147, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 468, + "type": "SCALAR" + }, + { + "bufferView": 1148, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 143, + "type": "VEC3", + "max": [ + 0.6409946084022522, + 0.023274239152669907, + 0.3970884382724762 + ], + "min": [ + -0.023027753457427025, + -0.6604276895523071, + -0.39709579944610596 + ] + }, + { + "bufferView": 1149, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 143, + "type": "VEC3" + }, + { + "bufferView": 1150, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 143, + "type": "VEC2" + }, + { + "bufferView": 1151, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 516, + "type": "SCALAR" + }, + { + "bufferView": 1152, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC3", + "max": [ + 0.5216714143753052, + 0.023765645921230316, + 0.6919078230857849 + ], + "min": [ + -0.2479720264673233, + -0.6626474857330322, + -0.016337409615516663 + ] + }, + { + "bufferView": 1153, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC3" + }, + { + "bufferView": 1154, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC2" + }, + { + "bufferView": 1155, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 468, + "type": "SCALAR" + }, + { + "bufferView": 1156, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC3", + "max": [ + 0.19920453429222107, + 0.023766156286001205, + 0.6571373343467712 + ], + "min": [ + -0.5777401328086853, + -0.6626465916633606, + -0.040229711681604385 + ] + }, + { + "bufferView": 1157, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC3" + }, + { + "bufferView": 1158, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 137, + "type": "VEC2" + }, + { + "bufferView": 1159, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 468, + "type": "SCALAR" + }, + { + "bufferView": 1160, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 130, + "type": "VEC3", + "max": [ + 1.0987694263458252, + 0.06433025002479553, + 0.17809587717056274 + ], + "min": [ + -0.01853169873356819, + -0.1565883606672287, + -0.7835512161254883 + ] + }, + { + "bufferView": 1161, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 130, + "type": "VEC3" + }, + { + "bufferView": 1162, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 130, + "type": "VEC2" + }, + { + "bufferView": 1163, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 546, + "type": "SCALAR" + }, + { + "bufferView": 1164, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC3", + "max": [ + 0.5847640633583069, + 0.31434395909309387, + 0.6600309610366821 + ], + "min": [ + -0.5847640633583069, + -0.31434395909309387, + -0.6600309610366821 + ] + }, + { + "bufferView": 1165, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC3" + }, + { + "bufferView": 1166, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4, + "type": "VEC2" + }, + { + "bufferView": 1167, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6, + "type": "SCALAR" + }, + { + "bufferView": 1168, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1068, + "type": "VEC3", + "max": [ + 1.303216814994812, + 0.4310799837112427, + 1.231320858001709 + ], + "min": [ + -1.2313549518585205, + -0.9842849373817444, + -1.4110443592071533 + ] + }, + { + "bufferView": 1169, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1068, + "type": "VEC3" + }, + { + "bufferView": 1170, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1068, + "type": "VEC2" + }, + { + "bufferView": 1171, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 2988, + "type": "SCALAR" + }, + { + "bufferView": 1172, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1046, + "type": "VEC3", + "max": [ + 1.3465253114700317, + -0.006377382669597864, + 1.297135591506958 + ], + "min": [ + -1.1333826780319214, + -1.14951753616333, + -1.4979583024978638 + ] + }, + { + "bufferView": 1173, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1046, + "type": "VEC3" + }, + { + "bufferView": 1174, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1046, + "type": "VEC2" + }, + { + "bufferView": 1175, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3216, + "type": "SCALAR" + }, + { + "bufferView": 1176, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1838, + "type": "VEC3", + "max": [ + 0.8552062511444092, + -0.6423979997634888, + 0.9339958429336548 + ], + "min": [ + -0.8552070260047913, + -1.1457480192184448, + -0.9339960813522339 + ] + }, + { + "bufferView": 1177, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1838, + "type": "VEC3" + }, + { + "bufferView": 1178, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1838, + "type": "VEC2" + }, + { + "bufferView": 1179, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 3690, + "type": "SCALAR" + }, + { + "bufferView": 1180, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 240, + "type": "VEC3", + "max": [ + 6.8149943351745605, + 1.952468991279602, + 1.9524563550949097 + ], + "min": [ + 0.404829740524292, + -1.9524445533752441, + -1.9524571895599365 + ] + }, + { + "bufferView": 1181, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 240, + "type": "VEC3" + }, + { + "bufferView": 1182, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 240, + "type": "VEC2" + }, + { + "bufferView": 1183, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1044, + "type": "SCALAR" + }, + { + "bufferView": 1184, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 437, + "type": "VEC3", + "max": [ + 6.795228004455566, + 2.2997512817382812, + 2.299739122390747 + ], + "min": [ + 0.22071132063865662, + -2.2997398376464844, + -2.2997398376464844 + ] + }, + { + "bufferView": 1185, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 437, + "type": "VEC3" + }, + { + "bufferView": 1186, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 437, + "type": "VEC2" + }, + { + "bufferView": 1187, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1056, + "type": "SCALAR" + }, + { + "bufferView": 1188, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4008, + "type": "VEC3", + "max": [ + 7.268212795257568, + 2.3167989253997803, + 2.316786766052246 + ], + "min": [ + -1.6099752428999636e-06, + -2.316775321960449, + -2.3167874813079834 + ] + }, + { + "bufferView": 1189, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4008, + "type": "VEC3" + }, + { + "bufferView": 1190, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4008, + "type": "VEC2" + }, + { + "bufferView": 1191, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 11304, + "type": "SCALAR" + }, + { + "bufferView": 1192, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1732, + "type": "VEC3", + "max": [ + 6.609768390655518, + 2.3832156658172607, + 2.3832156658172607 + ], + "min": [ + 0.4610505998134613, + -2.3831965923309326, + -2.38321590423584 + ] + }, + { + "bufferView": 1193, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1732, + "type": "VEC3" + }, + { + "bufferView": 1194, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1732, + "type": "VEC2" + }, + { + "bufferView": 1195, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 8232, + "type": "SCALAR" + }, + { + "bufferView": 1196, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC3", + "max": [ + 0.7020729780197144, + -0.4048313498497009, + 0.697297990322113 + ], + "min": [ + -0.6925122737884521, + -0.7987017631530762, + -0.6972997784614563 + ] + }, + { + "bufferView": 1197, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC3" + }, + { + "bufferView": 1198, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 40, + "type": "VEC2" + }, + { + "bufferView": 1199, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 174, + "type": "SCALAR" + }, + { + "bufferView": 1200, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1734, + "type": "VEC3", + "max": [ + 2.3832149505615234, + -0.4681483805179596, + 2.3832144737243652 + ], + "min": [ + -2.267451763153076, + -6.0232343673706055, + -2.3832173347473145 + ] + }, + { + "bufferView": 1201, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1734, + "type": "VEC3" + }, + { + "bufferView": 1202, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1734, + "type": "VEC2" + }, + { + "bufferView": 1203, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 6696, + "type": "SCALAR" + }, + { + "bufferView": 1204, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1072, + "type": "VEC3", + "max": [ + 2.299750804901123, + -0.2207111418247223, + 2.635497808456421 + ], + "min": [ + -2.299743890762329, + -6.542331695556641, + -2.6355016231536865 + ] + }, + { + "bufferView": 1205, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1072, + "type": "VEC3" + }, + { + "bufferView": 1206, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1072, + "type": "VEC2" + }, + { + "bufferView": 1207, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1728, + "type": "SCALAR" + }, + { + "bufferView": 1208, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC3", + "max": [ + 1.1795012950897217, + 1.2231287200847873e-06, + 1.179500699043274 + ], + "min": [ + -1.1795017719268799, + -0.40483126044273376, + -1.1795023679733276 + ] + }, + { + "bufferView": 1209, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC3" + }, + { + "bufferView": 1210, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 692, + "type": "VEC2" + }, + { + "bufferView": 1211, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1860, + "type": "SCALAR" + }, + { + "bufferView": 1212, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 225, + "type": "VEC3", + "max": [ + 1.3626728057861328, + -0.7509787082672119, + 2.165618419647217 + ], + "min": [ + -2.545020580291748, + -6.464204788208008, + -2.1656222343444824 + ] + }, + { + "bufferView": 1213, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 225, + "type": "VEC3" + }, + { + "bufferView": 1214, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 225, + "type": "VEC2" + }, + { + "bufferView": 1215, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 360, + "type": "SCALAR" + }, + { + "bufferView": 1216, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 240, + "type": "VEC3", + "max": [ + 1.9524567127227783, + 1.9524567127227783, + 1.987412929534912 + ], + "min": [ + -1.9524567127227783, + -1.9524567127227783, + -3.2295875549316406 + ] + }, + { + "bufferView": 1217, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 240, + "type": "VEC3" + }, + { + "bufferView": 1218, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 240, + "type": "VEC2" + }, + { + "bufferView": 1219, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1044, + "type": "SCALAR" + }, + { + "bufferView": 1220, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1908, + "type": "VEC3", + "max": [ + 2.3098018169403076, + 2.307610034942627, + 1.993366003036499 + ], + "min": [ + -2.3038012981414795, + -2.301785707473755, + -3.2286734580993652 + ] + }, + { + "bufferView": 1221, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1908, + "type": "VEC3" + }, + { + "bufferView": 1222, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1908, + "type": "VEC2" + }, + { + "bufferView": 1223, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 8712, + "type": "SCALAR" + }, + { + "bufferView": 1224, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 368, + "type": "VEC3", + "max": [ + 2.299739360809326, + 2.2997403144836426, + 1.9676477909088135 + ], + "min": [ + -2.2997395992279053, + -2.2997381687164307, + -3.2098228931427 + ] + }, + { + "bufferView": 1225, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 368, + "type": "VEC3" + }, + { + "bufferView": 1226, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 368, + "type": "VEC2" + }, + { + "bufferView": 1227, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1056, + "type": "SCALAR" + }, + { + "bufferView": 1228, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4248, + "type": "VEC3", + "max": [ + 2.316787004470825, + 2.3167874813079834, + 2.4406325817108154 + ], + "min": [ + -2.316787004470825, + -2.316786766052246, + -3.682807445526123 + ] + }, + { + "bufferView": 1229, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4248, + "type": "VEC3" + }, + { + "bufferView": 1230, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 4248, + "type": "VEC2" + }, + { + "bufferView": 1231, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 11736, + "type": "SCALAR" + }, + { + "bufferView": 1232, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3", + "max": [ + 0.5476953983306885, + 0.8943940997123718, + 0.042743783444166183 + ], + "min": [ + -0.04163376986980438, + -1.1307055950164795, + -1.522292137145996 + ] + }, + { + "bufferView": 1233, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3" + }, + { + "bufferView": 1234, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC2" + }, + { + "bufferView": 1235, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 1236, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + 0.5409469604492188, + 0.8940911293029785, + -0.07196439057588577 + ], + "min": [ + 0.07588563114404678, + -1.1304025650024414, + -1.4232125282287598 + ] + }, + { + "bufferView": 1237, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 1238, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 1239, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 1240, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 0.8105940222740173, + 0.019178805872797966, + 2.9352548122406006 + ], + "min": [ + -0.056423649191856384, + -0.15139204263687134, + -0.10137899219989777 + ] + }, + { + "bufferView": 1241, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 1242, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 1243, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 1244, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3", + "max": [ + 1.0197805166244507, + 1.8208900690078735, + 0.058364253491163254 + ], + "min": [ + -0.048774655908346176, + -1.9593920707702637, + -2.9216346740722656 + ] + }, + { + "bufferView": 1245, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3" + }, + { + "bufferView": 1246, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC2" + }, + { + "bufferView": 1247, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 1248, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + 0.9887110590934753, + 1.820889949798584, + -0.04587097465991974 + ], + "min": [ + 0.04552518576383591, + -1.9593920707702637, + -2.8288393020629883 + ] + }, + { + "bufferView": 1249, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 1250, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 1251, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 1252, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 0.41873759031295776, + 0.019178112968802452, + 1.4613016843795776 + ], + "min": [ + -0.04575929418206215, + -0.15139588713645935, + -0.05384767800569534 + ] + }, + { + "bufferView": 1253, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 1254, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 1255, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 1256, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 0.5350803732872009, + 0.019178885966539383, + 1.4916681051254272 + ], + "min": [ + -0.0294142235070467, + -0.15137919783592224, + -0.004038578364998102 + ] + }, + { + "bufferView": 1257, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 1258, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 1259, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 1260, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3", + "max": [ + 0.815428614616394, + 1.8209036588668823, + 0.06851865351200104 + ], + "min": [ + -0.05158684402704239, + -1.9593802690505981, + -2.9681098461151123 + ] + }, + { + "bufferView": 1261, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3" + }, + { + "bufferView": 1262, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC2" + }, + { + "bufferView": 1263, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 1264, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + 0.8021745681762695, + 1.8209036588668823, + -0.026458483189344406 + ], + "min": [ + 0.03895597532391548, + -1.9593802690505981, + -2.9084537029266357 + ] + }, + { + "bufferView": 1265, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 1266, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 1267, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 1268, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 1.0166510343551636, + 0.019175009801983833, + 2.911616086959839 + ], + "min": [ + -0.05920027941465378, + -0.15139161050319672, + -0.08990245312452316 + ] + }, + { + "bufferView": 1269, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 1270, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 1271, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 1272, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3", + "max": [ + 0.8094775080680847, + 1.820904016494751, + 0.043925292789936066 + ], + "min": [ + -0.04365722835063934, + -1.9593807458877563, + -2.940321922302246 + ] + }, + { + "bufferView": 1273, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3" + }, + { + "bufferView": 1274, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC2" + }, + { + "bufferView": 1275, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 1276, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + 0.7912813425064087, + 1.8209037780761719, + 0.02121967077255249 + ], + "min": [ + 0.024639777839183807, + -1.9593807458877563, + -2.8736720085144043 + ] + }, + { + "bufferView": 1277, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 1278, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 1279, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 1280, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3", + "max": [ + 0.04163376986980438, + 0.8943938612937927, + 0.04274382442235947 + ], + "min": [ + -0.5476958751678467, + -1.130705714225769, + -1.5222924947738647 + ] + }, + { + "bufferView": 1281, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3" + }, + { + "bufferView": 1282, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC2" + }, + { + "bufferView": 1283, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 1284, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + -0.07588562369346619, + 0.8940908908843994, + -0.07196445763111115 + ], + "min": [ + -0.5409473776817322, + -1.130402684211731, + -1.4232126474380493 + ] + }, + { + "bufferView": 1285, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 1286, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 1287, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 1288, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 0.056423619389534, + 0.019183650612831116, + 2.935253858566284 + ], + "min": [ + -0.81059330701828, + -0.15138882398605347, + -0.10137864202260971 + ] + }, + { + "bufferView": 1289, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 1290, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 1291, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 1292, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + -0.04552699998021126, + 1.8208966255187988, + -0.045872077345848083 + ], + "min": [ + -0.9887105822563171, + -1.9593840837478638, + -2.828835964202881 + ] + }, + { + "bufferView": 1293, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 1294, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 1295, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 1296, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3", + "max": [ + 0.048774123191833496, + 1.8208959102630615, + 0.058364033699035645 + ], + "min": [ + -1.019781470298767, + -1.959384560585022, + -2.9216346740722656 + ] + }, + { + "bufferView": 1297, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3" + }, + { + "bufferView": 1298, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC2" + }, + { + "bufferView": 1299, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 1300, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 0.045759331434965134, + 0.019178714603185654, + 1.461302399635315 + ], + "min": [ + -0.41873699426651, + -0.15138839185237885, + -0.053847067058086395 + ] + }, + { + "bufferView": 1301, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 1302, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 1303, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 1304, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 0.059200216084718704, + 0.019175246357917786, + 2.911616325378418 + ], + "min": [ + -1.016646385192871, + -0.15139754116535187, + -0.08990242332220078 + ] + }, + { + "bufferView": 1305, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 1306, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 1307, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 1308, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + -0.02463526837527752, + 1.8208941221237183, + 0.021227233111858368 + ], + "min": [ + -0.7912917137145996, + -1.9594002962112427, + -2.87367844581604 + ] + }, + { + "bufferView": 1309, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 1310, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 1311, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 1312, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3", + "max": [ + 0.04365703836083412, + 1.82089364528656, + 0.04392600432038307 + ], + "min": [ + -0.8094834685325623, + -1.9594008922576904, + -2.940321207046509 + ] + }, + { + "bufferView": 1313, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3" + }, + { + "bufferView": 1314, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC2" + }, + { + "bufferView": 1315, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 1316, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3", + "max": [ + -0.03895265609025955, + 1.8208935260772705, + -0.02645915560424328 + ], + "min": [ + -0.8021818995475769, + -1.9593887329101562, + -2.908454656600952 + ] + }, + { + "bufferView": 1317, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC3" + }, + { + "bufferView": 1318, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 8, + "type": "VEC2" + }, + { + "bufferView": 1319, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 12, + "type": "SCALAR" + }, + { + "bufferView": 1320, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3", + "max": [ + 0.05158648639917374, + 1.8208935260772705, + 0.06851892173290253 + ], + "min": [ + -0.8154317140579224, + -1.9593888521194458, + -2.9681098461151123 + ] + }, + { + "bufferView": 1321, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC3" + }, + { + "bufferView": 1322, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 88, + "type": "VEC2" + }, + { + "bufferView": 1323, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 1324, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3", + "max": [ + 0.02941436693072319, + 0.01917906664311886, + 1.4916671514511108 + ], + "min": [ + -0.5350798964500427, + -0.15137921273708344, + -0.004038455430418253 + ] + }, + { + "bufferView": 1325, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC3" + }, + { + "bufferView": 1326, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 72, + "type": "VEC2" + }, + { + "bufferView": 1327, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 108, + "type": "SCALAR" + }, + { + "bufferView": 1328, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1876, + "type": "VEC3", + "max": [ + 0.4823007583618164, + 0.5828124284744263, + 0.9761371612548828 + ], + "min": [ + -0.25506019592285156, + -0.43718719482421875, + -0.8645038604736328 + ] + }, + { + "bufferView": 1329, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1876, + "type": "VEC3" + }, + { + "bufferView": 1330, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 1876, + "type": "VEC2" + }, + { + "bufferView": 1331, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 7854, + "type": "SCALAR" + }, + { + "bufferView": 1332, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 204, + "type": "VEC3", + "max": [ + 0.41809654235839844, + 0.4551738500595093, + -0.7263469696044922 + ], + "min": [ + -0.18955230712890625, + -0.0994107723236084, + -0.8645038604736328 + ] + }, + { + "bufferView": 1333, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 204, + "type": "VEC3" + }, + { + "bufferView": 1334, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 204, + "type": "VEC2" + }, + { + "bufferView": 1335, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 426, + "type": "SCALAR" + }, + { + "bufferView": 1336, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 426, + "type": "VEC3", + "max": [ + 0.4286527633666992, + 0.7704722881317139, + 0.21050643920898438 + ], + "min": [ + -0.16618824005126953, + 0.5107371807098389, + -0.427001953125 + ] + }, + { + "bufferView": 1337, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 426, + "type": "VEC3" + }, + { + "bufferView": 1338, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 426, + "type": "VEC2" + }, + { + "bufferView": 1339, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 1128, + "type": "SCALAR" + }, + { + "bufferView": 1340, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 19, + "type": "VEC3", + "max": [ + 0.3967304229736328, + 0.43384242057800293, + -0.8645038604736328 + ], + "min": [ + -0.16818618774414062, + -0.0780792236328125, + -0.8645038604736328 + ] + }, + { + "bufferView": 1341, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 19, + "type": "VEC3" + }, + { + "bufferView": 1342, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 19, + "type": "VEC2" + }, + { + "bufferView": 1343, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 36, + "type": "SCALAR" + }, + { + "bufferView": 1344, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3", + "max": [ + 0.5935115814208984, + 0.41732680797576904, + 0.3074483871459961 + ], + "min": [ + 0.0, + -0.2522118389606476, + -0.30745235085487366 + ] + }, + { + "bufferView": 1345, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3" + }, + { + "bufferView": 1346, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC2" + }, + { + "bufferView": 1347, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 162, + "type": "SCALAR" + }, + { + "bufferView": 1348, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 56, + "type": "VEC3", + "max": [ + 1.1360340118408203, + 0.518912672996521, + 0.3023052215576172 + ], + "min": [ + 0.5403785705566406, + 0.40577220916748047, + -0.2925271987915039 + ] + }, + { + "bufferView": 1349, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 56, + "type": "VEC3" + }, + { + "bufferView": 1350, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 56, + "type": "VEC2" + }, + { + "bufferView": 1351, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 132, + "type": "SCALAR" + }, + { + "bufferView": 1352, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3", + "max": [ + 0.8478755950927734, + 0.6655069589614868, + 0.013065338134765625 + ], + "min": [ + 0.5404739379882812, + 0.5188943147659302, + -0.0026073455810546875 + ] + }, + { + "bufferView": 1353, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC3" + }, + { + "bufferView": 1354, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 12, + "type": "VEC2" + }, + { + "bufferView": 1355, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 24, + "type": "SCALAR" + }, + { + "bufferView": 1356, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3", + "max": [ + 1.9990596771240234, + 0.4064267873764038, + 0.4044628143310547 + ], + "min": [ + 0.0, + -0.3723186254501343, + -0.395538330078125 + ] + }, + { + "bufferView": 1357, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC3" + }, + { + "bufferView": 1358, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 84, + "type": "VEC2" + }, + { + "bufferView": 1359, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 414, + "type": "SCALAR" + }, + { + "bufferView": 1360, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 117, + "type": "VEC3", + "max": [ + 1.7899703979492188, + -0.001234889030456543, + 0.2204265594482422 + ], + "min": [ + 0.8084011077880859, + -0.5462170839309692, + -0.21369457244873047 + ] + }, + { + "bufferView": 1361, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 117, + "type": "VEC3" + }, + { + "bufferView": 1362, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 117, + "type": "VEC2" + }, + { + "bufferView": 1363, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 315, + "type": "SCALAR" + }, + { + "bufferView": 1364, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 230, + "type": "VEC3", + "max": [ + 1.1360397338867188, + 0.6655069589614868, + 0.30231475830078125 + ], + "min": [ + 0.5412025451660156, + 0.40577220916748047, + -0.2925271987915039 + ] + }, + { + "bufferView": 1365, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 230, + "type": "VEC3" + }, + { + "bufferView": 1366, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 230, + "type": "VEC2" + }, + { + "bufferView": 1367, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 798, + "type": "SCALAR" + }, + { + "bufferView": 1368, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 16, + "type": "VEC3", + "max": [ + 1.1360397338867188, + 0.4133673906326294, + 0.30231475830078125 + ], + "min": [ + 0.5412082672119141, + 0.41241490840911865, + -0.29251766204833984 + ] + }, + { + "bufferView": 1369, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 16, + "type": "VEC3" + }, + { + "bufferView": 1370, + "byteOffset": 0, + "componentType": 5126, + "normalized": false, + "count": 16, + "type": "VEC2" + }, + { + "bufferView": 1371, + "byteOffset": 0, + "componentType": 5123, + "normalized": false, + "count": 42, + "type": "SCALAR" + } + ], + "asset": { + "generator": "Khronos Blender glTF 2.0 I/O", + "version": "2.0" + }, + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 27228 + }, + { + "buffer": 0, + "byteOffset": 27228, + "byteLength": 27228 + }, + { + "buffer": 0, + "byteOffset": 54456, + "byteLength": 18152 + }, + { + "buffer": 0, + "byteOffset": 72608, + "byteLength": 10836 + }, + { + "buffer": 0, + "byteOffset": 83444, + "byteLength": 19428 + }, + { + "buffer": 0, + "byteOffset": 102872, + "byteLength": 19428 + }, + { + "buffer": 0, + "byteOffset": 122300, + "byteLength": 12952 + }, + { + "buffer": 0, + "byteOffset": 135252, + "byteLength": 7638 + }, + { + "buffer": 0, + "byteOffset": 142895, + "byteLength": 7932 + }, + { + "buffer": 0, + "byteOffset": 150827, + "byteLength": 7932 + }, + { + "buffer": 0, + "byteOffset": 158759, + "byteLength": 5288 + }, + { + "buffer": 0, + "byteOffset": 164047, + "byteLength": 5880 + }, + { + "buffer": 0, + "byteOffset": 169927, + "byteLength": 3876 + }, + { + "buffer": 0, + "byteOffset": 173803, + "byteLength": 3876 + }, + { + "buffer": 0, + "byteOffset": 177679, + "byteLength": 2584 + }, + { + "buffer": 0, + "byteOffset": 180263, + "byteLength": 2448 + }, + { + "buffer": 0, + "byteOffset": 182712, + "byteLength": 27228 + }, + { + "buffer": 0, + "byteOffset": 209940, + "byteLength": 27228 + }, + { + "buffer": 0, + "byteOffset": 237168, + "byteLength": 18152 + }, + { + "buffer": 0, + "byteOffset": 255320, + "byteLength": 10836 + }, + { + "buffer": 0, + "byteOffset": 266156, + "byteLength": 19428 + }, + { + "buffer": 0, + "byteOffset": 285584, + "byteLength": 19428 + }, + { + "buffer": 0, + "byteOffset": 305012, + "byteLength": 12952 + }, + { + "buffer": 0, + "byteOffset": 317964, + "byteLength": 7638 + }, + { + "buffer": 0, + "byteOffset": 325604, + "byteLength": 7932 + }, + { + "buffer": 0, + "byteOffset": 333536, + "byteLength": 7932 + }, + { + "buffer": 0, + "byteOffset": 341468, + "byteLength": 5288 + }, + { + "buffer": 0, + "byteOffset": 346756, + "byteLength": 5880 + }, + { + "buffer": 0, + "byteOffset": 352636, + "byteLength": 3876 + }, + { + "buffer": 0, + "byteOffset": 356512, + "byteLength": 3876 + }, + { + "buffer": 0, + "byteOffset": 360388, + "byteLength": 2584 + }, + { + "buffer": 0, + "byteOffset": 362972, + "byteLength": 2448 + }, + { + "buffer": 0, + "byteOffset": 365420, + "byteLength": 168 + }, + { + "buffer": 0, + "byteOffset": 365588, + "byteLength": 168 + }, + { + "buffer": 0, + "byteOffset": 365756, + "byteLength": 112 + }, + { + "buffer": 0, + "byteOffset": 365868, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 365905, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 366553, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 367201, + "byteLength": 432 + }, + { + "buffer": 0, + "byteOffset": 367633, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 367789, + "byteLength": 1728 + }, + { + "buffer": 0, + "byteOffset": 369517, + "byteLength": 1728 + }, + { + "buffer": 0, + "byteOffset": 371245, + "byteLength": 1152 + }, + { + "buffer": 0, + "byteOffset": 372397, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 372877, + "byteLength": 168 + }, + { + "buffer": 0, + "byteOffset": 373045, + "byteLength": 168 + }, + { + "buffer": 0, + "byteOffset": 373213, + "byteLength": 112 + }, + { + "buffer": 0, + "byteOffset": 373325, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 373361, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 374009, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 374657, + "byteLength": 432 + }, + { + "buffer": 0, + "byteOffset": 375089, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 375245, + "byteLength": 1728 + }, + { + "buffer": 0, + "byteOffset": 376973, + "byteLength": 1728 + }, + { + "buffer": 0, + "byteOffset": 378701, + "byteLength": 1152 + }, + { + "buffer": 0, + "byteOffset": 379853, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 380333, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 380429, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 380525, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 380589, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 380613, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 380997, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 381381, + "byteLength": 256 + }, + { + "buffer": 0, + "byteOffset": 381637, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 381733, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 383749, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 385765, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 387109, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 387661, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 387757, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 387853, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 387917, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 387941, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 388325, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 388709, + "byteLength": 256 + }, + { + "buffer": 0, + "byteOffset": 388965, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 389061, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 391077, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 393093, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 394437, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 394989, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 395133, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 395277, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 395373, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 395409, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 396033, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 396657, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 397073, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 397229, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 399245, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 401261, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 402605, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 403157, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 403301, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 403445, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 403541, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 403577, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 404201, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 404825, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 405241, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 405397, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 407413, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 409429, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 410773, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 411325, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 411469, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 411613, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 411709, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 411745, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 412369, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 412993, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 413409, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 413565, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 415581, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 417597, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 418941, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 419493, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 419637, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 419781, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 419877, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 419913, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 420537, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 421161, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 421577, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 421733, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 423749, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 425765, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 427109, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 427661, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 427805, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 427949, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 428045, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 428081, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 428705, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 429329, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 429745, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 429901, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 431917, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 433933, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 435277, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 435829, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 435973, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 436117, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 436213, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 436249, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 436873, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 437497, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 437913, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 438069, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 440085, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 442101, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 443445, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 443997, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 444141, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 444285, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 444381, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 444417, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 445041, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 445665, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 446081, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 446237, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 448253, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 450269, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 451613, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 452165, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 452309, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 452453, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 452549, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 452585, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 453209, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 453833, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 454249, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 454405, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 456421, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 458437, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 459781, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 460333, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 460957, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 461581, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 461997, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 462153, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 462297, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 462441, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 462537, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 462573, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 464589, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 466605, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 467949, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 468501, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 469125, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 469749, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 470165, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 470321, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 470465, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 470609, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 470705, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 470741, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 472757, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 474773, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 476117, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 476669, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 476813, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 476957, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 477053, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 477089, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 477713, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 478337, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 478753, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 478909, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 480925, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 482941, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 484285, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 484837, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 484981, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 485125, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 485221, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 485257, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 485881, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 486505, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 486921, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 487077, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 489093, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 491109, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 492453, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 493005, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 493149, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 493293, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 493389, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 493425, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 494049, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 494673, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 495089, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 495245, + "byteLength": 7152 + }, + { + "buffer": 0, + "byteOffset": 502397, + "byteLength": 7152 + }, + { + "buffer": 0, + "byteOffset": 509549, + "byteLength": 4768 + }, + { + "buffer": 0, + "byteOffset": 514317, + "byteLength": 2880 + }, + { + "buffer": 0, + "byteOffset": 517197, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 517341, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 517485, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 517581, + "byteLength": 36 + }, + { + "buffer": 0, + "byteOffset": 517617, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 518241, + "byteLength": 624 + }, + { + "buffer": 0, + "byteOffset": 518865, + "byteLength": 416 + }, + { + "buffer": 0, + "byteOffset": 519281, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 519437, + "byteLength": 7152 + }, + { + "buffer": 0, + "byteOffset": 526589, + "byteLength": 7152 + }, + { + "buffer": 0, + "byteOffset": 533741, + "byteLength": 4768 + }, + { + "buffer": 0, + "byteOffset": 538509, + "byteLength": 2880 + }, + { + "buffer": 0, + "byteOffset": 541389, + "byteLength": 3216 + }, + { + "buffer": 0, + "byteOffset": 544605, + "byteLength": 3216 + }, + { + "buffer": 0, + "byteOffset": 547821, + "byteLength": 2144 + }, + { + "buffer": 0, + "byteOffset": 549965, + "byteLength": 816 + }, + { + "buffer": 0, + "byteOffset": 550781, + "byteLength": 3216 + }, + { + "buffer": 0, + "byteOffset": 553997, + "byteLength": 3216 + }, + { + "buffer": 0, + "byteOffset": 557213, + "byteLength": 2144 + }, + { + "buffer": 0, + "byteOffset": 559357, + "byteLength": 816 + }, + { + "buffer": 0, + "byteOffset": 560173, + "byteLength": 139596 + }, + { + "buffer": 0, + "byteOffset": 699769, + "byteLength": 139596 + }, + { + "buffer": 0, + "byteOffset": 839365, + "byteLength": 93064 + }, + { + "buffer": 0, + "byteOffset": 932429, + "byteLength": 35226 + }, + { + "buffer": 0, + "byteOffset": 967657, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 968041, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 968425, + "byteLength": 256 + }, + { + "buffer": 0, + "byteOffset": 968681, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 968825, + "byteLength": 47892 + }, + { + "buffer": 0, + "byteOffset": 1016717, + "byteLength": 47892 + }, + { + "buffer": 0, + "byteOffset": 1064609, + "byteLength": 31928 + }, + { + "buffer": 0, + "byteOffset": 1096537, + "byteLength": 37272 + }, + { + "buffer": 0, + "byteOffset": 1133809, + "byteLength": 23772 + }, + { + "buffer": 0, + "byteOffset": 1157581, + "byteLength": 23772 + }, + { + "buffer": 0, + "byteOffset": 1181353, + "byteLength": 15848 + }, + { + "buffer": 0, + "byteOffset": 1197201, + "byteLength": 13788 + }, + { + "buffer": 0, + "byteOffset": 1210989, + "byteLength": 130236 + }, + { + "buffer": 0, + "byteOffset": 1341225, + "byteLength": 130236 + }, + { + "buffer": 0, + "byteOffset": 1471461, + "byteLength": 86824 + }, + { + "buffer": 0, + "byteOffset": 1558285, + "byteLength": 45624 + }, + { + "buffer": 0, + "byteOffset": 1603912, + "byteLength": 36588 + }, + { + "buffer": 0, + "byteOffset": 1640500, + "byteLength": 36588 + }, + { + "buffer": 0, + "byteOffset": 1677088, + "byteLength": 24392 + }, + { + "buffer": 0, + "byteOffset": 1701480, + "byteLength": 23028 + }, + { + "buffer": 0, + "byteOffset": 1724508, + "byteLength": 6624 + }, + { + "buffer": 0, + "byteOffset": 1731132, + "byteLength": 6624 + }, + { + "buffer": 0, + "byteOffset": 1737756, + "byteLength": 4416 + }, + { + "buffer": 0, + "byteOffset": 1742172, + "byteLength": 4776 + }, + { + "buffer": 0, + "byteOffset": 1746948, + "byteLength": 5664 + }, + { + "buffer": 0, + "byteOffset": 1752612, + "byteLength": 5664 + }, + { + "buffer": 0, + "byteOffset": 1758276, + "byteLength": 3776 + }, + { + "buffer": 0, + "byteOffset": 1762052, + "byteLength": 3600 + }, + { + "buffer": 0, + "byteOffset": 1765652, + "byteLength": 87048 + }, + { + "buffer": 0, + "byteOffset": 1852700, + "byteLength": 87048 + }, + { + "buffer": 0, + "byteOffset": 1939748, + "byteLength": 58032 + }, + { + "buffer": 0, + "byteOffset": 1997780, + "byteLength": 27156 + }, + { + "buffer": 0, + "byteOffset": 2024937, + "byteLength": 49620 + }, + { + "buffer": 0, + "byteOffset": 2074557, + "byteLength": 49620 + }, + { + "buffer": 0, + "byteOffset": 2124177, + "byteLength": 33080 + }, + { + "buffer": 0, + "byteOffset": 2157257, + "byteLength": 15354 + }, + { + "buffer": 0, + "byteOffset": 2172613, + "byteLength": 143988 + }, + { + "buffer": 0, + "byteOffset": 2316601, + "byteLength": 143988 + }, + { + "buffer": 0, + "byteOffset": 2460589, + "byteLength": 95992 + }, + { + "buffer": 0, + "byteOffset": 2556581, + "byteLength": 71352 + }, + { + "buffer": 0, + "byteOffset": 2627933, + "byteLength": 30180 + }, + { + "buffer": 0, + "byteOffset": 2658113, + "byteLength": 30180 + }, + { + "buffer": 0, + "byteOffset": 2688293, + "byteLength": 20120 + }, + { + "buffer": 0, + "byteOffset": 2708413, + "byteLength": 12912 + }, + { + "buffer": 0, + "byteOffset": 2721325, + "byteLength": 28080 + }, + { + "buffer": 0, + "byteOffset": 2749405, + "byteLength": 28080 + }, + { + "buffer": 0, + "byteOffset": 2777485, + "byteLength": 18720 + }, + { + "buffer": 0, + "byteOffset": 2796205, + "byteLength": 10872 + }, + { + "buffer": 0, + "byteOffset": 2807077, + "byteLength": 4368 + }, + { + "buffer": 0, + "byteOffset": 2811445, + "byteLength": 4368 + }, + { + "buffer": 0, + "byteOffset": 2815813, + "byteLength": 2912 + }, + { + "buffer": 0, + "byteOffset": 2818725, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 2820069, + "byteLength": 18456 + }, + { + "buffer": 0, + "byteOffset": 2838525, + "byteLength": 18456 + }, + { + "buffer": 0, + "byteOffset": 2856981, + "byteLength": 12304 + }, + { + "buffer": 0, + "byteOffset": 2869285, + "byteLength": 5700 + }, + { + "buffer": 0, + "byteOffset": 2874988, + "byteLength": 19728 + }, + { + "buffer": 0, + "byteOffset": 2894716, + "byteLength": 19728 + }, + { + "buffer": 0, + "byteOffset": 2914444, + "byteLength": 13152 + }, + { + "buffer": 0, + "byteOffset": 2927596, + "byteLength": 8292 + }, + { + "buffer": 0, + "byteOffset": 2935888, + "byteLength": 29976 + }, + { + "buffer": 0, + "byteOffset": 2965864, + "byteLength": 29976 + }, + { + "buffer": 0, + "byteOffset": 2995840, + "byteLength": 19984 + }, + { + "buffer": 0, + "byteOffset": 3015824, + "byteLength": 9690 + }, + { + "buffer": 0, + "byteOffset": 3025516, + "byteLength": 69216 + }, + { + "buffer": 0, + "byteOffset": 3094732, + "byteLength": 69216 + }, + { + "buffer": 0, + "byteOffset": 3163948, + "byteLength": 46144 + }, + { + "buffer": 0, + "byteOffset": 3210092, + "byteLength": 25824 + }, + { + "buffer": 0, + "byteOffset": 3235918, + "byteLength": 9072 + }, + { + "buffer": 0, + "byteOffset": 3244990, + "byteLength": 9072 + }, + { + "buffer": 0, + "byteOffset": 3254062, + "byteLength": 6048 + }, + { + "buffer": 0, + "byteOffset": 3260110, + "byteLength": 7200 + }, + { + "buffer": 0, + "byteOffset": 3267310, + "byteLength": 4284 + }, + { + "buffer": 0, + "byteOffset": 3271594, + "byteLength": 4284 + }, + { + "buffer": 0, + "byteOffset": 3275878, + "byteLength": 2856 + }, + { + "buffer": 0, + "byteOffset": 3278734, + "byteLength": 1110 + }, + { + "buffer": 0, + "byteOffset": 3279846, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 3280518, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 3281190, + "byteLength": 448 + }, + { + "buffer": 0, + "byteOffset": 3281638, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 3282287, + "byteLength": 3564 + }, + { + "buffer": 0, + "byteOffset": 3285851, + "byteLength": 3564 + }, + { + "buffer": 0, + "byteOffset": 3289415, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 3291791, + "byteLength": 1920 + }, + { + "buffer": 0, + "byteOffset": 3293711, + "byteLength": 3372 + }, + { + "buffer": 0, + "byteOffset": 3297083, + "byteLength": 3372 + }, + { + "buffer": 0, + "byteOffset": 3300455, + "byteLength": 2248 + }, + { + "buffer": 0, + "byteOffset": 3302703, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 3304047, + "byteLength": 4560 + }, + { + "buffer": 0, + "byteOffset": 3308607, + "byteLength": 4560 + }, + { + "buffer": 0, + "byteOffset": 3313167, + "byteLength": 3040 + }, + { + "buffer": 0, + "byteOffset": 3316207, + "byteLength": 1920 + }, + { + "buffer": 0, + "byteOffset": 3318127, + "byteLength": 12720 + }, + { + "buffer": 0, + "byteOffset": 3330847, + "byteLength": 12720 + }, + { + "buffer": 0, + "byteOffset": 3343567, + "byteLength": 8480 + }, + { + "buffer": 0, + "byteOffset": 3352047, + "byteLength": 9378 + }, + { + "buffer": 0, + "byteOffset": 3361427, + "byteLength": 1548 + }, + { + "buffer": 0, + "byteOffset": 3362975, + "byteLength": 1548 + }, + { + "buffer": 0, + "byteOffset": 3364523, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 3365555, + "byteLength": 1044 + }, + { + "buffer": 0, + "byteOffset": 3366599, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 3367631, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 3368663, + "byteLength": 688 + }, + { + "buffer": 0, + "byteOffset": 3369351, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 3369999, + "byteLength": 1932 + }, + { + "buffer": 0, + "byteOffset": 3371931, + "byteLength": 1932 + }, + { + "buffer": 0, + "byteOffset": 3373863, + "byteLength": 1288 + }, + { + "buffer": 0, + "byteOffset": 3375151, + "byteLength": 1050 + }, + { + "buffer": 0, + "byteOffset": 3376203, + "byteLength": 2748 + }, + { + "buffer": 0, + "byteOffset": 3378951, + "byteLength": 2748 + }, + { + "buffer": 0, + "byteOffset": 3381699, + "byteLength": 1832 + }, + { + "buffer": 0, + "byteOffset": 3383531, + "byteLength": 1770 + }, + { + "buffer": 0, + "byteOffset": 3385303, + "byteLength": 1128 + }, + { + "buffer": 0, + "byteOffset": 3386431, + "byteLength": 1128 + }, + { + "buffer": 0, + "byteOffset": 3387559, + "byteLength": 752 + }, + { + "buffer": 0, + "byteOffset": 3388311, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 3389343, + "byteLength": 1164 + }, + { + "buffer": 0, + "byteOffset": 3390507, + "byteLength": 1164 + }, + { + "buffer": 0, + "byteOffset": 3391671, + "byteLength": 776 + }, + { + "buffer": 0, + "byteOffset": 3392447, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 3393311, + "byteLength": 1548 + }, + { + "buffer": 0, + "byteOffset": 3394859, + "byteLength": 1548 + }, + { + "buffer": 0, + "byteOffset": 3396407, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 3397439, + "byteLength": 1044 + }, + { + "buffer": 0, + "byteOffset": 3398483, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 3399515, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 3400547, + "byteLength": 688 + }, + { + "buffer": 0, + "byteOffset": 3401235, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 3401883, + "byteLength": 1956 + }, + { + "buffer": 0, + "byteOffset": 3403839, + "byteLength": 1956 + }, + { + "buffer": 0, + "byteOffset": 3405795, + "byteLength": 1304 + }, + { + "buffer": 0, + "byteOffset": 3407099, + "byteLength": 1050 + }, + { + "buffer": 0, + "byteOffset": 3408151, + "byteLength": 2748 + }, + { + "buffer": 0, + "byteOffset": 3410899, + "byteLength": 2748 + }, + { + "buffer": 0, + "byteOffset": 3413647, + "byteLength": 1832 + }, + { + "buffer": 0, + "byteOffset": 3415479, + "byteLength": 1770 + }, + { + "buffer": 0, + "byteOffset": 3417251, + "byteLength": 1128 + }, + { + "buffer": 0, + "byteOffset": 3418379, + "byteLength": 1128 + }, + { + "buffer": 0, + "byteOffset": 3419507, + "byteLength": 752 + }, + { + "buffer": 0, + "byteOffset": 3420259, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 3421291, + "byteLength": 1164 + }, + { + "buffer": 0, + "byteOffset": 3422455, + "byteLength": 1164 + }, + { + "buffer": 0, + "byteOffset": 3423619, + "byteLength": 776 + }, + { + "buffer": 0, + "byteOffset": 3424395, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 3425259, + "byteLength": 5664 + }, + { + "buffer": 0, + "byteOffset": 3430923, + "byteLength": 5664 + }, + { + "buffer": 0, + "byteOffset": 3436587, + "byteLength": 3776 + }, + { + "buffer": 0, + "byteOffset": 3440363, + "byteLength": 2580 + }, + { + "buffer": 0, + "byteOffset": 3442943, + "byteLength": 768 + }, + { + "buffer": 0, + "byteOffset": 3443711, + "byteLength": 768 + }, + { + "buffer": 0, + "byteOffset": 3444479, + "byteLength": 512 + }, + { + "buffer": 0, + "byteOffset": 3444991, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 3445375, + "byteLength": 2280 + }, + { + "buffer": 0, + "byteOffset": 3447655, + "byteLength": 2280 + }, + { + "buffer": 0, + "byteOffset": 3449935, + "byteLength": 1520 + }, + { + "buffer": 0, + "byteOffset": 3451455, + "byteLength": 1872 + }, + { + "buffer": 0, + "byteOffset": 3453327, + "byteLength": 4560 + }, + { + "buffer": 0, + "byteOffset": 3457887, + "byteLength": 4560 + }, + { + "buffer": 0, + "byteOffset": 3462447, + "byteLength": 3040 + }, + { + "buffer": 0, + "byteOffset": 3465487, + "byteLength": 1920 + }, + { + "buffer": 0, + "byteOffset": 3467407, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 3468415, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 3469423, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 3470095, + "byteLength": 642 + }, + { + "buffer": 0, + "byteOffset": 3470739, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 3471747, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 3472755, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 3473427, + "byteLength": 642 + }, + { + "buffer": 0, + "byteOffset": 3474071, + "byteLength": 4296 + }, + { + "buffer": 0, + "byteOffset": 3478367, + "byteLength": 4296 + }, + { + "buffer": 0, + "byteOffset": 3482663, + "byteLength": 2864 + }, + { + "buffer": 0, + "byteOffset": 3485527, + "byteLength": 2448 + }, + { + "buffer": 0, + "byteOffset": 3487975, + "byteLength": 3768 + }, + { + "buffer": 0, + "byteOffset": 3491743, + "byteLength": 3768 + }, + { + "buffer": 0, + "byteOffset": 3495511, + "byteLength": 2512 + }, + { + "buffer": 0, + "byteOffset": 3498023, + "byteLength": 2160 + }, + { + "buffer": 0, + "byteOffset": 3500183, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 3501191, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 3502199, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 3502871, + "byteLength": 642 + }, + { + "buffer": 0, + "byteOffset": 3503515, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 3504523, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 3505531, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 3506203, + "byteLength": 642 + }, + { + "buffer": 0, + "byteOffset": 3506847, + "byteLength": 4560 + }, + { + "buffer": 0, + "byteOffset": 3511407, + "byteLength": 4560 + }, + { + "buffer": 0, + "byteOffset": 3515967, + "byteLength": 3040 + }, + { + "buffer": 0, + "byteOffset": 3519007, + "byteLength": 1920 + }, + { + "buffer": 0, + "byteOffset": 3520927, + "byteLength": 984 + }, + { + "buffer": 0, + "byteOffset": 3521911, + "byteLength": 984 + }, + { + "buffer": 0, + "byteOffset": 3522895, + "byteLength": 656 + }, + { + "buffer": 0, + "byteOffset": 3523551, + "byteLength": 312 + }, + { + "buffer": 0, + "byteOffset": 3523863, + "byteLength": 22416 + }, + { + "buffer": 0, + "byteOffset": 3546279, + "byteLength": 22416 + }, + { + "buffer": 0, + "byteOffset": 3568695, + "byteLength": 14944 + }, + { + "buffer": 0, + "byteOffset": 3583639, + "byteLength": 9840 + }, + { + "buffer": 0, + "byteOffset": 3593479, + "byteLength": 77472 + }, + { + "buffer": 0, + "byteOffset": 3670951, + "byteLength": 77472 + }, + { + "buffer": 0, + "byteOffset": 3748423, + "byteLength": 51648 + }, + { + "buffer": 0, + "byteOffset": 3800071, + "byteLength": 25284 + }, + { + "buffer": 0, + "byteOffset": 3825355, + "byteLength": 6648 + }, + { + "buffer": 0, + "byteOffset": 3832003, + "byteLength": 6648 + }, + { + "buffer": 0, + "byteOffset": 3838651, + "byteLength": 4432 + }, + { + "buffer": 0, + "byteOffset": 3843083, + "byteLength": 2616 + }, + { + "buffer": 0, + "byteOffset": 3845699, + "byteLength": 4416 + }, + { + "buffer": 0, + "byteOffset": 3850115, + "byteLength": 4416 + }, + { + "buffer": 0, + "byteOffset": 3854531, + "byteLength": 2944 + }, + { + "buffer": 0, + "byteOffset": 3857475, + "byteLength": 1104 + }, + { + "buffer": 0, + "byteOffset": 3858581, + "byteLength": 30336 + }, + { + "buffer": 0, + "byteOffset": 3888917, + "byteLength": 30336 + }, + { + "buffer": 0, + "byteOffset": 3919253, + "byteLength": 20224 + }, + { + "buffer": 0, + "byteOffset": 3939477, + "byteLength": 7512 + }, + { + "buffer": 0, + "byteOffset": 3946989, + "byteLength": 5076 + }, + { + "buffer": 0, + "byteOffset": 3952065, + "byteLength": 5076 + }, + { + "buffer": 0, + "byteOffset": 3957141, + "byteLength": 3384 + }, + { + "buffer": 0, + "byteOffset": 3960525, + "byteLength": 2160 + }, + { + "buffer": 0, + "byteOffset": 3962685, + "byteLength": 4608 + }, + { + "buffer": 0, + "byteOffset": 3967293, + "byteLength": 4608 + }, + { + "buffer": 0, + "byteOffset": 3971901, + "byteLength": 3072 + }, + { + "buffer": 0, + "byteOffset": 3974973, + "byteLength": 1152 + }, + { + "buffer": 0, + "byteOffset": 3976125, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 3995925, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 4015725, + "byteLength": 13200 + }, + { + "buffer": 0, + "byteOffset": 4028925, + "byteLength": 8328 + }, + { + "buffer": 0, + "byteOffset": 4037253, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 4041285, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 4045317, + "byteLength": 2688 + }, + { + "buffer": 0, + "byteOffset": 4048005, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 4049013, + "byteLength": 2400 + }, + { + "buffer": 0, + "byteOffset": 4051413, + "byteLength": 2400 + }, + { + "buffer": 0, + "byteOffset": 4053813, + "byteLength": 1600 + }, + { + "buffer": 0, + "byteOffset": 4055413, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 4056062, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 4075862, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 4095662, + "byteLength": 13200 + }, + { + "buffer": 0, + "byteOffset": 4108862, + "byteLength": 8328 + }, + { + "buffer": 0, + "byteOffset": 4117190, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 4121222, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 4125254, + "byteLength": 2688 + }, + { + "buffer": 0, + "byteOffset": 4127942, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 4128950, + "byteLength": 2424 + }, + { + "buffer": 0, + "byteOffset": 4131374, + "byteLength": 2424 + }, + { + "buffer": 0, + "byteOffset": 4133798, + "byteLength": 1616 + }, + { + "buffer": 0, + "byteOffset": 4135414, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 4136062, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 4155862, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 4175662, + "byteLength": 13200 + }, + { + "buffer": 0, + "byteOffset": 4188862, + "byteLength": 8328 + }, + { + "buffer": 0, + "byteOffset": 4197190, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 4201222, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 4205254, + "byteLength": 2688 + }, + { + "buffer": 0, + "byteOffset": 4207942, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 4208950, + "byteLength": 2352 + }, + { + "buffer": 0, + "byteOffset": 4211302, + "byteLength": 2352 + }, + { + "buffer": 0, + "byteOffset": 4213654, + "byteLength": 1568 + }, + { + "buffer": 0, + "byteOffset": 4215222, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 4215870, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 4235670, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 4255470, + "byteLength": 13200 + }, + { + "buffer": 0, + "byteOffset": 4268670, + "byteLength": 8328 + }, + { + "buffer": 0, + "byteOffset": 4276998, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 4281030, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 4285062, + "byteLength": 2688 + }, + { + "buffer": 0, + "byteOffset": 4287750, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 4288758, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 4291134, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 4293510, + "byteLength": 1584 + }, + { + "buffer": 0, + "byteOffset": 4295094, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 4295742, + "byteLength": 27312 + }, + { + "buffer": 0, + "byteOffset": 4323054, + "byteLength": 27312 + }, + { + "buffer": 0, + "byteOffset": 4350366, + "byteLength": 18208 + }, + { + "buffer": 0, + "byteOffset": 4368574, + "byteLength": 6852 + }, + { + "buffer": 0, + "byteOffset": 4375426, + "byteLength": 76488 + }, + { + "buffer": 0, + "byteOffset": 4451914, + "byteLength": 76488 + }, + { + "buffer": 0, + "byteOffset": 4528402, + "byteLength": 50992 + }, + { + "buffer": 0, + "byteOffset": 4579394, + "byteLength": 19176 + }, + { + "buffer": 0, + "byteOffset": 4598570, + "byteLength": 13560 + }, + { + "buffer": 0, + "byteOffset": 4612130, + "byteLength": 13560 + }, + { + "buffer": 0, + "byteOffset": 4625690, + "byteLength": 9040 + }, + { + "buffer": 0, + "byteOffset": 4634730, + "byteLength": 4128 + }, + { + "buffer": 0, + "byteOffset": 4638858, + "byteLength": 11568 + }, + { + "buffer": 0, + "byteOffset": 4650426, + "byteLength": 11568 + }, + { + "buffer": 0, + "byteOffset": 4661994, + "byteLength": 7712 + }, + { + "buffer": 0, + "byteOffset": 4669706, + "byteLength": 2952 + }, + { + "buffer": 0, + "byteOffset": 4672658, + "byteLength": 17640 + }, + { + "buffer": 0, + "byteOffset": 4690298, + "byteLength": 17640 + }, + { + "buffer": 0, + "byteOffset": 4707938, + "byteLength": 11760 + }, + { + "buffer": 0, + "byteOffset": 4719698, + "byteLength": 6720 + }, + { + "buffer": 0, + "byteOffset": 4726418, + "byteLength": 58308 + }, + { + "buffer": 0, + "byteOffset": 4784726, + "byteLength": 58308 + }, + { + "buffer": 0, + "byteOffset": 4843034, + "byteLength": 38872 + }, + { + "buffer": 0, + "byteOffset": 4881906, + "byteLength": 20190 + }, + { + "buffer": 0, + "byteOffset": 4902098, + "byteLength": 3708 + }, + { + "buffer": 0, + "byteOffset": 4905806, + "byteLength": 3708 + }, + { + "buffer": 0, + "byteOffset": 4909514, + "byteLength": 2472 + }, + { + "buffer": 0, + "byteOffset": 4911986, + "byteLength": 894 + }, + { + "buffer": 0, + "byteOffset": 4912882, + "byteLength": 1020 + }, + { + "buffer": 0, + "byteOffset": 4913902, + "byteLength": 1020 + }, + { + "buffer": 0, + "byteOffset": 4914922, + "byteLength": 680 + }, + { + "buffer": 0, + "byteOffset": 4915602, + "byteLength": 234 + }, + { + "buffer": 0, + "byteOffset": 4915838, + "byteLength": 15720 + }, + { + "buffer": 0, + "byteOffset": 4931558, + "byteLength": 15720 + }, + { + "buffer": 0, + "byteOffset": 4947278, + "byteLength": 10480 + }, + { + "buffer": 0, + "byteOffset": 4957758, + "byteLength": 5580 + }, + { + "buffer": 0, + "byteOffset": 4963338, + "byteLength": 15156 + }, + { + "buffer": 0, + "byteOffset": 4978494, + "byteLength": 15156 + }, + { + "buffer": 0, + "byteOffset": 4993650, + "byteLength": 10104 + }, + { + "buffer": 0, + "byteOffset": 5003754, + "byteLength": 3768 + }, + { + "buffer": 0, + "byteOffset": 5007522, + "byteLength": 54900 + }, + { + "buffer": 0, + "byteOffset": 5062422, + "byteLength": 54900 + }, + { + "buffer": 0, + "byteOffset": 5117322, + "byteLength": 36600 + }, + { + "buffer": 0, + "byteOffset": 5153922, + "byteLength": 13800 + }, + { + "buffer": 0, + "byteOffset": 5167722, + "byteLength": 10848 + }, + { + "buffer": 0, + "byteOffset": 5178570, + "byteLength": 10848 + }, + { + "buffer": 0, + "byteOffset": 5189418, + "byteLength": 7232 + }, + { + "buffer": 0, + "byteOffset": 5196650, + "byteLength": 2568 + }, + { + "buffer": 0, + "byteOffset": 5199218, + "byteLength": 1680 + }, + { + "buffer": 0, + "byteOffset": 5200898, + "byteLength": 1680 + }, + { + "buffer": 0, + "byteOffset": 5202578, + "byteLength": 1120 + }, + { + "buffer": 0, + "byteOffset": 5203698, + "byteLength": 816 + }, + { + "buffer": 0, + "byteOffset": 5204514, + "byteLength": 11736 + }, + { + "buffer": 0, + "byteOffset": 5216250, + "byteLength": 11736 + }, + { + "buffer": 0, + "byteOffset": 5227986, + "byteLength": 7824 + }, + { + "buffer": 0, + "byteOffset": 5235810, + "byteLength": 5232 + }, + { + "buffer": 0, + "byteOffset": 5241042, + "byteLength": 240 + }, + { + "buffer": 0, + "byteOffset": 5241282, + "byteLength": 240 + }, + { + "buffer": 0, + "byteOffset": 5241522, + "byteLength": 160 + }, + { + "buffer": 0, + "byteOffset": 5241682, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 5241778, + "byteLength": 54912 + }, + { + "buffer": 0, + "byteOffset": 5296690, + "byteLength": 54912 + }, + { + "buffer": 0, + "byteOffset": 5351602, + "byteLength": 36608 + }, + { + "buffer": 0, + "byteOffset": 5388210, + "byteLength": 14208 + }, + { + "buffer": 0, + "byteOffset": 5402420, + "byteLength": 4356 + }, + { + "buffer": 0, + "byteOffset": 5406776, + "byteLength": 4356 + }, + { + "buffer": 0, + "byteOffset": 5411132, + "byteLength": 2904 + }, + { + "buffer": 0, + "byteOffset": 5414036, + "byteLength": 4104 + }, + { + "buffer": 0, + "byteOffset": 5418140, + "byteLength": 1164 + }, + { + "buffer": 0, + "byteOffset": 5419304, + "byteLength": 1164 + }, + { + "buffer": 0, + "byteOffset": 5420468, + "byteLength": 776 + }, + { + "buffer": 0, + "byteOffset": 5421244, + "byteLength": 396 + }, + { + "buffer": 0, + "byteOffset": 5421640, + "byteLength": 30036 + }, + { + "buffer": 0, + "byteOffset": 5451676, + "byteLength": 30036 + }, + { + "buffer": 0, + "byteOffset": 5481712, + "byteLength": 20024 + }, + { + "buffer": 0, + "byteOffset": 5501736, + "byteLength": 7422 + }, + { + "buffer": 0, + "byteOffset": 5509160, + "byteLength": 4248 + }, + { + "buffer": 0, + "byteOffset": 5513408, + "byteLength": 4248 + }, + { + "buffer": 0, + "byteOffset": 5517656, + "byteLength": 2832 + }, + { + "buffer": 0, + "byteOffset": 5520488, + "byteLength": 1500 + }, + { + "buffer": 0, + "byteOffset": 5521988, + "byteLength": 13800 + }, + { + "buffer": 0, + "byteOffset": 5535788, + "byteLength": 13800 + }, + { + "buffer": 0, + "byteOffset": 5549588, + "byteLength": 9200 + }, + { + "buffer": 0, + "byteOffset": 5558788, + "byteLength": 6144 + }, + { + "buffer": 0, + "byteOffset": 5564932, + "byteLength": 4356 + }, + { + "buffer": 0, + "byteOffset": 5569288, + "byteLength": 4356 + }, + { + "buffer": 0, + "byteOffset": 5573644, + "byteLength": 2904 + }, + { + "buffer": 0, + "byteOffset": 5576548, + "byteLength": 4104 + }, + { + "buffer": 0, + "byteOffset": 5580652, + "byteLength": 8208 + }, + { + "buffer": 0, + "byteOffset": 5588860, + "byteLength": 8208 + }, + { + "buffer": 0, + "byteOffset": 5597068, + "byteLength": 5472 + }, + { + "buffer": 0, + "byteOffset": 5602540, + "byteLength": 1992 + }, + { + "buffer": 0, + "byteOffset": 5604532, + "byteLength": 22908 + }, + { + "buffer": 0, + "byteOffset": 5627440, + "byteLength": 22908 + }, + { + "buffer": 0, + "byteOffset": 5650348, + "byteLength": 15272 + }, + { + "buffer": 0, + "byteOffset": 5665620, + "byteLength": 9360 + }, + { + "buffer": 0, + "byteOffset": 5674980, + "byteLength": 20352 + }, + { + "buffer": 0, + "byteOffset": 5695332, + "byteLength": 20352 + }, + { + "buffer": 0, + "byteOffset": 5715684, + "byteLength": 13568 + }, + { + "buffer": 0, + "byteOffset": 5729252, + "byteLength": 5052 + }, + { + "buffer": 0, + "byteOffset": 5734304, + "byteLength": 1896 + }, + { + "buffer": 0, + "byteOffset": 5736200, + "byteLength": 1896 + }, + { + "buffer": 0, + "byteOffset": 5738096, + "byteLength": 1264 + }, + { + "buffer": 0, + "byteOffset": 5739360, + "byteLength": 1608 + }, + { + "buffer": 0, + "byteOffset": 5740968, + "byteLength": 60936 + }, + { + "buffer": 0, + "byteOffset": 5801904, + "byteLength": 60936 + }, + { + "buffer": 0, + "byteOffset": 5862840, + "byteLength": 40624 + }, + { + "buffer": 0, + "byteOffset": 5903464, + "byteLength": 18636 + }, + { + "buffer": 0, + "byteOffset": 5922100, + "byteLength": 15432 + }, + { + "buffer": 0, + "byteOffset": 5937532, + "byteLength": 15432 + }, + { + "buffer": 0, + "byteOffset": 5952964, + "byteLength": 10288 + }, + { + "buffer": 0, + "byteOffset": 5963252, + "byteLength": 7680 + }, + { + "buffer": 0, + "byteOffset": 5970932, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 5973308, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 5975684, + "byteLength": 1584 + }, + { + "buffer": 0, + "byteOffset": 5977268, + "byteLength": 936 + }, + { + "buffer": 0, + "byteOffset": 5978204, + "byteLength": 960 + }, + { + "buffer": 0, + "byteOffset": 5979164, + "byteLength": 960 + }, + { + "buffer": 0, + "byteOffset": 5980124, + "byteLength": 640 + }, + { + "buffer": 0, + "byteOffset": 5980764, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 5981028, + "byteLength": 21096 + }, + { + "buffer": 0, + "byteOffset": 6002124, + "byteLength": 21096 + }, + { + "buffer": 0, + "byteOffset": 6023220, + "byteLength": 14064 + }, + { + "buffer": 0, + "byteOffset": 6037284, + "byteLength": 7608 + }, + { + "buffer": 0, + "byteOffset": 6044892, + "byteLength": 3576 + }, + { + "buffer": 0, + "byteOffset": 6048468, + "byteLength": 3576 + }, + { + "buffer": 0, + "byteOffset": 6052044, + "byteLength": 2384 + }, + { + "buffer": 0, + "byteOffset": 6054428, + "byteLength": 1758 + }, + { + "buffer": 0, + "byteOffset": 6056188, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 6056284, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 6056380, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 6056444, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 6056468, + "byteLength": 10152 + }, + { + "buffer": 0, + "byteOffset": 6066620, + "byteLength": 10152 + }, + { + "buffer": 0, + "byteOffset": 6076772, + "byteLength": 6768 + }, + { + "buffer": 0, + "byteOffset": 6083540, + "byteLength": 4512 + }, + { + "buffer": 0, + "byteOffset": 6088052, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 6088916, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 6089780, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 6090356, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 6090572, + "byteLength": 6720 + }, + { + "buffer": 0, + "byteOffset": 6097292, + "byteLength": 6720 + }, + { + "buffer": 0, + "byteOffset": 6104012, + "byteLength": 4480 + }, + { + "buffer": 0, + "byteOffset": 6108492, + "byteLength": 2316 + }, + { + "buffer": 0, + "byteOffset": 6110808, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 6110856, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 6110904, + "byteLength": 32 + }, + { + "buffer": 0, + "byteOffset": 6110936, + "byteLength": 12 + }, + { + "buffer": 0, + "byteOffset": 6110948, + "byteLength": 56544 + }, + { + "buffer": 0, + "byteOffset": 6167492, + "byteLength": 56544 + }, + { + "buffer": 0, + "byteOffset": 6224036, + "byteLength": 37696 + }, + { + "buffer": 0, + "byteOffset": 6261732, + "byteLength": 13728 + }, + { + "buffer": 0, + "byteOffset": 6275460, + "byteLength": 4776 + }, + { + "buffer": 0, + "byteOffset": 6280236, + "byteLength": 4776 + }, + { + "buffer": 0, + "byteOffset": 6285012, + "byteLength": 3184 + }, + { + "buffer": 0, + "byteOffset": 6288196, + "byteLength": 1176 + }, + { + "buffer": 0, + "byteOffset": 6289372, + "byteLength": 4416 + }, + { + "buffer": 0, + "byteOffset": 6293788, + "byteLength": 4416 + }, + { + "buffer": 0, + "byteOffset": 6298204, + "byteLength": 2944 + }, + { + "buffer": 0, + "byteOffset": 6301148, + "byteLength": 1104 + }, + { + "buffer": 0, + "byteOffset": 6302252, + "byteLength": 30336 + }, + { + "buffer": 0, + "byteOffset": 6332588, + "byteLength": 30336 + }, + { + "buffer": 0, + "byteOffset": 6362924, + "byteLength": 20224 + }, + { + "buffer": 0, + "byteOffset": 6383148, + "byteLength": 7512 + }, + { + "buffer": 0, + "byteOffset": 6390660, + "byteLength": 5076 + }, + { + "buffer": 0, + "byteOffset": 6395736, + "byteLength": 5076 + }, + { + "buffer": 0, + "byteOffset": 6400812, + "byteLength": 3384 + }, + { + "buffer": 0, + "byteOffset": 6404196, + "byteLength": 2160 + }, + { + "buffer": 0, + "byteOffset": 6406356, + "byteLength": 4608 + }, + { + "buffer": 0, + "byteOffset": 6410964, + "byteLength": 4608 + }, + { + "buffer": 0, + "byteOffset": 6415572, + "byteLength": 3072 + }, + { + "buffer": 0, + "byteOffset": 6418644, + "byteLength": 1152 + }, + { + "buffer": 0, + "byteOffset": 6419796, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 6439596, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 6459396, + "byteLength": 13200 + }, + { + "buffer": 0, + "byteOffset": 6472596, + "byteLength": 8328 + }, + { + "buffer": 0, + "byteOffset": 6480924, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 6484956, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 6488988, + "byteLength": 2688 + }, + { + "buffer": 0, + "byteOffset": 6491676, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 6492684, + "byteLength": 2352 + }, + { + "buffer": 0, + "byteOffset": 6495036, + "byteLength": 2352 + }, + { + "buffer": 0, + "byteOffset": 6497388, + "byteLength": 1568 + }, + { + "buffer": 0, + "byteOffset": 6498956, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 6499604, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 6519404, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 6539204, + "byteLength": 13200 + }, + { + "buffer": 0, + "byteOffset": 6552404, + "byteLength": 8328 + }, + { + "buffer": 0, + "byteOffset": 6560732, + "byteLength": 4008 + }, + { + "buffer": 0, + "byteOffset": 6564740, + "byteLength": 4008 + }, + { + "buffer": 0, + "byteOffset": 6568748, + "byteLength": 2672 + }, + { + "buffer": 0, + "byteOffset": 6571420, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 6572428, + "byteLength": 2352 + }, + { + "buffer": 0, + "byteOffset": 6574780, + "byteLength": 2352 + }, + { + "buffer": 0, + "byteOffset": 6577132, + "byteLength": 1568 + }, + { + "buffer": 0, + "byteOffset": 6578700, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 6579348, + "byteLength": 26388 + }, + { + "buffer": 0, + "byteOffset": 6605736, + "byteLength": 26388 + }, + { + "buffer": 0, + "byteOffset": 6632124, + "byteLength": 17592 + }, + { + "buffer": 0, + "byteOffset": 6649716, + "byteLength": 6852 + }, + { + "buffer": 0, + "byteOffset": 6656568, + "byteLength": 76404 + }, + { + "buffer": 0, + "byteOffset": 6732972, + "byteLength": 76404 + }, + { + "buffer": 0, + "byteOffset": 6809376, + "byteLength": 50936 + }, + { + "buffer": 0, + "byteOffset": 6860312, + "byteLength": 19176 + }, + { + "buffer": 0, + "byteOffset": 6879488, + "byteLength": 13272 + }, + { + "buffer": 0, + "byteOffset": 6892760, + "byteLength": 13272 + }, + { + "buffer": 0, + "byteOffset": 6906032, + "byteLength": 8848 + }, + { + "buffer": 0, + "byteOffset": 6914880, + "byteLength": 4128 + }, + { + "buffer": 0, + "byteOffset": 6919008, + "byteLength": 10704 + }, + { + "buffer": 0, + "byteOffset": 6929712, + "byteLength": 10704 + }, + { + "buffer": 0, + "byteOffset": 6940416, + "byteLength": 7136 + }, + { + "buffer": 0, + "byteOffset": 6947552, + "byteLength": 2952 + }, + { + "buffer": 0, + "byteOffset": 6950504, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 6970304, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 6990104, + "byteLength": 13200 + }, + { + "buffer": 0, + "byteOffset": 7003304, + "byteLength": 8328 + }, + { + "buffer": 0, + "byteOffset": 7011632, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 7015664, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 7019696, + "byteLength": 2688 + }, + { + "buffer": 0, + "byteOffset": 7022384, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 7023392, + "byteLength": 2424 + }, + { + "buffer": 0, + "byteOffset": 7025816, + "byteLength": 2424 + }, + { + "buffer": 0, + "byteOffset": 7028240, + "byteLength": 1616 + }, + { + "buffer": 0, + "byteOffset": 7029856, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 7030504, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 7050304, + "byteLength": 19800 + }, + { + "buffer": 0, + "byteOffset": 7070104, + "byteLength": 13200 + }, + { + "buffer": 0, + "byteOffset": 7083304, + "byteLength": 8328 + }, + { + "buffer": 0, + "byteOffset": 7091632, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 7095664, + "byteLength": 4032 + }, + { + "buffer": 0, + "byteOffset": 7099696, + "byteLength": 2688 + }, + { + "buffer": 0, + "byteOffset": 7102384, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 7103392, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 7105768, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 7108144, + "byteLength": 1584 + }, + { + "buffer": 0, + "byteOffset": 7109728, + "byteLength": 648 + }, + { + "buffer": 0, + "byteOffset": 7110376, + "byteLength": 17640 + }, + { + "buffer": 0, + "byteOffset": 7128016, + "byteLength": 17640 + }, + { + "buffer": 0, + "byteOffset": 7145656, + "byteLength": 11760 + }, + { + "buffer": 0, + "byteOffset": 7157416, + "byteLength": 6720 + }, + { + "buffer": 0, + "byteOffset": 7164136, + "byteLength": 58308 + }, + { + "buffer": 0, + "byteOffset": 7222444, + "byteLength": 58308 + }, + { + "buffer": 0, + "byteOffset": 7280752, + "byteLength": 38872 + }, + { + "buffer": 0, + "byteOffset": 7319624, + "byteLength": 20190 + }, + { + "buffer": 0, + "byteOffset": 7339816, + "byteLength": 3708 + }, + { + "buffer": 0, + "byteOffset": 7343524, + "byteLength": 3708 + }, + { + "buffer": 0, + "byteOffset": 7347232, + "byteLength": 2472 + }, + { + "buffer": 0, + "byteOffset": 7349704, + "byteLength": 894 + }, + { + "buffer": 0, + "byteOffset": 7350600, + "byteLength": 1020 + }, + { + "buffer": 0, + "byteOffset": 7351620, + "byteLength": 1020 + }, + { + "buffer": 0, + "byteOffset": 7352640, + "byteLength": 680 + }, + { + "buffer": 0, + "byteOffset": 7353320, + "byteLength": 234 + }, + { + "buffer": 0, + "byteOffset": 7353556, + "byteLength": 15720 + }, + { + "buffer": 0, + "byteOffset": 7369276, + "byteLength": 15720 + }, + { + "buffer": 0, + "byteOffset": 7384996, + "byteLength": 10480 + }, + { + "buffer": 0, + "byteOffset": 7395476, + "byteLength": 5580 + }, + { + "buffer": 0, + "byteOffset": 7401056, + "byteLength": 14364 + }, + { + "buffer": 0, + "byteOffset": 7415420, + "byteLength": 14364 + }, + { + "buffer": 0, + "byteOffset": 7429784, + "byteLength": 9576 + }, + { + "buffer": 0, + "byteOffset": 7439360, + "byteLength": 3768 + }, + { + "buffer": 0, + "byteOffset": 7443128, + "byteLength": 54900 + }, + { + "buffer": 0, + "byteOffset": 7498028, + "byteLength": 54900 + }, + { + "buffer": 0, + "byteOffset": 7552928, + "byteLength": 36600 + }, + { + "buffer": 0, + "byteOffset": 7589528, + "byteLength": 13800 + }, + { + "buffer": 0, + "byteOffset": 7603328, + "byteLength": 10116 + }, + { + "buffer": 0, + "byteOffset": 7613444, + "byteLength": 10116 + }, + { + "buffer": 0, + "byteOffset": 7623560, + "byteLength": 6744 + }, + { + "buffer": 0, + "byteOffset": 7630304, + "byteLength": 2568 + }, + { + "buffer": 0, + "byteOffset": 7632872, + "byteLength": 1680 + }, + { + "buffer": 0, + "byteOffset": 7634552, + "byteLength": 1680 + }, + { + "buffer": 0, + "byteOffset": 7636232, + "byteLength": 1120 + }, + { + "buffer": 0, + "byteOffset": 7637352, + "byteLength": 816 + }, + { + "buffer": 0, + "byteOffset": 7638168, + "byteLength": 18816 + }, + { + "buffer": 0, + "byteOffset": 7656984, + "byteLength": 18816 + }, + { + "buffer": 0, + "byteOffset": 7675800, + "byteLength": 12544 + }, + { + "buffer": 0, + "byteOffset": 7688344, + "byteLength": 5418 + }, + { + "buffer": 0, + "byteOffset": 7693764, + "byteLength": 8220 + }, + { + "buffer": 0, + "byteOffset": 7701984, + "byteLength": 8220 + }, + { + "buffer": 0, + "byteOffset": 7710204, + "byteLength": 5480 + }, + { + "buffer": 0, + "byteOffset": 7715684, + "byteLength": 6720 + }, + { + "buffer": 0, + "byteOffset": 7722404, + "byteLength": 4464 + }, + { + "buffer": 0, + "byteOffset": 7726868, + "byteLength": 4464 + }, + { + "buffer": 0, + "byteOffset": 7731332, + "byteLength": 2976 + }, + { + "buffer": 0, + "byteOffset": 7734308, + "byteLength": 1500 + }, + { + "buffer": 0, + "byteOffset": 7735808, + "byteLength": 13800 + }, + { + "buffer": 0, + "byteOffset": 7749608, + "byteLength": 13800 + }, + { + "buffer": 0, + "byteOffset": 7763408, + "byteLength": 9200 + }, + { + "buffer": 0, + "byteOffset": 7772608, + "byteLength": 6144 + }, + { + "buffer": 0, + "byteOffset": 7778752, + "byteLength": 59976 + }, + { + "buffer": 0, + "byteOffset": 7838728, + "byteLength": 59976 + }, + { + "buffer": 0, + "byteOffset": 7898704, + "byteLength": 39984 + }, + { + "buffer": 0, + "byteOffset": 7938688, + "byteLength": 17208 + }, + { + "buffer": 0, + "byteOffset": 7955896, + "byteLength": 18876 + }, + { + "buffer": 0, + "byteOffset": 7974772, + "byteLength": 18876 + }, + { + "buffer": 0, + "byteOffset": 7993648, + "byteLength": 12584 + }, + { + "buffer": 0, + "byteOffset": 8006232, + "byteLength": 8400 + }, + { + "buffer": 0, + "byteOffset": 8014632, + "byteLength": 4056 + }, + { + "buffer": 0, + "byteOffset": 8018688, + "byteLength": 4056 + }, + { + "buffer": 0, + "byteOffset": 8022744, + "byteLength": 2704 + }, + { + "buffer": 0, + "byteOffset": 8025448, + "byteLength": 1440 + }, + { + "buffer": 0, + "byteOffset": 8026888, + "byteLength": 504 + }, + { + "buffer": 0, + "byteOffset": 8027392, + "byteLength": 504 + }, + { + "buffer": 0, + "byteOffset": 8027896, + "byteLength": 336 + }, + { + "buffer": 0, + "byteOffset": 8028232, + "byteLength": 156 + }, + { + "buffer": 0, + "byteOffset": 8028388, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 8030764, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 8033140, + "byteLength": 1584 + }, + { + "buffer": 0, + "byteOffset": 8034724, + "byteLength": 936 + }, + { + "buffer": 0, + "byteOffset": 8035660, + "byteLength": 960 + }, + { + "buffer": 0, + "byteOffset": 8036620, + "byteLength": 960 + }, + { + "buffer": 0, + "byteOffset": 8037580, + "byteLength": 640 + }, + { + "buffer": 0, + "byteOffset": 8038220, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 8038484, + "byteLength": 21096 + }, + { + "buffer": 0, + "byteOffset": 8059580, + "byteLength": 21096 + }, + { + "buffer": 0, + "byteOffset": 8080676, + "byteLength": 14064 + }, + { + "buffer": 0, + "byteOffset": 8094740, + "byteLength": 7608 + }, + { + "buffer": 0, + "byteOffset": 8102348, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 8103212, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 8104076, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 8104652, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 8104868, + "byteLength": 6720 + }, + { + "buffer": 0, + "byteOffset": 8111588, + "byteLength": 6720 + }, + { + "buffer": 0, + "byteOffset": 8118308, + "byteLength": 4480 + }, + { + "buffer": 0, + "byteOffset": 8122788, + "byteLength": 2316 + }, + { + "buffer": 0, + "byteOffset": 8125104, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 8125152, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 8125200, + "byteLength": 32 + }, + { + "buffer": 0, + "byteOffset": 8125232, + "byteLength": 12 + }, + { + "buffer": 0, + "byteOffset": 8125244, + "byteLength": 52776 + }, + { + "buffer": 0, + "byteOffset": 8178020, + "byteLength": 52776 + }, + { + "buffer": 0, + "byteOffset": 8230796, + "byteLength": 35184 + }, + { + "buffer": 0, + "byteOffset": 8265980, + "byteLength": 13728 + }, + { + "buffer": 0, + "byteOffset": 8279708, + "byteLength": 4776 + }, + { + "buffer": 0, + "byteOffset": 8284484, + "byteLength": 4776 + }, + { + "buffer": 0, + "byteOffset": 8289260, + "byteLength": 3184 + }, + { + "buffer": 0, + "byteOffset": 8292444, + "byteLength": 1176 + }, + { + "buffer": 0, + "byteOffset": 8293620, + "byteLength": 5376 + }, + { + "buffer": 0, + "byteOffset": 8298996, + "byteLength": 5376 + }, + { + "buffer": 0, + "byteOffset": 8304372, + "byteLength": 3584 + }, + { + "buffer": 0, + "byteOffset": 8307956, + "byteLength": 1392 + }, + { + "buffer": 0, + "byteOffset": 8309348, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 8309732, + "byteLength": 384 + }, + { + "buffer": 0, + "byteOffset": 8310116, + "byteLength": 256 + }, + { + "buffer": 0, + "byteOffset": 8310372, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 8310468, + "byteLength": 4224 + }, + { + "buffer": 0, + "byteOffset": 8314692, + "byteLength": 4224 + }, + { + "buffer": 0, + "byteOffset": 8318916, + "byteLength": 2816 + }, + { + "buffer": 0, + "byteOffset": 8321732, + "byteLength": 1632 + }, + { + "buffer": 0, + "byteOffset": 8323364, + "byteLength": 83088 + }, + { + "buffer": 0, + "byteOffset": 8406452, + "byteLength": 83088 + }, + { + "buffer": 0, + "byteOffset": 8489540, + "byteLength": 55392 + }, + { + "buffer": 0, + "byteOffset": 8544932, + "byteLength": 24600 + }, + { + "buffer": 0, + "byteOffset": 8569532, + "byteLength": 6384 + }, + { + "buffer": 0, + "byteOffset": 8575916, + "byteLength": 6384 + }, + { + "buffer": 0, + "byteOffset": 8582300, + "byteLength": 4256 + }, + { + "buffer": 0, + "byteOffset": 8586556, + "byteLength": 1752 + }, + { + "buffer": 0, + "byteOffset": 8588308, + "byteLength": 43800 + }, + { + "buffer": 0, + "byteOffset": 8632108, + "byteLength": 43800 + }, + { + "buffer": 0, + "byteOffset": 8675908, + "byteLength": 29200 + }, + { + "buffer": 0, + "byteOffset": 8705108, + "byteLength": 14340 + }, + { + "buffer": 0, + "byteOffset": 8719448, + "byteLength": 11352 + }, + { + "buffer": 0, + "byteOffset": 8730800, + "byteLength": 11352 + }, + { + "buffer": 0, + "byteOffset": 8742152, + "byteLength": 7568 + }, + { + "buffer": 0, + "byteOffset": 8749720, + "byteLength": 3804 + }, + { + "buffer": 0, + "byteOffset": 8753524, + "byteLength": 6912 + }, + { + "buffer": 0, + "byteOffset": 8760436, + "byteLength": 6912 + }, + { + "buffer": 0, + "byteOffset": 8767348, + "byteLength": 4608 + }, + { + "buffer": 0, + "byteOffset": 8771956, + "byteLength": 2496 + }, + { + "buffer": 0, + "byteOffset": 8774452, + "byteLength": 9552 + }, + { + "buffer": 0, + "byteOffset": 8784004, + "byteLength": 9552 + }, + { + "buffer": 0, + "byteOffset": 8793556, + "byteLength": 6368 + }, + { + "buffer": 0, + "byteOffset": 8799924, + "byteLength": 4248 + }, + { + "buffer": 0, + "byteOffset": 8804172, + "byteLength": 16872 + }, + { + "buffer": 0, + "byteOffset": 8821044, + "byteLength": 16872 + }, + { + "buffer": 0, + "byteOffset": 8837916, + "byteLength": 11248 + }, + { + "buffer": 0, + "byteOffset": 8849164, + "byteLength": 5652 + }, + { + "buffer": 0, + "byteOffset": 8854816, + "byteLength": 13632 + }, + { + "buffer": 0, + "byteOffset": 8868448, + "byteLength": 13632 + }, + { + "buffer": 0, + "byteOffset": 8882080, + "byteLength": 9088 + }, + { + "buffer": 0, + "byteOffset": 8891168, + "byteLength": 5040 + }, + { + "buffer": 0, + "byteOffset": 8896208, + "byteLength": 1536 + }, + { + "buffer": 0, + "byteOffset": 8897744, + "byteLength": 1536 + }, + { + "buffer": 0, + "byteOffset": 8899280, + "byteLength": 1024 + }, + { + "buffer": 0, + "byteOffset": 8900304, + "byteLength": 960 + }, + { + "buffer": 0, + "byteOffset": 8901264, + "byteLength": 240 + }, + { + "buffer": 0, + "byteOffset": 8901504, + "byteLength": 240 + }, + { + "buffer": 0, + "byteOffset": 8901744, + "byteLength": 160 + }, + { + "buffer": 0, + "byteOffset": 8901904, + "byteLength": 168 + }, + { + "buffer": 0, + "byteOffset": 8902072, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 8902552, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 8903032, + "byteLength": 320 + }, + { + "buffer": 0, + "byteOffset": 8903352, + "byteLength": 348 + }, + { + "buffer": 0, + "byteOffset": 8903700, + "byteLength": 720 + }, + { + "buffer": 0, + "byteOffset": 8904420, + "byteLength": 720 + }, + { + "buffer": 0, + "byteOffset": 8905140, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 8905620, + "byteLength": 180 + }, + { + "buffer": 0, + "byteOffset": 8905800, + "byteLength": 30120 + }, + { + "buffer": 0, + "byteOffset": 8935920, + "byteLength": 30120 + }, + { + "buffer": 0, + "byteOffset": 8966040, + "byteLength": 20080 + }, + { + "buffer": 0, + "byteOffset": 8986120, + "byteLength": 15696 + }, + { + "buffer": 0, + "byteOffset": 9001816, + "byteLength": 3456 + }, + { + "buffer": 0, + "byteOffset": 9005272, + "byteLength": 3456 + }, + { + "buffer": 0, + "byteOffset": 9008728, + "byteLength": 2304 + }, + { + "buffer": 0, + "byteOffset": 9011032, + "byteLength": 1152 + }, + { + "buffer": 0, + "byteOffset": 9012184, + "byteLength": 8304 + }, + { + "buffer": 0, + "byteOffset": 9020488, + "byteLength": 8304 + }, + { + "buffer": 0, + "byteOffset": 9028792, + "byteLength": 5536 + }, + { + "buffer": 0, + "byteOffset": 9034328, + "byteLength": 3720 + }, + { + "buffer": 0, + "byteOffset": 9038048, + "byteLength": 33000 + }, + { + "buffer": 0, + "byteOffset": 9071048, + "byteLength": 33000 + }, + { + "buffer": 0, + "byteOffset": 9104048, + "byteLength": 22000 + }, + { + "buffer": 0, + "byteOffset": 9126048, + "byteLength": 8208 + }, + { + "buffer": 0, + "byteOffset": 9134256, + "byteLength": 1872 + }, + { + "buffer": 0, + "byteOffset": 9136128, + "byteLength": 1872 + }, + { + "buffer": 0, + "byteOffset": 9138000, + "byteLength": 1248 + }, + { + "buffer": 0, + "byteOffset": 9139248, + "byteLength": 660 + }, + { + "buffer": 0, + "byteOffset": 9139908, + "byteLength": 24468 + }, + { + "buffer": 0, + "byteOffset": 9164376, + "byteLength": 24468 + }, + { + "buffer": 0, + "byteOffset": 9188844, + "byteLength": 16312 + }, + { + "buffer": 0, + "byteOffset": 9205156, + "byteLength": 13344 + }, + { + "buffer": 0, + "byteOffset": 9218500, + "byteLength": 3360 + }, + { + "buffer": 0, + "byteOffset": 9221860, + "byteLength": 3360 + }, + { + "buffer": 0, + "byteOffset": 9225220, + "byteLength": 2240 + }, + { + "buffer": 0, + "byteOffset": 9227460, + "byteLength": 1500 + }, + { + "buffer": 0, + "byteOffset": 9228963, + "byteLength": 8304 + }, + { + "buffer": 0, + "byteOffset": 9237267, + "byteLength": 8304 + }, + { + "buffer": 0, + "byteOffset": 9245571, + "byteLength": 5536 + }, + { + "buffer": 0, + "byteOffset": 9251107, + "byteLength": 3720 + }, + { + "buffer": 0, + "byteOffset": 9254827, + "byteLength": 3552 + }, + { + "buffer": 0, + "byteOffset": 9258379, + "byteLength": 3552 + }, + { + "buffer": 0, + "byteOffset": 9261931, + "byteLength": 2368 + }, + { + "buffer": 0, + "byteOffset": 9264299, + "byteLength": 936 + }, + { + "buffer": 0, + "byteOffset": 9265235, + "byteLength": 72 + }, + { + "buffer": 0, + "byteOffset": 9265307, + "byteLength": 72 + }, + { + "buffer": 0, + "byteOffset": 9265379, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 9265427, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 9265451, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 9267467, + "byteLength": 2016 + }, + { + "buffer": 0, + "byteOffset": 9269483, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 9270827, + "byteLength": 984 + }, + { + "buffer": 0, + "byteOffset": 9271811, + "byteLength": 5520 + }, + { + "buffer": 0, + "byteOffset": 9277331, + "byteLength": 5520 + }, + { + "buffer": 0, + "byteOffset": 9282851, + "byteLength": 3680 + }, + { + "buffer": 0, + "byteOffset": 9286531, + "byteLength": 2508 + }, + { + "buffer": 0, + "byteOffset": 9289039, + "byteLength": 4608 + }, + { + "buffer": 0, + "byteOffset": 9293647, + "byteLength": 4608 + }, + { + "buffer": 0, + "byteOffset": 9298255, + "byteLength": 3072 + }, + { + "buffer": 0, + "byteOffset": 9301327, + "byteLength": 1992 + }, + { + "buffer": 0, + "byteOffset": 9303319, + "byteLength": 4464 + }, + { + "buffer": 0, + "byteOffset": 9307783, + "byteLength": 4464 + }, + { + "buffer": 0, + "byteOffset": 9312247, + "byteLength": 2976 + }, + { + "buffer": 0, + "byteOffset": 9315223, + "byteLength": 1992 + }, + { + "buffer": 0, + "byteOffset": 9317215, + "byteLength": 5136 + }, + { + "buffer": 0, + "byteOffset": 9322351, + "byteLength": 5136 + }, + { + "buffer": 0, + "byteOffset": 9327487, + "byteLength": 3424 + }, + { + "buffer": 0, + "byteOffset": 9330911, + "byteLength": 2100 + }, + { + "buffer": 0, + "byteOffset": 9333011, + "byteLength": 240 + }, + { + "buffer": 0, + "byteOffset": 9333251, + "byteLength": 240 + }, + { + "buffer": 0, + "byteOffset": 9333491, + "byteLength": 160 + }, + { + "buffer": 0, + "byteOffset": 9333651, + "byteLength": 60 + }, + { + "buffer": 0, + "byteOffset": 9333711, + "byteLength": 8748 + }, + { + "buffer": 0, + "byteOffset": 9342459, + "byteLength": 8748 + }, + { + "buffer": 0, + "byteOffset": 9351207, + "byteLength": 5832 + }, + { + "buffer": 0, + "byteOffset": 9357039, + "byteLength": 3204 + }, + { + "buffer": 0, + "byteOffset": 9360243, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 9360291, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 9360339, + "byteLength": 32 + }, + { + "buffer": 0, + "byteOffset": 9360371, + "byteLength": 12 + }, + { + "buffer": 0, + "byteOffset": 9360383, + "byteLength": 5172 + }, + { + "buffer": 0, + "byteOffset": 9365555, + "byteLength": 5172 + }, + { + "buffer": 0, + "byteOffset": 9370727, + "byteLength": 3448 + }, + { + "buffer": 0, + "byteOffset": 9374175, + "byteLength": 2628 + }, + { + "buffer": 0, + "byteOffset": 9376803, + "byteLength": 33960 + }, + { + "buffer": 0, + "byteOffset": 9410763, + "byteLength": 33960 + }, + { + "buffer": 0, + "byteOffset": 9444723, + "byteLength": 22640 + }, + { + "buffer": 0, + "byteOffset": 9467363, + "byteLength": 15024 + }, + { + "buffer": 0, + "byteOffset": 9482387, + "byteLength": 456 + }, + { + "buffer": 0, + "byteOffset": 9482843, + "byteLength": 456 + }, + { + "buffer": 0, + "byteOffset": 9483299, + "byteLength": 304 + }, + { + "buffer": 0, + "byteOffset": 9483603, + "byteLength": 168 + }, + { + "buffer": 0, + "byteOffset": 9483771, + "byteLength": 5004 + }, + { + "buffer": 0, + "byteOffset": 9488775, + "byteLength": 5004 + }, + { + "buffer": 0, + "byteOffset": 9493779, + "byteLength": 3336 + }, + { + "buffer": 0, + "byteOffset": 9497115, + "byteLength": 2232 + }, + { + "buffer": 0, + "byteOffset": 9499347, + "byteLength": 1680 + }, + { + "buffer": 0, + "byteOffset": 9501027, + "byteLength": 1680 + }, + { + "buffer": 0, + "byteOffset": 9502707, + "byteLength": 1120 + }, + { + "buffer": 0, + "byteOffset": 9503827, + "byteLength": 588 + }, + { + "buffer": 0, + "byteOffset": 9504415, + "byteLength": 828 + }, + { + "buffer": 0, + "byteOffset": 9505243, + "byteLength": 828 + }, + { + "buffer": 0, + "byteOffset": 9506071, + "byteLength": 552 + }, + { + "buffer": 0, + "byteOffset": 9506623, + "byteLength": 360 + }, + { + "buffer": 0, + "byteOffset": 9506983, + "byteLength": 44700 + }, + { + "buffer": 0, + "byteOffset": 9551683, + "byteLength": 44700 + }, + { + "buffer": 0, + "byteOffset": 9596383, + "byteLength": 29800 + }, + { + "buffer": 0, + "byteOffset": 9626183, + "byteLength": 18192 + }, + { + "buffer": 0, + "byteOffset": 9644375, + "byteLength": 26688 + }, + { + "buffer": 0, + "byteOffset": 9671063, + "byteLength": 26688 + }, + { + "buffer": 0, + "byteOffset": 9697751, + "byteLength": 17792 + }, + { + "buffer": 0, + "byteOffset": 9715543, + "byteLength": 11148 + }, + { + "buffer": 0, + "byteOffset": 9726691, + "byteLength": 6744 + }, + { + "buffer": 0, + "byteOffset": 9733435, + "byteLength": 6744 + }, + { + "buffer": 0, + "byteOffset": 9740179, + "byteLength": 4496 + }, + { + "buffer": 0, + "byteOffset": 9744675, + "byteLength": 2340 + }, + { + "buffer": 0, + "byteOffset": 9747015, + "byteLength": 1680 + }, + { + "buffer": 0, + "byteOffset": 9748695, + "byteLength": 1680 + }, + { + "buffer": 0, + "byteOffset": 9750375, + "byteLength": 1120 + }, + { + "buffer": 0, + "byteOffset": 9751495, + "byteLength": 432 + }, + { + "buffer": 0, + "byteOffset": 9751927, + "byteLength": 2880 + }, + { + "buffer": 0, + "byteOffset": 9754807, + "byteLength": 2880 + }, + { + "buffer": 0, + "byteOffset": 9757687, + "byteLength": 1920 + }, + { + "buffer": 0, + "byteOffset": 9759607, + "byteLength": 2088 + }, + { + "buffer": 0, + "byteOffset": 9761695, + "byteLength": 5244 + }, + { + "buffer": 0, + "byteOffset": 9766939, + "byteLength": 5244 + }, + { + "buffer": 0, + "byteOffset": 9772183, + "byteLength": 3496 + }, + { + "buffer": 0, + "byteOffset": 9775679, + "byteLength": 2112 + }, + { + "buffer": 0, + "byteOffset": 9777791, + "byteLength": 48096 + }, + { + "buffer": 0, + "byteOffset": 9825887, + "byteLength": 48096 + }, + { + "buffer": 0, + "byteOffset": 9873983, + "byteLength": 32064 + }, + { + "buffer": 0, + "byteOffset": 9906047, + "byteLength": 22608 + }, + { + "buffer": 0, + "byteOffset": 9928655, + "byteLength": 20784 + }, + { + "buffer": 0, + "byteOffset": 9949439, + "byteLength": 20784 + }, + { + "buffer": 0, + "byteOffset": 9970223, + "byteLength": 13856 + }, + { + "buffer": 0, + "byteOffset": 9984079, + "byteLength": 16464 + }, + { + "buffer": 0, + "byteOffset": 10000543, + "byteLength": 1560 + }, + { + "buffer": 0, + "byteOffset": 10002103, + "byteLength": 1560 + }, + { + "buffer": 0, + "byteOffset": 10003663, + "byteLength": 1040 + }, + { + "buffer": 0, + "byteOffset": 10004703, + "byteLength": 768 + }, + { + "buffer": 0, + "byteOffset": 10005471, + "byteLength": 1164 + }, + { + "buffer": 0, + "byteOffset": 10006635, + "byteLength": 1164 + }, + { + "buffer": 0, + "byteOffset": 10007799, + "byteLength": 776 + }, + { + "buffer": 0, + "byteOffset": 10008575, + "byteLength": 792 + }, + { + "buffer": 0, + "byteOffset": 10009367, + "byteLength": 19056 + }, + { + "buffer": 0, + "byteOffset": 10028423, + "byteLength": 19056 + }, + { + "buffer": 0, + "byteOffset": 10047479, + "byteLength": 12704 + }, + { + "buffer": 0, + "byteOffset": 10060183, + "byteLength": 6564 + }, + { + "buffer": 0, + "byteOffset": 10066747, + "byteLength": 70248 + }, + { + "buffer": 0, + "byteOffset": 10136995, + "byteLength": 70248 + }, + { + "buffer": 0, + "byteOffset": 10207243, + "byteLength": 46832 + }, + { + "buffer": 0, + "byteOffset": 10254075, + "byteLength": 26112 + }, + { + "buffer": 0, + "byteOffset": 10280187, + "byteLength": 19488 + }, + { + "buffer": 0, + "byteOffset": 10299675, + "byteLength": 19488 + }, + { + "buffer": 0, + "byteOffset": 10319163, + "byteLength": 12992 + }, + { + "buffer": 0, + "byteOffset": 10332155, + "byteLength": 8304 + }, + { + "buffer": 0, + "byteOffset": 10340459, + "byteLength": 1248 + }, + { + "buffer": 0, + "byteOffset": 10341707, + "byteLength": 1248 + }, + { + "buffer": 0, + "byteOffset": 10342955, + "byteLength": 832 + }, + { + "buffer": 0, + "byteOffset": 10343787, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 10344363, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 10346739, + "byteLength": 2376 + }, + { + "buffer": 0, + "byteOffset": 10349115, + "byteLength": 1584 + }, + { + "buffer": 0, + "byteOffset": 10350699, + "byteLength": 972 + }, + { + "buffer": 0, + "byteOffset": 10351671, + "byteLength": 3744 + }, + { + "buffer": 0, + "byteOffset": 10355415, + "byteLength": 3744 + }, + { + "buffer": 0, + "byteOffset": 10359159, + "byteLength": 2496 + }, + { + "buffer": 0, + "byteOffset": 10361655, + "byteLength": 1284 + }, + { + "buffer": 0, + "byteOffset": 10362939, + "byteLength": 8244 + }, + { + "buffer": 0, + "byteOffset": 10371183, + "byteLength": 8244 + }, + { + "buffer": 0, + "byteOffset": 10379427, + "byteLength": 5496 + }, + { + "buffer": 0, + "byteOffset": 10384923, + "byteLength": 3696 + }, + { + "buffer": 0, + "byteOffset": 10388619, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 10389099, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 10389579, + "byteLength": 320 + }, + { + "buffer": 0, + "byteOffset": 10389899, + "byteLength": 192 + }, + { + "buffer": 0, + "byteOffset": 10390091, + "byteLength": 2640 + }, + { + "buffer": 0, + "byteOffset": 10392731, + "byteLength": 2640 + }, + { + "buffer": 0, + "byteOffset": 10395371, + "byteLength": 1760 + }, + { + "buffer": 0, + "byteOffset": 10397131, + "byteLength": 948 + }, + { + "buffer": 0, + "byteOffset": 10398079, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 10398559, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 10399039, + "byteLength": 320 + }, + { + "buffer": 0, + "byteOffset": 10399359, + "byteLength": 348 + }, + { + "buffer": 0, + "byteOffset": 10399707, + "byteLength": 2724 + }, + { + "buffer": 0, + "byteOffset": 10402431, + "byteLength": 2724 + }, + { + "buffer": 0, + "byteOffset": 10405155, + "byteLength": 1816 + }, + { + "buffer": 0, + "byteOffset": 10406971, + "byteLength": 1152 + }, + { + "buffer": 0, + "byteOffset": 10408123, + "byteLength": 28908 + }, + { + "buffer": 0, + "byteOffset": 10437031, + "byteLength": 28908 + }, + { + "buffer": 0, + "byteOffset": 10465939, + "byteLength": 19272 + }, + { + "buffer": 0, + "byteOffset": 10485211, + "byteLength": 10224 + }, + { + "buffer": 0, + "byteOffset": 10495435, + "byteLength": 54000 + }, + { + "buffer": 0, + "byteOffset": 10549435, + "byteLength": 54000 + }, + { + "buffer": 0, + "byteOffset": 10603435, + "byteLength": 36000 + }, + { + "buffer": 0, + "byteOffset": 10639435, + "byteLength": 20544 + }, + { + "buffer": 0, + "byteOffset": 10659979, + "byteLength": 4944 + }, + { + "buffer": 0, + "byteOffset": 10664923, + "byteLength": 4944 + }, + { + "buffer": 0, + "byteOffset": 10669867, + "byteLength": 3296 + }, + { + "buffer": 0, + "byteOffset": 10673163, + "byteLength": 1968 + }, + { + "buffer": 0, + "byteOffset": 10675131, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 10676475, + "byteLength": 1344 + }, + { + "buffer": 0, + "byteOffset": 10677819, + "byteLength": 896 + }, + { + "buffer": 0, + "byteOffset": 10678715, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 10679291, + "byteLength": 8304 + }, + { + "buffer": 0, + "byteOffset": 10687595, + "byteLength": 8304 + }, + { + "buffer": 0, + "byteOffset": 10695899, + "byteLength": 5536 + }, + { + "buffer": 0, + "byteOffset": 10701435, + "byteLength": 3720 + }, + { + "buffer": 0, + "byteOffset": 10705155, + "byteLength": 43800 + }, + { + "buffer": 0, + "byteOffset": 10748955, + "byteLength": 43800 + }, + { + "buffer": 0, + "byteOffset": 10792755, + "byteLength": 29200 + }, + { + "buffer": 0, + "byteOffset": 10821955, + "byteLength": 14340 + }, + { + "buffer": 0, + "byteOffset": 10836295, + "byteLength": 11352 + }, + { + "buffer": 0, + "byteOffset": 10847647, + "byteLength": 11352 + }, + { + "buffer": 0, + "byteOffset": 10858999, + "byteLength": 7568 + }, + { + "buffer": 0, + "byteOffset": 10866567, + "byteLength": 3804 + }, + { + "buffer": 0, + "byteOffset": 10870371, + "byteLength": 6912 + }, + { + "buffer": 0, + "byteOffset": 10877283, + "byteLength": 6912 + }, + { + "buffer": 0, + "byteOffset": 10884195, + "byteLength": 4608 + }, + { + "buffer": 0, + "byteOffset": 10888803, + "byteLength": 2496 + }, + { + "buffer": 0, + "byteOffset": 10891299, + "byteLength": 1716 + }, + { + "buffer": 0, + "byteOffset": 10893015, + "byteLength": 1716 + }, + { + "buffer": 0, + "byteOffset": 10894731, + "byteLength": 1144 + }, + { + "buffer": 0, + "byteOffset": 10895875, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 10896907, + "byteLength": 1644 + }, + { + "buffer": 0, + "byteOffset": 10898551, + "byteLength": 1644 + }, + { + "buffer": 0, + "byteOffset": 10900195, + "byteLength": 1096 + }, + { + "buffer": 0, + "byteOffset": 10901291, + "byteLength": 936 + }, + { + "buffer": 0, + "byteOffset": 10902227, + "byteLength": 1644 + }, + { + "buffer": 0, + "byteOffset": 10903871, + "byteLength": 1644 + }, + { + "buffer": 0, + "byteOffset": 10905515, + "byteLength": 1096 + }, + { + "buffer": 0, + "byteOffset": 10906611, + "byteLength": 936 + }, + { + "buffer": 0, + "byteOffset": 10907547, + "byteLength": 1716 + }, + { + "buffer": 0, + "byteOffset": 10909263, + "byteLength": 1716 + }, + { + "buffer": 0, + "byteOffset": 10910979, + "byteLength": 1144 + }, + { + "buffer": 0, + "byteOffset": 10912123, + "byteLength": 1032 + }, + { + "buffer": 0, + "byteOffset": 10913155, + "byteLength": 1644 + }, + { + "buffer": 0, + "byteOffset": 10914799, + "byteLength": 1644 + }, + { + "buffer": 0, + "byteOffset": 10916443, + "byteLength": 1096 + }, + { + "buffer": 0, + "byteOffset": 10917539, + "byteLength": 936 + }, + { + "buffer": 0, + "byteOffset": 10918475, + "byteLength": 1644 + }, + { + "buffer": 0, + "byteOffset": 10920119, + "byteLength": 1644 + }, + { + "buffer": 0, + "byteOffset": 10921763, + "byteLength": 1096 + }, + { + "buffer": 0, + "byteOffset": 10922859, + "byteLength": 936 + }, + { + "buffer": 0, + "byteOffset": 10923795, + "byteLength": 1560 + }, + { + "buffer": 0, + "byteOffset": 10925355, + "byteLength": 1560 + }, + { + "buffer": 0, + "byteOffset": 10926915, + "byteLength": 1040 + }, + { + "buffer": 0, + "byteOffset": 10927955, + "byteLength": 1092 + }, + { + "buffer": 0, + "byteOffset": 10929047, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 10929095, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 10929143, + "byteLength": 32 + }, + { + "buffer": 0, + "byteOffset": 10929175, + "byteLength": 12 + }, + { + "buffer": 0, + "byteOffset": 10929187, + "byteLength": 12816 + }, + { + "buffer": 0, + "byteOffset": 10942003, + "byteLength": 12816 + }, + { + "buffer": 0, + "byteOffset": 10954819, + "byteLength": 8544 + }, + { + "buffer": 0, + "byteOffset": 10963363, + "byteLength": 5976 + }, + { + "buffer": 0, + "byteOffset": 10969339, + "byteLength": 12552 + }, + { + "buffer": 0, + "byteOffset": 10981891, + "byteLength": 12552 + }, + { + "buffer": 0, + "byteOffset": 10994443, + "byteLength": 8368 + }, + { + "buffer": 0, + "byteOffset": 11002811, + "byteLength": 6432 + }, + { + "buffer": 0, + "byteOffset": 11009243, + "byteLength": 22056 + }, + { + "buffer": 0, + "byteOffset": 11031299, + "byteLength": 22056 + }, + { + "buffer": 0, + "byteOffset": 11053355, + "byteLength": 14704 + }, + { + "buffer": 0, + "byteOffset": 11068059, + "byteLength": 7380 + }, + { + "buffer": 0, + "byteOffset": 11075439, + "byteLength": 2880 + }, + { + "buffer": 0, + "byteOffset": 11078319, + "byteLength": 2880 + }, + { + "buffer": 0, + "byteOffset": 11081199, + "byteLength": 1920 + }, + { + "buffer": 0, + "byteOffset": 11083119, + "byteLength": 2088 + }, + { + "buffer": 0, + "byteOffset": 11085207, + "byteLength": 5244 + }, + { + "buffer": 0, + "byteOffset": 11090451, + "byteLength": 5244 + }, + { + "buffer": 0, + "byteOffset": 11095695, + "byteLength": 3496 + }, + { + "buffer": 0, + "byteOffset": 11099191, + "byteLength": 2112 + }, + { + "buffer": 0, + "byteOffset": 11101303, + "byteLength": 48096 + }, + { + "buffer": 0, + "byteOffset": 11149399, + "byteLength": 48096 + }, + { + "buffer": 0, + "byteOffset": 11197495, + "byteLength": 32064 + }, + { + "buffer": 0, + "byteOffset": 11229559, + "byteLength": 22608 + }, + { + "buffer": 0, + "byteOffset": 11252167, + "byteLength": 20784 + }, + { + "buffer": 0, + "byteOffset": 11272951, + "byteLength": 20784 + }, + { + "buffer": 0, + "byteOffset": 11293735, + "byteLength": 13856 + }, + { + "buffer": 0, + "byteOffset": 11307591, + "byteLength": 16464 + }, + { + "buffer": 0, + "byteOffset": 11324055, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 11324535, + "byteLength": 480 + }, + { + "buffer": 0, + "byteOffset": 11325015, + "byteLength": 320 + }, + { + "buffer": 0, + "byteOffset": 11325335, + "byteLength": 348 + }, + { + "buffer": 0, + "byteOffset": 11325683, + "byteLength": 20808 + }, + { + "buffer": 0, + "byteOffset": 11346491, + "byteLength": 20808 + }, + { + "buffer": 0, + "byteOffset": 11367299, + "byteLength": 13872 + }, + { + "buffer": 0, + "byteOffset": 11381171, + "byteLength": 13392 + }, + { + "buffer": 0, + "byteOffset": 11394563, + "byteLength": 12864 + }, + { + "buffer": 0, + "byteOffset": 11407427, + "byteLength": 12864 + }, + { + "buffer": 0, + "byteOffset": 11420291, + "byteLength": 8576 + }, + { + "buffer": 0, + "byteOffset": 11428867, + "byteLength": 3456 + }, + { + "buffer": 0, + "byteOffset": 11432323, + "byteLength": 8304 + }, + { + "buffer": 0, + "byteOffset": 11440627, + "byteLength": 8304 + }, + { + "buffer": 0, + "byteOffset": 11448931, + "byteLength": 5536 + }, + { + "buffer": 0, + "byteOffset": 11454467, + "byteLength": 3720 + }, + { + "buffer": 0, + "byteOffset": 11458187, + "byteLength": 2700 + }, + { + "buffer": 0, + "byteOffset": 11460887, + "byteLength": 2700 + }, + { + "buffer": 0, + "byteOffset": 11463587, + "byteLength": 1800 + }, + { + "buffer": 0, + "byteOffset": 11465387, + "byteLength": 720 + }, + { + "buffer": 0, + "byteOffset": 11466107, + "byteLength": 2880 + }, + { + "buffer": 0, + "byteOffset": 11468987, + "byteLength": 2880 + }, + { + "buffer": 0, + "byteOffset": 11471867, + "byteLength": 1920 + }, + { + "buffer": 0, + "byteOffset": 11473787, + "byteLength": 2088 + }, + { + "buffer": 0, + "byteOffset": 11475875, + "byteLength": 22896 + }, + { + "buffer": 0, + "byteOffset": 11498771, + "byteLength": 22896 + }, + { + "buffer": 0, + "byteOffset": 11521667, + "byteLength": 15264 + }, + { + "buffer": 0, + "byteOffset": 11536931, + "byteLength": 17424 + }, + { + "buffer": 0, + "byteOffset": 11554355, + "byteLength": 4416 + }, + { + "buffer": 0, + "byteOffset": 11558771, + "byteLength": 4416 + }, + { + "buffer": 0, + "byteOffset": 11563187, + "byteLength": 2944 + }, + { + "buffer": 0, + "byteOffset": 11566131, + "byteLength": 2112 + }, + { + "buffer": 0, + "byteOffset": 11568243, + "byteLength": 50976 + }, + { + "buffer": 0, + "byteOffset": 11619219, + "byteLength": 50976 + }, + { + "buffer": 0, + "byteOffset": 11670195, + "byteLength": 33984 + }, + { + "buffer": 0, + "byteOffset": 11704179, + "byteLength": 23472 + }, + { + "buffer": 0, + "byteOffset": 11727651, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11728707, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11729763, + "byteLength": 704 + }, + { + "buffer": 0, + "byteOffset": 11730467, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 11730731, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11730827, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11730923, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 11730987, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 11731011, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11731875, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11732739, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 11733315, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 11733531, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11734587, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11735643, + "byteLength": 704 + }, + { + "buffer": 0, + "byteOffset": 11736347, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 11736611, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11736707, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11736803, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 11736867, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 11736891, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11737755, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11738619, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 11739195, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 11739411, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11740275, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11741139, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 11741715, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 11741931, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11742987, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11744043, + "byteLength": 704 + }, + { + "buffer": 0, + "byteOffset": 11744747, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 11745011, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11745107, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11745203, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 11745267, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 11745291, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11746155, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11747019, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 11747595, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 11747811, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11748867, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11749923, + "byteLength": 704 + }, + { + "buffer": 0, + "byteOffset": 11750627, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 11750891, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11750987, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11751083, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 11751147, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 11751171, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11752227, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11753283, + "byteLength": 704 + }, + { + "buffer": 0, + "byteOffset": 11753987, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 11754251, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11754347, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11754443, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 11754507, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 11754531, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11755395, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11756259, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 11756835, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 11757051, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11757147, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11757243, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 11757307, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 11757331, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11758387, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11759443, + "byteLength": 704 + }, + { + "buffer": 0, + "byteOffset": 11760147, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 11760411, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11761275, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11762139, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 11762715, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 11762931, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11763795, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11764659, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 11765235, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 11765451, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11765547, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11765643, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 11765707, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 11765731, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11766787, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11767843, + "byteLength": 704 + }, + { + "buffer": 0, + "byteOffset": 11768547, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 11768811, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11768907, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11769003, + "byteLength": 64 + }, + { + "buffer": 0, + "byteOffset": 11769067, + "byteLength": 24 + }, + { + "buffer": 0, + "byteOffset": 11769091, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11770147, + "byteLength": 1056 + }, + { + "buffer": 0, + "byteOffset": 11771203, + "byteLength": 704 + }, + { + "buffer": 0, + "byteOffset": 11771907, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 11772171, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11773035, + "byteLength": 864 + }, + { + "buffer": 0, + "byteOffset": 11773899, + "byteLength": 576 + }, + { + "buffer": 0, + "byteOffset": 11774475, + "byteLength": 216 + }, + { + "buffer": 0, + "byteOffset": 11774691, + "byteLength": 22512 + }, + { + "buffer": 0, + "byteOffset": 11797203, + "byteLength": 22512 + }, + { + "buffer": 0, + "byteOffset": 11819715, + "byteLength": 15008 + }, + { + "buffer": 0, + "byteOffset": 11834723, + "byteLength": 15708 + }, + { + "buffer": 0, + "byteOffset": 11850433, + "byteLength": 2448 + }, + { + "buffer": 0, + "byteOffset": 11852881, + "byteLength": 2448 + }, + { + "buffer": 0, + "byteOffset": 11855329, + "byteLength": 1632 + }, + { + "buffer": 0, + "byteOffset": 11856961, + "byteLength": 852 + }, + { + "buffer": 0, + "byteOffset": 11857813, + "byteLength": 5112 + }, + { + "buffer": 0, + "byteOffset": 11862925, + "byteLength": 5112 + }, + { + "buffer": 0, + "byteOffset": 11868037, + "byteLength": 3408 + }, + { + "buffer": 0, + "byteOffset": 11871445, + "byteLength": 2256 + }, + { + "buffer": 0, + "byteOffset": 11873701, + "byteLength": 228 + }, + { + "buffer": 0, + "byteOffset": 11873929, + "byteLength": 228 + }, + { + "buffer": 0, + "byteOffset": 11874157, + "byteLength": 152 + }, + { + "buffer": 0, + "byteOffset": 11874309, + "byteLength": 72 + }, + { + "buffer": 0, + "byteOffset": 11874384, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 11875392, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 11876400, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 11877072, + "byteLength": 324 + }, + { + "buffer": 0, + "byteOffset": 11877398, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 11878070, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 11878742, + "byteLength": 448 + }, + { + "buffer": 0, + "byteOffset": 11879190, + "byteLength": 264 + }, + { + "buffer": 0, + "byteOffset": 11879454, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 11879598, + "byteLength": 144 + }, + { + "buffer": 0, + "byteOffset": 11879742, + "byteLength": 96 + }, + { + "buffer": 0, + "byteOffset": 11879838, + "byteLength": 48 + }, + { + "buffer": 0, + "byteOffset": 11879886, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 11880894, + "byteLength": 1008 + }, + { + "buffer": 0, + "byteOffset": 11881902, + "byteLength": 672 + }, + { + "buffer": 0, + "byteOffset": 11882574, + "byteLength": 828 + }, + { + "buffer": 0, + "byteOffset": 11883402, + "byteLength": 1404 + }, + { + "buffer": 0, + "byteOffset": 11884806, + "byteLength": 1404 + }, + { + "buffer": 0, + "byteOffset": 11886210, + "byteLength": 936 + }, + { + "buffer": 0, + "byteOffset": 11887146, + "byteLength": 630 + }, + { + "buffer": 0, + "byteOffset": 11887780, + "byteLength": 2760 + }, + { + "buffer": 0, + "byteOffset": 11890540, + "byteLength": 2760 + }, + { + "buffer": 0, + "byteOffset": 11893300, + "byteLength": 1840 + }, + { + "buffer": 0, + "byteOffset": 11895140, + "byteLength": 1596 + }, + { + "buffer": 0, + "byteOffset": 11896736, + "byteLength": 192 + }, + { + "buffer": 0, + "byteOffset": 11896928, + "byteLength": 192 + }, + { + "buffer": 0, + "byteOffset": 11897120, + "byteLength": 128 + }, + { + "buffer": 0, + "byteOffset": 11897248, + "byteLength": 84 + } + ], + "buffers": [ + { + "uri": "iss-web.bin", + "byteLength": 11897332 + } + ], + "images": [ + { + "uri": "image_00.jpg", + "mimeType": "image/jpeg", + "name": "ISS_03.jpg" + }, + { + "uri": "image_01.jpg", + "mimeType": "image/jpeg", + "name": "ISS_AO_06.jpg" + }, + { + "uri": "image_02.jpg", + "mimeType": "image/jpeg", + "name": "ISS_01.jpg" + }, + { + "uri": "image_03.jpg", + "mimeType": "image/jpeg", + "name": "ISS_02.jpg" + }, + { + "uri": "image_04.jpg", + "mimeType": "image/jpeg", + "name": "ISS_02.jpg" + }, + { + "uri": "image_05.jpg", + "mimeType": "image/jpeg", + "name": "ISS_AO_02.jpg" + }, + { + "uri": "image_06.jpg", + "mimeType": "image/jpeg", + "name": "ISS_AO_04.jpg" + }, + { + "uri": "image_07.jpg", + "mimeType": "image/jpeg", + "name": "ISS_AO_01.jpg" + }, + { + "uri": "image_08.jpg", + "mimeType": "image/jpeg", + "name": "ISS_AO_03.jpg" + }, + { + "uri": "image_09.jpg", + "mimeType": "image/jpeg", + "name": "ISS_01_n.jpg" + }, + { + "uri": "image_10.jpg", + "mimeType": "image/jpeg", + "name": "ISS_01.jpg" + }, + { + "uri": "image_11.jpg", + "mimeType": "image/jpeg", + "name": "ISS_01.jpg" + }, + { + "uri": "image_12.jpg", + "mimeType": "image/jpeg", + "name": "foil_n.jpg" + }, + { + "uri": "image_13.jpg", + "mimeType": "image/jpeg", + "name": "ISS_AO_05.jpg" + }, + { + "uri": "image_14.jpg", + "mimeType": "image/jpeg", + "name": "ISS_04.jpg" + }, + { + "uri": "image_15.jpg", + "mimeType": "image/jpeg", + "name": "ISS_02.jpg" + }, + { + "uri": "image_16.jpg", + "mimeType": "image/jpeg", + "name": "ISS_AO_07.jpg" + }, + { + "uri": "image_17.jpg", + "mimeType": "image/jpeg", + "name": "ISS_AO_08.jpg" + }, + { + "uri": "image_18.jpg", + "mimeType": "image/jpeg", + "name": "ISS_03_n.jpg" + }, + { + "uri": "image_19.jpg", + "mimeType": "image/jpeg", + "name": "ISS_03.jpg" + }, + { + "uri": "image_20.jpg", + "mimeType": "image/jpeg", + "name": "foil_n.png" + }, + { + "uri": "image_21.jpg", + "mimeType": "image/jpeg", + "name": "ISS_03.png.002" + }, + { + "uri": "image_22.jpg", + "mimeType": "image/jpeg", + "name": "ecostress.jpg" + }, + { + "uri": "image_23.jpg", + "mimeType": "image/jpeg", + "name": "ISS_03.jpg.001" + }, + { + "uri": "image_24.jpg", + "mimeType": "image/jpeg", + "name": "ecostress.jpg" + }, + { + "uri": "image_25.jpg", + "mimeType": "image/jpeg", + "name": "ISS_01.jpg" + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.75, + "baseColorTexture": { + "index": 0, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_03_dull" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 1, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_AO_06" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.25, + "roughnessFactor": 0.5, + "baseColorTexture": { + "index": 2, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_01_dull" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.6000000238418579, + "baseColorTexture": { + "index": 3, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_02_dull" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.25, + "roughnessFactor": 0.1599999964237213, + "baseColorTexture": { + "index": 4, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "shiny_panel" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.2395523190498352, + 0.2265775203704834, + 0.16225877404212952, + 1.0 + ], + "metallicFactor": 1.0, + "roughnessFactor": 0.30000001192092896 + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "olive *" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 1.0, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 5, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_AO_02" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 6, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_AO_04" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 7, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_AO_01" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 8, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_AO_03" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 10, + "texCoord": 0 + } + }, + "normalTexture": { + "index": 9, + "texCoord": 0, + "scale": 0.3499999940395355 + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_01_shiny_n" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.5, + "baseColorTexture": { + "index": 11, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_01_dark *" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 0.999999463558197, + 1.0, + 1.0 + ], + "metallicFactor": 1.0, + "roughnessFactor": 0.30000001192092896 + }, + "normalTexture": { + "index": 12, + "texCoord": 0, + "scale": 2.0 + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "foil_silver" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 13, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_AO_05" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.5, + "baseColorTexture": { + "index": 14, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_04_dull" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.5, + "baseColorTexture": { + "index": 15, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_02_dark *" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 16, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_AO_07" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 17, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_AO_08" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.5, + "roughnessFactor": 0.44999998807907104, + "baseColorTexture": { + "index": 19, + "texCoord": 0 + } + }, + "normalTexture": { + "index": 18, + "texCoord": 0, + "scale": 0.3499999940395355 + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_03_shiny_n" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.49693313241004944, + 0.4969329833984375, + 0.4969330132007599, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.8500000238418579 + }, + "normalTexture": { + "index": 20, + "texCoord": 0, + "scale": 1.0 + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "white" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.3185468018054962, + 0.31425797939300537, + 0.25295013189315796, + 1.0 + ], + "metallicFactor": 1.0, + "roughnessFactor": 1.0 + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "base_metal" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 1.0, + "roughnessFactor": 0.6732679605484009, + "baseColorTexture": { + "index": 21, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_03_dull.001" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.75, + "baseColorTexture": { + "index": 22, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ecostress" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.026453394442796707, + 0.026453394442796707, + 0.026453394442796707, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.5 + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "plastic black" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.5 + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ecostressWhite" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.75, + "baseColorTexture": { + "index": 23, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ISS_03_dull.002" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.6000000238418579, + "roughnessFactor": 0.75, + "baseColorTexture": { + "index": 24, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ecostress metal" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "metallicFactor": 0.0, + "roughnessFactor": 0.5, + "baseColorTexture": { + "index": 25, + "texCoord": 0 + } + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "alphaMode": "OPAQUE", + "doubleSided": false, + "name": "ecostress_dexter" + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "POSITION": 0, + "NORMAL": 1, + "TEXCOORD_0": 2 + }, + "indices": 3, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 4, + "NORMAL": 5, + "TEXCOORD_0": 6 + }, + "indices": 7, + "mode": 4, + "material": 1 + }, + { + "attributes": { + "POSITION": 8, + "NORMAL": 9, + "TEXCOORD_0": 10 + }, + "indices": 11, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 12, + "NORMAL": 13, + "TEXCOORD_0": 14 + }, + "indices": 15, + "mode": 4, + "material": 3 + } + ], + "name": "Sphere.002" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 16, + "NORMAL": 17, + "TEXCOORD_0": 18 + }, + "indices": 19, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 20, + "NORMAL": 21, + "TEXCOORD_0": 22 + }, + "indices": 23, + "mode": 4, + "material": 1 + }, + { + "attributes": { + "POSITION": 24, + "NORMAL": 25, + "TEXCOORD_0": 26 + }, + "indices": 27, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 28, + "NORMAL": 29, + "TEXCOORD_0": 30 + }, + "indices": 31, + "mode": 4, + "material": 3 + } + ], + "name": "Sphere.002" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 32, + "NORMAL": 33, + "TEXCOORD_0": 34 + }, + "indices": 35, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 36, + "NORMAL": 37, + "TEXCOORD_0": 38 + }, + "indices": 39, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 40, + "NORMAL": 41, + "TEXCOORD_0": 42 + }, + "indices": 43, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 44, + "NORMAL": 45, + "TEXCOORD_0": 46 + }, + "indices": 47, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 48, + "NORMAL": 49, + "TEXCOORD_0": 50 + }, + "indices": 51, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 52, + "NORMAL": 53, + "TEXCOORD_0": 54 + }, + "indices": 55, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 56, + "NORMAL": 57, + "TEXCOORD_0": 58 + }, + "indices": 59, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 60, + "NORMAL": 61, + "TEXCOORD_0": 62 + }, + "indices": 63, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 64, + "NORMAL": 65, + "TEXCOORD_0": 66 + }, + "indices": 67, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 68, + "NORMAL": 69, + "TEXCOORD_0": 70 + }, + "indices": 71, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 72, + "NORMAL": 73, + "TEXCOORD_0": 74 + }, + "indices": 75, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 76, + "NORMAL": 77, + "TEXCOORD_0": 78 + }, + "indices": 79, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 80, + "NORMAL": 81, + "TEXCOORD_0": 82 + }, + "indices": 83, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 84, + "NORMAL": 85, + "TEXCOORD_0": 86 + }, + "indices": 87, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 88, + "NORMAL": 89, + "TEXCOORD_0": 90 + }, + "indices": 91, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 92, + "NORMAL": 93, + "TEXCOORD_0": 94 + }, + "indices": 95, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 96, + "NORMAL": 97, + "TEXCOORD_0": 98 + }, + "indices": 99, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 100, + "NORMAL": 101, + "TEXCOORD_0": 102 + }, + "indices": 103, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 104, + "NORMAL": 105, + "TEXCOORD_0": 106 + }, + "indices": 107, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 108, + "NORMAL": 109, + "TEXCOORD_0": 110 + }, + "indices": 111, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 112, + "NORMAL": 113, + "TEXCOORD_0": 114 + }, + "indices": 115, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 116, + "NORMAL": 117, + "TEXCOORD_0": 118 + }, + "indices": 119, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 120, + "NORMAL": 121, + "TEXCOORD_0": 122 + }, + "indices": 123, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 124, + "NORMAL": 125, + "TEXCOORD_0": 126 + }, + "indices": 127, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 128, + "NORMAL": 129, + "TEXCOORD_0": 130 + }, + "indices": 131, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 132, + "NORMAL": 133, + "TEXCOORD_0": 134 + }, + "indices": 135, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 136, + "NORMAL": 137, + "TEXCOORD_0": 138 + }, + "indices": 139, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 140, + "NORMAL": 141, + "TEXCOORD_0": 142 + }, + "indices": 143, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 144, + "NORMAL": 145, + "TEXCOORD_0": 146 + }, + "indices": 147, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 148, + "NORMAL": 149, + "TEXCOORD_0": 150 + }, + "indices": 151, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 152, + "NORMAL": 153, + "TEXCOORD_0": 154 + }, + "indices": 155, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 156, + "NORMAL": 157, + "TEXCOORD_0": 158 + }, + "indices": 159, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 160, + "NORMAL": 161, + "TEXCOORD_0": 162 + }, + "indices": 163, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 164, + "NORMAL": 165, + "TEXCOORD_0": 166 + }, + "indices": 167, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 168, + "NORMAL": 169, + "TEXCOORD_0": 170 + }, + "indices": 171, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 172, + "NORMAL": 173, + "TEXCOORD_0": 174 + }, + "indices": 175, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 176, + "NORMAL": 177, + "TEXCOORD_0": 178 + }, + "indices": 179, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 180, + "NORMAL": 181, + "TEXCOORD_0": 182 + }, + "indices": 183, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 184, + "NORMAL": 185, + "TEXCOORD_0": 186 + }, + "indices": 187, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 188, + "NORMAL": 189, + "TEXCOORD_0": 190 + }, + "indices": 191, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 192, + "NORMAL": 193, + "TEXCOORD_0": 194 + }, + "indices": 195, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 196, + "NORMAL": 197, + "TEXCOORD_0": 198 + }, + "indices": 199, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 200, + "NORMAL": 201, + "TEXCOORD_0": 202 + }, + "indices": 203, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 204, + "NORMAL": 205, + "TEXCOORD_0": 206 + }, + "indices": 207, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 208, + "NORMAL": 209, + "TEXCOORD_0": 210 + }, + "indices": 211, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 212, + "NORMAL": 213, + "TEXCOORD_0": 214 + }, + "indices": 215, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 216, + "NORMAL": 217, + "TEXCOORD_0": 218 + }, + "indices": 219, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 220, + "NORMAL": 221, + "TEXCOORD_0": 222 + }, + "indices": 223, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 224, + "NORMAL": 225, + "TEXCOORD_0": 226 + }, + "indices": 227, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 228, + "NORMAL": 229, + "TEXCOORD_0": 230 + }, + "indices": 231, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 232, + "NORMAL": 233, + "TEXCOORD_0": 234 + }, + "indices": 235, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 236, + "NORMAL": 237, + "TEXCOORD_0": 238 + }, + "indices": 239, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 240, + "NORMAL": 241, + "TEXCOORD_0": 242 + }, + "indices": 243, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 244, + "NORMAL": 245, + "TEXCOORD_0": 246 + }, + "indices": 247, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 248, + "NORMAL": 249, + "TEXCOORD_0": 250 + }, + "indices": 251, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 252, + "NORMAL": 253, + "TEXCOORD_0": 254 + }, + "indices": 255, + "mode": 4, + "material": 5 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 256, + "NORMAL": 257, + "TEXCOORD_0": 258 + }, + "indices": 259, + "mode": 4 + }, + { + "attributes": { + "POSITION": 260, + "NORMAL": 261, + "TEXCOORD_0": 262 + }, + "indices": 263, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 264, + "NORMAL": 265, + "TEXCOORD_0": 266 + }, + "indices": 267, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 268, + "NORMAL": 269, + "TEXCOORD_0": 270 + }, + "indices": 271, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 272, + "NORMAL": 273, + "TEXCOORD_0": 274 + }, + "indices": 275, + "mode": 4, + "material": 6 + } + ], + "name": "sm_ext_sm.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 276, + "NORMAL": 277, + "TEXCOORD_0": 278 + }, + "indices": 279, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 280, + "NORMAL": 281, + "TEXCOORD_0": 282 + }, + "indices": 283, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 284, + "NORMAL": 285, + "TEXCOORD_0": 286 + }, + "indices": 287, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 288, + "NORMAL": 289, + "TEXCOORD_0": 290 + }, + "indices": 291, + "mode": 4, + "material": 7 + } + ], + "name": "Sphere.002" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 292, + "NORMAL": 293, + "TEXCOORD_0": 294 + }, + "indices": 295, + "mode": 4 + }, + { + "attributes": { + "POSITION": 296, + "NORMAL": 297, + "TEXCOORD_0": 298 + }, + "indices": 299, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 300, + "NORMAL": 301, + "TEXCOORD_0": 302 + }, + "indices": 303, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 304, + "NORMAL": 305, + "TEXCOORD_0": 306 + }, + "indices": 307, + "mode": 4, + "material": 6 + } + ], + "name": "Sphere.002" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 308, + "NORMAL": 309, + "TEXCOORD_0": 310 + }, + "indices": 311, + "mode": 4, + "material": 6 + }, + { + "attributes": { + "POSITION": 312, + "NORMAL": 313, + "TEXCOORD_0": 314 + }, + "indices": 315, + "mode": 4, + "material": 8 + }, + { + "attributes": { + "POSITION": 316, + "NORMAL": 317, + "TEXCOORD_0": 318 + }, + "indices": 319, + "mode": 4, + "material": 2 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 320, + "NORMAL": 321, + "TEXCOORD_0": 322 + }, + "indices": 323, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 324, + "NORMAL": 325, + "TEXCOORD_0": 326 + }, + "indices": 327, + "mode": 4, + "material": 9 + }, + { + "attributes": { + "POSITION": 328, + "NORMAL": 329, + "TEXCOORD_0": 330 + }, + "indices": 331, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 332, + "NORMAL": 333, + "TEXCOORD_0": 334 + }, + "indices": 335, + "mode": 4, + "material": 11 + }, + { + "attributes": { + "POSITION": 336, + "NORMAL": 337, + "TEXCOORD_0": 338 + }, + "indices": 339, + "mode": 4, + "material": 12 + } + ], + "name": "z1_ext_01.001" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 340, + "NORMAL": 341, + "TEXCOORD_0": 342 + }, + "indices": 343, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 344, + "NORMAL": 345, + "TEXCOORD_0": 346 + }, + "indices": 347, + "mode": 4, + "material": 0 + } + ], + "name": "z1_ext_01.001" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 348, + "NORMAL": 349, + "TEXCOORD_0": 350 + }, + "indices": 351, + "mode": 4, + "material": 0 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 352, + "NORMAL": 353, + "TEXCOORD_0": 354 + }, + "indices": 355, + "mode": 4, + "material": 0 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 356, + "NORMAL": 357, + "TEXCOORD_0": 358 + }, + "indices": 359, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 360, + "NORMAL": 361, + "TEXCOORD_0": 362 + }, + "indices": 363, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 364, + "NORMAL": 365, + "TEXCOORD_0": 366 + }, + "indices": 367, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 368, + "NORMAL": 369, + "TEXCOORD_0": 370 + }, + "indices": 371, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 372, + "NORMAL": 373, + "TEXCOORD_0": 374 + }, + "indices": 375, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 376, + "NORMAL": 377, + "TEXCOORD_0": 378 + }, + "indices": 379, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 380, + "NORMAL": 381, + "TEXCOORD_0": 382 + }, + "indices": 383, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 384, + "NORMAL": 385, + "TEXCOORD_0": 386 + }, + "indices": 387, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 388, + "NORMAL": 389, + "TEXCOORD_0": 390 + }, + "indices": 391, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 392, + "NORMAL": 393, + "TEXCOORD_0": 394 + }, + "indices": 395, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 396, + "NORMAL": 397, + "TEXCOORD_0": 398 + }, + "indices": 399, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 400, + "NORMAL": 401, + "TEXCOORD_0": 402 + }, + "indices": 403, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 404, + "NORMAL": 405, + "TEXCOORD_0": 406 + }, + "indices": 407, + "mode": 4, + "material": 0 + } + ], + "name": "armA_SY_joint.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 408, + "NORMAL": 409, + "TEXCOORD_0": 410 + }, + "indices": 411, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 412, + "NORMAL": 413, + "TEXCOORD_0": 414 + }, + "indices": 415, + "mode": 4, + "material": 2 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 416, + "NORMAL": 417, + "TEXCOORD_0": 418 + }, + "indices": 419, + "mode": 4, + "material": 0 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 420, + "NORMAL": 421, + "TEXCOORD_0": 422 + }, + "indices": 423, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 424, + "NORMAL": 425, + "TEXCOORD_0": 426 + }, + "indices": 427, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 428, + "NORMAL": 429, + "TEXCOORD_0": 430 + }, + "indices": 431, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 432, + "NORMAL": 433, + "TEXCOORD_0": 434 + }, + "indices": 435, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 436, + "NORMAL": 437, + "TEXCOORD_0": 438 + }, + "indices": 439, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 440, + "NORMAL": 441, + "TEXCOORD_0": 442 + }, + "indices": 443, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 444, + "NORMAL": 445, + "TEXCOORD_0": 446 + }, + "indices": 447, + "mode": 4, + "material": 0 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 448, + "NORMAL": 449, + "TEXCOORD_0": 450 + }, + "indices": 451, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 452, + "NORMAL": 453, + "TEXCOORD_0": 454 + }, + "indices": 455, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 456, + "NORMAL": 457, + "TEXCOORD_0": 458 + }, + "indices": 459, + "mode": 4, + "material": 13 + }, + { + "attributes": { + "POSITION": 460, + "NORMAL": 461, + "TEXCOORD_0": 462 + }, + "indices": 463, + "mode": 4, + "material": 0 + } + ], + "name": "mss_mbs.001" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 464, + "NORMAL": 465, + "TEXCOORD_0": 466 + }, + "indices": 467, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 468, + "NORMAL": 469, + "TEXCOORD_0": 470 + }, + "indices": 471, + "mode": 4, + "material": 13 + }, + { + "attributes": { + "POSITION": 472, + "NORMAL": 473, + "TEXCOORD_0": 474 + }, + "indices": 475, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 476, + "NORMAL": 477, + "TEXCOORD_0": 478 + }, + "indices": 479, + "mode": 4, + "material": 3 + } + ], + "name": "s0_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 480, + "NORMAL": 481, + "TEXCOORD_0": 482 + }, + "indices": 483, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 484, + "NORMAL": 485, + "TEXCOORD_0": 486 + }, + "indices": 487, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 488, + "NORMAL": 489, + "TEXCOORD_0": 490 + }, + "indices": 491, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 492, + "NORMAL": 493, + "TEXCOORD_0": 494 + }, + "indices": 495, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 496, + "NORMAL": 497, + "TEXCOORD_0": 498 + }, + "indices": 499, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 500, + "NORMAL": 501, + "TEXCOORD_0": 502 + }, + "indices": 503, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 504, + "NORMAL": 505, + "TEXCOORD_0": 506 + }, + "indices": 507, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 508, + "NORMAL": 509, + "TEXCOORD_0": 510 + }, + "indices": 511, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 512, + "NORMAL": 513, + "TEXCOORD_0": 514 + }, + "indices": 515, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 516, + "NORMAL": 517, + "TEXCOORD_0": 518 + }, + "indices": 519, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 520, + "NORMAL": 521, + "TEXCOORD_0": 522 + }, + "indices": 523, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 524, + "NORMAL": 525, + "TEXCOORD_0": 526 + }, + "indices": 527, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 528, + "NORMAL": 529, + "TEXCOORD_0": 530 + }, + "indices": 531, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 532, + "NORMAL": 533, + "TEXCOORD_0": 534 + }, + "indices": 535, + "mode": 4, + "material": 9 + }, + { + "attributes": { + "POSITION": 536, + "NORMAL": 537, + "TEXCOORD_0": 538 + }, + "indices": 539, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 540, + "NORMAL": 541, + "TEXCOORD_0": 542 + }, + "indices": 543, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 544, + "NORMAL": 545, + "TEXCOORD_0": 546 + }, + "indices": 547, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 548, + "NORMAL": 549, + "TEXCOORD_0": 550 + }, + "indices": 551, + "mode": 4, + "material": 1 + }, + { + "attributes": { + "POSITION": 552, + "NORMAL": 553, + "TEXCOORD_0": 554 + }, + "indices": 555, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 556, + "NORMAL": 557, + "TEXCOORD_0": 558 + }, + "indices": 559, + "mode": 4, + "material": 15 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 560, + "NORMAL": 561, + "TEXCOORD_0": 562 + }, + "indices": 563, + "mode": 4, + "material": 13 + }, + { + "attributes": { + "POSITION": 564, + "NORMAL": 565, + "TEXCOORD_0": 566 + }, + "indices": 567, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 568, + "NORMAL": 569, + "TEXCOORD_0": 570 + }, + "indices": 571, + "mode": 4, + "material": 9 + }, + { + "attributes": { + "POSITION": 572, + "NORMAL": 573, + "TEXCOORD_0": 574 + }, + "indices": 575, + "mode": 4, + "material": 15 + }, + { + "attributes": { + "POSITION": 576, + "NORMAL": 577, + "TEXCOORD_0": 578 + }, + "indices": 579, + "mode": 4, + "material": 2 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 580, + "NORMAL": 581, + "TEXCOORD_0": 582 + }, + "indices": 583, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 584, + "NORMAL": 585, + "TEXCOORD_0": 586 + }, + "indices": 587, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 588, + "NORMAL": 589, + "TEXCOORD_0": 590 + }, + "indices": 591, + "mode": 4, + "material": 16 + }, + { + "attributes": { + "POSITION": 592, + "NORMAL": 593, + "TEXCOORD_0": 594 + }, + "indices": 595, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 596, + "NORMAL": 597, + "TEXCOORD_0": 598 + }, + "indices": 599, + "mode": 4, + "material": 14 + } + ], + "name": "ESP3.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 600, + "NORMAL": 601, + "TEXCOORD_0": 602 + }, + "indices": 603, + "mode": 4, + "material": 16 + }, + { + "attributes": { + "POSITION": 604, + "NORMAL": 605, + "TEXCOORD_0": 606 + }, + "indices": 607, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 608, + "NORMAL": 609, + "TEXCOORD_0": 610 + }, + "indices": 611, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 612, + "NORMAL": 613, + "TEXCOORD_0": 614 + }, + "indices": 615, + "mode": 4, + "material": 0 + } + ], + "name": "esp2_lo.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 616, + "NORMAL": 617, + "TEXCOORD_0": 618 + }, + "indices": 619, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 620, + "NORMAL": 621, + "TEXCOORD_0": 622 + }, + "indices": 623, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 624, + "NORMAL": 625, + "TEXCOORD_0": 626 + }, + "indices": 627, + "mode": 4, + "material": 16 + } + ], + "name": "esp2_lo.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 628, + "NORMAL": 629, + "TEXCOORD_0": 630 + }, + "indices": 631, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 632, + "NORMAL": 633, + "TEXCOORD_0": 634 + }, + "indices": 635, + "mode": 4, + "material": 16 + }, + { + "attributes": { + "POSITION": 636, + "NORMAL": 637, + "TEXCOORD_0": 638 + }, + "indices": 639, + "mode": 4, + "material": 2 + } + ], + "name": "AMS2.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 640, + "NORMAL": 641, + "TEXCOORD_0": 642 + }, + "indices": 643, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 644, + "NORMAL": 645, + "TEXCOORD_0": 646 + }, + "indices": 647, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 648, + "NORMAL": 649, + "TEXCOORD_0": 650 + }, + "indices": 651, + "mode": 4, + "material": 13 + } + ], + "name": "s0_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 652, + "NORMAL": 653, + "TEXCOORD_0": 654 + }, + "indices": 655, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 656, + "NORMAL": 657, + "TEXCOORD_0": 658 + }, + "indices": 659, + "mode": 4, + "material": 16 + }, + { + "attributes": { + "POSITION": 660, + "NORMAL": 661, + "TEXCOORD_0": 662 + }, + "indices": 663, + "mode": 4, + "material": 2 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 664, + "NORMAL": 665, + "TEXCOORD_0": 666 + }, + "indices": 667, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 668, + "NORMAL": 669, + "TEXCOORD_0": 670 + }, + "indices": 671, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 672, + "NORMAL": 673, + "TEXCOORD_0": 674 + }, + "indices": 675, + "mode": 4, + "material": 15 + }, + { + "attributes": { + "POSITION": 676, + "NORMAL": 677, + "TEXCOORD_0": 678 + }, + "indices": 679, + "mode": 4, + "material": 13 + }, + { + "attributes": { + "POSITION": 680, + "NORMAL": 681, + "TEXCOORD_0": 682 + }, + "indices": 683, + "mode": 4, + "material": 14 + } + ], + "name": "s0_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 684, + "NORMAL": 685, + "TEXCOORD_0": 686 + }, + "indices": 687, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 688, + "NORMAL": 689, + "TEXCOORD_0": 690 + }, + "indices": 691, + "mode": 4, + "material": 13 + }, + { + "attributes": { + "POSITION": 692, + "NORMAL": 693, + "TEXCOORD_0": 694 + }, + "indices": 695, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 696, + "NORMAL": 697, + "TEXCOORD_0": 698 + }, + "indices": 699, + "mode": 4, + "material": 3 + } + ], + "name": "s0_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 700, + "NORMAL": 701, + "TEXCOORD_0": 702 + }, + "indices": 703, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 704, + "NORMAL": 705, + "TEXCOORD_0": 706 + }, + "indices": 707, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 708, + "NORMAL": 709, + "TEXCOORD_0": 710 + }, + "indices": 711, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 712, + "NORMAL": 713, + "TEXCOORD_0": 714 + }, + "indices": 715, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 716, + "NORMAL": 717, + "TEXCOORD_0": 718 + }, + "indices": 719, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 720, + "NORMAL": 721, + "TEXCOORD_0": 722 + }, + "indices": 723, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 724, + "NORMAL": 725, + "TEXCOORD_0": 726 + }, + "indices": 727, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 728, + "NORMAL": 729, + "TEXCOORD_0": 730 + }, + "indices": 731, + "mode": 4, + "material": 9 + }, + { + "attributes": { + "POSITION": 732, + "NORMAL": 733, + "TEXCOORD_0": 734 + }, + "indices": 735, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 736, + "NORMAL": 737, + "TEXCOORD_0": 738 + }, + "indices": 739, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 740, + "NORMAL": 741, + "TEXCOORD_0": 742 + }, + "indices": 743, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 744, + "NORMAL": 745, + "TEXCOORD_0": 746 + }, + "indices": 747, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 748, + "NORMAL": 749, + "TEXCOORD_0": 750 + }, + "indices": 751, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 752, + "NORMAL": 753, + "TEXCOORD_0": 754 + }, + "indices": 755, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 756, + "NORMAL": 757, + "TEXCOORD_0": 758 + }, + "indices": 759, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 760, + "NORMAL": 761, + "TEXCOORD_0": 762 + }, + "indices": 763, + "mode": 4, + "material": 15 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 764, + "NORMAL": 765, + "TEXCOORD_0": 766 + }, + "indices": 767, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 768, + "NORMAL": 769, + "TEXCOORD_0": 770 + }, + "indices": 771, + "mode": 4, + "material": 1 + }, + { + "attributes": { + "POSITION": 772, + "NORMAL": 773, + "TEXCOORD_0": 774 + }, + "indices": 775, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 776, + "NORMAL": 777, + "TEXCOORD_0": 778 + }, + "indices": 779, + "mode": 4, + "material": 15 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 780, + "NORMAL": 781, + "TEXCOORD_0": 782 + }, + "indices": 783, + "mode": 4, + "material": 13 + }, + { + "attributes": { + "POSITION": 784, + "NORMAL": 785, + "TEXCOORD_0": 786 + }, + "indices": 787, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 788, + "NORMAL": 789, + "TEXCOORD_0": 790 + }, + "indices": 791, + "mode": 4, + "material": 9 + }, + { + "attributes": { + "POSITION": 792, + "NORMAL": 793, + "TEXCOORD_0": 794 + }, + "indices": 795, + "mode": 4, + "material": 15 + }, + { + "attributes": { + "POSITION": 796, + "NORMAL": 797, + "TEXCOORD_0": 798 + }, + "indices": 799, + "mode": 4, + "material": 2 + } + ], + "name": "p6_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 800, + "NORMAL": 801, + "TEXCOORD_0": 802 + }, + "indices": 803, + "mode": 4, + "material": 16 + }, + { + "attributes": { + "POSITION": 804, + "NORMAL": 805, + "TEXCOORD_0": 806 + }, + "indices": 807, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 808, + "NORMAL": 809, + "TEXCOORD_0": 810 + }, + "indices": 811, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 812, + "NORMAL": 813, + "TEXCOORD_0": 814 + }, + "indices": 815, + "mode": 4, + "material": 2 + } + ], + "name": "esp2_lo.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 816, + "NORMAL": 817, + "TEXCOORD_0": 818 + }, + "indices": 819, + "mode": 4, + "material": 17 + }, + { + "attributes": { + "POSITION": 820, + "NORMAL": 821, + "TEXCOORD_0": 822 + }, + "indices": 823, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 824, + "NORMAL": 825, + "TEXCOORD_0": 826 + }, + "indices": 827, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 828, + "NORMAL": 829, + "TEXCOORD_0": 830 + }, + "indices": 831, + "mode": 4, + "material": 0 + } + ], + "name": "esp2_lo.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 832, + "NORMAL": 833, + "TEXCOORD_0": 834 + }, + "indices": 835, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 836, + "NORMAL": 837, + "TEXCOORD_0": 838 + }, + "indices": 839, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 840, + "NORMAL": 841, + "TEXCOORD_0": 842 + }, + "indices": 843, + "mode": 4, + "material": 13 + } + ], + "name": "s0_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 844, + "NORMAL": 845, + "TEXCOORD_0": 846 + }, + "indices": 847, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 848, + "NORMAL": 849, + "TEXCOORD_0": 850 + }, + "indices": 851, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 852, + "NORMAL": 853, + "TEXCOORD_0": 854 + }, + "indices": 855, + "mode": 4, + "material": 15 + }, + { + "attributes": { + "POSITION": 856, + "NORMAL": 857, + "TEXCOORD_0": 858 + }, + "indices": 859, + "mode": 4, + "material": 13 + }, + { + "attributes": { + "POSITION": 860, + "NORMAL": 861, + "TEXCOORD_0": 862 + }, + "indices": 863, + "mode": 4, + "material": 14 + } + ], + "name": "s0_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 864, + "NORMAL": 865, + "TEXCOORD_0": 866 + }, + "indices": 867, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 868, + "NORMAL": 869, + "TEXCOORD_0": 870 + }, + "indices": 871, + "mode": 4, + "material": 15 + }, + { + "attributes": { + "POSITION": 872, + "NORMAL": 873, + "TEXCOORD_0": 874 + }, + "indices": 875, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 876, + "NORMAL": 877, + "TEXCOORD_0": 878 + }, + "indices": 879, + "mode": 4, + "material": 7 + }, + { + "attributes": { + "POSITION": 880, + "NORMAL": 881, + "TEXCOORD_0": 882 + }, + "indices": 883, + "mode": 4, + "material": 14 + } + ], + "name": "s0_ani.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 884, + "NORMAL": 885, + "TEXCOORD_0": 886 + }, + "indices": 887, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 888, + "NORMAL": 889, + "TEXCOORD_0": 890 + }, + "indices": 891, + "mode": 4, + "material": 6 + }, + { + "attributes": { + "POSITION": 892, + "NORMAL": 893, + "TEXCOORD_0": 894 + }, + "indices": 895, + "mode": 4, + "material": 8 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 896, + "NORMAL": 897, + "TEXCOORD_0": 898 + }, + "indices": 899, + "mode": 4, + "material": 14 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 900, + "NORMAL": 901, + "TEXCOORD_0": 902 + }, + "indices": 903, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 904, + "NORMAL": 905, + "TEXCOORD_0": 906 + }, + "indices": 907, + "mode": 4, + "material": 16 + }, + { + "attributes": { + "POSITION": 908, + "NORMAL": 909, + "TEXCOORD_0": 910 + }, + "indices": 911, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 912, + "NORMAL": 913, + "TEXCOORD_0": 914 + }, + "indices": 915, + "mode": 4, + "material": 12 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 916, + "NORMAL": 917, + "TEXCOORD_0": 918 + }, + "indices": 919, + "mode": 4 + }, + { + "attributes": { + "POSITION": 920, + "NORMAL": 921, + "TEXCOORD_0": 922 + }, + "indices": 923, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 924, + "NORMAL": 925, + "TEXCOORD_0": 926 + }, + "indices": 927, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 928, + "NORMAL": 929, + "TEXCOORD_0": 930 + }, + "indices": 931, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 932, + "NORMAL": 933, + "TEXCOORD_0": 934 + }, + "indices": 935, + "mode": 4, + "material": 8 + }, + { + "attributes": { + "POSITION": 936, + "NORMAL": 937, + "TEXCOORD_0": 938 + }, + "indices": 939, + "mode": 4, + "material": 1 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 940, + "NORMAL": 941, + "TEXCOORD_0": 942 + }, + "indices": 943, + "mode": 4 + }, + { + "attributes": { + "POSITION": 944, + "NORMAL": 945, + "TEXCOORD_0": 946 + }, + "indices": 947, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 948, + "NORMAL": 949, + "TEXCOORD_0": 950 + }, + "indices": 951, + "mode": 4, + "material": 18 + }, + { + "attributes": { + "POSITION": 952, + "NORMAL": 953, + "TEXCOORD_0": 954 + }, + "indices": 955, + "mode": 4, + "material": 8 + }, + { + "attributes": { + "POSITION": 956, + "NORMAL": 957, + "TEXCOORD_0": 958 + }, + "indices": 959, + "mode": 4, + "material": 7 + }, + { + "attributes": { + "POSITION": 960, + "NORMAL": 961, + "TEXCOORD_0": 962 + }, + "indices": 963, + "mode": 4, + "material": 0 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 964, + "NORMAL": 965, + "TEXCOORD_0": 966 + }, + "indices": 967, + "mode": 4, + "material": 14 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 968, + "NORMAL": 969, + "TEXCOORD_0": 970 + }, + "indices": 971, + "mode": 4, + "material": 14 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 972, + "NORMAL": 973, + "TEXCOORD_0": 974 + }, + "indices": 975, + "mode": 4, + "material": 14 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 976, + "NORMAL": 977, + "TEXCOORD_0": 978 + }, + "indices": 979, + "mode": 4, + "material": 14 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 980, + "NORMAL": 981, + "TEXCOORD_0": 982 + }, + "indices": 983, + "mode": 4, + "material": 14 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 984, + "NORMAL": 985, + "TEXCOORD_0": 986 + }, + "indices": 987, + "mode": 4, + "material": 14 + } + ], + "name": "jem_layers_jemrms.001" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 988, + "NORMAL": 989, + "TEXCOORD_0": 990 + }, + "indices": 991, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 992, + "NORMAL": 993, + "TEXCOORD_0": 994 + }, + "indices": 995, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 996, + "NORMAL": 997, + "TEXCOORD_0": 998 + }, + "indices": 999, + "mode": 4, + "material": 16 + }, + { + "attributes": { + "POSITION": 1000, + "NORMAL": 1001, + "TEXCOORD_0": 1002 + }, + "indices": 1003, + "mode": 4, + "material": 2 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1004, + "NORMAL": 1005, + "TEXCOORD_0": 1006 + }, + "indices": 1007, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 1008, + "NORMAL": 1009, + "TEXCOORD_0": 1010 + }, + "indices": 1011, + "mode": 4, + "material": 2 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1012, + "NORMAL": 1013, + "TEXCOORD_0": 1014 + }, + "indices": 1015, + "mode": 4 + }, + { + "attributes": { + "POSITION": 1016, + "NORMAL": 1017, + "TEXCOORD_0": 1018 + }, + "indices": 1019, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 1020, + "NORMAL": 1021, + "TEXCOORD_0": 1022 + }, + "indices": 1023, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1024, + "NORMAL": 1025, + "TEXCOORD_0": 1026 + }, + "indices": 1027, + "mode": 4, + "material": 8 + }, + { + "attributes": { + "POSITION": 1028, + "NORMAL": 1029, + "TEXCOORD_0": 1030 + }, + "indices": 1031, + "mode": 4, + "material": 18 + }, + { + "attributes": { + "POSITION": 1032, + "NORMAL": 1033, + "TEXCOORD_0": 1034 + }, + "indices": 1035, + "mode": 4, + "material": 7 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1036, + "NORMAL": 1037, + "TEXCOORD_0": 1038 + }, + "indices": 1039, + "mode": 4 + }, + { + "attributes": { + "POSITION": 1040, + "NORMAL": 1041, + "TEXCOORD_0": 1042 + }, + "indices": 1043, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 1044, + "NORMAL": 1045, + "TEXCOORD_0": 1046 + }, + "indices": 1047, + "mode": 4, + "material": 8 + }, + { + "attributes": { + "POSITION": 1048, + "NORMAL": 1049, + "TEXCOORD_0": 1050 + }, + "indices": 1051, + "mode": 4, + "material": 2 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1052, + "NORMAL": 1053, + "TEXCOORD_0": 1054 + }, + "indices": 1055, + "mode": 4, + "material": 2 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1056, + "NORMAL": 1057, + "TEXCOORD_0": 1058 + }, + "indices": 1059, + "mode": 4 + }, + { + "attributes": { + "POSITION": 1060, + "NORMAL": 1061, + "TEXCOORD_0": 1062 + }, + "indices": 1063, + "mode": 4, + "material": 9 + }, + { + "attributes": { + "POSITION": 1064, + "NORMAL": 1065, + "TEXCOORD_0": 1066 + }, + "indices": 1067, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1068, + "NORMAL": 1069, + "TEXCOORD_0": 1070 + }, + "indices": 1071, + "mode": 4, + "material": 8 + }, + { + "attributes": { + "POSITION": 1072, + "NORMAL": 1073, + "TEXCOORD_0": 1074 + }, + "indices": 1075, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 1076, + "NORMAL": 1077, + "TEXCOORD_0": 1078 + }, + "indices": 1079, + "mode": 4, + "material": 18 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1080, + "NORMAL": 1081, + "TEXCOORD_0": 1082 + }, + "indices": 1083, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 1084, + "NORMAL": 1085, + "TEXCOORD_0": 1086 + }, + "indices": 1087, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1088, + "NORMAL": 1089, + "TEXCOORD_0": 1090 + }, + "indices": 1091, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 1092, + "NORMAL": 1093, + "TEXCOORD_0": 1094 + }, + "indices": 1095, + "mode": 4, + "material": 16 + } + ], + "name": "esp2_lo.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1096, + "NORMAL": 1097, + "TEXCOORD_0": 1098 + }, + "indices": 1099, + "mode": 4 + }, + { + "attributes": { + "POSITION": 1100, + "NORMAL": 1101, + "TEXCOORD_0": 1102 + }, + "indices": 1103, + "mode": 4, + "material": 0 + }, + { + "attributes": { + "POSITION": 1104, + "NORMAL": 1105, + "TEXCOORD_0": 1106 + }, + "indices": 1107, + "mode": 4, + "material": 7 + }, + { + "attributes": { + "POSITION": 1108, + "NORMAL": 1109, + "TEXCOORD_0": 1110 + }, + "indices": 1111, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1112, + "NORMAL": 1113, + "TEXCOORD_0": 1114 + }, + "indices": 1115, + "mode": 4, + "material": 18 + }, + { + "attributes": { + "POSITION": 1116, + "NORMAL": 1117, + "TEXCOORD_0": 1118 + }, + "indices": 1119, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 1120, + "NORMAL": 1121, + "TEXCOORD_0": 1122 + }, + "indices": 1123, + "mode": 4, + "material": 8 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1124, + "NORMAL": 1125, + "TEXCOORD_0": 1126 + }, + "indices": 1127, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1128, + "NORMAL": 1129, + "TEXCOORD_0": 1130 + }, + "indices": 1131, + "mode": 4, + "material": 6 + }, + { + "attributes": { + "POSITION": 1132, + "NORMAL": 1133, + "TEXCOORD_0": 1134 + }, + "indices": 1135, + "mode": 4, + "material": 8 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1136, + "NORMAL": 1137, + "TEXCOORD_0": 1138 + }, + "indices": 1139, + "mode": 4, + "material": 14 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1140, + "NORMAL": 1141, + "TEXCOORD_0": 1142 + }, + "indices": 1143, + "mode": 4, + "material": 14 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1144, + "NORMAL": 1145, + "TEXCOORD_0": 1146 + }, + "indices": 1147, + "mode": 4, + "material": 14 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1148, + "NORMAL": 1149, + "TEXCOORD_0": 1150 + }, + "indices": 1151, + "mode": 4, + "material": 14 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1152, + "NORMAL": 1153, + "TEXCOORD_0": 1154 + }, + "indices": 1155, + "mode": 4, + "material": 14 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1156, + "NORMAL": 1157, + "TEXCOORD_0": 1158 + }, + "indices": 1159, + "mode": 4, + "material": 14 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1160, + "NORMAL": 1161, + "TEXCOORD_0": 1162 + }, + "indices": 1163, + "mode": 4, + "material": 14 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1164, + "NORMAL": 1165, + "TEXCOORD_0": 1166 + }, + "indices": 1167, + "mode": 4 + } + ], + "name": "Plane.000" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1168, + "NORMAL": 1169, + "TEXCOORD_0": 1170 + }, + "indices": 1171, + "mode": 4, + "material": 14 + }, + { + "attributes": { + "POSITION": 1172, + "NORMAL": 1173, + "TEXCOORD_0": 1174 + }, + "indices": 1175, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1176, + "NORMAL": 1177, + "TEXCOORD_0": 1178 + }, + "indices": 1179, + "mode": 4, + "material": 8 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1180, + "NORMAL": 1181, + "TEXCOORD_0": 1182 + }, + "indices": 1183, + "mode": 4 + }, + { + "attributes": { + "POSITION": 1184, + "NORMAL": 1185, + "TEXCOORD_0": 1186 + }, + "indices": 1187, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 1188, + "NORMAL": 1189, + "TEXCOORD_0": 1190 + }, + "indices": 1191, + "mode": 4, + "material": 8 + }, + { + "attributes": { + "POSITION": 1192, + "NORMAL": 1193, + "TEXCOORD_0": 1194 + }, + "indices": 1195, + "mode": 4, + "material": 2 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1196, + "NORMAL": 1197, + "TEXCOORD_0": 1198 + }, + "indices": 1199, + "mode": 4 + }, + { + "attributes": { + "POSITION": 1200, + "NORMAL": 1201, + "TEXCOORD_0": 1202 + }, + "indices": 1203, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1204, + "NORMAL": 1205, + "TEXCOORD_0": 1206 + }, + "indices": 1207, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 1208, + "NORMAL": 1209, + "TEXCOORD_0": 1210 + }, + "indices": 1211, + "mode": 4, + "material": 8 + }, + { + "attributes": { + "POSITION": 1212, + "NORMAL": 1213, + "TEXCOORD_0": 1214 + }, + "indices": 1215, + "mode": 4, + "material": 1 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1216, + "NORMAL": 1217, + "TEXCOORD_0": 1218 + }, + "indices": 1219, + "mode": 4 + }, + { + "attributes": { + "POSITION": 1220, + "NORMAL": 1221, + "TEXCOORD_0": 1222 + }, + "indices": 1223, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1224, + "NORMAL": 1225, + "TEXCOORD_0": 1226 + }, + "indices": 1227, + "mode": 4, + "material": 10 + }, + { + "attributes": { + "POSITION": 1228, + "NORMAL": 1229, + "TEXCOORD_0": 1230 + }, + "indices": 1231, + "mode": 4, + "material": 8 + } + ], + "name": "Cylinder.022" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1232, + "NORMAL": 1233, + "TEXCOORD_0": 1234 + }, + "indices": 1235, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 1236, + "NORMAL": 1237, + "TEXCOORD_0": 1238 + }, + "indices": 1239, + "mode": 4, + "material": 4 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1240, + "NORMAL": 1241, + "TEXCOORD_0": 1242 + }, + "indices": 1243, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1244, + "NORMAL": 1245, + "TEXCOORD_0": 1246 + }, + "indices": 1247, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 1248, + "NORMAL": 1249, + "TEXCOORD_0": 1250 + }, + "indices": 1251, + "mode": 4, + "material": 4 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1252, + "NORMAL": 1253, + "TEXCOORD_0": 1254 + }, + "indices": 1255, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1256, + "NORMAL": 1257, + "TEXCOORD_0": 1258 + }, + "indices": 1259, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1260, + "NORMAL": 1261, + "TEXCOORD_0": 1262 + }, + "indices": 1263, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 1264, + "NORMAL": 1265, + "TEXCOORD_0": 1266 + }, + "indices": 1267, + "mode": 4, + "material": 4 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1268, + "NORMAL": 1269, + "TEXCOORD_0": 1270 + }, + "indices": 1271, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1272, + "NORMAL": 1273, + "TEXCOORD_0": 1274 + }, + "indices": 1275, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 1276, + "NORMAL": 1277, + "TEXCOORD_0": 1278 + }, + "indices": 1279, + "mode": 4, + "material": 4 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1280, + "NORMAL": 1281, + "TEXCOORD_0": 1282 + }, + "indices": 1283, + "mode": 4, + "material": 3 + }, + { + "attributes": { + "POSITION": 1284, + "NORMAL": 1285, + "TEXCOORD_0": 1286 + }, + "indices": 1287, + "mode": 4, + "material": 4 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1288, + "NORMAL": 1289, + "TEXCOORD_0": 1290 + }, + "indices": 1291, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1292, + "NORMAL": 1293, + "TEXCOORD_0": 1294 + }, + "indices": 1295, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 1296, + "NORMAL": 1297, + "TEXCOORD_0": 1298 + }, + "indices": 1299, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1300, + "NORMAL": 1301, + "TEXCOORD_0": 1302 + }, + "indices": 1303, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1304, + "NORMAL": 1305, + "TEXCOORD_0": 1306 + }, + "indices": 1307, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1308, + "NORMAL": 1309, + "TEXCOORD_0": 1310 + }, + "indices": 1311, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 1312, + "NORMAL": 1313, + "TEXCOORD_0": 1314 + }, + "indices": 1315, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1316, + "NORMAL": 1317, + "TEXCOORD_0": 1318 + }, + "indices": 1319, + "mode": 4, + "material": 4 + }, + { + "attributes": { + "POSITION": 1320, + "NORMAL": 1321, + "TEXCOORD_0": 1322 + }, + "indices": 1323, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1324, + "NORMAL": 1325, + "TEXCOORD_0": 1326 + }, + "indices": 1327, + "mode": 4, + "material": 3 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1328, + "NORMAL": 1329, + "TEXCOORD_0": 1330 + }, + "indices": 1331, + "mode": 4, + "material": 19 + }, + { + "attributes": { + "POSITION": 1332, + "NORMAL": 1333, + "TEXCOORD_0": 1334 + }, + "indices": 1335, + "mode": 4, + "material": 20 + }, + { + "attributes": { + "POSITION": 1336, + "NORMAL": 1337, + "TEXCOORD_0": 1338 + }, + "indices": 1339, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1340, + "NORMAL": 1341, + "TEXCOORD_0": 1342 + }, + "indices": 1343, + "mode": 4, + "material": 21 + } + ], + "name": "Cube.008" + }, + { + "primitives": [ + { + "attributes": { + "POSITION": 1344, + "NORMAL": 1345, + "TEXCOORD_0": 1346 + }, + "indices": 1347, + "mode": 4, + "material": 22 + }, + { + "attributes": { + "POSITION": 1348, + "NORMAL": 1349, + "TEXCOORD_0": 1350 + }, + "indices": 1351, + "mode": 4, + "material": 23 + }, + { + "attributes": { + "POSITION": 1352, + "NORMAL": 1353, + "TEXCOORD_0": 1354 + }, + "indices": 1355, + "mode": 4, + "material": 24 + }, + { + "attributes": { + "POSITION": 1356, + "NORMAL": 1357, + "TEXCOORD_0": 1358 + }, + "indices": 1359, + "mode": 4, + "material": 25 + }, + { + "attributes": { + "POSITION": 1360, + "NORMAL": 1361, + "TEXCOORD_0": 1362 + }, + "indices": 1363, + "mode": 4, + "material": 26 + }, + { + "attributes": { + "POSITION": 1364, + "NORMAL": 1365, + "TEXCOORD_0": 1366 + }, + "indices": 1367, + "mode": 4, + "material": 2 + }, + { + "attributes": { + "POSITION": 1368, + "NORMAL": 1369, + "TEXCOORD_0": 1370 + }, + "indices": 1371, + "mode": 4, + "material": 27 + } + ], + "name": "Cylinder.022" + } + ], + "nodes": [ + { + "mesh": 0, + "translation": [ + 0.0, + -1.1592891216278076, + -1.1572151184082031 + ], + "name": "13 Pirs Docking Compartment (DC) and Airlock" + }, + { + "mesh": 1, + "translation": [ + 0.0, + 1.1572730541229248, + -1.1572151184082031 + ], + "name": "34 Poisk (MRM-2) Mini Research Module" + }, + { + "mesh": 2, + "translation": [ + 2.2268455028533936, + -0.03297996520996094, + -5.256612777709961 + ], + "name": "panel_01_p.001" + }, + { + "mesh": 3, + "translation": [ + -2.2268478870391846, + -0.032979369163513184, + -5.260248184204102 + ], + "name": "panel_01_s.001" + }, + { + "mesh": 4, + "translation": [ + 3.511186361312866, + -0.030797719955444336, + -5.258426666259766 + ], + "name": "panel_02_p.001" + }, + { + "mesh": 5, + "translation": [ + -3.511187791824341, + -0.03079777956008911, + -5.258460998535156 + ], + "name": "panel_02_s.001" + }, + { + "mesh": 6, + "translation": [ + 5.032292366027832, + -0.030797302722930908, + -5.2584075927734375 + ], + "name": "panel_03_p.001" + }, + { + "mesh": 7, + "translation": [ + -5.032299995422363, + -0.03079855442047119, + -5.258464813232422 + ], + "name": "panel_03_s.001" + }, + { + "mesh": 8, + "translation": [ + 6.556129455566406, + -0.03079843521118164, + -5.258411407470703 + ], + "name": "panel_04_p.001" + }, + { + "mesh": 9, + "translation": [ + -6.556135177612305, + -0.030797719955444336, + -5.258459091186523 + ], + "name": "panel_04_s.001" + }, + { + "mesh": 10, + "translation": [ + 8.065857887268066, + -0.03079855442047119, + -5.258411407470703 + ], + "name": "panel_05_p" + }, + { + "mesh": 11, + "translation": [ + -8.065860748291016, + -0.030798137187957764, + -5.258460998535156 + ], + "name": "panel_05_s" + }, + { + "mesh": 12, + "translation": [ + 9.5845308303833, + -0.03079843521118164, + -5.258415222167969 + ], + "name": "panel_06_p" + }, + { + "mesh": 13, + "translation": [ + -9.584529876708984, + -0.030797600746154785, + -5.258460998535156 + ], + "name": "panel_06_s" + }, + { + "mesh": 14, + "translation": [ + 11.161602020263672, + -0.030798375606536865, + -5.258411407470703 + ], + "name": "panel_07_p" + }, + { + "mesh": 15, + "translation": [ + -11.161614418029785, + -0.030798256397247314, + -5.258460998535156 + ], + "name": "panel_07_s" + }, + { + "mesh": 16, + "translation": [ + 12.74255657196045, + -0.030798912048339844, + -5.258417129516602 + ], + "name": "panel_08_p" + }, + { + "mesh": 17, + "translation": [ + -12.742561340332031, + -0.030798792839050293, + -5.258464813232422 + ], + "name": "panel_08_s" + }, + { + "mesh": 18, + "translation": [ + 14.327574729919434, + -0.030799150466918945, + -5.258419036865234 + ], + "name": "panel_09_p" + }, + { + "mesh": 19, + "translation": [ + -14.327585220336914, + -0.030799567699432373, + -5.258460998535156 + ], + "name": "panel_09_s" + }, + { + "mesh": 20, + "translation": [ + 1.8957099914550781, + -0.03297954797744751, + -5.258443832397461 + ], + "name": "panel_bracket_p" + }, + { + "mesh": 21, + "translation": [ + -1.8957123756408691, + -0.03298008441925049, + -5.258428573608398 + ], + "name": "panel_bracket_s" + }, + { + "mesh": 22, + "translation": [ + 0.0, + 0.0, + -12.96490478515625 + ], + "children": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "name": "05 Zvezda (SM) Service Module" + }, + { + "mesh": 23, + "translation": [ + 0.0, + -4.587140083312988, + -1.1539325714111328 + ], + "name": "39 Rassvet (MRM-1) Mini Research Module" + }, + { + "mesh": 24, + "translation": [ + 0.0, + 0.7347772121429443, + -2.4574851989746094 + ], + "children": [ + 22, + 23 + ], + "name": "01 Zarya - (FGB) Funtional Cargo Block" + }, + { + "mesh": 25, + "translation": [ + 0.0, + 0.0, + -3.383446216583252 + ], + "children": [ + 24 + ], + "name": "03 (PMA) Pressurized Mating Adapter 1" + }, + { + "mesh": 26, + "translation": [ + 0.0, + 1.7591571807861328, + 0.0 + ], + "name": "06 Z1 Truss" + }, + { + "mesh": 27, + "translation": [ + 2.7293941974639893, + -0.4769992232322693, + 2.0075061321258545 + ], + "name": "10 (ESP) External Stowage Platform 1" + }, + { + "mesh": 28, + "translation": [ + 0.0, + 0.9628709554672241, + 0.0 + ], + "name": "29 DEXTRE.003" + }, + { + "mesh": 29, + "translation": [ + -2.86102294921875e-06, + 1.9619172811508179, + 0.005982398986816406 + ], + "children": [ + 28 + ], + "name": "29 DEXTRE.002" + }, + { + "mesh": 30, + "translation": [ + 0.2817831039428711, + -0.12000861763954163, + -0.11182880401611328 + ], + "name": "29 DEXTRE.009" + }, + { + "mesh": 31, + "translation": [ + 1.0873441696166992, + -0.012577124871313572, + -0.3271036148071289 + ], + "children": [ + 30 + ], + "name": "29 DEXTRE.008" + }, + { + "mesh": 32, + "translation": [ + 1.0873422622680664, + 0.01257037278264761, + 0.06147575378417969 + ], + "children": [ + 31 + ], + "name": "29 DEXTRE.007" + }, + { + "mesh": 33, + "translation": [ + 0.3036661148071289, + -0.1133202314376831, + 0.14278030395507812 + ], + "children": [ + 32 + ], + "name": "29 DEXTRE.006" + }, + { + "mesh": 34, + "translation": [ + 0.3749122619628906, + -0.10307198762893677, + 0.26867103576660156 + ], + "children": [ + 33 + ], + "name": "29 DEXTRE.005" + }, + { + "mesh": 35, + "translation": [ + 1.3798151016235352, + 1.4250690937042236, + 0.000118255615234375 + ], + "children": [ + 34 + ], + "name": "29 DEXTRE.004" + }, + { + "mesh": 36, + "translation": [ + -0.28177452087402344, + -0.12002591788768768, + -0.1118326187133789 + ], + "name": "29 DEXTRE.015" + }, + { + "mesh": 37, + "translation": [ + -1.0873394012451172, + -0.012581146322190762, + -0.3271017074584961 + ], + "children": [ + 36 + ], + "name": "29 DEXTRE.014" + }, + { + "mesh": 38, + "translation": [ + -1.0873441696166992, + 0.012576712295413017, + 0.06147193908691406 + ], + "children": [ + 37 + ], + "name": "29 DEXTRE.013" + }, + { + "mesh": 39, + "translation": [ + -0.30365657806396484, + -0.11331981420516968, + 0.14278030395507812 + ], + "children": [ + 38 + ], + "name": "29 DEXTRE.012" + }, + { + "mesh": 40, + "translation": [ + -0.3749227523803711, + -0.10307163000106812, + 0.2686729431152344 + ], + "children": [ + 39 + ], + "name": "29 DEXTRE.011" + }, + { + "mesh": 41, + "translation": [ + -1.379817008972168, + 1.4250693321228027, + 0.000118255615234375 + ], + "children": [ + 40 + ], + "name": "29 DEXTRE.010" + }, + { + "mesh": 42, + "translation": [ + 3.814697265625e-06, + 0.2201504111289978, + -5.7220458984375e-06 + ], + "children": [ + 29, + 35, + 41 + ], + "name": "29 DEXTRE.001" + }, + { + "mesh": 43, + "translation": [ + 2.86102294921875e-06, + 1.2033443450927734, + -2.86102294921875e-06 + ], + "children": [ + 42 + ], + "name": "29 DEXTRE" + }, + { + "mesh": 44, + "translation": [ + -0.3134126663208008, + 0.28758716583251953, + 0.0021991729736328125 + ], + "children": [ + 43 + ], + "name": "11 Canadarm2_08" + }, + { + "mesh": 45, + "translation": [ + -0.2875833511352539, + 0.0021915435791015625, + 0.3134040832519531 + ], + "children": [ + 44 + ], + "name": "11 Canadarm2_07" + }, + { + "mesh": 46, + "translation": [ + 0.00439453125, + 7.343531608581543, + 0.5751743316650391 + ], + "children": [ + 45 + ], + "name": "11 Canadarm2_06" + }, + { + "mesh": 47, + "translation": [ + -7.343533992767334, + 0.004391670227050781, + 0.5751743316650391 + ], + "children": [ + 46 + ], + "name": "11 Canadarm2_05" + }, + { + "mesh": 48, + "translation": [ + 0.13386774063110352, + 0.2536287307739258, + 0.3141469955444336 + ], + "children": [ + 47 + ], + "name": "11 Canadarm2_04" + }, + { + "mesh": 49, + "translation": [ + -0.005874156951904297, + 0.35800886154174805, + 0.22963428497314453 + ], + "children": [ + 48 + ], + "name": "11 Canadarm2_03" + }, + { + "mesh": 50, + "translation": [ + -0.6692724227905273, + 0.35560035705566406, + 0.9799356460571289 + ], + "children": [ + 49 + ], + "name": "11 Canadarm2_02" + }, + { + "mesh": 51, + "translation": [ + -1.4347257614135742, + 1.5900864601135254, + 0.19847488403320312 + ], + "children": [ + 50 + ], + "name": "11 Canadarm2" + }, + { + "mesh": 52, + "translation": [ + -2.8654637336730957, + -0.5954747200012207, + 5.170042037963867 + ], + "children": [ + 51 + ], + "name": "15 (MBS) Mobile Base System" + }, + { + "mesh": 53, + "translation": [ + -1.4409217834472656, + -0.008466243743896484, + -0.9399242401123047 + ], + "name": "16 S1 Truss_02" + }, + { + "mesh": 54, + "translation": [ + 0.4872550964355469, + 0.684659481048584, + 0.665064811706543 + ], + "name": "23 S4 Truss_01" + }, + { + "mesh": 55, + "translation": [ + 0.48725128173828125, + -0.6807417869567871, + -2.3907663822174072 + ], + "name": "23 S4 Truss_02" + }, + { + "mesh": 56, + "translation": [ + -13.4920654296875, + 0.6834015846252441, + 1.5216755867004395 + ], + "name": "32 S6 Truss_01" + }, + { + "mesh": 57, + "translation": [ + -13.4920654296875, + -0.6819992065429688, + -1.534155249595642 + ], + "name": "32 S6 Truss_02" + }, + { + "mesh": 58, + "translation": [ + -1.444671630859375, + 0.0, + -0.8486597537994385 + ], + "children": [ + 56, + 57 + ], + "name": "32 S6 Truss" + }, + { + "mesh": 59, + "translation": [ + -8.139101028442383, + -0.008704185485839844, + 1.233587384223938 + ], + "children": [ + 54, + 55, + 58 + ], + "name": "24 S5 Truss" + }, + { + "mesh": 60, + "rotation": [ + 0.5, + 0.0, + 0.0, + 0.8660253882408142 + ], + "translation": [ + -3.0228023529052734, + -0.026546001434326172, + -0.013129234313964844 + ], + "children": [ + 59 + ], + "name": "23 S4 Truss" + }, + { + "mesh": 61, + "translation": [ + -1.3125343322753906, + -2.2455577850341797, + -0.002643108367919922 + ], + "name": "25 (ESP) External Stowage Platform 3" + }, + { + "mesh": 62, + "translation": [ + -1.8449382781982422, + 5.057358741760254, + -0.0026426315307617188 + ], + "name": "36 Express Logistics Carrier (ELC) 2" + }, + { + "mesh": 63, + "translation": [ + 2.2081680297851562, + -5.074125289916992, + -0.0026426315307617188 + ], + "name": "41 Express Logistics Carrier (ELC) 4" + }, + { + "mesh": 64, + "translation": [ + 2.108724594116211, + 3.7169876098632812, + -0.23629045486450195 + ], + "name": "42 Alpha Magnetic Spectrometer (AMS 2)" + }, + { + "mesh": 65, + "translation": [ + -10.048283576965332, + 0.005095005035400391, + -0.8223977088928223 + ], + "children": [ + 60, + 61, + 62, + 63, + 64 + ], + "name": "22 S3 Truss" + }, + { + "mesh": 66, + "translation": [ + 2.681035041809082, + 1.9084324836730957, + 0.12505054473876953 + ], + "name": "44 Enhanced ISS Boom Assembly (EIBA)" + }, + { + "mesh": 67, + "translation": [ + -13.807953834533691, + 7.343292236328125e-05, + 2.437396287918091 + ], + "children": [ + 53, + 65, + 66 + ], + "name": "16 S1 Truss" + }, + { + "mesh": 68, + "translation": [ + 8.427068710327148, + -2.2308449745178223, + -0.006976604461669922 + ], + "name": "17 P1 Truss_02" + }, + { + "mesh": 69, + "translation": [ + 13.4920654296875, + -0.6819992065429688, + 1.5341558456420898 + ], + "name": "08 P6 Truss_01" + }, + { + "mesh": 70, + "translation": [ + 13.4920654296875, + 0.6834018230438232, + -1.521674633026123 + ], + "name": "08 P6 Truss_02" + }, + { + "mesh": 71, + "translation": [ + 1.444671630859375, + 0.0, + 0.8486604690551758 + ], + "children": [ + 69, + 70 + ], + "name": "08 P6 Truss" + }, + { + "mesh": 72, + "translation": [ + -0.48725128173828125, + -0.6807413101196289, + 2.390768051147461 + ], + "name": "20 P4 Truss_01" + }, + { + "mesh": 73, + "translation": [ + -0.4872550964355469, + 0.6846601963043213, + -0.6650636196136475 + ], + "name": "20 P4 Truss_02" + }, + { + "mesh": 74, + "translation": [ + 8.139101028442383, + -0.008704662322998047, + -1.2335855960845947 + ], + "children": [ + 71, + 72, + 73 + ], + "name": "21 P5 Truss" + }, + { + "mesh": 75, + "rotation": [ + 0.5, + 0.0, + 0.0, + 0.8660253882408142 + ], + "translation": [ + 3.015575408935547, + 0.00977945327758789, + -0.03410148620605469 + ], + "children": [ + 74 + ], + "name": "20 P4 Truss" + }, + { + "mesh": 76, + "translation": [ + 1.0566329956054688, + -5.07412576675415, + -0.04458761215209961 + ], + "name": "35 Express Logistics Carrier (ELC) 1" + }, + { + "mesh": 77, + "translation": [ + 1.8426589965820312, + 5.05735969543457, + -0.07235908508300781 + ], + "name": "43 Express Logistics Carrier (ELC) 3" + }, + { + "mesh": 78, + "translation": [ + 17.04163932800293, + -2.2320775985717773, + 0.1105046272277832 + ], + "children": [ + 75, + 76, + 77 + ], + "name": "19 P3 Truss" + }, + { + "mesh": 79, + "translation": [ + 6.821824550628662, + 2.237246036529541, + 1.5044939517974854 + ], + "children": [ + 68, + 78 + ], + "name": "17 P1 Truss" + }, + { + "mesh": 80, + "translation": [ + 0.0, + 5.007069110870361, + 0.9665088653564453 + ], + "children": [ + 52, + 67, + 79 + ], + "name": "14 S0 Truss" + }, + { + "mesh": 81, + "translation": [ + 0.0, + 0.0, + 6.9683942794799805 + ], + "name": "04 (PMA) Pressurized Mating Adapter 2" + }, + { + "mesh": 82, + "translation": [ + -0.7308864593505859, + -0.825916051864624, + -0.2191934585571289 + ], + "name": "RapidScat_dish" + }, + { + "mesh": 83, + "translation": [ + -5.9006781578063965, + -1.333634853363037, + -4.00543212890625e-05 + ], + "children": [ + 82 + ], + "name": "45 RapidScat" + }, + { + "mesh": 84, + "translation": [ + -4.171816349029541, + -0.00037405837792903185, + 4.829537391662598 + ], + "children": [ + 83 + ], + "name": "27 Columbus Space Laboratory" + }, + { + "mesh": 85, + "translation": [ + 2.8221921920776367, + 4.037471771240234, + -0.00196075439453125 + ], + "name": "28 Kibo Space Laboratory (PSM) Pressurized Stowage Module" + }, + { + "mesh": 86, + "translation": [ + 0.4432506561279297, + 0.5154014825820923, + 0.0115966796875 + ], + "name": "31 Robotic Arm.005" + }, + { + "mesh": 87, + "translation": [ + 4.074375152587891, + 0.0, + -0.5201320648193359 + ], + "children": [ + 86 + ], + "name": "31 Robotic Arm.004" + }, + { + "mesh": 88, + "translation": [ + 4.066445350646973, + 0.0, + -0.5366363525390625 + ], + "children": [ + 87 + ], + "name": "31 Robotic Arm.003" + }, + { + "mesh": 89, + "translation": [ + -2.86102294921875e-05, + 0.408471941947937, + 0.5291614532470703 + ], + "children": [ + 88 + ], + "name": "31 Robotic Arm.002" + }, + { + "mesh": 90, + "translation": [ + 0.7565526962280273, + 0.296101450920105, + -0.3266735076904297 + ], + "children": [ + 89 + ], + "name": "31 Robotic Arm.001" + }, + { + "mesh": 91, + "translation": [ + 5.138226509094238, + 0.8761776685714722, + 1.681009292602539 + ], + "children": [ + 90 + ], + "name": "31 Robotic Arm" + }, + { + "mesh": 92, + "translation": [ + 6.054102897644043, + -1.5613043308258057, + -0.08771324157714844 + ], + "name": "33 Kibo Space Laboratory Exposed Platform" + }, + { + "mesh": 93, + "translation": [ + 10.493035316467285, + -1.9457266330718994, + -1.0767478942871094 + ], + "name": "CATS" + }, + { + "mesh": 94, + "translation": [ + 7.4809160232543945, + -0.0003714760532602668, + 4.8295392990112305 + ], + "children": [ + 85, + 91, + 92, + 93 + ], + "name": "30 Kibo Space Laboratory (PSM) Pressurized Module" + }, + { + "mesh": 95, + "translation": [ + 0.0, + 0.0, + 9.163952827453613 + ], + "children": [ + 81, + 84, + 94 + ], + "name": "26 Harmony Node 2" + }, + { + "mesh": 96, + "translation": [ + -0.0002164071484003216, + -2.3226864337921143, + 4.7813520431518555 + ], + "name": "Destiny_Window_Cover" + }, + { + "mesh": 97, + "translation": [ + 0.0, + 0.0, + 2.221036672592163 + ], + "children": [ + 27, + 80, + 95, + 96 + ], + "name": "09 Destiny Space Laboratory" + }, + { + "mesh": 98, + "translation": [ + 0.6420657634735107, + -0.004020065069198608, + 2.4274230003356934 + ], + "name": "18 ESP External Stowage Platform 2" + }, + { + "mesh": 99, + "translation": [ + -3.694542407989502, + -0.3670746386051178, + 0.0 + ], + "children": [ + 98 + ], + "name": "12 Quest Airlock" + }, + { + "mesh": 100, + "translation": [ + 6.96800422668457, + 0.0003853662055917084, + -3.138020110782236e-05 + ], + "name": "07 (PMA) Pressurized Mating Adapter 3" + }, + { + "mesh": 101, + "translation": [ + 1.1999731063842773, + -0.35773420333862305, + -0.011770776472985744 + ], + "name": "38 Cupola.001" + }, + { + "mesh": 102, + "translation": [ + 0.5849776268005371, + -0.35808658599853516, + 1.0481117963790894 + ], + "name": "38 Cupola.002" + }, + { + "mesh": 103, + "translation": [ + -0.5746965408325195, + -0.357804536819458, + 1.053856611251831 + ], + "name": "38 Cupola.003" + }, + { + "mesh": 104, + "translation": [ + -1.1999759674072266, + -0.3576509952545166, + 5.9694284573197365e-06 + ], + "name": "38 Cupola.004" + }, + { + "mesh": 105, + "translation": [ + -0.584963321685791, + -0.35793352127075195, + -1.0480766296386719 + ], + "name": "38 Cupola.005" + }, + { + "mesh": 106, + "translation": [ + 0.6151776313781738, + -0.35793304443359375, + -1.030627965927124 + ], + "name": "38 Cupola.006" + }, + { + "mesh": 107, + "translation": [ + -0.6179409027099609, + -1.048612356185913, + 0.3027343451976776 + ], + "name": "38 Cupola.007" + }, + { + "mesh": 108, + "translation": [ + 0.0, + -0.022963762283325195, + 0.0 + ], + "name": "ISS" + }, + { + "mesh": 109, + "translation": [ + 4.827582359313965, + -2.6224985122680664, + 0.00031515699811279774 + ], + "children": [ + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108 + ], + "name": "38 Cupola" + }, + { + "mesh": 110, + "translation": [ + 2.2340621948242188, + -0.0003854444657918066, + 3.130195545963943e-05 + ], + "children": [ + 100, + 109 + ], + "name": "37 Tranquility Node 3" + }, + { + "mesh": 111, + "translation": [ + -0.0003153672150801867, + -2.19143009185791, + 0.0 + ], + "name": "40 Leonardo_Raffaello Perm Multi-Purpose Logistics Module (PMM)" + }, + { + "mesh": 112, + "children": [ + 25, + 26, + 97, + 99, + 110, + 111 + ], + "name": "02 Unity Node 1" + }, + { + "children": [ + 112 + ], + "name": "_root" + }, + { + "mesh": 113, + "translation": [ + 1.6868329048156738, + 0.8455504179000854, + -11.087027549743652 + ], + "name": "panel_01_p" + }, + { + "mesh": 114, + "translation": [ + 2.1726858615875244, + 0.7966456413269043, + -12.507697105407715 + ], + "name": "hinge_02_p" + }, + { + "mesh": 115, + "translation": [ + 2.936974287033081, + 0.7966464161872864, + -9.629722595214844 + ], + "name": "panel_03_p" + }, + { + "mesh": 116, + "translation": [ + 3.9095354080200195, + 0.796630322933197, + -12.498241424560547 + ], + "name": "hinge_04_p" + }, + { + "mesh": 117, + "translation": [ + 1.6868339776992798, + 0.7966382503509521, + -11.087027549743652 + ], + "name": "hinge_01_p" + }, + { + "mesh": 118, + "translation": [ + 2.1674811840057373, + 0.7966394424438477, + -9.663689613342285 + ], + "name": "panel_02_p" + }, + { + "mesh": 119, + "translation": [ + 2.928344964981079, + 0.7966530919075012, + -12.542342185974121 + ], + "name": "hinge_03_p" + }, + { + "mesh": 120, + "translation": [ + 3.9056365489959717, + 0.7966513633728027, + -9.675799369812012 + ], + "name": "panel_04_p" + }, + { + "mesh": 121, + "translation": [ + -1.6868364810943604, + 0.8455506563186646, + -11.087028503417969 + ], + "name": "panel_01_s" + }, + { + "mesh": 122, + "translation": [ + -2.172689437866211, + 0.7966460585594177, + -12.50769329071045 + ], + "name": "hinge_02_s" + }, + { + "mesh": 123, + "translation": [ + -2.9369735717773438, + 0.7966523170471191, + -9.629716873168945 + ], + "name": "panel_03_s" + }, + { + "mesh": 124, + "translation": [ + -3.9095394611358643, + 0.7966457605361938, + -12.49824333190918 + ], + "name": "hinge_04_s" + }, + { + "mesh": 125, + "translation": [ + -2.9283483028411865, + 0.7966433167457581, + -12.542339324951172 + ], + "name": "hinge_03_s" + }, + { + "mesh": 126, + "translation": [ + -3.90563702583313, + 0.7966335415840149, + -9.675795555114746 + ], + "name": "panel_04_s" + }, + { + "mesh": 127, + "translation": [ + -2.167482852935791, + 0.7966402173042297, + -9.663683891296387 + ], + "name": "panel_02_s" + }, + { + "mesh": 128, + "translation": [ + -1.6868358850479126, + 0.7966383695602417, + -11.087026596069336 + ], + "name": "hinge_01_s" + }, + { + "mesh": 129, + "translation": [ + 15.532164573669434, + -2.12306547164917, + 19.89712905883789 + ], + "name": "OCO3" + }, + { + "mesh": 130, + "translation": [ + 18.913917541503906, + -1.957144856452942, + 16.106842041015625 + ], + "name": "ECOStress" + } + ], + "scene": 0, + "scenes": [ + { + "name": "Scene", + "nodes": [ + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131 + ] + } + ], + "textures": [ + { + "source": 0 + }, + { + "source": 1 + }, + { + "source": 2 + }, + { + "source": 3 + }, + { + "source": 4 + }, + { + "source": 5 + }, + { + "source": 6 + }, + { + "source": 7 + }, + { + "source": 8 + }, + { + "source": 9 + }, + { + "source": 10 + }, + { + "source": 11 + }, + { + "source": 12 + }, + { + "source": 13 + }, + { + "source": 14 + }, + { + "source": 15 + }, + { + "source": 16 + }, + { + "source": 17 + }, + { + "source": 18 + }, + { + "source": 19 + }, + { + "source": 20 + }, + { + "source": 21 + }, + { + "source": 22 + }, + { + "source": 23 + }, + { + "source": 24 + }, + { + "source": 25 + } + ] +} \ No newline at end of file diff --git a/public/images/3DModels/iss-web/image_00.jpg b/public/images/3DModels/iss-web/image_00.jpg new file mode 100644 index 0000000..131303d Binary files /dev/null and b/public/images/3DModels/iss-web/image_00.jpg differ diff --git a/public/images/3DModels/iss-web/image_01.jpg b/public/images/3DModels/iss-web/image_01.jpg new file mode 100644 index 0000000..55989ec Binary files /dev/null and b/public/images/3DModels/iss-web/image_01.jpg differ diff --git a/public/images/3DModels/iss-web/image_02.jpg b/public/images/3DModels/iss-web/image_02.jpg new file mode 100644 index 0000000..11ae383 Binary files /dev/null and b/public/images/3DModels/iss-web/image_02.jpg differ diff --git a/public/images/3DModels/iss-web/image_03.jpg b/public/images/3DModels/iss-web/image_03.jpg new file mode 100644 index 0000000..96cfe88 Binary files /dev/null and b/public/images/3DModels/iss-web/image_03.jpg differ diff --git a/public/images/3DModels/iss-web/image_04.jpg b/public/images/3DModels/iss-web/image_04.jpg new file mode 100644 index 0000000..96cfe88 Binary files /dev/null and b/public/images/3DModels/iss-web/image_04.jpg differ diff --git a/public/images/3DModels/iss-web/image_05.jpg b/public/images/3DModels/iss-web/image_05.jpg new file mode 100644 index 0000000..e940d41 Binary files /dev/null and b/public/images/3DModels/iss-web/image_05.jpg differ diff --git a/public/images/3DModels/iss-web/image_06.jpg b/public/images/3DModels/iss-web/image_06.jpg new file mode 100644 index 0000000..dee19bc Binary files /dev/null and b/public/images/3DModels/iss-web/image_06.jpg differ diff --git a/public/images/3DModels/iss-web/image_07.jpg b/public/images/3DModels/iss-web/image_07.jpg new file mode 100644 index 0000000..37c2054 Binary files /dev/null and b/public/images/3DModels/iss-web/image_07.jpg differ diff --git a/public/images/3DModels/iss-web/image_08.jpg b/public/images/3DModels/iss-web/image_08.jpg new file mode 100644 index 0000000..710b50d Binary files /dev/null and b/public/images/3DModels/iss-web/image_08.jpg differ diff --git a/public/images/3DModels/iss-web/image_09.jpg b/public/images/3DModels/iss-web/image_09.jpg new file mode 100644 index 0000000..c21883b Binary files /dev/null and b/public/images/3DModels/iss-web/image_09.jpg differ diff --git a/public/images/3DModels/iss-web/image_10.jpg b/public/images/3DModels/iss-web/image_10.jpg new file mode 100644 index 0000000..11ae383 Binary files /dev/null and b/public/images/3DModels/iss-web/image_10.jpg differ diff --git a/public/images/3DModels/iss-web/image_11.jpg b/public/images/3DModels/iss-web/image_11.jpg new file mode 100644 index 0000000..11ae383 Binary files /dev/null and b/public/images/3DModels/iss-web/image_11.jpg differ diff --git a/public/images/3DModels/iss-web/image_12.jpg b/public/images/3DModels/iss-web/image_12.jpg new file mode 100644 index 0000000..b205dee Binary files /dev/null and b/public/images/3DModels/iss-web/image_12.jpg differ diff --git a/public/images/3DModels/iss-web/image_13.jpg b/public/images/3DModels/iss-web/image_13.jpg new file mode 100644 index 0000000..64401d2 Binary files /dev/null and b/public/images/3DModels/iss-web/image_13.jpg differ diff --git a/public/images/3DModels/iss-web/image_14.jpg b/public/images/3DModels/iss-web/image_14.jpg new file mode 100644 index 0000000..8532dfd Binary files /dev/null and b/public/images/3DModels/iss-web/image_14.jpg differ diff --git a/public/images/3DModels/iss-web/image_15.jpg b/public/images/3DModels/iss-web/image_15.jpg new file mode 100644 index 0000000..96cfe88 Binary files /dev/null and b/public/images/3DModels/iss-web/image_15.jpg differ diff --git a/public/images/3DModels/iss-web/image_16.jpg b/public/images/3DModels/iss-web/image_16.jpg new file mode 100644 index 0000000..6a60ffe Binary files /dev/null and b/public/images/3DModels/iss-web/image_16.jpg differ diff --git a/public/images/3DModels/iss-web/image_17.jpg b/public/images/3DModels/iss-web/image_17.jpg new file mode 100644 index 0000000..9608338 Binary files /dev/null and b/public/images/3DModels/iss-web/image_17.jpg differ diff --git a/public/images/3DModels/iss-web/image_18.jpg b/public/images/3DModels/iss-web/image_18.jpg new file mode 100644 index 0000000..cf9addc Binary files /dev/null and b/public/images/3DModels/iss-web/image_18.jpg differ diff --git a/public/images/3DModels/iss-web/image_19.jpg b/public/images/3DModels/iss-web/image_19.jpg new file mode 100644 index 0000000..131303d Binary files /dev/null and b/public/images/3DModels/iss-web/image_19.jpg differ diff --git a/public/images/3DModels/iss-web/image_20.jpg b/public/images/3DModels/iss-web/image_20.jpg new file mode 100644 index 0000000..0402128 Binary files /dev/null and b/public/images/3DModels/iss-web/image_20.jpg differ diff --git a/public/images/3DModels/iss-web/image_21.jpg b/public/images/3DModels/iss-web/image_21.jpg new file mode 100644 index 0000000..39515db Binary files /dev/null and b/public/images/3DModels/iss-web/image_21.jpg differ diff --git a/public/images/3DModels/iss-web/image_22.jpg b/public/images/3DModels/iss-web/image_22.jpg new file mode 100644 index 0000000..605a907 Binary files /dev/null and b/public/images/3DModels/iss-web/image_22.jpg differ diff --git a/public/images/3DModels/iss-web/image_23.jpg b/public/images/3DModels/iss-web/image_23.jpg new file mode 100644 index 0000000..8a86462 Binary files /dev/null and b/public/images/3DModels/iss-web/image_23.jpg differ diff --git a/public/images/3DModels/iss-web/image_24.jpg b/public/images/3DModels/iss-web/image_24.jpg new file mode 100644 index 0000000..605a907 Binary files /dev/null and b/public/images/3DModels/iss-web/image_24.jpg differ diff --git a/public/images/3DModels/iss-web/image_25.jpg b/public/images/3DModels/iss-web/image_25.jpg new file mode 100644 index 0000000..11ae383 Binary files /dev/null and b/public/images/3DModels/iss-web/image_25.jpg differ diff --git a/public/images/3DModels/iss-web/iss-web.bin b/public/images/3DModels/iss-web/iss-web.bin new file mode 100644 index 0000000..dc8d982 Binary files /dev/null and b/public/images/3DModels/iss-web/iss-web.bin differ diff --git a/public/js/GLTFLoader.js b/public/js/GLTFLoader.js new file mode 100644 index 0000000..54fcb32 --- /dev/null +++ b/public/js/GLTFLoader.js @@ -0,0 +1,4745 @@ +import { + AnimationClip, + Bone, + Box3, + BufferAttribute, + BufferGeometry, + ClampToEdgeWrapping, + Color, + ColorManagement, + DirectionalLight, + DoubleSide, + FileLoader, + FrontSide, + Group, + ImageBitmapLoader, + InstancedMesh, + InterleavedBuffer, + InterleavedBufferAttribute, + Interpolant, + InterpolateDiscrete, + InterpolateLinear, + Line, + LineBasicMaterial, + LineLoop, + LineSegments, + LinearFilter, + LinearMipmapLinearFilter, + LinearMipmapNearestFilter, + LinearSRGBColorSpace, + Loader, + LoaderUtils, + Material, + MathUtils, + Matrix4, + Mesh, + MeshBasicMaterial, + MeshPhysicalMaterial, + MeshStandardMaterial, + MirroredRepeatWrapping, + NearestFilter, + NearestMipmapLinearFilter, + NearestMipmapNearestFilter, + NumberKeyframeTrack, + Object3D, + OrthographicCamera, + PerspectiveCamera, + PointLight, + Points, + PointsMaterial, + PropertyBinding, + Quaternion, + QuaternionKeyframeTrack, + RepeatWrapping, + Skeleton, + SkinnedMesh, + Sphere, + SpotLight, + Texture, + TextureLoader, + TriangleFanDrawMode, + TriangleStripDrawMode, + Vector2, + Vector3, + VectorKeyframeTrack, + SRGBColorSpace, + InstancedBufferAttribute +} from 'three'; +import { toTrianglesDrawMode } from '../utils/BufferGeometryUtils.js'; + +class GLTFLoader extends Loader { + + constructor( manager ) { + + super( manager ); + + this.dracoLoader = null; + this.ktx2Loader = null; + this.meshoptDecoder = null; + + this.pluginCallbacks = []; + + this.register( function ( parser ) { + + return new GLTFMaterialsClearcoatExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsDispersionExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFTextureBasisUExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFTextureWebPExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFTextureAVIFExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsSheenExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsTransmissionExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsVolumeExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsIorExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsEmissiveStrengthExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsSpecularExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsIridescenceExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsAnisotropyExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMaterialsBumpExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFLightsExtension( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMeshoptCompression( parser ); + + } ); + + this.register( function ( parser ) { + + return new GLTFMeshGpuInstancing( parser ); + + } ); + + } + + load( url, onLoad, onProgress, onError ) { + + const scope = this; + + let resourcePath; + + if ( this.resourcePath !== '' ) { + + resourcePath = this.resourcePath; + + } else if ( this.path !== '' ) { + + // If a base path is set, resources will be relative paths from that plus the relative path of the gltf file + // Example path = 'https://my-cnd-server.com/', url = 'assets/models/model.gltf' + // resourcePath = 'https://my-cnd-server.com/assets/models/' + // referenced resource 'model.bin' will be loaded from 'https://my-cnd-server.com/assets/models/model.bin' + // referenced resource '../textures/texture.png' will be loaded from 'https://my-cnd-server.com/assets/textures/texture.png' + const relativeUrl = LoaderUtils.extractUrlBase( url ); + resourcePath = LoaderUtils.resolveURL( relativeUrl, this.path ); + + } else { + + resourcePath = LoaderUtils.extractUrlBase( url ); + + } + + // Tells the LoadingManager to track an extra item, which resolves after + // the model is fully loaded. This means the count of items loaded will + // be incorrect, but ensures manager.onLoad() does not fire early. + this.manager.itemStart( url ); + + const _onError = function ( e ) { + + if ( onError ) { + + onError( e ); + + } else { + + console.error( e ); + + } + + scope.manager.itemError( url ); + scope.manager.itemEnd( url ); + + }; + + const loader = new FileLoader( this.manager ); + + loader.setPath( this.path ); + loader.setResponseType( 'arraybuffer' ); + loader.setRequestHeader( this.requestHeader ); + loader.setWithCredentials( this.withCredentials ); + + loader.load( url, function ( data ) { + + try { + + scope.parse( data, resourcePath, function ( gltf ) { + + onLoad( gltf ); + + scope.manager.itemEnd( url ); + + }, _onError ); + + } catch ( e ) { + + _onError( e ); + + } + + }, onProgress, _onError ); + + } + + setDRACOLoader( dracoLoader ) { + + this.dracoLoader = dracoLoader; + return this; + + } + + setKTX2Loader( ktx2Loader ) { + + this.ktx2Loader = ktx2Loader; + return this; + + } + + setMeshoptDecoder( meshoptDecoder ) { + + this.meshoptDecoder = meshoptDecoder; + return this; + + } + + register( callback ) { + + if ( this.pluginCallbacks.indexOf( callback ) === - 1 ) { + + this.pluginCallbacks.push( callback ); + + } + + return this; + + } + + unregister( callback ) { + + if ( this.pluginCallbacks.indexOf( callback ) !== - 1 ) { + + this.pluginCallbacks.splice( this.pluginCallbacks.indexOf( callback ), 1 ); + + } + + return this; + + } + + parse( data, path, onLoad, onError ) { + + let json; + const extensions = {}; + const plugins = {}; + const textDecoder = new TextDecoder(); + + if ( typeof data === 'string' ) { + + json = JSON.parse( data ); + + } else if ( data instanceof ArrayBuffer ) { + + const magic = textDecoder.decode( new Uint8Array( data, 0, 4 ) ); + + if ( magic === BINARY_EXTENSION_HEADER_MAGIC ) { + + try { + + extensions[ EXTENSIONS.KHR_BINARY_GLTF ] = new GLTFBinaryExtension( data ); + + } catch ( error ) { + + if ( onError ) onError( error ); + return; + + } + + json = JSON.parse( extensions[ EXTENSIONS.KHR_BINARY_GLTF ].content ); + + } else { + + json = JSON.parse( textDecoder.decode( data ) ); + + } + + } else { + + json = data; + + } + + if ( json.asset === undefined || json.asset.version[ 0 ] < 2 ) { + + if ( onError ) onError( new Error( 'THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.' ) ); + return; + + } + + const parser = new GLTFParser( json, { + + path: path || this.resourcePath || '', + crossOrigin: this.crossOrigin, + requestHeader: this.requestHeader, + manager: this.manager, + ktx2Loader: this.ktx2Loader, + meshoptDecoder: this.meshoptDecoder + + } ); + + parser.fileLoader.setRequestHeader( this.requestHeader ); + + for ( let i = 0; i < this.pluginCallbacks.length; i ++ ) { + + const plugin = this.pluginCallbacks[ i ]( parser ); + + if ( ! plugin.name ) console.error( 'THREE.GLTFLoader: Invalid plugin found: missing name' ); + + plugins[ plugin.name ] = plugin; + + // Workaround to avoid determining as unknown extension + // in addUnknownExtensionsToUserData(). + // Remove this workaround if we move all the existing + // extension handlers to plugin system + extensions[ plugin.name ] = true; + + } + + if ( json.extensionsUsed ) { + + for ( let i = 0; i < json.extensionsUsed.length; ++ i ) { + + const extensionName = json.extensionsUsed[ i ]; + const extensionsRequired = json.extensionsRequired || []; + + switch ( extensionName ) { + + case EXTENSIONS.KHR_MATERIALS_UNLIT: + extensions[ extensionName ] = new GLTFMaterialsUnlitExtension(); + break; + + case EXTENSIONS.KHR_DRACO_MESH_COMPRESSION: + extensions[ extensionName ] = new GLTFDracoMeshCompressionExtension( json, this.dracoLoader ); + break; + + case EXTENSIONS.KHR_TEXTURE_TRANSFORM: + extensions[ extensionName ] = new GLTFTextureTransformExtension(); + break; + + case EXTENSIONS.KHR_MESH_QUANTIZATION: + extensions[ extensionName ] = new GLTFMeshQuantizationExtension(); + break; + + default: + + if ( extensionsRequired.indexOf( extensionName ) >= 0 && plugins[ extensionName ] === undefined ) { + + console.warn( 'THREE.GLTFLoader: Unknown extension "' + extensionName + '".' ); + + } + + } + + } + + } + + parser.setExtensions( extensions ); + parser.setPlugins( plugins ); + parser.parse( onLoad, onError ); + + } + + parseAsync( data, path ) { + + const scope = this; + + return new Promise( function ( resolve, reject ) { + + scope.parse( data, path, resolve, reject ); + + } ); + + } + +} + +/* GLTFREGISTRY */ + +function GLTFRegistry() { + + let objects = {}; + + return { + + get: function ( key ) { + + return objects[ key ]; + + }, + + add: function ( key, object ) { + + objects[ key ] = object; + + }, + + remove: function ( key ) { + + delete objects[ key ]; + + }, + + removeAll: function () { + + objects = {}; + + } + + }; + +} + +/*********************************/ +/********** EXTENSIONS ***********/ +/*********************************/ + +const EXTENSIONS = { + KHR_BINARY_GLTF: 'KHR_binary_glTF', + KHR_DRACO_MESH_COMPRESSION: 'KHR_draco_mesh_compression', + KHR_LIGHTS_PUNCTUAL: 'KHR_lights_punctual', + KHR_MATERIALS_CLEARCOAT: 'KHR_materials_clearcoat', + KHR_MATERIALS_DISPERSION: 'KHR_materials_dispersion', + KHR_MATERIALS_IOR: 'KHR_materials_ior', + KHR_MATERIALS_SHEEN: 'KHR_materials_sheen', + KHR_MATERIALS_SPECULAR: 'KHR_materials_specular', + KHR_MATERIALS_TRANSMISSION: 'KHR_materials_transmission', + KHR_MATERIALS_IRIDESCENCE: 'KHR_materials_iridescence', + KHR_MATERIALS_ANISOTROPY: 'KHR_materials_anisotropy', + KHR_MATERIALS_UNLIT: 'KHR_materials_unlit', + KHR_MATERIALS_VOLUME: 'KHR_materials_volume', + KHR_TEXTURE_BASISU: 'KHR_texture_basisu', + KHR_TEXTURE_TRANSFORM: 'KHR_texture_transform', + KHR_MESH_QUANTIZATION: 'KHR_mesh_quantization', + KHR_MATERIALS_EMISSIVE_STRENGTH: 'KHR_materials_emissive_strength', + EXT_MATERIALS_BUMP: 'EXT_materials_bump', + EXT_TEXTURE_WEBP: 'EXT_texture_webp', + EXT_TEXTURE_AVIF: 'EXT_texture_avif', + EXT_MESHOPT_COMPRESSION: 'EXT_meshopt_compression', + EXT_MESH_GPU_INSTANCING: 'EXT_mesh_gpu_instancing' +}; + +/** + * Punctual Lights Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_lights_punctual + */ +class GLTFLightsExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_LIGHTS_PUNCTUAL; + + // Object3D instance caches + this.cache = { refs: {}, uses: {} }; + + } + + _markDefs() { + + const parser = this.parser; + const nodeDefs = this.parser.json.nodes || []; + + for ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) { + + const nodeDef = nodeDefs[ nodeIndex ]; + + if ( nodeDef.extensions + && nodeDef.extensions[ this.name ] + && nodeDef.extensions[ this.name ].light !== undefined ) { + + parser._addNodeRef( this.cache, nodeDef.extensions[ this.name ].light ); + + } + + } + + } + + _loadLight( lightIndex ) { + + const parser = this.parser; + const cacheKey = 'light:' + lightIndex; + let dependency = parser.cache.get( cacheKey ); + + if ( dependency ) return dependency; + + const json = parser.json; + const extensions = ( json.extensions && json.extensions[ this.name ] ) || {}; + const lightDefs = extensions.lights || []; + const lightDef = lightDefs[ lightIndex ]; + let lightNode; + + const color = new Color( 0xffffff ); + + if ( lightDef.color !== undefined ) color.setRGB( lightDef.color[ 0 ], lightDef.color[ 1 ], lightDef.color[ 2 ], LinearSRGBColorSpace ); + + const range = lightDef.range !== undefined ? lightDef.range : 0; + + switch ( lightDef.type ) { + + case 'directional': + lightNode = new DirectionalLight( color ); + lightNode.target.position.set( 0, 0, - 1 ); + lightNode.add( lightNode.target ); + break; + + case 'point': + lightNode = new PointLight( color ); + lightNode.distance = range; + break; + + case 'spot': + lightNode = new SpotLight( color ); + lightNode.distance = range; + // Handle spotlight properties. + lightDef.spot = lightDef.spot || {}; + lightDef.spot.innerConeAngle = lightDef.spot.innerConeAngle !== undefined ? lightDef.spot.innerConeAngle : 0; + lightDef.spot.outerConeAngle = lightDef.spot.outerConeAngle !== undefined ? lightDef.spot.outerConeAngle : Math.PI / 4.0; + lightNode.angle = lightDef.spot.outerConeAngle; + lightNode.penumbra = 1.0 - lightDef.spot.innerConeAngle / lightDef.spot.outerConeAngle; + lightNode.target.position.set( 0, 0, - 1 ); + lightNode.add( lightNode.target ); + break; + + default: + throw new Error( 'THREE.GLTFLoader: Unexpected light type: ' + lightDef.type ); + + } + + // Some lights (e.g. spot) default to a position other than the origin. Reset the position + // here, because node-level parsing will only override position if explicitly specified. + lightNode.position.set( 0, 0, 0 ); + + assignExtrasToUserData( lightNode, lightDef ); + + if ( lightDef.intensity !== undefined ) lightNode.intensity = lightDef.intensity; + + lightNode.name = parser.createUniqueName( lightDef.name || ( 'light_' + lightIndex ) ); + + dependency = Promise.resolve( lightNode ); + + parser.cache.add( cacheKey, dependency ); + + return dependency; + + } + + getDependency( type, index ) { + + if ( type !== 'light' ) return; + + return this._loadLight( index ); + + } + + createNodeAttachment( nodeIndex ) { + + const self = this; + const parser = this.parser; + const json = parser.json; + const nodeDef = json.nodes[ nodeIndex ]; + const lightDef = ( nodeDef.extensions && nodeDef.extensions[ this.name ] ) || {}; + const lightIndex = lightDef.light; + + if ( lightIndex === undefined ) return null; + + return this._loadLight( lightIndex ).then( function ( light ) { + + return parser._getNodeRef( self.cache, lightIndex, light ); + + } ); + + } + +} + +/** + * Unlit Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_unlit + */ +class GLTFMaterialsUnlitExtension { + + constructor() { + + this.name = EXTENSIONS.KHR_MATERIALS_UNLIT; + + } + + getMaterialType() { + + return MeshBasicMaterial; + + } + + extendParams( materialParams, materialDef, parser ) { + + const pending = []; + + materialParams.color = new Color( 1.0, 1.0, 1.0 ); + materialParams.opacity = 1.0; + + const metallicRoughness = materialDef.pbrMetallicRoughness; + + if ( metallicRoughness ) { + + if ( Array.isArray( metallicRoughness.baseColorFactor ) ) { + + const array = metallicRoughness.baseColorFactor; + + materialParams.color.setRGB( array[ 0 ], array[ 1 ], array[ 2 ], LinearSRGBColorSpace ); + materialParams.opacity = array[ 3 ]; + + } + + if ( metallicRoughness.baseColorTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) ); + + } + + } + + return Promise.all( pending ); + + } + +} + +/** + * Materials Emissive Strength Extension + * + * Specification: https://github.com/KhronosGroup/glTF/blob/5768b3ce0ef32bc39cdf1bef10b948586635ead3/extensions/2.0/Khronos/KHR_materials_emissive_strength/README.md + */ +class GLTFMaterialsEmissiveStrengthExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_EMISSIVE_STRENGTH; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const emissiveStrength = materialDef.extensions[ this.name ].emissiveStrength; + + if ( emissiveStrength !== undefined ) { + + materialParams.emissiveIntensity = emissiveStrength; + + } + + return Promise.resolve(); + + } + +} + +/** + * Clearcoat Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_clearcoat + */ +class GLTFMaterialsClearcoatExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_CLEARCOAT; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const pending = []; + + const extension = materialDef.extensions[ this.name ]; + + if ( extension.clearcoatFactor !== undefined ) { + + materialParams.clearcoat = extension.clearcoatFactor; + + } + + if ( extension.clearcoatTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'clearcoatMap', extension.clearcoatTexture ) ); + + } + + if ( extension.clearcoatRoughnessFactor !== undefined ) { + + materialParams.clearcoatRoughness = extension.clearcoatRoughnessFactor; + + } + + if ( extension.clearcoatRoughnessTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'clearcoatRoughnessMap', extension.clearcoatRoughnessTexture ) ); + + } + + if ( extension.clearcoatNormalTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'clearcoatNormalMap', extension.clearcoatNormalTexture ) ); + + if ( extension.clearcoatNormalTexture.scale !== undefined ) { + + const scale = extension.clearcoatNormalTexture.scale; + + materialParams.clearcoatNormalScale = new Vector2( scale, scale ); + + } + + } + + return Promise.all( pending ); + + } + +} + +/** + * Materials dispersion Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_dispersion + */ +class GLTFMaterialsDispersionExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_DISPERSION; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const extension = materialDef.extensions[ this.name ]; + + materialParams.dispersion = extension.dispersion !== undefined ? extension.dispersion : 0; + + return Promise.resolve(); + + } + +} + +/** + * Iridescence Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_iridescence + */ +class GLTFMaterialsIridescenceExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_IRIDESCENCE; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const pending = []; + + const extension = materialDef.extensions[ this.name ]; + + if ( extension.iridescenceFactor !== undefined ) { + + materialParams.iridescence = extension.iridescenceFactor; + + } + + if ( extension.iridescenceTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'iridescenceMap', extension.iridescenceTexture ) ); + + } + + if ( extension.iridescenceIor !== undefined ) { + + materialParams.iridescenceIOR = extension.iridescenceIor; + + } + + if ( materialParams.iridescenceThicknessRange === undefined ) { + + materialParams.iridescenceThicknessRange = [ 100, 400 ]; + + } + + if ( extension.iridescenceThicknessMinimum !== undefined ) { + + materialParams.iridescenceThicknessRange[ 0 ] = extension.iridescenceThicknessMinimum; + + } + + if ( extension.iridescenceThicknessMaximum !== undefined ) { + + materialParams.iridescenceThicknessRange[ 1 ] = extension.iridescenceThicknessMaximum; + + } + + if ( extension.iridescenceThicknessTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'iridescenceThicknessMap', extension.iridescenceThicknessTexture ) ); + + } + + return Promise.all( pending ); + + } + +} + +/** + * Sheen Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_materials_sheen + */ +class GLTFMaterialsSheenExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_SHEEN; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const pending = []; + + materialParams.sheenColor = new Color( 0, 0, 0 ); + materialParams.sheenRoughness = 0; + materialParams.sheen = 1; + + const extension = materialDef.extensions[ this.name ]; + + if ( extension.sheenColorFactor !== undefined ) { + + const colorFactor = extension.sheenColorFactor; + materialParams.sheenColor.setRGB( colorFactor[ 0 ], colorFactor[ 1 ], colorFactor[ 2 ], LinearSRGBColorSpace ); + + } + + if ( extension.sheenRoughnessFactor !== undefined ) { + + materialParams.sheenRoughness = extension.sheenRoughnessFactor; + + } + + if ( extension.sheenColorTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'sheenColorMap', extension.sheenColorTexture, SRGBColorSpace ) ); + + } + + if ( extension.sheenRoughnessTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'sheenRoughnessMap', extension.sheenRoughnessTexture ) ); + + } + + return Promise.all( pending ); + + } + +} + +/** + * Transmission Materials Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_transmission + * Draft: https://github.com/KhronosGroup/glTF/pull/1698 + */ +class GLTFMaterialsTransmissionExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_TRANSMISSION; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const pending = []; + + const extension = materialDef.extensions[ this.name ]; + + if ( extension.transmissionFactor !== undefined ) { + + materialParams.transmission = extension.transmissionFactor; + + } + + if ( extension.transmissionTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'transmissionMap', extension.transmissionTexture ) ); + + } + + return Promise.all( pending ); + + } + +} + +/** + * Materials Volume Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_volume + */ +class GLTFMaterialsVolumeExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_VOLUME; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const pending = []; + + const extension = materialDef.extensions[ this.name ]; + + materialParams.thickness = extension.thicknessFactor !== undefined ? extension.thicknessFactor : 0; + + if ( extension.thicknessTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'thicknessMap', extension.thicknessTexture ) ); + + } + + materialParams.attenuationDistance = extension.attenuationDistance || Infinity; + + const colorArray = extension.attenuationColor || [ 1, 1, 1 ]; + materialParams.attenuationColor = new Color().setRGB( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ], LinearSRGBColorSpace ); + + return Promise.all( pending ); + + } + +} + +/** + * Materials ior Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_ior + */ +class GLTFMaterialsIorExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_IOR; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const extension = materialDef.extensions[ this.name ]; + + materialParams.ior = extension.ior !== undefined ? extension.ior : 1.5; + + return Promise.resolve(); + + } + +} + +/** + * Materials specular Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_specular + */ +class GLTFMaterialsSpecularExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_SPECULAR; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const pending = []; + + const extension = materialDef.extensions[ this.name ]; + + materialParams.specularIntensity = extension.specularFactor !== undefined ? extension.specularFactor : 1.0; + + if ( extension.specularTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'specularIntensityMap', extension.specularTexture ) ); + + } + + const colorArray = extension.specularColorFactor || [ 1, 1, 1 ]; + materialParams.specularColor = new Color().setRGB( colorArray[ 0 ], colorArray[ 1 ], colorArray[ 2 ], LinearSRGBColorSpace ); + + if ( extension.specularColorTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'specularColorMap', extension.specularColorTexture, SRGBColorSpace ) ); + + } + + return Promise.all( pending ); + + } + +} + + +/** + * Materials bump Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_materials_bump + */ +class GLTFMaterialsBumpExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.EXT_MATERIALS_BUMP; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const pending = []; + + const extension = materialDef.extensions[ this.name ]; + + materialParams.bumpScale = extension.bumpFactor !== undefined ? extension.bumpFactor : 1.0; + + if ( extension.bumpTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'bumpMap', extension.bumpTexture ) ); + + } + + return Promise.all( pending ); + + } + +} + +/** + * Materials anisotropy Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_anisotropy + */ +class GLTFMaterialsAnisotropyExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_ANISOTROPY; + + } + + getMaterialType( materialIndex ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) return null; + + return MeshPhysicalMaterial; + + } + + extendMaterialParams( materialIndex, materialParams ) { + + const parser = this.parser; + const materialDef = parser.json.materials[ materialIndex ]; + + if ( ! materialDef.extensions || ! materialDef.extensions[ this.name ] ) { + + return Promise.resolve(); + + } + + const pending = []; + + const extension = materialDef.extensions[ this.name ]; + + if ( extension.anisotropyStrength !== undefined ) { + + materialParams.anisotropy = extension.anisotropyStrength; + + } + + if ( extension.anisotropyRotation !== undefined ) { + + materialParams.anisotropyRotation = extension.anisotropyRotation; + + } + + if ( extension.anisotropyTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'anisotropyMap', extension.anisotropyTexture ) ); + + } + + return Promise.all( pending ); + + } + +} + +/** + * BasisU Texture Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_basisu + */ +class GLTFTextureBasisUExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.KHR_TEXTURE_BASISU; + + } + + loadTexture( textureIndex ) { + + const parser = this.parser; + const json = parser.json; + + const textureDef = json.textures[ textureIndex ]; + + if ( ! textureDef.extensions || ! textureDef.extensions[ this.name ] ) { + + return null; + + } + + const extension = textureDef.extensions[ this.name ]; + const loader = parser.options.ktx2Loader; + + if ( ! loader ) { + + if ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) { + + throw new Error( 'THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures' ); + + } else { + + // Assumes that the extension is optional and that a fallback texture is present + return null; + + } + + } + + return parser.loadTextureImage( textureIndex, extension.source, loader ); + + } + +} + +/** + * WebP Texture Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_webp + */ +class GLTFTextureWebPExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.EXT_TEXTURE_WEBP; + this.isSupported = null; + + } + + loadTexture( textureIndex ) { + + const name = this.name; + const parser = this.parser; + const json = parser.json; + + const textureDef = json.textures[ textureIndex ]; + + if ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) { + + return null; + + } + + const extension = textureDef.extensions[ name ]; + const source = json.images[ extension.source ]; + + let loader = parser.textureLoader; + if ( source.uri ) { + + const handler = parser.options.manager.getHandler( source.uri ); + if ( handler !== null ) loader = handler; + + } + + return this.detectSupport().then( function ( isSupported ) { + + if ( isSupported ) return parser.loadTextureImage( textureIndex, extension.source, loader ); + + if ( json.extensionsRequired && json.extensionsRequired.indexOf( name ) >= 0 ) { + + throw new Error( 'THREE.GLTFLoader: WebP required by asset but unsupported.' ); + + } + + // Fall back to PNG or JPEG. + return parser.loadTexture( textureIndex ); + + } ); + + } + + detectSupport() { + + if ( ! this.isSupported ) { + + this.isSupported = new Promise( function ( resolve ) { + + const image = new Image(); + + // Lossy test image. Support for lossy images doesn't guarantee support for all + // WebP images, unfortunately. + image.src = 'data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA'; + + image.onload = image.onerror = function () { + + resolve( image.height === 1 ); + + }; + + } ); + + } + + return this.isSupported; + + } + +} + +/** + * AVIF Texture Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_avif + */ +class GLTFTextureAVIFExtension { + + constructor( parser ) { + + this.parser = parser; + this.name = EXTENSIONS.EXT_TEXTURE_AVIF; + this.isSupported = null; + + } + + loadTexture( textureIndex ) { + + const name = this.name; + const parser = this.parser; + const json = parser.json; + + const textureDef = json.textures[ textureIndex ]; + + if ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) { + + return null; + + } + + const extension = textureDef.extensions[ name ]; + const source = json.images[ extension.source ]; + + let loader = parser.textureLoader; + if ( source.uri ) { + + const handler = parser.options.manager.getHandler( source.uri ); + if ( handler !== null ) loader = handler; + + } + + return this.detectSupport().then( function ( isSupported ) { + + if ( isSupported ) return parser.loadTextureImage( textureIndex, extension.source, loader ); + + if ( json.extensionsRequired && json.extensionsRequired.indexOf( name ) >= 0 ) { + + throw new Error( 'THREE.GLTFLoader: AVIF required by asset but unsupported.' ); + + } + + // Fall back to PNG or JPEG. + return parser.loadTexture( textureIndex ); + + } ); + + } + + detectSupport() { + + if ( ! this.isSupported ) { + + this.isSupported = new Promise( function ( resolve ) { + + const image = new Image(); + + // Lossy test image. + image.src = 'data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI='; + image.onload = image.onerror = function () { + + resolve( image.height === 1 ); + + }; + + } ); + + } + + return this.isSupported; + + } + +} + +/** + * meshopt BufferView Compression Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_meshopt_compression + */ +class GLTFMeshoptCompression { + + constructor( parser ) { + + this.name = EXTENSIONS.EXT_MESHOPT_COMPRESSION; + this.parser = parser; + + } + + loadBufferView( index ) { + + const json = this.parser.json; + const bufferView = json.bufferViews[ index ]; + + if ( bufferView.extensions && bufferView.extensions[ this.name ] ) { + + const extensionDef = bufferView.extensions[ this.name ]; + + const buffer = this.parser.getDependency( 'buffer', extensionDef.buffer ); + const decoder = this.parser.options.meshoptDecoder; + + if ( ! decoder || ! decoder.supported ) { + + if ( json.extensionsRequired && json.extensionsRequired.indexOf( this.name ) >= 0 ) { + + throw new Error( 'THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files' ); + + } else { + + // Assumes that the extension is optional and that fallback buffer data is present + return null; + + } + + } + + return buffer.then( function ( res ) { + + const byteOffset = extensionDef.byteOffset || 0; + const byteLength = extensionDef.byteLength || 0; + + const count = extensionDef.count; + const stride = extensionDef.byteStride; + + const source = new Uint8Array( res, byteOffset, byteLength ); + + if ( decoder.decodeGltfBufferAsync ) { + + return decoder.decodeGltfBufferAsync( count, stride, source, extensionDef.mode, extensionDef.filter ).then( function ( res ) { + + return res.buffer; + + } ); + + } else { + + // Support for MeshoptDecoder 0.18 or earlier, without decodeGltfBufferAsync + return decoder.ready.then( function () { + + const result = new ArrayBuffer( count * stride ); + decoder.decodeGltfBuffer( new Uint8Array( result ), count, stride, source, extensionDef.mode, extensionDef.filter ); + return result; + + } ); + + } + + } ); + + } else { + + return null; + + } + + } + +} + +/** + * GPU Instancing Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing + * + */ +class GLTFMeshGpuInstancing { + + constructor( parser ) { + + this.name = EXTENSIONS.EXT_MESH_GPU_INSTANCING; + this.parser = parser; + + } + + createNodeMesh( nodeIndex ) { + + const json = this.parser.json; + const nodeDef = json.nodes[ nodeIndex ]; + + if ( ! nodeDef.extensions || ! nodeDef.extensions[ this.name ] || + nodeDef.mesh === undefined ) { + + return null; + + } + + const meshDef = json.meshes[ nodeDef.mesh ]; + + // No Points or Lines + Instancing support yet + + for ( const primitive of meshDef.primitives ) { + + if ( primitive.mode !== WEBGL_CONSTANTS.TRIANGLES && + primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_STRIP && + primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_FAN && + primitive.mode !== undefined ) { + + return null; + + } + + } + + const extensionDef = nodeDef.extensions[ this.name ]; + const attributesDef = extensionDef.attributes; + + // @TODO: Can we support InstancedMesh + SkinnedMesh? + + const pending = []; + const attributes = {}; + + for ( const key in attributesDef ) { + + pending.push( this.parser.getDependency( 'accessor', attributesDef[ key ] ).then( accessor => { + + attributes[ key ] = accessor; + return attributes[ key ]; + + } ) ); + + } + + if ( pending.length < 1 ) { + + return null; + + } + + pending.push( this.parser.createNodeMesh( nodeIndex ) ); + + return Promise.all( pending ).then( results => { + + const nodeObject = results.pop(); + const meshes = nodeObject.isGroup ? nodeObject.children : [ nodeObject ]; + const count = results[ 0 ].count; // All attribute counts should be same + const instancedMeshes = []; + + for ( const mesh of meshes ) { + + // Temporal variables + const m = new Matrix4(); + const p = new Vector3(); + const q = new Quaternion(); + const s = new Vector3( 1, 1, 1 ); + + const instancedMesh = new InstancedMesh( mesh.geometry, mesh.material, count ); + + for ( let i = 0; i < count; i ++ ) { + + if ( attributes.TRANSLATION ) { + + p.fromBufferAttribute( attributes.TRANSLATION, i ); + + } + + if ( attributes.ROTATION ) { + + q.fromBufferAttribute( attributes.ROTATION, i ); + + } + + if ( attributes.SCALE ) { + + s.fromBufferAttribute( attributes.SCALE, i ); + + } + + instancedMesh.setMatrixAt( i, m.compose( p, q, s ) ); + + } + + // Add instance attributes to the geometry, excluding TRS. + for ( const attributeName in attributes ) { + + if ( attributeName === '_COLOR_0' ) { + + const attr = attributes[ attributeName ]; + instancedMesh.instanceColor = new InstancedBufferAttribute( attr.array, attr.itemSize, attr.normalized ); + + } else if ( attributeName !== 'TRANSLATION' && + attributeName !== 'ROTATION' && + attributeName !== 'SCALE' ) { + + mesh.geometry.setAttribute( attributeName, attributes[ attributeName ] ); + + } + + } + + // Just in case + Object3D.prototype.copy.call( instancedMesh, mesh ); + + this.parser.assignFinalMaterial( instancedMesh ); + + instancedMeshes.push( instancedMesh ); + + } + + if ( nodeObject.isGroup ) { + + nodeObject.clear(); + + nodeObject.add( ... instancedMeshes ); + + return nodeObject; + + } + + return instancedMeshes[ 0 ]; + + } ); + + } + +} + +/* BINARY EXTENSION */ +const BINARY_EXTENSION_HEADER_MAGIC = 'glTF'; +const BINARY_EXTENSION_HEADER_LENGTH = 12; +const BINARY_EXTENSION_CHUNK_TYPES = { JSON: 0x4E4F534A, BIN: 0x004E4942 }; + +class GLTFBinaryExtension { + + constructor( data ) { + + this.name = EXTENSIONS.KHR_BINARY_GLTF; + this.content = null; + this.body = null; + + const headerView = new DataView( data, 0, BINARY_EXTENSION_HEADER_LENGTH ); + const textDecoder = new TextDecoder(); + + this.header = { + magic: textDecoder.decode( new Uint8Array( data.slice( 0, 4 ) ) ), + version: headerView.getUint32( 4, true ), + length: headerView.getUint32( 8, true ) + }; + + if ( this.header.magic !== BINARY_EXTENSION_HEADER_MAGIC ) { + + throw new Error( 'THREE.GLTFLoader: Unsupported glTF-Binary header.' ); + + } else if ( this.header.version < 2.0 ) { + + throw new Error( 'THREE.GLTFLoader: Legacy binary file detected.' ); + + } + + const chunkContentsLength = this.header.length - BINARY_EXTENSION_HEADER_LENGTH; + const chunkView = new DataView( data, BINARY_EXTENSION_HEADER_LENGTH ); + let chunkIndex = 0; + + while ( chunkIndex < chunkContentsLength ) { + + const chunkLength = chunkView.getUint32( chunkIndex, true ); + chunkIndex += 4; + + const chunkType = chunkView.getUint32( chunkIndex, true ); + chunkIndex += 4; + + if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON ) { + + const contentArray = new Uint8Array( data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength ); + this.content = textDecoder.decode( contentArray ); + + } else if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN ) { + + const byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex; + this.body = data.slice( byteOffset, byteOffset + chunkLength ); + + } + + // Clients must ignore chunks with unknown types. + + chunkIndex += chunkLength; + + } + + if ( this.content === null ) { + + throw new Error( 'THREE.GLTFLoader: JSON content not found.' ); + + } + + } + +} + +/** + * DRACO Mesh Compression Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression + */ +class GLTFDracoMeshCompressionExtension { + + constructor( json, dracoLoader ) { + + if ( ! dracoLoader ) { + + throw new Error( 'THREE.GLTFLoader: No DRACOLoader instance provided.' ); + + } + + this.name = EXTENSIONS.KHR_DRACO_MESH_COMPRESSION; + this.json = json; + this.dracoLoader = dracoLoader; + this.dracoLoader.preload(); + + } + + decodePrimitive( primitive, parser ) { + + const json = this.json; + const dracoLoader = this.dracoLoader; + const bufferViewIndex = primitive.extensions[ this.name ].bufferView; + const gltfAttributeMap = primitive.extensions[ this.name ].attributes; + const threeAttributeMap = {}; + const attributeNormalizedMap = {}; + const attributeTypeMap = {}; + + for ( const attributeName in gltfAttributeMap ) { + + const threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase(); + + threeAttributeMap[ threeAttributeName ] = gltfAttributeMap[ attributeName ]; + + } + + for ( const attributeName in primitive.attributes ) { + + const threeAttributeName = ATTRIBUTES[ attributeName ] || attributeName.toLowerCase(); + + if ( gltfAttributeMap[ attributeName ] !== undefined ) { + + const accessorDef = json.accessors[ primitive.attributes[ attributeName ] ]; + const componentType = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ]; + + attributeTypeMap[ threeAttributeName ] = componentType.name; + attributeNormalizedMap[ threeAttributeName ] = accessorDef.normalized === true; + + } + + } + + return parser.getDependency( 'bufferView', bufferViewIndex ).then( function ( bufferView ) { + + return new Promise( function ( resolve, reject ) { + + dracoLoader.decodeDracoFile( bufferView, function ( geometry ) { + + for ( const attributeName in geometry.attributes ) { + + const attribute = geometry.attributes[ attributeName ]; + const normalized = attributeNormalizedMap[ attributeName ]; + + if ( normalized !== undefined ) attribute.normalized = normalized; + + } + + resolve( geometry ); + + }, threeAttributeMap, attributeTypeMap, LinearSRGBColorSpace, reject ); + + } ); + + } ); + + } + +} + +/** + * Texture Transform Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_texture_transform + */ +class GLTFTextureTransformExtension { + + constructor() { + + this.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM; + + } + + extendTexture( texture, transform ) { + + if ( ( transform.texCoord === undefined || transform.texCoord === texture.channel ) + && transform.offset === undefined + && transform.rotation === undefined + && transform.scale === undefined ) { + + // See https://github.com/mrdoob/three.js/issues/21819. + return texture; + + } + + texture = texture.clone(); + + if ( transform.texCoord !== undefined ) { + + texture.channel = transform.texCoord; + + } + + if ( transform.offset !== undefined ) { + + texture.offset.fromArray( transform.offset ); + + } + + if ( transform.rotation !== undefined ) { + + texture.rotation = transform.rotation; + + } + + if ( transform.scale !== undefined ) { + + texture.repeat.fromArray( transform.scale ); + + } + + texture.needsUpdate = true; + + return texture; + + } + +} + +/** + * Mesh Quantization Extension + * + * Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization + */ +class GLTFMeshQuantizationExtension { + + constructor() { + + this.name = EXTENSIONS.KHR_MESH_QUANTIZATION; + + } + +} + +/*********************************/ +/********** INTERPOLATION ********/ +/*********************************/ + +// Spline Interpolation +// Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#appendix-c-spline-interpolation +class GLTFCubicSplineInterpolant extends Interpolant { + + constructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) { + + super( parameterPositions, sampleValues, sampleSize, resultBuffer ); + + } + + copySampleValue_( index ) { + + // Copies a sample value to the result buffer. See description of glTF + // CUBICSPLINE values layout in interpolate_() function below. + + const result = this.resultBuffer, + values = this.sampleValues, + valueSize = this.valueSize, + offset = index * valueSize * 3 + valueSize; + + for ( let i = 0; i !== valueSize; i ++ ) { + + result[ i ] = values[ offset + i ]; + + } + + return result; + + } + + interpolate_( i1, t0, t, t1 ) { + + const result = this.resultBuffer; + const values = this.sampleValues; + const stride = this.valueSize; + + const stride2 = stride * 2; + const stride3 = stride * 3; + + const td = t1 - t0; + + const p = ( t - t0 ) / td; + const pp = p * p; + const ppp = pp * p; + + const offset1 = i1 * stride3; + const offset0 = offset1 - stride3; + + const s2 = - 2 * ppp + 3 * pp; + const s3 = ppp - pp; + const s0 = 1 - s2; + const s1 = s3 - pp + p; + + // Layout of keyframe output values for CUBICSPLINE animations: + // [ inTangent_1, splineVertex_1, outTangent_1, inTangent_2, splineVertex_2, ... ] + for ( let i = 0; i !== stride; i ++ ) { + + const p0 = values[ offset0 + i + stride ]; // splineVertex_k + const m0 = values[ offset0 + i + stride2 ] * td; // outTangent_k * (t_k+1 - t_k) + const p1 = values[ offset1 + i + stride ]; // splineVertex_k+1 + const m1 = values[ offset1 + i ] * td; // inTangent_k+1 * (t_k+1 - t_k) + + result[ i ] = s0 * p0 + s1 * m0 + s2 * p1 + s3 * m1; + + } + + return result; + + } + +} + +const _q = new Quaternion(); + +class GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant { + + interpolate_( i1, t0, t, t1 ) { + + const result = super.interpolate_( i1, t0, t, t1 ); + + _q.fromArray( result ).normalize().toArray( result ); + + return result; + + } + +} + + +/*********************************/ +/********** INTERNALS ************/ +/*********************************/ + +/* CONSTANTS */ + +const WEBGL_CONSTANTS = { + FLOAT: 5126, + //FLOAT_MAT2: 35674, + FLOAT_MAT3: 35675, + FLOAT_MAT4: 35676, + FLOAT_VEC2: 35664, + FLOAT_VEC3: 35665, + FLOAT_VEC4: 35666, + LINEAR: 9729, + REPEAT: 10497, + SAMPLER_2D: 35678, + POINTS: 0, + LINES: 1, + LINE_LOOP: 2, + LINE_STRIP: 3, + TRIANGLES: 4, + TRIANGLE_STRIP: 5, + TRIANGLE_FAN: 6, + UNSIGNED_BYTE: 5121, + UNSIGNED_SHORT: 5123 +}; + +const WEBGL_COMPONENT_TYPES = { + 5120: Int8Array, + 5121: Uint8Array, + 5122: Int16Array, + 5123: Uint16Array, + 5125: Uint32Array, + 5126: Float32Array +}; + +const WEBGL_FILTERS = { + 9728: NearestFilter, + 9729: LinearFilter, + 9984: NearestMipmapNearestFilter, + 9985: LinearMipmapNearestFilter, + 9986: NearestMipmapLinearFilter, + 9987: LinearMipmapLinearFilter +}; + +const WEBGL_WRAPPINGS = { + 33071: ClampToEdgeWrapping, + 33648: MirroredRepeatWrapping, + 10497: RepeatWrapping +}; + +const WEBGL_TYPE_SIZES = { + 'SCALAR': 1, + 'VEC2': 2, + 'VEC3': 3, + 'VEC4': 4, + 'MAT2': 4, + 'MAT3': 9, + 'MAT4': 16 +}; + +const ATTRIBUTES = { + POSITION: 'position', + NORMAL: 'normal', + TANGENT: 'tangent', + TEXCOORD_0: 'uv', + TEXCOORD_1: 'uv1', + TEXCOORD_2: 'uv2', + TEXCOORD_3: 'uv3', + COLOR_0: 'color', + WEIGHTS_0: 'skinWeight', + JOINTS_0: 'skinIndex', +}; + +const PATH_PROPERTIES = { + scale: 'scale', + translation: 'position', + rotation: 'quaternion', + weights: 'morphTargetInfluences' +}; + +const INTERPOLATION = { + CUBICSPLINE: undefined, // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each + // keyframe track will be initialized with a default interpolation type, then modified. + LINEAR: InterpolateLinear, + STEP: InterpolateDiscrete +}; + +const ALPHA_MODES = { + OPAQUE: 'OPAQUE', + MASK: 'MASK', + BLEND: 'BLEND' +}; + +/** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#default-material + * + * @param {Object} cache + * @return {Material} + */ +function createDefaultMaterial( cache ) { + + if ( cache[ 'DefaultMaterial' ] === undefined ) { + + cache[ 'DefaultMaterial' ] = new MeshStandardMaterial( { + color: 0xFFFFFF, + emissive: 0x000000, + metalness: 1, + roughness: 1, + transparent: false, + depthTest: true, + side: FrontSide + } ); + + } + + return cache[ 'DefaultMaterial' ]; + +} + +function addUnknownExtensionsToUserData( knownExtensions, object, objectDef ) { + + // Add unknown glTF extensions to an object's userData. + + for ( const name in objectDef.extensions ) { + + if ( knownExtensions[ name ] === undefined ) { + + object.userData.gltfExtensions = object.userData.gltfExtensions || {}; + object.userData.gltfExtensions[ name ] = objectDef.extensions[ name ]; + + } + + } + +} + +/** + * @param {Object3D|Material|BufferGeometry} object + * @param {GLTF.definition} gltfDef + */ +function assignExtrasToUserData( object, gltfDef ) { + + if ( gltfDef.extras !== undefined ) { + + if ( typeof gltfDef.extras === 'object' ) { + + Object.assign( object.userData, gltfDef.extras ); + + } else { + + console.warn( 'THREE.GLTFLoader: Ignoring primitive type .extras, ' + gltfDef.extras ); + + } + + } + +} + +/** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#morph-targets + * + * @param {BufferGeometry} geometry + * @param {Array} targets + * @param {GLTFParser} parser + * @return {Promise} + */ +function addMorphTargets( geometry, targets, parser ) { + + let hasMorphPosition = false; + let hasMorphNormal = false; + let hasMorphColor = false; + + for ( let i = 0, il = targets.length; i < il; i ++ ) { + + const target = targets[ i ]; + + if ( target.POSITION !== undefined ) hasMorphPosition = true; + if ( target.NORMAL !== undefined ) hasMorphNormal = true; + if ( target.COLOR_0 !== undefined ) hasMorphColor = true; + + if ( hasMorphPosition && hasMorphNormal && hasMorphColor ) break; + + } + + if ( ! hasMorphPosition && ! hasMorphNormal && ! hasMorphColor ) return Promise.resolve( geometry ); + + const pendingPositionAccessors = []; + const pendingNormalAccessors = []; + const pendingColorAccessors = []; + + for ( let i = 0, il = targets.length; i < il; i ++ ) { + + const target = targets[ i ]; + + if ( hasMorphPosition ) { + + const pendingAccessor = target.POSITION !== undefined + ? parser.getDependency( 'accessor', target.POSITION ) + : geometry.attributes.position; + + pendingPositionAccessors.push( pendingAccessor ); + + } + + if ( hasMorphNormal ) { + + const pendingAccessor = target.NORMAL !== undefined + ? parser.getDependency( 'accessor', target.NORMAL ) + : geometry.attributes.normal; + + pendingNormalAccessors.push( pendingAccessor ); + + } + + if ( hasMorphColor ) { + + const pendingAccessor = target.COLOR_0 !== undefined + ? parser.getDependency( 'accessor', target.COLOR_0 ) + : geometry.attributes.color; + + pendingColorAccessors.push( pendingAccessor ); + + } + + } + + return Promise.all( [ + Promise.all( pendingPositionAccessors ), + Promise.all( pendingNormalAccessors ), + Promise.all( pendingColorAccessors ) + ] ).then( function ( accessors ) { + + const morphPositions = accessors[ 0 ]; + const morphNormals = accessors[ 1 ]; + const morphColors = accessors[ 2 ]; + + if ( hasMorphPosition ) geometry.morphAttributes.position = morphPositions; + if ( hasMorphNormal ) geometry.morphAttributes.normal = morphNormals; + if ( hasMorphColor ) geometry.morphAttributes.color = morphColors; + geometry.morphTargetsRelative = true; + + return geometry; + + } ); + +} + +/** + * @param {Mesh} mesh + * @param {GLTF.Mesh} meshDef + */ +function updateMorphTargets( mesh, meshDef ) { + + mesh.updateMorphTargets(); + + if ( meshDef.weights !== undefined ) { + + for ( let i = 0, il = meshDef.weights.length; i < il; i ++ ) { + + mesh.morphTargetInfluences[ i ] = meshDef.weights[ i ]; + + } + + } + + // .extras has user-defined data, so check that .extras.targetNames is an array. + if ( meshDef.extras && Array.isArray( meshDef.extras.targetNames ) ) { + + const targetNames = meshDef.extras.targetNames; + + if ( mesh.morphTargetInfluences.length === targetNames.length ) { + + mesh.morphTargetDictionary = {}; + + for ( let i = 0, il = targetNames.length; i < il; i ++ ) { + + mesh.morphTargetDictionary[ targetNames[ i ] ] = i; + + } + + } else { + + console.warn( 'THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.' ); + + } + + } + +} + +function createPrimitiveKey( primitiveDef ) { + + let geometryKey; + + const dracoExtension = primitiveDef.extensions && primitiveDef.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ]; + + if ( dracoExtension ) { + + geometryKey = 'draco:' + dracoExtension.bufferView + + ':' + dracoExtension.indices + + ':' + createAttributesKey( dracoExtension.attributes ); + + } else { + + geometryKey = primitiveDef.indices + ':' + createAttributesKey( primitiveDef.attributes ) + ':' + primitiveDef.mode; + + } + + if ( primitiveDef.targets !== undefined ) { + + for ( let i = 0, il = primitiveDef.targets.length; i < il; i ++ ) { + + geometryKey += ':' + createAttributesKey( primitiveDef.targets[ i ] ); + + } + + } + + return geometryKey; + +} + +function createAttributesKey( attributes ) { + + let attributesKey = ''; + + const keys = Object.keys( attributes ).sort(); + + for ( let i = 0, il = keys.length; i < il; i ++ ) { + + attributesKey += keys[ i ] + ':' + attributes[ keys[ i ] ] + ';'; + + } + + return attributesKey; + +} + +function getNormalizedComponentScale( constructor ) { + + // Reference: + // https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_mesh_quantization#encoding-quantized-data + + switch ( constructor ) { + + case Int8Array: + return 1 / 127; + + case Uint8Array: + return 1 / 255; + + case Int16Array: + return 1 / 32767; + + case Uint16Array: + return 1 / 65535; + + default: + throw new Error( 'THREE.GLTFLoader: Unsupported normalized accessor component type.' ); + + } + +} + +function getImageURIMimeType( uri ) { + + if ( uri.search( /\.jpe?g($|\?)/i ) > 0 || uri.search( /^data\:image\/jpeg/ ) === 0 ) return 'image/jpeg'; + if ( uri.search( /\.webp($|\?)/i ) > 0 || uri.search( /^data\:image\/webp/ ) === 0 ) return 'image/webp'; + if ( uri.search( /\.ktx2($|\?)/i ) > 0 || uri.search( /^data\:image\/ktx2/ ) === 0 ) return 'image/ktx2'; + + return 'image/png'; + +} + +const _identityMatrix = new Matrix4(); + +/* GLTF PARSER */ + +class GLTFParser { + + constructor( json = {}, options = {} ) { + + this.json = json; + this.extensions = {}; + this.plugins = {}; + this.options = options; + + // loader object cache + this.cache = new GLTFRegistry(); + + // associations between Three.js objects and glTF elements + this.associations = new Map(); + + // BufferGeometry caching + this.primitiveCache = {}; + + // Node cache + this.nodeCache = {}; + + // Object3D instance caches + this.meshCache = { refs: {}, uses: {} }; + this.cameraCache = { refs: {}, uses: {} }; + this.lightCache = { refs: {}, uses: {} }; + + this.sourceCache = {}; + this.textureCache = {}; + + // Track node names, to ensure no duplicates + this.nodeNamesUsed = {}; + + // Use an ImageBitmapLoader if imageBitmaps are supported. Moves much of the + // expensive work of uploading a texture to the GPU off the main thread. + + let isSafari = false; + let safariVersion = - 1; + let isFirefox = false; + let firefoxVersion = - 1; + + if ( typeof navigator !== 'undefined' ) { + + const userAgent = navigator.userAgent; + + isSafari = /^((?!chrome|android).)*safari/i.test( userAgent ) === true; + const safariMatch = userAgent.match( /Version\/(\d+)/ ); + safariVersion = isSafari && safariMatch ? parseInt( safariMatch[ 1 ], 10 ) : - 1; + + isFirefox = userAgent.indexOf( 'Firefox' ) > - 1; + firefoxVersion = isFirefox ? userAgent.match( /Firefox\/([0-9]+)\./ )[ 1 ] : - 1; + + } + + if ( typeof createImageBitmap === 'undefined' || ( isSafari && safariVersion < 17 ) || ( isFirefox && firefoxVersion < 98 ) ) { + + this.textureLoader = new TextureLoader( this.options.manager ); + + } else { + + this.textureLoader = new ImageBitmapLoader( this.options.manager ); + + } + + this.textureLoader.setCrossOrigin( this.options.crossOrigin ); + this.textureLoader.setRequestHeader( this.options.requestHeader ); + + this.fileLoader = new FileLoader( this.options.manager ); + this.fileLoader.setResponseType( 'arraybuffer' ); + + if ( this.options.crossOrigin === 'use-credentials' ) { + + this.fileLoader.setWithCredentials( true ); + + } + + } + + setExtensions( extensions ) { + + this.extensions = extensions; + + } + + setPlugins( plugins ) { + + this.plugins = plugins; + + } + + parse( onLoad, onError ) { + + const parser = this; + const json = this.json; + const extensions = this.extensions; + + // Clear the loader cache + this.cache.removeAll(); + this.nodeCache = {}; + + // Mark the special nodes/meshes in json for efficient parse + this._invokeAll( function ( ext ) { + + return ext._markDefs && ext._markDefs(); + + } ); + + Promise.all( this._invokeAll( function ( ext ) { + + return ext.beforeRoot && ext.beforeRoot(); + + } ) ).then( function () { + + return Promise.all( [ + + parser.getDependencies( 'scene' ), + parser.getDependencies( 'animation' ), + parser.getDependencies( 'camera' ), + + ] ); + + } ).then( function ( dependencies ) { + + const result = { + scene: dependencies[ 0 ][ json.scene || 0 ], + scenes: dependencies[ 0 ], + animations: dependencies[ 1 ], + cameras: dependencies[ 2 ], + asset: json.asset, + parser: parser, + userData: {} + }; + + addUnknownExtensionsToUserData( extensions, result, json ); + + assignExtrasToUserData( result, json ); + + return Promise.all( parser._invokeAll( function ( ext ) { + + return ext.afterRoot && ext.afterRoot( result ); + + } ) ).then( function () { + + for ( const scene of result.scenes ) { + + scene.updateMatrixWorld(); + + } + + onLoad( result ); + + } ); + + } ).catch( onError ); + + } + + /** + * Marks the special nodes/meshes in json for efficient parse. + */ + _markDefs() { + + const nodeDefs = this.json.nodes || []; + const skinDefs = this.json.skins || []; + const meshDefs = this.json.meshes || []; + + // Nothing in the node definition indicates whether it is a Bone or an + // Object3D. Use the skins' joint references to mark bones. + for ( let skinIndex = 0, skinLength = skinDefs.length; skinIndex < skinLength; skinIndex ++ ) { + + const joints = skinDefs[ skinIndex ].joints; + + for ( let i = 0, il = joints.length; i < il; i ++ ) { + + nodeDefs[ joints[ i ] ].isBone = true; + + } + + } + + // Iterate over all nodes, marking references to shared resources, + // as well as skeleton joints. + for ( let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex ++ ) { + + const nodeDef = nodeDefs[ nodeIndex ]; + + if ( nodeDef.mesh !== undefined ) { + + this._addNodeRef( this.meshCache, nodeDef.mesh ); + + // Nothing in the mesh definition indicates whether it is + // a SkinnedMesh or Mesh. Use the node's mesh reference + // to mark SkinnedMesh if node has skin. + if ( nodeDef.skin !== undefined ) { + + meshDefs[ nodeDef.mesh ].isSkinnedMesh = true; + + } + + } + + if ( nodeDef.camera !== undefined ) { + + this._addNodeRef( this.cameraCache, nodeDef.camera ); + + } + + } + + } + + /** + * Counts references to shared node / Object3D resources. These resources + * can be reused, or "instantiated", at multiple nodes in the scene + * hierarchy. Mesh, Camera, and Light instances are instantiated and must + * be marked. Non-scenegraph resources (like Materials, Geometries, and + * Textures) can be reused directly and are not marked here. + * + * Example: CesiumMilkTruck sample model reuses "Wheel" meshes. + * + * @param {Object} cache + * @param {Object3D} index + */ + _addNodeRef( cache, index ) { + + if ( index === undefined ) return; + + if ( cache.refs[ index ] === undefined ) { + + cache.refs[ index ] = cache.uses[ index ] = 0; + + } + + cache.refs[ index ] ++; + + } + + /** + * Returns a reference to a shared resource, cloning it if necessary. + * + * @param {Object} cache + * @param {number} index + * @param {Object} object + * @return {Object} + */ + _getNodeRef( cache, index, object ) { + + if ( cache.refs[ index ] <= 1 ) return object; + + const ref = object.clone(); + + // Propagates mappings to the cloned object, prevents mappings on the + // original object from being lost. + const updateMappings = ( original, clone ) => { + + const mappings = this.associations.get( original ); + if ( mappings != null ) { + + this.associations.set( clone, mappings ); + + } + + for ( const [ i, child ] of original.children.entries() ) { + + updateMappings( child, clone.children[ i ] ); + + } + + }; + + updateMappings( object, ref ); + + ref.name += '_instance_' + ( cache.uses[ index ] ++ ); + + return ref; + + } + + _invokeOne( func ) { + + const extensions = Object.values( this.plugins ); + extensions.push( this ); + + for ( let i = 0; i < extensions.length; i ++ ) { + + const result = func( extensions[ i ] ); + + if ( result ) return result; + + } + + return null; + + } + + _invokeAll( func ) { + + const extensions = Object.values( this.plugins ); + extensions.unshift( this ); + + const pending = []; + + for ( let i = 0; i < extensions.length; i ++ ) { + + const result = func( extensions[ i ] ); + + if ( result ) pending.push( result ); + + } + + return pending; + + } + + /** + * Requests the specified dependency asynchronously, with caching. + * @param {string} type + * @param {number} index + * @return {Promise} + */ + getDependency( type, index ) { + + const cacheKey = type + ':' + index; + let dependency = this.cache.get( cacheKey ); + + if ( ! dependency ) { + + switch ( type ) { + + case 'scene': + dependency = this.loadScene( index ); + break; + + case 'node': + dependency = this._invokeOne( function ( ext ) { + + return ext.loadNode && ext.loadNode( index ); + + } ); + break; + + case 'mesh': + dependency = this._invokeOne( function ( ext ) { + + return ext.loadMesh && ext.loadMesh( index ); + + } ); + break; + + case 'accessor': + dependency = this.loadAccessor( index ); + break; + + case 'bufferView': + dependency = this._invokeOne( function ( ext ) { + + return ext.loadBufferView && ext.loadBufferView( index ); + + } ); + break; + + case 'buffer': + dependency = this.loadBuffer( index ); + break; + + case 'material': + dependency = this._invokeOne( function ( ext ) { + + return ext.loadMaterial && ext.loadMaterial( index ); + + } ); + break; + + case 'texture': + dependency = this._invokeOne( function ( ext ) { + + return ext.loadTexture && ext.loadTexture( index ); + + } ); + break; + + case 'skin': + dependency = this.loadSkin( index ); + break; + + case 'animation': + dependency = this._invokeOne( function ( ext ) { + + return ext.loadAnimation && ext.loadAnimation( index ); + + } ); + break; + + case 'camera': + dependency = this.loadCamera( index ); + break; + + default: + dependency = this._invokeOne( function ( ext ) { + + return ext != this && ext.getDependency && ext.getDependency( type, index ); + + } ); + + if ( ! dependency ) { + + throw new Error( 'Unknown type: ' + type ); + + } + + break; + + } + + this.cache.add( cacheKey, dependency ); + + } + + return dependency; + + } + + /** + * Requests all dependencies of the specified type asynchronously, with caching. + * @param {string} type + * @return {Promise>} + */ + getDependencies( type ) { + + let dependencies = this.cache.get( type ); + + if ( ! dependencies ) { + + const parser = this; + const defs = this.json[ type + ( type === 'mesh' ? 'es' : 's' ) ] || []; + + dependencies = Promise.all( defs.map( function ( def, index ) { + + return parser.getDependency( type, index ); + + } ) ); + + this.cache.add( type, dependencies ); + + } + + return dependencies; + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views + * @param {number} bufferIndex + * @return {Promise} + */ + loadBuffer( bufferIndex ) { + + const bufferDef = this.json.buffers[ bufferIndex ]; + const loader = this.fileLoader; + + if ( bufferDef.type && bufferDef.type !== 'arraybuffer' ) { + + throw new Error( 'THREE.GLTFLoader: ' + bufferDef.type + ' buffer type is not supported.' ); + + } + + // If present, GLB container is required to be the first buffer. + if ( bufferDef.uri === undefined && bufferIndex === 0 ) { + + return Promise.resolve( this.extensions[ EXTENSIONS.KHR_BINARY_GLTF ].body ); + + } + + const options = this.options; + + return new Promise( function ( resolve, reject ) { + + loader.load( LoaderUtils.resolveURL( bufferDef.uri, options.path ), resolve, undefined, function () { + + reject( new Error( 'THREE.GLTFLoader: Failed to load buffer "' + bufferDef.uri + '".' ) ); + + } ); + + } ); + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views + * @param {number} bufferViewIndex + * @return {Promise} + */ + loadBufferView( bufferViewIndex ) { + + const bufferViewDef = this.json.bufferViews[ bufferViewIndex ]; + + return this.getDependency( 'buffer', bufferViewDef.buffer ).then( function ( buffer ) { + + const byteLength = bufferViewDef.byteLength || 0; + const byteOffset = bufferViewDef.byteOffset || 0; + return buffer.slice( byteOffset, byteOffset + byteLength ); + + } ); + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors + * @param {number} accessorIndex + * @return {Promise} + */ + loadAccessor( accessorIndex ) { + + const parser = this; + const json = this.json; + + const accessorDef = this.json.accessors[ accessorIndex ]; + + if ( accessorDef.bufferView === undefined && accessorDef.sparse === undefined ) { + + const itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ]; + const TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ]; + const normalized = accessorDef.normalized === true; + + const array = new TypedArray( accessorDef.count * itemSize ); + return Promise.resolve( new BufferAttribute( array, itemSize, normalized ) ); + + } + + const pendingBufferViews = []; + + if ( accessorDef.bufferView !== undefined ) { + + pendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.bufferView ) ); + + } else { + + pendingBufferViews.push( null ); + + } + + if ( accessorDef.sparse !== undefined ) { + + pendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.indices.bufferView ) ); + pendingBufferViews.push( this.getDependency( 'bufferView', accessorDef.sparse.values.bufferView ) ); + + } + + return Promise.all( pendingBufferViews ).then( function ( bufferViews ) { + + const bufferView = bufferViews[ 0 ]; + + const itemSize = WEBGL_TYPE_SIZES[ accessorDef.type ]; + const TypedArray = WEBGL_COMPONENT_TYPES[ accessorDef.componentType ]; + + // For VEC3: itemSize is 3, elementBytes is 4, itemBytes is 12. + const elementBytes = TypedArray.BYTES_PER_ELEMENT; + const itemBytes = elementBytes * itemSize; + const byteOffset = accessorDef.byteOffset || 0; + const byteStride = accessorDef.bufferView !== undefined ? json.bufferViews[ accessorDef.bufferView ].byteStride : undefined; + const normalized = accessorDef.normalized === true; + let array, bufferAttribute; + + // The buffer is not interleaved if the stride is the item size in bytes. + if ( byteStride && byteStride !== itemBytes ) { + + // Each "slice" of the buffer, as defined by 'count' elements of 'byteStride' bytes, gets its own InterleavedBuffer + // This makes sure that IBA.count reflects accessor.count properly + const ibSlice = Math.floor( byteOffset / byteStride ); + const ibCacheKey = 'InterleavedBuffer:' + accessorDef.bufferView + ':' + accessorDef.componentType + ':' + ibSlice + ':' + accessorDef.count; + let ib = parser.cache.get( ibCacheKey ); + + if ( ! ib ) { + + array = new TypedArray( bufferView, ibSlice * byteStride, accessorDef.count * byteStride / elementBytes ); + + // Integer parameters to IB/IBA are in array elements, not bytes. + ib = new InterleavedBuffer( array, byteStride / elementBytes ); + + parser.cache.add( ibCacheKey, ib ); + + } + + bufferAttribute = new InterleavedBufferAttribute( ib, itemSize, ( byteOffset % byteStride ) / elementBytes, normalized ); + + } else { + + if ( bufferView === null ) { + + array = new TypedArray( accessorDef.count * itemSize ); + + } else { + + array = new TypedArray( bufferView, byteOffset, accessorDef.count * itemSize ); + + } + + bufferAttribute = new BufferAttribute( array, itemSize, normalized ); + + } + + // https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#sparse-accessors + if ( accessorDef.sparse !== undefined ) { + + const itemSizeIndices = WEBGL_TYPE_SIZES.SCALAR; + const TypedArrayIndices = WEBGL_COMPONENT_TYPES[ accessorDef.sparse.indices.componentType ]; + + const byteOffsetIndices = accessorDef.sparse.indices.byteOffset || 0; + const byteOffsetValues = accessorDef.sparse.values.byteOffset || 0; + + const sparseIndices = new TypedArrayIndices( bufferViews[ 1 ], byteOffsetIndices, accessorDef.sparse.count * itemSizeIndices ); + const sparseValues = new TypedArray( bufferViews[ 2 ], byteOffsetValues, accessorDef.sparse.count * itemSize ); + + if ( bufferView !== null ) { + + // Avoid modifying the original ArrayBuffer, if the bufferView wasn't initialized with zeroes. + bufferAttribute = new BufferAttribute( bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized ); + + } + + // Ignore normalized since we copy from sparse + bufferAttribute.normalized = false; + + for ( let i = 0, il = sparseIndices.length; i < il; i ++ ) { + + const index = sparseIndices[ i ]; + + bufferAttribute.setX( index, sparseValues[ i * itemSize ] ); + if ( itemSize >= 2 ) bufferAttribute.setY( index, sparseValues[ i * itemSize + 1 ] ); + if ( itemSize >= 3 ) bufferAttribute.setZ( index, sparseValues[ i * itemSize + 2 ] ); + if ( itemSize >= 4 ) bufferAttribute.setW( index, sparseValues[ i * itemSize + 3 ] ); + if ( itemSize >= 5 ) throw new Error( 'THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.' ); + + } + + bufferAttribute.normalized = normalized; + + } + + return bufferAttribute; + + } ); + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures + * @param {number} textureIndex + * @return {Promise} + */ + loadTexture( textureIndex ) { + + const json = this.json; + const options = this.options; + const textureDef = json.textures[ textureIndex ]; + const sourceIndex = textureDef.source; + const sourceDef = json.images[ sourceIndex ]; + + let loader = this.textureLoader; + + if ( sourceDef.uri ) { + + const handler = options.manager.getHandler( sourceDef.uri ); + if ( handler !== null ) loader = handler; + + } + + return this.loadTextureImage( textureIndex, sourceIndex, loader ); + + } + + loadTextureImage( textureIndex, sourceIndex, loader ) { + + const parser = this; + const json = this.json; + + const textureDef = json.textures[ textureIndex ]; + const sourceDef = json.images[ sourceIndex ]; + + const cacheKey = ( sourceDef.uri || sourceDef.bufferView ) + ':' + textureDef.sampler; + + if ( this.textureCache[ cacheKey ] ) { + + // See https://github.com/mrdoob/three.js/issues/21559. + return this.textureCache[ cacheKey ]; + + } + + const promise = this.loadImageSource( sourceIndex, loader ).then( function ( texture ) { + + texture.flipY = false; + + texture.name = textureDef.name || sourceDef.name || ''; + + if ( texture.name === '' && typeof sourceDef.uri === 'string' && sourceDef.uri.startsWith( 'data:image/' ) === false ) { + + texture.name = sourceDef.uri; + + } + + const samplers = json.samplers || {}; + const sampler = samplers[ textureDef.sampler ] || {}; + + texture.magFilter = WEBGL_FILTERS[ sampler.magFilter ] || LinearFilter; + texture.minFilter = WEBGL_FILTERS[ sampler.minFilter ] || LinearMipmapLinearFilter; + texture.wrapS = WEBGL_WRAPPINGS[ sampler.wrapS ] || RepeatWrapping; + texture.wrapT = WEBGL_WRAPPINGS[ sampler.wrapT ] || RepeatWrapping; + texture.generateMipmaps = ! texture.isCompressedTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter; + + parser.associations.set( texture, { textures: textureIndex } ); + + return texture; + + } ).catch( function () { + + return null; + + } ); + + this.textureCache[ cacheKey ] = promise; + + return promise; + + } + + loadImageSource( sourceIndex, loader ) { + + const parser = this; + const json = this.json; + const options = this.options; + + if ( this.sourceCache[ sourceIndex ] !== undefined ) { + + return this.sourceCache[ sourceIndex ].then( ( texture ) => texture.clone() ); + + } + + const sourceDef = json.images[ sourceIndex ]; + + const URL = self.URL || self.webkitURL; + + let sourceURI = sourceDef.uri || ''; + let isObjectURL = false; + + if ( sourceDef.bufferView !== undefined ) { + + // Load binary image data from bufferView, if provided. + + sourceURI = parser.getDependency( 'bufferView', sourceDef.bufferView ).then( function ( bufferView ) { + + isObjectURL = true; + const blob = new Blob( [ bufferView ], { type: sourceDef.mimeType } ); + sourceURI = URL.createObjectURL( blob ); + return sourceURI; + + } ); + + } else if ( sourceDef.uri === undefined ) { + + throw new Error( 'THREE.GLTFLoader: Image ' + sourceIndex + ' is missing URI and bufferView' ); + + } + + const promise = Promise.resolve( sourceURI ).then( function ( sourceURI ) { + + return new Promise( function ( resolve, reject ) { + + let onLoad = resolve; + + if ( loader.isImageBitmapLoader === true ) { + + onLoad = function ( imageBitmap ) { + + const texture = new Texture( imageBitmap ); + texture.needsUpdate = true; + + resolve( texture ); + + }; + + } + + loader.load( LoaderUtils.resolveURL( sourceURI, options.path ), onLoad, undefined, reject ); + + } ); + + } ).then( function ( texture ) { + + // Clean up resources and configure Texture. + + if ( isObjectURL === true ) { + + URL.revokeObjectURL( sourceURI ); + + } + + assignExtrasToUserData( texture, sourceDef ); + + texture.userData.mimeType = sourceDef.mimeType || getImageURIMimeType( sourceDef.uri ); + + return texture; + + } ).catch( function ( error ) { + + console.error( 'THREE.GLTFLoader: Couldn\'t load texture', sourceURI ); + throw error; + + } ); + + this.sourceCache[ sourceIndex ] = promise; + return promise; + + } + + /** + * Asynchronously assigns a texture to the given material parameters. + * + * @param {Object} materialParams + * @param {string} mapName + * @param {Object} mapDef + * @param {string} colorSpace + * @return {Promise} + */ + assignTexture( materialParams, mapName, mapDef, colorSpace ) { + + const parser = this; + + return this.getDependency( 'texture', mapDef.index ).then( function ( texture ) { + + if ( ! texture ) return null; + + if ( mapDef.texCoord !== undefined && mapDef.texCoord > 0 ) { + + texture = texture.clone(); + texture.channel = mapDef.texCoord; + + } + + if ( parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] ) { + + const transform = mapDef.extensions !== undefined ? mapDef.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ] : undefined; + + if ( transform ) { + + const gltfReference = parser.associations.get( texture ); + texture = parser.extensions[ EXTENSIONS.KHR_TEXTURE_TRANSFORM ].extendTexture( texture, transform ); + parser.associations.set( texture, gltfReference ); + + } + + } + + if ( colorSpace !== undefined ) { + + texture.colorSpace = colorSpace; + + } + + materialParams[ mapName ] = texture; + + return texture; + + } ); + + } + + /** + * Assigns final material to a Mesh, Line, or Points instance. The instance + * already has a material (generated from the glTF material options alone) + * but reuse of the same glTF material may require multiple threejs materials + * to accommodate different primitive types, defines, etc. New materials will + * be created if necessary, and reused from a cache. + * @param {Object3D} mesh Mesh, Line, or Points instance. + */ + assignFinalMaterial( mesh ) { + + const geometry = mesh.geometry; + let material = mesh.material; + + const useDerivativeTangents = geometry.attributes.tangent === undefined; + const useVertexColors = geometry.attributes.color !== undefined; + const useFlatShading = geometry.attributes.normal === undefined; + + if ( mesh.isPoints ) { + + const cacheKey = 'PointsMaterial:' + material.uuid; + + let pointsMaterial = this.cache.get( cacheKey ); + + if ( ! pointsMaterial ) { + + pointsMaterial = new PointsMaterial(); + Material.prototype.copy.call( pointsMaterial, material ); + pointsMaterial.color.copy( material.color ); + pointsMaterial.map = material.map; + pointsMaterial.sizeAttenuation = false; // glTF spec says points should be 1px + + this.cache.add( cacheKey, pointsMaterial ); + + } + + material = pointsMaterial; + + } else if ( mesh.isLine ) { + + const cacheKey = 'LineBasicMaterial:' + material.uuid; + + let lineMaterial = this.cache.get( cacheKey ); + + if ( ! lineMaterial ) { + + lineMaterial = new LineBasicMaterial(); + Material.prototype.copy.call( lineMaterial, material ); + lineMaterial.color.copy( material.color ); + lineMaterial.map = material.map; + + this.cache.add( cacheKey, lineMaterial ); + + } + + material = lineMaterial; + + } + + // Clone the material if it will be modified + if ( useDerivativeTangents || useVertexColors || useFlatShading ) { + + let cacheKey = 'ClonedMaterial:' + material.uuid + ':'; + + if ( useDerivativeTangents ) cacheKey += 'derivative-tangents:'; + if ( useVertexColors ) cacheKey += 'vertex-colors:'; + if ( useFlatShading ) cacheKey += 'flat-shading:'; + + let cachedMaterial = this.cache.get( cacheKey ); + + if ( ! cachedMaterial ) { + + cachedMaterial = material.clone(); + + if ( useVertexColors ) cachedMaterial.vertexColors = true; + if ( useFlatShading ) cachedMaterial.flatShading = true; + + if ( useDerivativeTangents ) { + + // https://github.com/mrdoob/three.js/issues/11438#issuecomment-507003995 + if ( cachedMaterial.normalScale ) cachedMaterial.normalScale.y *= - 1; + if ( cachedMaterial.clearcoatNormalScale ) cachedMaterial.clearcoatNormalScale.y *= - 1; + + } + + this.cache.add( cacheKey, cachedMaterial ); + + this.associations.set( cachedMaterial, this.associations.get( material ) ); + + } + + material = cachedMaterial; + + } + + mesh.material = material; + + } + + getMaterialType( /* materialIndex */ ) { + + return MeshStandardMaterial; + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials + * @param {number} materialIndex + * @return {Promise} + */ + loadMaterial( materialIndex ) { + + const parser = this; + const json = this.json; + const extensions = this.extensions; + const materialDef = json.materials[ materialIndex ]; + + let materialType; + const materialParams = {}; + const materialExtensions = materialDef.extensions || {}; + + const pending = []; + + if ( materialExtensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ] ) { + + const kmuExtension = extensions[ EXTENSIONS.KHR_MATERIALS_UNLIT ]; + materialType = kmuExtension.getMaterialType(); + pending.push( kmuExtension.extendParams( materialParams, materialDef, parser ) ); + + } else { + + // Specification: + // https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material + + const metallicRoughness = materialDef.pbrMetallicRoughness || {}; + + materialParams.color = new Color( 1.0, 1.0, 1.0 ); + materialParams.opacity = 1.0; + + if ( Array.isArray( metallicRoughness.baseColorFactor ) ) { + + const array = metallicRoughness.baseColorFactor; + + materialParams.color.setRGB( array[ 0 ], array[ 1 ], array[ 2 ], LinearSRGBColorSpace ); + materialParams.opacity = array[ 3 ]; + + } + + if ( metallicRoughness.baseColorTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) ); + + } + + materialParams.metalness = metallicRoughness.metallicFactor !== undefined ? metallicRoughness.metallicFactor : 1.0; + materialParams.roughness = metallicRoughness.roughnessFactor !== undefined ? metallicRoughness.roughnessFactor : 1.0; + + if ( metallicRoughness.metallicRoughnessTexture !== undefined ) { + + pending.push( parser.assignTexture( materialParams, 'metalnessMap', metallicRoughness.metallicRoughnessTexture ) ); + pending.push( parser.assignTexture( materialParams, 'roughnessMap', metallicRoughness.metallicRoughnessTexture ) ); + + } + + materialType = this._invokeOne( function ( ext ) { + + return ext.getMaterialType && ext.getMaterialType( materialIndex ); + + } ); + + pending.push( Promise.all( this._invokeAll( function ( ext ) { + + return ext.extendMaterialParams && ext.extendMaterialParams( materialIndex, materialParams ); + + } ) ) ); + + } + + if ( materialDef.doubleSided === true ) { + + materialParams.side = DoubleSide; + + } + + const alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE; + + if ( alphaMode === ALPHA_MODES.BLEND ) { + + materialParams.transparent = true; + + // See: https://github.com/mrdoob/three.js/issues/17706 + materialParams.depthWrite = false; + + } else { + + materialParams.transparent = false; + + if ( alphaMode === ALPHA_MODES.MASK ) { + + materialParams.alphaTest = materialDef.alphaCutoff !== undefined ? materialDef.alphaCutoff : 0.5; + + } + + } + + if ( materialDef.normalTexture !== undefined && materialType !== MeshBasicMaterial ) { + + pending.push( parser.assignTexture( materialParams, 'normalMap', materialDef.normalTexture ) ); + + materialParams.normalScale = new Vector2( 1, 1 ); + + if ( materialDef.normalTexture.scale !== undefined ) { + + const scale = materialDef.normalTexture.scale; + + materialParams.normalScale.set( scale, scale ); + + } + + } + + if ( materialDef.occlusionTexture !== undefined && materialType !== MeshBasicMaterial ) { + + pending.push( parser.assignTexture( materialParams, 'aoMap', materialDef.occlusionTexture ) ); + + if ( materialDef.occlusionTexture.strength !== undefined ) { + + materialParams.aoMapIntensity = materialDef.occlusionTexture.strength; + + } + + } + + if ( materialDef.emissiveFactor !== undefined && materialType !== MeshBasicMaterial ) { + + const emissiveFactor = materialDef.emissiveFactor; + materialParams.emissive = new Color().setRGB( emissiveFactor[ 0 ], emissiveFactor[ 1 ], emissiveFactor[ 2 ], LinearSRGBColorSpace ); + + } + + if ( materialDef.emissiveTexture !== undefined && materialType !== MeshBasicMaterial ) { + + pending.push( parser.assignTexture( materialParams, 'emissiveMap', materialDef.emissiveTexture, SRGBColorSpace ) ); + + } + + return Promise.all( pending ).then( function () { + + const material = new materialType( materialParams ); + + if ( materialDef.name ) material.name = materialDef.name; + + assignExtrasToUserData( material, materialDef ); + + parser.associations.set( material, { materials: materialIndex } ); + + if ( materialDef.extensions ) addUnknownExtensionsToUserData( extensions, material, materialDef ); + + return material; + + } ); + + } + + /** + * When Object3D instances are targeted by animation, they need unique names. + * + * @param {string} originalName + * @return {string} + */ + createUniqueName( originalName ) { + + const sanitizedName = PropertyBinding.sanitizeNodeName( originalName || '' ); + + if ( sanitizedName in this.nodeNamesUsed ) { + + return sanitizedName + '_' + ( ++ this.nodeNamesUsed[ sanitizedName ] ); + + } else { + + this.nodeNamesUsed[ sanitizedName ] = 0; + + return sanitizedName; + + } + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry + * + * Creates BufferGeometries from primitives. + * + * @param {Array} primitives + * @return {Promise>} + */ + loadGeometries( primitives ) { + + const parser = this; + const extensions = this.extensions; + const cache = this.primitiveCache; + + function createDracoPrimitive( primitive ) { + + return extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] + .decodePrimitive( primitive, parser ) + .then( function ( geometry ) { + + return addPrimitiveAttributes( geometry, primitive, parser ); + + } ); + + } + + const pending = []; + + for ( let i = 0, il = primitives.length; i < il; i ++ ) { + + const primitive = primitives[ i ]; + const cacheKey = createPrimitiveKey( primitive ); + + // See if we've already created this geometry + const cached = cache[ cacheKey ]; + + if ( cached ) { + + // Use the cached geometry if it exists + pending.push( cached.promise ); + + } else { + + let geometryPromise; + + if ( primitive.extensions && primitive.extensions[ EXTENSIONS.KHR_DRACO_MESH_COMPRESSION ] ) { + + // Use DRACO geometry if available + geometryPromise = createDracoPrimitive( primitive ); + + } else { + + // Otherwise create a new geometry + geometryPromise = addPrimitiveAttributes( new BufferGeometry(), primitive, parser ); + + } + + // Cache this geometry + cache[ cacheKey ] = { primitive: primitive, promise: geometryPromise }; + + pending.push( geometryPromise ); + + } + + } + + return Promise.all( pending ); + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes + * @param {number} meshIndex + * @return {Promise} + */ + loadMesh( meshIndex ) { + + const parser = this; + const json = this.json; + const extensions = this.extensions; + + const meshDef = json.meshes[ meshIndex ]; + const primitives = meshDef.primitives; + + const pending = []; + + for ( let i = 0, il = primitives.length; i < il; i ++ ) { + + const material = primitives[ i ].material === undefined + ? createDefaultMaterial( this.cache ) + : this.getDependency( 'material', primitives[ i ].material ); + + pending.push( material ); + + } + + pending.push( parser.loadGeometries( primitives ) ); + + return Promise.all( pending ).then( function ( results ) { + + const materials = results.slice( 0, results.length - 1 ); + const geometries = results[ results.length - 1 ]; + + const meshes = []; + + for ( let i = 0, il = geometries.length; i < il; i ++ ) { + + const geometry = geometries[ i ]; + const primitive = primitives[ i ]; + + // 1. create Mesh + + let mesh; + + const material = materials[ i ]; + + if ( primitive.mode === WEBGL_CONSTANTS.TRIANGLES || + primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP || + primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN || + primitive.mode === undefined ) { + + // .isSkinnedMesh isn't in glTF spec. See ._markDefs() + mesh = meshDef.isSkinnedMesh === true + ? new SkinnedMesh( geometry, material ) + : new Mesh( geometry, material ); + + if ( mesh.isSkinnedMesh === true ) { + + // normalize skin weights to fix malformed assets (see #15319) + mesh.normalizeSkinWeights(); + + } + + if ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP ) { + + mesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleStripDrawMode ); + + } else if ( primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ) { + + mesh.geometry = toTrianglesDrawMode( mesh.geometry, TriangleFanDrawMode ); + + } + + } else if ( primitive.mode === WEBGL_CONSTANTS.LINES ) { + + mesh = new LineSegments( geometry, material ); + + } else if ( primitive.mode === WEBGL_CONSTANTS.LINE_STRIP ) { + + mesh = new Line( geometry, material ); + + } else if ( primitive.mode === WEBGL_CONSTANTS.LINE_LOOP ) { + + mesh = new LineLoop( geometry, material ); + + } else if ( primitive.mode === WEBGL_CONSTANTS.POINTS ) { + + mesh = new Points( geometry, material ); + + } else { + + throw new Error( 'THREE.GLTFLoader: Primitive mode unsupported: ' + primitive.mode ); + + } + + if ( Object.keys( mesh.geometry.morphAttributes ).length > 0 ) { + + updateMorphTargets( mesh, meshDef ); + + } + + mesh.name = parser.createUniqueName( meshDef.name || ( 'mesh_' + meshIndex ) ); + + assignExtrasToUserData( mesh, meshDef ); + + if ( primitive.extensions ) addUnknownExtensionsToUserData( extensions, mesh, primitive ); + + parser.assignFinalMaterial( mesh ); + + meshes.push( mesh ); + + } + + for ( let i = 0, il = meshes.length; i < il; i ++ ) { + + parser.associations.set( meshes[ i ], { + meshes: meshIndex, + primitives: i + } ); + + } + + if ( meshes.length === 1 ) { + + if ( meshDef.extensions ) addUnknownExtensionsToUserData( extensions, meshes[ 0 ], meshDef ); + + return meshes[ 0 ]; + + } + + const group = new Group(); + + if ( meshDef.extensions ) addUnknownExtensionsToUserData( extensions, group, meshDef ); + + parser.associations.set( group, { meshes: meshIndex } ); + + for ( let i = 0, il = meshes.length; i < il; i ++ ) { + + group.add( meshes[ i ] ); + + } + + return group; + + } ); + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras + * @param {number} cameraIndex + * @return {Promise} + */ + loadCamera( cameraIndex ) { + + let camera; + const cameraDef = this.json.cameras[ cameraIndex ]; + const params = cameraDef[ cameraDef.type ]; + + if ( ! params ) { + + console.warn( 'THREE.GLTFLoader: Missing camera parameters.' ); + return; + + } + + if ( cameraDef.type === 'perspective' ) { + + camera = new PerspectiveCamera( MathUtils.radToDeg( params.yfov ), params.aspectRatio || 1, params.znear || 1, params.zfar || 2e6 ); + + } else if ( cameraDef.type === 'orthographic' ) { + + camera = new OrthographicCamera( - params.xmag, params.xmag, params.ymag, - params.ymag, params.znear, params.zfar ); + + } + + if ( cameraDef.name ) camera.name = this.createUniqueName( cameraDef.name ); + + assignExtrasToUserData( camera, cameraDef ); + + return Promise.resolve( camera ); + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins + * @param {number} skinIndex + * @return {Promise} + */ + loadSkin( skinIndex ) { + + const skinDef = this.json.skins[ skinIndex ]; + + const pending = []; + + for ( let i = 0, il = skinDef.joints.length; i < il; i ++ ) { + + pending.push( this._loadNodeShallow( skinDef.joints[ i ] ) ); + + } + + if ( skinDef.inverseBindMatrices !== undefined ) { + + pending.push( this.getDependency( 'accessor', skinDef.inverseBindMatrices ) ); + + } else { + + pending.push( null ); + + } + + return Promise.all( pending ).then( function ( results ) { + + const inverseBindMatrices = results.pop(); + const jointNodes = results; + + // Note that bones (joint nodes) may or may not be in the + // scene graph at this time. + + const bones = []; + const boneInverses = []; + + for ( let i = 0, il = jointNodes.length; i < il; i ++ ) { + + const jointNode = jointNodes[ i ]; + + if ( jointNode ) { + + bones.push( jointNode ); + + const mat = new Matrix4(); + + if ( inverseBindMatrices !== null ) { + + mat.fromArray( inverseBindMatrices.array, i * 16 ); + + } + + boneInverses.push( mat ); + + } else { + + console.warn( 'THREE.GLTFLoader: Joint "%s" could not be found.', skinDef.joints[ i ] ); + + } + + } + + return new Skeleton( bones, boneInverses ); + + } ); + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations + * @param {number} animationIndex + * @return {Promise} + */ + loadAnimation( animationIndex ) { + + const json = this.json; + const parser = this; + + const animationDef = json.animations[ animationIndex ]; + const animationName = animationDef.name ? animationDef.name : 'animation_' + animationIndex; + + const pendingNodes = []; + const pendingInputAccessors = []; + const pendingOutputAccessors = []; + const pendingSamplers = []; + const pendingTargets = []; + + for ( let i = 0, il = animationDef.channels.length; i < il; i ++ ) { + + const channel = animationDef.channels[ i ]; + const sampler = animationDef.samplers[ channel.sampler ]; + const target = channel.target; + const name = target.node; + const input = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.input ] : sampler.input; + const output = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.output ] : sampler.output; + + if ( target.node === undefined ) continue; + + pendingNodes.push( this.getDependency( 'node', name ) ); + pendingInputAccessors.push( this.getDependency( 'accessor', input ) ); + pendingOutputAccessors.push( this.getDependency( 'accessor', output ) ); + pendingSamplers.push( sampler ); + pendingTargets.push( target ); + + } + + return Promise.all( [ + + Promise.all( pendingNodes ), + Promise.all( pendingInputAccessors ), + Promise.all( pendingOutputAccessors ), + Promise.all( pendingSamplers ), + Promise.all( pendingTargets ) + + ] ).then( function ( dependencies ) { + + const nodes = dependencies[ 0 ]; + const inputAccessors = dependencies[ 1 ]; + const outputAccessors = dependencies[ 2 ]; + const samplers = dependencies[ 3 ]; + const targets = dependencies[ 4 ]; + + const tracks = []; + + for ( let i = 0, il = nodes.length; i < il; i ++ ) { + + const node = nodes[ i ]; + const inputAccessor = inputAccessors[ i ]; + const outputAccessor = outputAccessors[ i ]; + const sampler = samplers[ i ]; + const target = targets[ i ]; + + if ( node === undefined ) continue; + + if ( node.updateMatrix ) { + + node.updateMatrix(); + + } + + const createdTracks = parser._createAnimationTracks( node, inputAccessor, outputAccessor, sampler, target ); + + if ( createdTracks ) { + + for ( let k = 0; k < createdTracks.length; k ++ ) { + + tracks.push( createdTracks[ k ] ); + + } + + } + + } + + return new AnimationClip( animationName, undefined, tracks ); + + } ); + + } + + createNodeMesh( nodeIndex ) { + + const json = this.json; + const parser = this; + const nodeDef = json.nodes[ nodeIndex ]; + + if ( nodeDef.mesh === undefined ) return null; + + return parser.getDependency( 'mesh', nodeDef.mesh ).then( function ( mesh ) { + + const node = parser._getNodeRef( parser.meshCache, nodeDef.mesh, mesh ); + + // if weights are provided on the node, override weights on the mesh. + if ( nodeDef.weights !== undefined ) { + + node.traverse( function ( o ) { + + if ( ! o.isMesh ) return; + + for ( let i = 0, il = nodeDef.weights.length; i < il; i ++ ) { + + o.morphTargetInfluences[ i ] = nodeDef.weights[ i ]; + + } + + } ); + + } + + return node; + + } ); + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy + * @param {number} nodeIndex + * @return {Promise} + */ + loadNode( nodeIndex ) { + + const json = this.json; + const parser = this; + + const nodeDef = json.nodes[ nodeIndex ]; + + const nodePending = parser._loadNodeShallow( nodeIndex ); + + const childPending = []; + const childrenDef = nodeDef.children || []; + + for ( let i = 0, il = childrenDef.length; i < il; i ++ ) { + + childPending.push( parser.getDependency( 'node', childrenDef[ i ] ) ); + + } + + const skeletonPending = nodeDef.skin === undefined + ? Promise.resolve( null ) + : parser.getDependency( 'skin', nodeDef.skin ); + + return Promise.all( [ + nodePending, + Promise.all( childPending ), + skeletonPending + ] ).then( function ( results ) { + + const node = results[ 0 ]; + const children = results[ 1 ]; + const skeleton = results[ 2 ]; + + if ( skeleton !== null ) { + + // This full traverse should be fine because + // child glTF nodes have not been added to this node yet. + node.traverse( function ( mesh ) { + + if ( ! mesh.isSkinnedMesh ) return; + + mesh.bind( skeleton, _identityMatrix ); + + } ); + + } + + for ( let i = 0, il = children.length; i < il; i ++ ) { + + node.add( children[ i ] ); + + } + + return node; + + } ); + + } + + // ._loadNodeShallow() parses a single node. + // skin and child nodes are created and added in .loadNode() (no '_' prefix). + _loadNodeShallow( nodeIndex ) { + + const json = this.json; + const extensions = this.extensions; + const parser = this; + + // This method is called from .loadNode() and .loadSkin(). + // Cache a node to avoid duplication. + + if ( this.nodeCache[ nodeIndex ] !== undefined ) { + + return this.nodeCache[ nodeIndex ]; + + } + + const nodeDef = json.nodes[ nodeIndex ]; + + // reserve node's name before its dependencies, so the root has the intended name. + const nodeName = nodeDef.name ? parser.createUniqueName( nodeDef.name ) : ''; + + const pending = []; + + const meshPromise = parser._invokeOne( function ( ext ) { + + return ext.createNodeMesh && ext.createNodeMesh( nodeIndex ); + + } ); + + if ( meshPromise ) { + + pending.push( meshPromise ); + + } + + if ( nodeDef.camera !== undefined ) { + + pending.push( parser.getDependency( 'camera', nodeDef.camera ).then( function ( camera ) { + + return parser._getNodeRef( parser.cameraCache, nodeDef.camera, camera ); + + } ) ); + + } + + parser._invokeAll( function ( ext ) { + + return ext.createNodeAttachment && ext.createNodeAttachment( nodeIndex ); + + } ).forEach( function ( promise ) { + + pending.push( promise ); + + } ); + + this.nodeCache[ nodeIndex ] = Promise.all( pending ).then( function ( objects ) { + + let node; + + // .isBone isn't in glTF spec. See ._markDefs + if ( nodeDef.isBone === true ) { + + node = new Bone(); + + } else if ( objects.length > 1 ) { + + node = new Group(); + + } else if ( objects.length === 1 ) { + + node = objects[ 0 ]; + + } else { + + node = new Object3D(); + + } + + if ( node !== objects[ 0 ] ) { + + for ( let i = 0, il = objects.length; i < il; i ++ ) { + + node.add( objects[ i ] ); + + } + + } + + if ( nodeDef.name ) { + + node.userData.name = nodeDef.name; + node.name = nodeName; + + } + + assignExtrasToUserData( node, nodeDef ); + + if ( nodeDef.extensions ) addUnknownExtensionsToUserData( extensions, node, nodeDef ); + + if ( nodeDef.matrix !== undefined ) { + + const matrix = new Matrix4(); + matrix.fromArray( nodeDef.matrix ); + node.applyMatrix4( matrix ); + + } else { + + if ( nodeDef.translation !== undefined ) { + + node.position.fromArray( nodeDef.translation ); + + } + + if ( nodeDef.rotation !== undefined ) { + + node.quaternion.fromArray( nodeDef.rotation ); + + } + + if ( nodeDef.scale !== undefined ) { + + node.scale.fromArray( nodeDef.scale ); + + } + + } + + if ( ! parser.associations.has( node ) ) { + + parser.associations.set( node, {} ); + + } + + parser.associations.get( node ).nodes = nodeIndex; + + return node; + + } ); + + return this.nodeCache[ nodeIndex ]; + + } + + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes + * @param {number} sceneIndex + * @return {Promise} + */ + loadScene( sceneIndex ) { + + const extensions = this.extensions; + const sceneDef = this.json.scenes[ sceneIndex ]; + const parser = this; + + // Loader returns Group, not Scene. + // See: https://github.com/mrdoob/three.js/issues/18342#issuecomment-578981172 + const scene = new Group(); + if ( sceneDef.name ) scene.name = parser.createUniqueName( sceneDef.name ); + + assignExtrasToUserData( scene, sceneDef ); + + if ( sceneDef.extensions ) addUnknownExtensionsToUserData( extensions, scene, sceneDef ); + + const nodeIds = sceneDef.nodes || []; + + const pending = []; + + for ( let i = 0, il = nodeIds.length; i < il; i ++ ) { + + pending.push( parser.getDependency( 'node', nodeIds[ i ] ) ); + + } + + return Promise.all( pending ).then( function ( nodes ) { + + for ( let i = 0, il = nodes.length; i < il; i ++ ) { + + scene.add( nodes[ i ] ); + + } + + // Removes dangling associations, associations that reference a node that + // didn't make it into the scene. + const reduceAssociations = ( node ) => { + + const reducedAssociations = new Map(); + + for ( const [ key, value ] of parser.associations ) { + + if ( key instanceof Material || key instanceof Texture ) { + + reducedAssociations.set( key, value ); + + } + + } + + node.traverse( ( node ) => { + + const mappings = parser.associations.get( node ); + + if ( mappings != null ) { + + reducedAssociations.set( node, mappings ); + + } + + } ); + + return reducedAssociations; + + }; + + parser.associations = reduceAssociations( scene ); + + return scene; + + } ); + + } + + _createAnimationTracks( node, inputAccessor, outputAccessor, sampler, target ) { + + const tracks = []; + + const targetName = node.name ? node.name : node.uuid; + const targetNames = []; + + if ( PATH_PROPERTIES[ target.path ] === PATH_PROPERTIES.weights ) { + + node.traverse( function ( object ) { + + if ( object.morphTargetInfluences ) { + + targetNames.push( object.name ? object.name : object.uuid ); + + } + + } ); + + } else { + + targetNames.push( targetName ); + + } + + let TypedKeyframeTrack; + + switch ( PATH_PROPERTIES[ target.path ] ) { + + case PATH_PROPERTIES.weights: + + TypedKeyframeTrack = NumberKeyframeTrack; + break; + + case PATH_PROPERTIES.rotation: + + TypedKeyframeTrack = QuaternionKeyframeTrack; + break; + + case PATH_PROPERTIES.position: + case PATH_PROPERTIES.scale: + + TypedKeyframeTrack = VectorKeyframeTrack; + break; + + default: + + switch ( outputAccessor.itemSize ) { + + case 1: + TypedKeyframeTrack = NumberKeyframeTrack; + break; + case 2: + case 3: + default: + TypedKeyframeTrack = VectorKeyframeTrack; + break; + + } + + break; + + } + + const interpolation = sampler.interpolation !== undefined ? INTERPOLATION[ sampler.interpolation ] : InterpolateLinear; + + + const outputArray = this._getArrayFromAccessor( outputAccessor ); + + for ( let j = 0, jl = targetNames.length; j < jl; j ++ ) { + + const track = new TypedKeyframeTrack( + targetNames[ j ] + '.' + PATH_PROPERTIES[ target.path ], + inputAccessor.array, + outputArray, + interpolation + ); + + // Override interpolation with custom factory method. + if ( sampler.interpolation === 'CUBICSPLINE' ) { + + this._createCubicSplineTrackInterpolant( track ); + + } + + tracks.push( track ); + + } + + return tracks; + + } + + _getArrayFromAccessor( accessor ) { + + let outputArray = accessor.array; + + if ( accessor.normalized ) { + + const scale = getNormalizedComponentScale( outputArray.constructor ); + const scaled = new Float32Array( outputArray.length ); + + for ( let j = 0, jl = outputArray.length; j < jl; j ++ ) { + + scaled[ j ] = outputArray[ j ] * scale; + + } + + outputArray = scaled; + + } + + return outputArray; + + } + + _createCubicSplineTrackInterpolant( track ) { + + track.createInterpolant = function InterpolantFactoryMethodGLTFCubicSpline( result ) { + + // A CUBICSPLINE keyframe in glTF has three output values for each input value, + // representing inTangent, splineVertex, and outTangent. As a result, track.getValueSize() + // must be divided by three to get the interpolant's sampleSize argument. + + const interpolantType = ( this instanceof QuaternionKeyframeTrack ) ? GLTFCubicSplineQuaternionInterpolant : GLTFCubicSplineInterpolant; + + return new interpolantType( this.times, this.values, this.getValueSize() / 3, result ); + + }; + + // Mark as CUBICSPLINE. `track.getInterpolation()` doesn't support custom interpolants. + track.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true; + + } + +} + +/** + * @param {BufferGeometry} geometry + * @param {GLTF.Primitive} primitiveDef + * @param {GLTFParser} parser + */ +function computeBounds( geometry, primitiveDef, parser ) { + + const attributes = primitiveDef.attributes; + + const box = new Box3(); + + if ( attributes.POSITION !== undefined ) { + + const accessor = parser.json.accessors[ attributes.POSITION ]; + + const min = accessor.min; + const max = accessor.max; + + // glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement. + + if ( min !== undefined && max !== undefined ) { + + box.set( + new Vector3( min[ 0 ], min[ 1 ], min[ 2 ] ), + new Vector3( max[ 0 ], max[ 1 ], max[ 2 ] ) + ); + + if ( accessor.normalized ) { + + const boxScale = getNormalizedComponentScale( WEBGL_COMPONENT_TYPES[ accessor.componentType ] ); + box.min.multiplyScalar( boxScale ); + box.max.multiplyScalar( boxScale ); + + } + + } else { + + console.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' ); + + return; + + } + + } else { + + return; + + } + + const targets = primitiveDef.targets; + + if ( targets !== undefined ) { + + const maxDisplacement = new Vector3(); + const vector = new Vector3(); + + for ( let i = 0, il = targets.length; i < il; i ++ ) { + + const target = targets[ i ]; + + if ( target.POSITION !== undefined ) { + + const accessor = parser.json.accessors[ target.POSITION ]; + const min = accessor.min; + const max = accessor.max; + + // glTF requires 'min' and 'max', but VRM (which extends glTF) currently ignores that requirement. + + if ( min !== undefined && max !== undefined ) { + + // we need to get max of absolute components because target weight is [-1,1] + vector.setX( Math.max( Math.abs( min[ 0 ] ), Math.abs( max[ 0 ] ) ) ); + vector.setY( Math.max( Math.abs( min[ 1 ] ), Math.abs( max[ 1 ] ) ) ); + vector.setZ( Math.max( Math.abs( min[ 2 ] ), Math.abs( max[ 2 ] ) ) ); + + + if ( accessor.normalized ) { + + const boxScale = getNormalizedComponentScale( WEBGL_COMPONENT_TYPES[ accessor.componentType ] ); + vector.multiplyScalar( boxScale ); + + } + + // Note: this assumes that the sum of all weights is at most 1. This isn't quite correct - it's more conservative + // to assume that each target can have a max weight of 1. However, for some use cases - notably, when morph targets + // are used to implement key-frame animations and as such only two are active at a time - this results in very large + // boxes. So for now we make a box that's sometimes a touch too small but is hopefully mostly of reasonable size. + maxDisplacement.max( vector ); + + } else { + + console.warn( 'THREE.GLTFLoader: Missing min/max properties for accessor POSITION.' ); + + } + + } + + } + + // As per comment above this box isn't conservative, but has a reasonable size for a very large number of morph targets. + box.expandByVector( maxDisplacement ); + + } + + geometry.boundingBox = box; + + const sphere = new Sphere(); + + box.getCenter( sphere.center ); + sphere.radius = box.min.distanceTo( box.max ) / 2; + + geometry.boundingSphere = sphere; + +} + +/** + * @param {BufferGeometry} geometry + * @param {GLTF.Primitive} primitiveDef + * @param {GLTFParser} parser + * @return {Promise} + */ +function addPrimitiveAttributes( geometry, primitiveDef, parser ) { + + const attributes = primitiveDef.attributes; + + const pending = []; + + function assignAttributeAccessor( accessorIndex, attributeName ) { + + return parser.getDependency( 'accessor', accessorIndex ) + .then( function ( accessor ) { + + geometry.setAttribute( attributeName, accessor ); + + } ); + + } + + for ( const gltfAttributeName in attributes ) { + + const threeAttributeName = ATTRIBUTES[ gltfAttributeName ] || gltfAttributeName.toLowerCase(); + + // Skip attributes already provided by e.g. Draco extension. + if ( threeAttributeName in geometry.attributes ) continue; + + pending.push( assignAttributeAccessor( attributes[ gltfAttributeName ], threeAttributeName ) ); + + } + + if ( primitiveDef.indices !== undefined && ! geometry.index ) { + + const accessor = parser.getDependency( 'accessor', primitiveDef.indices ).then( function ( accessor ) { + + geometry.setIndex( accessor ); + + } ); + + pending.push( accessor ); + + } + + if ( ColorManagement.workingColorSpace !== LinearSRGBColorSpace && 'COLOR_0' in attributes ) { + + console.warn( `THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${ColorManagement.workingColorSpace}" not supported.` ); + + } + + assignExtrasToUserData( geometry, primitiveDef ); + + computeBounds( geometry, primitiveDef, parser ); + + return Promise.all( pending ).then( function () { + + return primitiveDef.targets !== undefined + ? addMorphTargets( geometry, primitiveDef.targets, parser ) + : geometry; + + } ); + +} + +export { GLTFLoader }; diff --git a/public/utils/BufferGeometryUtils.js b/public/utils/BufferGeometryUtils.js new file mode 100644 index 0000000..6941455 --- /dev/null +++ b/public/utils/BufferGeometryUtils.js @@ -0,0 +1,1373 @@ +import { + BufferAttribute, + BufferGeometry, + Float32BufferAttribute, + InstancedBufferAttribute, + InterleavedBuffer, + InterleavedBufferAttribute, + TriangleFanDrawMode, + TriangleStripDrawMode, + TrianglesDrawMode, + Vector3, +} from 'three'; + +function computeMikkTSpaceTangents( geometry, MikkTSpace, negateSign = true ) { + + if ( ! MikkTSpace || ! MikkTSpace.isReady ) { + + throw new Error( 'BufferGeometryUtils: Initialized MikkTSpace library required.' ); + + } + + if ( ! geometry.hasAttribute( 'position' ) || ! geometry.hasAttribute( 'normal' ) || ! geometry.hasAttribute( 'uv' ) ) { + + throw new Error( 'BufferGeometryUtils: Tangents require "position", "normal", and "uv" attributes.' ); + + } + + function getAttributeArray( attribute ) { + + if ( attribute.normalized || attribute.isInterleavedBufferAttribute ) { + + const dstArray = new Float32Array( attribute.count * attribute.itemSize ); + + for ( let i = 0, j = 0; i < attribute.count; i ++ ) { + + dstArray[ j ++ ] = attribute.getX( i ); + dstArray[ j ++ ] = attribute.getY( i ); + + if ( attribute.itemSize > 2 ) { + + dstArray[ j ++ ] = attribute.getZ( i ); + + } + + } + + return dstArray; + + } + + if ( attribute.array instanceof Float32Array ) { + + return attribute.array; + + } + + return new Float32Array( attribute.array ); + + } + + // MikkTSpace algorithm requires non-indexed input. + + const _geometry = geometry.index ? geometry.toNonIndexed() : geometry; + + // Compute vertex tangents. + + const tangents = MikkTSpace.generateTangents( + + getAttributeArray( _geometry.attributes.position ), + getAttributeArray( _geometry.attributes.normal ), + getAttributeArray( _geometry.attributes.uv ) + + ); + + // Texture coordinate convention of glTF differs from the apparent + // default of the MikkTSpace library; .w component must be flipped. + + if ( negateSign ) { + + for ( let i = 3; i < tangents.length; i += 4 ) { + + tangents[ i ] *= - 1; + + } + + } + + // + + _geometry.setAttribute( 'tangent', new BufferAttribute( tangents, 4 ) ); + + if ( geometry !== _geometry ) { + + geometry.copy( _geometry ); + + } + + return geometry; + +} + +/** + * @param {Array} geometries + * @param {boolean} useGroups + * @return {BufferGeometry} + */ +function mergeGeometries( geometries, useGroups = false ) { + + const isIndexed = geometries[ 0 ].index !== null; + + const attributesUsed = new Set( Object.keys( geometries[ 0 ].attributes ) ); + const morphAttributesUsed = new Set( Object.keys( geometries[ 0 ].morphAttributes ) ); + + const attributes = {}; + const morphAttributes = {}; + + const morphTargetsRelative = geometries[ 0 ].morphTargetsRelative; + + const mergedGeometry = new BufferGeometry(); + + let offset = 0; + + for ( let i = 0; i < geometries.length; ++ i ) { + + const geometry = geometries[ i ]; + let attributesCount = 0; + + // ensure that all geometries are indexed, or none + + if ( isIndexed !== ( geometry.index !== null ) ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them.' ); + return null; + + } + + // gather attributes, exit early if they're different + + for ( const name in geometry.attributes ) { + + if ( ! attributesUsed.has( name ) ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. All geometries must have compatible attributes; make sure "' + name + '" attribute exists among all geometries, or in none of them.' ); + return null; + + } + + if ( attributes[ name ] === undefined ) attributes[ name ] = []; + + attributes[ name ].push( geometry.attributes[ name ] ); + + attributesCount ++; + + } + + // ensure geometries have the same number of attributes + + if ( attributesCount !== attributesUsed.size ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. Make sure all geometries have the same number of attributes.' ); + return null; + + } + + // gather morph attributes, exit early if they're different + + if ( morphTargetsRelative !== geometry.morphTargetsRelative ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. .morphTargetsRelative must be consistent throughout all geometries.' ); + return null; + + } + + for ( const name in geometry.morphAttributes ) { + + if ( ! morphAttributesUsed.has( name ) ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. .morphAttributes must be consistent throughout all geometries.' ); + return null; + + } + + if ( morphAttributes[ name ] === undefined ) morphAttributes[ name ] = []; + + morphAttributes[ name ].push( geometry.morphAttributes[ name ] ); + + } + + if ( useGroups ) { + + let count; + + if ( isIndexed ) { + + count = geometry.index.count; + + } else if ( geometry.attributes.position !== undefined ) { + + count = geometry.attributes.position.count; + + } else { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index ' + i + '. The geometry must have either an index or a position attribute' ); + return null; + + } + + mergedGeometry.addGroup( offset, count, i ); + + offset += count; + + } + + } + + // merge indices + + if ( isIndexed ) { + + let indexOffset = 0; + const mergedIndex = []; + + for ( let i = 0; i < geometries.length; ++ i ) { + + const index = geometries[ i ].index; + + for ( let j = 0; j < index.count; ++ j ) { + + mergedIndex.push( index.getX( j ) + indexOffset ); + + } + + indexOffset += geometries[ i ].attributes.position.count; + + } + + mergedGeometry.setIndex( mergedIndex ); + + } + + // merge attributes + + for ( const name in attributes ) { + + const mergedAttribute = mergeAttributes( attributes[ name ] ); + + if ( ! mergedAttribute ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the ' + name + ' attribute.' ); + return null; + + } + + mergedGeometry.setAttribute( name, mergedAttribute ); + + } + + // merge morph attributes + + for ( const name in morphAttributes ) { + + const numMorphTargets = morphAttributes[ name ][ 0 ].length; + + if ( numMorphTargets === 0 ) break; + + mergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {}; + mergedGeometry.morphAttributes[ name ] = []; + + for ( let i = 0; i < numMorphTargets; ++ i ) { + + const morphAttributesToMerge = []; + + for ( let j = 0; j < morphAttributes[ name ].length; ++ j ) { + + morphAttributesToMerge.push( morphAttributes[ name ][ j ][ i ] ); + + } + + const mergedMorphAttribute = mergeAttributes( morphAttributesToMerge ); + + if ( ! mergedMorphAttribute ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the ' + name + ' morphAttribute.' ); + return null; + + } + + mergedGeometry.morphAttributes[ name ].push( mergedMorphAttribute ); + + } + + } + + return mergedGeometry; + +} + +/** + * @param {Array} attributes + * @return {BufferAttribute} + */ +function mergeAttributes( attributes ) { + + let TypedArray; + let itemSize; + let normalized; + let gpuType = - 1; + let arrayLength = 0; + + for ( let i = 0; i < attributes.length; ++ i ) { + + const attribute = attributes[ i ]; + + if ( TypedArray === undefined ) TypedArray = attribute.array.constructor; + if ( TypedArray !== attribute.array.constructor ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes.' ); + return null; + + } + + if ( itemSize === undefined ) itemSize = attribute.itemSize; + if ( itemSize !== attribute.itemSize ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes.' ); + return null; + + } + + if ( normalized === undefined ) normalized = attribute.normalized; + if ( normalized !== attribute.normalized ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes.' ); + return null; + + } + + if ( gpuType === - 1 ) gpuType = attribute.gpuType; + if ( gpuType !== attribute.gpuType ) { + + console.error( 'THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes.' ); + return null; + + } + + arrayLength += attribute.count * itemSize; + + } + + const array = new TypedArray( arrayLength ); + const result = new BufferAttribute( array, itemSize, normalized ); + let offset = 0; + + for ( let i = 0; i < attributes.length; ++ i ) { + + const attribute = attributes[ i ]; + if ( attribute.isInterleavedBufferAttribute ) { + + const tupleOffset = offset / itemSize; + for ( let j = 0, l = attribute.count; j < l; j ++ ) { + + for ( let c = 0; c < itemSize; c ++ ) { + + const value = attribute.getComponent( j, c ); + result.setComponent( j + tupleOffset, c, value ); + + } + + } + + } else { + + array.set( attribute.array, offset ); + + } + + offset += attribute.count * itemSize; + + } + + if ( gpuType !== undefined ) { + + result.gpuType = gpuType; + + } + + return result; + +} + +/** + * @param {BufferAttribute} attribute + * @return {BufferAttribute} + */ +export function deepCloneAttribute( attribute ) { + + if ( attribute.isInstancedInterleavedBufferAttribute || attribute.isInterleavedBufferAttribute ) { + + return deinterleaveAttribute( attribute ); + + } + + if ( attribute.isInstancedBufferAttribute ) { + + return new InstancedBufferAttribute().copy( attribute ); + + } + + return new BufferAttribute().copy( attribute ); + +} + +/** + * @param {Array} attributes + * @return {Array} + */ +function interleaveAttributes( attributes ) { + + // Interleaves the provided attributes into an InterleavedBuffer and returns + // a set of InterleavedBufferAttributes for each attribute + let TypedArray; + let arrayLength = 0; + let stride = 0; + + // calculate the length and type of the interleavedBuffer + for ( let i = 0, l = attributes.length; i < l; ++ i ) { + + const attribute = attributes[ i ]; + + if ( TypedArray === undefined ) TypedArray = attribute.array.constructor; + if ( TypedArray !== attribute.array.constructor ) { + + console.error( 'AttributeBuffers of different types cannot be interleaved' ); + return null; + + } + + arrayLength += attribute.array.length; + stride += attribute.itemSize; + + } + + // Create the set of buffer attributes + const interleavedBuffer = new InterleavedBuffer( new TypedArray( arrayLength ), stride ); + let offset = 0; + const res = []; + const getters = [ 'getX', 'getY', 'getZ', 'getW' ]; + const setters = [ 'setX', 'setY', 'setZ', 'setW' ]; + + for ( let j = 0, l = attributes.length; j < l; j ++ ) { + + const attribute = attributes[ j ]; + const itemSize = attribute.itemSize; + const count = attribute.count; + const iba = new InterleavedBufferAttribute( interleavedBuffer, itemSize, offset, attribute.normalized ); + res.push( iba ); + + offset += itemSize; + + // Move the data for each attribute into the new interleavedBuffer + // at the appropriate offset + for ( let c = 0; c < count; c ++ ) { + + for ( let k = 0; k < itemSize; k ++ ) { + + iba[ setters[ k ] ]( c, attribute[ getters[ k ] ]( c ) ); + + } + + } + + } + + return res; + +} + +// returns a new, non-interleaved version of the provided attribute +export function deinterleaveAttribute( attribute ) { + + const cons = attribute.data.array.constructor; + const count = attribute.count; + const itemSize = attribute.itemSize; + const normalized = attribute.normalized; + + const array = new cons( count * itemSize ); + let newAttribute; + if ( attribute.isInstancedInterleavedBufferAttribute ) { + + newAttribute = new InstancedBufferAttribute( array, itemSize, normalized, attribute.meshPerAttribute ); + + } else { + + newAttribute = new BufferAttribute( array, itemSize, normalized ); + + } + + for ( let i = 0; i < count; i ++ ) { + + newAttribute.setX( i, attribute.getX( i ) ); + + if ( itemSize >= 2 ) { + + newAttribute.setY( i, attribute.getY( i ) ); + + } + + if ( itemSize >= 3 ) { + + newAttribute.setZ( i, attribute.getZ( i ) ); + + } + + if ( itemSize >= 4 ) { + + newAttribute.setW( i, attribute.getW( i ) ); + + } + + } + + return newAttribute; + +} + +// deinterleaves all attributes on the geometry +export function deinterleaveGeometry( geometry ) { + + const attributes = geometry.attributes; + const morphTargets = geometry.morphTargets; + const attrMap = new Map(); + + for ( const key in attributes ) { + + const attr = attributes[ key ]; + if ( attr.isInterleavedBufferAttribute ) { + + if ( ! attrMap.has( attr ) ) { + + attrMap.set( attr, deinterleaveAttribute( attr ) ); + + } + + attributes[ key ] = attrMap.get( attr ); + + } + + } + + for ( const key in morphTargets ) { + + const attr = morphTargets[ key ]; + if ( attr.isInterleavedBufferAttribute ) { + + if ( ! attrMap.has( attr ) ) { + + attrMap.set( attr, deinterleaveAttribute( attr ) ); + + } + + morphTargets[ key ] = attrMap.get( attr ); + + } + + } + +} + +/** + * @param {BufferGeometry} geometry + * @return {number} + */ +function estimateBytesUsed( geometry ) { + + // Return the estimated memory used by this geometry in bytes + // Calculate using itemSize, count, and BYTES_PER_ELEMENT to account + // for InterleavedBufferAttributes. + let mem = 0; + for ( const name in geometry.attributes ) { + + const attr = geometry.getAttribute( name ); + mem += attr.count * attr.itemSize * attr.array.BYTES_PER_ELEMENT; + + } + + const indices = geometry.getIndex(); + mem += indices ? indices.count * indices.itemSize * indices.array.BYTES_PER_ELEMENT : 0; + return mem; + +} + +/** + * @param {BufferGeometry} geometry + * @param {number} tolerance + * @return {BufferGeometry} + */ +function mergeVertices( geometry, tolerance = 1e-4 ) { + + tolerance = Math.max( tolerance, Number.EPSILON ); + + // Generate an index buffer if the geometry doesn't have one, or optimize it + // if it's already available. + const hashToIndex = {}; + const indices = geometry.getIndex(); + const positions = geometry.getAttribute( 'position' ); + const vertexCount = indices ? indices.count : positions.count; + + // next value for triangle indices + let nextIndex = 0; + + // attributes and new attribute arrays + const attributeNames = Object.keys( geometry.attributes ); + const tmpAttributes = {}; + const tmpMorphAttributes = {}; + const newIndices = []; + const getters = [ 'getX', 'getY', 'getZ', 'getW' ]; + const setters = [ 'setX', 'setY', 'setZ', 'setW' ]; + + // Initialize the arrays, allocating space conservatively. Extra + // space will be trimmed in the last step. + for ( let i = 0, l = attributeNames.length; i < l; i ++ ) { + + const name = attributeNames[ i ]; + const attr = geometry.attributes[ name ]; + + tmpAttributes[ name ] = new attr.constructor( + new attr.array.constructor( attr.count * attr.itemSize ), + attr.itemSize, + attr.normalized + ); + + const morphAttributes = geometry.morphAttributes[ name ]; + if ( morphAttributes ) { + + if ( ! tmpMorphAttributes[ name ] ) tmpMorphAttributes[ name ] = []; + morphAttributes.forEach( ( morphAttr, i ) => { + + const array = new morphAttr.array.constructor( morphAttr.count * morphAttr.itemSize ); + tmpMorphAttributes[ name ][ i ] = new morphAttr.constructor( array, morphAttr.itemSize, morphAttr.normalized ); + + } ); + + } + + } + + // convert the error tolerance to an amount of decimal places to truncate to + const halfTolerance = tolerance * 0.5; + const exponent = Math.log10( 1 / tolerance ); + const hashMultiplier = Math.pow( 10, exponent ); + const hashAdditive = halfTolerance * hashMultiplier; + for ( let i = 0; i < vertexCount; i ++ ) { + + const index = indices ? indices.getX( i ) : i; + + // Generate a hash for the vertex attributes at the current index 'i' + let hash = ''; + for ( let j = 0, l = attributeNames.length; j < l; j ++ ) { + + const name = attributeNames[ j ]; + const attribute = geometry.getAttribute( name ); + const itemSize = attribute.itemSize; + + for ( let k = 0; k < itemSize; k ++ ) { + + // double tilde truncates the decimal value + hash += `${ ~ ~ ( attribute[ getters[ k ] ]( index ) * hashMultiplier + hashAdditive ) },`; + + } + + } + + // Add another reference to the vertex if it's already + // used by another index + if ( hash in hashToIndex ) { + + newIndices.push( hashToIndex[ hash ] ); + + } else { + + // copy data to the new index in the temporary attributes + for ( let j = 0, l = attributeNames.length; j < l; j ++ ) { + + const name = attributeNames[ j ]; + const attribute = geometry.getAttribute( name ); + const morphAttributes = geometry.morphAttributes[ name ]; + const itemSize = attribute.itemSize; + const newArray = tmpAttributes[ name ]; + const newMorphArrays = tmpMorphAttributes[ name ]; + + for ( let k = 0; k < itemSize; k ++ ) { + + const getterFunc = getters[ k ]; + const setterFunc = setters[ k ]; + newArray[ setterFunc ]( nextIndex, attribute[ getterFunc ]( index ) ); + + if ( morphAttributes ) { + + for ( let m = 0, ml = morphAttributes.length; m < ml; m ++ ) { + + newMorphArrays[ m ][ setterFunc ]( nextIndex, morphAttributes[ m ][ getterFunc ]( index ) ); + + } + + } + + } + + } + + hashToIndex[ hash ] = nextIndex; + newIndices.push( nextIndex ); + nextIndex ++; + + } + + } + + // generate result BufferGeometry + const result = geometry.clone(); + for ( const name in geometry.attributes ) { + + const tmpAttribute = tmpAttributes[ name ]; + + result.setAttribute( name, new tmpAttribute.constructor( + tmpAttribute.array.slice( 0, nextIndex * tmpAttribute.itemSize ), + tmpAttribute.itemSize, + tmpAttribute.normalized, + ) ); + + if ( ! ( name in tmpMorphAttributes ) ) continue; + + for ( let j = 0; j < tmpMorphAttributes[ name ].length; j ++ ) { + + const tmpMorphAttribute = tmpMorphAttributes[ name ][ j ]; + + result.morphAttributes[ name ][ j ] = new tmpMorphAttribute.constructor( + tmpMorphAttribute.array.slice( 0, nextIndex * tmpMorphAttribute.itemSize ), + tmpMorphAttribute.itemSize, + tmpMorphAttribute.normalized, + ); + + } + + } + + // indices + + result.setIndex( newIndices ); + + return result; + +} + +/** + * @param {BufferGeometry} geometry + * @param {number} drawMode + * @return {BufferGeometry} + */ +function toTrianglesDrawMode( geometry, drawMode ) { + + if ( drawMode === TrianglesDrawMode ) { + + console.warn( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.' ); + return geometry; + + } + + if ( drawMode === TriangleFanDrawMode || drawMode === TriangleStripDrawMode ) { + + let index = geometry.getIndex(); + + // generate index if not present + + if ( index === null ) { + + const indices = []; + + const position = geometry.getAttribute( 'position' ); + + if ( position !== undefined ) { + + for ( let i = 0; i < position.count; i ++ ) { + + indices.push( i ); + + } + + geometry.setIndex( indices ); + index = geometry.getIndex(); + + } else { + + console.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.' ); + return geometry; + + } + + } + + // + + const numberOfTriangles = index.count - 2; + const newIndices = []; + + if ( drawMode === TriangleFanDrawMode ) { + + // gl.TRIANGLE_FAN + + for ( let i = 1; i <= numberOfTriangles; i ++ ) { + + newIndices.push( index.getX( 0 ) ); + newIndices.push( index.getX( i ) ); + newIndices.push( index.getX( i + 1 ) ); + + } + + } else { + + // gl.TRIANGLE_STRIP + + for ( let i = 0; i < numberOfTriangles; i ++ ) { + + if ( i % 2 === 0 ) { + + newIndices.push( index.getX( i ) ); + newIndices.push( index.getX( i + 1 ) ); + newIndices.push( index.getX( i + 2 ) ); + + } else { + + newIndices.push( index.getX( i + 2 ) ); + newIndices.push( index.getX( i + 1 ) ); + newIndices.push( index.getX( i ) ); + + } + + } + + } + + if ( ( newIndices.length / 3 ) !== numberOfTriangles ) { + + console.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.' ); + + } + + // build final geometry + + const newGeometry = geometry.clone(); + newGeometry.setIndex( newIndices ); + newGeometry.clearGroups(); + + return newGeometry; + + } else { + + console.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:', drawMode ); + return geometry; + + } + +} + +/** + * Calculates the morphed attributes of a morphed/skinned BufferGeometry. + * Helpful for Raytracing or Decals. + * @param {Mesh | Line | Points} object An instance of Mesh, Line or Points. + * @return {Object} An Object with original position/normal attributes and morphed ones. + */ +function computeMorphedAttributes( object ) { + + const _vA = new Vector3(); + const _vB = new Vector3(); + const _vC = new Vector3(); + + const _tempA = new Vector3(); + const _tempB = new Vector3(); + const _tempC = new Vector3(); + + const _morphA = new Vector3(); + const _morphB = new Vector3(); + const _morphC = new Vector3(); + + function _calculateMorphedAttributeData( + object, + attribute, + morphAttribute, + morphTargetsRelative, + a, + b, + c, + modifiedAttributeArray + ) { + + _vA.fromBufferAttribute( attribute, a ); + _vB.fromBufferAttribute( attribute, b ); + _vC.fromBufferAttribute( attribute, c ); + + const morphInfluences = object.morphTargetInfluences; + + if ( morphAttribute && morphInfluences ) { + + _morphA.set( 0, 0, 0 ); + _morphB.set( 0, 0, 0 ); + _morphC.set( 0, 0, 0 ); + + for ( let i = 0, il = morphAttribute.length; i < il; i ++ ) { + + const influence = morphInfluences[ i ]; + const morph = morphAttribute[ i ]; + + if ( influence === 0 ) continue; + + _tempA.fromBufferAttribute( morph, a ); + _tempB.fromBufferAttribute( morph, b ); + _tempC.fromBufferAttribute( morph, c ); + + if ( morphTargetsRelative ) { + + _morphA.addScaledVector( _tempA, influence ); + _morphB.addScaledVector( _tempB, influence ); + _morphC.addScaledVector( _tempC, influence ); + + } else { + + _morphA.addScaledVector( _tempA.sub( _vA ), influence ); + _morphB.addScaledVector( _tempB.sub( _vB ), influence ); + _morphC.addScaledVector( _tempC.sub( _vC ), influence ); + + } + + } + + _vA.add( _morphA ); + _vB.add( _morphB ); + _vC.add( _morphC ); + + } + + if ( object.isSkinnedMesh ) { + + object.applyBoneTransform( a, _vA ); + object.applyBoneTransform( b, _vB ); + object.applyBoneTransform( c, _vC ); + + } + + modifiedAttributeArray[ a * 3 + 0 ] = _vA.x; + modifiedAttributeArray[ a * 3 + 1 ] = _vA.y; + modifiedAttributeArray[ a * 3 + 2 ] = _vA.z; + modifiedAttributeArray[ b * 3 + 0 ] = _vB.x; + modifiedAttributeArray[ b * 3 + 1 ] = _vB.y; + modifiedAttributeArray[ b * 3 + 2 ] = _vB.z; + modifiedAttributeArray[ c * 3 + 0 ] = _vC.x; + modifiedAttributeArray[ c * 3 + 1 ] = _vC.y; + modifiedAttributeArray[ c * 3 + 2 ] = _vC.z; + + } + + const geometry = object.geometry; + const material = object.material; + + let a, b, c; + const index = geometry.index; + const positionAttribute = geometry.attributes.position; + const morphPosition = geometry.morphAttributes.position; + const morphTargetsRelative = geometry.morphTargetsRelative; + const normalAttribute = geometry.attributes.normal; + const morphNormal = geometry.morphAttributes.position; + + const groups = geometry.groups; + const drawRange = geometry.drawRange; + let i, j, il, jl; + let group; + let start, end; + + const modifiedPosition = new Float32Array( positionAttribute.count * positionAttribute.itemSize ); + const modifiedNormal = new Float32Array( normalAttribute.count * normalAttribute.itemSize ); + + if ( index !== null ) { + + // indexed buffer geometry + + if ( Array.isArray( material ) ) { + + for ( i = 0, il = groups.length; i < il; i ++ ) { + + group = groups[ i ]; + + start = Math.max( group.start, drawRange.start ); + end = Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ); + + for ( j = start, jl = end; j < jl; j += 3 ) { + + a = index.getX( j ); + b = index.getX( j + 1 ); + c = index.getX( j + 2 ); + + _calculateMorphedAttributeData( + object, + positionAttribute, + morphPosition, + morphTargetsRelative, + a, b, c, + modifiedPosition + ); + + _calculateMorphedAttributeData( + object, + normalAttribute, + morphNormal, + morphTargetsRelative, + a, b, c, + modifiedNormal + ); + + } + + } + + } else { + + start = Math.max( 0, drawRange.start ); + end = Math.min( index.count, ( drawRange.start + drawRange.count ) ); + + for ( i = start, il = end; i < il; i += 3 ) { + + a = index.getX( i ); + b = index.getX( i + 1 ); + c = index.getX( i + 2 ); + + _calculateMorphedAttributeData( + object, + positionAttribute, + morphPosition, + morphTargetsRelative, + a, b, c, + modifiedPosition + ); + + _calculateMorphedAttributeData( + object, + normalAttribute, + morphNormal, + morphTargetsRelative, + a, b, c, + modifiedNormal + ); + + } + + } + + } else { + + // non-indexed buffer geometry + + if ( Array.isArray( material ) ) { + + for ( i = 0, il = groups.length; i < il; i ++ ) { + + group = groups[ i ]; + + start = Math.max( group.start, drawRange.start ); + end = Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ); + + for ( j = start, jl = end; j < jl; j += 3 ) { + + a = j; + b = j + 1; + c = j + 2; + + _calculateMorphedAttributeData( + object, + positionAttribute, + morphPosition, + morphTargetsRelative, + a, b, c, + modifiedPosition + ); + + _calculateMorphedAttributeData( + object, + normalAttribute, + morphNormal, + morphTargetsRelative, + a, b, c, + modifiedNormal + ); + + } + + } + + } else { + + start = Math.max( 0, drawRange.start ); + end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) ); + + for ( i = start, il = end; i < il; i += 3 ) { + + a = i; + b = i + 1; + c = i + 2; + + _calculateMorphedAttributeData( + object, + positionAttribute, + morphPosition, + morphTargetsRelative, + a, b, c, + modifiedPosition + ); + + _calculateMorphedAttributeData( + object, + normalAttribute, + morphNormal, + morphTargetsRelative, + a, b, c, + modifiedNormal + ); + + } + + } + + } + + const morphedPositionAttribute = new Float32BufferAttribute( modifiedPosition, 3 ); + const morphedNormalAttribute = new Float32BufferAttribute( modifiedNormal, 3 ); + + return { + + positionAttribute: positionAttribute, + normalAttribute: normalAttribute, + morphedPositionAttribute: morphedPositionAttribute, + morphedNormalAttribute: morphedNormalAttribute + + }; + +} + +function mergeGroups( geometry ) { + + if ( geometry.groups.length === 0 ) { + + console.warn( 'THREE.BufferGeometryUtils.mergeGroups(): No groups are defined. Nothing to merge.' ); + return geometry; + + } + + let groups = geometry.groups; + + // sort groups by material index + + groups = groups.sort( ( a, b ) => { + + if ( a.materialIndex !== b.materialIndex ) return a.materialIndex - b.materialIndex; + + return a.start - b.start; + + } ); + + // create index for non-indexed geometries + + if ( geometry.getIndex() === null ) { + + const positionAttribute = geometry.getAttribute( 'position' ); + const indices = []; + + for ( let i = 0; i < positionAttribute.count; i += 3 ) { + + indices.push( i, i + 1, i + 2 ); + + } + + geometry.setIndex( indices ); + + } + + // sort index + + const index = geometry.getIndex(); + + const newIndices = []; + + for ( let i = 0; i < groups.length; i ++ ) { + + const group = groups[ i ]; + + const groupStart = group.start; + const groupLength = groupStart + group.count; + + for ( let j = groupStart; j < groupLength; j ++ ) { + + newIndices.push( index.getX( j ) ); + + } + + } + + geometry.dispose(); // Required to force buffer recreation + geometry.setIndex( newIndices ); + + // update groups indices + + let start = 0; + + for ( let i = 0; i < groups.length; i ++ ) { + + const group = groups[ i ]; + + group.start = start; + start += group.count; + + } + + // merge groups + + let currentGroup = groups[ 0 ]; + + geometry.groups = [ currentGroup ]; + + for ( let i = 1; i < groups.length; i ++ ) { + + const group = groups[ i ]; + + if ( currentGroup.materialIndex === group.materialIndex ) { + + currentGroup.count += group.count; + + } else { + + currentGroup = group; + geometry.groups.push( currentGroup ); + + } + + } + + return geometry; + +} + + +/** + * Modifies the supplied geometry if it is non-indexed, otherwise creates a new, + * non-indexed geometry. Returns the geometry with smooth normals everywhere except + * faces that meet at an angle greater than the crease angle. + * + * @param {BufferGeometry} geometry + * @param {number} [creaseAngle] + * @return {BufferGeometry} + */ +function toCreasedNormals( geometry, creaseAngle = Math.PI / 3 /* 60 degrees */ ) { + + const creaseDot = Math.cos( creaseAngle ); + const hashMultiplier = ( 1 + 1e-10 ) * 1e2; + + // reusable vectors + const verts = [ new Vector3(), new Vector3(), new Vector3() ]; + const tempVec1 = new Vector3(); + const tempVec2 = new Vector3(); + const tempNorm = new Vector3(); + const tempNorm2 = new Vector3(); + + // hashes a vector + function hashVertex( v ) { + + const x = ~ ~ ( v.x * hashMultiplier ); + const y = ~ ~ ( v.y * hashMultiplier ); + const z = ~ ~ ( v.z * hashMultiplier ); + return `${x},${y},${z}`; + + } + + // BufferGeometry.toNonIndexed() warns if the geometry is non-indexed + // and returns the original geometry + const resultGeometry = geometry.index ? geometry.toNonIndexed() : geometry; + const posAttr = resultGeometry.attributes.position; + const vertexMap = {}; + + // find all the normals shared by commonly located vertices + for ( let i = 0, l = posAttr.count / 3; i < l; i ++ ) { + + const i3 = 3 * i; + const a = verts[ 0 ].fromBufferAttribute( posAttr, i3 + 0 ); + const b = verts[ 1 ].fromBufferAttribute( posAttr, i3 + 1 ); + const c = verts[ 2 ].fromBufferAttribute( posAttr, i3 + 2 ); + + tempVec1.subVectors( c, b ); + tempVec2.subVectors( a, b ); + + // add the normal to the map for all vertices + const normal = new Vector3().crossVectors( tempVec1, tempVec2 ).normalize(); + for ( let n = 0; n < 3; n ++ ) { + + const vert = verts[ n ]; + const hash = hashVertex( vert ); + if ( ! ( hash in vertexMap ) ) { + + vertexMap[ hash ] = []; + + } + + vertexMap[ hash ].push( normal ); + + } + + } + + // average normals from all vertices that share a common location if they are within the + // provided crease threshold + const normalArray = new Float32Array( posAttr.count * 3 ); + const normAttr = new BufferAttribute( normalArray, 3, false ); + for ( let i = 0, l = posAttr.count / 3; i < l; i ++ ) { + + // get the face normal for this vertex + const i3 = 3 * i; + const a = verts[ 0 ].fromBufferAttribute( posAttr, i3 + 0 ); + const b = verts[ 1 ].fromBufferAttribute( posAttr, i3 + 1 ); + const c = verts[ 2 ].fromBufferAttribute( posAttr, i3 + 2 ); + + tempVec1.subVectors( c, b ); + tempVec2.subVectors( a, b ); + + tempNorm.crossVectors( tempVec1, tempVec2 ).normalize(); + + // average all normals that meet the threshold and set the normal value + for ( let n = 0; n < 3; n ++ ) { + + const vert = verts[ n ]; + const hash = hashVertex( vert ); + const otherNormals = vertexMap[ hash ]; + tempNorm2.set( 0, 0, 0 ); + + for ( let k = 0, lk = otherNormals.length; k < lk; k ++ ) { + + const otherNorm = otherNormals[ k ]; + if ( tempNorm.dot( otherNorm ) > creaseDot ) { + + tempNorm2.add( otherNorm ); + + } + + } + + tempNorm2.normalize(); + normAttr.setXYZ( i3 + n, tempNorm2.x, tempNorm2.y, tempNorm2.z ); + + } + + } + + resultGeometry.setAttribute( 'normal', normAttr ); + return resultGeometry; + +} + +export { + computeMikkTSpaceTangents, + mergeGeometries, + mergeAttributes, + interleaveAttributes, + estimateBytesUsed, + mergeVertices, + toTrianglesDrawMode, + computeMorphedAttributes, + mergeGroups, + toCreasedNormals +};
Prototyp
+ Ziehen zum Drehen, Mausrad zum Zoomen. Die Satellitenpositionen werden aus den + aktuellen TLE-Daten deines Accounts berechnet und als Objekte oberhalb der Erde gezeigt. +