From affda1dfbb0c299ca0d777d5a7d75ce76934b8b4 Mon Sep 17 00:00:00 2001 From: vincent Date: Fri, 4 Jan 2019 12:44:48 +0100 Subject: [PATCH] check in fixed build --- build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.d.ts | 2 +- build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js.map | 2 +- build/es6/faceLandmarkNet/FaceLandmark68TinyNet.d.ts | 2 +- build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js.map | 2 +- dist/face-api.js.map | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.d.ts b/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.d.ts index fd12003c..58111879 100644 --- a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.d.ts +++ b/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.d.ts @@ -1,5 +1,5 @@ -import { TinyFaceFeatureExtractorParams } from 'src/faceFeatureExtractor/types'; import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor'; +import { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types'; import { FaceLandmark68NetBase } from './FaceLandmark68NetBase'; export declare class FaceLandmark68TinyNet extends FaceLandmark68NetBase { constructor(faceFeatureExtractor?: TinyFaceFeatureExtractor); diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js.map b/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js.map index bc4cb203..50fe0c30 100644 --- a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js.map +++ b/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js.map @@ -1 +1 @@ -{"version":3,"file":"FaceLandmark68TinyNet.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts"],"names":[],"mappings":";;;AAEA,6FAA4F;AAC5F,iEAAgE;AAEhE;IAA2C,iDAAqD;IAE9F,+BAAY,oBAA+E;QAA/E,qCAAA,EAAA,2BAAqD,mDAAwB,EAAE;eACzF,kBAAM,uBAAuB,EAAE,oBAAoB,CAAC;IACtD,CAAC;IAES,mDAAmB,GAA7B;QACE,OAAO,6BAA6B,CAAA;IACtC,CAAC;IAES,uDAAuB,GAAjC;QACE,OAAO,GAAG,CAAA;IACZ,CAAC;IACH,4BAAC;AAAD,CAAC,AAbD,CAA2C,6CAAqB,GAa/D;AAbY,sDAAqB"} \ No newline at end of file +{"version":3,"file":"FaceLandmark68TinyNet.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts"],"names":[],"mappings":";;;AAAA,6FAA4F;AAE5F,iEAAgE;AAEhE;IAA2C,iDAAqD;IAE9F,+BAAY,oBAA+E;QAA/E,qCAAA,EAAA,2BAAqD,mDAAwB,EAAE;eACzF,kBAAM,uBAAuB,EAAE,oBAAoB,CAAC;IACtD,CAAC;IAES,mDAAmB,GAA7B;QACE,OAAO,6BAA6B,CAAA;IACtC,CAAC;IAES,uDAAuB,GAAjC;QACE,OAAO,GAAG,CAAA;IACZ,CAAC;IACH,4BAAC;AAAD,CAAC,AAbD,CAA2C,6CAAqB,GAa/D;AAbY,sDAAqB"} \ No newline at end of file diff --git a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.d.ts b/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.d.ts index fd12003c..58111879 100644 --- a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.d.ts +++ b/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.d.ts @@ -1,5 +1,5 @@ -import { TinyFaceFeatureExtractorParams } from 'src/faceFeatureExtractor/types'; import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor'; +import { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types'; import { FaceLandmark68NetBase } from './FaceLandmark68NetBase'; export declare class FaceLandmark68TinyNet extends FaceLandmark68NetBase { constructor(faceFeatureExtractor?: TinyFaceFeatureExtractor); diff --git a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js.map b/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js.map index 6f5ae831..b8082bd2 100644 --- a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js.map +++ b/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js.map @@ -1 +1 @@ -{"version":3,"file":"FaceLandmark68TinyNet.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;IAA2C,iDAAqD;IAE9F,+BAAY,oBAA+E;QAA/E,qCAAA,EAAA,2BAAqD,wBAAwB,EAAE;eACzF,kBAAM,uBAAuB,EAAE,oBAAoB,CAAC;IACtD,CAAC;IAES,mDAAmB,GAA7B;QACE,OAAO,6BAA6B,CAAA;IACtC,CAAC;IAES,uDAAuB,GAAjC;QACE,OAAO,GAAG,CAAA;IACZ,CAAC;IACH,4BAAC;AAAD,CAAC,AAbD,CAA2C,qBAAqB,GAa/D"} \ No newline at end of file +{"version":3,"file":"FaceLandmark68TinyNet.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kDAAkD,CAAC;AAE5F,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;IAA2C,iDAAqD;IAE9F,+BAAY,oBAA+E;QAA/E,qCAAA,EAAA,2BAAqD,wBAAwB,EAAE;eACzF,kBAAM,uBAAuB,EAAE,oBAAoB,CAAC;IACtD,CAAC;IAES,mDAAmB,GAA7B;QACE,OAAO,6BAA6B,CAAA;IACtC,CAAC;IAES,uDAAuB,GAAjC;QACE,OAAO,GAAG,CAAA;IACZ,CAAC;IACH,4BAAC;AAAD,CAAC,AAbD,CAA2C,qBAAqB,GAa/D"} \ No newline at end of file diff --git a/dist/face-api.js.map b/dist/face-api.js.map index df4b82e3..e3d10f16 100644 --- a/dist/face-api.js.map +++ b/dist/face-api.js.map @@ -1 +1 @@ -{"version":3,"file":"face-api.js","sources":["../node_modules/@tensorflow/tfjs-core/dist/tf-core.esm.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/Dimensions.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/Point.js","../node_modules/tfjs-image-recognition-base/build/es6/utils/index.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/Box.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/BoundingBox.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/BoxWithText.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/LabeledBox.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/ObjectDetection.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/PredictedBox.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/Rect.js","../node_modules/tfjs-image-recognition-base/build/es6/common/disposeUnusedWeightTensors.js","../node_modules/tfjs-image-recognition-base/build/es6/common/extractWeightEntryFactory.js","../node_modules/tfjs-image-recognition-base/build/es6/common/extractWeightsFactory.js","../node_modules/tfjs-image-recognition-base/build/es6/common/getModelUris.js","../node_modules/tfjs-image-recognition-base/build/es6/env/createBrowserEnv.js","../node_modules/tfjs-image-recognition-base/build/es6/env/createFileSystem.js","../node_modules/tfjs-image-recognition-base/build/es6/env/createNodejsEnv.js","../node_modules/tfjs-image-recognition-base/build/es6/env/isBrowser.js","../node_modules/tfjs-image-recognition-base/build/es6/env/isNodejs.js","../node_modules/tfjs-image-recognition-base/build/es6/env/index.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/isMediaLoaded.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/awaitMediaLoaded.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/bufferToImage.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/getContext2dOrThrow.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/getMediaDimensions.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/createCanvas.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/getDefaultDrawOptions.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/drawBox.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/drawText.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/resolveInput.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/drawDetection.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/fetchOrThrow.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/fetchImage.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/fetchJson.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/fetchNetWeights.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/imageTensorToCanvas.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/imageToSquare.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/isMediaElement.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/loadWeightMap.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/padToSquare.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/NetInput.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/toNetInput.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/iou.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/nonMaxSuppression.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/normalize.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/shuffleArray.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/index.js","../node_modules/tfjs-image-recognition-base/build/es6/NeuralNetwork.js","../src/classes/FaceDetection.ts","../src/classes/FaceLandmarks.ts","../src/classes/FaceLandmarks5.ts","../src/classes/FaceLandmarks68.ts","../src/classes/FaceMatch.ts","../src/classes/LabeledFaceDescriptors.ts","../src/dom/drawContour.ts","../src/dom/drawLandmarks.ts","../src/dom/drawFaceExpressions.ts","../src/dom/extractFaces.ts","../src/dom/extractFaceTensors.ts","../src/faceFeatureExtractor/depthwiseSeparableConv.ts","../src/faceFeatureExtractor/denseBlock.ts","../node_modules/tfjs-tiny-yolov2/build/es6/common/convLayer.js","../node_modules/tfjs-tiny-yolov2/build/es6/common/extractConvParamsFactory.js","../node_modules/tfjs-tiny-yolov2/build/es6/common/extractFCParamsFactory.js","../node_modules/tfjs-tiny-yolov2/build/es6/common/types.js","../node_modules/tfjs-tiny-yolov2/build/es6/common/extractSeparableConvParamsFactory.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/config.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/const.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/leaky.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/convWithBatchNorm.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/depthwiseSeparableConv.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/extractParams.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/extractParamsFromWeigthMap.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/TinyYolov2Options.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/TinyYolov2.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/TinyYolov2LossFunction.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/getDefaultBackwardOptions.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/TinyYolov2Trainable.js","../src/faceFeatureExtractor/extractorsFactory.ts","../src/faceFeatureExtractor/extractParams.ts","../src/faceFeatureExtractor/loadParamsFactory.ts","../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts","../src/faceFeatureExtractor/FaceFeatureExtractor.ts","../src/common/fullyConnectedLayer.ts","../src/faceProcessor/extractParams.ts","../src/faceProcessor/extractParamsFromWeigthMap.ts","../src/faceProcessor/util.ts","../src/faceProcessor/FaceProcessor.ts","../src/faceExpressionNet/types.ts","../src/faceExpressionNet/FaceExpressionNet.ts","../src/faceLandmarkNet/FaceLandmark68NetBase.ts","../src/faceLandmarkNet/FaceLandmark68Net.ts","../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts","../src/faceFeatureExtractor/extractParamsTiny.ts","../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts","../src/faceLandmarkNet/FaceLandmark68TinyNet.ts","../src/faceLandmarkNet/index.ts","../src/faceRecognitionNet/scaleLayer.ts","../src/faceRecognitionNet/convLayer.ts","../src/faceRecognitionNet/extractParams.ts","../src/faceRecognitionNet/extractParamsFromWeigthMap.ts","../src/faceRecognitionNet/residualLayer.ts","../src/faceRecognitionNet/FaceRecognitionNet.ts","../src/faceRecognitionNet/index.ts","../src/factories/WithFaceDescriptor.ts","../src/factories/WithFaceDetection.ts","../src/factories/WithFaceExpressions.ts","../src/factories/WithFaceLandmarks.ts","../src/mtcnn/MtcnnOptions.ts","../src/ssdMobilenetv1/extractParams.ts","../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts","../src/ssdMobilenetv1/pointwiseConvLayer.ts","../src/ssdMobilenetv1/mobileNetV1.ts","../src/ssdMobilenetv1/nonMaxSuppression.ts","../src/ssdMobilenetv1/outputLayer.ts","../src/ssdMobilenetv1/boxPredictionLayer.ts","../src/ssdMobilenetv1/predictionLayer.ts","../src/ssdMobilenetv1/SsdMobilenetv1Options.ts","../src/ssdMobilenetv1/SsdMobilenetv1.ts","../src/ssdMobilenetv1/index.ts","../src/tinyFaceDetector/TinyFaceDetectorOptions.ts","../src/globalApi/ComposableTask.ts","../src/mtcnn/bgrToRgbTensor.ts","../src/mtcnn/config.ts","../src/mtcnn/extractParams.ts","../src/mtcnn/extractParamsFromWeigthMap.ts","../src/mtcnn/getSizesForScale.ts","../src/mtcnn/pyramidDown.ts","../src/mtcnn/MtcnnBox.ts","../src/mtcnn/normalize.ts","../src/mtcnn/prelu.ts","../src/mtcnn/sharedLayers.ts","../src/mtcnn/PNet.ts","../src/mtcnn/stage1.ts","../src/mtcnn/extractImagePatches.ts","../src/mtcnn/RNet.ts","../src/mtcnn/stage2.ts","../src/mtcnn/ONet.ts","../src/mtcnn/stage3.ts","../src/mtcnn/Mtcnn.ts","../src/tinyFaceDetector/const.ts","../src/tinyFaceDetector/TinyFaceDetector.ts","../src/tinyYolov2/const.ts","../src/tinyYolov2/TinyYolov2.ts","../src/globalApi/nets.ts","../src/globalApi/ComputeFaceDescriptorsTasks.ts","../src/globalApi/DetectFaceLandmarksTasks.ts","../src/globalApi/PredictFaceExpressionsTask.ts","../src/globalApi/DetectFacesTasks.ts","../src/globalApi/detectFaces.ts","../src/globalApi/allFaces.ts","../src/euclideanDistance.ts","../src/globalApi/FaceMatcher.ts","../src/mtcnn/index.ts","../src/tinyFaceDetector/index.ts","../src/tinyYolov2/index.ts","../src/resizeResults.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nvar extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};function __extends(e,t){function n(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var __assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]0;)r=Math.random()*t|0,n=e[--t],e[t]=e[r],e[r]=n}function clamp(e,t,n){return Math.max(e,Math.min(t,n))}function nearestLargerEven(e){return e%2==0?e:e+1}function sum(e){for(var t=0,n=0;n1;--t)if(e%t==0)return[t,e/t];return[1,e]}function createShuffledIndices(e){for(var t=new Uint32Array(e),n=0;n=n?o():setTimeout(i,s)}};i()})}function inferFromImplicitShape(e,t){for(var n=1,r=-1,o=0;o=0)n*=e[o];else if(-1===e[o]){if(-1!==r)throw Error(\"Shapes can only have 1 implicit size. Found -1 at dim \"+r+\" and dim \"+o);r=o}else if(e[o]<0)throw Error(\"Shapes can not be < 0. Found \"+e[o]+\" at dim \"+o);if(-1===r){if(t>0&&t!==n)throw Error(\"Size(\"+t+\") must match the product of shape \"+e);return e}if(0===n)throw Error(\"Cannot infer the missing size in [\"+e+\"] when there are 0 elements\");if(t%n!=0)throw Error(\"The implicit shape can't be a fractional number. Got \"+t+\" / \"+n);var a=e.slice();return a[r]=t/n,a}function squeezeShape(e,t){for(var n=[],r=[],o=0,a=0;aa)&&1===e[a]&&(n.push(e[a]),r.push(a)),t[o]<=a&&o++}1!==e[a]&&(n.push(e[a]),r.push(a))}return{newShape:n,keptDims:r}}function getTypedArrayFromDType(e,t){var n=null;if(null==e||\"float32\"===e)n=new Float32Array(t);else if(\"int32\"===e)n=new Int32Array(t);else{if(\"bool\"!==e)throw new Error(\"Unknown data type \"+e);n=new Uint8Array(t)}return n}function getArrayFromDType(e,t){var n=null;if(null==e||\"float32\"===e)n=new Float32Array(t);else if(\"int32\"===e)n=new Int32Array(t);else if(\"bool\"===e)n=new Uint8Array(t);else{if(\"string\"!==e)throw new Error(\"Unknown data type \"+e);n=new Array(t)}return n}function checkComputationForNaN(e,t,n){if(\"float32\"===t)for(var r=0;r=0;--r)n[r]=n[r+1]*e[r+1];return n}function toTypedArray(e,t,n){if(\"string\"===t)throw new Error(\"Cannot convert a string[] to a TypedArray\");if(noConversionNeeded(e,t))return e;if(Array.isArray(e)&&(e=flatten(e)),null==t||\"float32\"===t||\"complex64\"===t)return new Float32Array(e);if(\"int32\"===t)return n&&checkConversionForNaN(e,t),new Int32Array(e);if(\"bool\"===t){for(var r=new Uint8Array(e.length),o=0;o1)for(var l=0;lFORMAT_LIMIT_NUM_VALS){var l=FORMAT_NUM_FIRST_LAST_VALS*i,c=Array.from(e.slice(0,l)),p=Array.from(e.slice(s-FORMAT_NUM_FIRST_LAST_VALS*i,s));return\"complex64\"===n&&(c=createComplexTuples(c),p=createComplexTuples(p)),[\"[\"+c.map(function(e,t){return valToString(e,o[t])}).join(\", \")+\", ..., \"+p.map(function(e,t){return valToString(e,o[s-FORMAT_NUM_FIRST_LAST_VALS+t])}).join(\", \")+\"]\"]}return[\"[\"+(\"complex64\"===n?createComplexTuples(e):Array.from(e)).map(function(e,t){return valToString(e,o[t])}).join(\", \")+\"]\"]}var d=t.slice(1),h=r.slice(1),f=r[0]*i,m=[];if(s>FORMAT_LIMIT_NUM_VALS){for(var g=0;g=0;a--)for(i=(f=e[a]).inputs,c=0;c=0;r--)n(r)}!function(e){e.R0=\"R0\",e.R1=\"R1\",e.R2=\"R2\",e.R3=\"R3\",e.R4=\"R4\",e.R5=\"R5\",e.R6=\"R6\"}(Rank||(Rank={})),function(e){e.float32=\"float32\",e.int32=\"int32\",e.bool=\"int32\",e.complex64=\"complex64\"}(UpcastInt32AndMap||(UpcastInt32AndMap={})),function(e){e.float32=\"float32\",e.int32=\"int32\",e.bool=\"bool\",e.complex64=\"complex64\"}(UpcastBoolAndMap||(UpcastBoolAndMap={})),function(e){e.float32=\"float32\",e.int32=\"float32\",e.bool=\"float32\",e.complex64=\"complex64\"}(UpcastFloat32AndMap||(UpcastFloat32AndMap={})),function(e){e.float32=\"complex64\",e.int32=\"complex64\",e.bool=\"complex64\",e.complex64=\"complex64\"}(UpcastComplex64AndMap||(UpcastComplex64AndMap={}));var upcastTypeMap={float32:UpcastFloat32AndMap,int32:UpcastInt32AndMap,bool:UpcastBoolAndMap,complex64:UpcastComplex64AndMap};function upcastType(e,t){if(\"string\"===e||\"string\"===t){if(\"string\"===e&&\"string\"===t)return\"string\";throw new Error(\"Can not upcast \"+e+\" with \"+t)}return upcastTypeMap[e][t]}function sumOutType(e){return upcastType(e,\"int32\")}function makeTypesMatch(e,t){if(e.dtype===t.dtype)return[e,t];var n=upcastType(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function assertTypesMatch(e,t){assert(e.dtype===t.dtype,\"The dtypes of the first(\"+e.dtype+\") and second(\"+t.dtype+\") input must match\")}function isTensorInList(e,t){for(var n=0;n0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push(\"Memory usage by string tensors is approximate (2 bytes per character)\")),e},e.prototype.profile=function(e){return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(r){return this.profiling=!0,t=this.numBytes,n=this.numTensors,this.activeProfile.kernels=[],this.activeProfile.result=e(),this.profiling=!1,this.activeProfile.peakBytes=Math.max.apply(Math,this.activeProfile.kernels.map(function(e){return e.totalBytesSnapshot})),this.activeProfile.newBytes=this.numBytes-t,this.activeProfile.newTensors=this.numTensors-n,[2,this.activeProfile]})})},e.prototype.shouldRecord=function(){return null!=this.activeTape&&0===this.customGradientDepth},e.prototype.addTapeNode=function(e,t,n){var r={};e.forEach(function(e,t){r[t]=e});var o={id:this.nextTapeNodeId++,name:this.activeScope.name,inputs:r,outputs:[t],gradient:function(e){var t={};return n(e).forEach(function(e,n){t[n]=function(){return e}}),t}};this.activeTape.push(o)},e.prototype.keep=function(e){if(1===this.scopeStack.length&&this.safeMode)throw new Error(\"Safe mode is ON. Enclose all tensor operations inside tf.tidy(): tf.tidy(() => {...}) to avoid memory leaks.\");return this.keepTensors.add(e.id),e},e.prototype.startScope=function(e,t){void 0===t&&(t=!1),t&&0===this.gradientScopeCount&&(this.activeTape=[]),t&&this.gradientScopeCount++;var n={track:[],name:\"unnamed scope\"};e&&(n.name=e),this.scopeStack.push(n),this.activeScope=n},e.prototype.endScope=function(e,t){var n=this;void 0===t&&(t=!1),t&&(this.gradientScopeCount--,0===this.gradientScopeCount&&(this.activeTape=null));var r=new Set(this.keepTensors),o=getTensorsInContainer(e);o.forEach(function(e){return r.add(e.id)});for(var a=0;a0,\"gradients() received an empty list of xs.\"),null!=n&&\"float32\"!==n.dtype)throw new Error(\"dy must have 'float32' dtype, but has '\"+n.dtype+\"'\");return this.tidy(\"gradients\",function(){var a=e();assert(a instanceof Tensor,\"The result y returned by f() must be a tensor.\");var i=getFilteredNodesXToY(o.activeTape,t,a);if(!r&&0===i.length&&t.length>0)throw new Error(\"Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.\");var s={};return s[a.id]=null==n?ones(a.shape):n,backpropagateGradients(s,i),{value:a,grads:t.map(function(e){return s[e.id]})}},!0)},e.prototype.customGrad=function(e){var t=this;return assert(isFunction(e),\"The f passed in customGrad(f) must be a function.\"),function(){for(var n,r,o=[],a=0;a {op();...}); to avoid memory leaks.\");return null!=this.activeScope&&this.activeScope.track.push(e),e},e.nextTensorId=0,e.nextVariableId=0,e}();function ones(e){var t=makeOnesTypedArray(sizeFromShape(e),\"float32\");return Tensor.make(e,{values:t})}!function(e){e[e.NUMBER=0]=\"NUMBER\",e[e.BOOLEAN=1]=\"BOOLEAN\",e[e.STRING=2]=\"STRING\"}(Type||(Type={}));var MAX_TEXTURE_SIZE,URL_PROPERTIES=[{name:\"DEBUG\",type:Type.BOOLEAN},{name:\"IS_BROWSER\",type:Type.BOOLEAN},{name:\"WEBGL_LAZILY_UNPACK\",type:Type.BOOLEAN},{name:\"WEBGL_CPU_FORWARD\",type:Type.BOOLEAN},{name:\"WEBGL_PACK\",type:Type.BOOLEAN},{name:\"WEBGL_PACK_BATCHNORMALIZATION\",type:Type.BOOLEAN},{name:\"WEBGL_PACK_CLIP\",type:Type.BOOLEAN},{name:\"WEBGL_PACK_DEPTHWISECONV\",type:Type.BOOLEAN},{name:\"WEBGL_CONV_IM2COL\",type:Type.BOOLEAN},{name:\"WEBGL_MAX_TEXTURE_SIZE\",type:Type.NUMBER},{name:\"WEBGL_PAGING_ENABLED\",type:Type.BOOLEAN},{name:\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",type:Type.NUMBER},{name:\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",type:Type.BOOLEAN},{name:\"WEBGL_VERSION\",type:Type.NUMBER},{name:\"WEBGL_RENDER_FLOAT32_ENABLED\",type:Type.BOOLEAN},{name:\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",type:Type.BOOLEAN},{name:\"WEBGL_FENCE_API_ENABLED\",type:Type.BOOLEAN},{name:\"WEBGL_SIZE_UPLOAD_UNIFORM\",type:Type.NUMBER},{name:\"BACKEND\",type:Type.STRING},{name:\"EPSILON\",type:Type.NUMBER},{name:\"PROD\",type:Type.BOOLEAN},{name:\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",type:Type.BOOLEAN}];function isWebGLVersionEnabled(e){try{if(null!=getWebGLContext(e))return!0}catch(e){return!1}return!1}function getWebGLMaxTextureSize(e){if(null==MAX_TEXTURE_SIZE){var t=getWebGLContext(e);MAX_TEXTURE_SIZE=t.getParameter(t.MAX_TEXTURE_SIZE)}return MAX_TEXTURE_SIZE}function getWebGLDisjointQueryTimerVersion(e){if(0===e)return 0;var t=getWebGLContext(e);return hasExtension(t,\"EXT_disjoint_timer_query_webgl2\")&&2===e?2:hasExtension(t,\"EXT_disjoint_timer_query\")?1:0}function isRenderToFloatTextureEnabled(e){if(0===e)return!1;var t=getWebGLContext(e);if(1===e){if(!hasExtension(t,\"OES_texture_float\"))return!1}else if(!hasExtension(t,\"EXT_color_buffer_float\"))return!1;return createFloatTextureAndBindToFramebuffer(t,e)}function isDownloadFloatTextureEnabled(e){if(0===e)return!1;var t=getWebGLContext(e);if(1===e){if(!hasExtension(t,\"OES_texture_float\"))return!1;if(!hasExtension(t,\"WEBGL_color_buffer_float\"))return!1}else if(!hasExtension(t,\"EXT_color_buffer_float\"))return!1;return createFloatTextureAndBindToFramebuffer(t,e)}function isWebGLFenceEnabled(e){return 2===e&&null!=getWebGLContext(e).fenceSync}function isChrome(){return\"undefined\"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}var TENSORFLOWJS_FLAGS_PREFIX=\"tfjsflags\";function getFeaturesFromURL(){var e={};if(\"undefined\"==typeof window||void 0===window.location||void 0===window.location.search)return e;var t=getQueryParams(window.location.search);if(TENSORFLOWJS_FLAGS_PREFIX in t){var n={};t[TENSORFLOWJS_FLAGS_PREFIX].split(\",\").forEach(function(e){var t=e.split(\":\"),r=t[0],o=t[1];n[r]=o}),URL_PROPERTIES.forEach(function(t){t.name in n&&(console.log(\"Setting feature override from URL \"+t.name+\": \"+n[t.name]),t.type===Type.NUMBER?e[t.name]=+n[t.name]:t.type===Type.BOOLEAN?e[t.name]=\"true\"===n[t.name]:t.type===Type.STRING?e[t.name]=n[t.name]:console.warn(\"Unknown URL param: \"+t.name+\".\"))})}return e}function hasExtension(e,t){return null!=e.getExtension(t)}function createFloatTextureAndBindToFramebuffer(e,t){var n=e.createFramebuffer(),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);var o=2===t?e.RGBA32F:e.RGBA;e.texImage2D(e.TEXTURE_2D,0,o,1,1,0,e.RGBA,e.FLOAT,null),e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);var a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(n),a}function getQueryParams(e){var t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,function(e){for(var n=[],r=1;r0&&!isMobile();if(\"HAS_WEBGL\"===e)return this.get(\"WEBGL_VERSION\")>0;if(\"WEBGL_VERSION\"===e)return isWebGLVersionEnabled(2)?2:isWebGLVersionEnabled(1)?1:0;if(\"WEBGL_RENDER_FLOAT32_ENABLED\"===e)return isRenderToFloatTextureEnabled(this.get(\"WEBGL_VERSION\"));if(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\"===e)return isDownloadFloatTextureEnabled(this.get(\"WEBGL_VERSION\"));if(\"WEBGL_FENCE_API_ENABLED\"===e)return isWebGLFenceEnabled(this.get(\"WEBGL_VERSION\"));if(\"WEBGL_SIZE_UPLOAD_UNIFORM\"===e)return this.get(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0;if(\"TEST_EPSILON\"===e)return 32===this.backend.floatPrecision()?TEST_EPSILON_FLOAT32:TEST_EPSILON_FLOAT16;if(\"EPSILON\"===e)return 32===this.backend.floatPrecision()?EPSILON_FLOAT32:EPSILON_FLOAT16;if(\"PROD\"===e)return!1;if(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\"===e)return!this.get(\"PROD\");throw new Error(\"Unknown feature \"+e+\".\")},e.prototype.setFeatures=function(e){this.features=Object.assign({},e)},e.prototype.reset=function(){this.features=getFeaturesFromURL(),null!=this.globalEngine&&(this.globalEngine=null)},Object.defineProperty(e.prototype,\"backend\",{get:function(){return this.engine.backend},enumerable:!0,configurable:!0}),e.prototype.findBackend=function(e){return e in this.registry?this.registry[e].backend:null},e.prototype.registerBackend=function(e,t,n,r){var o=this;if(void 0===n&&(n=1),e in this.registry)return console.warn(e+\" backend was already registered. Reusing existing backend\"),null!=r&&r(function(){return o.engine}),!1;try{var a=t();return a.setDataMover({moveData:function(e){return o.engine.moveData(e)}}),this.registry[e]={backend:a,priority:n},!0}catch(t){return console.warn(\"Registration of backend \"+e+\" failed\"),console.warn(t.stack||t.message),!1}},e.prototype.removeBackend=function(e){if(!(e in this.registry))throw new Error(e+\" backend not found in registry\");this.registry[e].backend.dispose(),delete this.registry[e]},Object.defineProperty(e.prototype,\"engine\",{get:function(){return this.initEngine(),this.globalEngine},enumerable:!0,configurable:!0}),e.prototype.initEngine=function(){var e=this;if(null==this.globalEngine){this.backendName=this.get(\"BACKEND\");var t=this.findBackend(this.backendName);this.globalEngine=new Engine(t,!1,function(){return e.get(\"DEBUG\")})}},e}();function getGlobalNamespace(){var e;if(\"undefined\"!=typeof window)e=window;else{if(\"undefined\"==typeof process)throw new Error(\"Could not find a global object\");e=process}return e}function getOrMakeEnvironment(){var e=getGlobalNamespace();return null==e.ENV&&(e.ENV=new Environment(getFeaturesFromURL()),setTensorTracker(function(){return e.ENV.engine})),e.ENV}var ENV=getOrMakeEnvironment(),environment=Object.freeze({EPSILON_FLOAT16:EPSILON_FLOAT16,EPSILON_FLOAT32:EPSILON_FLOAT32,Environment:Environment,ENV:ENV});function grad(e){return assert(isFunction(e),\"The f passed in grad(f) must be a function\"),function(t,n){return assert(t instanceof Tensor,\"The x passed in grad(f)(x) must be a tensor\"),assert(null==n||n instanceof Tensor,\"The dy passed in grad(f)(x, dy) must be a tensor\"),ENV.engine.tidy(function(){var r=ENV.engine.gradients(function(){return e(t)},[t],n),o=r.value,a=r.grads;return null!=n&&assertShapesMatch(o.shape,n.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),checkGrads(a),a[0]})}}function grads(e){return assert(isFunction(e),\"The f passed in grads(f) must be a function\"),function(t,n){return assert(Array.isArray(t)&&t.every(function(e){return e instanceof Tensor}),\"The args passed in grads(f)(args) must be an array of tensors\"),assert(null==n||n instanceof Tensor,\"The dy passed in grads(f)(args, dy) must be a tensor\"),ENV.engine.tidy(function(){var r=ENV.engine.gradients(function(){return e.apply(void 0,t)},t,n),o=r.value,a=r.grads;return null!=n&&assertShapesMatch(o.shape,n.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),checkGrads(a),a})}}function valueAndGrad(e){return assert(isFunction(e),\"The f passed in valueAndGrad(f) must be a function\"),function(t,n){assert(t instanceof Tensor,\"The x passed in valueAndGrad(f)(x) must be a tensor\"),assert(null==n||n instanceof Tensor,\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");var r=ENV.engine.gradients(function(){return e(t)},[t],n),o=r.grads,a=r.value;return checkGrads(o),{grad:o[0],value:a}}}function valueAndGrads(e){return assert(isFunction(e),\"The f passed in valueAndGrads(f) must be a function\"),function(t,n){assert(Array.isArray(t)&&t.every(function(e){return e instanceof Tensor}),\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),assert(null==n||n instanceof Tensor,\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");var r=ENV.engine.gradients(function(){return e.apply(void 0,t)},t,n);return null!=n&&assertShapesMatch(r.value.shape,n.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),checkGrads(r.grads),r}}function variableGrads(e,t){if(assert(isFunction(e),\"The f passed in variableGrads(f) must be a function\"),assert(null==t||Array.isArray(t)&&t.every(function(e){return e instanceof Variable}),\"The varList passed in variableGrads(f, varList) must be an array of variables\"),null==t)for(var n in t=[],ENV.engine.registeredVariables)t.push(ENV.engine.registeredVariables[n]);var r=t.length;assert((t=t.filter(function(e){return e.trainable})).length>0,\"variableGrads() expects at least one of the input variables to be trainable, but none of the \"+r+\" variables is trainable.\");var o=ENV.engine.gradients(e,t,null,!0),a=o.value,i=o.grads;assert(i.some(function(e){return null!=e}),\"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().\"),assert(0===a.rank,\"The f passed in variableGrads(f) must return a scalar, but it returned a rank-\"+a.rank+\" tensor\");var s={};return t.forEach(function(e,t){null!=i[t]&&(s[e.name]=i[t])}),{value:a,grads:s}}function customGrad(e){return ENV.engine.customGrad(e)}function checkGrads(e){if(e.filter(function(e){return null==e}).length>0)throw new Error(\"Cannot compute gradient of y=f(x) with respect to x. Make sure that\\n the f you passed encloses all operations that lead from x to y.\")}var tidy=Environment.tidy,keep=Environment.keep,dispose=Environment.dispose,time=Environment.time,profile=Environment.profile;function warn(){for(var e=[],t=0;t=2*t+1||o%2==1?i.push(o):a.push(o);r.push.apply(r,a),r.push(0),r.push.apply(r,i)}return r}function getReshapedPermuted(e,t,n,r){void 0===r&&(r=!0);var o=[];r?o.push(e[0]/n):o.push(e[0]*n);for(var a=1;a=-n&&e=0&&te.rank)throw new Error(\"index innermost dimension length must be <= tensor rank; saw: \"+t.shape[t.rank-1]+\" vs. \"+e.rank);if(0===e.size)throw new Error(\"Requested more than 0 entries, but input is empty. Input shape: \"+e.shape+\".\");for(var n=t.shape,r=n[n.length-1],o=1,a=0;a1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,a=\"Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: \"+n.shape+\", indices.shape: \"+t.shape+\", shape: \"+e+\", sliceDim: \"+r+\", and batchDim: \"+o+\".\";if(n.rank1?t.shape[t.rank-1]:1,o=n.length,a=1,i=r;it||n===e){r=!0;break}n=nearestDivisor(e,n+1)}return n}function computeOutShape$1(e,t,n){for(var r=[],o=e.length,a=0;a0?o>=c[t]:o<=c[t]);o+=r[t])n+=1;return n}),[l,h,p]}function startForAxis(e,t,n,r,o){var a=t[o];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);var i=r[o];return a<0&&(a+=i),a=clamp(0,a,i-1)}function stopForAxis(e,t,n,r,o){var a=t[o];e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);var i=r[o];return a<0&&(a+=i),a=n[o]>0?clamp(0,a,i):clamp(-1,a,i-1)}function inferShape(e){var t=e;if(isTypedArray(e))return[e.length];if(!Array.isArray(e))return[];for(var n=[];t instanceof Array||isTypedArray(t);)n.push(t.length),t=t[0];return e instanceof Array&&ENV.get(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&deepAssertShapeConsistency(e,n,[]),n}function deepAssertShapeConsistency(e,t,n){if(n=n||[],e instanceof Array||isTypedArray(e)){assert(t.length>0,function(){return\"Element arr[\"+n.join(\"][\")+\"] should be a primitive, but is an array of \"+e.length+\" elements\"}),assert(e.length===t[0],function(){return\"Element arr[\"+n.join(\"][\")+\"] should have \"+t[0]+\" elements, but has \"+e.length+\" elements\"});for(var r=t.slice(1),o=0;o=0&&(o=r),assertDtype(r,o,t,n),!isTypedArray(e)&&!Array.isArray(e)&&\"number\"!=typeof e&&\"boolean\"!=typeof e&&\"string\"!=typeof e)throw new Error(\"Argument '\"+t+\"' passed to '\"+n+\"' must be a Tensor or TensorLike, but got '\"+e.constructor.name+\"'\");var a=inferShape(e);isTypedArray(e)||Array.isArray(e)||(e=[e]);var i=\"string\"!==o?toTypedArray(e,o,ENV.get(\"DEBUG\")):flatten(e);return Tensor.make(a,{values:i},o)}function convertToTensorArray(e,t,n){if(!Array.isArray(e))throw new Error(\"Argument \"+t+\" passed to \"+n+\" must be a `Tensor[]` or `TensorLike[]`\");return e.map(function(e,r){return convertToTensor(e,t+\"[\"+r+\"]\",n)})}function op(e){var t=Object.keys(e);if(1!==t.length)throw new Error(\"Please provide an object with a single key (operation name) mapping to a function. Got an object with \"+t.length+\" keys.\");var n=t[0],r=e[n];n.endsWith(\"_\")&&(n=n.substring(0,n.length-1));var o=function(){for(var e=[],t=0;t1)return zeros([0],r);var o=makeZerosTypedArray(Math.abs(Math.ceil((t-e)/n)),r);to}).sort(function(e,t){return t.score-e.score}),i=[],s=0;s=0;--d){if(intersectionOverUnion(e,c,i[d])>=r){p=!0;break}}if(!p&&(i.push(c),i.length>=n))break}return tensor1d(i,\"int32\")}function intersectionOverUnion(e,t,n){var r=e.subarray(4*t,4*t+4),o=e.subarray(4*n,4*n+4),a=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),s=Math.max(r[0],r[2]),u=Math.max(r[1],r[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),d=Math.max(o[1],o[3]),h=(s-a)*(u-i),f=(p-l)*(d-c);if(h<=0||f<=0)return 0;var m=Math.max(a,l),g=Math.max(i,c),v=Math.min(s,p),y=Math.min(u,d),x=Math.max(v-m,0)*Math.max(y-g,0);return x/(h+f-x)}function split(e,t,n){var r=Array(e.rank).fill(0),o=e.shape.slice();return t.map(function(t){o[n]=t;var a=e.slice(r,o);return r[n]+=t,a})}function topkImpl(e,t,n,r,o){for(var a=t[t.length-1],i=[e.length/a,a],s=i[0],u=i[1],l=getTypedArrayFromDType(n,s*r),c=getTypedArrayFromDType(\"int32\",s*r),p=0;p\":\"<\",u=n?\"inOffset + i;\":\"round(getBestIndicesA(batch, inOffset + i));\";this.userCode=\"\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int batch = coords[0];\\n int outIdx = coords[1];\\n int inOffset = outIdx * \"+r+\";\\n\\n int bestIndex = inOffset;\\n float bestValue = getA(batch, bestIndex);\\n\\n for (int i = 0; i < \"+r+\"; i++) {\\n int inIdx = \"+u+\";\\n float candidate = getA(batch, inIdx);\\n if (candidate \"+s+\" bestValue) {\\n bestValue = candidate;\\n bestIndex = inIdx;\\n }\\n }\\n setOutput(float(bestIndex));\\n }\\n \"}}(),AvgPool2DBackpropProgram=function(){return function(e){this.variableNames=[\"dy\"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,s=e.effectiveFilterHeight,u=e.effectiveFilterWidth,l=s-1-e.padInfo.top,c=u-1-e.padInfo.left,p=1/(t*n);this.userCode=\"\\n const ivec2 pads = ivec2(\"+l+\", \"+c+\");\\n const float avgMultiplier = float(\"+p+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n\\n ivec2 dyRCCorner = coords.yz - pads;\\n int dyRCorner = dyRCCorner.x;\\n int dyCCorner = dyRCCorner.y;\\n\\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n for (int wR = 0; wR < \"+s+\";\\n wR += \"+a+\") {\\n float dyR = float(dyRCorner + wR) / \"+r+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 || fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n for (int wC = 0; wC < \"+u+\";\\n wC+= \"+i+\") {\\n float dyC = float(dyCCorner + wC) / \"+o+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n float dyValue = getDy(b, idyR, idyC, d);\\n\\n dotProd += dyValue * avgMultiplier;\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}();function getBroadcastDims(e,t){for(var n=e.length,r=[],o=0;o1&&1===i&&r.unshift(a)}return r}function getReductionAxes(e,t){for(var n=[],r=0;r1)&&n.unshift(a)}return n}function broadcastDimsAreOuter(e){for(var t=0;t b);\",GREATER_EQUAL=\"return float(a >= b);\",LOGICAL_AND=\"return float(a >= 1.0 && b >= 1.0);\",LOGICAL_OR=\"return float(a >= 1.0 || b >= 1.0);\",MAX=CHECK_NAN_SNIPPET+\"\\n return max(a, b);\\n\",MIN=CHECK_NAN_SNIPPET+\"\\n return min(a, b);\\n\",MOD=\"if (b == 0.0) return NAN;\\n return mod(a, b);\",ATAN2=CHECK_NAN_SNIPPET+\"\\n return atan(a, b);\\n\",ELU_DER=\"return (b >= 1.0) ? a : a * (b + 1.0);\",BinaryOpProgram=function(){function e(e,t,n){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.outputShape=assertAndGetBroadcastShape(t,n),this.userCode=\"\\n uniform float NAN;\\n float binaryOperation(float a, float b) {\\n \"+e+\"\\n }\\n\\n void main() {\\n float a = getAAtOutCoords();\\n float b = getBAtOutCoords();\\n setOutput(binaryOperation(a, b));\\n }\\n \"}return e.prototype.getCustomSetupFunc=function(){var e=this;return function(t,n){null==e.startLoc&&(e.startLoc=t.getUniformLocationNoThrow(n,\"NAN\"),null==e.startLoc)||t.gl.uniform1f(e.startLoc,NaN)}},e}(),ClipProgram=function(){return function(e,t,n){this.variableNames=[\"A\"],this.outputShape=e,this.userCode=\"\\n void main() {\\n float value = getAAtOutCoords();\\n if (isNaN(value)) {\\n setOutput(value);\\n return;\\n }\\n\\n setOutput(clamp(value, float(\"+t+\"), float(\"+n+\")));\\n }\\n \"}}(),ClipPackedProgram=function(){return function(e,t,n){this.variableNames=[\"A\"],this.usesPackedTextures=!0,this.outputShape=e,this.userCode=\"\\n void main() {\\n vec4 value = getAAtOutCoords();\\n\\n if (hasNaN(value)) {\\n setOutput(value);\\n return;\\n }\\n\\n setOutput(clamp(value, vec4(\"+t+\"), vec4(\"+n+\")));\\n }\\n \"}}(),ComplexAbsProgram=function(){return function(e){this.variableNames=[\"real\",\"imag\"],this.outputShape=e,this.userCode=\"\\n void main() {\\n float re = abs(getRealAtOutCoords());\\n float im = abs(getImagAtOutCoords());\\n float mx = max(re, im);\\n\\n // sadly the length function in glsl is not underflow-safe\\n // (at least not on Intel GPUs). So the safe solution is\\n // to ensure underflow-safety in all cases.\\n setOutput(\\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\\n );\\n }\\n \"}}(),ConcatProgram=function(){return function(e,t){this.variableNames=[\"A\",\"B\"],this.outputShape=[],this.outputShape=computeOutShape([e,t],1),this.userCode=\"\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int yR = coords.x;\\n int yC = coords.y;\\n\\n float value = 0.0;\\n if (yC < \"+e[1]+\") {\\n value = getA(yR, yC);\\n } else {\\n yC -= \"+e[1]+\";\\n value = getB(yR, yC);\\n }\\n\\n setOutput(value);\\n }\\n \"}}(),Conv2DDerFilterProgram=function(){return function(e){this.variableNames=[\"x\",\"dy\"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,o=e.padInfo.left;this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int wR = coords.x;\\n int wC = coords.y;\\n int d1 = coords.z;\\n int d2 = coords.w;\\n\\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n\\n for (int b = 0; b < \"+e.batchSize+\"; b++) {\\n for (int yR = 0; yR < \"+e.outHeight+\"; yR++) {\\n int xR = wR + yR * \"+t+\" - \"+r+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int yC = 0; yC < \"+e.outWidth+\"; yC++) {\\n int xC = wC + yC * \"+n+\" - \"+o+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n float dyValue = getDy(b, yR, yC, d2);\\n float xValue = getX(b, xR, xC, d1);\\n dotProd += (xValue * dyValue);\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv2DDerInputProgram=function(){return function(e){this.variableNames=[\"dy\",\"W\"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.top,i=n-1-e.padInfo.left;this.userCode=\"\\n const ivec2 pads = ivec2(\"+a+\", \"+i+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d1 = coords[3];\\n\\n ivec2 dyCorner = coords.yz - pads;\\n int dyRCorner = dyCorner.x;\\n int dyCCorner = dyCorner.y;\\n\\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n for (int wR = 0; wR < \"+t+\"; wR++) {\\n float dyR = float(dyRCorner + wR) / \"+r+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 || fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n int wRPerm = \"+t+\" - 1 - wR;\\n\\n for (int wC = 0; wC < \"+n+\"; wC++) {\\n float dyC = float(dyCCorner + wC) / \"+o+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n int wCPerm = \"+n+\" - 1 - wC;\\n\\n for (int d2 = 0; d2 < \"+e.outChannels+\"; d2++) {\\n float xValue = getDy(batch, idyR, idyC, d2);\\n float wValue = getW(wRPerm, wCPerm, d1, d2);\\n dotProd += xValue * wValue;\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv3DDerFilterProgram=function(){return function(e){this.variableNames=[\"x\",\"dy\"],this.outputShape=e.filterShape;var t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,o=e.padInfo.front,a=e.padInfo.top,i=e.padInfo.left;this.userCode=\"\\n void main() {\\n ivec5 coords = getOutputCoords();\\n int wF = coords.x;\\n int wR = coords.y;\\n int wC = coords.z;\\n int d1 = coords.w;\\n int d2 = coords.u;\\n\\n float dotProd = 0.0;\\n\\n for (int b = 0; b < \"+e.batchSize+\"; b++) {\\n for (int yF = 0; yF < \"+e.outDepth+\"; yF++) {\\n int xF = wF + yF * \"+t+\" - \"+o+\";\\n\\n if (xF < 0 || xF >= \"+e.inDepth+\") {\\n continue;\\n }\\n\\n for (int yR = 0; yR < \"+e.outHeight+\"; yR++) {\\n int xR = wR + yR * \"+n+\" - \"+a+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int yC = 0; yC < \"+e.outWidth+\"; yC++) {\\n int xC = wC + yC * \"+r+\" - \"+i+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n float dyValue = getDy(b, yF, yR, yC, d2);\\n float xValue = getX(b, xF, xR, xC, d1);\\n dotProd += (xValue * dyValue);\\n }\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv3DDerInputProgram=function(){return function(e){this.variableNames=[\"dy\",\"W\"],this.outputShape=e.inShape;var t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,s=t-1-e.padInfo.front,u=n-1-e.padInfo.top,l=r-1-e.padInfo.left;this.userCode=\"\\n const ivec3 pads = ivec3(\"+s+\", \"+u+\", \"+l+\");\\n\\n void main() {\\n ivec5 coords = getOutputCoords();\\n int batch = coords.x;\\n int d1 = coords.u;\\n\\n\\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\\n int dyFCorner = dyCorner.x;\\n int dyRCorner = dyCorner.y;\\n int dyCCorner = dyCorner.z;\\n\\n float dotProd = 0.0;\\n for (int wF = 0; wF < \"+t+\"; wF++) {\\n float dyF = float(dyFCorner + wF) / \"+o+\".0;\\n\\n if (dyF < 0.0 || dyF >= \"+e.outDepth+\".0 || fract(dyF) > 0.0) {\\n continue;\\n }\\n int idyF = int(dyF);\\n\\n int wFPerm = \"+t+\" - 1 - wF;\\n\\n for (int wR = 0; wR < \"+n+\"; wR++) {\\n float dyR = float(dyRCorner + wR) / \"+a+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 ||\\n fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n int wRPerm = \"+n+\" - 1 - wR;\\n\\n for (int wC = 0; wC < \"+r+\"; wC++) {\\n float dyC = float(dyCCorner + wC) / \"+i+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n int wCPerm = \"+r+\" - 1 - wC;\\n\\n for (int d2 = 0; d2 < \"+e.outChannels+\"; d2++) {\\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\\n dotProd += xValue * wValue;\\n }\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),DepthwiseConv2DDerFilterProgram=function(){return function(e){this.variableNames=[\"x\",\"dy\"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,o=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int wR = coords.x;\\n int wC = coords.y;\\n int d1 = coords.z;\\n int dm = coords.w;\\n int d2 = d1 * \"+a+\" + dm;\\n\\n float dotProd = 0.0;\\n\\n // TODO: Vec4 over the batch size\\n for (int b = 0; b < \"+e.batchSize+\"; b++) {\\n for (int yR = 0; yR < \"+e.outHeight+\"; yR++) {\\n int xR = wR + yR * \"+t+\" - \"+r+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int yC = 0; yC < \"+e.outWidth+\"; yC++) {\\n int xC = wC + yC * \"+n+\" - \"+o+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n float dyValue = getDy(b, yR, yC, d2);\\n float xValue = getX(b, xR, xC, d1);\\n dotProd += (xValue * dyValue);\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),DepthwiseConv2DDerInputProgram=function(){return function(e){this.variableNames=[\"dy\",\"W\"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.top,i=n-1-e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=\"\\n const ivec2 pads = ivec2(\"+a+\", \"+i+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d1 = coords[3];\\n ivec2 dyCorner = coords.yz - pads;\\n int dyRCorner = dyCorner.x;\\n int dyCCorner = dyCorner.y;\\n\\n float dotProd = 0.0;\\n\\n for (int wR = 0; wR < \"+t+\"; wR++) {\\n float dyR = float(dyRCorner + wR) / \"+r+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 || fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n int wRPerm = \"+t+\" - 1 - wR;\\n\\n for (int wC = 0; wC < \"+n+\"; wC++) {\\n float dyC = float(dyCCorner + wC) / \"+o+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n int wCPerm = \"+n+\" - 1 - wC;\\n\\n // TODO: Vec4 over the channelMul\\n for (int dm = 0; dm < \"+s+\"; dm++) {\\n int d2 = d1 * \"+s+\" + dm;\\n float xValue = getDy(batch, idyR, idyC, d2);\\n float wValue = getW(wRPerm, wCPerm, d1, dm);\\n dotProd += xValue * wValue;\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv2DProgram=function(){return function(e){this.variableNames=[\"x\",\"W\"],this.outputShape=e.outShape;var t=e.padInfo.top,n=e.padInfo.left,r=e.strideHeight,o=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,s=e.filterHeight,u=e.filterWidth,l=4*Math.floor(e.inChannels/4),c=e.inChannels%4;this.userCode=\"\\n const ivec2 strides = ivec2(\"+r+\", \"+o+\");\\n const ivec2 pads = ivec2(\"+t+\", \"+n+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d2 = coords[3];\\n\\n ivec2 xRCCorner = coords.yz * strides - pads;\\n int xRCorner = xRCCorner.x;\\n int xCCorner = xRCCorner.y;\\n\\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n for (int wR = 0; wR < \"+s+\"; wR++) {\\n int xR = xRCorner + wR * \"+a+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+u+\"; wC++) {\\n int xC = xCCorner + wC * \"+i+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n for (int d1 = 0; d1 < \"+l+\"; d1 += 4) {\\n vec4 xValues = vec4(\\n getX(batch, xR, xC, d1),\\n getX(batch, xR, xC, d1 + 1),\\n getX(batch, xR, xC, d1 + 2),\\n getX(batch, xR, xC, d1 + 3)\\n );\\n vec4 wValues = vec4(\\n getW(wR, wC, d1, d2),\\n getW(wR, wC, d1 + 1, d2),\\n getW(wR, wC, d1 + 2, d2),\\n getW(wR, wC, d1 + 3, d2)\\n );\\n\\n dotProd += dot(xValues, wValues);\\n }\\n\\n if (\"+(1===c)+\") {\\n dotProd +=\\n getX(batch, xR, xC, \"+l+\") *\\n getW(wR, wC, \"+l+\", d2);\\n } else if (\"+(2===c)+\") {\\n vec2 xValues = vec2(\\n getX(batch, xR, xC, \"+l+\"),\\n getX(batch, xR, xC, \"+l+\" + 1)\\n );\\n vec2 wValues = vec2(\\n getW(wR, wC, \"+l+\", d2),\\n getW(wR, wC, \"+l+\" + 1, d2)\\n );\\n dotProd += dot(xValues, wValues);\\n } else if (\"+(3===c)+\") {\\n vec3 xValues = vec3(\\n getX(batch, xR, xC, \"+l+\"),\\n getX(batch, xR, xC, \"+l+\" + 1),\\n getX(batch, xR, xC, \"+l+\" + 2)\\n );\\n vec3 wValues = vec3(\\n getW(wR, wC, \"+l+\", d2),\\n getW(wR, wC, \"+l+\" + 1, d2),\\n getW(wR, wC, \"+l+\" + 2, d2)\\n );\\n dotProd += dot(xValues, wValues);\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv3DProgram=function(){return function(e){this.variableNames=[\"x\",\"W\"],this.outputShape=e.outShape;var t=e.padInfo.front,n=e.padInfo.top,r=e.padInfo.left,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,s=e.dilationDepth,u=e.dilationHeight,l=e.dilationWidth,c=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=4*Math.floor(e.inChannels/4),f=e.inChannels%4;this.userCode=\"\\n const ivec3 strides = ivec3(\"+o+\", \"+a+\", \"+i+\");\\n const ivec3 pads = ivec3(\"+t+\", \"+n+\", \"+r+\");\\n\\n void main() {\\n ivec5 coords = getOutputCoords();\\n int batch = coords.x;\\n int d2 = coords.u;\\n\\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\\n int xFCorner = xFRCCorner.x;\\n int xRCorner = xFRCCorner.y;\\n int xCCorner = xFRCCorner.z;\\n\\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\\n // values in that axis.\\n float dotProd = 0.0;\\n for (int wF = 0; wF < \"+c+\"; wF++) {\\n int xF = xFCorner + wF * \"+s+\";\\n\\n if (xF < 0 || xF >= \"+e.inDepth+\") {\\n continue;\\n }\\n\\n for (int wR = 0; wR < \"+p+\"; wR++) {\\n int xR = xRCorner + wR * \"+u+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+d+\"; wC++) {\\n int xC = xCCorner + wC * \"+l+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n for (int d1 = 0; d1 < \"+h+\"; d1 += 4) {\\n vec4 xValues = vec4(\\n getX(batch, xF, xR, xC, d1),\\n getX(batch, xF, xR, xC, d1 + 1),\\n getX(batch, xF, xR, xC, d1 + 2),\\n getX(batch, xF, xR, xC, d1 + 3)\\n );\\n vec4 wValues = vec4(\\n getW(wF, wR, wC, d1, d2),\\n getW(wF, wR, wC, d1 + 1, d2),\\n getW(wF, wR, wC, d1 + 2, d2),\\n getW(wF, wR, wC, d1 + 3, d2)\\n );\\n\\n dotProd += dot(xValues, wValues);\\n }\\n\\n if (\"+(1===f)+\") {\\n dotProd +=\\n getX(batch, xF, xR, xC, \"+h+\") *\\n getW(wF, wR, wC, \"+h+\", d2);\\n } else if (\"+(2===f)+\") {\\n vec2 xValues = vec2(\\n getX(batch, xF, xR, xC, \"+h+\"),\\n getX(batch, xF, xR, xC, \"+h+\" + 1)\\n );\\n vec2 wValues = vec2(\\n getW(wF, wR, wC, \"+h+\", d2),\\n getW(wF, wR, wC, \"+h+\" + 1, d2)\\n );\\n dotProd += dot(xValues, wValues);\\n } else if (\"+(3===f)+\") {\\n vec3 xValues = vec3(\\n getX(batch, xF, xR, xC, \"+h+\"),\\n getX(batch, xF, xR, xC, \"+h+\" + 1),\\n getX(batch, xF, xR, xC, \"+h+\" + 2)\\n );\\n vec3 wValues = vec3(\\n getW(wF, wR, wC, \"+h+\", d2),\\n getW(wF, wR, wC, \"+h+\" + 1, d2),\\n getW(wF, wR, wC, \"+h+\" + 2, d2)\\n );\\n dotProd += dot(xValues, wValues);\\n }\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),DepthwiseConv2DProgram=function(){return function(e){this.variableNames=[\"x\",\"W\"],this.outputShape=e.outShape;var t=e.inHeight,n=e.inWidth,r=e.padInfo.top,o=e.padInfo.left,a=e.strideHeight,i=e.strideWidth,s=e.dilationHeight,u=e.dilationWidth,l=e.filterHeight,c=e.filterWidth,p=e.outChannels/e.inChannels;this.userCode=\"\\n const ivec2 strides = ivec2(\"+a+\", \"+i+\");\\n const ivec2 pads = ivec2(\"+r+\", \"+o+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords.x;\\n ivec2 xRCCorner = coords.yz * strides - pads;\\n int d2 = coords.w;\\n int d1 = d2 / \"+p+\";\\n int q = d2 - d1 * \"+p+\";\\n\\n int xRCorner = xRCCorner.x;\\n int xCCorner = xRCCorner.y;\\n\\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n // TODO(dsmilkov): Flatten the two for loops and vec4 the operations.\\n for (int wR = 0; wR < \"+l+\"; wR++) {\\n int xR = xRCorner + wR * \"+s+\";\\n\\n if (xR < 0 || xR >= \"+t+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+c+\"; wC++) {\\n int xC = xCCorner + wC * \"+u+\";\\n\\n if (xC < 0 || xC >= \"+n+\") {\\n continue;\\n }\\n\\n float xVal = getX(batch, xR, xC, d1);\\n float wVal = getW(wR, wC, d1, q);\\n dotProd += xVal * wVal;\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),DepthwiseConvPacked2DProgram=function(){return function(e){this.variableNames=[\"x\",\"W\"],this.usesPackedTextures=!0,this.outputShape=e.outShape;for(var t=e.inHeight,n=e.inWidth,r=e.padInfo.top,o=e.padInfo.left,a=e.strideHeight,i=e.strideWidth,s=e.filterHeight,u=e.filterWidth,l=Math.ceil((u+1)/2),c=\"int xR; int xC;\",p=0;p= 0 && xR < \"+t+\" && xC >= 0 && xC < \"+n+\") {\\n \"+xTexelName(p,f)+\" = getX(batch, xR, xC, d1);\\n }\",0===o?h1&&(c+=\"\\n vec4 \"+xTexelName(p,f+2)+\" = vec4(0.);\\n\\n if(xR >= 0 && xR < \"+t+\" && xC + 2 < \"+n+\") {\\n \"+xTexelName(p,f+2)+\" = getX(batch, xR, xC + 2, d1);\\n }\"),c+=\"\\n xR\"+p+\"C\"+f+\" = \"+constructTexel(p,f,i,o)+\";\\n \"):0===d&&(c+=\"\\n if(xR >= 0 && xR < \"+t+\" && xC - 2 >= 0) {\\n \"+xTexelName(p,f-2)+\" = getX(batch, xR, xC - 2, d1);\\n }\"),h>0&&(c+=\"xR\"+p+\"C\"+(f-2)+\" =\\n \"+constructTexel(p,f-2,i,o)+\";\"),f-1>=0&&f-11?[\"\"+(i-1)/(c-1),\"(y2-y1) * height_ratio\",\"y1*\"+f+\" + float(y)*(height_scale)\"]:[\"0.0\",\"0.0\",\"0.5 * (y1+y2) * \"+f],v=g[0],y=g[1],x=g[2],T=p>1?[\"\"+(s-1)/(p-1),\"(x2-x1) * width_ratio\",\"x1*\"+m+\" + float(x)*(width_scale)\"]:[\"0.0\",\"0.0\",\"0.5 * (x1+x2) * \"+m],w=T[0],E=T[1],S=T[2];this.userCode=\"\\n const float height_ratio = float(\"+v+\");\\n const float width_ratio = float(\"+w+\");\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int y = coords[1];\\n int x = coords[2];\\n int d = coords[3];\\n\\n // get box vals\\n float y1 = getBoxes(b,0);\\n float x1 = getBoxes(b,1);\\n float y2 = getBoxes(b,2);\\n float x2 = getBoxes(b,3);\\n\\n // get image in batch index\\n int bInd = round(getBoxInd(b));\\n if(bInd < 0 || bInd >= \"+a+\") {\\n return;\\n }\\n\\n float height_scale = \"+y+\";\\n float width_scale = \"+E+\";\\n\\n float in_y = \"+x+\";\\n if( in_y < 0.0 || in_y > \"+f+\" ) {\\n setOutput(float(\"+o+\"));\\n return;\\n }\\n float in_x = \"+S+\";\\n if( in_x < 0.0 || in_x > \"+m+\" ) {\\n setOutput(float(\"+o+\"));\\n return;\\n }\\n\\n vec2 sourceFracIndexRC = vec2(in_y,in_x);\\n if(\"+d+\" == 1) {\\n // Compute the four integer indices.\\n ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\\n ivec2 sourceCeilRC = ivec2(ceil(sourceFracIndexRC));\\n\\n float topLeft = getImage(b, sourceFloorRC.x, sourceFloorRC.y, d);\\n float bottomLeft = getImage(b, sourceCeilRC.x, sourceFloorRC.y, d);\\n float topRight = getImage(b, sourceFloorRC.x, sourceCeilRC.y, d);\\n float bottomRight = getImage(b, sourceCeilRC.x, sourceCeilRC.y, d);\\n\\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\\n\\n float top = topLeft + (topRight - topLeft) * fracRC.y;\\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\\n float newValue = top + (bottom - top) * fracRC.x;\\n setOutput(newValue);\\n } else {\\n // Compute the coordinators of nearest neighbor point.\\n ivec2 sourceNearestRC = ivec2(floor(\\n sourceFracIndexRC + vec2(0.5,0.5)));\\n float newValue = getImage(b, sourceNearestRC.x, sourceNearestRC.y, d);\\n setOutput(newValue);\\n }\\n }\\n \"}}();function getLogicalCoordinatesFromFlatIndex(e,t,n){void 0===n&&(n=\"index\");var r=computeStrides(t);return r.map(function(t,o){return\"int \"+e[o]+\" = \"+n+\" / \"+t+\"; \"+(o===r.length-1?\"int \"+e[o+1]+\" = \"+n+\" - \"+e[o]+\" * \"+t:\"index -= \"+e[o]+\" * \"+t)+\";\"}).join(\"\")}function buildVec(e){return 1===e.length?\"\"+e[0]:\"vec\"+e.length+\"(\"+e.join(\",\")+\")\"}function dotify(e,t){if(e.length!==t.length)throw new Error(\"Vectors to be dotted must be of the same length -got \"+e.length+\" and \"+t.length);for(var n=[],r=Math.floor(e.length/4),o=e.length%4,a=0;a1?\"[\"+t+\"]\":\"\")+\";\":\"uniform sampler2D \"+e.name+\";\"});a=a.join(\"\\n\");var i,s,u=e.map(function(e){return getInputSamplingSnippet(e,t,r,o)}).join(\"\\n\"),l=t.texShape,c=SHADER_PREFIX;return t.isPacked?(i=getPackedOutputSamplingSnippet(t.logicalShape,l),s=FLOAT_TEXTURE_SET_RGBA_SNIPPET):(i=getOutputSamplingSnippet(t.logicalShape,l),s=FLOAT_TEXTURE_SET_R_SNIPPET),o&&(c+=SHADER_PACKED_PREFIX),[c,FLOAT_TEXTURE_SAMPLE_SNIPPET,s,a,i,u,n].join(\"\\n\")}function getSamplerFromInInfo(e){var t=e.shapeInfo.logicalShape;switch(t.length){case 0:return getSamplerScalar(e);case 1:return getSampler1D(e);case 2:return getSampler2D(e);case 3:return getSampler3D(e);case 4:return getSampler4D(e);case 5:return getSampler5D(e);case 6:return getSampler6D(e);default:throw new Error(t.length+\"-D input sampling is not yet supported\")}}function getPackedSamplerFromInInfo(e){var t=e.shapeInfo.logicalShape;switch(t.length){case 0:return getPackedSamplerScalar(e);case 1:return getPackedSampler1D(e);case 2:return getPackedSampler2D(e);case 3:return getPackedSampler3D(e);case 4:return getPackedSampler4D(e);default:throw new Error(\"Packed \"+t.length+\"-D input sampling is not yet supported\")}}function getInputSamplingSnippet(e,t,n,r){void 0===r&&(r=!1);var o=getSamplerFlat(e);return o+=r?getPackedSamplerFromInInfo(e):getSamplerFromInInfo(e),(n||arraysEqual(e.shapeInfo.logicalShape,t.logicalShape))&&(o+=r?getPackedSamplerAtOutputCoords(e,t,n):getSamplerAtOutputCoords(e,t,n)),o}function getPackedOutputSamplingSnippet(e,t){switch(e.length){case 0:return getOutputScalarCoords();case 1:return getOutputPacked1DCoords(e,t);case 2:return getOutputPacked2DCoords(e,t);case 3:return getOutputPacked3DCoords(e,t);case 4:return getOutputPacked4DCoords(e,t);default:throw new Error(e.length+\"-D packed output coordinate fetching is not yet supported\")}}function getOutputSamplingSnippet(e,t){switch(e.length){case 0:return getOutputScalarCoords();case 1:return getOutput1DCoords(e,t);case 2:return getOutput2DCoords(e,t);case 3:return getOutput3DCoords(e,t);case 4:return getOutput4DCoords(e,t);case 5:return getOutput5DCoords(e,t);case 6:return getOutput6DCoords(e,t);default:throw new Error(e.length+\"-D output sampling is not yet supported\")}}var SAMPLE_1D_SNIPPET=\"\\nvec2 UVfrom1D(int texNumR, int texNumC, int index) {\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\\n int texelIndex = index / 2;\\n int texR = texelIndex / texNumC;\\n int texC = texelIndex - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_2D_SNIPPET=\"\\nvec2 UVfrom2D(int texNumR, int texNumC, int numC, int row, int col) {\\n int index = row * numC + col;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\\n int texNumC, int row, int col) {\\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\\n int texR = texelIndex / texNumC;\\n int texC = texelIndex - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_3D_SNIPPET=\"\\nvec2 UVfrom3D(int texNumR, int texNumC, int stride0,\\n int stride1, int row, int col, int depth) {\\n // Explicitly use integer operations as dot() only works on floats.\\n int index = row * stride0 + col * stride1 + depth;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\nvec2 packedUVfrom3D(int texNumR, int texNumC,\\n int texelsInBatch, int texelsInLogicalRow, int b,\\n int row, int col) {\\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_4D_SNIPPET=\"\\nvec2 UVfrom4D(int texNumR, int texNumC, int stride0,\\n int stride1, int stride2, int row, int col, int depth,\\n int depth2) {\\n // Explicitly use integer operations as dot() only works on floats.\\n int index = row * stride0 + col * stride1 + depth * stride2 + depth2;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\nvec2 packedUVfrom4D(int texNumR, int texNumC, int texelsInBatch2,\\n int texelsInBatch, int texelsInLogicalRow, int b2, int b,\\n int row, int col) {\\n int index = b2 * texelsInBatch2 + b * texelsInBatch +\\n (row / 2) * texelsInLogicalRow + (col / 2);\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_5D_SNIPPET=\"\\nvec2 UVfrom5D(int texNumR, int texNumC, int stride0,\\n int stride1, int stride2, int stride3, int row, int col, int depth,\\n int depth2, int depth3) {\\n // Explicitly use integer operations as dot() only works on floats.\\n int index = row * stride0 + col * stride1 +\\n depth * stride2 + depth2 * stride3 + depth3;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_6D_SNIPPET=\"\\nvec2 UVfrom6D(int texNumR, int texNumC, int stride0,\\n int stride1, int stride2, int stride3, int stride4,\\n int row, int col, int depth, int depth2, int depth3, int depth4) {\\n // Explicitly use integer operations as dot() only works on floats.\\n int index = row * stride0 + col * stride1 + depth * stride2 + depth2 *\\n stride3 + depth3 * stride4 + depth4;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",FLOAT_TEXTURE_SAMPLE_SNIPPET=\"\\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\\n return texture2D(textureSampler, uv).r;\\n }\\n\",FLOAT_TEXTURE_SET_R_SNIPPET=\"\\n void setOutput(float val) {\\n gl_FragColor = vec4(val, 0, 0, 0);\\n }\\n\",FLOAT_TEXTURE_SET_RGBA_SNIPPET=\"\\n void setOutput(vec4 val) {\\n gl_FragColor = val;\\n }\\n\",NAN_CHECKS=\"\",SHADER_PREFIX=\"\\n precision highp float;\\n precision highp int;\\n varying vec2 resultUV;\\n const vec2 halfCR = vec2(0.5, 0.5);\\n\\n struct ivec5\\n {\\n int x;\\n int y;\\n int z;\\n int w;\\n int u;\\n };\\n\\n struct ivec6\\n {\\n int x;\\n int y;\\n int z;\\n int w;\\n int u;\\n int v;\\n };\\n\\n \"+(NAN_CHECKS=ENV.get(\"PROD\")?\"\\n bool isNaN(float val) {\\n return false;\\n }\\n\\n bool hasNaN(vec4 values) {\\n return false;\\n }\\n \":\"\\n bool isNaN(float val) {\\n return (val < 1.0 || 0.0 < val || val == 0.0) ? false : true;\\n }\\n\\n bool hasNaN(vec4 values) {\\n return any(bvec4(\\n isNaN(values.x),\\n isNaN(values.y),\\n isNaN(values.z),\\n isNaN(values.w)\\n ));\\n }\\n \")+\"\\n\\n float getNaN(vec4 values) {\\n return dot(vec4(1), values);\\n }\\n\\n int round(float value) {\\n return int(floor(value + 0.5));\\n }\\n\\n int imod(int x, int y) {\\n return x - y * (x / y);\\n }\\n\\n //Based on the work of Dave Hoskins\\n //https://www.shadertoy.com/view/4djSRW\\n #define HASHSCALE1 443.8975\\n float random(float seed){\\n vec2 p = resultUV * seed;\\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\\n p3 += dot(p3, p3.yzx + 19.19);\\n return fract((p3.x + p3.y) * p3.z);\\n }\\n\\n \"+SAMPLE_1D_SNIPPET+\"\\n \"+SAMPLE_2D_SNIPPET+\"\\n \"+SAMPLE_3D_SNIPPET+\"\\n \"+SAMPLE_4D_SNIPPET+\"\\n \"+SAMPLE_5D_SNIPPET+\"\\n \"+SAMPLE_6D_SNIPPET+\"\\n\",SHADER_PACKED_PREFIX=\"\\n float getChannel(vec4 frag, vec2 innerDims) {\\n vec2 modCoord = mod(innerDims, 2.);\\n return modCoord.x == 0. ?\\n (modCoord.y == 0. ? frag.r : frag.g) :\\n (modCoord.y == 0. ? frag.b : frag.a);\\n }\\n float getChannel(vec4 frag, int dim) {\\n float modCoord = mod(float(dim), 2.);\\n return modCoord == 0. ? frag.r : frag.g;\\n }\\n\";function getOutputScalarCoords(){return\"\\n int getOutputCoords() {\\n return 0;\\n }\\n \"}function getOutputPacked1DCoords(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return 1===t[0]?\"\\n int getOutputCoords() {\\n return 2 * int(resultUV.x * \"+n[1]+\".0);\\n }\\n \":1===t[1]?\"\\n int getOutputCoords() {\\n return 2 * int(resultUV.y * \"+n[0]+\".0);\\n }\\n \":\"\\n int getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+n[0]+\", \"+n[1]+\"));\\n return resTexRC.x * \"+n[1]+\" + resTexRC.y;\\n }\\n \"}function getOutput1DCoords(e,t){return 1===t[0]?\"\\n int getOutputCoords() {\\n return int(resultUV.x * \"+t[1]+\".0);\\n }\\n \":1===t[1]?\"\\n int getOutputCoords() {\\n return int(resultUV.y * \"+t[0]+\".0);\\n }\\n \":\"\\n int getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n return resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n }\\n \"}function getOutputPacked3DCoords(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[2]/2),o=r*Math.ceil(e[1]/2);return\"\\n ivec3 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+n[0]+\", \"+n[1]+\"));\\n int index = resTexRC.x * \"+n[1]+\" + resTexRC.y;\\n\\n int b = index / \"+o+\";\\n index -= b * \"+o+\";\\n\\n int r = 2 * (index / \"+r+\");\\n int c = imod(index, \"+r+\") * 2;\\n\\n return ivec3(b, r, c);\\n }\\n \"}function getOutput3DCoords(e,t){var n=getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\"],e);return\"\\n ivec3 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n \"+n+\"\\n return ivec3(r, c, d);\\n }\\n \"}function getOutputPacked4DCoords(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[3]/2),o=r*Math.ceil(e[2]/2),a=o*e[1];return\"\\n ivec4 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+n[0]+\", \"+n[1]+\"));\\n int index = resTexRC.x * \"+n[1]+\" + resTexRC.y;\\n\\n int b2 = index / \"+a+\";\\n index -= b2 * \"+a+\";\\n\\n int b = index / \"+o+\";\\n index -= b * \"+o+\";\\n\\n int r = 2 * (index / \"+r+\");\\n int c = imod(index, \"+r+\") * 2;\\n\\n return ivec4(b2, b, r, c);\\n }\\n \"}function getOutput4DCoords(e,t){var n=getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\",\"d2\"],e);return\"\\n ivec4 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n \"+n+\"\\n return ivec4(r, c, d, d2);\\n }\\n \"}function getOutput5DCoords(e,t){var n=getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\",\"d2\",\"d3\"],e);return\"\\n ivec5 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(\"+t[0]+\",\\n \"+t[1]+\"));\\n\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n\\n \"+n+\"\\n\\n ivec5 outShape = ivec5(r, c, d, d2, d3);\\n return outShape;\\n }\\n \"}function getOutput6DCoords(e,t){var n=getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\",\"d2\",\"d3\",\"d4\"],e);return\"\\n ivec6 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n\\n \"+n+\"\\n\\n ivec6 result = ivec6(r, c, d, d2, d3, d4);\\n return result;\\n }\\n \"}function getOutputPacked2DCoords(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(arraysEqual(e,t))return\"\\n ivec2 getOutputCoords() {\\n return 2 * ivec2(resultUV.yx * vec2(\"+n[0]+\", \"+n[1]+\"));\\n }\\n \";var r=Math.ceil(e[1]/2);return\"\\n ivec2 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+n[0]+\", \"+n[1]+\"));\\n\\n int index = resTexRC.x * \"+n[1]+\" + resTexRC.y;\\n int r = 2 * (index / \"+r+\");\\n int c = imod(index, \"+r+\") * 2;\\n\\n return ivec2(r, c);\\n }\\n \"}function getOutput2DCoords(e,t){return arraysEqual(e,t)?\"\\n ivec2 getOutputCoords() {\\n return ivec2(resultUV.yx * vec2(\"+t[0]+\", \"+t[1]+\"));\\n }\\n \":1===e[1]?\"\\n ivec2 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n return ivec2(index, 0);\\n }\\n \":1===e[0]?\"\\n ivec2 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n return ivec2(0, index);\\n }\\n \":\"\\n ivec2 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n int r = index / \"+e[1]+\";\\n int c = index - r * \"+e[1]+\";\\n return ivec2(r, c);\\n }\\n \"}function getPackedSamplerScalar(e){var t=e.name;return\"\\n vec4 \"+(\"get\"+t.charAt(0).toUpperCase()+t.slice(1))+\"() {\\n return texture2D(\"+t+\", halfCR);\\n }\\n \"}function getSamplerScalar(e){var t=e.name,n=\"get\"+t.charAt(0).toUpperCase()+t.slice(1);return e.shapeInfo.isUniform?\"float \"+n+\"() {return \"+t+\";}\":\"\\n float \"+n+\"() {\\n return sampleTexture(\"+t+\", halfCR);\\n }\\n \"}function getPackedSampler1D(e){var t=e.name,n=\"get\"+t.charAt(0).toUpperCase()+t.slice(1),r=e.shapeInfo.texShape,o=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)];return\"\\n vec4 \"+n+\"(int index) {\\n vec2 uv = packedUVfrom1D(\\n \"+o[0]+\", \"+o[1]+\", index);\\n return texture2D(\"+t+\", uv);\\n }\\n \"}function getSampler1D(e){var t=e.name,n=\"get\"+t.charAt(0).toUpperCase()+t.slice(1);return\"\\n float \"+n+\"(int index) {\\n return \"+n+\"Flat(index);\\n }\\n \"}function getPackedSampler2D(e){var t=e.shapeInfo.logicalShape,n=e.name,r=\"get\"+n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.texShape,a=o[0],i=o[1];if(null!=o&&arraysEqual(t,o))return\"\\n vec4 \"+r+\"(int row, int col) {\\n vec2 uv = (vec2(col, row) + halfCR) / vec2(\"+i+\".0, \"+a+\".0);\\n\\n return texture2D(\"+n+\", uv);\\n }\\n \";var s=[Math.ceil(o[0]/2),Math.ceil(o[1]/2)];return\"\\n vec4 \"+r+\"(int row, int col) {\\n vec2 uv = packedUVfrom2D(\"+Math.ceil(t[1]/2)+\", \"+s[0]+\", \"+s[1]+\", row, col);\\n return texture2D(\"+n+\", uv);\\n }\\n \"}function getSampler2D(e){var t=e.shapeInfo.logicalShape,n=e.name,r=\"get\"+n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.texShape;if(null!=o&&arraysEqual(t,o)){var a=o[0];return\"\\n float \"+r+\"(int row, int col) {\\n vec2 uv = (vec2(col, row) + halfCR) / vec2(\"+o[1]+\".0, \"+a+\".0);\\n return sampleTexture(\"+n+\", uv);\\n }\\n \"}var i=squeezeShape(t),s=i.newShape,u=i.keptDims,l=s;if(l.length=1?\"coords = 0;\":s.map(function(e){return\"coords[\"+(e+u)+\"] = 0;\"}).join(\"\\n\"))+\"\\n return get\"+n+\"(\"+(a<2&&o>0?\"coords\":e.shapeInfo.logicalShape.map(function(e,t){return\"coords[\"+(t+u)+\"]\"}).join(\", \"))+\");\\n }\\n \"}function getPackedSamplerAtOutputCoords(e,t,n){var r=e.name,o=r.charAt(0).toUpperCase()+r.slice(1),a=e.shapeInfo.texShape,i=\"get\"+o+\"AtOutCoords\",s=t.texShape,u=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)],l=u[0],c=u[1],p=getBroadcastDims(e.shapeInfo.logicalShape,t.logicalShape),d=e.shapeInfo.logicalShape.length,h=t.logicalShape.length;if(p.length)throw Error(\"Packed broadcast sampling is not implemented yet.\");if(arraysEqual(e.shapeInfo.texShape,s))return\"\\n vec4 \"+i+\"() {\\n return texture2D(\"+r+\", resultUV);\\n }\\n \";var f=\"return texture2D(\"+r+\", uv)\";return 1===d&&h>1?f=\"\\n vec4 sample = texture2D(\"+r+\", uv);\\n return vec4(sample.xy, sample.xy);\\n \":0===d&&h>0&&(f=1===h?\"\\n vec4 sample = texture2D(\"+r+\", uv);\\n return vec4(sample.x, sample.x, 0., 0.);\\n \":\"\\n vec4 sample = texture2D(\"+r+\", uv);\\n return vec4(sample.x);\\n \"),\"\\n vec4 \"+i+\"() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+u[0]+\", \"+u[1]+\"));\\n int index = resTexRC.x * \"+u[1]+\" + resTexRC.y;\\n\\n int texR = index / \"+c+\";\\n int texC = index - texR * \"+c+\";\\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(\"+c+\", \"+l+\");\\n\\n \"+f+\";\\n }\\n \"}function getSamplerAtOutputCoords(e,t,n){var r=e.name,o=r.charAt(0).toUpperCase()+r.slice(1),a=\"get\"+o+\"AtOutCoords\",i=getBroadcastDims(e.shapeInfo.logicalShape,t.logicalShape),s=e.shapeInfo.logicalShape.length,u=t.logicalShape.length,l=n&&(u>s||i.length>0),c=broadcastDimsAreOuter(i),p=e.shapeInfo.isUniform;if(l&&!c)return getBroadcastOutputCoordsSampler(e,t,o,a);var d=sizeFromShape(e.shapeInfo.logicalShape),h=\"\";l&&c&&(h=\"\\n int mainPart = index / \"+d+\";\\n index -= mainPart * \"+d+\";\\n \");var f=t.texShape;if(p)return 1===d?\"float \"+a+\"() {return \"+r+\";}\":\"\\n float \"+a+\"() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+f[0]+\", \"+f[1]+\"));\\n int index = resTexRC.x * \"+f[1]+\" + resTexRC.y;\\n \"+h+\"\\n return get\"+o+\"Flat(index);\\n }\\n \";var m=e.shapeInfo.texShape;return arraysEqual(m,f)?\"\\n float \"+a+\"() {\\n return sampleTexture(\"+r+\", resultUV);\\n }\\n \":\"\\n float \"+a+\"() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+f[0]+\", \"+f[1]+\"));\\n int index = resTexRC.x * \"+f[1]+\" + resTexRC.y;\\n \"+h+\"\\n int texR = index / \"+m[1]+\";\\n int texC = index - texR * \"+m[1]+\";\\n vec2 uv = (vec2(texC, texR) + halfCR) /\\n vec2(\"+m[1]+\".0, \"+m[0]+\".0);\\n\\n return sampleTexture(\"+r+\", uv);\\n }\\n \"}function getCoordsDataType(e){if(e<=1)return\"int\";if(2===e)return\"ivec2\";if(3===e)return\"ivec3\";if(4===e)return\"ivec4\";if(5===e)return\"ivec5\";if(6===e)return\"ivec6\";throw Error(\"GPU for rank \"+e+\" is not yet supported\")}function squeezeInputInfo(e,t){var n=JSON.parse(JSON.stringify(e));return n.shapeInfo.logicalShape=t,n}function getSqueezedParams(e,t){return t.map(function(t){return e[t]}).join(\", \")}var CumSumProgram=function(){return function(e,t,n){this.variableNames=[\"x\"],this.outputShape=e;var r=e.length,o=e[e.length-1],a=n?\"<\":\">\";this.userCode=\"\\n int getIndex(int i) {\\n \"+(n?\"return \"+o+\" -i - 1;\":\"return i;\")+\"\\n }\\n\\n void main() {\\n \"+getCoordsDataType(r)+\" coords = getOutputCoords();\\n int end = \"+getFinalCoord(r,\"coords\")+\";\\n float val = 0.0;\\n for (int i = \"+o+\" - 1; i >= 0; i -= 1) {\\n int idx = getIndex(i);\\n if (idx \"+a+\" end) {\\n continue;\\n }\\n if (idx == end && \"+t+\") {\\n continue;\\n }\\n \"+getFinalCoord(r,\"coords\")+\" = idx;\\n val += getX(\"+getCoords(r,\"coords\")+\");\\n }\\n setOutput(val);\\n }\\n \"}}();function getCoords(e,t){if(1===e)return\"\"+t;if(2===e)return t+\".x, \"+t+\".y\";if(3===e)return t+\".x, \"+t+\".y, \"+t+\".z\";if(4===e)return t+\".x, \"+t+\".y, \"+t+\".z, \"+t+\".w\";throw Error(\"Cumulative sum for rank \"+e+\" is not yet supported\")}function getFinalCoord(e,t){if(1===e)return\"\"+t;if(2===e)return t+\".y\";if(3===e)return t+\".z\";if(4===e)return t+\".w\";throw Error(\"Cumulative sum for rank \"+e+\" is not yet supported\")}var DepthToSpaceProgram=function(){function e(e,t,n){this.variableNames=[\"x\"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int h = \"+this.getHeightCoordString()+\";\\n int w = \"+this.getWidthCoordString()+\";\\n int d = \"+this.getDepthCoordString()+\";\\n\\n int in_h = h / \"+t+\";\\n int offset_h = imod(h, \"+t+\");\\n int in_w = w / \"+t+\";\\n int offset_w = imod(w, \"+t+\");\\n int offset_d = (offset_h * \"+t+\" + offset_w) *\\n \"+this.getOutputDepthSize()+\";\\n int in_d = d + offset_d;\\n\\n float result = \"+this.getInputSamplingString()+\";\\n setOutput(result);\\n }\\n \"}return e.prototype.getHeightCoordString=function(){return\"NHWC\"===this.dataFormat?\"coords[1]\":\"coords[2]\"},e.prototype.getWidthCoordString=function(){return\"NHWC\"===this.dataFormat?\"coords[2]\":\"coords[3]\"},e.prototype.getDepthCoordString=function(){return\"NHWC\"===this.dataFormat?\"coords[3]\":\"coords[1]\"},e.prototype.getOutputDepthSize=function(){return\"NHWC\"===this.dataFormat?this.outputShape[3]:this.outputShape[1]},e.prototype.getInputSamplingString=function(){return\"NHWC\"===this.dataFormat?\"getX(b, in_h, in_w, in_d)\":\"getX(b, in_d, in_h, in_w)\"},e}(),EncodeFloatProgram=function(){return function(e){this.variableNames=[\"A\"],this.outputShape=e,this.userCode=\"\\n const float FLOAT_MAX = 1.70141184e38;\\n const float FLOAT_MIN = 1.17549435e-38;\\n\\n lowp vec4 encode_float(highp float v) {\\n if (isNaN(v)) {\\n return vec4(255, 255, 255, 255);\\n }\\n\\n highp float av = abs(v);\\n\\n if(av < FLOAT_MIN) {\\n return vec4(0.0, 0.0, 0.0, 0.0);\\n } else if(v > FLOAT_MAX) {\\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\\n } else if(v < -FLOAT_MAX) {\\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\\n }\\n\\n highp vec4 c = vec4(0,0,0,0);\\n\\n highp float e = floor(log2(av));\\n highp float m = exp2(fract(log2(av))) - 1.0;\\n\\n c[2] = floor(128.0 * m);\\n m -= c[2] / 128.0;\\n c[1] = floor(32768.0 * m);\\n m -= c[1] / 32768.0;\\n c[0] = floor(8388608.0 * m);\\n\\n highp float ebias = e + 127.0;\\n c[3] = floor(ebias / 2.0);\\n ebias -= c[3] * 2.0;\\n c[2] += floor(ebias) * 128.0;\\n\\n c[3] += 128.0 * step(0.0, -v);\\n\\n return c / 255.0;\\n }\\n\\n void main() {\\n float x = getAAtOutCoords();\\n gl_FragColor = encode_float(x);\\n }\\n \"}}(),COMPLEX_FFT={REAL:\"return real * expR - imag * expI;\",IMAG:\"return real * expI + imag * expR;\"},FFTProgram=function(){return function(e,t,n){this.variableNames=[\"real\",\"imag\"];var r=t[1];this.outputShape=t;var o=n?\"2.0 * \"+Math.PI:\"-2.0 * \"+Math.PI,a=n?r+\".0\":\"1.0\";this.userCode=\"\\n const float exponentMultiplier = \"+o+\";\\n\\n float unaryOpComplex(float real, float expR, float imag, float expI) {\\n \"+e+\"\\n }\\n\\n float mulMatDFT(int batch, int index) {\\n float indexRatio = float(index) / float(\"+r+\");\\n float exponentMultiplierTimesIndexRatio =\\n exponentMultiplier * indexRatio;\\n\\n float result = 0.0;\\n\\n for (int i = 0; i < \"+r+\"; i++) {\\n // x = (-2|2 * PI / N) * index * i;\\n float x = exponentMultiplierTimesIndexRatio * float(i);\\n float expR = cos(x);\\n float expI = sin(x);\\n float real = getReal(batch, i);\\n float imag = getImag(batch, i);\\n\\n result +=\\n unaryOpComplex(real, expR, imag, expI) / \"+a+\";\\n }\\n\\n return result;\\n }\\n\\n void main() {\\n ivec2 coords = getOutputCoords();\\n setOutput(mulMatDFT(coords[0], coords[1]));\\n }\\n \"}}(),FromPixelsProgram=function(){return function(e){this.variableNames=[\"A\"];var t=e[0],n=e[1];this.outputShape=e,this.userCode=\"\\n void main() {\\n ivec3 coords = getOutputCoords();\\n int texR = coords[0];\\n int texC = coords[1];\\n int depth = coords[2];\\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(\"+n+\".0, \"+t+\".0);\\n\\n vec4 values = texture2D(A, uv);\\n float value;\\n if (depth == 0) {\\n value = values.r;\\n } else if (depth == 1) {\\n value = values.g;\\n } else if (depth == 2) {\\n value = values.b;\\n } else if (depth == 3) {\\n value = values.a;\\n }\\n\\n setOutput(floor(value * 255.0 + 0.5));\\n }\\n \"}}(),GatherProgram=function(){return function(e,t,n){this.variableNames=[\"A\",\"indices\"];var r=e.slice();r[n]=t,this.outputShape=r,this.rank=r.length;var o=getCoordsDataType(this.rank),a=getSourceCoords(e,n);this.userCode=\"\\n void main() {\\n \"+o+\" resRC = getOutputCoords();\\n setOutput(getA(\"+a+\"));\\n }\\n \"}}();function getSourceCoords(e,t){var n=e.length;if(n>4)throw Error(\"Gather for rank \"+n+\" is not yet supported\");if(1===n)return\"int(getIndices(resRC))\";for(var r=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],o=[],a=0;a1?\"strides[j]\":\"strides\";this.userCode=\"\\n \"+r+\" strides = \"+r+\"(\"+this.strides+\");\\n void main() {\\n \"+o+\" coords = getOutputCoords();\\n int flattenIndex = 0;\\n for (int j = 0; j < \"+this.sliceDim+\"; j++) {\\n int index = round(getIndices(coords[0], j));\\n flattenIndex += index * \"+a+\";\\n }\\n setOutput(getX(flattenIndex, coords[1]));\\n }\\n \"}}();function getUnpackedMatrixTextureShapeWidthHeight(e,t){return[t,e]}function getUnpackedArraySizeFromMatrixSize(e,t){return e*t}function getMatrixSizeFromUnpackedArraySize(e,t){if(e%t!=0)throw new Error(\"unpackedSize (\"+e+\") must be a multiple of \"+t);return e/t}function encodeMatrixToUnpackedArray(e,t,n){var r=getUnpackedArraySizeFromMatrixSize(e.length,n);if(t.length= \"+r);for(var o=0,a=0;a= \"+r);for(var o=0,a=0;a=\\n \"+a);for(var i=r%2==1,s=n%2==1,u=Math.floor(r/2),l=Math.floor(n/2),c=Math.ceil(r/2),p=c*Math.ceil(n/2),d=nearestLargerEven(n)*nearestLargerEven(r),h=0;h= \"+a);for(var i=r%2==1,s=n%2==1,u=Math.floor(r/2),l=Math.floor(n/2),c=Math.ceil(r/2),p=c*Math.ceil(n/2),d=nearestLargerEven(n)*nearestLargerEven(r),h=0;hn||t>n){r=\"[\"+e+\"x\"+t+\"]\";throw new Error(\"Requested texture size \"+r+\" greater than WebGL maximum on this browser / GPU \"+(\"[\"+n+\"x\"+n+\"]\")+\".\")}}function createFramebuffer(e){return throwIfNull(e,function(){return e.createFramebuffer()},\"Unable to create WebGLFramebuffer.\")}function bindVertexBufferToProgramAttribute(e,t,n,r,o,a,i){var s=e.getAttribLocation(t,n);return-1!==s&&(callAndCheck(e,function(){return e.bindBuffer(e.ARRAY_BUFFER,r)}),callAndCheck(e,function(){return e.vertexAttribPointer(s,o,e.FLOAT,!1,a,i)}),callAndCheck(e,function(){return e.enableVertexAttribArray(s)}),!0)}function bindTextureUnit(e,t,n){validateTextureUnit(e,n),callAndCheck(e,function(){return e.activeTexture(e.TEXTURE0+n)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,t)})}function unbindTextureUnit(e,t){validateTextureUnit(e,t),callAndCheck(e,function(){return e.activeTexture(e.TEXTURE0+t)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,null)})}function getProgramUniformLocationOrThrow(e,t,n){return throwIfNull(e,function(){return e.getUniformLocation(t,n)},'uniform \"'+n+'\" not present in program.')}function getProgramUniformLocation(e,t,n){return e.getUniformLocation(t,n)}function bindTextureToProgramUniformSampler(e,t,n,r,o){callAndCheck(e,function(){return bindTextureUnit(e,n,o)}),callAndCheck(e,function(){return e.uniform1i(r,o)})}function bindCanvasToFramebuffer(e){callAndCheck(e,function(){return e.bindFramebuffer(e.FRAMEBUFFER,null)}),callAndCheck(e,function(){return e.viewport(0,0,e.canvas.width,e.canvas.height)}),callAndCheck(e,function(){return e.scissor(0,0,e.canvas.width,e.canvas.height)})}function bindColorTextureToFramebuffer(e,t,n){callAndCheck(e,function(){return e.bindFramebuffer(e.FRAMEBUFFER,n)}),callAndCheck(e,function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)})}function unbindColorTextureFromFramebuffer(e,t){callAndCheck(e,function(){return e.bindFramebuffer(e.FRAMEBUFFER,t)}),callAndCheck(e,function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)})}function validateFramebuffer(e){var t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+getFramebufferErrorMessage(e,t))}function getFramebufferErrorMessage(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\";case e.FRAMEBUFFER_UNSUPPORTED:return\"FRAMEBUFFER_UNSUPPORTED\";default:return\"unknown error \"+t}}function throwIfNull(e,t,n){var r=callAndCheck(e,function(){return t()});if(null==r)throw new Error(n);return r}function validateTextureUnit(e,t){var n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=t+e.TEXTURE0;if(rn)throw new Error(\"textureUnit must be in \"+(\"[gl.TEXTURE0, gl.TEXTURE\"+n+\"]\")+\".\")}function getTextureShapeFromLogicalShape(e,t){void 0===t&&(t=!1);var n=ENV.get(\"WEBGL_MAX_TEXTURE_SIZE\");if(t&&(n*=2,e=e.map(function(t,n){return n>=e.length-2?nearestLargerEven(e[n]):e[n]})),2!==e.length){var r=squeezeShape(e);e=r.newShape}var o=sizeFromShape(e);return e.length<=1&&o<=n?[1,o]:2===e.length&&e[0]<=n&&e[1]<=n?e:3===e.length&&e[0]*e[1]<=n&&e[2]<=n?[e[0]*e[1],e[2]]:3===e.length&&e[0]<=n&&e[1]*e[2]<=n?[e[0],e[1]*e[2]]:4===e.length&&e[0]*e[1]*e[2]<=n&&e[3]<=n?[e[0]*e[1]*e[2],e[3]]:4===e.length&&e[0]<=n&&e[1]*e[2]*e[3]<=n?[e[0],e[1]*e[2]*e[3]]:sizeToSquarishShape(o)}function isEven(e){return e%2==0}function isReshapeFree(e,t){if(arraysEqual(e=e.slice(-2),t=t.slice(-2)))return!0;if(!e.length||!t.length)return!0;if(0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){var n=e.slice(-1)[0],r=t.slice(-1)[0];if(n===r)return!0;if(isEven(n)&&isEven(r)&&(1===e[0]||1===t[0]))return!0}else if(isEven(e[0])&&isEven(t[0])){if(isEven(e[1])&&isEven(t[1]))return!0;if(e[1]===t[1])return!0}return!1}var webgl_util=Object.freeze({callAndCheck:callAndCheck,enableDebugWebGLErrorChecking:enableDebugWebGLErrorChecking,checkWebGLError:checkWebGLError,getWebGLErrorMessage:getWebGLErrorMessage,getExtensionOrThrow:getExtensionOrThrow,createVertexShader:createVertexShader,createFragmentShader:createFragmentShader,createProgram:createProgram,linkProgram:linkProgram,validateProgram:validateProgram,createStaticVertexBuffer:createStaticVertexBuffer,createStaticIndexBuffer:createStaticIndexBuffer,getNumChannels:getNumChannels,createTexture:createTexture,validateTextureSize:validateTextureSize,createFramebuffer:createFramebuffer,bindVertexBufferToProgramAttribute:bindVertexBufferToProgramAttribute,bindTextureUnit:bindTextureUnit,unbindTextureUnit:unbindTextureUnit,getProgramUniformLocationOrThrow:getProgramUniformLocationOrThrow,getProgramUniformLocation:getProgramUniformLocation,bindTextureToProgramUniformSampler:bindTextureToProgramUniformSampler,bindCanvasToFramebuffer:bindCanvasToFramebuffer,bindColorTextureToFramebuffer:bindColorTextureToFramebuffer,unbindColorTextureFromFramebuffer:unbindColorTextureFromFramebuffer,validateFramebuffer:validateFramebuffer,getFramebufferErrorMessage:getFramebufferErrorMessage,getTextureShapeFromLogicalShape:getTextureShapeFromLogicalShape,isReshapeFree:isReshapeFree});function createVertexShader$1(e){return createVertexShader(e,\"\\n precision highp float;\\n attribute vec3 clipSpacePos;\\n attribute vec2 uv;\\n varying vec2 resultUV;\\n\\n void main() {\\n gl_Position = vec4(clipSpacePos, 1);\\n resultUV = uv;\\n }\")}function createVertexBuffer(e){return createStaticVertexBuffer(e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}function createIndexBuffer(e){return createStaticIndexBuffer(e,new Uint16Array([0,1,2,2,1,3]))}function getTextureConfig(e,t){var n,r,o,a,i,s,u,l=e;return 2===ENV.get(\"WEBGL_VERSION\")?(n=l.R32F,r=l.R16F,o=l.RGBA32F,a=l.RED,i=4,s=1,u=l.HALF_FLOAT):(n=e.RGBA,r=e.RGBA,o=l.RGBA,a=e.RGBA,i=4,s=4,u=null!=t?t.HALF_FLOAT_OES:null),{internalFormatFloat:n,internalFormatHalfFloat:r,internalFormatPackedFloat:o,textureFormatFloat:a,downloadTextureFormat:e.RGBA,downloadUnpackNumChannels:i,defaultNumChannels:s,textureTypeHalfFloat:u}}function createAndConfigureTexture(e,t,n,r,o,a){validateTextureSize(t,n);var i=createTexture(e),s=e.TEXTURE_2D;return callAndCheck(e,function(){return e.bindTexture(s,i)}),callAndCheck(e,function(){return e.texParameteri(s,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)}),callAndCheck(e,function(){return e.texParameteri(s,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}),callAndCheck(e,function(){return e.texParameteri(s,e.TEXTURE_MIN_FILTER,e.NEAREST)}),callAndCheck(e,function(){return e.texParameteri(s,e.TEXTURE_MAG_FILTER,e.NEAREST)}),callAndCheck(e,function(){return e.texImage2D(s,0,r,t,n,0,o,a,null)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,null)}),i}function createFloat32MatrixTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],r.internalFormatFloat,r.textureFormatFloat,e.FLOAT)}function createFloat16MatrixTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],r.internalFormatFloat,r.textureFormatFloat,r.textureTypeHalfFloat)}function createUnsignedBytesMatrixTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],e.RGBA,e.RGBA,e.UNSIGNED_BYTE)}function createPackedMatrixTexture(e,t,n,r){var o=getPackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],r.internalFormatPackedFloat,e.RGBA,e.FLOAT)}function createFloat16PackedMatrixTexture(e,t,n,r){var o=getPackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],r.internalFormatHalfFloat,e.RGBA,r.textureTypeHalfFloat)}function bindVertexProgramAttributeStreams(e,t,n){return callAndCheck(e,function(){return e.bindBuffer(e.ARRAY_BUFFER,n)}),bindVertexBufferToProgramAttribute(e,t,\"clipSpacePos\",n,3,20,0)&&bindVertexBufferToProgramAttribute(e,t,\"uv\",n,2,20,12)}function uploadPixelDataToTexture(e,t,n){callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,t)}),callAndCheck(e,function(){return e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,null)})}function uploadDataToTexture(e,t,n,r,o,a){validateTextureSize(n,r),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,t)}),callAndCheck(e,function(){return e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,r,a,e.FLOAT,o)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,null)})}function uploadMatrixToTexture(e,t,n,r,o,a,i){var s,u=getUnpackedMatrixTextureShapeWidthHeight(n,r),l=u[0],c=u[1];1===i.defaultNumChannels?s=o:encodeMatrixToUnpackedArray(o,s=new Float32Array(getUnpackedArraySizeFromMatrixSize(o.length,a)),a),uploadDataToTexture(e,t,l,c,s,i.textureFormatFloat)}function uploadMatrixToPackedTexture(e,t,n,r,o,a,i,s,u){var l=getPackedMatrixTextureShapeWidthHeight(a,i),c=l[0],p=l[1],d=new Float32Array(n*getPackedRGBAArraySizeFromMatrixShape(r,o));encodeMatrixToPackedRGBA(s,n,r,o,d),uploadDataToTexture(e,t,c,p,d,e.RGBA)}function maybeCreateBufferFromOutputTexture(e,t,n,r,o){var a=t;if(2===ENV.get(\"WEBGL_VERSION\")){var i=e,s=i.createBuffer();callAndCheck(e,function(){return e.bindBuffer(i.PIXEL_PACK_BUFFER,s)});var u=4*getUnpackedArraySizeFromMatrixSize(n*r,o.downloadUnpackNumChannels);callAndCheck(e,function(){return e.bufferData(i.PIXEL_PACK_BUFFER,u,e.STATIC_DRAW)}),callAndCheck(e,function(){return i.readPixels(0,0,r,n,e.RGBA,e.FLOAT,0)}),callAndCheck(e,function(){return e.bindBuffer(i.PIXEL_PACK_BUFFER,null)}),a=s}return a}function downloadFloat32MatrixFromBuffer(e,t,n,r,o){var a=e,i=new Float32Array(getUnpackedArraySizeFromMatrixSize(n*r,o.downloadUnpackNumChannels));a.bindBuffer(e.ARRAY_BUFFER,t),a.getBufferSubData(e.ARRAY_BUFFER,0,i),a.bindBuffer(e.ARRAY_BUFFER,null);var s=new Float32Array(n*r);return decodeMatrixFromUnpackedArray(i,s,o.downloadUnpackNumChannels),s}function downloadFloat32MatrixFromOutputTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n),a=o[0],i=o[1],s=new Float32Array(getUnpackedArraySizeFromMatrixSize(t*n,r.downloadUnpackNumChannels));callAndCheck(e,function(){return e.readPixels(0,0,a,i,r.downloadTextureFormat,e.FLOAT,s)});var u=new Float32Array(t*n);return decodeMatrixFromUnpackedArray(s,u,r.downloadUnpackNumChannels),u}function downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n),a=o[0],i=o[1],s=new Uint8Array(getUnpackedArraySizeFromMatrixSize(t*n,4));return callAndCheck(e,function(){return e.readPixels(0,0,a,i,r.downloadTextureFormat,e.UNSIGNED_BYTE,s)}),new Float32Array(s.buffer)}function downloadPackedMatrixFromBuffer(e,t,n,r,o,a,i,s){var u=e,l=new Float32Array(getPackedRGBAArraySizeFromMatrixShape(a,i));u.bindBuffer(e.ARRAY_BUFFER,t),u.getBufferSubData(e.ARRAY_BUFFER,0,l),u.bindBuffer(e.ARRAY_BUFFER,null);var c=new Float32Array(sizeFromShape([n,r,o]));return decodeMatrixFromPackedRGBA(l,n,r,o,c),c}function downloadMatrixFromPackedOutputTexture(e,t,n,r,o,a,i){var s=getPackedMatrixTextureShapeWidthHeight(o,a),u=s[0],l=s[1],c=new Float32Array(getPackedRGBAArraySizeFromMatrixShape(o,a));callAndCheck(e,function(){return e.readPixels(0,0,u,l,e.RGBA,e.FLOAT,c)});var p=new Float32Array(sizeFromShape([t,n,r]));return decodeMatrixFromPackedRGBA(c,t,n,r,p)}var gpgpu_util=Object.freeze({createVertexShader:createVertexShader$1,createVertexBuffer:createVertexBuffer,createIndexBuffer:createIndexBuffer,getTextureConfig:getTextureConfig,createFloat32MatrixTexture:createFloat32MatrixTexture,createFloat16MatrixTexture:createFloat16MatrixTexture,createUnsignedBytesMatrixTexture:createUnsignedBytesMatrixTexture,createPackedMatrixTexture:createPackedMatrixTexture,createFloat16PackedMatrixTexture:createFloat16PackedMatrixTexture,bindVertexProgramAttributeStreams:bindVertexProgramAttributeStreams,uploadPixelDataToTexture:uploadPixelDataToTexture,uploadMatrixToTexture:uploadMatrixToTexture,uploadMatrixToPackedTexture:uploadMatrixToPackedTexture,maybeCreateBufferFromOutputTexture:maybeCreateBufferFromOutputTexture,downloadFloat32MatrixFromBuffer:downloadFloat32MatrixFromBuffer,downloadFloat32MatrixFromOutputTexture:downloadFloat32MatrixFromOutputTexture,downloadByteEncodedFloatMatrixFromOutputTexture:downloadByteEncodedFloatMatrixFromOutputTexture,downloadPackedMatrixFromBuffer:downloadPackedMatrixFromBuffer,downloadMatrixFromPackedOutputTexture:downloadMatrixFromPackedOutputTexture}),GPGPUContext=function(){function e(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.autoDebugValidate=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[],this.gl=null!=e?e:getWebGLContext(ENV.get(\"WEBGL_VERSION\")),1===ENV.get(\"WEBGL_VERSION\")?(this.textureFloatExtension=getExtensionOrThrow(this.gl,\"OES_texture_float\"),this.colorBufferFloatExtension=this.gl.getExtension(\"WEBGL_color_buffer_float\"),ENV.get(\"WEBGL_RENDER_FLOAT32_ENABLED\")||(this.textureHalfFloatExtension=getExtensionOrThrow(this.gl,\"OES_texture_half_float\"),this.colorBufferHalfFloatExtension=this.gl.getExtension(\"EXT_color_buffer_half_float\"))):this.colorBufferFloatExtension=getExtensionOrThrow(this.gl,\"EXT_color_buffer_float\"),this.vertexBuffer=createVertexBuffer(this.gl),this.indexBuffer=createIndexBuffer(this.gl),this.framebuffer=createFramebuffer(this.gl),this.textureConfig=getTextureConfig(this.gl,this.textureHalfFloatExtension)}return e.prototype.dispose=function(){var e=this;if(!this.disposed){null!=this.program&&console.warn(\"Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing.\"),null!=this.outputTexture&&console.warn(\"Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.\");var t=this.gl;callAndCheck(t,function(){return t.finish()}),callAndCheck(t,function(){return t.bindFramebuffer(t.FRAMEBUFFER,null)}),callAndCheck(t,function(){return t.deleteFramebuffer(e.framebuffer)}),callAndCheck(t,function(){return t.bindBuffer(t.ARRAY_BUFFER,null)}),callAndCheck(t,function(){return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)}),callAndCheck(t,function(){return t.deleteBuffer(e.indexBuffer)}),this.disposed=!0}},e.prototype.enableAutomaticDebugValidation=function(e){this.autoDebugValidate=e,enableDebugWebGLErrorChecking(e)},e.prototype.createFloat32MatrixTexture=function(e,t){return this.throwIfDisposed(),createFloat32MatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.createFloat16MatrixTexture=function(e,t){return this.throwIfDisposed(),createFloat16MatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.createUnsignedBytesMatrixTexture=function(e,t){return this.throwIfDisposed(),createUnsignedBytesMatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.uploadPixelDataToTexture=function(e,t){this.throwIfDisposed(),uploadPixelDataToTexture(this.gl,e,t)},e.prototype.createFloat16PackedMatrixTexture=function(e,t){return this.throwIfDisposed(),createFloat16PackedMatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.createPackedMatrixTexture=function(e,t){return this.throwIfDisposed(),createPackedMatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.deleteMatrixTexture=function(e){var t=this;this.throwIfDisposed(),this.outputTexture===e&&(unbindColorTextureFromFramebuffer(this.gl,this.framebuffer),this.outputTexture=null),callAndCheck(this.gl,function(){return t.gl.deleteTexture(e)})},e.prototype.uploadMatrixToTexture=function(e,t,n,r){this.throwIfDisposed();var o=getNumChannels();return uploadMatrixToTexture(this.gl,e,t,n,r,o,this.textureConfig)},e.prototype.uploadMatrixToPackedTexture=function(e,t,n,r,o,a,i){return this.throwIfDisposed(),uploadMatrixToPackedTexture(this.gl,e,t,n,r,o,a,i,this.textureConfig)},e.prototype.downloadFloat32MatrixFromOutputTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,function(){return downloadFloat32MatrixFromOutputTexture(r.gl,t,n,r.textureConfig)})},e.prototype.downloadByteEncodedFloatMatrixFromOutputTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,function(){return downloadByteEncodedFloatMatrixFromOutputTexture(r.gl,t,n,r.textureConfig)})},e.prototype.downloadPackedMatrixFromBuffer=function(e,t,n,r,o,a){return downloadPackedMatrixFromBuffer(this.gl,e,t,n,r,o,a,this.textureConfig)},e.prototype.downloadFloat32MatrixFromBuffer=function(e,t,n){return downloadFloat32MatrixFromBuffer(this.gl,e,t,n,this.textureConfig)},e.prototype.maybeCreateBufferFromTexture=function(e,t,n){this.bindTextureToFrameBuffer(e);var r=maybeCreateBufferFromOutputTexture(this.gl,e,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r},e.prototype.createAndWaitForFence=function(){var e=this.createFence(this.gl);return this.pollFence(e)},e.prototype.createFence=function(e){var t,n,r=this;if(ENV.get(\"WEBGL_FENCE_API_ENABLED\")){var o=e,a=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=function(){var e=o.clientWaitSync(a,0,0);return e===o.ALREADY_SIGNALED||e===o.CONDITION_SATISFIED},t=a}else ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(t=this.beginQuery(),this.endQuery(),n=function(){return r.isQueryAvailable(t,ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))}):n=function(){return!0};return{query:t,isFencePassed:n}},e.prototype.downloadMatrixFromPackedTexture=function(e,t,n,r,o,a){var i=this;return this.downloadMatrixDriver(e,function(){return downloadMatrixFromPackedOutputTexture(i.gl,t,n,r,o,a,i.textureConfig)})},e.prototype.createProgram=function(e){this.throwIfDisposed();var t=this.gl,n=createFragmentShader(t,e),r=createVertexShader$1(t),o=createProgram(t);return callAndCheck(t,function(){return t.attachShader(o,r)}),callAndCheck(t,function(){return t.attachShader(o,n)}),linkProgram(t,o),this.autoDebugValidate&&validateProgram(t,o),this.vertexAttrsAreBound||(this.setProgram(o),this.vertexAttrsAreBound=bindVertexProgramAttributeStreams(t,this.program,this.vertexBuffer)),o},e.prototype.deleteProgram=function(e){var t=this;this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&callAndCheck(this.gl,function(){return t.gl.deleteProgram(e)})},e.prototype.setProgram=function(e){var t=this;this.throwIfDisposed(),this.program=e,null!=this.program&&this.autoDebugValidate&&validateProgram(this.gl,this.program),callAndCheck(this.gl,function(){return t.gl.useProgram(e)})},e.prototype.getUniformLocation=function(e,t,n){return void 0===n&&(n=!0),this.throwIfDisposed(),n?getProgramUniformLocationOrThrow(this.gl,e,t):getProgramUniformLocation(this.gl,e,t)},e.prototype.getAttributeLocation=function(e,t){var n=this;return this.throwIfDisposed(),callAndCheck(this.gl,function(){return n.gl.getAttribLocation(e,t)})},e.prototype.getUniformLocationNoThrow=function(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)},e.prototype.setInputMatrixTexture=function(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),bindTextureToProgramUniformSampler(this.gl,this.program,e,t,n)},e.prototype.setOutputMatrixTexture=function(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)},e.prototype.setOutputPackedMatrixTexture=function(e,t,n){this.throwIfDisposed();var r=getPackedMatrixTextureShapeWidthHeight(t,n),o=r[0],a=r[1];this.setOutputMatrixTextureDriver(e,o,a)},e.prototype.setOutputMatrixWriteRegion=function(e,t,n,r){this.setOutputMatrixWriteRegionDriver(n,e,r,t)},e.prototype.setOutputPackedMatrixWriteRegion=function(e,t,n,r){throw new Error(\"setOutputPackedMatrixWriteRegion not implemented.\")},e.prototype.debugValidate=function(){null!=this.program&&validateProgram(this.gl,this.program),validateFramebuffer(this.gl)},e.prototype.executeProgram=function(){this.throwIfDisposed(),this.throwIfNoProgram();var e=this.gl;this.autoDebugValidate&&this.debugValidate(),callAndCheck(e,function(){return e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)})},e.prototype.blockUntilAllProgramsCompleted=function(){var e=this;this.throwIfDisposed(),callAndCheck(this.gl,function(){return e.gl.finish()})},e.prototype.getQueryTimerExtension=function(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=getExtensionOrThrow(this.gl,2===ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")?\"EXT_disjoint_timer_query_webgl2\":\"EXT_disjoint_timer_query\")),this.disjointQueryTimerExtension},e.prototype.getQueryTimerExtensionWebGL2=function(){return this.getQueryTimerExtension()},e.prototype.getQueryTimerExtensionWebGL1=function(){return this.getQueryTimerExtension()},e.prototype.beginQuery=function(){if(2===ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")){var e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}var r=this.getQueryTimerExtensionWebGL1(),o=r.createQueryEXT();return r.beginQueryEXT(r.TIME_ELAPSED_EXT,o),o},e.prototype.endQuery=function(){if(2!==ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")){var e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}else{var t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT)}},e.prototype.waitForQueryAndGetTime=function(e){return __awaiter(this,void 0,void 0,function(){var t=this;return __generator(this,function(n){switch(n.label){case 0:return[4,repeatedTry(function(){return t.disposed||t.isQueryAvailable(e,ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))})];case 1:return n.sent(),[2,this.getQueryTime(e,ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))]}})})},e.prototype.getQueryTime=function(e,t){if(0===t)return null;if(2===t){var n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}var r=this.getQueryTimerExtensionWebGL1();return r.getQueryObjectEXT(e,r.QUERY_RESULT_EXT)/1e6},e.prototype.isQueryAvailable=function(e,t){if(0===t)return!0;if(2===t){var n=this.gl,r=this.getQueryTimerExtensionWebGL2(),o=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint}o=(r=this.getQueryTimerExtensionWebGL1()).getQueryObjectEXT(e,r.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint},e.prototype.pollFence=function(e){var t=this;return new Promise(function(n){t.addItemToPoll(function(){return e.isFencePassed()},function(){return n()})})},e.prototype.pollItems=function(){for(var e=binSearchLastTrue(this.itemsToPoll.map(function(e){return e.isDoneFn})),t=0;t<=e;++t){(0,this.itemsToPoll[t].resolveFn)()}this.itemsToPoll=this.itemsToPoll.slice(e+1)},e.prototype.addItemToPoll=function(e,t){var n=this;this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||repeatedTry(function(){return n.pollItems(),0===n.itemsToPoll.length})},e.prototype.bindTextureToFrameBuffer=function(e){this.throwIfDisposed(),bindColorTextureToFramebuffer(this.gl,e,this.framebuffer),this.autoDebugValidate&&validateFramebuffer(this.gl)},e.prototype.unbindTextureToFrameBuffer=function(){null!=this.outputTexture?(bindColorTextureToFramebuffer(this.gl,this.outputTexture,this.framebuffer),this.autoDebugValidate&&validateFramebuffer(this.gl)):unbindColorTextureFromFramebuffer(this.gl,this.framebuffer)},e.prototype.downloadMatrixDriver=function(e,t){this.bindTextureToFrameBuffer(e);var n=t();return this.unbindTextureToFrameBuffer(),n},e.prototype.setOutputMatrixTextureDriver=function(e,t,n){this.throwIfDisposed();var r=this.gl;bindColorTextureToFramebuffer(r,e,this.framebuffer),this.autoDebugValidate&&validateFramebuffer(r),this.outputTexture=e,callAndCheck(r,function(){return r.viewport(0,0,t,n)}),callAndCheck(r,function(){return r.scissor(0,0,t,n)})},e.prototype.setOutputMatrixWriteRegionDriver=function(e,t,n,r){var o=this;this.throwIfDisposed(),callAndCheck(this.gl,function(){return o.gl.scissor(e,t,n,r)})},e.prototype.throwIfDisposed=function(){if(this.disposed)throw new Error(\"Attempted to use disposed GPGPUContext.\")},e.prototype.throwIfNoProgram=function(){if(null==this.program)throw new Error(\"No GPU program is currently set.\")},e}();function binSearchLastTrue(e){for(var t=0,n=e.length-1,r=-1;t<=n;){var o=t+n>>1;e[o]()?(r=o,t=o+1):n=o-1}return r}function compileProgram(e,t,n,r){for(var o=t.userCode,a=n.map(function(e,n){var r={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked};return{name:t.variableNames[n],shapeInfo:r}}),i=a.map(function(e){return e.shapeInfo}),s={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked},u=makeShader(a,s,o,!0===t.supportsBroadcasting,t.usesPackedTextures),l=e.createProgram(u),c={},p=0;p= \"+e[1]+\" || pos >= \"+e[0]+\") continue;\\n\\n int offsetY = int(blockIndex / (\"+u+\")) * \"+i+\" - \"+d+\";\\n int d0 = offsetY + \"+c+\" * (pos / \"+h+\");\\n\\n if(d0 >= \"+t[0]+\" || d0 < 0) continue;\\n\\n int offsetX = int(mod(float(blockIndex), \"+u+\".) * \"+a+\". - \"+p+\".);\\n int d1 = offsetX + \"+l+\" * (int(mod(float(pos), \"+h+\".) / \"+o+\".));\\n\\n if(d1 >= \"+t[1]+\" || d1 < 0) continue;\\n\\n result[row * 2 + col] = getA(d0, d1, int(mod(float(pos), \"+o+\".)));\\n }\\n }\\n\\n gl_FragColor = result;\\n }\\n \"}}(),LRNProgram=function(){return function(e,t,n,r,o){this.variableNames=[\"x\"],this.outputShape=[];var a,i=t,s=e[3]-1;this.outputShape=e;var u=\"float(\"+n+\") + float(\"+r+\") * sum\";a=.5===o?\"inversesqrt(\"+u+\")\":1===o?\"1.0/(\"+u+\")\":\"exp(log(\"+u+\") * float(-\"+o+\"));\",this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int r = coords[1];\\n int c = coords[2];\\n int d = coords[3];\\n float x = getX(b, r, c, d);\\n float sum = 0.0;\\n for (int j = -\"+i+\"; j <= \"+i+\"; j++) {\\n int idx = d + j;\\n if (idx >= 0 && idx <= \"+s+\") {\\n float z = getX(b, r, c, idx);\\n sum += z * z;\\n }\\n }\\n float val = x * \"+a+\";\\n setOutput(val);\\n }\\n \"}}(),LRNGradProgram=function(){return function(e,t,n,r,o){this.variableNames=[\"inputImage\",\"outputImage\",\"dy\"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=r,this.beta=o,this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int r = coords[1];\\n int c = coords[2];\\n\\n float result = 0.0;\\n for (int d = 0; d < \"+this.depth+\"; ++d) {\\n int depthBegin = int(max(0.0, float(d - \"+t+\")));\\n int depthEnd = int(min(float(\"+this.depth+\"),\\n float(d + \"+t+\" + 1)));\\n\\n const int MIN_DEPTH_BEGIN = 0;\\n const int MAX_DEPTH_END = \"+this.depth+\";\\n\\n float norm = 0.0;\\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\\n if (k < depthBegin){\\n continue;\\n }\\n else if (k >= depthBegin && k < depthEnd) {\\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\\n }\\n else {\\n break;\\n }\\n }\\n\\n norm = float(\"+r+\") * norm + float(\"+n+\");\\n\\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\\n if (k < depthBegin){\\n continue;\\n }\\n else if (k >= depthBegin && k < depthEnd){\\n float dyi = -2.0 * float(\"+r+\")\\n * float(\"+o+\")\\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\\n / norm;\\n if (k == d) {\\n dyi += pow(norm, -1.0 * \"+o+\");\\n }\\n if (k == coords[3]) {\\n dyi *= getDy(b, r, c, d);\\n result += dyi;\\n }\\n }\\n else {\\n break;\\n }\\n }\\n }\\n setOutput(result);\\n }\\n \"}}(),MaxPool2DBackpropProgram=function(){return function(e){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=e.inShape;var t=e.strideHeight,n=e.strideWidth,r=e.dilationHeight,o=e.effectiveFilterHeight,a=e.effectiveFilterWidth,i=o-1-e.padInfo.top,s=a-1-e.padInfo.left,u=o*a-1;this.userCode=\"\\n const ivec2 pads = ivec2(\"+i+\", \"+s+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n\\n ivec2 dyRCCorner = coords.yz - pads;\\n int dyRCorner = dyRCCorner.x;\\n int dyCCorner = dyRCCorner.y;\\n\\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n for (int wR = 0; wR < \"+o+\";\\n wR += \"+r+\") {\\n float dyR = float(dyRCorner + wR) / \"+t+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 || fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n for (int wC = 0; wC < \"+a+\"; wC++) {\\n float dyC = float(dyCCorner + wC) / \"+n+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n float dyValue = getDy(b, idyR, idyC, d);\\n int maxPosValue = \"+u+\" - int(getMaxPos(b, idyR, idyC, d));\\n\\n // Get the current value, check it against the value from the\\n // position matrix.\\n int curPosValue = wR * \"+a+\" + wC;\\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\\n\\n dotProd += dyValue * mask;\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),MatMulProgram=function(){return function(e,t,n,r){void 0===n&&(n=!1),void 0===r&&(r=!1),this.variableNames=[\"matrixA\",\"matrixB\"];var o=e[0],a=n?e[2]:e[1],i=r?t[1]:t[2],s=n?e[1]:e[2];this.outputShape=[o,a,i];var u=function(e,t){return n?\"batch, \"+t+\" + \"+e+\", aRow\":\"batch, aRow, \"+t+\" + \"+e},l=function(e,t){return r?\"batch, bCol, \"+t+\" + \"+e:\"batch, \"+t+\" + \"+e+\", bCol\"},c=4*Math.floor(s/4),p=s%4;this.userCode=\" float dotARowBCol(int batch, int aRow, int bCol) {\\n float result = 0.0;\\n for (int i = 0; i < \"+c+\"; i += 4) {\\n vec4 a = vec4(\\n getMatrixA(\"+u(0,\"i\")+\"),\\n getMatrixA(\"+u(1,\"i\")+\"),\\n getMatrixA(\"+u(2,\"i\")+\"),\\n getMatrixA(\"+u(3,\"i\")+\")\\n );\\n vec4 b = vec4(\\n getMatrixB(\"+l(0,\"i\")+\"),\\n getMatrixB(\"+l(1,\"i\")+\"),\\n getMatrixB(\"+l(2,\"i\")+\"),\\n getMatrixB(\"+l(3,\"i\")+\")\\n );\\n\\n result += dot(a, b);\\n }\\n\\n if (\"+(1===p)+\") {\\n result += getMatrixA(\"+u(0,c)+\") *\\n getMatrixB(\"+l(0,c)+\");\\n } else if (\"+(2===p)+\") {\\n vec2 a = vec2(\\n getMatrixA(\"+u(0,c)+\"),\\n getMatrixA(\"+u(1,c)+\")\\n );\\n vec2 b = vec2(\\n getMatrixB(\"+l(0,c)+\"),\\n getMatrixB(\"+l(1,c)+\")\\n );\\n result += dot(a, b);\\n } else if (\"+(3===p)+\") {\\n vec3 a = vec3(\\n getMatrixA(\"+u(0,c)+\"),\\n getMatrixA(\"+u(1,c)+\"),\\n getMatrixA(\"+u(2,c)+\")\\n );\\n vec3 b = vec3(\\n getMatrixB(\"+l(0,c)+\"),\\n getMatrixB(\"+l(1,c)+\"),\\n getMatrixB(\"+l(2,c)+\")\\n );\\n result += dot(a, b);\\n }\\n\\n return result;\\n }\\n\\n void main() {\\n ivec3 resBRC = getOutputCoords();\\n setOutput(dotARowBCol(resBRC.x, resBRC.y, resBRC.z));\\n }\\n \"}}(),MatMulPackedProgram=function(){return function(e,t,n,r,o){void 0===r&&(r=!1),void 0===o&&(o=!1),this.variableNames=[\"matrixA\",\"matrixB\"],this.usesPackedTextures=!0,this.outputShape=n;var a=r?e[0]:e[1],i=Math.ceil(a/2),s=r?\"i * 2, rc.x\":\"rc.x, i * 2\",u=o?\"rc.y, i * 2\":\"i * 2, rc.y\",l=r?[\"a.xxyy\",\"a.zzww\"]:[\"a.xxzz\",\"a.yyww\"],c=o?[\"b.xzxz\",\"b.ywyw\"]:[\"b.xyxy\",\"b.zwzw\"];this.userCode=\"\\n const float sharedDimension = \"+i+\".0;\\n\\n vec4 dot2x2ARowBCol(ivec2 rc) {\\n vec4 result = vec4(0);\\n for (int i = 0; i < \"+i+\"; i++) {\\n vec4 a = getMatrixA(\"+s+\");\\n vec4 b = getMatrixB(\"+u+\");\\n\\n result += (\"+l[0]+\" * \"+c[0]+\") + (\"+l[1]+\" * \"+c[1]+\");\\n }\\n return result;\\n }\\n\\n void main() {\\n ivec2 rc = getOutputCoords();\\n setOutput(dot2x2ARowBCol(rc));\\n }\\n \"}}(),MultinomialProgram=function(){function e(e,t,n){this.variableNames=[\"probs\"],this.outputShape=[e,n],this.userCode=\"\\n uniform float seed;\\n\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int batch = coords[0];\\n\\n float r = random(seed);\\n float cdf = 0.0;\\n\\n for (int i = 0; i < \"+(t-1)+\"; i++) {\\n cdf += getProbs(batch, i);\\n\\n if (r < cdf) {\\n setOutput(float(i));\\n return;\\n }\\n }\\n\\n // If no other event happened, last event happened.\\n setOutput(float(\"+(t-1)+\"));\\n }\\n \"}return e.prototype.getCustomSetupFunc=function(e){var t=this;return function(n,r){null==t.seedLoc&&(t.seedLoc=n.getUniformLocation(r,\"seed\")),n.gl.uniform1f(t.seedLoc,e)}},e}(),OneHotProgram=function(){return function(e,t,n,r){this.variableNames=[\"indices\"],this.outputShape=[e,t],this.userCode=\"\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int index = round(getIndices(coords.x));\\n setOutput(mix(float(\"+r+\"), float(\"+n+\"),\\n float(index == coords.y)));\\n }\\n \"}}();function getVecChannels(e,t){return[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"].slice(0,t).map(function(t){return e+\".\"+t})}function getChannels(e,t){return 1===t?[e]:getVecChannels(e,t)}function getSourceCoords$1(e,t){if(1===e)return\"rc\";for(var n=\"\",r=0;r \"+t[0];for(var r=\"\",o=e-2;o= \"+t[o],o= \"+t+\";\\n bool rEdge = rp1 >= \"+n+\";\\n \"}function getOutput(e,t){var n=e.length,r=getSourceCoordsArr(n,t);return 1===n?\"getA(rc),\\n rc + 1 >= \"+e[0]+\" ? 0. : getA(rc + 1),\\n 0, 0\":\"getA(\"+r[0]+\"),\\n cEdge ? 0. : getA(\"+r[1]+\"),\\n rEdge ? 0. : getA(\"+r[2]+\"),\\n rEdge || cEdge ? 0. : getA(\"+r[3]+\")\"}var PadProgram=function(){return function(e,t,n){this.variableNames=[\"x\"],this.outputShape=t.map(function(t,n){return t[0]+e[n]+t[1]});var r=e.length,o=getCoordsDataType(r),a=t.map(function(e){return e[0]}).join(\",\"),i=t.map(function(t,n){return t[0]+e[n]}).join(\",\"),s=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,r);this.userCode=1!==r?\"\\n \"+o+\" start = \"+o+\"(\"+a+\");\\n \"+o+\" end = \"+o+\"(\"+i+\");\\n\\n void main() {\\n \"+o+\" outC = getOutputCoords();\\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\\n setOutput(float(\"+n+\"));\\n } else {\\n \"+o+\" coords = outC - start;\\n setOutput(getX(\"+s+\"));\\n }\\n }\\n \":\"\\n int start = \"+a+\";\\n int end = \"+i+\";\\n\\n void main() {\\n int outC = getOutputCoords();\\n if (outC < start || outC >= end) {\\n setOutput(float(\"+n+\"));\\n } else {\\n setOutput(getX(outC - start));\\n }\\n }\\n \"}}(),Pool2DProgram=function(){return function(e,t,n){if(this.variableNames=[\"x\"],\"avg\"===t&&n)throw new Error(\"Cannot compute positions for average pool.\");var r=e.filterWidth,o=e.strideHeight,a=e.strideWidth,i=e.dilationHeight,s=e.dilationWidth,u=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=e.padInfo.top,p=e.padInfo.left;this.outputShape=e.outShape;var d=\"avg\"===t,h=\"0.0\";if(d||(h=\"-1.0 / 0.0\"),n)this.userCode=\"\\n const ivec2 strides = ivec2(\"+o+\", \"+a+\");\\n const ivec2 pads = ivec2(\"+c+\", \"+p+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d = coords[3];\\n\\n ivec2 xRCCorner = coords.yz * strides - pads;\\n int xRCorner = xRCCorner.x;\\n int xCCorner = xRCCorner.y;\\n\\n // max/min x(?, ?, d) to get y(yR, yC, d).\\n // ? = to be determined\\n float minMaxValue = 0.0;\\n float minMaxValueFound = 0.0;\\n int minMaxPosition = 0;\\n float avgValue = 0.0;\\n\\n for (int wR = 0; wR < \"+u+\";\\n wR += \"+i+\") {\\n int xR = xRCorner + wR;\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+l+\";\\n wC += \"+s+\") {\\n int xC = xCCorner + wC;\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n float value = getX(batch, xR, xC, d);\\n\\n // If a min / max value has already been found, use it. If not,\\n // use the current value.\\n float currMinMaxValue = mix(\\n value, minMaxValue, minMaxValueFound);\\n if (value >= currMinMaxValue) {\\n minMaxValue = value;\\n minMaxValueFound = 1.0;\\n minMaxPosition = wR * \"+l+\" + wC;\\n }\\n }\\n }\\n setOutput(float(minMaxPosition));\\n }\\n \";else{var f=t+\"(\"+t+\"(\"+t+\"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])\";\"avg\"===t&&(f=\"avgValue / count\");var m=4*Math.floor(r/4),g=r%4,v=\"\\n if (\"+d+\") {\\n avgValue += dot(values, ones);\\n } else {\\n minMaxValue = max(values, minMaxValue);\\n }\\n \";this.userCode=\"\\n const ivec2 strides = ivec2(\"+o+\", \"+a+\");\\n const ivec2 pads = ivec2(\"+c+\", \"+p+\");\\n const float initializationValue = \"+h+\";\\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\\n\\n float count = 0.0;\\n\\n float getValue(int batch, int xR, int xC, int d) {\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n return initializationValue;\\n }\\n count += 1.0;\\n return getX(batch, xR, xC, d);\\n }\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d = coords[3];\\n\\n ivec2 xRCCorner = coords.yz * strides - pads;\\n int xRCorner = xRCCorner.x;\\n int xCCorner = xRCCorner.y;\\n\\n // max/min x(?, ?, d) to get y(yR, yC, d).\\n // ? = to be determined\\n vec4 minMaxValue = vec4(\"+h+\");\\n float avgValue = 0.0;\\n count = 0.0;\\n\\n for (int wR = 0; wR < \"+u+\";\\n wR += \"+i+\") {\\n int xR = xRCorner + wR;\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+m+\"; wC += 4) {\\n int xC = xCCorner + wC * \"+s+\";\\n\\n vec4 values = vec4(\\n getValue(batch, xR, xC, d),\\n getValue(batch, xR, xC + \"+s+\", d),\\n getValue(batch, xR, xC + 2 * \"+s+\", d),\\n getValue(batch, xR, xC + 3 * \"+s+\", d)\\n );\\n\\n \"+v+\"\\n }\\n\\n int xC = xCCorner + \"+m+\";\\n if (\"+(1===g)+\") {\\n vec4 values = vec4(\\n getValue(batch, xR, xC, d),\\n initializationValue,\\n initializationValue,\\n initializationValue\\n );\\n\\n \"+v+\"\\n } else if (\"+(2===g)+\") {\\n vec4 values = vec4(\\n getValue(batch, xR, xC, d),\\n getValue(batch, xR, xC + \"+s+\", d),\\n initializationValue,\\n initializationValue\\n );\\n\\n \"+v+\"\\n } else if (\"+(3===g)+\") {\\n vec4 values = vec4(\\n getValue(batch, xR, xC, d),\\n getValue(batch, xR, xC + \"+s+\", d),\\n getValue(batch, xR, xC + 2 * \"+s+\", d),\\n initializationValue\\n );\\n\\n \"+v+\"\\n }\\n }\\n setOutput(\"+f+\");\\n }\\n \"}}}(),ReduceProgram=function(){return function(e,t){this.variableNames=[\"x\"];var n=e.windowSize,r=e.batchSize,o=e.inSize,a=Math.ceil(o/n);this.outputShape=[r,a];var i=\"0.0\",s=\"\";\"prod\"===t?i=\"1.0\":\"min\"===t?(i=\"1.0 / 0.0\",s=\"min\"):\"max\"===t&&(i=\"-1.0 / 0.0\",s=\"max\");var u=t+\"(\"+t+\"(\"+t+\"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])\";\"sum\"===t?u=\"sumValue\":\"prod\"===t?u=\"prodValue\":\"all\"===t?u=\"allValue\":\"any\"===t&&(u=\"anyValue\");var l=4*Math.floor(n/4),c=n%4,p=\"\\n if (\"+(\"sum\"===t)+\") {\\n sumValue += dot(values, ones);\\n } else if (\"+(\"prod\"===t)+\") {\\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\\n prodValue *= tmp[0] * tmp[1];\\n } else {\\n minMaxValue = \"+s+\"(values, minMaxValue);\\n }\\n \",d=\"vec4\";\"all\"===t?(i=\"1.0\",p=\"\\n bool reducedAllValue = all(values);\\n float floatedReducedAllValue = float(reducedAllValue);\\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\\n \",d=\"bvec4\"):\"any\"===t&&(i=\"0.0\",p=\"\\n bool reducedAnyValue = any(values);\\n float floatedReducedAnyValue = float(reducedAnyValue);\\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\\n \",d=\"bvec4\");var h=\"\";o%n>0&&(h=\"\\n if (inIdx < 0 || inIdx >= \"+o+\") {\\n return initializationValue;\\n }\\n \"),this.userCode=\"\\n const float initializationValue = \"+i+\";\\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\\n\\n float getValue(int batch, int inIdx) {\\n \"+h+\"\\n return getX(batch, inIdx);\\n }\\n\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int batch = coords[0];\\n int outIdx = coords[1];\\n int inOffset = outIdx * \"+n+\";\\n\\n vec4 minMaxValue = vec4(\"+i+\");\\n float prodValue = 1.0;\\n float sumValue = 0.0;\\n float allValue = 1.0;\\n float anyValue = 0.0;\\n\\n for (int i = 0; i < \"+l+\"; i += 4) {\\n int inIdx = inOffset + i;\\n \"+d+\" values = \"+d+\"(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n getValue(batch, inIdx + 2),\\n getValue(batch, inIdx + 3)\\n );\\n\\n \"+p+\"\\n }\\n\\n int inIdx = inOffset + \"+l+\";\\n if (\"+(1===c)+\") {\\n \"+d+\" values = \"+d+\"(\\n getValue(batch, inIdx),\\n initializationValue,\\n initializationValue,\\n initializationValue\\n );\\n\\n \"+p+\"\\n } else if (\"+(2===c)+\") {\\n \"+d+\" values = \"+d+\"(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n initializationValue,\\n initializationValue\\n );\\n\\n \"+p+\"\\n } else if (\"+(3===c)+\") {\\n \"+d+\" values = \"+d+\"(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n getValue(batch, inIdx + 2),\\n initializationValue\\n );\\n\\n \"+p+\"\\n }\\n setOutput(\"+u+\");\\n }\\n \"}}(),ReshapePackedProgram=function(){return function(e,t){this.variableNames=[\"A\"],this.usesPackedTextures=!0,this.outputShape=e;for(var n=\"\",r=0;r<4;r++){var o=\"thisRC = rc;\";r%2==1&&(o+=\"thisRC.z += 1;\"),r>1&&(o+=\"thisRC.y += 1;\"),n+=\"\\n \"+o+\"\\n \"+(r>0?\"if(thisRC.y < rows && thisRC.z < cols){\":\"\")+\"\\n int flatIndex = getFlatIndex(thisRC);\\n\\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\\n\\n result[\"+r+\"] =\\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\\n \"+(r>0?\"}\":\"\")+\"\\n \"}this.userCode=\"\\n \"+getReshapedInputCoords(t)+\"\\n \"+getFlatIndex(e)+\"\\n\\n void main() {\\n ivec3 rc = getOutputCoords();\\n\\n vec4 result = vec4(0.);\\n\\n ivec3 thisRC;\\n int rows = \"+e[1]+\";\\n int cols = \"+e[2]+\";\\n\\n \"+n+\"\\n\\n setOutput(result);\\n }\\n \"}}();function getFlatIndex(e){return\"\\n int getFlatIndex(ivec3 coords) {\\n return round(\"+dotify([\"coords.x\",\"coords.y\",\"coords.z\"],computeStrides(e).map(function(e){return e.toString()}).concat([\"1.\"]))+\");\\n }\\n \"}function getReshapedInputCoords(e){return\"\\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\\n \"+getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\"],e)+\"\\n return ivec3(r, c, d);\\n }\\n \"}var ResizeBilinearBackpropProgram=function(){return function(e,t,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,o=r[1],a=r[2],i=e.shape,s=i[1],u=i[2],l=[n&&s>1?o-1:o,n&&u>1?a-1:a],c=[n&&s>1?s-1:s,n&&u>1?u-1:u],p=l[0]/c[0],d=l[1]/c[1],h=1/p,f=1/d,m=2*Math.ceil(h)+2,g=2*Math.ceil(f)+2;this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n int r = coords[1];\\n int c = coords[2];\\n\\n float accumulator = 0.0;\\n\\n const float heightScale = float(\"+p+\");\\n const float widthScale = float(\"+d+\");\\n\\n const float invHeightScale = float(\"+h+\");\\n const float invWidthScale = float(\"+f+\");\\n\\n const int winHeight = int(\"+m+\");\\n const int winWidth = int(\"+g+\");\\n\\n // Compute bounds for where in dy we will look\\n float startRLerp = floor(float(r) * invHeightScale);\\n int startDyR = int(startRLerp - float(winHeight / 2));\\n\\n float startCLerp = floor(float(c) * invWidthScale);\\n int startDyC = int(startCLerp - float(winWidth / 2));\\n\\n // Loop over dy\\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\\n int dyR = dyROffset + startDyR;\\n\\n // Guard against the window exceeding the bounds of dy\\n if (dyR < 0 || dyR >= \"+s+\") {\\n continue;\\n }\\n\\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\\n int dyC = dyCOffset + startDyC;\\n\\n // Guard against the window exceeding the bounds of dy\\n if (dyC < 0 || dyC >= \"+u+\") {\\n continue;\\n }\\n\\n float dxR = float(dyR) * heightScale;\\n int topDxRIndex = int(floor(dxR));\\n int bottomDxRIndex = int(min(ceil(dxR), \"+(o-1)+\".0));\\n float dxRLerp = dxR - float(topDxRIndex);\\n float inverseDxRLerp = 1.0 - dxRLerp;\\n\\n float dxC = float(dyC) * widthScale;\\n int leftDxCIndex = int(floor(dxC));\\n int rightDxCIndex = int(min(ceil(dxC), \"+(a-1)+\".0));\\n float dxCLerp = dxC - float(leftDxCIndex);\\n float inverseDxCLerp = 1.0 - dxCLerp;\\n\\n if (r == topDxRIndex && c == leftDxCIndex) {\\n // topLeft\\n accumulator +=\\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\\n }\\n\\n if (r == topDxRIndex && c == rightDxCIndex) {\\n // topRight\\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\\n }\\n\\n if (r == bottomDxRIndex && c == leftDxCIndex) {\\n // bottomLeft\\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\\n }\\n\\n if (r == bottomDxRIndex && c == rightDxCIndex) {\\n // bottomRight\\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\\n }\\n }\\n }\\n // End loop over dy\\n\\n setOutput(accumulator);\\n }\\n \"}}(),ResizeBilinearProgram=function(){return function(e,t,n,r){this.variableNames=[\"A\"],this.outputShape=[];var o=e[0],a=e[1],i=e[2],s=e[3];this.outputShape=[o,t,n,s];var u=[r&&t>1?a-1:a,r&&n>1?i-1:i],l=[r&&t>1?t-1:t,r&&n>1?n-1:n];this.userCode=\"\\n const vec2 effectiveInputOverOutputRatioRC = vec2(\\n \"+u[0]/l[0]+\",\\n \"+u[1]/l[1]+\");\\n const vec2 inputShapeRC = vec2(\"+a+\".0, \"+i+\".0);\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n ivec2 yRC = coords.yz;\\n\\n // Fractional source index.\\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\\n\\n // Compute the four integer indices.\\n ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\\n ivec2 sourceCeilRC = ivec2(\\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\\n\\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\\n\\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\\n\\n float top = topLeft + (topRight - topLeft) * fracRC.y;\\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\\n float newValue = top + (bottom - top) * fracRC.x;\\n\\n setOutput(newValue);\\n }\\n \"}}(),ResizeNearestNeigborBackpropProgram=function(){return function(e,t,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,o=r[1],a=r[2],i=e.shape,s=i[1],u=i[2],l=[n&&s>1?o-1:o,n&&u>1?a-1:a],c=[n&&s>1?s-1:s,n&&u>1?u-1:u],p=l[0]/c[0],d=l[1]/c[1],h=1/p,f=1/d,m=2*Math.ceil(h)+2,g=2*Math.ceil(f)+2;this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n int r = coords[1];\\n int c = coords[2];\\n\\n float accumulator = 0.0;\\n\\n const float heightScale = float(\"+p+\");\\n const float widthScale = float(\"+d+\");\\n\\n const float invHeightScale = float(\"+h+\");\\n const float invWidthScale = float(\"+f+\");\\n\\n const int winHeight = int(\"+m+\");\\n const int winWidth = int(\"+g+\");\\n\\n // Compute bounds for where in dy we will look\\n float startRLerp = floor(float(r) * invHeightScale);\\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\\n\\n float startCLerp = floor(float(c) * invWidthScale);\\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\\n\\n // Loop over dy\\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\\n int dyR = dyROffset + startDyR;\\n\\n // Guard against the window exceeding the bounds of dy\\n if (dyR < 0 || dyR >= \"+s+\") {\\n continue;\\n }\\n\\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\\n int dyC = dyCOffset + startDyC;\\n\\n // Guard against the window exceeding the bounds of dy\\n if (dyC < 0 || dyC >= \"+u+\") {\\n continue;\\n }\\n\\n float sourceFracRow =\\n float(\"+l[0]+\") *\\n (float(dyR) / float(\"+c[0]+\"));\\n\\n float sourceFracCol =\\n float(\"+l[1]+\") *\\n (float(dyC) / float(\"+c[1]+\"));\\n\\n int sourceNearestRow = int(min(\\n float(int(\"+o+\") - 1),\\n \"+n+\" ? float(round(sourceFracRow)) :\\n float(floor(sourceFracRow))));\\n\\n int sourceNearestCol = int(min(\\n float(int(\"+a+\") - 1),\\n \"+n+\" ? float(round(sourceFracCol)) :\\n float(floor(sourceFracCol))));\\n\\n if (r == sourceNearestRow && c == sourceNearestCol) {\\n accumulator += getDy(b, dyR, dyC, d);\\n }\\n }\\n }\\n // End loop over dy\\n\\n setOutput(accumulator);\\n }\\n \"}}(),ResizeNearestNeighborProgram=function(){return function(e,t,n,r){this.variableNames=[\"A\"],this.outputShape=[];var o=e[0],a=e[1],i=e[2],s=e[3];this.outputShape=[o,t,n,s];var u=[r&&t>1?a-1:a,r&&n>1?i-1:i],l=[r&&t>1?t-1:t,r&&n>1?n-1:n],c=r?\"0.5\":\"0.0\";this.userCode=\"\\n const vec2 effectiveInputOverOutputRatioRC = vec2(\\n \"+u[0]/l[0]+\",\\n \"+u[1]/l[1]+\");\\n const vec2 inputShapeRC = vec2(\"+a+\".0, \"+i+\".0);\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n ivec2 yRC = coords.yz;\\n\\n // Fractional source index.\\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\\n\\n // Compute the coordinators of nearest neighbor point.\\n ivec2 sourceNearestRC = ivec2(\\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + \"+c+\")));\\n\\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\\n\\n setOutput(newValue);\\n }\\n \"}}(),ReverseProgram=function(){return function(e,t){this.variableNames=[\"x\"];var n=e.length;if(n>4)throw new Error(\"WebGL backend: Reverse of rank-\"+n+\" tensor is not yet supported\");if(this.outputShape=e,1!==n){var r=e.map(function(n,r){return function(n){return-1!==t.indexOf(n)&&1!==e[n]?e[n]+\" - coords[\"+n+\"] - 1\":\"coords[\"+n+\"]\"}(r)}).join(\",\"),o=getCoordsDataType(n);this.userCode=\"\\n void main() {\\n \"+o+\" coords = getOutputCoords();\\n setOutput(getX(\"+r+\"));\\n }\\n \"}else this.userCode=\"\\n void main() {\\n int coord = getOutputCoords();\\n setOutput(getX(\"+e[0]+\" - coord - 1));\\n }\\n \"}}(),ScatterProgram=function(){return function(e,t,n,r,o,a,i){void 0===i&&(i=!0),this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=a;var s=getCoordsDataType(o.length),u=getCoordsDataType(a.length),l=\"\";1===n?l=\"i\":2===n&&(l=\"i, j\");var c=\"getIndices(\"+l+\")\",p=\"\";1===r?p=\"i\":2===r&&(p=\"i, coords[1]\");var d=\"getUpdates(\"+p+\")\",h=t>1?\"strides[j]\":\"strides\";this.userCode=\"\\n \"+s+\" strides = \"+s+\"(\"+o+\");\\n\\n void main() {\\n \"+u+\" coords = getOutputCoords();\\n float sum = 0.0;\\n bool found = false;\\n for (int i = 0; i < \"+e+\"; i++) {\\n int flattenedIndex = 0;\\n for (int j = 0; j < \"+t+\"; j++) {\\n int index = round(\"+c+\");\\n flattenedIndex += index * \"+h+\";\\n }\\n if (flattenedIndex == coords[0]) {\\n sum += \"+d+\";\\n found = true;\\n }\\n }\\n setOutput(mix(getDefaultValue(), sum, float(found)));\\n }\\n \"}}(),SegmentOpProgram=function(){return function(e,t){this.variableNames=[\"x\",\"segmentIds\"];var n=e.windowSize,r=e.batchSize,o=e.inSize,a=e.numSegments,i=a*Math.ceil(o/n);this.outputShape=[r,i];var s=4*Math.floor(n/4),u=n%4,l=\"\\n sumValue += dot(values, filter);\\n \",c=\"\";o%n>0&&(c=\"\\n if (inIdx < 0 || inIdx >= \"+o+\") {\\n return initializationValue;\\n }\\n \");var p=\"\";o%n>0&&(p=\"\\n if (inIdx < 0 || inIdx >= \"+o+\") {\\n return -1.0;\\n }\\n \"),this.userCode=\"\\n const float initializationValue = 0.0;\\n\\n float getValue(int batch, int inIdx) {\\n \"+c+\"\\n return getX(batch, inIdx);\\n }\\n\\n float getSegmentIdAtIndex(int inIdx) {\\n \"+p+\"\\n return getSegmentIds(inIdx);\\n }\\n\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int batch = coords[0];\\n int outIdx = coords[1];\\n int inOffset = int(floor(float(outIdx) / float(\\n \"+a+\")) * float(\"+n+\"));\\n int currentSeg = int(mod(float(outIdx), float(\"+a+\")));\\n\\n float sumValue = 0.0;\\n\\n for (int i = 0; i < \"+s+\"; i += 4) {\\n int inIdx = inOffset + i;\\n vec4 values = vec4(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n getValue(batch, inIdx + 2),\\n getValue(batch, inIdx + 3)\\n );\\n\\n vec4 filter = vec4(\\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\\n );\\n\\n \"+l+\"\\n }\\n\\n int inIdx = inOffset + \"+s+\";\\n if (\"+(1===u)+\") {\\n vec4 values = vec4(\\n getValue(batch, inIdx),\\n initializationValue,\\n initializationValue,\\n initializationValue\\n );\\n\\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\\n\\n vec4 filter = vec4(\\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\\n 0,\\n 0,\\n 0\\n );\\n\\n \"+l+\"\\n } else if (\"+(2===u)+\") {\\n vec4 values = vec4(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n initializationValue,\\n initializationValue\\n );\\n\\n vec4 filter = vec4(\\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\\n 0,\\n 0\\n );\\n\\n \"+l+\"\\n } else if (\"+(3===u)+\") {\\n vec4 values = vec4(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n getValue(batch, inIdx + 2),\\n initializationValue\\n );\\n\\n vec4 filter = vec4(\\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\\n 0\\n );\\n\\n \"+l+\"\\n }\\n setOutput(sumValue);\\n }\\n \"}}(),SelectProgram=function(){return function(e,t,n){var r,o;if(this.variableNames=[\"c\",\"a\",\"b\"],this.outputShape=t,n>4)throw Error(\"Where for rank \"+n+\" is not yet supported\");if(1===n)o=\"resRC\",r=\"resRC\";else{for(var a=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],i=[],s=[],u=0;u= 1.0) {\\n setOutput(getA(\"+o+\"));\\n } else {\\n setOutput(getB(\"+o+\"));\\n }\\n }\\n \"}}(),SliceProgram=function(){function e(e){this.variableNames=[\"source\"],this.outputShape=e,this.rank=e.length;var t=getCoordsDataType(this.rank),n=getCoords$1(this.rank);this.userCode=\"\\n uniform \"+t+\" start;\\n\\n void main() {\\n \"+t+\" sourceLoc = start + getOutputCoords();\\n setOutput(getSource(\"+n+\"));\\n }\\n \"}return e.prototype.getCustomSetupFunc=function(e){var t=this;if(e.length!==this.rank)throw Error(\"The rank (\"+this.rank+\") of the program must match the length of start (\"+e.length+\")\");return function(n,r){if(null!=t.startLoc||(t.startLoc=n.getUniformLocationNoThrow(r,\"start\"),null!=t.startLoc))if(1===t.rank)n.gl.uniform1i(t.startLoc,e[0]);else if(2===t.rank)n.gl.uniform2i(t.startLoc,e[0],e[1]);else if(3===t.rank)n.gl.uniform3i(t.startLoc,e[0],e[1],e[2]);else{if(4!==t.rank)throw Error(\"Slicing for rank \"+t.rank+\" is not yet supported\");n.gl.uniform4i(t.startLoc,e[0],e[1],e[2],e[3])}}},e}();function getCoords$1(e){if(1===e)return\"sourceLoc\";if(2===e)return\"sourceLoc.x, sourceLoc.y\";if(3===e)return\"sourceLoc.x, sourceLoc.y, sourceLoc.z\";if(4===e)return\"sourceLoc.x, sourceLoc.y, sourceLoc.z, sourceLoc.w\";throw Error(\"Slicing for rank \"+e+\" is not yet supported\")}var StridedSliceProgram=function(){return function(e,t,n,r){this.variableNames=[\"x\"];var o=n.filter(function(e,t){return-1===r.indexOf(t)});this.outputShape=o;var a=n.length,i=getCoordsDataType(n.length),s=getCoordsDataType(o.length),u=\"\";if(1===a)u=\"coords * strides + begin\";else{var l=0;u=n.map(function(e,t){return-1===r.indexOf(t)?(l++,1===o.length?\"coords * strides[\"+t+\"] + begin[\"+t+\"]\":\"coords[\"+(l-1)+\"] * strides[\"+t+\"] + begin[\"+t+\"]\"):\"begin[\"+t+\"]\"}).join(\",\")}this.userCode=\"\\n \"+i+\" begin = \"+i+\"(\"+e+\");\\n \"+i+\" strides = \"+i+\"(\"+t+\");\\n\\n void main() {\\n \"+s+\" coords = getOutputCoords();\\n setOutput(getX(\"+u+\"));\\n }\\n \"}}(),TextureManager=function(){function e(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}return e.prototype.acquireTexture=function(e,t,n){var r,o=getPhysicalFromLogicalTextureType(t,n),a=getKeyFromTextureShape(e,o,n);if(a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]),this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this.log();var i=this.freeTextures[a].shift();return this.usedTextures[a].push(i),i}return this.numUsedTextures++,this.log(),o===PhysicalTextureType.PACKED_2X2_FLOAT32?r=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):o===PhysicalTextureType.PACKED_2X2_FLOAT16?r=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):o===PhysicalTextureType.UNPACKED_FLOAT32?r=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):o===PhysicalTextureType.UNPACKED_FLOAT16?r=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):o===PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE&&(r=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(r),r},e.prototype.releaseTexture=function(e,t,n,r){if(null!=this.freeTextures){var o=getKeyFromTextureShape(t,getPhysicalFromLogicalTextureType(n,r),r);o in this.freeTextures||(this.freeTextures[o]=[]),this.freeTextures[o].push(e),this.numFreeTextures++,this.numUsedTextures--;var a=this.usedTextures[o],i=a.indexOf(e);if(i<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");a.splice(i,1),this.log()}},e.prototype.log=function(){if(this.logEnabled){var e=this.numFreeTextures+this.numUsedTextures;console.log(\"Free/Used\",this.numFreeTextures+\" / \"+this.numUsedTextures,\"(\"+e+\")\")}},e.prototype.getNumUsedTextures=function(){return this.numUsedTextures},e.prototype.getNumFreeTextures=function(){return this.numFreeTextures},e.prototype.dispose=function(){var e=this;if(null!=this.freeTextures){for(var t in this.freeTextures)this.freeTextures[t].forEach(function(t){e.gpgpu.deleteMatrixTexture(t)});for(var t in this.usedTextures)this.usedTextures[t].forEach(function(t){e.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0}},e}();function getPhysicalFromLogicalTextureType(e,t){if(e===TextureUsage.UPLOAD)return t?PhysicalTextureType.PACKED_2X2_FLOAT32:PhysicalTextureType.UNPACKED_FLOAT32;if(e===TextureUsage.RENDER||null==e)return t?ENV.get(\"WEBGL_RENDER_FLOAT32_ENABLED\")?PhysicalTextureType.PACKED_2X2_FLOAT32:PhysicalTextureType.PACKED_2X2_FLOAT16:ENV.get(\"WEBGL_RENDER_FLOAT32_ENABLED\")?PhysicalTextureType.UNPACKED_FLOAT32:PhysicalTextureType.UNPACKED_FLOAT16;if(e===TextureUsage.DOWNLOAD||e===TextureUsage.PIXELS)return PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE;throw new Error(\"Unknown logical texture type \"+e)}function getKeyFromTextureShape(e,t,n){return e[0]+\"_\"+e[1]+\"_\"+t+\"_\"+n}var TileProgram=function(){return function(e,t){this.variableNames=[\"A\"];for(var n=new Array(e.length),r=0;r5)throw Error(\"Tile for rank \"+t+\" is not yet supported\");if(1===t)return\"imod(resRC, \"+e[0]+\")\";for(var n=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\"],r=[],o=0;o6)throw Error(\"Transpose for rank \"+t+\" is not yet supported\");for(var n=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\",\"resRC.v\"],r=new Array(t),o=0;o= 0.0) ? x : (exp(x) - 1.0);\",SELU=\"\\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\\n // see: https://arxiv.org/abs/1706.02515\\n float scaleAlpha = \"+SELU_SCALEALPHA+\";\\n float scale = \"+SELU_SCALE+\";\\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\\n\";function STEP(e){return void 0===e&&(e=0),CHECK_NAN_SNIPPET$1+\"\\n return x > 0.0 ? 1.0 : float(\"+e+\");\\n \"}var NEG=\"return -x;\",CEIL=\"return ceil(x);\",FLOOR=\"return floor(x);\",SIGN=\"\\n if (isNaN(x)) { return 0.0; }\\n return sign(x);\\n\",ROUND=\"\\n // OpenGL ES does not support round function.\\n // The algorithm is based on banker's rounding.\\n float base = floor(x);\\n if ((x - base) < 0.5) {\\n return floor(x);\\n } else if ((x - base) > 0.5) {\\n return ceil(x);\\n } else {\\n if (mod(base, 2.0) == 0.0) {\\n return base;\\n } else {\\n return base + 1.0;\\n }\\n }\\n\",EXP=\"return exp(x);\",EXPM1=\"return exp(x) - 1.0;\",LOG=\"if (x < 0.0) return NAN;\\n return log(x);\",LOG1P=\"return log(1.0 + x);\",SQRT=\"return sqrt(x);\",RSQRT=\"return inversesqrt(x);\",SIGMOID=\"return 1.0 / (1.0 + exp(-1.0 * x));\",SOFTPLUS=\"\\n float epsilon = 1.1920928955078125e-7;\\n float threshold = log(epsilon) + 2.0;\\n\\n bool too_large = x > -threshold;\\n bool too_small = x < threshold;\\n\\n float result;\\n float exp_x = exp(x);\\n\\n if (too_large){\\n result = x;\\n }\\n else if (too_small){\\n result = exp_x;\\n }\\n else{\\n result = log(exp_x + 1.0);\\n }\\n return result;\\n\",SIN=CHECK_NAN_SNIPPET$1+\"\\n return sin(x);\\n\",COS=CHECK_NAN_SNIPPET$1+\"\\n return cos(x);\\n\",TAN=\"return tan(x);\",ASIN=\"return asin(x);\",ACOS=\"return acos(x);\",ATAN=CHECK_NAN_SNIPPET$1+\"\\n return atan(x);\\n\",SINH=\"\\n float e2x = exp(x);\\n return (e2x - 1.0 / e2x) / 2.0;\\n\",COSH=\"\\n float e2x = exp(-x);\\n return (e2x + 1.0 / e2x) / 2.0;\\n\",TANH=\"\\n float e2x = exp(-2.0 * abs(x));\\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\\n\",ASINH=\"return log(x + sqrt(x * x + 1.0));\",ACOSH=CHECK_NAN_SNIPPET$1+\"\\n if (x < 1.0) return NAN;\\n return log(x + sqrt(x * x - 1.0));\",ATANH=CHECK_NAN_SNIPPET$1+\"\\n if ((x < -1.0) || (x > 1.0)) return NAN;\\n return (log(1.0 + x) - log(1.0 - x)) / 2.0;\",ERF='\\n // Error function is calculated approximately with elementary function.\\n // See \"Handbook of Mathematical Functions with Formulas,\\n // Graphs, and Mathematical Tables\", Abramowitz and Stegun.\\n float p = '+ERF_P+\";\\n float a1 = \"+ERF_A1+\";\\n float a2 = \"+ERF_A2+\";\\n float a3 = \"+ERF_A3+\";\\n float a4 = \"+ERF_A4+\";\\n float a5 = \"+ERF_A5+\";\\n\\n float t = 1.0 / (1.0 + p * x);\\n return 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x);\\n\",SQUARE=\"return x * x;\",RECIPROCAL=\"return 1.0 / x;\",LOGICAL_NOT=\"return float(!(x >= 1.0));\",TO_INT=\"return float(int(x));\",UnpackProgram=function(){return function(e){this.variableNames=[\"A\"],this.usesPackedTextures=!0,this.outputShape=e;var t=e.length,n=getChannels(\"rc\",t),r=getCoordsDataType(t),o=getSourceCoords$1(t,n),a=n.slice(-2),i=t<=1?\"rc\":\"vec2(\"+a.join(\",\")+\")\";this.userCode=\"\\n void main() {\\n \"+r+\" rc = getOutputCoords();\\n vec4 packedInput = getA(\"+o+\");\\n\\n setOutput(getChannel(packedInput, \"+i+\"));\\n }\\n \"}}();function concat1d_(e){return concat(e,0)}function concat2d_(e,t){return concat(e,t)}function concat3d_(e,t){return concat(e,t)}function concat4d_(e,t){return concat(e,t)}function concat_(e,t){void 0===t&&(t=0),assert(e.length>=1,\"Pass at least one tensor to concat\");var n=convertToTensorArray(e,\"tensors\",\"concat\");t=parseAxisParam(t,n[0].shape)[0];var r=computeOutShape(n.map(function(e){return e.shape}),t);if(0===sizeFromShape(r))return tensor([],r);if(1===(n=n.filter(function(e){return e.size>0})).length)return n[0];var o=n.map(function(e){return e.shape});assertParamsConsistent(o,t);var a=n;return ENV.engine.runKernel(function(e){return e.concat(n,t)},a,function(e){var n=o.map(function(e){return e[t]});return split$1(e,n,t).map(function(e){return function(){return e}})})}function split_(e,t,n){void 0===n&&(n=0);var r,o=convertToTensor(e,\"x\",\"split\");n=parseAxisParam(n,o.shape)[0],\"number\"==typeof t?(assert(o.shape[n]%t==0,\"Number of splits must evenly divide the axis.\"),r=Array(t).fill(o.shape[n]/t)):(assert(o.shape[n]===t.reduce(function(e,t){return e+t}),\"The sum of sizes must match the size of the axis dimension.\"),r=t);return ENV.engine.runKernel(function(e){return e.split(o,r,n)},{$x:o},function(e){return{$x:function(){return concat(e,n)}}})}var concat=op({concat_:concat_}),concat1d=op({concat1d_:concat1d_}),concat2d=op({concat2d_:concat2d_}),concat3d=op({concat3d_:concat3d_}),concat4d=op({concat4d_:concat4d_}),split$1=op({split_:split_}),commonjsGlobal=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}var alea=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function o(e,t){var n=new function(e){var t,n=this,r=(t=4022871197,function(e){e=e.toString();for(var n=0;n>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(\" \"),n.s1=r(\" \"),n.s2=r(\" \"),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}(e),o=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+1.1102230246251565e-16*(2097152*a()|0)},a.quick=a,o&&(\"object\"==typeof o&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.alea=o}(0,e,!1)}),xor128=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function o(e,t){var n=new function(e){var t=this,n=\"\";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(\"object\"==typeof o&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.xor128=o}(0,e,!1)}),xorwow=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function o(e,t){var n=new function(e){var t=this,n=\"\";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}(e),o=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(\"object\"==typeof o&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.xorwow=o}(0,e,!1)}),xorshift7=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.x=e.x.slice(),t.i=e.i,t}function o(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.x,o=t.i;return e=r[o],n=(e^=e>>>7)^e<<24,n^=(e=r[o+1&7])^e>>>10,n^=(e=r[o+3&7])^e>>>3,n^=(e=r[o+4&7])^e<<7,e=r[o+7&7],n^=(e^=e<<13)^e<<9,r[o]=n,t.i=o+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=\"\"+t,n=0;n0;--n)e.next()}(t,e)}(e),o=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(o.x&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.xorshift7=o}(0,e,!1)}),xor4096=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function o(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.w,o=t.X,a=t.i;return t.w=r=r+1640531527|0,n=o[a+34&127],e=o[a=a+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=o[a]=n^e,t.i=a,n+(r^r>>>16)|0},function(e,t){var n,r,o,a,i,s=[],u=128;for(t===(0|t)?(r=t,t=null):(t+=\"\\0\",r=0,u=Math.max(u,t.length)),o=0,a=-32;a>>15,r^=r<<4,r^=r>>>13,a>=0&&(i=i+1640531527|0,o=0==(n=s[127&a]^=r+i)?o+1:0);for(o>=128&&(s[127&(t&&t.length||0)]=-1),o=127,a=512;a>0;--a)r=s[o+34&127],n=s[o=o+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[o]=r^n;e.w=i,e.X=s,e.i=o}(t,e)}(e),o=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(o.X&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.xor4096=o}(0,e,!1)}),tychei=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function o(e,t){var n=new function(e){var t=this,n=\"\";t.next=function(){var e=t.b,n=t.c,r=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(\"object\"==typeof o&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.tychei=o}(0,e,!1)}),seedrandom=createCommonjsModule(function(e){!function(t,n){var r,o=this,a=256,i=6,s=\"random\",u=n.pow(a,i),l=n.pow(2,52),c=2*l,p=a-1;function d(e,d,g){var v=[],y=f(function e(t,n){var r,o=[],a=typeof t;if(n&&\"object\"==a)for(r in t)try{o.push(e(t[r],n-1))}catch(e){}return o.length?o:\"string\"==a?t:t+\"\\0\"}((d=1==d?{entropy:!0}:d||{}).entropy?[e,m(t)]:null==e?function(){try{var e;return r&&(e=r.randomBytes)?e=e(a):(e=new Uint8Array(a),(o.crypto||o.msCrypto).getRandomValues(e)),m(e)}catch(e){var n=o.navigator,i=n&&n.plugins;return[+new Date,o,i,o.screen,m(t)]}}():e,3),v),x=new function(e){var t,n=e.length,r=this,o=0,i=r.i=r.j=0,s=r.S=[];n||(e=[n++]);for(;o=c;)e/=2,t/=2,n>>>=1;return(e+n)/t};return T.int32=function(){return 0|x.g(4)},T.quick=function(){return x.g(4)/4294967296},T.double=T,f(m(x.S),t),(d.pass||g||function(e,t,r,o){return o&&(o.S&&h(o,x),e.state=function(){return h(x,{})}),r?(n[s]=e,t):e})(T,y,\"global\"in d?d.global:this==n,d.state)}function h(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function f(e,t){for(var n,r=e+\"\",o=0;o=1||0===i);var s=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*s,n=this.mean+this.stdDev*a*s,this.truncated&&!this.isValidTruncated(t)||(r=!0)}return this.truncated&&!this.isValidTruncated(n)||(this.nextVal=this.convertValue(n)),this.convertValue(t)},e.prototype.convertValue=function(e){return null==this.dtype||\"float32\"===this.dtype?e:Math.round(e)},e.prototype.isValidTruncated=function(e){return e<=this.upper&&e>=this.lower},e}();function clone_(e){var t=convertToTensor(e,\"x\",\"clone\",null);return ENV.engine.runKernel(function(e){return Tensor.make(t.shape,{dataId:t.dataId},t.dtype)},{$x:t},function(e){return{$x:function(){return e.toFloat()}}})}function eye_(e,t,n,r){void 0===r&&(r=\"float32\"),null==t&&(t=e);for(var o=buffer([e,t],r),a=e<=t?e:t,i=0;i2)throw new Error(\"Rank of probabilities must be 1 or 2, but is \"+i);n=n||Math.random();var s=1===i?o.as2D(1,-1):o,u=ENV.engine.runKernel(function(e){return e.multinomial(s,r,t,n)},{logits2D:s});return 1===i?u.as1D():u}function oneHot_(e,t,n,r){void 0===n&&(n=1),void 0===r&&(r=0);var o=convertToTensor(e,\"indices\",\"oneHot\",\"int32\");if(t<2)throw new Error(\"Error in oneHot: depth must be >=2, but it is \"+t);return ENV.engine.runKernel(function(e){return e.oneHot(o,t,n,r)},{$indices:o},function(e){return{$indices:function(){return zeros(o.shape,\"float32\")}}})}function fromPixels_(e,t){if(void 0===t&&(t=3),t>4)throw new Error(\"Cannot construct Tensor with more than 4 channels from pixels.\");return ENV.engine.fromPixels(e,t)}function toPixels(e,t){return __awaiter(this,void 0,void 0,function(){var n,r,o,a,i,s,u,l,c,p,d,h,f,m,g,v,y,x,T,w;return __generator(this,function(E){switch(E.label){case 0:if(n=convertToTensor(e,\"img\",\"toPixels\"),e instanceof Tensor||(n=n.toInt()),2!==n.rank&&3!==n.rank)throw new Error(\"toPixels only supports rank 2 or 3 tensors, got rank \"+n.rank+\".\");if(r=n.shape.slice(0,2),o=r[0],a=r[1],(i=2===n.rank?1:n.shape[2])>4||2===i)throw new Error(\"toPixels only supports depth of size 1, 3 or 4 but got \"+i);return s=n.min(),u=n.max(),[4,s.data()];case 1:return l=E.sent()[0],[4,u.data()];case 2:if(c=E.sent()[0],s.dispose(),u.dispose(),\"float32\"===n.dtype){if(l<0||c>1)throw new Error(\"Tensor values for a float32 Tensor must be in the range [0 - 1] but got range [\"+l+\" - \"+c+\"].\")}else{if(\"int32\"!==n.dtype)throw new Error(\"Unsupported type for toPixels: \"+n.dtype+\". Please use float32 or int32 tensors.\");if(l<0||c>255)throw new Error(\"Tensor values for a int32 Tensor must be in the range [0 - 255] but got range [\"+l+\" - \"+c+\"].\")}return[4,n.data()];case 3:for(p=E.sent(),d=\"float32\"===n.dtype?255:1,h=new Uint8ClampedArray(a*o*4),f=0;f=1,\"Pass at least one tensor to tf.stack\"),1===n.length)return n[0].expandDims(t);var r=n[0].rank,o=n[0].shape,a=n[0].dtype;assert(t<=r,\"Axis must be <= rank of the tensor\"),n.forEach(function(e){assertShapesMatch(o,e.shape,\"All tensors passed to stack must have matching shapes\")}),n.forEach(function(e){assert(a===e.dtype,\"All tensors passed to stack must have matching dtypes\")});var i=n.map(function(e){return e.expandDims(t)});return concat(i,t)}function batchToSpaceND_(e,t,n){var r=convertToTensor(e,\"x\",\"batchToSpaceND\"),o=t.reduce(function(e,t){return e*t});assert(r.rank>=1+t.length,\"input rank is \"+r.rank+\" but should be > than blockShape.length \"+t.length),assert(n.length===t.length,\"crops.length is \"+n.length+\" but should be equal to blockShape.length \"+t.length),assert(r.shape[0]%o==0,\"input tensor batch is \"+r.shape[0]+\" but is not divisible by the product of the elements of blockShape \"+t.join(\" * \")+\" === \"+o);return ENV.engine.runKernel(function(e){return e.batchToSpaceND(r,t,n)},{$x:r},function(e){return{$x:function(){return e.spaceToBatchND(t,n)}}})}function spaceToBatchND_(e,t,n){var r=convertToTensor(e,\"x\",\"spaceToBatchND\");assert(r.rank>=1+t.length,\"input rank \"+r.rank+\" should be > than [blockShape] \"+t.length),assert(n.length===t.length,\"paddings.shape[0] \"+n.length+\" must be equal to [blockShape] \"+t.length),assert(r.shape.reduce(function(e,r,o){return o>0&&o<=t.length?e&&(r+n[o-1][0]+n[o-1][1])%t[o-1]==0:e},!0),\"input spatial dimensions \"+r.shape.slice(1)+\" with paddings \"+n.toString()+\" must be divisible by blockShapes \"+t.toString());return ENV.engine.runKernel(function(e){return e.spaceToBatchND(r,t,n)},{$x:r},function(e){return{$x:function(){return e.batchToSpaceND(t,n)}}})}function unstack_(e,t){void 0===t&&(t=0);for(var n,r=convertToTensor(e,\"x\",\"unstack\"),o=r.shape[t],a=Array(r.rank-1).fill(0),i=0,s=0;s=0,\"Negative dimension size caused by overflow when multiplying\\n \"+o+\" and \"+t+\" for depthToSpace with input shape\\n \"+r.shape),assert(a*t>=0,\"Negative dimension size caused by overflow when multiplying\\n \"+a+\" and \"+t+\" for depthToSpace with input shape\\n \"+r.shape),assert(i%(t*t)==0,\"Dimension size must be evenly divisible by \"+t*t+\" but is \"+i+\" for depthToSpace with input shape \"+r.shape),ENV.engine.runKernel(function(e){return e.depthToSpace(r,t,n)},{$x:r})}function setdiff1dAsync_(e,t){return __awaiter(this,void 0,void 0,function(){var n,r,o,a,i,s,u,l,c,p;return __generator(this,function(d){switch(d.label){case 0:return n=convertToTensor(e,\"x\",\"setdiff1d\"),r=convertToTensor(t,\"y\",\"setdiff1d\"),assert(n.dtype===r.dtype,\"x and y should have the same dtype, but got x (\"+n.dtype+\") and y (\"+r.dtype+\").\"),assert(1===n.rank,\"x should be 1D tensor, but got x (\"+n.shape+\").\"),assert(1===r.rank,\"y should be 1D tensor, but got y (\"+r.shape+\").\"),[4,n.data()];case 1:return o=d.sent(),[4,r.data()];case 2:for(a=d.sent(),i=new Set(a),s=0,c=0;c0?this.gpgpu.beginQuery():{startMs:performance.now(),endMs:null}},e.prototype.endTimer=function(e){return ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(this.gpgpu.endQuery(),e):(e.endMs=performance.now(),e)},e.prototype.getQueryTime=function(e){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(n){return ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?[2,this.gpgpu.waitForQueryAndGetTime(e)]:[2,(t=e).endMs-t.startMs]})})},e.prototype.disposeData=function(e){if(!this.pendingDisposal.has(e))if(this.pendingRead.has(e))this.pendingDisposal.add(e);else if(this.texData.has(e)){var t=this.texData.get(e),n=t.texture,r=t.texShape,o=t.usage,a=t.complexTensors,i=t.isPacked;null!=n&&this.releaseTexture(e,n,r,o,i),null!=a&&(a.real.dispose(),a.imag.dispose()),this.texData.delete(e)}},e.prototype.getTexture=function(e){return this.uploadToGPU(e),this.texData.get(e).texture},e.prototype.getCPUBackend=function(){return ENV.get(\"WEBGL_CPU_FORWARD\")?(null==this.cpuBackend&&(this.cpuBackend=ENV.findBackend(\"cpu\")),this.cpuBackend):null},e.prototype.shouldExecuteOnCPU=function(e,t){var n=this;return void 0===t&&(t=CPU_HANDOFF_SIZE_THRESHOLD),null!=this.getCPUBackend()&&e.every(function(e){return null==n.texData.get(e.dataId).texture&&e.sizeMATMUL_SHARED_DIM_THRESHOLD){n&&(e=e.transpose([0,2,1])),r&&(t=t.transpose([0,2,1]));var u=1===a?e:e.as3D(s,i,1),l=1===a?2:1,c=1===a?t.as3D(s,1,i):t;return this.multiply(u,c).sum(l,!0)}var p=upcastType(e.dtype,t.dtype);if(1===s){var d=e.as2D(e.shape[1],e.shape[2]),h=t.as2D(t.shape[1],t.shape[2]),f=new MatMulPackedProgram(d.shape,h.shape,[o,a],n,r),m=this.makePackedTensor(f.outputShape,p),g=this.compileAndRun(f,[d,h],m);return g.reshape([1,g.shape[0],g.shape[1]])}f=new MatMulProgram(e.shape,t.shape,n,r),m=this.makeOutputArray(f.outputShape,p);return this.compileAndRun(f,[e,t],m)},e.prototype.multiply=function(e,t){if(\"complex64\"===e.dtype){var n=this.texData.get(e.dataId),r=this.texData.get(t.dataId),o=new BinaryOpComplexProgram(COMPLEX_MULTIPLY.REAL,e.shape,t.shape),a=new BinaryOpComplexProgram(COMPLEX_MULTIPLY.IMAG,e.shape,t.shape),i=[this.makeComplexComponentTensorHandle(e,n.complexTensors.real),this.makeComplexComponentTensorHandle(e,n.complexTensors.imag),this.makeComplexComponentTensorHandle(t,r.complexTensors.real),this.makeComplexComponentTensorHandle(t,r.complexTensors.imag)],s=this.compileAndRun(o,i),u=this.compileAndRun(a,i),l=this.complex(s,u);return s.dispose(),u.dispose(),l}if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.multiply(e,t);var c=new BinaryOpProgram(MUL,e.shape,t.shape),p=this.makeOutputArray(c.outputShape,e.dtype);return this.compileAndRun(c,[e,t],p)},e.prototype.batchNormalization=function(e,t,n,r,o,a){var i=[e,t,n],s=null;null!=a&&(s=a.shape,i.push(a));var u=null;if(null!=o&&(u=o.shape,i.push(o)),ENV.get(\"WEBGL_PACK_BATCHNORMALIZATION\")){var l=new BatchNormPackedProgram(e.shape,t.shape,n.shape,s,u,r);return this.compileAndRun(l,i)}var c=new BatchNormProgram(e.shape,t.shape,n.shape,s,u,r);return this.compileAndRun(c,i)},e.prototype.localResponseNormalization4D=function(e,t,n,r,o){var a=new LRNProgram(e.shape,t,n,r,o);return this.compileAndRun(a,[e])},e.prototype.LRNGrad=function(e,t,n,r,o,a,i){var s=new LRNGradProgram(t.shape,r,o,a,i);return this.compileAndRun(s,[t,n,e])},e.prototype.tile=function(e,t){var n=new TileProgram(e.shape,t);return this.compileAndRun(n,[e])},e.prototype.pad=function(e,t,n){var r=new PadProgram(e.shape,t,n);return this.compileAndRun(r,[e])},e.prototype.transpose=function(e,t){var n=new TransposeProgram(e.shape,t);return this.compileAndRun(n,[e])},e.prototype.gather=function(e,t,n){var r=new GatherProgram(e.shape,t.size,n);return this.compileAndRun(r,[e,t])},e.prototype.batchToSpaceND=function(e,t,n){assert(e.rank<=4,\"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet\");var r=t.reduce(function(e,t){return e*t}),o=getReshaped(e.shape,t,r),a=getPermuted(o.length,t.length),i=getReshapedPermuted(e.shape,t,r),s=getSliceBeginCoords(n,t.length),u=getSliceSize(i,n,t.length);return e.reshape(o).transpose(a).reshape(i).slice(s,u)},e.prototype.spaceToBatchND=function(e,t,n){assert(e.rank<=4,\"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet\");var r=t.reduce(function(e,t){return e*t}),o=[[0,0]];o.push.apply(o,n);for(var a=1+t.length;a1,\"blockSize should be > 1 for depthToSpace, but was: \"+t);var r=e.shape[0],o=(\"NHWC\"===n?e.shape[1]:e.shape[2])*t,a=(\"NHWC\"===n?e.shape[2]:e.shape[3])*t,i=(\"NHWC\"===n?e.shape[3]:e.shape[1])/(t*t),s=new DepthToSpaceProgram(\"NHWC\"===n?[r,o,a,i]:[r,i,o,a],t,n);return this.compileAndRun(s,[e])},e.prototype.split=function(e,t,n){return split(e,t,n)},e.prototype.scatterND=function(e,t,n){var r=calculateShapes(t,e,n),o=r.sliceRank,a=r.numUpdates,i=r.sliceSize,s=r.strides,u=r.outputSize,l=[u/i,i],c=e.reshape([a,o]),p=t.reshape([a,i]);if(0===u)return reshapeTensor(tensor([]),n);var d=scalar(0),h=new ScatterProgram(a,o,c.rank,p.rank,s,l);return this.compileAndRun(h,[p,c,d]).reshape(n)},e.prototype.sparseToDense=function(e,t,n,r){var o=calculateShapes(t,e,n),a=o.sliceRank,i=o.numUpdates,s=o.strides,u=o.outputSize,l=new ScatterProgram(i,a,e.rank,t.rank,s,[u,1],!1);return this.compileAndRun(l,[t,e,r]).reshape(n)},e.prototype.fft=function(e){return this.fftImpl(e,!1)},e.prototype.ifft=function(e){return this.fftImpl(e,!0)},e.prototype.fftImpl=function(e,t){var n=this.texData.get(e.dataId),r=new FFTProgram(COMPLEX_FFT.REAL,e.shape,t),o=new FFTProgram(COMPLEX_FFT.IMAG,e.shape,t),a=[this.makeComplexComponentTensorHandle(e,n.complexTensors.real),this.makeComplexComponentTensorHandle(e,n.complexTensors.imag)],i=this.compileAndRun(r,a),s=this.compileAndRun(o,a),u=this.complex(i,s).as2D(e.shape[0],e.shape[1]);return i.dispose(),s.dispose(),u},e.prototype.gatherND=function(e,t){var n=t.shape,r=n[n.length-1],o=prepareAndValidate(e,t),a=o[0],i=o[1],s=o[2],u=o[3],l=t.reshape([i,r]),c=e.reshape([e.size/s,s]),p=new GatherNDProgram(r,u,[i,s]);return this.compileAndRun(p,[c,l]).reshape(a)},e.prototype.makeOutputArray=function(e,t){return Tensor.make(e,{},t)},e.prototype.makePackedTensor=function(e,t){var n=Tensor.make(e,{},t);return this.texData.get(n.dataId).isPacked=!0,n},e.prototype.unpackTensor=function(e){var t=new UnpackProgram(e.shape);return this.compileAndRun(t,[e],Tensor.make(t.outputShape,{},e.dtype))},e.prototype.getBatchDim=function(e,t){return void 0===t&&(t=2),sizeFromShape(e.slice(0,e.length-t))},e.prototype.getRowsCols=function(e){if(0===e.length)throw Error(\"Cannot get rows and columns of an empty shape array.\");return[e.length>1?e[e.length-2]:1,e[e.length-1]]},e.prototype.packedReshape=function(e,t){var n=e.reshape([this.getBatchDim(e.shape)].concat(this.getRowsCols(e.shape))),r=[this.getBatchDim(t)].concat(this.getRowsCols(t)),o=new ReshapePackedProgram(r,n.shape);return this.compileAndRun(o,[n]).reshape(t)},e.prototype.compileAndRun=function(e,t,n,r,o){var a=this;if(void 0===o&&(o=!0),null==n&&(n=e.usesPackedTextures?this.makePackedTensor(e.outputShape,t[0].dtype):this.makeOutputArray(e.outputShape,t[0].dtype)),0===n.size)return this.texData.get(n.dataId).values=getTypedArrayFromDType(n.dtype,0),n;var i=t.map(function(t){if(\"complex64\"===t.dtype)throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");var n=a.texData.get(t.dataId);if(null==n.texture){if(!e.usesPackedTextures&&sizeFromShape(t.shape)<=ENV.get(\"WEBGL_SIZE_UPLOAD_UNIFORM\"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:a.readSync(t.dataId)};e.usesPackedTextures&&(n.isPacked=!0,n.shape=t.shape)}else if(!!n.isPacked!=!!e.usesPackedTextures){var r=void 0,o=void 0;n.isPacked?(r=new UnpackProgram(t.shape),o=a.compileAndRun(r,[t],Tensor.make(r.outputShape,{},t.dtype))):(r=new PackProgram(t.shape),o=a.compileAndRun(r,[t],a.makePackedTensor(t.shape,t.dtype))),n=a.texData.get(o.dataId),t=o}else if(n.isPacked&&!isReshapeFree(n.shape,t.shape)){a.delayedStorage=!1;var i=t.dataSync();a.delayedStorage=!0,t=Tensor.make(t.shape,{values:i},t.dtype),(n=a.texData.get(t.dataId)).isPacked=!0}return a.uploadToGPU(t.dataId),{shape:t.shape,texData:n,isUniform:!1}});this.uploadToGPU(n.dataId);var s,u={shape:n.shape,texData:this.texData.get(n.dataId),isUniform:!1},l=makeShaderKey(e,i,u),c=this.getAndSaveBinary(l,function(){return compileProgram(a.gpgpu,e,i,u)}),p=null!=this.activeTimers;if(p&&(s=this.startTimer()),runProgram(c,i,u,r),ENV.get(\"WEBGL_PAGING_ENABLED\")&&o&&this.numBytesInGPU>this.NUM_BYTES_BEFORE_PAGING)for(var d=this.numBytesInGPU-this.NUM_BYTES_BEFORE_PAGING;d>0&&this.lruDataGPU.length>0;){var h=this.lruDataGPU.shift(),f=this.texData.get(h),m=f.shape,g=f.dtype;d-=this.computeBytes(m,g),this.read(h)}return p&&(s=this.endTimer(s),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(s)})),ENV.get(\"WEBGL_LAZILY_UNPACK\")||!this.texData.get(n.dataId).isPacked||e.isPackShader?n:this.unpackTensor(n)},e.prototype.getAndSaveBinary=function(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]},e.prototype.getTextureManager=function(){return this.textureManager},e.prototype.dispose=function(){if(!this.disposed){for(var e in this.binaryCache)this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram);this.textureManager.dispose(),this.canvas.remove(),null!=this.fromPixels2DContext&&this.fromPixels2DContext.canvas.remove(),this.gpgpuCreatedLocally&&this.gpgpu.dispose(),this.disposed=!0}},e.prototype.floatPrecision=function(){var e=this;return tidy(function(){return e.abs(scalar(1e-8)).get()>0?32:16})},e.prototype.uploadToGPU=function(e){var t,n=this.texData.get(e),r=n.shape,o=n.values,a=n.texture,i=n.usage,s=n.isPacked;if(null==a){var u,l=null!=this.activeTimers;l&&(u=performance.now());var c=getTextureShapeFromLogicalShape(r,s);n.texShape=c;var p=this.acquireTexture(e,c,i,s);if(n.texture=p,null!=o){if(s){var d=this.getBatchDim(r),h=1,f=1;r.length&&(h=(t=this.getRowsCols(r))[0],f=t[1]),this.gpgpu.uploadMatrixToPackedTexture(p,d,h,f,c[0],c[1],typedArrayToFloat32(o))}else this.gpgpu.uploadMatrixToTexture(p,c[0],c[1],typedArrayToFloat32(o));n.values=null,l&&(this.uploadWaitMs+=performance.now()-u)}}else{ENV.get(\"WEBGL_PAGING_ENABLED\")&&this.lruDataGPU.indexOf(e)>=0&&(this.lruDataGPU.splice(this.lruDataGPU.indexOf(e),1),this.lruDataGPU.push(e))}},e.prototype.convertAndCacheOnCPU=function(e,t){var n=this.delayedStorage,r=this.texData.get(e),o=r.texture,a=r.texShape,i=r.dtype,s=r.usage,u=r.isPacked;return n&&null!=o&&(this.releaseTexture(e,o,a,s,u),r.texture=null,r.texShape=null),r.usage=TextureUsage.UPLOAD,null!=t&&(r.values=float32ToTypedArray(t,i)),r.values},e.prototype.releaseTexture=function(e,t,n,r,o){var a=this.texData.get(e),i=a.shape,s=a.dtype;if(ENV.get(\"WEBGL_PAGING_ENABLED\")){var u=this.lruDataGPU.indexOf(e);u>=0&&this.lruDataGPU.splice(u,1)}this.numBytesInGPU-=this.computeBytes(i,s),this.textureManager.releaseTexture(t,n,r,o)},e.prototype.acquireTexture=function(e,t,n,r){var o=this.texData.get(e),a=o.shape,i=o.dtype;return ENV.get(\"WEBGL_PAGING_ENABLED\")&&this.lruDataGPU.push(e),this.numBytesInGPU+=this.computeBytes(a,i),this.textureManager.acquireTexture(t,n,r)},e.prototype.computeBytes=function(e,t){return sizeFromShape(e)*bytesPerElement(t)},e}();function float32ToTypedArray(e,t){if(\"float32\"===t||\"complex64\"===t)return e;if(\"int32\"===t||\"bool\"===t){for(var n=\"int32\"===t?new Int32Array(e.length):new Uint8Array(e.length),r=0;r=2&&i.rank>=2&&a.rank===i.rank,\"Error in matMul: inputs must have the same rank of at least 2, got ranks \"+a.rank+\" and \"+i.rank+\".\"),assert(arraysEqual(p,d),\"Error in matMul: outer dimensions (\"+p+\") and (\"+d+\") of Tensors with shapes \"+a.shape+\" and \"+i.shape+\" must match.\"),assert(s===u,\"Error in matMul: inner shapes (\"+s+\") and (\"+u+\") of Tensors with shapes \"+a.shape+\" and \"+i.shape+\" and transposeA=\"+n+\" and transposeB=\"+r+\" must match.\");var m=a.shape.slice(0,-2).concat([l,c]),g=n?a.as3D(h,s,l):a.as3D(h,l,s),v=r?i.as3D(f,c,u):i.as3D(f,u,c);return ENV.engine.runKernel(function(e){return e.batchMatMul(g,v,n,r)},{$a:g,$b:v},function(e){return n||r?!n&&r?{$a:function(){return e.matMul(v,!1,!1)},$b:function(){return e.matMul(g,!0,!1)}}:n&&!r?{$a:function(){return v.matMul(e,!1,!0)},$b:function(){return g.matMul(e,!1,!1)}}:{$a:function(){return v.matMul(e,!0,!0)},$b:function(){return e.matMul(g,!0,!0)}}:{$a:function(){return e.matMul(v,!1,!0)},$b:function(){return g.matMul(e,!0,!1)}}}).reshape(m)}function outerProduct_(e,t){var n=convertToTensor(e,\"v1\",\"outerProduct\"),r=convertToTensor(t,\"v2\",\"outerProduct\");return assert(1===n.rank&&1===r.rank,\"Error in outerProduct: inputs must be rank 1, but got ranks \"+n.rank+\" and \"+r.rank+\".\"),n.as2D(-1,1).matMul(r.as2D(1,-1))}function dot_(e,t){var n=convertToTensor(e,\"t1\",\"dot\"),r=convertToTensor(t,\"t2\",\"dot\");assert(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),\"Error in dot: inputs must all be rank 1 or 2, but got ranks \"+n.rank+\" and \"+r.rank+\".\");var o=1===n.rank?n.size:n.shape[1],a=1===r.rank?r.size:r.shape[0];return assert(o===a,\"Error in dot: inner dimensions of inputs must match, but got \"+o+\" and \"+a+\".\"),1===n.rank&&1===r.rank?n.as2D(1,-1).matMul(r.as2D(-1,1)).asScalar():1===n.rank&&2===r.rank?n.as2D(1,-1).matMul(r.as2D(r.shape[0],r.shape[1])).as1D():2===n.rank&&1===r.rank?n.matMul(r.as2D(-1,1)).as1D():n.matMul(r.as2D(r.shape[0],r.shape[1]))}var matMul=op({matMul_:matMul_}),dot=op({dot_:dot_}),outerProduct=op({outerProduct_:outerProduct_});function conv1d_(e,t,n,r,o,a,i){void 0===o&&(o=\"NWC\"),void 0===a&&(a=1);var s=convertToTensor(e,\"x\",\"conv1d\"),u=convertToTensor(t,\"filter\",\"conv1d\"),l=s,c=!1;2===s.rank&&(c=!0,l=s.as3D(1,s.shape[0],s.shape[1])),assert(3===l.rank,\"Error in conv1d: input must be rank 3, but got rank \"+l.rank+\".\"),assert(3===u.rank,\"Error in conv1d: filter must be rank 3, but got rank \"+u.rank+\".\"),null!=i&&assert(isInt(r),\"Error in conv1d: pad must be an integer when using, dimRoundingMode \"+i+\" but got pad \"+r+\".\"),assert(l.shape[2]===u.shape[1],\"Error in conv1d: depth of input (\"+l.shape[2]+\") must match input depth for filter \"+u.shape[1]+\".\"),assert(eitherStridesOrDilationsAreOne(n,a),\"Error in conv1D: Either stride or dilation must be 1. Got stride \"+n+\" and dilation '\"+a+\"'\"),assert(\"NWC\"===o,\"Error in conv1d: got dataFormat of \"+o+\" but only NWC is currently supported.\");var p=u.as4D(1,u.shape[0],u.shape[1],u.shape[2]),d=l.as4D(l.shape[0],1,l.shape[1],l.shape[2]),h=conv2d(d,p,[1,n],r,\"NHWC\",[1,a],i);return c?h.as2D(h.shape[2],h.shape[3]):h.as3D(h.shape[0],h.shape[2],h.shape[3])}function conv2d_(e,t,n,r,o,a,i){void 0===o&&(o=\"NHWC\"),void 0===a&&(a=[1,1]);var s=convertToTensor(e,\"x\",\"conv2d\"),u=convertToTensor(t,\"filter\",\"conv2d\"),l=s,c=!1;3===s.rank&&(c=!0,l=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),assert(4===l.rank,\"Error in conv2d: input must be rank 4, but got rank \"+l.rank+\".\"),assert(4===u.rank,\"Error in conv2d: filter must be rank 4, but got rank \"+u.rank+\".\"),null!=i&&assert(isInt(r),\"Error in conv2d: pad must be an integer when using, dimRoundingMode \"+i+\" but got pad \"+r+\".\"),assert(l.shape[3]===u.shape[2],\"Error in conv2d: depth of input (\"+l.shape[3]+\") must match input depth for filter \"+u.shape[2]+\".\"),assert(eitherStridesOrDilationsAreOne(n,a),\"Error in conv2D: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+a+\"'\"),assert(\"NHWC\"===o,\"Error in conv2d: got dataFormat of \"+o+\" but only NHWC is currently supported.\");var p,d=computeConv2DInfo(l.shape,u.shape,n,a,r,i);if(1!==d.filterHeight||1!==d.filterWidth||1!==d.dilationHeight||1!==d.dilationWidth||1!==d.strideHeight||1!==d.strideWidth||\"SAME\"!==d.padInfo.type&&\"VALID\"!==d.padInfo.type){p=ENV.engine.runKernel(function(e){return e.conv2d(l,u,d)},{x:l,$filter:u},function(e){return assert(tupleValuesAreOne(a),\"Error in gradient of conv2D: dilation rates greater than 1 are notyet supported in gradients. Got dilations '\"+a+\"'\"),{x:function(){return conv2dDerInput_(l.shape,e,u,n,r)},$filter:function(){return conv2dDerFilter_(l,e,u.shape,n,r)}}})}else{var h=l.reshape([-1,d.inChannels]),f=u.reshape([d.inChannels,d.outChannels]);p=matMul(h,f).reshape(d.outShape)}return c?p.as3D(p.shape[1],p.shape[2],p.shape[3]):p}function conv2dDerInput_(e,t,n,r,o,a){assert(e.length===t.rank,\"Length of inShape (\"+e.length+\") and rank of dy (\"+t.rank+\") must match\");var i=e,s=t,u=!1;3===t.rank&&(u=!0,s=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]),i=[1,e[0],e[1],e[2]]);var l=i[3],c=s.shape[3];assert(4===i.length,\"Error in conv2dDerInput: inShape must be length 4, but got length \"+i.length+\".\"),assert(4===s.rank,\"Error in conv2dDerInput: dy must be rank 4, but got rank \"+s.rank),assert(4===n.rank,\"Error in conv2dDerInput: filter must be rank 4, but got rank \"+n.rank),assert(l===n.shape[2],\"Error in conv2dDerInput: depth of input (\"+l+\") must match input depth for filter \"+n.shape[2]+\".\"),assert(c===n.shape[3],\"Error in conv2dDerInput: depth of output (\"+c+\") must match output depth for filter \"+n.shape[3]+\".\"),null!=a&&assert(isInt(o),\"Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode \"+a+\" but got pad \"+o+\".\");var p=computeConv2DInfo(i,n.shape,r,1,o,a),d=ENV.engine.runKernel(function(e){return e.conv2dDerInput(s,n,p)},{dy4D:s,filter:n},function(e){return{dy4D:function(){return conv2d(e,n,r,o,\"NHWC\",1,a)},filter:function(){return conv2dDerFilter(e,s,n.shape,r,o,a)}}});return u?d.as3D(d.shape[1],d.shape[2],d.shape[3]):d}function conv2dDerFilter_(e,t,n,r,o,a){var i=e;3===e.rank&&(i=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var s=t;3===s.rank&&(s=t.as4D(1,t.shape[0],t.shape[1],t.shape[2])),assert(4===i.rank,\"Error in conv2dDerFilter: input must be rank 4, but got shape \"+i.shape+\".\"),assert(4===s.rank,\"Error in conv2dDerFilter: dy must be rank 4, but got shape \"+s.shape+\".\"),assert(4===n.length,\"Error in conv2dDerFilter: filterShape must be length 4, but got \"+n+\".\"),assert(i.shape[3]===n[2],\"Error in conv2dDerFilter: depth of input \"+i.shape[3]+\") must match input depth in filter (\"+n[2]+\".\"),assert(s.shape[3]===n[3],\"Error in conv2dDerFilter: depth of dy (\"+s.shape[3]+\") must match output depth for filter (\"+n[3]+\").\"),null!=a&&assert(isInt(o),\"Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode \"+a+\" but got pad \"+o+\".\");var u=computeConv2DInfo(i.shape,n,r,1,o,a);return ENV.engine.runKernel(function(e){return e.conv2dDerFilter(i,s,u)},{x4D:i,dy4D:s})}function conv2dTranspose_(e,t,n,r,o,a){return conv2dDerInput_(n,convertToTensor(e,\"x\",\"conv2dTranspose\"),convertToTensor(t,\"filter\",\"conv2dTranspose\"),r,o,a)}function depthwiseConv2d_(e,t,n,r,o,a,i){void 0===o&&(o=\"NHWC\"),void 0===a&&(a=[1,1]);var s=convertToTensor(e,\"x\",\"depthwiseConv2d\"),u=convertToTensor(t,\"filter\",\"depthwiseConv2d\"),l=s,c=!1;3===s.rank&&(c=!0,l=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),assert(4===l.rank,\"Error in depthwiseConv2d: input must be rank 4, but got rank \"+l.rank+\".\"),assert(4===u.rank,\"Error in depthwiseConv2d: filter must be rank 4, but got rank \"+u.rank+\".\"),assert(l.shape[3]===u.shape[2],\"Error in depthwiseConv2d: number of input channels (\"+l.shape[3]+\") must match the inChannels dimension in filter \"+u.shape[2]+\".\"),null==a&&(a=[1,1]),assert(eitherStridesOrDilationsAreOne(n,a),\"Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+a+\"'\"),null!=i&&assert(isInt(r),\"Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode \"+i+\" but got pad \"+r+\".\");var p=computeConv2DInfo(l.shape,u.shape,n,a,r,i,!0),d=ENV.engine.runKernel(function(e){return e.depthwiseConv2D(l,u,p)},{x:l,$filter:u},function(e){return assert(tupleValuesAreOne(a),\"Error in gradient of depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '\"+a+\"'\"),{x:function(){return depthwiseConv2dDerInput(l.shape,e,u,p)},$filter:function(){return depthwiseConv2dDerFilter(l,e,u.shape,p)}}});return c?d.as3D(d.shape[1],d.shape[2],d.shape[3]):d}function separableConv2d_(e,t,n,r,o,a,i){void 0===a&&(a=[1,1]),void 0===i&&(i=\"NHWC\");var s=convertToTensor(e,\"x\",\"separableConv2d\"),u=convertToTensor(t,\"depthwiseFilter\",\"separableConv2d\"),l=convertToTensor(n,\"pointwiseFilter\",\"separableConv2d\"),c=s,p=!1;if(3===s.rank&&(p=!0,c=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),\"NCHW\"===i)throw new Error(\"separableConv2d currently does not support dataFormat NCHW; only NHWC is supported\");assert(4===c.rank,\"Error in separableConv2d: input must be rank 4, but got rank \"+c.rank+\".\"),assert(4===u.rank,\"Error in separableConv2d: depthwise filter must be rank 4, but got rank \"+u.rank+\".\"),assert(4===l.rank,\"Error in separableConv2d: pointwise filter must be rank 4, but got rank \"+u.rank+\".\"),assert(1===l.shape[0],\"Error in separableConv2d: the first dimension of pointwise filter must be 1, but got \"+l.shape[0]+\".\"),assert(1===l.shape[1],\"Error in separableConv2d: the second dimension of pointwise filter must be 1, but got \"+l.shape[1]+\".\");var d=u.shape[2],h=u.shape[3];assert(l.shape[2]===d*h,\"Error in separableConv2d: the third dimension of pointwise filter must be \"+d*h+\", but got \"+l.shape[2]+\".\");var f=depthwiseConv2d(c,u,r,o,i,a),m=conv2d(f,l,1,\"valid\",i);return p?m.as3D(m.shape[1],m.shape[2],m.shape[3]):m}function parseTupleParam$1(e){return\"number\"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function tupleValuesAreOne$1(e){var t=parseTupleParam$1(e),n=t[0],r=t[1],o=t[2];return 1===n&&1===r&&1===o}function eitherStridesOrDilationsAreOne$1(e,t){return tupleValuesAreOne$1(e)||tupleValuesAreOne$1(t)}function depthwiseConv2dDerInput(e,t,n,r){var o=t,a=!1;3===t.rank&&(a=!0,o=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]));var i=ENV.engine.runKernel(function(e){return e.depthwiseConv2DDerInput(o,n,r)},{dy4D:o});return a?i.as3D(i.shape[1],i.shape[2],i.shape[3]):i}function depthwiseConv2dDerFilter(e,t,n,r){var o=e;3===e.rank&&(o=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var a=t;return 3===a.rank&&(a=t.as4D(1,t.shape[0],t.shape[1],t.shape[2])),ENV.engine.runKernel(function(e){return e.depthwiseConv2DDerFilter(o,a,r)},{x4D:o,dy4D:a})}function conv3d_(e,t,n,r,o,a){void 0===o&&(o=\"NHWC\"),void 0===a&&(a=[1,1,1]);var i=convertToTensor(e,\"x\",\"conv3d\"),s=convertToTensor(t,\"filter\",\"conv3d\"),u=i,l=!1;4===i.rank&&(l=!0,u=i.as5D(1,i.shape[0],i.shape[1],i.shape[2],i.shape[3])),assert(5===u.rank,\"Error in conv3d: input must be rank 5, but got rank \"+u.rank+\".\"),assert(5===s.rank,\"Error in conv3d: filter must be rank 5, but got rank \"+s.rank+\".\"),assert(u.shape[4]===s.shape[3],\"Error in conv3d: depth of input (\"+u.shape[4]+\") must match input depth for filter \"+s.shape[3]+\".\"),assert(eitherStridesOrDilationsAreOne$1(n,a),\"Error in conv3D: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+a+\"'\"),assert(\"NHWC\"===o,\"Error in conv3d: got dataFormat of \"+o+\" but only NHWC is currently supported.\");var c=computeConv3DInfo(u.shape,s.shape,n,a,r),p=ENV.engine.runKernel(function(e){return e.conv3d(u,s,c)},{x:u,$filter:s},function(e){return assert(tupleValuesAreOne$1(a),\"Error in gradient of conv3D: dilation rates greater than 1 are notyet supported in gradients. Got dilations '\"+a+\"'\"),{x:function(){return conv3dDerInput_(u.shape,e,s,n,r)},$filter:function(){return conv3dDerFilter_(u,e,s.shape,n,r)}}});return l?p.as4D(p.shape[1],p.shape[2],p.shape[3],p.shape[4]):p}function conv3dDerInput_(e,t,n,r,o){assert(e.length===t.rank,\"Length of inShape (\"+e.length+\") and rank of dy (\"+t.rank+\") must match\");var a=e,i=t,s=!1;4===t.rank&&(s=!0,i=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]),a=[1,e[0],e[1],e[2],e[3]]);var u=a[4],l=i.shape[4];assert(5===a.length,\"Error in conv3dDerInput: inShape must be length 5, but got length \"+a.length+\".\"),assert(5===i.rank,\"Error in conv3dDerInput: dy must be rank 5, but got rank \"+i.rank),assert(5===n.rank,\"Error in conv3dDerInput: filter must be rank 5, but got rank \"+n.rank),assert(u===n.shape[3],\"Error in conv3dDerInput: depth of input (\"+u+\") must match input depth for filter \"+n.shape[3]+\".\"),assert(l===n.shape[4],\"Error in conv3dDerInput: depth of output (\"+l+\") must match output depth for filter \"+n.shape[4]+\".\");var c=computeConv3DInfo(a,n.shape,r,1,o),p=ENV.engine.runKernel(function(e){return e.conv3dDerInput(i,n,c)},{dy5D:i});return s?p.as4D(p.shape[1],p.shape[2],p.shape[3],p.shape[4]):p}function conv3dDerFilter_(e,t,n,r,o){var a=e;4===e.rank&&(a=e.as5D(1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]));var i=t;4===i.rank&&(i=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3])),assert(5===a.rank,\"Error in conv3dDerFilter: input must be rank 5, but got shape \"+a.shape+\".\"),assert(5===i.rank,\"Error in conv3dDerFilter: dy must be rank 5, but got shape \"+i.shape+\".\"),assert(5===n.length,\"Error in conv3dDerFilter: filterShape must be length 5, but got \"+n+\".\"),assert(a.shape[4]===n[3],\"Error in conv3dDerFilter: depth of input \"+a.shape[4]+\") must match input depth in filter (\"+n[3]+\".\"),assert(i.shape[4]===n[4],\"Error in conv3dDerFilter: depth of dy (\"+i.shape[4]+\") must match output depth for filter (\"+n[4]+\").\");var s=computeConv3DInfo(a.shape,n,r,1,o);return ENV.engine.runKernel(function(e){return e.conv3dDerFilter(a,i,s)},{x5D:a,dy5D:i})}var conv1d=op({conv1d_:conv1d_}),conv2d=op({conv2d_:conv2d_}),conv3d=op({conv3d_:conv3d_}),conv2dDerFilter=op({conv2dDerFilter_:conv2dDerFilter_}),depthwiseConv2d=op({depthwiseConv2d_:depthwiseConv2d_}),separableConv2d=op({separableConv2d_:separableConv2d_}),conv2dTranspose=op({conv2dTranspose_:conv2dTranspose_});function reverse1d_(e){var t=convertToTensor(e,\"x\",\"reverse\");return assert(1===t.rank,\"Error in reverse1D: x must be rank 1 but got\\n rank \"+t.rank+\".\"),reverse(t,0)}function reverse2d_(e,t){var n=convertToTensor(e,\"x\",\"reverse\");return assert(2===n.rank,\"Error in reverse2D: x must be rank 2 but got\\n rank \"+n.rank+\".\"),reverse(n,t)}function reverse3d_(e,t){var n=convertToTensor(e,\"x\",\"reverse\");return assert(3===n.rank,\"Error in reverse3D: x must be rank 3 but got\\n rank \"+n.rank+\".\"),reverse(n,t)}function reverse4d_(e,t){var n=convertToTensor(e,\"x\",\"reverse\");return assert(4===n.rank,\"Error in reverse4D: x must be rank 4 but got\\n rank \"+n.rank+\".\"),reverse(n,t)}function reverse_(e,t){var n=convertToTensor(e,\"x\",\"reverse\");if(0===n.rank)return n.clone();var r=parseAxisParam(t,n.shape);return ENV.engine.runKernel(function(e){return e.reverse(n,r)},{$x:n},function(e){return{$x:function(){return e.reverse(r)}}}).reshapeAs(n)}var reverse=op({reverse_:reverse_}),reverse1d=op({reverse1d_:reverse1d_}),reverse2d=op({reverse2d_:reverse2d_}),reverse3d=op({reverse3d_:reverse3d_}),reverse4d=op({reverse4d_:reverse4d_});function maxPoolImpl_(e,t,n,r,o,a){var i=convertToTensor(e,\"x\",\"maxPool\"),s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),null==r&&(r=[1,1]),assert(4===s.rank,\"Error in maxPool: input must be rank 4 but got rank \"+s.rank+\".\"),assert(eitherStridesOrDilationsAreOne(n,r),\"Error in maxPool: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+r+\"'\"),null!=a&&assert(isInt(o),\"Error in maxPool: pad must be an integer when using, dimRoundingMode \"+a+\" but got pad \"+o+\".\");var l=computePool2DInfo(s.shape,t,n,r,o,a),c=ENV.engine.runKernel(function(e,t){return t(e.maxPool(s,l))},{x:s},function(e,a){var i=a[0];return{x:function(){return maxPoolBackprop(e,s,i,t,n,r,o)}}});return u?c.as3D(c.shape[1],c.shape[2],c.shape[3]):c}function maxPool_(e,t,n,r,o){return maxPoolImpl_(e,t,n,1,r,o)}function avgPoolImpl_(e,t,n,r,o,a){var i=convertToTensor(e,\"x\",\"avgPool\",\"float32\");null==r&&(r=[1,1]),assert(eitherStridesOrDilationsAreOne(n,r),\"Error in avgPool: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+r+\"'\");var s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),assert(4===s.rank,\"Error in avgPool: x must be rank 4 but got rank \"+s.rank+\".\"),null!=a&&assert(isInt(o),\"Error in avgPool: pad must be an integer when using, dimRoundingMode \"+a+\" but got pad \"+o+\".\");var l=computePool2DInfo(s.shape,t,n,r,o),c=ENV.engine.runKernel(function(e){return e.avgPool(s,l)},{x:s},function(e){return{x:function(){return avgPoolBackprop(e,s,t,n,r,o)}}});return c=c.cast(i.dtype),u?c.as3D(c.shape[1],c.shape[2],c.shape[3]):c}function avgPool_(e,t,n,r,o){return avgPoolImpl_(e,t,n,1,r,o)}function pool_(e,t,n,r,o,a){null==o&&(o=[1,1]),null==a&&(a=1),0===r&&(r=\"valid\");var i=convertToTensor(e,\"x\",\"maxPool\"),s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),assert(eitherStridesOrDilationsAreOne(a,o),\"Error in pool: Either strides or dilations must be 1. Got strides \"+a+\" and dilations '\"+o+\"'\");var l,c=computePool2DInfo(s.shape,t,a,o,r),p=[c.dilationHeight,c.dilationWidth];l=\"same\"===r?withSpaceToBatchBasePaddings([c.filterHeight,c.filterWidth],p):[[0,0],[0,0]];var d=1===p[0]&&1===p[1],h=requiredSpaceToBatchPaddings([c.inHeight,c.inWidth],p,l),f=h[0],m=h[1],g=d?r:\"valid\",v=d?s:spaceToBatchND(s,p,f),y=(\"avg\"===n?function(){return avgPoolImpl_(v,t,a,1,g)}:function(){return maxPoolImpl_(v,t,a,1,g)})(),x=d?y:batchToSpaceND(y,p,m);return u?x.as3D(x.shape[1],x.shape[2],x.shape[3]):x}function maxPoolBackprop(e,t,n,r,o,a,i,s){var u=convertToTensor(e,\"dy\",\"maxPoolBackprop\"),l=convertToTensor(t,\"input\",\"maxPoolBackprop\"),c=convertToTensor(n,\"output\",\"maxPoolBackprop\");assert(l.rank===u.rank,\"Rank of input (\"+l.rank+\") does not match rank of dy (\"+u.rank+\")\"),null==a&&(a=[1,1]),assert(eitherStridesOrDilationsAreOne(o,a),\"Error in maxPoolBackProp: Either strides or dilations must be 1. Got strides \"+o+\" and dilations '\"+a+\"'\"),assert(4===u.rank,\"Error in maxPoolBackprop: dy must be rank 4 but got rank \"+u.rank+\".\"),assert(4===l.rank,\"Error in maxPoolBackprop: input must be rank 4 but got rank \"+l.rank+\".\"),null!=s&&assert(isInt(i),\"Error in maxPoolBackprop: pad must be an integer when using, dimRoundingMode \"+s+\" but got pad \"+i+\".\");var p=computePool2DInfo(l.shape,r,o,a,i,s);return ENV.engine.runKernel(function(e){return e.maxPoolBackprop(u,l,c,p)},{$dy:u,$input:l})}function avgPoolBackprop(e,t,n,r,o,a){var i=convertToTensor(e,\"dy\",\"avgPoolBackprop\"),s=convertToTensor(t,\"input\",\"avgPoolBackprop\");assert(s.rank===i.rank,\"Rank of input (\"+s.rank+\") does not match rank of dy (\"+i.rank+\")\"),null==o&&(o=[1,1]),assert(eitherStridesOrDilationsAreOne(r,o),\"Error in avgPoolBackprop: Either strides or dilations must be 1. Got strides \"+r+\" and dilations '\"+o+\"'\");var u=s,l=i,c=!1;3===s.rank&&(c=!0,u=s.as4D(1,s.shape[0],s.shape[1],s.shape[2]),l=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),assert(4===l.rank,\"Error in avgPoolBackprop: dy must be rank 4 but got rank \"+l.rank+\".\"),assert(4===u.rank,\"Error in avgPoolBackprop: input must be rank 4 but got rank \"+u.rank+\".\");var p=computePool2DInfo(u.shape,n,r,o,a),d=ENV.engine.runKernel(function(e){return e.avgPoolBackprop(l,u,p)},{dy4D:l,input4D:u});return c?d.as3D(d.shape[1],d.shape[2],d.shape[3]):d}function requiredSpaceToBatchPaddings(e,t,n){var r=n.map(function(e){return e[0]}),o=n.map(function(e){return e[1]}),a=e.concat(r,o),i=t.map(function(e,t){return(e-a[t]%e)%e}),s=o.map(function(e,t){return e+i[t]});return[t.map(function(e,t){return[r[t],s[t]]}),t.map(function(e,t){return[0,i[t]]})]}function withSpaceToBatchBasePaddings(e,t){var n=e.map(function(e,n){return e+(e-1)*(t[n]-1)}).map(function(e){return e-1}),r=n.map(function(e){return Math.floor(e/2)}),o=n.map(function(e,t){return e-r[t]});return n.map(function(e,t){return[r[t],o[t]]})}var maxPool=op({maxPool_:maxPool_}),avgPool=op({avgPool_:avgPool_}),pool=op({pool_:pool_});function slice1d_(e,t,n){var r=convertToTensor(e,\"x\",\"slice1d\");return assert(1===r.rank,\"slice1d expects a rank-1 tensor, but got a rank-\"+r.rank+\" tensor\"),slice(r,[t],[n])}function slice2d_(e,t,n){var r=convertToTensor(e,\"x\",\"slice2d\");return assert(2===r.rank,\"slice2d expects a rank-2 tensor, but got a rank-\"+r.rank+\" tensor\"),slice(r,t,n)}function slice3d_(e,t,n){var r=convertToTensor(e,\"x\",\"slice3d\");return assert(3===r.rank,\"slice3d expects a rank-3 tensor, but got a rank-\"+r.rank+\" tensor\"),slice(r,t,n)}function slice4d_(e,t,n){var r=convertToTensor(e,\"x\",\"slice4d\");return assert(4===r.rank,\"slice4d expects a rank-4 tensor, but got a rank-\"+r.rank+\" tensor\"),slice(r,t,n)}function slice_(e,t,n){var r,o,a=convertToTensor(e,\"x\",\"slice\");if(0===a.rank)throw new Error(\"Slicing scalar is not possible\");r=\"number\"==typeof t?[t].concat(new Array(a.rank-1).fill(0)):t.length=0?e:(assert(-1===e,\"Bad value in size\"),a.shape[t]-r[t])}),assertParamsValid(a,r,o);var i=a.shape;return ENV.engine.runKernel(function(e){return e.slice(a,r,o)},{$x:a},function(e){for(var t=[],n=0;n0&&(t=t.sum(n)),t.reshape(r.shape)},$b:function(){var t=e,n=getReductionAxes(o.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(o.shape)}}})}function addN_(e){assert(Array.isArray(e),function(){return\"The argument passed to tf.addN() must be a list of tensors\"}),assert(e.length>=1,function(){return\"Must pass at least one tensor to tf.addN(), but got \"+e.length});var t=e.map(function(e,t){return convertToTensor(e,\"tensors\"+t,\"addN\")}),n=t[0];t.forEach(function(e){if(e.dtype!==n.dtype)throw new Error(\"All tensors passed to tf.addN() must have the same dtype\")}),t.forEach(function(e){if(!arraysEqual(e.shape,n.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});var r=t;return ENV.engine.runKernel(function(e){return e.addN(t)},r,function(e){var n={};return t.forEach(function(t,r){n[r]=function(){return e.clone()}}),n})}function addStrict_(e,t){var n=convertToTensor(e,\"a\",\"addStrict\"),r=convertToTensor(t,\"b\",\"addStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in addStrict: \"),n.add(r)}function sub_(e,t){var n,r=convertToTensor(e,\"a\",\"sub\"),o=convertToTensor(t,\"b\",\"sub\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.subtract(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=e,n=getReductionAxes(r.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(r.shape)},$b:function(){var t=e,n=getReductionAxes(o.shape,a);return n.length>0&&(t=t.sum(n)),t.neg().reshape(o.shape)}}})}function subStrict_(e,t){var n=convertToTensor(e,\"a\",\"subStrict\"),r=convertToTensor(t,\"b\",\"subStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in subStrict: \"),n.sub(r)}function pow_(e,t){var n=convertToTensor(e,\"base\",\"pow\"),r=convertToTensor(t,\"exp\",\"pow\"),o=assertAndGetBroadcastShape(n.shape,r.shape);e=n.cast(upcastType(n.dtype,r.dtype)),t=r.cast(upcastType(n.dtype,r.dtype));return ENV.engine.runKernel(function(e,t){return t(e.pow(n,r))},{$base:n,$exp:r},function(e,t){var a=t[0];return{$base:function(){var t=r.toFloat(),a=e.mul(t.mul(n.pow(t.sub(scalar(1))))),i=getReductionAxes(n.shape,o);return i.length>0&&(a=a.sum(i)),a.reshape(n.shape)},$exp:function(){var t=e.mul(a.mul(n.log()).toFloat()),i=getReductionAxes(r.shape,o);return i.length>0&&(t=t.sum(i)),t.reshape(r.shape)}}})}function powStrict_(e,t){return assertShapesMatch(e.shape,t.shape,\"Error in powStrict: \"),e.pow(t)}function mul_(e,t){var n,r=convertToTensor(e,\"a\",\"mul\"),o=convertToTensor(t,\"b\",\"mul\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.multiply(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=e.mul(o.toFloat()),n=getReductionAxes(r.shape,a);return n.length>0?t.sum(n).reshape(r.shape):t},$b:function(){var t=e.mul(r.toFloat()),n=getReductionAxes(o.shape,a);return n.length>0?t.sum(n).reshape(o.shape):t}}})}function mulStrict_(e,t){var n=convertToTensor(e,\"a\",\"mul\"),r=convertToTensor(t,\"b\",\"mul\");return assertShapesMatch(n.shape,r.shape,\"Error in multiplyStrict: \"),n.mul(r)}function div_(e,t){var n,r,o=convertToTensor(e,\"a\",\"div\"),a=convertToTensor(t,\"b\",\"div\");if(n=makeTypesMatch(o,a),o=n[0],a=n[1],\"int32\"===o.dtype&&\"int32\"===a.dtype)return floorDiv(o,a);r=function(e){return e.realDivide(o,a)};var i=assertAndGetBroadcastShape(o.shape,a.shape);return ENV.engine.runKernel(r,{$a:o,$b:a},function(e){return{$a:function(){var t=e.div(a.toFloat()),n=getReductionAxes(o.shape,i);return n.length>0?t.sum(n).reshape(o.shape):t},$b:function(){var t=e.mul(o.toFloat()),n=getReductionAxes(a.shape,i);n.length>0&&(t=t.sum(n).reshape(a.shape));var r=a.square();return t.div(r.toFloat()).neg()}}})}function floorDiv_(e,t){var n,r=convertToTensor(e,\"a\",\"floorDiv\"),o=convertToTensor(t,\"b\",\"floorDiv\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.floorDiv(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=e.div(o.toFloat()),n=getReductionAxes(r.shape,a);return n.length>0?t.sum(n).reshape(r.shape):t},$b:function(){var t=e.mul(r.toFloat()),n=getReductionAxes(o.shape,a);n.length>0&&(t=t.sum(n).reshape(o.shape));var i=o.square();return t.div(i.toFloat()).neg()}}})}function divStrict_(e,t){var n=convertToTensor(e,\"a\",\"div\"),r=convertToTensor(t,\"b\",\"div\");return assertShapesMatch(n.shape,r.shape,\"Error in divideStrict: \"),n.div(r)}function mod_(e,t){var n,r=convertToTensor(e,\"a\",\"mod\"),o=convertToTensor(t,\"b\",\"mod\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.mod(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=getReductionAxes(r.shape,a);return t.length>0?e.sum(t).reshape(r.shape):e},$b:function(){var t=e.mul(r.div(o).floor().neg()),n=getReductionAxes(o.shape,a);return n.length>0?t.sum(n).reshape(o.shape):t}}})}function modStrict_(e,t){var n=convertToTensor(e,\"a\",\"modStrict\"),r=convertToTensor(t,\"b\",\"modStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in modStrict: \"),n.mod(r)}function minimum_(e,t){var n,r=convertToTensor(e,\"a\",\"minimum\"),o=convertToTensor(t,\"b\",\"minimum\");n=makeTypesMatch(r,o),r=n[0],o=n[1],\"bool\"===r.dtype&&(r=r.toInt(),o=o.toInt()),assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.minimum(r,o)},{$a:r,$b:o},function(e){return{$a:function(){return e.mul(r.lessEqual(o).toFloat())},$b:function(){return e.mul(r.greater(o).toFloat())}}})}function minimumStrict_(e,t){var n=convertToTensor(e,\"a\",\"minimumStrict\"),r=convertToTensor(t,\"b\",\"minimumStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in minimumStrict: \"),n.minimum(r)}function maximum_(e,t){var n,r=convertToTensor(e,\"a\",\"maximum\"),o=convertToTensor(t,\"b\",\"maximum\");n=makeTypesMatch(r,o),r=n[0],o=n[1],\"bool\"===r.dtype&&(r=r.toInt(),o=o.toInt()),assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.maximum(r,o)},{$a:r,$b:o},function(e){return{$a:function(){return e.mul(r.greaterEqual(o).toFloat())},$b:function(){return e.mul(r.less(o).toFloat())}}})}function maximumStrict_(e,t){var n=convertToTensor(e,\"a\",\"maximumStrict\"),r=convertToTensor(t,\"b\",\"maximumStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in maximumStrict: \"),n.maximum(r)}function squaredDifference_(e,t){var n,r=convertToTensor(e,\"a\",\"squaredDifference\"),o=convertToTensor(t,\"b\",\"squaredDifference\");n=makeTypesMatch(r,o),r=n[0],o=n[1],assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.squaredDifference(r,o)},{$a:r,$b:o},function(e){var t=scalar(2);return{$a:function(){return e.mul(r.sub(o).mul(t))},$b:function(){return e.mul(o.sub(r).mul(t))}}})}function squaredDifferenceStrict_(e,t){var n=convertToTensor(e,\"a\",\"squaredDifferenceStrict\"),r=convertToTensor(t,\"b\",\"squaredDifferenceStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in squaredDifferenceStrict: \"),n.squaredDifference(r)}function atan2_(e,t){var n,r=convertToTensor(e,\"a\",\"atan2\"),o=convertToTensor(t,\"b\",\"atan2\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.atan2(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=add(r.square(),o.square()),n=e.mul(o.div(t)),i=getReductionAxes(r.shape,a);return i.length>0&&(n=n.sum(i)),n.reshape(r.shape)},$b:function(){var t=add(r.square(),o.square()),n=neg(e.mul(r.div(t))),i=getReductionAxes(o.shape,a);return i.length>0&&(n=n.sum(i)),n.reshape(o.shape)}}})}var add=op({add_:add_}),addN=op({addN_:addN_}),addStrict=op({addStrict_:addStrict_}),atan2=op({atan2_:atan2_}),div=op({div_:div_}),divStrict=op({divStrict_:divStrict_}),floorDiv=op({floorDiv_:floorDiv_}),maximum=op({maximum_:maximum_}),maximumStrict=op({maximumStrict_:maximumStrict_}),minimum=op({minimum_:minimum_}),minimumStrict=op({minimumStrict_:minimumStrict_}),mod=op({mod_:mod_}),modStrict=op({modStrict_:modStrict_}),mul=op({mul_:mul_}),mulStrict=op({mulStrict_:mulStrict_}),pow=op({pow_:pow_}),powStrict=op({powStrict_:powStrict_}),squaredDifference=op({squaredDifference_:squaredDifference_}),squaredDifferenceStrict=op({squaredDifferenceStrict_:squaredDifferenceStrict_}),sub=op({sub_:sub_}),subStrict=op({subStrict_:subStrict_});function logicalNot_(e){var t=convertToTensor(e,\"x\",\"logicalNot\",\"bool\");return ENV.engine.runKernel(function(e){return e.logicalNot(t)},{$x:t})}function logicalAnd_(e,t){var n=convertToTensor(e,\"a\",\"logicalAnd\",\"bool\"),r=convertToTensor(t,\"b\",\"logicalAnd\",\"bool\");return assertAndGetBroadcastShape(n.shape,r.shape),ENV.engine.runKernel(function(e){return e.logicalAnd(n,r)},{$a:n,$b:r})}function logicalOr_(e,t){var n=convertToTensor(e,\"a\",\"logicalOr\",\"bool\"),r=convertToTensor(t,\"b\",\"logicalOr\",\"bool\");return assertAndGetBroadcastShape(n.shape,r.shape),ENV.engine.runKernel(function(e){return e.logicalOr(n,r)},{$a:n,$b:r})}function logicalXor_(e,t){var n=convertToTensor(e,\"a\",\"logicalXor\",\"bool\"),r=convertToTensor(t,\"b\",\"logicalXor\",\"bool\");return assertAndGetBroadcastShape(n.shape,r.shape),logicalOr(e,t).logicalAnd(logicalAnd(e,t).logicalNot())}function where_(e,t,n){var r=convertToTensor(t,\"a\",\"where\"),o=convertToTensor(n,\"b\",\"where\"),a=convertToTensor(e,\"condition\",\"where\",\"bool\");assertShapesMatch(r.shape,o.shape,\"Error in where: \"),1===a.rank?assert(a.shape[0]===r.shape[0],\"The first dimension of `a` must match the size of `condition`.\"):assertShapesMatch(a.shape,o.shape,\"Error in where: \");return ENV.engine.runKernel(function(e){return e.select(a,r,o)},{$condition:a,$a:r,$b:o},function(e){return{$condition:function(){return zerosLike(a).toFloat()},$a:function(){return e.mul(a.cast(e.dtype))},$b:function(){return e.mul(a.logicalNot().cast(e.dtype))}}})}function whereAsync_(e){return __awaiter(this,void 0,void 0,function(){var t,n,r;return __generator(this,function(o){switch(o.label){case 0:return[4,(t=convertToTensor(e,\"condition\",\"whereAsync\",\"bool\")).data()];case 1:return n=o.sent(),r=whereImpl(t.shape,n),e!==t&&t.dispose(),[2,r]}})})}var logicalAnd=op({logicalAnd_:logicalAnd_}),logicalNot=op({logicalNot_:logicalNot_}),logicalOr=op({logicalOr_:logicalOr_}),logicalXor=op({logicalXor_:logicalXor_}),where=op({where_:where_}),whereAsync=whereAsync_;function relu_(e){var t=convertToTensor(e,\"x\",\"relu\");if(\"bool\"===t.dtype)return t.toInt();return ENV.engine.runKernel(function(e){return e.relu(t)},{$x:t},function(e){var n=t.step();return{$x:function(){return e.mulStrict(n.toFloat())}}})}function elu_(e){var t=convertToTensor(e,\"x\",\"elu\");return ENV.engine.runKernel(function(e,n){return n(e.elu(t))},{$x:t},function(e,t){var n=t[0];return{$x:function(){return ENV.engine.runKernel(function(t){return t.eluDer(e,n)},{dy:e,y:n})}}})}function selu_(e){var t=convertToTensor(e,\"x\",\"selu\");return ENV.engine.runKernel(function(e){return e.selu(t)},{$x:t},function(e){return{$x:function(){var n=t.greater(scalar(0)),r=scalar(SELU_SCALEALPHA),o=scalar(SELU_SCALE),a=e.mul(o),i=e.mul(r).mul(t.toFloat().exp());return where(n,a,i)}}})}function leakyRelu_(e,t){void 0===t&&(t=.2);var n=convertToTensor(e,\"x\",\"leakyRelu\");return maximum(scalar(t).mul(n),n)}function prelu_(e,t){var n=convertToTensor(e,\"x\",\"prelu\"),r=convertToTensor(t,\"alpha\",\"prelu\"),o=scalar(0);return maximum(o,n).add(r.mul(minimum(o,n)))}var elu=op({elu_:elu_}),leakyRelu=op({leakyRelu_:leakyRelu_}),prelu=op({prelu_:prelu_}),relu=op({relu_:relu_}),selu=op({selu_:selu_});function transpose_(e,t){var n=convertToTensor(e,\"x\",\"transpose\");if(null==t&&(t=n.shape.map(function(e,t){return t}).reverse()),assert(n.rank===t.length,\"Error in transpose: rank of input \"+n.rank+\" must match length of perm \"+t+\".\"),t.forEach(function(e){assert(e>=0&&eo)throw new Error(\"'k' passed to topk() must be <= the last dimension (\"+o+\") but got \"+t);var a=ENV.engine.runKernel(function(e){return e.topk(r,t,n)},{$x:r});return{values:a[0],indices:a[1]}}var topk=op({topk_:topk_});function scatterND_(e,t,n){var r=convertToTensor(e,\"indices\",\"scatterND\",\"int32\"),o=convertToTensor(t,\"updates\",\"scatterND\");return validateInput(o,r,n),ENV.engine.runKernel(function(e){return e.scatterND(r,o,n)},{$indices:r,$updates:o})}var scatterND=op({scatterND_:scatterND_});function fft_(e){assert(\"complex64\"===e.dtype,\"The dtype for tf.spectral.fft() must be complex64 but got \"+e.dtype+\".\");var t=e.shape[e.shape.length-1],n=e.size/t,r=e.as2D(n,t);return ENV.engine.runKernel(function(e){return e.fft(r)},{input:e}).reshape(e.shape)}function ifft_(e){assert(\"complex64\"===e.dtype,\"The dtype for tf.spectral.ifft() must be complex64 but got \"+e.dtype+\".\");var t=e.shape[e.shape.length-1],n=e.size/t,r=e.as2D(n,t);return ENV.engine.runKernel(function(e){return e.ifft(r)},{input:e}).reshape(e.shape)}function rfft_(e){assert(\"float32\"===e.dtype,\"The dtype for rfft() must be real value but\\n got \"+e.dtype);var t=e.shape[e.shape.length-1],n=e.size/t,r=e.zerosLike(),o=complex(e,r).as2D(n,t),a=fft(o),i=Math.floor(t/2)+1,s=real(a),u=imag(a),l=s.split([i,t-i],s.shape.length-1),c=u.split([i,t-i],u.shape.length-1),p=e.shape.slice();return p[e.shape.length-1]=i,complex(l[0],c[0]).reshape(p)}function irfft_(e){var t=e.shape[e.shape.length-1],n=e.size/t;if(t<=2){var r=e.as2D(n,t),o=ifft(r);return real(o)}var a=[n,2*(t-1)],i=real(e).as2D(n,t),s=imag(e).as2D(n,t),u=i.slice([0,1],[n,t-2]).reverse(1),l=s.slice([0,1],[n,t-2]).reverse(1).mul(scalar(-1)),c=i.concat(u,1),p=s.concat(l,1);r=complex(c,p).as2D(a[0],a[1]),o=ifft(r);return real(o)}var fft=op({fft_:fft_}),ifft=op({ifft_:ifft_}),rfft=op({rfft_:rfft_}),irfft=op({irfft_:irfft_}),spectral_ops=Object.freeze({fft:fft,ifft:ifft,rfft:rfft,irfft:irfft});function validateInput$1(e,t,n,r){if(\"int32\"!==e.dtype)throw new Error(\"tf.sparseToDense() expects the indices to be int32 type, but the dtype was \"+e.dtype+\".\");if(e.rank>2)throw new Error(\"sparseIndices should be a scalar, vector, or matrix, but got shape \"+e.shape+\".\");var o=e.rank>0?e.shape[0]:1,a=e.rank>1?e.shape[1]:1;if(n.length!==a)throw new Error(\"outputShape has incorrect number of elements:, \"+n.length+\", should be: \"+a+\".\");var i=t.size;if(0!==t.rank&&(1!==t.rank||i!==o))throw new Error(\"sparseValues has incorrect shape \"+t.shape+\", should be [] or [\"+o+\"]\");if(t.dtype!==r.dtype)throw new Error(\"sparseValues.dtype must match defaultValues.dtype\")}function sparseToDense_(e,t,n,r){var o=convertToTensor(e,\"sparseIndices\",\"sparseToDense\",\"int32\"),a=convertToTensor(t,\"sparseValues\",\"sparseToDense\"),i=convertToTensor(r,\"defaultValue\",\"sparseToDense\",a.dtype);return validateInput$1(o,a,n,i),ENV.engine.runKernel(function(e){return e.sparseToDense(o,a,n,i)},{$sparseIndices:o,$sparseValues:a,$defaultValue:i})}var sparseToDense=op({sparseToDense_:sparseToDense_});function gatherND_(e,t){var n=convertToTensor(t,\"indices\",\"gatherND\",\"int32\"),r=convertToTensor(e,\"x\",\"gatherND\");return ENV.engine.runKernel(function(e){return e.gatherND(r,n)},{$x:r,$indices:n})}var Reduction,gatherND=op({gatherND_:gatherND_});function computeWeightedLoss_(e,t,n){void 0===n&&(n=Reduction.SUM_BY_NONZERO_WEIGHTS);var r=convertToTensor(e,\"losses\",\"computeWeightedLoss\"),o=null;null!=t&&(o=convertToTensor(t,\"weights\",\"computeWeightedLoss\"));var a=null==o?r:r.mul(o);if(n===Reduction.NONE)return a;if(n===Reduction.SUM)return a.sum();if(n===Reduction.MEAN){if(null==o)return a.mean();var i=sizeFromShape(r.shape)/sizeFromShape(o.shape),s=a.sum().div(o.sum());return i>1?s.div(scalar(i)):s}if(n===Reduction.SUM_BY_NONZERO_WEIGHTS){if(null==o)return a.sum().div(scalar(r.size));var u=o.mul(ones$1(r.shape)).notEqual(scalar(0)).sum().toFloat();return a.sum().div(u)}throw Error(\"Unknown reduction: \"+n)}function absoluteDifference_(e,t,n,r){void 0===r&&(r=Reduction.SUM_BY_NONZERO_WEIGHTS);var o=convertToTensor(e,\"labels\",\"absoluteDifference\"),a=convertToTensor(t,\"predictions\",\"absoluteDifference\"),i=null;null!=n&&(i=convertToTensor(n,\"weights\",\"absoluteDifference\")),assertShapesMatch(o.shape,a.shape,\"Error in absoluteDifference: \");var s=o.sub(a).abs();return computeWeightedLoss(s,i,r)}function meanSquaredError_(e,t,n,r){void 0===r&&(r=Reduction.SUM_BY_NONZERO_WEIGHTS);var o=convertToTensor(e,\"labels\",\"meanSquaredError\"),a=convertToTensor(t,\"predictions\",\"meanSquaredError\"),i=null;null!=n&&(i=convertToTensor(n,\"weights\",\"meanSquaredError\")),assertShapesMatch(o.shape,a.shape,\"Error in meanSquaredError: \");var s=o.squaredDifference(a);return computeWeightedLoss(s,i,r)}function cosineDistance_(e,t,n,r,o){void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"labels\",\"cosineDistance\"),i=convertToTensor(t,\"predictions\",\"cosineDistance\"),s=null;null!=r&&(s=convertToTensor(r,\"weights\",\"cosineDistance\")),assertShapesMatch(a.shape,i.shape,\"Error in cosineDistance: \");var u=scalar(1).sub(a.mul(i).sum(n,!0));return computeWeightedLoss(u,s,o)}function hingeLoss_(e,t,n,r){void 0===r&&(r=Reduction.SUM_BY_NONZERO_WEIGHTS);var o=convertToTensor(e,\"labels\",\"hingeLoss\"),a=convertToTensor(t,\"predictions\",\"hingeLoss\"),i=null;null!=n&&(i=convertToTensor(n,\"weights\",\"hingeLoss\")),assertShapesMatch(o.shape,a.shape,\"Error in hingeLoss: \");var s=scalar(1);o=scalar(2).mul(o).sub(s);var u=s.sub(o.mul(a)).relu();return computeWeightedLoss(u,i,r)}function logLoss_(e,t,n,r,o){void 0===r&&(r=1e-7),void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"labels\",\"logLoss\"),i=convertToTensor(t,\"predictions\",\"logLoss\"),s=null;null!=n&&(s=convertToTensor(n,\"weights\",\"logLoss\")),assertShapesMatch(a.shape,i.shape,\"Error in logLoss: \");var u=scalar(1),l=scalar(r),c=a.mul(i.add(l).log()).neg().sub(u.sub(a).mul(u.sub(i).add(l).log()));return computeWeightedLoss(c,s,o)}function sigmoidCrossEntropyWithLogits_(e,t){var n=convertToTensor(e,\"labels\",\"sigmoidCrossEntropyWithLogits\"),r=convertToTensor(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");assertShapesMatch(n.shape,r.shape,\"Error in sigmoidCrossEntropyWithLogits: \");var o=r.relu(),a=r.mul(n),i=r.abs().neg().exp().log1p();return o.sub(a).add(i)}function sigmoidCrossEntropy_(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=convertToTensor(t,\"logits\",\"sigmoidCrossEntropy\"),s=null;if(null!=n&&(s=convertToTensor(n,\"weights\",\"sigmoidCrossEntropy\")),assertShapesMatch(a.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),r>0){var u=scalar(r),l=scalar(1),c=scalar(.5);a=a.mul(l.sub(u)).add(c.mul(u))}var p=sigmoidCrossEntropyWithLogits_(a,i);return computeWeightedLoss(p,s,o)}function huberLoss_(e,t,n,r,o){void 0===r&&(r=1),void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"labels\",\"huberLoss\"),i=convertToTensor(t,\"predictions\",\"huberLoss\"),s=null;null!=n&&(s=convertToTensor(n,\"weights\",\"huberLoss\")),assertShapesMatch(a.shape,i.shape,\"Error in huberLoss: \");var u=scalar(r),l=i.sub(a).abs(),c=minimum(l,u),p=l.sub(c),d=scalar(.5).mul(c.square()).add(u.mul(p));return computeWeightedLoss(d,s,o)}function softmaxCrossEntropyWithLogits_(e,t,n){if(void 0===n&&(n=-1),-1===n&&(n=t.rank-1),n!==t.rank-1)throw Error(\"Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank \"+t.rank+\" and dim was \"+n);return customGrad(function(e,t){var r=t.logSumExp([n],!0),o=t.toFloat().sub(r);return{value:o.mul(e).neg().sum([n]),gradFunc:function(t){var r=expandShapeToKeepDim(t.shape,[n]);return[t.reshape(r).mul(e.toFloat().sub(o.exp())),t.reshape(r).mul(o.exp().sub(e.toFloat()))]}}})(e,t)}function softmaxCrossEntropy_(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"onehotLabels\",\"softmaxCrossEntropy\"),i=convertToTensor(t,\"logits\",\"softmaxCrossEntropy\"),s=null;if(null!=n&&(s=convertToTensor(n,\"weights\",\"softmaxCrossEntropy\")),assertShapesMatch(a.shape,i.shape,\"Error in softmaxCrossEntropy: \"),r>0){var u=scalar(r),l=scalar(1),c=scalar(a.shape[1]);a=a.mul(l.sub(u)).add(u.div(c))}var p=softmaxCrossEntropyWithLogits_(a,i);return computeWeightedLoss(p,s,o)}!function(e){e[e.NONE=0]=\"NONE\",e[e.MEAN=1]=\"MEAN\",e[e.SUM=2]=\"SUM\",e[e.SUM_BY_NONZERO_WEIGHTS=3]=\"SUM_BY_NONZERO_WEIGHTS\"}(Reduction||(Reduction={}));var absoluteDifference=op({absoluteDifference_:absoluteDifference_}),computeWeightedLoss=op({computeWeightedLoss_:computeWeightedLoss_}),cosineDistance=op({cosineDistance_:cosineDistance_}),hingeLoss=op({hingeLoss_:hingeLoss_}),huberLoss=op({huberLoss_:huberLoss_}),logLoss=op({logLoss_:logLoss_}),meanSquaredError=op({meanSquaredError_:meanSquaredError_}),sigmoidCrossEntropy=op({sigmoidCrossEntropy_:sigmoidCrossEntropy_}),softmaxCrossEntropy=op({softmaxCrossEntropy_:softmaxCrossEntropy_}),loss_ops=Object.freeze({get Reduction(){return Reduction},absoluteDifference:absoluteDifference,computeWeightedLoss:computeWeightedLoss,cosineDistance:cosineDistance,hingeLoss:hingeLoss,huberLoss:huberLoss,logLoss:logLoss,meanSquaredError:meanSquaredError,sigmoidCrossEntropy:sigmoidCrossEntropy,softmaxCrossEntropy:softmaxCrossEntropy});function gramSchmidt_(e){var t;if(Array.isArray(e)){t=!1,assert(null!=e&&e.length>0,\"Gram-Schmidt process: input must not be null, undefined, or empty\");for(var n=e[0].shape[0],r=1;r0)for(var n=0;n= 2, but got rank \"+e.rank);if(2===e.rank)return qr2d(e,t);var n=e.shape.slice(0,e.shape.length-2).reduce(function(e,t){return e*t}),r=[],o=[];return unstack(e.reshape([n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0).forEach(function(e){var n=qr2d(e,t),a=n[0],i=n[1];r.push(a),o.push(i)}),[stack(r,0).reshape(e.shape),stack(o,0).reshape(e.shape)]}function qr2d(e,t){return void 0===t&&(t=!1),ENV.engine.tidy(function(){if(2!==e.shape.length)throw new Error(\"qr2d() requires a 2D Tensor, but got a \"+e.shape.length+\"D Tensor.\");for(var n=e.shape[0],r=e.shape[1],o=eye(n),a=e.clone(),i=tensor2d([[1]],[1,1]),s=i.clone(),u=n>=r?r:n,l=function(e){var t,u=a,l=s,c=o;t=ENV.engine.tidy(function(){var t=a.slice([e,e],[n-e,1]),u=t.norm(),l=a.slice([e,e],[1,1]),c=l.sign().neg(),p=l.sub(c.mul(u)),d=t.div(p);s=1===d.shape[0]?i.clone():i.concat(d.slice([1,0],[d.shape[0]-1,d.shape[1]]),0);var h=c.matMul(p).div(u).neg(),f=a.slice([e,0],[n-e,r]),m=h.mul(s);a=0===e?f.sub(m.matMul(s.transpose().matMul(f))):a.slice([0,0],[e,r]).concat(f.sub(m.matMul(s.transpose().matMul(f))),0);var g=o.slice([0,e],[n,o.shape[1]-e]);return o=0===e?g.sub(g.matMul(s).matMul(m.transpose())):o.slice([0,0],[n,e]).concat(g.sub(g.matMul(s).matMul(m.transpose())),1),[s,a,o]}),s=t[0],a=t[1],o=t[2],dispose([u,l,c])},c=0;cr&&(o=o.slice([0,0],[n,r]),a=a.slice([0,0],[r,r])),[o,a]})}var gramSchmidt=op({gramSchmidt_:gramSchmidt_}),qr=op({qr_:qr_}),linalg_ops=Object.freeze({gramSchmidt:gramSchmidt,qr:qr});function resizeBilinear_(e,t,n){void 0===n&&(n=!1);var r=convertToTensor(e,\"images\",\"resizeBilinear\");assert(3===r.rank||4===r.rank,\"Error in resizeBilinear: x must be rank 3 or 4, but got rank \"+r.rank+\".\"),assert(2===t.length,\"Error in resizeBilinear: new shape must 2D, but got shape \"+t+\".\");var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=t[0],s=t[1],u=ENV.engine.runKernel(function(e,t){return e.resizeBilinear(o,i,s,n)},{batchImages:o},function(e,t){return{batchImages:function(){return ENV.engine.runKernel(function(t){return t.resizeBilinearBackprop(e,o,n)},{})}}});return a?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}function resizeNearestNeighbor_(e,t,n){void 0===n&&(n=!1);var r=convertToTensor(e,\"images\",\"resizeNearestNeighbor\");assert(3===r.rank||4===r.rank,\"Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank \"+r.rank+\".\"),assert(2===t.length,\"Error in resizeNearestNeighbor: new shape must 2D, but got shape \"+t+\".\"),assert(\"float32\"===r.dtype||\"int32\"===r.dtype,\"`images` must have `int32` or `float32` as dtype\");var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=t[0],s=t[1],u=ENV.engine.runKernel(function(e,t){return e.resizeNearestNeighbor(o,i,s,n)},{batchImages:o},function(e,t){return{batchImages:function(){return ENV.engine.runKernel(function(t){return t.resizeNearestNeighborBackprop(e,o,n)},{})}}});return a?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}function nonMaxSuppression_(e,t,n,r,o){void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY);var a=convertToTensor(e,\"boxes\",\"nonMaxSuppression\"),i=convertToTensor(t,\"scores\",\"nonMaxSuppression\"),s=nonMaxSuppSanityCheck(a,i,n,r,o);return n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold,ENV.engine.runKernel(function(e){return e.nonMaxSuppression(a,i,n,r,o)},{$boxes:a})}function nonMaxSuppressionAsync_(e,t,n,r,o){return void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY),__awaiter(this,void 0,void 0,function(){var a,i,s,u,l,c;return __generator(this,function(p){switch(p.label){case 0:return a=convertToTensor(e,\"boxes\",\"nonMaxSuppressionAsync\"),i=convertToTensor(t,\"scores\",\"nonMaxSuppressionAsync\"),s=nonMaxSuppSanityCheck(a,i,n,r,o),n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold,[4,a.data()];case 1:return u=p.sent(),[4,i.data()];case 2:return l=p.sent(),c=nonMaxSuppressionImpl(u,l,n,r,o),a!==e&&a.dispose(),i!==t&&i.dispose(),[2,c]}})})}function nonMaxSuppSanityCheck(e,t,n,r,o){null==r&&(r=.5),null==o&&(o=Number.NEGATIVE_INFINITY);var a=e.shape[0];return n=Math.min(n,a),assert(0<=r&&r<=1,\"iouThreshold must be in [0, 1], but was '\"+r+\"'\"),assert(2===e.rank,\"boxes must be a 2D tensor, but was of rank '\"+e.rank+\"'\"),assert(4===e.shape[1],\"boxes must have 4 columns, but 2nd dimension was \"+e.shape[1]),assert(1===t.rank,\"scores must be a 1D tensor\"),assert(t.shape[0]===a,\"scores has incompatible shape with boxes. Expected \"+a+\", but was \"+t.shape[0]),{maxOutputSize:n,iouThreshold:r,scoreThreshold:o}}function cropAndResize_(e,t,n,r,o,a){var i=convertToTensor(e,\"image\",\"cropAndResize\",\"float32\"),s=convertToTensor(t,\"boxes\",\"cropAndResize\",\"float32\"),u=convertToTensor(n,\"boxInd\",\"cropAndResize\",\"int32\");o=o||\"bilinear\",a=a||0;var l=s.shape[0];assert(4===i.rank,\"Error in cropAndResize: image must be rank 4,but got rank \"+i.rank+\".\"),assert(2===s.rank&&4===s.shape[1],\"Error in cropAndResize: boxes must be have size [\"+l+\",4] but had shape \"+s.shape+\".\"),assert(1===u.rank&&u.shape[0]===l,\"Error in cropAndResize: boxInd must be have size [\"+l+\"] but had shape \"+s.shape+\".\"),assert(2===r.length,\"Error in cropAndResize: cropSize must be of length 2, but got length \"+r.length+\".\"),assert(r[0]>=1&&r[1]>=1,\"cropSize must be atleast [1,1], but was \"+r),assert(\"bilinear\"===o||\"nearest\"===o,\"method must be bilinear or nearest, but was \"+o);return ENV.engine.runKernel(function(e,t){return e.cropAndResize(i,s,u,r,o,a)},{$image:i,$boxes:s})}var resizeBilinear=op({resizeBilinear_:resizeBilinear_}),resizeNearestNeighbor=op({resizeNearestNeighbor_:resizeNearestNeighbor_}),nonMaxSuppression=op({nonMaxSuppression_:nonMaxSuppression_}),nonMaxSuppressionAsync=nonMaxSuppressionAsync_,cropAndResize=cropAndResize_,image_ops=Object.freeze({resizeBilinear:resizeBilinear,resizeNearestNeighbor:resizeNearestNeighbor,nonMaxSuppression:nonMaxSuppression,nonMaxSuppressionAsync:nonMaxSuppressionAsync,cropAndResize:cropAndResize}),ops=Object.freeze({image:image_ops,linalg:linalg_ops,losses:loss_ops,spectral:spectral_ops,op:op,batchNormalization2d:batchNormalization2d,batchNormalization3d:batchNormalization3d,batchNormalization4d:batchNormalization4d,batchNormalization:batchNormalization,complex:complex,real:real,imag:imag,concat:concat,concat1d:concat1d,concat2d:concat2d,concat3d:concat3d,concat4d:concat4d,split:split$1,conv1d:conv1d,conv2d:conv2d,conv3d:conv3d,conv2dDerFilter:conv2dDerFilter,depthwiseConv2d:depthwiseConv2d,separableConv2d:separableConv2d,conv2dTranspose:conv2dTranspose,matMul:matMul,dot:dot,outerProduct:outerProduct,reverse:reverse,reverse1d:reverse1d,reverse2d:reverse2d,reverse3d:reverse3d,reverse4d:reverse4d,maxPool:maxPool,avgPool:avgPool,pool:pool,slice:slice,slice1d:slice1d,slice2d:slice2d,slice3d:slice3d,slice4d:slice4d,abs:abs,acos:acos,acosh:acosh,asin:asin,asinh:asinh,atan:atan,atanh:atanh,ceil:ceil,clipByValue:clipByValue,cos:cos,cosh:cosh,erf:erf,exp:exp,expm1:expm1,floor:floor,log:log$1,log1p:log1p,logSigmoid:logSigmoid,neg:neg,reciprocal:reciprocal,round:round,rsqrt:rsqrt,sigmoid:sigmoid,sign:sign,sin:sin,sinh:sinh,softplus:softplus,sqrt:sqrt,square:square,step:step,tan:tan,tanh:tanh$1,all:all,any:any,argMax:argMax,argMin:argMin,logSumExp:logSumExp,max:max,mean:mean,min:min,moments:moments,sum:sum$1,prod:prod,equal:equal,equalStrict:equalStrict,greater:greater,greaterEqual:greaterEqual,greaterEqualStrict:greaterEqualStrict,greaterStrict:greaterStrict,less:less,lessEqual:lessEqual,lessEqualStrict:lessEqualStrict,lessStrict:lessStrict,notEqual:notEqual,notEqualStrict:notEqualStrict,add:add,addN:addN,addStrict:addStrict,atan2:atan2,div:div,divStrict:divStrict,floorDiv:floorDiv,maximum:maximum,maximumStrict:maximumStrict,minimum:minimum,minimumStrict:minimumStrict,mod:mod,modStrict:modStrict,mul:mul,mulStrict:mulStrict,pow:pow,powStrict:powStrict,squaredDifference:squaredDifference,squaredDifferenceStrict:squaredDifferenceStrict,sub:sub,subStrict:subStrict,elu:elu,leakyRelu:leakyRelu,prelu:prelu,relu:relu,selu:selu,logicalAnd:logicalAnd,logicalNot:logicalNot,logicalOr:logicalOr,logicalXor:logicalXor,where:where,whereAsync:whereAsync,buffer:buffer,toPixels:toPixels,print:print,batchToSpaceND:batchToSpaceND,cast:cast,clone:clone,cumsum:cumsum,depthToSpace:depthToSpace,expandDims:expandDims,eye:eye,fromPixels:fromPixels,multinomial:multinomial,oneHot:oneHot,pad:pad,pad1d:pad1d,pad2d:pad2d,pad3d:pad3d,pad4d:pad4d,rand:rand,randomNormal:randomNormal,randomUniform:randomUniform,reshape:reshape,spaceToBatchND:spaceToBatchND,squeeze:squeeze,stack:stack,tile:tile,truncatedNormal:truncatedNormal,unstack:unstack,setdiff1dAsync:setdiff1dAsync,fill:fill,linspace:linspace,ones:ones$1,range:range,scalar:scalar,tensor:tensor,tensor1d:tensor1d,tensor2d:tensor2d,tensor3d:tensor3d,tensor4d:tensor4d,tensor5d:tensor5d,tensor6d:tensor6d,zeros:zeros,onesLike:onesLike,zerosLike:zerosLike,transpose:transpose,softmax:softmax,logSoftmax:logSoftmax,localResponseNormalization:localResponseNormalization,norm:norm,gather:gather,unsortedSegmentSum:unsortedSegmentSum,basicLSTMCell:basicLSTMCell,multiRNNCell:multiRNNCell,movingAverage:movingAverage,stridedSlice:stridedSlice,topk:topk,scatterND:scatterND,fft:fft,ifft:ifft,rfft:rfft,irfft:irfft,sparseToDense:sparseToDense,gatherND:gatherND}),MathBackendCPU=function(){function e(){this.blockSize=48,this.firstUse=!0,ENV.get(\"IS_BROWSER\")&&(this.fromPixels2DContext=document.createElement(\"canvas\").getContext(\"2d\"))}return e.prototype.setDataMover=function(e){this.data=new DataStorage(e)},e.prototype.register=function(e,t,n){if(this.firstUse&&(this.firstUse=!1,ENV.get(\"IS_NODE\")&&warn(\"\\n============================\\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\\n============================\\n\")),this.data.has(e))throw new Error(\"Data buffer is already registered\");this.data.set(e,{dtype:n})},e.prototype.write=function(e,t){if(null==t)throw new Error(\"MathBackendCPU.write(): values can not be null\");this.data.get(e).values=t},e.prototype.fromPixels=function(e,t){if(null==e)throw new Error(\"pixels passed to tf.fromPixels() can not be null\");var n,r;if(ENV.get(\"IS_NODE\")&&null==e.getContext)throw new Error(\"When running in node, pixels must be an HTMLCanvasElement like the one returned by the `canvas` npm package\");if(null!=e.getContext)n=e.getContext(\"2d\").getImageData(0,0,e.width,e.height).data;else if(e instanceof ImageData)n=e.data;else{if(!(e instanceof HTMLImageElement||e instanceof HTMLVideoElement))throw new Error(\"pixels passed to tf.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement or ImageData, but was \"+e.constructor.name);if(null==this.fromPixels2DContext)throw new Error(\"Can't read pixels from HTMLImageElement outside the browser.\");this.fromPixels2DContext.canvas.width=e.width,this.fromPixels2DContext.canvas.height=e.height,this.fromPixels2DContext.drawImage(e,0,0,e.width,e.height),n=this.fromPixels2DContext.getImageData(0,0,e.width,e.height).data}if(4===t)r=new Int32Array(n);else{var o=e.width*e.height;r=new Int32Array(o*t);for(var a=0;ad&&(d=m,h=f)}u[c]=h}return i},e.prototype.cumsum=function(e,t,n,r){if(this.assertNotComplex(e,\"cumsum\"),t!==e.rank-1)throw new Error(\"backend.cumsum in CPU expects an inner-most axis=\"+(e.rank-1)+\" but got axis=\"+t);for(var o=upcastType(e.dtype,\"int32\"),a=zeros(e.shape,o),i=a.dataSync(),s=e.dataSync(),u=e.shape[e.rank-1],l=r?function(e,t){return e+u-t-1}:function(e,t){return e+t},c=0;ct?1:0})},e.prototype.greaterEqual=function(e,t){return this.assertNotComplex([e,t],\"greaterEqual\"),this.broadcastedBinaryOp(e,t,\"bool\",function(e,t){return e>=t?1:0})},e.prototype.logicalNot=function(e){this.assertNotComplex(e,\"logicalNot\");for(var t=e.dataSync(),n=new Uint8Array(t.length),r=0;r1||1===t.rank?1:t.shape[1],c=0;c=0&&t>=0?n:(n+t)%t})},e.prototype.max=function(e,t){this.assertNotComplex(e,\"max\"),assertAxesAreInnerMostDims(\"max\",t,e.rank);for(var n=computeOutAndReduceShapes(e.shape,t),r=n[0],o=n[1],a=zeros(r,e.dtype),i=sizeFromShape(o),s=a.dataSync(),u=e.dataSync(),l=0;lp&&(p=h)}s[l]=p}return a},e.prototype.maximum=function(e,t){return this.assertNotComplex([e,t],\"maximum\"),this.broadcastedBinaryOp(e,t,e.dtype,function(e,t){return Math.max(e,t)})},e.prototype.all=function(e,t){this.assertNotComplex(e,\"all\"),assertAxesAreInnerMostDims(\"all\",t,e.rank);for(var n=computeOutAndReduceShapes(e.shape,t),r=n[0],o=n[1],a=zeros(r,e.dtype),i=sizeFromShape(o),s=a.dataSync(),u=e.dataSync(),l=0;l0?n[r]=1:n[r]=0;return Tensor.make(e.shape,{values:n})},e.prototype.round=function(e){this.assertNotComplex(e,\"round\");for(var t=e.dataSync(),n=new Float32Array(t.length),r=0;r.5?n[r]=Math.ceil(t[r]):n[r]=o%2==0?o:o+1}return Tensor.make(e.shape,{values:n})},e.prototype.exp=function(e){this.assertNotComplex(e,\"exp\");for(var t=e.dataSync(),n=new Float32Array(t.length),r=0;r=0?o:Math.exp(o)-1}return Tensor.make(e.shape,{values:t})},e.prototype.eluDer=function(e,t){this.assertNotComplex([e,t],\"eluDer\");for(var n=new Float32Array(t.size),r=t.dataSync(),o=e.dataSync(),a=0;a=1?o[a]:o[a]*(i+1)}return Tensor.make(t.shape,{values:n})},e.prototype.selu=function(e){this.assertNotComplex(e,\"selu\");for(var t=SELU_SCALEALPHA,n=SELU_SCALE,r=new Float32Array(e.size),o=e.dataSync(),a=0;a=0?n*i:t*(Math.exp(i)-1)}return Tensor.make(e.shape,{values:r})},e.prototype.clip=function(e,t,n){this.assertNotComplex(e,\"clip\");for(var r=new Float32Array(e.size),o=e.dataSync(),a=0;an?n:i-t,i=r[o]0?1:t}return Tensor.make(e.shape,{values:n})},e.prototype.conv2d=function(e,t,n){this.assertNotComplex([e,t],\"conv2d\");for(var r=n.filterHeight,o=n.filterWidth,a=n.dilationHeight,i=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,l=buffer(n.outShape,e.dtype),c=e.dataSync(),p=t.dataSync(),d=l.values,h=0;h=n.inHeight))for(var w=x*t.strides[0],E=f+T*e.strides[1],S=0;S=n.inWidth))for(var N=w+A*t.strides[1],R=E+_*n.inChannels,k=N,I=0;I=n.inDepth))for(var b=E*t.strides[0],C=v+S*e.strides[1],A=0;A=n.inHeight))for(var I=b+R*t.strides[1],D=C+k*e.strides[2],M=0;M=n.inWidth))for(var B=I+F*t.strides[2],U=D+L*n.inChannels,V=B,z=0;z=n.inHeight))for(var E=T*t.strides[0],S=m+w*e.strides[1],b=0;b=n.inWidth))for(var R=E+_*t.strides[1],k=S+N*n.inChannels,I=C,D=R,M=0;MI?I=L:\"avg\"===n&&(D+=L,M++)}if(isNaN(I))break}f[A+_*v+w]=\"avg\"===n?D/M:I}return h.toTensor()},e.prototype.maxPool=function(e,t){return this.pool(e,t,\"max\")},e.prototype.maxPoolPositions=function(e,t){for(var n=buffer(t.outShape,\"int32\"),r=t.strideHeight,o=t.strideWidth,a=t.dilationHeight,i=t.dilationWidth,s=t.effectiveFilterHeight,u=t.effectiveFilterWidth,l=t.padInfo.top,c=t.padInfo.left,p=0;pw&&(w=_,E=b*u+A)}n.set(E,p,h,v,d)}}return n.toTensor()},e.prototype.maxPoolBackprop=function(e,t,n,r){this.assertNotComplex([t,n],\"maxPoolBackprop\");for(var o=this.maxPoolPositions(t,r),a=r.strideHeight,i=r.strideWidth,s=r.dilationHeight,u=r.dilationWidth,l=r.effectiveFilterHeight,c=r.effectiveFilterWidth,p=c-1-r.padInfo.left,d=l-1-r.padInfo.top,h=buffer(t.shape,\"float32\"),f=0;f=r.outHeight||Math.floor(E)!==E))for(var S=0;S=r.outWidth||Math.floor(b)!==b)){var C=l*c-1-o.get(f,E,b,m)===w*c+S?1:0;if(0!==C)T+=e.get(f,E,b,m)*C}}}h.set(T,f,g,v,m)}return h.toTensor()},e.prototype.avgPoolBackprop=function(e,t,n){this.assertNotComplex([e,t],\"avgPoolBackprop\");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,s=n.dilationHeight,u=n.dilationWidth,l=n.effectiveFilterHeight,c=n.effectiveFilterWidth,p=c-1-n.padInfo.left,d=l-1-n.padInfo.top,h=buffer(t.shape,\"float32\"),f=1/(a*i),m=0;m=n.outHeight||Math.floor(S)!==S))for(var b=0;b=n.outWidth||Math.floor(C)!==C))w+=e.get(m,S,C,g)}}h.set(w*f,m,v,y,g)}return h.toTensor()},e.prototype.cast=function(e,t){return castTensor(e,t,this)},e.prototype.reshape=function(e,t){return reshapeTensor(e,t)},e.prototype.avgPool=function(e,t){return this.assertNotComplex(e,\"avgPool\"),this.pool(e,t,\"avg\").toFloat()},e.prototype.resizeBilinear=function(e,t,n,r){this.assertNotComplex(e,\"resizeBilinear\");for(var o=e.shape,a=o[0],i=o[1],s=o[2],u=o[3],l=e.dataSync(),c=new Float32Array(sizeFromShape([a,t,n,u])),p=[r&&t>1?i-1:i,r&&n>1?s-1:s],d=[r&&t>1?t-1:t,r&&n>1?n-1:n],h=0,f=p[0]/d[0],m=p[1]/d[1],g=0;g1?a-1:a,n&&c>1?i-1:i],h=[n&&l>1?l-1:l,n&&c>1?c-1:c],f=d[0]/h[0],m=d[1]/h[1],g=e.dataSync(),v=0,y=0;y1?i-1:i,r&&n>1?s-1:s],d=[r&&t>1?t-1:t,r&&n>1?n-1:n],h=p[0]/d[0],f=p[1]/d[1],m=0,g=0;g1?a-1:a,n&&c>1?i-1:i],f=[n&&l>1?l-1:l,n&&c>1?c-1:c],m=h[0]/f[0],g=h[1]/f[1],v=1/m,y=1/g,x=2*Math.ceil(v)+2,T=2*Math.ceil(y)+2,w=0;w=l)){var O=E+P*e.strides[1],F=P*m;if(S===Math.min(a-1,n?Math.round(F):Math.floor(F)))for(var L=0;L=c)){var U=O+B*e.strides[2],V=B*g;_===Math.min(i-1,n?Math.round(V):Math.floor(V))&&(D+=d[U+I])}}}}p[N+I]=D}return tensor4d(p,t.shape,t.dtype)},e.prototype.batchNormalization=function(e,t,n,r,o,a){this.assertNotComplex([e,t,n,o,a],\"batchNormalization\");for(var i=e.dataSync(),s=t.dataSync(),u=n.dataSync(),l=o?o.dataSync():new Float32Array([1]),c=a?a.dataSync():new Float32Array([0]),p=new Float32Array(i.length),d=c.length,h=l.length,f=u.length,m=s.length,g=0,v=0,y=0,x=0,T=0;T=d&&(g=0),v>=m&&(v=0),y>=h&&(y=0),x>=f&&(x=0);return tensor4d(p,e.shape)},e.prototype.localResponseNormalization4D=function(e,t,n,r,o){this.assertNotComplex(e,\"localResponseNormalization4D\");var a=e.shape[3],i=a-1,s=e.dataSync(),u=sizeFromShape(e.shape),l=new Float32Array(u);function c(e){for(var n=e%a,r=e-n+Math.max(0,n-t),o=e-n+Math.min(n+t,i),u=0;r<=o;r++){var l=s[r];u+=l*l}return u}for(var p=0;p=0&&e.get(a)1,\"blockSize should be > 1 for depthToSpace, but was: \"+t);for(var r=e.shape[0],o=e.shape[1],a=e.shape[2],i=e.shape[3],s=o*t,u=a*t,l=i/(t*t),c=e.dataSync(),p=new Float32Array(r*s*u*l),d=0,h=0;h=s))for(var _=d>1?(b-E)*(u-1)/(d-1):0,N=h>1?(C-S)*(l-1)/(h-1):0,R=0;R1?E*(u-1)+R*_:.5*(E+b)*(u-1);if(k<0||k>u-1)for(var I=0;I1?S*(l-1)+I*N:.5*(S+C)*(l-1))<0||q>l-1)for(D=0;D1?S*(l-1)+I*N:.5*(S+C)*(l-1))<0||q>l-1)for(D=0;D=e.size/s)throw new Error(\"Invalid indices: \"+h+\" does not index into \"+e.shape);for(var v=0;v=r/o)throw new Error(\"Invalid indices: \"+m+\" does not index into \"+n);for(var x=0;x0,\"scheme must not be an empty string.\");var r=e.getInstance();assert(null==r.managers[t],\"A model store manager is already registered for scheme '\"+t+\"'.\"),r.managers[t]=n},e.getManager=function(e){var t=this.getInstance().managers[e];if(null==t)throw new Error(\"Cannot find model manager for scheme '\"+e+\"'\");return t},e.getSchemes=function(){return Object.keys(this.getInstance().managers)},e}();function parseURL(e){if(-1===e.indexOf(URL_SCHEME_SUFFIX))throw new Error(\"The url string provided does not contain a scheme. Supported schemes are: \"+ModelStoreManagerRegistry.getSchemes().join(\",\"));return{scheme:e.split(URL_SCHEME_SUFFIX)[0],path:e.split(URL_SCHEME_SUFFIX)[1]}}function cloneModelInternal(e,t,n){return void 0===n&&(n=!1),__awaiter(this,void 0,void 0,function(){var r,o,a,i,s,u,l,c,p;return __generator(this,function(d){switch(d.label){case 0:return assert(e!==t,\"Old path and new path are the same: '\"+e+\"'\"),assert((r=IORouterRegistry.getLoadHandlers(e)).length>0,\"Copying failed because no load handler is found for source URL \"+e+\".\"),assert(r.length<2,\"Copying failed because more than one (\"+r.length+\") load handlers for source URL \"+e+\".\"),o=r[0],assert((a=IORouterRegistry.getSaveHandlers(t)).length>0,\"Copying failed because no save handler is found for destination URL \"+t+\".\"),assert(a.length<2,\"Copying failed because more than one (\"+r.length+\") save handlers for destination URL \"+t+\".\"),i=a[0],s=parseURL(e).scheme,u=parseURL(e).path,l=s===parseURL(e).scheme,[4,o.load()];case 1:return c=d.sent(),n&&l?[4,ModelStoreManagerRegistry.getManager(s).removeModel(u)]:[3,3];case 2:d.sent(),d.label=3;case 3:return[4,i.save(c)];case 4:return p=d.sent(),!n||l?[3,6]:[4,ModelStoreManagerRegistry.getManager(s).removeModel(u)];case 5:d.sent(),d.label=6;case 6:return[2,p.modelArtifactsInfo]}})})}function listModels(){return __awaiter(this,void 0,void 0,function(){var e,t,n,r,o,a,i;return __generator(this,function(s){switch(s.label){case 0:e=ModelStoreManagerRegistry.getSchemes(),t={},n=0,r=e,s.label=1;case 1:return n0,\"URL path for browserHTTPRequest must not be null, undefined or empty.\"),Array.isArray(e)&&assert(2===e.length,\"URL paths for browserHTTPRequest must have a length of 2, (actual length is \"+e.length+\").\"),this.path=e,null!=t&&null!=t.body)throw new Error(\"requestInit is expected to have no pre-existing body, but has one.\");this.requestInit=t||{}}return e.prototype.save=function(e){return __awaiter(this,void 0,void 0,function(){var t,n,r,o;return __generator(this,function(a){switch(a.label){case 0:if(e.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.\");return(t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit)).body=new FormData,n=[{paths:[\"./model.weights.bin\"],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,weightsManifest:n},t.body.append(\"model.json\",new Blob([JSON.stringify(r)],{type:\"application/json\"}),\"model.json\"),null!=e.weightData&&t.body.append(\"model.weights.bin\",new Blob([e.weightData],{type:\"application/octet-stream\"}),\"model.weights.bin\"),[4,this.getFetchFunc()(this.path,t)];case 1:if((o=a.sent()).ok)return[2,{modelArtifactsInfo:getModelArtifactsInfoForJSON(e),responses:[o]}];throw new Error(\"BrowserHTTPRequest.save() failed due to HTTP response status \"+o.status+\".\")}})})},e.prototype.load=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){return[2,Array.isArray(this.path)?this.loadBinaryModel():this.loadJSONModel()]})})},e.prototype.loadBinaryTopology=function(){return __awaiter(this,void 0,void 0,function(){var e,t;return __generator(this,function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),[4,this.getFetchFunc()(this.path[0],this.requestInit)];case 1:if(!(e=n.sent()).ok)throw new Error(\"BrowserHTTPRequest.load() failed due to HTTP response: \"+e.statusText);return[4,e.arrayBuffer()];case 2:return[2,n.sent()];case 3:throw t=n.sent(),new Error(this.path[0]+\" not found. \"+t);case 4:return[2]}})})},e.prototype.loadBinaryModel=function(){return __awaiter(this,void 0,void 0,function(){var e,t,n,r,o,a,i,s;return __generator(this,function(u){switch(u.label){case 0:return e=this.loadBinaryTopology(),[4,this.getFetchFunc()(this.path[1],this.requestInit)];case 1:if(!(t=u.sent()).ok)throw new Error(\"BrowserHTTPRequest.load() failed due to HTTP response: \"+t.statusText);return[4,Promise.all([e,t])];case 2:return n=u.sent(),r=n[0],[4,n[1].json()];case 3:return null==(o=u.sent())?[3,5]:[4,this.loadWeights(o)];case 4:s=u.sent(),a=s[0],i=s[1],u.label=5;case 5:return[2,{modelTopology:r,weightSpecs:a,weightData:i}]}})})},e.prototype.loadJSONModel=function(){return __awaiter(this,void 0,void 0,function(){var e,t,n,r,o,a,i,s;return __generator(this,function(u){switch(u.label){case 0:return[4,this.getFetchFunc()(this.path,this.requestInit)];case 1:if(!(e=u.sent()).ok)throw new Error(\"BrowserHTTPRequest.load() failed due to HTTP response: \"+e.statusText);return[4,e.json()];case 2:if(t=u.sent(),n=t.modelTopology,r=t.weightsManifest,null==n&&null==r)throw new Error(\"The JSON from HTTP path \"+this.path+\" contains neither model topology or manifest for weights.\");return null==r?[3,4]:(i=t.weightsManifest,[4,this.loadWeights(i)]);case 3:s=u.sent(),o=s[0],a=s[1],u.label=4;case 4:return[2,{modelTopology:n,weightSpecs:o,weightData:a}]}})})},e.prototype.loadWeights=function(e){return __awaiter(this,void 0,void 0,function(){var t,n,r,o,a,i,s,u,l,c,p,d;return __generator(this,function(h){switch(h.label){case 0:for(t=Array.isArray(this.path)?this.path[1]:this.path,n=parseUrl(t),r=n[0],o=n[1],a=this.weightPathPrefix||r,i=[],s=0,u=e;st?e.substring(n):\"\"]}function isHTTPScheme(e){return null!=e.match(BrowserHTTPRequest.URL_SCHEME_REGEX)}var httpRequestRouter=function(e){if(\"undefined\"==typeof fetch)return null;return(Array.isArray(e)?e.every(function(e){return isHTTPScheme(e)}):isHTTPScheme(e))?browserHTTPRequest(e):null};function browserHTTPRequest(e,t,n,r){return new BrowserHTTPRequest(e,t,n,r)}IORouterRegistry.registerSaveRouter(httpRequestRouter),IORouterRegistry.registerLoadRouter(httpRequestRouter);var PassthroughLoader=function(){function e(e,t,n){this.modelTopology=e,this.weightSpecs=t,this.weightData=n}return e.prototype.load=function(){return __awaiter(this,void 0,void 0,function(){var e;return __generator(this,function(t){return e={},null!=this.modelTopology&&(e=__assign({modelTopology:this.modelTopology},e)),null!=this.weightSpecs&&this.weightSpecs.length>0&&(e=__assign({weightSpecs:this.weightSpecs},e)),null!=this.weightData&&this.weightData.byteLength>0&&(e=__assign({weightData:this.weightData},e)),[2,e]})})},e}(),PassthroughSaver=function(){function e(e){this.saveHandler=e}return e.prototype.save=function(e){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(t){return[2,this.saveHandler(e)]})})},e}();function fromMemory(e,t,n){return new PassthroughLoader(e,t,n)}function withSaveHandler(e){return new PassthroughSaver(e)}var registerSaveRouter=IORouterRegistry.registerSaveRouter,registerLoadRouter=IORouterRegistry.registerLoadRouter,getSaveHandlers=IORouterRegistry.getSaveHandlers,getLoadHandlers=IORouterRegistry.getLoadHandlers,io=Object.freeze({browserFiles:browserFiles,browserHTTPRequest:browserHTTPRequest,concatenateArrayBuffers:concatenateArrayBuffers,decodeWeights:decodeWeights,encodeWeights:encodeWeights,fromMemory:fromMemory,getLoadHandlers:getLoadHandlers,getModelArtifactsInfoForJSON:getModelArtifactsInfoForJSON,getSaveHandlers:getSaveHandlers,isHTTPScheme:isHTTPScheme,loadWeights:loadWeights,registerLoadRouter:registerLoadRouter,registerSaveRouter:registerSaveRouter,weightsLoaderFactory:weightsLoaderFactory,withSaveHandler:withSaveHandler,copyModel:copyModel,listModels:listModels,moveModel:moveModel,removeModel:removeModel});function confusionMatrix_(e,t,n){var r=convertToTensor(e,\"labels\",\"confusionMatrix\"),o=convertToTensor(t,\"predictions\",\"confusionMatrix\");assert(null==n||n>0&&Number.isInteger(n),\"If provided, numClasses must be a positive integer, but got \"+n),assert(1===r.rank,\"Expected the rank of labels to be 1, but got \"+r.rank),assert(1===o.rank,\"Expected the rank of predictions to be 1, but got \"+o.rank),assert(r.shape[0]===o.shape[0],\"Mismatch in the number of examples: \"+r.shape[0]+\" vs. \"+o.shape[0]+\". Labels and predictions should have the same number of elements.\"),assert(n>0&&Number.isInteger(n),\"numClasses is required to be a positive integer, but got \"+n);var a=oneHot(r.asType(\"int32\"),n),i=oneHot(o.asType(\"int32\"),n);return a.transpose().matMul(i).asType(\"int32\")}var confusionMatrix=op({confusionMatrix_:confusionMatrix_}),math=Object.freeze({confusionMatrix:confusionMatrix}),Serializable=function(){function e(){}return e.prototype.getClassName=function(){return this.constructor.className},e.fromConfig=function(e,t){return new e(t)},e}(),SerializationMap=function(){function e(){this.classNameMap={}}return e.getMap=function(){return null==e.instance&&(e.instance=new e),e.instance},e.register=function(t){e.getMap().classNameMap[t.className]=[t,t.fromConfig]},e}();function registerClass(e){assert(null!=e.className,\"Class being registered does not have the static className property defined.\"),assert(\"string\"==typeof e.className,\"className is required to be a string, but got type \"+typeof e.className),assert(e.className.length>0,\"Class being registered has an empty-string as its className, which is disallowed.\"),SerializationMap.register(e)}var serialization=Object.freeze({Serializable:Serializable,SerializationMap:SerializationMap,registerClass:registerClass}),WEBGL_ENVS={HAS_WEBGL:!0},NODE_ENVS={IS_NODE:!0},CHROME_ENVS={IS_CHROME:!0},BROWSER_ENVS={IS_BROWSER:!0},CPU_ENVS={HAS_WEBGL:!1},ALL_ENVS={};function expectArraysClose(e,t,n){return null==n&&(n=ENV.get(\"TEST_EPSILON\")),expectArraysPredicate(e,t,function(e,t){return areClose(e,Number(t),n)})}function expectArraysPredicate(e,t,n){if(e instanceof Tensor||t instanceof Tensor){if(e instanceof Tensor&&t instanceof Tensor){if(e.dtype!==t.dtype)throw new Error(\"Arrays are of different type actual: \"+e.dtype+\" vs expected: \"+t.dtype+\".\");if(!arraysEqual(e.shape,t.shape))throw new Error(\"Arrays are of different shape actual: \"+e.shape+\" vs expected: \"+t.shape+\".\")}}else{var r=e.constructor.name,o=t.constructor.name;if(r!==o)throw new Error(\"Arrays are of different type actual: \"+r+\" vs expected: \"+o)}var a,i;if(a=e instanceof Tensor?e.dataSync():e,i=t instanceof Tensor?t.dataSync():t,a.length!==i.length)throw new Error(\"Arrays have different lengths actual: \"+a.length+\" vs expected: \"+i.length+\".\\nActual: \"+a+\".\\nExpected: \"+i+\".\");for(var s=0;sn)}function expectValuesInRange(e,t,n){var r;r=e instanceof Tensor?e.dataSync():e;for(var o=0;on)throw new Error(\"Value out of range:\"+r[o]+\" low: \"+t+\", high: \"+n)}function expectArrayBuffersEqual(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}var test_util=Object.freeze({WEBGL_ENVS:WEBGL_ENVS,NODE_ENVS:NODE_ENVS,CHROME_ENVS:CHROME_ENVS,BROWSER_ENVS:BROWSER_ENVS,CPU_ENVS:CPU_ENVS,ALL_ENVS:ALL_ENVS,expectArraysClose:expectArraysClose,expectPromiseToFail:expectPromiseToFail,expectArraysEqual:expectArraysEqual,expectNumbersClose:expectNumbersClose,expectValuesInRange:expectValuesInRange,expectArrayBuffersEqual:expectArrayBuffersEqual}),version=\"0.14.2\",webgl=Object.freeze({gpgpu_util:gpgpu_util,webgl_util:webgl_util,MathBackendWebGL:MathBackendWebGL,GPGPUContext:GPGPUContext}),Optimizer=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.minimize=function(e,t,n){void 0===t&&(t=!1);var r=this.computeGradients(e,n),o=r.value,a=r.grads;return this.applyGradients(a),Object.keys(a).forEach(function(e){return a[e].dispose()}),t?o:(o.dispose(),null)},t.prototype.computeGradients=function(e,t){return variableGrads(e,t)},t}(Serializable),AdadeltaOptimizer=function(e){function t(t,n,r){void 0===r&&(r=null);var o=e.call(this)||this;return o.learningRate=t,o.rho=n,o.epsilon=r,o.accumulatedGrads={},o.accumulatedUpdates={},o.c=keep(scalar(-t)),o.rhoScalar=keep(scalar(n)),o.oneMinusRho=keep(scalar(1-n)),null===r&&(r=ENV.get(\"EPSILON\")),o.epsilonScalar=keep(scalar(r)),o}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this,n=function(n){var o=ENV.engine.registeredVariables[n];if(null==r.accumulatedGrads[n]){tidy(function(){t.accumulatedGrads[n]=zerosLike(o).variable(!1)})}if(null==r.accumulatedUpdates[n]){tidy(function(){t.accumulatedUpdates[n]=zerosLike(o).variable(!1)})}var a=e[n],i=r.accumulatedGrads[n],s=r.accumulatedUpdates[n];tidy(function(){var e=t.rhoScalar.mul(i).add(t.oneMinusRho.mul(a.square())),r=s.add(t.epsilonScalar).sqrt().div(i.add(t.epsilonScalar).sqrt()).mul(a),u=t.rhoScalar.mul(s).add(t.oneMinusRho.mul(r.square()));t.accumulatedGrads[n].assign(e),t.accumulatedUpdates[n].assign(u);var l=t.c.mul(r).add(o);o.assign(l)})},r=this;for(var o in e)n(o)},t.prototype.dispose=function(){var e=this;this.c.dispose(),this.epsilonScalar.dispose(),this.rhoScalar.dispose(),this.oneMinusRho.dispose(),null!=this.accumulatedUpdates&&(Object.keys(this.accumulatedUpdates).forEach(function(t){return e.accumulatedUpdates[t].dispose()}),Object.keys(this.accumulatedGrads).forEach(function(t){return e.accumulatedGrads[t].dispose()}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.rho,t.epsilon)},t.className=\"AdadeltaOptimizer\",t}(Optimizer);registerClass(AdadeltaOptimizer);var AdagradOptimizer=function(e){function t(t,n){void 0===n&&(n=.1);var r=e.call(this)||this;return r.learningRate=t,r.initialAccumulatorValue=n,r.accumulatedGrads={},r.c=keep(scalar(-t)),r.epsilon=keep(scalar(ENV.get(\"EPSILON\"))),r}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this,n=function(n){var o=ENV.engine.registeredVariables[n];if(null==r.accumulatedGrads[n]){tidy(function(){t.accumulatedGrads[n]=fill(o.shape,t.initialAccumulatorValue).variable(!1)})}var a=e[n],i=r.accumulatedGrads[n];tidy(function(){var e=i.add(a.square());t.accumulatedGrads[n].assign(e);var r=t.c.mul(a.div(e.add(t.epsilon).sqrt())).add(o);o.assign(r)})},r=this;for(var o in e)n(o)},t.prototype.dispose=function(){var e=this;this.epsilon.dispose(),this.c.dispose(),null!=this.accumulatedGrads&&Object.keys(this.accumulatedGrads).forEach(function(t){return e.accumulatedGrads[t].dispose()})},t.prototype.getConfig=function(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}},t.fromConfig=function(e,t){return new e(t.learningRate,t.initialAccumulatorValue)},t.className=\"AdagradOptimizer\",t}(Optimizer);registerClass(AdagradOptimizer);var AdamOptimizer=function(e){function t(t,n,r,o){void 0===o&&(o=null);var a=e.call(this)||this;return a.learningRate=t,a.beta1=n,a.beta2=r,a.epsilon=o,a.accumulatedFirstMoment={},a.accumulatedSecondMoment={},a.c=keep(scalar(-t)),a.beta1Scalar=keep(scalar(n)),a.beta2Scalar=keep(scalar(r)),tidy(function(){a.accBeta1=scalar(n).variable(),a.accBeta2=scalar(r).variable()}),a.oneMinusBeta1=keep(scalar(1-n)),a.oneMinusBeta2=keep(scalar(1-r)),a.one=keep(scalar(1)),null===o&&(o=ENV.get(\"EPSILON\")),a.epsScalar=keep(scalar(o)),a}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this;tidy(function(){var n=t.one.sub(t.accBeta1),r=t.one.sub(t.accBeta2);for(var o in e){var a=ENV.engine.registeredVariables[o];if(null==t.accumulatedFirstMoment[o]){var i=!1;t.accumulatedFirstMoment[o]=zerosLike(a).variable(i)}if(null==t.accumulatedSecondMoment[o]){i=!1;t.accumulatedSecondMoment[o]=zerosLike(a).variable(i)}var s=e[o],u=t.accumulatedFirstMoment[o],l=t.accumulatedSecondMoment[o],c=t.beta1Scalar.mul(u).add(t.oneMinusBeta1.mul(s)),p=t.beta2Scalar.mul(l).add(t.oneMinusBeta2.mul(s.square())),d=c.div(n),h=p.div(r);t.accumulatedFirstMoment[o].assign(c),t.accumulatedSecondMoment[o].assign(p);var f=t.c.mul(d.div(t.epsScalar.add(h.sqrt()))).add(a);a.assign(f)}t.accBeta1.assign(t.accBeta1.mul(t.beta1Scalar)),t.accBeta2.assign(t.accBeta2.mul(t.beta2Scalar))})},t.prototype.dispose=function(){var e=this;this.c.dispose(),this.epsScalar.dispose(),this.beta1Scalar.dispose(),this.beta2Scalar.dispose(),this.accBeta1.dispose(),this.accBeta2.dispose(),this.oneMinusBeta1.dispose(),this.oneMinusBeta2.dispose(),this.one.dispose(),null!=this.accumulatedFirstMoment&&Object.keys(this.accumulatedFirstMoment).forEach(function(t){return e.accumulatedFirstMoment[t].dispose()}),null!=this.accumulatedSecondMoment&&Object.keys(this.accumulatedSecondMoment).forEach(function(t){return e.accumulatedSecondMoment[t].dispose()})},t.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)},t.className=\"AdamOptimizer\",t}(Optimizer);registerClass(AdamOptimizer);var AdamaxOptimizer=function(e){function t(t,n,r,o,a){void 0===o&&(o=null),void 0===a&&(a=0);var i=e.call(this)||this;return i.learningRate=t,i.beta1=n,i.beta2=r,i.epsilon=o,i.decay=a,i.accumulatedFirstMoment={},i.accumulatedWeightedInfNorm={},i.c=keep(scalar(-t)),i.beta1Scalar=keep(scalar(n)),i.beta2Scalar=keep(scalar(r)),i.decayScalar=keep(scalar(a)),tidy(function(){i.iteration=scalar(0).variable(),i.accBeta1=scalar(n).variable()}),i.oneMinusBeta1=keep(scalar(1-n)),i.one=keep(scalar(1)),null===o&&(o=ENV.get(\"EPSILON\")),i.epsScalar=keep(scalar(o)),i}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this;tidy(function(){var n=t.one.sub(t.accBeta1),r=t.c.div(t.one.add(t.decayScalar.mul(t.iteration)));for(var o in e){var a=ENV.engine.registeredVariables[o];if(null==t.accumulatedFirstMoment[o]){var i=!1;t.accumulatedFirstMoment[o]=zerosLike(a).variable(i)}if(null==t.accumulatedWeightedInfNorm[o]){i=!1;t.accumulatedWeightedInfNorm[o]=zerosLike(a).variable(i)}var s=e[o],u=t.accumulatedFirstMoment[o],l=t.accumulatedWeightedInfNorm[o],c=t.beta1Scalar.mul(u).add(t.oneMinusBeta1.mul(s)),p=t.beta2Scalar.mul(l),d=s.abs(),h=p.maximum(d);t.accumulatedFirstMoment[o].assign(c),t.accumulatedWeightedInfNorm[o].assign(h);var f=r.div(n).mul(c.div(t.epsScalar.add(h))).add(a);a.assign(f)}t.iteration.assign(t.iteration.add(t.one)),t.accBeta1.assign(t.accBeta1.mul(t.beta1Scalar))})},t.prototype.dispose=function(){var e=this;this.c.dispose(),this.epsScalar.dispose(),this.accBeta1.dispose(),this.beta1Scalar.dispose(),this.beta2Scalar.dispose(),this.oneMinusBeta1.dispose(),this.decayScalar.dispose(),this.iteration.dispose(),this.one.dispose(),null!=this.accumulatedFirstMoment&&Object.keys(this.accumulatedFirstMoment).forEach(function(t){return e.accumulatedFirstMoment[t].dispose()}),null!=this.accumulatedWeightedInfNorm&&Object.keys(this.accumulatedWeightedInfNorm).forEach(function(t){return e.accumulatedWeightedInfNorm[t].dispose()})},t.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)},t.className=\"AdamaxOptimizer\",t}(Optimizer);registerClass(AdamaxOptimizer);var SGDOptimizer=function(e){function t(t){var n=e.call(this)||this;return n.learningRate=t,n.setLearningRate(t),n}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this;Object.keys(e).forEach(function(n){var r=e[n],o=ENV.engine.registeredVariables[n];tidy(function(){var e=t.c.mul(r).add(o);o.assign(e)})})},t.prototype.setLearningRate=function(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=keep(scalar(-e))},t.prototype.dispose=function(){this.c.dispose()},t.prototype.getConfig=function(){return{learningRate:this.learningRate}},t.fromConfig=function(e,t){return new e(t.learningRate)},t.className=\"SGDOptimizer\",t}(Optimizer);registerClass(SGDOptimizer);var MomentumOptimizer=function(e){function t(t,n,r){void 0===r&&(r=!1);var o=e.call(this,t)||this;return o.learningRate=t,o.momentum=n,o.useNesterov=r,o.m=scalar(o.momentum),o.accumulations={},o}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this,n=function(n){var o=ENV.engine.registeredVariables[n];if(null==r.accumulations[n]){tidy(function(){t.accumulations[n]=zerosLike(o).variable(!1)})}var a=r.accumulations[n],i=e[n];tidy(function(){var e,r=t.m.mul(a).add(i);e=t.useNesterov?t.c.mul(i.add(r.mul(t.m))).add(o):t.c.mul(r).add(o),t.accumulations[n].assign(r),o.assign(e)})},r=this;for(var o in e)n(o)},t.prototype.dispose=function(){if(e.prototype.dispose.call(this),this.m.dispose(),null!=this.accumulations)for(var t in this.accumulations)this.accumulations[t].dispose()},t.prototype.setMomentum=function(e){this.momentum=e},t.prototype.getConfig=function(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}},t.fromConfig=function(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)},t.className=\"MomentumOptimizer\",t}(SGDOptimizer);registerClass(MomentumOptimizer);var RMSPropOptimizer=function(e){function t(t,n,r,o,a){void 0===n&&(n=.9),void 0===r&&(r=0),void 0===o&&(o=null),void 0===a&&(a=!1);var i=e.call(this)||this;return i.learningRate=t,i.decay=n,i.momentum=r,i.epsilon=o,i.accumulatedMeanSquares={},i.accumulatedMeanGrads={},i.accumulatedMoments={},i.c=keep(scalar(t)),i.decayScalar=keep(scalar(n)),i.momentumScalar=keep(scalar(r)),i.oneMinusDecay=keep(scalar(1-n)),i.centered=a,null===o&&(o=ENV.get(\"EPSILON\")),i.epsilonScalar=keep(scalar(o)),i}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this,n=function(n){var o=ENV.engine.registeredVariables[n];if(null==r.accumulatedMeanSquares[n]){tidy(function(){t.accumulatedMeanSquares[n]=zerosLike(o).variable(!1)})}if(null==r.accumulatedMeanGrads[n]&&r.centered){tidy(function(){t.accumulatedMeanGrads[n]=zerosLike(o).variable(!1)})}if(null==r.accumulatedMoments[n]){tidy(function(){t.accumulatedMoments[n]=zerosLike(o).variable(!1)})}var a=r.accumulatedMeanSquares[n],i=r.accumulatedMeanGrads[n],s=r.accumulatedMoments[n],u=e[n];tidy(function(){var e=t.decayScalar.mul(a).add(t.oneMinusDecay.mul(u.square()));if(t.centered){var r=t.decayScalar.mul(i).add(t.oneMinusDecay.mul(u)),l=t.momentumScalar.mul(s).add(t.c.mul(u).div(e.sub(r.square().add(t.epsilonScalar)).sqrt()));t.accumulatedMeanSquares[n].assign(e),t.accumulatedMeanGrads[n].assign(r),t.accumulatedMoments[n].assign(l);var c=o.sub(l);o.assign(c)}else{var p=t.decayScalar.mul(a).add(t.oneMinusDecay.mul(u.square()));l=t.momentumScalar.mul(s).add(t.c.mul(u).div(p.add(t.epsilonScalar).sqrt()));t.accumulatedMeanSquares[n].assign(p),t.accumulatedMoments[n].assign(l);c=o.sub(l);o.assign(c)}})},r=this;for(var o in e)n(o)},t.prototype.dispose=function(){var e=this;this.c.dispose(),this.epsilonScalar.dispose(),this.decayScalar.dispose(),this.momentumScalar.dispose(),this.oneMinusDecay.dispose(),null!=this.accumulatedMeanSquares&&Object.keys(this.accumulatedMeanSquares).forEach(function(t){return e.accumulatedMeanSquares[t].dispose()}),null!=this.accumulatedMeanGrads&&this.centered&&Object.keys(this.accumulatedMeanGrads).forEach(function(t){return e.accumulatedMeanGrads[t].dispose()}),null!=this.accumulatedMoments&&Object.keys(this.accumulatedMoments).forEach(function(t){return e.accumulatedMoments[t].dispose()})},t.prototype.getConfig=function(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}},t.fromConfig=function(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)},t.className=\"RMSPropOptimizer\",t}(Optimizer);registerClass(RMSPropOptimizer);var OptimizerConstructors=function(){function e(){}return e.sgd=function(e){return new SGDOptimizer(e)},e.momentum=function(e,t,n){return void 0===n&&(n=!1),new MomentumOptimizer(e,t,n)},e.rmsprop=function(e,t,n,r,o){return void 0===t&&(t=.9),void 0===n&&(n=0),void 0===r&&(r=null),void 0===o&&(o=!1),new RMSPropOptimizer(e,t,n,r,o)},e.adam=function(e,t,n,r){return void 0===e&&(e=.001),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),new AdamOptimizer(e,t,n,r)},e.adadelta=function(e,t,n){return void 0===e&&(e=.001),void 0===t&&(t=.95),void 0===n&&(n=null),new AdadeltaOptimizer(e,t,n)},e.adamax=function(e,t,n,r,o){return void 0===e&&(e=.002),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),void 0===o&&(o=0),new AdamaxOptimizer(e,t,n,r,o)},e.adagrad=function(e,t){return void 0===t&&(t=.1),new AdagradOptimizer(e,t)},e}(),train={sgd:OptimizerConstructors.sgd,momentum:OptimizerConstructors.momentum,adadelta:OptimizerConstructors.adadelta,adagrad:OptimizerConstructors.adagrad,rmsprop:OptimizerConstructors.rmsprop,adamax:OptimizerConstructors.adamax,adam:OptimizerConstructors.adam},setBackend=Environment.setBackend,getBackend=Environment.getBackend,disposeVariables=Environment.disposeVariables,memory=Environment.memory;setOpHandler(ops);export{setBackend,getBackend,disposeVariables,memory,version as version_core,nextFrame,environment,io,math,serialization,test_util,util,webgl,AdadeltaOptimizer,AdagradOptimizer,AdamOptimizer,AdamaxOptimizer,MomentumOptimizer,Optimizer,RMSPropOptimizer,SGDOptimizer,Tensor,TensorBuffer,variable,Variable,Rank,Reduction,ENV,Environment,KernelBackend,DataStorage,image_ops as image,linalg_ops as linalg,loss_ops as losses,spectral_ops as spectral,op,batchNormalization2d,batchNormalization3d,batchNormalization4d,batchNormalization,complex,real,imag,concat,concat1d,concat2d,concat3d,concat4d,split$1 as split,conv1d,conv2d,conv3d,conv2dDerFilter,depthwiseConv2d,separableConv2d,conv2dTranspose,matMul,dot,outerProduct,reverse,reverse1d,reverse2d,reverse3d,reverse4d,maxPool,avgPool,pool,slice,slice1d,slice2d,slice3d,slice4d,abs,acos,acosh,asin,asinh,atan,atanh,ceil,clipByValue,cos,cosh,erf,exp,expm1,floor,log$1 as log,log1p,logSigmoid,neg,reciprocal,round,rsqrt,sigmoid,sign,sin,sinh,softplus,sqrt,square,step,tan,tanh$1 as tanh,all,any,argMax,argMin,logSumExp,max,mean,min,moments,sum$1 as sum,prod,equal,equalStrict,greater,greaterEqual,greaterEqualStrict,greaterStrict,less,lessEqual,lessEqualStrict,lessStrict,notEqual,notEqualStrict,add,addN,addStrict,atan2,div,divStrict,floorDiv,maximum,maximumStrict,minimum,minimumStrict,mod,modStrict,mul,mulStrict,pow,powStrict,squaredDifference,squaredDifferenceStrict,sub,subStrict,elu,leakyRelu,prelu,relu,selu,logicalAnd,logicalNot,logicalOr,logicalXor,where,whereAsync,buffer,toPixels,print,batchToSpaceND,cast,clone,cumsum,depthToSpace,expandDims,eye,fromPixels,multinomial,oneHot,pad,pad1d,pad2d,pad3d,pad4d,rand,randomNormal,randomUniform,reshape,spaceToBatchND,squeeze,stack,tile,truncatedNormal,unstack,setdiff1dAsync,fill,linspace,ones$1 as ones,range,scalar,tensor,tensor1d,tensor2d,tensor3d,tensor4d,tensor5d,tensor6d,zeros,onesLike,zerosLike,transpose,softmax,logSoftmax,localResponseNormalization,norm,gather,unsortedSegmentSum,basicLSTMCell,multiRNNCell,movingAverage,stridedSlice,topk,scatterND,fft,ifft,rfft,irfft,sparseToDense,gatherND,train,tidy,keep,dispose,time,profile,customGrad,grad,grads,valueAndGrad,valueAndGrads,variableGrads};\n//# sourceMappingURL=tf-core.esm.js.map\n","import { isValidNumber } from '../utils';\r\nvar Dimensions = /** @class */ (function () {\r\n function Dimensions(width, height) {\r\n if (!isValidNumber(width) || !isValidNumber(height)) {\r\n throw new Error(\"Dimensions.constructor - expected width and height to be valid numbers, instead have \" + JSON.stringify({ width: width, height: height }));\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n Object.defineProperty(Dimensions.prototype, \"width\", {\r\n get: function () { return this._width; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Dimensions.prototype, \"height\", {\r\n get: function () { return this._height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Dimensions.prototype.reverse = function () {\r\n return new Dimensions(1 / this.width, 1 / this.height);\r\n };\r\n return Dimensions;\r\n}());\r\nexport { Dimensions };\r\n//# sourceMappingURL=Dimensions.js.map","var Point = /** @class */ (function () {\r\n function Point(x, y) {\r\n this._x = x;\r\n this._y = y;\r\n }\r\n Object.defineProperty(Point.prototype, \"x\", {\r\n get: function () { return this._x; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Point.prototype, \"y\", {\r\n get: function () { return this._y; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Point.prototype.add = function (pt) {\r\n return new Point(this.x + pt.x, this.y + pt.y);\r\n };\r\n Point.prototype.sub = function (pt) {\r\n return new Point(this.x - pt.x, this.y - pt.y);\r\n };\r\n Point.prototype.mul = function (pt) {\r\n return new Point(this.x * pt.x, this.y * pt.y);\r\n };\r\n Point.prototype.div = function (pt) {\r\n return new Point(this.x / pt.x, this.y / pt.y);\r\n };\r\n Point.prototype.abs = function () {\r\n return new Point(Math.abs(this.x), Math.abs(this.y));\r\n };\r\n Point.prototype.magnitude = function () {\r\n return Math.sqrt(Math.pow(this.x, 2) + Math.pow(this.y, 2));\r\n };\r\n Point.prototype.floor = function () {\r\n return new Point(Math.floor(this.x), Math.floor(this.y));\r\n };\r\n return Point;\r\n}());\r\nexport { Point };\r\n//# sourceMappingURL=Point.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { Dimensions } from '../classes/Dimensions';\r\nimport { Point } from '../classes/Point';\r\nexport function isTensor(tensor, dim) {\r\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\r\n}\r\nexport function isTensor1D(tensor) {\r\n return isTensor(tensor, 1);\r\n}\r\nexport function isTensor2D(tensor) {\r\n return isTensor(tensor, 2);\r\n}\r\nexport function isTensor3D(tensor) {\r\n return isTensor(tensor, 3);\r\n}\r\nexport function isTensor4D(tensor) {\r\n return isTensor(tensor, 4);\r\n}\r\nexport function isFloat(num) {\r\n return num % 1 !== 0;\r\n}\r\nexport function isEven(num) {\r\n return num % 2 === 0;\r\n}\r\nexport function round(num, prec) {\r\n if (prec === void 0) { prec = 2; }\r\n var f = Math.pow(10, prec);\r\n return Math.floor(num * f) / f;\r\n}\r\nexport function isDimensions(obj) {\r\n return obj && obj.width && obj.height;\r\n}\r\nexport function computeReshapedDimensions(_a, inputSize) {\r\n var width = _a.width, height = _a.height;\r\n var scale = inputSize / Math.max(height, width);\r\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\r\n}\r\nexport function getCenterPoint(pts) {\r\n return pts.reduce(function (sum, pt) { return sum.add(pt); }, new Point(0, 0))\r\n .div(new Point(pts.length, pts.length));\r\n}\r\nexport function range(num, start, step) {\r\n return Array(num).fill(0).map(function (_, i) { return start + (i * step); });\r\n}\r\nexport function isValidNumber(num) {\r\n return !!num && num !== Infinity && num !== -Infinity && !isNaN(num) || num === 0;\r\n}\r\nexport function isValidProbablitiy(num) {\r\n return isValidNumber(num) && 0 <= num && num <= 1.0;\r\n}\r\n//# sourceMappingURL=index.js.map","import { isDimensions, isValidNumber } from '../utils';\r\nvar Box = /** @class */ (function () {\r\n // TODO: MTCNN boxes sometimes have negative widths or heights, figure out why and remove\r\n // allowNegativeDimensions flag again\r\n function Box(_box, allowNegativeDimensions) {\r\n if (allowNegativeDimensions === void 0) { allowNegativeDimensions = false; }\r\n var box = (_box || {});\r\n var isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\r\n var isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\r\n if (!isRect && !isBbox) {\r\n throw new Error(\"Box.constructor - expected box to be IBoundingBox | IRect, instead have \" + JSON.stringify(box));\r\n }\r\n var _a = isRect\r\n ? [box.x, box.y, box.width, box.height]\r\n : [box.left, box.top, box.right - box.left, box.bottom - box.top], x = _a[0], y = _a[1], width = _a[2], height = _a[3];\r\n Box.assertIsValidBox({ x: x, y: y, width: width, height: height }, 'Box.constructor', allowNegativeDimensions);\r\n this._x = x;\r\n this._y = y;\r\n this._width = width;\r\n this._height = height;\r\n }\r\n Box.isRect = function (rect) {\r\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\r\n };\r\n Box.assertIsValidBox = function (box, callee, allowNegativeDimensions) {\r\n if (allowNegativeDimensions === void 0) { allowNegativeDimensions = false; }\r\n if (!Box.isRect(box)) {\r\n throw new Error(callee + \" - invalid box: \" + JSON.stringify(box) + \", expected object with properties x, y, width, height\");\r\n }\r\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\r\n throw new Error(callee + \" - width (\" + box.width + \") and height (\" + box.height + \") must be positive numbers\");\r\n }\r\n };\r\n Object.defineProperty(Box.prototype, \"x\", {\r\n get: function () { return this._x; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"y\", {\r\n get: function () { return this._y; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"width\", {\r\n get: function () { return this._width; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"height\", {\r\n get: function () { return this._height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"left\", {\r\n get: function () { return this.x; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"top\", {\r\n get: function () { return this.y; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"right\", {\r\n get: function () { return this.x + this.width; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"bottom\", {\r\n get: function () { return this.y + this.height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"area\", {\r\n get: function () { return this.width * this.height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Box.prototype.round = function () {\r\n var _a = [this.x, this.y, this.width, this.height]\r\n .map(function (val) { return Math.round(val); }), x = _a[0], y = _a[1], width = _a[2], height = _a[3];\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.floor = function () {\r\n var _a = [this.x, this.y, this.width, this.height]\r\n .map(function (val) { return Math.floor(val); }), x = _a[0], y = _a[1], width = _a[2], height = _a[3];\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.toSquare = function () {\r\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n var diff = Math.abs(width - height);\r\n if (width < height) {\r\n x -= (diff / 2);\r\n width += diff;\r\n }\r\n if (height < width) {\r\n y -= (diff / 2);\r\n height += diff;\r\n }\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.rescale = function (s) {\r\n var scaleX = isDimensions(s) ? s.width : s;\r\n var scaleY = isDimensions(s) ? s.height : s;\r\n return new Box({\r\n x: this.x * scaleX,\r\n y: this.y * scaleY,\r\n width: this.width * scaleX,\r\n height: this.height * scaleY\r\n });\r\n };\r\n Box.prototype.pad = function (padX, padY) {\r\n var _a = [\r\n this.x - (padX / 2),\r\n this.y - (padY / 2),\r\n this.width + padX,\r\n this.height + padY\r\n ], x = _a[0], y = _a[1], width = _a[2], height = _a[3];\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.clipAtImageBorders = function (imgWidth, imgHeight) {\r\n var _a = this, x = _a.x, y = _a.y, right = _a.right, bottom = _a.bottom;\r\n var clippedX = Math.max(x, 0);\r\n var clippedY = Math.max(y, 0);\r\n var newWidth = right - clippedX;\r\n var newHeight = bottom - clippedY;\r\n var clippedWidth = Math.min(newWidth, imgWidth - clippedX);\r\n var clippedHeight = Math.min(newHeight, imgHeight - clippedY);\r\n return (new Box({ x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight })).floor();\r\n };\r\n Box.prototype.shift = function (sx, sy) {\r\n var _a = this, width = _a.width, height = _a.height;\r\n var x = this.x + sx;\r\n var y = this.y + sy;\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.padAtBorders = function (imageHeight, imageWidth) {\r\n var w = this.width + 1;\r\n var h = this.height + 1;\r\n var dx = 1;\r\n var dy = 1;\r\n var edx = w;\r\n var edy = h;\r\n var x = this.left;\r\n var y = this.top;\r\n var ex = this.right;\r\n var ey = this.bottom;\r\n if (ex > imageWidth) {\r\n edx = -ex + imageWidth + w;\r\n ex = imageWidth;\r\n }\r\n if (ey > imageHeight) {\r\n edy = -ey + imageHeight + h;\r\n ey = imageHeight;\r\n }\r\n if (x < 1) {\r\n edy = 2 - x;\r\n x = 1;\r\n }\r\n if (y < 1) {\r\n edy = 2 - y;\r\n y = 1;\r\n }\r\n return { dy: dy, edy: edy, dx: dx, edx: edx, y: y, ey: ey, x: x, ex: ex, w: w, h: h };\r\n };\r\n Box.prototype.calibrate = function (region) {\r\n return new Box({\r\n left: this.left + (region.left * this.width),\r\n top: this.top + (region.top * this.height),\r\n right: this.right + (region.right * this.width),\r\n bottom: this.bottom + (region.bottom * this.height)\r\n }).toSquare().round();\r\n };\r\n return Box;\r\n}());\r\nexport { Box };\r\n//# sourceMappingURL=Box.js.map","import * as tslib_1 from \"tslib\";\r\nimport { Box } from './Box';\r\nvar BoundingBox = /** @class */ (function (_super) {\r\n tslib_1.__extends(BoundingBox, _super);\r\n function BoundingBox(left, top, right, bottom) {\r\n return _super.call(this, { left: left, top: top, right: right, bottom: bottom }) || this;\r\n }\r\n return BoundingBox;\r\n}(Box));\r\nexport { BoundingBox };\r\n//# sourceMappingURL=BoundingBox.js.map","import * as tslib_1 from \"tslib\";\r\nimport { Box } from './Box';\r\nvar BoxWithText = /** @class */ (function (_super) {\r\n tslib_1.__extends(BoxWithText, _super);\r\n function BoxWithText(box, text) {\r\n var _this = _super.call(this, box) || this;\r\n _this._text = text;\r\n return _this;\r\n }\r\n Object.defineProperty(BoxWithText.prototype, \"text\", {\r\n get: function () { return this._text; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return BoxWithText;\r\n}(Box));\r\nexport { BoxWithText };\r\n//# sourceMappingURL=BoxWithText.js.map","import * as tslib_1 from \"tslib\";\r\nimport { Box } from './Box';\r\nimport { isValidNumber } from '../utils/index';\r\nvar LabeledBox = /** @class */ (function (_super) {\r\n tslib_1.__extends(LabeledBox, _super);\r\n function LabeledBox(box, label) {\r\n var _this = _super.call(this, box) || this;\r\n _this._label = label;\r\n return _this;\r\n }\r\n LabeledBox.assertIsValidLabeledBox = function (box, callee) {\r\n Box.assertIsValidBox(box, callee);\r\n if (!isValidNumber(box.label)) {\r\n throw new Error(callee + \" - expected property label (\" + box.label + \") to be a number\");\r\n }\r\n };\r\n Object.defineProperty(LabeledBox.prototype, \"label\", {\r\n get: function () { return this._label; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LabeledBox;\r\n}(Box));\r\nexport { LabeledBox };\r\n//# sourceMappingURL=LabeledBox.js.map","import { Box } from './Box';\r\nimport { Dimensions } from './Dimensions';\r\nvar ObjectDetection = /** @class */ (function () {\r\n function ObjectDetection(score, classScore, className, relativeBox, imageDims) {\r\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\r\n this._score = score;\r\n this._classScore = classScore;\r\n this._className = className;\r\n this._box = new Box(relativeBox).rescale(this._imageDims);\r\n }\r\n Object.defineProperty(ObjectDetection.prototype, \"score\", {\r\n get: function () { return this._score; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"classScore\", {\r\n get: function () { return this._classScore; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"className\", {\r\n get: function () { return this._className; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"box\", {\r\n get: function () { return this._box; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"imageDims\", {\r\n get: function () { return this._imageDims; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"imageWidth\", {\r\n get: function () { return this.imageDims.width; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"imageHeight\", {\r\n get: function () { return this.imageDims.height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"relativeBox\", {\r\n get: function () { return new Box(this._box).rescale(this.imageDims.reverse()); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ObjectDetection.prototype.forSize = function (width, height) {\r\n return new ObjectDetection(this.score, this.classScore, this.className, this.relativeBox, { width: width, height: height });\r\n };\r\n return ObjectDetection;\r\n}());\r\nexport { ObjectDetection };\r\n//# sourceMappingURL=ObjectDetection.js.map","import * as tslib_1 from \"tslib\";\r\nimport { isValidProbablitiy } from '../utils';\r\nimport { LabeledBox } from './LabeledBox';\r\nvar PredictedBox = /** @class */ (function (_super) {\r\n tslib_1.__extends(PredictedBox, _super);\r\n function PredictedBox(box, label, score, classScore) {\r\n var _this = _super.call(this, box, label) || this;\r\n _this._score = score;\r\n _this._classScore = classScore;\r\n return _this;\r\n }\r\n PredictedBox.assertIsValidPredictedBox = function (box, callee) {\r\n LabeledBox.assertIsValidLabeledBox(box, callee);\r\n if (!isValidProbablitiy(box.score)\r\n || !isValidProbablitiy(box.classScore)) {\r\n throw new Error(callee + \" - expected properties score (\" + box.score + \") and (\" + box.classScore + \") to be a number between [0, 1]\");\r\n }\r\n };\r\n Object.defineProperty(PredictedBox.prototype, \"score\", {\r\n get: function () { return this._score; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PredictedBox.prototype, \"classScore\", {\r\n get: function () { return this._classScore; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PredictedBox;\r\n}(LabeledBox));\r\nexport { PredictedBox };\r\n//# sourceMappingURL=PredictedBox.js.map","import * as tslib_1 from \"tslib\";\r\nimport { Box } from './Box';\r\nvar Rect = /** @class */ (function (_super) {\r\n tslib_1.__extends(Rect, _super);\r\n function Rect(x, y, width, height) {\r\n return _super.call(this, { x: x, y: y, width: width, height: height }) || this;\r\n }\r\n return Rect;\r\n}(Box));\r\nexport { Rect };\r\n//# sourceMappingURL=Rect.js.map","export function disposeUnusedWeightTensors(weightMap, paramMappings) {\r\n Object.keys(weightMap).forEach(function (path) {\r\n if (!paramMappings.some(function (pm) { return pm.originalPath === path; })) {\r\n weightMap[path].dispose();\r\n }\r\n });\r\n}\r\n//# sourceMappingURL=disposeUnusedWeightTensors.js.map","import { isTensor } from '../utils';\r\nexport function extractWeightEntryFactory(weightMap, paramMappings) {\r\n return function (originalPath, paramRank, mappedPath) {\r\n var tensor = weightMap[originalPath];\r\n if (!isTensor(tensor, paramRank)) {\r\n throw new Error(\"expected weightMap[\" + originalPath + \"] to be a Tensor\" + paramRank + \"D, instead have \" + tensor);\r\n }\r\n paramMappings.push({ originalPath: originalPath, paramPath: mappedPath || originalPath });\r\n return tensor;\r\n };\r\n}\r\n//# sourceMappingURL=extractWeightEntryFactory.js.map","export function extractWeightsFactory(weights) {\r\n var remainingWeights = weights;\r\n function extractWeights(numWeights) {\r\n var ret = remainingWeights.slice(0, numWeights);\r\n remainingWeights = remainingWeights.slice(numWeights);\r\n return ret;\r\n }\r\n function getRemainingWeights() {\r\n return remainingWeights;\r\n }\r\n return {\r\n extractWeights: extractWeights,\r\n getRemainingWeights: getRemainingWeights\r\n };\r\n}\r\n//# sourceMappingURL=extractWeightsFactory.js.map","export function getModelUris(uri, defaultModelName) {\r\n var defaultManifestFilename = defaultModelName + \"-weights_manifest.json\";\r\n if (!uri) {\r\n return {\r\n modelBaseUri: '',\r\n manifestUri: defaultManifestFilename\r\n };\r\n }\r\n if (uri === '/') {\r\n return {\r\n modelBaseUri: '/',\r\n manifestUri: \"/\" + defaultManifestFilename\r\n };\r\n }\r\n var protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\r\n uri = uri.replace(protocol, '');\r\n var parts = uri.split('/').filter(function (s) { return s; });\r\n var manifestFile = uri.endsWith('.json')\r\n ? parts[parts.length - 1]\r\n : defaultManifestFilename;\r\n var modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\r\n modelBaseUri = uri.startsWith('/') ? \"/\" + modelBaseUri : modelBaseUri;\r\n return {\r\n modelBaseUri: modelBaseUri,\r\n manifestUri: modelBaseUri === '/' ? \"/\" + manifestFile : modelBaseUri + \"/\" + manifestFile\r\n };\r\n}\r\n//# sourceMappingURL=getModelUris.js.map","export function createBrowserEnv() {\r\n var fetch = window['fetch'] || function () {\r\n throw new Error('fetch - missing fetch implementation for browser environment');\r\n };\r\n var readFile = function () {\r\n throw new Error('readFile - filesystem not available for browser environment');\r\n };\r\n return {\r\n Canvas: HTMLCanvasElement,\r\n Image: HTMLImageElement,\r\n ImageData: ImageData,\r\n Video: HTMLVideoElement,\r\n createCanvasElement: function () { return document.createElement('canvas'); },\r\n createImageElement: function () { return document.createElement('img'); },\r\n fetch: fetch,\r\n readFile: readFile\r\n };\r\n}\r\n//# sourceMappingURL=createBrowserEnv.js.map","export function createFileSystem(fs) {\r\n var requireFsError = '';\r\n if (!fs) {\r\n try {\r\n fs = require('fs');\r\n }\r\n catch (err) {\r\n requireFsError = err.toString();\r\n }\r\n }\r\n var readFile = fs\r\n ? function (filePath) {\r\n return new Promise(function (res, rej) {\r\n fs.readFile(filePath, function (err, buffer) {\r\n return err ? rej(err) : res(buffer);\r\n });\r\n });\r\n }\r\n : function () {\r\n throw new Error(\"readFile - failed to require fs in nodejs environment with error: \" + requireFsError);\r\n };\r\n return {\r\n readFile: readFile\r\n };\r\n}\r\n//# sourceMappingURL=createFileSystem.js.map","import * as tslib_1 from \"tslib\";\r\nimport { createFileSystem } from './createFileSystem';\r\nexport function createNodejsEnv() {\r\n var Canvas = global['Canvas'] || global['HTMLCanvasElement'];\r\n var Image = global['Image'] || global['HTMLImageElement'];\r\n var createCanvasElement = function () {\r\n if (Canvas) {\r\n return new Canvas();\r\n }\r\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\r\n };\r\n var createImageElement = function () {\r\n if (Image) {\r\n return new Image();\r\n }\r\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\r\n };\r\n var fetch = global['fetch'] || function () {\r\n throw new Error('fetch - missing fetch implementation for nodejs environment');\r\n };\r\n var fileSystem = createFileSystem();\r\n return tslib_1.__assign({ Canvas: Canvas || /** @class */ (function () {\r\n function class_1() {\r\n }\r\n return class_1;\r\n }()), Image: Image || /** @class */ (function () {\r\n function class_2() {\r\n }\r\n return class_2;\r\n }()), ImageData: global['ImageData'] || /** @class */ (function () {\r\n function class_3() {\r\n }\r\n return class_3;\r\n }()), Video: global['HTMLVideoElement'] || /** @class */ (function () {\r\n function class_4() {\r\n }\r\n return class_4;\r\n }()), createCanvasElement: createCanvasElement,\r\n createImageElement: createImageElement,\r\n fetch: fetch }, fileSystem);\r\n}\r\n//# sourceMappingURL=createNodejsEnv.js.map","export function isBrowser() {\r\n return typeof window === 'object'\r\n && typeof document !== 'undefined'\r\n && typeof HTMLImageElement !== 'undefined'\r\n && typeof HTMLCanvasElement !== 'undefined'\r\n && typeof HTMLVideoElement !== 'undefined'\r\n && typeof ImageData !== 'undefined';\r\n}\r\n//# sourceMappingURL=isBrowser.js.map","export function isNodejs() {\r\n return typeof global === 'object'\r\n && typeof require === 'function'\r\n && typeof module !== 'undefined'\r\n // issues with gatsby.js: module.exports is undefined\r\n // && !!module.exports\r\n && typeof process !== 'undefined' && !!process.version;\r\n}\r\n//# sourceMappingURL=isNodejs.js.map","import { createBrowserEnv } from './createBrowserEnv';\r\nimport { createFileSystem } from './createFileSystem';\r\nimport { createNodejsEnv } from './createNodejsEnv';\r\nimport { isBrowser } from './isBrowser';\r\nimport { isNodejs } from './isNodejs';\r\nvar environment;\r\nfunction getEnv() {\r\n if (!environment) {\r\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\r\n }\r\n return environment;\r\n}\r\nfunction setEnv(env) {\r\n environment = env;\r\n}\r\nfunction initialize() {\r\n // check for isBrowser() first to prevent electron renderer process\r\n // to be initialized with wrong environment due to isNodejs() returning true\r\n if (isBrowser()) {\r\n setEnv(createBrowserEnv());\r\n }\r\n if (isNodejs()) {\r\n setEnv(createNodejsEnv());\r\n }\r\n}\r\nfunction monkeyPatch(env) {\r\n if (!environment) {\r\n initialize();\r\n }\r\n if (!environment) {\r\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\r\n }\r\n var _a = env.Canvas, Canvas = _a === void 0 ? environment.Canvas : _a, _b = env.Image, Image = _b === void 0 ? environment.Image : _b;\r\n environment.Canvas = Canvas;\r\n environment.Image = Image;\r\n environment.createCanvasElement = env.createCanvasElement || (function () { return new Canvas(); });\r\n environment.createImageElement = env.createImageElement || (function () { return new Image(); });\r\n environment.ImageData = env.ImageData || environment.ImageData;\r\n environment.Video = env.Video || environment.Video;\r\n environment.fetch = env.fetch || environment.fetch;\r\n environment.readFile = env.readFile || environment.readFile;\r\n}\r\nexport var env = {\r\n getEnv: getEnv,\r\n setEnv: setEnv,\r\n initialize: initialize,\r\n createBrowserEnv: createBrowserEnv,\r\n createFileSystem: createFileSystem,\r\n createNodejsEnv: createNodejsEnv,\r\n monkeyPatch: monkeyPatch,\r\n isBrowser: isBrowser,\r\n isNodejs: isNodejs\r\n};\r\ninitialize();\r\n//# sourceMappingURL=index.js.map","import { env } from '../env';\r\nexport function isMediaLoaded(media) {\r\n var _a = env.getEnv(), Image = _a.Image, Video = _a.Video;\r\n return (media instanceof Image && media.complete)\r\n || (media instanceof Video && media.readyState >= 3);\r\n}\r\n//# sourceMappingURL=isMediaLoaded.js.map","import { env } from '../env';\r\nimport { isMediaLoaded } from './isMediaLoaded';\r\nexport function awaitMediaLoaded(media) {\r\n return new Promise(function (resolve, reject) {\r\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\r\n return resolve();\r\n }\r\n function onLoad(e) {\r\n if (!e.currentTarget)\r\n return;\r\n e.currentTarget.removeEventListener('load', onLoad);\r\n e.currentTarget.removeEventListener('error', onError);\r\n resolve(e);\r\n }\r\n function onError(e) {\r\n if (!e.currentTarget)\r\n return;\r\n e.currentTarget.removeEventListener('load', onLoad);\r\n e.currentTarget.removeEventListener('error', onError);\r\n reject(e);\r\n }\r\n media.addEventListener('load', onLoad);\r\n media.addEventListener('error', onError);\r\n });\r\n}\r\n//# sourceMappingURL=awaitMediaLoaded.js.map","import { env } from '../env';\r\nexport function bufferToImage(buf) {\r\n return new Promise(function (resolve, reject) {\r\n if (!(buf instanceof Blob)) {\r\n return reject('bufferToImage - expected buf to be of type: Blob');\r\n }\r\n var reader = new FileReader();\r\n reader.onload = function () {\r\n if (typeof reader.result !== 'string') {\r\n return reject('bufferToImage - expected reader.result to be a string, in onload');\r\n }\r\n var img = env.getEnv().createImageElement();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n img.src = reader.result;\r\n };\r\n reader.onerror = reject;\r\n reader.readAsDataURL(buf);\r\n });\r\n}\r\n//# sourceMappingURL=bufferToImage.js.map","export function getContext2dOrThrow(canvas) {\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n throw new Error('canvas 2d context is null');\r\n }\r\n return ctx;\r\n}\r\n//# sourceMappingURL=getContext2dOrThrow.js.map","import { Dimensions } from '../classes/Dimensions';\r\nimport { env } from '../env';\r\nexport function getMediaDimensions(input) {\r\n var _a = env.getEnv(), Image = _a.Image, Video = _a.Video;\r\n if (input instanceof Image) {\r\n return new Dimensions(input.naturalWidth, input.naturalHeight);\r\n }\r\n if (input instanceof Video) {\r\n return new Dimensions(input.videoWidth, input.videoHeight);\r\n }\r\n return new Dimensions(input.width, input.height);\r\n}\r\n//# sourceMappingURL=getMediaDimensions.js.map","import { env } from '../env';\r\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\r\nimport { getMediaDimensions } from './getMediaDimensions';\r\nimport { isMediaLoaded } from './isMediaLoaded';\r\nexport function createCanvas(_a) {\r\n var width = _a.width, height = _a.height;\r\n var createCanvasElement = env.getEnv().createCanvasElement;\r\n var canvas = createCanvasElement();\r\n canvas.width = width;\r\n canvas.height = height;\r\n return canvas;\r\n}\r\nexport function createCanvasFromMedia(media, dims) {\r\n var ImageData = env.getEnv().ImageData;\r\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\r\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\r\n }\r\n var _a = dims || getMediaDimensions(media), width = _a.width, height = _a.height;\r\n var canvas = createCanvas({ width: width, height: height });\r\n if (media instanceof ImageData) {\r\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\r\n }\r\n else {\r\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\r\n }\r\n return canvas;\r\n}\r\n//# sourceMappingURL=createCanvas.js.map","export function getDefaultDrawOptions(options) {\r\n if (options === void 0) { options = {}; }\r\n return Object.assign({}, {\r\n boxColor: 'blue',\r\n textColor: 'red',\r\n lineWidth: 2,\r\n fontSize: 20,\r\n fontStyle: 'Georgia',\r\n withScore: true,\r\n withClassName: true\r\n }, options);\r\n}\r\n//# sourceMappingURL=getDefaultDrawOptions.js.map","import { getDefaultDrawOptions } from './getDefaultDrawOptions';\r\nexport function drawBox(ctx, x, y, w, h, options) {\r\n var drawOptions = Object.assign(getDefaultDrawOptions(), (options || {}));\r\n ctx.strokeStyle = drawOptions.boxColor;\r\n ctx.lineWidth = drawOptions.lineWidth;\r\n ctx.strokeRect(x, y, w, h);\r\n}\r\n//# sourceMappingURL=drawBox.js.map","import { getDefaultDrawOptions } from './getDefaultDrawOptions';\r\nexport function drawText(ctx, x, y, text, options) {\r\n if (options === void 0) { options = {}; }\r\n var drawOptions = Object.assign(getDefaultDrawOptions(), options);\r\n var padText = 2 + drawOptions.lineWidth;\r\n ctx.fillStyle = drawOptions.textColor;\r\n ctx.font = drawOptions.fontSize + \"px \" + drawOptions.fontStyle;\r\n ctx.fillText(text, x + padText, y + padText + (drawOptions.fontSize * 0.6));\r\n}\r\n//# sourceMappingURL=drawText.js.map","import { env } from '../env';\r\nexport function resolveInput(arg) {\r\n if (!env.isNodejs() && typeof arg === 'string') {\r\n return document.getElementById(arg);\r\n }\r\n return arg;\r\n}\r\n//# sourceMappingURL=resolveInput.js.map","import { BoxWithText } from '../classes/BoxWithText';\r\nimport { ObjectDetection } from '../classes/ObjectDetection';\r\nimport { PredictedBox } from '../classes/PredictedBox';\r\nimport { env } from '../env';\r\nimport { round } from '../utils';\r\nimport { drawBox } from './drawBox';\r\nimport { drawText } from './drawText';\r\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\r\nimport { getDefaultDrawOptions } from './getDefaultDrawOptions';\r\nimport { resolveInput } from './resolveInput';\r\nexport function drawDetection(canvasArg, detection, options) {\r\n var Canvas = env.getEnv().Canvas;\r\n var canvas = resolveInput(canvasArg);\r\n if (!(canvas instanceof Canvas)) {\r\n throw new Error('drawDetection - expected canvas to be of type: HTMLCanvasElement');\r\n }\r\n var detectionArray = Array.isArray(detection)\r\n ? detection\r\n : [detection];\r\n detectionArray.forEach(function (det) {\r\n var _a = det instanceof ObjectDetection ? det.box : det, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n var drawOptions = getDefaultDrawOptions(options);\r\n var ctx = getContext2dOrThrow(canvas);\r\n drawBox(ctx, x, y, width, height, drawOptions);\r\n var withScore = drawOptions.withScore;\r\n var text = det instanceof BoxWithText\r\n ? det.text\r\n : ((withScore && det instanceof PredictedBox)\r\n ? \"\" + round(det.score)\r\n : (det instanceof ObjectDetection\r\n ? \"\" + det.className + (withScore ? \" (\" + round(det.score) + \")\" : '')\r\n : ''));\r\n if (text) {\r\n drawText(ctx, x, y + height, text, drawOptions);\r\n }\r\n });\r\n}\r\n//# sourceMappingURL=drawDetection.js.map","import * as tslib_1 from \"tslib\";\r\nimport { env } from '../env';\r\nexport function fetchOrThrow(url, init) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var fetch, res;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n fetch = env.getEnv().fetch;\r\n return [4 /*yield*/, fetch(url, init)];\r\n case 1:\r\n res = _a.sent();\r\n if (!(res.status < 400)) {\r\n throw new Error(\"failed to fetch: (\" + res.status + \") \" + res.statusText + \", from url: \" + res.url);\r\n }\r\n return [2 /*return*/, res];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=fetchOrThrow.js.map","import * as tslib_1 from \"tslib\";\r\nimport { bufferToImage } from './bufferToImage';\r\nimport { fetchOrThrow } from './fetchOrThrow';\r\nexport function fetchImage(uri) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var res, blob;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, fetchOrThrow(uri)];\r\n case 1:\r\n res = _a.sent();\r\n return [4 /*yield*/, (res).blob()];\r\n case 2:\r\n blob = _a.sent();\r\n if (!blob.type.startsWith('image/')) {\r\n throw new Error(\"fetchImage - expected blob type to be of type image/*, instead have: \" + blob.type + \", for url: \" + res.url);\r\n }\r\n return [2 /*return*/, bufferToImage(blob)];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=fetchImage.js.map","import * as tslib_1 from \"tslib\";\r\nimport { fetchOrThrow } from './fetchOrThrow';\r\nexport function fetchJson(uri) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, fetchOrThrow(uri)];\r\n case 1: return [2 /*return*/, (_a.sent()).json()];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=fetchJson.js.map","import * as tslib_1 from \"tslib\";\r\nimport { fetchOrThrow } from './fetchOrThrow';\r\nexport function fetchNetWeights(uri) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = Float32Array.bind;\r\n return [4 /*yield*/, fetchOrThrow(uri)];\r\n case 1: return [4 /*yield*/, (_b.sent()).arrayBuffer()];\r\n case 2: return [2 /*return*/, new (_a.apply(Float32Array, [void 0, _b.sent()]))()];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=fetchNetWeights.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { env } from '../env';\r\nimport { isTensor4D } from '../utils';\r\nexport function imageTensorToCanvas(imgTensor, canvas) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var targetCanvas, _a, height, width, numChannels, imgTensor3D;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n targetCanvas = canvas || env.getEnv().createCanvasElement();\r\n _a = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0), height = _a[0], width = _a[1], numChannels = _a[2];\r\n imgTensor3D = tf.tidy(function () { return imgTensor.as3D(height, width, numChannels).toInt(); });\r\n return [4 /*yield*/, tf.toPixels(imgTensor3D, targetCanvas)];\r\n case 1:\r\n _b.sent();\r\n imgTensor3D.dispose();\r\n return [2 /*return*/, targetCanvas];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=imageTensorToCanvas.js.map","import { env } from '../env';\r\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\r\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\r\nimport { getMediaDimensions } from './getMediaDimensions';\r\nexport function imageToSquare(input, inputSize, centerImage) {\r\n if (centerImage === void 0) { centerImage = false; }\r\n var _a = env.getEnv(), Image = _a.Image, Canvas = _a.Canvas;\r\n if (!(input instanceof Image || input instanceof Canvas)) {\r\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\r\n }\r\n var dims = getMediaDimensions(input);\r\n var scale = inputSize / Math.max(dims.height, dims.width);\r\n var width = scale * dims.width;\r\n var height = scale * dims.height;\r\n var targetCanvas = createCanvas({ width: inputSize, height: inputSize });\r\n var inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\r\n var offset = Math.abs(width - height) / 2;\r\n var dx = centerImage && width < height ? offset : 0;\r\n var dy = centerImage && height < width ? offset : 0;\r\n getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\r\n return targetCanvas;\r\n}\r\n//# sourceMappingURL=imageToSquare.js.map","import { env } from '../env';\r\nexport function isMediaElement(input) {\r\n var _a = env.getEnv(), Image = _a.Image, Canvas = _a.Canvas, Video = _a.Video;\r\n return input instanceof Image\r\n || input instanceof Canvas\r\n || input instanceof Video;\r\n}\r\n//# sourceMappingURL=isMediaElement.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { getModelUris } from '../common/getModelUris';\r\nimport { fetchJson } from './fetchJson';\r\nexport function loadWeightMap(uri, defaultModelName) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _a, manifestUri, modelBaseUri, manifest;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = getModelUris(uri, defaultModelName), manifestUri = _a.manifestUri, modelBaseUri = _a.modelBaseUri;\r\n return [4 /*yield*/, fetchJson(manifestUri)];\r\n case 1:\r\n manifest = _b.sent();\r\n return [2 /*return*/, tf.io.loadWeights(manifest, modelBaseUri)];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=loadWeightMap.js.map","import * as tf from '@tensorflow/tfjs-core';\r\n/**\r\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\r\n *\r\n * @param imgTensor The image tensor.\r\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\r\n * both sides of the minor dimension oof the image.\r\n * @returns The padded tensor with width === height.\r\n */\r\nexport function padToSquare(imgTensor, isCenterImage) {\r\n if (isCenterImage === void 0) { isCenterImage = false; }\r\n return tf.tidy(function () {\r\n var _a = imgTensor.shape.slice(1), height = _a[0], width = _a[1];\r\n if (height === width) {\r\n return imgTensor;\r\n }\r\n var dimDiff = Math.abs(height - width);\r\n var paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\r\n var paddingAxis = height > width ? 2 : 1;\r\n var createPaddingTensor = function (paddingAmount) {\r\n var paddingTensorShape = imgTensor.shape.slice();\r\n paddingTensorShape[paddingAxis] = paddingAmount;\r\n return tf.fill(paddingTensorShape, 0);\r\n };\r\n var paddingTensorAppend = createPaddingTensor(paddingAmount);\r\n var remainingPaddingAmount = dimDiff - paddingTensorAppend.shape[paddingAxis];\r\n var paddingTensorPrepend = isCenterImage && remainingPaddingAmount\r\n ? createPaddingTensor(remainingPaddingAmount)\r\n : null;\r\n var tensorsToStack = [\r\n paddingTensorPrepend,\r\n imgTensor,\r\n paddingTensorAppend\r\n ]\r\n .filter(function (t) { return !!t; })\r\n .map(function (t) { return t.toFloat(); });\r\n return tf.concat(tensorsToStack, paddingAxis);\r\n });\r\n}\r\n//# sourceMappingURL=padToSquare.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { env } from '../env';\r\nimport { padToSquare } from '../ops/padToSquare';\r\nimport { computeReshapedDimensions, isTensor3D, isTensor4D, range } from '../utils';\r\nimport { createCanvasFromMedia } from './createCanvas';\r\nimport { imageToSquare } from './imageToSquare';\r\nvar NetInput = /** @class */ (function () {\r\n function NetInput(inputs, treatAsBatchInput) {\r\n if (treatAsBatchInput === void 0) { treatAsBatchInput = false; }\r\n var _this = this;\r\n this._imageTensors = [];\r\n this._canvases = [];\r\n this._treatAsBatchInput = false;\r\n this._inputDimensions = [];\r\n if (!Array.isArray(inputs)) {\r\n throw new Error(\"NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have \" + inputs);\r\n }\r\n this._treatAsBatchInput = treatAsBatchInput;\r\n this._batchSize = inputs.length;\r\n inputs.forEach(function (input, idx) {\r\n if (isTensor3D(input)) {\r\n _this._imageTensors[idx] = input;\r\n _this._inputDimensions[idx] = input.shape;\r\n return;\r\n }\r\n if (isTensor4D(input)) {\r\n var batchSize = input.shape[0];\r\n if (batchSize !== 1) {\r\n throw new Error(\"NetInput - tf.Tensor4D with batchSize \" + batchSize + \" passed, but not supported in input array\");\r\n }\r\n _this._imageTensors[idx] = input;\r\n _this._inputDimensions[idx] = input.shape.slice(1);\r\n return;\r\n }\r\n var canvas = input instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\r\n _this._canvases[idx] = canvas;\r\n _this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\r\n });\r\n }\r\n Object.defineProperty(NetInput.prototype, \"imageTensors\", {\r\n get: function () {\r\n return this._imageTensors;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"canvases\", {\r\n get: function () {\r\n return this._canvases;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"isBatchInput\", {\r\n get: function () {\r\n return this.batchSize > 1 || this._treatAsBatchInput;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"batchSize\", {\r\n get: function () {\r\n return this._batchSize;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"inputDimensions\", {\r\n get: function () {\r\n return this._inputDimensions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"inputSize\", {\r\n get: function () {\r\n return this._inputSize;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"reshapedInputDimensions\", {\r\n get: function () {\r\n var _this = this;\r\n return range(this.batchSize, 0, 1).map(function (_, batchIdx) { return _this.getReshapedInputDimensions(batchIdx); });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n NetInput.prototype.getInput = function (batchIdx) {\r\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\r\n };\r\n NetInput.prototype.getInputDimensions = function (batchIdx) {\r\n return this._inputDimensions[batchIdx];\r\n };\r\n NetInput.prototype.getInputHeight = function (batchIdx) {\r\n return this._inputDimensions[batchIdx][0];\r\n };\r\n NetInput.prototype.getInputWidth = function (batchIdx) {\r\n return this._inputDimensions[batchIdx][1];\r\n };\r\n NetInput.prototype.getReshapedInputDimensions = function (batchIdx) {\r\n if (typeof this.inputSize !== 'number') {\r\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\r\n }\r\n var width = this.getInputWidth(batchIdx);\r\n var height = this.getInputHeight(batchIdx);\r\n return computeReshapedDimensions({ width: width, height: height }, this.inputSize);\r\n };\r\n /**\r\n * Create a batch tensor from all input canvases and tensors\r\n * with size [batchSize, inputSize, inputSize, 3].\r\n *\r\n * @param inputSize Height and width of the tensor.\r\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\r\n * both sides of the minor dimension oof the image.\r\n * @returns The batch tensor.\r\n */\r\n NetInput.prototype.toBatchTensor = function (inputSize, isCenterInputs) {\r\n var _this = this;\r\n if (isCenterInputs === void 0) { isCenterInputs = true; }\r\n this._inputSize = inputSize;\r\n return tf.tidy(function () {\r\n var inputTensors = range(_this.batchSize, 0, 1).map(function (batchIdx) {\r\n var input = _this.getInput(batchIdx);\r\n if (input instanceof tf.Tensor) {\r\n var imgTensor = isTensor4D(input) ? input : input.expandDims();\r\n imgTensor = padToSquare(imgTensor, isCenterInputs);\r\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\r\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\r\n }\r\n return imgTensor.as3D(inputSize, inputSize, 3);\r\n }\r\n if (input instanceof env.getEnv().Canvas) {\r\n return tf.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\r\n }\r\n throw new Error(\"toBatchTensor - at batchIdx \" + batchIdx + \", expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have \" + input);\r\n });\r\n var batchTensor = tf.stack(inputTensors.map(function (t) { return t.toFloat(); })).as4D(_this.batchSize, inputSize, inputSize, 3);\r\n return batchTensor;\r\n });\r\n };\r\n return NetInput;\r\n}());\r\nexport { NetInput };\r\n//# sourceMappingURL=NetInput.js.map","import * as tslib_1 from \"tslib\";\r\nimport { isTensor3D, isTensor4D } from '../utils';\r\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\r\nimport { isMediaElement } from './isMediaElement';\r\nimport { NetInput } from './NetInput';\r\nimport { resolveInput } from './resolveInput';\r\n/**\r\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\r\n * to be finished loading.\r\n *\r\n * @param input The input, which can be a media element or an array of different media elements.\r\n * @returns A NetInput instance, which can be passed into one of the neural networks.\r\n */\r\nexport function toNetInput(inputs) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var inputArgArray, getIdxHint, inputArray;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (inputs instanceof NetInput) {\r\n return [2 /*return*/, inputs];\r\n }\r\n inputArgArray = Array.isArray(inputs)\r\n ? inputs\r\n : [inputs];\r\n if (!inputArgArray.length) {\r\n throw new Error('toNetInput - empty array passed as input');\r\n }\r\n getIdxHint = function (idx) { return Array.isArray(inputs) ? \" at input index \" + idx + \":\" : ''; };\r\n inputArray = inputArgArray.map(resolveInput);\r\n inputArray.forEach(function (input, i) {\r\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\r\n if (typeof inputArgArray[i] === 'string') {\r\n throw new Error(\"toNetInput -\" + getIdxHint(i) + \" string passed, but could not resolve HTMLElement for element id \" + inputArgArray[i]);\r\n }\r\n throw new Error(\"toNetInput -\" + getIdxHint(i) + \" expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id\");\r\n }\r\n if (isTensor4D(input)) {\r\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\r\n var batchSize = input.shape[0];\r\n if (batchSize !== 1) {\r\n throw new Error(\"toNetInput -\" + getIdxHint(i) + \" tf.Tensor4D with batchSize \" + batchSize + \" passed, but not supported in input array\");\r\n }\r\n }\r\n });\r\n // wait for all media elements being loaded\r\n return [4 /*yield*/, Promise.all(inputArray.map(function (input) { return isMediaElement(input) && awaitMediaLoaded(input); }))];\r\n case 1:\r\n // wait for all media elements being loaded\r\n _a.sent();\r\n return [2 /*return*/, new NetInput(inputArray, Array.isArray(inputs))];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=toNetInput.js.map","export function iou(box1, box2, isIOU) {\r\n if (isIOU === void 0) { isIOU = true; }\r\n var width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\r\n var height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\r\n var interSection = width * height;\r\n return isIOU\r\n ? interSection / (box1.area + box2.area - interSection)\r\n : interSection / Math.min(box1.area, box2.area);\r\n}\r\n//# sourceMappingURL=iou.js.map","import { iou } from './iou';\r\nexport function nonMaxSuppression(boxes, scores, iouThreshold, isIOU) {\r\n if (isIOU === void 0) { isIOU = true; }\r\n var indicesSortedByScore = scores\r\n .map(function (score, boxIndex) { return ({ score: score, boxIndex: boxIndex }); })\r\n .sort(function (c1, c2) { return c1.score - c2.score; })\r\n .map(function (c) { return c.boxIndex; });\r\n var pick = [];\r\n var _loop_1 = function () {\r\n var curr = indicesSortedByScore.pop();\r\n pick.push(curr);\r\n var indices = indicesSortedByScore;\r\n var outputs = [];\r\n for (var i = 0; i < indices.length; i++) {\r\n var idx = indices[i];\r\n var currBox = boxes[curr];\r\n var idxBox = boxes[idx];\r\n outputs.push(iou(currBox, idxBox, isIOU));\r\n }\r\n indicesSortedByScore = indicesSortedByScore.filter(function (_, j) { return outputs[j] <= iouThreshold; });\r\n };\r\n while (indicesSortedByScore.length > 0) {\r\n _loop_1();\r\n }\r\n return pick;\r\n}\r\n//# sourceMappingURL=nonMaxSuppression.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nexport function normalize(x, meanRgb) {\r\n return tf.tidy(function () {\r\n var r = meanRgb[0], g = meanRgb[1], b = meanRgb[2];\r\n var avg_r = tf.fill(x.shape.slice(0, 3).concat([1]), r);\r\n var avg_g = tf.fill(x.shape.slice(0, 3).concat([1]), g);\r\n var avg_b = tf.fill(x.shape.slice(0, 3).concat([1]), b);\r\n var avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\r\n return tf.sub(x, avg_rgb);\r\n });\r\n}\r\n//# sourceMappingURL=normalize.js.map","export function shuffleArray(inputArray) {\r\n var array = inputArray.slice();\r\n for (var i = array.length - 1; i > 0; i--) {\r\n var j = Math.floor(Math.random() * (i + 1));\r\n var x = array[i];\r\n array[i] = array[j];\r\n array[j] = x;\r\n }\r\n return array;\r\n}\r\n//# sourceMappingURL=shuffleArray.js.map","export * from './iou';\r\nexport * from './nonMaxSuppression';\r\nexport * from './normalize';\r\nexport * from './padToSquare';\r\nexport * from './shuffleArray';\r\nexport function sigmoid(x) {\r\n return 1 / (1 + Math.exp(-x));\r\n}\r\nexport function inverseSigmoid(x) {\r\n return Math.log(x / (1 - x));\r\n}\r\n//# sourceMappingURL=index.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { getModelUris } from './common/getModelUris';\r\nimport { loadWeightMap } from './dom';\r\nimport { env } from './env';\r\nvar NeuralNetwork = /** @class */ (function () {\r\n function NeuralNetwork(_name) {\r\n this._name = _name;\r\n this._params = undefined;\r\n this._paramMappings = [];\r\n }\r\n Object.defineProperty(NeuralNetwork.prototype, \"params\", {\r\n get: function () { return this._params; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NeuralNetwork.prototype, \"paramMappings\", {\r\n get: function () { return this._paramMappings; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NeuralNetwork.prototype, \"isLoaded\", {\r\n get: function () { return !!this.params; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n NeuralNetwork.prototype.getParamFromPath = function (paramPath) {\r\n var _a = this.traversePropertyPath(paramPath), obj = _a.obj, objProp = _a.objProp;\r\n return obj[objProp];\r\n };\r\n NeuralNetwork.prototype.reassignParamFromPath = function (paramPath, tensor) {\r\n var _a = this.traversePropertyPath(paramPath), obj = _a.obj, objProp = _a.objProp;\r\n obj[objProp].dispose();\r\n obj[objProp] = tensor;\r\n };\r\n NeuralNetwork.prototype.getParamList = function () {\r\n var _this = this;\r\n return this._paramMappings.map(function (_a) {\r\n var paramPath = _a.paramPath;\r\n return ({\r\n path: paramPath,\r\n tensor: _this.getParamFromPath(paramPath)\r\n });\r\n });\r\n };\r\n NeuralNetwork.prototype.getTrainableParams = function () {\r\n return this.getParamList().filter(function (param) { return param.tensor instanceof tf.Variable; });\r\n };\r\n NeuralNetwork.prototype.getFrozenParams = function () {\r\n return this.getParamList().filter(function (param) { return !(param.tensor instanceof tf.Variable); });\r\n };\r\n NeuralNetwork.prototype.variable = function () {\r\n var _this = this;\r\n this.getFrozenParams().forEach(function (_a) {\r\n var path = _a.path, tensor = _a.tensor;\r\n _this.reassignParamFromPath(path, tensor.variable());\r\n });\r\n };\r\n NeuralNetwork.prototype.freeze = function () {\r\n var _this = this;\r\n this.getTrainableParams().forEach(function (_a) {\r\n var path = _a.path, variable = _a.tensor;\r\n var tensor = tf.tensor(variable.dataSync());\r\n variable.dispose();\r\n _this.reassignParamFromPath(path, tensor);\r\n });\r\n };\r\n NeuralNetwork.prototype.dispose = function (throwOnRedispose) {\r\n if (throwOnRedispose === void 0) { throwOnRedispose = true; }\r\n this.getParamList().forEach(function (param) {\r\n if (throwOnRedispose && param.tensor.isDisposed) {\r\n throw new Error(\"param tensor has already been disposed for path \" + param.path);\r\n }\r\n param.tensor.dispose();\r\n });\r\n this._params = undefined;\r\n };\r\n NeuralNetwork.prototype.serializeParams = function () {\r\n return new Float32Array(this.getParamList()\r\n .map(function (_a) {\r\n var tensor = _a.tensor;\r\n return Array.from(tensor.dataSync());\r\n })\r\n .reduce(function (flat, arr) { return flat.concat(arr); }));\r\n };\r\n NeuralNetwork.prototype.load = function (weightsOrUrl) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (weightsOrUrl instanceof Float32Array) {\r\n this.extractWeights(weightsOrUrl);\r\n return [2 /*return*/];\r\n }\r\n return [4 /*yield*/, this.loadFromUri(weightsOrUrl)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n NeuralNetwork.prototype.loadFromUri = function (uri) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var weightMap;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (uri && typeof uri !== 'string') {\r\n throw new Error(this._name + \".loadFromUri - expected model uri\");\r\n }\r\n return [4 /*yield*/, loadWeightMap(uri, this.getDefaultModelName())];\r\n case 1:\r\n weightMap = _a.sent();\r\n this.loadFromWeightMap(weightMap);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n NeuralNetwork.prototype.loadFromDisk = function (filePath) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var readFile, _a, manifestUri, modelBaseUri, fetchWeightsFromDisk, loadWeights, manifest, _b, _c, weightMap;\r\n return tslib_1.__generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (filePath && typeof filePath !== 'string') {\r\n throw new Error(this._name + \".loadFromDisk - expected model file path\");\r\n }\r\n readFile = env.getEnv().readFile;\r\n _a = getModelUris(filePath, this.getDefaultModelName()), manifestUri = _a.manifestUri, modelBaseUri = _a.modelBaseUri;\r\n fetchWeightsFromDisk = function (filePaths) { return Promise.all(filePaths.map(function (filePath) { return readFile(filePath).then(function (buf) { return buf.buffer; }); })); };\r\n loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\r\n _c = (_b = JSON).parse;\r\n return [4 /*yield*/, readFile(manifestUri)];\r\n case 1:\r\n manifest = _c.apply(_b, [(_d.sent()).toString()]);\r\n return [4 /*yield*/, loadWeights(manifest, modelBaseUri)];\r\n case 2:\r\n weightMap = _d.sent();\r\n this.loadFromWeightMap(weightMap);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n NeuralNetwork.prototype.loadFromWeightMap = function (weightMap) {\r\n var _a = this.extractParamsFromWeigthMap(weightMap), paramMappings = _a.paramMappings, params = _a.params;\r\n this._paramMappings = paramMappings;\r\n this._params = params;\r\n };\r\n NeuralNetwork.prototype.extractWeights = function (weights) {\r\n var _a = this.extractParams(weights), paramMappings = _a.paramMappings, params = _a.params;\r\n this._paramMappings = paramMappings;\r\n this._params = params;\r\n };\r\n NeuralNetwork.prototype.traversePropertyPath = function (paramPath) {\r\n if (!this.params) {\r\n throw new Error(\"traversePropertyPath - model has no loaded params\");\r\n }\r\n var result = paramPath.split('/').reduce(function (res, objProp) {\r\n if (!res.nextObj.hasOwnProperty(objProp)) {\r\n throw new Error(\"traversePropertyPath - object does not have property \" + objProp + \", for path \" + paramPath);\r\n }\r\n return { obj: res.nextObj, objProp: objProp, nextObj: res.nextObj[objProp] };\r\n }, { nextObj: this.params });\r\n var obj = result.obj, objProp = result.objProp;\r\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\r\n throw new Error(\"traversePropertyPath - parameter is not a tensor, for path \" + paramPath);\r\n }\r\n return { obj: obj, objProp: objProp };\r\n };\r\n return NeuralNetwork;\r\n}());\r\nexport { NeuralNetwork };\r\n//# sourceMappingURL=NeuralNetwork.js.map","import { Box, IDimensions, ObjectDetection, Rect } from 'tfjs-image-recognition-base';\r\n\r\nexport interface IFaceDetecion {\r\n score: number\r\n box: Box\r\n}\r\n\r\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\r\n constructor(\r\n score: number,\r\n relativeBox: Rect,\r\n imageDims: IDimensions\r\n ) {\r\n super(score, score, '', relativeBox, imageDims)\r\n }\r\n\r\n public forSize(width: number, height: number): FaceDetection {\r\n return super.forSize(width, height)\r\n }\r\n}","import { Dimensions, getCenterPoint, IDimensions, Point, Rect } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from './FaceDetection';\r\n\r\n// face alignment constants\r\nconst relX = 0.5\r\nconst relY = 0.43\r\nconst relScale = 0.45\r\n\r\nexport interface IFaceLandmarks {\r\n positions: Point[]\r\n shift: Point\r\n}\r\n\r\nexport class FaceLandmarks implements IFaceLandmarks {\r\n protected _shift: Point\r\n protected _positions: Point[]\r\n protected _imgDims: Dimensions\r\n\r\n constructor(\r\n relativeFaceLandmarkPositions: Point[],\r\n imgDims: IDimensions,\r\n shift: Point = new Point(0, 0)\r\n ) {\r\n const { width, height } = imgDims\r\n this._imgDims = new Dimensions(width, height)\r\n this._shift = shift\r\n this._positions = relativeFaceLandmarkPositions.map(\r\n pt => pt.mul(new Point(width, height)).add(shift)\r\n )\r\n }\r\n\r\n public get shift(): Point { return new Point(this._shift.x, this._shift.y) }\r\n public get imageWidth(): number { return this._imgDims.width }\r\n public get imageHeight(): number { return this._imgDims.height }\r\n public get positions(): Point[] { return this._positions }\r\n public get relativePositions(): Point[] {\r\n return this._positions.map(\r\n pt => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight))\r\n )\r\n }\r\n\r\n public forSize(width: number, height: number): T {\r\n return new (this.constructor as any)(\r\n this.relativePositions,\r\n { width, height }\r\n )\r\n }\r\n\r\n public shiftBy(x: number, y: number): T {\r\n return new (this.constructor as any)(\r\n this.relativePositions,\r\n this._imgDims,\r\n new Point(x, y)\r\n )\r\n }\r\n\r\n public shiftByPoint(pt: Point): T {\r\n return this.shiftBy(pt.x, pt.y)\r\n }\r\n\r\n /**\r\n * Aligns the face landmarks after face detection from the relative positions of the faces\r\n * bounding box, or it's current shift. This function should be used to align the face images\r\n * after face detection has been performed, before they are passed to the face recognition net.\r\n * This will make the computed face descriptor more accurate.\r\n *\r\n * @param detection (optional) The bounding box of the face or the face detection result. If\r\n * no argument was passed the position of the face landmarks are assumed to be relative to\r\n * it's current shift.\r\n * @returns The bounding box of the aligned face.\r\n */\r\n public align(\r\n detection?: FaceDetection | Rect\r\n ): Rect {\r\n if (detection) {\r\n const box = detection instanceof FaceDetection\r\n ? detection.box.floor()\r\n : detection\r\n\r\n return this.shiftBy(box.x, box.y).align()\r\n }\r\n\r\n const centers = this.getRefPointsForAlignment()\r\n\r\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers\r\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude()\r\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2\r\n\r\n const size = Math.floor(eyeToMouthDist / relScale)\r\n\r\n const refPoint = getCenterPoint(centers)\r\n // TODO: pad in case rectangle is out of image bounds\r\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)))\r\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)))\r\n\r\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y))\r\n }\r\n\r\n protected getRefPointsForAlignment(): Point[] {\r\n throw new Error('getRefPointsForAlignment not implemented by base class')\r\n }\r\n}","import { getCenterPoint, Point } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks } from './FaceLandmarks';\r\n\r\nexport class FaceLandmarks5 extends FaceLandmarks {\r\n\r\n protected getRefPointsForAlignment(): Point[] {\r\n const pts = this.positions\r\n return [\r\n pts[0],\r\n pts[1],\r\n getCenterPoint([pts[3], pts[4]])\r\n ]\r\n }\r\n}","import { getCenterPoint, Point } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\r\n\r\nexport class FaceLandmarks68 extends FaceLandmarks {\r\n public getJawOutline(): Point[] {\r\n return this.positions.slice(0, 17)\r\n }\r\n\r\n public getLeftEyeBrow(): Point[] {\r\n return this.positions.slice(17, 22)\r\n }\r\n\r\n public getRightEyeBrow(): Point[] {\r\n return this.positions.slice(22, 27)\r\n }\r\n\r\n public getNose(): Point[] {\r\n return this.positions.slice(27, 36)\r\n }\r\n\r\n public getLeftEye(): Point[] {\r\n return this.positions.slice(36, 42)\r\n }\r\n\r\n public getRightEye(): Point[] {\r\n return this.positions.slice(42, 48)\r\n }\r\n\r\n public getMouth(): Point[] {\r\n return this.positions.slice(48, 68)\r\n }\r\n\r\n protected getRefPointsForAlignment(): Point[] {\r\n return [\r\n this.getLeftEye(),\r\n this.getRightEye(),\r\n this.getMouth()\r\n ].map(getCenterPoint)\r\n }\r\n}","import { round } from 'tfjs-image-recognition-base';\r\n\r\nexport interface IFaceMatch {\r\n label: string\r\n distance: number\r\n}\r\n\r\nexport class FaceMatch implements IFaceMatch {\r\n private _label: string\r\n private _distance: number\r\n\r\n constructor(label: string, distance: number) {\r\n this._label = label\r\n this._distance = distance\r\n }\r\n\r\n public get label(): string { return this._label }\r\n public get distance(): number { return this._distance }\r\n\r\n public toString(withDistance: boolean = true): string {\r\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`\r\n }\r\n}","export class LabeledFaceDescriptors {\r\n private _label: string\r\n private _descriptors: Float32Array[]\r\n\r\n constructor(label: string, descriptors: Float32Array[]) {\r\n if (!(typeof label === 'string')) {\r\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string')\r\n }\r\n\r\n if (!Array.isArray(descriptors) || descriptors.some(desc => !(desc instanceof Float32Array))) {\r\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array')\r\n }\r\n\r\n this._label = label\r\n this._descriptors = descriptors\r\n }\r\n\r\n public get label(): string { return this._label }\r\n public get descriptors(): Float32Array[] { return this._descriptors }\r\n}","import { Point } from 'tfjs-image-recognition-base';\r\n\r\nexport function drawContour(\r\n ctx: CanvasRenderingContext2D,\r\n points: Point[],\r\n isClosed: boolean = false\r\n) {\r\n ctx.beginPath()\r\n\r\n points.slice(1).forEach(({ x, y }, prevIdx) => {\r\n const from = points[prevIdx]\r\n ctx.moveTo(from.x, from.y)\r\n ctx.lineTo(x, y)\r\n })\r\n\r\n if (isClosed) {\r\n const from = points[points.length - 1]\r\n const to = points[0]\r\n if (!from || !to) {\r\n return\r\n }\r\n\r\n ctx.moveTo(from.x, from.y)\r\n ctx.lineTo(to.x, to.y)\r\n }\r\n\r\n ctx.stroke()\r\n}","import { env, getContext2dOrThrow, getDefaultDrawOptions, resolveInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { drawContour } from './drawContour';\r\nimport { DrawLandmarksOptions } from './types';\r\n\r\nexport function drawLandmarks(\r\n canvasArg: string | HTMLCanvasElement,\r\n faceLandmarks: FaceLandmarks | FaceLandmarks[],\r\n options?: DrawLandmarksOptions\r\n) {\r\n const canvas = resolveInput(canvasArg)\r\n if (!(canvas instanceof env.getEnv().Canvas)) {\r\n throw new Error('drawLandmarks - expected canvas to be of type: HTMLCanvasElement')\r\n }\r\n\r\n const drawOptions = Object.assign(\r\n getDefaultDrawOptions(options),\r\n (options || {})\r\n )\r\n\r\n const { drawLines } = Object.assign({ drawLines: false }, (options || {}))\r\n\r\n const ctx = getContext2dOrThrow(canvas)\r\n const { lineWidth, color = 'blue' } = drawOptions\r\n\r\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks]\r\n\r\n faceLandmarksArray.forEach(landmarks => {\r\n if (drawLines && landmarks instanceof FaceLandmarks68) {\r\n ctx.strokeStyle = color\r\n ctx.lineWidth = lineWidth\r\n drawContour(ctx, landmarks.getJawOutline())\r\n drawContour(ctx, landmarks.getLeftEyeBrow())\r\n drawContour(ctx, landmarks.getRightEyeBrow())\r\n drawContour(ctx, landmarks.getNose())\r\n drawContour(ctx, landmarks.getLeftEye(), true)\r\n drawContour(ctx, landmarks.getRightEye(), true)\r\n drawContour(ctx, landmarks.getMouth(), true)\r\n return\r\n }\r\n\r\n // else draw points\r\n const ptOffset = lineWidth / 2\r\n ctx.fillStyle = color\r\n landmarks.positions.forEach(pt => ctx.fillRect(pt.x - ptOffset, pt.y - ptOffset, lineWidth, lineWidth))\r\n })\r\n}","import { drawText, env, getContext2dOrThrow, getDefaultDrawOptions, resolveInput, round } from 'tfjs-image-recognition-base';\r\nimport { IRect } from 'tfjs-tiny-yolov2';\r\n\r\nimport { DrawFaceExpressionsInput, DrawFaceExpressionsOptions } from './types';\r\n\r\nexport function drawFaceExpressions(\r\n canvasArg: string | HTMLCanvasElement,\r\n faceExpressions: DrawFaceExpressionsInput | DrawFaceExpressionsInput[],\r\n options?: DrawFaceExpressionsOptions\r\n) {\r\n const canvas = resolveInput(canvasArg)\r\n if (!(canvas instanceof env.getEnv().Canvas)) {\r\n throw new Error('drawFaceExpressions - expected canvas to be of type: HTMLCanvasElement')\r\n }\r\n\r\n const drawOptions = Object.assign(\r\n getDefaultDrawOptions(options),\r\n (options || {})\r\n )\r\n\r\n const ctx = getContext2dOrThrow(canvas)\r\n const {\r\n primaryColor = 'red',\r\n secondaryColor = 'blue',\r\n primaryFontSize = 22,\r\n secondaryFontSize = 16,\r\n minConfidence = 0.2\r\n } = drawOptions\r\n\r\n const faceExpressionsArray = Array.isArray(faceExpressions)\r\n ? faceExpressions\r\n : [faceExpressions]\r\n\r\n faceExpressionsArray.forEach(({ position, expressions }) => {\r\n const { x, y } = position\r\n const height = (position as IRect).height || 0\r\n const sorted = expressions.sort((a, b) => b.probability - a.probability)\r\n const resultsToDisplay = sorted.filter(expr => expr.probability > minConfidence)\r\n\r\n let offset = (y + height + resultsToDisplay.length * primaryFontSize) > canvas.height\r\n ? -(resultsToDisplay.length * primaryFontSize)\r\n : 0\r\n resultsToDisplay.forEach((expr, i) => {\r\n const text = `${expr.expression} (${round(expr.probability)})`\r\n drawText(\r\n ctx,\r\n x,\r\n y + height + (i * primaryFontSize) + offset,\r\n text,\r\n {\r\n textColor: i === 0 ? primaryColor : secondaryColor,\r\n fontSize: i === 0 ? primaryFontSize : secondaryFontSize\r\n }\r\n )\r\n })\r\n })\r\n\r\n\r\n}","import {\r\n createCanvas,\r\n env,\r\n getContext2dOrThrow,\r\n imageTensorToCanvas,\r\n Rect,\r\n TNetInput,\r\n toNetInput,\r\n} from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\n\r\n/**\r\n * Extracts the image regions containing the detected faces.\r\n *\r\n * @param input The image that face detection has been performed on.\r\n * @param detections The face detection results or face bounding boxes for that image.\r\n * @returns The Canvases of the corresponding image region for each detected face.\r\n */\r\nexport async function extractFaces(\r\n input: TNetInput,\r\n detections: Array\r\n): Promise {\r\n\r\n const { Canvas } = env.getEnv()\r\n\r\n let canvas = input as HTMLCanvasElement\r\n\r\n if (!(input instanceof Canvas)) {\r\n const netInput = await toNetInput(input)\r\n\r\n if (netInput.batchSize > 1) {\r\n throw new Error('extractFaces - batchSize > 1 not supported')\r\n }\r\n\r\n const tensorOrCanvas = netInput.getInput(0)\r\n canvas = tensorOrCanvas instanceof Canvas\r\n ? tensorOrCanvas\r\n : await imageTensorToCanvas(tensorOrCanvas)\r\n }\r\n\r\n const ctx = getContext2dOrThrow(canvas)\r\n const boxes = detections.map(\r\n det => det instanceof FaceDetection\r\n ? det.forSize(canvas.width, canvas.height).box.floor()\r\n : det\r\n )\r\n .map(box => box.clipAtImageBorders(canvas.width, canvas.height))\r\n\r\n return boxes.map(({ x, y, width, height }) => {\r\n const faceImg = createCanvas({ width, height })\r\n getContext2dOrThrow(faceImg)\r\n .putImageData(ctx.getImageData(x, y, width, height), 0, 0)\r\n return faceImg\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { isTensor4D, Rect, isTensor3D } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\n\r\n/**\r\n * Extracts the tensors of the image regions containing the detected faces.\r\n * Useful if you want to compute the face descriptors for the face images.\r\n * Using this method is faster then extracting a canvas for each face and\r\n * converting them to tensors individually.\r\n *\r\n * @param imageTensor The image tensor that face detection has been performed on.\r\n * @param detections The face detection results or face bounding boxes for that image.\r\n * @returns Tensors of the corresponding image region for each detected face.\r\n */\r\nexport async function extractFaceTensors(\r\n imageTensor: tf.Tensor3D | tf.Tensor4D,\r\n detections: Array\r\n): Promise {\r\n\r\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\r\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D')\r\n }\r\n\r\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\r\n throw new Error('extractFaceTensors - batchSize > 1 not supported')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0)\r\n\r\n const boxes = detections.map(\r\n det => det instanceof FaceDetection\r\n ? det.forSize(imgWidth, imgHeight).box\r\n : det\r\n )\r\n .map(box => box.clipAtImageBorders(imgWidth, imgHeight))\r\n\r\n const faceTensors = boxes.map(({ x, y, width, height }) =>\r\n tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels])\r\n )\r\n\r\n return faceTensors\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { SeparableConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nexport function depthwiseSeparableConv(\r\n x: tf.Tensor4D,\r\n params: SeparableConvParams,\r\n stride: [number, number]\r\n): tf.Tensor4D {\r\n return tf.tidy(() => {\r\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same')\r\n out = tf.add(out, params.bias)\r\n return out\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { ConvParams, SeparableConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\r\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\r\n\r\nexport function denseBlock3(\r\n x: tf.Tensor4D,\r\n denseBlockParams: DenseBlock3Params,\r\n isFirstLayer: boolean = false\r\n): tf.Tensor4D {\r\n return tf.tidy(() => {\r\n const out1 = tf.relu(\r\n isFirstLayer\r\n ? tf.add(\r\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\r\n denseBlockParams.conv0.bias\r\n )\r\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2])\r\n ) as tf.Tensor4D\r\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1])\r\n\r\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D\r\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1])\r\n\r\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D\r\n })\r\n}\r\n\r\nexport function denseBlock4(\r\n x: tf.Tensor4D,\r\n denseBlockParams: DenseBlock4Params,\r\n isFirstLayer: boolean = false,\r\n isScaleDown: boolean = true\r\n): tf.Tensor4D {\r\n return tf.tidy(() => {\r\n const out1 = tf.relu(\r\n isFirstLayer\r\n ? tf.add(\r\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\r\n denseBlockParams.conv0.bias\r\n )\r\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1])\r\n ) as tf.Tensor4D\r\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1])\r\n\r\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D\r\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1])\r\n\r\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D\r\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1])\r\n\r\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D\r\n })\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nexport function convLayer(x, params, padding, withRelu) {\r\n if (padding === void 0) { padding = 'same'; }\r\n if (withRelu === void 0) { withRelu = false; }\r\n return tf.tidy(function () {\r\n var out = tf.add(tf.conv2d(x, params.filters, [1, 1], padding), params.bias);\r\n return withRelu ? tf.relu(out) : out;\r\n });\r\n}\r\n//# sourceMappingURL=convLayer.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nexport function extractConvParamsFactory(extractWeights, paramMappings) {\r\n return function (channelsIn, channelsOut, filterSize, mappedPrefix) {\r\n var filters = tf.tensor4d(extractWeights(channelsIn * channelsOut * filterSize * filterSize), [filterSize, filterSize, channelsIn, channelsOut]);\r\n var bias = tf.tensor1d(extractWeights(channelsOut));\r\n paramMappings.push({ paramPath: mappedPrefix + \"/filters\" }, { paramPath: mappedPrefix + \"/bias\" });\r\n return { filters: filters, bias: bias };\r\n };\r\n}\r\n//# sourceMappingURL=extractConvParamsFactory.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nexport function extractFCParamsFactory(extractWeights, paramMappings) {\r\n return function (channelsIn, channelsOut, mappedPrefix) {\r\n var fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\r\n var fc_bias = tf.tensor1d(extractWeights(channelsOut));\r\n paramMappings.push({ paramPath: mappedPrefix + \"/weights\" }, { paramPath: mappedPrefix + \"/bias\" });\r\n return {\r\n weights: fc_weights,\r\n bias: fc_bias\r\n };\r\n };\r\n}\r\n//# sourceMappingURL=extractFCParamsFactory.js.map","var SeparableConvParams = /** @class */ (function () {\r\n function SeparableConvParams(depthwise_filter, pointwise_filter, bias) {\r\n this.depthwise_filter = depthwise_filter;\r\n this.pointwise_filter = pointwise_filter;\r\n this.bias = bias;\r\n }\r\n return SeparableConvParams;\r\n}());\r\nexport { SeparableConvParams };\r\n//# sourceMappingURL=types.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { SeparableConvParams } from './types';\r\nexport function extractSeparableConvParamsFactory(extractWeights, paramMappings) {\r\n return function (channelsIn, channelsOut, mappedPrefix) {\r\n var depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\r\n var pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\r\n var bias = tf.tensor1d(extractWeights(channelsOut));\r\n paramMappings.push({ paramPath: mappedPrefix + \"/depthwise_filter\" }, { paramPath: mappedPrefix + \"/pointwise_filter\" }, { paramPath: mappedPrefix + \"/bias\" });\r\n return new SeparableConvParams(depthwise_filter, pointwise_filter, bias);\r\n };\r\n}\r\nexport function loadSeparableConvParamsFactory(extractWeightEntry) {\r\n return function (prefix) {\r\n var depthwise_filter = extractWeightEntry(prefix + \"/depthwise_filter\", 4);\r\n var pointwise_filter = extractWeightEntry(prefix + \"/pointwise_filter\", 4);\r\n var bias = extractWeightEntry(prefix + \"/bias\", 1);\r\n return new SeparableConvParams(depthwise_filter, pointwise_filter, bias);\r\n };\r\n}\r\n//# sourceMappingURL=extractSeparableConvParamsFactory.js.map","var isNumber = function (arg) { return typeof arg === 'number'; };\r\nexport function validateConfig(config) {\r\n if (!config) {\r\n throw new Error(\"invalid config: \" + config);\r\n }\r\n if (typeof config.withSeparableConvs !== 'boolean') {\r\n throw new Error(\"config.withSeparableConvs has to be a boolean, have: \" + config.withSeparableConvs);\r\n }\r\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\r\n throw new Error(\"config.iouThreshold has to be a number between [0, 1], have: \" + config.iouThreshold);\r\n }\r\n if (!Array.isArray(config.classes)\r\n || !config.classes.length\r\n || !config.classes.every(function (c) { return typeof c === 'string'; })) {\r\n throw new Error(\"config.classes has to be an array class names: string[], have: \" + JSON.stringify(config.classes));\r\n }\r\n if (!Array.isArray(config.anchors)\r\n || !config.anchors.length\r\n || !config.anchors.map(function (a) { return a || {}; }).every(function (a) { return isNumber(a.x) && isNumber(a.y); })) {\r\n throw new Error(\"config.anchors has to be an array of { x: number, y: number }, have: \" + JSON.stringify(config.anchors));\r\n }\r\n if (config.meanRgb && (!Array.isArray(config.meanRgb)\r\n || config.meanRgb.length !== 3\r\n || !config.meanRgb.every(isNumber))) {\r\n throw new Error(\"config.meanRgb has to be an array of shape [number, number, number], have: \" + JSON.stringify(config.meanRgb));\r\n }\r\n}\r\nexport function validateTrainConfig(config) {\r\n if (![config.noObjectScale, config.objectScale, config.coordScale, config.classScale].every(isNumber)) {\r\n throw new Error(\"for training you have to specify noObjectScale, objectScale, coordScale, classScale parameters in your config.json file\");\r\n }\r\n return config;\r\n}\r\n//# sourceMappingURL=config.js.map","export var CELL_SIZE = 32;\r\nexport var DEFAULT_FILTER_SIZES = [\r\n 3, 16, 32, 64, 128, 256, 512, 1024, 1024\r\n];\r\n//# sourceMappingURL=const.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nexport function leaky(x) {\r\n return tf.tidy(function () {\r\n var min = tf.mul(x, tf.scalar(0.10000000149011612));\r\n return tf.add(tf.relu(tf.sub(x, min)), min);\r\n //return tf.maximum(x, min)\r\n });\r\n}\r\n//# sourceMappingURL=leaky.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { leaky } from './leaky';\r\nexport function convWithBatchNorm(x, params) {\r\n return tf.tidy(function () {\r\n var out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]);\r\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\r\n out = tf.sub(out, params.bn.sub);\r\n out = tf.mul(out, params.bn.truediv);\r\n out = tf.add(out, params.conv.bias);\r\n return leaky(out);\r\n });\r\n}\r\n//# sourceMappingURL=convWithBatchNorm.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { leaky } from './leaky';\r\nexport function depthwiseSeparableConv(x, params) {\r\n return tf.tidy(function () {\r\n var out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]);\r\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\r\n out = tf.add(out, params.bias);\r\n return leaky(out);\r\n });\r\n}\r\n//# sourceMappingURL=depthwiseSeparableConv.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightsFactory } from 'tfjs-image-recognition-base';\r\nimport { extractConvParamsFactory } from '../common';\r\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\r\nfunction extractorsFactory(extractWeights, paramMappings) {\r\n var extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\r\n function extractBatchNormParams(size, mappedPrefix) {\r\n var sub = tf.tensor1d(extractWeights(size));\r\n var truediv = tf.tensor1d(extractWeights(size));\r\n paramMappings.push({ paramPath: mappedPrefix + \"/sub\" }, { paramPath: mappedPrefix + \"/truediv\" });\r\n return { sub: sub, truediv: truediv };\r\n }\r\n function extractConvWithBatchNormParams(channelsIn, channelsOut, mappedPrefix) {\r\n var conv = extractConvParams(channelsIn, channelsOut, 3, mappedPrefix + \"/conv\");\r\n var bn = extractBatchNormParams(channelsOut, mappedPrefix + \"/bn\");\r\n return { conv: conv, bn: bn };\r\n }\r\n var extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\r\n return {\r\n extractConvParams: extractConvParams,\r\n extractConvWithBatchNormParams: extractConvWithBatchNormParams,\r\n extractSeparableConvParams: extractSeparableConvParams\r\n };\r\n}\r\nexport function extractParams(weights, config, boxEncodingSize, filterSizes) {\r\n var _a = extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;\r\n var paramMappings = [];\r\n var _b = extractorsFactory(extractWeights, paramMappings), extractConvParams = _b.extractConvParams, extractConvWithBatchNormParams = _b.extractConvWithBatchNormParams, extractSeparableConvParams = _b.extractSeparableConvParams;\r\n var params;\r\n if (config.withSeparableConvs) {\r\n var s0 = filterSizes[0], s1 = filterSizes[1], s2 = filterSizes[2], s3 = filterSizes[3], s4 = filterSizes[4], s5 = filterSizes[5], s6 = filterSizes[6], s7 = filterSizes[7], s8 = filterSizes[8];\r\n var conv0 = config.isFirstLayerConv2d\r\n ? extractConvParams(s0, s1, 3, 'conv0')\r\n : extractSeparableConvParams(s0, s1, 'conv0');\r\n var conv1 = extractSeparableConvParams(s1, s2, 'conv1');\r\n var conv2 = extractSeparableConvParams(s2, s3, 'conv2');\r\n var conv3 = extractSeparableConvParams(s3, s4, 'conv3');\r\n var conv4 = extractSeparableConvParams(s4, s5, 'conv4');\r\n var conv5 = extractSeparableConvParams(s5, s6, 'conv5');\r\n var conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\r\n var conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\r\n var conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\r\n params = { conv0: conv0, conv1: conv1, conv2: conv2, conv3: conv3, conv4: conv4, conv5: conv5, conv6: conv6, conv7: conv7, conv8: conv8 };\r\n }\r\n else {\r\n var s0 = filterSizes[0], s1 = filterSizes[1], s2 = filterSizes[2], s3 = filterSizes[3], s4 = filterSizes[4], s5 = filterSizes[5], s6 = filterSizes[6], s7 = filterSizes[7], s8 = filterSizes[8];\r\n var conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\r\n var conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\r\n var conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\r\n var conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\r\n var conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\r\n var conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\r\n var conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\r\n var conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\r\n var conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\r\n params = { conv0: conv0, conv1: conv1, conv2: conv2, conv3: conv3, conv4: conv4, conv5: conv5, conv6: conv6, conv7: conv7, conv8: conv8 };\r\n }\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(\"weights remaing after extract: \" + getRemainingWeights().length);\r\n }\r\n return { params: params, paramMappings: paramMappings };\r\n}\r\n//# sourceMappingURL=extractParams.js.map","import { disposeUnusedWeightTensors, extractWeightEntryFactory } from 'tfjs-image-recognition-base';\r\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\r\nfunction extractorsFactory(weightMap, paramMappings) {\r\n var extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\r\n function extractBatchNormParams(prefix) {\r\n var sub = extractWeightEntry(prefix + \"/sub\", 1);\r\n var truediv = extractWeightEntry(prefix + \"/truediv\", 1);\r\n return { sub: sub, truediv: truediv };\r\n }\r\n function extractConvParams(prefix) {\r\n var filters = extractWeightEntry(prefix + \"/filters\", 4);\r\n var bias = extractWeightEntry(prefix + \"/bias\", 1);\r\n return { filters: filters, bias: bias };\r\n }\r\n function extractConvWithBatchNormParams(prefix) {\r\n var conv = extractConvParams(prefix + \"/conv\");\r\n var bn = extractBatchNormParams(prefix + \"/bn\");\r\n return { conv: conv, bn: bn };\r\n }\r\n var extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\r\n return {\r\n extractConvParams: extractConvParams,\r\n extractConvWithBatchNormParams: extractConvWithBatchNormParams,\r\n extractSeparableConvParams: extractSeparableConvParams\r\n };\r\n}\r\nexport function extractParamsFromWeigthMap(weightMap, config) {\r\n var paramMappings = [];\r\n var _a = extractorsFactory(weightMap, paramMappings), extractConvParams = _a.extractConvParams, extractConvWithBatchNormParams = _a.extractConvWithBatchNormParams, extractSeparableConvParams = _a.extractSeparableConvParams;\r\n var params;\r\n if (config.withSeparableConvs) {\r\n var numFilters = (config.filterSizes && config.filterSizes.length || 9);\r\n params = {\r\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\r\n conv1: extractSeparableConvParams('conv1'),\r\n conv2: extractSeparableConvParams('conv2'),\r\n conv3: extractSeparableConvParams('conv3'),\r\n conv4: extractSeparableConvParams('conv4'),\r\n conv5: extractSeparableConvParams('conv5'),\r\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\r\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\r\n conv8: extractConvParams('conv8')\r\n };\r\n }\r\n else {\r\n params = {\r\n conv0: extractConvWithBatchNormParams('conv0'),\r\n conv1: extractConvWithBatchNormParams('conv1'),\r\n conv2: extractConvWithBatchNormParams('conv2'),\r\n conv3: extractConvWithBatchNormParams('conv3'),\r\n conv4: extractConvWithBatchNormParams('conv4'),\r\n conv5: extractConvWithBatchNormParams('conv5'),\r\n conv6: extractConvWithBatchNormParams('conv6'),\r\n conv7: extractConvWithBatchNormParams('conv7'),\r\n conv8: extractConvParams('conv8')\r\n };\r\n }\r\n disposeUnusedWeightTensors(weightMap, paramMappings);\r\n return { params: params, paramMappings: paramMappings };\r\n}\r\n//# sourceMappingURL=extractParamsFromWeigthMap.js.map","export var TinyYolov2SizeType;\r\n(function (TinyYolov2SizeType) {\r\n TinyYolov2SizeType[TinyYolov2SizeType[\"XS\"] = 224] = \"XS\";\r\n TinyYolov2SizeType[TinyYolov2SizeType[\"SM\"] = 320] = \"SM\";\r\n TinyYolov2SizeType[TinyYolov2SizeType[\"MD\"] = 416] = \"MD\";\r\n TinyYolov2SizeType[TinyYolov2SizeType[\"LG\"] = 608] = \"LG\";\r\n})(TinyYolov2SizeType || (TinyYolov2SizeType = {}));\r\nvar TinyYolov2Options = /** @class */ (function () {\r\n function TinyYolov2Options(_a) {\r\n var _b = _a === void 0 ? {} : _a, inputSize = _b.inputSize, scoreThreshold = _b.scoreThreshold;\r\n this._name = 'TinyYolov2Options';\r\n this._inputSize = inputSize || 416;\r\n this._scoreThreshold = scoreThreshold || 0.5;\r\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\r\n throw new Error(this._name + \" - expected inputSize to be a number divisible by 32\");\r\n }\r\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\r\n throw new Error(this._name + \" - expected scoreThreshold to be a number between 0 and 1\");\r\n }\r\n }\r\n Object.defineProperty(TinyYolov2Options.prototype, \"inputSize\", {\r\n get: function () { return this._inputSize; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2Options.prototype, \"scoreThreshold\", {\r\n get: function () { return this._scoreThreshold; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TinyYolov2Options;\r\n}());\r\nexport { TinyYolov2Options };\r\n//# sourceMappingURL=TinyYolov2Options.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { BoundingBox, NeuralNetwork, nonMaxSuppression, normalize, ObjectDetection, sigmoid, toNetInput, } from 'tfjs-image-recognition-base';\r\nimport { convLayer } from '../common';\r\nimport { validateConfig } from './config';\r\nimport { DEFAULT_FILTER_SIZES } from './const';\r\nimport { convWithBatchNorm } from './convWithBatchNorm';\r\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { leaky } from './leaky';\r\nimport { TinyYolov2Options } from './TinyYolov2Options';\r\nvar TinyYolov2 = /** @class */ (function (_super) {\r\n tslib_1.__extends(TinyYolov2, _super);\r\n function TinyYolov2(config) {\r\n var _this = _super.call(this, 'TinyYolov2') || this;\r\n validateConfig(config);\r\n _this._config = config;\r\n return _this;\r\n }\r\n Object.defineProperty(TinyYolov2.prototype, \"config\", {\r\n get: function () {\r\n return this._config;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2.prototype, \"withClassScores\", {\r\n get: function () {\r\n return this.config.withClassScores || this.config.classes.length > 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2.prototype, \"boxEncodingSize\", {\r\n get: function () {\r\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TinyYolov2.prototype.runTinyYolov2 = function (x, params) {\r\n var out = convWithBatchNorm(x, params.conv0);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv1);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv2);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv3);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv4);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv5);\r\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\r\n out = convWithBatchNorm(out, params.conv6);\r\n out = convWithBatchNorm(out, params.conv7);\r\n return convLayer(out, params.conv8, 'valid', false);\r\n };\r\n TinyYolov2.prototype.runMobilenet = function (x, params) {\r\n var out = this.config.isFirstLayerConv2d\r\n ? leaky(convLayer(x, params.conv0, 'valid', false))\r\n : depthwiseSeparableConv(x, params.conv0);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv1);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv2);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv3);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv4);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv5);\r\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\r\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\r\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\r\n return convLayer(out, params.conv8, 'valid', false);\r\n };\r\n TinyYolov2.prototype.forwardInput = function (input, inputSize) {\r\n var _this = this;\r\n var params = this.params;\r\n if (!params) {\r\n throw new Error('TinyYolov2 - load model before inference');\r\n }\r\n return tf.tidy(function () {\r\n var batchTensor = input.toBatchTensor(inputSize, false).toFloat();\r\n batchTensor = _this.config.meanRgb\r\n ? normalize(batchTensor, _this.config.meanRgb)\r\n : batchTensor;\r\n batchTensor = batchTensor.div(tf.scalar(256));\r\n return _this.config.withSeparableConvs\r\n ? _this.runMobilenet(batchTensor, params)\r\n : _this.runTinyYolov2(batchTensor, params);\r\n });\r\n };\r\n TinyYolov2.prototype.forward = function (input, inputSize) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = this.forwardInput;\r\n return [4 /*yield*/, toNetInput(input)];\r\n case 1: return [4 /*yield*/, _a.apply(this, [_b.sent(), inputSize])];\r\n case 2: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n });\r\n };\r\n TinyYolov2.prototype.detect = function (input, forwardParams) {\r\n if (forwardParams === void 0) { forwardParams = {}; }\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n var _a, inputSize, scoreThreshold, netInput, out, out0, inputDimensions, results, boxes, scores, classScores, classNames, indices, detections;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = new TinyYolov2Options(forwardParams), inputSize = _a.inputSize, scoreThreshold = _a.scoreThreshold;\r\n return [4 /*yield*/, toNetInput(input)];\r\n case 1:\r\n netInput = _b.sent();\r\n return [4 /*yield*/, this.forwardInput(netInput, inputSize)];\r\n case 2:\r\n out = _b.sent();\r\n out0 = tf.tidy(function () { return tf.unstack(out)[0].expandDims(); });\r\n inputDimensions = {\r\n width: netInput.getInputWidth(0),\r\n height: netInput.getInputHeight(0)\r\n };\r\n results = this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\r\n out.dispose();\r\n out0.dispose();\r\n boxes = results.map(function (res) { return res.box; });\r\n scores = results.map(function (res) { return res.score; });\r\n classScores = results.map(function (res) { return res.classScore; });\r\n classNames = results.map(function (res) { return _this.config.classes[res.label]; });\r\n indices = nonMaxSuppression(boxes.map(function (box) { return box.rescale(inputSize); }), scores, this.config.iouThreshold, true);\r\n detections = indices.map(function (idx) {\r\n return new ObjectDetection(scores[idx], classScores[idx], classNames[idx], boxes[idx], inputDimensions);\r\n });\r\n return [2 /*return*/, detections];\r\n }\r\n });\r\n });\r\n };\r\n TinyYolov2.prototype.getDefaultModelName = function () {\r\n return '';\r\n };\r\n TinyYolov2.prototype.extractParamsFromWeigthMap = function (weightMap) {\r\n return extractParamsFromWeigthMap(weightMap, this.config);\r\n };\r\n TinyYolov2.prototype.extractParams = function (weights) {\r\n var filterSizes = this.config.filterSizes || DEFAULT_FILTER_SIZES;\r\n var numFilters = filterSizes ? filterSizes.length : undefined;\r\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\r\n throw new Error(\"TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found \" + numFilters + \" filterSizes in config\");\r\n }\r\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\r\n };\r\n TinyYolov2.prototype.extractBoxes = function (outputTensor, inputBlobDimensions, scoreThreshold) {\r\n var _this = this;\r\n var width = inputBlobDimensions.width, height = inputBlobDimensions.height;\r\n var inputSize = Math.max(width, height);\r\n var correctionFactorX = inputSize / width;\r\n var correctionFactorY = inputSize / height;\r\n var numCells = outputTensor.shape[1];\r\n var numBoxes = this.config.anchors.length;\r\n var _a = tf.tidy(function () {\r\n var reshaped = outputTensor.reshape([numCells, numCells, numBoxes, _this.boxEncodingSize]);\r\n var boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\r\n var scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\r\n var classScores = _this.withClassScores\r\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, _this.config.classes.length]), 3)\r\n : tf.scalar(0);\r\n return [boxes, scores, classScores];\r\n }), boxesTensor = _a[0], scoresTensor = _a[1], classScoresTensor = _a[2];\r\n var results = [];\r\n for (var row = 0; row < numCells; row++) {\r\n for (var col = 0; col < numCells; col++) {\r\n for (var anchor = 0; anchor < numBoxes; anchor++) {\r\n var score = sigmoid(scoresTensor.get(row, col, anchor, 0));\r\n if (!scoreThreshold || score > scoreThreshold) {\r\n var ctX = ((col + sigmoid(boxesTensor.get(row, col, anchor, 0))) / numCells) * correctionFactorX;\r\n var ctY = ((row + sigmoid(boxesTensor.get(row, col, anchor, 1))) / numCells) * correctionFactorY;\r\n var width_1 = ((Math.exp(boxesTensor.get(row, col, anchor, 2)) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\r\n var height_1 = ((Math.exp(boxesTensor.get(row, col, anchor, 3)) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\r\n var x = (ctX - (width_1 / 2));\r\n var y = (ctY - (height_1 / 2));\r\n var pos = { row: row, col: col, anchor: anchor };\r\n var _b = this.withClassScores\r\n ? this.extractPredictedClass(classScoresTensor, pos)\r\n : { classScore: 1, label: 0 }, classScore = _b.classScore, label = _b.label;\r\n results.push(tslib_1.__assign({ box: new BoundingBox(x, y, x + width_1, y + height_1), score: score, classScore: score * classScore, label: label }, pos));\r\n }\r\n }\r\n }\r\n }\r\n boxesTensor.dispose();\r\n scoresTensor.dispose();\r\n classScoresTensor.dispose();\r\n return results;\r\n };\r\n TinyYolov2.prototype.extractPredictedClass = function (classesTensor, pos) {\r\n var row = pos.row, col = pos.col, anchor = pos.anchor;\r\n return Array(this.config.classes.length).fill(0)\r\n .map(function (_, i) { return classesTensor.get(row, col, anchor, i); })\r\n .map(function (classScore, label) { return ({\r\n classScore: classScore,\r\n label: label\r\n }); })\r\n .reduce(function (max, curr) { return max.classScore > curr.classScore ? max : curr; });\r\n };\r\n return TinyYolov2;\r\n}(NeuralNetwork));\r\nexport { TinyYolov2 };\r\n//# sourceMappingURL=TinyYolov2.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { BoundingBox, Dimensions, iou, Rect } from 'tfjs-image-recognition-base';\r\nimport { CELL_SIZE } from './const';\r\nvar TinyYolov2LossFunction = /** @class */ (function () {\r\n function TinyYolov2LossFunction(outputTensor, groundTruth, predictedBoxes, reshapedImgDims, config) {\r\n this._config = config;\r\n this._reshapedImgDims = new Dimensions(reshapedImgDims.width, reshapedImgDims.height);\r\n this._outputTensor = outputTensor;\r\n this._predictedBoxes = predictedBoxes;\r\n this.validateGroundTruthBoxes(groundTruth);\r\n this._groundTruth = this.assignGroundTruthToAnchors(groundTruth);\r\n var groundTruthMask = this.createGroundTruthMask();\r\n var _a = this.createCoordAndScoreMasks(), coordBoxOffsetMask = _a.coordBoxOffsetMask, coordBoxSizeMask = _a.coordBoxSizeMask, scoreMask = _a.scoreMask;\r\n this.noObjectLossMask = tf.tidy(function () { return tf.mul(scoreMask, tf.sub(tf.scalar(1), groundTruthMask)); });\r\n this.objectLossMask = tf.tidy(function () { return tf.mul(scoreMask, groundTruthMask); });\r\n this.coordBoxOffsetMask = tf.tidy(function () { return tf.mul(coordBoxOffsetMask, groundTruthMask); });\r\n this.coordBoxSizeMask = tf.tidy(function () { return tf.mul(coordBoxSizeMask, groundTruthMask); });\r\n var classScoresMask = tf.tidy(function () { return tf.sub(tf.scalar(1), coordBoxOffsetMask.add(coordBoxSizeMask).add(scoreMask)); });\r\n this.groundTruthClassScoresMask = tf.tidy(function () { return tf.mul(classScoresMask, groundTruthMask); });\r\n }\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"config\", {\r\n get: function () {\r\n return this._config;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"reshapedImgDims\", {\r\n get: function () {\r\n return this._reshapedImgDims;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"outputTensor\", {\r\n get: function () {\r\n return this._outputTensor;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"groundTruth\", {\r\n get: function () {\r\n return this._groundTruth;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"predictedBoxes\", {\r\n get: function () {\r\n return this._predictedBoxes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"inputSize\", {\r\n get: function () {\r\n return Math.max(this.reshapedImgDims.width, this.reshapedImgDims.height);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"withClassScores\", {\r\n get: function () {\r\n return this._config.withClassScores || this._config.classes.length > 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"boxEncodingSize\", {\r\n get: function () {\r\n return 5 + (this.withClassScores ? this._config.classes.length : 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"anchors\", {\r\n get: function () {\r\n return this._config.anchors;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"numBoxes\", {\r\n get: function () {\r\n return this.anchors.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"numCells\", {\r\n get: function () {\r\n return this.inputSize / CELL_SIZE;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"gridCellEncodingSize\", {\r\n get: function () {\r\n return this.boxEncodingSize * this.numBoxes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TinyYolov2LossFunction.prototype.toOutputTensorShape = function (tensor) {\r\n var _this = this;\r\n return tf.tidy(function () { return tensor.reshape([1, _this.numCells, _this.numCells, _this.gridCellEncodingSize]); });\r\n };\r\n TinyYolov2LossFunction.prototype.computeLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var noObjectLoss = _this.computeNoObjectLoss();\r\n var objectLoss = _this.computeObjectLoss();\r\n var coordLoss = _this.computeCoordLoss();\r\n var classLoss = _this.withClassScores\r\n ? _this.computeClassLoss()\r\n : tf.scalar(0);\r\n var totalLoss = tf.tidy(function () { return noObjectLoss.add(objectLoss).add(coordLoss).add(classLoss); });\r\n return {\r\n noObjectLoss: noObjectLoss,\r\n objectLoss: objectLoss,\r\n coordLoss: coordLoss,\r\n classLoss: classLoss,\r\n totalLoss: totalLoss\r\n };\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeNoObjectLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n return _this.computeLossTerm(_this.config.noObjectScale, _this.toOutputTensorShape(_this.noObjectLossMask), tf.sigmoid(_this.outputTensor));\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeObjectLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n return _this.computeLossTerm(_this.config.objectScale, _this.toOutputTensorShape(_this.objectLossMask), tf.sub(_this.toOutputTensorShape(_this.computeIous()), tf.sigmoid(_this.outputTensor)));\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeClassLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var classLossTensor = tf.tidy(function () {\r\n var predClassScores = tf.mul(tf.softmax(_this.outputTensor.reshape([_this.numCells, _this.numCells, _this.numBoxes, _this.boxEncodingSize]), 3), _this.groundTruthClassScoresMask);\r\n var gtClassScores = _this.createOneHotClassScoreMask();\r\n return tf.sub(gtClassScores, predClassScores);\r\n });\r\n return _this.computeLossTerm(_this.config.classScale, tf.scalar(1), classLossTensor);\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n return _this.computeLossTerm(_this.config.coordScale, tf.scalar(1), tf.add(_this.computeCoordBoxOffsetError(), _this.computeCoordBoxSizeError()));\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordBoxOffsetError = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var mask = _this.toOutputTensorShape(_this.coordBoxOffsetMask);\r\n var gtBoxOffsets = tf.mul(mask, _this.toOutputTensorShape(_this.computeCoordBoxOffsets()));\r\n var predBoxOffsets = tf.mul(mask, tf.sigmoid(_this.outputTensor));\r\n return tf.sub(gtBoxOffsets, predBoxOffsets);\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordBoxSizeError = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var mask = _this.toOutputTensorShape(_this.coordBoxSizeMask);\r\n var gtBoxSizes = tf.mul(mask, _this.toOutputTensorShape(_this.computeCoordBoxSizes()));\r\n var predBoxSizes = tf.mul(mask, _this.outputTensor);\r\n return tf.sub(gtBoxSizes, predBoxSizes);\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeLossTerm = function (scale, mask, lossTensor) {\r\n var _this = this;\r\n return tf.tidy(function () { return tf.mul(tf.scalar(scale), _this.squaredSumOverMask(mask, lossTensor)); });\r\n };\r\n TinyYolov2LossFunction.prototype.squaredSumOverMask = function (mask, lossTensor) {\r\n return tf.tidy(function () { return tf.sum(tf.square(tf.mul(mask, lossTensor))); });\r\n };\r\n TinyYolov2LossFunction.prototype.validateGroundTruthBoxes = function (groundTruth) {\r\n var _this = this;\r\n groundTruth.forEach(function (_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height, label = _a.label;\r\n if (typeof label !== 'number' || label < 0 || label > (_this.config.classes.length - 1)) {\r\n throw new Error(\"invalid ground truth data, expected label to be a number in [0, \" + (_this.config.classes.length - 1) + \"]\");\r\n }\r\n if (x < 0 || x > 1 || y < 0 || y > 1 || width < 0 || (x + width) > 1 || height < 0 || (y + height) > 1) {\r\n throw new Error(\"invalid ground truth data, box is out of image boundaries \" + JSON.stringify({ x: x, y: y, width: width, height: height }));\r\n }\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.assignGroundTruthToAnchors = function (groundTruth) {\r\n var _this = this;\r\n var groundTruthBoxes = groundTruth\r\n .map(function (_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height, label = _a.label;\r\n return ({\r\n box: new Rect(x, y, width, height),\r\n label: label\r\n });\r\n });\r\n return groundTruthBoxes.map(function (_a) {\r\n var box = _a.box, label = _a.label;\r\n var _b = box.rescale(_this.reshapedImgDims), left = _b.left, top = _b.top, bottom = _b.bottom, right = _b.right, x = _b.x, y = _b.y, width = _b.width, height = _b.height;\r\n var ctX = left + (width / 2);\r\n var ctY = top + (height / 2);\r\n var col = Math.floor((ctX / _this.inputSize) * _this.numCells);\r\n var row = Math.floor((ctY / _this.inputSize) * _this.numCells);\r\n var anchorsByIou = _this.anchors.map(function (anchor, idx) { return ({\r\n idx: idx,\r\n iou: iou(new BoundingBox(0, 0, anchor.x * CELL_SIZE, anchor.y * CELL_SIZE), new BoundingBox(0, 0, width, height))\r\n }); }).sort(function (a1, a2) { return a2.iou - a1.iou; });\r\n var anchor = anchorsByIou[0].idx;\r\n return { row: row, col: col, anchor: anchor, box: box, label: label };\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.createGroundTruthMask = function () {\r\n var _this = this;\r\n var mask = tf.zeros([this.numCells, this.numCells, this.numBoxes, this.boxEncodingSize]);\r\n var buf = mask.buffer();\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor;\r\n for (var i = 0; i < _this.boxEncodingSize; i++) {\r\n buf.set(1, row, col, anchor, i);\r\n }\r\n });\r\n return mask;\r\n };\r\n TinyYolov2LossFunction.prototype.createCoordAndScoreMasks = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var coordBoxOffsetMask = tf.zeros([_this.numCells, _this.numCells, _this.numBoxes, _this.boxEncodingSize]);\r\n var coordBoxSizeMask = tf.zeros([_this.numCells, _this.numCells, _this.numBoxes, _this.boxEncodingSize]);\r\n var scoreMask = tf.zeros([_this.numCells, _this.numCells, _this.numBoxes, _this.boxEncodingSize]);\r\n var coordBoxOffsetBuf = coordBoxOffsetMask.buffer();\r\n var coordBoxSizeBuf = coordBoxSizeMask.buffer();\r\n var scoreBuf = scoreMask.buffer();\r\n for (var row = 0; row < _this.numCells; row++) {\r\n for (var col = 0; col < _this.numCells; col++) {\r\n for (var anchor = 0; anchor < _this.numBoxes; anchor++) {\r\n coordBoxOffsetBuf.set(1, row, col, anchor, 0);\r\n coordBoxOffsetBuf.set(1, row, col, anchor, 1);\r\n coordBoxSizeBuf.set(1, row, col, anchor, 2);\r\n coordBoxSizeBuf.set(1, row, col, anchor, 3);\r\n scoreBuf.set(1, row, col, anchor, 4);\r\n }\r\n }\r\n }\r\n return { coordBoxOffsetMask: coordBoxOffsetMask, coordBoxSizeMask: coordBoxSizeMask, scoreMask: scoreMask };\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.createOneHotClassScoreMask = function () {\r\n var mask = tf.zeros([this.numCells, this.numCells, this.numBoxes, this.boxEncodingSize]);\r\n var buf = mask.buffer();\r\n var classValuesOffset = 5;\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor, label = _a.label;\r\n buf.set(1, row, col, anchor, classValuesOffset + label);\r\n });\r\n return mask;\r\n };\r\n TinyYolov2LossFunction.prototype.computeIous = function () {\r\n var _this = this;\r\n var isSameAnchor = function (p1) { return function (p2) {\r\n return p1.row === p2.row\r\n && p1.col === p2.col\r\n && p1.anchor === p2.anchor;\r\n }; };\r\n var ious = tf.zeros([this.numCells, this.numCells, this.gridCellEncodingSize]);\r\n var buf = ious.buffer();\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor, box = _a.box;\r\n var predBox = _this.predictedBoxes.find(isSameAnchor({ row: row, col: col, anchor: anchor }));\r\n if (!predBox) {\r\n throw new Error(\"no output box found for: row \" + row + \", col \" + col + \", anchor \" + anchor);\r\n }\r\n var boxIou = iou(box.rescale(_this.reshapedImgDims), predBox.box.rescale(_this.reshapedImgDims));\r\n var anchorOffset = _this.boxEncodingSize * anchor;\r\n var scoreValueOffset = 4;\r\n buf.set(boxIou, row, col, anchorOffset + scoreValueOffset);\r\n });\r\n return ious;\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordBoxOffsets = function () {\r\n var _this = this;\r\n var offsets = tf.zeros([this.numCells, this.numCells, this.numBoxes, this.boxEncodingSize]);\r\n var buf = offsets.buffer();\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor, box = _a.box;\r\n var _b = box.rescale(_this.reshapedImgDims), left = _b.left, top = _b.top, right = _b.right, bottom = _b.bottom;\r\n var centerX = (left + right) / 2;\r\n var centerY = (top + bottom) / 2;\r\n var dCenterX = centerX - (col * CELL_SIZE);\r\n var dCenterY = centerY - (row * CELL_SIZE);\r\n // inverseSigmoid(0) === -Infinity, inverseSigmoid(1) === Infinity\r\n //const dx = inverseSigmoid(Math.min(0.999, Math.max(0.001, dCenterX / CELL_SIZE)))\r\n //const dy = inverseSigmoid(Math.min(0.999, Math.max(0.001, dCenterY / CELL_SIZE)))\r\n var dx = dCenterX / CELL_SIZE;\r\n var dy = dCenterY / CELL_SIZE;\r\n buf.set(dx, row, col, anchor, 0);\r\n buf.set(dy, row, col, anchor, 1);\r\n });\r\n return offsets;\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordBoxSizes = function () {\r\n var _this = this;\r\n var sizes = tf.zeros([this.numCells, this.numCells, this.numBoxes, this.boxEncodingSize]);\r\n var buf = sizes.buffer();\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor, box = _a.box;\r\n var _b = box.rescale(_this.reshapedImgDims), width = _b.width, height = _b.height;\r\n var dw = Math.log(width / (_this.anchors[anchor].x * CELL_SIZE));\r\n var dh = Math.log(height / (_this.anchors[anchor].y * CELL_SIZE));\r\n buf.set(dw, row, col, anchor, 2);\r\n buf.set(dh, row, col, anchor, 3);\r\n });\r\n return sizes;\r\n };\r\n return TinyYolov2LossFunction;\r\n}());\r\nexport { TinyYolov2LossFunction };\r\n//# sourceMappingURL=TinyYolov2LossFunction.js.map","import { CELL_SIZE } from './const';\r\nexport function getDefaultBackwardOptions(options) {\r\n return Object.assign({}, {\r\n minBoxSize: CELL_SIZE\r\n }, options);\r\n}\r\n//# sourceMappingURL=getDefaultBackwardOptions.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { computeReshapedDimensions, getMediaDimensions, imageToSquare, Rect, toNetInput, } from 'tfjs-image-recognition-base';\r\nimport { validateTrainConfig } from './config';\r\nimport { getDefaultBackwardOptions } from './getDefaultBackwardOptions';\r\nimport { TinyYolov2 } from './TinyYolov2';\r\nimport { TinyYolov2LossFunction } from './TinyYolov2LossFunction';\r\nvar TinyYolov2Trainable = /** @class */ (function (_super) {\r\n tslib_1.__extends(TinyYolov2Trainable, _super);\r\n function TinyYolov2Trainable(trainableConfig, optimizer) {\r\n var _this = _super.call(this, trainableConfig) || this;\r\n _this._trainableConfig = validateTrainConfig(trainableConfig);\r\n _this._optimizer = optimizer;\r\n return _this;\r\n }\r\n Object.defineProperty(TinyYolov2Trainable.prototype, \"trainableConfig\", {\r\n get: function () {\r\n return this._trainableConfig;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2Trainable.prototype, \"optimizer\", {\r\n get: function () {\r\n return this._optimizer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TinyYolov2Trainable.prototype.backward = function (img, groundTruth, inputSize, options) {\r\n if (options === void 0) { options = {}; }\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n var _a, minBoxSize, reportLosses, reshapedImgDims, filteredGroundTruthBoxes, netInput, loss;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = getDefaultBackwardOptions(options), minBoxSize = _a.minBoxSize, reportLosses = _a.reportLosses;\r\n reshapedImgDims = computeReshapedDimensions(getMediaDimensions(img), inputSize);\r\n filteredGroundTruthBoxes = this.filterGroundTruthBoxes(groundTruth, reshapedImgDims, minBoxSize);\r\n if (!filteredGroundTruthBoxes.length) {\r\n return [2 /*return*/, null];\r\n }\r\n return [4 /*yield*/, toNetInput(imageToSquare(img, inputSize))];\r\n case 1:\r\n netInput = _b.sent();\r\n loss = this.optimizer.minimize(function () {\r\n var _a = _this.computeLoss(_this.forwardInput(netInput, inputSize), filteredGroundTruthBoxes, reshapedImgDims), noObjectLoss = _a.noObjectLoss, objectLoss = _a.objectLoss, coordLoss = _a.coordLoss, classLoss = _a.classLoss, totalLoss = _a.totalLoss;\r\n if (reportLosses) {\r\n var losses = {\r\n totalLoss: totalLoss.dataSync()[0],\r\n noObjectLoss: noObjectLoss.dataSync()[0],\r\n objectLoss: objectLoss.dataSync()[0],\r\n coordLoss: coordLoss.dataSync()[0],\r\n classLoss: classLoss.dataSync()[0]\r\n };\r\n var report = {\r\n losses: losses,\r\n numBoxes: filteredGroundTruthBoxes.length,\r\n inputSize: inputSize\r\n };\r\n reportLosses(report);\r\n }\r\n return totalLoss;\r\n }, true);\r\n return [2 /*return*/, loss];\r\n }\r\n });\r\n });\r\n };\r\n TinyYolov2Trainable.prototype.computeLoss = function (outputTensor, groundTruth, reshapedImgDims) {\r\n var config = validateTrainConfig(this.config);\r\n var inputSize = Math.max(reshapedImgDims.width, reshapedImgDims.height);\r\n if (!inputSize) {\r\n throw new Error(\"computeLoss - invalid inputSize: \" + inputSize);\r\n }\r\n var predictedBoxes = this.extractBoxes(outputTensor, reshapedImgDims);\r\n return tf.tidy(function () {\r\n var lossFunction = new TinyYolov2LossFunction(outputTensor, groundTruth, predictedBoxes, reshapedImgDims, config);\r\n return lossFunction.computeLoss();\r\n });\r\n };\r\n TinyYolov2Trainable.prototype.filterGroundTruthBoxes = function (groundTruth, imgDims, minBoxSize) {\r\n var imgHeight = imgDims.height, imgWidth = imgDims.width;\r\n return groundTruth.filter(function (_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n var box = (new Rect(x, y, width, height))\r\n .rescale({ height: imgHeight, width: imgWidth });\r\n var isTooTiny = box.width < minBoxSize || box.height < minBoxSize;\r\n return !isTooTiny;\r\n });\r\n };\r\n TinyYolov2Trainable.prototype.load = function (weightsOrUrl) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, _super.prototype.load.call(this, weightsOrUrl)];\r\n case 1:\r\n _a.sent();\r\n this.variable();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return TinyYolov2Trainable;\r\n}(TinyYolov2));\r\nexport { TinyYolov2Trainable };\r\n//# sourceMappingURL=TinyYolov2Trainable.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { ExtractWeightsFunction, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { extractConvParamsFactory, FCParams, SeparableConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\r\n\r\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\r\n\r\n function extractSeparableConvParams(channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams {\r\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1])\r\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut])\r\n const bias = tf.tensor1d(extractWeights(channelsOut))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/depthwise_filter` },\r\n { paramPath: `${mappedPrefix}/pointwise_filter` },\r\n { paramPath: `${mappedPrefix}/bias` }\r\n )\r\n\r\n return new SeparableConvParams(\r\n depthwise_filter,\r\n pointwise_filter,\r\n bias\r\n )\r\n }\r\n\r\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings)\r\n\r\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\r\n\r\n const conv0 = isFirstLayer\r\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\r\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`)\r\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`)\r\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`)\r\n\r\n return { conv0, conv1, conv2 }\r\n }\r\n\r\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\r\n\r\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer)\r\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`)\r\n\r\n return { conv0, conv1, conv2, conv3 }\r\n }\r\n\r\n return {\r\n extractDenseBlock3Params,\r\n extractDenseBlock4Params\r\n }\r\n\r\n}","import { extractWeightsFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractorsFactory } from './extractorsFactory';\r\nimport { FaceFeatureExtractorParams } from './types';\r\n\r\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const {\r\n extractDenseBlock4Params\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true)\r\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1')\r\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2')\r\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3')\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return {\r\n paramMappings,\r\n params: { dense0, dense1, dense2, dense3 }\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightEntryFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { ConvParams, SeparableConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\r\n\r\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractConvParams(prefix: string): ConvParams {\r\n const filters = extractWeightEntry(`${prefix}/filters`, 4)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractSeparableConvParams(prefix: string): SeparableConvParams {\r\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4)\r\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n\r\n return new SeparableConvParams(\r\n depthwise_filter,\r\n pointwise_filter,\r\n bias\r\n )\r\n }\r\n\r\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\r\n const conv0 = isFirstLayer\r\n ? extractConvParams(`${prefix}/conv0`)\r\n : extractSeparableConvParams(`${prefix}/conv0`)\r\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`)\r\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`)\r\n\r\n return { conv0, conv1, conv2 }\r\n }\r\n\r\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\r\n const conv0 = isFirstLayer\r\n ? extractConvParams(`${prefix}/conv0`)\r\n : extractSeparableConvParams(`${prefix}/conv0`)\r\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`)\r\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`)\r\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`)\r\n\r\n return { conv0, conv1, conv2, conv3 }\r\n }\r\n\r\n return {\r\n extractDenseBlock3Params,\r\n extractDenseBlock4Params\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { disposeUnusedWeightTensors, ParamMapping } from 'tfjs-image-recognition-base';\r\n\r\nimport { loadParamsFactory } from './loadParamsFactory';\r\nimport { FaceFeatureExtractorParams } from './types';\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractDenseBlock4Params\r\n } = loadParamsFactory(weightMap, paramMappings)\r\n\r\n const params = {\r\n dense0: extractDenseBlock4Params('dense0', true),\r\n dense1: extractDenseBlock4Params('dense1'),\r\n dense2: extractDenseBlock4Params('dense2'),\r\n dense3: extractDenseBlock4Params('dense3')\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, normalize, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { denseBlock4 } from './denseBlock';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\r\n\r\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\r\n\r\n constructor() {\r\n super('FaceFeatureExtractor')\r\n }\r\n\r\n public forwardInput(input: NetInput): tf.Tensor4D {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('FaceFeatureExtractor - load model before inference')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const batchTensor = input.toBatchTensor(112, true)\r\n const meanRgb = [122.782, 117.001, 104.298]\r\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D\r\n\r\n let out = denseBlock4(normalized, params.dense0, true)\r\n out = denseBlock4(out, params.dense1)\r\n out = denseBlock4(out, params.dense2)\r\n out = denseBlock4(out, params.dense3)\r\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid')\r\n\r\n return out\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_feature_extractor_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMap(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParams(weights)\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { FCParams } from 'tfjs-tiny-yolov2';\r\n\r\nexport function fullyConnectedLayer(\r\n x: tf.Tensor2D,\r\n params: FCParams\r\n): tf.Tensor2D {\r\n return tf.tidy(() =>\r\n tf.add(\r\n tf.matMul(x, params.weights),\r\n params.bias\r\n )\r\n )\r\n}","import { extractWeightsFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { extractFCParamsFactory } from 'tfjs-tiny-yolov2';\r\n\r\nimport { NetParams } from './types';\r\n\r\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings)\r\n\r\n const fc = extractFCParams(channelsIn, channelsOut, 'fc')\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return {\r\n paramMappings,\r\n params: { fc }\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { FCParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { NetParams } from './types';\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractFcParams(prefix: string): FCParams {\r\n const weights = extractWeightEntry(`${prefix}/weights`, 2)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n return { weights, bias }\r\n }\r\n\r\n const params = {\r\n fc: extractFcParams('fc')\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\r\n\r\n const featureExtractorMap: tf.NamedTensorMap = {}\r\n const classifierMap: tf.NamedTensorMap = {}\r\n\r\n Object.keys(weightMap).forEach(key => {\r\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap\r\n map[key] = weightMap[key]\r\n })\r\n\r\n return { featureExtractorMap, classifierMap }\r\n\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork } from 'tfjs-image-recognition-base';\r\n\r\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\r\nimport {\r\n FaceFeatureExtractorParams,\r\n IFaceFeatureExtractor,\r\n TinyFaceFeatureExtractorParams,\r\n} from '../faceFeatureExtractor/types';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { NetParams } from './types';\r\nimport { seperateWeightMaps } from './util';\r\n\r\nexport abstract class FaceProcessor<\r\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\r\n>\r\n extends NeuralNetwork {\r\n\r\n protected _faceFeatureExtractor: IFaceFeatureExtractor\r\n\r\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\r\n super(_name)\r\n this._faceFeatureExtractor = faceFeatureExtractor\r\n }\r\n\r\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\r\n return this._faceFeatureExtractor\r\n }\r\n\r\n protected abstract getDefaultModelName(): string\r\n protected abstract getClassifierChannelsIn(): number\r\n protected abstract getClassifierChannelsOut(): number\r\n\r\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error(`${this._name} - load model before inference`)\r\n }\r\n\r\n return tf.tidy(() => {\r\n const bottleneckFeatures = input instanceof NetInput\r\n ? this.faceFeatureExtractor.forwardInput(input)\r\n : input\r\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc)\r\n })\r\n }\r\n\r\n public dispose(throwOnRedispose: boolean = true) {\r\n this.faceFeatureExtractor.dispose(throwOnRedispose)\r\n super.dispose(throwOnRedispose)\r\n }\r\n\r\n public loadClassifierParams(weights: Float32Array) {\r\n const { params, paramMappings } = this.extractClassifierParams(weights)\r\n this._params = params\r\n this._paramMappings = paramMappings\r\n }\r\n\r\n public extractClassifierParams(weights: Float32Array) {\r\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut())\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n\r\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap)\r\n\r\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap)\r\n\r\n return extractParamsFromWeigthMap(classifierMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n\r\n const cIn = this.getClassifierChannelsIn()\r\n const cOut = this.getClassifierChannelsOut()\r\n const classifierWeightSize = (cOut * cIn ) + cOut\r\n\r\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize)\r\n const classifierWeights = weights.slice(weights.length - classifierWeightSize)\r\n\r\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights)\r\n return this.extractClassifierParams(classifierWeights)\r\n }\r\n}","export const faceExpressionLabels = {\r\n neutral: 0,\r\n happy: 1,\r\n sad: 2,\r\n angry: 3,\r\n fearful: 4,\r\n disgusted: 5,\r\n surprised:6\r\n}\r\n\r\nexport type FaceExpression = 'neutral' | 'happy' | 'sad' | 'angry' | 'fearful' | 'disgusted' | 'surprised'\r\n\r\nexport type FaceExpressionPrediction = {\r\n expression: FaceExpression,\r\n probability: number\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\r\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\r\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\r\nimport { FaceExpression, faceExpressionLabels, FaceExpressionPrediction } from './types';\r\n\r\nexport class FaceExpressionNet extends FaceProcessor {\r\n\r\n public static getFaceExpressionLabel(faceExpression: string) {\r\n const label = faceExpressionLabels[faceExpression]\r\n\r\n if (typeof label !== 'number') {\r\n throw new Error(`getFaceExpressionLabel - no label for faceExpression: ${faceExpression}`)\r\n }\r\n\r\n return label\r\n }\r\n\r\n public static decodeProbabilites(probabilities: number[] | Float32Array): FaceExpressionPrediction[] {\r\n if (probabilities.length !== 7) {\r\n throw new Error(`decodeProbabilites - expected probabilities.length to be 7, have: ${probabilities.length}`)\r\n }\r\n\r\n return (Object.keys(faceExpressionLabels) as FaceExpression[])\r\n .map(expression => ({ expression, probability: probabilities[faceExpressionLabels[expression]] }))\r\n }\r\n\r\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\r\n super('FaceExpressionNet', faceFeatureExtractor)\r\n }\r\n\r\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\r\n return tf.tidy(() => tf.softmax(this.runNet(input)))\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n public async predictExpressions(input: TNetInput) {\r\n const netInput = await toNetInput(input)\r\n const out = await this.forwardInput(netInput)\r\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async t => {\r\n const data = await t.data()\r\n t.dispose()\r\n return data\r\n }))\r\n out.dispose()\r\n\r\n const predictionsByBatch = probabilitesByBatch\r\n .map(propablities => FaceExpressionNet.decodeProbabilites(propablities as Float32Array))\r\n\r\n return netInput.isBatchInput\r\n ? predictionsByBatch\r\n : predictionsByBatch[0]\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_expression_model'\r\n }\r\n\r\n protected getClassifierChannelsIn(): number {\r\n return 256\r\n }\r\n\r\n protected getClassifierChannelsOut(): number {\r\n return 7\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { IDimensions, isEven, NetInput, Point, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\r\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\r\n\r\nexport abstract class FaceLandmark68NetBase<\r\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\r\n>\r\n extends FaceProcessor {\r\n\r\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\r\n\r\n const inputDimensions = originalDimensions.map(({ width, height }) => {\r\n const scale = inputSize / Math.max(height, width)\r\n return {\r\n width: width * scale,\r\n height: height * scale\r\n }\r\n })\r\n\r\n const batchSize = inputDimensions.length\r\n\r\n return tf.tidy(() => {\r\n const createInterleavedTensor = (fillX: number, fillY: number) =>\r\n tf.stack([\r\n tf.fill([68], fillX),\r\n tf.fill([68], fillY)\r\n ], 1).as2D(1, 136).as1D()\r\n\r\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\r\n const { width, height } = inputDimensions[batchIdx]\r\n return cond(width, height) ? Math.abs(width - height) / 2 : 0\r\n }\r\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h)\r\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w)\r\n\r\n const landmarkTensors = output\r\n .mul(tf.fill([batchSize, 136], inputSize))\r\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) =>\r\n createInterleavedTensor(\r\n getPaddingX(batchIdx),\r\n getPaddingY(batchIdx)\r\n )\r\n )))\r\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) =>\r\n createInterleavedTensor(\r\n inputDimensions[batchIdx].width,\r\n inputDimensions[batchIdx].height\r\n )\r\n )))\r\n\r\n return landmarkTensors as tf.Tensor2D\r\n })\r\n }\r\n\r\n public forwardInput(input: NetInput): tf.Tensor2D {\r\n return tf.tidy(() => {\r\n const out = this.runNet(input)\r\n return this.postProcess(\r\n out,\r\n input.inputSize as number,\r\n input.inputDimensions.map(([height, width]) => ({ height, width }))\r\n )\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n public async detectLandmarks(input: TNetInput): Promise {\r\n const netInput = await toNetInput(input)\r\n const landmarkTensors = tf.tidy(\r\n () => tf.unstack(this.forwardInput(netInput))\r\n )\r\n\r\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\r\n async (landmarkTensor, batchIdx) => {\r\n const landmarksArray = Array.from(await landmarkTensor.data())\r\n const xCoords = landmarksArray.filter((_, i) => isEven(i))\r\n const yCoords = landmarksArray.filter((_, i) => !isEven(i))\r\n\r\n return new FaceLandmarks68(\r\n Array(68).fill(0).map((_, i) => new Point(xCoords[i], yCoords[i])),\r\n {\r\n height: netInput.getInputHeight(batchIdx),\r\n width : netInput.getInputWidth(batchIdx),\r\n }\r\n )\r\n }\r\n ))\r\n\r\n landmarkTensors.forEach(t => t.dispose())\r\n\r\n return netInput.isBatchInput\r\n ? landmarksForBatch\r\n : landmarksForBatch[0]\r\n }\r\n\r\n protected getClassifierChannelsOut(): number {\r\n return 136\r\n }\r\n}","import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\r\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\r\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\r\n\r\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\r\n\r\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\r\n super('FaceLandmark68Net', faceFeatureExtractor)\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_landmark_68_model'\r\n }\r\n\r\n protected getClassifierChannelsIn(): number {\r\n return 256\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { disposeUnusedWeightTensors, ParamMapping } from 'tfjs-image-recognition-base';\r\n\r\nimport { loadParamsFactory } from './loadParamsFactory';\r\nimport { TinyFaceFeatureExtractorParams } from './types';\r\n\r\nexport function extractParamsFromWeigthMapTiny(\r\n weightMap: tf.NamedTensorMap\r\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractDenseBlock3Params\r\n } = loadParamsFactory(weightMap, paramMappings)\r\n\r\n const params = {\r\n dense0: extractDenseBlock3Params('dense0', true),\r\n dense1: extractDenseBlock3Params('dense1'),\r\n dense2: extractDenseBlock3Params('dense2')\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import { extractWeightsFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractorsFactory } from './extractorsFactory';\r\nimport { TinyFaceFeatureExtractorParams } from './types';\r\n\r\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const {\r\n extractDenseBlock3Params\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true)\r\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1')\r\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2')\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return {\r\n paramMappings,\r\n params: { dense0, dense1, dense2 }\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, normalize, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { denseBlock3 } from './denseBlock';\r\nimport { extractParamsFromWeigthMapTiny } from './extractParamsFromWeigthMapTiny';\r\nimport { extractParamsTiny } from './extractParamsTiny';\r\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\r\n\r\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\r\n\r\n constructor() {\r\n super('TinyFaceFeatureExtractor')\r\n }\r\n\r\n public forwardInput(input: NetInput): tf.Tensor4D {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('TinyFaceFeatureExtractor - load model before inference')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const batchTensor = input.toBatchTensor(112, true)\r\n const meanRgb = [122.782, 117.001, 104.298]\r\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D\r\n\r\n let out = denseBlock3(normalized, params.dense0, true)\r\n out = denseBlock3(out, params.dense1)\r\n out = denseBlock3(out, params.dense2)\r\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid')\r\n\r\n return out\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_feature_extractor_tiny_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMapTiny(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParamsTiny(weights)\r\n }\r\n}","import { TinyFaceFeatureExtractorParams } from 'src/faceFeatureExtractor/types';\r\n\r\nimport { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\r\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\r\n\r\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\r\n\r\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\r\n super('FaceLandmark68TinyNet', faceFeatureExtractor)\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_landmark_68_tiny_model'\r\n }\r\n\r\n protected getClassifierChannelsIn(): number {\r\n return 128\r\n }\r\n}","import { FaceLandmark68Net } from './FaceLandmark68Net';\r\n\r\nexport * from './FaceLandmark68Net';\r\nexport * from './FaceLandmark68TinyNet';\r\n\r\nexport class FaceLandmarkNet extends FaceLandmark68Net {}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { ScaleLayerParams } from './types';\r\n\r\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\r\n return tf.add(tf.mul(x, params.weights), params.biases)\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { scale } from './scaleLayer';\r\nimport { ConvLayerParams } from './types';\r\n\r\n\r\nfunction convLayer(\r\n x: tf.Tensor4D,\r\n params: ConvLayerParams,\r\n strides: [number, number],\r\n withRelu: boolean,\r\n padding: 'valid' | 'same' = 'same'\r\n): tf.Tensor4D {\r\n const { filters, bias } = params.conv\r\n\r\n let out = tf.conv2d(x, filters, strides, padding)\r\n out = tf.add(out, bias)\r\n out = scale(out, params.scale)\r\n return withRelu ? tf.relu(out) : out\r\n}\r\n\r\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\r\n return convLayer(x, params, [1, 1], true)\r\n}\r\n\r\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\r\n return convLayer(x, params, [1, 1], false)\r\n}\r\n\r\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\r\n return convLayer(x, params, [2, 2], true, 'valid')\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightsFactory, ExtractWeightsFunction, isFloat, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { ConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\r\n\r\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\r\n\r\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\r\n const weights = extractWeights(numFilterValues)\r\n const depth = weights.length / (numFilters * filterSize * filterSize)\r\n\r\n if (isFloat(depth)) {\r\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`)\r\n }\r\n\r\n return tf.tidy(\r\n () => tf.transpose(\r\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\r\n [2, 3, 1, 0]\r\n )\r\n )\r\n }\r\n\r\n function extractConvParams(\r\n numFilterValues: number,\r\n numFilters: number,\r\n filterSize: number,\r\n mappedPrefix: string\r\n ): ConvParams {\r\n\r\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize)\r\n const bias = tf.tensor1d(extractWeights(numFilters))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/filters` },\r\n { paramPath: `${mappedPrefix}/bias` }\r\n )\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\r\n\r\n const weights = tf.tensor1d(extractWeights(numWeights))\r\n const biases = tf.tensor1d(extractWeights(numWeights))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/weights` },\r\n { paramPath: `${mappedPrefix}/biases` }\r\n )\r\n\r\n return {\r\n weights,\r\n biases\r\n }\r\n }\r\n\r\n function extractConvLayerParams(\r\n numFilterValues: number,\r\n numFilters: number,\r\n filterSize: number,\r\n mappedPrefix: string\r\n ): ConvLayerParams {\r\n\r\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`)\r\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`)\r\n\r\n return { conv, scale }\r\n }\r\n\r\n function extractResidualLayerParams(\r\n numFilterValues: number,\r\n numFilters: number,\r\n filterSize: number,\r\n mappedPrefix: string,\r\n isDown: boolean = false\r\n ): ResidualLayerParams {\r\n\r\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`)\r\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`)\r\n\r\n return { conv1, conv2 }\r\n }\r\n\r\n return {\r\n extractConvLayerParams,\r\n extractResidualLayerParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractConvLayerParams,\r\n extractResidualLayerParams\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down')\r\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1')\r\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2')\r\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3')\r\n\r\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true)\r\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1')\r\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2')\r\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3')\r\n\r\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true)\r\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1')\r\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2')\r\n\r\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true)\r\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1')\r\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2')\r\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out')\r\n\r\n const fc = tf.tidy(\r\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0])\r\n )\r\n paramMappings.push({ paramPath: `fc` })\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n const params = {\r\n conv32_down,\r\n conv32_1,\r\n conv32_2,\r\n conv32_3,\r\n conv64_down,\r\n conv64_1,\r\n conv64_2,\r\n conv64_3,\r\n conv128_down,\r\n conv128_1,\r\n conv128_2,\r\n conv256_down,\r\n conv256_1,\r\n conv256_2,\r\n conv256_down_out,\r\n fc\r\n }\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport {\r\n disposeUnusedWeightTensors,\r\n extractWeightEntryFactory,\r\n isTensor2D,\r\n loadWeightMap,\r\n ParamMapping,\r\n} from 'tfjs-image-recognition-base';\r\n\r\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\r\n\r\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\r\n\r\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1)\r\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1)\r\n\r\n return { weights, biases }\r\n }\r\n\r\n function extractConvLayerParams(prefix: string): ConvLayerParams {\r\n\r\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4)\r\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1)\r\n const scale = extractScaleLayerParams(prefix)\r\n\r\n return { conv: { filters, bias }, scale }\r\n }\r\n\r\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\r\n return {\r\n conv1: extractConvLayerParams(`${prefix}/conv1`),\r\n conv2: extractConvLayerParams(`${prefix}/conv2`)\r\n }\r\n }\r\n\r\n return {\r\n extractConvLayerParams,\r\n extractResidualLayerParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractConvLayerParams,\r\n extractResidualLayerParams\r\n } = extractorsFactory(weightMap, paramMappings)\r\n\r\n const conv32_down = extractConvLayerParams('conv32_down')\r\n const conv32_1 = extractResidualLayerParams('conv32_1')\r\n const conv32_2 = extractResidualLayerParams('conv32_2')\r\n const conv32_3 = extractResidualLayerParams('conv32_3')\r\n\r\n const conv64_down = extractResidualLayerParams('conv64_down')\r\n const conv64_1 = extractResidualLayerParams('conv64_1')\r\n const conv64_2 = extractResidualLayerParams('conv64_2')\r\n const conv64_3 = extractResidualLayerParams('conv64_3')\r\n\r\n const conv128_down = extractResidualLayerParams('conv128_down')\r\n const conv128_1 = extractResidualLayerParams('conv128_1')\r\n const conv128_2 = extractResidualLayerParams('conv128_2')\r\n\r\n const conv256_down = extractResidualLayerParams('conv256_down')\r\n const conv256_1 = extractResidualLayerParams('conv256_1')\r\n const conv256_2 = extractResidualLayerParams('conv256_2')\r\n const conv256_down_out = extractResidualLayerParams('conv256_down_out')\r\n\r\n const fc = weightMap['fc']\r\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' })\r\n\r\n if (!isTensor2D(fc)) {\r\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`)\r\n }\r\n\r\n const params = {\r\n conv32_down,\r\n conv32_1,\r\n conv32_2,\r\n conv32_3,\r\n conv64_down,\r\n conv64_1,\r\n conv64_2,\r\n conv64_3,\r\n conv128_down,\r\n conv128_1,\r\n conv128_2,\r\n conv256_down,\r\n conv256_1,\r\n conv256_2,\r\n conv256_down_out,\r\n fc\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { conv, convDown, convNoRelu } from './convLayer';\r\nimport { ResidualLayerParams } from './types';\r\n\r\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\r\n let out = conv(x, params.conv1)\r\n out = convNoRelu(out, params.conv2)\r\n out = tf.add(out, x)\r\n out = tf.relu(out)\r\n return out\r\n}\r\n\r\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\r\n let out = convDown(x, params.conv1)\r\n out = convNoRelu(out, params.conv2)\r\n\r\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D\r\n const zeros = tf.zeros(pooled.shape)\r\n const isPad = pooled.shape[3] !== out.shape[3]\r\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2]\r\n\r\n if (isAdjustShape) {\r\n const padShapeX = [...out.shape] as [number, number, number, number]\r\n padShapeX[1] = 1\r\n const zerosW = tf.zeros(padShapeX)\r\n out = tf.concat([out, zerosW], 1)\r\n\r\n const padShapeY = [...out.shape] as [number, number, number, number]\r\n padShapeY[2] = 1\r\n const zerosH = tf.zeros(padShapeY)\r\n out = tf.concat([out, zerosH], 2)\r\n }\r\n\r\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled\r\n out = tf.add(pooled, out) as tf.Tensor4D\r\n\r\n out = tf.relu(out)\r\n return out\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, normalize, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { convDown } from './convLayer';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { residual, residualDown } from './residualLayer';\r\nimport { NetParams } from './types';\r\n\r\n\r\nexport class FaceRecognitionNet extends NeuralNetwork {\r\n\r\n constructor() {\r\n super('FaceRecognitionNet')\r\n }\r\n\r\n public forwardInput(input: NetInput): tf.Tensor2D {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('FaceRecognitionNet - load model before inference')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const batchTensor = input.toBatchTensor(150, true).toFloat()\r\n\r\n const meanRgb = [122.782, 117.001, 104.298]\r\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D\r\n\r\n let out = convDown(normalized, params.conv32_down)\r\n out = tf.maxPool(out, 3, 2, 'valid')\r\n\r\n out = residual(out, params.conv32_1)\r\n out = residual(out, params.conv32_2)\r\n out = residual(out, params.conv32_3)\r\n\r\n out = residualDown(out, params.conv64_down)\r\n out = residual(out, params.conv64_1)\r\n out = residual(out, params.conv64_2)\r\n out = residual(out, params.conv64_3)\r\n\r\n out = residualDown(out, params.conv128_down)\r\n out = residual(out, params.conv128_1)\r\n out = residual(out, params.conv128_2)\r\n\r\n out = residualDown(out, params.conv256_down)\r\n out = residual(out, params.conv256_1)\r\n out = residual(out, params.conv256_2)\r\n out = residualDown(out, params.conv256_down_out)\r\n\r\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D\r\n const fullyConnected = tf.matMul(globalAvg, params.fc)\r\n\r\n return fullyConnected\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n public async computeFaceDescriptor(input: TNetInput): Promise {\r\n const netInput = await toNetInput(input)\r\n\r\n const faceDescriptorTensors = tf.tidy(\r\n () => tf.unstack(this.forwardInput(netInput))\r\n )\r\n\r\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map(\r\n t => t.data()\r\n )) as Float32Array[]\r\n\r\n faceDescriptorTensors.forEach(t => t.dispose())\r\n\r\n return netInput.isBatchInput\r\n ? faceDescriptorsForBatch\r\n : faceDescriptorsForBatch[0]\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_recognition_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMap(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParams(weights)\r\n }\r\n}","import { FaceRecognitionNet } from './FaceRecognitionNet';\r\n\r\nexport * from './FaceRecognitionNet';\r\n\r\nexport function createFaceRecognitionNet(weights: Float32Array) {\r\n const net = new FaceRecognitionNet()\r\n net.extractWeights(weights)\r\n return net\r\n}","export type WithFaceDescriptor = TSource & {\r\n descriptor: Float32Array\r\n}\r\n\r\nexport function extendWithFaceDescriptor<\r\n TSource\r\n> (\r\n sourceObj: TSource,\r\n descriptor: Float32Array\r\n): WithFaceDescriptor {\r\n\r\n const extension = { descriptor }\r\n return Object.assign({}, sourceObj, extension)\r\n}\r\n\r\n","import { FaceDetection } from '../classes/FaceDetection';\r\n\r\nexport type WithFaceDetection = TSource & {\r\n detection: FaceDetection\r\n}\r\n\r\nexport function extendWithFaceDetection<\r\n TSource\r\n> (\r\n sourceObj: TSource,\r\n detection: FaceDetection\r\n): WithFaceDetection {\r\n\r\n const extension = { detection }\r\n return Object.assign({}, sourceObj, extension)\r\n}\r\n","import { FaceExpressionPrediction } from '../faceExpressionNet/types';\r\n\r\nexport type WithFaceExpressions = TSource & {\r\n expressions: FaceExpressionPrediction[]\r\n}\r\n\r\nexport function extendWithFaceExpressions<\r\n TSource\r\n> (\r\n sourceObj: TSource,\r\n expressions: FaceExpressionPrediction[]\r\n): WithFaceExpressions {\r\n\r\n const extension = { expressions }\r\n return Object.assign({}, sourceObj, extension)\r\n}","import { FaceDetection } from '../classes/FaceDetection';\r\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { WithFaceDetection } from './WithFaceDetection';\r\n\r\nexport type WithFaceLandmarks<\r\n TSource extends WithFaceDetection<{}>,\r\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68\r\n> = TSource & {\r\n landmarks: TFaceLandmarks\r\n unshiftedLandmarks: TFaceLandmarks\r\n alignedRect: FaceDetection\r\n}\r\n\r\nexport function extendWithFaceLandmarks<\r\n TSource extends WithFaceDetection<{}>,\r\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68\r\n> (\r\n sourceObj: TSource,\r\n unshiftedLandmarks: TFaceLandmarks\r\n): WithFaceLandmarks {\r\n\r\n const { box: shift } = sourceObj.detection\r\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y)\r\n\r\n const rect = landmarks.align()\r\n const { imageDims } = sourceObj.detection\r\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims)\r\n\r\n const extension = {\r\n landmarks,\r\n unshiftedLandmarks,\r\n alignedRect\r\n }\r\n\r\n return Object.assign({}, sourceObj, extension)\r\n}","export interface IMtcnnOptions {\r\n minFaceSize?: number\r\n scaleFactor?: number\r\n maxNumScales?: number\r\n scoreThresholds?: number[]\r\n scaleSteps?: number[]\r\n}\r\n\r\nexport class MtcnnOptions {\r\n protected _name: string = 'MtcnnOptions'\r\n\r\n private _minFaceSize: number\r\n private _scaleFactor: number\r\n private _maxNumScales: number\r\n private _scoreThresholds: number[]\r\n private _scaleSteps: number[] | undefined\r\n\r\n constructor({ minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps }: IMtcnnOptions = {}) {\r\n this._minFaceSize = minFaceSize || 20\r\n this._scaleFactor = scaleFactor || 0.709\r\n this._maxNumScales = maxNumScales || 10\r\n this._scoreThresholds = scoreThresholds || [0.6, 0.7, 0.7]\r\n this._scaleSteps = scaleSteps\r\n\r\n if (typeof this._minFaceSize !== 'number' || this._minFaceSize < 0) {\r\n throw new Error(`${this._name} - expected minFaceSize to be a number > 0`)\r\n }\r\n\r\n if (typeof this._scaleFactor !== 'number' || this._scaleFactor <= 0 || this._scaleFactor >= 1) {\r\n throw new Error(`${this._name} - expected scaleFactor to be a number between 0 and 1`)\r\n }\r\n\r\n if (typeof this._maxNumScales !== 'number' || this._maxNumScales < 0) {\r\n throw new Error(`${this._name} - expected maxNumScales to be a number > 0`)\r\n }\r\n\r\n if (\r\n !Array.isArray(this._scoreThresholds)\r\n || this._scoreThresholds.length !== 3\r\n || this._scoreThresholds.some(th => typeof th !== 'number')\r\n ) {\r\n throw new Error(`${this._name} - expected scoreThresholds to be an array of numbers of length 3`)\r\n }\r\n\r\n if (\r\n this._scaleSteps\r\n && (!Array.isArray(this._scaleSteps) || this._scaleSteps.some(th => typeof th !== 'number'))\r\n ) {\r\n throw new Error(`${this._name} - expected scaleSteps to be an array of numbers`)\r\n }\r\n }\r\n\r\n get minFaceSize(): number { return this._minFaceSize }\r\n get scaleFactor(): number { return this._scaleFactor }\r\n get maxNumScales(): number { return this._maxNumScales }\r\n get scoreThresholds(): number[] { return this._scoreThresholds }\r\n get scaleSteps(): number[] | undefined { return this._scaleSteps }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { ConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\r\n\r\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\r\n\r\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\r\n\r\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1])\r\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels))\r\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels))\r\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels))\r\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/filters` },\r\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\r\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\r\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\r\n { paramPath: `${mappedPrefix}/batch_norm_variance` }\r\n )\r\n\r\n return {\r\n filters,\r\n batch_norm_scale,\r\n batch_norm_offset,\r\n batch_norm_mean,\r\n batch_norm_variance\r\n }\r\n }\r\n\r\n function extractConvParams(\r\n channelsIn: number,\r\n channelsOut: number,\r\n filterSize: number,\r\n mappedPrefix: string,\r\n isPointwiseConv?: boolean\r\n ): ConvParams {\r\n\r\n const filters = tf.tensor4d(\r\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\r\n [filterSize, filterSize, channelsIn, channelsOut]\r\n )\r\n const bias = tf.tensor1d(extractWeights(channelsOut))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/filters` },\r\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` }\r\n )\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractPointwiseConvParams(\r\n channelsIn: number,\r\n channelsOut: number,\r\n filterSize: number,\r\n mappedPrefix: string\r\n ): PointwiseConvParams {\r\n\r\n const {\r\n filters,\r\n bias\r\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true)\r\n\r\n return {\r\n filters,\r\n batch_norm_offset: bias\r\n }\r\n }\r\n\r\n function extractConvPairParams(\r\n channelsIn: number,\r\n channelsOut: number,\r\n mappedPrefix: string\r\n ): MobileNetV1.ConvPairParams {\r\n\r\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`)\r\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`)\r\n\r\n return { depthwise_conv, pointwise_conv }\r\n }\r\n\r\n function extractMobilenetV1Params(): MobileNetV1.Params {\r\n\r\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0')\r\n\r\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1')\r\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2')\r\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3')\r\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4')\r\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5')\r\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6')\r\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7')\r\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8')\r\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9')\r\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10')\r\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11')\r\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12')\r\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13')\r\n\r\n return {\r\n conv_0,\r\n conv_1,\r\n conv_2,\r\n conv_3,\r\n conv_4,\r\n conv_5,\r\n conv_6,\r\n conv_7,\r\n conv_8,\r\n conv_9,\r\n conv_10,\r\n conv_11,\r\n conv_12,\r\n conv_13\r\n }\r\n }\r\n\r\n function extractPredictionLayerParams(): PredictionLayerParams {\r\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0')\r\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1')\r\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2')\r\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3')\r\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4')\r\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5')\r\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6')\r\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7')\r\n\r\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor')\r\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor')\r\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor')\r\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor')\r\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor')\r\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor')\r\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor')\r\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor')\r\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor')\r\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor')\r\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor')\r\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor')\r\n\r\n const box_predictor_0 = {\r\n box_encoding_predictor: box_encoding_0_predictor,\r\n class_predictor: class_predictor_0\r\n }\r\n const box_predictor_1 = {\r\n box_encoding_predictor: box_encoding_1_predictor,\r\n class_predictor: class_predictor_1\r\n }\r\n const box_predictor_2 = {\r\n box_encoding_predictor: box_encoding_2_predictor,\r\n class_predictor: class_predictor_2\r\n }\r\n const box_predictor_3 = {\r\n box_encoding_predictor: box_encoding_3_predictor,\r\n class_predictor: class_predictor_3\r\n }\r\n const box_predictor_4 = {\r\n box_encoding_predictor: box_encoding_4_predictor,\r\n class_predictor: class_predictor_4\r\n }\r\n const box_predictor_5 = {\r\n box_encoding_predictor: box_encoding_5_predictor,\r\n class_predictor: class_predictor_5\r\n }\r\n\r\n return {\r\n conv_0,\r\n conv_1,\r\n conv_2,\r\n conv_3,\r\n conv_4,\r\n conv_5,\r\n conv_6,\r\n conv_7,\r\n box_predictor_0,\r\n box_predictor_1,\r\n box_predictor_2,\r\n box_predictor_3,\r\n box_predictor_4,\r\n box_predictor_5\r\n }\r\n }\r\n\r\n return {\r\n extractMobilenetV1Params,\r\n extractPredictionLayerParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const {\r\n extractMobilenetV1Params,\r\n extractPredictionLayerParams\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const mobilenetv1 = extractMobilenetV1Params()\r\n const prediction_layer = extractPredictionLayerParams()\r\n const extra_dim = tf.tensor3d(\r\n extractWeights(5118 * 4),\r\n [1, 5118, 4]\r\n )\r\n const output_layer = {\r\n extra_dim\r\n }\r\n\r\n paramMappings.push({ paramPath: 'output_layer/extra_dim' })\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return {\r\n params: {\r\n mobilenetv1,\r\n prediction_layer,\r\n output_layer\r\n },\r\n paramMappings\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport {\r\n disposeUnusedWeightTensors,\r\n extractWeightEntryFactory,\r\n isTensor3D,\r\n ParamMapping,\r\n} from 'tfjs-image-recognition-base';\r\nimport { ConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\r\n\r\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\r\n\r\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`)\r\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`)\r\n\r\n return { filters, batch_norm_offset }\r\n }\r\n\r\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\r\n\r\n const mappedPrefix = `mobilenetv1/conv_${idx}`\r\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`\r\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`\r\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`\r\n\r\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`)\r\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`)\r\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`)\r\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`)\r\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`)\r\n\r\n return {\r\n depthwise_conv: {\r\n filters,\r\n batch_norm_scale,\r\n batch_norm_offset,\r\n batch_norm_mean,\r\n batch_norm_variance\r\n },\r\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv)\r\n }\r\n }\r\n\r\n function extractMobilenetV1Params(): MobileNetV1.Params {\r\n return {\r\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\r\n conv_1: extractConvPairParams(1),\r\n conv_2: extractConvPairParams(2),\r\n conv_3: extractConvPairParams(3),\r\n conv_4: extractConvPairParams(4),\r\n conv_5: extractConvPairParams(5),\r\n conv_6: extractConvPairParams(6),\r\n conv_7: extractConvPairParams(7),\r\n conv_8: extractConvPairParams(8),\r\n conv_9: extractConvPairParams(9),\r\n conv_10: extractConvPairParams(10),\r\n conv_11: extractConvPairParams(11),\r\n conv_12: extractConvPairParams(12),\r\n conv_13: extractConvPairParams(13)\r\n }\r\n }\r\n\r\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\r\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`)\r\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`)\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\r\n\r\n const box_encoding_predictor = extractConvParams(\r\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\r\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`\r\n )\r\n const class_predictor = extractConvParams(\r\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\r\n `prediction_layer/box_predictor_${idx}/class_predictor`\r\n )\r\n\r\n return { box_encoding_predictor, class_predictor }\r\n }\r\n\r\n function extractPredictionLayerParams(): PredictionLayerParams {\r\n return {\r\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\r\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\r\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\r\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\r\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\r\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\r\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\r\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\r\n box_predictor_0: extractBoxPredictorParams(0),\r\n box_predictor_1: extractBoxPredictorParams(1),\r\n box_predictor_2: extractBoxPredictorParams(2),\r\n box_predictor_3: extractBoxPredictorParams(3),\r\n box_predictor_4: extractBoxPredictorParams(4),\r\n box_predictor_5: extractBoxPredictorParams(5)\r\n }\r\n }\r\n\r\n return {\r\n extractMobilenetV1Params,\r\n extractPredictionLayerParams\r\n }\r\n}\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractMobilenetV1Params,\r\n extractPredictionLayerParams\r\n } = extractorsFactory(weightMap, paramMappings)\r\n\r\n const extra_dim = weightMap['Output/extra_dim']\r\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' })\r\n\r\n if (!isTensor3D(extra_dim)) {\r\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`)\r\n }\r\n\r\n const params = {\r\n mobilenetv1: extractMobilenetV1Params(),\r\n prediction_layer: extractPredictionLayerParams(),\r\n output_layer: {\r\n extra_dim\r\n }\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { PointwiseConvParams } from './types';\r\n\r\nexport function pointwiseConvLayer(\r\n x: tf.Tensor4D,\r\n params: PointwiseConvParams,\r\n strides: [number, number]\r\n) {\r\n return tf.tidy(() => {\r\n\r\n let out = tf.conv2d(x, params.filters, strides, 'same')\r\n out = tf.add(out, params.batch_norm_offset)\r\n return tf.clipByValue(out, 0, 6)\r\n\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\r\nimport { MobileNetV1 } from './types';\r\n\r\nconst epsilon = 0.0010000000474974513\r\n\r\nfunction depthwiseConvLayer(\r\n x: tf.Tensor4D,\r\n params: MobileNetV1.DepthwiseConvParams,\r\n strides: [number, number]\r\n) {\r\n return tf.tidy(() => {\r\n\r\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same')\r\n out = tf.batchNormalization(\r\n out,\r\n params.batch_norm_mean,\r\n params.batch_norm_variance,\r\n epsilon,\r\n params.batch_norm_scale,\r\n params.batch_norm_offset\r\n )\r\n return tf.clipByValue(out, 0, 6)\r\n\r\n })\r\n}\r\n\r\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\r\n return [2, 4, 6, 12].some(idx => idx === layerIdx) ? [2, 2] : [1, 1]\r\n}\r\n\r\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\r\n return tf.tidy(() => {\r\n\r\n let conv11 = null\r\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2])\r\n\r\n const convPairParams = [\r\n params.conv_1,\r\n params.conv_2,\r\n params.conv_3,\r\n params.conv_4,\r\n params.conv_5,\r\n params.conv_6,\r\n params.conv_7,\r\n params.conv_8,\r\n params.conv_9,\r\n params.conv_10,\r\n params.conv_11,\r\n params.conv_12,\r\n params.conv_13\r\n ]\r\n\r\n convPairParams.forEach((param, i) => {\r\n const layerIdx = i + 1\r\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx)\r\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides)\r\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1])\r\n if (layerIdx === 11) {\r\n conv11 = out\r\n }\r\n })\r\n\r\n if (conv11 === null) {\r\n throw new Error('mobileNetV1 - output of conv layer 11 is null')\r\n }\r\n\r\n return {\r\n out,\r\n conv11: conv11 as any\r\n }\r\n\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core'\r\n\r\nexport function nonMaxSuppression(\r\n boxes: tf.Tensor2D,\r\n scores: number[],\r\n maxOutputSize: number,\r\n iouThreshold: number,\r\n scoreThreshold: number\r\n): number[] {\r\n\r\n const numBoxes = boxes.shape[0]\r\n const outputSize = Math.min(\r\n maxOutputSize,\r\n numBoxes\r\n )\r\n\r\n const candidates = scores\r\n .map((score, boxIndex) => ({ score, boxIndex }))\r\n .filter(c => c.score > scoreThreshold)\r\n .sort((c1, c2) => c2.score - c1.score)\r\n\r\n const suppressFunc = (x: number) => x <= iouThreshold ? 1 : 0\r\n\r\n const selected: number[] = []\r\n\r\n candidates.forEach(c => {\r\n if (selected.length >= outputSize) {\r\n return\r\n }\r\n const originalScore = c.score\r\n\r\n for (let j = selected.length - 1; j >= 0; --j) {\r\n const iou = IOU(boxes, c.boxIndex, selected[j])\r\n if (iou === 0.0) {\r\n continue\r\n }\r\n c.score *= suppressFunc(iou)\r\n if (c.score <= scoreThreshold) {\r\n break\r\n }\r\n }\r\n\r\n if (originalScore === c.score) {\r\n selected.push(c.boxIndex)\r\n }\r\n })\r\n\r\n return selected\r\n}\r\n\r\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\r\n const yminI = Math.min(boxes.get(i, 0), boxes.get(i, 2))\r\n const xminI = Math.min(boxes.get(i, 1), boxes.get(i, 3))\r\n const ymaxI = Math.max(boxes.get(i, 0), boxes.get(i, 2))\r\n const xmaxI = Math.max(boxes.get(i, 1), boxes.get(i, 3))\r\n const yminJ = Math.min(boxes.get(j, 0), boxes.get(j, 2))\r\n const xminJ = Math.min(boxes.get(j, 1), boxes.get(j, 3))\r\n const ymaxJ = Math.max(boxes.get(j, 0), boxes.get(j, 2))\r\n const xmaxJ = Math.max(boxes.get(j, 1), boxes.get(j, 3))\r\n const areaI = (ymaxI - yminI) * (xmaxI - xminI)\r\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ)\r\n if (areaI <= 0 || areaJ <= 0) {\r\n return 0.0\r\n }\r\n const intersectionYmin = Math.max(yminI, yminJ)\r\n const intersectionXmin = Math.max(xminI, xminJ)\r\n const intersectionYmax = Math.min(ymaxI, ymaxJ)\r\n const intersectionXmax = Math.min(xmaxI, xmaxJ)\r\n const intersectionArea =\r\n Math.max(intersectionYmax - intersectionYmin, 0.0) *\r\n Math.max(intersectionXmax - intersectionXmin, 0.0)\r\n return intersectionArea / (areaI + areaJ - intersectionArea)\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { OutputLayerParams } from './types';\r\n\r\n\r\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\r\n const vec = tf.unstack(tf.transpose(x, [1, 0]))\r\n\r\n const sizes = [\r\n tf.sub(vec[2], vec[0]),\r\n tf.sub(vec[3], vec[1])\r\n ]\r\n\r\n const centers = [\r\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\r\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2)))\r\n ]\r\n\r\n return {\r\n sizes,\r\n centers\r\n }\r\n}\r\n\r\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\r\n const {\r\n sizes,\r\n centers\r\n } = getCenterCoordinatesAndSizesLayer(x0)\r\n\r\n const vec = tf.unstack(tf.transpose(x1, [1, 0]))\r\n\r\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2))\r\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0])\r\n\r\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2))\r\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1])\r\n\r\n return tf.transpose(\r\n tf.stack([\r\n tf.sub(add0_out, div0_out),\r\n tf.sub(add1_out, div1_out),\r\n tf.add(add0_out, div0_out),\r\n tf.add(add1_out, div1_out)\r\n ]),\r\n [1, 0]\r\n )\r\n}\r\n\r\nexport function outputLayer(\r\n boxPredictions: tf.Tensor4D,\r\n classPredictions: tf.Tensor4D,\r\n params: OutputLayerParams\r\n) {\r\n return tf.tidy(() => {\r\n\r\n const batchSize = boxPredictions.shape[0]\r\n\r\n let boxes = decodeBoxesLayer(\r\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\r\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D\r\n )\r\n boxes = tf.reshape(\r\n boxes,\r\n [batchSize, (boxes.shape[0] / batchSize), 4]\r\n )\r\n\r\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]))\r\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor\r\n\r\n scores = tf.reshape(\r\n scores,\r\n [batchSize, scores.shape[1]]\r\n )\r\n\r\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[]\r\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[]\r\n\r\n return {\r\n boxes: boxesByBatch,\r\n scores: scoresByBatch\r\n }\r\n\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { convLayer } from 'tfjs-tiny-yolov2';\r\n\r\nimport { BoxPredictionParams } from './types';\r\n\r\n\r\nexport function boxPredictionLayer(\r\n x: tf.Tensor4D,\r\n params: BoxPredictionParams\r\n) {\r\n return tf.tidy(() => {\r\n\r\n const batchSize = x.shape[0]\r\n\r\n const boxPredictionEncoding = tf.reshape(\r\n convLayer(x, params.box_encoding_predictor),\r\n [batchSize, -1, 1, 4]\r\n )\r\n const classPrediction = tf.reshape(\r\n convLayer(x, params.class_predictor),\r\n [batchSize, -1, 3]\r\n )\r\n\r\n return {\r\n boxPredictionEncoding,\r\n classPrediction\r\n }\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { boxPredictionLayer } from './boxPredictionLayer';\r\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\r\nimport { PredictionLayerParams } from './types';\r\n\r\nexport function predictionLayer(\r\n x: tf.Tensor4D,\r\n conv11: tf.Tensor4D,\r\n params: PredictionLayerParams\r\n) {\r\n return tf.tidy(() => {\r\n\r\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1])\r\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2])\r\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1])\r\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2])\r\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1])\r\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2])\r\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1])\r\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2])\r\n\r\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0)\r\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1)\r\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2)\r\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3)\r\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4)\r\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5)\r\n\r\n const boxPredictions = tf.concat([\r\n boxPrediction0.boxPredictionEncoding,\r\n boxPrediction1.boxPredictionEncoding,\r\n boxPrediction2.boxPredictionEncoding,\r\n boxPrediction3.boxPredictionEncoding,\r\n boxPrediction4.boxPredictionEncoding,\r\n boxPrediction5.boxPredictionEncoding\r\n ], 1) as tf.Tensor4D\r\n\r\n const classPredictions = tf.concat([\r\n boxPrediction0.classPrediction,\r\n boxPrediction1.classPrediction,\r\n boxPrediction2.classPrediction,\r\n boxPrediction3.classPrediction,\r\n boxPrediction4.classPrediction,\r\n boxPrediction5.classPrediction\r\n ], 1) as tf.Tensor4D\r\n\r\n return {\r\n boxPredictions,\r\n classPredictions\r\n }\r\n })\r\n}","export interface ISsdMobilenetv1Options {\r\n minConfidence?: number\r\n maxResults?: number\r\n}\r\n\r\nexport class SsdMobilenetv1Options {\r\n protected _name: string = 'SsdMobilenetv1Options'\r\n\r\n private _minConfidence: number\r\n private _maxResults: number\r\n\r\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\r\n this._minConfidence = minConfidence || 0.5\r\n this._maxResults = maxResults || 100\r\n\r\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\r\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`)\r\n }\r\n\r\n if (typeof this._maxResults !== 'number') {\r\n throw new Error(`${this._name} - expected maxResults to be a number`)\r\n }\r\n }\r\n\r\n get minConfidence(): number { return this._minConfidence }\r\n get maxResults(): number { return this._maxResults }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, Rect, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { mobileNetV1 } from './mobileNetV1';\r\nimport { nonMaxSuppression } from './nonMaxSuppression';\r\nimport { outputLayer } from './outputLayer';\r\nimport { predictionLayer } from './predictionLayer';\r\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\r\nimport { NetParams } from './types';\r\n\r\n\r\nexport class SsdMobilenetv1 extends NeuralNetwork {\r\n\r\n constructor() {\r\n super('SsdMobilenetv1')\r\n }\r\n\r\n public forwardInput(input: NetInput) {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('SsdMobilenetv1 - load model before inference')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const batchTensor = input.toBatchTensor(512, false).toFloat()\r\n\r\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D\r\n const features = mobileNetV1(x, params.mobilenetv1)\r\n\r\n const {\r\n boxPredictions,\r\n classPredictions\r\n } = predictionLayer(features.out, features.conv11, params.prediction_layer)\r\n\r\n return outputLayer(boxPredictions, classPredictions, params.output_layer)\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput) {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n public async locateFaces(\r\n input: TNetInput,\r\n options: ISsdMobilenetv1Options = {}\r\n ): Promise {\r\n\r\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options)\r\n\r\n const netInput = await toNetInput(input)\r\n\r\n const {\r\n boxes: _boxes,\r\n scores: _scores\r\n } = this.forwardInput(netInput)\r\n\r\n\r\n // TODO batches\r\n const boxes = _boxes[0]\r\n const scores = _scores[0]\r\n for (let i = 1; i < _boxes.length; i++) {\r\n _boxes[i].dispose()\r\n _scores[i].dispose()\r\n }\r\n\r\n // TODO find a better way to filter by minConfidence\r\n const scoresData = Array.from(await scores.data())\r\n\r\n const iouThreshold = 0.5\r\n const indices = nonMaxSuppression(\r\n boxes,\r\n scoresData,\r\n maxResults,\r\n iouThreshold,\r\n minConfidence\r\n )\r\n\r\n const reshapedDims = netInput.getReshapedInputDimensions(0)\r\n const inputSize = netInput.inputSize as number\r\n const padX = inputSize / reshapedDims.width\r\n const padY = inputSize / reshapedDims.height\r\n\r\n const results = indices\r\n .map(idx => {\r\n const [top, bottom] = [\r\n Math.max(0, boxes.get(idx, 0)),\r\n Math.min(1.0, boxes.get(idx, 2))\r\n ].map(val => val * padY)\r\n const [left, right] = [\r\n Math.max(0, boxes.get(idx, 1)),\r\n Math.min(1.0, boxes.get(idx, 3))\r\n ].map(val => val * padX)\r\n return new FaceDetection(\r\n scoresData[idx],\r\n new Rect(\r\n left,\r\n top,\r\n right - left,\r\n bottom - top\r\n ),\r\n {\r\n height: netInput.getInputHeight(0),\r\n width: netInput.getInputWidth(0)\r\n }\r\n )\r\n })\r\n\r\n boxes.dispose()\r\n scores.dispose()\r\n\r\n return results\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'ssd_mobilenetv1_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMap(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParams(weights)\r\n }\r\n}","import { SsdMobilenetv1 } from './SsdMobilenetv1';\r\n\r\nexport * from './SsdMobilenetv1';\r\nexport * from './SsdMobilenetv1Options';\r\n\r\nexport function createSsdMobilenetv1(weights: Float32Array) {\r\n const net = new SsdMobilenetv1()\r\n net.extractWeights(weights)\r\n return net\r\n}\r\n\r\nexport function createFaceDetectionNet(weights: Float32Array) {\r\n return createSsdMobilenetv1(weights)\r\n}\r\n\r\n// alias for backward compatibily\r\nexport class FaceDetectionNet extends SsdMobilenetv1 {}","import { ITinyYolov2Options, TinyYolov2Options } from 'tfjs-tiny-yolov2';\r\n\r\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\r\n\r\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\r\n protected _name: string = 'TinyFaceDetectorOptions'\r\n}","export class ComposableTask {\r\n\r\n public async then(\r\n onfulfilled: (value: T) => T | PromiseLike\r\n ): Promise {\r\n return onfulfilled(await this.run())\r\n }\r\n\r\n public async run(): Promise {\r\n throw new Error('ComposableTask - run is not implemented')\r\n }\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nexport function bgrToRgbTensor(tensor: tf.Tensor4D): tf.Tensor4D {\r\n return tf.tidy(\r\n () => tf.stack(tf.unstack(tensor, 3).reverse(), 3)\r\n ) as tf.Tensor4D\r\n}","export const CELL_STRIDE = 2\r\nexport const CELL_SIZE = 12","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { extractConvParamsFactory, extractFCParamsFactory } from 'tfjs-tiny-yolov2';\r\n\r\nimport { NetParams, ONetParams, PNetParams, RNetParams, SharedParams } from './types';\r\n\r\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\r\n\r\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings)\r\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings)\r\n\r\n function extractPReluParams(size: number, paramPath: string): tf.Tensor1D {\r\n const alpha = tf.tensor1d(extractWeights(size))\r\n paramMappings.push({ paramPath })\r\n return alpha\r\n }\r\n\r\n function extractSharedParams(numFilters: number[], mappedPrefix: string, isRnet: boolean = false): SharedParams {\r\n\r\n const conv1 = extractConvParams(numFilters[0], numFilters[1], 3, `${mappedPrefix}/conv1`)\r\n const prelu1_alpha = extractPReluParams(numFilters[1], `${mappedPrefix}/prelu1_alpha`)\r\n const conv2 = extractConvParams(numFilters[1], numFilters[2], 3, `${mappedPrefix}/conv2`)\r\n const prelu2_alpha = extractPReluParams(numFilters[2], `${mappedPrefix}/prelu2_alpha`)\r\n const conv3 = extractConvParams(numFilters[2], numFilters[3], isRnet ? 2 : 3, `${mappedPrefix}/conv3`)\r\n const prelu3_alpha = extractPReluParams(numFilters[3], `${mappedPrefix}/prelu3_alpha`)\r\n\r\n return { conv1, prelu1_alpha, conv2, prelu2_alpha, conv3, prelu3_alpha }\r\n }\r\n\r\n function extractPNetParams(): PNetParams {\r\n\r\n const sharedParams = extractSharedParams([3, 10, 16, 32], 'pnet')\r\n const conv4_1 = extractConvParams(32, 2, 1, 'pnet/conv4_1')\r\n const conv4_2 = extractConvParams(32, 4, 1, 'pnet/conv4_2')\r\n\r\n return { ...sharedParams, conv4_1, conv4_2 }\r\n }\r\n\r\n function extractRNetParams(): RNetParams {\r\n\r\n const sharedParams = extractSharedParams([3, 28, 48, 64], 'rnet', true)\r\n const fc1 = extractFCParams(576, 128, 'rnet/fc1')\r\n const prelu4_alpha = extractPReluParams(128, 'rnet/prelu4_alpha')\r\n const fc2_1 = extractFCParams(128, 2, 'rnet/fc2_1')\r\n const fc2_2 = extractFCParams(128, 4, 'rnet/fc2_2')\r\n\r\n return { ...sharedParams, fc1, prelu4_alpha, fc2_1, fc2_2 }\r\n }\r\n\r\n function extractONetParams(): ONetParams {\r\n\r\n const sharedParams = extractSharedParams([3, 32, 64, 64], 'onet')\r\n const conv4 = extractConvParams(64, 128, 2, 'onet/conv4')\r\n const prelu4_alpha = extractPReluParams(128, 'onet/prelu4_alpha')\r\n const fc1 = extractFCParams(1152, 256, 'onet/fc1')\r\n const prelu5_alpha = extractPReluParams(256, 'onet/prelu5_alpha')\r\n const fc2_1 = extractFCParams(256, 2, 'onet/fc2_1')\r\n const fc2_2 = extractFCParams(256, 4, 'onet/fc2_2')\r\n const fc2_3 = extractFCParams(256, 10, 'onet/fc2_3')\r\n\r\n return { ...sharedParams, conv4, prelu4_alpha, fc1, prelu5_alpha, fc2_1, fc2_2, fc2_3 }\r\n }\r\n\r\n return {\r\n extractPNetParams,\r\n extractRNetParams,\r\n extractONetParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractPNetParams,\r\n extractRNetParams,\r\n extractONetParams\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const pnet = extractPNetParams()\r\n const rnet = extractRNetParams()\r\n const onet = extractONetParams()\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return { params: { pnet, rnet, onet }, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { ConvParams, FCParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { NetParams, ONetParams, PNetParams, RNetParams, SharedParams } from './types';\r\n\r\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractConvParams(prefix: string): ConvParams {\r\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${prefix}/filters`)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractFCParams(prefix: string): FCParams {\r\n const weights = extractWeightEntry(`${prefix}/weights`, 2)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n\r\n return { weights, bias }\r\n }\r\n\r\n function extractPReluParams(paramPath: string): tf.Tensor1D {\r\n return extractWeightEntry(paramPath, 1)\r\n }\r\n\r\n function extractSharedParams(prefix: string): SharedParams {\r\n\r\n const conv1 = extractConvParams(`${prefix}/conv1`)\r\n const prelu1_alpha = extractPReluParams(`${prefix}/prelu1_alpha`)\r\n const conv2 = extractConvParams(`${prefix}/conv2`)\r\n const prelu2_alpha = extractPReluParams(`${prefix}/prelu2_alpha`)\r\n const conv3 = extractConvParams(`${prefix}/conv3`)\r\n const prelu3_alpha = extractPReluParams(`${prefix}/prelu3_alpha`)\r\n\r\n return { conv1, prelu1_alpha, conv2, prelu2_alpha, conv3, prelu3_alpha }\r\n }\r\n\r\n function extractPNetParams(): PNetParams {\r\n\r\n const sharedParams = extractSharedParams('pnet')\r\n const conv4_1 = extractConvParams('pnet/conv4_1')\r\n const conv4_2 = extractConvParams('pnet/conv4_2')\r\n\r\n return { ...sharedParams, conv4_1, conv4_2 }\r\n }\r\n\r\n function extractRNetParams(): RNetParams {\r\n\r\n const sharedParams = extractSharedParams('rnet')\r\n const fc1 = extractFCParams('rnet/fc1')\r\n const prelu4_alpha = extractPReluParams('rnet/prelu4_alpha')\r\n const fc2_1 = extractFCParams('rnet/fc2_1')\r\n const fc2_2 = extractFCParams('rnet/fc2_2')\r\n\r\n return { ...sharedParams, fc1, prelu4_alpha, fc2_1, fc2_2 }\r\n }\r\n\r\n function extractONetParams(): ONetParams {\r\n\r\n const sharedParams = extractSharedParams('onet')\r\n const conv4 = extractConvParams('onet/conv4')\r\n const prelu4_alpha = extractPReluParams('onet/prelu4_alpha')\r\n const fc1 = extractFCParams('onet/fc1')\r\n const prelu5_alpha = extractPReluParams('onet/prelu5_alpha')\r\n const fc2_1 = extractFCParams('onet/fc2_1')\r\n const fc2_2 = extractFCParams('onet/fc2_2')\r\n const fc2_3 = extractFCParams('onet/fc2_3')\r\n\r\n return { ...sharedParams, conv4, prelu4_alpha, fc1, prelu5_alpha, fc2_1, fc2_2, fc2_3 }\r\n }\r\n\r\n return {\r\n extractPNetParams,\r\n extractRNetParams,\r\n extractONetParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractPNetParams,\r\n extractRNetParams,\r\n extractONetParams\r\n } = extractorsFactory(weightMap, paramMappings)\r\n\r\n const pnet = extractPNetParams()\r\n const rnet = extractRNetParams()\r\n const onet = extractONetParams()\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params: { pnet, rnet, onet }, paramMappings }\r\n}","export function getSizesForScale(scale: number, [height, width]: number[]) {\r\n return {\r\n height: Math.floor(height * scale),\r\n width: Math.floor(width * scale)\r\n }\r\n}","import { CELL_SIZE } from './config';\r\n\r\nexport function pyramidDown(minFaceSize: number, scaleFactor: number, dims: number[]): number[] {\r\n\r\n const [height, width] = dims\r\n const m = CELL_SIZE / minFaceSize\r\n\r\n const scales = []\r\n\r\n let minLayer = Math.min(height, width) * m\r\n let exp = 0\r\n while (minLayer >= 12) {\r\n scales.push(m * Math.pow(scaleFactor, exp))\r\n minLayer = minLayer * scaleFactor\r\n exp += 1\r\n }\r\n\r\n return scales\r\n}","import { Box } from 'tfjs-image-recognition-base';\r\n\r\nexport class MtcnnBox extends Box {\r\n constructor(left: number, top: number, right: number, bottom: number) {\r\n super({ left, top, right, bottom }, true)\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nexport function normalize(x: tf.Tensor4D): tf.Tensor4D {\r\n return tf.tidy(\r\n () => tf.mul(tf.sub(x, tf.scalar(127.5)), tf.scalar(0.0078125))\r\n )\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nexport function prelu(x: T, alpha: tf.Tensor1D): T {\r\n return tf.tidy(() =>\r\n tf.add(\r\n tf.relu(x),\r\n tf.mul(alpha, tf.neg(tf.relu(tf.neg(x))))\r\n )\r\n )\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nimport { convLayer } from 'tfjs-tiny-yolov2';\r\n\r\nimport { prelu } from './prelu';\r\nimport { SharedParams } from './types';\r\n\r\nexport function sharedLayer(x: tf.Tensor4D, params: SharedParams, isPnet: boolean = false) {\r\n return tf.tidy(() => {\r\n\r\n let out = convLayer(x, params.conv1, 'valid')\r\n out = prelu(out, params.prelu1_alpha)\r\n out = tf.maxPool(out, isPnet ? [2, 2]: [3, 3], [2, 2], 'same')\r\n out = convLayer(out, params.conv2, 'valid')\r\n out = prelu(out, params.prelu2_alpha)\r\n out = isPnet ? out : tf.maxPool(out, [3, 3], [2, 2], 'valid')\r\n out = convLayer(out, params.conv3, 'valid')\r\n out = prelu(out, params.prelu3_alpha)\r\n\r\n return out\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { convLayer } from 'tfjs-tiny-yolov2';\r\n\r\nimport { sharedLayer } from './sharedLayers';\r\nimport { PNetParams } from './types';\r\n\r\nexport function PNet(x: tf.Tensor4D, params: PNetParams): { prob: tf.Tensor4D, regions: tf.Tensor4D } {\r\n return tf.tidy(() => {\r\n\r\n let out = sharedLayer(x, params, true)\r\n const conv = convLayer(out, params.conv4_1, 'valid')\r\n const max = tf.expandDims(tf.max(conv, 3), 3)\r\n const prob = tf.softmax(tf.sub(conv, max), 3) as tf.Tensor4D\r\n const regions = convLayer(out, params.conv4_2, 'valid')\r\n\r\n return { prob, regions }\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { BoundingBox, nonMaxSuppression, Point } from 'tfjs-image-recognition-base';\r\n\r\nimport { CELL_SIZE, CELL_STRIDE } from './config';\r\nimport { getSizesForScale } from './getSizesForScale';\r\nimport { MtcnnBox } from './MtcnnBox';\r\nimport { normalize } from './normalize';\r\nimport { PNet } from './PNet';\r\nimport { PNetParams } from './types';\r\n\r\nfunction rescaleAndNormalize(x: tf.Tensor4D, scale: number): tf.Tensor4D {\r\n return tf.tidy(() => {\r\n\r\n const { height, width } = getSizesForScale(scale, x.shape.slice(1))\r\n const resized = tf.image.resizeBilinear(x, [height, width])\r\n const normalized = normalize(resized)\r\n\r\n return (tf.transpose(normalized, [0, 2, 1, 3]) as tf.Tensor4D)\r\n })\r\n}\r\n\r\nfunction extractBoundingBoxes(\r\n scoresTensor: tf.Tensor2D,\r\n regionsTensor: tf.Tensor3D,\r\n scale: number,\r\n scoreThreshold: number\r\n) {\r\n\r\n // TODO: fix this!, maybe better to use tf.gather here\r\n const indices: Point[] = []\r\n for (let y = 0; y < scoresTensor.shape[0]; y++) {\r\n for (let x = 0; x < scoresTensor.shape[1]; x++) {\r\n if (scoresTensor.get(y, x) >= scoreThreshold) {\r\n indices.push(new Point(x, y))\r\n }\r\n }\r\n }\r\n\r\n const boundingBoxes = indices.map(idx => {\r\n const cell = new BoundingBox(\r\n Math.round((idx.y * CELL_STRIDE + 1) / scale),\r\n Math.round((idx.x * CELL_STRIDE + 1) / scale),\r\n Math.round((idx.y * CELL_STRIDE + CELL_SIZE) / scale),\r\n Math.round((idx.x * CELL_STRIDE + CELL_SIZE) / scale)\r\n )\r\n\r\n const score = scoresTensor.get(idx.y, idx.x)\r\n\r\n const region = new MtcnnBox(\r\n regionsTensor.get(idx.y, idx.x, 0),\r\n regionsTensor.get(idx.y, idx.x, 1),\r\n regionsTensor.get(idx.y, idx.x, 2),\r\n regionsTensor.get(idx.y, idx.x, 3)\r\n )\r\n\r\n return {\r\n cell,\r\n score,\r\n region\r\n }\r\n })\r\n\r\n return boundingBoxes\r\n}\r\n\r\nexport function stage1(\r\n imgTensor: tf.Tensor4D,\r\n scales: number[],\r\n scoreThreshold: number,\r\n params: PNetParams,\r\n stats: any\r\n) {\r\n stats.stage1 = []\r\n\r\n const pnetOutputs = scales.map((scale) => tf.tidy(() => {\r\n const statsForScale: any = { scale }\r\n const resized = rescaleAndNormalize(imgTensor, scale)\r\n\r\n let ts = Date.now()\r\n const { prob, regions } = PNet(resized, params)\r\n statsForScale.pnet = Date.now() - ts\r\n\r\n const scoresTensor = tf.unstack(tf.unstack(prob, 3)[1])[0] as tf.Tensor2D\r\n const regionsTensor = tf.unstack(regions)[0] as tf.Tensor3D\r\n\r\n return {\r\n scoresTensor,\r\n regionsTensor,\r\n scale,\r\n statsForScale\r\n }\r\n }))\r\n\r\n const boxesForScale = pnetOutputs.map(({ scoresTensor, regionsTensor, scale, statsForScale }) => {\r\n const boundingBoxes = extractBoundingBoxes(\r\n scoresTensor,\r\n regionsTensor,\r\n scale,\r\n scoreThreshold\r\n )\r\n\r\n scoresTensor.dispose()\r\n regionsTensor.dispose()\r\n\r\n if (!boundingBoxes.length) {\r\n stats.stage1.push(statsForScale)\r\n return []\r\n }\r\n\r\n let ts = Date.now()\r\n const indices = nonMaxSuppression(\r\n boundingBoxes.map(bbox => bbox.cell),\r\n boundingBoxes.map(bbox => bbox.score),\r\n 0.5\r\n )\r\n statsForScale.nms = Date.now() - ts\r\n statsForScale.numBoxes = indices.length\r\n\r\n stats.stage1.push(statsForScale)\r\n return indices.map(boxIdx => boundingBoxes[boxIdx])\r\n })\r\n\r\n const allBoxes = boxesForScale.reduce(\r\n (all, boxes) => all.concat(boxes), []\r\n )\r\n\r\n let finalBoxes: BoundingBox[] = []\r\n let finalScores: number[] = []\r\n\r\n if (allBoxes.length > 0) {\r\n let ts = Date.now()\r\n const indices = nonMaxSuppression(\r\n allBoxes.map(bbox => bbox.cell),\r\n allBoxes.map(bbox => bbox.score),\r\n 0.7\r\n )\r\n stats.stage1_nms = Date.now() - ts\r\n\r\n finalScores = indices.map(idx => allBoxes[idx].score)\r\n finalBoxes = indices\r\n .map(idx => allBoxes[idx])\r\n .map(({ cell, region }) =>\r\n new BoundingBox(\r\n cell.left + (region.left * cell.width),\r\n cell.top + (region.top * cell.height),\r\n cell.right + (region.right * cell.width),\r\n cell.bottom + (region.bottom * cell.height)\r\n ).toSquare().round()\r\n )\r\n\r\n }\r\n\r\n return {\r\n boxes: finalBoxes,\r\n scores: finalScores\r\n }\r\n\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nimport {\r\n Box,\r\n createCanvas,\r\n createCanvasFromMedia,\r\n env,\r\n getContext2dOrThrow,\r\n IDimensions,\r\n} from 'tfjs-image-recognition-base';\r\n\r\nimport { normalize } from './normalize';\r\n\r\nexport async function extractImagePatches(\r\n img: HTMLCanvasElement,\r\n boxes: Box[],\r\n { width, height }: IDimensions\r\n): Promise {\r\n\r\n\r\n const imgCtx = getContext2dOrThrow(img)\r\n\r\n const bitmaps = await Promise.all(boxes.map(async box => {\r\n // TODO: correct padding\r\n const { y, ey, x, ex } = box.padAtBorders(img.height, img.width)\r\n\r\n const fromX = x - 1\r\n const fromY = y - 1\r\n const imgData = imgCtx.getImageData(fromX, fromY, (ex - fromX), (ey - fromY))\r\n\r\n return env.isNodejs() ? createCanvasFromMedia(imgData) : createImageBitmap(imgData)\r\n }))\r\n\r\n const imagePatchesDatas: number[][] = []\r\n\r\n bitmaps.forEach(bmp => {\r\n const patch = createCanvas({ width, height })\r\n const patchCtx = getContext2dOrThrow(patch)\r\n patchCtx.drawImage(bmp, 0, 0, width, height)\r\n const { data } = patchCtx.getImageData(0, 0, width, height)\r\n\r\n const currData = []\r\n // RGBA -> BGR\r\n for(let i = 0; i < data.length; i+=4) {\r\n currData.push(data[i + 2])\r\n currData.push(data[i + 1])\r\n currData.push(data[i])\r\n }\r\n imagePatchesDatas.push(currData)\r\n })\r\n\r\n\r\n return imagePatchesDatas.map(data => {\r\n const t = tf.tidy(() => {\r\n const imagePatchTensor = tf.transpose(\r\n tf.tensor4d(data, [1, width, height, 3]),\r\n [0, 2, 1, 3]\r\n ).toFloat() as tf.Tensor4D\r\n\r\n return normalize(imagePatchTensor)\r\n })\r\n return t\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\r\nimport { prelu } from './prelu';\r\nimport { sharedLayer } from './sharedLayers';\r\nimport { RNetParams } from './types';\r\n\r\nexport function RNet(x: tf.Tensor4D, params: RNetParams): { scores: tf.Tensor1D, regions: tf.Tensor2D } {\r\n return tf.tidy(() => {\r\n\r\n const convOut = sharedLayer(x, params)\r\n const vectorized = tf.reshape(convOut, [convOut.shape[0], params.fc1.weights.shape[0]]) as tf.Tensor2D\r\n const fc1 = fullyConnectedLayer(vectorized, params.fc1)\r\n const prelu4 = prelu(fc1, params.prelu4_alpha)\r\n const fc2_1 = fullyConnectedLayer(prelu4, params.fc2_1)\r\n const max = tf.expandDims(tf.max(fc2_1, 1), 1)\r\n const prob = tf.softmax(tf.sub(fc2_1, max), 1) as tf.Tensor2D\r\n const regions = fullyConnectedLayer(prelu4, params.fc2_2)\r\n\r\n const scores = tf.unstack(prob, 1)[1] as tf.Tensor1D\r\n return { scores, regions }\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { Box, nonMaxSuppression } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractImagePatches } from './extractImagePatches';\r\nimport { MtcnnBox } from './MtcnnBox';\r\nimport { RNet } from './RNet';\r\nimport { RNetParams } from './types';\r\n\r\nexport async function stage2(\r\n img: HTMLCanvasElement,\r\n inputBoxes: Box[],\r\n scoreThreshold: number,\r\n params: RNetParams,\r\n stats: any\r\n) {\r\n\r\n let ts = Date.now()\r\n const rnetInputs = await extractImagePatches(img, inputBoxes, { width: 24, height: 24 })\r\n stats.stage2_extractImagePatches = Date.now() - ts\r\n\r\n ts = Date.now()\r\n const rnetOuts = rnetInputs.map(\r\n rnetInput => {\r\n const out = RNet(rnetInput, params)\r\n rnetInput.dispose()\r\n return out\r\n }\r\n )\r\n stats.stage2_rnet = Date.now() - ts\r\n\r\n const scoresTensor = rnetOuts.length > 1\r\n ? tf.concat(rnetOuts.map(out => out.scores))\r\n : rnetOuts[0].scores\r\n const scores = Array.from(await scoresTensor.data())\r\n scoresTensor.dispose()\r\n\r\n const indices = scores\r\n .map((score, idx) => ({ score, idx }))\r\n .filter(c => c.score > scoreThreshold)\r\n .map(({ idx }) => idx)\r\n\r\n const filteredBoxes = indices.map(idx => inputBoxes[idx])\r\n const filteredScores = indices.map(idx => scores[idx])\r\n\r\n let finalBoxes: Box[] = []\r\n let finalScores: number[] = []\r\n\r\n if (filteredBoxes.length > 0) {\r\n ts = Date.now()\r\n const indicesNms = nonMaxSuppression(\r\n filteredBoxes,\r\n filteredScores,\r\n 0.7\r\n )\r\n stats.stage2_nms = Date.now() - ts\r\n\r\n const regions = indicesNms.map(idx =>\r\n new MtcnnBox(\r\n rnetOuts[indices[idx]].regions.get(0, 0),\r\n rnetOuts[indices[idx]].regions.get(0, 1),\r\n rnetOuts[indices[idx]].regions.get(0, 2),\r\n rnetOuts[indices[idx]].regions.get(0, 3)\r\n )\r\n )\r\n\r\n finalScores = indicesNms.map(idx => filteredScores[idx])\r\n finalBoxes = indicesNms.map((idx, i) => filteredBoxes[idx].calibrate(regions[i]))\r\n }\r\n\r\n rnetOuts.forEach(t => {\r\n t.regions.dispose()\r\n t.scores.dispose()\r\n })\r\n\r\n return {\r\n boxes: finalBoxes,\r\n scores: finalScores\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { convLayer } from 'tfjs-tiny-yolov2';\r\n\r\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\r\nimport { prelu } from './prelu';\r\nimport { sharedLayer } from './sharedLayers';\r\nimport { ONetParams } from './types';\r\n\r\nexport function ONet(x: tf.Tensor4D, params: ONetParams): { scores: tf.Tensor1D, regions: tf.Tensor2D, points: tf.Tensor2D } {\r\n return tf.tidy(() => {\r\n\r\n let out = sharedLayer(x, params)\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same')\r\n out = convLayer(out, params.conv4, 'valid')\r\n out = prelu(out, params.prelu4_alpha)\r\n\r\n const vectorized = tf.reshape(out, [out.shape[0], params.fc1.weights.shape[0]]) as tf.Tensor2D\r\n const fc1 = fullyConnectedLayer(vectorized, params.fc1)\r\n const prelu5 = prelu(fc1, params.prelu5_alpha)\r\n const fc2_1 = fullyConnectedLayer(prelu5, params.fc2_1)\r\n const max = tf.expandDims(tf.max(fc2_1, 1), 1)\r\n\r\n const prob = tf.softmax(tf.sub(fc2_1, max), 1) as tf.Tensor2D\r\n const regions = fullyConnectedLayer(prelu5, params.fc2_2)\r\n const points = fullyConnectedLayer(prelu5, params.fc2_3)\r\n\r\n const scores = tf.unstack(prob, 1)[1] as tf.Tensor1D\r\n return { scores, regions, points }\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { BoundingBox, Box, nonMaxSuppression, Point } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractImagePatches } from './extractImagePatches';\r\nimport { MtcnnBox } from './MtcnnBox';\r\nimport { ONet } from './ONet';\r\nimport { ONetParams } from './types';\r\n\r\nexport async function stage3(\r\n img: HTMLCanvasElement,\r\n inputBoxes: BoundingBox[],\r\n scoreThreshold: number,\r\n params: ONetParams,\r\n stats: any\r\n) {\r\n\r\n let ts = Date.now()\r\n const onetInputs = await extractImagePatches(img, inputBoxes, { width: 48, height: 48 })\r\n stats.stage3_extractImagePatches = Date.now() - ts\r\n\r\n ts = Date.now()\r\n const onetOuts = onetInputs.map(\r\n onetInput => {\r\n const out = ONet(onetInput, params)\r\n onetInput.dispose()\r\n return out\r\n }\r\n )\r\n stats.stage3_onet = Date.now() - ts\r\n\r\n const scoresTensor = onetOuts.length > 1\r\n ? tf.concat(onetOuts.map(out => out.scores))\r\n : onetOuts[0].scores\r\n const scores = Array.from(await scoresTensor.data())\r\n scoresTensor.dispose()\r\n\r\n const indices = scores\r\n .map((score, idx) => ({ score, idx }))\r\n .filter(c => c.score > scoreThreshold)\r\n .map(({ idx }) => idx)\r\n\r\n const filteredRegions = indices.map(idx => new MtcnnBox(\r\n onetOuts[idx].regions.get(0, 0),\r\n onetOuts[idx].regions.get(0, 1),\r\n onetOuts[idx].regions.get(0, 2),\r\n onetOuts[idx].regions.get(0, 3)\r\n ))\r\n const filteredBoxes = indices\r\n .map((idx, i) => inputBoxes[idx].calibrate(filteredRegions[i]))\r\n const filteredScores = indices.map(idx => scores[idx])\r\n\r\n let finalBoxes: Box[] = []\r\n let finalScores: number[] = []\r\n let points: Point[][] = []\r\n\r\n if (filteredBoxes.length > 0) {\r\n\r\n ts = Date.now()\r\n const indicesNms = nonMaxSuppression(\r\n filteredBoxes,\r\n filteredScores,\r\n 0.7,\r\n false\r\n )\r\n stats.stage3_nms = Date.now() - ts\r\n\r\n finalBoxes = indicesNms.map(idx => filteredBoxes[idx])\r\n finalScores = indicesNms.map(idx => filteredScores[idx])\r\n points = indicesNms.map((idx, i) =>\r\n Array(5).fill(0).map((_, ptIdx) =>\r\n new Point(\r\n ((onetOuts[idx].points.get(0, ptIdx) * (finalBoxes[i].width + 1)) + finalBoxes[i].left) ,\r\n ((onetOuts[idx].points.get(0, ptIdx + 5) * (finalBoxes[i].height + 1)) + finalBoxes[i].top)\r\n )\r\n )\r\n )\r\n }\r\n\r\n onetOuts.forEach(t => {\r\n t.regions.dispose()\r\n t.scores.dispose()\r\n t.points.dispose()\r\n })\r\n\r\n return {\r\n boxes: finalBoxes,\r\n scores: finalScores,\r\n points\r\n }\r\n\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, Point, Rect, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\nimport { FaceLandmarks5 } from '../classes/FaceLandmarks5';\r\nimport { extendWithFaceDetection, extendWithFaceLandmarks } from '../factories';\r\nimport { bgrToRgbTensor } from './bgrToRgbTensor';\r\nimport { CELL_SIZE } from './config';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { getSizesForScale } from './getSizesForScale';\r\nimport { IMtcnnOptions, MtcnnOptions } from './MtcnnOptions';\r\nimport { pyramidDown } from './pyramidDown';\r\nimport { stage1 } from './stage1';\r\nimport { stage2 } from './stage2';\r\nimport { stage3 } from './stage3';\r\nimport { MtcnnResult, NetParams } from './types';\r\n\r\nexport class Mtcnn extends NeuralNetwork {\r\n\r\n constructor() {\r\n super('Mtcnn')\r\n }\r\n\r\n public async forwardInput(\r\n input: NetInput,\r\n forwardParams: IMtcnnOptions = {}\r\n ): Promise<{ results: MtcnnResult[], stats: any }> {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('Mtcnn - load model before inference')\r\n }\r\n\r\n const inputCanvas = input.canvases[0]\r\n\r\n if (!inputCanvas) {\r\n throw new Error('Mtcnn - inputCanvas is not defined, note that passing tensors into Mtcnn.forwardInput is not supported yet.')\r\n }\r\n\r\n const stats: any = {}\r\n\r\n const tsTotal = Date.now()\r\n\r\n const imgTensor = tf.tidy(() =>\r\n bgrToRgbTensor(\r\n tf.expandDims(tf.fromPixels(inputCanvas)).toFloat() as tf.Tensor4D\r\n )\r\n )\r\n\r\n const onReturn = (results: any) => {\r\n // dispose tensors on return\r\n imgTensor.dispose()\r\n stats.total = Date.now() - tsTotal\r\n return results\r\n }\r\n\r\n const [height, width] = imgTensor.shape.slice(1)\r\n\r\n const {\r\n minFaceSize,\r\n scaleFactor,\r\n maxNumScales,\r\n scoreThresholds,\r\n scaleSteps\r\n } = new MtcnnOptions(forwardParams)\r\n\r\n const scales = (scaleSteps || pyramidDown(minFaceSize, scaleFactor, [height, width]))\r\n .filter(scale => {\r\n const sizes = getSizesForScale(scale, [height, width])\r\n return Math.min(sizes.width, sizes.height) > CELL_SIZE\r\n })\r\n .slice(0, maxNumScales)\r\n\r\n stats.scales = scales\r\n stats.pyramid = scales.map(scale => getSizesForScale(scale, [height, width]))\r\n\r\n let ts = Date.now()\r\n const out1 = await stage1(imgTensor, scales, scoreThresholds[0], params.pnet, stats)\r\n stats.total_stage1 = Date.now() - ts\r\n\r\n if (!out1.boxes.length) {\r\n return onReturn({ results: [], stats })\r\n }\r\n\r\n stats.stage2_numInputBoxes = out1.boxes.length\r\n // using the inputCanvas to extract and resize the image patches, since it is faster\r\n // than doing this on the gpu\r\n ts = Date.now()\r\n const out2 = await stage2(inputCanvas, out1.boxes, scoreThresholds[1], params.rnet, stats)\r\n stats.total_stage2 = Date.now() - ts\r\n\r\n if (!out2.boxes.length) {\r\n return onReturn({ results: [], stats })\r\n }\r\n\r\n stats.stage3_numInputBoxes = out2.boxes.length\r\n\r\n ts = Date.now()\r\n const out3 = await stage3(inputCanvas, out2.boxes, scoreThresholds[2], params.onet, stats)\r\n stats.total_stage3 = Date.now() - ts\r\n\r\n const results = out3.boxes.map((box, idx) => extendWithFaceLandmarks(\r\n extendWithFaceDetection<{}>(\r\n {},\r\n new FaceDetection(\r\n out3.scores[idx],\r\n new Rect(\r\n box.left / width,\r\n box.top / height,\r\n box.width / width,\r\n box.height / height\r\n ),\r\n {\r\n height,\r\n width\r\n }\r\n )\r\n ),\r\n new FaceLandmarks5(\r\n out3.points[idx].map(pt => pt.sub(new Point(box.left, box.top)).div(new Point(box.width, box.height))),\r\n { width: box.width, height: box.height }\r\n )\r\n ))\r\n\r\n return onReturn({ results, stats })\r\n }\r\n\r\n public async forward(\r\n input: TNetInput,\r\n forwardParams: IMtcnnOptions = {}\r\n ): Promise {\r\n return (\r\n await this.forwardInput(\r\n await toNetInput(input),\r\n forwardParams\r\n )\r\n ).results\r\n }\r\n\r\n public async forwardWithStats(\r\n input: TNetInput,\r\n forwardParams: IMtcnnOptions = {}\r\n ): Promise<{ results: MtcnnResult[], stats: any }> {\r\n return this.forwardInput(\r\n await toNetInput(input),\r\n forwardParams\r\n )\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'mtcnn_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMap(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParams(weights)\r\n }\r\n}","import { Point } from 'tfjs-image-recognition-base';\r\n\r\nexport const IOU_THRESHOLD = 0.4\r\n\r\nexport const BOX_ANCHORS = [\r\n new Point(1.603231, 2.094468),\r\n new Point(6.041143, 7.080126),\r\n new Point(2.882459, 3.518061),\r\n new Point(4.266906, 5.178857),\r\n new Point(9.041765, 10.66308)\r\n]\r\n\r\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404]","import * as tf from '@tensorflow/tfjs-core';\r\nimport { ParamMapping, Point, TNetInput } from 'tfjs-image-recognition-base';\r\nimport { ITinyYolov2Options, TinyYolov2 as TinyYolov2Base } from 'tfjs-tiny-yolov2';\r\nimport { TinyYolov2NetParams } from 'tfjs-tiny-yolov2/build/commonjs/tinyYolov2/types';\r\n\r\nimport { FaceDetection } from '../classes';\r\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\r\n\r\nexport class TinyFaceDetector extends TinyYolov2Base {\r\n\r\n constructor() {\r\n const config = {\r\n withSeparableConvs: true,\r\n iouThreshold: IOU_THRESHOLD,\r\n classes: ['face'],\r\n anchors: BOX_ANCHORS,\r\n meanRgb: MEAN_RGB,\r\n isFirstLayerConv2d: true,\r\n filterSizes: [3, 16, 32, 64, 128, 256, 512]\r\n }\r\n\r\n super(config)\r\n }\r\n\r\n public get anchors(): Point[] {\r\n return this.config.anchors\r\n }\r\n\r\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\r\n const objectDetections = await this.detect(input, forwardParams)\r\n return objectDetections.map(det => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }))\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'tiny_face_detector_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\r\n return super.extractParamsFromWeigthMap(weightMap)\r\n }\r\n}","import { Point } from 'tfjs-image-recognition-base';\r\n\r\nexport const IOU_THRESHOLD = 0.4\r\n\r\nexport const BOX_ANCHORS = [\r\n new Point(0.738768, 0.874946),\r\n new Point(2.42204, 2.65704),\r\n new Point(4.30971, 7.04493),\r\n new Point(10.246, 4.59428),\r\n new Point(12.6868, 11.8741)\r\n]\r\n\r\nexport const BOX_ANCHORS_SEPARABLE = [\r\n new Point(1.603231, 2.094468),\r\n new Point(6.041143, 7.080126),\r\n new Point(2.882459, 3.518061),\r\n new Point(4.266906, 5.178857),\r\n new Point(9.041765, 10.66308)\r\n]\r\n\r\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404]\r\n\r\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model'\r\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model'","import * as tf from '@tensorflow/tfjs-core';\r\nimport { ParamMapping, Point, TNetInput } from 'tfjs-image-recognition-base';\r\nimport { ITinyYolov2Options, TinyYolov2 as TinyYolov2Base, TinyYolov2NetParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { FaceDetection } from '../classes';\r\nimport {\r\n BOX_ANCHORS,\r\n BOX_ANCHORS_SEPARABLE,\r\n DEFAULT_MODEL_NAME,\r\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\r\n IOU_THRESHOLD,\r\n MEAN_RGB_SEPARABLE,\r\n} from './const';\r\n\r\nexport class TinyYolov2 extends TinyYolov2Base {\r\n\r\n constructor(withSeparableConvs: boolean = true) {\r\n const config = Object.assign({}, {\r\n withSeparableConvs,\r\n iouThreshold: IOU_THRESHOLD,\r\n classes: ['face']\r\n },\r\n withSeparableConvs\r\n ? {\r\n anchors: BOX_ANCHORS_SEPARABLE,\r\n meanRgb: MEAN_RGB_SEPARABLE\r\n }\r\n : {\r\n anchors: BOX_ANCHORS,\r\n withClassScores: true\r\n }\r\n )\r\n\r\n super(config)\r\n }\r\n\r\n public get withSeparableConvs(): boolean {\r\n return this.config.withSeparableConvs\r\n }\r\n\r\n public get anchors(): Point[] {\r\n return this.config.anchors\r\n }\r\n\r\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\r\n const objectDetections = await this.detect(input, forwardParams)\r\n return objectDetections.map(det => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }))\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\r\n return super.extractParamsFromWeigthMap(weightMap)\r\n }\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\nimport { ITinyYolov2Options } from 'tfjs-tiny-yolov2';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\nimport { FaceLandmarks5 } from '../classes/FaceLandmarks5';\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\r\nimport { FaceExpressionPrediction } from '../faceExpressionNet/types';\r\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\r\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\r\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\r\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\r\nimport { Mtcnn } from '../mtcnn/Mtcnn';\r\nimport { MtcnnOptions } from '../mtcnn/MtcnnOptions';\r\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\r\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\r\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\r\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\r\nimport { TinyYolov2 } from '../tinyYolov2/TinyYolov2';\r\n\r\nexport const nets = {\r\n ssdMobilenetv1: new SsdMobilenetv1(),\r\n tinyFaceDetector: new TinyFaceDetector(),\r\n tinyYolov2: new TinyYolov2(),\r\n mtcnn: new Mtcnn(),\r\n faceLandmark68Net: new FaceLandmark68Net(),\r\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\r\n faceRecognitionNet: new FaceRecognitionNet(),\r\n faceExpressionNet: new FaceExpressionNet()\r\n}\r\n\r\n/**\r\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\r\n *\r\n * @param input The input image.\r\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\r\n * @returns Bounding box of each face with score.\r\n */\r\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise =>\r\n nets.ssdMobilenetv1.locateFaces(input, options)\r\n\r\n/**\r\n * Attempts to detect all faces in an image using the Tiny Face Detector.\r\n *\r\n * @param input The input image.\r\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\r\n * @returns Bounding box of each face with score.\r\n */\r\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise =>\r\n nets.tinyFaceDetector.locateFaces(input, options)\r\n\r\n/**\r\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\r\n *\r\n * @param input The input image.\r\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\r\n * @returns Bounding box of each face with score.\r\n */\r\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise =>\r\n nets.tinyYolov2.locateFaces(input, options)\r\n\r\n/**\r\n * Attempts to detect all faces in an image and the 5 point face landmarks\r\n * of each detected face using the MTCNN Network.\r\n *\r\n * @param input The input image.\r\n * @param options (optional, default: see MtcnnOptions constructor for default parameters).\r\n * @returns Bounding box of each face with score and 5 point face landmarks.\r\n */\r\nexport const mtcnn = (input: TNetInput, options: MtcnnOptions): Promise, FaceLandmarks5>[]> =>\r\n nets.mtcnn.forward(input, options)\r\n\r\n/**\r\n * Detects the 68 point face landmark positions of the face shown in an image.\r\n *\r\n * @param inputs The face image extracted from the bounding box of a face. Can\r\n * also be an array of input images, which will be batch processed.\r\n * @returns 68 point face landmarks or array thereof in case of batch input.\r\n */\r\nexport const detectFaceLandmarks = (input: TNetInput): Promise =>\r\n nets.faceLandmark68Net.detectLandmarks(input)\r\n\r\n/**\r\n * Detects the 68 point face landmark positions of the face shown in an image\r\n * using a tinier version of the 68 point face landmark model, which is slightly\r\n * faster at inference, but also slightly less accurate.\r\n *\r\n * @param inputs The face image extracted from the bounding box of a face. Can\r\n * also be an array of input images, which will be batch processed.\r\n * @returns 68 point face landmarks or array thereof in case of batch input.\r\n */\r\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise =>\r\n nets.faceLandmark68TinyNet.detectLandmarks(input)\r\n\r\n/**\r\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\r\n * which uniquely represents the features of that persons face. The computed face descriptor can\r\n * be used to measure the similarity between faces, by computing the euclidean distance of two\r\n * face descriptors.\r\n *\r\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\r\n * also be an array of input images, which will be batch processed.\r\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\r\n */\r\nexport const computeFaceDescriptor = (input: TNetInput): Promise =>\r\n nets.faceRecognitionNet.computeFaceDescriptor(input)\r\n\r\n\r\n/**\r\n * Recognizes the facial expressions of a face and returns the likelyhood of\r\n * each facial expression.\r\n *\r\n * @param inputs The face image extracted from the bounding box of a face. Can\r\n * also be an array of input images, which will be batch processed.\r\n * @returns An array of facial expressions with corresponding probabilities or array thereof in case of batch input.\r\n */\r\nexport const recognizeFaceExpressions = (input: TNetInput): Promise =>\r\n nets.faceExpressionNet.predictExpressions(input)\r\n\r\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url)\r\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url)\r\nexport const loadMtcnnModel = (url: string) => nets.mtcnn.load(url)\r\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url)\r\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url)\r\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url)\r\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url)\r\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url)\r\n\r\n// backward compatibility\r\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model\r\nexport const locateFaces = ssdMobilenetv1\r\nexport const detectLandmarks = detectFaceLandmarks","import * as tf from '@tensorflow/tfjs-core';\r\nimport { TNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractFaces, extractFaceTensors } from '../dom';\r\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\r\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\r\nimport { ComposableTask } from './ComposableTask';\r\nimport { nets } from './nets';\r\n\r\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\r\n constructor(\r\n protected parentTask: ComposableTask | Promise,\r\n protected input: TNetInput\r\n ) {\r\n super()\r\n }\r\n}\r\n\r\nexport class ComputeAllFaceDescriptorsTask<\r\n TSource extends WithFaceLandmarks>\r\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\r\n\r\n public async run(): Promise[]> {\r\n\r\n const parentResults = await this.parentTask\r\n\r\n const alignedRects = parentResults.map(({ alignedRect }) => alignedRect)\r\n const alignedFaces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, alignedRects)\r\n : await extractFaces(this.input, alignedRects)\r\n\r\n const results = await Promise.all(parentResults.map(async (parentResult, i) => {\r\n const descriptor = await nets.faceRecognitionNet.computeFaceDescriptor(alignedFaces[i]) as Float32Array\r\n return extendWithFaceDescriptor(parentResult, descriptor)\r\n }))\r\n\r\n alignedFaces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return results\r\n }\r\n}\r\n\r\nexport class ComputeSingleFaceDescriptorTask<\r\n TSource extends WithFaceLandmarks>\r\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\r\n\r\n public async run(): Promise | undefined> {\r\n\r\n const parentResult = await this.parentTask\r\n if (!parentResult) {\r\n return\r\n }\r\n\r\n const { alignedRect } = parentResult\r\n const alignedFaces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, [alignedRect])\r\n : await extractFaces(this.input, [alignedRect])\r\n const descriptor = await nets.faceRecognitionNet.computeFaceDescriptor(alignedFaces[0]) as Float32Array\r\n\r\n alignedFaces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return extendWithFaceDescriptor(parentResult, descriptor)\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { TNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { extractFaces, extractFaceTensors } from '../dom';\r\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\r\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\r\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\r\nimport { ComposableTask } from './ComposableTask';\r\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\r\nimport { nets } from './nets';\r\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionTask } from './PredictFaceExpressionsTask';\r\n\r\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\r\n constructor(\r\n protected parentTask: ComposableTask | Promise,\r\n protected input: TNetInput,\r\n protected useTinyLandmarkNet: boolean\r\n ) {\r\n super()\r\n }\r\n\r\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\r\n return this.useTinyLandmarkNet\r\n ? nets.faceLandmark68TinyNet\r\n : nets.faceLandmark68Net\r\n }\r\n}\r\n\r\nexport class DetectAllFaceLandmarksTask<\r\n TSource extends WithFaceDetection<{}>\r\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\r\n\r\n public async run(): Promise[]> {\r\n\r\n const parentResults = await this.parentTask\r\n const detections = parentResults.map(res => res.detection)\r\n\r\n const faces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, detections)\r\n : await extractFaces(this.input, detections)\r\n\r\n const faceLandmarksByFace = await Promise.all(faces.map(\r\n face => this.landmarkNet.detectLandmarks(face)\r\n )) as FaceLandmarks68[]\r\n\r\n faces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return parentResults.map((parentResult, i) =>\r\n extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i])\r\n )\r\n }\r\n\r\n withFaceDescriptors(): ComputeAllFaceDescriptorsTask> {\r\n return new ComputeAllFaceDescriptorsTask>(this, this.input)\r\n }\r\n}\r\n\r\nexport class DetectSingleFaceLandmarksTask<\r\n TSource extends WithFaceDetection<{}>\r\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\r\n\r\n public async run(): Promise | undefined> {\r\n\r\n const parentResult = await this.parentTask\r\n if (!parentResult) {\r\n return\r\n }\r\n\r\n const { detection } = parentResult\r\n const faces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, [detection])\r\n : await extractFaces(this.input, [detection])\r\n\r\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68\r\n\r\n faces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return extendWithFaceLandmarks(parentResult, landmarks)\r\n }\r\n\r\n withFaceDescriptor(): ComputeSingleFaceDescriptorTask> {\r\n return new ComputeSingleFaceDescriptorTask>(this, this.input)\r\n }\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\nimport { tf } from 'tfjs-tiny-yolov2';\r\n\r\nimport { extractFaces, extractFaceTensors } from '../dom';\r\nimport { FaceExpressionPrediction } from '../faceExpressionNet/types';\r\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\r\nimport { ComposableTask } from './ComposableTask';\r\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\r\nimport { nets } from './nets';\r\n\r\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\r\n constructor(\r\n protected parentTask: ComposableTask | Promise,\r\n protected input: TNetInput\r\n ) {\r\n super()\r\n }\r\n}\r\n\r\nexport class PredictAllFaceExpressionsTask<\r\n TSource extends WithFaceDetection<{}>\r\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\r\n\r\n public async run(): Promise[]> {\r\n\r\n const parentResults = await this.parentTask\r\n\r\n const detections = parentResults.map(parentResult => parentResult.detection)\r\n const faces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, detections)\r\n : await extractFaces(this.input, detections)\r\n\r\n const faceExpressionsByFace = await Promise.all(faces.map(\r\n face => nets.faceExpressionNet.predictExpressions(face)\r\n )) as FaceExpressionPrediction[][]\r\n\r\n faces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return parentResults.map(\r\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i])\r\n )\r\n }\r\n\r\n withFaceLandmarks(): DetectAllFaceLandmarksTask> {\r\n return new DetectAllFaceLandmarksTask(this, this.input, false)\r\n }\r\n}\r\n\r\nexport class PredictSingleFaceExpressionTask<\r\n TSource extends WithFaceDetection<{}>\r\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\r\n\r\n public async run(): Promise | undefined> {\r\n\r\n const parentResult = await this.parentTask\r\n if (!parentResult) {\r\n return\r\n }\r\n\r\n const { detection } = parentResult\r\n const faces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, [detection])\r\n : await extractFaces(this.input, [detection])\r\n\r\n const faceExpressions = await nets.faceExpressionNet.predictExpressions(faces[0]) as FaceExpressionPrediction[]\r\n\r\n faces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return extendWithFaceExpressions(parentResult, faceExpressions)\r\n }\r\n\r\n withFaceLandmarks(): DetectSingleFaceLandmarksTask> {\r\n return new DetectSingleFaceLandmarksTask(this, this.input, false)\r\n }\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\nimport { TinyYolov2Options } from 'tfjs-tiny-yolov2';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { MtcnnOptions } from '../mtcnn/MtcnnOptions';\r\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\r\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\r\nimport { ComposableTask } from './ComposableTask';\r\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\r\nimport { nets } from './nets';\r\nimport { FaceDetectionOptions } from './types';\r\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionTask } from './PredictFaceExpressionsTask';\r\n\r\nexport class DetectFacesTaskBase extends ComposableTask {\r\n constructor(\r\n protected input: TNetInput,\r\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options()\r\n ) {\r\n super()\r\n }\r\n}\r\n\r\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\r\n\r\n public async run(): Promise {\r\n\r\n const { input, options } = this\r\n\r\n if (options instanceof MtcnnOptions) {\r\n return (await nets.mtcnn.forward(input, options))\r\n .map(result => result.detection)\r\n }\r\n\r\n const faceDetectionFunction = options instanceof TinyFaceDetectorOptions\r\n ? (input: TNetInput) => nets.tinyFaceDetector.locateFaces(input, options)\r\n : (\r\n options instanceof SsdMobilenetv1Options\r\n ? (input: TNetInput) => nets.ssdMobilenetv1.locateFaces(input, options)\r\n : (\r\n options instanceof TinyYolov2Options\r\n ? (input: TNetInput) => nets.tinyYolov2.locateFaces(input, options)\r\n : null\r\n )\r\n )\r\n\r\n if (!faceDetectionFunction) {\r\n throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options')\r\n }\r\n\r\n return faceDetectionFunction(input)\r\n }\r\n\r\n private runAndExtendWithFaceDetections(): Promise[]> {\r\n return new Promise[]>(async res => {\r\n const detections = await this.run()\r\n return res(detections.map(detection => extendWithFaceDetection({}, detection)))\r\n })\r\n }\r\n\r\n withFaceLandmarks(useTinyLandmarkNet: boolean = false): DetectAllFaceLandmarksTask> {\r\n return new DetectAllFaceLandmarksTask>(\r\n this.runAndExtendWithFaceDetections(),\r\n this.input,\r\n useTinyLandmarkNet\r\n )\r\n }\r\n\r\n withFaceExpressions(): PredictAllFaceExpressionsTask> {\r\n return new PredictAllFaceExpressionsTask>(\r\n this.runAndExtendWithFaceDetections(),\r\n this.input\r\n )\r\n }\r\n}\r\n\r\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\r\n\r\n public async run(): Promise {\r\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\r\n let faceDetectionWithHighestScore = faceDetections[0];\r\n faceDetections.forEach(faceDetection => {\r\n if (faceDetection.score > faceDetectionWithHighestScore.score) {\r\n faceDetectionWithHighestScore = faceDetection;\r\n }\r\n });\r\n return faceDetectionWithHighestScore;\r\n }\r\n\r\n private runAndExtendWithFaceDetection(): Promise> {\r\n return new Promise>(async res => {\r\n const detection = await this.run()\r\n return res(detection ? extendWithFaceDetection<{}>({}, detection) : undefined)\r\n })\r\n }\r\n\r\n withFaceLandmarks(useTinyLandmarkNet: boolean = false): DetectSingleFaceLandmarksTask> {\r\n return new DetectSingleFaceLandmarksTask>(\r\n this.runAndExtendWithFaceDetection(),\r\n this.input,\r\n useTinyLandmarkNet\r\n )\r\n }\r\n\r\n withFaceExpressions(): PredictSingleFaceExpressionTask> {\r\n return new PredictSingleFaceExpressionTask>(\r\n this.runAndExtendWithFaceDetection(),\r\n this.input\r\n )\r\n }\r\n\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\r\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\r\nimport { FaceDetectionOptions } from './types';\r\n\r\nexport function detectSingleFace(\r\n input: TNetInput,\r\n options: FaceDetectionOptions = new SsdMobilenetv1Options()\r\n): DetectSingleFaceTask {\r\n return new DetectSingleFaceTask(input, options)\r\n}\r\n\r\nexport function detectAllFaces(\r\n input: TNetInput,\r\n options: FaceDetectionOptions = new SsdMobilenetv1Options()\r\n): DetectAllFacesTask {\r\n return new DetectAllFacesTask(input, options)\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\nimport { ITinyYolov2Options, TinyYolov2Options } from 'tfjs-tiny-yolov2';\r\n\r\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories';\r\nimport { IMtcnnOptions, MtcnnOptions } from '../mtcnn/MtcnnOptions';\r\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1';\r\nimport { detectAllFaces } from './detectFaces';\r\n\r\n// export allFaces API for backward compatibility\r\n\r\nexport async function allFacesSsdMobilenetv1(\r\n input: TNetInput,\r\n minConfidence?: number\r\n): Promise>>[]> {\r\n return await detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\r\n .withFaceLandmarks()\r\n .withFaceDescriptors()\r\n}\r\n\r\nexport async function allFacesTinyYolov2(\r\n input: TNetInput,\r\n forwardParams: ITinyYolov2Options = {}\r\n): Promise>>[]> {\r\n return await detectAllFaces(input, new TinyYolov2Options(forwardParams))\r\n .withFaceLandmarks()\r\n .withFaceDescriptors()\r\n}\r\n\r\nexport async function allFacesMtcnn(\r\n input: TNetInput,\r\n forwardParams: IMtcnnOptions = {}\r\n): Promise>>[]> {\r\n return await detectAllFaces(input, new MtcnnOptions(forwardParams))\r\n .withFaceLandmarks()\r\n .withFaceDescriptors()\r\n}\r\n\r\nexport const allFaces = allFacesSsdMobilenetv1\r\n","export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\r\n if (arr1.length !== arr2.length)\r\n throw new Error('euclideanDistance: arr1.length !== arr2.length')\r\n\r\n const desc1 = Array.from(arr1)\r\n const desc2 = Array.from(arr2)\r\n\r\n return Math.sqrt(\r\n desc1\r\n .map((val, i) => val - desc2[i])\r\n .reduce((res, diff) => res + Math.pow(diff, 2), 0)\r\n )\r\n}","import { FaceMatch } from '../classes/FaceMatch';\r\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\r\nimport { euclideanDistance } from '../euclideanDistance';\r\nimport { WithFaceDescriptor } from '../factories';\r\n\r\nexport class FaceMatcher {\r\n\r\n private _labeledDescriptors: LabeledFaceDescriptors[]\r\n private _distanceThreshold: number\r\n\r\n constructor(\r\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\r\n distanceThreshold: number = 0.6\r\n ) {\r\n\r\n this._distanceThreshold = distanceThreshold\r\n\r\n const inputArray = Array.isArray(inputs) ? inputs : [inputs]\r\n\r\n if (!inputArray.length) {\r\n throw new Error(`FaceRecognizer.constructor - expected atleast one input`)\r\n }\r\n\r\n let count = 1\r\n const createUniqueLabel = () => `person ${count++}`\r\n\r\n this._labeledDescriptors = inputArray.map((desc) => {\r\n if (desc instanceof LabeledFaceDescriptors) {\r\n return desc\r\n }\r\n\r\n if (desc instanceof Float32Array) {\r\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc])\r\n }\r\n\r\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\r\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor])\r\n }\r\n\r\n throw new Error(`FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>`)\r\n })\r\n }\r\n\r\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors }\r\n public get distanceThreshold(): number { return this._distanceThreshold }\r\n\r\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\r\n return descriptors\r\n .map(d => euclideanDistance(d, queryDescriptor))\r\n .reduce((d1, d2) => d1 + d2, 0)\r\n / (descriptors.length || 1)\r\n }\r\n\r\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\r\n return this.labeledDescriptors\r\n .map(({ descriptors, label }) => new FaceMatch(\r\n label,\r\n this.computeMeanDistance(queryDescriptor, descriptors)\r\n ))\r\n .reduce((best, curr) => best.distance < curr.distance ? best : curr)\r\n }\r\n\r\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\r\n const bestMatch = this.matchDescriptor(queryDescriptor)\r\n return bestMatch.distance < this.distanceThreshold\r\n ? bestMatch\r\n : new FaceMatch('unknown', bestMatch.distance)\r\n }\r\n\r\n}","import { Mtcnn } from './Mtcnn';\r\n\r\nexport * from './Mtcnn';\r\nexport * from './MtcnnOptions';\r\n\r\nexport function createMtcnn(weights: Float32Array) {\r\n const net = new Mtcnn()\r\n net.extractWeights(weights)\r\n return net\r\n}","import { TinyFaceDetector } from './TinyFaceDetector';\r\n\r\nexport * from './TinyFaceDetector';\r\nexport * from './TinyFaceDetectorOptions';\r\n\r\nexport function createTinyFaceDetector(weights: Float32Array) {\r\n const net = new TinyFaceDetector()\r\n net.extractWeights(weights)\r\n return net\r\n}","import { TinyYolov2 } from './TinyYolov2';\r\n\r\nexport * from './TinyYolov2';\r\n\r\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\r\n const net = new TinyYolov2(withSeparableConvs)\r\n net.extractWeights(weights)\r\n return net\r\n}","import { IDimensions } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from './classes/FaceDetection';\r\nimport { FaceLandmarks } from './classes/FaceLandmarks';\r\nimport { extendWithFaceDetection } from './factories/WithFaceDetection';\r\nimport { extendWithFaceLandmarks } from './factories/WithFaceLandmarks';\r\n\r\nexport function resizeResults(results: T, { width, height }: IDimensions): T {\r\n\r\n if (Array.isArray(results)) {\r\n return results.map(obj => resizeResults(obj, { width, height })) as any as T\r\n }\r\n\r\n const hasLandmarks = results['unshiftedLandmarks'] && results['unshiftedLandmarks'] instanceof FaceLandmarks\r\n const hasDetection = results['detection'] && results['detection'] instanceof FaceDetection\r\n\r\n if (hasLandmarks) {\r\n const resizedDetection = results['detection'].forSize(width, height)\r\n const resizedLandmarks = results['unshiftedLandmarks'].forSize(resizedDetection.box.width, resizedDetection.box.height)\r\n\r\n return extendWithFaceLandmarks(extendWithFaceDetection(results as any, resizedDetection), resizedLandmarks)\r\n }\r\n\r\n if (hasDetection) {\r\n return extendWithFaceDetection(results as any, results['detection'].forSize(width, height))\r\n }\r\n\r\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\r\n return (results as any).forSize(width, height)\r\n }\r\n\r\n return results\r\n}"],"names":["tensor","tf.Tensor","isEven","round","range","step","tslib_1.__extends","tslib_1.__assign","environment","tslib_1.__awaiter","tslib_1.__generator","tf.tidy","tf.toPixels","tf.io","tf.fill","tf.concat","tf.image","tf.fromPixels","tf.stack","nonMaxSuppression","tf.sub","sigmoid","tf.Variable","variable","tf.tensor","tf.slice3d","tf.separableConv2d","tf.add","tf.relu","tf.conv2d","tf.tensor4d","tf.tensor1d","tf.tensor2d","isNumber","min","tf.mul","tf.scalar","tf.pad","depthwiseSeparableConv","sub","extractorsFactory","tf.maxPool","tf.unstack","tf.softmax","max","tf.sigmoid","tf.sum","tf.square","tf.zeros","tf.avgPool","extractParamsFromWeigthMap","extractParams","tf.matMul","convLayer","tf.transpose","zeros","tf.tensor3d","tf.clipByValue","tf.depthwiseConv2d","tf.batchNormalization","tf.div","tf.exp","tf.reshape","tf.tile","tf.slice","CELL_SIZE","tf.neg","prelu","tf.expandDims","tf.max","normalize","all","TinyYolov2Base","IOU_THRESHOLD","BOX_ANCHORS","TinyYolov2"],"mappings":"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AG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CA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C,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,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CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC,+BAA+B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,YAAW,CAAC,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,YAAW,CAAC,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,YAAW,CAAC,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,YAAW,CAAC,CAAC,qBAAqB,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,OAAM,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,EAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,OAAM,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,YAAY,MAAM,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,YAAY,MAAM,CAAC,gDAAgD,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qIAAqI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC,YAAY,MAAM,CAAC,4FAA4F,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kGAAkG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,qKAAqK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,sIAAsI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,oHAAoH,CAAC,CAAC,OAAO,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,EAAC,CAAC,OAAO,gBAAgB,CAAC,SAAS,iCAAiC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,iCAAiC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,OAAO,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,OAAO,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,QAAQ,EAAE,CAAC,OAAM,WAAW,EAAE,OAAO,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,yBAAyB,CAAC,WAAW,CAAC,SAAS,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,OAAO,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,yBAAyB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,6IAA6I,EAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,OAAM,WAAW,EAAE,OAAO,MAAM,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,OAAM,WAAW,EAAE,OAAO,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,OAAO,QAAQ,EAAE,CAAC,GAAG,mBAAmB,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,iBAAiB,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,0BAA0B,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,qBAAqB,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,mBAAmB,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,sBAAsB,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,wBAAwB,GAAG,CAAC,CAAC,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,8CAA8C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,GAAG,+CAA+C,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,8BAA8B,GAAG,CAAC,CAAC,OAAO,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,8BAA8B,GAAG,CAAC,CAAC,OAAO,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,yBAAyB,GAAG,CAAC,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,2BAA2B,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,oCAAoC,GAAG,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,EAAE,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,EAAE,OAAO,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,QAAO,CAAC,OAAO,CAAC,CAAC,SAAS,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,kBAAkB,EAAE,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,YAAY,MAAM,CAAC,6CAA6C,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,YAAY,MAAM,CAAC,kDAAkD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,YAAY,MAAM,CAAC,sDAAsD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,MAAM,CAAC,qDAAqD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,YAAY,MAAM,CAAC,0DAA0D,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,YAAY,MAAM,CAAC,8DAA8D,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,uGAAuG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,QAAQ,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,+FAA+F,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,8LAA8L,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,0IAA0I,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,EAAE,CAAC,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4FAA4F,CAAC,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAM,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,oCAAoC,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAM,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAM,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAM,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,wGAAwG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,2EAA2E,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,+EAA+E,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,0HAA0H,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,OAAM,gCAAgC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAM,+CAA+C,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,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AE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,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C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,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EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,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AAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,C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CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,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AC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,4BAA4B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,8BAA8B,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,+BAA+B,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,+FAA+F,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,sDAAsD,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,iIAAiI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,eAAe,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,OAAM,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,OAAM,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,OAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,OAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sEAAsE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mEAAmE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sEAAsE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sEAAsE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,+GAA+G,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,8EAA8E,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,kEAAkE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,4GAA4G,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wFAAwF,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yFAAyF,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,4EAA4E,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAM,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sEAAsE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,+GAA+G,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,kEAAkE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAM,4DAA4D,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,OAAM,sDAAsD,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,8CAA8C,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gHAAgH,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAC,2BAA2B,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,YAAY,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,gDAAgD,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,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,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC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I,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAA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I,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,C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,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG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"} \ No newline at end of file +{"version":3,"file":"face-api.js","sources":["../node_modules/@tensorflow/tfjs-core/dist/tf-core.esm.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/Dimensions.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/Point.js","../node_modules/tfjs-image-recognition-base/build/es6/utils/index.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/Box.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/BoundingBox.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/BoxWithText.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/LabeledBox.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/ObjectDetection.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/PredictedBox.js","../node_modules/tfjs-image-recognition-base/build/es6/classes/Rect.js","../node_modules/tfjs-image-recognition-base/build/es6/common/disposeUnusedWeightTensors.js","../node_modules/tfjs-image-recognition-base/build/es6/common/extractWeightEntryFactory.js","../node_modules/tfjs-image-recognition-base/build/es6/common/extractWeightsFactory.js","../node_modules/tfjs-image-recognition-base/build/es6/common/getModelUris.js","../node_modules/tfjs-image-recognition-base/build/es6/env/createBrowserEnv.js","../node_modules/tfjs-image-recognition-base/build/es6/env/createFileSystem.js","../node_modules/tfjs-image-recognition-base/build/es6/env/createNodejsEnv.js","../node_modules/tfjs-image-recognition-base/build/es6/env/isBrowser.js","../node_modules/tfjs-image-recognition-base/build/es6/env/isNodejs.js","../node_modules/tfjs-image-recognition-base/build/es6/env/index.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/isMediaLoaded.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/awaitMediaLoaded.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/bufferToImage.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/getContext2dOrThrow.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/getMediaDimensions.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/createCanvas.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/getDefaultDrawOptions.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/drawBox.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/drawText.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/resolveInput.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/drawDetection.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/fetchOrThrow.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/fetchImage.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/fetchJson.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/fetchNetWeights.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/imageTensorToCanvas.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/imageToSquare.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/isMediaElement.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/loadWeightMap.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/padToSquare.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/NetInput.js","../node_modules/tfjs-image-recognition-base/build/es6/dom/toNetInput.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/iou.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/nonMaxSuppression.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/normalize.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/shuffleArray.js","../node_modules/tfjs-image-recognition-base/build/es6/ops/index.js","../node_modules/tfjs-image-recognition-base/build/es6/NeuralNetwork.js","../src/classes/FaceDetection.ts","../src/classes/FaceLandmarks.ts","../src/classes/FaceLandmarks5.ts","../src/classes/FaceLandmarks68.ts","../src/classes/FaceMatch.ts","../src/classes/LabeledFaceDescriptors.ts","../src/dom/drawContour.ts","../src/dom/drawLandmarks.ts","../src/dom/drawFaceExpressions.ts","../src/dom/extractFaces.ts","../src/dom/extractFaceTensors.ts","../src/faceFeatureExtractor/depthwiseSeparableConv.ts","../src/faceFeatureExtractor/denseBlock.ts","../node_modules/tfjs-tiny-yolov2/build/es6/common/convLayer.js","../node_modules/tfjs-tiny-yolov2/build/es6/common/extractConvParamsFactory.js","../node_modules/tfjs-tiny-yolov2/build/es6/common/extractFCParamsFactory.js","../node_modules/tfjs-tiny-yolov2/build/es6/common/types.js","../node_modules/tfjs-tiny-yolov2/build/es6/common/extractSeparableConvParamsFactory.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/config.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/const.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/leaky.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/convWithBatchNorm.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/depthwiseSeparableConv.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/extractParams.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/extractParamsFromWeigthMap.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/TinyYolov2Options.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/TinyYolov2.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/TinyYolov2LossFunction.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/getDefaultBackwardOptions.js","../node_modules/tfjs-tiny-yolov2/build/es6/tinyYolov2/TinyYolov2Trainable.js","../src/faceFeatureExtractor/extractorsFactory.ts","../src/faceFeatureExtractor/extractParams.ts","../src/faceFeatureExtractor/loadParamsFactory.ts","../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts","../src/faceFeatureExtractor/FaceFeatureExtractor.ts","../src/common/fullyConnectedLayer.ts","../src/faceProcessor/extractParams.ts","../src/faceProcessor/extractParamsFromWeigthMap.ts","../src/faceProcessor/util.ts","../src/faceProcessor/FaceProcessor.ts","../src/faceExpressionNet/types.ts","../src/faceExpressionNet/FaceExpressionNet.ts","../src/faceLandmarkNet/FaceLandmark68NetBase.ts","../src/faceLandmarkNet/FaceLandmark68Net.ts","../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts","../src/faceFeatureExtractor/extractParamsTiny.ts","../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts","../src/faceLandmarkNet/FaceLandmark68TinyNet.ts","../src/faceLandmarkNet/index.ts","../src/faceRecognitionNet/scaleLayer.ts","../src/faceRecognitionNet/convLayer.ts","../src/faceRecognitionNet/extractParams.ts","../src/faceRecognitionNet/extractParamsFromWeigthMap.ts","../src/faceRecognitionNet/residualLayer.ts","../src/faceRecognitionNet/FaceRecognitionNet.ts","../src/faceRecognitionNet/index.ts","../src/factories/WithFaceDescriptor.ts","../src/factories/WithFaceDetection.ts","../src/factories/WithFaceExpressions.ts","../src/factories/WithFaceLandmarks.ts","../src/mtcnn/MtcnnOptions.ts","../src/ssdMobilenetv1/extractParams.ts","../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts","../src/ssdMobilenetv1/pointwiseConvLayer.ts","../src/ssdMobilenetv1/mobileNetV1.ts","../src/ssdMobilenetv1/nonMaxSuppression.ts","../src/ssdMobilenetv1/outputLayer.ts","../src/ssdMobilenetv1/boxPredictionLayer.ts","../src/ssdMobilenetv1/predictionLayer.ts","../src/ssdMobilenetv1/SsdMobilenetv1Options.ts","../src/ssdMobilenetv1/SsdMobilenetv1.ts","../src/ssdMobilenetv1/index.ts","../src/tinyFaceDetector/TinyFaceDetectorOptions.ts","../src/globalApi/ComposableTask.ts","../src/mtcnn/bgrToRgbTensor.ts","../src/mtcnn/config.ts","../src/mtcnn/extractParams.ts","../src/mtcnn/extractParamsFromWeigthMap.ts","../src/mtcnn/getSizesForScale.ts","../src/mtcnn/pyramidDown.ts","../src/mtcnn/MtcnnBox.ts","../src/mtcnn/normalize.ts","../src/mtcnn/prelu.ts","../src/mtcnn/sharedLayers.ts","../src/mtcnn/PNet.ts","../src/mtcnn/stage1.ts","../src/mtcnn/extractImagePatches.ts","../src/mtcnn/RNet.ts","../src/mtcnn/stage2.ts","../src/mtcnn/ONet.ts","../src/mtcnn/stage3.ts","../src/mtcnn/Mtcnn.ts","../src/tinyFaceDetector/const.ts","../src/tinyFaceDetector/TinyFaceDetector.ts","../src/tinyYolov2/const.ts","../src/tinyYolov2/TinyYolov2.ts","../src/globalApi/nets.ts","../src/globalApi/ComputeFaceDescriptorsTasks.ts","../src/globalApi/DetectFaceLandmarksTasks.ts","../src/globalApi/PredictFaceExpressionsTask.ts","../src/globalApi/DetectFacesTasks.ts","../src/globalApi/detectFaces.ts","../src/globalApi/allFaces.ts","../src/euclideanDistance.ts","../src/globalApi/FaceMatcher.ts","../src/mtcnn/index.ts","../src/tinyFaceDetector/index.ts","../src/tinyYolov2/index.ts","../src/resizeResults.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2018 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nvar extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};function __extends(e,t){function n(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var __assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]0;)r=Math.random()*t|0,n=e[--t],e[t]=e[r],e[r]=n}function clamp(e,t,n){return Math.max(e,Math.min(t,n))}function nearestLargerEven(e){return e%2==0?e:e+1}function sum(e){for(var t=0,n=0;n1;--t)if(e%t==0)return[t,e/t];return[1,e]}function createShuffledIndices(e){for(var t=new Uint32Array(e),n=0;n=n?o():setTimeout(i,s)}};i()})}function inferFromImplicitShape(e,t){for(var n=1,r=-1,o=0;o=0)n*=e[o];else if(-1===e[o]){if(-1!==r)throw Error(\"Shapes can only have 1 implicit size. Found -1 at dim \"+r+\" and dim \"+o);r=o}else if(e[o]<0)throw Error(\"Shapes can not be < 0. Found \"+e[o]+\" at dim \"+o);if(-1===r){if(t>0&&t!==n)throw Error(\"Size(\"+t+\") must match the product of shape \"+e);return e}if(0===n)throw Error(\"Cannot infer the missing size in [\"+e+\"] when there are 0 elements\");if(t%n!=0)throw Error(\"The implicit shape can't be a fractional number. Got \"+t+\" / \"+n);var a=e.slice();return a[r]=t/n,a}function squeezeShape(e,t){for(var n=[],r=[],o=0,a=0;aa)&&1===e[a]&&(n.push(e[a]),r.push(a)),t[o]<=a&&o++}1!==e[a]&&(n.push(e[a]),r.push(a))}return{newShape:n,keptDims:r}}function getTypedArrayFromDType(e,t){var n=null;if(null==e||\"float32\"===e)n=new Float32Array(t);else if(\"int32\"===e)n=new Int32Array(t);else{if(\"bool\"!==e)throw new Error(\"Unknown data type \"+e);n=new Uint8Array(t)}return n}function getArrayFromDType(e,t){var n=null;if(null==e||\"float32\"===e)n=new Float32Array(t);else if(\"int32\"===e)n=new Int32Array(t);else if(\"bool\"===e)n=new Uint8Array(t);else{if(\"string\"!==e)throw new Error(\"Unknown data type \"+e);n=new Array(t)}return n}function checkComputationForNaN(e,t,n){if(\"float32\"===t)for(var r=0;r=0;--r)n[r]=n[r+1]*e[r+1];return n}function toTypedArray(e,t,n){if(\"string\"===t)throw new Error(\"Cannot convert a string[] to a TypedArray\");if(noConversionNeeded(e,t))return e;if(Array.isArray(e)&&(e=flatten(e)),null==t||\"float32\"===t||\"complex64\"===t)return new Float32Array(e);if(\"int32\"===t)return n&&checkConversionForNaN(e,t),new Int32Array(e);if(\"bool\"===t){for(var r=new Uint8Array(e.length),o=0;o1)for(var l=0;lFORMAT_LIMIT_NUM_VALS){var l=FORMAT_NUM_FIRST_LAST_VALS*i,c=Array.from(e.slice(0,l)),p=Array.from(e.slice(s-FORMAT_NUM_FIRST_LAST_VALS*i,s));return\"complex64\"===n&&(c=createComplexTuples(c),p=createComplexTuples(p)),[\"[\"+c.map(function(e,t){return valToString(e,o[t])}).join(\", \")+\", ..., \"+p.map(function(e,t){return valToString(e,o[s-FORMAT_NUM_FIRST_LAST_VALS+t])}).join(\", \")+\"]\"]}return[\"[\"+(\"complex64\"===n?createComplexTuples(e):Array.from(e)).map(function(e,t){return valToString(e,o[t])}).join(\", \")+\"]\"]}var d=t.slice(1),h=r.slice(1),f=r[0]*i,m=[];if(s>FORMAT_LIMIT_NUM_VALS){for(var g=0;g=0;a--)for(i=(f=e[a]).inputs,c=0;c=0;r--)n(r)}!function(e){e.R0=\"R0\",e.R1=\"R1\",e.R2=\"R2\",e.R3=\"R3\",e.R4=\"R4\",e.R5=\"R5\",e.R6=\"R6\"}(Rank||(Rank={})),function(e){e.float32=\"float32\",e.int32=\"int32\",e.bool=\"int32\",e.complex64=\"complex64\"}(UpcastInt32AndMap||(UpcastInt32AndMap={})),function(e){e.float32=\"float32\",e.int32=\"int32\",e.bool=\"bool\",e.complex64=\"complex64\"}(UpcastBoolAndMap||(UpcastBoolAndMap={})),function(e){e.float32=\"float32\",e.int32=\"float32\",e.bool=\"float32\",e.complex64=\"complex64\"}(UpcastFloat32AndMap||(UpcastFloat32AndMap={})),function(e){e.float32=\"complex64\",e.int32=\"complex64\",e.bool=\"complex64\",e.complex64=\"complex64\"}(UpcastComplex64AndMap||(UpcastComplex64AndMap={}));var upcastTypeMap={float32:UpcastFloat32AndMap,int32:UpcastInt32AndMap,bool:UpcastBoolAndMap,complex64:UpcastComplex64AndMap};function upcastType(e,t){if(\"string\"===e||\"string\"===t){if(\"string\"===e&&\"string\"===t)return\"string\";throw new Error(\"Can not upcast \"+e+\" with \"+t)}return upcastTypeMap[e][t]}function sumOutType(e){return upcastType(e,\"int32\")}function makeTypesMatch(e,t){if(e.dtype===t.dtype)return[e,t];var n=upcastType(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function assertTypesMatch(e,t){assert(e.dtype===t.dtype,\"The dtypes of the first(\"+e.dtype+\") and second(\"+t.dtype+\") input must match\")}function isTensorInList(e,t){for(var n=0;n0&&(e.unreliable=!0,null==e.reasons&&(e.reasons=[]),e.reasons.push(\"Memory usage by string tensors is approximate (2 bytes per character)\")),e},e.prototype.profile=function(e){return __awaiter(this,void 0,void 0,function(){var t,n;return __generator(this,function(r){return this.profiling=!0,t=this.numBytes,n=this.numTensors,this.activeProfile.kernels=[],this.activeProfile.result=e(),this.profiling=!1,this.activeProfile.peakBytes=Math.max.apply(Math,this.activeProfile.kernels.map(function(e){return e.totalBytesSnapshot})),this.activeProfile.newBytes=this.numBytes-t,this.activeProfile.newTensors=this.numTensors-n,[2,this.activeProfile]})})},e.prototype.shouldRecord=function(){return null!=this.activeTape&&0===this.customGradientDepth},e.prototype.addTapeNode=function(e,t,n){var r={};e.forEach(function(e,t){r[t]=e});var o={id:this.nextTapeNodeId++,name:this.activeScope.name,inputs:r,outputs:[t],gradient:function(e){var t={};return n(e).forEach(function(e,n){t[n]=function(){return e}}),t}};this.activeTape.push(o)},e.prototype.keep=function(e){if(1===this.scopeStack.length&&this.safeMode)throw new Error(\"Safe mode is ON. Enclose all tensor operations inside tf.tidy(): tf.tidy(() => {...}) to avoid memory leaks.\");return this.keepTensors.add(e.id),e},e.prototype.startScope=function(e,t){void 0===t&&(t=!1),t&&0===this.gradientScopeCount&&(this.activeTape=[]),t&&this.gradientScopeCount++;var n={track:[],name:\"unnamed scope\"};e&&(n.name=e),this.scopeStack.push(n),this.activeScope=n},e.prototype.endScope=function(e,t){var n=this;void 0===t&&(t=!1),t&&(this.gradientScopeCount--,0===this.gradientScopeCount&&(this.activeTape=null));var r=new Set(this.keepTensors),o=getTensorsInContainer(e);o.forEach(function(e){return r.add(e.id)});for(var a=0;a0,\"gradients() received an empty list of xs.\"),null!=n&&\"float32\"!==n.dtype)throw new Error(\"dy must have 'float32' dtype, but has '\"+n.dtype+\"'\");return this.tidy(\"gradients\",function(){var a=e();assert(a instanceof Tensor,\"The result y returned by f() must be a tensor.\");var i=getFilteredNodesXToY(o.activeTape,t,a);if(!r&&0===i.length&&t.length>0)throw new Error(\"Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.\");var s={};return s[a.id]=null==n?ones(a.shape):n,backpropagateGradients(s,i),{value:a,grads:t.map(function(e){return s[e.id]})}},!0)},e.prototype.customGrad=function(e){var t=this;return assert(isFunction(e),\"The f passed in customGrad(f) must be a function.\"),function(){for(var n,r,o=[],a=0;a {op();...}); to avoid memory leaks.\");return null!=this.activeScope&&this.activeScope.track.push(e),e},e.nextTensorId=0,e.nextVariableId=0,e}();function ones(e){var t=makeOnesTypedArray(sizeFromShape(e),\"float32\");return Tensor.make(e,{values:t})}!function(e){e[e.NUMBER=0]=\"NUMBER\",e[e.BOOLEAN=1]=\"BOOLEAN\",e[e.STRING=2]=\"STRING\"}(Type||(Type={}));var MAX_TEXTURE_SIZE,URL_PROPERTIES=[{name:\"DEBUG\",type:Type.BOOLEAN},{name:\"IS_BROWSER\",type:Type.BOOLEAN},{name:\"WEBGL_LAZILY_UNPACK\",type:Type.BOOLEAN},{name:\"WEBGL_CPU_FORWARD\",type:Type.BOOLEAN},{name:\"WEBGL_PACK\",type:Type.BOOLEAN},{name:\"WEBGL_PACK_BATCHNORMALIZATION\",type:Type.BOOLEAN},{name:\"WEBGL_PACK_CLIP\",type:Type.BOOLEAN},{name:\"WEBGL_PACK_DEPTHWISECONV\",type:Type.BOOLEAN},{name:\"WEBGL_CONV_IM2COL\",type:Type.BOOLEAN},{name:\"WEBGL_MAX_TEXTURE_SIZE\",type:Type.NUMBER},{name:\"WEBGL_PAGING_ENABLED\",type:Type.BOOLEAN},{name:\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",type:Type.NUMBER},{name:\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",type:Type.BOOLEAN},{name:\"WEBGL_VERSION\",type:Type.NUMBER},{name:\"WEBGL_RENDER_FLOAT32_ENABLED\",type:Type.BOOLEAN},{name:\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",type:Type.BOOLEAN},{name:\"WEBGL_FENCE_API_ENABLED\",type:Type.BOOLEAN},{name:\"WEBGL_SIZE_UPLOAD_UNIFORM\",type:Type.NUMBER},{name:\"BACKEND\",type:Type.STRING},{name:\"EPSILON\",type:Type.NUMBER},{name:\"PROD\",type:Type.BOOLEAN},{name:\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",type:Type.BOOLEAN}];function isWebGLVersionEnabled(e){try{if(null!=getWebGLContext(e))return!0}catch(e){return!1}return!1}function getWebGLMaxTextureSize(e){if(null==MAX_TEXTURE_SIZE){var t=getWebGLContext(e);MAX_TEXTURE_SIZE=t.getParameter(t.MAX_TEXTURE_SIZE)}return MAX_TEXTURE_SIZE}function getWebGLDisjointQueryTimerVersion(e){if(0===e)return 0;var t=getWebGLContext(e);return hasExtension(t,\"EXT_disjoint_timer_query_webgl2\")&&2===e?2:hasExtension(t,\"EXT_disjoint_timer_query\")?1:0}function isRenderToFloatTextureEnabled(e){if(0===e)return!1;var t=getWebGLContext(e);if(1===e){if(!hasExtension(t,\"OES_texture_float\"))return!1}else if(!hasExtension(t,\"EXT_color_buffer_float\"))return!1;return createFloatTextureAndBindToFramebuffer(t,e)}function isDownloadFloatTextureEnabled(e){if(0===e)return!1;var t=getWebGLContext(e);if(1===e){if(!hasExtension(t,\"OES_texture_float\"))return!1;if(!hasExtension(t,\"WEBGL_color_buffer_float\"))return!1}else if(!hasExtension(t,\"EXT_color_buffer_float\"))return!1;return createFloatTextureAndBindToFramebuffer(t,e)}function isWebGLFenceEnabled(e){return 2===e&&null!=getWebGLContext(e).fenceSync}function isChrome(){return\"undefined\"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}var TENSORFLOWJS_FLAGS_PREFIX=\"tfjsflags\";function getFeaturesFromURL(){var e={};if(\"undefined\"==typeof window||void 0===window.location||void 0===window.location.search)return e;var t=getQueryParams(window.location.search);if(TENSORFLOWJS_FLAGS_PREFIX in t){var n={};t[TENSORFLOWJS_FLAGS_PREFIX].split(\",\").forEach(function(e){var t=e.split(\":\"),r=t[0],o=t[1];n[r]=o}),URL_PROPERTIES.forEach(function(t){t.name in n&&(console.log(\"Setting feature override from URL \"+t.name+\": \"+n[t.name]),t.type===Type.NUMBER?e[t.name]=+n[t.name]:t.type===Type.BOOLEAN?e[t.name]=\"true\"===n[t.name]:t.type===Type.STRING?e[t.name]=n[t.name]:console.warn(\"Unknown URL param: \"+t.name+\".\"))})}return e}function hasExtension(e,t){return null!=e.getExtension(t)}function createFloatTextureAndBindToFramebuffer(e,t){var n=e.createFramebuffer(),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);var o=2===t?e.RGBA32F:e.RGBA;e.texImage2D(e.TEXTURE_2D,0,o,1,1,0,e.RGBA,e.FLOAT,null),e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);var a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(n),a}function getQueryParams(e){var t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,function(e){for(var n=[],r=1;r0&&!isMobile();if(\"HAS_WEBGL\"===e)return this.get(\"WEBGL_VERSION\")>0;if(\"WEBGL_VERSION\"===e)return isWebGLVersionEnabled(2)?2:isWebGLVersionEnabled(1)?1:0;if(\"WEBGL_RENDER_FLOAT32_ENABLED\"===e)return isRenderToFloatTextureEnabled(this.get(\"WEBGL_VERSION\"));if(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\"===e)return isDownloadFloatTextureEnabled(this.get(\"WEBGL_VERSION\"));if(\"WEBGL_FENCE_API_ENABLED\"===e)return isWebGLFenceEnabled(this.get(\"WEBGL_VERSION\"));if(\"WEBGL_SIZE_UPLOAD_UNIFORM\"===e)return this.get(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0;if(\"TEST_EPSILON\"===e)return 32===this.backend.floatPrecision()?TEST_EPSILON_FLOAT32:TEST_EPSILON_FLOAT16;if(\"EPSILON\"===e)return 32===this.backend.floatPrecision()?EPSILON_FLOAT32:EPSILON_FLOAT16;if(\"PROD\"===e)return!1;if(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\"===e)return!this.get(\"PROD\");throw new Error(\"Unknown feature \"+e+\".\")},e.prototype.setFeatures=function(e){this.features=Object.assign({},e)},e.prototype.reset=function(){this.features=getFeaturesFromURL(),null!=this.globalEngine&&(this.globalEngine=null)},Object.defineProperty(e.prototype,\"backend\",{get:function(){return this.engine.backend},enumerable:!0,configurable:!0}),e.prototype.findBackend=function(e){return e in this.registry?this.registry[e].backend:null},e.prototype.registerBackend=function(e,t,n,r){var o=this;if(void 0===n&&(n=1),e in this.registry)return console.warn(e+\" backend was already registered. Reusing existing backend\"),null!=r&&r(function(){return o.engine}),!1;try{var a=t();return a.setDataMover({moveData:function(e){return o.engine.moveData(e)}}),this.registry[e]={backend:a,priority:n},!0}catch(t){return console.warn(\"Registration of backend \"+e+\" failed\"),console.warn(t.stack||t.message),!1}},e.prototype.removeBackend=function(e){if(!(e in this.registry))throw new Error(e+\" backend not found in registry\");this.registry[e].backend.dispose(),delete this.registry[e]},Object.defineProperty(e.prototype,\"engine\",{get:function(){return this.initEngine(),this.globalEngine},enumerable:!0,configurable:!0}),e.prototype.initEngine=function(){var e=this;if(null==this.globalEngine){this.backendName=this.get(\"BACKEND\");var t=this.findBackend(this.backendName);this.globalEngine=new Engine(t,!1,function(){return e.get(\"DEBUG\")})}},e}();function getGlobalNamespace(){var e;if(\"undefined\"!=typeof window)e=window;else{if(\"undefined\"==typeof process)throw new Error(\"Could not find a global object\");e=process}return e}function getOrMakeEnvironment(){var e=getGlobalNamespace();return null==e.ENV&&(e.ENV=new Environment(getFeaturesFromURL()),setTensorTracker(function(){return e.ENV.engine})),e.ENV}var ENV=getOrMakeEnvironment(),environment=Object.freeze({EPSILON_FLOAT16:EPSILON_FLOAT16,EPSILON_FLOAT32:EPSILON_FLOAT32,Environment:Environment,ENV:ENV});function grad(e){return assert(isFunction(e),\"The f passed in grad(f) must be a function\"),function(t,n){return assert(t instanceof Tensor,\"The x passed in grad(f)(x) must be a tensor\"),assert(null==n||n instanceof Tensor,\"The dy passed in grad(f)(x, dy) must be a tensor\"),ENV.engine.tidy(function(){var r=ENV.engine.gradients(function(){return e(t)},[t],n),o=r.value,a=r.grads;return null!=n&&assertShapesMatch(o.shape,n.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),checkGrads(a),a[0]})}}function grads(e){return assert(isFunction(e),\"The f passed in grads(f) must be a function\"),function(t,n){return assert(Array.isArray(t)&&t.every(function(e){return e instanceof Tensor}),\"The args passed in grads(f)(args) must be an array of tensors\"),assert(null==n||n instanceof Tensor,\"The dy passed in grads(f)(args, dy) must be a tensor\"),ENV.engine.tidy(function(){var r=ENV.engine.gradients(function(){return e.apply(void 0,t)},t,n),o=r.value,a=r.grads;return null!=n&&assertShapesMatch(o.shape,n.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),checkGrads(a),a})}}function valueAndGrad(e){return assert(isFunction(e),\"The f passed in valueAndGrad(f) must be a function\"),function(t,n){assert(t instanceof Tensor,\"The x passed in valueAndGrad(f)(x) must be a tensor\"),assert(null==n||n instanceof Tensor,\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");var r=ENV.engine.gradients(function(){return e(t)},[t],n),o=r.grads,a=r.value;return checkGrads(o),{grad:o[0],value:a}}}function valueAndGrads(e){return assert(isFunction(e),\"The f passed in valueAndGrads(f) must be a function\"),function(t,n){assert(Array.isArray(t)&&t.every(function(e){return e instanceof Tensor}),\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),assert(null==n||n instanceof Tensor,\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");var r=ENV.engine.gradients(function(){return e.apply(void 0,t)},t,n);return null!=n&&assertShapesMatch(r.value.shape,n.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),checkGrads(r.grads),r}}function variableGrads(e,t){if(assert(isFunction(e),\"The f passed in variableGrads(f) must be a function\"),assert(null==t||Array.isArray(t)&&t.every(function(e){return e instanceof Variable}),\"The varList passed in variableGrads(f, varList) must be an array of variables\"),null==t)for(var n in t=[],ENV.engine.registeredVariables)t.push(ENV.engine.registeredVariables[n]);var r=t.length;assert((t=t.filter(function(e){return e.trainable})).length>0,\"variableGrads() expects at least one of the input variables to be trainable, but none of the \"+r+\" variables is trainable.\");var o=ENV.engine.gradients(e,t,null,!0),a=o.value,i=o.grads;assert(i.some(function(e){return null!=e}),\"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().\"),assert(0===a.rank,\"The f passed in variableGrads(f) must return a scalar, but it returned a rank-\"+a.rank+\" tensor\");var s={};return t.forEach(function(e,t){null!=i[t]&&(s[e.name]=i[t])}),{value:a,grads:s}}function customGrad(e){return ENV.engine.customGrad(e)}function checkGrads(e){if(e.filter(function(e){return null==e}).length>0)throw new Error(\"Cannot compute gradient of y=f(x) with respect to x. Make sure that\\n the f you passed encloses all operations that lead from x to y.\")}var tidy=Environment.tidy,keep=Environment.keep,dispose=Environment.dispose,time=Environment.time,profile=Environment.profile;function warn(){for(var e=[],t=0;t=2*t+1||o%2==1?i.push(o):a.push(o);r.push.apply(r,a),r.push(0),r.push.apply(r,i)}return r}function getReshapedPermuted(e,t,n,r){void 0===r&&(r=!0);var o=[];r?o.push(e[0]/n):o.push(e[0]*n);for(var a=1;a=-n&&e=0&&te.rank)throw new Error(\"index innermost dimension length must be <= tensor rank; saw: \"+t.shape[t.rank-1]+\" vs. \"+e.rank);if(0===e.size)throw new Error(\"Requested more than 0 entries, but input is empty. Input shape: \"+e.shape+\".\");for(var n=t.shape,r=n[n.length-1],o=1,a=0;a1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,a=\"Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: \"+n.shape+\", indices.shape: \"+t.shape+\", shape: \"+e+\", sliceDim: \"+r+\", and batchDim: \"+o+\".\";if(n.rank1?t.shape[t.rank-1]:1,o=n.length,a=1,i=r;it||n===e){r=!0;break}n=nearestDivisor(e,n+1)}return n}function computeOutShape$1(e,t,n){for(var r=[],o=e.length,a=0;a0?o>=c[t]:o<=c[t]);o+=r[t])n+=1;return n}),[l,h,p]}function startForAxis(e,t,n,r,o){var a=t[o];e&1<0?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER);var i=r[o];return a<0&&(a+=i),a=clamp(0,a,i-1)}function stopForAxis(e,t,n,r,o){var a=t[o];e&1<0?Number.MAX_SAFE_INTEGER:Number.MIN_SAFE_INTEGER);var i=r[o];return a<0&&(a+=i),a=n[o]>0?clamp(0,a,i):clamp(-1,a,i-1)}function inferShape(e){var t=e;if(isTypedArray(e))return[e.length];if(!Array.isArray(e))return[];for(var n=[];t instanceof Array||isTypedArray(t);)n.push(t.length),t=t[0];return e instanceof Array&&ENV.get(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&deepAssertShapeConsistency(e,n,[]),n}function deepAssertShapeConsistency(e,t,n){if(n=n||[],e instanceof Array||isTypedArray(e)){assert(t.length>0,function(){return\"Element arr[\"+n.join(\"][\")+\"] should be a primitive, but is an array of \"+e.length+\" elements\"}),assert(e.length===t[0],function(){return\"Element arr[\"+n.join(\"][\")+\"] should have \"+t[0]+\" elements, but has \"+e.length+\" elements\"});for(var r=t.slice(1),o=0;o=0&&(o=r),assertDtype(r,o,t,n),!isTypedArray(e)&&!Array.isArray(e)&&\"number\"!=typeof e&&\"boolean\"!=typeof e&&\"string\"!=typeof e)throw new Error(\"Argument '\"+t+\"' passed to '\"+n+\"' must be a Tensor or TensorLike, but got '\"+e.constructor.name+\"'\");var a=inferShape(e);isTypedArray(e)||Array.isArray(e)||(e=[e]);var i=\"string\"!==o?toTypedArray(e,o,ENV.get(\"DEBUG\")):flatten(e);return Tensor.make(a,{values:i},o)}function convertToTensorArray(e,t,n){if(!Array.isArray(e))throw new Error(\"Argument \"+t+\" passed to \"+n+\" must be a `Tensor[]` or `TensorLike[]`\");return e.map(function(e,r){return convertToTensor(e,t+\"[\"+r+\"]\",n)})}function op(e){var t=Object.keys(e);if(1!==t.length)throw new Error(\"Please provide an object with a single key (operation name) mapping to a function. Got an object with \"+t.length+\" keys.\");var n=t[0],r=e[n];n.endsWith(\"_\")&&(n=n.substring(0,n.length-1));var o=function(){for(var e=[],t=0;t1)return zeros([0],r);var o=makeZerosTypedArray(Math.abs(Math.ceil((t-e)/n)),r);to}).sort(function(e,t){return t.score-e.score}),i=[],s=0;s=0;--d){if(intersectionOverUnion(e,c,i[d])>=r){p=!0;break}}if(!p&&(i.push(c),i.length>=n))break}return tensor1d(i,\"int32\")}function intersectionOverUnion(e,t,n){var r=e.subarray(4*t,4*t+4),o=e.subarray(4*n,4*n+4),a=Math.min(r[0],r[2]),i=Math.min(r[1],r[3]),s=Math.max(r[0],r[2]),u=Math.max(r[1],r[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),d=Math.max(o[1],o[3]),h=(s-a)*(u-i),f=(p-l)*(d-c);if(h<=0||f<=0)return 0;var m=Math.max(a,l),g=Math.max(i,c),v=Math.min(s,p),y=Math.min(u,d),x=Math.max(v-m,0)*Math.max(y-g,0);return x/(h+f-x)}function split(e,t,n){var r=Array(e.rank).fill(0),o=e.shape.slice();return t.map(function(t){o[n]=t;var a=e.slice(r,o);return r[n]+=t,a})}function topkImpl(e,t,n,r,o){for(var a=t[t.length-1],i=[e.length/a,a],s=i[0],u=i[1],l=getTypedArrayFromDType(n,s*r),c=getTypedArrayFromDType(\"int32\",s*r),p=0;p\":\"<\",u=n?\"inOffset + i;\":\"round(getBestIndicesA(batch, inOffset + i));\";this.userCode=\"\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int batch = coords[0];\\n int outIdx = coords[1];\\n int inOffset = outIdx * \"+r+\";\\n\\n int bestIndex = inOffset;\\n float bestValue = getA(batch, bestIndex);\\n\\n for (int i = 0; i < \"+r+\"; i++) {\\n int inIdx = \"+u+\";\\n float candidate = getA(batch, inIdx);\\n if (candidate \"+s+\" bestValue) {\\n bestValue = candidate;\\n bestIndex = inIdx;\\n }\\n }\\n setOutput(float(bestIndex));\\n }\\n \"}}(),AvgPool2DBackpropProgram=function(){return function(e){this.variableNames=[\"dy\"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,s=e.effectiveFilterHeight,u=e.effectiveFilterWidth,l=s-1-e.padInfo.top,c=u-1-e.padInfo.left,p=1/(t*n);this.userCode=\"\\n const ivec2 pads = ivec2(\"+l+\", \"+c+\");\\n const float avgMultiplier = float(\"+p+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n\\n ivec2 dyRCCorner = coords.yz - pads;\\n int dyRCorner = dyRCCorner.x;\\n int dyCCorner = dyRCCorner.y;\\n\\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n for (int wR = 0; wR < \"+s+\";\\n wR += \"+a+\") {\\n float dyR = float(dyRCorner + wR) / \"+r+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 || fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n for (int wC = 0; wC < \"+u+\";\\n wC+= \"+i+\") {\\n float dyC = float(dyCCorner + wC) / \"+o+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n float dyValue = getDy(b, idyR, idyC, d);\\n\\n dotProd += dyValue * avgMultiplier;\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}();function getBroadcastDims(e,t){for(var n=e.length,r=[],o=0;o1&&1===i&&r.unshift(a)}return r}function getReductionAxes(e,t){for(var n=[],r=0;r1)&&n.unshift(a)}return n}function broadcastDimsAreOuter(e){for(var t=0;t b);\",GREATER_EQUAL=\"return float(a >= b);\",LOGICAL_AND=\"return float(a >= 1.0 && b >= 1.0);\",LOGICAL_OR=\"return float(a >= 1.0 || b >= 1.0);\",MAX=CHECK_NAN_SNIPPET+\"\\n return max(a, b);\\n\",MIN=CHECK_NAN_SNIPPET+\"\\n return min(a, b);\\n\",MOD=\"if (b == 0.0) return NAN;\\n return mod(a, b);\",ATAN2=CHECK_NAN_SNIPPET+\"\\n return atan(a, b);\\n\",ELU_DER=\"return (b >= 1.0) ? a : a * (b + 1.0);\",BinaryOpProgram=function(){function e(e,t,n){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.outputShape=assertAndGetBroadcastShape(t,n),this.userCode=\"\\n uniform float NAN;\\n float binaryOperation(float a, float b) {\\n \"+e+\"\\n }\\n\\n void main() {\\n float a = getAAtOutCoords();\\n float b = getBAtOutCoords();\\n setOutput(binaryOperation(a, b));\\n }\\n \"}return e.prototype.getCustomSetupFunc=function(){var e=this;return function(t,n){null==e.startLoc&&(e.startLoc=t.getUniformLocationNoThrow(n,\"NAN\"),null==e.startLoc)||t.gl.uniform1f(e.startLoc,NaN)}},e}(),ClipProgram=function(){return function(e,t,n){this.variableNames=[\"A\"],this.outputShape=e,this.userCode=\"\\n void main() {\\n float value = getAAtOutCoords();\\n if (isNaN(value)) {\\n setOutput(value);\\n return;\\n }\\n\\n setOutput(clamp(value, float(\"+t+\"), float(\"+n+\")));\\n }\\n \"}}(),ClipPackedProgram=function(){return function(e,t,n){this.variableNames=[\"A\"],this.usesPackedTextures=!0,this.outputShape=e,this.userCode=\"\\n void main() {\\n vec4 value = getAAtOutCoords();\\n\\n if (hasNaN(value)) {\\n setOutput(value);\\n return;\\n }\\n\\n setOutput(clamp(value, vec4(\"+t+\"), vec4(\"+n+\")));\\n }\\n \"}}(),ComplexAbsProgram=function(){return function(e){this.variableNames=[\"real\",\"imag\"],this.outputShape=e,this.userCode=\"\\n void main() {\\n float re = abs(getRealAtOutCoords());\\n float im = abs(getImagAtOutCoords());\\n float mx = max(re, im);\\n\\n // sadly the length function in glsl is not underflow-safe\\n // (at least not on Intel GPUs). So the safe solution is\\n // to ensure underflow-safety in all cases.\\n setOutput(\\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\\n );\\n }\\n \"}}(),ConcatProgram=function(){return function(e,t){this.variableNames=[\"A\",\"B\"],this.outputShape=[],this.outputShape=computeOutShape([e,t],1),this.userCode=\"\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int yR = coords.x;\\n int yC = coords.y;\\n\\n float value = 0.0;\\n if (yC < \"+e[1]+\") {\\n value = getA(yR, yC);\\n } else {\\n yC -= \"+e[1]+\";\\n value = getB(yR, yC);\\n }\\n\\n setOutput(value);\\n }\\n \"}}(),Conv2DDerFilterProgram=function(){return function(e){this.variableNames=[\"x\",\"dy\"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,o=e.padInfo.left;this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int wR = coords.x;\\n int wC = coords.y;\\n int d1 = coords.z;\\n int d2 = coords.w;\\n\\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n\\n for (int b = 0; b < \"+e.batchSize+\"; b++) {\\n for (int yR = 0; yR < \"+e.outHeight+\"; yR++) {\\n int xR = wR + yR * \"+t+\" - \"+r+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int yC = 0; yC < \"+e.outWidth+\"; yC++) {\\n int xC = wC + yC * \"+n+\" - \"+o+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n float dyValue = getDy(b, yR, yC, d2);\\n float xValue = getX(b, xR, xC, d1);\\n dotProd += (xValue * dyValue);\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv2DDerInputProgram=function(){return function(e){this.variableNames=[\"dy\",\"W\"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.top,i=n-1-e.padInfo.left;this.userCode=\"\\n const ivec2 pads = ivec2(\"+a+\", \"+i+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d1 = coords[3];\\n\\n ivec2 dyCorner = coords.yz - pads;\\n int dyRCorner = dyCorner.x;\\n int dyCCorner = dyCorner.y;\\n\\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n for (int wR = 0; wR < \"+t+\"; wR++) {\\n float dyR = float(dyRCorner + wR) / \"+r+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 || fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n int wRPerm = \"+t+\" - 1 - wR;\\n\\n for (int wC = 0; wC < \"+n+\"; wC++) {\\n float dyC = float(dyCCorner + wC) / \"+o+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n int wCPerm = \"+n+\" - 1 - wC;\\n\\n for (int d2 = 0; d2 < \"+e.outChannels+\"; d2++) {\\n float xValue = getDy(batch, idyR, idyC, d2);\\n float wValue = getW(wRPerm, wCPerm, d1, d2);\\n dotProd += xValue * wValue;\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv3DDerFilterProgram=function(){return function(e){this.variableNames=[\"x\",\"dy\"],this.outputShape=e.filterShape;var t=e.strideDepth,n=e.strideHeight,r=e.strideWidth,o=e.padInfo.front,a=e.padInfo.top,i=e.padInfo.left;this.userCode=\"\\n void main() {\\n ivec5 coords = getOutputCoords();\\n int wF = coords.x;\\n int wR = coords.y;\\n int wC = coords.z;\\n int d1 = coords.w;\\n int d2 = coords.u;\\n\\n float dotProd = 0.0;\\n\\n for (int b = 0; b < \"+e.batchSize+\"; b++) {\\n for (int yF = 0; yF < \"+e.outDepth+\"; yF++) {\\n int xF = wF + yF * \"+t+\" - \"+o+\";\\n\\n if (xF < 0 || xF >= \"+e.inDepth+\") {\\n continue;\\n }\\n\\n for (int yR = 0; yR < \"+e.outHeight+\"; yR++) {\\n int xR = wR + yR * \"+n+\" - \"+a+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int yC = 0; yC < \"+e.outWidth+\"; yC++) {\\n int xC = wC + yC * \"+r+\" - \"+i+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n float dyValue = getDy(b, yF, yR, yC, d2);\\n float xValue = getX(b, xF, xR, xC, d1);\\n dotProd += (xValue * dyValue);\\n }\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv3DDerInputProgram=function(){return function(e){this.variableNames=[\"dy\",\"W\"],this.outputShape=e.inShape;var t=e.filterDepth,n=e.filterHeight,r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,s=t-1-e.padInfo.front,u=n-1-e.padInfo.top,l=r-1-e.padInfo.left;this.userCode=\"\\n const ivec3 pads = ivec3(\"+s+\", \"+u+\", \"+l+\");\\n\\n void main() {\\n ivec5 coords = getOutputCoords();\\n int batch = coords.x;\\n int d1 = coords.u;\\n\\n\\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\\n int dyFCorner = dyCorner.x;\\n int dyRCorner = dyCorner.y;\\n int dyCCorner = dyCorner.z;\\n\\n float dotProd = 0.0;\\n for (int wF = 0; wF < \"+t+\"; wF++) {\\n float dyF = float(dyFCorner + wF) / \"+o+\".0;\\n\\n if (dyF < 0.0 || dyF >= \"+e.outDepth+\".0 || fract(dyF) > 0.0) {\\n continue;\\n }\\n int idyF = int(dyF);\\n\\n int wFPerm = \"+t+\" - 1 - wF;\\n\\n for (int wR = 0; wR < \"+n+\"; wR++) {\\n float dyR = float(dyRCorner + wR) / \"+a+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 ||\\n fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n int wRPerm = \"+n+\" - 1 - wR;\\n\\n for (int wC = 0; wC < \"+r+\"; wC++) {\\n float dyC = float(dyCCorner + wC) / \"+i+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n int wCPerm = \"+r+\" - 1 - wC;\\n\\n for (int d2 = 0; d2 < \"+e.outChannels+\"; d2++) {\\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\\n dotProd += xValue * wValue;\\n }\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),DepthwiseConv2DDerFilterProgram=function(){return function(e){this.variableNames=[\"x\",\"dy\"],this.outputShape=e.filterShape;var t=e.strideHeight,n=e.strideWidth,r=e.padInfo.top,o=e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int wR = coords.x;\\n int wC = coords.y;\\n int d1 = coords.z;\\n int dm = coords.w;\\n int d2 = d1 * \"+a+\" + dm;\\n\\n float dotProd = 0.0;\\n\\n // TODO: Vec4 over the batch size\\n for (int b = 0; b < \"+e.batchSize+\"; b++) {\\n for (int yR = 0; yR < \"+e.outHeight+\"; yR++) {\\n int xR = wR + yR * \"+t+\" - \"+r+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int yC = 0; yC < \"+e.outWidth+\"; yC++) {\\n int xC = wC + yC * \"+n+\" - \"+o+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n float dyValue = getDy(b, yR, yC, d2);\\n float xValue = getX(b, xR, xC, d1);\\n dotProd += (xValue * dyValue);\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),DepthwiseConv2DDerInputProgram=function(){return function(e){this.variableNames=[\"dy\",\"W\"],this.outputShape=e.inShape;var t=e.filterHeight,n=e.filterWidth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.top,i=n-1-e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=\"\\n const ivec2 pads = ivec2(\"+a+\", \"+i+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d1 = coords[3];\\n ivec2 dyCorner = coords.yz - pads;\\n int dyRCorner = dyCorner.x;\\n int dyCCorner = dyCorner.y;\\n\\n float dotProd = 0.0;\\n\\n for (int wR = 0; wR < \"+t+\"; wR++) {\\n float dyR = float(dyRCorner + wR) / \"+r+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 || fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n int wRPerm = \"+t+\" - 1 - wR;\\n\\n for (int wC = 0; wC < \"+n+\"; wC++) {\\n float dyC = float(dyCCorner + wC) / \"+o+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n int wCPerm = \"+n+\" - 1 - wC;\\n\\n // TODO: Vec4 over the channelMul\\n for (int dm = 0; dm < \"+s+\"; dm++) {\\n int d2 = d1 * \"+s+\" + dm;\\n float xValue = getDy(batch, idyR, idyC, d2);\\n float wValue = getW(wRPerm, wCPerm, d1, dm);\\n dotProd += xValue * wValue;\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv2DProgram=function(){return function(e){this.variableNames=[\"x\",\"W\"],this.outputShape=e.outShape;var t=e.padInfo.top,n=e.padInfo.left,r=e.strideHeight,o=e.strideWidth,a=e.dilationHeight,i=e.dilationWidth,s=e.filterHeight,u=e.filterWidth,l=4*Math.floor(e.inChannels/4),c=e.inChannels%4;this.userCode=\"\\n const ivec2 strides = ivec2(\"+r+\", \"+o+\");\\n const ivec2 pads = ivec2(\"+t+\", \"+n+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d2 = coords[3];\\n\\n ivec2 xRCCorner = coords.yz * strides - pads;\\n int xRCorner = xRCCorner.x;\\n int xCCorner = xRCCorner.y;\\n\\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n for (int wR = 0; wR < \"+s+\"; wR++) {\\n int xR = xRCorner + wR * \"+a+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+u+\"; wC++) {\\n int xC = xCCorner + wC * \"+i+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n for (int d1 = 0; d1 < \"+l+\"; d1 += 4) {\\n vec4 xValues = vec4(\\n getX(batch, xR, xC, d1),\\n getX(batch, xR, xC, d1 + 1),\\n getX(batch, xR, xC, d1 + 2),\\n getX(batch, xR, xC, d1 + 3)\\n );\\n vec4 wValues = vec4(\\n getW(wR, wC, d1, d2),\\n getW(wR, wC, d1 + 1, d2),\\n getW(wR, wC, d1 + 2, d2),\\n getW(wR, wC, d1 + 3, d2)\\n );\\n\\n dotProd += dot(xValues, wValues);\\n }\\n\\n if (\"+(1===c)+\") {\\n dotProd +=\\n getX(batch, xR, xC, \"+l+\") *\\n getW(wR, wC, \"+l+\", d2);\\n } else if (\"+(2===c)+\") {\\n vec2 xValues = vec2(\\n getX(batch, xR, xC, \"+l+\"),\\n getX(batch, xR, xC, \"+l+\" + 1)\\n );\\n vec2 wValues = vec2(\\n getW(wR, wC, \"+l+\", d2),\\n getW(wR, wC, \"+l+\" + 1, d2)\\n );\\n dotProd += dot(xValues, wValues);\\n } else if (\"+(3===c)+\") {\\n vec3 xValues = vec3(\\n getX(batch, xR, xC, \"+l+\"),\\n getX(batch, xR, xC, \"+l+\" + 1),\\n getX(batch, xR, xC, \"+l+\" + 2)\\n );\\n vec3 wValues = vec3(\\n getW(wR, wC, \"+l+\", d2),\\n getW(wR, wC, \"+l+\" + 1, d2),\\n getW(wR, wC, \"+l+\" + 2, d2)\\n );\\n dotProd += dot(xValues, wValues);\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),Conv3DProgram=function(){return function(e){this.variableNames=[\"x\",\"W\"],this.outputShape=e.outShape;var t=e.padInfo.front,n=e.padInfo.top,r=e.padInfo.left,o=e.strideDepth,a=e.strideHeight,i=e.strideWidth,s=e.dilationDepth,u=e.dilationHeight,l=e.dilationWidth,c=e.filterDepth,p=e.filterHeight,d=e.filterWidth,h=4*Math.floor(e.inChannels/4),f=e.inChannels%4;this.userCode=\"\\n const ivec3 strides = ivec3(\"+o+\", \"+a+\", \"+i+\");\\n const ivec3 pads = ivec3(\"+t+\", \"+n+\", \"+r+\");\\n\\n void main() {\\n ivec5 coords = getOutputCoords();\\n int batch = coords.x;\\n int d2 = coords.u;\\n\\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\\n int xFCorner = xFRCCorner.x;\\n int xRCorner = xFRCCorner.y;\\n int xCCorner = xFRCCorner.z;\\n\\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\\n // values in that axis.\\n float dotProd = 0.0;\\n for (int wF = 0; wF < \"+c+\"; wF++) {\\n int xF = xFCorner + wF * \"+s+\";\\n\\n if (xF < 0 || xF >= \"+e.inDepth+\") {\\n continue;\\n }\\n\\n for (int wR = 0; wR < \"+p+\"; wR++) {\\n int xR = xRCorner + wR * \"+u+\";\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+d+\"; wC++) {\\n int xC = xCCorner + wC * \"+l+\";\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n for (int d1 = 0; d1 < \"+h+\"; d1 += 4) {\\n vec4 xValues = vec4(\\n getX(batch, xF, xR, xC, d1),\\n getX(batch, xF, xR, xC, d1 + 1),\\n getX(batch, xF, xR, xC, d1 + 2),\\n getX(batch, xF, xR, xC, d1 + 3)\\n );\\n vec4 wValues = vec4(\\n getW(wF, wR, wC, d1, d2),\\n getW(wF, wR, wC, d1 + 1, d2),\\n getW(wF, wR, wC, d1 + 2, d2),\\n getW(wF, wR, wC, d1 + 3, d2)\\n );\\n\\n dotProd += dot(xValues, wValues);\\n }\\n\\n if (\"+(1===f)+\") {\\n dotProd +=\\n getX(batch, xF, xR, xC, \"+h+\") *\\n getW(wF, wR, wC, \"+h+\", d2);\\n } else if (\"+(2===f)+\") {\\n vec2 xValues = vec2(\\n getX(batch, xF, xR, xC, \"+h+\"),\\n getX(batch, xF, xR, xC, \"+h+\" + 1)\\n );\\n vec2 wValues = vec2(\\n getW(wF, wR, wC, \"+h+\", d2),\\n getW(wF, wR, wC, \"+h+\" + 1, d2)\\n );\\n dotProd += dot(xValues, wValues);\\n } else if (\"+(3===f)+\") {\\n vec3 xValues = vec3(\\n getX(batch, xF, xR, xC, \"+h+\"),\\n getX(batch, xF, xR, xC, \"+h+\" + 1),\\n getX(batch, xF, xR, xC, \"+h+\" + 2)\\n );\\n vec3 wValues = vec3(\\n getW(wF, wR, wC, \"+h+\", d2),\\n getW(wF, wR, wC, \"+h+\" + 1, d2),\\n getW(wF, wR, wC, \"+h+\" + 2, d2)\\n );\\n dotProd += dot(xValues, wValues);\\n }\\n }\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),DepthwiseConv2DProgram=function(){return function(e){this.variableNames=[\"x\",\"W\"],this.outputShape=e.outShape;var t=e.inHeight,n=e.inWidth,r=e.padInfo.top,o=e.padInfo.left,a=e.strideHeight,i=e.strideWidth,s=e.dilationHeight,u=e.dilationWidth,l=e.filterHeight,c=e.filterWidth,p=e.outChannels/e.inChannels;this.userCode=\"\\n const ivec2 strides = ivec2(\"+a+\", \"+i+\");\\n const ivec2 pads = ivec2(\"+r+\", \"+o+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords.x;\\n ivec2 xRCCorner = coords.yz * strides - pads;\\n int d2 = coords.w;\\n int d1 = d2 / \"+p+\";\\n int q = d2 - d1 * \"+p+\";\\n\\n int xRCorner = xRCCorner.x;\\n int xCCorner = xRCCorner.y;\\n\\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n // TODO(dsmilkov): Flatten the two for loops and vec4 the operations.\\n for (int wR = 0; wR < \"+l+\"; wR++) {\\n int xR = xRCorner + wR * \"+s+\";\\n\\n if (xR < 0 || xR >= \"+t+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+c+\"; wC++) {\\n int xC = xCCorner + wC * \"+u+\";\\n\\n if (xC < 0 || xC >= \"+n+\") {\\n continue;\\n }\\n\\n float xVal = getX(batch, xR, xC, d1);\\n float wVal = getW(wR, wC, d1, q);\\n dotProd += xVal * wVal;\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),DepthwiseConvPacked2DProgram=function(){return function(e){this.variableNames=[\"x\",\"W\"],this.usesPackedTextures=!0,this.outputShape=e.outShape;for(var t=e.inHeight,n=e.inWidth,r=e.padInfo.top,o=e.padInfo.left,a=e.strideHeight,i=e.strideWidth,s=e.filterHeight,u=e.filterWidth,l=Math.ceil((u+1)/2),c=\"int xR; int xC;\",p=0;p= 0 && xR < \"+t+\" && xC >= 0 && xC < \"+n+\") {\\n \"+xTexelName(p,f)+\" = getX(batch, xR, xC, d1);\\n }\",0===o?h1&&(c+=\"\\n vec4 \"+xTexelName(p,f+2)+\" = vec4(0.);\\n\\n if(xR >= 0 && xR < \"+t+\" && xC + 2 < \"+n+\") {\\n \"+xTexelName(p,f+2)+\" = getX(batch, xR, xC + 2, d1);\\n }\"),c+=\"\\n xR\"+p+\"C\"+f+\" = \"+constructTexel(p,f,i,o)+\";\\n \"):0===d&&(c+=\"\\n if(xR >= 0 && xR < \"+t+\" && xC - 2 >= 0) {\\n \"+xTexelName(p,f-2)+\" = getX(batch, xR, xC - 2, d1);\\n }\"),h>0&&(c+=\"xR\"+p+\"C\"+(f-2)+\" =\\n \"+constructTexel(p,f-2,i,o)+\";\"),f-1>=0&&f-11?[\"\"+(i-1)/(c-1),\"(y2-y1) * height_ratio\",\"y1*\"+f+\" + float(y)*(height_scale)\"]:[\"0.0\",\"0.0\",\"0.5 * (y1+y2) * \"+f],v=g[0],y=g[1],x=g[2],T=p>1?[\"\"+(s-1)/(p-1),\"(x2-x1) * width_ratio\",\"x1*\"+m+\" + float(x)*(width_scale)\"]:[\"0.0\",\"0.0\",\"0.5 * (x1+x2) * \"+m],w=T[0],E=T[1],S=T[2];this.userCode=\"\\n const float height_ratio = float(\"+v+\");\\n const float width_ratio = float(\"+w+\");\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int y = coords[1];\\n int x = coords[2];\\n int d = coords[3];\\n\\n // get box vals\\n float y1 = getBoxes(b,0);\\n float x1 = getBoxes(b,1);\\n float y2 = getBoxes(b,2);\\n float x2 = getBoxes(b,3);\\n\\n // get image in batch index\\n int bInd = round(getBoxInd(b));\\n if(bInd < 0 || bInd >= \"+a+\") {\\n return;\\n }\\n\\n float height_scale = \"+y+\";\\n float width_scale = \"+E+\";\\n\\n float in_y = \"+x+\";\\n if( in_y < 0.0 || in_y > \"+f+\" ) {\\n setOutput(float(\"+o+\"));\\n return;\\n }\\n float in_x = \"+S+\";\\n if( in_x < 0.0 || in_x > \"+m+\" ) {\\n setOutput(float(\"+o+\"));\\n return;\\n }\\n\\n vec2 sourceFracIndexRC = vec2(in_y,in_x);\\n if(\"+d+\" == 1) {\\n // Compute the four integer indices.\\n ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\\n ivec2 sourceCeilRC = ivec2(ceil(sourceFracIndexRC));\\n\\n float topLeft = getImage(b, sourceFloorRC.x, sourceFloorRC.y, d);\\n float bottomLeft = getImage(b, sourceCeilRC.x, sourceFloorRC.y, d);\\n float topRight = getImage(b, sourceFloorRC.x, sourceCeilRC.y, d);\\n float bottomRight = getImage(b, sourceCeilRC.x, sourceCeilRC.y, d);\\n\\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\\n\\n float top = topLeft + (topRight - topLeft) * fracRC.y;\\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\\n float newValue = top + (bottom - top) * fracRC.x;\\n setOutput(newValue);\\n } else {\\n // Compute the coordinators of nearest neighbor point.\\n ivec2 sourceNearestRC = ivec2(floor(\\n sourceFracIndexRC + vec2(0.5,0.5)));\\n float newValue = getImage(b, sourceNearestRC.x, sourceNearestRC.y, d);\\n setOutput(newValue);\\n }\\n }\\n \"}}();function getLogicalCoordinatesFromFlatIndex(e,t,n){void 0===n&&(n=\"index\");var r=computeStrides(t);return r.map(function(t,o){return\"int \"+e[o]+\" = \"+n+\" / \"+t+\"; \"+(o===r.length-1?\"int \"+e[o+1]+\" = \"+n+\" - \"+e[o]+\" * \"+t:\"index -= \"+e[o]+\" * \"+t)+\";\"}).join(\"\")}function buildVec(e){return 1===e.length?\"\"+e[0]:\"vec\"+e.length+\"(\"+e.join(\",\")+\")\"}function dotify(e,t){if(e.length!==t.length)throw new Error(\"Vectors to be dotted must be of the same length -got \"+e.length+\" and \"+t.length);for(var n=[],r=Math.floor(e.length/4),o=e.length%4,a=0;a1?\"[\"+t+\"]\":\"\")+\";\":\"uniform sampler2D \"+e.name+\";\"});a=a.join(\"\\n\");var i,s,u=e.map(function(e){return getInputSamplingSnippet(e,t,r,o)}).join(\"\\n\"),l=t.texShape,c=SHADER_PREFIX;return t.isPacked?(i=getPackedOutputSamplingSnippet(t.logicalShape,l),s=FLOAT_TEXTURE_SET_RGBA_SNIPPET):(i=getOutputSamplingSnippet(t.logicalShape,l),s=FLOAT_TEXTURE_SET_R_SNIPPET),o&&(c+=SHADER_PACKED_PREFIX),[c,FLOAT_TEXTURE_SAMPLE_SNIPPET,s,a,i,u,n].join(\"\\n\")}function getSamplerFromInInfo(e){var t=e.shapeInfo.logicalShape;switch(t.length){case 0:return getSamplerScalar(e);case 1:return getSampler1D(e);case 2:return getSampler2D(e);case 3:return getSampler3D(e);case 4:return getSampler4D(e);case 5:return getSampler5D(e);case 6:return getSampler6D(e);default:throw new Error(t.length+\"-D input sampling is not yet supported\")}}function getPackedSamplerFromInInfo(e){var t=e.shapeInfo.logicalShape;switch(t.length){case 0:return getPackedSamplerScalar(e);case 1:return getPackedSampler1D(e);case 2:return getPackedSampler2D(e);case 3:return getPackedSampler3D(e);case 4:return getPackedSampler4D(e);default:throw new Error(\"Packed \"+t.length+\"-D input sampling is not yet supported\")}}function getInputSamplingSnippet(e,t,n,r){void 0===r&&(r=!1);var o=getSamplerFlat(e);return o+=r?getPackedSamplerFromInInfo(e):getSamplerFromInInfo(e),(n||arraysEqual(e.shapeInfo.logicalShape,t.logicalShape))&&(o+=r?getPackedSamplerAtOutputCoords(e,t,n):getSamplerAtOutputCoords(e,t,n)),o}function getPackedOutputSamplingSnippet(e,t){switch(e.length){case 0:return getOutputScalarCoords();case 1:return getOutputPacked1DCoords(e,t);case 2:return getOutputPacked2DCoords(e,t);case 3:return getOutputPacked3DCoords(e,t);case 4:return getOutputPacked4DCoords(e,t);default:throw new Error(e.length+\"-D packed output coordinate fetching is not yet supported\")}}function getOutputSamplingSnippet(e,t){switch(e.length){case 0:return getOutputScalarCoords();case 1:return getOutput1DCoords(e,t);case 2:return getOutput2DCoords(e,t);case 3:return getOutput3DCoords(e,t);case 4:return getOutput4DCoords(e,t);case 5:return getOutput5DCoords(e,t);case 6:return getOutput6DCoords(e,t);default:throw new Error(e.length+\"-D output sampling is not yet supported\")}}var SAMPLE_1D_SNIPPET=\"\\nvec2 UVfrom1D(int texNumR, int texNumC, int index) {\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\\n int texelIndex = index / 2;\\n int texR = texelIndex / texNumC;\\n int texC = texelIndex - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_2D_SNIPPET=\"\\nvec2 UVfrom2D(int texNumR, int texNumC, int numC, int row, int col) {\\n int index = row * numC + col;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\\n int texNumC, int row, int col) {\\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\\n int texR = texelIndex / texNumC;\\n int texC = texelIndex - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_3D_SNIPPET=\"\\nvec2 UVfrom3D(int texNumR, int texNumC, int stride0,\\n int stride1, int row, int col, int depth) {\\n // Explicitly use integer operations as dot() only works on floats.\\n int index = row * stride0 + col * stride1 + depth;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\nvec2 packedUVfrom3D(int texNumR, int texNumC,\\n int texelsInBatch, int texelsInLogicalRow, int b,\\n int row, int col) {\\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_4D_SNIPPET=\"\\nvec2 UVfrom4D(int texNumR, int texNumC, int stride0,\\n int stride1, int stride2, int row, int col, int depth,\\n int depth2) {\\n // Explicitly use integer operations as dot() only works on floats.\\n int index = row * stride0 + col * stride1 + depth * stride2 + depth2;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\nvec2 packedUVfrom4D(int texNumR, int texNumC, int texelsInBatch2,\\n int texelsInBatch, int texelsInLogicalRow, int b2, int b,\\n int row, int col) {\\n int index = b2 * texelsInBatch2 + b * texelsInBatch +\\n (row / 2) * texelsInLogicalRow + (col / 2);\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_5D_SNIPPET=\"\\nvec2 UVfrom5D(int texNumR, int texNumC, int stride0,\\n int stride1, int stride2, int stride3, int row, int col, int depth,\\n int depth2, int depth3) {\\n // Explicitly use integer operations as dot() only works on floats.\\n int index = row * stride0 + col * stride1 +\\n depth * stride2 + depth2 * stride3 + depth3;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",SAMPLE_6D_SNIPPET=\"\\nvec2 UVfrom6D(int texNumR, int texNumC, int stride0,\\n int stride1, int stride2, int stride3, int stride4,\\n int row, int col, int depth, int depth2, int depth3, int depth4) {\\n // Explicitly use integer operations as dot() only works on floats.\\n int index = row * stride0 + col * stride1 + depth * stride2 + depth2 *\\n stride3 + depth3 * stride4 + depth4;\\n int texR = index / texNumC;\\n int texC = index - texR * texNumC;\\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\\n}\\n\",FLOAT_TEXTURE_SAMPLE_SNIPPET=\"\\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\\n return texture2D(textureSampler, uv).r;\\n }\\n\",FLOAT_TEXTURE_SET_R_SNIPPET=\"\\n void setOutput(float val) {\\n gl_FragColor = vec4(val, 0, 0, 0);\\n }\\n\",FLOAT_TEXTURE_SET_RGBA_SNIPPET=\"\\n void setOutput(vec4 val) {\\n gl_FragColor = val;\\n }\\n\",NAN_CHECKS=\"\",SHADER_PREFIX=\"\\n precision highp float;\\n precision highp int;\\n varying vec2 resultUV;\\n const vec2 halfCR = vec2(0.5, 0.5);\\n\\n struct ivec5\\n {\\n int x;\\n int y;\\n int z;\\n int w;\\n int u;\\n };\\n\\n struct ivec6\\n {\\n int x;\\n int y;\\n int z;\\n int w;\\n int u;\\n int v;\\n };\\n\\n \"+(NAN_CHECKS=ENV.get(\"PROD\")?\"\\n bool isNaN(float val) {\\n return false;\\n }\\n\\n bool hasNaN(vec4 values) {\\n return false;\\n }\\n \":\"\\n bool isNaN(float val) {\\n return (val < 1.0 || 0.0 < val || val == 0.0) ? false : true;\\n }\\n\\n bool hasNaN(vec4 values) {\\n return any(bvec4(\\n isNaN(values.x),\\n isNaN(values.y),\\n isNaN(values.z),\\n isNaN(values.w)\\n ));\\n }\\n \")+\"\\n\\n float getNaN(vec4 values) {\\n return dot(vec4(1), values);\\n }\\n\\n int round(float value) {\\n return int(floor(value + 0.5));\\n }\\n\\n int imod(int x, int y) {\\n return x - y * (x / y);\\n }\\n\\n //Based on the work of Dave Hoskins\\n //https://www.shadertoy.com/view/4djSRW\\n #define HASHSCALE1 443.8975\\n float random(float seed){\\n vec2 p = resultUV * seed;\\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\\n p3 += dot(p3, p3.yzx + 19.19);\\n return fract((p3.x + p3.y) * p3.z);\\n }\\n\\n \"+SAMPLE_1D_SNIPPET+\"\\n \"+SAMPLE_2D_SNIPPET+\"\\n \"+SAMPLE_3D_SNIPPET+\"\\n \"+SAMPLE_4D_SNIPPET+\"\\n \"+SAMPLE_5D_SNIPPET+\"\\n \"+SAMPLE_6D_SNIPPET+\"\\n\",SHADER_PACKED_PREFIX=\"\\n float getChannel(vec4 frag, vec2 innerDims) {\\n vec2 modCoord = mod(innerDims, 2.);\\n return modCoord.x == 0. ?\\n (modCoord.y == 0. ? frag.r : frag.g) :\\n (modCoord.y == 0. ? frag.b : frag.a);\\n }\\n float getChannel(vec4 frag, int dim) {\\n float modCoord = mod(float(dim), 2.);\\n return modCoord == 0. ? frag.r : frag.g;\\n }\\n\";function getOutputScalarCoords(){return\"\\n int getOutputCoords() {\\n return 0;\\n }\\n \"}function getOutputPacked1DCoords(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return 1===t[0]?\"\\n int getOutputCoords() {\\n return 2 * int(resultUV.x * \"+n[1]+\".0);\\n }\\n \":1===t[1]?\"\\n int getOutputCoords() {\\n return 2 * int(resultUV.y * \"+n[0]+\".0);\\n }\\n \":\"\\n int getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+n[0]+\", \"+n[1]+\"));\\n return resTexRC.x * \"+n[1]+\" + resTexRC.y;\\n }\\n \"}function getOutput1DCoords(e,t){return 1===t[0]?\"\\n int getOutputCoords() {\\n return int(resultUV.x * \"+t[1]+\".0);\\n }\\n \":1===t[1]?\"\\n int getOutputCoords() {\\n return int(resultUV.y * \"+t[0]+\".0);\\n }\\n \":\"\\n int getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n return resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n }\\n \"}function getOutputPacked3DCoords(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[2]/2),o=r*Math.ceil(e[1]/2);return\"\\n ivec3 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+n[0]+\", \"+n[1]+\"));\\n int index = resTexRC.x * \"+n[1]+\" + resTexRC.y;\\n\\n int b = index / \"+o+\";\\n index -= b * \"+o+\";\\n\\n int r = 2 * (index / \"+r+\");\\n int c = imod(index, \"+r+\") * 2;\\n\\n return ivec3(b, r, c);\\n }\\n \"}function getOutput3DCoords(e,t){var n=getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\"],e);return\"\\n ivec3 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n \"+n+\"\\n return ivec3(r, c, d);\\n }\\n \"}function getOutputPacked4DCoords(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],r=Math.ceil(e[3]/2),o=r*Math.ceil(e[2]/2),a=o*e[1];return\"\\n ivec4 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+n[0]+\", \"+n[1]+\"));\\n int index = resTexRC.x * \"+n[1]+\" + resTexRC.y;\\n\\n int b2 = index / \"+a+\";\\n index -= b2 * \"+a+\";\\n\\n int b = index / \"+o+\";\\n index -= b * \"+o+\";\\n\\n int r = 2 * (index / \"+r+\");\\n int c = imod(index, \"+r+\") * 2;\\n\\n return ivec4(b2, b, r, c);\\n }\\n \"}function getOutput4DCoords(e,t){var n=getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\",\"d2\"],e);return\"\\n ivec4 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n \"+n+\"\\n return ivec4(r, c, d, d2);\\n }\\n \"}function getOutput5DCoords(e,t){var n=getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\",\"d2\",\"d3\"],e);return\"\\n ivec5 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(\"+t[0]+\",\\n \"+t[1]+\"));\\n\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n\\n \"+n+\"\\n\\n ivec5 outShape = ivec5(r, c, d, d2, d3);\\n return outShape;\\n }\\n \"}function getOutput6DCoords(e,t){var n=getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\",\"d2\",\"d3\",\"d4\"],e);return\"\\n ivec6 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n\\n \"+n+\"\\n\\n ivec6 result = ivec6(r, c, d, d2, d3, d4);\\n return result;\\n }\\n \"}function getOutputPacked2DCoords(e,t){var n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(arraysEqual(e,t))return\"\\n ivec2 getOutputCoords() {\\n return 2 * ivec2(resultUV.yx * vec2(\"+n[0]+\", \"+n[1]+\"));\\n }\\n \";var r=Math.ceil(e[1]/2);return\"\\n ivec2 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+n[0]+\", \"+n[1]+\"));\\n\\n int index = resTexRC.x * \"+n[1]+\" + resTexRC.y;\\n int r = 2 * (index / \"+r+\");\\n int c = imod(index, \"+r+\") * 2;\\n\\n return ivec2(r, c);\\n }\\n \"}function getOutput2DCoords(e,t){return arraysEqual(e,t)?\"\\n ivec2 getOutputCoords() {\\n return ivec2(resultUV.yx * vec2(\"+t[0]+\", \"+t[1]+\"));\\n }\\n \":1===e[1]?\"\\n ivec2 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n return ivec2(index, 0);\\n }\\n \":1===e[0]?\"\\n ivec2 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n return ivec2(0, index);\\n }\\n \":\"\\n ivec2 getOutputCoords() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+t[0]+\", \"+t[1]+\"));\\n int index = resTexRC.x * \"+t[1]+\" + resTexRC.y;\\n int r = index / \"+e[1]+\";\\n int c = index - r * \"+e[1]+\";\\n return ivec2(r, c);\\n }\\n \"}function getPackedSamplerScalar(e){var t=e.name;return\"\\n vec4 \"+(\"get\"+t.charAt(0).toUpperCase()+t.slice(1))+\"() {\\n return texture2D(\"+t+\", halfCR);\\n }\\n \"}function getSamplerScalar(e){var t=e.name,n=\"get\"+t.charAt(0).toUpperCase()+t.slice(1);return e.shapeInfo.isUniform?\"float \"+n+\"() {return \"+t+\";}\":\"\\n float \"+n+\"() {\\n return sampleTexture(\"+t+\", halfCR);\\n }\\n \"}function getPackedSampler1D(e){var t=e.name,n=\"get\"+t.charAt(0).toUpperCase()+t.slice(1),r=e.shapeInfo.texShape,o=[Math.ceil(r[0]/2),Math.ceil(r[1]/2)];return\"\\n vec4 \"+n+\"(int index) {\\n vec2 uv = packedUVfrom1D(\\n \"+o[0]+\", \"+o[1]+\", index);\\n return texture2D(\"+t+\", uv);\\n }\\n \"}function getSampler1D(e){var t=e.name,n=\"get\"+t.charAt(0).toUpperCase()+t.slice(1);return\"\\n float \"+n+\"(int index) {\\n return \"+n+\"Flat(index);\\n }\\n \"}function getPackedSampler2D(e){var t=e.shapeInfo.logicalShape,n=e.name,r=\"get\"+n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.texShape,a=o[0],i=o[1];if(null!=o&&arraysEqual(t,o))return\"\\n vec4 \"+r+\"(int row, int col) {\\n vec2 uv = (vec2(col, row) + halfCR) / vec2(\"+i+\".0, \"+a+\".0);\\n\\n return texture2D(\"+n+\", uv);\\n }\\n \";var s=[Math.ceil(o[0]/2),Math.ceil(o[1]/2)];return\"\\n vec4 \"+r+\"(int row, int col) {\\n vec2 uv = packedUVfrom2D(\"+Math.ceil(t[1]/2)+\", \"+s[0]+\", \"+s[1]+\", row, col);\\n return texture2D(\"+n+\", uv);\\n }\\n \"}function getSampler2D(e){var t=e.shapeInfo.logicalShape,n=e.name,r=\"get\"+n.charAt(0).toUpperCase()+n.slice(1),o=e.shapeInfo.texShape;if(null!=o&&arraysEqual(t,o)){var a=o[0];return\"\\n float \"+r+\"(int row, int col) {\\n vec2 uv = (vec2(col, row) + halfCR) / vec2(\"+o[1]+\".0, \"+a+\".0);\\n return sampleTexture(\"+n+\", uv);\\n }\\n \"}var i=squeezeShape(t),s=i.newShape,u=i.keptDims,l=s;if(l.length=1?\"coords = 0;\":s.map(function(e){return\"coords[\"+(e+u)+\"] = 0;\"}).join(\"\\n\"))+\"\\n return get\"+n+\"(\"+(a<2&&o>0?\"coords\":e.shapeInfo.logicalShape.map(function(e,t){return\"coords[\"+(t+u)+\"]\"}).join(\", \"))+\");\\n }\\n \"}function getPackedSamplerAtOutputCoords(e,t,n){var r=e.name,o=r.charAt(0).toUpperCase()+r.slice(1),a=e.shapeInfo.texShape,i=\"get\"+o+\"AtOutCoords\",s=t.texShape,u=[Math.ceil(a[0]/2),Math.ceil(a[1]/2)],l=u[0],c=u[1],p=getBroadcastDims(e.shapeInfo.logicalShape,t.logicalShape),d=e.shapeInfo.logicalShape.length,h=t.logicalShape.length;if(p.length)throw Error(\"Packed broadcast sampling is not implemented yet.\");if(arraysEqual(e.shapeInfo.texShape,s))return\"\\n vec4 \"+i+\"() {\\n return texture2D(\"+r+\", resultUV);\\n }\\n \";var f=\"return texture2D(\"+r+\", uv)\";return 1===d&&h>1?f=\"\\n vec4 sample = texture2D(\"+r+\", uv);\\n return vec4(sample.xy, sample.xy);\\n \":0===d&&h>0&&(f=1===h?\"\\n vec4 sample = texture2D(\"+r+\", uv);\\n return vec4(sample.x, sample.x, 0., 0.);\\n \":\"\\n vec4 sample = texture2D(\"+r+\", uv);\\n return vec4(sample.x);\\n \"),\"\\n vec4 \"+i+\"() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+u[0]+\", \"+u[1]+\"));\\n int index = resTexRC.x * \"+u[1]+\" + resTexRC.y;\\n\\n int texR = index / \"+c+\";\\n int texC = index - texR * \"+c+\";\\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(\"+c+\", \"+l+\");\\n\\n \"+f+\";\\n }\\n \"}function getSamplerAtOutputCoords(e,t,n){var r=e.name,o=r.charAt(0).toUpperCase()+r.slice(1),a=\"get\"+o+\"AtOutCoords\",i=getBroadcastDims(e.shapeInfo.logicalShape,t.logicalShape),s=e.shapeInfo.logicalShape.length,u=t.logicalShape.length,l=n&&(u>s||i.length>0),c=broadcastDimsAreOuter(i),p=e.shapeInfo.isUniform;if(l&&!c)return getBroadcastOutputCoordsSampler(e,t,o,a);var d=sizeFromShape(e.shapeInfo.logicalShape),h=\"\";l&&c&&(h=\"\\n int mainPart = index / \"+d+\";\\n index -= mainPart * \"+d+\";\\n \");var f=t.texShape;if(p)return 1===d?\"float \"+a+\"() {return \"+r+\";}\":\"\\n float \"+a+\"() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+f[0]+\", \"+f[1]+\"));\\n int index = resTexRC.x * \"+f[1]+\" + resTexRC.y;\\n \"+h+\"\\n return get\"+o+\"Flat(index);\\n }\\n \";var m=e.shapeInfo.texShape;return arraysEqual(m,f)?\"\\n float \"+a+\"() {\\n return sampleTexture(\"+r+\", resultUV);\\n }\\n \":\"\\n float \"+a+\"() {\\n ivec2 resTexRC = ivec2(resultUV.yx *\\n vec2(\"+f[0]+\", \"+f[1]+\"));\\n int index = resTexRC.x * \"+f[1]+\" + resTexRC.y;\\n \"+h+\"\\n int texR = index / \"+m[1]+\";\\n int texC = index - texR * \"+m[1]+\";\\n vec2 uv = (vec2(texC, texR) + halfCR) /\\n vec2(\"+m[1]+\".0, \"+m[0]+\".0);\\n\\n return sampleTexture(\"+r+\", uv);\\n }\\n \"}function getCoordsDataType(e){if(e<=1)return\"int\";if(2===e)return\"ivec2\";if(3===e)return\"ivec3\";if(4===e)return\"ivec4\";if(5===e)return\"ivec5\";if(6===e)return\"ivec6\";throw Error(\"GPU for rank \"+e+\" is not yet supported\")}function squeezeInputInfo(e,t){var n=JSON.parse(JSON.stringify(e));return n.shapeInfo.logicalShape=t,n}function getSqueezedParams(e,t){return t.map(function(t){return e[t]}).join(\", \")}var CumSumProgram=function(){return function(e,t,n){this.variableNames=[\"x\"],this.outputShape=e;var r=e.length,o=e[e.length-1],a=n?\"<\":\">\";this.userCode=\"\\n int getIndex(int i) {\\n \"+(n?\"return \"+o+\" -i - 1;\":\"return i;\")+\"\\n }\\n\\n void main() {\\n \"+getCoordsDataType(r)+\" coords = getOutputCoords();\\n int end = \"+getFinalCoord(r,\"coords\")+\";\\n float val = 0.0;\\n for (int i = \"+o+\" - 1; i >= 0; i -= 1) {\\n int idx = getIndex(i);\\n if (idx \"+a+\" end) {\\n continue;\\n }\\n if (idx == end && \"+t+\") {\\n continue;\\n }\\n \"+getFinalCoord(r,\"coords\")+\" = idx;\\n val += getX(\"+getCoords(r,\"coords\")+\");\\n }\\n setOutput(val);\\n }\\n \"}}();function getCoords(e,t){if(1===e)return\"\"+t;if(2===e)return t+\".x, \"+t+\".y\";if(3===e)return t+\".x, \"+t+\".y, \"+t+\".z\";if(4===e)return t+\".x, \"+t+\".y, \"+t+\".z, \"+t+\".w\";throw Error(\"Cumulative sum for rank \"+e+\" is not yet supported\")}function getFinalCoord(e,t){if(1===e)return\"\"+t;if(2===e)return t+\".y\";if(3===e)return t+\".z\";if(4===e)return t+\".w\";throw Error(\"Cumulative sum for rank \"+e+\" is not yet supported\")}var DepthToSpaceProgram=function(){function e(e,t,n){this.variableNames=[\"x\"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int h = \"+this.getHeightCoordString()+\";\\n int w = \"+this.getWidthCoordString()+\";\\n int d = \"+this.getDepthCoordString()+\";\\n\\n int in_h = h / \"+t+\";\\n int offset_h = imod(h, \"+t+\");\\n int in_w = w / \"+t+\";\\n int offset_w = imod(w, \"+t+\");\\n int offset_d = (offset_h * \"+t+\" + offset_w) *\\n \"+this.getOutputDepthSize()+\";\\n int in_d = d + offset_d;\\n\\n float result = \"+this.getInputSamplingString()+\";\\n setOutput(result);\\n }\\n \"}return e.prototype.getHeightCoordString=function(){return\"NHWC\"===this.dataFormat?\"coords[1]\":\"coords[2]\"},e.prototype.getWidthCoordString=function(){return\"NHWC\"===this.dataFormat?\"coords[2]\":\"coords[3]\"},e.prototype.getDepthCoordString=function(){return\"NHWC\"===this.dataFormat?\"coords[3]\":\"coords[1]\"},e.prototype.getOutputDepthSize=function(){return\"NHWC\"===this.dataFormat?this.outputShape[3]:this.outputShape[1]},e.prototype.getInputSamplingString=function(){return\"NHWC\"===this.dataFormat?\"getX(b, in_h, in_w, in_d)\":\"getX(b, in_d, in_h, in_w)\"},e}(),EncodeFloatProgram=function(){return function(e){this.variableNames=[\"A\"],this.outputShape=e,this.userCode=\"\\n const float FLOAT_MAX = 1.70141184e38;\\n const float FLOAT_MIN = 1.17549435e-38;\\n\\n lowp vec4 encode_float(highp float v) {\\n if (isNaN(v)) {\\n return vec4(255, 255, 255, 255);\\n }\\n\\n highp float av = abs(v);\\n\\n if(av < FLOAT_MIN) {\\n return vec4(0.0, 0.0, 0.0, 0.0);\\n } else if(v > FLOAT_MAX) {\\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\\n } else if(v < -FLOAT_MAX) {\\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\\n }\\n\\n highp vec4 c = vec4(0,0,0,0);\\n\\n highp float e = floor(log2(av));\\n highp float m = exp2(fract(log2(av))) - 1.0;\\n\\n c[2] = floor(128.0 * m);\\n m -= c[2] / 128.0;\\n c[1] = floor(32768.0 * m);\\n m -= c[1] / 32768.0;\\n c[0] = floor(8388608.0 * m);\\n\\n highp float ebias = e + 127.0;\\n c[3] = floor(ebias / 2.0);\\n ebias -= c[3] * 2.0;\\n c[2] += floor(ebias) * 128.0;\\n\\n c[3] += 128.0 * step(0.0, -v);\\n\\n return c / 255.0;\\n }\\n\\n void main() {\\n float x = getAAtOutCoords();\\n gl_FragColor = encode_float(x);\\n }\\n \"}}(),COMPLEX_FFT={REAL:\"return real * expR - imag * expI;\",IMAG:\"return real * expI + imag * expR;\"},FFTProgram=function(){return function(e,t,n){this.variableNames=[\"real\",\"imag\"];var r=t[1];this.outputShape=t;var o=n?\"2.0 * \"+Math.PI:\"-2.0 * \"+Math.PI,a=n?r+\".0\":\"1.0\";this.userCode=\"\\n const float exponentMultiplier = \"+o+\";\\n\\n float unaryOpComplex(float real, float expR, float imag, float expI) {\\n \"+e+\"\\n }\\n\\n float mulMatDFT(int batch, int index) {\\n float indexRatio = float(index) / float(\"+r+\");\\n float exponentMultiplierTimesIndexRatio =\\n exponentMultiplier * indexRatio;\\n\\n float result = 0.0;\\n\\n for (int i = 0; i < \"+r+\"; i++) {\\n // x = (-2|2 * PI / N) * index * i;\\n float x = exponentMultiplierTimesIndexRatio * float(i);\\n float expR = cos(x);\\n float expI = sin(x);\\n float real = getReal(batch, i);\\n float imag = getImag(batch, i);\\n\\n result +=\\n unaryOpComplex(real, expR, imag, expI) / \"+a+\";\\n }\\n\\n return result;\\n }\\n\\n void main() {\\n ivec2 coords = getOutputCoords();\\n setOutput(mulMatDFT(coords[0], coords[1]));\\n }\\n \"}}(),FromPixelsProgram=function(){return function(e){this.variableNames=[\"A\"];var t=e[0],n=e[1];this.outputShape=e,this.userCode=\"\\n void main() {\\n ivec3 coords = getOutputCoords();\\n int texR = coords[0];\\n int texC = coords[1];\\n int depth = coords[2];\\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(\"+n+\".0, \"+t+\".0);\\n\\n vec4 values = texture2D(A, uv);\\n float value;\\n if (depth == 0) {\\n value = values.r;\\n } else if (depth == 1) {\\n value = values.g;\\n } else if (depth == 2) {\\n value = values.b;\\n } else if (depth == 3) {\\n value = values.a;\\n }\\n\\n setOutput(floor(value * 255.0 + 0.5));\\n }\\n \"}}(),GatherProgram=function(){return function(e,t,n){this.variableNames=[\"A\",\"indices\"];var r=e.slice();r[n]=t,this.outputShape=r,this.rank=r.length;var o=getCoordsDataType(this.rank),a=getSourceCoords(e,n);this.userCode=\"\\n void main() {\\n \"+o+\" resRC = getOutputCoords();\\n setOutput(getA(\"+a+\"));\\n }\\n \"}}();function getSourceCoords(e,t){var n=e.length;if(n>4)throw Error(\"Gather for rank \"+n+\" is not yet supported\");if(1===n)return\"int(getIndices(resRC))\";for(var r=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],o=[],a=0;a1?\"strides[j]\":\"strides\";this.userCode=\"\\n \"+r+\" strides = \"+r+\"(\"+this.strides+\");\\n void main() {\\n \"+o+\" coords = getOutputCoords();\\n int flattenIndex = 0;\\n for (int j = 0; j < \"+this.sliceDim+\"; j++) {\\n int index = round(getIndices(coords[0], j));\\n flattenIndex += index * \"+a+\";\\n }\\n setOutput(getX(flattenIndex, coords[1]));\\n }\\n \"}}();function getUnpackedMatrixTextureShapeWidthHeight(e,t){return[t,e]}function getUnpackedArraySizeFromMatrixSize(e,t){return e*t}function getMatrixSizeFromUnpackedArraySize(e,t){if(e%t!=0)throw new Error(\"unpackedSize (\"+e+\") must be a multiple of \"+t);return e/t}function encodeMatrixToUnpackedArray(e,t,n){var r=getUnpackedArraySizeFromMatrixSize(e.length,n);if(t.length= \"+r);for(var o=0,a=0;a= \"+r);for(var o=0,a=0;a=\\n \"+a);for(var i=r%2==1,s=n%2==1,u=Math.floor(r/2),l=Math.floor(n/2),c=Math.ceil(r/2),p=c*Math.ceil(n/2),d=nearestLargerEven(n)*nearestLargerEven(r),h=0;h= \"+a);for(var i=r%2==1,s=n%2==1,u=Math.floor(r/2),l=Math.floor(n/2),c=Math.ceil(r/2),p=c*Math.ceil(n/2),d=nearestLargerEven(n)*nearestLargerEven(r),h=0;hn||t>n){r=\"[\"+e+\"x\"+t+\"]\";throw new Error(\"Requested texture size \"+r+\" greater than WebGL maximum on this browser / GPU \"+(\"[\"+n+\"x\"+n+\"]\")+\".\")}}function createFramebuffer(e){return throwIfNull(e,function(){return e.createFramebuffer()},\"Unable to create WebGLFramebuffer.\")}function bindVertexBufferToProgramAttribute(e,t,n,r,o,a,i){var s=e.getAttribLocation(t,n);return-1!==s&&(callAndCheck(e,function(){return e.bindBuffer(e.ARRAY_BUFFER,r)}),callAndCheck(e,function(){return e.vertexAttribPointer(s,o,e.FLOAT,!1,a,i)}),callAndCheck(e,function(){return e.enableVertexAttribArray(s)}),!0)}function bindTextureUnit(e,t,n){validateTextureUnit(e,n),callAndCheck(e,function(){return e.activeTexture(e.TEXTURE0+n)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,t)})}function unbindTextureUnit(e,t){validateTextureUnit(e,t),callAndCheck(e,function(){return e.activeTexture(e.TEXTURE0+t)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,null)})}function getProgramUniformLocationOrThrow(e,t,n){return throwIfNull(e,function(){return e.getUniformLocation(t,n)},'uniform \"'+n+'\" not present in program.')}function getProgramUniformLocation(e,t,n){return e.getUniformLocation(t,n)}function bindTextureToProgramUniformSampler(e,t,n,r,o){callAndCheck(e,function(){return bindTextureUnit(e,n,o)}),callAndCheck(e,function(){return e.uniform1i(r,o)})}function bindCanvasToFramebuffer(e){callAndCheck(e,function(){return e.bindFramebuffer(e.FRAMEBUFFER,null)}),callAndCheck(e,function(){return e.viewport(0,0,e.canvas.width,e.canvas.height)}),callAndCheck(e,function(){return e.scissor(0,0,e.canvas.width,e.canvas.height)})}function bindColorTextureToFramebuffer(e,t,n){callAndCheck(e,function(){return e.bindFramebuffer(e.FRAMEBUFFER,n)}),callAndCheck(e,function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0)})}function unbindColorTextureFromFramebuffer(e,t){callAndCheck(e,function(){return e.bindFramebuffer(e.FRAMEBUFFER,t)}),callAndCheck(e,function(){return e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0)})}function validateFramebuffer(e){var t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+getFramebufferErrorMessage(e,t))}function getFramebufferErrorMessage(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\";case e.FRAMEBUFFER_UNSUPPORTED:return\"FRAMEBUFFER_UNSUPPORTED\";default:return\"unknown error \"+t}}function throwIfNull(e,t,n){var r=callAndCheck(e,function(){return t()});if(null==r)throw new Error(n);return r}function validateTextureUnit(e,t){var n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,r=t+e.TEXTURE0;if(rn)throw new Error(\"textureUnit must be in \"+(\"[gl.TEXTURE0, gl.TEXTURE\"+n+\"]\")+\".\")}function getTextureShapeFromLogicalShape(e,t){void 0===t&&(t=!1);var n=ENV.get(\"WEBGL_MAX_TEXTURE_SIZE\");if(t&&(n*=2,e=e.map(function(t,n){return n>=e.length-2?nearestLargerEven(e[n]):e[n]})),2!==e.length){var r=squeezeShape(e);e=r.newShape}var o=sizeFromShape(e);return e.length<=1&&o<=n?[1,o]:2===e.length&&e[0]<=n&&e[1]<=n?e:3===e.length&&e[0]*e[1]<=n&&e[2]<=n?[e[0]*e[1],e[2]]:3===e.length&&e[0]<=n&&e[1]*e[2]<=n?[e[0],e[1]*e[2]]:4===e.length&&e[0]*e[1]*e[2]<=n&&e[3]<=n?[e[0]*e[1]*e[2],e[3]]:4===e.length&&e[0]<=n&&e[1]*e[2]*e[3]<=n?[e[0],e[1]*e[2]*e[3]]:sizeToSquarishShape(o)}function isEven(e){return e%2==0}function isReshapeFree(e,t){if(arraysEqual(e=e.slice(-2),t=t.slice(-2)))return!0;if(!e.length||!t.length)return!0;if(0===e[0]||0===e[1]||0===t[0]||0===t[1])return!0;if(e.length!==t.length){var n=e.slice(-1)[0],r=t.slice(-1)[0];if(n===r)return!0;if(isEven(n)&&isEven(r)&&(1===e[0]||1===t[0]))return!0}else if(isEven(e[0])&&isEven(t[0])){if(isEven(e[1])&&isEven(t[1]))return!0;if(e[1]===t[1])return!0}return!1}var webgl_util=Object.freeze({callAndCheck:callAndCheck,enableDebugWebGLErrorChecking:enableDebugWebGLErrorChecking,checkWebGLError:checkWebGLError,getWebGLErrorMessage:getWebGLErrorMessage,getExtensionOrThrow:getExtensionOrThrow,createVertexShader:createVertexShader,createFragmentShader:createFragmentShader,createProgram:createProgram,linkProgram:linkProgram,validateProgram:validateProgram,createStaticVertexBuffer:createStaticVertexBuffer,createStaticIndexBuffer:createStaticIndexBuffer,getNumChannels:getNumChannels,createTexture:createTexture,validateTextureSize:validateTextureSize,createFramebuffer:createFramebuffer,bindVertexBufferToProgramAttribute:bindVertexBufferToProgramAttribute,bindTextureUnit:bindTextureUnit,unbindTextureUnit:unbindTextureUnit,getProgramUniformLocationOrThrow:getProgramUniformLocationOrThrow,getProgramUniformLocation:getProgramUniformLocation,bindTextureToProgramUniformSampler:bindTextureToProgramUniformSampler,bindCanvasToFramebuffer:bindCanvasToFramebuffer,bindColorTextureToFramebuffer:bindColorTextureToFramebuffer,unbindColorTextureFromFramebuffer:unbindColorTextureFromFramebuffer,validateFramebuffer:validateFramebuffer,getFramebufferErrorMessage:getFramebufferErrorMessage,getTextureShapeFromLogicalShape:getTextureShapeFromLogicalShape,isReshapeFree:isReshapeFree});function createVertexShader$1(e){return createVertexShader(e,\"\\n precision highp float;\\n attribute vec3 clipSpacePos;\\n attribute vec2 uv;\\n varying vec2 resultUV;\\n\\n void main() {\\n gl_Position = vec4(clipSpacePos, 1);\\n resultUV = uv;\\n }\")}function createVertexBuffer(e){return createStaticVertexBuffer(e,new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]))}function createIndexBuffer(e){return createStaticIndexBuffer(e,new Uint16Array([0,1,2,2,1,3]))}function getTextureConfig(e,t){var n,r,o,a,i,s,u,l=e;return 2===ENV.get(\"WEBGL_VERSION\")?(n=l.R32F,r=l.R16F,o=l.RGBA32F,a=l.RED,i=4,s=1,u=l.HALF_FLOAT):(n=e.RGBA,r=e.RGBA,o=l.RGBA,a=e.RGBA,i=4,s=4,u=null!=t?t.HALF_FLOAT_OES:null),{internalFormatFloat:n,internalFormatHalfFloat:r,internalFormatPackedFloat:o,textureFormatFloat:a,downloadTextureFormat:e.RGBA,downloadUnpackNumChannels:i,defaultNumChannels:s,textureTypeHalfFloat:u}}function createAndConfigureTexture(e,t,n,r,o,a){validateTextureSize(t,n);var i=createTexture(e),s=e.TEXTURE_2D;return callAndCheck(e,function(){return e.bindTexture(s,i)}),callAndCheck(e,function(){return e.texParameteri(s,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)}),callAndCheck(e,function(){return e.texParameteri(s,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)}),callAndCheck(e,function(){return e.texParameteri(s,e.TEXTURE_MIN_FILTER,e.NEAREST)}),callAndCheck(e,function(){return e.texParameteri(s,e.TEXTURE_MAG_FILTER,e.NEAREST)}),callAndCheck(e,function(){return e.texImage2D(s,0,r,t,n,0,o,a,null)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,null)}),i}function createFloat32MatrixTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],r.internalFormatFloat,r.textureFormatFloat,e.FLOAT)}function createFloat16MatrixTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],r.internalFormatFloat,r.textureFormatFloat,r.textureTypeHalfFloat)}function createUnsignedBytesMatrixTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],e.RGBA,e.RGBA,e.UNSIGNED_BYTE)}function createPackedMatrixTexture(e,t,n,r){var o=getPackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],r.internalFormatPackedFloat,e.RGBA,e.FLOAT)}function createFloat16PackedMatrixTexture(e,t,n,r){var o=getPackedMatrixTextureShapeWidthHeight(t,n);return createAndConfigureTexture(e,o[0],o[1],r.internalFormatHalfFloat,e.RGBA,r.textureTypeHalfFloat)}function bindVertexProgramAttributeStreams(e,t,n){return callAndCheck(e,function(){return e.bindBuffer(e.ARRAY_BUFFER,n)}),bindVertexBufferToProgramAttribute(e,t,\"clipSpacePos\",n,3,20,0)&&bindVertexBufferToProgramAttribute(e,t,\"uv\",n,2,20,12)}function uploadPixelDataToTexture(e,t,n){callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,t)}),callAndCheck(e,function(){return e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,null)})}function uploadDataToTexture(e,t,n,r,o,a){validateTextureSize(n,r),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,t)}),callAndCheck(e,function(){return e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,r,a,e.FLOAT,o)}),callAndCheck(e,function(){return e.bindTexture(e.TEXTURE_2D,null)})}function uploadMatrixToTexture(e,t,n,r,o,a,i){var s,u=getUnpackedMatrixTextureShapeWidthHeight(n,r),l=u[0],c=u[1];1===i.defaultNumChannels?s=o:encodeMatrixToUnpackedArray(o,s=new Float32Array(getUnpackedArraySizeFromMatrixSize(o.length,a)),a),uploadDataToTexture(e,t,l,c,s,i.textureFormatFloat)}function uploadMatrixToPackedTexture(e,t,n,r,o,a,i,s,u){var l=getPackedMatrixTextureShapeWidthHeight(a,i),c=l[0],p=l[1],d=new Float32Array(n*getPackedRGBAArraySizeFromMatrixShape(r,o));encodeMatrixToPackedRGBA(s,n,r,o,d),uploadDataToTexture(e,t,c,p,d,e.RGBA)}function maybeCreateBufferFromOutputTexture(e,t,n,r,o){var a=t;if(2===ENV.get(\"WEBGL_VERSION\")){var i=e,s=i.createBuffer();callAndCheck(e,function(){return e.bindBuffer(i.PIXEL_PACK_BUFFER,s)});var u=4*getUnpackedArraySizeFromMatrixSize(n*r,o.downloadUnpackNumChannels);callAndCheck(e,function(){return e.bufferData(i.PIXEL_PACK_BUFFER,u,e.STATIC_DRAW)}),callAndCheck(e,function(){return i.readPixels(0,0,r,n,e.RGBA,e.FLOAT,0)}),callAndCheck(e,function(){return e.bindBuffer(i.PIXEL_PACK_BUFFER,null)}),a=s}return a}function downloadFloat32MatrixFromBuffer(e,t,n,r,o){var a=e,i=new Float32Array(getUnpackedArraySizeFromMatrixSize(n*r,o.downloadUnpackNumChannels));a.bindBuffer(e.ARRAY_BUFFER,t),a.getBufferSubData(e.ARRAY_BUFFER,0,i),a.bindBuffer(e.ARRAY_BUFFER,null);var s=new Float32Array(n*r);return decodeMatrixFromUnpackedArray(i,s,o.downloadUnpackNumChannels),s}function downloadFloat32MatrixFromOutputTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n),a=o[0],i=o[1],s=new Float32Array(getUnpackedArraySizeFromMatrixSize(t*n,r.downloadUnpackNumChannels));callAndCheck(e,function(){return e.readPixels(0,0,a,i,r.downloadTextureFormat,e.FLOAT,s)});var u=new Float32Array(t*n);return decodeMatrixFromUnpackedArray(s,u,r.downloadUnpackNumChannels),u}function downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n,r){var o=getUnpackedMatrixTextureShapeWidthHeight(t,n),a=o[0],i=o[1],s=new Uint8Array(getUnpackedArraySizeFromMatrixSize(t*n,4));return callAndCheck(e,function(){return e.readPixels(0,0,a,i,r.downloadTextureFormat,e.UNSIGNED_BYTE,s)}),new Float32Array(s.buffer)}function downloadPackedMatrixFromBuffer(e,t,n,r,o,a,i,s){var u=e,l=new Float32Array(getPackedRGBAArraySizeFromMatrixShape(a,i));u.bindBuffer(e.ARRAY_BUFFER,t),u.getBufferSubData(e.ARRAY_BUFFER,0,l),u.bindBuffer(e.ARRAY_BUFFER,null);var c=new Float32Array(sizeFromShape([n,r,o]));return decodeMatrixFromPackedRGBA(l,n,r,o,c),c}function downloadMatrixFromPackedOutputTexture(e,t,n,r,o,a,i){var s=getPackedMatrixTextureShapeWidthHeight(o,a),u=s[0],l=s[1],c=new Float32Array(getPackedRGBAArraySizeFromMatrixShape(o,a));callAndCheck(e,function(){return e.readPixels(0,0,u,l,e.RGBA,e.FLOAT,c)});var p=new Float32Array(sizeFromShape([t,n,r]));return decodeMatrixFromPackedRGBA(c,t,n,r,p)}var gpgpu_util=Object.freeze({createVertexShader:createVertexShader$1,createVertexBuffer:createVertexBuffer,createIndexBuffer:createIndexBuffer,getTextureConfig:getTextureConfig,createFloat32MatrixTexture:createFloat32MatrixTexture,createFloat16MatrixTexture:createFloat16MatrixTexture,createUnsignedBytesMatrixTexture:createUnsignedBytesMatrixTexture,createPackedMatrixTexture:createPackedMatrixTexture,createFloat16PackedMatrixTexture:createFloat16PackedMatrixTexture,bindVertexProgramAttributeStreams:bindVertexProgramAttributeStreams,uploadPixelDataToTexture:uploadPixelDataToTexture,uploadMatrixToTexture:uploadMatrixToTexture,uploadMatrixToPackedTexture:uploadMatrixToPackedTexture,maybeCreateBufferFromOutputTexture:maybeCreateBufferFromOutputTexture,downloadFloat32MatrixFromBuffer:downloadFloat32MatrixFromBuffer,downloadFloat32MatrixFromOutputTexture:downloadFloat32MatrixFromOutputTexture,downloadByteEncodedFloatMatrixFromOutputTexture:downloadByteEncodedFloatMatrixFromOutputTexture,downloadPackedMatrixFromBuffer:downloadPackedMatrixFromBuffer,downloadMatrixFromPackedOutputTexture:downloadMatrixFromPackedOutputTexture}),GPGPUContext=function(){function e(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.autoDebugValidate=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[],this.gl=null!=e?e:getWebGLContext(ENV.get(\"WEBGL_VERSION\")),1===ENV.get(\"WEBGL_VERSION\")?(this.textureFloatExtension=getExtensionOrThrow(this.gl,\"OES_texture_float\"),this.colorBufferFloatExtension=this.gl.getExtension(\"WEBGL_color_buffer_float\"),ENV.get(\"WEBGL_RENDER_FLOAT32_ENABLED\")||(this.textureHalfFloatExtension=getExtensionOrThrow(this.gl,\"OES_texture_half_float\"),this.colorBufferHalfFloatExtension=this.gl.getExtension(\"EXT_color_buffer_half_float\"))):this.colorBufferFloatExtension=getExtensionOrThrow(this.gl,\"EXT_color_buffer_float\"),this.vertexBuffer=createVertexBuffer(this.gl),this.indexBuffer=createIndexBuffer(this.gl),this.framebuffer=createFramebuffer(this.gl),this.textureConfig=getTextureConfig(this.gl,this.textureHalfFloatExtension)}return e.prototype.dispose=function(){var e=this;if(!this.disposed){null!=this.program&&console.warn(\"Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing.\"),null!=this.outputTexture&&console.warn(\"Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.\");var t=this.gl;callAndCheck(t,function(){return t.finish()}),callAndCheck(t,function(){return t.bindFramebuffer(t.FRAMEBUFFER,null)}),callAndCheck(t,function(){return t.deleteFramebuffer(e.framebuffer)}),callAndCheck(t,function(){return t.bindBuffer(t.ARRAY_BUFFER,null)}),callAndCheck(t,function(){return t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)}),callAndCheck(t,function(){return t.deleteBuffer(e.indexBuffer)}),this.disposed=!0}},e.prototype.enableAutomaticDebugValidation=function(e){this.autoDebugValidate=e,enableDebugWebGLErrorChecking(e)},e.prototype.createFloat32MatrixTexture=function(e,t){return this.throwIfDisposed(),createFloat32MatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.createFloat16MatrixTexture=function(e,t){return this.throwIfDisposed(),createFloat16MatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.createUnsignedBytesMatrixTexture=function(e,t){return this.throwIfDisposed(),createUnsignedBytesMatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.uploadPixelDataToTexture=function(e,t){this.throwIfDisposed(),uploadPixelDataToTexture(this.gl,e,t)},e.prototype.createFloat16PackedMatrixTexture=function(e,t){return this.throwIfDisposed(),createFloat16PackedMatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.createPackedMatrixTexture=function(e,t){return this.throwIfDisposed(),createPackedMatrixTexture(this.gl,e,t,this.textureConfig)},e.prototype.deleteMatrixTexture=function(e){var t=this;this.throwIfDisposed(),this.outputTexture===e&&(unbindColorTextureFromFramebuffer(this.gl,this.framebuffer),this.outputTexture=null),callAndCheck(this.gl,function(){return t.gl.deleteTexture(e)})},e.prototype.uploadMatrixToTexture=function(e,t,n,r){this.throwIfDisposed();var o=getNumChannels();return uploadMatrixToTexture(this.gl,e,t,n,r,o,this.textureConfig)},e.prototype.uploadMatrixToPackedTexture=function(e,t,n,r,o,a,i){return this.throwIfDisposed(),uploadMatrixToPackedTexture(this.gl,e,t,n,r,o,a,i,this.textureConfig)},e.prototype.downloadFloat32MatrixFromOutputTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,function(){return downloadFloat32MatrixFromOutputTexture(r.gl,t,n,r.textureConfig)})},e.prototype.downloadByteEncodedFloatMatrixFromOutputTexture=function(e,t,n){var r=this;return this.downloadMatrixDriver(e,function(){return downloadByteEncodedFloatMatrixFromOutputTexture(r.gl,t,n,r.textureConfig)})},e.prototype.downloadPackedMatrixFromBuffer=function(e,t,n,r,o,a){return downloadPackedMatrixFromBuffer(this.gl,e,t,n,r,o,a,this.textureConfig)},e.prototype.downloadFloat32MatrixFromBuffer=function(e,t,n){return downloadFloat32MatrixFromBuffer(this.gl,e,t,n,this.textureConfig)},e.prototype.maybeCreateBufferFromTexture=function(e,t,n){this.bindTextureToFrameBuffer(e);var r=maybeCreateBufferFromOutputTexture(this.gl,e,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),r},e.prototype.createAndWaitForFence=function(){var e=this.createFence(this.gl);return this.pollFence(e)},e.prototype.createFence=function(e){var t,n,r=this;if(ENV.get(\"WEBGL_FENCE_API_ENABLED\")){var o=e,a=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=function(){var e=o.clientWaitSync(a,0,0);return e===o.ALREADY_SIGNALED||e===o.CONDITION_SATISFIED},t=a}else ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(t=this.beginQuery(),this.endQuery(),n=function(){return r.isQueryAvailable(t,ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))}):n=function(){return!0};return{query:t,isFencePassed:n}},e.prototype.downloadMatrixFromPackedTexture=function(e,t,n,r,o,a){var i=this;return this.downloadMatrixDriver(e,function(){return downloadMatrixFromPackedOutputTexture(i.gl,t,n,r,o,a,i.textureConfig)})},e.prototype.createProgram=function(e){this.throwIfDisposed();var t=this.gl,n=createFragmentShader(t,e),r=createVertexShader$1(t),o=createProgram(t);return callAndCheck(t,function(){return t.attachShader(o,r)}),callAndCheck(t,function(){return t.attachShader(o,n)}),linkProgram(t,o),this.autoDebugValidate&&validateProgram(t,o),this.vertexAttrsAreBound||(this.setProgram(o),this.vertexAttrsAreBound=bindVertexProgramAttributeStreams(t,this.program,this.vertexBuffer)),o},e.prototype.deleteProgram=function(e){var t=this;this.throwIfDisposed(),e===this.program&&(this.program=null),null!=e&&callAndCheck(this.gl,function(){return t.gl.deleteProgram(e)})},e.prototype.setProgram=function(e){var t=this;this.throwIfDisposed(),this.program=e,null!=this.program&&this.autoDebugValidate&&validateProgram(this.gl,this.program),callAndCheck(this.gl,function(){return t.gl.useProgram(e)})},e.prototype.getUniformLocation=function(e,t,n){return void 0===n&&(n=!0),this.throwIfDisposed(),n?getProgramUniformLocationOrThrow(this.gl,e,t):getProgramUniformLocation(this.gl,e,t)},e.prototype.getAttributeLocation=function(e,t){var n=this;return this.throwIfDisposed(),callAndCheck(this.gl,function(){return n.gl.getAttribLocation(e,t)})},e.prototype.getUniformLocationNoThrow=function(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)},e.prototype.setInputMatrixTexture=function(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),bindTextureToProgramUniformSampler(this.gl,this.program,e,t,n)},e.prototype.setOutputMatrixTexture=function(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)},e.prototype.setOutputPackedMatrixTexture=function(e,t,n){this.throwIfDisposed();var r=getPackedMatrixTextureShapeWidthHeight(t,n),o=r[0],a=r[1];this.setOutputMatrixTextureDriver(e,o,a)},e.prototype.setOutputMatrixWriteRegion=function(e,t,n,r){this.setOutputMatrixWriteRegionDriver(n,e,r,t)},e.prototype.setOutputPackedMatrixWriteRegion=function(e,t,n,r){throw new Error(\"setOutputPackedMatrixWriteRegion not implemented.\")},e.prototype.debugValidate=function(){null!=this.program&&validateProgram(this.gl,this.program),validateFramebuffer(this.gl)},e.prototype.executeProgram=function(){this.throwIfDisposed(),this.throwIfNoProgram();var e=this.gl;this.autoDebugValidate&&this.debugValidate(),callAndCheck(e,function(){return e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0)})},e.prototype.blockUntilAllProgramsCompleted=function(){var e=this;this.throwIfDisposed(),callAndCheck(this.gl,function(){return e.gl.finish()})},e.prototype.getQueryTimerExtension=function(){return null==this.disjointQueryTimerExtension&&(this.disjointQueryTimerExtension=getExtensionOrThrow(this.gl,2===ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")?\"EXT_disjoint_timer_query_webgl2\":\"EXT_disjoint_timer_query\")),this.disjointQueryTimerExtension},e.prototype.getQueryTimerExtensionWebGL2=function(){return this.getQueryTimerExtension()},e.prototype.getQueryTimerExtensionWebGL1=function(){return this.getQueryTimerExtension()},e.prototype.beginQuery=function(){if(2===ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")){var e=this.gl,t=this.getQueryTimerExtensionWebGL2(),n=e.createQuery();return e.beginQuery(t.TIME_ELAPSED_EXT,n),n}var r=this.getQueryTimerExtensionWebGL1(),o=r.createQueryEXT();return r.beginQueryEXT(r.TIME_ELAPSED_EXT,o),o},e.prototype.endQuery=function(){if(2!==ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")){var e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}else{var t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT)}},e.prototype.waitForQueryAndGetTime=function(e){return __awaiter(this,void 0,void 0,function(){var t=this;return __generator(this,function(n){switch(n.label){case 0:return[4,repeatedTry(function(){return t.disposed||t.isQueryAvailable(e,ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))})];case 1:return n.sent(),[2,this.getQueryTime(e,ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))]}})})},e.prototype.getQueryTime=function(e,t){if(0===t)return null;if(2===t){var n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}var r=this.getQueryTimerExtensionWebGL1();return r.getQueryObjectEXT(e,r.QUERY_RESULT_EXT)/1e6},e.prototype.isQueryAvailable=function(e,t){if(0===t)return!0;if(2===t){var n=this.gl,r=this.getQueryTimerExtensionWebGL2(),o=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint}o=(r=this.getQueryTimerExtensionWebGL1()).getQueryObjectEXT(e,r.QUERY_RESULT_AVAILABLE_EXT);return null==this.disjoint&&(this.disjoint=this.gl.getParameter(r.GPU_DISJOINT_EXT)),o&&!this.disjoint},e.prototype.pollFence=function(e){var t=this;return new Promise(function(n){t.addItemToPoll(function(){return e.isFencePassed()},function(){return n()})})},e.prototype.pollItems=function(){for(var e=binSearchLastTrue(this.itemsToPoll.map(function(e){return e.isDoneFn})),t=0;t<=e;++t){(0,this.itemsToPoll[t].resolveFn)()}this.itemsToPoll=this.itemsToPoll.slice(e+1)},e.prototype.addItemToPoll=function(e,t){var n=this;this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1||repeatedTry(function(){return n.pollItems(),0===n.itemsToPoll.length})},e.prototype.bindTextureToFrameBuffer=function(e){this.throwIfDisposed(),bindColorTextureToFramebuffer(this.gl,e,this.framebuffer),this.autoDebugValidate&&validateFramebuffer(this.gl)},e.prototype.unbindTextureToFrameBuffer=function(){null!=this.outputTexture?(bindColorTextureToFramebuffer(this.gl,this.outputTexture,this.framebuffer),this.autoDebugValidate&&validateFramebuffer(this.gl)):unbindColorTextureFromFramebuffer(this.gl,this.framebuffer)},e.prototype.downloadMatrixDriver=function(e,t){this.bindTextureToFrameBuffer(e);var n=t();return this.unbindTextureToFrameBuffer(),n},e.prototype.setOutputMatrixTextureDriver=function(e,t,n){this.throwIfDisposed();var r=this.gl;bindColorTextureToFramebuffer(r,e,this.framebuffer),this.autoDebugValidate&&validateFramebuffer(r),this.outputTexture=e,callAndCheck(r,function(){return r.viewport(0,0,t,n)}),callAndCheck(r,function(){return r.scissor(0,0,t,n)})},e.prototype.setOutputMatrixWriteRegionDriver=function(e,t,n,r){var o=this;this.throwIfDisposed(),callAndCheck(this.gl,function(){return o.gl.scissor(e,t,n,r)})},e.prototype.throwIfDisposed=function(){if(this.disposed)throw new Error(\"Attempted to use disposed GPGPUContext.\")},e.prototype.throwIfNoProgram=function(){if(null==this.program)throw new Error(\"No GPU program is currently set.\")},e}();function binSearchLastTrue(e){for(var t=0,n=e.length-1,r=-1;t<=n;){var o=t+n>>1;e[o]()?(r=o,t=o+1):n=o-1}return r}function compileProgram(e,t,n,r){for(var o=t.userCode,a=n.map(function(e,n){var r={logicalShape:e.shape,texShape:e.isUniform?null:e.texData.texShape,isUniform:e.isUniform,isPacked:!e.isUniform&&e.texData.isPacked};return{name:t.variableNames[n],shapeInfo:r}}),i=a.map(function(e){return e.shapeInfo}),s={logicalShape:r.shape,texShape:r.texData.texShape,isUniform:!1,isPacked:r.texData.isPacked},u=makeShader(a,s,o,!0===t.supportsBroadcasting,t.usesPackedTextures),l=e.createProgram(u),c={},p=0;p= \"+e[1]+\" || pos >= \"+e[0]+\") continue;\\n\\n int offsetY = int(blockIndex / (\"+u+\")) * \"+i+\" - \"+d+\";\\n int d0 = offsetY + \"+c+\" * (pos / \"+h+\");\\n\\n if(d0 >= \"+t[0]+\" || d0 < 0) continue;\\n\\n int offsetX = int(mod(float(blockIndex), \"+u+\".) * \"+a+\". - \"+p+\".);\\n int d1 = offsetX + \"+l+\" * (int(mod(float(pos), \"+h+\".) / \"+o+\".));\\n\\n if(d1 >= \"+t[1]+\" || d1 < 0) continue;\\n\\n result[row * 2 + col] = getA(d0, d1, int(mod(float(pos), \"+o+\".)));\\n }\\n }\\n\\n gl_FragColor = result;\\n }\\n \"}}(),LRNProgram=function(){return function(e,t,n,r,o){this.variableNames=[\"x\"],this.outputShape=[];var a,i=t,s=e[3]-1;this.outputShape=e;var u=\"float(\"+n+\") + float(\"+r+\") * sum\";a=.5===o?\"inversesqrt(\"+u+\")\":1===o?\"1.0/(\"+u+\")\":\"exp(log(\"+u+\") * float(-\"+o+\"));\",this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int r = coords[1];\\n int c = coords[2];\\n int d = coords[3];\\n float x = getX(b, r, c, d);\\n float sum = 0.0;\\n for (int j = -\"+i+\"; j <= \"+i+\"; j++) {\\n int idx = d + j;\\n if (idx >= 0 && idx <= \"+s+\") {\\n float z = getX(b, r, c, idx);\\n sum += z * z;\\n }\\n }\\n float val = x * \"+a+\";\\n setOutput(val);\\n }\\n \"}}(),LRNGradProgram=function(){return function(e,t,n,r,o){this.variableNames=[\"inputImage\",\"outputImage\",\"dy\"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=r,this.beta=o,this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int r = coords[1];\\n int c = coords[2];\\n\\n float result = 0.0;\\n for (int d = 0; d < \"+this.depth+\"; ++d) {\\n int depthBegin = int(max(0.0, float(d - \"+t+\")));\\n int depthEnd = int(min(float(\"+this.depth+\"),\\n float(d + \"+t+\" + 1)));\\n\\n const int MIN_DEPTH_BEGIN = 0;\\n const int MAX_DEPTH_END = \"+this.depth+\";\\n\\n float norm = 0.0;\\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\\n if (k < depthBegin){\\n continue;\\n }\\n else if (k >= depthBegin && k < depthEnd) {\\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\\n }\\n else {\\n break;\\n }\\n }\\n\\n norm = float(\"+r+\") * norm + float(\"+n+\");\\n\\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\\n if (k < depthBegin){\\n continue;\\n }\\n else if (k >= depthBegin && k < depthEnd){\\n float dyi = -2.0 * float(\"+r+\")\\n * float(\"+o+\")\\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\\n / norm;\\n if (k == d) {\\n dyi += pow(norm, -1.0 * \"+o+\");\\n }\\n if (k == coords[3]) {\\n dyi *= getDy(b, r, c, d);\\n result += dyi;\\n }\\n }\\n else {\\n break;\\n }\\n }\\n }\\n setOutput(result);\\n }\\n \"}}(),MaxPool2DBackpropProgram=function(){return function(e){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=e.inShape;var t=e.strideHeight,n=e.strideWidth,r=e.dilationHeight,o=e.effectiveFilterHeight,a=e.effectiveFilterWidth,i=o-1-e.padInfo.top,s=a-1-e.padInfo.left,u=o*a-1;this.userCode=\"\\n const ivec2 pads = ivec2(\"+i+\", \"+s+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n\\n ivec2 dyRCCorner = coords.yz - pads;\\n int dyRCorner = dyRCCorner.x;\\n int dyCCorner = dyRCCorner.y;\\n\\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\\n // ? = to be determined. : = across all values in that axis.\\n float dotProd = 0.0;\\n for (int wR = 0; wR < \"+o+\";\\n wR += \"+r+\") {\\n float dyR = float(dyRCorner + wR) / \"+t+\".0;\\n\\n if (dyR < 0.0 || dyR >= \"+e.outHeight+\".0 || fract(dyR) > 0.0) {\\n continue;\\n }\\n int idyR = int(dyR);\\n\\n for (int wC = 0; wC < \"+a+\"; wC++) {\\n float dyC = float(dyCCorner + wC) / \"+n+\".0;\\n\\n if (dyC < 0.0 || dyC >= \"+e.outWidth+\".0 ||\\n fract(dyC) > 0.0) {\\n continue;\\n }\\n int idyC = int(dyC);\\n\\n float dyValue = getDy(b, idyR, idyC, d);\\n int maxPosValue = \"+u+\" - int(getMaxPos(b, idyR, idyC, d));\\n\\n // Get the current value, check it against the value from the\\n // position matrix.\\n int curPosValue = wR * \"+a+\" + wC;\\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\\n\\n dotProd += dyValue * mask;\\n }\\n }\\n setOutput(dotProd);\\n }\\n \"}}(),MatMulProgram=function(){return function(e,t,n,r){void 0===n&&(n=!1),void 0===r&&(r=!1),this.variableNames=[\"matrixA\",\"matrixB\"];var o=e[0],a=n?e[2]:e[1],i=r?t[1]:t[2],s=n?e[1]:e[2];this.outputShape=[o,a,i];var u=function(e,t){return n?\"batch, \"+t+\" + \"+e+\", aRow\":\"batch, aRow, \"+t+\" + \"+e},l=function(e,t){return r?\"batch, bCol, \"+t+\" + \"+e:\"batch, \"+t+\" + \"+e+\", bCol\"},c=4*Math.floor(s/4),p=s%4;this.userCode=\" float dotARowBCol(int batch, int aRow, int bCol) {\\n float result = 0.0;\\n for (int i = 0; i < \"+c+\"; i += 4) {\\n vec4 a = vec4(\\n getMatrixA(\"+u(0,\"i\")+\"),\\n getMatrixA(\"+u(1,\"i\")+\"),\\n getMatrixA(\"+u(2,\"i\")+\"),\\n getMatrixA(\"+u(3,\"i\")+\")\\n );\\n vec4 b = vec4(\\n getMatrixB(\"+l(0,\"i\")+\"),\\n getMatrixB(\"+l(1,\"i\")+\"),\\n getMatrixB(\"+l(2,\"i\")+\"),\\n getMatrixB(\"+l(3,\"i\")+\")\\n );\\n\\n result += dot(a, b);\\n }\\n\\n if (\"+(1===p)+\") {\\n result += getMatrixA(\"+u(0,c)+\") *\\n getMatrixB(\"+l(0,c)+\");\\n } else if (\"+(2===p)+\") {\\n vec2 a = vec2(\\n getMatrixA(\"+u(0,c)+\"),\\n getMatrixA(\"+u(1,c)+\")\\n );\\n vec2 b = vec2(\\n getMatrixB(\"+l(0,c)+\"),\\n getMatrixB(\"+l(1,c)+\")\\n );\\n result += dot(a, b);\\n } else if (\"+(3===p)+\") {\\n vec3 a = vec3(\\n getMatrixA(\"+u(0,c)+\"),\\n getMatrixA(\"+u(1,c)+\"),\\n getMatrixA(\"+u(2,c)+\")\\n );\\n vec3 b = vec3(\\n getMatrixB(\"+l(0,c)+\"),\\n getMatrixB(\"+l(1,c)+\"),\\n getMatrixB(\"+l(2,c)+\")\\n );\\n result += dot(a, b);\\n }\\n\\n return result;\\n }\\n\\n void main() {\\n ivec3 resBRC = getOutputCoords();\\n setOutput(dotARowBCol(resBRC.x, resBRC.y, resBRC.z));\\n }\\n \"}}(),MatMulPackedProgram=function(){return function(e,t,n,r,o){void 0===r&&(r=!1),void 0===o&&(o=!1),this.variableNames=[\"matrixA\",\"matrixB\"],this.usesPackedTextures=!0,this.outputShape=n;var a=r?e[0]:e[1],i=Math.ceil(a/2),s=r?\"i * 2, rc.x\":\"rc.x, i * 2\",u=o?\"rc.y, i * 2\":\"i * 2, rc.y\",l=r?[\"a.xxyy\",\"a.zzww\"]:[\"a.xxzz\",\"a.yyww\"],c=o?[\"b.xzxz\",\"b.ywyw\"]:[\"b.xyxy\",\"b.zwzw\"];this.userCode=\"\\n const float sharedDimension = \"+i+\".0;\\n\\n vec4 dot2x2ARowBCol(ivec2 rc) {\\n vec4 result = vec4(0);\\n for (int i = 0; i < \"+i+\"; i++) {\\n vec4 a = getMatrixA(\"+s+\");\\n vec4 b = getMatrixB(\"+u+\");\\n\\n result += (\"+l[0]+\" * \"+c[0]+\") + (\"+l[1]+\" * \"+c[1]+\");\\n }\\n return result;\\n }\\n\\n void main() {\\n ivec2 rc = getOutputCoords();\\n setOutput(dot2x2ARowBCol(rc));\\n }\\n \"}}(),MultinomialProgram=function(){function e(e,t,n){this.variableNames=[\"probs\"],this.outputShape=[e,n],this.userCode=\"\\n uniform float seed;\\n\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int batch = coords[0];\\n\\n float r = random(seed);\\n float cdf = 0.0;\\n\\n for (int i = 0; i < \"+(t-1)+\"; i++) {\\n cdf += getProbs(batch, i);\\n\\n if (r < cdf) {\\n setOutput(float(i));\\n return;\\n }\\n }\\n\\n // If no other event happened, last event happened.\\n setOutput(float(\"+(t-1)+\"));\\n }\\n \"}return e.prototype.getCustomSetupFunc=function(e){var t=this;return function(n,r){null==t.seedLoc&&(t.seedLoc=n.getUniformLocation(r,\"seed\")),n.gl.uniform1f(t.seedLoc,e)}},e}(),OneHotProgram=function(){return function(e,t,n,r){this.variableNames=[\"indices\"],this.outputShape=[e,t],this.userCode=\"\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int index = round(getIndices(coords.x));\\n setOutput(mix(float(\"+r+\"), float(\"+n+\"),\\n float(index == coords.y)));\\n }\\n \"}}();function getVecChannels(e,t){return[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"].slice(0,t).map(function(t){return e+\".\"+t})}function getChannels(e,t){return 1===t?[e]:getVecChannels(e,t)}function getSourceCoords$1(e,t){if(1===e)return\"rc\";for(var n=\"\",r=0;r \"+t[0];for(var r=\"\",o=e-2;o= \"+t[o],o= \"+t+\";\\n bool rEdge = rp1 >= \"+n+\";\\n \"}function getOutput(e,t){var n=e.length,r=getSourceCoordsArr(n,t);return 1===n?\"getA(rc),\\n rc + 1 >= \"+e[0]+\" ? 0. : getA(rc + 1),\\n 0, 0\":\"getA(\"+r[0]+\"),\\n cEdge ? 0. : getA(\"+r[1]+\"),\\n rEdge ? 0. : getA(\"+r[2]+\"),\\n rEdge || cEdge ? 0. : getA(\"+r[3]+\")\"}var PadProgram=function(){return function(e,t,n){this.variableNames=[\"x\"],this.outputShape=t.map(function(t,n){return t[0]+e[n]+t[1]});var r=e.length,o=getCoordsDataType(r),a=t.map(function(e){return e[0]}).join(\",\"),i=t.map(function(t,n){return t[0]+e[n]}).join(\",\"),s=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,r);this.userCode=1!==r?\"\\n \"+o+\" start = \"+o+\"(\"+a+\");\\n \"+o+\" end = \"+o+\"(\"+i+\");\\n\\n void main() {\\n \"+o+\" outC = getOutputCoords();\\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\\n setOutput(float(\"+n+\"));\\n } else {\\n \"+o+\" coords = outC - start;\\n setOutput(getX(\"+s+\"));\\n }\\n }\\n \":\"\\n int start = \"+a+\";\\n int end = \"+i+\";\\n\\n void main() {\\n int outC = getOutputCoords();\\n if (outC < start || outC >= end) {\\n setOutput(float(\"+n+\"));\\n } else {\\n setOutput(getX(outC - start));\\n }\\n }\\n \"}}(),Pool2DProgram=function(){return function(e,t,n){if(this.variableNames=[\"x\"],\"avg\"===t&&n)throw new Error(\"Cannot compute positions for average pool.\");var r=e.filterWidth,o=e.strideHeight,a=e.strideWidth,i=e.dilationHeight,s=e.dilationWidth,u=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=e.padInfo.top,p=e.padInfo.left;this.outputShape=e.outShape;var d=\"avg\"===t,h=\"0.0\";if(d||(h=\"-1.0 / 0.0\"),n)this.userCode=\"\\n const ivec2 strides = ivec2(\"+o+\", \"+a+\");\\n const ivec2 pads = ivec2(\"+c+\", \"+p+\");\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d = coords[3];\\n\\n ivec2 xRCCorner = coords.yz * strides - pads;\\n int xRCorner = xRCCorner.x;\\n int xCCorner = xRCCorner.y;\\n\\n // max/min x(?, ?, d) to get y(yR, yC, d).\\n // ? = to be determined\\n float minMaxValue = 0.0;\\n float minMaxValueFound = 0.0;\\n int minMaxPosition = 0;\\n float avgValue = 0.0;\\n\\n for (int wR = 0; wR < \"+u+\";\\n wR += \"+i+\") {\\n int xR = xRCorner + wR;\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+l+\";\\n wC += \"+s+\") {\\n int xC = xCCorner + wC;\\n\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n continue;\\n }\\n\\n float value = getX(batch, xR, xC, d);\\n\\n // If a min / max value has already been found, use it. If not,\\n // use the current value.\\n float currMinMaxValue = mix(\\n value, minMaxValue, minMaxValueFound);\\n if (value >= currMinMaxValue) {\\n minMaxValue = value;\\n minMaxValueFound = 1.0;\\n minMaxPosition = wR * \"+l+\" + wC;\\n }\\n }\\n }\\n setOutput(float(minMaxPosition));\\n }\\n \";else{var f=t+\"(\"+t+\"(\"+t+\"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])\";\"avg\"===t&&(f=\"avgValue / count\");var m=4*Math.floor(r/4),g=r%4,v=\"\\n if (\"+d+\") {\\n avgValue += dot(values, ones);\\n } else {\\n minMaxValue = max(values, minMaxValue);\\n }\\n \";this.userCode=\"\\n const ivec2 strides = ivec2(\"+o+\", \"+a+\");\\n const ivec2 pads = ivec2(\"+c+\", \"+p+\");\\n const float initializationValue = \"+h+\";\\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\\n\\n float count = 0.0;\\n\\n float getValue(int batch, int xR, int xC, int d) {\\n if (xC < 0 || xC >= \"+e.inWidth+\") {\\n return initializationValue;\\n }\\n count += 1.0;\\n return getX(batch, xR, xC, d);\\n }\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int batch = coords[0];\\n int d = coords[3];\\n\\n ivec2 xRCCorner = coords.yz * strides - pads;\\n int xRCorner = xRCCorner.x;\\n int xCCorner = xRCCorner.y;\\n\\n // max/min x(?, ?, d) to get y(yR, yC, d).\\n // ? = to be determined\\n vec4 minMaxValue = vec4(\"+h+\");\\n float avgValue = 0.0;\\n count = 0.0;\\n\\n for (int wR = 0; wR < \"+u+\";\\n wR += \"+i+\") {\\n int xR = xRCorner + wR;\\n\\n if (xR < 0 || xR >= \"+e.inHeight+\") {\\n continue;\\n }\\n\\n for (int wC = 0; wC < \"+m+\"; wC += 4) {\\n int xC = xCCorner + wC * \"+s+\";\\n\\n vec4 values = vec4(\\n getValue(batch, xR, xC, d),\\n getValue(batch, xR, xC + \"+s+\", d),\\n getValue(batch, xR, xC + 2 * \"+s+\", d),\\n getValue(batch, xR, xC + 3 * \"+s+\", d)\\n );\\n\\n \"+v+\"\\n }\\n\\n int xC = xCCorner + \"+m+\";\\n if (\"+(1===g)+\") {\\n vec4 values = vec4(\\n getValue(batch, xR, xC, d),\\n initializationValue,\\n initializationValue,\\n initializationValue\\n );\\n\\n \"+v+\"\\n } else if (\"+(2===g)+\") {\\n vec4 values = vec4(\\n getValue(batch, xR, xC, d),\\n getValue(batch, xR, xC + \"+s+\", d),\\n initializationValue,\\n initializationValue\\n );\\n\\n \"+v+\"\\n } else if (\"+(3===g)+\") {\\n vec4 values = vec4(\\n getValue(batch, xR, xC, d),\\n getValue(batch, xR, xC + \"+s+\", d),\\n getValue(batch, xR, xC + 2 * \"+s+\", d),\\n initializationValue\\n );\\n\\n \"+v+\"\\n }\\n }\\n setOutput(\"+f+\");\\n }\\n \"}}}(),ReduceProgram=function(){return function(e,t){this.variableNames=[\"x\"];var n=e.windowSize,r=e.batchSize,o=e.inSize,a=Math.ceil(o/n);this.outputShape=[r,a];var i=\"0.0\",s=\"\";\"prod\"===t?i=\"1.0\":\"min\"===t?(i=\"1.0 / 0.0\",s=\"min\"):\"max\"===t&&(i=\"-1.0 / 0.0\",s=\"max\");var u=t+\"(\"+t+\"(\"+t+\"(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])\";\"sum\"===t?u=\"sumValue\":\"prod\"===t?u=\"prodValue\":\"all\"===t?u=\"allValue\":\"any\"===t&&(u=\"anyValue\");var l=4*Math.floor(n/4),c=n%4,p=\"\\n if (\"+(\"sum\"===t)+\") {\\n sumValue += dot(values, ones);\\n } else if (\"+(\"prod\"===t)+\") {\\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\\n prodValue *= tmp[0] * tmp[1];\\n } else {\\n minMaxValue = \"+s+\"(values, minMaxValue);\\n }\\n \",d=\"vec4\";\"all\"===t?(i=\"1.0\",p=\"\\n bool reducedAllValue = all(values);\\n float floatedReducedAllValue = float(reducedAllValue);\\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\\n \",d=\"bvec4\"):\"any\"===t&&(i=\"0.0\",p=\"\\n bool reducedAnyValue = any(values);\\n float floatedReducedAnyValue = float(reducedAnyValue);\\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\\n \",d=\"bvec4\");var h=\"\";o%n>0&&(h=\"\\n if (inIdx < 0 || inIdx >= \"+o+\") {\\n return initializationValue;\\n }\\n \"),this.userCode=\"\\n const float initializationValue = \"+i+\";\\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\\n\\n float getValue(int batch, int inIdx) {\\n \"+h+\"\\n return getX(batch, inIdx);\\n }\\n\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int batch = coords[0];\\n int outIdx = coords[1];\\n int inOffset = outIdx * \"+n+\";\\n\\n vec4 minMaxValue = vec4(\"+i+\");\\n float prodValue = 1.0;\\n float sumValue = 0.0;\\n float allValue = 1.0;\\n float anyValue = 0.0;\\n\\n for (int i = 0; i < \"+l+\"; i += 4) {\\n int inIdx = inOffset + i;\\n \"+d+\" values = \"+d+\"(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n getValue(batch, inIdx + 2),\\n getValue(batch, inIdx + 3)\\n );\\n\\n \"+p+\"\\n }\\n\\n int inIdx = inOffset + \"+l+\";\\n if (\"+(1===c)+\") {\\n \"+d+\" values = \"+d+\"(\\n getValue(batch, inIdx),\\n initializationValue,\\n initializationValue,\\n initializationValue\\n );\\n\\n \"+p+\"\\n } else if (\"+(2===c)+\") {\\n \"+d+\" values = \"+d+\"(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n initializationValue,\\n initializationValue\\n );\\n\\n \"+p+\"\\n } else if (\"+(3===c)+\") {\\n \"+d+\" values = \"+d+\"(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n getValue(batch, inIdx + 2),\\n initializationValue\\n );\\n\\n \"+p+\"\\n }\\n setOutput(\"+u+\");\\n }\\n \"}}(),ReshapePackedProgram=function(){return function(e,t){this.variableNames=[\"A\"],this.usesPackedTextures=!0,this.outputShape=e;for(var n=\"\",r=0;r<4;r++){var o=\"thisRC = rc;\";r%2==1&&(o+=\"thisRC.z += 1;\"),r>1&&(o+=\"thisRC.y += 1;\"),n+=\"\\n \"+o+\"\\n \"+(r>0?\"if(thisRC.y < rows && thisRC.z < cols){\":\"\")+\"\\n int flatIndex = getFlatIndex(thisRC);\\n\\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\\n\\n result[\"+r+\"] =\\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\\n \"+(r>0?\"}\":\"\")+\"\\n \"}this.userCode=\"\\n \"+getReshapedInputCoords(t)+\"\\n \"+getFlatIndex(e)+\"\\n\\n void main() {\\n ivec3 rc = getOutputCoords();\\n\\n vec4 result = vec4(0.);\\n\\n ivec3 thisRC;\\n int rows = \"+e[1]+\";\\n int cols = \"+e[2]+\";\\n\\n \"+n+\"\\n\\n setOutput(result);\\n }\\n \"}}();function getFlatIndex(e){return\"\\n int getFlatIndex(ivec3 coords) {\\n return round(\"+dotify([\"coords.x\",\"coords.y\",\"coords.z\"],computeStrides(e).map(function(e){return e.toString()}).concat([\"1.\"]))+\");\\n }\\n \"}function getReshapedInputCoords(e){return\"\\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\\n \"+getLogicalCoordinatesFromFlatIndex([\"r\",\"c\",\"d\"],e)+\"\\n return ivec3(r, c, d);\\n }\\n \"}var ResizeBilinearBackpropProgram=function(){return function(e,t,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,o=r[1],a=r[2],i=e.shape,s=i[1],u=i[2],l=[n&&s>1?o-1:o,n&&u>1?a-1:a],c=[n&&s>1?s-1:s,n&&u>1?u-1:u],p=l[0]/c[0],d=l[1]/c[1],h=1/p,f=1/d,m=2*Math.ceil(h)+2,g=2*Math.ceil(f)+2;this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n int r = coords[1];\\n int c = coords[2];\\n\\n float accumulator = 0.0;\\n\\n const float heightScale = float(\"+p+\");\\n const float widthScale = float(\"+d+\");\\n\\n const float invHeightScale = float(\"+h+\");\\n const float invWidthScale = float(\"+f+\");\\n\\n const int winHeight = int(\"+m+\");\\n const int winWidth = int(\"+g+\");\\n\\n // Compute bounds for where in dy we will look\\n float startRLerp = floor(float(r) * invHeightScale);\\n int startDyR = int(startRLerp - float(winHeight / 2));\\n\\n float startCLerp = floor(float(c) * invWidthScale);\\n int startDyC = int(startCLerp - float(winWidth / 2));\\n\\n // Loop over dy\\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\\n int dyR = dyROffset + startDyR;\\n\\n // Guard against the window exceeding the bounds of dy\\n if (dyR < 0 || dyR >= \"+s+\") {\\n continue;\\n }\\n\\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\\n int dyC = dyCOffset + startDyC;\\n\\n // Guard against the window exceeding the bounds of dy\\n if (dyC < 0 || dyC >= \"+u+\") {\\n continue;\\n }\\n\\n float dxR = float(dyR) * heightScale;\\n int topDxRIndex = int(floor(dxR));\\n int bottomDxRIndex = int(min(ceil(dxR), \"+(o-1)+\".0));\\n float dxRLerp = dxR - float(topDxRIndex);\\n float inverseDxRLerp = 1.0 - dxRLerp;\\n\\n float dxC = float(dyC) * widthScale;\\n int leftDxCIndex = int(floor(dxC));\\n int rightDxCIndex = int(min(ceil(dxC), \"+(a-1)+\".0));\\n float dxCLerp = dxC - float(leftDxCIndex);\\n float inverseDxCLerp = 1.0 - dxCLerp;\\n\\n if (r == topDxRIndex && c == leftDxCIndex) {\\n // topLeft\\n accumulator +=\\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\\n }\\n\\n if (r == topDxRIndex && c == rightDxCIndex) {\\n // topRight\\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\\n }\\n\\n if (r == bottomDxRIndex && c == leftDxCIndex) {\\n // bottomLeft\\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\\n }\\n\\n if (r == bottomDxRIndex && c == rightDxCIndex) {\\n // bottomRight\\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\\n }\\n }\\n }\\n // End loop over dy\\n\\n setOutput(accumulator);\\n }\\n \"}}(),ResizeBilinearProgram=function(){return function(e,t,n,r){this.variableNames=[\"A\"],this.outputShape=[];var o=e[0],a=e[1],i=e[2],s=e[3];this.outputShape=[o,t,n,s];var u=[r&&t>1?a-1:a,r&&n>1?i-1:i],l=[r&&t>1?t-1:t,r&&n>1?n-1:n];this.userCode=\"\\n const vec2 effectiveInputOverOutputRatioRC = vec2(\\n \"+u[0]/l[0]+\",\\n \"+u[1]/l[1]+\");\\n const vec2 inputShapeRC = vec2(\"+a+\".0, \"+i+\".0);\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n ivec2 yRC = coords.yz;\\n\\n // Fractional source index.\\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\\n\\n // Compute the four integer indices.\\n ivec2 sourceFloorRC = ivec2(sourceFracIndexRC);\\n ivec2 sourceCeilRC = ivec2(\\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\\n\\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\\n\\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\\n\\n float top = topLeft + (topRight - topLeft) * fracRC.y;\\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\\n float newValue = top + (bottom - top) * fracRC.x;\\n\\n setOutput(newValue);\\n }\\n \"}}(),ResizeNearestNeigborBackpropProgram=function(){return function(e,t,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=t.shape;var r=t.shape,o=r[1],a=r[2],i=e.shape,s=i[1],u=i[2],l=[n&&s>1?o-1:o,n&&u>1?a-1:a],c=[n&&s>1?s-1:s,n&&u>1?u-1:u],p=l[0]/c[0],d=l[1]/c[1],h=1/p,f=1/d,m=2*Math.ceil(h)+2,g=2*Math.ceil(f)+2;this.userCode=\"\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n int r = coords[1];\\n int c = coords[2];\\n\\n float accumulator = 0.0;\\n\\n const float heightScale = float(\"+p+\");\\n const float widthScale = float(\"+d+\");\\n\\n const float invHeightScale = float(\"+h+\");\\n const float invWidthScale = float(\"+f+\");\\n\\n const int winHeight = int(\"+m+\");\\n const int winWidth = int(\"+g+\");\\n\\n // Compute bounds for where in dy we will look\\n float startRLerp = floor(float(r) * invHeightScale);\\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\\n\\n float startCLerp = floor(float(c) * invWidthScale);\\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\\n\\n // Loop over dy\\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\\n int dyR = dyROffset + startDyR;\\n\\n // Guard against the window exceeding the bounds of dy\\n if (dyR < 0 || dyR >= \"+s+\") {\\n continue;\\n }\\n\\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\\n int dyC = dyCOffset + startDyC;\\n\\n // Guard against the window exceeding the bounds of dy\\n if (dyC < 0 || dyC >= \"+u+\") {\\n continue;\\n }\\n\\n float sourceFracRow =\\n float(\"+l[0]+\") *\\n (float(dyR) / float(\"+c[0]+\"));\\n\\n float sourceFracCol =\\n float(\"+l[1]+\") *\\n (float(dyC) / float(\"+c[1]+\"));\\n\\n int sourceNearestRow = int(min(\\n float(int(\"+o+\") - 1),\\n \"+n+\" ? float(round(sourceFracRow)) :\\n float(floor(sourceFracRow))));\\n\\n int sourceNearestCol = int(min(\\n float(int(\"+a+\") - 1),\\n \"+n+\" ? float(round(sourceFracCol)) :\\n float(floor(sourceFracCol))));\\n\\n if (r == sourceNearestRow && c == sourceNearestCol) {\\n accumulator += getDy(b, dyR, dyC, d);\\n }\\n }\\n }\\n // End loop over dy\\n\\n setOutput(accumulator);\\n }\\n \"}}(),ResizeNearestNeighborProgram=function(){return function(e,t,n,r){this.variableNames=[\"A\"],this.outputShape=[];var o=e[0],a=e[1],i=e[2],s=e[3];this.outputShape=[o,t,n,s];var u=[r&&t>1?a-1:a,r&&n>1?i-1:i],l=[r&&t>1?t-1:t,r&&n>1?n-1:n],c=r?\"0.5\":\"0.0\";this.userCode=\"\\n const vec2 effectiveInputOverOutputRatioRC = vec2(\\n \"+u[0]/l[0]+\",\\n \"+u[1]/l[1]+\");\\n const vec2 inputShapeRC = vec2(\"+a+\".0, \"+i+\".0);\\n\\n void main() {\\n ivec4 coords = getOutputCoords();\\n int b = coords[0];\\n int d = coords[3];\\n ivec2 yRC = coords.yz;\\n\\n // Fractional source index.\\n vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC;\\n\\n // Compute the coordinators of nearest neighbor point.\\n ivec2 sourceNearestRC = ivec2(\\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + \"+c+\")));\\n\\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\\n\\n setOutput(newValue);\\n }\\n \"}}(),ReverseProgram=function(){return function(e,t){this.variableNames=[\"x\"];var n=e.length;if(n>4)throw new Error(\"WebGL backend: Reverse of rank-\"+n+\" tensor is not yet supported\");if(this.outputShape=e,1!==n){var r=e.map(function(n,r){return function(n){return-1!==t.indexOf(n)&&1!==e[n]?e[n]+\" - coords[\"+n+\"] - 1\":\"coords[\"+n+\"]\"}(r)}).join(\",\"),o=getCoordsDataType(n);this.userCode=\"\\n void main() {\\n \"+o+\" coords = getOutputCoords();\\n setOutput(getX(\"+r+\"));\\n }\\n \"}else this.userCode=\"\\n void main() {\\n int coord = getOutputCoords();\\n setOutput(getX(\"+e[0]+\" - coord - 1));\\n }\\n \"}}(),ScatterProgram=function(){return function(e,t,n,r,o,a,i){void 0===i&&(i=!0),this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=a;var s=getCoordsDataType(o.length),u=getCoordsDataType(a.length),l=\"\";1===n?l=\"i\":2===n&&(l=\"i, j\");var c=\"getIndices(\"+l+\")\",p=\"\";1===r?p=\"i\":2===r&&(p=\"i, coords[1]\");var d=\"getUpdates(\"+p+\")\",h=t>1?\"strides[j]\":\"strides\";this.userCode=\"\\n \"+s+\" strides = \"+s+\"(\"+o+\");\\n\\n void main() {\\n \"+u+\" coords = getOutputCoords();\\n float sum = 0.0;\\n bool found = false;\\n for (int i = 0; i < \"+e+\"; i++) {\\n int flattenedIndex = 0;\\n for (int j = 0; j < \"+t+\"; j++) {\\n int index = round(\"+c+\");\\n flattenedIndex += index * \"+h+\";\\n }\\n if (flattenedIndex == coords[0]) {\\n sum += \"+d+\";\\n found = true;\\n }\\n }\\n setOutput(mix(getDefaultValue(), sum, float(found)));\\n }\\n \"}}(),SegmentOpProgram=function(){return function(e,t){this.variableNames=[\"x\",\"segmentIds\"];var n=e.windowSize,r=e.batchSize,o=e.inSize,a=e.numSegments,i=a*Math.ceil(o/n);this.outputShape=[r,i];var s=4*Math.floor(n/4),u=n%4,l=\"\\n sumValue += dot(values, filter);\\n \",c=\"\";o%n>0&&(c=\"\\n if (inIdx < 0 || inIdx >= \"+o+\") {\\n return initializationValue;\\n }\\n \");var p=\"\";o%n>0&&(p=\"\\n if (inIdx < 0 || inIdx >= \"+o+\") {\\n return -1.0;\\n }\\n \"),this.userCode=\"\\n const float initializationValue = 0.0;\\n\\n float getValue(int batch, int inIdx) {\\n \"+c+\"\\n return getX(batch, inIdx);\\n }\\n\\n float getSegmentIdAtIndex(int inIdx) {\\n \"+p+\"\\n return getSegmentIds(inIdx);\\n }\\n\\n void main() {\\n ivec2 coords = getOutputCoords();\\n int batch = coords[0];\\n int outIdx = coords[1];\\n int inOffset = int(floor(float(outIdx) / float(\\n \"+a+\")) * float(\"+n+\"));\\n int currentSeg = int(mod(float(outIdx), float(\"+a+\")));\\n\\n float sumValue = 0.0;\\n\\n for (int i = 0; i < \"+s+\"; i += 4) {\\n int inIdx = inOffset + i;\\n vec4 values = vec4(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n getValue(batch, inIdx + 2),\\n getValue(batch, inIdx + 3)\\n );\\n\\n vec4 filter = vec4(\\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\\n );\\n\\n \"+l+\"\\n }\\n\\n int inIdx = inOffset + \"+s+\";\\n if (\"+(1===u)+\") {\\n vec4 values = vec4(\\n getValue(batch, inIdx),\\n initializationValue,\\n initializationValue,\\n initializationValue\\n );\\n\\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\\n\\n vec4 filter = vec4(\\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\\n 0,\\n 0,\\n 0\\n );\\n\\n \"+l+\"\\n } else if (\"+(2===u)+\") {\\n vec4 values = vec4(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n initializationValue,\\n initializationValue\\n );\\n\\n vec4 filter = vec4(\\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\\n 0,\\n 0\\n );\\n\\n \"+l+\"\\n } else if (\"+(3===u)+\") {\\n vec4 values = vec4(\\n getValue(batch, inIdx),\\n getValue(batch, inIdx + 1),\\n getValue(batch, inIdx + 2),\\n initializationValue\\n );\\n\\n vec4 filter = vec4(\\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\\n 0\\n );\\n\\n \"+l+\"\\n }\\n setOutput(sumValue);\\n }\\n \"}}(),SelectProgram=function(){return function(e,t,n){var r,o;if(this.variableNames=[\"c\",\"a\",\"b\"],this.outputShape=t,n>4)throw Error(\"Where for rank \"+n+\" is not yet supported\");if(1===n)o=\"resRC\",r=\"resRC\";else{for(var a=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],i=[],s=[],u=0;u= 1.0) {\\n setOutput(getA(\"+o+\"));\\n } else {\\n setOutput(getB(\"+o+\"));\\n }\\n }\\n \"}}(),SliceProgram=function(){function e(e){this.variableNames=[\"source\"],this.outputShape=e,this.rank=e.length;var t=getCoordsDataType(this.rank),n=getCoords$1(this.rank);this.userCode=\"\\n uniform \"+t+\" start;\\n\\n void main() {\\n \"+t+\" sourceLoc = start + getOutputCoords();\\n setOutput(getSource(\"+n+\"));\\n }\\n \"}return e.prototype.getCustomSetupFunc=function(e){var t=this;if(e.length!==this.rank)throw Error(\"The rank (\"+this.rank+\") of the program must match the length of start (\"+e.length+\")\");return function(n,r){if(null!=t.startLoc||(t.startLoc=n.getUniformLocationNoThrow(r,\"start\"),null!=t.startLoc))if(1===t.rank)n.gl.uniform1i(t.startLoc,e[0]);else if(2===t.rank)n.gl.uniform2i(t.startLoc,e[0],e[1]);else if(3===t.rank)n.gl.uniform3i(t.startLoc,e[0],e[1],e[2]);else{if(4!==t.rank)throw Error(\"Slicing for rank \"+t.rank+\" is not yet supported\");n.gl.uniform4i(t.startLoc,e[0],e[1],e[2],e[3])}}},e}();function getCoords$1(e){if(1===e)return\"sourceLoc\";if(2===e)return\"sourceLoc.x, sourceLoc.y\";if(3===e)return\"sourceLoc.x, sourceLoc.y, sourceLoc.z\";if(4===e)return\"sourceLoc.x, sourceLoc.y, sourceLoc.z, sourceLoc.w\";throw Error(\"Slicing for rank \"+e+\" is not yet supported\")}var StridedSliceProgram=function(){return function(e,t,n,r){this.variableNames=[\"x\"];var o=n.filter(function(e,t){return-1===r.indexOf(t)});this.outputShape=o;var a=n.length,i=getCoordsDataType(n.length),s=getCoordsDataType(o.length),u=\"\";if(1===a)u=\"coords * strides + begin\";else{var l=0;u=n.map(function(e,t){return-1===r.indexOf(t)?(l++,1===o.length?\"coords * strides[\"+t+\"] + begin[\"+t+\"]\":\"coords[\"+(l-1)+\"] * strides[\"+t+\"] + begin[\"+t+\"]\"):\"begin[\"+t+\"]\"}).join(\",\")}this.userCode=\"\\n \"+i+\" begin = \"+i+\"(\"+e+\");\\n \"+i+\" strides = \"+i+\"(\"+t+\");\\n\\n void main() {\\n \"+s+\" coords = getOutputCoords();\\n setOutput(getX(\"+u+\"));\\n }\\n \"}}(),TextureManager=function(){function e(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}return e.prototype.acquireTexture=function(e,t,n){var r,o=getPhysicalFromLogicalTextureType(t,n),a=getKeyFromTextureShape(e,o,n);if(a in this.freeTextures||(this.freeTextures[a]=[]),a in this.usedTextures||(this.usedTextures[a]=[]),this.freeTextures[a].length>0){this.numFreeTextures--,this.numUsedTextures++,this.log();var i=this.freeTextures[a].shift();return this.usedTextures[a].push(i),i}return this.numUsedTextures++,this.log(),o===PhysicalTextureType.PACKED_2X2_FLOAT32?r=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):o===PhysicalTextureType.PACKED_2X2_FLOAT16?r=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):o===PhysicalTextureType.UNPACKED_FLOAT32?r=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):o===PhysicalTextureType.UNPACKED_FLOAT16?r=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):o===PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE&&(r=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[a].push(r),r},e.prototype.releaseTexture=function(e,t,n,r){if(null!=this.freeTextures){var o=getKeyFromTextureShape(t,getPhysicalFromLogicalTextureType(n,r),r);o in this.freeTextures||(this.freeTextures[o]=[]),this.freeTextures[o].push(e),this.numFreeTextures++,this.numUsedTextures--;var a=this.usedTextures[o],i=a.indexOf(e);if(i<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");a.splice(i,1),this.log()}},e.prototype.log=function(){if(this.logEnabled){var e=this.numFreeTextures+this.numUsedTextures;console.log(\"Free/Used\",this.numFreeTextures+\" / \"+this.numUsedTextures,\"(\"+e+\")\")}},e.prototype.getNumUsedTextures=function(){return this.numUsedTextures},e.prototype.getNumFreeTextures=function(){return this.numFreeTextures},e.prototype.dispose=function(){var e=this;if(null!=this.freeTextures){for(var t in this.freeTextures)this.freeTextures[t].forEach(function(t){e.gpgpu.deleteMatrixTexture(t)});for(var t in this.usedTextures)this.usedTextures[t].forEach(function(t){e.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0}},e}();function getPhysicalFromLogicalTextureType(e,t){if(e===TextureUsage.UPLOAD)return t?PhysicalTextureType.PACKED_2X2_FLOAT32:PhysicalTextureType.UNPACKED_FLOAT32;if(e===TextureUsage.RENDER||null==e)return t?ENV.get(\"WEBGL_RENDER_FLOAT32_ENABLED\")?PhysicalTextureType.PACKED_2X2_FLOAT32:PhysicalTextureType.PACKED_2X2_FLOAT16:ENV.get(\"WEBGL_RENDER_FLOAT32_ENABLED\")?PhysicalTextureType.UNPACKED_FLOAT32:PhysicalTextureType.UNPACKED_FLOAT16;if(e===TextureUsage.DOWNLOAD||e===TextureUsage.PIXELS)return PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE;throw new Error(\"Unknown logical texture type \"+e)}function getKeyFromTextureShape(e,t,n){return e[0]+\"_\"+e[1]+\"_\"+t+\"_\"+n}var TileProgram=function(){return function(e,t){this.variableNames=[\"A\"];for(var n=new Array(e.length),r=0;r5)throw Error(\"Tile for rank \"+t+\" is not yet supported\");if(1===t)return\"imod(resRC, \"+e[0]+\")\";for(var n=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\"],r=[],o=0;o6)throw Error(\"Transpose for rank \"+t+\" is not yet supported\");for(var n=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\",\"resRC.v\"],r=new Array(t),o=0;o= 0.0) ? x : (exp(x) - 1.0);\",SELU=\"\\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\\n // see: https://arxiv.org/abs/1706.02515\\n float scaleAlpha = \"+SELU_SCALEALPHA+\";\\n float scale = \"+SELU_SCALE+\";\\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\\n\";function STEP(e){return void 0===e&&(e=0),CHECK_NAN_SNIPPET$1+\"\\n return x > 0.0 ? 1.0 : float(\"+e+\");\\n \"}var NEG=\"return -x;\",CEIL=\"return ceil(x);\",FLOOR=\"return floor(x);\",SIGN=\"\\n if (isNaN(x)) { return 0.0; }\\n return sign(x);\\n\",ROUND=\"\\n // OpenGL ES does not support round function.\\n // The algorithm is based on banker's rounding.\\n float base = floor(x);\\n if ((x - base) < 0.5) {\\n return floor(x);\\n } else if ((x - base) > 0.5) {\\n return ceil(x);\\n } else {\\n if (mod(base, 2.0) == 0.0) {\\n return base;\\n } else {\\n return base + 1.0;\\n }\\n }\\n\",EXP=\"return exp(x);\",EXPM1=\"return exp(x) - 1.0;\",LOG=\"if (x < 0.0) return NAN;\\n return log(x);\",LOG1P=\"return log(1.0 + x);\",SQRT=\"return sqrt(x);\",RSQRT=\"return inversesqrt(x);\",SIGMOID=\"return 1.0 / (1.0 + exp(-1.0 * x));\",SOFTPLUS=\"\\n float epsilon = 1.1920928955078125e-7;\\n float threshold = log(epsilon) + 2.0;\\n\\n bool too_large = x > -threshold;\\n bool too_small = x < threshold;\\n\\n float result;\\n float exp_x = exp(x);\\n\\n if (too_large){\\n result = x;\\n }\\n else if (too_small){\\n result = exp_x;\\n }\\n else{\\n result = log(exp_x + 1.0);\\n }\\n return result;\\n\",SIN=CHECK_NAN_SNIPPET$1+\"\\n return sin(x);\\n\",COS=CHECK_NAN_SNIPPET$1+\"\\n return cos(x);\\n\",TAN=\"return tan(x);\",ASIN=\"return asin(x);\",ACOS=\"return acos(x);\",ATAN=CHECK_NAN_SNIPPET$1+\"\\n return atan(x);\\n\",SINH=\"\\n float e2x = exp(x);\\n return (e2x - 1.0 / e2x) / 2.0;\\n\",COSH=\"\\n float e2x = exp(-x);\\n return (e2x + 1.0 / e2x) / 2.0;\\n\",TANH=\"\\n float e2x = exp(-2.0 * abs(x));\\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\\n\",ASINH=\"return log(x + sqrt(x * x + 1.0));\",ACOSH=CHECK_NAN_SNIPPET$1+\"\\n if (x < 1.0) return NAN;\\n return log(x + sqrt(x * x - 1.0));\",ATANH=CHECK_NAN_SNIPPET$1+\"\\n if ((x < -1.0) || (x > 1.0)) return NAN;\\n return (log(1.0 + x) - log(1.0 - x)) / 2.0;\",ERF='\\n // Error function is calculated approximately with elementary function.\\n // See \"Handbook of Mathematical Functions with Formulas,\\n // Graphs, and Mathematical Tables\", Abramowitz and Stegun.\\n float p = '+ERF_P+\";\\n float a1 = \"+ERF_A1+\";\\n float a2 = \"+ERF_A2+\";\\n float a3 = \"+ERF_A3+\";\\n float a4 = \"+ERF_A4+\";\\n float a5 = \"+ERF_A5+\";\\n\\n float t = 1.0 / (1.0 + p * x);\\n return 1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x);\\n\",SQUARE=\"return x * x;\",RECIPROCAL=\"return 1.0 / x;\",LOGICAL_NOT=\"return float(!(x >= 1.0));\",TO_INT=\"return float(int(x));\",UnpackProgram=function(){return function(e){this.variableNames=[\"A\"],this.usesPackedTextures=!0,this.outputShape=e;var t=e.length,n=getChannels(\"rc\",t),r=getCoordsDataType(t),o=getSourceCoords$1(t,n),a=n.slice(-2),i=t<=1?\"rc\":\"vec2(\"+a.join(\",\")+\")\";this.userCode=\"\\n void main() {\\n \"+r+\" rc = getOutputCoords();\\n vec4 packedInput = getA(\"+o+\");\\n\\n setOutput(getChannel(packedInput, \"+i+\"));\\n }\\n \"}}();function concat1d_(e){return concat(e,0)}function concat2d_(e,t){return concat(e,t)}function concat3d_(e,t){return concat(e,t)}function concat4d_(e,t){return concat(e,t)}function concat_(e,t){void 0===t&&(t=0),assert(e.length>=1,\"Pass at least one tensor to concat\");var n=convertToTensorArray(e,\"tensors\",\"concat\");t=parseAxisParam(t,n[0].shape)[0];var r=computeOutShape(n.map(function(e){return e.shape}),t);if(0===sizeFromShape(r))return tensor([],r);if(1===(n=n.filter(function(e){return e.size>0})).length)return n[0];var o=n.map(function(e){return e.shape});assertParamsConsistent(o,t);var a=n;return ENV.engine.runKernel(function(e){return e.concat(n,t)},a,function(e){var n=o.map(function(e){return e[t]});return split$1(e,n,t).map(function(e){return function(){return e}})})}function split_(e,t,n){void 0===n&&(n=0);var r,o=convertToTensor(e,\"x\",\"split\");n=parseAxisParam(n,o.shape)[0],\"number\"==typeof t?(assert(o.shape[n]%t==0,\"Number of splits must evenly divide the axis.\"),r=Array(t).fill(o.shape[n]/t)):(assert(o.shape[n]===t.reduce(function(e,t){return e+t}),\"The sum of sizes must match the size of the axis dimension.\"),r=t);return ENV.engine.runKernel(function(e){return e.split(o,r,n)},{$x:o},function(e){return{$x:function(){return concat(e,n)}}})}var concat=op({concat_:concat_}),concat1d=op({concat1d_:concat1d_}),concat2d=op({concat2d_:concat2d_}),concat3d=op({concat3d_:concat3d_}),concat4d=op({concat4d_:concat4d_}),split$1=op({split_:split_}),commonjsGlobal=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}var alea=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function o(e,t){var n=new function(e){var t,n=this,r=(t=4022871197,function(e){e=e.toString();for(var n=0;n>>0,t=(r*=t)>>>0,t+=4294967296*(r-=t)}return 2.3283064365386963e-10*(t>>>0)});n.next=function(){var e=2091639*n.s0+2.3283064365386963e-10*n.c;return n.s0=n.s1,n.s1=n.s2,n.s2=e-(n.c=0|e)},n.c=1,n.s0=r(\" \"),n.s1=r(\" \"),n.s2=r(\" \"),n.s0-=r(e),n.s0<0&&(n.s0+=1),n.s1-=r(e),n.s1<0&&(n.s1+=1),n.s2-=r(e),n.s2<0&&(n.s2+=1),r=null}(e),o=t&&t.state,a=n.next;return a.int32=function(){return 4294967296*n.next()|0},a.double=function(){return a()+1.1102230246251565e-16*(2097152*a()|0)},a.quick=a,o&&(\"object\"==typeof o&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.alea=o}(0,e,!1)}),xor128=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function o(e,t){var n=new function(e){var t=this,n=\"\";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(\"object\"==typeof o&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.xor128=o}(0,e,!1)}),xorwow=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function o(e,t){var n=new function(e){var t=this,n=\"\";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:n+=e;for(var r=0;r>>4),t.next()}(e),o=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(\"object\"==typeof o&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.xorwow=o}(0,e,!1)}),xorshift7=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.x=e.x.slice(),t.i=e.i,t}function o(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.x,o=t.i;return e=r[o],n=(e^=e>>>7)^e<<24,n^=(e=r[o+1&7])^e>>>10,n^=(e=r[o+3&7])^e>>>3,n^=(e=r[o+4&7])^e<<7,e=r[o+7&7],n^=(e^=e<<13)^e<<9,r[o]=n,t.i=o+1&7,n},function(e,t){var n,r=[];if(t===(0|t))r[0]=t;else for(t=\"\"+t,n=0;n0;--n)e.next()}(t,e)}(e),o=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(o.x&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.xorshift7=o}(0,e,!1)}),xor4096=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function o(e,t){null==e&&(e=+new Date);var n=new function(e){var t=this;t.next=function(){var e,n,r=t.w,o=t.X,a=t.i;return t.w=r=r+1640531527|0,n=o[a+34&127],e=o[a=a+1&127],n^=n<<13,e^=e<<17,n^=n>>>15,e^=e>>>12,n=o[a]=n^e,t.i=a,n+(r^r>>>16)|0},function(e,t){var n,r,o,a,i,s=[],u=128;for(t===(0|t)?(r=t,t=null):(t+=\"\\0\",r=0,u=Math.max(u,t.length)),o=0,a=-32;a>>15,r^=r<<4,r^=r>>>13,a>=0&&(i=i+1640531527|0,o=0==(n=s[127&a]^=r+i)?o+1:0);for(o>=128&&(s[127&(t&&t.length||0)]=-1),o=127,a=512;a>0;--a)r=s[o+34&127],n=s[o=o+1&127],r^=r<<13,n^=n<<17,r^=r>>>15,n^=n>>>12,s[o]=r^n;e.w=i,e.X=s,e.i=o}(t,e)}(e),o=t&&t.state,a=function(){return(n.next()>>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(o.X&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.xor4096=o}(0,e,!1)}),tychei=createCommonjsModule(function(e){!function(e,t,n){function r(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function o(e,t){var n=new function(e){var t=this,n=\"\";t.next=function(){var e=t.b,n=t.c,r=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-r|0,r=r<<24^r>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-r|0,t.d=r<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):n+=e;for(var r=0;r>>0)/4294967296};return a.double=function(){do{var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},a.int32=n.next,a.quick=a,o&&(\"object\"==typeof o&&r(o,n),a.state=function(){return r(n,{})}),a}t&&t.exports?t.exports=o:n&&n.amd?n(function(){return o}):this.tychei=o}(0,e,!1)}),seedrandom=createCommonjsModule(function(e){!function(t,n){var r,o=this,a=256,i=6,s=\"random\",u=n.pow(a,i),l=n.pow(2,52),c=2*l,p=a-1;function d(e,d,g){var v=[],y=f(function e(t,n){var r,o=[],a=typeof t;if(n&&\"object\"==a)for(r in t)try{o.push(e(t[r],n-1))}catch(e){}return o.length?o:\"string\"==a?t:t+\"\\0\"}((d=1==d?{entropy:!0}:d||{}).entropy?[e,m(t)]:null==e?function(){try{var e;return r&&(e=r.randomBytes)?e=e(a):(e=new Uint8Array(a),(o.crypto||o.msCrypto).getRandomValues(e)),m(e)}catch(e){var n=o.navigator,i=n&&n.plugins;return[+new Date,o,i,o.screen,m(t)]}}():e,3),v),x=new function(e){var t,n=e.length,r=this,o=0,i=r.i=r.j=0,s=r.S=[];n||(e=[n++]);for(;o=c;)e/=2,t/=2,n>>>=1;return(e+n)/t};return T.int32=function(){return 0|x.g(4)},T.quick=function(){return x.g(4)/4294967296},T.double=T,f(m(x.S),t),(d.pass||g||function(e,t,r,o){return o&&(o.S&&h(o,x),e.state=function(){return h(x,{})}),r?(n[s]=e,t):e})(T,y,\"global\"in d?d.global:this==n,d.state)}function h(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function f(e,t){for(var n,r=e+\"\",o=0;o=1||0===i);var s=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*s,n=this.mean+this.stdDev*a*s,this.truncated&&!this.isValidTruncated(t)||(r=!0)}return this.truncated&&!this.isValidTruncated(n)||(this.nextVal=this.convertValue(n)),this.convertValue(t)},e.prototype.convertValue=function(e){return null==this.dtype||\"float32\"===this.dtype?e:Math.round(e)},e.prototype.isValidTruncated=function(e){return e<=this.upper&&e>=this.lower},e}();function clone_(e){var t=convertToTensor(e,\"x\",\"clone\",null);return ENV.engine.runKernel(function(e){return Tensor.make(t.shape,{dataId:t.dataId},t.dtype)},{$x:t},function(e){return{$x:function(){return e.toFloat()}}})}function eye_(e,t,n,r){void 0===r&&(r=\"float32\"),null==t&&(t=e);for(var o=buffer([e,t],r),a=e<=t?e:t,i=0;i2)throw new Error(\"Rank of probabilities must be 1 or 2, but is \"+i);n=n||Math.random();var s=1===i?o.as2D(1,-1):o,u=ENV.engine.runKernel(function(e){return e.multinomial(s,r,t,n)},{logits2D:s});return 1===i?u.as1D():u}function oneHot_(e,t,n,r){void 0===n&&(n=1),void 0===r&&(r=0);var o=convertToTensor(e,\"indices\",\"oneHot\",\"int32\");if(t<2)throw new Error(\"Error in oneHot: depth must be >=2, but it is \"+t);return ENV.engine.runKernel(function(e){return e.oneHot(o,t,n,r)},{$indices:o},function(e){return{$indices:function(){return zeros(o.shape,\"float32\")}}})}function fromPixels_(e,t){if(void 0===t&&(t=3),t>4)throw new Error(\"Cannot construct Tensor with more than 4 channels from pixels.\");return ENV.engine.fromPixels(e,t)}function toPixels(e,t){return __awaiter(this,void 0,void 0,function(){var n,r,o,a,i,s,u,l,c,p,d,h,f,m,g,v,y,x,T,w;return __generator(this,function(E){switch(E.label){case 0:if(n=convertToTensor(e,\"img\",\"toPixels\"),e instanceof Tensor||(n=n.toInt()),2!==n.rank&&3!==n.rank)throw new Error(\"toPixels only supports rank 2 or 3 tensors, got rank \"+n.rank+\".\");if(r=n.shape.slice(0,2),o=r[0],a=r[1],(i=2===n.rank?1:n.shape[2])>4||2===i)throw new Error(\"toPixels only supports depth of size 1, 3 or 4 but got \"+i);return s=n.min(),u=n.max(),[4,s.data()];case 1:return l=E.sent()[0],[4,u.data()];case 2:if(c=E.sent()[0],s.dispose(),u.dispose(),\"float32\"===n.dtype){if(l<0||c>1)throw new Error(\"Tensor values for a float32 Tensor must be in the range [0 - 1] but got range [\"+l+\" - \"+c+\"].\")}else{if(\"int32\"!==n.dtype)throw new Error(\"Unsupported type for toPixels: \"+n.dtype+\". Please use float32 or int32 tensors.\");if(l<0||c>255)throw new Error(\"Tensor values for a int32 Tensor must be in the range [0 - 255] but got range [\"+l+\" - \"+c+\"].\")}return[4,n.data()];case 3:for(p=E.sent(),d=\"float32\"===n.dtype?255:1,h=new Uint8ClampedArray(a*o*4),f=0;f=1,\"Pass at least one tensor to tf.stack\"),1===n.length)return n[0].expandDims(t);var r=n[0].rank,o=n[0].shape,a=n[0].dtype;assert(t<=r,\"Axis must be <= rank of the tensor\"),n.forEach(function(e){assertShapesMatch(o,e.shape,\"All tensors passed to stack must have matching shapes\")}),n.forEach(function(e){assert(a===e.dtype,\"All tensors passed to stack must have matching dtypes\")});var i=n.map(function(e){return e.expandDims(t)});return concat(i,t)}function batchToSpaceND_(e,t,n){var r=convertToTensor(e,\"x\",\"batchToSpaceND\"),o=t.reduce(function(e,t){return e*t});assert(r.rank>=1+t.length,\"input rank is \"+r.rank+\" but should be > than blockShape.length \"+t.length),assert(n.length===t.length,\"crops.length is \"+n.length+\" but should be equal to blockShape.length \"+t.length),assert(r.shape[0]%o==0,\"input tensor batch is \"+r.shape[0]+\" but is not divisible by the product of the elements of blockShape \"+t.join(\" * \")+\" === \"+o);return ENV.engine.runKernel(function(e){return e.batchToSpaceND(r,t,n)},{$x:r},function(e){return{$x:function(){return e.spaceToBatchND(t,n)}}})}function spaceToBatchND_(e,t,n){var r=convertToTensor(e,\"x\",\"spaceToBatchND\");assert(r.rank>=1+t.length,\"input rank \"+r.rank+\" should be > than [blockShape] \"+t.length),assert(n.length===t.length,\"paddings.shape[0] \"+n.length+\" must be equal to [blockShape] \"+t.length),assert(r.shape.reduce(function(e,r,o){return o>0&&o<=t.length?e&&(r+n[o-1][0]+n[o-1][1])%t[o-1]==0:e},!0),\"input spatial dimensions \"+r.shape.slice(1)+\" with paddings \"+n.toString()+\" must be divisible by blockShapes \"+t.toString());return ENV.engine.runKernel(function(e){return e.spaceToBatchND(r,t,n)},{$x:r},function(e){return{$x:function(){return e.batchToSpaceND(t,n)}}})}function unstack_(e,t){void 0===t&&(t=0);for(var n,r=convertToTensor(e,\"x\",\"unstack\"),o=r.shape[t],a=Array(r.rank-1).fill(0),i=0,s=0;s=0,\"Negative dimension size caused by overflow when multiplying\\n \"+o+\" and \"+t+\" for depthToSpace with input shape\\n \"+r.shape),assert(a*t>=0,\"Negative dimension size caused by overflow when multiplying\\n \"+a+\" and \"+t+\" for depthToSpace with input shape\\n \"+r.shape),assert(i%(t*t)==0,\"Dimension size must be evenly divisible by \"+t*t+\" but is \"+i+\" for depthToSpace with input shape \"+r.shape),ENV.engine.runKernel(function(e){return e.depthToSpace(r,t,n)},{$x:r})}function setdiff1dAsync_(e,t){return __awaiter(this,void 0,void 0,function(){var n,r,o,a,i,s,u,l,c,p;return __generator(this,function(d){switch(d.label){case 0:return n=convertToTensor(e,\"x\",\"setdiff1d\"),r=convertToTensor(t,\"y\",\"setdiff1d\"),assert(n.dtype===r.dtype,\"x and y should have the same dtype, but got x (\"+n.dtype+\") and y (\"+r.dtype+\").\"),assert(1===n.rank,\"x should be 1D tensor, but got x (\"+n.shape+\").\"),assert(1===r.rank,\"y should be 1D tensor, but got y (\"+r.shape+\").\"),[4,n.data()];case 1:return o=d.sent(),[4,r.data()];case 2:for(a=d.sent(),i=new Set(a),s=0,c=0;c0?this.gpgpu.beginQuery():{startMs:performance.now(),endMs:null}},e.prototype.endTimer=function(e){return ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(this.gpgpu.endQuery(),e):(e.endMs=performance.now(),e)},e.prototype.getQueryTime=function(e){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(n){return ENV.get(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?[2,this.gpgpu.waitForQueryAndGetTime(e)]:[2,(t=e).endMs-t.startMs]})})},e.prototype.disposeData=function(e){if(!this.pendingDisposal.has(e))if(this.pendingRead.has(e))this.pendingDisposal.add(e);else if(this.texData.has(e)){var t=this.texData.get(e),n=t.texture,r=t.texShape,o=t.usage,a=t.complexTensors,i=t.isPacked;null!=n&&this.releaseTexture(e,n,r,o,i),null!=a&&(a.real.dispose(),a.imag.dispose()),this.texData.delete(e)}},e.prototype.getTexture=function(e){return this.uploadToGPU(e),this.texData.get(e).texture},e.prototype.getCPUBackend=function(){return ENV.get(\"WEBGL_CPU_FORWARD\")?(null==this.cpuBackend&&(this.cpuBackend=ENV.findBackend(\"cpu\")),this.cpuBackend):null},e.prototype.shouldExecuteOnCPU=function(e,t){var n=this;return void 0===t&&(t=CPU_HANDOFF_SIZE_THRESHOLD),null!=this.getCPUBackend()&&e.every(function(e){return null==n.texData.get(e.dataId).texture&&e.sizeMATMUL_SHARED_DIM_THRESHOLD){n&&(e=e.transpose([0,2,1])),r&&(t=t.transpose([0,2,1]));var u=1===a?e:e.as3D(s,i,1),l=1===a?2:1,c=1===a?t.as3D(s,1,i):t;return this.multiply(u,c).sum(l,!0)}var p=upcastType(e.dtype,t.dtype);if(1===s){var d=e.as2D(e.shape[1],e.shape[2]),h=t.as2D(t.shape[1],t.shape[2]),f=new MatMulPackedProgram(d.shape,h.shape,[o,a],n,r),m=this.makePackedTensor(f.outputShape,p),g=this.compileAndRun(f,[d,h],m);return g.reshape([1,g.shape[0],g.shape[1]])}f=new MatMulProgram(e.shape,t.shape,n,r),m=this.makeOutputArray(f.outputShape,p);return this.compileAndRun(f,[e,t],m)},e.prototype.multiply=function(e,t){if(\"complex64\"===e.dtype){var n=this.texData.get(e.dataId),r=this.texData.get(t.dataId),o=new BinaryOpComplexProgram(COMPLEX_MULTIPLY.REAL,e.shape,t.shape),a=new BinaryOpComplexProgram(COMPLEX_MULTIPLY.IMAG,e.shape,t.shape),i=[this.makeComplexComponentTensorHandle(e,n.complexTensors.real),this.makeComplexComponentTensorHandle(e,n.complexTensors.imag),this.makeComplexComponentTensorHandle(t,r.complexTensors.real),this.makeComplexComponentTensorHandle(t,r.complexTensors.imag)],s=this.compileAndRun(o,i),u=this.compileAndRun(a,i),l=this.complex(s,u);return s.dispose(),u.dispose(),l}if(this.shouldExecuteOnCPU([e,t]))return this.cpuBackend.multiply(e,t);var c=new BinaryOpProgram(MUL,e.shape,t.shape),p=this.makeOutputArray(c.outputShape,e.dtype);return this.compileAndRun(c,[e,t],p)},e.prototype.batchNormalization=function(e,t,n,r,o,a){var i=[e,t,n],s=null;null!=a&&(s=a.shape,i.push(a));var u=null;if(null!=o&&(u=o.shape,i.push(o)),ENV.get(\"WEBGL_PACK_BATCHNORMALIZATION\")){var l=new BatchNormPackedProgram(e.shape,t.shape,n.shape,s,u,r);return this.compileAndRun(l,i)}var c=new BatchNormProgram(e.shape,t.shape,n.shape,s,u,r);return this.compileAndRun(c,i)},e.prototype.localResponseNormalization4D=function(e,t,n,r,o){var a=new LRNProgram(e.shape,t,n,r,o);return this.compileAndRun(a,[e])},e.prototype.LRNGrad=function(e,t,n,r,o,a,i){var s=new LRNGradProgram(t.shape,r,o,a,i);return this.compileAndRun(s,[t,n,e])},e.prototype.tile=function(e,t){var n=new TileProgram(e.shape,t);return this.compileAndRun(n,[e])},e.prototype.pad=function(e,t,n){var r=new PadProgram(e.shape,t,n);return this.compileAndRun(r,[e])},e.prototype.transpose=function(e,t){var n=new TransposeProgram(e.shape,t);return this.compileAndRun(n,[e])},e.prototype.gather=function(e,t,n){var r=new GatherProgram(e.shape,t.size,n);return this.compileAndRun(r,[e,t])},e.prototype.batchToSpaceND=function(e,t,n){assert(e.rank<=4,\"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet\");var r=t.reduce(function(e,t){return e*t}),o=getReshaped(e.shape,t,r),a=getPermuted(o.length,t.length),i=getReshapedPermuted(e.shape,t,r),s=getSliceBeginCoords(n,t.length),u=getSliceSize(i,n,t.length);return e.reshape(o).transpose(a).reshape(i).slice(s,u)},e.prototype.spaceToBatchND=function(e,t,n){assert(e.rank<=4,\"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet\");var r=t.reduce(function(e,t){return e*t}),o=[[0,0]];o.push.apply(o,n);for(var a=1+t.length;a1,\"blockSize should be > 1 for depthToSpace, but was: \"+t);var r=e.shape[0],o=(\"NHWC\"===n?e.shape[1]:e.shape[2])*t,a=(\"NHWC\"===n?e.shape[2]:e.shape[3])*t,i=(\"NHWC\"===n?e.shape[3]:e.shape[1])/(t*t),s=new DepthToSpaceProgram(\"NHWC\"===n?[r,o,a,i]:[r,i,o,a],t,n);return this.compileAndRun(s,[e])},e.prototype.split=function(e,t,n){return split(e,t,n)},e.prototype.scatterND=function(e,t,n){var r=calculateShapes(t,e,n),o=r.sliceRank,a=r.numUpdates,i=r.sliceSize,s=r.strides,u=r.outputSize,l=[u/i,i],c=e.reshape([a,o]),p=t.reshape([a,i]);if(0===u)return reshapeTensor(tensor([]),n);var d=scalar(0),h=new ScatterProgram(a,o,c.rank,p.rank,s,l);return this.compileAndRun(h,[p,c,d]).reshape(n)},e.prototype.sparseToDense=function(e,t,n,r){var o=calculateShapes(t,e,n),a=o.sliceRank,i=o.numUpdates,s=o.strides,u=o.outputSize,l=new ScatterProgram(i,a,e.rank,t.rank,s,[u,1],!1);return this.compileAndRun(l,[t,e,r]).reshape(n)},e.prototype.fft=function(e){return this.fftImpl(e,!1)},e.prototype.ifft=function(e){return this.fftImpl(e,!0)},e.prototype.fftImpl=function(e,t){var n=this.texData.get(e.dataId),r=new FFTProgram(COMPLEX_FFT.REAL,e.shape,t),o=new FFTProgram(COMPLEX_FFT.IMAG,e.shape,t),a=[this.makeComplexComponentTensorHandle(e,n.complexTensors.real),this.makeComplexComponentTensorHandle(e,n.complexTensors.imag)],i=this.compileAndRun(r,a),s=this.compileAndRun(o,a),u=this.complex(i,s).as2D(e.shape[0],e.shape[1]);return i.dispose(),s.dispose(),u},e.prototype.gatherND=function(e,t){var n=t.shape,r=n[n.length-1],o=prepareAndValidate(e,t),a=o[0],i=o[1],s=o[2],u=o[3],l=t.reshape([i,r]),c=e.reshape([e.size/s,s]),p=new GatherNDProgram(r,u,[i,s]);return this.compileAndRun(p,[c,l]).reshape(a)},e.prototype.makeOutputArray=function(e,t){return Tensor.make(e,{},t)},e.prototype.makePackedTensor=function(e,t){var n=Tensor.make(e,{},t);return this.texData.get(n.dataId).isPacked=!0,n},e.prototype.unpackTensor=function(e){var t=new UnpackProgram(e.shape);return this.compileAndRun(t,[e],Tensor.make(t.outputShape,{},e.dtype))},e.prototype.getBatchDim=function(e,t){return void 0===t&&(t=2),sizeFromShape(e.slice(0,e.length-t))},e.prototype.getRowsCols=function(e){if(0===e.length)throw Error(\"Cannot get rows and columns of an empty shape array.\");return[e.length>1?e[e.length-2]:1,e[e.length-1]]},e.prototype.packedReshape=function(e,t){var n=e.reshape([this.getBatchDim(e.shape)].concat(this.getRowsCols(e.shape))),r=[this.getBatchDim(t)].concat(this.getRowsCols(t)),o=new ReshapePackedProgram(r,n.shape);return this.compileAndRun(o,[n]).reshape(t)},e.prototype.compileAndRun=function(e,t,n,r,o){var a=this;if(void 0===o&&(o=!0),null==n&&(n=e.usesPackedTextures?this.makePackedTensor(e.outputShape,t[0].dtype):this.makeOutputArray(e.outputShape,t[0].dtype)),0===n.size)return this.texData.get(n.dataId).values=getTypedArrayFromDType(n.dtype,0),n;var i=t.map(function(t){if(\"complex64\"===t.dtype)throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");var n=a.texData.get(t.dataId);if(null==n.texture){if(!e.usesPackedTextures&&sizeFromShape(t.shape)<=ENV.get(\"WEBGL_SIZE_UPLOAD_UNIFORM\"))return{shape:t.shape,texData:null,isUniform:!0,uniformValues:a.readSync(t.dataId)};e.usesPackedTextures&&(n.isPacked=!0,n.shape=t.shape)}else if(!!n.isPacked!=!!e.usesPackedTextures){var r=void 0,o=void 0;n.isPacked?(r=new UnpackProgram(t.shape),o=a.compileAndRun(r,[t],Tensor.make(r.outputShape,{},t.dtype))):(r=new PackProgram(t.shape),o=a.compileAndRun(r,[t],a.makePackedTensor(t.shape,t.dtype))),n=a.texData.get(o.dataId),t=o}else if(n.isPacked&&!isReshapeFree(n.shape,t.shape)){a.delayedStorage=!1;var i=t.dataSync();a.delayedStorage=!0,t=Tensor.make(t.shape,{values:i},t.dtype),(n=a.texData.get(t.dataId)).isPacked=!0}return a.uploadToGPU(t.dataId),{shape:t.shape,texData:n,isUniform:!1}});this.uploadToGPU(n.dataId);var s,u={shape:n.shape,texData:this.texData.get(n.dataId),isUniform:!1},l=makeShaderKey(e,i,u),c=this.getAndSaveBinary(l,function(){return compileProgram(a.gpgpu,e,i,u)}),p=null!=this.activeTimers;if(p&&(s=this.startTimer()),runProgram(c,i,u,r),ENV.get(\"WEBGL_PAGING_ENABLED\")&&o&&this.numBytesInGPU>this.NUM_BYTES_BEFORE_PAGING)for(var d=this.numBytesInGPU-this.NUM_BYTES_BEFORE_PAGING;d>0&&this.lruDataGPU.length>0;){var h=this.lruDataGPU.shift(),f=this.texData.get(h),m=f.shape,g=f.dtype;d-=this.computeBytes(m,g),this.read(h)}return p&&(s=this.endTimer(s),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(s)})),ENV.get(\"WEBGL_LAZILY_UNPACK\")||!this.texData.get(n.dataId).isPacked||e.isPackShader?n:this.unpackTensor(n)},e.prototype.getAndSaveBinary=function(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]},e.prototype.getTextureManager=function(){return this.textureManager},e.prototype.dispose=function(){if(!this.disposed){for(var e in this.binaryCache)this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram);this.textureManager.dispose(),this.canvas.remove(),null!=this.fromPixels2DContext&&this.fromPixels2DContext.canvas.remove(),this.gpgpuCreatedLocally&&this.gpgpu.dispose(),this.disposed=!0}},e.prototype.floatPrecision=function(){var e=this;return tidy(function(){return e.abs(scalar(1e-8)).get()>0?32:16})},e.prototype.uploadToGPU=function(e){var t,n=this.texData.get(e),r=n.shape,o=n.values,a=n.texture,i=n.usage,s=n.isPacked;if(null==a){var u,l=null!=this.activeTimers;l&&(u=performance.now());var c=getTextureShapeFromLogicalShape(r,s);n.texShape=c;var p=this.acquireTexture(e,c,i,s);if(n.texture=p,null!=o){if(s){var d=this.getBatchDim(r),h=1,f=1;r.length&&(h=(t=this.getRowsCols(r))[0],f=t[1]),this.gpgpu.uploadMatrixToPackedTexture(p,d,h,f,c[0],c[1],typedArrayToFloat32(o))}else this.gpgpu.uploadMatrixToTexture(p,c[0],c[1],typedArrayToFloat32(o));n.values=null,l&&(this.uploadWaitMs+=performance.now()-u)}}else{ENV.get(\"WEBGL_PAGING_ENABLED\")&&this.lruDataGPU.indexOf(e)>=0&&(this.lruDataGPU.splice(this.lruDataGPU.indexOf(e),1),this.lruDataGPU.push(e))}},e.prototype.convertAndCacheOnCPU=function(e,t){var n=this.delayedStorage,r=this.texData.get(e),o=r.texture,a=r.texShape,i=r.dtype,s=r.usage,u=r.isPacked;return n&&null!=o&&(this.releaseTexture(e,o,a,s,u),r.texture=null,r.texShape=null),r.usage=TextureUsage.UPLOAD,null!=t&&(r.values=float32ToTypedArray(t,i)),r.values},e.prototype.releaseTexture=function(e,t,n,r,o){var a=this.texData.get(e),i=a.shape,s=a.dtype;if(ENV.get(\"WEBGL_PAGING_ENABLED\")){var u=this.lruDataGPU.indexOf(e);u>=0&&this.lruDataGPU.splice(u,1)}this.numBytesInGPU-=this.computeBytes(i,s),this.textureManager.releaseTexture(t,n,r,o)},e.prototype.acquireTexture=function(e,t,n,r){var o=this.texData.get(e),a=o.shape,i=o.dtype;return ENV.get(\"WEBGL_PAGING_ENABLED\")&&this.lruDataGPU.push(e),this.numBytesInGPU+=this.computeBytes(a,i),this.textureManager.acquireTexture(t,n,r)},e.prototype.computeBytes=function(e,t){return sizeFromShape(e)*bytesPerElement(t)},e}();function float32ToTypedArray(e,t){if(\"float32\"===t||\"complex64\"===t)return e;if(\"int32\"===t||\"bool\"===t){for(var n=\"int32\"===t?new Int32Array(e.length):new Uint8Array(e.length),r=0;r=2&&i.rank>=2&&a.rank===i.rank,\"Error in matMul: inputs must have the same rank of at least 2, got ranks \"+a.rank+\" and \"+i.rank+\".\"),assert(arraysEqual(p,d),\"Error in matMul: outer dimensions (\"+p+\") and (\"+d+\") of Tensors with shapes \"+a.shape+\" and \"+i.shape+\" must match.\"),assert(s===u,\"Error in matMul: inner shapes (\"+s+\") and (\"+u+\") of Tensors with shapes \"+a.shape+\" and \"+i.shape+\" and transposeA=\"+n+\" and transposeB=\"+r+\" must match.\");var m=a.shape.slice(0,-2).concat([l,c]),g=n?a.as3D(h,s,l):a.as3D(h,l,s),v=r?i.as3D(f,c,u):i.as3D(f,u,c);return ENV.engine.runKernel(function(e){return e.batchMatMul(g,v,n,r)},{$a:g,$b:v},function(e){return n||r?!n&&r?{$a:function(){return e.matMul(v,!1,!1)},$b:function(){return e.matMul(g,!0,!1)}}:n&&!r?{$a:function(){return v.matMul(e,!1,!0)},$b:function(){return g.matMul(e,!1,!1)}}:{$a:function(){return v.matMul(e,!0,!0)},$b:function(){return e.matMul(g,!0,!0)}}:{$a:function(){return e.matMul(v,!1,!0)},$b:function(){return g.matMul(e,!0,!1)}}}).reshape(m)}function outerProduct_(e,t){var n=convertToTensor(e,\"v1\",\"outerProduct\"),r=convertToTensor(t,\"v2\",\"outerProduct\");return assert(1===n.rank&&1===r.rank,\"Error in outerProduct: inputs must be rank 1, but got ranks \"+n.rank+\" and \"+r.rank+\".\"),n.as2D(-1,1).matMul(r.as2D(1,-1))}function dot_(e,t){var n=convertToTensor(e,\"t1\",\"dot\"),r=convertToTensor(t,\"t2\",\"dot\");assert(!(1!==n.rank&&2!==n.rank||1!==r.rank&&2!==r.rank),\"Error in dot: inputs must all be rank 1 or 2, but got ranks \"+n.rank+\" and \"+r.rank+\".\");var o=1===n.rank?n.size:n.shape[1],a=1===r.rank?r.size:r.shape[0];return assert(o===a,\"Error in dot: inner dimensions of inputs must match, but got \"+o+\" and \"+a+\".\"),1===n.rank&&1===r.rank?n.as2D(1,-1).matMul(r.as2D(-1,1)).asScalar():1===n.rank&&2===r.rank?n.as2D(1,-1).matMul(r.as2D(r.shape[0],r.shape[1])).as1D():2===n.rank&&1===r.rank?n.matMul(r.as2D(-1,1)).as1D():n.matMul(r.as2D(r.shape[0],r.shape[1]))}var matMul=op({matMul_:matMul_}),dot=op({dot_:dot_}),outerProduct=op({outerProduct_:outerProduct_});function conv1d_(e,t,n,r,o,a,i){void 0===o&&(o=\"NWC\"),void 0===a&&(a=1);var s=convertToTensor(e,\"x\",\"conv1d\"),u=convertToTensor(t,\"filter\",\"conv1d\"),l=s,c=!1;2===s.rank&&(c=!0,l=s.as3D(1,s.shape[0],s.shape[1])),assert(3===l.rank,\"Error in conv1d: input must be rank 3, but got rank \"+l.rank+\".\"),assert(3===u.rank,\"Error in conv1d: filter must be rank 3, but got rank \"+u.rank+\".\"),null!=i&&assert(isInt(r),\"Error in conv1d: pad must be an integer when using, dimRoundingMode \"+i+\" but got pad \"+r+\".\"),assert(l.shape[2]===u.shape[1],\"Error in conv1d: depth of input (\"+l.shape[2]+\") must match input depth for filter \"+u.shape[1]+\".\"),assert(eitherStridesOrDilationsAreOne(n,a),\"Error in conv1D: Either stride or dilation must be 1. Got stride \"+n+\" and dilation '\"+a+\"'\"),assert(\"NWC\"===o,\"Error in conv1d: got dataFormat of \"+o+\" but only NWC is currently supported.\");var p=u.as4D(1,u.shape[0],u.shape[1],u.shape[2]),d=l.as4D(l.shape[0],1,l.shape[1],l.shape[2]),h=conv2d(d,p,[1,n],r,\"NHWC\",[1,a],i);return c?h.as2D(h.shape[2],h.shape[3]):h.as3D(h.shape[0],h.shape[2],h.shape[3])}function conv2d_(e,t,n,r,o,a,i){void 0===o&&(o=\"NHWC\"),void 0===a&&(a=[1,1]);var s=convertToTensor(e,\"x\",\"conv2d\"),u=convertToTensor(t,\"filter\",\"conv2d\"),l=s,c=!1;3===s.rank&&(c=!0,l=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),assert(4===l.rank,\"Error in conv2d: input must be rank 4, but got rank \"+l.rank+\".\"),assert(4===u.rank,\"Error in conv2d: filter must be rank 4, but got rank \"+u.rank+\".\"),null!=i&&assert(isInt(r),\"Error in conv2d: pad must be an integer when using, dimRoundingMode \"+i+\" but got pad \"+r+\".\"),assert(l.shape[3]===u.shape[2],\"Error in conv2d: depth of input (\"+l.shape[3]+\") must match input depth for filter \"+u.shape[2]+\".\"),assert(eitherStridesOrDilationsAreOne(n,a),\"Error in conv2D: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+a+\"'\"),assert(\"NHWC\"===o,\"Error in conv2d: got dataFormat of \"+o+\" but only NHWC is currently supported.\");var p,d=computeConv2DInfo(l.shape,u.shape,n,a,r,i);if(1!==d.filterHeight||1!==d.filterWidth||1!==d.dilationHeight||1!==d.dilationWidth||1!==d.strideHeight||1!==d.strideWidth||\"SAME\"!==d.padInfo.type&&\"VALID\"!==d.padInfo.type){p=ENV.engine.runKernel(function(e){return e.conv2d(l,u,d)},{x:l,$filter:u},function(e){return assert(tupleValuesAreOne(a),\"Error in gradient of conv2D: dilation rates greater than 1 are notyet supported in gradients. Got dilations '\"+a+\"'\"),{x:function(){return conv2dDerInput_(l.shape,e,u,n,r)},$filter:function(){return conv2dDerFilter_(l,e,u.shape,n,r)}}})}else{var h=l.reshape([-1,d.inChannels]),f=u.reshape([d.inChannels,d.outChannels]);p=matMul(h,f).reshape(d.outShape)}return c?p.as3D(p.shape[1],p.shape[2],p.shape[3]):p}function conv2dDerInput_(e,t,n,r,o,a){assert(e.length===t.rank,\"Length of inShape (\"+e.length+\") and rank of dy (\"+t.rank+\") must match\");var i=e,s=t,u=!1;3===t.rank&&(u=!0,s=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]),i=[1,e[0],e[1],e[2]]);var l=i[3],c=s.shape[3];assert(4===i.length,\"Error in conv2dDerInput: inShape must be length 4, but got length \"+i.length+\".\"),assert(4===s.rank,\"Error in conv2dDerInput: dy must be rank 4, but got rank \"+s.rank),assert(4===n.rank,\"Error in conv2dDerInput: filter must be rank 4, but got rank \"+n.rank),assert(l===n.shape[2],\"Error in conv2dDerInput: depth of input (\"+l+\") must match input depth for filter \"+n.shape[2]+\".\"),assert(c===n.shape[3],\"Error in conv2dDerInput: depth of output (\"+c+\") must match output depth for filter \"+n.shape[3]+\".\"),null!=a&&assert(isInt(o),\"Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode \"+a+\" but got pad \"+o+\".\");var p=computeConv2DInfo(i,n.shape,r,1,o,a),d=ENV.engine.runKernel(function(e){return e.conv2dDerInput(s,n,p)},{dy4D:s,filter:n},function(e){return{dy4D:function(){return conv2d(e,n,r,o,\"NHWC\",1,a)},filter:function(){return conv2dDerFilter(e,s,n.shape,r,o,a)}}});return u?d.as3D(d.shape[1],d.shape[2],d.shape[3]):d}function conv2dDerFilter_(e,t,n,r,o,a){var i=e;3===e.rank&&(i=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var s=t;3===s.rank&&(s=t.as4D(1,t.shape[0],t.shape[1],t.shape[2])),assert(4===i.rank,\"Error in conv2dDerFilter: input must be rank 4, but got shape \"+i.shape+\".\"),assert(4===s.rank,\"Error in conv2dDerFilter: dy must be rank 4, but got shape \"+s.shape+\".\"),assert(4===n.length,\"Error in conv2dDerFilter: filterShape must be length 4, but got \"+n+\".\"),assert(i.shape[3]===n[2],\"Error in conv2dDerFilter: depth of input \"+i.shape[3]+\") must match input depth in filter (\"+n[2]+\".\"),assert(s.shape[3]===n[3],\"Error in conv2dDerFilter: depth of dy (\"+s.shape[3]+\") must match output depth for filter (\"+n[3]+\").\"),null!=a&&assert(isInt(o),\"Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode \"+a+\" but got pad \"+o+\".\");var u=computeConv2DInfo(i.shape,n,r,1,o,a);return ENV.engine.runKernel(function(e){return e.conv2dDerFilter(i,s,u)},{x4D:i,dy4D:s})}function conv2dTranspose_(e,t,n,r,o,a){return conv2dDerInput_(n,convertToTensor(e,\"x\",\"conv2dTranspose\"),convertToTensor(t,\"filter\",\"conv2dTranspose\"),r,o,a)}function depthwiseConv2d_(e,t,n,r,o,a,i){void 0===o&&(o=\"NHWC\"),void 0===a&&(a=[1,1]);var s=convertToTensor(e,\"x\",\"depthwiseConv2d\"),u=convertToTensor(t,\"filter\",\"depthwiseConv2d\"),l=s,c=!1;3===s.rank&&(c=!0,l=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),assert(4===l.rank,\"Error in depthwiseConv2d: input must be rank 4, but got rank \"+l.rank+\".\"),assert(4===u.rank,\"Error in depthwiseConv2d: filter must be rank 4, but got rank \"+u.rank+\".\"),assert(l.shape[3]===u.shape[2],\"Error in depthwiseConv2d: number of input channels (\"+l.shape[3]+\") must match the inChannels dimension in filter \"+u.shape[2]+\".\"),null==a&&(a=[1,1]),assert(eitherStridesOrDilationsAreOne(n,a),\"Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+a+\"'\"),null!=i&&assert(isInt(r),\"Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode \"+i+\" but got pad \"+r+\".\");var p=computeConv2DInfo(l.shape,u.shape,n,a,r,i,!0),d=ENV.engine.runKernel(function(e){return e.depthwiseConv2D(l,u,p)},{x:l,$filter:u},function(e){return assert(tupleValuesAreOne(a),\"Error in gradient of depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '\"+a+\"'\"),{x:function(){return depthwiseConv2dDerInput(l.shape,e,u,p)},$filter:function(){return depthwiseConv2dDerFilter(l,e,u.shape,p)}}});return c?d.as3D(d.shape[1],d.shape[2],d.shape[3]):d}function separableConv2d_(e,t,n,r,o,a,i){void 0===a&&(a=[1,1]),void 0===i&&(i=\"NHWC\");var s=convertToTensor(e,\"x\",\"separableConv2d\"),u=convertToTensor(t,\"depthwiseFilter\",\"separableConv2d\"),l=convertToTensor(n,\"pointwiseFilter\",\"separableConv2d\"),c=s,p=!1;if(3===s.rank&&(p=!0,c=s.as4D(1,s.shape[0],s.shape[1],s.shape[2])),\"NCHW\"===i)throw new Error(\"separableConv2d currently does not support dataFormat NCHW; only NHWC is supported\");assert(4===c.rank,\"Error in separableConv2d: input must be rank 4, but got rank \"+c.rank+\".\"),assert(4===u.rank,\"Error in separableConv2d: depthwise filter must be rank 4, but got rank \"+u.rank+\".\"),assert(4===l.rank,\"Error in separableConv2d: pointwise filter must be rank 4, but got rank \"+u.rank+\".\"),assert(1===l.shape[0],\"Error in separableConv2d: the first dimension of pointwise filter must be 1, but got \"+l.shape[0]+\".\"),assert(1===l.shape[1],\"Error in separableConv2d: the second dimension of pointwise filter must be 1, but got \"+l.shape[1]+\".\");var d=u.shape[2],h=u.shape[3];assert(l.shape[2]===d*h,\"Error in separableConv2d: the third dimension of pointwise filter must be \"+d*h+\", but got \"+l.shape[2]+\".\");var f=depthwiseConv2d(c,u,r,o,i,a),m=conv2d(f,l,1,\"valid\",i);return p?m.as3D(m.shape[1],m.shape[2],m.shape[3]):m}function parseTupleParam$1(e){return\"number\"==typeof e?[e,e,e]:2===e.length?[e[0],e[1],1]:e}function tupleValuesAreOne$1(e){var t=parseTupleParam$1(e),n=t[0],r=t[1],o=t[2];return 1===n&&1===r&&1===o}function eitherStridesOrDilationsAreOne$1(e,t){return tupleValuesAreOne$1(e)||tupleValuesAreOne$1(t)}function depthwiseConv2dDerInput(e,t,n,r){var o=t,a=!1;3===t.rank&&(a=!0,o=t.as4D(1,t.shape[0],t.shape[1],t.shape[2]));var i=ENV.engine.runKernel(function(e){return e.depthwiseConv2DDerInput(o,n,r)},{dy4D:o});return a?i.as3D(i.shape[1],i.shape[2],i.shape[3]):i}function depthwiseConv2dDerFilter(e,t,n,r){var o=e;3===e.rank&&(o=e.as4D(1,e.shape[0],e.shape[1],e.shape[2]));var a=t;return 3===a.rank&&(a=t.as4D(1,t.shape[0],t.shape[1],t.shape[2])),ENV.engine.runKernel(function(e){return e.depthwiseConv2DDerFilter(o,a,r)},{x4D:o,dy4D:a})}function conv3d_(e,t,n,r,o,a){void 0===o&&(o=\"NHWC\"),void 0===a&&(a=[1,1,1]);var i=convertToTensor(e,\"x\",\"conv3d\"),s=convertToTensor(t,\"filter\",\"conv3d\"),u=i,l=!1;4===i.rank&&(l=!0,u=i.as5D(1,i.shape[0],i.shape[1],i.shape[2],i.shape[3])),assert(5===u.rank,\"Error in conv3d: input must be rank 5, but got rank \"+u.rank+\".\"),assert(5===s.rank,\"Error in conv3d: filter must be rank 5, but got rank \"+s.rank+\".\"),assert(u.shape[4]===s.shape[3],\"Error in conv3d: depth of input (\"+u.shape[4]+\") must match input depth for filter \"+s.shape[3]+\".\"),assert(eitherStridesOrDilationsAreOne$1(n,a),\"Error in conv3D: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+a+\"'\"),assert(\"NHWC\"===o,\"Error in conv3d: got dataFormat of \"+o+\" but only NHWC is currently supported.\");var c=computeConv3DInfo(u.shape,s.shape,n,a,r),p=ENV.engine.runKernel(function(e){return e.conv3d(u,s,c)},{x:u,$filter:s},function(e){return assert(tupleValuesAreOne$1(a),\"Error in gradient of conv3D: dilation rates greater than 1 are notyet supported in gradients. Got dilations '\"+a+\"'\"),{x:function(){return conv3dDerInput_(u.shape,e,s,n,r)},$filter:function(){return conv3dDerFilter_(u,e,s.shape,n,r)}}});return l?p.as4D(p.shape[1],p.shape[2],p.shape[3],p.shape[4]):p}function conv3dDerInput_(e,t,n,r,o){assert(e.length===t.rank,\"Length of inShape (\"+e.length+\") and rank of dy (\"+t.rank+\") must match\");var a=e,i=t,s=!1;4===t.rank&&(s=!0,i=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]),a=[1,e[0],e[1],e[2],e[3]]);var u=a[4],l=i.shape[4];assert(5===a.length,\"Error in conv3dDerInput: inShape must be length 5, but got length \"+a.length+\".\"),assert(5===i.rank,\"Error in conv3dDerInput: dy must be rank 5, but got rank \"+i.rank),assert(5===n.rank,\"Error in conv3dDerInput: filter must be rank 5, but got rank \"+n.rank),assert(u===n.shape[3],\"Error in conv3dDerInput: depth of input (\"+u+\") must match input depth for filter \"+n.shape[3]+\".\"),assert(l===n.shape[4],\"Error in conv3dDerInput: depth of output (\"+l+\") must match output depth for filter \"+n.shape[4]+\".\");var c=computeConv3DInfo(a,n.shape,r,1,o),p=ENV.engine.runKernel(function(e){return e.conv3dDerInput(i,n,c)},{dy5D:i});return s?p.as4D(p.shape[1],p.shape[2],p.shape[3],p.shape[4]):p}function conv3dDerFilter_(e,t,n,r,o){var a=e;4===e.rank&&(a=e.as5D(1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]));var i=t;4===i.rank&&(i=t.as5D(1,t.shape[0],t.shape[1],t.shape[2],t.shape[3])),assert(5===a.rank,\"Error in conv3dDerFilter: input must be rank 5, but got shape \"+a.shape+\".\"),assert(5===i.rank,\"Error in conv3dDerFilter: dy must be rank 5, but got shape \"+i.shape+\".\"),assert(5===n.length,\"Error in conv3dDerFilter: filterShape must be length 5, but got \"+n+\".\"),assert(a.shape[4]===n[3],\"Error in conv3dDerFilter: depth of input \"+a.shape[4]+\") must match input depth in filter (\"+n[3]+\".\"),assert(i.shape[4]===n[4],\"Error in conv3dDerFilter: depth of dy (\"+i.shape[4]+\") must match output depth for filter (\"+n[4]+\").\");var s=computeConv3DInfo(a.shape,n,r,1,o);return ENV.engine.runKernel(function(e){return e.conv3dDerFilter(a,i,s)},{x5D:a,dy5D:i})}var conv1d=op({conv1d_:conv1d_}),conv2d=op({conv2d_:conv2d_}),conv3d=op({conv3d_:conv3d_}),conv2dDerFilter=op({conv2dDerFilter_:conv2dDerFilter_}),depthwiseConv2d=op({depthwiseConv2d_:depthwiseConv2d_}),separableConv2d=op({separableConv2d_:separableConv2d_}),conv2dTranspose=op({conv2dTranspose_:conv2dTranspose_});function reverse1d_(e){var t=convertToTensor(e,\"x\",\"reverse\");return assert(1===t.rank,\"Error in reverse1D: x must be rank 1 but got\\n rank \"+t.rank+\".\"),reverse(t,0)}function reverse2d_(e,t){var n=convertToTensor(e,\"x\",\"reverse\");return assert(2===n.rank,\"Error in reverse2D: x must be rank 2 but got\\n rank \"+n.rank+\".\"),reverse(n,t)}function reverse3d_(e,t){var n=convertToTensor(e,\"x\",\"reverse\");return assert(3===n.rank,\"Error in reverse3D: x must be rank 3 but got\\n rank \"+n.rank+\".\"),reverse(n,t)}function reverse4d_(e,t){var n=convertToTensor(e,\"x\",\"reverse\");return assert(4===n.rank,\"Error in reverse4D: x must be rank 4 but got\\n rank \"+n.rank+\".\"),reverse(n,t)}function reverse_(e,t){var n=convertToTensor(e,\"x\",\"reverse\");if(0===n.rank)return n.clone();var r=parseAxisParam(t,n.shape);return ENV.engine.runKernel(function(e){return e.reverse(n,r)},{$x:n},function(e){return{$x:function(){return e.reverse(r)}}}).reshapeAs(n)}var reverse=op({reverse_:reverse_}),reverse1d=op({reverse1d_:reverse1d_}),reverse2d=op({reverse2d_:reverse2d_}),reverse3d=op({reverse3d_:reverse3d_}),reverse4d=op({reverse4d_:reverse4d_});function maxPoolImpl_(e,t,n,r,o,a){var i=convertToTensor(e,\"x\",\"maxPool\"),s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),null==r&&(r=[1,1]),assert(4===s.rank,\"Error in maxPool: input must be rank 4 but got rank \"+s.rank+\".\"),assert(eitherStridesOrDilationsAreOne(n,r),\"Error in maxPool: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+r+\"'\"),null!=a&&assert(isInt(o),\"Error in maxPool: pad must be an integer when using, dimRoundingMode \"+a+\" but got pad \"+o+\".\");var l=computePool2DInfo(s.shape,t,n,r,o,a),c=ENV.engine.runKernel(function(e,t){return t(e.maxPool(s,l))},{x:s},function(e,a){var i=a[0];return{x:function(){return maxPoolBackprop(e,s,i,t,n,r,o)}}});return u?c.as3D(c.shape[1],c.shape[2],c.shape[3]):c}function maxPool_(e,t,n,r,o){return maxPoolImpl_(e,t,n,1,r,o)}function avgPoolImpl_(e,t,n,r,o,a){var i=convertToTensor(e,\"x\",\"avgPool\",\"float32\");null==r&&(r=[1,1]),assert(eitherStridesOrDilationsAreOne(n,r),\"Error in avgPool: Either strides or dilations must be 1. Got strides \"+n+\" and dilations '\"+r+\"'\");var s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),assert(4===s.rank,\"Error in avgPool: x must be rank 4 but got rank \"+s.rank+\".\"),null!=a&&assert(isInt(o),\"Error in avgPool: pad must be an integer when using, dimRoundingMode \"+a+\" but got pad \"+o+\".\");var l=computePool2DInfo(s.shape,t,n,r,o),c=ENV.engine.runKernel(function(e){return e.avgPool(s,l)},{x:s},function(e){return{x:function(){return avgPoolBackprop(e,s,t,n,r,o)}}});return c=c.cast(i.dtype),u?c.as3D(c.shape[1],c.shape[2],c.shape[3]):c}function avgPool_(e,t,n,r,o){return avgPoolImpl_(e,t,n,1,r,o)}function pool_(e,t,n,r,o,a){null==o&&(o=[1,1]),null==a&&(a=1),0===r&&(r=\"valid\");var i=convertToTensor(e,\"x\",\"maxPool\"),s=i,u=!1;3===i.rank&&(u=!0,s=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),assert(eitherStridesOrDilationsAreOne(a,o),\"Error in pool: Either strides or dilations must be 1. Got strides \"+a+\" and dilations '\"+o+\"'\");var l,c=computePool2DInfo(s.shape,t,a,o,r),p=[c.dilationHeight,c.dilationWidth];l=\"same\"===r?withSpaceToBatchBasePaddings([c.filterHeight,c.filterWidth],p):[[0,0],[0,0]];var d=1===p[0]&&1===p[1],h=requiredSpaceToBatchPaddings([c.inHeight,c.inWidth],p,l),f=h[0],m=h[1],g=d?r:\"valid\",v=d?s:spaceToBatchND(s,p,f),y=(\"avg\"===n?function(){return avgPoolImpl_(v,t,a,1,g)}:function(){return maxPoolImpl_(v,t,a,1,g)})(),x=d?y:batchToSpaceND(y,p,m);return u?x.as3D(x.shape[1],x.shape[2],x.shape[3]):x}function maxPoolBackprop(e,t,n,r,o,a,i,s){var u=convertToTensor(e,\"dy\",\"maxPoolBackprop\"),l=convertToTensor(t,\"input\",\"maxPoolBackprop\"),c=convertToTensor(n,\"output\",\"maxPoolBackprop\");assert(l.rank===u.rank,\"Rank of input (\"+l.rank+\") does not match rank of dy (\"+u.rank+\")\"),null==a&&(a=[1,1]),assert(eitherStridesOrDilationsAreOne(o,a),\"Error in maxPoolBackProp: Either strides or dilations must be 1. Got strides \"+o+\" and dilations '\"+a+\"'\"),assert(4===u.rank,\"Error in maxPoolBackprop: dy must be rank 4 but got rank \"+u.rank+\".\"),assert(4===l.rank,\"Error in maxPoolBackprop: input must be rank 4 but got rank \"+l.rank+\".\"),null!=s&&assert(isInt(i),\"Error in maxPoolBackprop: pad must be an integer when using, dimRoundingMode \"+s+\" but got pad \"+i+\".\");var p=computePool2DInfo(l.shape,r,o,a,i,s);return ENV.engine.runKernel(function(e){return e.maxPoolBackprop(u,l,c,p)},{$dy:u,$input:l})}function avgPoolBackprop(e,t,n,r,o,a){var i=convertToTensor(e,\"dy\",\"avgPoolBackprop\"),s=convertToTensor(t,\"input\",\"avgPoolBackprop\");assert(s.rank===i.rank,\"Rank of input (\"+s.rank+\") does not match rank of dy (\"+i.rank+\")\"),null==o&&(o=[1,1]),assert(eitherStridesOrDilationsAreOne(r,o),\"Error in avgPoolBackprop: Either strides or dilations must be 1. Got strides \"+r+\" and dilations '\"+o+\"'\");var u=s,l=i,c=!1;3===s.rank&&(c=!0,u=s.as4D(1,s.shape[0],s.shape[1],s.shape[2]),l=i.as4D(1,i.shape[0],i.shape[1],i.shape[2])),assert(4===l.rank,\"Error in avgPoolBackprop: dy must be rank 4 but got rank \"+l.rank+\".\"),assert(4===u.rank,\"Error in avgPoolBackprop: input must be rank 4 but got rank \"+u.rank+\".\");var p=computePool2DInfo(u.shape,n,r,o,a),d=ENV.engine.runKernel(function(e){return e.avgPoolBackprop(l,u,p)},{dy4D:l,input4D:u});return c?d.as3D(d.shape[1],d.shape[2],d.shape[3]):d}function requiredSpaceToBatchPaddings(e,t,n){var r=n.map(function(e){return e[0]}),o=n.map(function(e){return e[1]}),a=e.concat(r,o),i=t.map(function(e,t){return(e-a[t]%e)%e}),s=o.map(function(e,t){return e+i[t]});return[t.map(function(e,t){return[r[t],s[t]]}),t.map(function(e,t){return[0,i[t]]})]}function withSpaceToBatchBasePaddings(e,t){var n=e.map(function(e,n){return e+(e-1)*(t[n]-1)}).map(function(e){return e-1}),r=n.map(function(e){return Math.floor(e/2)}),o=n.map(function(e,t){return e-r[t]});return n.map(function(e,t){return[r[t],o[t]]})}var maxPool=op({maxPool_:maxPool_}),avgPool=op({avgPool_:avgPool_}),pool=op({pool_:pool_});function slice1d_(e,t,n){var r=convertToTensor(e,\"x\",\"slice1d\");return assert(1===r.rank,\"slice1d expects a rank-1 tensor, but got a rank-\"+r.rank+\" tensor\"),slice(r,[t],[n])}function slice2d_(e,t,n){var r=convertToTensor(e,\"x\",\"slice2d\");return assert(2===r.rank,\"slice2d expects a rank-2 tensor, but got a rank-\"+r.rank+\" tensor\"),slice(r,t,n)}function slice3d_(e,t,n){var r=convertToTensor(e,\"x\",\"slice3d\");return assert(3===r.rank,\"slice3d expects a rank-3 tensor, but got a rank-\"+r.rank+\" tensor\"),slice(r,t,n)}function slice4d_(e,t,n){var r=convertToTensor(e,\"x\",\"slice4d\");return assert(4===r.rank,\"slice4d expects a rank-4 tensor, but got a rank-\"+r.rank+\" tensor\"),slice(r,t,n)}function slice_(e,t,n){var r,o,a=convertToTensor(e,\"x\",\"slice\");if(0===a.rank)throw new Error(\"Slicing scalar is not possible\");r=\"number\"==typeof t?[t].concat(new Array(a.rank-1).fill(0)):t.length=0?e:(assert(-1===e,\"Bad value in size\"),a.shape[t]-r[t])}),assertParamsValid(a,r,o);var i=a.shape;return ENV.engine.runKernel(function(e){return e.slice(a,r,o)},{$x:a},function(e){for(var t=[],n=0;n0&&(t=t.sum(n)),t.reshape(r.shape)},$b:function(){var t=e,n=getReductionAxes(o.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(o.shape)}}})}function addN_(e){assert(Array.isArray(e),function(){return\"The argument passed to tf.addN() must be a list of tensors\"}),assert(e.length>=1,function(){return\"Must pass at least one tensor to tf.addN(), but got \"+e.length});var t=e.map(function(e,t){return convertToTensor(e,\"tensors\"+t,\"addN\")}),n=t[0];t.forEach(function(e){if(e.dtype!==n.dtype)throw new Error(\"All tensors passed to tf.addN() must have the same dtype\")}),t.forEach(function(e){if(!arraysEqual(e.shape,n.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});var r=t;return ENV.engine.runKernel(function(e){return e.addN(t)},r,function(e){var n={};return t.forEach(function(t,r){n[r]=function(){return e.clone()}}),n})}function addStrict_(e,t){var n=convertToTensor(e,\"a\",\"addStrict\"),r=convertToTensor(t,\"b\",\"addStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in addStrict: \"),n.add(r)}function sub_(e,t){var n,r=convertToTensor(e,\"a\",\"sub\"),o=convertToTensor(t,\"b\",\"sub\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.subtract(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=e,n=getReductionAxes(r.shape,a);return n.length>0&&(t=t.sum(n)),t.reshape(r.shape)},$b:function(){var t=e,n=getReductionAxes(o.shape,a);return n.length>0&&(t=t.sum(n)),t.neg().reshape(o.shape)}}})}function subStrict_(e,t){var n=convertToTensor(e,\"a\",\"subStrict\"),r=convertToTensor(t,\"b\",\"subStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in subStrict: \"),n.sub(r)}function pow_(e,t){var n=convertToTensor(e,\"base\",\"pow\"),r=convertToTensor(t,\"exp\",\"pow\"),o=assertAndGetBroadcastShape(n.shape,r.shape);e=n.cast(upcastType(n.dtype,r.dtype)),t=r.cast(upcastType(n.dtype,r.dtype));return ENV.engine.runKernel(function(e,t){return t(e.pow(n,r))},{$base:n,$exp:r},function(e,t){var a=t[0];return{$base:function(){var t=r.toFloat(),a=e.mul(t.mul(n.pow(t.sub(scalar(1))))),i=getReductionAxes(n.shape,o);return i.length>0&&(a=a.sum(i)),a.reshape(n.shape)},$exp:function(){var t=e.mul(a.mul(n.log()).toFloat()),i=getReductionAxes(r.shape,o);return i.length>0&&(t=t.sum(i)),t.reshape(r.shape)}}})}function powStrict_(e,t){return assertShapesMatch(e.shape,t.shape,\"Error in powStrict: \"),e.pow(t)}function mul_(e,t){var n,r=convertToTensor(e,\"a\",\"mul\"),o=convertToTensor(t,\"b\",\"mul\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.multiply(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=e.mul(o.toFloat()),n=getReductionAxes(r.shape,a);return n.length>0?t.sum(n).reshape(r.shape):t},$b:function(){var t=e.mul(r.toFloat()),n=getReductionAxes(o.shape,a);return n.length>0?t.sum(n).reshape(o.shape):t}}})}function mulStrict_(e,t){var n=convertToTensor(e,\"a\",\"mul\"),r=convertToTensor(t,\"b\",\"mul\");return assertShapesMatch(n.shape,r.shape,\"Error in multiplyStrict: \"),n.mul(r)}function div_(e,t){var n,r,o=convertToTensor(e,\"a\",\"div\"),a=convertToTensor(t,\"b\",\"div\");if(n=makeTypesMatch(o,a),o=n[0],a=n[1],\"int32\"===o.dtype&&\"int32\"===a.dtype)return floorDiv(o,a);r=function(e){return e.realDivide(o,a)};var i=assertAndGetBroadcastShape(o.shape,a.shape);return ENV.engine.runKernel(r,{$a:o,$b:a},function(e){return{$a:function(){var t=e.div(a.toFloat()),n=getReductionAxes(o.shape,i);return n.length>0?t.sum(n).reshape(o.shape):t},$b:function(){var t=e.mul(o.toFloat()),n=getReductionAxes(a.shape,i);n.length>0&&(t=t.sum(n).reshape(a.shape));var r=a.square();return t.div(r.toFloat()).neg()}}})}function floorDiv_(e,t){var n,r=convertToTensor(e,\"a\",\"floorDiv\"),o=convertToTensor(t,\"b\",\"floorDiv\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.floorDiv(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=e.div(o.toFloat()),n=getReductionAxes(r.shape,a);return n.length>0?t.sum(n).reshape(r.shape):t},$b:function(){var t=e.mul(r.toFloat()),n=getReductionAxes(o.shape,a);n.length>0&&(t=t.sum(n).reshape(o.shape));var i=o.square();return t.div(i.toFloat()).neg()}}})}function divStrict_(e,t){var n=convertToTensor(e,\"a\",\"div\"),r=convertToTensor(t,\"b\",\"div\");return assertShapesMatch(n.shape,r.shape,\"Error in divideStrict: \"),n.div(r)}function mod_(e,t){var n,r=convertToTensor(e,\"a\",\"mod\"),o=convertToTensor(t,\"b\",\"mod\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.mod(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=getReductionAxes(r.shape,a);return t.length>0?e.sum(t).reshape(r.shape):e},$b:function(){var t=e.mul(r.div(o).floor().neg()),n=getReductionAxes(o.shape,a);return n.length>0?t.sum(n).reshape(o.shape):t}}})}function modStrict_(e,t){var n=convertToTensor(e,\"a\",\"modStrict\"),r=convertToTensor(t,\"b\",\"modStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in modStrict: \"),n.mod(r)}function minimum_(e,t){var n,r=convertToTensor(e,\"a\",\"minimum\"),o=convertToTensor(t,\"b\",\"minimum\");n=makeTypesMatch(r,o),r=n[0],o=n[1],\"bool\"===r.dtype&&(r=r.toInt(),o=o.toInt()),assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.minimum(r,o)},{$a:r,$b:o},function(e){return{$a:function(){return e.mul(r.lessEqual(o).toFloat())},$b:function(){return e.mul(r.greater(o).toFloat())}}})}function minimumStrict_(e,t){var n=convertToTensor(e,\"a\",\"minimumStrict\"),r=convertToTensor(t,\"b\",\"minimumStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in minimumStrict: \"),n.minimum(r)}function maximum_(e,t){var n,r=convertToTensor(e,\"a\",\"maximum\"),o=convertToTensor(t,\"b\",\"maximum\");n=makeTypesMatch(r,o),r=n[0],o=n[1],\"bool\"===r.dtype&&(r=r.toInt(),o=o.toInt()),assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.maximum(r,o)},{$a:r,$b:o},function(e){return{$a:function(){return e.mul(r.greaterEqual(o).toFloat())},$b:function(){return e.mul(r.less(o).toFloat())}}})}function maximumStrict_(e,t){var n=convertToTensor(e,\"a\",\"maximumStrict\"),r=convertToTensor(t,\"b\",\"maximumStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in maximumStrict: \"),n.maximum(r)}function squaredDifference_(e,t){var n,r=convertToTensor(e,\"a\",\"squaredDifference\"),o=convertToTensor(t,\"b\",\"squaredDifference\");n=makeTypesMatch(r,o),r=n[0],o=n[1],assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.squaredDifference(r,o)},{$a:r,$b:o},function(e){var t=scalar(2);return{$a:function(){return e.mul(r.sub(o).mul(t))},$b:function(){return e.mul(o.sub(r).mul(t))}}})}function squaredDifferenceStrict_(e,t){var n=convertToTensor(e,\"a\",\"squaredDifferenceStrict\"),r=convertToTensor(t,\"b\",\"squaredDifferenceStrict\");return assertShapesMatch(n.shape,r.shape,\"Error in squaredDifferenceStrict: \"),n.squaredDifference(r)}function atan2_(e,t){var n,r=convertToTensor(e,\"a\",\"atan2\"),o=convertToTensor(t,\"b\",\"atan2\");n=makeTypesMatch(r,o),r=n[0],o=n[1];var a=assertAndGetBroadcastShape(r.shape,o.shape);return ENV.engine.runKernel(function(e){return e.atan2(r,o)},{$a:r,$b:o},function(e){return{$a:function(){var t=add(r.square(),o.square()),n=e.mul(o.div(t)),i=getReductionAxes(r.shape,a);return i.length>0&&(n=n.sum(i)),n.reshape(r.shape)},$b:function(){var t=add(r.square(),o.square()),n=neg(e.mul(r.div(t))),i=getReductionAxes(o.shape,a);return i.length>0&&(n=n.sum(i)),n.reshape(o.shape)}}})}var add=op({add_:add_}),addN=op({addN_:addN_}),addStrict=op({addStrict_:addStrict_}),atan2=op({atan2_:atan2_}),div=op({div_:div_}),divStrict=op({divStrict_:divStrict_}),floorDiv=op({floorDiv_:floorDiv_}),maximum=op({maximum_:maximum_}),maximumStrict=op({maximumStrict_:maximumStrict_}),minimum=op({minimum_:minimum_}),minimumStrict=op({minimumStrict_:minimumStrict_}),mod=op({mod_:mod_}),modStrict=op({modStrict_:modStrict_}),mul=op({mul_:mul_}),mulStrict=op({mulStrict_:mulStrict_}),pow=op({pow_:pow_}),powStrict=op({powStrict_:powStrict_}),squaredDifference=op({squaredDifference_:squaredDifference_}),squaredDifferenceStrict=op({squaredDifferenceStrict_:squaredDifferenceStrict_}),sub=op({sub_:sub_}),subStrict=op({subStrict_:subStrict_});function logicalNot_(e){var t=convertToTensor(e,\"x\",\"logicalNot\",\"bool\");return ENV.engine.runKernel(function(e){return e.logicalNot(t)},{$x:t})}function logicalAnd_(e,t){var n=convertToTensor(e,\"a\",\"logicalAnd\",\"bool\"),r=convertToTensor(t,\"b\",\"logicalAnd\",\"bool\");return assertAndGetBroadcastShape(n.shape,r.shape),ENV.engine.runKernel(function(e){return e.logicalAnd(n,r)},{$a:n,$b:r})}function logicalOr_(e,t){var n=convertToTensor(e,\"a\",\"logicalOr\",\"bool\"),r=convertToTensor(t,\"b\",\"logicalOr\",\"bool\");return assertAndGetBroadcastShape(n.shape,r.shape),ENV.engine.runKernel(function(e){return e.logicalOr(n,r)},{$a:n,$b:r})}function logicalXor_(e,t){var n=convertToTensor(e,\"a\",\"logicalXor\",\"bool\"),r=convertToTensor(t,\"b\",\"logicalXor\",\"bool\");return assertAndGetBroadcastShape(n.shape,r.shape),logicalOr(e,t).logicalAnd(logicalAnd(e,t).logicalNot())}function where_(e,t,n){var r=convertToTensor(t,\"a\",\"where\"),o=convertToTensor(n,\"b\",\"where\"),a=convertToTensor(e,\"condition\",\"where\",\"bool\");assertShapesMatch(r.shape,o.shape,\"Error in where: \"),1===a.rank?assert(a.shape[0]===r.shape[0],\"The first dimension of `a` must match the size of `condition`.\"):assertShapesMatch(a.shape,o.shape,\"Error in where: \");return ENV.engine.runKernel(function(e){return e.select(a,r,o)},{$condition:a,$a:r,$b:o},function(e){return{$condition:function(){return zerosLike(a).toFloat()},$a:function(){return e.mul(a.cast(e.dtype))},$b:function(){return e.mul(a.logicalNot().cast(e.dtype))}}})}function whereAsync_(e){return __awaiter(this,void 0,void 0,function(){var t,n,r;return __generator(this,function(o){switch(o.label){case 0:return[4,(t=convertToTensor(e,\"condition\",\"whereAsync\",\"bool\")).data()];case 1:return n=o.sent(),r=whereImpl(t.shape,n),e!==t&&t.dispose(),[2,r]}})})}var logicalAnd=op({logicalAnd_:logicalAnd_}),logicalNot=op({logicalNot_:logicalNot_}),logicalOr=op({logicalOr_:logicalOr_}),logicalXor=op({logicalXor_:logicalXor_}),where=op({where_:where_}),whereAsync=whereAsync_;function relu_(e){var t=convertToTensor(e,\"x\",\"relu\");if(\"bool\"===t.dtype)return t.toInt();return ENV.engine.runKernel(function(e){return e.relu(t)},{$x:t},function(e){var n=t.step();return{$x:function(){return e.mulStrict(n.toFloat())}}})}function elu_(e){var t=convertToTensor(e,\"x\",\"elu\");return ENV.engine.runKernel(function(e,n){return n(e.elu(t))},{$x:t},function(e,t){var n=t[0];return{$x:function(){return ENV.engine.runKernel(function(t){return t.eluDer(e,n)},{dy:e,y:n})}}})}function selu_(e){var t=convertToTensor(e,\"x\",\"selu\");return ENV.engine.runKernel(function(e){return e.selu(t)},{$x:t},function(e){return{$x:function(){var n=t.greater(scalar(0)),r=scalar(SELU_SCALEALPHA),o=scalar(SELU_SCALE),a=e.mul(o),i=e.mul(r).mul(t.toFloat().exp());return where(n,a,i)}}})}function leakyRelu_(e,t){void 0===t&&(t=.2);var n=convertToTensor(e,\"x\",\"leakyRelu\");return maximum(scalar(t).mul(n),n)}function prelu_(e,t){var n=convertToTensor(e,\"x\",\"prelu\"),r=convertToTensor(t,\"alpha\",\"prelu\"),o=scalar(0);return maximum(o,n).add(r.mul(minimum(o,n)))}var elu=op({elu_:elu_}),leakyRelu=op({leakyRelu_:leakyRelu_}),prelu=op({prelu_:prelu_}),relu=op({relu_:relu_}),selu=op({selu_:selu_});function transpose_(e,t){var n=convertToTensor(e,\"x\",\"transpose\");if(null==t&&(t=n.shape.map(function(e,t){return t}).reverse()),assert(n.rank===t.length,\"Error in transpose: rank of input \"+n.rank+\" must match length of perm \"+t+\".\"),t.forEach(function(e){assert(e>=0&&eo)throw new Error(\"'k' passed to topk() must be <= the last dimension (\"+o+\") but got \"+t);var a=ENV.engine.runKernel(function(e){return e.topk(r,t,n)},{$x:r});return{values:a[0],indices:a[1]}}var topk=op({topk_:topk_});function scatterND_(e,t,n){var r=convertToTensor(e,\"indices\",\"scatterND\",\"int32\"),o=convertToTensor(t,\"updates\",\"scatterND\");return validateInput(o,r,n),ENV.engine.runKernel(function(e){return e.scatterND(r,o,n)},{$indices:r,$updates:o})}var scatterND=op({scatterND_:scatterND_});function fft_(e){assert(\"complex64\"===e.dtype,\"The dtype for tf.spectral.fft() must be complex64 but got \"+e.dtype+\".\");var t=e.shape[e.shape.length-1],n=e.size/t,r=e.as2D(n,t);return ENV.engine.runKernel(function(e){return e.fft(r)},{input:e}).reshape(e.shape)}function ifft_(e){assert(\"complex64\"===e.dtype,\"The dtype for tf.spectral.ifft() must be complex64 but got \"+e.dtype+\".\");var t=e.shape[e.shape.length-1],n=e.size/t,r=e.as2D(n,t);return ENV.engine.runKernel(function(e){return e.ifft(r)},{input:e}).reshape(e.shape)}function rfft_(e){assert(\"float32\"===e.dtype,\"The dtype for rfft() must be real value but\\n got \"+e.dtype);var t=e.shape[e.shape.length-1],n=e.size/t,r=e.zerosLike(),o=complex(e,r).as2D(n,t),a=fft(o),i=Math.floor(t/2)+1,s=real(a),u=imag(a),l=s.split([i,t-i],s.shape.length-1),c=u.split([i,t-i],u.shape.length-1),p=e.shape.slice();return p[e.shape.length-1]=i,complex(l[0],c[0]).reshape(p)}function irfft_(e){var t=e.shape[e.shape.length-1],n=e.size/t;if(t<=2){var r=e.as2D(n,t),o=ifft(r);return real(o)}var a=[n,2*(t-1)],i=real(e).as2D(n,t),s=imag(e).as2D(n,t),u=i.slice([0,1],[n,t-2]).reverse(1),l=s.slice([0,1],[n,t-2]).reverse(1).mul(scalar(-1)),c=i.concat(u,1),p=s.concat(l,1);r=complex(c,p).as2D(a[0],a[1]),o=ifft(r);return real(o)}var fft=op({fft_:fft_}),ifft=op({ifft_:ifft_}),rfft=op({rfft_:rfft_}),irfft=op({irfft_:irfft_}),spectral_ops=Object.freeze({fft:fft,ifft:ifft,rfft:rfft,irfft:irfft});function validateInput$1(e,t,n,r){if(\"int32\"!==e.dtype)throw new Error(\"tf.sparseToDense() expects the indices to be int32 type, but the dtype was \"+e.dtype+\".\");if(e.rank>2)throw new Error(\"sparseIndices should be a scalar, vector, or matrix, but got shape \"+e.shape+\".\");var o=e.rank>0?e.shape[0]:1,a=e.rank>1?e.shape[1]:1;if(n.length!==a)throw new Error(\"outputShape has incorrect number of elements:, \"+n.length+\", should be: \"+a+\".\");var i=t.size;if(0!==t.rank&&(1!==t.rank||i!==o))throw new Error(\"sparseValues has incorrect shape \"+t.shape+\", should be [] or [\"+o+\"]\");if(t.dtype!==r.dtype)throw new Error(\"sparseValues.dtype must match defaultValues.dtype\")}function sparseToDense_(e,t,n,r){var o=convertToTensor(e,\"sparseIndices\",\"sparseToDense\",\"int32\"),a=convertToTensor(t,\"sparseValues\",\"sparseToDense\"),i=convertToTensor(r,\"defaultValue\",\"sparseToDense\",a.dtype);return validateInput$1(o,a,n,i),ENV.engine.runKernel(function(e){return e.sparseToDense(o,a,n,i)},{$sparseIndices:o,$sparseValues:a,$defaultValue:i})}var sparseToDense=op({sparseToDense_:sparseToDense_});function gatherND_(e,t){var n=convertToTensor(t,\"indices\",\"gatherND\",\"int32\"),r=convertToTensor(e,\"x\",\"gatherND\");return ENV.engine.runKernel(function(e){return e.gatherND(r,n)},{$x:r,$indices:n})}var Reduction,gatherND=op({gatherND_:gatherND_});function computeWeightedLoss_(e,t,n){void 0===n&&(n=Reduction.SUM_BY_NONZERO_WEIGHTS);var r=convertToTensor(e,\"losses\",\"computeWeightedLoss\"),o=null;null!=t&&(o=convertToTensor(t,\"weights\",\"computeWeightedLoss\"));var a=null==o?r:r.mul(o);if(n===Reduction.NONE)return a;if(n===Reduction.SUM)return a.sum();if(n===Reduction.MEAN){if(null==o)return a.mean();var i=sizeFromShape(r.shape)/sizeFromShape(o.shape),s=a.sum().div(o.sum());return i>1?s.div(scalar(i)):s}if(n===Reduction.SUM_BY_NONZERO_WEIGHTS){if(null==o)return a.sum().div(scalar(r.size));var u=o.mul(ones$1(r.shape)).notEqual(scalar(0)).sum().toFloat();return a.sum().div(u)}throw Error(\"Unknown reduction: \"+n)}function absoluteDifference_(e,t,n,r){void 0===r&&(r=Reduction.SUM_BY_NONZERO_WEIGHTS);var o=convertToTensor(e,\"labels\",\"absoluteDifference\"),a=convertToTensor(t,\"predictions\",\"absoluteDifference\"),i=null;null!=n&&(i=convertToTensor(n,\"weights\",\"absoluteDifference\")),assertShapesMatch(o.shape,a.shape,\"Error in absoluteDifference: \");var s=o.sub(a).abs();return computeWeightedLoss(s,i,r)}function meanSquaredError_(e,t,n,r){void 0===r&&(r=Reduction.SUM_BY_NONZERO_WEIGHTS);var o=convertToTensor(e,\"labels\",\"meanSquaredError\"),a=convertToTensor(t,\"predictions\",\"meanSquaredError\"),i=null;null!=n&&(i=convertToTensor(n,\"weights\",\"meanSquaredError\")),assertShapesMatch(o.shape,a.shape,\"Error in meanSquaredError: \");var s=o.squaredDifference(a);return computeWeightedLoss(s,i,r)}function cosineDistance_(e,t,n,r,o){void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"labels\",\"cosineDistance\"),i=convertToTensor(t,\"predictions\",\"cosineDistance\"),s=null;null!=r&&(s=convertToTensor(r,\"weights\",\"cosineDistance\")),assertShapesMatch(a.shape,i.shape,\"Error in cosineDistance: \");var u=scalar(1).sub(a.mul(i).sum(n,!0));return computeWeightedLoss(u,s,o)}function hingeLoss_(e,t,n,r){void 0===r&&(r=Reduction.SUM_BY_NONZERO_WEIGHTS);var o=convertToTensor(e,\"labels\",\"hingeLoss\"),a=convertToTensor(t,\"predictions\",\"hingeLoss\"),i=null;null!=n&&(i=convertToTensor(n,\"weights\",\"hingeLoss\")),assertShapesMatch(o.shape,a.shape,\"Error in hingeLoss: \");var s=scalar(1);o=scalar(2).mul(o).sub(s);var u=s.sub(o.mul(a)).relu();return computeWeightedLoss(u,i,r)}function logLoss_(e,t,n,r,o){void 0===r&&(r=1e-7),void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"labels\",\"logLoss\"),i=convertToTensor(t,\"predictions\",\"logLoss\"),s=null;null!=n&&(s=convertToTensor(n,\"weights\",\"logLoss\")),assertShapesMatch(a.shape,i.shape,\"Error in logLoss: \");var u=scalar(1),l=scalar(r),c=a.mul(i.add(l).log()).neg().sub(u.sub(a).mul(u.sub(i).add(l).log()));return computeWeightedLoss(c,s,o)}function sigmoidCrossEntropyWithLogits_(e,t){var n=convertToTensor(e,\"labels\",\"sigmoidCrossEntropyWithLogits\"),r=convertToTensor(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");assertShapesMatch(n.shape,r.shape,\"Error in sigmoidCrossEntropyWithLogits: \");var o=r.relu(),a=r.mul(n),i=r.abs().neg().exp().log1p();return o.sub(a).add(i)}function sigmoidCrossEntropy_(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=convertToTensor(t,\"logits\",\"sigmoidCrossEntropy\"),s=null;if(null!=n&&(s=convertToTensor(n,\"weights\",\"sigmoidCrossEntropy\")),assertShapesMatch(a.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),r>0){var u=scalar(r),l=scalar(1),c=scalar(.5);a=a.mul(l.sub(u)).add(c.mul(u))}var p=sigmoidCrossEntropyWithLogits_(a,i);return computeWeightedLoss(p,s,o)}function huberLoss_(e,t,n,r,o){void 0===r&&(r=1),void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"labels\",\"huberLoss\"),i=convertToTensor(t,\"predictions\",\"huberLoss\"),s=null;null!=n&&(s=convertToTensor(n,\"weights\",\"huberLoss\")),assertShapesMatch(a.shape,i.shape,\"Error in huberLoss: \");var u=scalar(r),l=i.sub(a).abs(),c=minimum(l,u),p=l.sub(c),d=scalar(.5).mul(c.square()).add(u.mul(p));return computeWeightedLoss(d,s,o)}function softmaxCrossEntropyWithLogits_(e,t,n){if(void 0===n&&(n=-1),-1===n&&(n=t.rank-1),n!==t.rank-1)throw Error(\"Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank \"+t.rank+\" and dim was \"+n);return customGrad(function(e,t){var r=t.logSumExp([n],!0),o=t.toFloat().sub(r);return{value:o.mul(e).neg().sum([n]),gradFunc:function(t){var r=expandShapeToKeepDim(t.shape,[n]);return[t.reshape(r).mul(e.toFloat().sub(o.exp())),t.reshape(r).mul(o.exp().sub(e.toFloat()))]}}})(e,t)}function softmaxCrossEntropy_(e,t,n,r,o){void 0===r&&(r=0),void 0===o&&(o=Reduction.SUM_BY_NONZERO_WEIGHTS);var a=convertToTensor(e,\"onehotLabels\",\"softmaxCrossEntropy\"),i=convertToTensor(t,\"logits\",\"softmaxCrossEntropy\"),s=null;if(null!=n&&(s=convertToTensor(n,\"weights\",\"softmaxCrossEntropy\")),assertShapesMatch(a.shape,i.shape,\"Error in softmaxCrossEntropy: \"),r>0){var u=scalar(r),l=scalar(1),c=scalar(a.shape[1]);a=a.mul(l.sub(u)).add(u.div(c))}var p=softmaxCrossEntropyWithLogits_(a,i);return computeWeightedLoss(p,s,o)}!function(e){e[e.NONE=0]=\"NONE\",e[e.MEAN=1]=\"MEAN\",e[e.SUM=2]=\"SUM\",e[e.SUM_BY_NONZERO_WEIGHTS=3]=\"SUM_BY_NONZERO_WEIGHTS\"}(Reduction||(Reduction={}));var absoluteDifference=op({absoluteDifference_:absoluteDifference_}),computeWeightedLoss=op({computeWeightedLoss_:computeWeightedLoss_}),cosineDistance=op({cosineDistance_:cosineDistance_}),hingeLoss=op({hingeLoss_:hingeLoss_}),huberLoss=op({huberLoss_:huberLoss_}),logLoss=op({logLoss_:logLoss_}),meanSquaredError=op({meanSquaredError_:meanSquaredError_}),sigmoidCrossEntropy=op({sigmoidCrossEntropy_:sigmoidCrossEntropy_}),softmaxCrossEntropy=op({softmaxCrossEntropy_:softmaxCrossEntropy_}),loss_ops=Object.freeze({get Reduction(){return Reduction},absoluteDifference:absoluteDifference,computeWeightedLoss:computeWeightedLoss,cosineDistance:cosineDistance,hingeLoss:hingeLoss,huberLoss:huberLoss,logLoss:logLoss,meanSquaredError:meanSquaredError,sigmoidCrossEntropy:sigmoidCrossEntropy,softmaxCrossEntropy:softmaxCrossEntropy});function gramSchmidt_(e){var t;if(Array.isArray(e)){t=!1,assert(null!=e&&e.length>0,\"Gram-Schmidt process: input must not be null, undefined, or empty\");for(var n=e[0].shape[0],r=1;r0)for(var n=0;n= 2, but got rank \"+e.rank);if(2===e.rank)return qr2d(e,t);var n=e.shape.slice(0,e.shape.length-2).reduce(function(e,t){return e*t}),r=[],o=[];return unstack(e.reshape([n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0).forEach(function(e){var n=qr2d(e,t),a=n[0],i=n[1];r.push(a),o.push(i)}),[stack(r,0).reshape(e.shape),stack(o,0).reshape(e.shape)]}function qr2d(e,t){return void 0===t&&(t=!1),ENV.engine.tidy(function(){if(2!==e.shape.length)throw new Error(\"qr2d() requires a 2D Tensor, but got a \"+e.shape.length+\"D Tensor.\");for(var n=e.shape[0],r=e.shape[1],o=eye(n),a=e.clone(),i=tensor2d([[1]],[1,1]),s=i.clone(),u=n>=r?r:n,l=function(e){var t,u=a,l=s,c=o;t=ENV.engine.tidy(function(){var t=a.slice([e,e],[n-e,1]),u=t.norm(),l=a.slice([e,e],[1,1]),c=l.sign().neg(),p=l.sub(c.mul(u)),d=t.div(p);s=1===d.shape[0]?i.clone():i.concat(d.slice([1,0],[d.shape[0]-1,d.shape[1]]),0);var h=c.matMul(p).div(u).neg(),f=a.slice([e,0],[n-e,r]),m=h.mul(s);a=0===e?f.sub(m.matMul(s.transpose().matMul(f))):a.slice([0,0],[e,r]).concat(f.sub(m.matMul(s.transpose().matMul(f))),0);var g=o.slice([0,e],[n,o.shape[1]-e]);return o=0===e?g.sub(g.matMul(s).matMul(m.transpose())):o.slice([0,0],[n,e]).concat(g.sub(g.matMul(s).matMul(m.transpose())),1),[s,a,o]}),s=t[0],a=t[1],o=t[2],dispose([u,l,c])},c=0;cr&&(o=o.slice([0,0],[n,r]),a=a.slice([0,0],[r,r])),[o,a]})}var gramSchmidt=op({gramSchmidt_:gramSchmidt_}),qr=op({qr_:qr_}),linalg_ops=Object.freeze({gramSchmidt:gramSchmidt,qr:qr});function resizeBilinear_(e,t,n){void 0===n&&(n=!1);var r=convertToTensor(e,\"images\",\"resizeBilinear\");assert(3===r.rank||4===r.rank,\"Error in resizeBilinear: x must be rank 3 or 4, but got rank \"+r.rank+\".\"),assert(2===t.length,\"Error in resizeBilinear: new shape must 2D, but got shape \"+t+\".\");var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=t[0],s=t[1],u=ENV.engine.runKernel(function(e,t){return e.resizeBilinear(o,i,s,n)},{batchImages:o},function(e,t){return{batchImages:function(){return ENV.engine.runKernel(function(t){return t.resizeBilinearBackprop(e,o,n)},{})}}});return a?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}function resizeNearestNeighbor_(e,t,n){void 0===n&&(n=!1);var r=convertToTensor(e,\"images\",\"resizeNearestNeighbor\");assert(3===r.rank||4===r.rank,\"Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank \"+r.rank+\".\"),assert(2===t.length,\"Error in resizeNearestNeighbor: new shape must 2D, but got shape \"+t+\".\"),assert(\"float32\"===r.dtype||\"int32\"===r.dtype,\"`images` must have `int32` or `float32` as dtype\");var o=r,a=!1;3===r.rank&&(a=!0,o=r.as4D(1,r.shape[0],r.shape[1],r.shape[2]));var i=t[0],s=t[1],u=ENV.engine.runKernel(function(e,t){return e.resizeNearestNeighbor(o,i,s,n)},{batchImages:o},function(e,t){return{batchImages:function(){return ENV.engine.runKernel(function(t){return t.resizeNearestNeighborBackprop(e,o,n)},{})}}});return a?u.as3D(u.shape[1],u.shape[2],u.shape[3]):u}function nonMaxSuppression_(e,t,n,r,o){void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY);var a=convertToTensor(e,\"boxes\",\"nonMaxSuppression\"),i=convertToTensor(t,\"scores\",\"nonMaxSuppression\"),s=nonMaxSuppSanityCheck(a,i,n,r,o);return n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold,ENV.engine.runKernel(function(e){return e.nonMaxSuppression(a,i,n,r,o)},{$boxes:a})}function nonMaxSuppressionAsync_(e,t,n,r,o){return void 0===r&&(r=.5),void 0===o&&(o=Number.NEGATIVE_INFINITY),__awaiter(this,void 0,void 0,function(){var a,i,s,u,l,c;return __generator(this,function(p){switch(p.label){case 0:return a=convertToTensor(e,\"boxes\",\"nonMaxSuppressionAsync\"),i=convertToTensor(t,\"scores\",\"nonMaxSuppressionAsync\"),s=nonMaxSuppSanityCheck(a,i,n,r,o),n=s.maxOutputSize,r=s.iouThreshold,o=s.scoreThreshold,[4,a.data()];case 1:return u=p.sent(),[4,i.data()];case 2:return l=p.sent(),c=nonMaxSuppressionImpl(u,l,n,r,o),a!==e&&a.dispose(),i!==t&&i.dispose(),[2,c]}})})}function nonMaxSuppSanityCheck(e,t,n,r,o){null==r&&(r=.5),null==o&&(o=Number.NEGATIVE_INFINITY);var a=e.shape[0];return n=Math.min(n,a),assert(0<=r&&r<=1,\"iouThreshold must be in [0, 1], but was '\"+r+\"'\"),assert(2===e.rank,\"boxes must be a 2D tensor, but was of rank '\"+e.rank+\"'\"),assert(4===e.shape[1],\"boxes must have 4 columns, but 2nd dimension was \"+e.shape[1]),assert(1===t.rank,\"scores must be a 1D tensor\"),assert(t.shape[0]===a,\"scores has incompatible shape with boxes. Expected \"+a+\", but was \"+t.shape[0]),{maxOutputSize:n,iouThreshold:r,scoreThreshold:o}}function cropAndResize_(e,t,n,r,o,a){var i=convertToTensor(e,\"image\",\"cropAndResize\",\"float32\"),s=convertToTensor(t,\"boxes\",\"cropAndResize\",\"float32\"),u=convertToTensor(n,\"boxInd\",\"cropAndResize\",\"int32\");o=o||\"bilinear\",a=a||0;var l=s.shape[0];assert(4===i.rank,\"Error in cropAndResize: image must be rank 4,but got rank \"+i.rank+\".\"),assert(2===s.rank&&4===s.shape[1],\"Error in cropAndResize: boxes must be have size [\"+l+\",4] but had shape \"+s.shape+\".\"),assert(1===u.rank&&u.shape[0]===l,\"Error in cropAndResize: boxInd must be have size [\"+l+\"] but had shape \"+s.shape+\".\"),assert(2===r.length,\"Error in cropAndResize: cropSize must be of length 2, but got length \"+r.length+\".\"),assert(r[0]>=1&&r[1]>=1,\"cropSize must be atleast [1,1], but was \"+r),assert(\"bilinear\"===o||\"nearest\"===o,\"method must be bilinear or nearest, but was \"+o);return ENV.engine.runKernel(function(e,t){return e.cropAndResize(i,s,u,r,o,a)},{$image:i,$boxes:s})}var resizeBilinear=op({resizeBilinear_:resizeBilinear_}),resizeNearestNeighbor=op({resizeNearestNeighbor_:resizeNearestNeighbor_}),nonMaxSuppression=op({nonMaxSuppression_:nonMaxSuppression_}),nonMaxSuppressionAsync=nonMaxSuppressionAsync_,cropAndResize=cropAndResize_,image_ops=Object.freeze({resizeBilinear:resizeBilinear,resizeNearestNeighbor:resizeNearestNeighbor,nonMaxSuppression:nonMaxSuppression,nonMaxSuppressionAsync:nonMaxSuppressionAsync,cropAndResize:cropAndResize}),ops=Object.freeze({image:image_ops,linalg:linalg_ops,losses:loss_ops,spectral:spectral_ops,op:op,batchNormalization2d:batchNormalization2d,batchNormalization3d:batchNormalization3d,batchNormalization4d:batchNormalization4d,batchNormalization:batchNormalization,complex:complex,real:real,imag:imag,concat:concat,concat1d:concat1d,concat2d:concat2d,concat3d:concat3d,concat4d:concat4d,split:split$1,conv1d:conv1d,conv2d:conv2d,conv3d:conv3d,conv2dDerFilter:conv2dDerFilter,depthwiseConv2d:depthwiseConv2d,separableConv2d:separableConv2d,conv2dTranspose:conv2dTranspose,matMul:matMul,dot:dot,outerProduct:outerProduct,reverse:reverse,reverse1d:reverse1d,reverse2d:reverse2d,reverse3d:reverse3d,reverse4d:reverse4d,maxPool:maxPool,avgPool:avgPool,pool:pool,slice:slice,slice1d:slice1d,slice2d:slice2d,slice3d:slice3d,slice4d:slice4d,abs:abs,acos:acos,acosh:acosh,asin:asin,asinh:asinh,atan:atan,atanh:atanh,ceil:ceil,clipByValue:clipByValue,cos:cos,cosh:cosh,erf:erf,exp:exp,expm1:expm1,floor:floor,log:log$1,log1p:log1p,logSigmoid:logSigmoid,neg:neg,reciprocal:reciprocal,round:round,rsqrt:rsqrt,sigmoid:sigmoid,sign:sign,sin:sin,sinh:sinh,softplus:softplus,sqrt:sqrt,square:square,step:step,tan:tan,tanh:tanh$1,all:all,any:any,argMax:argMax,argMin:argMin,logSumExp:logSumExp,max:max,mean:mean,min:min,moments:moments,sum:sum$1,prod:prod,equal:equal,equalStrict:equalStrict,greater:greater,greaterEqual:greaterEqual,greaterEqualStrict:greaterEqualStrict,greaterStrict:greaterStrict,less:less,lessEqual:lessEqual,lessEqualStrict:lessEqualStrict,lessStrict:lessStrict,notEqual:notEqual,notEqualStrict:notEqualStrict,add:add,addN:addN,addStrict:addStrict,atan2:atan2,div:div,divStrict:divStrict,floorDiv:floorDiv,maximum:maximum,maximumStrict:maximumStrict,minimum:minimum,minimumStrict:minimumStrict,mod:mod,modStrict:modStrict,mul:mul,mulStrict:mulStrict,pow:pow,powStrict:powStrict,squaredDifference:squaredDifference,squaredDifferenceStrict:squaredDifferenceStrict,sub:sub,subStrict:subStrict,elu:elu,leakyRelu:leakyRelu,prelu:prelu,relu:relu,selu:selu,logicalAnd:logicalAnd,logicalNot:logicalNot,logicalOr:logicalOr,logicalXor:logicalXor,where:where,whereAsync:whereAsync,buffer:buffer,toPixels:toPixels,print:print,batchToSpaceND:batchToSpaceND,cast:cast,clone:clone,cumsum:cumsum,depthToSpace:depthToSpace,expandDims:expandDims,eye:eye,fromPixels:fromPixels,multinomial:multinomial,oneHot:oneHot,pad:pad,pad1d:pad1d,pad2d:pad2d,pad3d:pad3d,pad4d:pad4d,rand:rand,randomNormal:randomNormal,randomUniform:randomUniform,reshape:reshape,spaceToBatchND:spaceToBatchND,squeeze:squeeze,stack:stack,tile:tile,truncatedNormal:truncatedNormal,unstack:unstack,setdiff1dAsync:setdiff1dAsync,fill:fill,linspace:linspace,ones:ones$1,range:range,scalar:scalar,tensor:tensor,tensor1d:tensor1d,tensor2d:tensor2d,tensor3d:tensor3d,tensor4d:tensor4d,tensor5d:tensor5d,tensor6d:tensor6d,zeros:zeros,onesLike:onesLike,zerosLike:zerosLike,transpose:transpose,softmax:softmax,logSoftmax:logSoftmax,localResponseNormalization:localResponseNormalization,norm:norm,gather:gather,unsortedSegmentSum:unsortedSegmentSum,basicLSTMCell:basicLSTMCell,multiRNNCell:multiRNNCell,movingAverage:movingAverage,stridedSlice:stridedSlice,topk:topk,scatterND:scatterND,fft:fft,ifft:ifft,rfft:rfft,irfft:irfft,sparseToDense:sparseToDense,gatherND:gatherND}),MathBackendCPU=function(){function e(){this.blockSize=48,this.firstUse=!0,ENV.get(\"IS_BROWSER\")&&(this.fromPixels2DContext=document.createElement(\"canvas\").getContext(\"2d\"))}return e.prototype.setDataMover=function(e){this.data=new DataStorage(e)},e.prototype.register=function(e,t,n){if(this.firstUse&&(this.firstUse=!1,ENV.get(\"IS_NODE\")&&warn(\"\\n============================\\nHi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details.\\n============================\\n\")),this.data.has(e))throw new Error(\"Data buffer is already registered\");this.data.set(e,{dtype:n})},e.prototype.write=function(e,t){if(null==t)throw new Error(\"MathBackendCPU.write(): values can not be null\");this.data.get(e).values=t},e.prototype.fromPixels=function(e,t){if(null==e)throw new Error(\"pixels passed to tf.fromPixels() can not be null\");var n,r;if(ENV.get(\"IS_NODE\")&&null==e.getContext)throw new Error(\"When running in node, pixels must be an HTMLCanvasElement like the one returned by the `canvas` npm package\");if(null!=e.getContext)n=e.getContext(\"2d\").getImageData(0,0,e.width,e.height).data;else if(e instanceof ImageData)n=e.data;else{if(!(e instanceof HTMLImageElement||e instanceof HTMLVideoElement))throw new Error(\"pixels passed to tf.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement or ImageData, but was \"+e.constructor.name);if(null==this.fromPixels2DContext)throw new Error(\"Can't read pixels from HTMLImageElement outside the browser.\");this.fromPixels2DContext.canvas.width=e.width,this.fromPixels2DContext.canvas.height=e.height,this.fromPixels2DContext.drawImage(e,0,0,e.width,e.height),n=this.fromPixels2DContext.getImageData(0,0,e.width,e.height).data}if(4===t)r=new Int32Array(n);else{var o=e.width*e.height;r=new Int32Array(o*t);for(var a=0;ad&&(d=m,h=f)}u[c]=h}return i},e.prototype.cumsum=function(e,t,n,r){if(this.assertNotComplex(e,\"cumsum\"),t!==e.rank-1)throw new Error(\"backend.cumsum in CPU expects an inner-most axis=\"+(e.rank-1)+\" but got axis=\"+t);for(var o=upcastType(e.dtype,\"int32\"),a=zeros(e.shape,o),i=a.dataSync(),s=e.dataSync(),u=e.shape[e.rank-1],l=r?function(e,t){return e+u-t-1}:function(e,t){return e+t},c=0;ct?1:0})},e.prototype.greaterEqual=function(e,t){return this.assertNotComplex([e,t],\"greaterEqual\"),this.broadcastedBinaryOp(e,t,\"bool\",function(e,t){return e>=t?1:0})},e.prototype.logicalNot=function(e){this.assertNotComplex(e,\"logicalNot\");for(var t=e.dataSync(),n=new Uint8Array(t.length),r=0;r1||1===t.rank?1:t.shape[1],c=0;c=0&&t>=0?n:(n+t)%t})},e.prototype.max=function(e,t){this.assertNotComplex(e,\"max\"),assertAxesAreInnerMostDims(\"max\",t,e.rank);for(var n=computeOutAndReduceShapes(e.shape,t),r=n[0],o=n[1],a=zeros(r,e.dtype),i=sizeFromShape(o),s=a.dataSync(),u=e.dataSync(),l=0;lp&&(p=h)}s[l]=p}return a},e.prototype.maximum=function(e,t){return this.assertNotComplex([e,t],\"maximum\"),this.broadcastedBinaryOp(e,t,e.dtype,function(e,t){return Math.max(e,t)})},e.prototype.all=function(e,t){this.assertNotComplex(e,\"all\"),assertAxesAreInnerMostDims(\"all\",t,e.rank);for(var n=computeOutAndReduceShapes(e.shape,t),r=n[0],o=n[1],a=zeros(r,e.dtype),i=sizeFromShape(o),s=a.dataSync(),u=e.dataSync(),l=0;l0?n[r]=1:n[r]=0;return Tensor.make(e.shape,{values:n})},e.prototype.round=function(e){this.assertNotComplex(e,\"round\");for(var t=e.dataSync(),n=new Float32Array(t.length),r=0;r.5?n[r]=Math.ceil(t[r]):n[r]=o%2==0?o:o+1}return Tensor.make(e.shape,{values:n})},e.prototype.exp=function(e){this.assertNotComplex(e,\"exp\");for(var t=e.dataSync(),n=new Float32Array(t.length),r=0;r=0?o:Math.exp(o)-1}return Tensor.make(e.shape,{values:t})},e.prototype.eluDer=function(e,t){this.assertNotComplex([e,t],\"eluDer\");for(var n=new Float32Array(t.size),r=t.dataSync(),o=e.dataSync(),a=0;a=1?o[a]:o[a]*(i+1)}return Tensor.make(t.shape,{values:n})},e.prototype.selu=function(e){this.assertNotComplex(e,\"selu\");for(var t=SELU_SCALEALPHA,n=SELU_SCALE,r=new Float32Array(e.size),o=e.dataSync(),a=0;a=0?n*i:t*(Math.exp(i)-1)}return Tensor.make(e.shape,{values:r})},e.prototype.clip=function(e,t,n){this.assertNotComplex(e,\"clip\");for(var r=new Float32Array(e.size),o=e.dataSync(),a=0;an?n:i-t,i=r[o]0?1:t}return Tensor.make(e.shape,{values:n})},e.prototype.conv2d=function(e,t,n){this.assertNotComplex([e,t],\"conv2d\");for(var r=n.filterHeight,o=n.filterWidth,a=n.dilationHeight,i=n.dilationWidth,s=n.padInfo.left,u=n.padInfo.top,l=buffer(n.outShape,e.dtype),c=e.dataSync(),p=t.dataSync(),d=l.values,h=0;h=n.inHeight))for(var w=x*t.strides[0],E=f+T*e.strides[1],S=0;S=n.inWidth))for(var N=w+A*t.strides[1],R=E+_*n.inChannels,k=N,I=0;I=n.inDepth))for(var b=E*t.strides[0],C=v+S*e.strides[1],A=0;A=n.inHeight))for(var I=b+R*t.strides[1],D=C+k*e.strides[2],M=0;M=n.inWidth))for(var B=I+F*t.strides[2],U=D+L*n.inChannels,V=B,z=0;z=n.inHeight))for(var E=T*t.strides[0],S=m+w*e.strides[1],b=0;b=n.inWidth))for(var R=E+_*t.strides[1],k=S+N*n.inChannels,I=C,D=R,M=0;MI?I=L:\"avg\"===n&&(D+=L,M++)}if(isNaN(I))break}f[A+_*v+w]=\"avg\"===n?D/M:I}return h.toTensor()},e.prototype.maxPool=function(e,t){return this.pool(e,t,\"max\")},e.prototype.maxPoolPositions=function(e,t){for(var n=buffer(t.outShape,\"int32\"),r=t.strideHeight,o=t.strideWidth,a=t.dilationHeight,i=t.dilationWidth,s=t.effectiveFilterHeight,u=t.effectiveFilterWidth,l=t.padInfo.top,c=t.padInfo.left,p=0;pw&&(w=_,E=b*u+A)}n.set(E,p,h,v,d)}}return n.toTensor()},e.prototype.maxPoolBackprop=function(e,t,n,r){this.assertNotComplex([t,n],\"maxPoolBackprop\");for(var o=this.maxPoolPositions(t,r),a=r.strideHeight,i=r.strideWidth,s=r.dilationHeight,u=r.dilationWidth,l=r.effectiveFilterHeight,c=r.effectiveFilterWidth,p=c-1-r.padInfo.left,d=l-1-r.padInfo.top,h=buffer(t.shape,\"float32\"),f=0;f=r.outHeight||Math.floor(E)!==E))for(var S=0;S=r.outWidth||Math.floor(b)!==b)){var C=l*c-1-o.get(f,E,b,m)===w*c+S?1:0;if(0!==C)T+=e.get(f,E,b,m)*C}}}h.set(T,f,g,v,m)}return h.toTensor()},e.prototype.avgPoolBackprop=function(e,t,n){this.assertNotComplex([e,t],\"avgPoolBackprop\");for(var r=n.strideHeight,o=n.strideWidth,a=n.filterHeight,i=n.filterWidth,s=n.dilationHeight,u=n.dilationWidth,l=n.effectiveFilterHeight,c=n.effectiveFilterWidth,p=c-1-n.padInfo.left,d=l-1-n.padInfo.top,h=buffer(t.shape,\"float32\"),f=1/(a*i),m=0;m=n.outHeight||Math.floor(S)!==S))for(var b=0;b=n.outWidth||Math.floor(C)!==C))w+=e.get(m,S,C,g)}}h.set(w*f,m,v,y,g)}return h.toTensor()},e.prototype.cast=function(e,t){return castTensor(e,t,this)},e.prototype.reshape=function(e,t){return reshapeTensor(e,t)},e.prototype.avgPool=function(e,t){return this.assertNotComplex(e,\"avgPool\"),this.pool(e,t,\"avg\").toFloat()},e.prototype.resizeBilinear=function(e,t,n,r){this.assertNotComplex(e,\"resizeBilinear\");for(var o=e.shape,a=o[0],i=o[1],s=o[2],u=o[3],l=e.dataSync(),c=new Float32Array(sizeFromShape([a,t,n,u])),p=[r&&t>1?i-1:i,r&&n>1?s-1:s],d=[r&&t>1?t-1:t,r&&n>1?n-1:n],h=0,f=p[0]/d[0],m=p[1]/d[1],g=0;g1?a-1:a,n&&c>1?i-1:i],h=[n&&l>1?l-1:l,n&&c>1?c-1:c],f=d[0]/h[0],m=d[1]/h[1],g=e.dataSync(),v=0,y=0;y1?i-1:i,r&&n>1?s-1:s],d=[r&&t>1?t-1:t,r&&n>1?n-1:n],h=p[0]/d[0],f=p[1]/d[1],m=0,g=0;g1?a-1:a,n&&c>1?i-1:i],f=[n&&l>1?l-1:l,n&&c>1?c-1:c],m=h[0]/f[0],g=h[1]/f[1],v=1/m,y=1/g,x=2*Math.ceil(v)+2,T=2*Math.ceil(y)+2,w=0;w=l)){var O=E+P*e.strides[1],F=P*m;if(S===Math.min(a-1,n?Math.round(F):Math.floor(F)))for(var L=0;L=c)){var U=O+B*e.strides[2],V=B*g;_===Math.min(i-1,n?Math.round(V):Math.floor(V))&&(D+=d[U+I])}}}}p[N+I]=D}return tensor4d(p,t.shape,t.dtype)},e.prototype.batchNormalization=function(e,t,n,r,o,a){this.assertNotComplex([e,t,n,o,a],\"batchNormalization\");for(var i=e.dataSync(),s=t.dataSync(),u=n.dataSync(),l=o?o.dataSync():new Float32Array([1]),c=a?a.dataSync():new Float32Array([0]),p=new Float32Array(i.length),d=c.length,h=l.length,f=u.length,m=s.length,g=0,v=0,y=0,x=0,T=0;T=d&&(g=0),v>=m&&(v=0),y>=h&&(y=0),x>=f&&(x=0);return tensor4d(p,e.shape)},e.prototype.localResponseNormalization4D=function(e,t,n,r,o){this.assertNotComplex(e,\"localResponseNormalization4D\");var a=e.shape[3],i=a-1,s=e.dataSync(),u=sizeFromShape(e.shape),l=new Float32Array(u);function c(e){for(var n=e%a,r=e-n+Math.max(0,n-t),o=e-n+Math.min(n+t,i),u=0;r<=o;r++){var l=s[r];u+=l*l}return u}for(var p=0;p=0&&e.get(a)1,\"blockSize should be > 1 for depthToSpace, but was: \"+t);for(var r=e.shape[0],o=e.shape[1],a=e.shape[2],i=e.shape[3],s=o*t,u=a*t,l=i/(t*t),c=e.dataSync(),p=new Float32Array(r*s*u*l),d=0,h=0;h=s))for(var _=d>1?(b-E)*(u-1)/(d-1):0,N=h>1?(C-S)*(l-1)/(h-1):0,R=0;R1?E*(u-1)+R*_:.5*(E+b)*(u-1);if(k<0||k>u-1)for(var I=0;I1?S*(l-1)+I*N:.5*(S+C)*(l-1))<0||q>l-1)for(D=0;D1?S*(l-1)+I*N:.5*(S+C)*(l-1))<0||q>l-1)for(D=0;D=e.size/s)throw new Error(\"Invalid indices: \"+h+\" does not index into \"+e.shape);for(var v=0;v=r/o)throw new Error(\"Invalid indices: \"+m+\" does not index into \"+n);for(var x=0;x0,\"scheme must not be an empty string.\");var r=e.getInstance();assert(null==r.managers[t],\"A model store manager is already registered for scheme '\"+t+\"'.\"),r.managers[t]=n},e.getManager=function(e){var t=this.getInstance().managers[e];if(null==t)throw new Error(\"Cannot find model manager for scheme '\"+e+\"'\");return t},e.getSchemes=function(){return Object.keys(this.getInstance().managers)},e}();function parseURL(e){if(-1===e.indexOf(URL_SCHEME_SUFFIX))throw new Error(\"The url string provided does not contain a scheme. Supported schemes are: \"+ModelStoreManagerRegistry.getSchemes().join(\",\"));return{scheme:e.split(URL_SCHEME_SUFFIX)[0],path:e.split(URL_SCHEME_SUFFIX)[1]}}function cloneModelInternal(e,t,n){return void 0===n&&(n=!1),__awaiter(this,void 0,void 0,function(){var r,o,a,i,s,u,l,c,p;return __generator(this,function(d){switch(d.label){case 0:return assert(e!==t,\"Old path and new path are the same: '\"+e+\"'\"),assert((r=IORouterRegistry.getLoadHandlers(e)).length>0,\"Copying failed because no load handler is found for source URL \"+e+\".\"),assert(r.length<2,\"Copying failed because more than one (\"+r.length+\") load handlers for source URL \"+e+\".\"),o=r[0],assert((a=IORouterRegistry.getSaveHandlers(t)).length>0,\"Copying failed because no save handler is found for destination URL \"+t+\".\"),assert(a.length<2,\"Copying failed because more than one (\"+r.length+\") save handlers for destination URL \"+t+\".\"),i=a[0],s=parseURL(e).scheme,u=parseURL(e).path,l=s===parseURL(e).scheme,[4,o.load()];case 1:return c=d.sent(),n&&l?[4,ModelStoreManagerRegistry.getManager(s).removeModel(u)]:[3,3];case 2:d.sent(),d.label=3;case 3:return[4,i.save(c)];case 4:return p=d.sent(),!n||l?[3,6]:[4,ModelStoreManagerRegistry.getManager(s).removeModel(u)];case 5:d.sent(),d.label=6;case 6:return[2,p.modelArtifactsInfo]}})})}function listModels(){return __awaiter(this,void 0,void 0,function(){var e,t,n,r,o,a,i;return __generator(this,function(s){switch(s.label){case 0:e=ModelStoreManagerRegistry.getSchemes(),t={},n=0,r=e,s.label=1;case 1:return n0,\"URL path for browserHTTPRequest must not be null, undefined or empty.\"),Array.isArray(e)&&assert(2===e.length,\"URL paths for browserHTTPRequest must have a length of 2, (actual length is \"+e.length+\").\"),this.path=e,null!=t&&null!=t.body)throw new Error(\"requestInit is expected to have no pre-existing body, but has one.\");this.requestInit=t||{}}return e.prototype.save=function(e){return __awaiter(this,void 0,void 0,function(){var t,n,r,o;return __generator(this,function(a){switch(a.label){case 0:if(e.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.\");return(t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit)).body=new FormData,n=[{paths:[\"./model.weights.bin\"],weights:e.weightSpecs}],r={modelTopology:e.modelTopology,weightsManifest:n},t.body.append(\"model.json\",new Blob([JSON.stringify(r)],{type:\"application/json\"}),\"model.json\"),null!=e.weightData&&t.body.append(\"model.weights.bin\",new Blob([e.weightData],{type:\"application/octet-stream\"}),\"model.weights.bin\"),[4,this.getFetchFunc()(this.path,t)];case 1:if((o=a.sent()).ok)return[2,{modelArtifactsInfo:getModelArtifactsInfoForJSON(e),responses:[o]}];throw new Error(\"BrowserHTTPRequest.save() failed due to HTTP response status \"+o.status+\".\")}})})},e.prototype.load=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(e){return[2,Array.isArray(this.path)?this.loadBinaryModel():this.loadJSONModel()]})})},e.prototype.loadBinaryTopology=function(){return __awaiter(this,void 0,void 0,function(){var e,t;return __generator(this,function(n){switch(n.label){case 0:return n.trys.push([0,3,,4]),[4,this.getFetchFunc()(this.path[0],this.requestInit)];case 1:if(!(e=n.sent()).ok)throw new Error(\"BrowserHTTPRequest.load() failed due to HTTP response: \"+e.statusText);return[4,e.arrayBuffer()];case 2:return[2,n.sent()];case 3:throw t=n.sent(),new Error(this.path[0]+\" not found. \"+t);case 4:return[2]}})})},e.prototype.loadBinaryModel=function(){return __awaiter(this,void 0,void 0,function(){var e,t,n,r,o,a,i,s;return __generator(this,function(u){switch(u.label){case 0:return e=this.loadBinaryTopology(),[4,this.getFetchFunc()(this.path[1],this.requestInit)];case 1:if(!(t=u.sent()).ok)throw new Error(\"BrowserHTTPRequest.load() failed due to HTTP response: \"+t.statusText);return[4,Promise.all([e,t])];case 2:return n=u.sent(),r=n[0],[4,n[1].json()];case 3:return null==(o=u.sent())?[3,5]:[4,this.loadWeights(o)];case 4:s=u.sent(),a=s[0],i=s[1],u.label=5;case 5:return[2,{modelTopology:r,weightSpecs:a,weightData:i}]}})})},e.prototype.loadJSONModel=function(){return __awaiter(this,void 0,void 0,function(){var e,t,n,r,o,a,i,s;return __generator(this,function(u){switch(u.label){case 0:return[4,this.getFetchFunc()(this.path,this.requestInit)];case 1:if(!(e=u.sent()).ok)throw new Error(\"BrowserHTTPRequest.load() failed due to HTTP response: \"+e.statusText);return[4,e.json()];case 2:if(t=u.sent(),n=t.modelTopology,r=t.weightsManifest,null==n&&null==r)throw new Error(\"The JSON from HTTP path \"+this.path+\" contains neither model topology or manifest for weights.\");return null==r?[3,4]:(i=t.weightsManifest,[4,this.loadWeights(i)]);case 3:s=u.sent(),o=s[0],a=s[1],u.label=4;case 4:return[2,{modelTopology:n,weightSpecs:o,weightData:a}]}})})},e.prototype.loadWeights=function(e){return __awaiter(this,void 0,void 0,function(){var t,n,r,o,a,i,s,u,l,c,p,d;return __generator(this,function(h){switch(h.label){case 0:for(t=Array.isArray(this.path)?this.path[1]:this.path,n=parseUrl(t),r=n[0],o=n[1],a=this.weightPathPrefix||r,i=[],s=0,u=e;st?e.substring(n):\"\"]}function isHTTPScheme(e){return null!=e.match(BrowserHTTPRequest.URL_SCHEME_REGEX)}var httpRequestRouter=function(e){if(\"undefined\"==typeof fetch)return null;return(Array.isArray(e)?e.every(function(e){return isHTTPScheme(e)}):isHTTPScheme(e))?browserHTTPRequest(e):null};function browserHTTPRequest(e,t,n,r){return new BrowserHTTPRequest(e,t,n,r)}IORouterRegistry.registerSaveRouter(httpRequestRouter),IORouterRegistry.registerLoadRouter(httpRequestRouter);var PassthroughLoader=function(){function e(e,t,n){this.modelTopology=e,this.weightSpecs=t,this.weightData=n}return e.prototype.load=function(){return __awaiter(this,void 0,void 0,function(){var e;return __generator(this,function(t){return e={},null!=this.modelTopology&&(e=__assign({modelTopology:this.modelTopology},e)),null!=this.weightSpecs&&this.weightSpecs.length>0&&(e=__assign({weightSpecs:this.weightSpecs},e)),null!=this.weightData&&this.weightData.byteLength>0&&(e=__assign({weightData:this.weightData},e)),[2,e]})})},e}(),PassthroughSaver=function(){function e(e){this.saveHandler=e}return e.prototype.save=function(e){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(t){return[2,this.saveHandler(e)]})})},e}();function fromMemory(e,t,n){return new PassthroughLoader(e,t,n)}function withSaveHandler(e){return new PassthroughSaver(e)}var registerSaveRouter=IORouterRegistry.registerSaveRouter,registerLoadRouter=IORouterRegistry.registerLoadRouter,getSaveHandlers=IORouterRegistry.getSaveHandlers,getLoadHandlers=IORouterRegistry.getLoadHandlers,io=Object.freeze({browserFiles:browserFiles,browserHTTPRequest:browserHTTPRequest,concatenateArrayBuffers:concatenateArrayBuffers,decodeWeights:decodeWeights,encodeWeights:encodeWeights,fromMemory:fromMemory,getLoadHandlers:getLoadHandlers,getModelArtifactsInfoForJSON:getModelArtifactsInfoForJSON,getSaveHandlers:getSaveHandlers,isHTTPScheme:isHTTPScheme,loadWeights:loadWeights,registerLoadRouter:registerLoadRouter,registerSaveRouter:registerSaveRouter,weightsLoaderFactory:weightsLoaderFactory,withSaveHandler:withSaveHandler,copyModel:copyModel,listModels:listModels,moveModel:moveModel,removeModel:removeModel});function confusionMatrix_(e,t,n){var r=convertToTensor(e,\"labels\",\"confusionMatrix\"),o=convertToTensor(t,\"predictions\",\"confusionMatrix\");assert(null==n||n>0&&Number.isInteger(n),\"If provided, numClasses must be a positive integer, but got \"+n),assert(1===r.rank,\"Expected the rank of labels to be 1, but got \"+r.rank),assert(1===o.rank,\"Expected the rank of predictions to be 1, but got \"+o.rank),assert(r.shape[0]===o.shape[0],\"Mismatch in the number of examples: \"+r.shape[0]+\" vs. \"+o.shape[0]+\". Labels and predictions should have the same number of elements.\"),assert(n>0&&Number.isInteger(n),\"numClasses is required to be a positive integer, but got \"+n);var a=oneHot(r.asType(\"int32\"),n),i=oneHot(o.asType(\"int32\"),n);return a.transpose().matMul(i).asType(\"int32\")}var confusionMatrix=op({confusionMatrix_:confusionMatrix_}),math=Object.freeze({confusionMatrix:confusionMatrix}),Serializable=function(){function e(){}return e.prototype.getClassName=function(){return this.constructor.className},e.fromConfig=function(e,t){return new e(t)},e}(),SerializationMap=function(){function e(){this.classNameMap={}}return e.getMap=function(){return null==e.instance&&(e.instance=new e),e.instance},e.register=function(t){e.getMap().classNameMap[t.className]=[t,t.fromConfig]},e}();function registerClass(e){assert(null!=e.className,\"Class being registered does not have the static className property defined.\"),assert(\"string\"==typeof e.className,\"className is required to be a string, but got type \"+typeof e.className),assert(e.className.length>0,\"Class being registered has an empty-string as its className, which is disallowed.\"),SerializationMap.register(e)}var serialization=Object.freeze({Serializable:Serializable,SerializationMap:SerializationMap,registerClass:registerClass}),WEBGL_ENVS={HAS_WEBGL:!0},NODE_ENVS={IS_NODE:!0},CHROME_ENVS={IS_CHROME:!0},BROWSER_ENVS={IS_BROWSER:!0},CPU_ENVS={HAS_WEBGL:!1},ALL_ENVS={};function expectArraysClose(e,t,n){return null==n&&(n=ENV.get(\"TEST_EPSILON\")),expectArraysPredicate(e,t,function(e,t){return areClose(e,Number(t),n)})}function expectArraysPredicate(e,t,n){if(e instanceof Tensor||t instanceof Tensor){if(e instanceof Tensor&&t instanceof Tensor){if(e.dtype!==t.dtype)throw new Error(\"Arrays are of different type actual: \"+e.dtype+\" vs expected: \"+t.dtype+\".\");if(!arraysEqual(e.shape,t.shape))throw new Error(\"Arrays are of different shape actual: \"+e.shape+\" vs expected: \"+t.shape+\".\")}}else{var r=e.constructor.name,o=t.constructor.name;if(r!==o)throw new Error(\"Arrays are of different type actual: \"+r+\" vs expected: \"+o)}var a,i;if(a=e instanceof Tensor?e.dataSync():e,i=t instanceof Tensor?t.dataSync():t,a.length!==i.length)throw new Error(\"Arrays have different lengths actual: \"+a.length+\" vs expected: \"+i.length+\".\\nActual: \"+a+\".\\nExpected: \"+i+\".\");for(var s=0;sn)}function expectValuesInRange(e,t,n){var r;r=e instanceof Tensor?e.dataSync():e;for(var o=0;on)throw new Error(\"Value out of range:\"+r[o]+\" low: \"+t+\", high: \"+n)}function expectArrayBuffersEqual(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}var test_util=Object.freeze({WEBGL_ENVS:WEBGL_ENVS,NODE_ENVS:NODE_ENVS,CHROME_ENVS:CHROME_ENVS,BROWSER_ENVS:BROWSER_ENVS,CPU_ENVS:CPU_ENVS,ALL_ENVS:ALL_ENVS,expectArraysClose:expectArraysClose,expectPromiseToFail:expectPromiseToFail,expectArraysEqual:expectArraysEqual,expectNumbersClose:expectNumbersClose,expectValuesInRange:expectValuesInRange,expectArrayBuffersEqual:expectArrayBuffersEqual}),version=\"0.14.2\",webgl=Object.freeze({gpgpu_util:gpgpu_util,webgl_util:webgl_util,MathBackendWebGL:MathBackendWebGL,GPGPUContext:GPGPUContext}),Optimizer=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return __extends(t,e),t.prototype.minimize=function(e,t,n){void 0===t&&(t=!1);var r=this.computeGradients(e,n),o=r.value,a=r.grads;return this.applyGradients(a),Object.keys(a).forEach(function(e){return a[e].dispose()}),t?o:(o.dispose(),null)},t.prototype.computeGradients=function(e,t){return variableGrads(e,t)},t}(Serializable),AdadeltaOptimizer=function(e){function t(t,n,r){void 0===r&&(r=null);var o=e.call(this)||this;return o.learningRate=t,o.rho=n,o.epsilon=r,o.accumulatedGrads={},o.accumulatedUpdates={},o.c=keep(scalar(-t)),o.rhoScalar=keep(scalar(n)),o.oneMinusRho=keep(scalar(1-n)),null===r&&(r=ENV.get(\"EPSILON\")),o.epsilonScalar=keep(scalar(r)),o}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this,n=function(n){var o=ENV.engine.registeredVariables[n];if(null==r.accumulatedGrads[n]){tidy(function(){t.accumulatedGrads[n]=zerosLike(o).variable(!1)})}if(null==r.accumulatedUpdates[n]){tidy(function(){t.accumulatedUpdates[n]=zerosLike(o).variable(!1)})}var a=e[n],i=r.accumulatedGrads[n],s=r.accumulatedUpdates[n];tidy(function(){var e=t.rhoScalar.mul(i).add(t.oneMinusRho.mul(a.square())),r=s.add(t.epsilonScalar).sqrt().div(i.add(t.epsilonScalar).sqrt()).mul(a),u=t.rhoScalar.mul(s).add(t.oneMinusRho.mul(r.square()));t.accumulatedGrads[n].assign(e),t.accumulatedUpdates[n].assign(u);var l=t.c.mul(r).add(o);o.assign(l)})},r=this;for(var o in e)n(o)},t.prototype.dispose=function(){var e=this;this.c.dispose(),this.epsilonScalar.dispose(),this.rhoScalar.dispose(),this.oneMinusRho.dispose(),null!=this.accumulatedUpdates&&(Object.keys(this.accumulatedUpdates).forEach(function(t){return e.accumulatedUpdates[t].dispose()}),Object.keys(this.accumulatedGrads).forEach(function(t){return e.accumulatedGrads[t].dispose()}))},t.prototype.getConfig=function(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.rho,t.epsilon)},t.className=\"AdadeltaOptimizer\",t}(Optimizer);registerClass(AdadeltaOptimizer);var AdagradOptimizer=function(e){function t(t,n){void 0===n&&(n=.1);var r=e.call(this)||this;return r.learningRate=t,r.initialAccumulatorValue=n,r.accumulatedGrads={},r.c=keep(scalar(-t)),r.epsilon=keep(scalar(ENV.get(\"EPSILON\"))),r}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this,n=function(n){var o=ENV.engine.registeredVariables[n];if(null==r.accumulatedGrads[n]){tidy(function(){t.accumulatedGrads[n]=fill(o.shape,t.initialAccumulatorValue).variable(!1)})}var a=e[n],i=r.accumulatedGrads[n];tidy(function(){var e=i.add(a.square());t.accumulatedGrads[n].assign(e);var r=t.c.mul(a.div(e.add(t.epsilon).sqrt())).add(o);o.assign(r)})},r=this;for(var o in e)n(o)},t.prototype.dispose=function(){var e=this;this.epsilon.dispose(),this.c.dispose(),null!=this.accumulatedGrads&&Object.keys(this.accumulatedGrads).forEach(function(t){return e.accumulatedGrads[t].dispose()})},t.prototype.getConfig=function(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}},t.fromConfig=function(e,t){return new e(t.learningRate,t.initialAccumulatorValue)},t.className=\"AdagradOptimizer\",t}(Optimizer);registerClass(AdagradOptimizer);var AdamOptimizer=function(e){function t(t,n,r,o){void 0===o&&(o=null);var a=e.call(this)||this;return a.learningRate=t,a.beta1=n,a.beta2=r,a.epsilon=o,a.accumulatedFirstMoment={},a.accumulatedSecondMoment={},a.c=keep(scalar(-t)),a.beta1Scalar=keep(scalar(n)),a.beta2Scalar=keep(scalar(r)),tidy(function(){a.accBeta1=scalar(n).variable(),a.accBeta2=scalar(r).variable()}),a.oneMinusBeta1=keep(scalar(1-n)),a.oneMinusBeta2=keep(scalar(1-r)),a.one=keep(scalar(1)),null===o&&(o=ENV.get(\"EPSILON\")),a.epsScalar=keep(scalar(o)),a}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this;tidy(function(){var n=t.one.sub(t.accBeta1),r=t.one.sub(t.accBeta2);for(var o in e){var a=ENV.engine.registeredVariables[o];if(null==t.accumulatedFirstMoment[o]){var i=!1;t.accumulatedFirstMoment[o]=zerosLike(a).variable(i)}if(null==t.accumulatedSecondMoment[o]){i=!1;t.accumulatedSecondMoment[o]=zerosLike(a).variable(i)}var s=e[o],u=t.accumulatedFirstMoment[o],l=t.accumulatedSecondMoment[o],c=t.beta1Scalar.mul(u).add(t.oneMinusBeta1.mul(s)),p=t.beta2Scalar.mul(l).add(t.oneMinusBeta2.mul(s.square())),d=c.div(n),h=p.div(r);t.accumulatedFirstMoment[o].assign(c),t.accumulatedSecondMoment[o].assign(p);var f=t.c.mul(d.div(t.epsScalar.add(h.sqrt()))).add(a);a.assign(f)}t.accBeta1.assign(t.accBeta1.mul(t.beta1Scalar)),t.accBeta2.assign(t.accBeta2.mul(t.beta2Scalar))})},t.prototype.dispose=function(){var e=this;this.c.dispose(),this.epsScalar.dispose(),this.beta1Scalar.dispose(),this.beta2Scalar.dispose(),this.accBeta1.dispose(),this.accBeta2.dispose(),this.oneMinusBeta1.dispose(),this.oneMinusBeta2.dispose(),this.one.dispose(),null!=this.accumulatedFirstMoment&&Object.keys(this.accumulatedFirstMoment).forEach(function(t){return e.accumulatedFirstMoment[t].dispose()}),null!=this.accumulatedSecondMoment&&Object.keys(this.accumulatedSecondMoment).forEach(function(t){return e.accumulatedSecondMoment[t].dispose()})},t.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)},t.className=\"AdamOptimizer\",t}(Optimizer);registerClass(AdamOptimizer);var AdamaxOptimizer=function(e){function t(t,n,r,o,a){void 0===o&&(o=null),void 0===a&&(a=0);var i=e.call(this)||this;return i.learningRate=t,i.beta1=n,i.beta2=r,i.epsilon=o,i.decay=a,i.accumulatedFirstMoment={},i.accumulatedWeightedInfNorm={},i.c=keep(scalar(-t)),i.beta1Scalar=keep(scalar(n)),i.beta2Scalar=keep(scalar(r)),i.decayScalar=keep(scalar(a)),tidy(function(){i.iteration=scalar(0).variable(),i.accBeta1=scalar(n).variable()}),i.oneMinusBeta1=keep(scalar(1-n)),i.one=keep(scalar(1)),null===o&&(o=ENV.get(\"EPSILON\")),i.epsScalar=keep(scalar(o)),i}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this;tidy(function(){var n=t.one.sub(t.accBeta1),r=t.c.div(t.one.add(t.decayScalar.mul(t.iteration)));for(var o in e){var a=ENV.engine.registeredVariables[o];if(null==t.accumulatedFirstMoment[o]){var i=!1;t.accumulatedFirstMoment[o]=zerosLike(a).variable(i)}if(null==t.accumulatedWeightedInfNorm[o]){i=!1;t.accumulatedWeightedInfNorm[o]=zerosLike(a).variable(i)}var s=e[o],u=t.accumulatedFirstMoment[o],l=t.accumulatedWeightedInfNorm[o],c=t.beta1Scalar.mul(u).add(t.oneMinusBeta1.mul(s)),p=t.beta2Scalar.mul(l),d=s.abs(),h=p.maximum(d);t.accumulatedFirstMoment[o].assign(c),t.accumulatedWeightedInfNorm[o].assign(h);var f=r.div(n).mul(c.div(t.epsScalar.add(h))).add(a);a.assign(f)}t.iteration.assign(t.iteration.add(t.one)),t.accBeta1.assign(t.accBeta1.mul(t.beta1Scalar))})},t.prototype.dispose=function(){var e=this;this.c.dispose(),this.epsScalar.dispose(),this.accBeta1.dispose(),this.beta1Scalar.dispose(),this.beta2Scalar.dispose(),this.oneMinusBeta1.dispose(),this.decayScalar.dispose(),this.iteration.dispose(),this.one.dispose(),null!=this.accumulatedFirstMoment&&Object.keys(this.accumulatedFirstMoment).forEach(function(t){return e.accumulatedFirstMoment[t].dispose()}),null!=this.accumulatedWeightedInfNorm&&Object.keys(this.accumulatedWeightedInfNorm).forEach(function(t){return e.accumulatedWeightedInfNorm[t].dispose()})},t.prototype.getConfig=function(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}},t.fromConfig=function(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)},t.className=\"AdamaxOptimizer\",t}(Optimizer);registerClass(AdamaxOptimizer);var SGDOptimizer=function(e){function t(t){var n=e.call(this)||this;return n.learningRate=t,n.setLearningRate(t),n}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this;Object.keys(e).forEach(function(n){var r=e[n],o=ENV.engine.registeredVariables[n];tidy(function(){var e=t.c.mul(r).add(o);o.assign(e)})})},t.prototype.setLearningRate=function(e){this.learningRate=e,null!=this.c&&this.c.dispose(),this.c=keep(scalar(-e))},t.prototype.dispose=function(){this.c.dispose()},t.prototype.getConfig=function(){return{learningRate:this.learningRate}},t.fromConfig=function(e,t){return new e(t.learningRate)},t.className=\"SGDOptimizer\",t}(Optimizer);registerClass(SGDOptimizer);var MomentumOptimizer=function(e){function t(t,n,r){void 0===r&&(r=!1);var o=e.call(this,t)||this;return o.learningRate=t,o.momentum=n,o.useNesterov=r,o.m=scalar(o.momentum),o.accumulations={},o}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this,n=function(n){var o=ENV.engine.registeredVariables[n];if(null==r.accumulations[n]){tidy(function(){t.accumulations[n]=zerosLike(o).variable(!1)})}var a=r.accumulations[n],i=e[n];tidy(function(){var e,r=t.m.mul(a).add(i);e=t.useNesterov?t.c.mul(i.add(r.mul(t.m))).add(o):t.c.mul(r).add(o),t.accumulations[n].assign(r),o.assign(e)})},r=this;for(var o in e)n(o)},t.prototype.dispose=function(){if(e.prototype.dispose.call(this),this.m.dispose(),null!=this.accumulations)for(var t in this.accumulations)this.accumulations[t].dispose()},t.prototype.setMomentum=function(e){this.momentum=e},t.prototype.getConfig=function(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}},t.fromConfig=function(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)},t.className=\"MomentumOptimizer\",t}(SGDOptimizer);registerClass(MomentumOptimizer);var RMSPropOptimizer=function(e){function t(t,n,r,o,a){void 0===n&&(n=.9),void 0===r&&(r=0),void 0===o&&(o=null),void 0===a&&(a=!1);var i=e.call(this)||this;return i.learningRate=t,i.decay=n,i.momentum=r,i.epsilon=o,i.accumulatedMeanSquares={},i.accumulatedMeanGrads={},i.accumulatedMoments={},i.c=keep(scalar(t)),i.decayScalar=keep(scalar(n)),i.momentumScalar=keep(scalar(r)),i.oneMinusDecay=keep(scalar(1-n)),i.centered=a,null===o&&(o=ENV.get(\"EPSILON\")),i.epsilonScalar=keep(scalar(o)),i}return __extends(t,e),t.prototype.applyGradients=function(e){var t=this,n=function(n){var o=ENV.engine.registeredVariables[n];if(null==r.accumulatedMeanSquares[n]){tidy(function(){t.accumulatedMeanSquares[n]=zerosLike(o).variable(!1)})}if(null==r.accumulatedMeanGrads[n]&&r.centered){tidy(function(){t.accumulatedMeanGrads[n]=zerosLike(o).variable(!1)})}if(null==r.accumulatedMoments[n]){tidy(function(){t.accumulatedMoments[n]=zerosLike(o).variable(!1)})}var a=r.accumulatedMeanSquares[n],i=r.accumulatedMeanGrads[n],s=r.accumulatedMoments[n],u=e[n];tidy(function(){var e=t.decayScalar.mul(a).add(t.oneMinusDecay.mul(u.square()));if(t.centered){var r=t.decayScalar.mul(i).add(t.oneMinusDecay.mul(u)),l=t.momentumScalar.mul(s).add(t.c.mul(u).div(e.sub(r.square().add(t.epsilonScalar)).sqrt()));t.accumulatedMeanSquares[n].assign(e),t.accumulatedMeanGrads[n].assign(r),t.accumulatedMoments[n].assign(l);var c=o.sub(l);o.assign(c)}else{var p=t.decayScalar.mul(a).add(t.oneMinusDecay.mul(u.square()));l=t.momentumScalar.mul(s).add(t.c.mul(u).div(p.add(t.epsilonScalar).sqrt()));t.accumulatedMeanSquares[n].assign(p),t.accumulatedMoments[n].assign(l);c=o.sub(l);o.assign(c)}})},r=this;for(var o in e)n(o)},t.prototype.dispose=function(){var e=this;this.c.dispose(),this.epsilonScalar.dispose(),this.decayScalar.dispose(),this.momentumScalar.dispose(),this.oneMinusDecay.dispose(),null!=this.accumulatedMeanSquares&&Object.keys(this.accumulatedMeanSquares).forEach(function(t){return e.accumulatedMeanSquares[t].dispose()}),null!=this.accumulatedMeanGrads&&this.centered&&Object.keys(this.accumulatedMeanGrads).forEach(function(t){return e.accumulatedMeanGrads[t].dispose()}),null!=this.accumulatedMoments&&Object.keys(this.accumulatedMoments).forEach(function(t){return e.accumulatedMoments[t].dispose()})},t.prototype.getConfig=function(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}},t.fromConfig=function(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)},t.className=\"RMSPropOptimizer\",t}(Optimizer);registerClass(RMSPropOptimizer);var OptimizerConstructors=function(){function e(){}return e.sgd=function(e){return new SGDOptimizer(e)},e.momentum=function(e,t,n){return void 0===n&&(n=!1),new MomentumOptimizer(e,t,n)},e.rmsprop=function(e,t,n,r,o){return void 0===t&&(t=.9),void 0===n&&(n=0),void 0===r&&(r=null),void 0===o&&(o=!1),new RMSPropOptimizer(e,t,n,r,o)},e.adam=function(e,t,n,r){return void 0===e&&(e=.001),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),new AdamOptimizer(e,t,n,r)},e.adadelta=function(e,t,n){return void 0===e&&(e=.001),void 0===t&&(t=.95),void 0===n&&(n=null),new AdadeltaOptimizer(e,t,n)},e.adamax=function(e,t,n,r,o){return void 0===e&&(e=.002),void 0===t&&(t=.9),void 0===n&&(n=.999),void 0===r&&(r=null),void 0===o&&(o=0),new AdamaxOptimizer(e,t,n,r,o)},e.adagrad=function(e,t){return void 0===t&&(t=.1),new AdagradOptimizer(e,t)},e}(),train={sgd:OptimizerConstructors.sgd,momentum:OptimizerConstructors.momentum,adadelta:OptimizerConstructors.adadelta,adagrad:OptimizerConstructors.adagrad,rmsprop:OptimizerConstructors.rmsprop,adamax:OptimizerConstructors.adamax,adam:OptimizerConstructors.adam},setBackend=Environment.setBackend,getBackend=Environment.getBackend,disposeVariables=Environment.disposeVariables,memory=Environment.memory;setOpHandler(ops);export{setBackend,getBackend,disposeVariables,memory,version as version_core,nextFrame,environment,io,math,serialization,test_util,util,webgl,AdadeltaOptimizer,AdagradOptimizer,AdamOptimizer,AdamaxOptimizer,MomentumOptimizer,Optimizer,RMSPropOptimizer,SGDOptimizer,Tensor,TensorBuffer,variable,Variable,Rank,Reduction,ENV,Environment,KernelBackend,DataStorage,image_ops as image,linalg_ops as linalg,loss_ops as losses,spectral_ops as spectral,op,batchNormalization2d,batchNormalization3d,batchNormalization4d,batchNormalization,complex,real,imag,concat,concat1d,concat2d,concat3d,concat4d,split$1 as split,conv1d,conv2d,conv3d,conv2dDerFilter,depthwiseConv2d,separableConv2d,conv2dTranspose,matMul,dot,outerProduct,reverse,reverse1d,reverse2d,reverse3d,reverse4d,maxPool,avgPool,pool,slice,slice1d,slice2d,slice3d,slice4d,abs,acos,acosh,asin,asinh,atan,atanh,ceil,clipByValue,cos,cosh,erf,exp,expm1,floor,log$1 as log,log1p,logSigmoid,neg,reciprocal,round,rsqrt,sigmoid,sign,sin,sinh,softplus,sqrt,square,step,tan,tanh$1 as tanh,all,any,argMax,argMin,logSumExp,max,mean,min,moments,sum$1 as sum,prod,equal,equalStrict,greater,greaterEqual,greaterEqualStrict,greaterStrict,less,lessEqual,lessEqualStrict,lessStrict,notEqual,notEqualStrict,add,addN,addStrict,atan2,div,divStrict,floorDiv,maximum,maximumStrict,minimum,minimumStrict,mod,modStrict,mul,mulStrict,pow,powStrict,squaredDifference,squaredDifferenceStrict,sub,subStrict,elu,leakyRelu,prelu,relu,selu,logicalAnd,logicalNot,logicalOr,logicalXor,where,whereAsync,buffer,toPixels,print,batchToSpaceND,cast,clone,cumsum,depthToSpace,expandDims,eye,fromPixels,multinomial,oneHot,pad,pad1d,pad2d,pad3d,pad4d,rand,randomNormal,randomUniform,reshape,spaceToBatchND,squeeze,stack,tile,truncatedNormal,unstack,setdiff1dAsync,fill,linspace,ones$1 as ones,range,scalar,tensor,tensor1d,tensor2d,tensor3d,tensor4d,tensor5d,tensor6d,zeros,onesLike,zerosLike,transpose,softmax,logSoftmax,localResponseNormalization,norm,gather,unsortedSegmentSum,basicLSTMCell,multiRNNCell,movingAverage,stridedSlice,topk,scatterND,fft,ifft,rfft,irfft,sparseToDense,gatherND,train,tidy,keep,dispose,time,profile,customGrad,grad,grads,valueAndGrad,valueAndGrads,variableGrads};\n//# sourceMappingURL=tf-core.esm.js.map\n","import { isValidNumber } from '../utils';\r\nvar Dimensions = /** @class */ (function () {\r\n function Dimensions(width, height) {\r\n if (!isValidNumber(width) || !isValidNumber(height)) {\r\n throw new Error(\"Dimensions.constructor - expected width and height to be valid numbers, instead have \" + JSON.stringify({ width: width, height: height }));\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n Object.defineProperty(Dimensions.prototype, \"width\", {\r\n get: function () { return this._width; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Dimensions.prototype, \"height\", {\r\n get: function () { return this._height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Dimensions.prototype.reverse = function () {\r\n return new Dimensions(1 / this.width, 1 / this.height);\r\n };\r\n return Dimensions;\r\n}());\r\nexport { Dimensions };\r\n//# sourceMappingURL=Dimensions.js.map","var Point = /** @class */ (function () {\r\n function Point(x, y) {\r\n this._x = x;\r\n this._y = y;\r\n }\r\n Object.defineProperty(Point.prototype, \"x\", {\r\n get: function () { return this._x; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Point.prototype, \"y\", {\r\n get: function () { return this._y; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Point.prototype.add = function (pt) {\r\n return new Point(this.x + pt.x, this.y + pt.y);\r\n };\r\n Point.prototype.sub = function (pt) {\r\n return new Point(this.x - pt.x, this.y - pt.y);\r\n };\r\n Point.prototype.mul = function (pt) {\r\n return new Point(this.x * pt.x, this.y * pt.y);\r\n };\r\n Point.prototype.div = function (pt) {\r\n return new Point(this.x / pt.x, this.y / pt.y);\r\n };\r\n Point.prototype.abs = function () {\r\n return new Point(Math.abs(this.x), Math.abs(this.y));\r\n };\r\n Point.prototype.magnitude = function () {\r\n return Math.sqrt(Math.pow(this.x, 2) + Math.pow(this.y, 2));\r\n };\r\n Point.prototype.floor = function () {\r\n return new Point(Math.floor(this.x), Math.floor(this.y));\r\n };\r\n return Point;\r\n}());\r\nexport { Point };\r\n//# sourceMappingURL=Point.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { Dimensions } from '../classes/Dimensions';\r\nimport { Point } from '../classes/Point';\r\nexport function isTensor(tensor, dim) {\r\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\r\n}\r\nexport function isTensor1D(tensor) {\r\n return isTensor(tensor, 1);\r\n}\r\nexport function isTensor2D(tensor) {\r\n return isTensor(tensor, 2);\r\n}\r\nexport function isTensor3D(tensor) {\r\n return isTensor(tensor, 3);\r\n}\r\nexport function isTensor4D(tensor) {\r\n return isTensor(tensor, 4);\r\n}\r\nexport function isFloat(num) {\r\n return num % 1 !== 0;\r\n}\r\nexport function isEven(num) {\r\n return num % 2 === 0;\r\n}\r\nexport function round(num, prec) {\r\n if (prec === void 0) { prec = 2; }\r\n var f = Math.pow(10, prec);\r\n return Math.floor(num * f) / f;\r\n}\r\nexport function isDimensions(obj) {\r\n return obj && obj.width && obj.height;\r\n}\r\nexport function computeReshapedDimensions(_a, inputSize) {\r\n var width = _a.width, height = _a.height;\r\n var scale = inputSize / Math.max(height, width);\r\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\r\n}\r\nexport function getCenterPoint(pts) {\r\n return pts.reduce(function (sum, pt) { return sum.add(pt); }, new Point(0, 0))\r\n .div(new Point(pts.length, pts.length));\r\n}\r\nexport function range(num, start, step) {\r\n return Array(num).fill(0).map(function (_, i) { return start + (i * step); });\r\n}\r\nexport function isValidNumber(num) {\r\n return !!num && num !== Infinity && num !== -Infinity && !isNaN(num) || num === 0;\r\n}\r\nexport function isValidProbablitiy(num) {\r\n return isValidNumber(num) && 0 <= num && num <= 1.0;\r\n}\r\n//# sourceMappingURL=index.js.map","import { isDimensions, isValidNumber } from '../utils';\r\nvar Box = /** @class */ (function () {\r\n // TODO: MTCNN boxes sometimes have negative widths or heights, figure out why and remove\r\n // allowNegativeDimensions flag again\r\n function Box(_box, allowNegativeDimensions) {\r\n if (allowNegativeDimensions === void 0) { allowNegativeDimensions = false; }\r\n var box = (_box || {});\r\n var isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\r\n var isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\r\n if (!isRect && !isBbox) {\r\n throw new Error(\"Box.constructor - expected box to be IBoundingBox | IRect, instead have \" + JSON.stringify(box));\r\n }\r\n var _a = isRect\r\n ? [box.x, box.y, box.width, box.height]\r\n : [box.left, box.top, box.right - box.left, box.bottom - box.top], x = _a[0], y = _a[1], width = _a[2], height = _a[3];\r\n Box.assertIsValidBox({ x: x, y: y, width: width, height: height }, 'Box.constructor', allowNegativeDimensions);\r\n this._x = x;\r\n this._y = y;\r\n this._width = width;\r\n this._height = height;\r\n }\r\n Box.isRect = function (rect) {\r\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\r\n };\r\n Box.assertIsValidBox = function (box, callee, allowNegativeDimensions) {\r\n if (allowNegativeDimensions === void 0) { allowNegativeDimensions = false; }\r\n if (!Box.isRect(box)) {\r\n throw new Error(callee + \" - invalid box: \" + JSON.stringify(box) + \", expected object with properties x, y, width, height\");\r\n }\r\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\r\n throw new Error(callee + \" - width (\" + box.width + \") and height (\" + box.height + \") must be positive numbers\");\r\n }\r\n };\r\n Object.defineProperty(Box.prototype, \"x\", {\r\n get: function () { return this._x; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"y\", {\r\n get: function () { return this._y; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"width\", {\r\n get: function () { return this._width; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"height\", {\r\n get: function () { return this._height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"left\", {\r\n get: function () { return this.x; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"top\", {\r\n get: function () { return this.y; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"right\", {\r\n get: function () { return this.x + this.width; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"bottom\", {\r\n get: function () { return this.y + this.height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Box.prototype, \"area\", {\r\n get: function () { return this.width * this.height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Box.prototype.round = function () {\r\n var _a = [this.x, this.y, this.width, this.height]\r\n .map(function (val) { return Math.round(val); }), x = _a[0], y = _a[1], width = _a[2], height = _a[3];\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.floor = function () {\r\n var _a = [this.x, this.y, this.width, this.height]\r\n .map(function (val) { return Math.floor(val); }), x = _a[0], y = _a[1], width = _a[2], height = _a[3];\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.toSquare = function () {\r\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n var diff = Math.abs(width - height);\r\n if (width < height) {\r\n x -= (diff / 2);\r\n width += diff;\r\n }\r\n if (height < width) {\r\n y -= (diff / 2);\r\n height += diff;\r\n }\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.rescale = function (s) {\r\n var scaleX = isDimensions(s) ? s.width : s;\r\n var scaleY = isDimensions(s) ? s.height : s;\r\n return new Box({\r\n x: this.x * scaleX,\r\n y: this.y * scaleY,\r\n width: this.width * scaleX,\r\n height: this.height * scaleY\r\n });\r\n };\r\n Box.prototype.pad = function (padX, padY) {\r\n var _a = [\r\n this.x - (padX / 2),\r\n this.y - (padY / 2),\r\n this.width + padX,\r\n this.height + padY\r\n ], x = _a[0], y = _a[1], width = _a[2], height = _a[3];\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.clipAtImageBorders = function (imgWidth, imgHeight) {\r\n var _a = this, x = _a.x, y = _a.y, right = _a.right, bottom = _a.bottom;\r\n var clippedX = Math.max(x, 0);\r\n var clippedY = Math.max(y, 0);\r\n var newWidth = right - clippedX;\r\n var newHeight = bottom - clippedY;\r\n var clippedWidth = Math.min(newWidth, imgWidth - clippedX);\r\n var clippedHeight = Math.min(newHeight, imgHeight - clippedY);\r\n return (new Box({ x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight })).floor();\r\n };\r\n Box.prototype.shift = function (sx, sy) {\r\n var _a = this, width = _a.width, height = _a.height;\r\n var x = this.x + sx;\r\n var y = this.y + sy;\r\n return new Box({ x: x, y: y, width: width, height: height });\r\n };\r\n Box.prototype.padAtBorders = function (imageHeight, imageWidth) {\r\n var w = this.width + 1;\r\n var h = this.height + 1;\r\n var dx = 1;\r\n var dy = 1;\r\n var edx = w;\r\n var edy = h;\r\n var x = this.left;\r\n var y = this.top;\r\n var ex = this.right;\r\n var ey = this.bottom;\r\n if (ex > imageWidth) {\r\n edx = -ex + imageWidth + w;\r\n ex = imageWidth;\r\n }\r\n if (ey > imageHeight) {\r\n edy = -ey + imageHeight + h;\r\n ey = imageHeight;\r\n }\r\n if (x < 1) {\r\n edy = 2 - x;\r\n x = 1;\r\n }\r\n if (y < 1) {\r\n edy = 2 - y;\r\n y = 1;\r\n }\r\n return { dy: dy, edy: edy, dx: dx, edx: edx, y: y, ey: ey, x: x, ex: ex, w: w, h: h };\r\n };\r\n Box.prototype.calibrate = function (region) {\r\n return new Box({\r\n left: this.left + (region.left * this.width),\r\n top: this.top + (region.top * this.height),\r\n right: this.right + (region.right * this.width),\r\n bottom: this.bottom + (region.bottom * this.height)\r\n }).toSquare().round();\r\n };\r\n return Box;\r\n}());\r\nexport { Box };\r\n//# sourceMappingURL=Box.js.map","import * as tslib_1 from \"tslib\";\r\nimport { Box } from './Box';\r\nvar BoundingBox = /** @class */ (function (_super) {\r\n tslib_1.__extends(BoundingBox, _super);\r\n function BoundingBox(left, top, right, bottom) {\r\n return _super.call(this, { left: left, top: top, right: right, bottom: bottom }) || this;\r\n }\r\n return BoundingBox;\r\n}(Box));\r\nexport { BoundingBox };\r\n//# sourceMappingURL=BoundingBox.js.map","import * as tslib_1 from \"tslib\";\r\nimport { Box } from './Box';\r\nvar BoxWithText = /** @class */ (function (_super) {\r\n tslib_1.__extends(BoxWithText, _super);\r\n function BoxWithText(box, text) {\r\n var _this = _super.call(this, box) || this;\r\n _this._text = text;\r\n return _this;\r\n }\r\n Object.defineProperty(BoxWithText.prototype, \"text\", {\r\n get: function () { return this._text; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return BoxWithText;\r\n}(Box));\r\nexport { BoxWithText };\r\n//# sourceMappingURL=BoxWithText.js.map","import * as tslib_1 from \"tslib\";\r\nimport { Box } from './Box';\r\nimport { isValidNumber } from '../utils/index';\r\nvar LabeledBox = /** @class */ (function (_super) {\r\n tslib_1.__extends(LabeledBox, _super);\r\n function LabeledBox(box, label) {\r\n var _this = _super.call(this, box) || this;\r\n _this._label = label;\r\n return _this;\r\n }\r\n LabeledBox.assertIsValidLabeledBox = function (box, callee) {\r\n Box.assertIsValidBox(box, callee);\r\n if (!isValidNumber(box.label)) {\r\n throw new Error(callee + \" - expected property label (\" + box.label + \") to be a number\");\r\n }\r\n };\r\n Object.defineProperty(LabeledBox.prototype, \"label\", {\r\n get: function () { return this._label; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return LabeledBox;\r\n}(Box));\r\nexport { LabeledBox };\r\n//# sourceMappingURL=LabeledBox.js.map","import { Box } from './Box';\r\nimport { Dimensions } from './Dimensions';\r\nvar ObjectDetection = /** @class */ (function () {\r\n function ObjectDetection(score, classScore, className, relativeBox, imageDims) {\r\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\r\n this._score = score;\r\n this._classScore = classScore;\r\n this._className = className;\r\n this._box = new Box(relativeBox).rescale(this._imageDims);\r\n }\r\n Object.defineProperty(ObjectDetection.prototype, \"score\", {\r\n get: function () { return this._score; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"classScore\", {\r\n get: function () { return this._classScore; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"className\", {\r\n get: function () { return this._className; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"box\", {\r\n get: function () { return this._box; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"imageDims\", {\r\n get: function () { return this._imageDims; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"imageWidth\", {\r\n get: function () { return this.imageDims.width; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"imageHeight\", {\r\n get: function () { return this.imageDims.height; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ObjectDetection.prototype, \"relativeBox\", {\r\n get: function () { return new Box(this._box).rescale(this.imageDims.reverse()); },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ObjectDetection.prototype.forSize = function (width, height) {\r\n return new ObjectDetection(this.score, this.classScore, this.className, this.relativeBox, { width: width, height: height });\r\n };\r\n return ObjectDetection;\r\n}());\r\nexport { ObjectDetection };\r\n//# sourceMappingURL=ObjectDetection.js.map","import * as tslib_1 from \"tslib\";\r\nimport { isValidProbablitiy } from '../utils';\r\nimport { LabeledBox } from './LabeledBox';\r\nvar PredictedBox = /** @class */ (function (_super) {\r\n tslib_1.__extends(PredictedBox, _super);\r\n function PredictedBox(box, label, score, classScore) {\r\n var _this = _super.call(this, box, label) || this;\r\n _this._score = score;\r\n _this._classScore = classScore;\r\n return _this;\r\n }\r\n PredictedBox.assertIsValidPredictedBox = function (box, callee) {\r\n LabeledBox.assertIsValidLabeledBox(box, callee);\r\n if (!isValidProbablitiy(box.score)\r\n || !isValidProbablitiy(box.classScore)) {\r\n throw new Error(callee + \" - expected properties score (\" + box.score + \") and (\" + box.classScore + \") to be a number between [0, 1]\");\r\n }\r\n };\r\n Object.defineProperty(PredictedBox.prototype, \"score\", {\r\n get: function () { return this._score; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(PredictedBox.prototype, \"classScore\", {\r\n get: function () { return this._classScore; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return PredictedBox;\r\n}(LabeledBox));\r\nexport { PredictedBox };\r\n//# sourceMappingURL=PredictedBox.js.map","import * as tslib_1 from \"tslib\";\r\nimport { Box } from './Box';\r\nvar Rect = /** @class */ (function (_super) {\r\n tslib_1.__extends(Rect, _super);\r\n function Rect(x, y, width, height) {\r\n return _super.call(this, { x: x, y: y, width: width, height: height }) || this;\r\n }\r\n return Rect;\r\n}(Box));\r\nexport { Rect };\r\n//# sourceMappingURL=Rect.js.map","export function disposeUnusedWeightTensors(weightMap, paramMappings) {\r\n Object.keys(weightMap).forEach(function (path) {\r\n if (!paramMappings.some(function (pm) { return pm.originalPath === path; })) {\r\n weightMap[path].dispose();\r\n }\r\n });\r\n}\r\n//# sourceMappingURL=disposeUnusedWeightTensors.js.map","import { isTensor } from '../utils';\r\nexport function extractWeightEntryFactory(weightMap, paramMappings) {\r\n return function (originalPath, paramRank, mappedPath) {\r\n var tensor = weightMap[originalPath];\r\n if (!isTensor(tensor, paramRank)) {\r\n throw new Error(\"expected weightMap[\" + originalPath + \"] to be a Tensor\" + paramRank + \"D, instead have \" + tensor);\r\n }\r\n paramMappings.push({ originalPath: originalPath, paramPath: mappedPath || originalPath });\r\n return tensor;\r\n };\r\n}\r\n//# sourceMappingURL=extractWeightEntryFactory.js.map","export function extractWeightsFactory(weights) {\r\n var remainingWeights = weights;\r\n function extractWeights(numWeights) {\r\n var ret = remainingWeights.slice(0, numWeights);\r\n remainingWeights = remainingWeights.slice(numWeights);\r\n return ret;\r\n }\r\n function getRemainingWeights() {\r\n return remainingWeights;\r\n }\r\n return {\r\n extractWeights: extractWeights,\r\n getRemainingWeights: getRemainingWeights\r\n };\r\n}\r\n//# sourceMappingURL=extractWeightsFactory.js.map","export function getModelUris(uri, defaultModelName) {\r\n var defaultManifestFilename = defaultModelName + \"-weights_manifest.json\";\r\n if (!uri) {\r\n return {\r\n modelBaseUri: '',\r\n manifestUri: defaultManifestFilename\r\n };\r\n }\r\n if (uri === '/') {\r\n return {\r\n modelBaseUri: '/',\r\n manifestUri: \"/\" + defaultManifestFilename\r\n };\r\n }\r\n var protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\r\n uri = uri.replace(protocol, '');\r\n var parts = uri.split('/').filter(function (s) { return s; });\r\n var manifestFile = uri.endsWith('.json')\r\n ? parts[parts.length - 1]\r\n : defaultManifestFilename;\r\n var modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\r\n modelBaseUri = uri.startsWith('/') ? \"/\" + modelBaseUri : modelBaseUri;\r\n return {\r\n modelBaseUri: modelBaseUri,\r\n manifestUri: modelBaseUri === '/' ? \"/\" + manifestFile : modelBaseUri + \"/\" + manifestFile\r\n };\r\n}\r\n//# sourceMappingURL=getModelUris.js.map","export function createBrowserEnv() {\r\n var fetch = window['fetch'] || function () {\r\n throw new Error('fetch - missing fetch implementation for browser environment');\r\n };\r\n var readFile = function () {\r\n throw new Error('readFile - filesystem not available for browser environment');\r\n };\r\n return {\r\n Canvas: HTMLCanvasElement,\r\n Image: HTMLImageElement,\r\n ImageData: ImageData,\r\n Video: HTMLVideoElement,\r\n createCanvasElement: function () { return document.createElement('canvas'); },\r\n createImageElement: function () { return document.createElement('img'); },\r\n fetch: fetch,\r\n readFile: readFile\r\n };\r\n}\r\n//# sourceMappingURL=createBrowserEnv.js.map","export function createFileSystem(fs) {\r\n var requireFsError = '';\r\n if (!fs) {\r\n try {\r\n fs = require('fs');\r\n }\r\n catch (err) {\r\n requireFsError = err.toString();\r\n }\r\n }\r\n var readFile = fs\r\n ? function (filePath) {\r\n return new Promise(function (res, rej) {\r\n fs.readFile(filePath, function (err, buffer) {\r\n return err ? rej(err) : res(buffer);\r\n });\r\n });\r\n }\r\n : function () {\r\n throw new Error(\"readFile - failed to require fs in nodejs environment with error: \" + requireFsError);\r\n };\r\n return {\r\n readFile: readFile\r\n };\r\n}\r\n//# sourceMappingURL=createFileSystem.js.map","import * as tslib_1 from \"tslib\";\r\nimport { createFileSystem } from './createFileSystem';\r\nexport function createNodejsEnv() {\r\n var Canvas = global['Canvas'] || global['HTMLCanvasElement'];\r\n var Image = global['Image'] || global['HTMLImageElement'];\r\n var createCanvasElement = function () {\r\n if (Canvas) {\r\n return new Canvas();\r\n }\r\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\r\n };\r\n var createImageElement = function () {\r\n if (Image) {\r\n return new Image();\r\n }\r\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\r\n };\r\n var fetch = global['fetch'] || function () {\r\n throw new Error('fetch - missing fetch implementation for nodejs environment');\r\n };\r\n var fileSystem = createFileSystem();\r\n return tslib_1.__assign({ Canvas: Canvas || /** @class */ (function () {\r\n function class_1() {\r\n }\r\n return class_1;\r\n }()), Image: Image || /** @class */ (function () {\r\n function class_2() {\r\n }\r\n return class_2;\r\n }()), ImageData: global['ImageData'] || /** @class */ (function () {\r\n function class_3() {\r\n }\r\n return class_3;\r\n }()), Video: global['HTMLVideoElement'] || /** @class */ (function () {\r\n function class_4() {\r\n }\r\n return class_4;\r\n }()), createCanvasElement: createCanvasElement,\r\n createImageElement: createImageElement,\r\n fetch: fetch }, fileSystem);\r\n}\r\n//# sourceMappingURL=createNodejsEnv.js.map","export function isBrowser() {\r\n return typeof window === 'object'\r\n && typeof document !== 'undefined'\r\n && typeof HTMLImageElement !== 'undefined'\r\n && typeof HTMLCanvasElement !== 'undefined'\r\n && typeof HTMLVideoElement !== 'undefined'\r\n && typeof ImageData !== 'undefined';\r\n}\r\n//# sourceMappingURL=isBrowser.js.map","export function isNodejs() {\r\n return typeof global === 'object'\r\n && typeof require === 'function'\r\n && typeof module !== 'undefined'\r\n // issues with gatsby.js: module.exports is undefined\r\n // && !!module.exports\r\n && typeof process !== 'undefined' && !!process.version;\r\n}\r\n//# sourceMappingURL=isNodejs.js.map","import { createBrowserEnv } from './createBrowserEnv';\r\nimport { createFileSystem } from './createFileSystem';\r\nimport { createNodejsEnv } from './createNodejsEnv';\r\nimport { isBrowser } from './isBrowser';\r\nimport { isNodejs } from './isNodejs';\r\nvar environment;\r\nfunction getEnv() {\r\n if (!environment) {\r\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\r\n }\r\n return environment;\r\n}\r\nfunction setEnv(env) {\r\n environment = env;\r\n}\r\nfunction initialize() {\r\n // check for isBrowser() first to prevent electron renderer process\r\n // to be initialized with wrong environment due to isNodejs() returning true\r\n if (isBrowser()) {\r\n setEnv(createBrowserEnv());\r\n }\r\n if (isNodejs()) {\r\n setEnv(createNodejsEnv());\r\n }\r\n}\r\nfunction monkeyPatch(env) {\r\n if (!environment) {\r\n initialize();\r\n }\r\n if (!environment) {\r\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\r\n }\r\n var _a = env.Canvas, Canvas = _a === void 0 ? environment.Canvas : _a, _b = env.Image, Image = _b === void 0 ? environment.Image : _b;\r\n environment.Canvas = Canvas;\r\n environment.Image = Image;\r\n environment.createCanvasElement = env.createCanvasElement || (function () { return new Canvas(); });\r\n environment.createImageElement = env.createImageElement || (function () { return new Image(); });\r\n environment.ImageData = env.ImageData || environment.ImageData;\r\n environment.Video = env.Video || environment.Video;\r\n environment.fetch = env.fetch || environment.fetch;\r\n environment.readFile = env.readFile || environment.readFile;\r\n}\r\nexport var env = {\r\n getEnv: getEnv,\r\n setEnv: setEnv,\r\n initialize: initialize,\r\n createBrowserEnv: createBrowserEnv,\r\n createFileSystem: createFileSystem,\r\n createNodejsEnv: createNodejsEnv,\r\n monkeyPatch: monkeyPatch,\r\n isBrowser: isBrowser,\r\n isNodejs: isNodejs\r\n};\r\ninitialize();\r\n//# sourceMappingURL=index.js.map","import { env } from '../env';\r\nexport function isMediaLoaded(media) {\r\n var _a = env.getEnv(), Image = _a.Image, Video = _a.Video;\r\n return (media instanceof Image && media.complete)\r\n || (media instanceof Video && media.readyState >= 3);\r\n}\r\n//# sourceMappingURL=isMediaLoaded.js.map","import { env } from '../env';\r\nimport { isMediaLoaded } from './isMediaLoaded';\r\nexport function awaitMediaLoaded(media) {\r\n return new Promise(function (resolve, reject) {\r\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) {\r\n return resolve();\r\n }\r\n function onLoad(e) {\r\n if (!e.currentTarget)\r\n return;\r\n e.currentTarget.removeEventListener('load', onLoad);\r\n e.currentTarget.removeEventListener('error', onError);\r\n resolve(e);\r\n }\r\n function onError(e) {\r\n if (!e.currentTarget)\r\n return;\r\n e.currentTarget.removeEventListener('load', onLoad);\r\n e.currentTarget.removeEventListener('error', onError);\r\n reject(e);\r\n }\r\n media.addEventListener('load', onLoad);\r\n media.addEventListener('error', onError);\r\n });\r\n}\r\n//# sourceMappingURL=awaitMediaLoaded.js.map","import { env } from '../env';\r\nexport function bufferToImage(buf) {\r\n return new Promise(function (resolve, reject) {\r\n if (!(buf instanceof Blob)) {\r\n return reject('bufferToImage - expected buf to be of type: Blob');\r\n }\r\n var reader = new FileReader();\r\n reader.onload = function () {\r\n if (typeof reader.result !== 'string') {\r\n return reject('bufferToImage - expected reader.result to be a string, in onload');\r\n }\r\n var img = env.getEnv().createImageElement();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n img.src = reader.result;\r\n };\r\n reader.onerror = reject;\r\n reader.readAsDataURL(buf);\r\n });\r\n}\r\n//# sourceMappingURL=bufferToImage.js.map","export function getContext2dOrThrow(canvas) {\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n throw new Error('canvas 2d context is null');\r\n }\r\n return ctx;\r\n}\r\n//# sourceMappingURL=getContext2dOrThrow.js.map","import { Dimensions } from '../classes/Dimensions';\r\nimport { env } from '../env';\r\nexport function getMediaDimensions(input) {\r\n var _a = env.getEnv(), Image = _a.Image, Video = _a.Video;\r\n if (input instanceof Image) {\r\n return new Dimensions(input.naturalWidth, input.naturalHeight);\r\n }\r\n if (input instanceof Video) {\r\n return new Dimensions(input.videoWidth, input.videoHeight);\r\n }\r\n return new Dimensions(input.width, input.height);\r\n}\r\n//# sourceMappingURL=getMediaDimensions.js.map","import { env } from '../env';\r\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\r\nimport { getMediaDimensions } from './getMediaDimensions';\r\nimport { isMediaLoaded } from './isMediaLoaded';\r\nexport function createCanvas(_a) {\r\n var width = _a.width, height = _a.height;\r\n var createCanvasElement = env.getEnv().createCanvasElement;\r\n var canvas = createCanvasElement();\r\n canvas.width = width;\r\n canvas.height = height;\r\n return canvas;\r\n}\r\nexport function createCanvasFromMedia(media, dims) {\r\n var ImageData = env.getEnv().ImageData;\r\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\r\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\r\n }\r\n var _a = dims || getMediaDimensions(media), width = _a.width, height = _a.height;\r\n var canvas = createCanvas({ width: width, height: height });\r\n if (media instanceof ImageData) {\r\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\r\n }\r\n else {\r\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\r\n }\r\n return canvas;\r\n}\r\n//# sourceMappingURL=createCanvas.js.map","export function getDefaultDrawOptions(options) {\r\n if (options === void 0) { options = {}; }\r\n return Object.assign({}, {\r\n boxColor: 'blue',\r\n textColor: 'red',\r\n lineWidth: 2,\r\n fontSize: 20,\r\n fontStyle: 'Georgia',\r\n withScore: true,\r\n withClassName: true\r\n }, options);\r\n}\r\n//# sourceMappingURL=getDefaultDrawOptions.js.map","import { getDefaultDrawOptions } from './getDefaultDrawOptions';\r\nexport function drawBox(ctx, x, y, w, h, options) {\r\n var drawOptions = Object.assign(getDefaultDrawOptions(), (options || {}));\r\n ctx.strokeStyle = drawOptions.boxColor;\r\n ctx.lineWidth = drawOptions.lineWidth;\r\n ctx.strokeRect(x, y, w, h);\r\n}\r\n//# sourceMappingURL=drawBox.js.map","import { getDefaultDrawOptions } from './getDefaultDrawOptions';\r\nexport function drawText(ctx, x, y, text, options) {\r\n if (options === void 0) { options = {}; }\r\n var drawOptions = Object.assign(getDefaultDrawOptions(), options);\r\n var padText = 2 + drawOptions.lineWidth;\r\n ctx.fillStyle = drawOptions.textColor;\r\n ctx.font = drawOptions.fontSize + \"px \" + drawOptions.fontStyle;\r\n ctx.fillText(text, x + padText, y + padText + (drawOptions.fontSize * 0.6));\r\n}\r\n//# sourceMappingURL=drawText.js.map","import { env } from '../env';\r\nexport function resolveInput(arg) {\r\n if (!env.isNodejs() && typeof arg === 'string') {\r\n return document.getElementById(arg);\r\n }\r\n return arg;\r\n}\r\n//# sourceMappingURL=resolveInput.js.map","import { BoxWithText } from '../classes/BoxWithText';\r\nimport { ObjectDetection } from '../classes/ObjectDetection';\r\nimport { PredictedBox } from '../classes/PredictedBox';\r\nimport { env } from '../env';\r\nimport { round } from '../utils';\r\nimport { drawBox } from './drawBox';\r\nimport { drawText } from './drawText';\r\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\r\nimport { getDefaultDrawOptions } from './getDefaultDrawOptions';\r\nimport { resolveInput } from './resolveInput';\r\nexport function drawDetection(canvasArg, detection, options) {\r\n var Canvas = env.getEnv().Canvas;\r\n var canvas = resolveInput(canvasArg);\r\n if (!(canvas instanceof Canvas)) {\r\n throw new Error('drawDetection - expected canvas to be of type: HTMLCanvasElement');\r\n }\r\n var detectionArray = Array.isArray(detection)\r\n ? detection\r\n : [detection];\r\n detectionArray.forEach(function (det) {\r\n var _a = det instanceof ObjectDetection ? det.box : det, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n var drawOptions = getDefaultDrawOptions(options);\r\n var ctx = getContext2dOrThrow(canvas);\r\n drawBox(ctx, x, y, width, height, drawOptions);\r\n var withScore = drawOptions.withScore;\r\n var text = det instanceof BoxWithText\r\n ? det.text\r\n : ((withScore && det instanceof PredictedBox)\r\n ? \"\" + round(det.score)\r\n : (det instanceof ObjectDetection\r\n ? \"\" + det.className + (withScore ? \" (\" + round(det.score) + \")\" : '')\r\n : ''));\r\n if (text) {\r\n drawText(ctx, x, y + height, text, drawOptions);\r\n }\r\n });\r\n}\r\n//# sourceMappingURL=drawDetection.js.map","import * as tslib_1 from \"tslib\";\r\nimport { env } from '../env';\r\nexport function fetchOrThrow(url, init) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var fetch, res;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n fetch = env.getEnv().fetch;\r\n return [4 /*yield*/, fetch(url, init)];\r\n case 1:\r\n res = _a.sent();\r\n if (!(res.status < 400)) {\r\n throw new Error(\"failed to fetch: (\" + res.status + \") \" + res.statusText + \", from url: \" + res.url);\r\n }\r\n return [2 /*return*/, res];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=fetchOrThrow.js.map","import * as tslib_1 from \"tslib\";\r\nimport { bufferToImage } from './bufferToImage';\r\nimport { fetchOrThrow } from './fetchOrThrow';\r\nexport function fetchImage(uri) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var res, blob;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, fetchOrThrow(uri)];\r\n case 1:\r\n res = _a.sent();\r\n return [4 /*yield*/, (res).blob()];\r\n case 2:\r\n blob = _a.sent();\r\n if (!blob.type.startsWith('image/')) {\r\n throw new Error(\"fetchImage - expected blob type to be of type image/*, instead have: \" + blob.type + \", for url: \" + res.url);\r\n }\r\n return [2 /*return*/, bufferToImage(blob)];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=fetchImage.js.map","import * as tslib_1 from \"tslib\";\r\nimport { fetchOrThrow } from './fetchOrThrow';\r\nexport function fetchJson(uri) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, fetchOrThrow(uri)];\r\n case 1: return [2 /*return*/, (_a.sent()).json()];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=fetchJson.js.map","import * as tslib_1 from \"tslib\";\r\nimport { fetchOrThrow } from './fetchOrThrow';\r\nexport function fetchNetWeights(uri) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = Float32Array.bind;\r\n return [4 /*yield*/, fetchOrThrow(uri)];\r\n case 1: return [4 /*yield*/, (_b.sent()).arrayBuffer()];\r\n case 2: return [2 /*return*/, new (_a.apply(Float32Array, [void 0, _b.sent()]))()];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=fetchNetWeights.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { env } from '../env';\r\nimport { isTensor4D } from '../utils';\r\nexport function imageTensorToCanvas(imgTensor, canvas) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var targetCanvas, _a, height, width, numChannels, imgTensor3D;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n targetCanvas = canvas || env.getEnv().createCanvasElement();\r\n _a = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0), height = _a[0], width = _a[1], numChannels = _a[2];\r\n imgTensor3D = tf.tidy(function () { return imgTensor.as3D(height, width, numChannels).toInt(); });\r\n return [4 /*yield*/, tf.toPixels(imgTensor3D, targetCanvas)];\r\n case 1:\r\n _b.sent();\r\n imgTensor3D.dispose();\r\n return [2 /*return*/, targetCanvas];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=imageTensorToCanvas.js.map","import { env } from '../env';\r\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\r\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\r\nimport { getMediaDimensions } from './getMediaDimensions';\r\nexport function imageToSquare(input, inputSize, centerImage) {\r\n if (centerImage === void 0) { centerImage = false; }\r\n var _a = env.getEnv(), Image = _a.Image, Canvas = _a.Canvas;\r\n if (!(input instanceof Image || input instanceof Canvas)) {\r\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\r\n }\r\n var dims = getMediaDimensions(input);\r\n var scale = inputSize / Math.max(dims.height, dims.width);\r\n var width = scale * dims.width;\r\n var height = scale * dims.height;\r\n var targetCanvas = createCanvas({ width: inputSize, height: inputSize });\r\n var inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\r\n var offset = Math.abs(width - height) / 2;\r\n var dx = centerImage && width < height ? offset : 0;\r\n var dy = centerImage && height < width ? offset : 0;\r\n getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\r\n return targetCanvas;\r\n}\r\n//# sourceMappingURL=imageToSquare.js.map","import { env } from '../env';\r\nexport function isMediaElement(input) {\r\n var _a = env.getEnv(), Image = _a.Image, Canvas = _a.Canvas, Video = _a.Video;\r\n return input instanceof Image\r\n || input instanceof Canvas\r\n || input instanceof Video;\r\n}\r\n//# sourceMappingURL=isMediaElement.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { getModelUris } from '../common/getModelUris';\r\nimport { fetchJson } from './fetchJson';\r\nexport function loadWeightMap(uri, defaultModelName) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _a, manifestUri, modelBaseUri, manifest;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = getModelUris(uri, defaultModelName), manifestUri = _a.manifestUri, modelBaseUri = _a.modelBaseUri;\r\n return [4 /*yield*/, fetchJson(manifestUri)];\r\n case 1:\r\n manifest = _b.sent();\r\n return [2 /*return*/, tf.io.loadWeights(manifest, modelBaseUri)];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=loadWeightMap.js.map","import * as tf from '@tensorflow/tfjs-core';\r\n/**\r\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\r\n *\r\n * @param imgTensor The image tensor.\r\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\r\n * both sides of the minor dimension oof the image.\r\n * @returns The padded tensor with width === height.\r\n */\r\nexport function padToSquare(imgTensor, isCenterImage) {\r\n if (isCenterImage === void 0) { isCenterImage = false; }\r\n return tf.tidy(function () {\r\n var _a = imgTensor.shape.slice(1), height = _a[0], width = _a[1];\r\n if (height === width) {\r\n return imgTensor;\r\n }\r\n var dimDiff = Math.abs(height - width);\r\n var paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\r\n var paddingAxis = height > width ? 2 : 1;\r\n var createPaddingTensor = function (paddingAmount) {\r\n var paddingTensorShape = imgTensor.shape.slice();\r\n paddingTensorShape[paddingAxis] = paddingAmount;\r\n return tf.fill(paddingTensorShape, 0);\r\n };\r\n var paddingTensorAppend = createPaddingTensor(paddingAmount);\r\n var remainingPaddingAmount = dimDiff - paddingTensorAppend.shape[paddingAxis];\r\n var paddingTensorPrepend = isCenterImage && remainingPaddingAmount\r\n ? createPaddingTensor(remainingPaddingAmount)\r\n : null;\r\n var tensorsToStack = [\r\n paddingTensorPrepend,\r\n imgTensor,\r\n paddingTensorAppend\r\n ]\r\n .filter(function (t) { return !!t; })\r\n .map(function (t) { return t.toFloat(); });\r\n return tf.concat(tensorsToStack, paddingAxis);\r\n });\r\n}\r\n//# sourceMappingURL=padToSquare.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { env } from '../env';\r\nimport { padToSquare } from '../ops/padToSquare';\r\nimport { computeReshapedDimensions, isTensor3D, isTensor4D, range } from '../utils';\r\nimport { createCanvasFromMedia } from './createCanvas';\r\nimport { imageToSquare } from './imageToSquare';\r\nvar NetInput = /** @class */ (function () {\r\n function NetInput(inputs, treatAsBatchInput) {\r\n if (treatAsBatchInput === void 0) { treatAsBatchInput = false; }\r\n var _this = this;\r\n this._imageTensors = [];\r\n this._canvases = [];\r\n this._treatAsBatchInput = false;\r\n this._inputDimensions = [];\r\n if (!Array.isArray(inputs)) {\r\n throw new Error(\"NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have \" + inputs);\r\n }\r\n this._treatAsBatchInput = treatAsBatchInput;\r\n this._batchSize = inputs.length;\r\n inputs.forEach(function (input, idx) {\r\n if (isTensor3D(input)) {\r\n _this._imageTensors[idx] = input;\r\n _this._inputDimensions[idx] = input.shape;\r\n return;\r\n }\r\n if (isTensor4D(input)) {\r\n var batchSize = input.shape[0];\r\n if (batchSize !== 1) {\r\n throw new Error(\"NetInput - tf.Tensor4D with batchSize \" + batchSize + \" passed, but not supported in input array\");\r\n }\r\n _this._imageTensors[idx] = input;\r\n _this._inputDimensions[idx] = input.shape.slice(1);\r\n return;\r\n }\r\n var canvas = input instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\r\n _this._canvases[idx] = canvas;\r\n _this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\r\n });\r\n }\r\n Object.defineProperty(NetInput.prototype, \"imageTensors\", {\r\n get: function () {\r\n return this._imageTensors;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"canvases\", {\r\n get: function () {\r\n return this._canvases;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"isBatchInput\", {\r\n get: function () {\r\n return this.batchSize > 1 || this._treatAsBatchInput;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"batchSize\", {\r\n get: function () {\r\n return this._batchSize;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"inputDimensions\", {\r\n get: function () {\r\n return this._inputDimensions;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"inputSize\", {\r\n get: function () {\r\n return this._inputSize;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NetInput.prototype, \"reshapedInputDimensions\", {\r\n get: function () {\r\n var _this = this;\r\n return range(this.batchSize, 0, 1).map(function (_, batchIdx) { return _this.getReshapedInputDimensions(batchIdx); });\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n NetInput.prototype.getInput = function (batchIdx) {\r\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\r\n };\r\n NetInput.prototype.getInputDimensions = function (batchIdx) {\r\n return this._inputDimensions[batchIdx];\r\n };\r\n NetInput.prototype.getInputHeight = function (batchIdx) {\r\n return this._inputDimensions[batchIdx][0];\r\n };\r\n NetInput.prototype.getInputWidth = function (batchIdx) {\r\n return this._inputDimensions[batchIdx][1];\r\n };\r\n NetInput.prototype.getReshapedInputDimensions = function (batchIdx) {\r\n if (typeof this.inputSize !== 'number') {\r\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\r\n }\r\n var width = this.getInputWidth(batchIdx);\r\n var height = this.getInputHeight(batchIdx);\r\n return computeReshapedDimensions({ width: width, height: height }, this.inputSize);\r\n };\r\n /**\r\n * Create a batch tensor from all input canvases and tensors\r\n * with size [batchSize, inputSize, inputSize, 3].\r\n *\r\n * @param inputSize Height and width of the tensor.\r\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\r\n * both sides of the minor dimension oof the image.\r\n * @returns The batch tensor.\r\n */\r\n NetInput.prototype.toBatchTensor = function (inputSize, isCenterInputs) {\r\n var _this = this;\r\n if (isCenterInputs === void 0) { isCenterInputs = true; }\r\n this._inputSize = inputSize;\r\n return tf.tidy(function () {\r\n var inputTensors = range(_this.batchSize, 0, 1).map(function (batchIdx) {\r\n var input = _this.getInput(batchIdx);\r\n if (input instanceof tf.Tensor) {\r\n var imgTensor = isTensor4D(input) ? input : input.expandDims();\r\n imgTensor = padToSquare(imgTensor, isCenterInputs);\r\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\r\n imgTensor = tf.image.resizeBilinear(imgTensor, [inputSize, inputSize]);\r\n }\r\n return imgTensor.as3D(inputSize, inputSize, 3);\r\n }\r\n if (input instanceof env.getEnv().Canvas) {\r\n return tf.fromPixels(imageToSquare(input, inputSize, isCenterInputs));\r\n }\r\n throw new Error(\"toBatchTensor - at batchIdx \" + batchIdx + \", expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have \" + input);\r\n });\r\n var batchTensor = tf.stack(inputTensors.map(function (t) { return t.toFloat(); })).as4D(_this.batchSize, inputSize, inputSize, 3);\r\n return batchTensor;\r\n });\r\n };\r\n return NetInput;\r\n}());\r\nexport { NetInput };\r\n//# sourceMappingURL=NetInput.js.map","import * as tslib_1 from \"tslib\";\r\nimport { isTensor3D, isTensor4D } from '../utils';\r\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\r\nimport { isMediaElement } from './isMediaElement';\r\nimport { NetInput } from './NetInput';\r\nimport { resolveInput } from './resolveInput';\r\n/**\r\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\r\n * to be finished loading.\r\n *\r\n * @param input The input, which can be a media element or an array of different media elements.\r\n * @returns A NetInput instance, which can be passed into one of the neural networks.\r\n */\r\nexport function toNetInput(inputs) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var inputArgArray, getIdxHint, inputArray;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (inputs instanceof NetInput) {\r\n return [2 /*return*/, inputs];\r\n }\r\n inputArgArray = Array.isArray(inputs)\r\n ? inputs\r\n : [inputs];\r\n if (!inputArgArray.length) {\r\n throw new Error('toNetInput - empty array passed as input');\r\n }\r\n getIdxHint = function (idx) { return Array.isArray(inputs) ? \" at input index \" + idx + \":\" : ''; };\r\n inputArray = inputArgArray.map(resolveInput);\r\n inputArray.forEach(function (input, i) {\r\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\r\n if (typeof inputArgArray[i] === 'string') {\r\n throw new Error(\"toNetInput -\" + getIdxHint(i) + \" string passed, but could not resolve HTMLElement for element id \" + inputArgArray[i]);\r\n }\r\n throw new Error(\"toNetInput -\" + getIdxHint(i) + \" expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id\");\r\n }\r\n if (isTensor4D(input)) {\r\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\r\n var batchSize = input.shape[0];\r\n if (batchSize !== 1) {\r\n throw new Error(\"toNetInput -\" + getIdxHint(i) + \" tf.Tensor4D with batchSize \" + batchSize + \" passed, but not supported in input array\");\r\n }\r\n }\r\n });\r\n // wait for all media elements being loaded\r\n return [4 /*yield*/, Promise.all(inputArray.map(function (input) { return isMediaElement(input) && awaitMediaLoaded(input); }))];\r\n case 1:\r\n // wait for all media elements being loaded\r\n _a.sent();\r\n return [2 /*return*/, new NetInput(inputArray, Array.isArray(inputs))];\r\n }\r\n });\r\n });\r\n}\r\n//# sourceMappingURL=toNetInput.js.map","export function iou(box1, box2, isIOU) {\r\n if (isIOU === void 0) { isIOU = true; }\r\n var width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\r\n var height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\r\n var interSection = width * height;\r\n return isIOU\r\n ? interSection / (box1.area + box2.area - interSection)\r\n : interSection / Math.min(box1.area, box2.area);\r\n}\r\n//# sourceMappingURL=iou.js.map","import { iou } from './iou';\r\nexport function nonMaxSuppression(boxes, scores, iouThreshold, isIOU) {\r\n if (isIOU === void 0) { isIOU = true; }\r\n var indicesSortedByScore = scores\r\n .map(function (score, boxIndex) { return ({ score: score, boxIndex: boxIndex }); })\r\n .sort(function (c1, c2) { return c1.score - c2.score; })\r\n .map(function (c) { return c.boxIndex; });\r\n var pick = [];\r\n var _loop_1 = function () {\r\n var curr = indicesSortedByScore.pop();\r\n pick.push(curr);\r\n var indices = indicesSortedByScore;\r\n var outputs = [];\r\n for (var i = 0; i < indices.length; i++) {\r\n var idx = indices[i];\r\n var currBox = boxes[curr];\r\n var idxBox = boxes[idx];\r\n outputs.push(iou(currBox, idxBox, isIOU));\r\n }\r\n indicesSortedByScore = indicesSortedByScore.filter(function (_, j) { return outputs[j] <= iouThreshold; });\r\n };\r\n while (indicesSortedByScore.length > 0) {\r\n _loop_1();\r\n }\r\n return pick;\r\n}\r\n//# sourceMappingURL=nonMaxSuppression.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nexport function normalize(x, meanRgb) {\r\n return tf.tidy(function () {\r\n var r = meanRgb[0], g = meanRgb[1], b = meanRgb[2];\r\n var avg_r = tf.fill(x.shape.slice(0, 3).concat([1]), r);\r\n var avg_g = tf.fill(x.shape.slice(0, 3).concat([1]), g);\r\n var avg_b = tf.fill(x.shape.slice(0, 3).concat([1]), b);\r\n var avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\r\n return tf.sub(x, avg_rgb);\r\n });\r\n}\r\n//# sourceMappingURL=normalize.js.map","export function shuffleArray(inputArray) {\r\n var array = inputArray.slice();\r\n for (var i = array.length - 1; i > 0; i--) {\r\n var j = Math.floor(Math.random() * (i + 1));\r\n var x = array[i];\r\n array[i] = array[j];\r\n array[j] = x;\r\n }\r\n return array;\r\n}\r\n//# sourceMappingURL=shuffleArray.js.map","export * from './iou';\r\nexport * from './nonMaxSuppression';\r\nexport * from './normalize';\r\nexport * from './padToSquare';\r\nexport * from './shuffleArray';\r\nexport function sigmoid(x) {\r\n return 1 / (1 + Math.exp(-x));\r\n}\r\nexport function inverseSigmoid(x) {\r\n return Math.log(x / (1 - x));\r\n}\r\n//# sourceMappingURL=index.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { getModelUris } from './common/getModelUris';\r\nimport { loadWeightMap } from './dom';\r\nimport { env } from './env';\r\nvar NeuralNetwork = /** @class */ (function () {\r\n function NeuralNetwork(_name) {\r\n this._name = _name;\r\n this._params = undefined;\r\n this._paramMappings = [];\r\n }\r\n Object.defineProperty(NeuralNetwork.prototype, \"params\", {\r\n get: function () { return this._params; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NeuralNetwork.prototype, \"paramMappings\", {\r\n get: function () { return this._paramMappings; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(NeuralNetwork.prototype, \"isLoaded\", {\r\n get: function () { return !!this.params; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n NeuralNetwork.prototype.getParamFromPath = function (paramPath) {\r\n var _a = this.traversePropertyPath(paramPath), obj = _a.obj, objProp = _a.objProp;\r\n return obj[objProp];\r\n };\r\n NeuralNetwork.prototype.reassignParamFromPath = function (paramPath, tensor) {\r\n var _a = this.traversePropertyPath(paramPath), obj = _a.obj, objProp = _a.objProp;\r\n obj[objProp].dispose();\r\n obj[objProp] = tensor;\r\n };\r\n NeuralNetwork.prototype.getParamList = function () {\r\n var _this = this;\r\n return this._paramMappings.map(function (_a) {\r\n var paramPath = _a.paramPath;\r\n return ({\r\n path: paramPath,\r\n tensor: _this.getParamFromPath(paramPath)\r\n });\r\n });\r\n };\r\n NeuralNetwork.prototype.getTrainableParams = function () {\r\n return this.getParamList().filter(function (param) { return param.tensor instanceof tf.Variable; });\r\n };\r\n NeuralNetwork.prototype.getFrozenParams = function () {\r\n return this.getParamList().filter(function (param) { return !(param.tensor instanceof tf.Variable); });\r\n };\r\n NeuralNetwork.prototype.variable = function () {\r\n var _this = this;\r\n this.getFrozenParams().forEach(function (_a) {\r\n var path = _a.path, tensor = _a.tensor;\r\n _this.reassignParamFromPath(path, tensor.variable());\r\n });\r\n };\r\n NeuralNetwork.prototype.freeze = function () {\r\n var _this = this;\r\n this.getTrainableParams().forEach(function (_a) {\r\n var path = _a.path, variable = _a.tensor;\r\n var tensor = tf.tensor(variable.dataSync());\r\n variable.dispose();\r\n _this.reassignParamFromPath(path, tensor);\r\n });\r\n };\r\n NeuralNetwork.prototype.dispose = function (throwOnRedispose) {\r\n if (throwOnRedispose === void 0) { throwOnRedispose = true; }\r\n this.getParamList().forEach(function (param) {\r\n if (throwOnRedispose && param.tensor.isDisposed) {\r\n throw new Error(\"param tensor has already been disposed for path \" + param.path);\r\n }\r\n param.tensor.dispose();\r\n });\r\n this._params = undefined;\r\n };\r\n NeuralNetwork.prototype.serializeParams = function () {\r\n return new Float32Array(this.getParamList()\r\n .map(function (_a) {\r\n var tensor = _a.tensor;\r\n return Array.from(tensor.dataSync());\r\n })\r\n .reduce(function (flat, arr) { return flat.concat(arr); }));\r\n };\r\n NeuralNetwork.prototype.load = function (weightsOrUrl) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (weightsOrUrl instanceof Float32Array) {\r\n this.extractWeights(weightsOrUrl);\r\n return [2 /*return*/];\r\n }\r\n return [4 /*yield*/, this.loadFromUri(weightsOrUrl)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n NeuralNetwork.prototype.loadFromUri = function (uri) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var weightMap;\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (uri && typeof uri !== 'string') {\r\n throw new Error(this._name + \".loadFromUri - expected model uri\");\r\n }\r\n return [4 /*yield*/, loadWeightMap(uri, this.getDefaultModelName())];\r\n case 1:\r\n weightMap = _a.sent();\r\n this.loadFromWeightMap(weightMap);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n NeuralNetwork.prototype.loadFromDisk = function (filePath) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var readFile, _a, manifestUri, modelBaseUri, fetchWeightsFromDisk, loadWeights, manifest, _b, _c, weightMap;\r\n return tslib_1.__generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n if (filePath && typeof filePath !== 'string') {\r\n throw new Error(this._name + \".loadFromDisk - expected model file path\");\r\n }\r\n readFile = env.getEnv().readFile;\r\n _a = getModelUris(filePath, this.getDefaultModelName()), manifestUri = _a.manifestUri, modelBaseUri = _a.modelBaseUri;\r\n fetchWeightsFromDisk = function (filePaths) { return Promise.all(filePaths.map(function (filePath) { return readFile(filePath).then(function (buf) { return buf.buffer; }); })); };\r\n loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk);\r\n _c = (_b = JSON).parse;\r\n return [4 /*yield*/, readFile(manifestUri)];\r\n case 1:\r\n manifest = _c.apply(_b, [(_d.sent()).toString()]);\r\n return [4 /*yield*/, loadWeights(manifest, modelBaseUri)];\r\n case 2:\r\n weightMap = _d.sent();\r\n this.loadFromWeightMap(weightMap);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n NeuralNetwork.prototype.loadFromWeightMap = function (weightMap) {\r\n var _a = this.extractParamsFromWeigthMap(weightMap), paramMappings = _a.paramMappings, params = _a.params;\r\n this._paramMappings = paramMappings;\r\n this._params = params;\r\n };\r\n NeuralNetwork.prototype.extractWeights = function (weights) {\r\n var _a = this.extractParams(weights), paramMappings = _a.paramMappings, params = _a.params;\r\n this._paramMappings = paramMappings;\r\n this._params = params;\r\n };\r\n NeuralNetwork.prototype.traversePropertyPath = function (paramPath) {\r\n if (!this.params) {\r\n throw new Error(\"traversePropertyPath - model has no loaded params\");\r\n }\r\n var result = paramPath.split('/').reduce(function (res, objProp) {\r\n if (!res.nextObj.hasOwnProperty(objProp)) {\r\n throw new Error(\"traversePropertyPath - object does not have property \" + objProp + \", for path \" + paramPath);\r\n }\r\n return { obj: res.nextObj, objProp: objProp, nextObj: res.nextObj[objProp] };\r\n }, { nextObj: this.params });\r\n var obj = result.obj, objProp = result.objProp;\r\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\r\n throw new Error(\"traversePropertyPath - parameter is not a tensor, for path \" + paramPath);\r\n }\r\n return { obj: obj, objProp: objProp };\r\n };\r\n return NeuralNetwork;\r\n}());\r\nexport { NeuralNetwork };\r\n//# sourceMappingURL=NeuralNetwork.js.map","import { Box, IDimensions, ObjectDetection, Rect } from 'tfjs-image-recognition-base';\r\n\r\nexport interface IFaceDetecion {\r\n score: number\r\n box: Box\r\n}\r\n\r\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\r\n constructor(\r\n score: number,\r\n relativeBox: Rect,\r\n imageDims: IDimensions\r\n ) {\r\n super(score, score, '', relativeBox, imageDims)\r\n }\r\n\r\n public forSize(width: number, height: number): FaceDetection {\r\n return super.forSize(width, height)\r\n }\r\n}","import { Dimensions, getCenterPoint, IDimensions, Point, Rect } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from './FaceDetection';\r\n\r\n// face alignment constants\r\nconst relX = 0.5\r\nconst relY = 0.43\r\nconst relScale = 0.45\r\n\r\nexport interface IFaceLandmarks {\r\n positions: Point[]\r\n shift: Point\r\n}\r\n\r\nexport class FaceLandmarks implements IFaceLandmarks {\r\n protected _shift: Point\r\n protected _positions: Point[]\r\n protected _imgDims: Dimensions\r\n\r\n constructor(\r\n relativeFaceLandmarkPositions: Point[],\r\n imgDims: IDimensions,\r\n shift: Point = new Point(0, 0)\r\n ) {\r\n const { width, height } = imgDims\r\n this._imgDims = new Dimensions(width, height)\r\n this._shift = shift\r\n this._positions = relativeFaceLandmarkPositions.map(\r\n pt => pt.mul(new Point(width, height)).add(shift)\r\n )\r\n }\r\n\r\n public get shift(): Point { return new Point(this._shift.x, this._shift.y) }\r\n public get imageWidth(): number { return this._imgDims.width }\r\n public get imageHeight(): number { return this._imgDims.height }\r\n public get positions(): Point[] { return this._positions }\r\n public get relativePositions(): Point[] {\r\n return this._positions.map(\r\n pt => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight))\r\n )\r\n }\r\n\r\n public forSize(width: number, height: number): T {\r\n return new (this.constructor as any)(\r\n this.relativePositions,\r\n { width, height }\r\n )\r\n }\r\n\r\n public shiftBy(x: number, y: number): T {\r\n return new (this.constructor as any)(\r\n this.relativePositions,\r\n this._imgDims,\r\n new Point(x, y)\r\n )\r\n }\r\n\r\n public shiftByPoint(pt: Point): T {\r\n return this.shiftBy(pt.x, pt.y)\r\n }\r\n\r\n /**\r\n * Aligns the face landmarks after face detection from the relative positions of the faces\r\n * bounding box, or it's current shift. This function should be used to align the face images\r\n * after face detection has been performed, before they are passed to the face recognition net.\r\n * This will make the computed face descriptor more accurate.\r\n *\r\n * @param detection (optional) The bounding box of the face or the face detection result. If\r\n * no argument was passed the position of the face landmarks are assumed to be relative to\r\n * it's current shift.\r\n * @returns The bounding box of the aligned face.\r\n */\r\n public align(\r\n detection?: FaceDetection | Rect\r\n ): Rect {\r\n if (detection) {\r\n const box = detection instanceof FaceDetection\r\n ? detection.box.floor()\r\n : detection\r\n\r\n return this.shiftBy(box.x, box.y).align()\r\n }\r\n\r\n const centers = this.getRefPointsForAlignment()\r\n\r\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers\r\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude()\r\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2\r\n\r\n const size = Math.floor(eyeToMouthDist / relScale)\r\n\r\n const refPoint = getCenterPoint(centers)\r\n // TODO: pad in case rectangle is out of image bounds\r\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)))\r\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)))\r\n\r\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y))\r\n }\r\n\r\n protected getRefPointsForAlignment(): Point[] {\r\n throw new Error('getRefPointsForAlignment not implemented by base class')\r\n }\r\n}","import { getCenterPoint, Point } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks } from './FaceLandmarks';\r\n\r\nexport class FaceLandmarks5 extends FaceLandmarks {\r\n\r\n protected getRefPointsForAlignment(): Point[] {\r\n const pts = this.positions\r\n return [\r\n pts[0],\r\n pts[1],\r\n getCenterPoint([pts[3], pts[4]])\r\n ]\r\n }\r\n}","import { getCenterPoint, Point } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\r\n\r\nexport class FaceLandmarks68 extends FaceLandmarks {\r\n public getJawOutline(): Point[] {\r\n return this.positions.slice(0, 17)\r\n }\r\n\r\n public getLeftEyeBrow(): Point[] {\r\n return this.positions.slice(17, 22)\r\n }\r\n\r\n public getRightEyeBrow(): Point[] {\r\n return this.positions.slice(22, 27)\r\n }\r\n\r\n public getNose(): Point[] {\r\n return this.positions.slice(27, 36)\r\n }\r\n\r\n public getLeftEye(): Point[] {\r\n return this.positions.slice(36, 42)\r\n }\r\n\r\n public getRightEye(): Point[] {\r\n return this.positions.slice(42, 48)\r\n }\r\n\r\n public getMouth(): Point[] {\r\n return this.positions.slice(48, 68)\r\n }\r\n\r\n protected getRefPointsForAlignment(): Point[] {\r\n return [\r\n this.getLeftEye(),\r\n this.getRightEye(),\r\n this.getMouth()\r\n ].map(getCenterPoint)\r\n }\r\n}","import { round } from 'tfjs-image-recognition-base';\r\n\r\nexport interface IFaceMatch {\r\n label: string\r\n distance: number\r\n}\r\n\r\nexport class FaceMatch implements IFaceMatch {\r\n private _label: string\r\n private _distance: number\r\n\r\n constructor(label: string, distance: number) {\r\n this._label = label\r\n this._distance = distance\r\n }\r\n\r\n public get label(): string { return this._label }\r\n public get distance(): number { return this._distance }\r\n\r\n public toString(withDistance: boolean = true): string {\r\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`\r\n }\r\n}","export class LabeledFaceDescriptors {\r\n private _label: string\r\n private _descriptors: Float32Array[]\r\n\r\n constructor(label: string, descriptors: Float32Array[]) {\r\n if (!(typeof label === 'string')) {\r\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string')\r\n }\r\n\r\n if (!Array.isArray(descriptors) || descriptors.some(desc => !(desc instanceof Float32Array))) {\r\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array')\r\n }\r\n\r\n this._label = label\r\n this._descriptors = descriptors\r\n }\r\n\r\n public get label(): string { return this._label }\r\n public get descriptors(): Float32Array[] { return this._descriptors }\r\n}","import { Point } from 'tfjs-image-recognition-base';\r\n\r\nexport function drawContour(\r\n ctx: CanvasRenderingContext2D,\r\n points: Point[],\r\n isClosed: boolean = false\r\n) {\r\n ctx.beginPath()\r\n\r\n points.slice(1).forEach(({ x, y }, prevIdx) => {\r\n const from = points[prevIdx]\r\n ctx.moveTo(from.x, from.y)\r\n ctx.lineTo(x, y)\r\n })\r\n\r\n if (isClosed) {\r\n const from = points[points.length - 1]\r\n const to = points[0]\r\n if (!from || !to) {\r\n return\r\n }\r\n\r\n ctx.moveTo(from.x, from.y)\r\n ctx.lineTo(to.x, to.y)\r\n }\r\n\r\n ctx.stroke()\r\n}","import { env, getContext2dOrThrow, getDefaultDrawOptions, resolveInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { drawContour } from './drawContour';\r\nimport { DrawLandmarksOptions } from './types';\r\n\r\nexport function drawLandmarks(\r\n canvasArg: string | HTMLCanvasElement,\r\n faceLandmarks: FaceLandmarks | FaceLandmarks[],\r\n options?: DrawLandmarksOptions\r\n) {\r\n const canvas = resolveInput(canvasArg)\r\n if (!(canvas instanceof env.getEnv().Canvas)) {\r\n throw new Error('drawLandmarks - expected canvas to be of type: HTMLCanvasElement')\r\n }\r\n\r\n const drawOptions = Object.assign(\r\n getDefaultDrawOptions(options),\r\n (options || {})\r\n )\r\n\r\n const { drawLines } = Object.assign({ drawLines: false }, (options || {}))\r\n\r\n const ctx = getContext2dOrThrow(canvas)\r\n const { lineWidth, color = 'blue' } = drawOptions\r\n\r\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks]\r\n\r\n faceLandmarksArray.forEach(landmarks => {\r\n if (drawLines && landmarks instanceof FaceLandmarks68) {\r\n ctx.strokeStyle = color\r\n ctx.lineWidth = lineWidth\r\n drawContour(ctx, landmarks.getJawOutline())\r\n drawContour(ctx, landmarks.getLeftEyeBrow())\r\n drawContour(ctx, landmarks.getRightEyeBrow())\r\n drawContour(ctx, landmarks.getNose())\r\n drawContour(ctx, landmarks.getLeftEye(), true)\r\n drawContour(ctx, landmarks.getRightEye(), true)\r\n drawContour(ctx, landmarks.getMouth(), true)\r\n return\r\n }\r\n\r\n // else draw points\r\n const ptOffset = lineWidth / 2\r\n ctx.fillStyle = color\r\n landmarks.positions.forEach(pt => ctx.fillRect(pt.x - ptOffset, pt.y - ptOffset, lineWidth, lineWidth))\r\n })\r\n}","import { drawText, env, getContext2dOrThrow, getDefaultDrawOptions, resolveInput, round } from 'tfjs-image-recognition-base';\r\nimport { IRect } from 'tfjs-tiny-yolov2';\r\n\r\nimport { DrawFaceExpressionsInput, DrawFaceExpressionsOptions } from './types';\r\n\r\nexport function drawFaceExpressions(\r\n canvasArg: string | HTMLCanvasElement,\r\n faceExpressions: DrawFaceExpressionsInput | DrawFaceExpressionsInput[],\r\n options?: DrawFaceExpressionsOptions\r\n) {\r\n const canvas = resolveInput(canvasArg)\r\n if (!(canvas instanceof env.getEnv().Canvas)) {\r\n throw new Error('drawFaceExpressions - expected canvas to be of type: HTMLCanvasElement')\r\n }\r\n\r\n const drawOptions = Object.assign(\r\n getDefaultDrawOptions(options),\r\n (options || {})\r\n )\r\n\r\n const ctx = getContext2dOrThrow(canvas)\r\n const {\r\n primaryColor = 'red',\r\n secondaryColor = 'blue',\r\n primaryFontSize = 22,\r\n secondaryFontSize = 16,\r\n minConfidence = 0.2\r\n } = drawOptions\r\n\r\n const faceExpressionsArray = Array.isArray(faceExpressions)\r\n ? faceExpressions\r\n : [faceExpressions]\r\n\r\n faceExpressionsArray.forEach(({ position, expressions }) => {\r\n const { x, y } = position\r\n const height = (position as IRect).height || 0\r\n const sorted = expressions.sort((a, b) => b.probability - a.probability)\r\n const resultsToDisplay = sorted.filter(expr => expr.probability > minConfidence)\r\n\r\n let offset = (y + height + resultsToDisplay.length * primaryFontSize) > canvas.height\r\n ? -(resultsToDisplay.length * primaryFontSize)\r\n : 0\r\n resultsToDisplay.forEach((expr, i) => {\r\n const text = `${expr.expression} (${round(expr.probability)})`\r\n drawText(\r\n ctx,\r\n x,\r\n y + height + (i * primaryFontSize) + offset,\r\n text,\r\n {\r\n textColor: i === 0 ? primaryColor : secondaryColor,\r\n fontSize: i === 0 ? primaryFontSize : secondaryFontSize\r\n }\r\n )\r\n })\r\n })\r\n\r\n\r\n}","import {\r\n createCanvas,\r\n env,\r\n getContext2dOrThrow,\r\n imageTensorToCanvas,\r\n Rect,\r\n TNetInput,\r\n toNetInput,\r\n} from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\n\r\n/**\r\n * Extracts the image regions containing the detected faces.\r\n *\r\n * @param input The image that face detection has been performed on.\r\n * @param detections The face detection results or face bounding boxes for that image.\r\n * @returns The Canvases of the corresponding image region for each detected face.\r\n */\r\nexport async function extractFaces(\r\n input: TNetInput,\r\n detections: Array\r\n): Promise {\r\n\r\n const { Canvas } = env.getEnv()\r\n\r\n let canvas = input as HTMLCanvasElement\r\n\r\n if (!(input instanceof Canvas)) {\r\n const netInput = await toNetInput(input)\r\n\r\n if (netInput.batchSize > 1) {\r\n throw new Error('extractFaces - batchSize > 1 not supported')\r\n }\r\n\r\n const tensorOrCanvas = netInput.getInput(0)\r\n canvas = tensorOrCanvas instanceof Canvas\r\n ? tensorOrCanvas\r\n : await imageTensorToCanvas(tensorOrCanvas)\r\n }\r\n\r\n const ctx = getContext2dOrThrow(canvas)\r\n const boxes = detections.map(\r\n det => det instanceof FaceDetection\r\n ? det.forSize(canvas.width, canvas.height).box.floor()\r\n : det\r\n )\r\n .map(box => box.clipAtImageBorders(canvas.width, canvas.height))\r\n\r\n return boxes.map(({ x, y, width, height }) => {\r\n const faceImg = createCanvas({ width, height })\r\n getContext2dOrThrow(faceImg)\r\n .putImageData(ctx.getImageData(x, y, width, height), 0, 0)\r\n return faceImg\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { isTensor4D, Rect, isTensor3D } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\n\r\n/**\r\n * Extracts the tensors of the image regions containing the detected faces.\r\n * Useful if you want to compute the face descriptors for the face images.\r\n * Using this method is faster then extracting a canvas for each face and\r\n * converting them to tensors individually.\r\n *\r\n * @param imageTensor The image tensor that face detection has been performed on.\r\n * @param detections The face detection results or face bounding boxes for that image.\r\n * @returns Tensors of the corresponding image region for each detected face.\r\n */\r\nexport async function extractFaceTensors(\r\n imageTensor: tf.Tensor3D | tf.Tensor4D,\r\n detections: Array\r\n): Promise {\r\n\r\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\r\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D')\r\n }\r\n\r\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\r\n throw new Error('extractFaceTensors - batchSize > 1 not supported')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0)\r\n\r\n const boxes = detections.map(\r\n det => det instanceof FaceDetection\r\n ? det.forSize(imgWidth, imgHeight).box\r\n : det\r\n )\r\n .map(box => box.clipAtImageBorders(imgWidth, imgHeight))\r\n\r\n const faceTensors = boxes.map(({ x, y, width, height }) =>\r\n tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels])\r\n )\r\n\r\n return faceTensors\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { SeparableConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nexport function depthwiseSeparableConv(\r\n x: tf.Tensor4D,\r\n params: SeparableConvParams,\r\n stride: [number, number]\r\n): tf.Tensor4D {\r\n return tf.tidy(() => {\r\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same')\r\n out = tf.add(out, params.bias)\r\n return out\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { ConvParams, SeparableConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\r\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\r\n\r\nexport function denseBlock3(\r\n x: tf.Tensor4D,\r\n denseBlockParams: DenseBlock3Params,\r\n isFirstLayer: boolean = false\r\n): tf.Tensor4D {\r\n return tf.tidy(() => {\r\n const out1 = tf.relu(\r\n isFirstLayer\r\n ? tf.add(\r\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\r\n denseBlockParams.conv0.bias\r\n )\r\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2])\r\n ) as tf.Tensor4D\r\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1])\r\n\r\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D\r\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1])\r\n\r\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D\r\n })\r\n}\r\n\r\nexport function denseBlock4(\r\n x: tf.Tensor4D,\r\n denseBlockParams: DenseBlock4Params,\r\n isFirstLayer: boolean = false,\r\n isScaleDown: boolean = true\r\n): tf.Tensor4D {\r\n return tf.tidy(() => {\r\n const out1 = tf.relu(\r\n isFirstLayer\r\n ? tf.add(\r\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\r\n denseBlockParams.conv0.bias\r\n )\r\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1])\r\n ) as tf.Tensor4D\r\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1])\r\n\r\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D\r\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1])\r\n\r\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D\r\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1])\r\n\r\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D\r\n })\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nexport function convLayer(x, params, padding, withRelu) {\r\n if (padding === void 0) { padding = 'same'; }\r\n if (withRelu === void 0) { withRelu = false; }\r\n return tf.tidy(function () {\r\n var out = tf.add(tf.conv2d(x, params.filters, [1, 1], padding), params.bias);\r\n return withRelu ? tf.relu(out) : out;\r\n });\r\n}\r\n//# sourceMappingURL=convLayer.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nexport function extractConvParamsFactory(extractWeights, paramMappings) {\r\n return function (channelsIn, channelsOut, filterSize, mappedPrefix) {\r\n var filters = tf.tensor4d(extractWeights(channelsIn * channelsOut * filterSize * filterSize), [filterSize, filterSize, channelsIn, channelsOut]);\r\n var bias = tf.tensor1d(extractWeights(channelsOut));\r\n paramMappings.push({ paramPath: mappedPrefix + \"/filters\" }, { paramPath: mappedPrefix + \"/bias\" });\r\n return { filters: filters, bias: bias };\r\n };\r\n}\r\n//# sourceMappingURL=extractConvParamsFactory.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nexport function extractFCParamsFactory(extractWeights, paramMappings) {\r\n return function (channelsIn, channelsOut, mappedPrefix) {\r\n var fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\r\n var fc_bias = tf.tensor1d(extractWeights(channelsOut));\r\n paramMappings.push({ paramPath: mappedPrefix + \"/weights\" }, { paramPath: mappedPrefix + \"/bias\" });\r\n return {\r\n weights: fc_weights,\r\n bias: fc_bias\r\n };\r\n };\r\n}\r\n//# sourceMappingURL=extractFCParamsFactory.js.map","var SeparableConvParams = /** @class */ (function () {\r\n function SeparableConvParams(depthwise_filter, pointwise_filter, bias) {\r\n this.depthwise_filter = depthwise_filter;\r\n this.pointwise_filter = pointwise_filter;\r\n this.bias = bias;\r\n }\r\n return SeparableConvParams;\r\n}());\r\nexport { SeparableConvParams };\r\n//# sourceMappingURL=types.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { SeparableConvParams } from './types';\r\nexport function extractSeparableConvParamsFactory(extractWeights, paramMappings) {\r\n return function (channelsIn, channelsOut, mappedPrefix) {\r\n var depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\r\n var pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\r\n var bias = tf.tensor1d(extractWeights(channelsOut));\r\n paramMappings.push({ paramPath: mappedPrefix + \"/depthwise_filter\" }, { paramPath: mappedPrefix + \"/pointwise_filter\" }, { paramPath: mappedPrefix + \"/bias\" });\r\n return new SeparableConvParams(depthwise_filter, pointwise_filter, bias);\r\n };\r\n}\r\nexport function loadSeparableConvParamsFactory(extractWeightEntry) {\r\n return function (prefix) {\r\n var depthwise_filter = extractWeightEntry(prefix + \"/depthwise_filter\", 4);\r\n var pointwise_filter = extractWeightEntry(prefix + \"/pointwise_filter\", 4);\r\n var bias = extractWeightEntry(prefix + \"/bias\", 1);\r\n return new SeparableConvParams(depthwise_filter, pointwise_filter, bias);\r\n };\r\n}\r\n//# sourceMappingURL=extractSeparableConvParamsFactory.js.map","var isNumber = function (arg) { return typeof arg === 'number'; };\r\nexport function validateConfig(config) {\r\n if (!config) {\r\n throw new Error(\"invalid config: \" + config);\r\n }\r\n if (typeof config.withSeparableConvs !== 'boolean') {\r\n throw new Error(\"config.withSeparableConvs has to be a boolean, have: \" + config.withSeparableConvs);\r\n }\r\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\r\n throw new Error(\"config.iouThreshold has to be a number between [0, 1], have: \" + config.iouThreshold);\r\n }\r\n if (!Array.isArray(config.classes)\r\n || !config.classes.length\r\n || !config.classes.every(function (c) { return typeof c === 'string'; })) {\r\n throw new Error(\"config.classes has to be an array class names: string[], have: \" + JSON.stringify(config.classes));\r\n }\r\n if (!Array.isArray(config.anchors)\r\n || !config.anchors.length\r\n || !config.anchors.map(function (a) { return a || {}; }).every(function (a) { return isNumber(a.x) && isNumber(a.y); })) {\r\n throw new Error(\"config.anchors has to be an array of { x: number, y: number }, have: \" + JSON.stringify(config.anchors));\r\n }\r\n if (config.meanRgb && (!Array.isArray(config.meanRgb)\r\n || config.meanRgb.length !== 3\r\n || !config.meanRgb.every(isNumber))) {\r\n throw new Error(\"config.meanRgb has to be an array of shape [number, number, number], have: \" + JSON.stringify(config.meanRgb));\r\n }\r\n}\r\nexport function validateTrainConfig(config) {\r\n if (![config.noObjectScale, config.objectScale, config.coordScale, config.classScale].every(isNumber)) {\r\n throw new Error(\"for training you have to specify noObjectScale, objectScale, coordScale, classScale parameters in your config.json file\");\r\n }\r\n return config;\r\n}\r\n//# sourceMappingURL=config.js.map","export var CELL_SIZE = 32;\r\nexport var DEFAULT_FILTER_SIZES = [\r\n 3, 16, 32, 64, 128, 256, 512, 1024, 1024\r\n];\r\n//# sourceMappingURL=const.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nexport function leaky(x) {\r\n return tf.tidy(function () {\r\n var min = tf.mul(x, tf.scalar(0.10000000149011612));\r\n return tf.add(tf.relu(tf.sub(x, min)), min);\r\n //return tf.maximum(x, min)\r\n });\r\n}\r\n//# sourceMappingURL=leaky.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { leaky } from './leaky';\r\nexport function convWithBatchNorm(x, params) {\r\n return tf.tidy(function () {\r\n var out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]);\r\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\r\n out = tf.sub(out, params.bn.sub);\r\n out = tf.mul(out, params.bn.truediv);\r\n out = tf.add(out, params.conv.bias);\r\n return leaky(out);\r\n });\r\n}\r\n//# sourceMappingURL=convWithBatchNorm.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { leaky } from './leaky';\r\nexport function depthwiseSeparableConv(x, params) {\r\n return tf.tidy(function () {\r\n var out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]);\r\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\r\n out = tf.add(out, params.bias);\r\n return leaky(out);\r\n });\r\n}\r\n//# sourceMappingURL=depthwiseSeparableConv.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightsFactory } from 'tfjs-image-recognition-base';\r\nimport { extractConvParamsFactory } from '../common';\r\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\r\nfunction extractorsFactory(extractWeights, paramMappings) {\r\n var extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\r\n function extractBatchNormParams(size, mappedPrefix) {\r\n var sub = tf.tensor1d(extractWeights(size));\r\n var truediv = tf.tensor1d(extractWeights(size));\r\n paramMappings.push({ paramPath: mappedPrefix + \"/sub\" }, { paramPath: mappedPrefix + \"/truediv\" });\r\n return { sub: sub, truediv: truediv };\r\n }\r\n function extractConvWithBatchNormParams(channelsIn, channelsOut, mappedPrefix) {\r\n var conv = extractConvParams(channelsIn, channelsOut, 3, mappedPrefix + \"/conv\");\r\n var bn = extractBatchNormParams(channelsOut, mappedPrefix + \"/bn\");\r\n return { conv: conv, bn: bn };\r\n }\r\n var extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\r\n return {\r\n extractConvParams: extractConvParams,\r\n extractConvWithBatchNormParams: extractConvWithBatchNormParams,\r\n extractSeparableConvParams: extractSeparableConvParams\r\n };\r\n}\r\nexport function extractParams(weights, config, boxEncodingSize, filterSizes) {\r\n var _a = extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;\r\n var paramMappings = [];\r\n var _b = extractorsFactory(extractWeights, paramMappings), extractConvParams = _b.extractConvParams, extractConvWithBatchNormParams = _b.extractConvWithBatchNormParams, extractSeparableConvParams = _b.extractSeparableConvParams;\r\n var params;\r\n if (config.withSeparableConvs) {\r\n var s0 = filterSizes[0], s1 = filterSizes[1], s2 = filterSizes[2], s3 = filterSizes[3], s4 = filterSizes[4], s5 = filterSizes[5], s6 = filterSizes[6], s7 = filterSizes[7], s8 = filterSizes[8];\r\n var conv0 = config.isFirstLayerConv2d\r\n ? extractConvParams(s0, s1, 3, 'conv0')\r\n : extractSeparableConvParams(s0, s1, 'conv0');\r\n var conv1 = extractSeparableConvParams(s1, s2, 'conv1');\r\n var conv2 = extractSeparableConvParams(s2, s3, 'conv2');\r\n var conv3 = extractSeparableConvParams(s3, s4, 'conv3');\r\n var conv4 = extractSeparableConvParams(s4, s5, 'conv4');\r\n var conv5 = extractSeparableConvParams(s5, s6, 'conv5');\r\n var conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\r\n var conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\r\n var conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\r\n params = { conv0: conv0, conv1: conv1, conv2: conv2, conv3: conv3, conv4: conv4, conv5: conv5, conv6: conv6, conv7: conv7, conv8: conv8 };\r\n }\r\n else {\r\n var s0 = filterSizes[0], s1 = filterSizes[1], s2 = filterSizes[2], s3 = filterSizes[3], s4 = filterSizes[4], s5 = filterSizes[5], s6 = filterSizes[6], s7 = filterSizes[7], s8 = filterSizes[8];\r\n var conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\r\n var conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\r\n var conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\r\n var conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\r\n var conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\r\n var conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\r\n var conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\r\n var conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\r\n var conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\r\n params = { conv0: conv0, conv1: conv1, conv2: conv2, conv3: conv3, conv4: conv4, conv5: conv5, conv6: conv6, conv7: conv7, conv8: conv8 };\r\n }\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(\"weights remaing after extract: \" + getRemainingWeights().length);\r\n }\r\n return { params: params, paramMappings: paramMappings };\r\n}\r\n//# sourceMappingURL=extractParams.js.map","import { disposeUnusedWeightTensors, extractWeightEntryFactory } from 'tfjs-image-recognition-base';\r\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\r\nfunction extractorsFactory(weightMap, paramMappings) {\r\n var extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\r\n function extractBatchNormParams(prefix) {\r\n var sub = extractWeightEntry(prefix + \"/sub\", 1);\r\n var truediv = extractWeightEntry(prefix + \"/truediv\", 1);\r\n return { sub: sub, truediv: truediv };\r\n }\r\n function extractConvParams(prefix) {\r\n var filters = extractWeightEntry(prefix + \"/filters\", 4);\r\n var bias = extractWeightEntry(prefix + \"/bias\", 1);\r\n return { filters: filters, bias: bias };\r\n }\r\n function extractConvWithBatchNormParams(prefix) {\r\n var conv = extractConvParams(prefix + \"/conv\");\r\n var bn = extractBatchNormParams(prefix + \"/bn\");\r\n return { conv: conv, bn: bn };\r\n }\r\n var extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\r\n return {\r\n extractConvParams: extractConvParams,\r\n extractConvWithBatchNormParams: extractConvWithBatchNormParams,\r\n extractSeparableConvParams: extractSeparableConvParams\r\n };\r\n}\r\nexport function extractParamsFromWeigthMap(weightMap, config) {\r\n var paramMappings = [];\r\n var _a = extractorsFactory(weightMap, paramMappings), extractConvParams = _a.extractConvParams, extractConvWithBatchNormParams = _a.extractConvWithBatchNormParams, extractSeparableConvParams = _a.extractSeparableConvParams;\r\n var params;\r\n if (config.withSeparableConvs) {\r\n var numFilters = (config.filterSizes && config.filterSizes.length || 9);\r\n params = {\r\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\r\n conv1: extractSeparableConvParams('conv1'),\r\n conv2: extractSeparableConvParams('conv2'),\r\n conv3: extractSeparableConvParams('conv3'),\r\n conv4: extractSeparableConvParams('conv4'),\r\n conv5: extractSeparableConvParams('conv5'),\r\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\r\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\r\n conv8: extractConvParams('conv8')\r\n };\r\n }\r\n else {\r\n params = {\r\n conv0: extractConvWithBatchNormParams('conv0'),\r\n conv1: extractConvWithBatchNormParams('conv1'),\r\n conv2: extractConvWithBatchNormParams('conv2'),\r\n conv3: extractConvWithBatchNormParams('conv3'),\r\n conv4: extractConvWithBatchNormParams('conv4'),\r\n conv5: extractConvWithBatchNormParams('conv5'),\r\n conv6: extractConvWithBatchNormParams('conv6'),\r\n conv7: extractConvWithBatchNormParams('conv7'),\r\n conv8: extractConvParams('conv8')\r\n };\r\n }\r\n disposeUnusedWeightTensors(weightMap, paramMappings);\r\n return { params: params, paramMappings: paramMappings };\r\n}\r\n//# sourceMappingURL=extractParamsFromWeigthMap.js.map","export var TinyYolov2SizeType;\r\n(function (TinyYolov2SizeType) {\r\n TinyYolov2SizeType[TinyYolov2SizeType[\"XS\"] = 224] = \"XS\";\r\n TinyYolov2SizeType[TinyYolov2SizeType[\"SM\"] = 320] = \"SM\";\r\n TinyYolov2SizeType[TinyYolov2SizeType[\"MD\"] = 416] = \"MD\";\r\n TinyYolov2SizeType[TinyYolov2SizeType[\"LG\"] = 608] = \"LG\";\r\n})(TinyYolov2SizeType || (TinyYolov2SizeType = {}));\r\nvar TinyYolov2Options = /** @class */ (function () {\r\n function TinyYolov2Options(_a) {\r\n var _b = _a === void 0 ? {} : _a, inputSize = _b.inputSize, scoreThreshold = _b.scoreThreshold;\r\n this._name = 'TinyYolov2Options';\r\n this._inputSize = inputSize || 416;\r\n this._scoreThreshold = scoreThreshold || 0.5;\r\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\r\n throw new Error(this._name + \" - expected inputSize to be a number divisible by 32\");\r\n }\r\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\r\n throw new Error(this._name + \" - expected scoreThreshold to be a number between 0 and 1\");\r\n }\r\n }\r\n Object.defineProperty(TinyYolov2Options.prototype, \"inputSize\", {\r\n get: function () { return this._inputSize; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2Options.prototype, \"scoreThreshold\", {\r\n get: function () { return this._scoreThreshold; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TinyYolov2Options;\r\n}());\r\nexport { TinyYolov2Options };\r\n//# sourceMappingURL=TinyYolov2Options.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { BoundingBox, NeuralNetwork, nonMaxSuppression, normalize, ObjectDetection, sigmoid, toNetInput, } from 'tfjs-image-recognition-base';\r\nimport { convLayer } from '../common';\r\nimport { validateConfig } from './config';\r\nimport { DEFAULT_FILTER_SIZES } from './const';\r\nimport { convWithBatchNorm } from './convWithBatchNorm';\r\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { leaky } from './leaky';\r\nimport { TinyYolov2Options } from './TinyYolov2Options';\r\nvar TinyYolov2 = /** @class */ (function (_super) {\r\n tslib_1.__extends(TinyYolov2, _super);\r\n function TinyYolov2(config) {\r\n var _this = _super.call(this, 'TinyYolov2') || this;\r\n validateConfig(config);\r\n _this._config = config;\r\n return _this;\r\n }\r\n Object.defineProperty(TinyYolov2.prototype, \"config\", {\r\n get: function () {\r\n return this._config;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2.prototype, \"withClassScores\", {\r\n get: function () {\r\n return this.config.withClassScores || this.config.classes.length > 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2.prototype, \"boxEncodingSize\", {\r\n get: function () {\r\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TinyYolov2.prototype.runTinyYolov2 = function (x, params) {\r\n var out = convWithBatchNorm(x, params.conv0);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv1);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv2);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv3);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv4);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = convWithBatchNorm(out, params.conv5);\r\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\r\n out = convWithBatchNorm(out, params.conv6);\r\n out = convWithBatchNorm(out, params.conv7);\r\n return convLayer(out, params.conv8, 'valid', false);\r\n };\r\n TinyYolov2.prototype.runMobilenet = function (x, params) {\r\n var out = this.config.isFirstLayerConv2d\r\n ? leaky(convLayer(x, params.conv0, 'valid', false))\r\n : depthwiseSeparableConv(x, params.conv0);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv1);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv2);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv3);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv4);\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\r\n out = depthwiseSeparableConv(out, params.conv5);\r\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\r\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\r\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\r\n return convLayer(out, params.conv8, 'valid', false);\r\n };\r\n TinyYolov2.prototype.forwardInput = function (input, inputSize) {\r\n var _this = this;\r\n var params = this.params;\r\n if (!params) {\r\n throw new Error('TinyYolov2 - load model before inference');\r\n }\r\n return tf.tidy(function () {\r\n var batchTensor = input.toBatchTensor(inputSize, false).toFloat();\r\n batchTensor = _this.config.meanRgb\r\n ? normalize(batchTensor, _this.config.meanRgb)\r\n : batchTensor;\r\n batchTensor = batchTensor.div(tf.scalar(256));\r\n return _this.config.withSeparableConvs\r\n ? _this.runMobilenet(batchTensor, params)\r\n : _this.runTinyYolov2(batchTensor, params);\r\n });\r\n };\r\n TinyYolov2.prototype.forward = function (input, inputSize) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = this.forwardInput;\r\n return [4 /*yield*/, toNetInput(input)];\r\n case 1: return [4 /*yield*/, _a.apply(this, [_b.sent(), inputSize])];\r\n case 2: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n });\r\n };\r\n TinyYolov2.prototype.detect = function (input, forwardParams) {\r\n if (forwardParams === void 0) { forwardParams = {}; }\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n var _a, inputSize, scoreThreshold, netInput, out, out0, inputDimensions, results, boxes, scores, classScores, classNames, indices, detections;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = new TinyYolov2Options(forwardParams), inputSize = _a.inputSize, scoreThreshold = _a.scoreThreshold;\r\n return [4 /*yield*/, toNetInput(input)];\r\n case 1:\r\n netInput = _b.sent();\r\n return [4 /*yield*/, this.forwardInput(netInput, inputSize)];\r\n case 2:\r\n out = _b.sent();\r\n out0 = tf.tidy(function () { return tf.unstack(out)[0].expandDims(); });\r\n inputDimensions = {\r\n width: netInput.getInputWidth(0),\r\n height: netInput.getInputHeight(0)\r\n };\r\n results = this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\r\n out.dispose();\r\n out0.dispose();\r\n boxes = results.map(function (res) { return res.box; });\r\n scores = results.map(function (res) { return res.score; });\r\n classScores = results.map(function (res) { return res.classScore; });\r\n classNames = results.map(function (res) { return _this.config.classes[res.label]; });\r\n indices = nonMaxSuppression(boxes.map(function (box) { return box.rescale(inputSize); }), scores, this.config.iouThreshold, true);\r\n detections = indices.map(function (idx) {\r\n return new ObjectDetection(scores[idx], classScores[idx], classNames[idx], boxes[idx], inputDimensions);\r\n });\r\n return [2 /*return*/, detections];\r\n }\r\n });\r\n });\r\n };\r\n TinyYolov2.prototype.getDefaultModelName = function () {\r\n return '';\r\n };\r\n TinyYolov2.prototype.extractParamsFromWeigthMap = function (weightMap) {\r\n return extractParamsFromWeigthMap(weightMap, this.config);\r\n };\r\n TinyYolov2.prototype.extractParams = function (weights) {\r\n var filterSizes = this.config.filterSizes || DEFAULT_FILTER_SIZES;\r\n var numFilters = filterSizes ? filterSizes.length : undefined;\r\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\r\n throw new Error(\"TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found \" + numFilters + \" filterSizes in config\");\r\n }\r\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\r\n };\r\n TinyYolov2.prototype.extractBoxes = function (outputTensor, inputBlobDimensions, scoreThreshold) {\r\n var _this = this;\r\n var width = inputBlobDimensions.width, height = inputBlobDimensions.height;\r\n var inputSize = Math.max(width, height);\r\n var correctionFactorX = inputSize / width;\r\n var correctionFactorY = inputSize / height;\r\n var numCells = outputTensor.shape[1];\r\n var numBoxes = this.config.anchors.length;\r\n var _a = tf.tidy(function () {\r\n var reshaped = outputTensor.reshape([numCells, numCells, numBoxes, _this.boxEncodingSize]);\r\n var boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\r\n var scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\r\n var classScores = _this.withClassScores\r\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, _this.config.classes.length]), 3)\r\n : tf.scalar(0);\r\n return [boxes, scores, classScores];\r\n }), boxesTensor = _a[0], scoresTensor = _a[1], classScoresTensor = _a[2];\r\n var results = [];\r\n for (var row = 0; row < numCells; row++) {\r\n for (var col = 0; col < numCells; col++) {\r\n for (var anchor = 0; anchor < numBoxes; anchor++) {\r\n var score = sigmoid(scoresTensor.get(row, col, anchor, 0));\r\n if (!scoreThreshold || score > scoreThreshold) {\r\n var ctX = ((col + sigmoid(boxesTensor.get(row, col, anchor, 0))) / numCells) * correctionFactorX;\r\n var ctY = ((row + sigmoid(boxesTensor.get(row, col, anchor, 1))) / numCells) * correctionFactorY;\r\n var width_1 = ((Math.exp(boxesTensor.get(row, col, anchor, 2)) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\r\n var height_1 = ((Math.exp(boxesTensor.get(row, col, anchor, 3)) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\r\n var x = (ctX - (width_1 / 2));\r\n var y = (ctY - (height_1 / 2));\r\n var pos = { row: row, col: col, anchor: anchor };\r\n var _b = this.withClassScores\r\n ? this.extractPredictedClass(classScoresTensor, pos)\r\n : { classScore: 1, label: 0 }, classScore = _b.classScore, label = _b.label;\r\n results.push(tslib_1.__assign({ box: new BoundingBox(x, y, x + width_1, y + height_1), score: score, classScore: score * classScore, label: label }, pos));\r\n }\r\n }\r\n }\r\n }\r\n boxesTensor.dispose();\r\n scoresTensor.dispose();\r\n classScoresTensor.dispose();\r\n return results;\r\n };\r\n TinyYolov2.prototype.extractPredictedClass = function (classesTensor, pos) {\r\n var row = pos.row, col = pos.col, anchor = pos.anchor;\r\n return Array(this.config.classes.length).fill(0)\r\n .map(function (_, i) { return classesTensor.get(row, col, anchor, i); })\r\n .map(function (classScore, label) { return ({\r\n classScore: classScore,\r\n label: label\r\n }); })\r\n .reduce(function (max, curr) { return max.classScore > curr.classScore ? max : curr; });\r\n };\r\n return TinyYolov2;\r\n}(NeuralNetwork));\r\nexport { TinyYolov2 };\r\n//# sourceMappingURL=TinyYolov2.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { BoundingBox, Dimensions, iou, Rect } from 'tfjs-image-recognition-base';\r\nimport { CELL_SIZE } from './const';\r\nvar TinyYolov2LossFunction = /** @class */ (function () {\r\n function TinyYolov2LossFunction(outputTensor, groundTruth, predictedBoxes, reshapedImgDims, config) {\r\n this._config = config;\r\n this._reshapedImgDims = new Dimensions(reshapedImgDims.width, reshapedImgDims.height);\r\n this._outputTensor = outputTensor;\r\n this._predictedBoxes = predictedBoxes;\r\n this.validateGroundTruthBoxes(groundTruth);\r\n this._groundTruth = this.assignGroundTruthToAnchors(groundTruth);\r\n var groundTruthMask = this.createGroundTruthMask();\r\n var _a = this.createCoordAndScoreMasks(), coordBoxOffsetMask = _a.coordBoxOffsetMask, coordBoxSizeMask = _a.coordBoxSizeMask, scoreMask = _a.scoreMask;\r\n this.noObjectLossMask = tf.tidy(function () { return tf.mul(scoreMask, tf.sub(tf.scalar(1), groundTruthMask)); });\r\n this.objectLossMask = tf.tidy(function () { return tf.mul(scoreMask, groundTruthMask); });\r\n this.coordBoxOffsetMask = tf.tidy(function () { return tf.mul(coordBoxOffsetMask, groundTruthMask); });\r\n this.coordBoxSizeMask = tf.tidy(function () { return tf.mul(coordBoxSizeMask, groundTruthMask); });\r\n var classScoresMask = tf.tidy(function () { return tf.sub(tf.scalar(1), coordBoxOffsetMask.add(coordBoxSizeMask).add(scoreMask)); });\r\n this.groundTruthClassScoresMask = tf.tidy(function () { return tf.mul(classScoresMask, groundTruthMask); });\r\n }\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"config\", {\r\n get: function () {\r\n return this._config;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"reshapedImgDims\", {\r\n get: function () {\r\n return this._reshapedImgDims;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"outputTensor\", {\r\n get: function () {\r\n return this._outputTensor;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"groundTruth\", {\r\n get: function () {\r\n return this._groundTruth;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"predictedBoxes\", {\r\n get: function () {\r\n return this._predictedBoxes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"inputSize\", {\r\n get: function () {\r\n return Math.max(this.reshapedImgDims.width, this.reshapedImgDims.height);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"withClassScores\", {\r\n get: function () {\r\n return this._config.withClassScores || this._config.classes.length > 1;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"boxEncodingSize\", {\r\n get: function () {\r\n return 5 + (this.withClassScores ? this._config.classes.length : 0);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"anchors\", {\r\n get: function () {\r\n return this._config.anchors;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"numBoxes\", {\r\n get: function () {\r\n return this.anchors.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"numCells\", {\r\n get: function () {\r\n return this.inputSize / CELL_SIZE;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2LossFunction.prototype, \"gridCellEncodingSize\", {\r\n get: function () {\r\n return this.boxEncodingSize * this.numBoxes;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TinyYolov2LossFunction.prototype.toOutputTensorShape = function (tensor) {\r\n var _this = this;\r\n return tf.tidy(function () { return tensor.reshape([1, _this.numCells, _this.numCells, _this.gridCellEncodingSize]); });\r\n };\r\n TinyYolov2LossFunction.prototype.computeLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var noObjectLoss = _this.computeNoObjectLoss();\r\n var objectLoss = _this.computeObjectLoss();\r\n var coordLoss = _this.computeCoordLoss();\r\n var classLoss = _this.withClassScores\r\n ? _this.computeClassLoss()\r\n : tf.scalar(0);\r\n var totalLoss = tf.tidy(function () { return noObjectLoss.add(objectLoss).add(coordLoss).add(classLoss); });\r\n return {\r\n noObjectLoss: noObjectLoss,\r\n objectLoss: objectLoss,\r\n coordLoss: coordLoss,\r\n classLoss: classLoss,\r\n totalLoss: totalLoss\r\n };\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeNoObjectLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n return _this.computeLossTerm(_this.config.noObjectScale, _this.toOutputTensorShape(_this.noObjectLossMask), tf.sigmoid(_this.outputTensor));\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeObjectLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n return _this.computeLossTerm(_this.config.objectScale, _this.toOutputTensorShape(_this.objectLossMask), tf.sub(_this.toOutputTensorShape(_this.computeIous()), tf.sigmoid(_this.outputTensor)));\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeClassLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var classLossTensor = tf.tidy(function () {\r\n var predClassScores = tf.mul(tf.softmax(_this.outputTensor.reshape([_this.numCells, _this.numCells, _this.numBoxes, _this.boxEncodingSize]), 3), _this.groundTruthClassScoresMask);\r\n var gtClassScores = _this.createOneHotClassScoreMask();\r\n return tf.sub(gtClassScores, predClassScores);\r\n });\r\n return _this.computeLossTerm(_this.config.classScale, tf.scalar(1), classLossTensor);\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordLoss = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n return _this.computeLossTerm(_this.config.coordScale, tf.scalar(1), tf.add(_this.computeCoordBoxOffsetError(), _this.computeCoordBoxSizeError()));\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordBoxOffsetError = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var mask = _this.toOutputTensorShape(_this.coordBoxOffsetMask);\r\n var gtBoxOffsets = tf.mul(mask, _this.toOutputTensorShape(_this.computeCoordBoxOffsets()));\r\n var predBoxOffsets = tf.mul(mask, tf.sigmoid(_this.outputTensor));\r\n return tf.sub(gtBoxOffsets, predBoxOffsets);\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordBoxSizeError = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var mask = _this.toOutputTensorShape(_this.coordBoxSizeMask);\r\n var gtBoxSizes = tf.mul(mask, _this.toOutputTensorShape(_this.computeCoordBoxSizes()));\r\n var predBoxSizes = tf.mul(mask, _this.outputTensor);\r\n return tf.sub(gtBoxSizes, predBoxSizes);\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.computeLossTerm = function (scale, mask, lossTensor) {\r\n var _this = this;\r\n return tf.tidy(function () { return tf.mul(tf.scalar(scale), _this.squaredSumOverMask(mask, lossTensor)); });\r\n };\r\n TinyYolov2LossFunction.prototype.squaredSumOverMask = function (mask, lossTensor) {\r\n return tf.tidy(function () { return tf.sum(tf.square(tf.mul(mask, lossTensor))); });\r\n };\r\n TinyYolov2LossFunction.prototype.validateGroundTruthBoxes = function (groundTruth) {\r\n var _this = this;\r\n groundTruth.forEach(function (_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height, label = _a.label;\r\n if (typeof label !== 'number' || label < 0 || label > (_this.config.classes.length - 1)) {\r\n throw new Error(\"invalid ground truth data, expected label to be a number in [0, \" + (_this.config.classes.length - 1) + \"]\");\r\n }\r\n if (x < 0 || x > 1 || y < 0 || y > 1 || width < 0 || (x + width) > 1 || height < 0 || (y + height) > 1) {\r\n throw new Error(\"invalid ground truth data, box is out of image boundaries \" + JSON.stringify({ x: x, y: y, width: width, height: height }));\r\n }\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.assignGroundTruthToAnchors = function (groundTruth) {\r\n var _this = this;\r\n var groundTruthBoxes = groundTruth\r\n .map(function (_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height, label = _a.label;\r\n return ({\r\n box: new Rect(x, y, width, height),\r\n label: label\r\n });\r\n });\r\n return groundTruthBoxes.map(function (_a) {\r\n var box = _a.box, label = _a.label;\r\n var _b = box.rescale(_this.reshapedImgDims), left = _b.left, top = _b.top, bottom = _b.bottom, right = _b.right, x = _b.x, y = _b.y, width = _b.width, height = _b.height;\r\n var ctX = left + (width / 2);\r\n var ctY = top + (height / 2);\r\n var col = Math.floor((ctX / _this.inputSize) * _this.numCells);\r\n var row = Math.floor((ctY / _this.inputSize) * _this.numCells);\r\n var anchorsByIou = _this.anchors.map(function (anchor, idx) { return ({\r\n idx: idx,\r\n iou: iou(new BoundingBox(0, 0, anchor.x * CELL_SIZE, anchor.y * CELL_SIZE), new BoundingBox(0, 0, width, height))\r\n }); }).sort(function (a1, a2) { return a2.iou - a1.iou; });\r\n var anchor = anchorsByIou[0].idx;\r\n return { row: row, col: col, anchor: anchor, box: box, label: label };\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.createGroundTruthMask = function () {\r\n var _this = this;\r\n var mask = tf.zeros([this.numCells, this.numCells, this.numBoxes, this.boxEncodingSize]);\r\n var buf = mask.buffer();\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor;\r\n for (var i = 0; i < _this.boxEncodingSize; i++) {\r\n buf.set(1, row, col, anchor, i);\r\n }\r\n });\r\n return mask;\r\n };\r\n TinyYolov2LossFunction.prototype.createCoordAndScoreMasks = function () {\r\n var _this = this;\r\n return tf.tidy(function () {\r\n var coordBoxOffsetMask = tf.zeros([_this.numCells, _this.numCells, _this.numBoxes, _this.boxEncodingSize]);\r\n var coordBoxSizeMask = tf.zeros([_this.numCells, _this.numCells, _this.numBoxes, _this.boxEncodingSize]);\r\n var scoreMask = tf.zeros([_this.numCells, _this.numCells, _this.numBoxes, _this.boxEncodingSize]);\r\n var coordBoxOffsetBuf = coordBoxOffsetMask.buffer();\r\n var coordBoxSizeBuf = coordBoxSizeMask.buffer();\r\n var scoreBuf = scoreMask.buffer();\r\n for (var row = 0; row < _this.numCells; row++) {\r\n for (var col = 0; col < _this.numCells; col++) {\r\n for (var anchor = 0; anchor < _this.numBoxes; anchor++) {\r\n coordBoxOffsetBuf.set(1, row, col, anchor, 0);\r\n coordBoxOffsetBuf.set(1, row, col, anchor, 1);\r\n coordBoxSizeBuf.set(1, row, col, anchor, 2);\r\n coordBoxSizeBuf.set(1, row, col, anchor, 3);\r\n scoreBuf.set(1, row, col, anchor, 4);\r\n }\r\n }\r\n }\r\n return { coordBoxOffsetMask: coordBoxOffsetMask, coordBoxSizeMask: coordBoxSizeMask, scoreMask: scoreMask };\r\n });\r\n };\r\n TinyYolov2LossFunction.prototype.createOneHotClassScoreMask = function () {\r\n var mask = tf.zeros([this.numCells, this.numCells, this.numBoxes, this.boxEncodingSize]);\r\n var buf = mask.buffer();\r\n var classValuesOffset = 5;\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor, label = _a.label;\r\n buf.set(1, row, col, anchor, classValuesOffset + label);\r\n });\r\n return mask;\r\n };\r\n TinyYolov2LossFunction.prototype.computeIous = function () {\r\n var _this = this;\r\n var isSameAnchor = function (p1) { return function (p2) {\r\n return p1.row === p2.row\r\n && p1.col === p2.col\r\n && p1.anchor === p2.anchor;\r\n }; };\r\n var ious = tf.zeros([this.numCells, this.numCells, this.gridCellEncodingSize]);\r\n var buf = ious.buffer();\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor, box = _a.box;\r\n var predBox = _this.predictedBoxes.find(isSameAnchor({ row: row, col: col, anchor: anchor }));\r\n if (!predBox) {\r\n throw new Error(\"no output box found for: row \" + row + \", col \" + col + \", anchor \" + anchor);\r\n }\r\n var boxIou = iou(box.rescale(_this.reshapedImgDims), predBox.box.rescale(_this.reshapedImgDims));\r\n var anchorOffset = _this.boxEncodingSize * anchor;\r\n var scoreValueOffset = 4;\r\n buf.set(boxIou, row, col, anchorOffset + scoreValueOffset);\r\n });\r\n return ious;\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordBoxOffsets = function () {\r\n var _this = this;\r\n var offsets = tf.zeros([this.numCells, this.numCells, this.numBoxes, this.boxEncodingSize]);\r\n var buf = offsets.buffer();\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor, box = _a.box;\r\n var _b = box.rescale(_this.reshapedImgDims), left = _b.left, top = _b.top, right = _b.right, bottom = _b.bottom;\r\n var centerX = (left + right) / 2;\r\n var centerY = (top + bottom) / 2;\r\n var dCenterX = centerX - (col * CELL_SIZE);\r\n var dCenterY = centerY - (row * CELL_SIZE);\r\n // inverseSigmoid(0) === -Infinity, inverseSigmoid(1) === Infinity\r\n //const dx = inverseSigmoid(Math.min(0.999, Math.max(0.001, dCenterX / CELL_SIZE)))\r\n //const dy = inverseSigmoid(Math.min(0.999, Math.max(0.001, dCenterY / CELL_SIZE)))\r\n var dx = dCenterX / CELL_SIZE;\r\n var dy = dCenterY / CELL_SIZE;\r\n buf.set(dx, row, col, anchor, 0);\r\n buf.set(dy, row, col, anchor, 1);\r\n });\r\n return offsets;\r\n };\r\n TinyYolov2LossFunction.prototype.computeCoordBoxSizes = function () {\r\n var _this = this;\r\n var sizes = tf.zeros([this.numCells, this.numCells, this.numBoxes, this.boxEncodingSize]);\r\n var buf = sizes.buffer();\r\n this.groundTruth.forEach(function (_a) {\r\n var row = _a.row, col = _a.col, anchor = _a.anchor, box = _a.box;\r\n var _b = box.rescale(_this.reshapedImgDims), width = _b.width, height = _b.height;\r\n var dw = Math.log(width / (_this.anchors[anchor].x * CELL_SIZE));\r\n var dh = Math.log(height / (_this.anchors[anchor].y * CELL_SIZE));\r\n buf.set(dw, row, col, anchor, 2);\r\n buf.set(dh, row, col, anchor, 3);\r\n });\r\n return sizes;\r\n };\r\n return TinyYolov2LossFunction;\r\n}());\r\nexport { TinyYolov2LossFunction };\r\n//# sourceMappingURL=TinyYolov2LossFunction.js.map","import { CELL_SIZE } from './const';\r\nexport function getDefaultBackwardOptions(options) {\r\n return Object.assign({}, {\r\n minBoxSize: CELL_SIZE\r\n }, options);\r\n}\r\n//# sourceMappingURL=getDefaultBackwardOptions.js.map","import * as tslib_1 from \"tslib\";\r\nimport * as tf from '@tensorflow/tfjs-core';\r\nimport { computeReshapedDimensions, getMediaDimensions, imageToSquare, Rect, toNetInput, } from 'tfjs-image-recognition-base';\r\nimport { validateTrainConfig } from './config';\r\nimport { getDefaultBackwardOptions } from './getDefaultBackwardOptions';\r\nimport { TinyYolov2 } from './TinyYolov2';\r\nimport { TinyYolov2LossFunction } from './TinyYolov2LossFunction';\r\nvar TinyYolov2Trainable = /** @class */ (function (_super) {\r\n tslib_1.__extends(TinyYolov2Trainable, _super);\r\n function TinyYolov2Trainable(trainableConfig, optimizer) {\r\n var _this = _super.call(this, trainableConfig) || this;\r\n _this._trainableConfig = validateTrainConfig(trainableConfig);\r\n _this._optimizer = optimizer;\r\n return _this;\r\n }\r\n Object.defineProperty(TinyYolov2Trainable.prototype, \"trainableConfig\", {\r\n get: function () {\r\n return this._trainableConfig;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TinyYolov2Trainable.prototype, \"optimizer\", {\r\n get: function () {\r\n return this._optimizer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TinyYolov2Trainable.prototype.backward = function (img, groundTruth, inputSize, options) {\r\n if (options === void 0) { options = {}; }\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n var _a, minBoxSize, reportLosses, reshapedImgDims, filteredGroundTruthBoxes, netInput, loss;\r\n return tslib_1.__generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = getDefaultBackwardOptions(options), minBoxSize = _a.minBoxSize, reportLosses = _a.reportLosses;\r\n reshapedImgDims = computeReshapedDimensions(getMediaDimensions(img), inputSize);\r\n filteredGroundTruthBoxes = this.filterGroundTruthBoxes(groundTruth, reshapedImgDims, minBoxSize);\r\n if (!filteredGroundTruthBoxes.length) {\r\n return [2 /*return*/, null];\r\n }\r\n return [4 /*yield*/, toNetInput(imageToSquare(img, inputSize))];\r\n case 1:\r\n netInput = _b.sent();\r\n loss = this.optimizer.minimize(function () {\r\n var _a = _this.computeLoss(_this.forwardInput(netInput, inputSize), filteredGroundTruthBoxes, reshapedImgDims), noObjectLoss = _a.noObjectLoss, objectLoss = _a.objectLoss, coordLoss = _a.coordLoss, classLoss = _a.classLoss, totalLoss = _a.totalLoss;\r\n if (reportLosses) {\r\n var losses = {\r\n totalLoss: totalLoss.dataSync()[0],\r\n noObjectLoss: noObjectLoss.dataSync()[0],\r\n objectLoss: objectLoss.dataSync()[0],\r\n coordLoss: coordLoss.dataSync()[0],\r\n classLoss: classLoss.dataSync()[0]\r\n };\r\n var report = {\r\n losses: losses,\r\n numBoxes: filteredGroundTruthBoxes.length,\r\n inputSize: inputSize\r\n };\r\n reportLosses(report);\r\n }\r\n return totalLoss;\r\n }, true);\r\n return [2 /*return*/, loss];\r\n }\r\n });\r\n });\r\n };\r\n TinyYolov2Trainable.prototype.computeLoss = function (outputTensor, groundTruth, reshapedImgDims) {\r\n var config = validateTrainConfig(this.config);\r\n var inputSize = Math.max(reshapedImgDims.width, reshapedImgDims.height);\r\n if (!inputSize) {\r\n throw new Error(\"computeLoss - invalid inputSize: \" + inputSize);\r\n }\r\n var predictedBoxes = this.extractBoxes(outputTensor, reshapedImgDims);\r\n return tf.tidy(function () {\r\n var lossFunction = new TinyYolov2LossFunction(outputTensor, groundTruth, predictedBoxes, reshapedImgDims, config);\r\n return lossFunction.computeLoss();\r\n });\r\n };\r\n TinyYolov2Trainable.prototype.filterGroundTruthBoxes = function (groundTruth, imgDims, minBoxSize) {\r\n var imgHeight = imgDims.height, imgWidth = imgDims.width;\r\n return groundTruth.filter(function (_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n var box = (new Rect(x, y, width, height))\r\n .rescale({ height: imgHeight, width: imgWidth });\r\n var isTooTiny = box.width < minBoxSize || box.height < minBoxSize;\r\n return !isTooTiny;\r\n });\r\n };\r\n TinyYolov2Trainable.prototype.load = function (weightsOrUrl) {\r\n return tslib_1.__awaiter(this, void 0, void 0, function () {\r\n return tslib_1.__generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, _super.prototype.load.call(this, weightsOrUrl)];\r\n case 1:\r\n _a.sent();\r\n this.variable();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return TinyYolov2Trainable;\r\n}(TinyYolov2));\r\nexport { TinyYolov2Trainable };\r\n//# sourceMappingURL=TinyYolov2Trainable.js.map","import * as tf from '@tensorflow/tfjs-core';\r\nimport { ExtractWeightsFunction, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { extractConvParamsFactory, FCParams, SeparableConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\r\n\r\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\r\n\r\n function extractSeparableConvParams(channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams {\r\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1])\r\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut])\r\n const bias = tf.tensor1d(extractWeights(channelsOut))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/depthwise_filter` },\r\n { paramPath: `${mappedPrefix}/pointwise_filter` },\r\n { paramPath: `${mappedPrefix}/bias` }\r\n )\r\n\r\n return new SeparableConvParams(\r\n depthwise_filter,\r\n pointwise_filter,\r\n bias\r\n )\r\n }\r\n\r\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings)\r\n\r\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\r\n\r\n const conv0 = isFirstLayer\r\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\r\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`)\r\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`)\r\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`)\r\n\r\n return { conv0, conv1, conv2 }\r\n }\r\n\r\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\r\n\r\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer)\r\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`)\r\n\r\n return { conv0, conv1, conv2, conv3 }\r\n }\r\n\r\n return {\r\n extractDenseBlock3Params,\r\n extractDenseBlock4Params\r\n }\r\n\r\n}","import { extractWeightsFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractorsFactory } from './extractorsFactory';\r\nimport { FaceFeatureExtractorParams } from './types';\r\n\r\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const {\r\n extractDenseBlock4Params\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true)\r\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1')\r\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2')\r\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3')\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return {\r\n paramMappings,\r\n params: { dense0, dense1, dense2, dense3 }\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightEntryFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { ConvParams, SeparableConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\r\n\r\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractConvParams(prefix: string): ConvParams {\r\n const filters = extractWeightEntry(`${prefix}/filters`, 4)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractSeparableConvParams(prefix: string): SeparableConvParams {\r\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4)\r\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n\r\n return new SeparableConvParams(\r\n depthwise_filter,\r\n pointwise_filter,\r\n bias\r\n )\r\n }\r\n\r\n function extractDenseBlock3Params(prefix: string, isFirstLayer: boolean = false): DenseBlock3Params {\r\n const conv0 = isFirstLayer\r\n ? extractConvParams(`${prefix}/conv0`)\r\n : extractSeparableConvParams(`${prefix}/conv0`)\r\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`)\r\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`)\r\n\r\n return { conv0, conv1, conv2 }\r\n }\r\n\r\n function extractDenseBlock4Params(prefix: string, isFirstLayer: boolean = false): DenseBlock4Params {\r\n const conv0 = isFirstLayer\r\n ? extractConvParams(`${prefix}/conv0`)\r\n : extractSeparableConvParams(`${prefix}/conv0`)\r\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`)\r\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`)\r\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`)\r\n\r\n return { conv0, conv1, conv2, conv3 }\r\n }\r\n\r\n return {\r\n extractDenseBlock3Params,\r\n extractDenseBlock4Params\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { disposeUnusedWeightTensors, ParamMapping } from 'tfjs-image-recognition-base';\r\n\r\nimport { loadParamsFactory } from './loadParamsFactory';\r\nimport { FaceFeatureExtractorParams } from './types';\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractDenseBlock4Params\r\n } = loadParamsFactory(weightMap, paramMappings)\r\n\r\n const params = {\r\n dense0: extractDenseBlock4Params('dense0', true),\r\n dense1: extractDenseBlock4Params('dense1'),\r\n dense2: extractDenseBlock4Params('dense2'),\r\n dense3: extractDenseBlock4Params('dense3')\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, normalize, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { denseBlock4 } from './denseBlock';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\r\n\r\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\r\n\r\n constructor() {\r\n super('FaceFeatureExtractor')\r\n }\r\n\r\n public forwardInput(input: NetInput): tf.Tensor4D {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('FaceFeatureExtractor - load model before inference')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const batchTensor = input.toBatchTensor(112, true)\r\n const meanRgb = [122.782, 117.001, 104.298]\r\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D\r\n\r\n let out = denseBlock4(normalized, params.dense0, true)\r\n out = denseBlock4(out, params.dense1)\r\n out = denseBlock4(out, params.dense2)\r\n out = denseBlock4(out, params.dense3)\r\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid')\r\n\r\n return out\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_feature_extractor_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMap(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParams(weights)\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { FCParams } from 'tfjs-tiny-yolov2';\r\n\r\nexport function fullyConnectedLayer(\r\n x: tf.Tensor2D,\r\n params: FCParams\r\n): tf.Tensor2D {\r\n return tf.tidy(() =>\r\n tf.add(\r\n tf.matMul(x, params.weights),\r\n params.bias\r\n )\r\n )\r\n}","import { extractWeightsFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { extractFCParamsFactory } from 'tfjs-tiny-yolov2';\r\n\r\nimport { NetParams } from './types';\r\n\r\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings)\r\n\r\n const fc = extractFCParams(channelsIn, channelsOut, 'fc')\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return {\r\n paramMappings,\r\n params: { fc }\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { FCParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { NetParams } from './types';\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractFcParams(prefix: string): FCParams {\r\n const weights = extractWeightEntry(`${prefix}/weights`, 2)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n return { weights, bias }\r\n }\r\n\r\n const params = {\r\n fc: extractFcParams('fc')\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\r\n\r\n const featureExtractorMap: tf.NamedTensorMap = {}\r\n const classifierMap: tf.NamedTensorMap = {}\r\n\r\n Object.keys(weightMap).forEach(key => {\r\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap\r\n map[key] = weightMap[key]\r\n })\r\n\r\n return { featureExtractorMap, classifierMap }\r\n\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork } from 'tfjs-image-recognition-base';\r\n\r\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\r\nimport {\r\n FaceFeatureExtractorParams,\r\n IFaceFeatureExtractor,\r\n TinyFaceFeatureExtractorParams,\r\n} from '../faceFeatureExtractor/types';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { NetParams } from './types';\r\nimport { seperateWeightMaps } from './util';\r\n\r\nexport abstract class FaceProcessor<\r\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\r\n>\r\n extends NeuralNetwork {\r\n\r\n protected _faceFeatureExtractor: IFaceFeatureExtractor\r\n\r\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\r\n super(_name)\r\n this._faceFeatureExtractor = faceFeatureExtractor\r\n }\r\n\r\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\r\n return this._faceFeatureExtractor\r\n }\r\n\r\n protected abstract getDefaultModelName(): string\r\n protected abstract getClassifierChannelsIn(): number\r\n protected abstract getClassifierChannelsOut(): number\r\n\r\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error(`${this._name} - load model before inference`)\r\n }\r\n\r\n return tf.tidy(() => {\r\n const bottleneckFeatures = input instanceof NetInput\r\n ? this.faceFeatureExtractor.forwardInput(input)\r\n : input\r\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc)\r\n })\r\n }\r\n\r\n public dispose(throwOnRedispose: boolean = true) {\r\n this.faceFeatureExtractor.dispose(throwOnRedispose)\r\n super.dispose(throwOnRedispose)\r\n }\r\n\r\n public loadClassifierParams(weights: Float32Array) {\r\n const { params, paramMappings } = this.extractClassifierParams(weights)\r\n this._params = params\r\n this._paramMappings = paramMappings\r\n }\r\n\r\n public extractClassifierParams(weights: Float32Array) {\r\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut())\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n\r\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap)\r\n\r\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap)\r\n\r\n return extractParamsFromWeigthMap(classifierMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n\r\n const cIn = this.getClassifierChannelsIn()\r\n const cOut = this.getClassifierChannelsOut()\r\n const classifierWeightSize = (cOut * cIn ) + cOut\r\n\r\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize)\r\n const classifierWeights = weights.slice(weights.length - classifierWeightSize)\r\n\r\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights)\r\n return this.extractClassifierParams(classifierWeights)\r\n }\r\n}","export const faceExpressionLabels = {\r\n neutral: 0,\r\n happy: 1,\r\n sad: 2,\r\n angry: 3,\r\n fearful: 4,\r\n disgusted: 5,\r\n surprised:6\r\n}\r\n\r\nexport type FaceExpression = 'neutral' | 'happy' | 'sad' | 'angry' | 'fearful' | 'disgusted' | 'surprised'\r\n\r\nexport type FaceExpressionPrediction = {\r\n expression: FaceExpression,\r\n probability: number\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\r\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\r\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\r\nimport { FaceExpression, faceExpressionLabels, FaceExpressionPrediction } from './types';\r\n\r\nexport class FaceExpressionNet extends FaceProcessor {\r\n\r\n public static getFaceExpressionLabel(faceExpression: string) {\r\n const label = faceExpressionLabels[faceExpression]\r\n\r\n if (typeof label !== 'number') {\r\n throw new Error(`getFaceExpressionLabel - no label for faceExpression: ${faceExpression}`)\r\n }\r\n\r\n return label\r\n }\r\n\r\n public static decodeProbabilites(probabilities: number[] | Float32Array): FaceExpressionPrediction[] {\r\n if (probabilities.length !== 7) {\r\n throw new Error(`decodeProbabilites - expected probabilities.length to be 7, have: ${probabilities.length}`)\r\n }\r\n\r\n return (Object.keys(faceExpressionLabels) as FaceExpression[])\r\n .map(expression => ({ expression, probability: probabilities[faceExpressionLabels[expression]] }))\r\n }\r\n\r\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\r\n super('FaceExpressionNet', faceFeatureExtractor)\r\n }\r\n\r\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\r\n return tf.tidy(() => tf.softmax(this.runNet(input)))\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n public async predictExpressions(input: TNetInput) {\r\n const netInput = await toNetInput(input)\r\n const out = await this.forwardInput(netInput)\r\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async t => {\r\n const data = await t.data()\r\n t.dispose()\r\n return data\r\n }))\r\n out.dispose()\r\n\r\n const predictionsByBatch = probabilitesByBatch\r\n .map(propablities => FaceExpressionNet.decodeProbabilites(propablities as Float32Array))\r\n\r\n return netInput.isBatchInput\r\n ? predictionsByBatch\r\n : predictionsByBatch[0]\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_expression_model'\r\n }\r\n\r\n protected getClassifierChannelsIn(): number {\r\n return 256\r\n }\r\n\r\n protected getClassifierChannelsOut(): number {\r\n return 7\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { IDimensions, isEven, NetInput, Point, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\r\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\r\n\r\nexport abstract class FaceLandmark68NetBase<\r\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\r\n>\r\n extends FaceProcessor {\r\n\r\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\r\n\r\n const inputDimensions = originalDimensions.map(({ width, height }) => {\r\n const scale = inputSize / Math.max(height, width)\r\n return {\r\n width: width * scale,\r\n height: height * scale\r\n }\r\n })\r\n\r\n const batchSize = inputDimensions.length\r\n\r\n return tf.tidy(() => {\r\n const createInterleavedTensor = (fillX: number, fillY: number) =>\r\n tf.stack([\r\n tf.fill([68], fillX),\r\n tf.fill([68], fillY)\r\n ], 1).as2D(1, 136).as1D()\r\n\r\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\r\n const { width, height } = inputDimensions[batchIdx]\r\n return cond(width, height) ? Math.abs(width - height) / 2 : 0\r\n }\r\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h)\r\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w)\r\n\r\n const landmarkTensors = output\r\n .mul(tf.fill([batchSize, 136], inputSize))\r\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) =>\r\n createInterleavedTensor(\r\n getPaddingX(batchIdx),\r\n getPaddingY(batchIdx)\r\n )\r\n )))\r\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) =>\r\n createInterleavedTensor(\r\n inputDimensions[batchIdx].width,\r\n inputDimensions[batchIdx].height\r\n )\r\n )))\r\n\r\n return landmarkTensors as tf.Tensor2D\r\n })\r\n }\r\n\r\n public forwardInput(input: NetInput): tf.Tensor2D {\r\n return tf.tidy(() => {\r\n const out = this.runNet(input)\r\n return this.postProcess(\r\n out,\r\n input.inputSize as number,\r\n input.inputDimensions.map(([height, width]) => ({ height, width }))\r\n )\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n public async detectLandmarks(input: TNetInput): Promise {\r\n const netInput = await toNetInput(input)\r\n const landmarkTensors = tf.tidy(\r\n () => tf.unstack(this.forwardInput(netInput))\r\n )\r\n\r\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\r\n async (landmarkTensor, batchIdx) => {\r\n const landmarksArray = Array.from(await landmarkTensor.data())\r\n const xCoords = landmarksArray.filter((_, i) => isEven(i))\r\n const yCoords = landmarksArray.filter((_, i) => !isEven(i))\r\n\r\n return new FaceLandmarks68(\r\n Array(68).fill(0).map((_, i) => new Point(xCoords[i], yCoords[i])),\r\n {\r\n height: netInput.getInputHeight(batchIdx),\r\n width : netInput.getInputWidth(batchIdx),\r\n }\r\n )\r\n }\r\n ))\r\n\r\n landmarkTensors.forEach(t => t.dispose())\r\n\r\n return netInput.isBatchInput\r\n ? landmarksForBatch\r\n : landmarksForBatch[0]\r\n }\r\n\r\n protected getClassifierChannelsOut(): number {\r\n return 136\r\n }\r\n}","import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\r\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\r\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\r\n\r\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\r\n\r\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\r\n super('FaceLandmark68Net', faceFeatureExtractor)\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_landmark_68_model'\r\n }\r\n\r\n protected getClassifierChannelsIn(): number {\r\n return 256\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { disposeUnusedWeightTensors, ParamMapping } from 'tfjs-image-recognition-base';\r\n\r\nimport { loadParamsFactory } from './loadParamsFactory';\r\nimport { TinyFaceFeatureExtractorParams } from './types';\r\n\r\nexport function extractParamsFromWeigthMapTiny(\r\n weightMap: tf.NamedTensorMap\r\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractDenseBlock3Params\r\n } = loadParamsFactory(weightMap, paramMappings)\r\n\r\n const params = {\r\n dense0: extractDenseBlock3Params('dense0', true),\r\n dense1: extractDenseBlock3Params('dense1'),\r\n dense2: extractDenseBlock3Params('dense2')\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import { extractWeightsFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractorsFactory } from './extractorsFactory';\r\nimport { TinyFaceFeatureExtractorParams } from './types';\r\n\r\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const {\r\n extractDenseBlock3Params\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true)\r\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1')\r\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2')\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return {\r\n paramMappings,\r\n params: { dense0, dense1, dense2 }\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, normalize, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { denseBlock3 } from './denseBlock';\r\nimport { extractParamsFromWeigthMapTiny } from './extractParamsFromWeigthMapTiny';\r\nimport { extractParamsTiny } from './extractParamsTiny';\r\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\r\n\r\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\r\n\r\n constructor() {\r\n super('TinyFaceFeatureExtractor')\r\n }\r\n\r\n public forwardInput(input: NetInput): tf.Tensor4D {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('TinyFaceFeatureExtractor - load model before inference')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const batchTensor = input.toBatchTensor(112, true)\r\n const meanRgb = [122.782, 117.001, 104.298]\r\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255)) as tf.Tensor4D\r\n\r\n let out = denseBlock3(normalized, params.dense0, true)\r\n out = denseBlock3(out, params.dense1)\r\n out = denseBlock3(out, params.dense2)\r\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid')\r\n\r\n return out\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_feature_extractor_tiny_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMapTiny(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParamsTiny(weights)\r\n }\r\n}","import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\r\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\r\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\r\n\r\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\r\n\r\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\r\n super('FaceLandmark68TinyNet', faceFeatureExtractor)\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_landmark_68_tiny_model'\r\n }\r\n\r\n protected getClassifierChannelsIn(): number {\r\n return 128\r\n }\r\n}","import { FaceLandmark68Net } from './FaceLandmark68Net';\r\n\r\nexport * from './FaceLandmark68Net';\r\nexport * from './FaceLandmark68TinyNet';\r\n\r\nexport class FaceLandmarkNet extends FaceLandmark68Net {}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { ScaleLayerParams } from './types';\r\n\r\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\r\n return tf.add(tf.mul(x, params.weights), params.biases)\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { scale } from './scaleLayer';\r\nimport { ConvLayerParams } from './types';\r\n\r\n\r\nfunction convLayer(\r\n x: tf.Tensor4D,\r\n params: ConvLayerParams,\r\n strides: [number, number],\r\n withRelu: boolean,\r\n padding: 'valid' | 'same' = 'same'\r\n): tf.Tensor4D {\r\n const { filters, bias } = params.conv\r\n\r\n let out = tf.conv2d(x, filters, strides, padding)\r\n out = tf.add(out, bias)\r\n out = scale(out, params.scale)\r\n return withRelu ? tf.relu(out) : out\r\n}\r\n\r\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\r\n return convLayer(x, params, [1, 1], true)\r\n}\r\n\r\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\r\n return convLayer(x, params, [1, 1], false)\r\n}\r\n\r\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\r\n return convLayer(x, params, [2, 2], true, 'valid')\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightsFactory, ExtractWeightsFunction, isFloat, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { ConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\r\n\r\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\r\n\r\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\r\n const weights = extractWeights(numFilterValues)\r\n const depth = weights.length / (numFilters * filterSize * filterSize)\r\n\r\n if (isFloat(depth)) {\r\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`)\r\n }\r\n\r\n return tf.tidy(\r\n () => tf.transpose(\r\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\r\n [2, 3, 1, 0]\r\n )\r\n )\r\n }\r\n\r\n function extractConvParams(\r\n numFilterValues: number,\r\n numFilters: number,\r\n filterSize: number,\r\n mappedPrefix: string\r\n ): ConvParams {\r\n\r\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize)\r\n const bias = tf.tensor1d(extractWeights(numFilters))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/filters` },\r\n { paramPath: `${mappedPrefix}/bias` }\r\n )\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\r\n\r\n const weights = tf.tensor1d(extractWeights(numWeights))\r\n const biases = tf.tensor1d(extractWeights(numWeights))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/weights` },\r\n { paramPath: `${mappedPrefix}/biases` }\r\n )\r\n\r\n return {\r\n weights,\r\n biases\r\n }\r\n }\r\n\r\n function extractConvLayerParams(\r\n numFilterValues: number,\r\n numFilters: number,\r\n filterSize: number,\r\n mappedPrefix: string\r\n ): ConvLayerParams {\r\n\r\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`)\r\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`)\r\n\r\n return { conv, scale }\r\n }\r\n\r\n function extractResidualLayerParams(\r\n numFilterValues: number,\r\n numFilters: number,\r\n filterSize: number,\r\n mappedPrefix: string,\r\n isDown: boolean = false\r\n ): ResidualLayerParams {\r\n\r\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`)\r\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`)\r\n\r\n return { conv1, conv2 }\r\n }\r\n\r\n return {\r\n extractConvLayerParams,\r\n extractResidualLayerParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractConvLayerParams,\r\n extractResidualLayerParams\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down')\r\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1')\r\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2')\r\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3')\r\n\r\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true)\r\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1')\r\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2')\r\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3')\r\n\r\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true)\r\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1')\r\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2')\r\n\r\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true)\r\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1')\r\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2')\r\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out')\r\n\r\n const fc = tf.tidy(\r\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0])\r\n )\r\n paramMappings.push({ paramPath: `fc` })\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n const params = {\r\n conv32_down,\r\n conv32_1,\r\n conv32_2,\r\n conv32_3,\r\n conv64_down,\r\n conv64_1,\r\n conv64_2,\r\n conv64_3,\r\n conv128_down,\r\n conv128_1,\r\n conv128_2,\r\n conv256_down,\r\n conv256_1,\r\n conv256_2,\r\n conv256_down_out,\r\n fc\r\n }\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport {\r\n disposeUnusedWeightTensors,\r\n extractWeightEntryFactory,\r\n isTensor2D,\r\n loadWeightMap,\r\n ParamMapping,\r\n} from 'tfjs-image-recognition-base';\r\n\r\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\r\n\r\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\r\n\r\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1)\r\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1)\r\n\r\n return { weights, biases }\r\n }\r\n\r\n function extractConvLayerParams(prefix: string): ConvLayerParams {\r\n\r\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4)\r\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1)\r\n const scale = extractScaleLayerParams(prefix)\r\n\r\n return { conv: { filters, bias }, scale }\r\n }\r\n\r\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\r\n return {\r\n conv1: extractConvLayerParams(`${prefix}/conv1`),\r\n conv2: extractConvLayerParams(`${prefix}/conv2`)\r\n }\r\n }\r\n\r\n return {\r\n extractConvLayerParams,\r\n extractResidualLayerParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractConvLayerParams,\r\n extractResidualLayerParams\r\n } = extractorsFactory(weightMap, paramMappings)\r\n\r\n const conv32_down = extractConvLayerParams('conv32_down')\r\n const conv32_1 = extractResidualLayerParams('conv32_1')\r\n const conv32_2 = extractResidualLayerParams('conv32_2')\r\n const conv32_3 = extractResidualLayerParams('conv32_3')\r\n\r\n const conv64_down = extractResidualLayerParams('conv64_down')\r\n const conv64_1 = extractResidualLayerParams('conv64_1')\r\n const conv64_2 = extractResidualLayerParams('conv64_2')\r\n const conv64_3 = extractResidualLayerParams('conv64_3')\r\n\r\n const conv128_down = extractResidualLayerParams('conv128_down')\r\n const conv128_1 = extractResidualLayerParams('conv128_1')\r\n const conv128_2 = extractResidualLayerParams('conv128_2')\r\n\r\n const conv256_down = extractResidualLayerParams('conv256_down')\r\n const conv256_1 = extractResidualLayerParams('conv256_1')\r\n const conv256_2 = extractResidualLayerParams('conv256_2')\r\n const conv256_down_out = extractResidualLayerParams('conv256_down_out')\r\n\r\n const fc = weightMap['fc']\r\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' })\r\n\r\n if (!isTensor2D(fc)) {\r\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`)\r\n }\r\n\r\n const params = {\r\n conv32_down,\r\n conv32_1,\r\n conv32_2,\r\n conv32_3,\r\n conv64_down,\r\n conv64_1,\r\n conv64_2,\r\n conv64_3,\r\n conv128_down,\r\n conv128_1,\r\n conv128_2,\r\n conv256_down,\r\n conv256_1,\r\n conv256_2,\r\n conv256_down_out,\r\n fc\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { conv, convDown, convNoRelu } from './convLayer';\r\nimport { ResidualLayerParams } from './types';\r\n\r\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\r\n let out = conv(x, params.conv1)\r\n out = convNoRelu(out, params.conv2)\r\n out = tf.add(out, x)\r\n out = tf.relu(out)\r\n return out\r\n}\r\n\r\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\r\n let out = convDown(x, params.conv1)\r\n out = convNoRelu(out, params.conv2)\r\n\r\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D\r\n const zeros = tf.zeros(pooled.shape)\r\n const isPad = pooled.shape[3] !== out.shape[3]\r\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2]\r\n\r\n if (isAdjustShape) {\r\n const padShapeX = [...out.shape] as [number, number, number, number]\r\n padShapeX[1] = 1\r\n const zerosW = tf.zeros(padShapeX)\r\n out = tf.concat([out, zerosW], 1)\r\n\r\n const padShapeY = [...out.shape] as [number, number, number, number]\r\n padShapeY[2] = 1\r\n const zerosH = tf.zeros(padShapeY)\r\n out = tf.concat([out, zerosH], 2)\r\n }\r\n\r\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled\r\n out = tf.add(pooled, out) as tf.Tensor4D\r\n\r\n out = tf.relu(out)\r\n return out\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, normalize, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { convDown } from './convLayer';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { residual, residualDown } from './residualLayer';\r\nimport { NetParams } from './types';\r\n\r\n\r\nexport class FaceRecognitionNet extends NeuralNetwork {\r\n\r\n constructor() {\r\n super('FaceRecognitionNet')\r\n }\r\n\r\n public forwardInput(input: NetInput): tf.Tensor2D {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('FaceRecognitionNet - load model before inference')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const batchTensor = input.toBatchTensor(150, true).toFloat()\r\n\r\n const meanRgb = [122.782, 117.001, 104.298]\r\n const normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256)) as tf.Tensor4D\r\n\r\n let out = convDown(normalized, params.conv32_down)\r\n out = tf.maxPool(out, 3, 2, 'valid')\r\n\r\n out = residual(out, params.conv32_1)\r\n out = residual(out, params.conv32_2)\r\n out = residual(out, params.conv32_3)\r\n\r\n out = residualDown(out, params.conv64_down)\r\n out = residual(out, params.conv64_1)\r\n out = residual(out, params.conv64_2)\r\n out = residual(out, params.conv64_3)\r\n\r\n out = residualDown(out, params.conv128_down)\r\n out = residual(out, params.conv128_1)\r\n out = residual(out, params.conv128_2)\r\n\r\n out = residualDown(out, params.conv256_down)\r\n out = residual(out, params.conv256_1)\r\n out = residual(out, params.conv256_2)\r\n out = residualDown(out, params.conv256_down_out)\r\n\r\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D\r\n const fullyConnected = tf.matMul(globalAvg, params.fc)\r\n\r\n return fullyConnected\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput): Promise {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n public async computeFaceDescriptor(input: TNetInput): Promise {\r\n const netInput = await toNetInput(input)\r\n\r\n const faceDescriptorTensors = tf.tidy(\r\n () => tf.unstack(this.forwardInput(netInput))\r\n )\r\n\r\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map(\r\n t => t.data()\r\n )) as Float32Array[]\r\n\r\n faceDescriptorTensors.forEach(t => t.dispose())\r\n\r\n return netInput.isBatchInput\r\n ? faceDescriptorsForBatch\r\n : faceDescriptorsForBatch[0]\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'face_recognition_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMap(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParams(weights)\r\n }\r\n}","import { FaceRecognitionNet } from './FaceRecognitionNet';\r\n\r\nexport * from './FaceRecognitionNet';\r\n\r\nexport function createFaceRecognitionNet(weights: Float32Array) {\r\n const net = new FaceRecognitionNet()\r\n net.extractWeights(weights)\r\n return net\r\n}","export type WithFaceDescriptor = TSource & {\r\n descriptor: Float32Array\r\n}\r\n\r\nexport function extendWithFaceDescriptor<\r\n TSource\r\n> (\r\n sourceObj: TSource,\r\n descriptor: Float32Array\r\n): WithFaceDescriptor {\r\n\r\n const extension = { descriptor }\r\n return Object.assign({}, sourceObj, extension)\r\n}\r\n\r\n","import { FaceDetection } from '../classes/FaceDetection';\r\n\r\nexport type WithFaceDetection = TSource & {\r\n detection: FaceDetection\r\n}\r\n\r\nexport function extendWithFaceDetection<\r\n TSource\r\n> (\r\n sourceObj: TSource,\r\n detection: FaceDetection\r\n): WithFaceDetection {\r\n\r\n const extension = { detection }\r\n return Object.assign({}, sourceObj, extension)\r\n}\r\n","import { FaceExpressionPrediction } from '../faceExpressionNet/types';\r\n\r\nexport type WithFaceExpressions = TSource & {\r\n expressions: FaceExpressionPrediction[]\r\n}\r\n\r\nexport function extendWithFaceExpressions<\r\n TSource\r\n> (\r\n sourceObj: TSource,\r\n expressions: FaceExpressionPrediction[]\r\n): WithFaceExpressions {\r\n\r\n const extension = { expressions }\r\n return Object.assign({}, sourceObj, extension)\r\n}","import { FaceDetection } from '../classes/FaceDetection';\r\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { WithFaceDetection } from './WithFaceDetection';\r\n\r\nexport type WithFaceLandmarks<\r\n TSource extends WithFaceDetection<{}>,\r\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68\r\n> = TSource & {\r\n landmarks: TFaceLandmarks\r\n unshiftedLandmarks: TFaceLandmarks\r\n alignedRect: FaceDetection\r\n}\r\n\r\nexport function extendWithFaceLandmarks<\r\n TSource extends WithFaceDetection<{}>,\r\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68\r\n> (\r\n sourceObj: TSource,\r\n unshiftedLandmarks: TFaceLandmarks\r\n): WithFaceLandmarks {\r\n\r\n const { box: shift } = sourceObj.detection\r\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y)\r\n\r\n const rect = landmarks.align()\r\n const { imageDims } = sourceObj.detection\r\n const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims)\r\n\r\n const extension = {\r\n landmarks,\r\n unshiftedLandmarks,\r\n alignedRect\r\n }\r\n\r\n return Object.assign({}, sourceObj, extension)\r\n}","export interface IMtcnnOptions {\r\n minFaceSize?: number\r\n scaleFactor?: number\r\n maxNumScales?: number\r\n scoreThresholds?: number[]\r\n scaleSteps?: number[]\r\n}\r\n\r\nexport class MtcnnOptions {\r\n protected _name: string = 'MtcnnOptions'\r\n\r\n private _minFaceSize: number\r\n private _scaleFactor: number\r\n private _maxNumScales: number\r\n private _scoreThresholds: number[]\r\n private _scaleSteps: number[] | undefined\r\n\r\n constructor({ minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps }: IMtcnnOptions = {}) {\r\n this._minFaceSize = minFaceSize || 20\r\n this._scaleFactor = scaleFactor || 0.709\r\n this._maxNumScales = maxNumScales || 10\r\n this._scoreThresholds = scoreThresholds || [0.6, 0.7, 0.7]\r\n this._scaleSteps = scaleSteps\r\n\r\n if (typeof this._minFaceSize !== 'number' || this._minFaceSize < 0) {\r\n throw new Error(`${this._name} - expected minFaceSize to be a number > 0`)\r\n }\r\n\r\n if (typeof this._scaleFactor !== 'number' || this._scaleFactor <= 0 || this._scaleFactor >= 1) {\r\n throw new Error(`${this._name} - expected scaleFactor to be a number between 0 and 1`)\r\n }\r\n\r\n if (typeof this._maxNumScales !== 'number' || this._maxNumScales < 0) {\r\n throw new Error(`${this._name} - expected maxNumScales to be a number > 0`)\r\n }\r\n\r\n if (\r\n !Array.isArray(this._scoreThresholds)\r\n || this._scoreThresholds.length !== 3\r\n || this._scoreThresholds.some(th => typeof th !== 'number')\r\n ) {\r\n throw new Error(`${this._name} - expected scoreThresholds to be an array of numbers of length 3`)\r\n }\r\n\r\n if (\r\n this._scaleSteps\r\n && (!Array.isArray(this._scaleSteps) || this._scaleSteps.some(th => typeof th !== 'number'))\r\n ) {\r\n throw new Error(`${this._name} - expected scaleSteps to be an array of numbers`)\r\n }\r\n }\r\n\r\n get minFaceSize(): number { return this._minFaceSize }\r\n get scaleFactor(): number { return this._scaleFactor }\r\n get maxNumScales(): number { return this._maxNumScales }\r\n get scoreThresholds(): number[] { return this._scoreThresholds }\r\n get scaleSteps(): number[] | undefined { return this._scaleSteps }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { ConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\r\n\r\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\r\n\r\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\r\n\r\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1])\r\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels))\r\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels))\r\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels))\r\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/filters` },\r\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\r\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\r\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\r\n { paramPath: `${mappedPrefix}/batch_norm_variance` }\r\n )\r\n\r\n return {\r\n filters,\r\n batch_norm_scale,\r\n batch_norm_offset,\r\n batch_norm_mean,\r\n batch_norm_variance\r\n }\r\n }\r\n\r\n function extractConvParams(\r\n channelsIn: number,\r\n channelsOut: number,\r\n filterSize: number,\r\n mappedPrefix: string,\r\n isPointwiseConv?: boolean\r\n ): ConvParams {\r\n\r\n const filters = tf.tensor4d(\r\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\r\n [filterSize, filterSize, channelsIn, channelsOut]\r\n )\r\n const bias = tf.tensor1d(extractWeights(channelsOut))\r\n\r\n paramMappings.push(\r\n { paramPath: `${mappedPrefix}/filters` },\r\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` }\r\n )\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractPointwiseConvParams(\r\n channelsIn: number,\r\n channelsOut: number,\r\n filterSize: number,\r\n mappedPrefix: string\r\n ): PointwiseConvParams {\r\n\r\n const {\r\n filters,\r\n bias\r\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true)\r\n\r\n return {\r\n filters,\r\n batch_norm_offset: bias\r\n }\r\n }\r\n\r\n function extractConvPairParams(\r\n channelsIn: number,\r\n channelsOut: number,\r\n mappedPrefix: string\r\n ): MobileNetV1.ConvPairParams {\r\n\r\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`)\r\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`)\r\n\r\n return { depthwise_conv, pointwise_conv }\r\n }\r\n\r\n function extractMobilenetV1Params(): MobileNetV1.Params {\r\n\r\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0')\r\n\r\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1')\r\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2')\r\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3')\r\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4')\r\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5')\r\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6')\r\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7')\r\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8')\r\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9')\r\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10')\r\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11')\r\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12')\r\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13')\r\n\r\n return {\r\n conv_0,\r\n conv_1,\r\n conv_2,\r\n conv_3,\r\n conv_4,\r\n conv_5,\r\n conv_6,\r\n conv_7,\r\n conv_8,\r\n conv_9,\r\n conv_10,\r\n conv_11,\r\n conv_12,\r\n conv_13\r\n }\r\n }\r\n\r\n function extractPredictionLayerParams(): PredictionLayerParams {\r\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0')\r\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1')\r\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2')\r\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3')\r\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4')\r\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5')\r\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6')\r\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7')\r\n\r\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor')\r\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor')\r\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor')\r\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor')\r\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor')\r\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor')\r\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor')\r\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor')\r\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor')\r\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor')\r\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor')\r\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor')\r\n\r\n const box_predictor_0 = {\r\n box_encoding_predictor: box_encoding_0_predictor,\r\n class_predictor: class_predictor_0\r\n }\r\n const box_predictor_1 = {\r\n box_encoding_predictor: box_encoding_1_predictor,\r\n class_predictor: class_predictor_1\r\n }\r\n const box_predictor_2 = {\r\n box_encoding_predictor: box_encoding_2_predictor,\r\n class_predictor: class_predictor_2\r\n }\r\n const box_predictor_3 = {\r\n box_encoding_predictor: box_encoding_3_predictor,\r\n class_predictor: class_predictor_3\r\n }\r\n const box_predictor_4 = {\r\n box_encoding_predictor: box_encoding_4_predictor,\r\n class_predictor: class_predictor_4\r\n }\r\n const box_predictor_5 = {\r\n box_encoding_predictor: box_encoding_5_predictor,\r\n class_predictor: class_predictor_5\r\n }\r\n\r\n return {\r\n conv_0,\r\n conv_1,\r\n conv_2,\r\n conv_3,\r\n conv_4,\r\n conv_5,\r\n conv_6,\r\n conv_7,\r\n box_predictor_0,\r\n box_predictor_1,\r\n box_predictor_2,\r\n box_predictor_3,\r\n box_predictor_4,\r\n box_predictor_5\r\n }\r\n }\r\n\r\n return {\r\n extractMobilenetV1Params,\r\n extractPredictionLayerParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const {\r\n extractMobilenetV1Params,\r\n extractPredictionLayerParams\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const mobilenetv1 = extractMobilenetV1Params()\r\n const prediction_layer = extractPredictionLayerParams()\r\n const extra_dim = tf.tensor3d(\r\n extractWeights(5118 * 4),\r\n [1, 5118, 4]\r\n )\r\n const output_layer = {\r\n extra_dim\r\n }\r\n\r\n paramMappings.push({ paramPath: 'output_layer/extra_dim' })\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return {\r\n params: {\r\n mobilenetv1,\r\n prediction_layer,\r\n output_layer\r\n },\r\n paramMappings\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport {\r\n disposeUnusedWeightTensors,\r\n extractWeightEntryFactory,\r\n isTensor3D,\r\n ParamMapping,\r\n} from 'tfjs-image-recognition-base';\r\nimport { ConvParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\r\n\r\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\r\n\r\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`)\r\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`)\r\n\r\n return { filters, batch_norm_offset }\r\n }\r\n\r\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\r\n\r\n const mappedPrefix = `mobilenetv1/conv_${idx}`\r\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`\r\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`\r\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`\r\n\r\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`)\r\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`)\r\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`)\r\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`)\r\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`)\r\n\r\n return {\r\n depthwise_conv: {\r\n filters,\r\n batch_norm_scale,\r\n batch_norm_offset,\r\n batch_norm_mean,\r\n batch_norm_variance\r\n },\r\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv)\r\n }\r\n }\r\n\r\n function extractMobilenetV1Params(): MobileNetV1.Params {\r\n return {\r\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\r\n conv_1: extractConvPairParams(1),\r\n conv_2: extractConvPairParams(2),\r\n conv_3: extractConvPairParams(3),\r\n conv_4: extractConvPairParams(4),\r\n conv_5: extractConvPairParams(5),\r\n conv_6: extractConvPairParams(6),\r\n conv_7: extractConvPairParams(7),\r\n conv_8: extractConvPairParams(8),\r\n conv_9: extractConvPairParams(9),\r\n conv_10: extractConvPairParams(10),\r\n conv_11: extractConvPairParams(11),\r\n conv_12: extractConvPairParams(12),\r\n conv_13: extractConvPairParams(13)\r\n }\r\n }\r\n\r\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\r\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`)\r\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`)\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\r\n\r\n const box_encoding_predictor = extractConvParams(\r\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\r\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`\r\n )\r\n const class_predictor = extractConvParams(\r\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\r\n `prediction_layer/box_predictor_${idx}/class_predictor`\r\n )\r\n\r\n return { box_encoding_predictor, class_predictor }\r\n }\r\n\r\n function extractPredictionLayerParams(): PredictionLayerParams {\r\n return {\r\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\r\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\r\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\r\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\r\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\r\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\r\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\r\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\r\n box_predictor_0: extractBoxPredictorParams(0),\r\n box_predictor_1: extractBoxPredictorParams(1),\r\n box_predictor_2: extractBoxPredictorParams(2),\r\n box_predictor_3: extractBoxPredictorParams(3),\r\n box_predictor_4: extractBoxPredictorParams(4),\r\n box_predictor_5: extractBoxPredictorParams(5)\r\n }\r\n }\r\n\r\n return {\r\n extractMobilenetV1Params,\r\n extractPredictionLayerParams\r\n }\r\n}\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractMobilenetV1Params,\r\n extractPredictionLayerParams\r\n } = extractorsFactory(weightMap, paramMappings)\r\n\r\n const extra_dim = weightMap['Output/extra_dim']\r\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' })\r\n\r\n if (!isTensor3D(extra_dim)) {\r\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`)\r\n }\r\n\r\n const params = {\r\n mobilenetv1: extractMobilenetV1Params(),\r\n prediction_layer: extractPredictionLayerParams(),\r\n output_layer: {\r\n extra_dim\r\n }\r\n }\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { PointwiseConvParams } from './types';\r\n\r\nexport function pointwiseConvLayer(\r\n x: tf.Tensor4D,\r\n params: PointwiseConvParams,\r\n strides: [number, number]\r\n) {\r\n return tf.tidy(() => {\r\n\r\n let out = tf.conv2d(x, params.filters, strides, 'same')\r\n out = tf.add(out, params.batch_norm_offset)\r\n return tf.clipByValue(out, 0, 6)\r\n\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\r\nimport { MobileNetV1 } from './types';\r\n\r\nconst epsilon = 0.0010000000474974513\r\n\r\nfunction depthwiseConvLayer(\r\n x: tf.Tensor4D,\r\n params: MobileNetV1.DepthwiseConvParams,\r\n strides: [number, number]\r\n) {\r\n return tf.tidy(() => {\r\n\r\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same')\r\n out = tf.batchNormalization(\r\n out,\r\n params.batch_norm_mean,\r\n params.batch_norm_variance,\r\n epsilon,\r\n params.batch_norm_scale,\r\n params.batch_norm_offset\r\n )\r\n return tf.clipByValue(out, 0, 6)\r\n\r\n })\r\n}\r\n\r\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\r\n return [2, 4, 6, 12].some(idx => idx === layerIdx) ? [2, 2] : [1, 1]\r\n}\r\n\r\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\r\n return tf.tidy(() => {\r\n\r\n let conv11 = null\r\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2])\r\n\r\n const convPairParams = [\r\n params.conv_1,\r\n params.conv_2,\r\n params.conv_3,\r\n params.conv_4,\r\n params.conv_5,\r\n params.conv_6,\r\n params.conv_7,\r\n params.conv_8,\r\n params.conv_9,\r\n params.conv_10,\r\n params.conv_11,\r\n params.conv_12,\r\n params.conv_13\r\n ]\r\n\r\n convPairParams.forEach((param, i) => {\r\n const layerIdx = i + 1\r\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx)\r\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides)\r\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1])\r\n if (layerIdx === 11) {\r\n conv11 = out\r\n }\r\n })\r\n\r\n if (conv11 === null) {\r\n throw new Error('mobileNetV1 - output of conv layer 11 is null')\r\n }\r\n\r\n return {\r\n out,\r\n conv11: conv11 as any\r\n }\r\n\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core'\r\n\r\nexport function nonMaxSuppression(\r\n boxes: tf.Tensor2D,\r\n scores: number[],\r\n maxOutputSize: number,\r\n iouThreshold: number,\r\n scoreThreshold: number\r\n): number[] {\r\n\r\n const numBoxes = boxes.shape[0]\r\n const outputSize = Math.min(\r\n maxOutputSize,\r\n numBoxes\r\n )\r\n\r\n const candidates = scores\r\n .map((score, boxIndex) => ({ score, boxIndex }))\r\n .filter(c => c.score > scoreThreshold)\r\n .sort((c1, c2) => c2.score - c1.score)\r\n\r\n const suppressFunc = (x: number) => x <= iouThreshold ? 1 : 0\r\n\r\n const selected: number[] = []\r\n\r\n candidates.forEach(c => {\r\n if (selected.length >= outputSize) {\r\n return\r\n }\r\n const originalScore = c.score\r\n\r\n for (let j = selected.length - 1; j >= 0; --j) {\r\n const iou = IOU(boxes, c.boxIndex, selected[j])\r\n if (iou === 0.0) {\r\n continue\r\n }\r\n c.score *= suppressFunc(iou)\r\n if (c.score <= scoreThreshold) {\r\n break\r\n }\r\n }\r\n\r\n if (originalScore === c.score) {\r\n selected.push(c.boxIndex)\r\n }\r\n })\r\n\r\n return selected\r\n}\r\n\r\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\r\n const yminI = Math.min(boxes.get(i, 0), boxes.get(i, 2))\r\n const xminI = Math.min(boxes.get(i, 1), boxes.get(i, 3))\r\n const ymaxI = Math.max(boxes.get(i, 0), boxes.get(i, 2))\r\n const xmaxI = Math.max(boxes.get(i, 1), boxes.get(i, 3))\r\n const yminJ = Math.min(boxes.get(j, 0), boxes.get(j, 2))\r\n const xminJ = Math.min(boxes.get(j, 1), boxes.get(j, 3))\r\n const ymaxJ = Math.max(boxes.get(j, 0), boxes.get(j, 2))\r\n const xmaxJ = Math.max(boxes.get(j, 1), boxes.get(j, 3))\r\n const areaI = (ymaxI - yminI) * (xmaxI - xminI)\r\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ)\r\n if (areaI <= 0 || areaJ <= 0) {\r\n return 0.0\r\n }\r\n const intersectionYmin = Math.max(yminI, yminJ)\r\n const intersectionXmin = Math.max(xminI, xminJ)\r\n const intersectionYmax = Math.min(ymaxI, ymaxJ)\r\n const intersectionXmax = Math.min(xmaxI, xmaxJ)\r\n const intersectionArea =\r\n Math.max(intersectionYmax - intersectionYmin, 0.0) *\r\n Math.max(intersectionXmax - intersectionXmin, 0.0)\r\n return intersectionArea / (areaI + areaJ - intersectionArea)\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { OutputLayerParams } from './types';\r\n\r\n\r\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\r\n const vec = tf.unstack(tf.transpose(x, [1, 0]))\r\n\r\n const sizes = [\r\n tf.sub(vec[2], vec[0]),\r\n tf.sub(vec[3], vec[1])\r\n ]\r\n\r\n const centers = [\r\n tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),\r\n tf.add(vec[1], tf.div(sizes[1], tf.scalar(2)))\r\n ]\r\n\r\n return {\r\n sizes,\r\n centers\r\n }\r\n}\r\n\r\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\r\n const {\r\n sizes,\r\n centers\r\n } = getCenterCoordinatesAndSizesLayer(x0)\r\n\r\n const vec = tf.unstack(tf.transpose(x1, [1, 0]))\r\n\r\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2))\r\n const add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0])\r\n\r\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2))\r\n const add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1])\r\n\r\n return tf.transpose(\r\n tf.stack([\r\n tf.sub(add0_out, div0_out),\r\n tf.sub(add1_out, div1_out),\r\n tf.add(add0_out, div0_out),\r\n tf.add(add1_out, div1_out)\r\n ]),\r\n [1, 0]\r\n )\r\n}\r\n\r\nexport function outputLayer(\r\n boxPredictions: tf.Tensor4D,\r\n classPredictions: tf.Tensor4D,\r\n params: OutputLayerParams\r\n) {\r\n return tf.tidy(() => {\r\n\r\n const batchSize = boxPredictions.shape[0]\r\n\r\n let boxes = decodeBoxesLayer(\r\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\r\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D\r\n )\r\n boxes = tf.reshape(\r\n boxes,\r\n [batchSize, (boxes.shape[0] / batchSize), 4]\r\n )\r\n\r\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]))\r\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor\r\n\r\n scores = tf.reshape(\r\n scores,\r\n [batchSize, scores.shape[1]]\r\n )\r\n\r\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[]\r\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[]\r\n\r\n return {\r\n boxes: boxesByBatch,\r\n scores: scoresByBatch\r\n }\r\n\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { convLayer } from 'tfjs-tiny-yolov2';\r\n\r\nimport { BoxPredictionParams } from './types';\r\n\r\n\r\nexport function boxPredictionLayer(\r\n x: tf.Tensor4D,\r\n params: BoxPredictionParams\r\n) {\r\n return tf.tidy(() => {\r\n\r\n const batchSize = x.shape[0]\r\n\r\n const boxPredictionEncoding = tf.reshape(\r\n convLayer(x, params.box_encoding_predictor),\r\n [batchSize, -1, 1, 4]\r\n )\r\n const classPrediction = tf.reshape(\r\n convLayer(x, params.class_predictor),\r\n [batchSize, -1, 3]\r\n )\r\n\r\n return {\r\n boxPredictionEncoding,\r\n classPrediction\r\n }\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { boxPredictionLayer } from './boxPredictionLayer';\r\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\r\nimport { PredictionLayerParams } from './types';\r\n\r\nexport function predictionLayer(\r\n x: tf.Tensor4D,\r\n conv11: tf.Tensor4D,\r\n params: PredictionLayerParams\r\n) {\r\n return tf.tidy(() => {\r\n\r\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1])\r\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2])\r\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1])\r\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2])\r\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1])\r\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2])\r\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1])\r\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2])\r\n\r\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0)\r\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1)\r\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2)\r\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3)\r\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4)\r\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5)\r\n\r\n const boxPredictions = tf.concat([\r\n boxPrediction0.boxPredictionEncoding,\r\n boxPrediction1.boxPredictionEncoding,\r\n boxPrediction2.boxPredictionEncoding,\r\n boxPrediction3.boxPredictionEncoding,\r\n boxPrediction4.boxPredictionEncoding,\r\n boxPrediction5.boxPredictionEncoding\r\n ], 1) as tf.Tensor4D\r\n\r\n const classPredictions = tf.concat([\r\n boxPrediction0.classPrediction,\r\n boxPrediction1.classPrediction,\r\n boxPrediction2.classPrediction,\r\n boxPrediction3.classPrediction,\r\n boxPrediction4.classPrediction,\r\n boxPrediction5.classPrediction\r\n ], 1) as tf.Tensor4D\r\n\r\n return {\r\n boxPredictions,\r\n classPredictions\r\n }\r\n })\r\n}","export interface ISsdMobilenetv1Options {\r\n minConfidence?: number\r\n maxResults?: number\r\n}\r\n\r\nexport class SsdMobilenetv1Options {\r\n protected _name: string = 'SsdMobilenetv1Options'\r\n\r\n private _minConfidence: number\r\n private _maxResults: number\r\n\r\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\r\n this._minConfidence = minConfidence || 0.5\r\n this._maxResults = maxResults || 100\r\n\r\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\r\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`)\r\n }\r\n\r\n if (typeof this._maxResults !== 'number') {\r\n throw new Error(`${this._name} - expected maxResults to be a number`)\r\n }\r\n }\r\n\r\n get minConfidence(): number { return this._minConfidence }\r\n get maxResults(): number { return this._maxResults }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, Rect, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { mobileNetV1 } from './mobileNetV1';\r\nimport { nonMaxSuppression } from './nonMaxSuppression';\r\nimport { outputLayer } from './outputLayer';\r\nimport { predictionLayer } from './predictionLayer';\r\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\r\nimport { NetParams } from './types';\r\n\r\n\r\nexport class SsdMobilenetv1 extends NeuralNetwork {\r\n\r\n constructor() {\r\n super('SsdMobilenetv1')\r\n }\r\n\r\n public forwardInput(input: NetInput) {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('SsdMobilenetv1 - load model before inference')\r\n }\r\n\r\n return tf.tidy(() => {\r\n const batchTensor = input.toBatchTensor(512, false).toFloat()\r\n\r\n const x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1)) as tf.Tensor4D\r\n const features = mobileNetV1(x, params.mobilenetv1)\r\n\r\n const {\r\n boxPredictions,\r\n classPredictions\r\n } = predictionLayer(features.out, features.conv11, params.prediction_layer)\r\n\r\n return outputLayer(boxPredictions, classPredictions, params.output_layer)\r\n })\r\n }\r\n\r\n public async forward(input: TNetInput) {\r\n return this.forwardInput(await toNetInput(input))\r\n }\r\n\r\n public async locateFaces(\r\n input: TNetInput,\r\n options: ISsdMobilenetv1Options = {}\r\n ): Promise {\r\n\r\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options)\r\n\r\n const netInput = await toNetInput(input)\r\n\r\n const {\r\n boxes: _boxes,\r\n scores: _scores\r\n } = this.forwardInput(netInput)\r\n\r\n\r\n // TODO batches\r\n const boxes = _boxes[0]\r\n const scores = _scores[0]\r\n for (let i = 1; i < _boxes.length; i++) {\r\n _boxes[i].dispose()\r\n _scores[i].dispose()\r\n }\r\n\r\n // TODO find a better way to filter by minConfidence\r\n const scoresData = Array.from(await scores.data())\r\n\r\n const iouThreshold = 0.5\r\n const indices = nonMaxSuppression(\r\n boxes,\r\n scoresData,\r\n maxResults,\r\n iouThreshold,\r\n minConfidence\r\n )\r\n\r\n const reshapedDims = netInput.getReshapedInputDimensions(0)\r\n const inputSize = netInput.inputSize as number\r\n const padX = inputSize / reshapedDims.width\r\n const padY = inputSize / reshapedDims.height\r\n\r\n const results = indices\r\n .map(idx => {\r\n const [top, bottom] = [\r\n Math.max(0, boxes.get(idx, 0)),\r\n Math.min(1.0, boxes.get(idx, 2))\r\n ].map(val => val * padY)\r\n const [left, right] = [\r\n Math.max(0, boxes.get(idx, 1)),\r\n Math.min(1.0, boxes.get(idx, 3))\r\n ].map(val => val * padX)\r\n return new FaceDetection(\r\n scoresData[idx],\r\n new Rect(\r\n left,\r\n top,\r\n right - left,\r\n bottom - top\r\n ),\r\n {\r\n height: netInput.getInputHeight(0),\r\n width: netInput.getInputWidth(0)\r\n }\r\n )\r\n })\r\n\r\n boxes.dispose()\r\n scores.dispose()\r\n\r\n return results\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'ssd_mobilenetv1_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMap(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParams(weights)\r\n }\r\n}","import { SsdMobilenetv1 } from './SsdMobilenetv1';\r\n\r\nexport * from './SsdMobilenetv1';\r\nexport * from './SsdMobilenetv1Options';\r\n\r\nexport function createSsdMobilenetv1(weights: Float32Array) {\r\n const net = new SsdMobilenetv1()\r\n net.extractWeights(weights)\r\n return net\r\n}\r\n\r\nexport function createFaceDetectionNet(weights: Float32Array) {\r\n return createSsdMobilenetv1(weights)\r\n}\r\n\r\n// alias for backward compatibily\r\nexport class FaceDetectionNet extends SsdMobilenetv1 {}","import { ITinyYolov2Options, TinyYolov2Options } from 'tfjs-tiny-yolov2';\r\n\r\nexport interface ITinyFaceDetectorOptions extends ITinyYolov2Options {}\r\n\r\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\r\n protected _name: string = 'TinyFaceDetectorOptions'\r\n}","export class ComposableTask {\r\n\r\n public async then(\r\n onfulfilled: (value: T) => T | PromiseLike\r\n ): Promise {\r\n return onfulfilled(await this.run())\r\n }\r\n\r\n public async run(): Promise {\r\n throw new Error('ComposableTask - run is not implemented')\r\n }\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nexport function bgrToRgbTensor(tensor: tf.Tensor4D): tf.Tensor4D {\r\n return tf.tidy(\r\n () => tf.stack(tf.unstack(tensor, 3).reverse(), 3)\r\n ) as tf.Tensor4D\r\n}","export const CELL_STRIDE = 2\r\nexport const CELL_SIZE = 12","import * as tf from '@tensorflow/tfjs-core';\r\nimport { extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { extractConvParamsFactory, extractFCParamsFactory } from 'tfjs-tiny-yolov2';\r\n\r\nimport { NetParams, ONetParams, PNetParams, RNetParams, SharedParams } from './types';\r\n\r\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\r\n\r\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings)\r\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings)\r\n\r\n function extractPReluParams(size: number, paramPath: string): tf.Tensor1D {\r\n const alpha = tf.tensor1d(extractWeights(size))\r\n paramMappings.push({ paramPath })\r\n return alpha\r\n }\r\n\r\n function extractSharedParams(numFilters: number[], mappedPrefix: string, isRnet: boolean = false): SharedParams {\r\n\r\n const conv1 = extractConvParams(numFilters[0], numFilters[1], 3, `${mappedPrefix}/conv1`)\r\n const prelu1_alpha = extractPReluParams(numFilters[1], `${mappedPrefix}/prelu1_alpha`)\r\n const conv2 = extractConvParams(numFilters[1], numFilters[2], 3, `${mappedPrefix}/conv2`)\r\n const prelu2_alpha = extractPReluParams(numFilters[2], `${mappedPrefix}/prelu2_alpha`)\r\n const conv3 = extractConvParams(numFilters[2], numFilters[3], isRnet ? 2 : 3, `${mappedPrefix}/conv3`)\r\n const prelu3_alpha = extractPReluParams(numFilters[3], `${mappedPrefix}/prelu3_alpha`)\r\n\r\n return { conv1, prelu1_alpha, conv2, prelu2_alpha, conv3, prelu3_alpha }\r\n }\r\n\r\n function extractPNetParams(): PNetParams {\r\n\r\n const sharedParams = extractSharedParams([3, 10, 16, 32], 'pnet')\r\n const conv4_1 = extractConvParams(32, 2, 1, 'pnet/conv4_1')\r\n const conv4_2 = extractConvParams(32, 4, 1, 'pnet/conv4_2')\r\n\r\n return { ...sharedParams, conv4_1, conv4_2 }\r\n }\r\n\r\n function extractRNetParams(): RNetParams {\r\n\r\n const sharedParams = extractSharedParams([3, 28, 48, 64], 'rnet', true)\r\n const fc1 = extractFCParams(576, 128, 'rnet/fc1')\r\n const prelu4_alpha = extractPReluParams(128, 'rnet/prelu4_alpha')\r\n const fc2_1 = extractFCParams(128, 2, 'rnet/fc2_1')\r\n const fc2_2 = extractFCParams(128, 4, 'rnet/fc2_2')\r\n\r\n return { ...sharedParams, fc1, prelu4_alpha, fc2_1, fc2_2 }\r\n }\r\n\r\n function extractONetParams(): ONetParams {\r\n\r\n const sharedParams = extractSharedParams([3, 32, 64, 64], 'onet')\r\n const conv4 = extractConvParams(64, 128, 2, 'onet/conv4')\r\n const prelu4_alpha = extractPReluParams(128, 'onet/prelu4_alpha')\r\n const fc1 = extractFCParams(1152, 256, 'onet/fc1')\r\n const prelu5_alpha = extractPReluParams(256, 'onet/prelu5_alpha')\r\n const fc2_1 = extractFCParams(256, 2, 'onet/fc2_1')\r\n const fc2_2 = extractFCParams(256, 4, 'onet/fc2_2')\r\n const fc2_3 = extractFCParams(256, 10, 'onet/fc2_3')\r\n\r\n return { ...sharedParams, conv4, prelu4_alpha, fc1, prelu5_alpha, fc2_1, fc2_2, fc2_3 }\r\n }\r\n\r\n return {\r\n extractPNetParams,\r\n extractRNetParams,\r\n extractONetParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const {\r\n extractWeights,\r\n getRemainingWeights\r\n } = extractWeightsFactory(weights)\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractPNetParams,\r\n extractRNetParams,\r\n extractONetParams\r\n } = extractorsFactory(extractWeights, paramMappings)\r\n\r\n const pnet = extractPNetParams()\r\n const rnet = extractRNetParams()\r\n const onet = extractONetParams()\r\n\r\n if (getRemainingWeights().length !== 0) {\r\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`)\r\n }\r\n\r\n return { params: { pnet, rnet, onet }, paramMappings }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from 'tfjs-image-recognition-base';\r\nimport { ConvParams, FCParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { NetParams, ONetParams, PNetParams, RNetParams, SharedParams } from './types';\r\n\r\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\r\n\r\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings)\r\n\r\n function extractConvParams(prefix: string): ConvParams {\r\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${prefix}/filters`)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n\r\n return { filters, bias }\r\n }\r\n\r\n function extractFCParams(prefix: string): FCParams {\r\n const weights = extractWeightEntry(`${prefix}/weights`, 2)\r\n const bias = extractWeightEntry(`${prefix}/bias`, 1)\r\n\r\n return { weights, bias }\r\n }\r\n\r\n function extractPReluParams(paramPath: string): tf.Tensor1D {\r\n return extractWeightEntry(paramPath, 1)\r\n }\r\n\r\n function extractSharedParams(prefix: string): SharedParams {\r\n\r\n const conv1 = extractConvParams(`${prefix}/conv1`)\r\n const prelu1_alpha = extractPReluParams(`${prefix}/prelu1_alpha`)\r\n const conv2 = extractConvParams(`${prefix}/conv2`)\r\n const prelu2_alpha = extractPReluParams(`${prefix}/prelu2_alpha`)\r\n const conv3 = extractConvParams(`${prefix}/conv3`)\r\n const prelu3_alpha = extractPReluParams(`${prefix}/prelu3_alpha`)\r\n\r\n return { conv1, prelu1_alpha, conv2, prelu2_alpha, conv3, prelu3_alpha }\r\n }\r\n\r\n function extractPNetParams(): PNetParams {\r\n\r\n const sharedParams = extractSharedParams('pnet')\r\n const conv4_1 = extractConvParams('pnet/conv4_1')\r\n const conv4_2 = extractConvParams('pnet/conv4_2')\r\n\r\n return { ...sharedParams, conv4_1, conv4_2 }\r\n }\r\n\r\n function extractRNetParams(): RNetParams {\r\n\r\n const sharedParams = extractSharedParams('rnet')\r\n const fc1 = extractFCParams('rnet/fc1')\r\n const prelu4_alpha = extractPReluParams('rnet/prelu4_alpha')\r\n const fc2_1 = extractFCParams('rnet/fc2_1')\r\n const fc2_2 = extractFCParams('rnet/fc2_2')\r\n\r\n return { ...sharedParams, fc1, prelu4_alpha, fc2_1, fc2_2 }\r\n }\r\n\r\n function extractONetParams(): ONetParams {\r\n\r\n const sharedParams = extractSharedParams('onet')\r\n const conv4 = extractConvParams('onet/conv4')\r\n const prelu4_alpha = extractPReluParams('onet/prelu4_alpha')\r\n const fc1 = extractFCParams('onet/fc1')\r\n const prelu5_alpha = extractPReluParams('onet/prelu5_alpha')\r\n const fc2_1 = extractFCParams('onet/fc2_1')\r\n const fc2_2 = extractFCParams('onet/fc2_2')\r\n const fc2_3 = extractFCParams('onet/fc2_3')\r\n\r\n return { ...sharedParams, conv4, prelu4_alpha, fc1, prelu5_alpha, fc2_1, fc2_2, fc2_3 }\r\n }\r\n\r\n return {\r\n extractPNetParams,\r\n extractRNetParams,\r\n extractONetParams\r\n }\r\n\r\n}\r\n\r\nexport function extractParamsFromWeigthMap(\r\n weightMap: tf.NamedTensorMap\r\n): { params: NetParams, paramMappings: ParamMapping[] } {\r\n\r\n const paramMappings: ParamMapping[] = []\r\n\r\n const {\r\n extractPNetParams,\r\n extractRNetParams,\r\n extractONetParams\r\n } = extractorsFactory(weightMap, paramMappings)\r\n\r\n const pnet = extractPNetParams()\r\n const rnet = extractRNetParams()\r\n const onet = extractONetParams()\r\n\r\n disposeUnusedWeightTensors(weightMap, paramMappings)\r\n\r\n return { params: { pnet, rnet, onet }, paramMappings }\r\n}","export function getSizesForScale(scale: number, [height, width]: number[]) {\r\n return {\r\n height: Math.floor(height * scale),\r\n width: Math.floor(width * scale)\r\n }\r\n}","import { CELL_SIZE } from './config';\r\n\r\nexport function pyramidDown(minFaceSize: number, scaleFactor: number, dims: number[]): number[] {\r\n\r\n const [height, width] = dims\r\n const m = CELL_SIZE / minFaceSize\r\n\r\n const scales = []\r\n\r\n let minLayer = Math.min(height, width) * m\r\n let exp = 0\r\n while (minLayer >= 12) {\r\n scales.push(m * Math.pow(scaleFactor, exp))\r\n minLayer = minLayer * scaleFactor\r\n exp += 1\r\n }\r\n\r\n return scales\r\n}","import { Box } from 'tfjs-image-recognition-base';\r\n\r\nexport class MtcnnBox extends Box {\r\n constructor(left: number, top: number, right: number, bottom: number) {\r\n super({ left, top, right, bottom }, true)\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nexport function normalize(x: tf.Tensor4D): tf.Tensor4D {\r\n return tf.tidy(\r\n () => tf.mul(tf.sub(x, tf.scalar(127.5)), tf.scalar(0.0078125))\r\n )\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nexport function prelu(x: T, alpha: tf.Tensor1D): T {\r\n return tf.tidy(() =>\r\n tf.add(\r\n tf.relu(x),\r\n tf.mul(alpha, tf.neg(tf.relu(tf.neg(x))))\r\n )\r\n )\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nimport { convLayer } from 'tfjs-tiny-yolov2';\r\n\r\nimport { prelu } from './prelu';\r\nimport { SharedParams } from './types';\r\n\r\nexport function sharedLayer(x: tf.Tensor4D, params: SharedParams, isPnet: boolean = false) {\r\n return tf.tidy(() => {\r\n\r\n let out = convLayer(x, params.conv1, 'valid')\r\n out = prelu(out, params.prelu1_alpha)\r\n out = tf.maxPool(out, isPnet ? [2, 2]: [3, 3], [2, 2], 'same')\r\n out = convLayer(out, params.conv2, 'valid')\r\n out = prelu(out, params.prelu2_alpha)\r\n out = isPnet ? out : tf.maxPool(out, [3, 3], [2, 2], 'valid')\r\n out = convLayer(out, params.conv3, 'valid')\r\n out = prelu(out, params.prelu3_alpha)\r\n\r\n return out\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { convLayer } from 'tfjs-tiny-yolov2';\r\n\r\nimport { sharedLayer } from './sharedLayers';\r\nimport { PNetParams } from './types';\r\n\r\nexport function PNet(x: tf.Tensor4D, params: PNetParams): { prob: tf.Tensor4D, regions: tf.Tensor4D } {\r\n return tf.tidy(() => {\r\n\r\n let out = sharedLayer(x, params, true)\r\n const conv = convLayer(out, params.conv4_1, 'valid')\r\n const max = tf.expandDims(tf.max(conv, 3), 3)\r\n const prob = tf.softmax(tf.sub(conv, max), 3) as tf.Tensor4D\r\n const regions = convLayer(out, params.conv4_2, 'valid')\r\n\r\n return { prob, regions }\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { BoundingBox, nonMaxSuppression, Point } from 'tfjs-image-recognition-base';\r\n\r\nimport { CELL_SIZE, CELL_STRIDE } from './config';\r\nimport { getSizesForScale } from './getSizesForScale';\r\nimport { MtcnnBox } from './MtcnnBox';\r\nimport { normalize } from './normalize';\r\nimport { PNet } from './PNet';\r\nimport { PNetParams } from './types';\r\n\r\nfunction rescaleAndNormalize(x: tf.Tensor4D, scale: number): tf.Tensor4D {\r\n return tf.tidy(() => {\r\n\r\n const { height, width } = getSizesForScale(scale, x.shape.slice(1))\r\n const resized = tf.image.resizeBilinear(x, [height, width])\r\n const normalized = normalize(resized)\r\n\r\n return (tf.transpose(normalized, [0, 2, 1, 3]) as tf.Tensor4D)\r\n })\r\n}\r\n\r\nfunction extractBoundingBoxes(\r\n scoresTensor: tf.Tensor2D,\r\n regionsTensor: tf.Tensor3D,\r\n scale: number,\r\n scoreThreshold: number\r\n) {\r\n\r\n // TODO: fix this!, maybe better to use tf.gather here\r\n const indices: Point[] = []\r\n for (let y = 0; y < scoresTensor.shape[0]; y++) {\r\n for (let x = 0; x < scoresTensor.shape[1]; x++) {\r\n if (scoresTensor.get(y, x) >= scoreThreshold) {\r\n indices.push(new Point(x, y))\r\n }\r\n }\r\n }\r\n\r\n const boundingBoxes = indices.map(idx => {\r\n const cell = new BoundingBox(\r\n Math.round((idx.y * CELL_STRIDE + 1) / scale),\r\n Math.round((idx.x * CELL_STRIDE + 1) / scale),\r\n Math.round((idx.y * CELL_STRIDE + CELL_SIZE) / scale),\r\n Math.round((idx.x * CELL_STRIDE + CELL_SIZE) / scale)\r\n )\r\n\r\n const score = scoresTensor.get(idx.y, idx.x)\r\n\r\n const region = new MtcnnBox(\r\n regionsTensor.get(idx.y, idx.x, 0),\r\n regionsTensor.get(idx.y, idx.x, 1),\r\n regionsTensor.get(idx.y, idx.x, 2),\r\n regionsTensor.get(idx.y, idx.x, 3)\r\n )\r\n\r\n return {\r\n cell,\r\n score,\r\n region\r\n }\r\n })\r\n\r\n return boundingBoxes\r\n}\r\n\r\nexport function stage1(\r\n imgTensor: tf.Tensor4D,\r\n scales: number[],\r\n scoreThreshold: number,\r\n params: PNetParams,\r\n stats: any\r\n) {\r\n stats.stage1 = []\r\n\r\n const pnetOutputs = scales.map((scale) => tf.tidy(() => {\r\n const statsForScale: any = { scale }\r\n const resized = rescaleAndNormalize(imgTensor, scale)\r\n\r\n let ts = Date.now()\r\n const { prob, regions } = PNet(resized, params)\r\n statsForScale.pnet = Date.now() - ts\r\n\r\n const scoresTensor = tf.unstack(tf.unstack(prob, 3)[1])[0] as tf.Tensor2D\r\n const regionsTensor = tf.unstack(regions)[0] as tf.Tensor3D\r\n\r\n return {\r\n scoresTensor,\r\n regionsTensor,\r\n scale,\r\n statsForScale\r\n }\r\n }))\r\n\r\n const boxesForScale = pnetOutputs.map(({ scoresTensor, regionsTensor, scale, statsForScale }) => {\r\n const boundingBoxes = extractBoundingBoxes(\r\n scoresTensor,\r\n regionsTensor,\r\n scale,\r\n scoreThreshold\r\n )\r\n\r\n scoresTensor.dispose()\r\n regionsTensor.dispose()\r\n\r\n if (!boundingBoxes.length) {\r\n stats.stage1.push(statsForScale)\r\n return []\r\n }\r\n\r\n let ts = Date.now()\r\n const indices = nonMaxSuppression(\r\n boundingBoxes.map(bbox => bbox.cell),\r\n boundingBoxes.map(bbox => bbox.score),\r\n 0.5\r\n )\r\n statsForScale.nms = Date.now() - ts\r\n statsForScale.numBoxes = indices.length\r\n\r\n stats.stage1.push(statsForScale)\r\n return indices.map(boxIdx => boundingBoxes[boxIdx])\r\n })\r\n\r\n const allBoxes = boxesForScale.reduce(\r\n (all, boxes) => all.concat(boxes), []\r\n )\r\n\r\n let finalBoxes: BoundingBox[] = []\r\n let finalScores: number[] = []\r\n\r\n if (allBoxes.length > 0) {\r\n let ts = Date.now()\r\n const indices = nonMaxSuppression(\r\n allBoxes.map(bbox => bbox.cell),\r\n allBoxes.map(bbox => bbox.score),\r\n 0.7\r\n )\r\n stats.stage1_nms = Date.now() - ts\r\n\r\n finalScores = indices.map(idx => allBoxes[idx].score)\r\n finalBoxes = indices\r\n .map(idx => allBoxes[idx])\r\n .map(({ cell, region }) =>\r\n new BoundingBox(\r\n cell.left + (region.left * cell.width),\r\n cell.top + (region.top * cell.height),\r\n cell.right + (region.right * cell.width),\r\n cell.bottom + (region.bottom * cell.height)\r\n ).toSquare().round()\r\n )\r\n\r\n }\r\n\r\n return {\r\n boxes: finalBoxes,\r\n scores: finalScores\r\n }\r\n\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nimport {\r\n Box,\r\n createCanvas,\r\n createCanvasFromMedia,\r\n env,\r\n getContext2dOrThrow,\r\n IDimensions,\r\n} from 'tfjs-image-recognition-base';\r\n\r\nimport { normalize } from './normalize';\r\n\r\nexport async function extractImagePatches(\r\n img: HTMLCanvasElement,\r\n boxes: Box[],\r\n { width, height }: IDimensions\r\n): Promise {\r\n\r\n\r\n const imgCtx = getContext2dOrThrow(img)\r\n\r\n const bitmaps = await Promise.all(boxes.map(async box => {\r\n // TODO: correct padding\r\n const { y, ey, x, ex } = box.padAtBorders(img.height, img.width)\r\n\r\n const fromX = x - 1\r\n const fromY = y - 1\r\n const imgData = imgCtx.getImageData(fromX, fromY, (ex - fromX), (ey - fromY))\r\n\r\n return env.isNodejs() ? createCanvasFromMedia(imgData) : createImageBitmap(imgData)\r\n }))\r\n\r\n const imagePatchesDatas: number[][] = []\r\n\r\n bitmaps.forEach(bmp => {\r\n const patch = createCanvas({ width, height })\r\n const patchCtx = getContext2dOrThrow(patch)\r\n patchCtx.drawImage(bmp, 0, 0, width, height)\r\n const { data } = patchCtx.getImageData(0, 0, width, height)\r\n\r\n const currData = []\r\n // RGBA -> BGR\r\n for(let i = 0; i < data.length; i+=4) {\r\n currData.push(data[i + 2])\r\n currData.push(data[i + 1])\r\n currData.push(data[i])\r\n }\r\n imagePatchesDatas.push(currData)\r\n })\r\n\r\n\r\n return imagePatchesDatas.map(data => {\r\n const t = tf.tidy(() => {\r\n const imagePatchTensor = tf.transpose(\r\n tf.tensor4d(data, [1, width, height, 3]),\r\n [0, 2, 1, 3]\r\n ).toFloat() as tf.Tensor4D\r\n\r\n return normalize(imagePatchTensor)\r\n })\r\n return t\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\n\r\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\r\nimport { prelu } from './prelu';\r\nimport { sharedLayer } from './sharedLayers';\r\nimport { RNetParams } from './types';\r\n\r\nexport function RNet(x: tf.Tensor4D, params: RNetParams): { scores: tf.Tensor1D, regions: tf.Tensor2D } {\r\n return tf.tidy(() => {\r\n\r\n const convOut = sharedLayer(x, params)\r\n const vectorized = tf.reshape(convOut, [convOut.shape[0], params.fc1.weights.shape[0]]) as tf.Tensor2D\r\n const fc1 = fullyConnectedLayer(vectorized, params.fc1)\r\n const prelu4 = prelu(fc1, params.prelu4_alpha)\r\n const fc2_1 = fullyConnectedLayer(prelu4, params.fc2_1)\r\n const max = tf.expandDims(tf.max(fc2_1, 1), 1)\r\n const prob = tf.softmax(tf.sub(fc2_1, max), 1) as tf.Tensor2D\r\n const regions = fullyConnectedLayer(prelu4, params.fc2_2)\r\n\r\n const scores = tf.unstack(prob, 1)[1] as tf.Tensor1D\r\n return { scores, regions }\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { Box, nonMaxSuppression } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractImagePatches } from './extractImagePatches';\r\nimport { MtcnnBox } from './MtcnnBox';\r\nimport { RNet } from './RNet';\r\nimport { RNetParams } from './types';\r\n\r\nexport async function stage2(\r\n img: HTMLCanvasElement,\r\n inputBoxes: Box[],\r\n scoreThreshold: number,\r\n params: RNetParams,\r\n stats: any\r\n) {\r\n\r\n let ts = Date.now()\r\n const rnetInputs = await extractImagePatches(img, inputBoxes, { width: 24, height: 24 })\r\n stats.stage2_extractImagePatches = Date.now() - ts\r\n\r\n ts = Date.now()\r\n const rnetOuts = rnetInputs.map(\r\n rnetInput => {\r\n const out = RNet(rnetInput, params)\r\n rnetInput.dispose()\r\n return out\r\n }\r\n )\r\n stats.stage2_rnet = Date.now() - ts\r\n\r\n const scoresTensor = rnetOuts.length > 1\r\n ? tf.concat(rnetOuts.map(out => out.scores))\r\n : rnetOuts[0].scores\r\n const scores = Array.from(await scoresTensor.data())\r\n scoresTensor.dispose()\r\n\r\n const indices = scores\r\n .map((score, idx) => ({ score, idx }))\r\n .filter(c => c.score > scoreThreshold)\r\n .map(({ idx }) => idx)\r\n\r\n const filteredBoxes = indices.map(idx => inputBoxes[idx])\r\n const filteredScores = indices.map(idx => scores[idx])\r\n\r\n let finalBoxes: Box[] = []\r\n let finalScores: number[] = []\r\n\r\n if (filteredBoxes.length > 0) {\r\n ts = Date.now()\r\n const indicesNms = nonMaxSuppression(\r\n filteredBoxes,\r\n filteredScores,\r\n 0.7\r\n )\r\n stats.stage2_nms = Date.now() - ts\r\n\r\n const regions = indicesNms.map(idx =>\r\n new MtcnnBox(\r\n rnetOuts[indices[idx]].regions.get(0, 0),\r\n rnetOuts[indices[idx]].regions.get(0, 1),\r\n rnetOuts[indices[idx]].regions.get(0, 2),\r\n rnetOuts[indices[idx]].regions.get(0, 3)\r\n )\r\n )\r\n\r\n finalScores = indicesNms.map(idx => filteredScores[idx])\r\n finalBoxes = indicesNms.map((idx, i) => filteredBoxes[idx].calibrate(regions[i]))\r\n }\r\n\r\n rnetOuts.forEach(t => {\r\n t.regions.dispose()\r\n t.scores.dispose()\r\n })\r\n\r\n return {\r\n boxes: finalBoxes,\r\n scores: finalScores\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { convLayer } from 'tfjs-tiny-yolov2';\r\n\r\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\r\nimport { prelu } from './prelu';\r\nimport { sharedLayer } from './sharedLayers';\r\nimport { ONetParams } from './types';\r\n\r\nexport function ONet(x: tf.Tensor4D, params: ONetParams): { scores: tf.Tensor1D, regions: tf.Tensor2D, points: tf.Tensor2D } {\r\n return tf.tidy(() => {\r\n\r\n let out = sharedLayer(x, params)\r\n out = tf.maxPool(out, [2, 2], [2, 2], 'same')\r\n out = convLayer(out, params.conv4, 'valid')\r\n out = prelu(out, params.prelu4_alpha)\r\n\r\n const vectorized = tf.reshape(out, [out.shape[0], params.fc1.weights.shape[0]]) as tf.Tensor2D\r\n const fc1 = fullyConnectedLayer(vectorized, params.fc1)\r\n const prelu5 = prelu(fc1, params.prelu5_alpha)\r\n const fc2_1 = fullyConnectedLayer(prelu5, params.fc2_1)\r\n const max = tf.expandDims(tf.max(fc2_1, 1), 1)\r\n\r\n const prob = tf.softmax(tf.sub(fc2_1, max), 1) as tf.Tensor2D\r\n const regions = fullyConnectedLayer(prelu5, params.fc2_2)\r\n const points = fullyConnectedLayer(prelu5, params.fc2_3)\r\n\r\n const scores = tf.unstack(prob, 1)[1] as tf.Tensor1D\r\n return { scores, regions, points }\r\n })\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { BoundingBox, Box, nonMaxSuppression, Point } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractImagePatches } from './extractImagePatches';\r\nimport { MtcnnBox } from './MtcnnBox';\r\nimport { ONet } from './ONet';\r\nimport { ONetParams } from './types';\r\n\r\nexport async function stage3(\r\n img: HTMLCanvasElement,\r\n inputBoxes: BoundingBox[],\r\n scoreThreshold: number,\r\n params: ONetParams,\r\n stats: any\r\n) {\r\n\r\n let ts = Date.now()\r\n const onetInputs = await extractImagePatches(img, inputBoxes, { width: 48, height: 48 })\r\n stats.stage3_extractImagePatches = Date.now() - ts\r\n\r\n ts = Date.now()\r\n const onetOuts = onetInputs.map(\r\n onetInput => {\r\n const out = ONet(onetInput, params)\r\n onetInput.dispose()\r\n return out\r\n }\r\n )\r\n stats.stage3_onet = Date.now() - ts\r\n\r\n const scoresTensor = onetOuts.length > 1\r\n ? tf.concat(onetOuts.map(out => out.scores))\r\n : onetOuts[0].scores\r\n const scores = Array.from(await scoresTensor.data())\r\n scoresTensor.dispose()\r\n\r\n const indices = scores\r\n .map((score, idx) => ({ score, idx }))\r\n .filter(c => c.score > scoreThreshold)\r\n .map(({ idx }) => idx)\r\n\r\n const filteredRegions = indices.map(idx => new MtcnnBox(\r\n onetOuts[idx].regions.get(0, 0),\r\n onetOuts[idx].regions.get(0, 1),\r\n onetOuts[idx].regions.get(0, 2),\r\n onetOuts[idx].regions.get(0, 3)\r\n ))\r\n const filteredBoxes = indices\r\n .map((idx, i) => inputBoxes[idx].calibrate(filteredRegions[i]))\r\n const filteredScores = indices.map(idx => scores[idx])\r\n\r\n let finalBoxes: Box[] = []\r\n let finalScores: number[] = []\r\n let points: Point[][] = []\r\n\r\n if (filteredBoxes.length > 0) {\r\n\r\n ts = Date.now()\r\n const indicesNms = nonMaxSuppression(\r\n filteredBoxes,\r\n filteredScores,\r\n 0.7,\r\n false\r\n )\r\n stats.stage3_nms = Date.now() - ts\r\n\r\n finalBoxes = indicesNms.map(idx => filteredBoxes[idx])\r\n finalScores = indicesNms.map(idx => filteredScores[idx])\r\n points = indicesNms.map((idx, i) =>\r\n Array(5).fill(0).map((_, ptIdx) =>\r\n new Point(\r\n ((onetOuts[idx].points.get(0, ptIdx) * (finalBoxes[i].width + 1)) + finalBoxes[i].left) ,\r\n ((onetOuts[idx].points.get(0, ptIdx + 5) * (finalBoxes[i].height + 1)) + finalBoxes[i].top)\r\n )\r\n )\r\n )\r\n }\r\n\r\n onetOuts.forEach(t => {\r\n t.regions.dispose()\r\n t.scores.dispose()\r\n t.points.dispose()\r\n })\r\n\r\n return {\r\n boxes: finalBoxes,\r\n scores: finalScores,\r\n points\r\n }\r\n\r\n}\r\n","import * as tf from '@tensorflow/tfjs-core';\r\nimport { NetInput, NeuralNetwork, Point, Rect, TNetInput, toNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\nimport { FaceLandmarks5 } from '../classes/FaceLandmarks5';\r\nimport { extendWithFaceDetection, extendWithFaceLandmarks } from '../factories';\r\nimport { bgrToRgbTensor } from './bgrToRgbTensor';\r\nimport { CELL_SIZE } from './config';\r\nimport { extractParams } from './extractParams';\r\nimport { extractParamsFromWeigthMap } from './extractParamsFromWeigthMap';\r\nimport { getSizesForScale } from './getSizesForScale';\r\nimport { IMtcnnOptions, MtcnnOptions } from './MtcnnOptions';\r\nimport { pyramidDown } from './pyramidDown';\r\nimport { stage1 } from './stage1';\r\nimport { stage2 } from './stage2';\r\nimport { stage3 } from './stage3';\r\nimport { MtcnnResult, NetParams } from './types';\r\n\r\nexport class Mtcnn extends NeuralNetwork {\r\n\r\n constructor() {\r\n super('Mtcnn')\r\n }\r\n\r\n public async forwardInput(\r\n input: NetInput,\r\n forwardParams: IMtcnnOptions = {}\r\n ): Promise<{ results: MtcnnResult[], stats: any }> {\r\n\r\n const { params } = this\r\n\r\n if (!params) {\r\n throw new Error('Mtcnn - load model before inference')\r\n }\r\n\r\n const inputCanvas = input.canvases[0]\r\n\r\n if (!inputCanvas) {\r\n throw new Error('Mtcnn - inputCanvas is not defined, note that passing tensors into Mtcnn.forwardInput is not supported yet.')\r\n }\r\n\r\n const stats: any = {}\r\n\r\n const tsTotal = Date.now()\r\n\r\n const imgTensor = tf.tidy(() =>\r\n bgrToRgbTensor(\r\n tf.expandDims(tf.fromPixels(inputCanvas)).toFloat() as tf.Tensor4D\r\n )\r\n )\r\n\r\n const onReturn = (results: any) => {\r\n // dispose tensors on return\r\n imgTensor.dispose()\r\n stats.total = Date.now() - tsTotal\r\n return results\r\n }\r\n\r\n const [height, width] = imgTensor.shape.slice(1)\r\n\r\n const {\r\n minFaceSize,\r\n scaleFactor,\r\n maxNumScales,\r\n scoreThresholds,\r\n scaleSteps\r\n } = new MtcnnOptions(forwardParams)\r\n\r\n const scales = (scaleSteps || pyramidDown(minFaceSize, scaleFactor, [height, width]))\r\n .filter(scale => {\r\n const sizes = getSizesForScale(scale, [height, width])\r\n return Math.min(sizes.width, sizes.height) > CELL_SIZE\r\n })\r\n .slice(0, maxNumScales)\r\n\r\n stats.scales = scales\r\n stats.pyramid = scales.map(scale => getSizesForScale(scale, [height, width]))\r\n\r\n let ts = Date.now()\r\n const out1 = await stage1(imgTensor, scales, scoreThresholds[0], params.pnet, stats)\r\n stats.total_stage1 = Date.now() - ts\r\n\r\n if (!out1.boxes.length) {\r\n return onReturn({ results: [], stats })\r\n }\r\n\r\n stats.stage2_numInputBoxes = out1.boxes.length\r\n // using the inputCanvas to extract and resize the image patches, since it is faster\r\n // than doing this on the gpu\r\n ts = Date.now()\r\n const out2 = await stage2(inputCanvas, out1.boxes, scoreThresholds[1], params.rnet, stats)\r\n stats.total_stage2 = Date.now() - ts\r\n\r\n if (!out2.boxes.length) {\r\n return onReturn({ results: [], stats })\r\n }\r\n\r\n stats.stage3_numInputBoxes = out2.boxes.length\r\n\r\n ts = Date.now()\r\n const out3 = await stage3(inputCanvas, out2.boxes, scoreThresholds[2], params.onet, stats)\r\n stats.total_stage3 = Date.now() - ts\r\n\r\n const results = out3.boxes.map((box, idx) => extendWithFaceLandmarks(\r\n extendWithFaceDetection<{}>(\r\n {},\r\n new FaceDetection(\r\n out3.scores[idx],\r\n new Rect(\r\n box.left / width,\r\n box.top / height,\r\n box.width / width,\r\n box.height / height\r\n ),\r\n {\r\n height,\r\n width\r\n }\r\n )\r\n ),\r\n new FaceLandmarks5(\r\n out3.points[idx].map(pt => pt.sub(new Point(box.left, box.top)).div(new Point(box.width, box.height))),\r\n { width: box.width, height: box.height }\r\n )\r\n ))\r\n\r\n return onReturn({ results, stats })\r\n }\r\n\r\n public async forward(\r\n input: TNetInput,\r\n forwardParams: IMtcnnOptions = {}\r\n ): Promise {\r\n return (\r\n await this.forwardInput(\r\n await toNetInput(input),\r\n forwardParams\r\n )\r\n ).results\r\n }\r\n\r\n public async forwardWithStats(\r\n input: TNetInput,\r\n forwardParams: IMtcnnOptions = {}\r\n ): Promise<{ results: MtcnnResult[], stats: any }> {\r\n return this.forwardInput(\r\n await toNetInput(input),\r\n forwardParams\r\n )\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'mtcnn_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap) {\r\n return extractParamsFromWeigthMap(weightMap)\r\n }\r\n\r\n protected extractParams(weights: Float32Array) {\r\n return extractParams(weights)\r\n }\r\n}","import { Point } from 'tfjs-image-recognition-base';\r\n\r\nexport const IOU_THRESHOLD = 0.4\r\n\r\nexport const BOX_ANCHORS = [\r\n new Point(1.603231, 2.094468),\r\n new Point(6.041143, 7.080126),\r\n new Point(2.882459, 3.518061),\r\n new Point(4.266906, 5.178857),\r\n new Point(9.041765, 10.66308)\r\n]\r\n\r\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404]","import * as tf from '@tensorflow/tfjs-core';\r\nimport { ParamMapping, Point, TNetInput } from 'tfjs-image-recognition-base';\r\nimport { ITinyYolov2Options, TinyYolov2 as TinyYolov2Base } from 'tfjs-tiny-yolov2';\r\nimport { TinyYolov2NetParams } from 'tfjs-tiny-yolov2/build/commonjs/tinyYolov2/types';\r\n\r\nimport { FaceDetection } from '../classes';\r\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\r\n\r\nexport class TinyFaceDetector extends TinyYolov2Base {\r\n\r\n constructor() {\r\n const config = {\r\n withSeparableConvs: true,\r\n iouThreshold: IOU_THRESHOLD,\r\n classes: ['face'],\r\n anchors: BOX_ANCHORS,\r\n meanRgb: MEAN_RGB,\r\n isFirstLayerConv2d: true,\r\n filterSizes: [3, 16, 32, 64, 128, 256, 512]\r\n }\r\n\r\n super(config)\r\n }\r\n\r\n public get anchors(): Point[] {\r\n return this.config.anchors\r\n }\r\n\r\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\r\n const objectDetections = await this.detect(input, forwardParams)\r\n return objectDetections.map(det => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }))\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return 'tiny_face_detector_model'\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\r\n return super.extractParamsFromWeigthMap(weightMap)\r\n }\r\n}","import { Point } from 'tfjs-image-recognition-base';\r\n\r\nexport const IOU_THRESHOLD = 0.4\r\n\r\nexport const BOX_ANCHORS = [\r\n new Point(0.738768, 0.874946),\r\n new Point(2.42204, 2.65704),\r\n new Point(4.30971, 7.04493),\r\n new Point(10.246, 4.59428),\r\n new Point(12.6868, 11.8741)\r\n]\r\n\r\nexport const BOX_ANCHORS_SEPARABLE = [\r\n new Point(1.603231, 2.094468),\r\n new Point(6.041143, 7.080126),\r\n new Point(2.882459, 3.518061),\r\n new Point(4.266906, 5.178857),\r\n new Point(9.041765, 10.66308)\r\n]\r\n\r\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404]\r\n\r\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model'\r\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model'","import * as tf from '@tensorflow/tfjs-core';\r\nimport { ParamMapping, Point, TNetInput } from 'tfjs-image-recognition-base';\r\nimport { ITinyYolov2Options, TinyYolov2 as TinyYolov2Base, TinyYolov2NetParams } from 'tfjs-tiny-yolov2';\r\n\r\nimport { FaceDetection } from '../classes';\r\nimport {\r\n BOX_ANCHORS,\r\n BOX_ANCHORS_SEPARABLE,\r\n DEFAULT_MODEL_NAME,\r\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\r\n IOU_THRESHOLD,\r\n MEAN_RGB_SEPARABLE,\r\n} from './const';\r\n\r\nexport class TinyYolov2 extends TinyYolov2Base {\r\n\r\n constructor(withSeparableConvs: boolean = true) {\r\n const config = Object.assign({}, {\r\n withSeparableConvs,\r\n iouThreshold: IOU_THRESHOLD,\r\n classes: ['face']\r\n },\r\n withSeparableConvs\r\n ? {\r\n anchors: BOX_ANCHORS_SEPARABLE,\r\n meanRgb: MEAN_RGB_SEPARABLE\r\n }\r\n : {\r\n anchors: BOX_ANCHORS,\r\n withClassScores: true\r\n }\r\n )\r\n\r\n super(config)\r\n }\r\n\r\n public get withSeparableConvs(): boolean {\r\n return this.config.withSeparableConvs\r\n }\r\n\r\n public get anchors(): Point[] {\r\n return this.config.anchors\r\n }\r\n\r\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\r\n const objectDetections = await this.detect(input, forwardParams)\r\n return objectDetections.map(det => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }))\r\n }\r\n\r\n protected getDefaultModelName(): string {\r\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME\r\n }\r\n\r\n protected extractParamsFromWeigthMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\r\n return super.extractParamsFromWeigthMap(weightMap)\r\n }\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\nimport { ITinyYolov2Options } from 'tfjs-tiny-yolov2';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\nimport { FaceLandmarks5 } from '../classes/FaceLandmarks5';\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\r\nimport { FaceExpressionPrediction } from '../faceExpressionNet/types';\r\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\r\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\r\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\r\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\r\nimport { Mtcnn } from '../mtcnn/Mtcnn';\r\nimport { MtcnnOptions } from '../mtcnn/MtcnnOptions';\r\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\r\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\r\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\r\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\r\nimport { TinyYolov2 } from '../tinyYolov2/TinyYolov2';\r\n\r\nexport const nets = {\r\n ssdMobilenetv1: new SsdMobilenetv1(),\r\n tinyFaceDetector: new TinyFaceDetector(),\r\n tinyYolov2: new TinyYolov2(),\r\n mtcnn: new Mtcnn(),\r\n faceLandmark68Net: new FaceLandmark68Net(),\r\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\r\n faceRecognitionNet: new FaceRecognitionNet(),\r\n faceExpressionNet: new FaceExpressionNet()\r\n}\r\n\r\n/**\r\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\r\n *\r\n * @param input The input image.\r\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\r\n * @returns Bounding box of each face with score.\r\n */\r\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise =>\r\n nets.ssdMobilenetv1.locateFaces(input, options)\r\n\r\n/**\r\n * Attempts to detect all faces in an image using the Tiny Face Detector.\r\n *\r\n * @param input The input image.\r\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\r\n * @returns Bounding box of each face with score.\r\n */\r\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise =>\r\n nets.tinyFaceDetector.locateFaces(input, options)\r\n\r\n/**\r\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\r\n *\r\n * @param input The input image.\r\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\r\n * @returns Bounding box of each face with score.\r\n */\r\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise =>\r\n nets.tinyYolov2.locateFaces(input, options)\r\n\r\n/**\r\n * Attempts to detect all faces in an image and the 5 point face landmarks\r\n * of each detected face using the MTCNN Network.\r\n *\r\n * @param input The input image.\r\n * @param options (optional, default: see MtcnnOptions constructor for default parameters).\r\n * @returns Bounding box of each face with score and 5 point face landmarks.\r\n */\r\nexport const mtcnn = (input: TNetInput, options: MtcnnOptions): Promise, FaceLandmarks5>[]> =>\r\n nets.mtcnn.forward(input, options)\r\n\r\n/**\r\n * Detects the 68 point face landmark positions of the face shown in an image.\r\n *\r\n * @param inputs The face image extracted from the bounding box of a face. Can\r\n * also be an array of input images, which will be batch processed.\r\n * @returns 68 point face landmarks or array thereof in case of batch input.\r\n */\r\nexport const detectFaceLandmarks = (input: TNetInput): Promise =>\r\n nets.faceLandmark68Net.detectLandmarks(input)\r\n\r\n/**\r\n * Detects the 68 point face landmark positions of the face shown in an image\r\n * using a tinier version of the 68 point face landmark model, which is slightly\r\n * faster at inference, but also slightly less accurate.\r\n *\r\n * @param inputs The face image extracted from the bounding box of a face. Can\r\n * also be an array of input images, which will be batch processed.\r\n * @returns 68 point face landmarks or array thereof in case of batch input.\r\n */\r\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise =>\r\n nets.faceLandmark68TinyNet.detectLandmarks(input)\r\n\r\n/**\r\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\r\n * which uniquely represents the features of that persons face. The computed face descriptor can\r\n * be used to measure the similarity between faces, by computing the euclidean distance of two\r\n * face descriptors.\r\n *\r\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\r\n * also be an array of input images, which will be batch processed.\r\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\r\n */\r\nexport const computeFaceDescriptor = (input: TNetInput): Promise =>\r\n nets.faceRecognitionNet.computeFaceDescriptor(input)\r\n\r\n\r\n/**\r\n * Recognizes the facial expressions of a face and returns the likelyhood of\r\n * each facial expression.\r\n *\r\n * @param inputs The face image extracted from the bounding box of a face. Can\r\n * also be an array of input images, which will be batch processed.\r\n * @returns An array of facial expressions with corresponding probabilities or array thereof in case of batch input.\r\n */\r\nexport const recognizeFaceExpressions = (input: TNetInput): Promise =>\r\n nets.faceExpressionNet.predictExpressions(input)\r\n\r\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url)\r\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url)\r\nexport const loadMtcnnModel = (url: string) => nets.mtcnn.load(url)\r\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url)\r\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url)\r\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url)\r\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url)\r\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url)\r\n\r\n// backward compatibility\r\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model\r\nexport const locateFaces = ssdMobilenetv1\r\nexport const detectLandmarks = detectFaceLandmarks","import * as tf from '@tensorflow/tfjs-core';\r\nimport { TNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { extractFaces, extractFaceTensors } from '../dom';\r\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\r\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\r\nimport { ComposableTask } from './ComposableTask';\r\nimport { nets } from './nets';\r\n\r\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\r\n constructor(\r\n protected parentTask: ComposableTask | Promise,\r\n protected input: TNetInput\r\n ) {\r\n super()\r\n }\r\n}\r\n\r\nexport class ComputeAllFaceDescriptorsTask<\r\n TSource extends WithFaceLandmarks>\r\n> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\r\n\r\n public async run(): Promise[]> {\r\n\r\n const parentResults = await this.parentTask\r\n\r\n const alignedRects = parentResults.map(({ alignedRect }) => alignedRect)\r\n const alignedFaces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, alignedRects)\r\n : await extractFaces(this.input, alignedRects)\r\n\r\n const results = await Promise.all(parentResults.map(async (parentResult, i) => {\r\n const descriptor = await nets.faceRecognitionNet.computeFaceDescriptor(alignedFaces[i]) as Float32Array\r\n return extendWithFaceDescriptor(parentResult, descriptor)\r\n }))\r\n\r\n alignedFaces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return results\r\n }\r\n}\r\n\r\nexport class ComputeSingleFaceDescriptorTask<\r\n TSource extends WithFaceLandmarks>\r\n> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\r\n\r\n public async run(): Promise | undefined> {\r\n\r\n const parentResult = await this.parentTask\r\n if (!parentResult) {\r\n return\r\n }\r\n\r\n const { alignedRect } = parentResult\r\n const alignedFaces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, [alignedRect])\r\n : await extractFaces(this.input, [alignedRect])\r\n const descriptor = await nets.faceRecognitionNet.computeFaceDescriptor(alignedFaces[0]) as Float32Array\r\n\r\n alignedFaces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return extendWithFaceDescriptor(parentResult, descriptor)\r\n }\r\n}","import * as tf from '@tensorflow/tfjs-core';\r\nimport { TNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\r\nimport { extractFaces, extractFaceTensors } from '../dom';\r\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\r\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\r\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\r\nimport { ComposableTask } from './ComposableTask';\r\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\r\nimport { nets } from './nets';\r\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionTask } from './PredictFaceExpressionsTask';\r\n\r\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\r\n constructor(\r\n protected parentTask: ComposableTask | Promise,\r\n protected input: TNetInput,\r\n protected useTinyLandmarkNet: boolean\r\n ) {\r\n super()\r\n }\r\n\r\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\r\n return this.useTinyLandmarkNet\r\n ? nets.faceLandmark68TinyNet\r\n : nets.faceLandmark68Net\r\n }\r\n}\r\n\r\nexport class DetectAllFaceLandmarksTask<\r\n TSource extends WithFaceDetection<{}>\r\n> extends DetectFaceLandmarksTaskBase[], TSource[]> {\r\n\r\n public async run(): Promise[]> {\r\n\r\n const parentResults = await this.parentTask\r\n const detections = parentResults.map(res => res.detection)\r\n\r\n const faces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, detections)\r\n : await extractFaces(this.input, detections)\r\n\r\n const faceLandmarksByFace = await Promise.all(faces.map(\r\n face => this.landmarkNet.detectLandmarks(face)\r\n )) as FaceLandmarks68[]\r\n\r\n faces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return parentResults.map((parentResult, i) =>\r\n extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i])\r\n )\r\n }\r\n\r\n withFaceDescriptors(): ComputeAllFaceDescriptorsTask> {\r\n return new ComputeAllFaceDescriptorsTask>(this, this.input)\r\n }\r\n}\r\n\r\nexport class DetectSingleFaceLandmarksTask<\r\n TSource extends WithFaceDetection<{}>\r\n> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\r\n\r\n public async run(): Promise | undefined> {\r\n\r\n const parentResult = await this.parentTask\r\n if (!parentResult) {\r\n return\r\n }\r\n\r\n const { detection } = parentResult\r\n const faces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, [detection])\r\n : await extractFaces(this.input, [detection])\r\n\r\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68\r\n\r\n faces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return extendWithFaceLandmarks(parentResult, landmarks)\r\n }\r\n\r\n withFaceDescriptor(): ComputeSingleFaceDescriptorTask> {\r\n return new ComputeSingleFaceDescriptorTask>(this, this.input)\r\n }\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\nimport { tf } from 'tfjs-tiny-yolov2';\r\n\r\nimport { extractFaces, extractFaceTensors } from '../dom';\r\nimport { FaceExpressionPrediction } from '../faceExpressionNet/types';\r\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\r\nimport { ComposableTask } from './ComposableTask';\r\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\r\nimport { nets } from './nets';\r\n\r\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\r\n constructor(\r\n protected parentTask: ComposableTask | Promise,\r\n protected input: TNetInput\r\n ) {\r\n super()\r\n }\r\n}\r\n\r\nexport class PredictAllFaceExpressionsTask<\r\n TSource extends WithFaceDetection<{}>\r\n> extends PredictFaceExpressionsTaskBase[], TSource[]> {\r\n\r\n public async run(): Promise[]> {\r\n\r\n const parentResults = await this.parentTask\r\n\r\n const detections = parentResults.map(parentResult => parentResult.detection)\r\n const faces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, detections)\r\n : await extractFaces(this.input, detections)\r\n\r\n const faceExpressionsByFace = await Promise.all(faces.map(\r\n face => nets.faceExpressionNet.predictExpressions(face)\r\n )) as FaceExpressionPrediction[][]\r\n\r\n faces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return parentResults.map(\r\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i])\r\n )\r\n }\r\n\r\n withFaceLandmarks(): DetectAllFaceLandmarksTask> {\r\n return new DetectAllFaceLandmarksTask(this, this.input, false)\r\n }\r\n}\r\n\r\nexport class PredictSingleFaceExpressionTask<\r\n TSource extends WithFaceDetection<{}>\r\n> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\r\n\r\n public async run(): Promise | undefined> {\r\n\r\n const parentResult = await this.parentTask\r\n if (!parentResult) {\r\n return\r\n }\r\n\r\n const { detection } = parentResult\r\n const faces: Array = this.input instanceof tf.Tensor\r\n ? await extractFaceTensors(this.input, [detection])\r\n : await extractFaces(this.input, [detection])\r\n\r\n const faceExpressions = await nets.faceExpressionNet.predictExpressions(faces[0]) as FaceExpressionPrediction[]\r\n\r\n faces.forEach(f => f instanceof tf.Tensor && f.dispose())\r\n\r\n return extendWithFaceExpressions(parentResult, faceExpressions)\r\n }\r\n\r\n withFaceLandmarks(): DetectSingleFaceLandmarksTask> {\r\n return new DetectSingleFaceLandmarksTask(this, this.input, false)\r\n }\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\nimport { TinyYolov2Options } from 'tfjs-tiny-yolov2';\r\n\r\nimport { FaceDetection } from '../classes/FaceDetection';\r\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\r\nimport { MtcnnOptions } from '../mtcnn/MtcnnOptions';\r\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\r\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\r\nimport { ComposableTask } from './ComposableTask';\r\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\r\nimport { nets } from './nets';\r\nimport { FaceDetectionOptions } from './types';\r\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionTask } from './PredictFaceExpressionsTask';\r\n\r\nexport class DetectFacesTaskBase extends ComposableTask {\r\n constructor(\r\n protected input: TNetInput,\r\n protected options: FaceDetectionOptions = new SsdMobilenetv1Options()\r\n ) {\r\n super()\r\n }\r\n}\r\n\r\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\r\n\r\n public async run(): Promise {\r\n\r\n const { input, options } = this\r\n\r\n if (options instanceof MtcnnOptions) {\r\n return (await nets.mtcnn.forward(input, options))\r\n .map(result => result.detection)\r\n }\r\n\r\n const faceDetectionFunction = options instanceof TinyFaceDetectorOptions\r\n ? (input: TNetInput) => nets.tinyFaceDetector.locateFaces(input, options)\r\n : (\r\n options instanceof SsdMobilenetv1Options\r\n ? (input: TNetInput) => nets.ssdMobilenetv1.locateFaces(input, options)\r\n : (\r\n options instanceof TinyYolov2Options\r\n ? (input: TNetInput) => nets.tinyYolov2.locateFaces(input, options)\r\n : null\r\n )\r\n )\r\n\r\n if (!faceDetectionFunction) {\r\n throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options')\r\n }\r\n\r\n return faceDetectionFunction(input)\r\n }\r\n\r\n private runAndExtendWithFaceDetections(): Promise[]> {\r\n return new Promise[]>(async res => {\r\n const detections = await this.run()\r\n return res(detections.map(detection => extendWithFaceDetection({}, detection)))\r\n })\r\n }\r\n\r\n withFaceLandmarks(useTinyLandmarkNet: boolean = false): DetectAllFaceLandmarksTask> {\r\n return new DetectAllFaceLandmarksTask>(\r\n this.runAndExtendWithFaceDetections(),\r\n this.input,\r\n useTinyLandmarkNet\r\n )\r\n }\r\n\r\n withFaceExpressions(): PredictAllFaceExpressionsTask> {\r\n return new PredictAllFaceExpressionsTask>(\r\n this.runAndExtendWithFaceDetections(),\r\n this.input\r\n )\r\n }\r\n}\r\n\r\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\r\n\r\n public async run(): Promise {\r\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\r\n let faceDetectionWithHighestScore = faceDetections[0];\r\n faceDetections.forEach(faceDetection => {\r\n if (faceDetection.score > faceDetectionWithHighestScore.score) {\r\n faceDetectionWithHighestScore = faceDetection;\r\n }\r\n });\r\n return faceDetectionWithHighestScore;\r\n }\r\n\r\n private runAndExtendWithFaceDetection(): Promise> {\r\n return new Promise>(async res => {\r\n const detection = await this.run()\r\n return res(detection ? extendWithFaceDetection<{}>({}, detection) : undefined)\r\n })\r\n }\r\n\r\n withFaceLandmarks(useTinyLandmarkNet: boolean = false): DetectSingleFaceLandmarksTask> {\r\n return new DetectSingleFaceLandmarksTask>(\r\n this.runAndExtendWithFaceDetection(),\r\n this.input,\r\n useTinyLandmarkNet\r\n )\r\n }\r\n\r\n withFaceExpressions(): PredictSingleFaceExpressionTask> {\r\n return new PredictSingleFaceExpressionTask>(\r\n this.runAndExtendWithFaceDetection(),\r\n this.input\r\n )\r\n }\r\n\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\n\r\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\r\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\r\nimport { FaceDetectionOptions } from './types';\r\n\r\nexport function detectSingleFace(\r\n input: TNetInput,\r\n options: FaceDetectionOptions = new SsdMobilenetv1Options()\r\n): DetectSingleFaceTask {\r\n return new DetectSingleFaceTask(input, options)\r\n}\r\n\r\nexport function detectAllFaces(\r\n input: TNetInput,\r\n options: FaceDetectionOptions = new SsdMobilenetv1Options()\r\n): DetectAllFacesTask {\r\n return new DetectAllFacesTask(input, options)\r\n}","import { TNetInput } from 'tfjs-image-recognition-base';\r\nimport { ITinyYolov2Options, TinyYolov2Options } from 'tfjs-tiny-yolov2';\r\n\r\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories';\r\nimport { IMtcnnOptions, MtcnnOptions } from '../mtcnn/MtcnnOptions';\r\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1';\r\nimport { detectAllFaces } from './detectFaces';\r\n\r\n// export allFaces API for backward compatibility\r\n\r\nexport async function allFacesSsdMobilenetv1(\r\n input: TNetInput,\r\n minConfidence?: number\r\n): Promise>>[]> {\r\n return await detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\r\n .withFaceLandmarks()\r\n .withFaceDescriptors()\r\n}\r\n\r\nexport async function allFacesTinyYolov2(\r\n input: TNetInput,\r\n forwardParams: ITinyYolov2Options = {}\r\n): Promise>>[]> {\r\n return await detectAllFaces(input, new TinyYolov2Options(forwardParams))\r\n .withFaceLandmarks()\r\n .withFaceDescriptors()\r\n}\r\n\r\nexport async function allFacesMtcnn(\r\n input: TNetInput,\r\n forwardParams: IMtcnnOptions = {}\r\n): Promise>>[]> {\r\n return await detectAllFaces(input, new MtcnnOptions(forwardParams))\r\n .withFaceLandmarks()\r\n .withFaceDescriptors()\r\n}\r\n\r\nexport const allFaces = allFacesSsdMobilenetv1\r\n","export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\r\n if (arr1.length !== arr2.length)\r\n throw new Error('euclideanDistance: arr1.length !== arr2.length')\r\n\r\n const desc1 = Array.from(arr1)\r\n const desc2 = Array.from(arr2)\r\n\r\n return Math.sqrt(\r\n desc1\r\n .map((val, i) => val - desc2[i])\r\n .reduce((res, diff) => res + Math.pow(diff, 2), 0)\r\n )\r\n}","import { FaceMatch } from '../classes/FaceMatch';\r\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\r\nimport { euclideanDistance } from '../euclideanDistance';\r\nimport { WithFaceDescriptor } from '../factories';\r\n\r\nexport class FaceMatcher {\r\n\r\n private _labeledDescriptors: LabeledFaceDescriptors[]\r\n private _distanceThreshold: number\r\n\r\n constructor(\r\n inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>,\r\n distanceThreshold: number = 0.6\r\n ) {\r\n\r\n this._distanceThreshold = distanceThreshold\r\n\r\n const inputArray = Array.isArray(inputs) ? inputs : [inputs]\r\n\r\n if (!inputArray.length) {\r\n throw new Error(`FaceRecognizer.constructor - expected atleast one input`)\r\n }\r\n\r\n let count = 1\r\n const createUniqueLabel = () => `person ${count++}`\r\n\r\n this._labeledDescriptors = inputArray.map((desc) => {\r\n if (desc instanceof LabeledFaceDescriptors) {\r\n return desc\r\n }\r\n\r\n if (desc instanceof Float32Array) {\r\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc])\r\n }\r\n\r\n if (desc.descriptor && desc.descriptor instanceof Float32Array) {\r\n return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor])\r\n }\r\n\r\n throw new Error(`FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>`)\r\n })\r\n }\r\n\r\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors }\r\n public get distanceThreshold(): number { return this._distanceThreshold }\r\n\r\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\r\n return descriptors\r\n .map(d => euclideanDistance(d, queryDescriptor))\r\n .reduce((d1, d2) => d1 + d2, 0)\r\n / (descriptors.length || 1)\r\n }\r\n\r\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\r\n return this.labeledDescriptors\r\n .map(({ descriptors, label }) => new FaceMatch(\r\n label,\r\n this.computeMeanDistance(queryDescriptor, descriptors)\r\n ))\r\n .reduce((best, curr) => best.distance < curr.distance ? best : curr)\r\n }\r\n\r\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\r\n const bestMatch = this.matchDescriptor(queryDescriptor)\r\n return bestMatch.distance < this.distanceThreshold\r\n ? bestMatch\r\n : new FaceMatch('unknown', bestMatch.distance)\r\n }\r\n\r\n}","import { Mtcnn } from './Mtcnn';\r\n\r\nexport * from './Mtcnn';\r\nexport * from './MtcnnOptions';\r\n\r\nexport function createMtcnn(weights: Float32Array) {\r\n const net = new Mtcnn()\r\n net.extractWeights(weights)\r\n return net\r\n}","import { TinyFaceDetector } from './TinyFaceDetector';\r\n\r\nexport * from './TinyFaceDetector';\r\nexport * from './TinyFaceDetectorOptions';\r\n\r\nexport function createTinyFaceDetector(weights: Float32Array) {\r\n const net = new TinyFaceDetector()\r\n net.extractWeights(weights)\r\n return net\r\n}","import { TinyYolov2 } from './TinyYolov2';\r\n\r\nexport * from './TinyYolov2';\r\n\r\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs: boolean = true) {\r\n const net = new TinyYolov2(withSeparableConvs)\r\n net.extractWeights(weights)\r\n return net\r\n}","import { IDimensions } from 'tfjs-image-recognition-base';\r\n\r\nimport { FaceDetection } from './classes/FaceDetection';\r\nimport { FaceLandmarks } from './classes/FaceLandmarks';\r\nimport { extendWithFaceDetection } from './factories/WithFaceDetection';\r\nimport { extendWithFaceLandmarks } from './factories/WithFaceLandmarks';\r\n\r\nexport function resizeResults(results: T, { width, height }: IDimensions): T {\r\n\r\n if (Array.isArray(results)) {\r\n return results.map(obj => resizeResults(obj, { width, height })) as any as T\r\n }\r\n\r\n const hasLandmarks = results['unshiftedLandmarks'] && results['unshiftedLandmarks'] instanceof FaceLandmarks\r\n const hasDetection = results['detection'] && results['detection'] instanceof FaceDetection\r\n\r\n if (hasLandmarks) {\r\n const resizedDetection = results['detection'].forSize(width, height)\r\n const resizedLandmarks = results['unshiftedLandmarks'].forSize(resizedDetection.box.width, resizedDetection.box.height)\r\n\r\n return extendWithFaceLandmarks(extendWithFaceDetection(results as any, resizedDetection), resizedLandmarks)\r\n }\r\n\r\n if (hasDetection) {\r\n return extendWithFaceDetection(results as any, results['detection'].forSize(width, height))\r\n }\r\n\r\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\r\n return (results as any).forSize(width, height)\r\n }\r\n\r\n return results\r\n}"],"names":["tensor","tf.Tensor","isEven","round","range","step","tslib_1.__extends","tslib_1.__assign","environment","tslib_1.__awaiter","tslib_1.__generator","tf.tidy","tf.toPixels","tf.io","tf.fill","tf.concat","tf.image","tf.fromPixels","tf.stack","nonMaxSuppression","tf.sub","sigmoid","tf.Variable","variable","tf.tensor","tf.slice3d","tf.separableConv2d","tf.add","tf.relu","tf.conv2d","tf.tensor4d","tf.tensor1d","tf.tensor2d","isNumber","min","tf.mul","tf.scalar","tf.pad","depthwiseSeparableConv","sub","extractorsFactory","tf.maxPool","tf.unstack","tf.softmax","max","tf.sigmoid","tf.sum","tf.square","tf.zeros","tf.avgPool","extractParamsFromWeigthMap","extractParams","tf.matMul","convLayer","tf.transpose","zeros","tf.tensor3d","tf.clipByValue","tf.depthwiseConv2d","tf.batchNormalization","tf.div","tf.exp","tf.reshape","tf.tile","tf.slice","CELL_SIZE","tf.neg","prelu","tf.expandDims","tf.max","normalize","all","TinyYolov2Base","IOU_THRESHOLD","BOX_ANCHORS","TinyYolov2"],"mappings":"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AG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CA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C,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,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CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,I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AK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,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AE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,8CAA8C,CAAC,IAAI,CAAC,QAAQ,CAAC,qKAAqK,CAAC,CAAC,CAAC,2HAA2H,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,8EAA8E,CAAC,CAAC,CAAC,iKAAgK,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,gdAAgd,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,SAAS,CAAC,mIAAmI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,QAAQ,CAAC,sSAAqS,CAAC,CAAC,EAAE,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,sLAAsL,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,yFAAwF,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,mMAAmM,CAAC,CAAC,CAAC,sEAAqE,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,2GAA2G,CAAC,CAAC,CAAC,2SAA0S,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,0DAA0D,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,0CAA0C,CAAC,OAAO,CAAC,8OAA8O,CAAC,GAAG,CAAC,mKAAmK,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,KAAK,CAAC,uBAAuB,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,uBAAuB,CAAC,WAAW,CAAC,qCAAqC,CAAC,UAAU,CAAC,qCAAqC,CAAC,GAAG,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,GAAG,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,GAAG,CAAC,gDAAgD,CAAC,KAAK,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,OAAO,CAAC,wCAAwC,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,uFAAuF,CAAC,CAAC,CAAC,yKAAwK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,kMAAkM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAqB,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,mMAAmM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAqB,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,qcAAoc,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,2KAA2K,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0EAA0E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4FAA2F,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sYAAsY,CAAC,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,QAAQ,CAAC,mFAAmF,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,OAAO,CAAC,6RAA4R,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mdAAmd,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,SAAS,CAAC,0HAA0H,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,QAAQ,CAAC,mJAAmJ,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,WAAW,CAAC,kQAAiQ,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,8QAA8Q,CAAC,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,OAAO,CAAC,mFAAmF,CAAC,CAAC,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,QAAQ,CAAC,yFAAyF,CAAC,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,OAAO,CAAC,gUAA+T,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0XAA0X,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,QAAQ,CAAC,0HAA0H,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,SAAS,CAAC,iJAAiJ,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,QAAQ,CAAC,6JAA6J,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,WAAW,CAAC,uSAAsS,CAAC,CAAC,EAAE,CAAC,+BAA+B,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,0MAA0M,CAAC,CAAC,CAAC,mHAAmH,CAAC,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,QAAQ,CAAC,mFAAmF,CAAC,CAAC,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,OAAO,CAAC,6RAA4R,CAAC,CAAC,EAAE,CAAC,8BAA8B,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,2TAA2T,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,SAAS,CAAC,0HAA0H,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,QAAQ,CAAC,mJAAmJ,CAAC,CAAC,CAAC,iGAAiG,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,+PAA8P,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wdAAwd,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,QAAQ,CAAC,6EAA6E,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,OAAO,CAAC,mFAAmF,CAAC,CAAC,CAAC,0iBAA0iB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,iCAAiC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,4FAA4F,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,uGAAuG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,4FAA4F,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,kKAAiK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,+iBAA+iB,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,OAAO,CAAC,6EAA6E,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,QAAQ,CAAC,mFAAmF,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,OAAO,CAAC,yFAAyF,CAAC,CAAC,CAAC,wmBAAwmB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,6EAA6E,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,mCAAmC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,sGAAsG,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,6GAA6G,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,sGAAsG,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,uLAAsL,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gNAAgN,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,+WAA+W,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,6EAA6E,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,2PAA0P,CAAC,CAAC,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,mCAAmC,CAAC,CAAC,CAAC,oCAAoC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,8BAA8B,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,2VAA2V,CAAC,CAAC,CAAC,gDAA+C,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,4cAA4c,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,qGAAqG,CAAC,CAAC,CAAC,qmCAAomC,CAAC,CAAC,EAAE,CAAC,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B,GAAG,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,2DAA2D,CAAC,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,OAAO,qBAAqB,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,+aAA+a,CAAC,iBAAiB,CAAC,oiBAAoiB,CAAC,iBAAiB,CAAC,ssBAAssB,CAAC,iBAAiB,CAAC,8yBAA8yB,CAAC,iBAAiB,CAAC,4dAA4d,CAAC,iBAAiB,CAAC,8fAA8f,CAAC,4BAA4B,CAAC,kHAAkH,CAAC,2BAA2B,CAAC,gFAAgF,CAAC,8BAA8B,CAAC,gEAAgE,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,yTAAyT,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,6HAA6H,CAAC,mSAAmS,CAAC,CAAC,0gBAA0gB,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,qWAAqW,CAAC,SAAS,qBAAqB,EAAE,CAAC,OAAM,2DAA2D,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,+GAA+G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,mEAAmE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,mEAAmE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,+GAA+G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,iHAAiH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,mDAAmD,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,iHAAiH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,2CAA2C,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,iHAAiH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,uDAAuD,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,4FAA4F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,+CAA+C,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,mFAAmF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,uFAAuF,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,4FAA4F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,uFAAuF,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,iFAAiF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,iHAAiH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,gDAAgD,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6EAA6E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uHAAuH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,uHAAuH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gEAAgE,CAAC,iHAAiH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,SAAS,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAM,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,aAAa,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAM,cAAc,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,yBAAyB,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,eAAe,CAAC,CAAC,CAAC,2EAA2E,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,aAAa,CAAC,CAAC,CAAC,uDAAuD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,cAAc,CAAC,CAAC,CAAC,yEAAyE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,UAAU,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,OAAM,gBAAgB,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,YAAY,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,aAAa,CAAC,CAAC,CAAC,wEAAwE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,OAAM,gBAAgB,CAAC,CAAC,CAAC,oHAAoH,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,yHAAyH,CAAC,CAAC,CAAC,uFAAuF,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+FAA+F,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,4EAA4E,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,aAAa,CAAC,CAAC,CAAC,gFAAgF,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,UAAU,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,8DAA8D,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,OAAM,gBAAgB,CAAC,CAAC,CAAC,wIAAwI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,sJAAsJ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mFAAmF,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,8HAA8H,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uHAAuH,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,wEAAwE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,UAAU,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,0EAA0E,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,OAAM,gBAAgB,CAAC,CAAC,CAAC,gJAAgJ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,2KAA2K,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mFAAmF,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,+IAA+I,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,8GAA8G,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,oFAAoF,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kEAAkE,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,UAAU,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,2GAA2G,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,OAAM,gBAAgB,CAAC,CAAC,CAAC,+KAA+K,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,4EAA4E,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,4MAA4M,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yFAAyF,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gLAAgL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oHAAoH,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,mHAAmH,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qFAAqF,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,6CAA6C,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,sCAAsC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,mDAAmD,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAM,eAAe,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,kEAAkE,CAAC,oCAAoC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,sFAAsF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,wDAAwD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,yFAAyF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC,CAAC,sFAAsF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0EAA0E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,OAAO,CAAC,MAAM,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,yCAAyC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,4CAA4C,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,kDAAkD,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,+EAA+E,CAAC,CAAC,CAAC,2EAA2E,CAAC,CAAC,CAAC,qDAAqD,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,iCAAiC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,wDAAuD,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,wGAAwG,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,4BAA4B,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,4DAA4D,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,yCAAwC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,OAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,iqCAAgqC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,CAAC,6FAA6F,CAAC,CAAC,CAAC,8GAA8G,CAAC,CAAC,CAAC,oKAAoK,CAAC,CAAC,CAAC,kWAAkW,CAAC,CAAC,CAAC,wLAAuL,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,uNAAuN,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,yYAAwY,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,qBAAoB,CAAC,CAAC,EAAE,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAM,wBAAwB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,YAAY,CAAC,mBAAmB,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,CAAC,+FAA+F,CAAC,IAAI,CAAC,QAAQ,CAAC,0GAA0G,CAAC,CAAC,CAAC,yFAAwF,CAAC,CAAC,EAAE,CAAC,SAAS,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,SAAS,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,qCAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,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EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,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AAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,C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CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uDAAuD,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,uDAAuD,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,oCAAoC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,qEAAqE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,0BAA0B,CAAC,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAC,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,gBAAgB,EAAE,CAAC,YAAY,gBAAgB,EAAE,CAAC,YAAY,iBAAiB,EAAE,CAAC,YAAY,SAAS,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iIAAiI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,gBAAgB,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC,GAAG,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,2KAA2K,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,EAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,OAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,sEAAsE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,sEAAsE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iDAAiD,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,cAAc,CAAC,CA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KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,sBAAsB,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,kGAAkG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,yBAAwB,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mEAAmE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC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I,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAA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I,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC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,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,C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,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG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"} \ No newline at end of file