{"version":3,"file":"split-nmr-zip.esm.min.js","sources":["../node_modules/is-any-array/lib/index.js","../node_modules/ml-spectra-processing/lib/reim/reimAbsolute.js","../node_modules/ml-spectra-processing/lib/x/getOutputArray.js","../node_modules/ml-spectra-processing/lib/x/xAbsolute.js","../node_modules/ml-spectra-processing/lib/x/xMedian.js","../node_modules/ml-spectra-processing/lib/x/xCheck.js","../node_modules/ml-spectra-processing/lib/x/xFindClosestIndex.js","../node_modules/ml-spectra-processing/lib/x/xGetFromToIndex.js","../node_modules/ml-spectra-processing/lib/x/xAdd.js","../node_modules/ml-spectra-processing/lib/x/xApplyFunctionStr.js","../node_modules/ml-spectra-processing/lib/x/xBinning.js","../node_modules/ml-matrix/matrix.js","../node_modules/ml-matrix/matrix.mjs","../node_modules/ml-spectra-processing/lib/x/xCostMatrix.js","../node_modules/ml-spectra-processing/lib/x/xMean.js","../node_modules/ml-spectra-processing/lib/x/xStandardDeviation.js","../node_modules/ml-spectra-processing/lib/x/xVariance.js","../node_modules/ml-spectra-processing/lib/x/xEnsureFloat64.js","../node_modules/fft.js/lib/fft.js","../node_modules/ml-spectra-processing/lib/utils/isLittleEndian.js","../node_modules/ml-spectra-processing/lib/utils/fftCache.js","../node_modules/ml-spectra-processing/lib/utils/createArray.js","../node_modules/ml-spectra-processing/lib/utils/createFromToArray.js","../node_modules/ml-spectra-processing/lib/utils/isPowerOfTwo.js","../node_modules/ml-spectra-processing/lib/utils/nextPowerOfTwo.js","../node_modules/ml-spectra-processing/lib/x/xSubtract.js","../node_modules/ml-spectra-processing/lib/utils/calculateAdaptiveWeights.js","../node_modules/ml-spectra-processing/lib/x/xHilbertTransform.js","../node_modules/ml-spectra-processing/lib/x/xMaxValue.js","../node_modules/ml-spectra-processing/lib/x/xMinValue.js","../node_modules/ml-spectra-processing/lib/x/xIsEquallySpaced.js","../node_modules/ml-spectra-processing/lib/x/xIsMonotonic.js","../node_modules/ml-spectra-processing/lib/x/xMaxAbsoluteValue.js","../node_modules/ml-spectra-processing/lib/x/xMinMaxValues.js","../node_modules/ml-spectra-processing/lib/x/xMultiply.js","../node_modules/ml-spectra-processing/lib/x/utils/simpleNormInvMagnitude.js","../node_modules/ml-spectra-processing/lib/x/utils/erfcinv.js","../node_modules/ml-spectra-processing/lib/x/utils/simpleNormInvRaw.js","../node_modules/ml-spectra-processing/lib/x/xNoiseSanPlot.js","../node_modules/ml-spectra-processing/lib/x/xNoiseStandardDeviation.js","../node_modules/ml-spectra-processing/lib/x/xMedianAbsoluteDeviation.js","../node_modules/ml-spectra-processing/lib/x/xNorm.js","../node_modules/ml-spectra-processing/lib/x/xNormed.js","../node_modules/ml-spectra-processing/lib/x/xSum.js","../node_modules/ml-spectra-processing/lib/x/xParetoNormalization.js","../node_modules/ml-spectra-processing/lib/x/xRolling.js","../node_modules/ml-spectra-processing/lib/x/xPadding.js","../node_modules/ml-spectra-processing/lib/x/xSequentialFillFromStep.js","../node_modules/ml-spectra-processing/lib/x/xSequentialFillFromTo.js","../node_modules/ml-spectra-processing/lib/matrix/matrixCreateEmpty.js","../node_modules/ml-spectra-processing/lib/matrix/matrixCheck.js","../node_modules/ml-spectra-processing/lib/matrix/matrixCholeskySolver.js","../node_modules/ml-spectra-processing/lib/matrix/matrixCuthillMckee.js","../node_modules/ml-spectra-processing/lib/matrix/matrixMinMaxZ.js","../node_modules/ml-spectra-processing/lib/utils/addWeights.js","../node_modules/ml-spectra-processing/lib/x/xWhittakerSmoother.js","../node_modules/ml-spectra-processing/lib/utils/createSystemMatrix.js","../node_modules/ml-spectra-processing/lib/reim/reimPhaseCorrection.js","../node_modules/ml-spectra-processing/lib/reim/reimAutoPhaseCorrection.js","../node_modules/ml-spectra-processing/lib/reim/zeroShift.js","../node_modules/ml-spectra-processing/lib/x/xRotate.js","../node_modules/ml-spectra-processing/lib/reim/reimZeroFilling.js","../node_modules/ml-spectra-processing/lib/reimMatrix/reimMatrixFFT.js","../node_modules/ml-spectra-processing/lib/reimMatrix/reimMatrixPhaseCorrection.js","../node_modules/ml-spectra-processing/lib/xy/xyCheck.js","../node_modules/ml-spectra-processing/lib/xy/xyMaxYPoint.js","../node_modules/ml-spectra-processing/lib/xy/xyEnsureGrowingX.js","../node_modules/ml-spectra-processing/lib/zones/zonesNormalize.js","../node_modules/ml-spectra-processing/lib/zones/zonesWithPoints.js","../node_modules/ml-spectra-processing/lib/zones/zonesToXEquallySpaced.js","../node_modules/ml-spectra-processing/lib/xy/utils/integral.js","../node_modules/ml-spectra-processing/lib/xy/utils/equallySpacedSmooth.js","../node_modules/ml-spectra-processing/lib/xy/xyEquallySpaced.js","../node_modules/ml-spectra-processing/lib/xy/utils/equallySpacedSlot.js","../node_modules/ml-spectra-processing/lib/xy/xyFilterX.js","../node_modules/ml-spectra-processing/lib/xy/xyGrowingX.js","../node_modules/ml-spectra-processing/lib/xy/xyIntegration.js","../node_modules/ml-spectra-processing/lib/xy/xySetYValue.js","../node_modules/@zakodium/utils/lib/types/assert.js","../node_modules/@zakodium/utils/lib/types/cast.js","../node_modules/@zip.js/zip.js/lib/core/constants.js","../node_modules/@zip.js/zip.js/lib/core/options.js","../node_modules/@zip.js/zip.js/lib/core/configuration.js","../node_modules/@zip.js/zip.js/lib/core/web-worker-inline-wasm.js","../node_modules/@zip.js/zip.js/lib/core/util/array.js","../node_modules/@zip.js/zip.js/lib/core/util/error.js","../node_modules/@zip.js/zip.js/lib/core/streams/codecs/crc32.js","../node_modules/@zip.js/zip.js/lib/core/streams/crc32-stream.js","../node_modules/@zip.js/zip.js/lib/core/util/encode-text.js","../node_modules/@zip.js/zip.js/lib/core/streams/codecs/aes-hmac-sha1.js","../node_modules/@zip.js/zip.js/lib/core/streams/common-crypto.js","../node_modules/@zip.js/zip.js/lib/core/streams/aes-crypto-stream.js","../node_modules/@zip.js/zip.js/lib/core/streams/zip-crypto-stream.js","../node_modules/@zip.js/zip.js/lib/core/util/compatible-streams.js","../node_modules/@zip.js/zip.js/lib/core/codec-registry.js","../node_modules/@zip.js/zip.js/lib/core/streams/zip-entry-stream.js","../node_modules/@zip.js/zip.js/lib/core/streams/codec-stream.js","../node_modules/@zip.js/zip.js/lib/core/codec-worker.js","../node_modules/@zip.js/zip.js/lib/core/codec-worker-web.js","../node_modules/@zip.js/zip.js/lib/core/codec-pool.js","../node_modules/@zip.js/zip.js/lib/core/util/decode-cp437.js","../node_modules/@zip.js/zip.js/lib/core/util/decode-text.js","../node_modules/@zip.js/zip.js/lib/core/io.js","../node_modules/@zip.js/zip.js/lib/core/util/warnings.js","../node_modules/@zip.js/zip.js/lib/core/zip-entry.js","../node_modules/@zip.js/zip.js/lib/core/zip-reader.js","../node_modules/@zip.js/zip.js/lib/core/zip-writer.js","../node_modules/@zip.js/zip.js/lib/zip-core-base.js","../node_modules/@zip.js/zip.js/lib/core/zlib-streams-inline.js","../node_modules/@zip.js/zip.js/lib/core/streams/zlib-wasm/zlib-streams.js","../node_modules/@zip.js/zip.js/lib/core/streams/zlib-wasm/aes-hmac-sha1-wasm.js","../node_modules/@zip.js/zip.js/lib/core/streams/zlib-wasm/zlib-streams-loader.js","../node_modules/@zip.js/zip.js/lib/zip-module-wasm-base.js","../node_modules/file-collection/lib/ExtendedSourceItem.js","../node_modules/file-collection/lib/FileItem.js","../node_modules/file-collection/lib/Options.js","../node_modules/@zip.js/zip.js/lib/zip-module-wasm.js","../node_modules/@zip.js/zip.js/lib/zip-fs-wasm.js","../node_modules/file-collection/lib/utilities/getNameInfo.js","../node_modules/file-collection/lib/append/appendArrayBuffer.js","../node_modules/file-collection/lib/utilities/normalize_relative_path.js","../node_modules/file-collection/lib/append/appendFileList.js","../node_modules/file-collection/lib/utilities/shouldAddItem.js","../node_modules/file-collection/lib/append/sourceItemToExtendedSourceItem.js","../node_modules/file-collection/lib/utilities/stream_from_async_blob.js","../node_modules/file-collection/lib/append/appendSource.js","../node_modules/file-collection/lib/append/appendText.js","../node_modules/file-collection/lib/zip/get_zip_reader.js","../node_modules/file-collection/lib/transformation/source_zip.js","../node_modules/file-collection/lib/ium/versions/index.js","../node_modules/file-collection/lib/ium/versions/migrations/v01_to_v02.js","../node_modules/file-collection/lib/ium/from_ium.js","../node_modules/file-collection/lib/utilities/should_avoid_compression.js","../node_modules/file-collection/lib/ium/to_ium.js","../node_modules/file-collection/lib/subroot.js","../node_modules/file-collection/lib/utilities/expand/fileItemUngzip.js","../node_modules/file-collection/lib/utilities/zip.js","../node_modules/file-collection/lib/zip/file_entry_to_data.js","../node_modules/file-collection/lib/utilities/expand/fileItemsFromZip.js","../node_modules/file-collection/lib/utilities/expand/fileItemUnzip.js","../node_modules/file-collection/lib/utilities/expand/expandAndFilter.js","../node_modules/file-collection/lib/zip/from_zip.js","../node_modules/file-collection/lib/FileCollection.js","../node_modules/file-collection/lib/utilities/convertExtendedSourceToFile.js","../node_modules/file-collection/lib/append/appendWebSource.js","../node_modules/file-collection/lib/append/appendPath.browser.js","../node_modules/file-collection/lib/append/append_file_collection.js","../node_modules/file-collection/lib/zip/to_zip.js","../node_modules/file-collection/lib/utilities/filter_file_collection.js","../node_modules/file-collection/lib/index.js","../node_modules/lodash.merge/index.js","../node_modules/@zakodium/nmrium-core/dist/nmrium-core.js","../node_modules/ml-spectra-processing/lib/matrix/matrixToArray.js","../node_modules/ensure-string/lib/index.js","../node_modules/dynamic-typing/lib/parseString.js","../node_modules/gyromagnetic-ratio/lib-esm/getGyromagneticRatio.js","../node_modules/gyromagnetic-ratio/lib-esm/getGyromagneticNucleus.js","../node_modules/gyromagnetic-ratio/lib-esm/index.js","../node_modules/gyromagnetic-ratio/lib-esm/gyromagneticRatioMHzT.js","../node_modules/median-quickselect/lib/median-quickselect.min.js","../node_modules/ml-array-median/lib/index.js","../node_modules/jcampconverter/dist/jcampconverter.js","../node_modules/@date-fns/utc/date/mini.js","../node_modules/@date-fns/utc/date/index.js","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/addDays.js","../node_modules/date-fns/_lib/defaultOptions.js","../node_modules/date-fns/startOfWeek.js","../node_modules/date-fns/startOfISOWeek.js","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/date-fns/startOfISOWeekYear.js","../node_modules/date-fns/getISOWeekYear.js","../node_modules/date-fns/isValid.js","../node_modules/date-fns/isDate.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/en-US.js","../node_modules/date-fns/getWeekYear.js","../node_modules/date-fns/getWeek.js","../node_modules/date-fns/startOfWeekYear.js","../node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/date-fns/_lib/protectedTokens.js","../node_modules/date-fns/getTime.js","../node_modules/date-fns/parse/_lib/Setter.js","../node_modules/date-fns/transpose.js","../node_modules/date-fns/parse/_lib/Parser.js","../node_modules/date-fns/parse/_lib/constants.js","../node_modules/date-fns/parse/_lib/utils.js","../node_modules/date-fns/setISOWeek.js","../node_modules/date-fns/getISOWeek.js","../node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/setDay.js","../node_modules/date-fns/setISODay.js","../node_modules/date-fns/getISODay.js","../node_modules/date-fns/parse/_lib/parsers.js","../node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/setWeek.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/parse.js","../node_modules/date-fns/getDefaultOptions.js","../node_modules/date-fns/parseISO.js","../node_modules/openchemlib-utils/lib/util/getXAtomicNumber.js","../node_modules/openchemlib-utils/lib/util/makeRacemic.js","../node_modules/openchemlib-utils/lib/util/tagAtom.js","../node_modules/openchemlib-utils/lib/util/getCompactCopyWithoutCustomLabels.js","../node_modules/openchemlib-utils/lib/diastereotopic/getChiralOrHeterotopicCarbons.js","../node_modules/openchemlib-utils/lib/diastereotopic/getDiastereotopicAtomIDs.js","../node_modules/openchemlib-utils/lib/diastereotopic/ensureHeterotopicChiralBonds.js","../node_modules/openchemlib-utils/lib/util/getSymmetryRanks.js","../node_modules/openchemlib-utils/lib/diastereotopic/getDiastereotopicAtomIDsFromMolfile.js","../node_modules/openchemlib-utils/lib/diastereotopic/getDiastereotopicAtomIDsAndH.js","../node_modules/atom-sorter/lib/src/index.js","../node_modules/sdf-parser/lib/util/getMolecule.js","../node_modules/papaparse/papaparse.min.js","../node_modules/openchemlib/dist/openchemlib.js","../node_modules/heap/lib/heap.js","../node_modules/ml-peak-shape-generator/lib/util/constants.js","../node_modules/ml-peak-shape-generator/lib/shapes/1d/gaussian/Gaussian.js","../node_modules/ml-peak-shape-generator/lib/util/erfinv.js","../node_modules/ml-peak-shape-generator/lib/shapes/1d/lorentzian/Lorentzian.js","../node_modules/ml-peak-shape-generator/lib/shapes/1d/lorentzianDispersive/LorentzianDispersive.js","../node_modules/ml-peak-shape-generator/lib/shapes/1d/pseudoVoigt/computeFactor.js","../node_modules/ml-peak-shape-generator/lib/shapes/1d/pseudoVoigt/PseudoVoigt.js","../node_modules/ml-peak-shape-generator/lib/shapes/1d/pseudoVoigtTCH/PseudoVoigtTCH.js","../node_modules/ml-peak-shape-generator/lib/shapes/1d/generalizedLorentzian/GeneralizedLorentzian.js","../node_modules/ml-peak-shape-generator/lib/shapes/1d/splitGaussian/SplitGaussian.js","../node_modules/ml-peak-shape-generator/lib/shapes/1d/getShape1D.js","../node_modules/binary-search/index.js","../node_modules/num-sort/index.js","../node_modules/ml-hash-table/src/primeFinder.js","../node_modules/ml-hash-table/src/HashTable.js","../node_modules/ml-sparse-matrix/lib/index.js","../node_modules/ml-sparse-matrix/lib/utils/mmulSmall.js","../node_modules/ml-sparse-matrix/lib/utils/mmulLowDensity.js","../node_modules/ml-sparse-matrix/lib/utils/mmulMediumDensity.js","../node_modules/ml-sparse-matrix/lib/utils/cooToCsr.js","../node_modules/ml-airpls/lib/utils.js","../node_modules/ml-airpls/lib/index.js","../node_modules/ml-spectra-processing/lib/x/xAbsoluteSum.js","../node_modules/ml-spectra-processing/lib/xy/xyInterpolateLinear.js","../node_modules/ml-regression-base/lib-esm/checkArrayLength.js","../node_modules/ml-regression-base/lib-esm/BaseRegression.js","../node_modules/ml-regression-base/lib-esm/maybeToPrecision.js","../node_modules/ml-regression-polynomial/lib/index.js","../node_modules/ml-signal-processing/lib/filters/scaling/centerMean.js","../node_modules/ml-signal-processing/lib/filters/scaling/centerMedian.js","../node_modules/ml-signal-processing/lib/filters/x/fromTo.js","../node_modules/ml-signal-processing/lib/filters/scaling/normed.js","../node_modules/ml-signal-processing/lib/filters/scaling/divideBySD.js","../node_modules/ml-signal-processing/lib/filters/scaling/rescale.js","../node_modules/ml-spectra-processing/lib/x/xRescale.js","../node_modules/ml-signal-processing/lib/filters/scaling/paretoNormalization.js","../node_modules/baselines/src/iterativePolynomial.js","../node_modules/ml-baseline-correction-regression/src/index.js","../node_modules/baselines/src/rollingAverage.js","../node_modules/ml-spectra-processing/lib/x/xRollingAverage.js","../node_modules/baselines/src/rollingBall.js","../node_modules/ml-rolling-ball-baseline/lib/rollingBall.js","../node_modules/baselines/src/rollingMedian.js","../node_modules/ml-spectra-processing/lib/x/xRollingMedian.js","../node_modules/ml-signal-processing/lib/filters/baseline/airPLSBaseline.js","../node_modules/baselines/src/airPLS.js","../node_modules/ml-signal-processing/lib/filters/baseline/iterativePolynomialBaseline.js","../node_modules/ml-signal-processing/lib/filters/baseline/rollingAverageBaseline.js","../node_modules/ml-signal-processing/lib/filters/baseline/rollingBallBaseline.js","../node_modules/ml-signal-processing/lib/filters/baseline/rollingMedianBaseline.js","../node_modules/ml-savitzky-golay-generalized/lib/spacing.js","../node_modules/ml-savitzky-golay-generalized/lib/validate.js","../node_modules/ml-savitzky-golay-generalized/lib/weights.js","../node_modules/ml-savitzky-golay-generalized/lib/sgg.js","../node_modules/ml-signal-processing/lib/filters/sg/firstDerivative.js","../node_modules/ml-signal-processing/lib/filters/sg/secondDerivative.js","../node_modules/ml-signal-processing/lib/filters/sg/thirdDerivative.js","../node_modules/ml-signal-processing/lib/filters/sg/savitzkyGolay.js","../node_modules/ml-signal-processing/lib/filters/x/ensureGrowing.js","../node_modules/ml-signal-processing/lib/filters/x/reverseIfNeeded.js","../node_modules/ml-signal-processing/lib/filters/x/equallySpaced.js","../node_modules/ml-signal-processing/lib/filters/x/filterX.js","../node_modules/ml-signal-processing/lib/filters/x/setMaxX.js","../node_modules/ml-signal-processing/lib/filters/x/setMinX.js","../node_modules/ml-gsd/lib/algorithms/getMinMaxIntervals.js","../node_modules/ml-gsd/lib/algorithms/tryMatchOneIntervalWithMinData.js","../node_modules/ml-gsd/lib/algorithms/getPeaksFromIntervals.js","../node_modules/ml-gsd/lib/algorithms/xGetCrossZeroPoints.js","../node_modules/ml-gsd/lib/algorithms/firstDerivative.js","../node_modules/ml-gsd/lib/gsd.js","../node_modules/ml-savitzky-golay-generalized/lib/sggPair.js","../node_modules/ml-gsd/lib/algorithms/secondDerivative.js","../node_modules/ml-gsd/lib/algorithms/autoAlgorithm.js","../node_modules/ml-gsd/lib/utils/optimizeTop.js","../node_modules/ml-spectra-fitting/lib/util/assert.js","../node_modules/ml-spectra-fitting/lib/util/buildOptimizationLayout.js","../node_modules/ml-spectra-fitting/lib/util/reconstructPeaks.js","../node_modules/ml-spectra-fitting/lib/util/internalPeaks/DefaultParameters.js","../node_modules/ml-spectra-fitting/lib/util/internalPeaks/getInternalPeaks.js","../node_modules/ml-levenberg-marquardt/lib/check_options.js","../node_modules/ml-levenberg-marquardt/lib/error_calculation.js","../node_modules/ml-levenberg-marquardt/lib/step.js","../node_modules/ml-levenberg-marquardt/lib/gradient_function.js","../node_modules/ml-levenberg-marquardt/lib/levenberg_marquardt.js","../node_modules/ml-direct/src/util/antiLowerConvexHull.js","../node_modules/ml-direct/src/index.js","../node_modules/ml-spectra-fitting/lib/util/wrappers/directOptimization.js","../node_modules/ml-spectra-fitting/lib/index.js","../node_modules/ml-spectra-fitting/lib/util/selectMethod.js","../node_modules/ml-spectra-fitting/lib/shapes/getSumOfShapes.js","../node_modules/ml-spectra-fitting/lib/util/getFixedParametersResult.js","../node_modules/ml-gsd/lib/utils/addMissingShape.js","../node_modules/ml-gsd/lib/utils/splitGroup.js","../node_modules/ml-gsd/lib/utils/groupPeaks.js","../node_modules/ml-gsd/lib/post/optimizePeaksWithLogs.js","../node_modules/ml-gsd/lib/utils/addMissingIDs.js","../node_modules/ml-gsd/lib/post/joinBroadPeaks.js","../node_modules/ml-signal-processing/lib/filters/x/calibrateX.js","../node_modules/ml-signal-processing/lib/filters/x/xFunction.js","../node_modules/ml-signal-processing/lib/filters/scaling/yFunction.js","../node_modules/ml-signal-processing/lib/filters/y/setMaxY.js","../node_modules/ml-signal-processing/lib/filters/y/setMinY.js","../node_modules/ml-signal-processing/lib/filterMatrix.js","../node_modules/ml-signal-processing/lib/filterXY.js","../node_modules/linear-sum-assignment/lib/getShortestPath.js","../node_modules/numeral/numeral.js","../node_modules/ml-fft/src/fftlib.js","../node_modules/nmr-processing/dist/nmr-processing.js","../node_modules/ml-spectra-processing/lib/x/xDivide.js","../node_modules/ml-spectra-processing/lib/xy/xyMedianYAtXs.js","../node_modules/ml-spectra-processing/lib/reim/reimFFT.js","../node_modules/ml-spectra-processing/lib/xreim/xreimZeroFilling.js","../node_modules/ml-spectra-processing/lib/reimMatrix/reimMatrixFFTByColumns.js","../node_modules/ml-spectra-processing/lib/x/xMaxIndex.js","../node_modules/ml-spectra-processing/lib/xy/xyExtract.js","../node_modules/ml-spectra-processing/lib/x/xAbsoluteMedian.js","../node_modules/ml-gsd/lib/utils/setShape.js","../node_modules/ml-gsd/lib/post/optimizePeaks.js","../node_modules/zod/v4/core/util.js","../node_modules/zod/v4/core/core.js","../node_modules/zod/v4/core/errors.js","../node_modules/zod/v4/core/parse.js","../node_modules/zod/v4/core/regexes.js","../node_modules/zod/v4/core/checks.js","../node_modules/zod/v4/core/doc.js","../node_modules/zod/v4/core/versions.js","../node_modules/zod/v4/core/schemas.js","../node_modules/zod/v4/core/memoizer.js","../node_modules/zod/v4/locales/en.js","../node_modules/zod/v4/core/registries.js","../node_modules/zod/v4/core/api.js","../node_modules/zod/v4/core/to-json-schema.js","../node_modules/zod/v4/core/json-schema-processors.js","../node_modules/zod/v4/classic/errors.js","../node_modules/zod/v4/classic/parse.js","../node_modules/zod/v4/classic/schemas.js","../node_modules/zod/v4/classic/coerce.js","../node_modules/ts-pattern/dist/index.js","../node_modules/@zakodium/nmrium-core-plugins/dist/nmrium-core-plugins.js","../node_modules/ml-spectra-processing/lib/utils/createStepArray.js","../node_modules/ml-spectra-processing/lib/matrix/matrixTranspose.js","../node_modules/linear-sum-assignment/lib/index.js","../node_modules/openchemlib-utils/lib/path/getShortestPaths.js","../node_modules/sdf-parser/lib/parse.js","../node_modules/sdf-parser/lib/getEntriesBoundaries.js","../lib/utils/findExperimentFiles.js","../lib/utils/toExperimentMeta.js","../lib/splitNmrZip.js"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/unbound-method\nconst toString = Object.prototype.toString;\n/**\n * Checks if an object is an instance of an Array (array or typed array, except those that contain bigint values).\n * @param value - Object to check.\n * @returns True if the object is an array or a typed array.\n */\nexport function isAnyArray(value) {\n    const tag = toString.call(value);\n    return tag.endsWith('Array]') && !tag.includes('Big');\n}\n//# sourceMappingURL=index.js.map","/**\n * Calculates reimAbsolute value of a complex spectrum.\n * @param data - complex spectrum.\n * @param options - options.\n * @param options.output - optional output array.\n * @returns absolute value array.\n */\nexport function reimAbsolute(data, options = {}) {\n    const length = data.re.length;\n    const { output = new Float64Array(length) } = options;\n    const re = data.re;\n    const im = data.im;\n    for (let i = 0; i < length; i++) {\n        output[i] = Math.hypot(re[i], im[i]);\n    }\n    return output;\n}\n//# sourceMappingURL=reimAbsolute.js.map","import { isAnyArray } from 'is-any-array';\n/**\n * This function\n * @param output - undefined or a new array\n * @param length - length of the output array\n * @returns\n */\nexport function getOutputArray(output, length) {\n    if (output !== undefined) {\n        if (!isAnyArray(output)) {\n            throw new TypeError('output option must be an array if specified');\n        }\n        if (output.length !== length) {\n            throw new TypeError('the output array does not have the correct length');\n        }\n        return output;\n    }\n    else {\n        return new Float64Array(length);\n    }\n}\n//# sourceMappingURL=getOutputArray.js.map","/**\n * This function returns an array with absolute values.\n * @param array - array of data\n * @returns - array with absolute values\n */\nexport function xAbsolute(array) {\n    const tmpArray = array.slice();\n    for (let i = 0; i < tmpArray.length; i++) {\n        if (tmpArray[i] < 0)\n            tmpArray[i] *= -1;\n    }\n    return tmpArray;\n}\n//# sourceMappingURL=xAbsolute.js.map","import { isAnyArray } from 'is-any-array';\n/**\n * Calculates the median of an array.\n * @param input - array containing values.\n * @param options - options.\n * @returns median.\n */\nexport function xMedian(input, options = {}) {\n    if (!isAnyArray(input)) {\n        throw new TypeError('input must be an array');\n    }\n    const { exact = false, fromIndex = 0, toIndex = input.length, } = options || {};\n    const array = input.slice(fromIndex, toIndex);\n    if (array.length === 0) {\n        throw new TypeError('input must not be empty');\n    }\n    const middleIndex = calcMiddle(0, array.length - 1);\n    const median = quickSelect(array, middleIndex);\n    if (array.length % 2 === 1 || !exact) {\n        return median;\n    }\n    const medianNext = quickSelect(array, middleIndex + 1);\n    return (median + medianNext) / 2;\n}\nfunction quickSelect(array, middleIndex) {\n    let low = 0;\n    let high = array.length - 1;\n    let middle = 0;\n    let currentLow = 0;\n    let currentHigh = 0;\n    while (true) {\n        if (high <= low) {\n            return array[middleIndex];\n        }\n        if (high === low + 1) {\n            if (array[low] > array[high]) {\n                swap(array, low, high);\n            }\n            return array[middleIndex];\n        }\n        // Find median of low, middle and high items; swap into position low\n        middle = calcMiddle(low, high);\n        if (array[middle] > array[high])\n            swap(array, middle, high);\n        if (array[low] > array[high])\n            swap(array, low, high);\n        if (array[middle] > array[low])\n            swap(array, middle, low);\n        // Swap low item (now in position middle) into position (low+1)\n        swap(array, middle, low + 1);\n        // Nibble from each end towards middle, swapping items when stuck\n        currentLow = low + 1;\n        currentHigh = high;\n        while (true) {\n            do\n                currentLow++;\n            while (array[low] > array[currentLow]);\n            do\n                currentHigh--;\n            while (array[currentHigh] > array[low]);\n            if (currentHigh < currentLow) {\n                break;\n            }\n            swap(array, currentLow, currentHigh);\n        }\n        // Swap middle item (in position low) back into correct position\n        swap(array, low, currentHigh);\n        // Re-set active partition\n        if (currentHigh <= middleIndex) {\n            low = currentLow;\n        }\n        if (currentHigh >= middleIndex) {\n            high = currentHigh - 1;\n        }\n    }\n}\nfunction swap(array, i, j) {\n    const temp = array[j];\n    array[j] = array[i];\n    array[i] = temp;\n}\nfunction calcMiddle(i, j) {\n    return Math.floor((i + j) / 2);\n}\n//# sourceMappingURL=xMedian.js.map","import { isAnyArray } from 'is-any-array';\n/**\n * Checks if the input is a non-empty array of numbers.\n * Only checks the first element.\n * @param input - array to check.\n * @param options - additional checks.\n */\nexport function xCheck(input, options = {}) {\n    const { minLength = 1 } = options;\n    if (!isAnyArray(input)) {\n        throw new TypeError('input must be an array');\n    }\n    if (input.length === 0) {\n        throw new TypeError('input must not be empty');\n    }\n    if (typeof input[0] !== 'number') {\n        throw new TypeError('input must contain numbers');\n    }\n    if (input.length < minLength) {\n        throw new Error(`input must have a length of at least ${minLength}`);\n    }\n}\n//# sourceMappingURL=xCheck.js.map","/**\n * Returns the closest index of a `target`\n * @param array - array of numbers.\n * @param target - target value.\n * @param options - options.\n * @returns closest index.\n */\nexport function xFindClosestIndex(array, target, options = {}) {\n    const { sorted = true } = options;\n    if (sorted) {\n        let low = 0;\n        let high = array.length - 1;\n        let middle = 0;\n        while (high - low > 1) {\n            middle = low + ((high - low) >> 1);\n            if (array[middle] < target) {\n                low = middle;\n            }\n            else if (array[middle] > target) {\n                high = middle;\n            }\n            else {\n                return middle;\n            }\n        }\n        if (low < array.length - 1) {\n            if (Math.abs(target - array[low]) < Math.abs(array[low + 1] - target)) {\n                return low;\n            }\n            else {\n                return low + 1;\n            }\n        }\n        else {\n            return low;\n        }\n    }\n    else {\n        let index = 0;\n        let diff = Number.POSITIVE_INFINITY;\n        for (let i = 0; i < array.length; i++) {\n            const currentDiff = Math.abs(array[i] - target);\n            if (currentDiff < diff) {\n                diff = currentDiff;\n                index = i;\n            }\n        }\n        return index;\n    }\n}\n//# sourceMappingURL=xFindClosestIndex.js.map","import { xFindClosestIndex } from \"./xFindClosestIndex.js\";\n/**\n * Returns an object with {fromIndex, toIndex} for a specific from / to\n * @param x - array of numbers\n * @param options - options.\n */\nexport function xGetFromToIndex(x, options = {}) {\n    let { fromIndex, toIndex } = options;\n    const { from, to } = options;\n    if (fromIndex === undefined) {\n        if (from !== undefined) {\n            fromIndex = xFindClosestIndex(x, from);\n        }\n        else {\n            fromIndex = 0;\n        }\n    }\n    if (toIndex === undefined) {\n        if (to !== undefined) {\n            toIndex = xFindClosestIndex(x, to);\n        }\n        else {\n            toIndex = x.length - 1;\n        }\n    }\n    if (fromIndex < 0)\n        fromIndex = 0;\n    if (toIndex < 0)\n        toIndex = 0;\n    if (fromIndex >= x.length)\n        fromIndex = x.length - 1;\n    if (toIndex >= x.length)\n        toIndex = x.length - 1;\n    if (fromIndex > toIndex)\n        [fromIndex, toIndex] = [toIndex, fromIndex];\n    return { fromIndex, toIndex };\n}\n//# sourceMappingURL=xGetFromToIndex.js.map","import { isAnyArray } from 'is-any-array';\n/**\n * This function xAdd the first array by the second array or a constant value to each element of the first array\n * @param array1 - the first array\n * @param array2 - the second array or number\n * @returns the result of the addition\n */\nexport function xAdd(array1, array2) {\n    let isConstant = false;\n    let constant = 0;\n    if (isAnyArray(array2)) {\n        if (array1.length !== array2.length) {\n            throw new Error('size of array1 and array2 must be identical');\n        }\n    }\n    else {\n        isConstant = true;\n        constant = array2;\n    }\n    const array3 = new Float64Array(array1.length);\n    if (isConstant) {\n        for (let i = 0; i < array1.length; i++) {\n            array3[i] = array1[i] + constant;\n        }\n    }\n    else {\n        for (let i = 0; i < array1.length; i++) {\n            array3[i] = array1[i] + array2[i];\n        }\n    }\n    return array3;\n}\n//# sourceMappingURL=xAdd.js.map","/**\n * Will apply a function on each element of the array described as a string\n * By default we will use as variable 'x'\n * In front of sequence of lowercase we will add 'Math.'. This allows to write\n * `sin(x) + cos(x)` and it will be replace internally by (x) => (Math.sin(x) + Math.cos(x))\n * @param array\n * @param options\n * @returns\n */\nexport function xApplyFunctionStr(array, options = {}) {\n    const { variableLabel = 'x', fctString = variableLabel } = options;\n    const fct = new Function(variableLabel, `return Number(${fctString\n        .replaceAll(/(?<before>^|\\W)(?<after>[\\da-z]{2,}\\()/g, '$<before>Math.$<after>')\n        .replaceAll('Math.Math', 'Math')})`);\n    const toReturn = new Float64Array(array.length);\n    for (let i = 0; i < array.length; i++) {\n        toReturn[i] = fct(array[i]);\n        if (Number.isNaN(toReturn[i])) {\n            throw new Error(`The callback ${fctString} does not return a number: ${array[i]}`);\n        }\n    }\n    return toReturn;\n}\n//# sourceMappingURL=xApplyFunctionStr.js.map","import { xCheck } from \"./xCheck.js\";\n/**\n * Downsample an array by averaging consecutive non-overlapping points (binning).\n * Either specify a fixed `binSize` or a target `numberOfPoints`.\n * @param array - input array.\n * @param options - options.\n * @returns downsampled array.\n */\nexport function xBinning(array, options = {}) {\n    xCheck(array);\n    const { binSize, numberOfPoints, keepFirstAndLast = true } = options;\n    const { length } = array;\n    if (numberOfPoints !== undefined) {\n        if (binSize !== undefined) {\n            throw new RangeError('binSize and numberOfPoints are mutually exclusive');\n        }\n        if (!Number.isInteger(numberOfPoints) || numberOfPoints <= 0) {\n            throw new RangeError('numberOfPoints must be a positive integer');\n        }\n        if (numberOfPoints > length) {\n            throw new RangeError('numberOfPoints must be <= array.length');\n        }\n        return binByNumberOfPoints(array, numberOfPoints, keepFirstAndLast);\n    }\n    const effectiveBinSize = binSize ?? 10;\n    if (!Number.isInteger(effectiveBinSize) || effectiveBinSize <= 0) {\n        throw new RangeError('binSize must be a positive integer');\n    }\n    if (effectiveBinSize === 1) {\n        return Float64Array.from(array);\n    }\n    if (keepFirstAndLast) {\n        if (length <= 2) {\n            return Float64Array.from(array);\n        }\n        const innerLength = length - 2;\n        const innerBinCount = Math.ceil(innerLength / effectiveBinSize);\n        const output = new Float64Array(innerBinCount + 2);\n        output[0] = array[0];\n        output[output.length - 1] = array[length - 1];\n        for (let i = 0, j = 1; i < innerLength; i += effectiveBinSize, j++) {\n            const start = i + 1;\n            const end = Math.min(start + effectiveBinSize, length - 1);\n            let sum = 0;\n            for (let k = start; k < end; k++) {\n                sum += array[k];\n            }\n            output[j] = sum / (end - start);\n        }\n        return output;\n    }\n    const outputLength = Math.ceil(length / effectiveBinSize);\n    const output = new Float64Array(outputLength);\n    for (let i = 0, j = 0; i < length; i += effectiveBinSize, j++) {\n        const end = Math.min(i + effectiveBinSize, length);\n        let sum = 0;\n        for (let k = i; k < end; k++) {\n            sum += array[k];\n        }\n        output[j] = sum / (end - i);\n    }\n    return output;\n}\nfunction binByNumberOfPoints(array, numberOfPoints, keepFirstAndLast) {\n    const { length } = array;\n    const output = new Float64Array(numberOfPoints);\n    if (keepFirstAndLast) {\n        if (numberOfPoints < 2) {\n            throw new RangeError('numberOfPoints must be >= 2 when keepFirstAndLast is true');\n        }\n        output[0] = array[0];\n        output[numberOfPoints - 1] = array[length - 1];\n        if (numberOfPoints === 2) {\n            return output;\n        }\n        const innerLength = length - 2;\n        const innerBins = numberOfPoints - 2;\n        for (let j = 0; j < innerBins; j++) {\n            const start = 1 + Math.floor((j * innerLength) / innerBins);\n            const end = 1 + Math.floor(((j + 1) * innerLength) / innerBins);\n            let sum = 0;\n            for (let k = start; k < end; k++) {\n                sum += array[k];\n            }\n            output[j + 1] = sum / (end - start);\n        }\n        return output;\n    }\n    for (let j = 0; j < numberOfPoints; j++) {\n        const start = Math.floor((j * length) / numberOfPoints);\n        const end = Math.floor(((j + 1) * length) / numberOfPoints);\n        let sum = 0;\n        for (let k = start; k < end; k++) {\n            sum += array[k];\n        }\n        output[j] = sum / (end - start);\n    }\n    return output;\n}\n//# sourceMappingURL=xBinning.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst toString = Object.prototype.toString;\n/**\n * Checks if an object is an instance of an Array (array or typed array, except those that contain bigint values).\n * @param value - Object to check.\n * @returns True if the object is an array or a typed array.\n */\nfunction isAnyArray(value) {\n    const tag = toString.call(value);\n    return tag.endsWith('Array]') && !tag.includes('Big');\n}\n\n/**\n * Computes the maximum of the given values.\n *\n * @param input\n * @param options\n */\nfunction max(input, options = {}) {\n    if (!isAnyArray(input)) {\n        throw new TypeError('input must be an array');\n    }\n    if (input.length === 0) {\n        throw new TypeError('input must not be empty');\n    }\n    const { fromIndex = 0, toIndex = input.length } = options;\n    if (fromIndex < 0 ||\n        fromIndex >= input.length ||\n        !Number.isInteger(fromIndex)) {\n        throw new Error('fromIndex must be a positive integer smaller than length');\n    }\n    if (toIndex <= fromIndex ||\n        toIndex > input.length ||\n        !Number.isInteger(toIndex)) {\n        throw new Error('toIndex must be an integer greater than fromIndex and at most equal to length');\n    }\n    let maxValue = input[fromIndex];\n    for (let i = fromIndex + 1; i < toIndex; i++) {\n        if (input[i] > maxValue)\n            maxValue = input[i];\n    }\n    return maxValue;\n}\n\n/**\n * Computes the minimum of the given values.\n */\nfunction min(input, options = {}) {\n    if (!isAnyArray(input)) {\n        throw new TypeError('input must be an array');\n    }\n    if (input.length === 0) {\n        throw new TypeError('input must not be empty');\n    }\n    const { fromIndex = 0, toIndex = input.length } = options;\n    if (fromIndex < 0 ||\n        fromIndex >= input.length ||\n        !Number.isInteger(fromIndex)) {\n        throw new Error('fromIndex must be a positive integer smaller than length');\n    }\n    if (toIndex <= fromIndex ||\n        toIndex > input.length ||\n        !Number.isInteger(toIndex)) {\n        throw new Error('toIndex must be an integer greater than fromIndex and at most equal to length');\n    }\n    let minValue = input[fromIndex];\n    for (let i = fromIndex + 1; i < toIndex; i++) {\n        if (input[i] < minValue)\n            minValue = input[i];\n    }\n    return minValue;\n}\n\n/**\n * Rescale an array into a range.\n */\nfunction rescale(input, options = {}) {\n    if (!isAnyArray(input)) {\n        throw new TypeError('input must be an array');\n    }\n    else if (input.length === 0) {\n        throw new TypeError('input must not be empty');\n    }\n    let output;\n    if (options.output !== undefined) {\n        if (!isAnyArray(options.output)) {\n            throw new TypeError('output option must be an array if specified');\n        }\n        output = options.output;\n    }\n    else {\n        output = new Array(input.length);\n    }\n    const currentMin = min(input);\n    const currentMax = max(input);\n    if (currentMin === currentMax) {\n        throw new RangeError('minimum and maximum input values are equal. Cannot rescale a constant array');\n    }\n    const { min: minValue = options.autoMinMax ? currentMin : 0, max: maxValue = options.autoMinMax ? currentMax : 1, } = options;\n    if (minValue >= maxValue) {\n        throw new RangeError('min option must be smaller than max option');\n    }\n    const factor = (maxValue - minValue) / (currentMax - currentMin);\n    for (let i = 0; i < input.length; i++) {\n        output[i] = (input[i] - currentMin) * factor + minValue;\n    }\n    return output;\n}\n\nconst indent = ' '.repeat(2);\nconst indentData = ' '.repeat(4);\n\n/**\n * @this {Matrix}\n * @returns {string}\n */\nfunction inspectMatrix() {\n  return inspectMatrixWithOptions(this);\n}\n\nfunction inspectMatrixWithOptions(matrix, options = {}) {\n  const {\n    maxRows = 15,\n    maxColumns = 10,\n    maxNumSize = 8,\n    padMinus = 'auto',\n  } = options;\n  return `${matrix.constructor.name} {\n${indent}[\n${indentData}${inspectData(matrix, maxRows, maxColumns, maxNumSize, padMinus)}\n${indent}]\n${indent}rows: ${matrix.rows}\n${indent}columns: ${matrix.columns}\n}`;\n}\n\nfunction inspectData(matrix, maxRows, maxColumns, maxNumSize, padMinus) {\n  const { rows, columns } = matrix;\n  const maxI = Math.min(rows, maxRows);\n  const maxJ = Math.min(columns, maxColumns);\n  const result = [];\n\n  if (padMinus === 'auto') {\n    padMinus = false;\n    loop: for (let i = 0; i < maxI; i++) {\n      for (let j = 0; j < maxJ; j++) {\n        if (matrix.get(i, j) < 0) {\n          padMinus = true;\n          break loop;\n        }\n      }\n    }\n  }\n\n  for (let i = 0; i < maxI; i++) {\n    let line = [];\n    for (let j = 0; j < maxJ; j++) {\n      line.push(formatNumber(matrix.get(i, j), maxNumSize, padMinus));\n    }\n    result.push(`${line.join(' ')}`);\n  }\n  if (maxJ !== columns) {\n    result[result.length - 1] += ` ... ${columns - maxColumns} more columns`;\n  }\n  if (maxI !== rows) {\n    result.push(`... ${rows - maxRows} more rows`);\n  }\n  return result.join(`\\n${indentData}`);\n}\n\nfunction formatNumber(num, maxNumSize, padMinus) {\n  return (\n    num >= 0 && padMinus\n      ? ` ${formatNumber2(num, maxNumSize - 1)}`\n      : formatNumber2(num, maxNumSize)\n  ).padEnd(maxNumSize);\n}\n\nfunction formatNumber2(num, len) {\n  // small.length numbers should be as is\n  let str = num.toString();\n  if (str.length <= len) return str;\n\n  // (7)'0.00123' is better then (7)'1.23e-2'\n  // (8)'0.000123' is worse then (7)'1.23e-3',\n  let fix = num.toFixed(len);\n  if (fix.length > len) {\n    fix = num.toFixed(Math.max(0, len - (fix.length - len)));\n  }\n  if (\n    fix.length <= len &&\n    !fix.startsWith('0.000') &&\n    !fix.startsWith('-0.000')\n  ) {\n    return fix;\n  }\n\n  // well, if it's still too long the user should've used longer numbers\n  let exp = num.toExponential(len);\n  if (exp.length > len) {\n    exp = num.toExponential(Math.max(0, len - (exp.length - len)));\n  }\n  return exp.slice(0);\n}\n\nfunction installMathOperations(AbstractMatrix, Matrix) {\n  AbstractMatrix.prototype.add = function add(value) {\n    if (typeof value === 'number') return this.addS(value);\n    return this.addM(value);\n  };\n\n  AbstractMatrix.prototype.addS = function addS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) + value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.addM = function addM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) + matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.add = function add(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.add(value);\n  };\n\n  AbstractMatrix.prototype.sub = function sub(value) {\n    if (typeof value === 'number') return this.subS(value);\n    return this.subM(value);\n  };\n\n  AbstractMatrix.prototype.subS = function subS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) - value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.subM = function subM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) - matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.sub = function sub(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.sub(value);\n  };\n  AbstractMatrix.prototype.subtract = AbstractMatrix.prototype.sub;\n  AbstractMatrix.prototype.subtractS = AbstractMatrix.prototype.subS;\n  AbstractMatrix.prototype.subtractM = AbstractMatrix.prototype.subM;\n  AbstractMatrix.subtract = AbstractMatrix.sub;\n\n  AbstractMatrix.prototype.mul = function mul(value) {\n    if (typeof value === 'number') return this.mulS(value);\n    return this.mulM(value);\n  };\n\n  AbstractMatrix.prototype.mulS = function mulS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) * value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.mulM = function mulM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) * matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.mul = function mul(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.mul(value);\n  };\n  AbstractMatrix.prototype.multiply = AbstractMatrix.prototype.mul;\n  AbstractMatrix.prototype.multiplyS = AbstractMatrix.prototype.mulS;\n  AbstractMatrix.prototype.multiplyM = AbstractMatrix.prototype.mulM;\n  AbstractMatrix.multiply = AbstractMatrix.mul;\n\n  AbstractMatrix.prototype.div = function div(value) {\n    if (typeof value === 'number') return this.divS(value);\n    return this.divM(value);\n  };\n\n  AbstractMatrix.prototype.divS = function divS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) / value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.divM = function divM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) / matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.div = function div(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.div(value);\n  };\n  AbstractMatrix.prototype.divide = AbstractMatrix.prototype.div;\n  AbstractMatrix.prototype.divideS = AbstractMatrix.prototype.divS;\n  AbstractMatrix.prototype.divideM = AbstractMatrix.prototype.divM;\n  AbstractMatrix.divide = AbstractMatrix.div;\n\n  AbstractMatrix.prototype.mod = function mod(value) {\n    if (typeof value === 'number') return this.modS(value);\n    return this.modM(value);\n  };\n\n  AbstractMatrix.prototype.modS = function modS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) % value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.modM = function modM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) % matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.mod = function mod(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.mod(value);\n  };\n  AbstractMatrix.prototype.modulus = AbstractMatrix.prototype.mod;\n  AbstractMatrix.prototype.modulusS = AbstractMatrix.prototype.modS;\n  AbstractMatrix.prototype.modulusM = AbstractMatrix.prototype.modM;\n  AbstractMatrix.modulus = AbstractMatrix.mod;\n\n  AbstractMatrix.prototype.and = function and(value) {\n    if (typeof value === 'number') return this.andS(value);\n    return this.andM(value);\n  };\n\n  AbstractMatrix.prototype.andS = function andS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) & value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.andM = function andM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) & matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.and = function and(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.and(value);\n  };\n\n  AbstractMatrix.prototype.or = function or(value) {\n    if (typeof value === 'number') return this.orS(value);\n    return this.orM(value);\n  };\n\n  AbstractMatrix.prototype.orS = function orS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) | value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.orM = function orM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) | matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.or = function or(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.or(value);\n  };\n\n  AbstractMatrix.prototype.xor = function xor(value) {\n    if (typeof value === 'number') return this.xorS(value);\n    return this.xorM(value);\n  };\n\n  AbstractMatrix.prototype.xorS = function xorS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) ^ value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.xorM = function xorM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) ^ matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.xor = function xor(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.xor(value);\n  };\n\n  AbstractMatrix.prototype.leftShift = function leftShift(value) {\n    if (typeof value === 'number') return this.leftShiftS(value);\n    return this.leftShiftM(value);\n  };\n\n  AbstractMatrix.prototype.leftShiftS = function leftShiftS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) << value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.leftShiftM = function leftShiftM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) << matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.leftShift = function leftShift(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.leftShift(value);\n  };\n\n  AbstractMatrix.prototype.signPropagatingRightShift = function signPropagatingRightShift(value) {\n    if (typeof value === 'number') return this.signPropagatingRightShiftS(value);\n    return this.signPropagatingRightShiftM(value);\n  };\n\n  AbstractMatrix.prototype.signPropagatingRightShiftS = function signPropagatingRightShiftS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) >> value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.signPropagatingRightShiftM = function signPropagatingRightShiftM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) >> matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.signPropagatingRightShift = function signPropagatingRightShift(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.signPropagatingRightShift(value);\n  };\n\n  AbstractMatrix.prototype.rightShift = function rightShift(value) {\n    if (typeof value === 'number') return this.rightShiftS(value);\n    return this.rightShiftM(value);\n  };\n\n  AbstractMatrix.prototype.rightShiftS = function rightShiftS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) >>> value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.rightShiftM = function rightShiftM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) >>> matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.rightShift = function rightShift(matrix, value) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.rightShift(value);\n  };\n  AbstractMatrix.prototype.zeroFillRightShift = AbstractMatrix.prototype.rightShift;\n  AbstractMatrix.prototype.zeroFillRightShiftS = AbstractMatrix.prototype.rightShiftS;\n  AbstractMatrix.prototype.zeroFillRightShiftM = AbstractMatrix.prototype.rightShiftM;\n  AbstractMatrix.zeroFillRightShift = AbstractMatrix.rightShift;\n\n  AbstractMatrix.prototype.not = function not() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, ~(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.not = function not(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.not();\n  };\n\n  AbstractMatrix.prototype.abs = function abs() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.abs(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.abs = function abs(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.abs();\n  };\n\n  AbstractMatrix.prototype.acos = function acos() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.acos(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.acos = function acos(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.acos();\n  };\n\n  AbstractMatrix.prototype.acosh = function acosh() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.acosh(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.acosh = function acosh(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.acosh();\n  };\n\n  AbstractMatrix.prototype.asin = function asin() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.asin(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.asin = function asin(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.asin();\n  };\n\n  AbstractMatrix.prototype.asinh = function asinh() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.asinh(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.asinh = function asinh(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.asinh();\n  };\n\n  AbstractMatrix.prototype.atan = function atan() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.atan(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.atan = function atan(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.atan();\n  };\n\n  AbstractMatrix.prototype.atanh = function atanh() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.atanh(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.atanh = function atanh(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.atanh();\n  };\n\n  AbstractMatrix.prototype.cbrt = function cbrt() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.cbrt(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.cbrt = function cbrt(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.cbrt();\n  };\n\n  AbstractMatrix.prototype.ceil = function ceil() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.ceil(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.ceil = function ceil(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.ceil();\n  };\n\n  AbstractMatrix.prototype.clz32 = function clz32() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.clz32(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.clz32 = function clz32(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.clz32();\n  };\n\n  AbstractMatrix.prototype.cos = function cos() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.cos(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.cos = function cos(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.cos();\n  };\n\n  AbstractMatrix.prototype.cosh = function cosh() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.cosh(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.cosh = function cosh(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.cosh();\n  };\n\n  AbstractMatrix.prototype.exp = function exp() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.exp(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.exp = function exp(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.exp();\n  };\n\n  AbstractMatrix.prototype.expm1 = function expm1() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.expm1(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.expm1 = function expm1(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.expm1();\n  };\n\n  AbstractMatrix.prototype.floor = function floor() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.floor(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.floor = function floor(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.floor();\n  };\n\n  AbstractMatrix.prototype.fround = function fround() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.fround(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.fround = function fround(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.fround();\n  };\n\n  AbstractMatrix.prototype.log = function log() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.log(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.log = function log(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.log();\n  };\n\n  AbstractMatrix.prototype.log1p = function log1p() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.log1p(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.log1p = function log1p(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.log1p();\n  };\n\n  AbstractMatrix.prototype.log10 = function log10() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.log10(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.log10 = function log10(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.log10();\n  };\n\n  AbstractMatrix.prototype.log2 = function log2() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.log2(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.log2 = function log2(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.log2();\n  };\n\n  AbstractMatrix.prototype.round = function round() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.round(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.round = function round(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.round();\n  };\n\n  AbstractMatrix.prototype.sign = function sign() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.sign(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.sign = function sign(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.sign();\n  };\n\n  AbstractMatrix.prototype.sin = function sin() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.sin(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.sin = function sin(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.sin();\n  };\n\n  AbstractMatrix.prototype.sinh = function sinh() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.sinh(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.sinh = function sinh(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.sinh();\n  };\n\n  AbstractMatrix.prototype.sqrt = function sqrt() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.sqrt(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.sqrt = function sqrt(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.sqrt();\n  };\n\n  AbstractMatrix.prototype.tan = function tan() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.tan(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.tan = function tan(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.tan();\n  };\n\n  AbstractMatrix.prototype.tanh = function tanh() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.tanh(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.tanh = function tanh(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.tanh();\n  };\n\n  AbstractMatrix.prototype.trunc = function trunc() {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, Math.trunc(this.get(i, j)));\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.trunc = function trunc(matrix) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.trunc();\n  };\n\n  AbstractMatrix.pow = function pow(matrix, arg0) {\n    const newMatrix = new Matrix(matrix);\n    return newMatrix.pow(arg0);\n  };\n\n  AbstractMatrix.prototype.pow = function pow(value) {\n    if (typeof value === 'number') return this.powS(value);\n    return this.powM(value);\n  };\n\n  AbstractMatrix.prototype.powS = function powS(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) ** value);\n      }\n    }\n    return this;\n  };\n\n  AbstractMatrix.prototype.powM = function powM(matrix) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (this.rows !== matrix.rows ||\n      this.columns !== matrix.columns) {\n      throw new RangeError('Matrices dimensions must be equal');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) ** matrix.get(i, j));\n      }\n    }\n    return this;\n  };\n}\n\n/**\n * @private\n * Check that a row index is not out of bounds\n * @param {Matrix} matrix\n * @param {number} index\n * @param {boolean} [outer]\n */\nfunction checkRowIndex(matrix, index, outer) {\n  let max = outer ? matrix.rows : matrix.rows - 1;\n  if (index < 0 || index > max) {\n    throw new RangeError('Row index out of range');\n  }\n}\n\n/**\n * @private\n * Check that a column index is not out of bounds\n * @param {Matrix} matrix\n * @param {number} index\n * @param {boolean} [outer]\n */\nfunction checkColumnIndex(matrix, index, outer) {\n  let max = outer ? matrix.columns : matrix.columns - 1;\n  if (index < 0 || index > max) {\n    throw new RangeError('Column index out of range');\n  }\n}\n\n/**\n * @private\n * Check that the provided vector is an array with the right length\n * @param {Matrix} matrix\n * @param {Array|Matrix} vector\n * @return {Array}\n * @throws {RangeError}\n */\nfunction checkRowVector(matrix, vector) {\n  if (vector.to1DArray) {\n    vector = vector.to1DArray();\n  }\n  if (vector.length !== matrix.columns) {\n    throw new RangeError(\n      'vector size must be the same as the number of columns',\n    );\n  }\n  return vector;\n}\n\n/**\n * @private\n * Check that the provided vector is an array with the right length\n * @param {Matrix} matrix\n * @param {Array|Matrix} vector\n * @return {Array}\n * @throws {RangeError}\n */\nfunction checkColumnVector(matrix, vector) {\n  if (vector.to1DArray) {\n    vector = vector.to1DArray();\n  }\n  if (vector.length !== matrix.rows) {\n    throw new RangeError('vector size must be the same as the number of rows');\n  }\n  return vector;\n}\n\nfunction checkRowIndices(matrix, rowIndices) {\n  if (!isAnyArray(rowIndices)) {\n    throw new TypeError('row indices must be an array');\n  }\n\n  for (let i = 0; i < rowIndices.length; i++) {\n    if (rowIndices[i] < 0 || rowIndices[i] >= matrix.rows) {\n      throw new RangeError('row indices are out of range');\n    }\n  }\n}\n\nfunction checkColumnIndices(matrix, columnIndices) {\n  if (!isAnyArray(columnIndices)) {\n    throw new TypeError('column indices must be an array');\n  }\n\n  for (let i = 0; i < columnIndices.length; i++) {\n    if (columnIndices[i] < 0 || columnIndices[i] >= matrix.columns) {\n      throw new RangeError('column indices are out of range');\n    }\n  }\n}\n\nfunction checkRange(matrix, startRow, endRow, startColumn, endColumn) {\n  if (arguments.length !== 5) {\n    throw new RangeError('expected 4 arguments');\n  }\n  checkNumber('startRow', startRow);\n  checkNumber('endRow', endRow);\n  checkNumber('startColumn', startColumn);\n  checkNumber('endColumn', endColumn);\n  if (\n    startRow > endRow ||\n    startColumn > endColumn ||\n    startRow < 0 ||\n    startRow >= matrix.rows ||\n    endRow < 0 ||\n    endRow >= matrix.rows ||\n    startColumn < 0 ||\n    startColumn >= matrix.columns ||\n    endColumn < 0 ||\n    endColumn >= matrix.columns\n  ) {\n    throw new RangeError('Submatrix indices are out of range');\n  }\n}\n\nfunction newArray(length, value = 0) {\n  let array = [];\n  for (let i = 0; i < length; i++) {\n    array.push(value);\n  }\n  return array;\n}\n\nfunction checkNumber(name, value) {\n  if (typeof value !== 'number') {\n    throw new TypeError(`${name} must be a number`);\n  }\n}\n\nfunction checkNonEmpty(matrix) {\n  if (matrix.isEmpty()) {\n    throw new Error('Empty matrix has no elements to index');\n  }\n}\n\nfunction sumByRow(matrix) {\n  let sum = newArray(matrix.rows);\n  for (let i = 0; i < matrix.rows; ++i) {\n    for (let j = 0; j < matrix.columns; ++j) {\n      sum[i] += matrix.get(i, j);\n    }\n  }\n  return sum;\n}\n\nfunction sumByColumn(matrix) {\n  let sum = newArray(matrix.columns);\n  for (let i = 0; i < matrix.rows; ++i) {\n    for (let j = 0; j < matrix.columns; ++j) {\n      sum[j] += matrix.get(i, j);\n    }\n  }\n  return sum;\n}\n\nfunction sumAll(matrix) {\n  let v = 0;\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      v += matrix.get(i, j);\n    }\n  }\n  return v;\n}\n\nfunction productByRow(matrix) {\n  let sum = newArray(matrix.rows, 1);\n  for (let i = 0; i < matrix.rows; ++i) {\n    for (let j = 0; j < matrix.columns; ++j) {\n      sum[i] *= matrix.get(i, j);\n    }\n  }\n  return sum;\n}\n\nfunction productByColumn(matrix) {\n  let sum = newArray(matrix.columns, 1);\n  for (let i = 0; i < matrix.rows; ++i) {\n    for (let j = 0; j < matrix.columns; ++j) {\n      sum[j] *= matrix.get(i, j);\n    }\n  }\n  return sum;\n}\n\nfunction productAll(matrix) {\n  let v = 1;\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      v *= matrix.get(i, j);\n    }\n  }\n  return v;\n}\n\nfunction varianceByRow(matrix, unbiased, mean) {\n  const rows = matrix.rows;\n  const cols = matrix.columns;\n  const variance = [];\n\n  for (let i = 0; i < rows; i++) {\n    let sum1 = 0;\n    let sum2 = 0;\n    let x = 0;\n    for (let j = 0; j < cols; j++) {\n      x = matrix.get(i, j) - mean[i];\n      sum1 += x;\n      sum2 += x * x;\n    }\n    if (unbiased) {\n      variance.push((sum2 - (sum1 * sum1) / cols) / (cols - 1));\n    } else {\n      variance.push((sum2 - (sum1 * sum1) / cols) / cols);\n    }\n  }\n  return variance;\n}\n\nfunction varianceByColumn(matrix, unbiased, mean) {\n  const rows = matrix.rows;\n  const cols = matrix.columns;\n  const variance = [];\n\n  for (let j = 0; j < cols; j++) {\n    let sum1 = 0;\n    let sum2 = 0;\n    let x = 0;\n    for (let i = 0; i < rows; i++) {\n      x = matrix.get(i, j) - mean[j];\n      sum1 += x;\n      sum2 += x * x;\n    }\n    if (unbiased) {\n      variance.push((sum2 - (sum1 * sum1) / rows) / (rows - 1));\n    } else {\n      variance.push((sum2 - (sum1 * sum1) / rows) / rows);\n    }\n  }\n  return variance;\n}\n\nfunction varianceAll(matrix, unbiased, mean) {\n  const rows = matrix.rows;\n  const cols = matrix.columns;\n  const size = rows * cols;\n\n  let sum1 = 0;\n  let sum2 = 0;\n  let x = 0;\n  for (let i = 0; i < rows; i++) {\n    for (let j = 0; j < cols; j++) {\n      x = matrix.get(i, j) - mean;\n      sum1 += x;\n      sum2 += x * x;\n    }\n  }\n  if (unbiased) {\n    return (sum2 - (sum1 * sum1) / size) / (size - 1);\n  } else {\n    return (sum2 - (sum1 * sum1) / size) / size;\n  }\n}\n\nfunction centerByRow(matrix, mean) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) - mean[i]);\n    }\n  }\n}\n\nfunction centerByColumn(matrix, mean) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) - mean[j]);\n    }\n  }\n}\n\nfunction centerAll(matrix, mean) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) - mean);\n    }\n  }\n}\n\nfunction getScaleByRow(matrix) {\n  const scale = [];\n  for (let i = 0; i < matrix.rows; i++) {\n    let sum = 0;\n    for (let j = 0; j < matrix.columns; j++) {\n      sum += matrix.get(i, j) ** 2 / (matrix.columns - 1);\n    }\n    scale.push(Math.sqrt(sum));\n  }\n  return scale;\n}\n\nfunction scaleByRow(matrix, scale) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) / scale[i]);\n    }\n  }\n}\n\nfunction getScaleByColumn(matrix) {\n  const scale = [];\n  for (let j = 0; j < matrix.columns; j++) {\n    let sum = 0;\n    for (let i = 0; i < matrix.rows; i++) {\n      sum += matrix.get(i, j) ** 2 / (matrix.rows - 1);\n    }\n    scale.push(Math.sqrt(sum));\n  }\n  return scale;\n}\n\nfunction scaleByColumn(matrix, scale) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) / scale[j]);\n    }\n  }\n}\n\nfunction getScaleAll(matrix) {\n  const divider = matrix.size - 1;\n  let sum = 0;\n  for (let j = 0; j < matrix.columns; j++) {\n    for (let i = 0; i < matrix.rows; i++) {\n      sum += matrix.get(i, j) ** 2 / divider;\n    }\n  }\n  return Math.sqrt(sum);\n}\n\nfunction scaleAll(matrix, scale) {\n  for (let i = 0; i < matrix.rows; i++) {\n    for (let j = 0; j < matrix.columns; j++) {\n      matrix.set(i, j, matrix.get(i, j) / scale);\n    }\n  }\n}\n\nclass AbstractMatrix {\n  static from1DArray(newRows, newColumns, newData) {\n    let length = newRows * newColumns;\n    if (length !== newData.length) {\n      throw new RangeError('data length does not match given dimensions');\n    }\n    let newMatrix = new Matrix(newRows, newColumns);\n    for (let row = 0; row < newRows; row++) {\n      for (let column = 0; column < newColumns; column++) {\n        newMatrix.set(row, column, newData[row * newColumns + column]);\n      }\n    }\n    return newMatrix;\n  }\n\n  static rowVector(newData) {\n    let vector = new Matrix(1, newData.length);\n    for (let i = 0; i < newData.length; i++) {\n      vector.set(0, i, newData[i]);\n    }\n    return vector;\n  }\n\n  static columnVector(newData) {\n    let vector = new Matrix(newData.length, 1);\n    for (let i = 0; i < newData.length; i++) {\n      vector.set(i, 0, newData[i]);\n    }\n    return vector;\n  }\n\n  static zeros(rows, columns) {\n    return new Matrix(rows, columns);\n  }\n\n  static ones(rows, columns) {\n    return new Matrix(rows, columns).fill(1);\n  }\n\n  static rand(rows, columns, options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { random = Math.random } = options;\n    let matrix = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        matrix.set(i, j, random());\n      }\n    }\n    return matrix;\n  }\n\n  static randInt(rows, columns, options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { min = 0, max = 1000, random = Math.random } = options;\n    if (!Number.isInteger(min)) throw new TypeError('min must be an integer');\n    if (!Number.isInteger(max)) throw new TypeError('max must be an integer');\n    if (min >= max) throw new RangeError('min must be smaller than max');\n    let interval = max - min;\n    let matrix = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        let value = min + Math.round(random() * interval);\n        matrix.set(i, j, value);\n      }\n    }\n    return matrix;\n  }\n\n  static eye(rows, columns, value) {\n    if (columns === undefined) columns = rows;\n    if (value === undefined) value = 1;\n    let min = Math.min(rows, columns);\n    let matrix = this.zeros(rows, columns);\n    for (let i = 0; i < min; i++) {\n      matrix.set(i, i, value);\n    }\n    return matrix;\n  }\n\n  static diag(data, rows, columns) {\n    let l = data.length;\n    if (rows === undefined) rows = l;\n    if (columns === undefined) columns = rows;\n    let min = Math.min(l, rows, columns);\n    let matrix = this.zeros(rows, columns);\n    for (let i = 0; i < min; i++) {\n      matrix.set(i, i, data[i]);\n    }\n    return matrix;\n  }\n\n  static min(matrix1, matrix2) {\n    matrix1 = this.checkMatrix(matrix1);\n    matrix2 = this.checkMatrix(matrix2);\n    let rows = matrix1.rows;\n    let columns = matrix1.columns;\n    let result = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        result.set(i, j, Math.min(matrix1.get(i, j), matrix2.get(i, j)));\n      }\n    }\n    return result;\n  }\n\n  static max(matrix1, matrix2) {\n    matrix1 = this.checkMatrix(matrix1);\n    matrix2 = this.checkMatrix(matrix2);\n    let rows = matrix1.rows;\n    let columns = matrix1.columns;\n    let result = new this(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        result.set(i, j, Math.max(matrix1.get(i, j), matrix2.get(i, j)));\n      }\n    }\n    return result;\n  }\n\n  static checkMatrix(value) {\n    return AbstractMatrix.isMatrix(value) ? value : new Matrix(value);\n  }\n\n  static isMatrix(value) {\n    return value != null && value.klass === 'Matrix';\n  }\n\n  get size() {\n    return this.rows * this.columns;\n  }\n\n  apply(callback) {\n    if (typeof callback !== 'function') {\n      throw new TypeError('callback must be a function');\n    }\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        callback.call(this, i, j);\n      }\n    }\n    return this;\n  }\n\n  applyAlongAxis(callback, by) {\n    if (typeof callback !== 'function') {\n      throw new TypeError('callback must be a function');\n    }\n    const result = [];\n    switch (by) {\n      case 'row': {\n        for (let i = 0; i < this.rows; i++) {\n          result.push(callback.call(this, this.getRow(i), i));\n        }\n        break;\n      }\n      case 'column': {\n        for (let i = 0; i < this.columns; i++) {\n          result.push(callback.call(this, this.getColumn(i), i));\n        }\n        break;\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n    return result;\n  }\n\n  to1DArray() {\n    let array = [];\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        array.push(this.get(i, j));\n      }\n    }\n    return array;\n  }\n\n  to2DArray() {\n    let copy = [];\n    for (let i = 0; i < this.rows; i++) {\n      copy.push([]);\n      for (let j = 0; j < this.columns; j++) {\n        copy[i].push(this.get(i, j));\n      }\n    }\n    return copy;\n  }\n\n  toJSON() {\n    return this.to2DArray();\n  }\n\n  isRowVector() {\n    return this.rows === 1;\n  }\n\n  isColumnVector() {\n    return this.columns === 1;\n  }\n\n  isVector() {\n    return this.rows === 1 || this.columns === 1;\n  }\n\n  isSquare() {\n    return this.rows === this.columns;\n  }\n\n  isEmpty() {\n    return this.rows === 0 || this.columns === 0;\n  }\n\n  isSymmetric() {\n    if (this.isSquare()) {\n      for (let i = 0; i < this.rows; i++) {\n        for (let j = 0; j <= i; j++) {\n          if (this.get(i, j) !== this.get(j, i)) {\n            return false;\n          }\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n\n  isDistance() {\n    if (!this.isSymmetric()) return false;\n\n    for (let i = 0; i < this.rows; i++) {\n      if (this.get(i, i) !== 0) return false;\n    }\n\n    return true;\n  }\n\n  isEchelonForm() {\n    let i = 0;\n    let j = 0;\n    let previousColumn = -1;\n    let isEchelonForm = true;\n    let checked = false;\n    while (i < this.rows && isEchelonForm) {\n      j = 0;\n      checked = false;\n      while (j < this.columns && checked === false) {\n        if (this.get(i, j) === 0) {\n          j++;\n        } else if (this.get(i, j) === 1 && j > previousColumn) {\n          checked = true;\n          previousColumn = j;\n        } else {\n          isEchelonForm = false;\n          checked = true;\n        }\n      }\n      i++;\n    }\n    return isEchelonForm;\n  }\n\n  isReducedEchelonForm() {\n    let i = 0;\n    let j = 0;\n    let previousColumn = -1;\n    let isReducedEchelonForm = true;\n    let checked = false;\n    while (i < this.rows && isReducedEchelonForm) {\n      j = 0;\n      checked = false;\n      while (j < this.columns && checked === false) {\n        if (this.get(i, j) === 0) {\n          j++;\n        } else if (this.get(i, j) === 1 && j > previousColumn) {\n          checked = true;\n          previousColumn = j;\n        } else {\n          isReducedEchelonForm = false;\n          checked = true;\n        }\n      }\n      for (let k = j + 1; k < this.rows; k++) {\n        if (this.get(i, k) !== 0) {\n          isReducedEchelonForm = false;\n        }\n      }\n      i++;\n    }\n    return isReducedEchelonForm;\n  }\n\n  echelonForm() {\n    let result = this.clone();\n    let h = 0;\n    let k = 0;\n    while (h < result.rows && k < result.columns) {\n      let iMax = h;\n      for (let i = h; i < result.rows; i++) {\n        if (result.get(i, k) > result.get(iMax, k)) {\n          iMax = i;\n        }\n      }\n      if (result.get(iMax, k) === 0) {\n        k++;\n      } else {\n        result.swapRows(h, iMax);\n        let tmp = result.get(h, k);\n        for (let j = k; j < result.columns; j++) {\n          result.set(h, j, result.get(h, j) / tmp);\n        }\n        for (let i = h + 1; i < result.rows; i++) {\n          let factor = result.get(i, k) / result.get(h, k);\n          result.set(i, k, 0);\n          for (let j = k + 1; j < result.columns; j++) {\n            result.set(i, j, result.get(i, j) - result.get(h, j) * factor);\n          }\n        }\n        h++;\n        k++;\n      }\n    }\n    return result;\n  }\n\n  reducedEchelonForm() {\n    let result = this.echelonForm();\n    let m = result.columns;\n    let n = result.rows;\n    let h = n - 1;\n    while (h >= 0) {\n      if (result.maxRow(h) === 0) {\n        h--;\n      } else {\n        let p = 0;\n        let pivot = false;\n        while (p < n && pivot === false) {\n          if (result.get(h, p) === 1) {\n            pivot = true;\n          } else {\n            p++;\n          }\n        }\n        for (let i = 0; i < h; i++) {\n          let factor = result.get(i, p);\n          for (let j = p; j < m; j++) {\n            let tmp = result.get(i, j) - factor * result.get(h, j);\n            result.set(i, j, tmp);\n          }\n        }\n        h--;\n      }\n    }\n    return result;\n  }\n\n  set() {\n    throw new Error('set method is unimplemented');\n  }\n\n  get() {\n    throw new Error('get method is unimplemented');\n  }\n\n  repeat(options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { rows = 1, columns = 1 } = options;\n    if (!Number.isInteger(rows) || rows <= 0) {\n      throw new TypeError('rows must be a positive integer');\n    }\n    if (!Number.isInteger(columns) || columns <= 0) {\n      throw new TypeError('columns must be a positive integer');\n    }\n    let matrix = new Matrix(this.rows * rows, this.columns * columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        matrix.setSubMatrix(this, this.rows * i, this.columns * j);\n      }\n    }\n    return matrix;\n  }\n\n  fill(value) {\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, value);\n      }\n    }\n    return this;\n  }\n\n  neg() {\n    return this.mulS(-1);\n  }\n\n  getRow(index) {\n    checkRowIndex(this, index);\n    let row = [];\n    for (let i = 0; i < this.columns; i++) {\n      row.push(this.get(index, i));\n    }\n    return row;\n  }\n\n  getRowVector(index) {\n    return Matrix.rowVector(this.getRow(index));\n  }\n\n  setRow(index, array) {\n    checkRowIndex(this, index);\n    array = checkRowVector(this, array);\n    for (let i = 0; i < this.columns; i++) {\n      this.set(index, i, array[i]);\n    }\n    return this;\n  }\n\n  swapRows(row1, row2) {\n    checkRowIndex(this, row1);\n    checkRowIndex(this, row2);\n    for (let i = 0; i < this.columns; i++) {\n      let temp = this.get(row1, i);\n      this.set(row1, i, this.get(row2, i));\n      this.set(row2, i, temp);\n    }\n    return this;\n  }\n\n  getColumn(index) {\n    checkColumnIndex(this, index);\n    let column = [];\n    for (let i = 0; i < this.rows; i++) {\n      column.push(this.get(i, index));\n    }\n    return column;\n  }\n\n  getColumnVector(index) {\n    return Matrix.columnVector(this.getColumn(index));\n  }\n\n  setColumn(index, array) {\n    checkColumnIndex(this, index);\n    array = checkColumnVector(this, array);\n    for (let i = 0; i < this.rows; i++) {\n      this.set(i, index, array[i]);\n    }\n    return this;\n  }\n\n  swapColumns(column1, column2) {\n    checkColumnIndex(this, column1);\n    checkColumnIndex(this, column2);\n    for (let i = 0; i < this.rows; i++) {\n      let temp = this.get(i, column1);\n      this.set(i, column1, this.get(i, column2));\n      this.set(i, column2, temp);\n    }\n    return this;\n  }\n\n  addRowVector(vector) {\n    vector = checkRowVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) + vector[j]);\n      }\n    }\n    return this;\n  }\n\n  subRowVector(vector) {\n    vector = checkRowVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) - vector[j]);\n      }\n    }\n    return this;\n  }\n\n  mulRowVector(vector) {\n    vector = checkRowVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) * vector[j]);\n      }\n    }\n    return this;\n  }\n\n  divRowVector(vector) {\n    vector = checkRowVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) / vector[j]);\n      }\n    }\n    return this;\n  }\n\n  addColumnVector(vector) {\n    vector = checkColumnVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) + vector[i]);\n      }\n    }\n    return this;\n  }\n\n  subColumnVector(vector) {\n    vector = checkColumnVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) - vector[i]);\n      }\n    }\n    return this;\n  }\n\n  mulColumnVector(vector) {\n    vector = checkColumnVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) * vector[i]);\n      }\n    }\n    return this;\n  }\n\n  divColumnVector(vector) {\n    vector = checkColumnVector(this, vector);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        this.set(i, j, this.get(i, j) / vector[i]);\n      }\n    }\n    return this;\n  }\n\n  mulRow(index, value) {\n    checkRowIndex(this, index);\n    for (let i = 0; i < this.columns; i++) {\n      this.set(index, i, this.get(index, i) * value);\n    }\n    return this;\n  }\n\n  mulColumn(index, value) {\n    checkColumnIndex(this, index);\n    for (let i = 0; i < this.rows; i++) {\n      this.set(i, index, this.get(i, index) * value);\n    }\n    return this;\n  }\n\n  max(by) {\n    if (this.isEmpty()) {\n      return NaN;\n    }\n    switch (by) {\n      case 'row': {\n        const max = new Array(this.rows).fill(Number.NEGATIVE_INFINITY);\n        for (let row = 0; row < this.rows; row++) {\n          for (let column = 0; column < this.columns; column++) {\n            if (this.get(row, column) > max[row]) {\n              max[row] = this.get(row, column);\n            }\n          }\n        }\n        return max;\n      }\n      case 'column': {\n        const max = new Array(this.columns).fill(Number.NEGATIVE_INFINITY);\n        for (let row = 0; row < this.rows; row++) {\n          for (let column = 0; column < this.columns; column++) {\n            if (this.get(row, column) > max[column]) {\n              max[column] = this.get(row, column);\n            }\n          }\n        }\n        return max;\n      }\n      case undefined: {\n        let max = this.get(0, 0);\n        for (let row = 0; row < this.rows; row++) {\n          for (let column = 0; column < this.columns; column++) {\n            if (this.get(row, column) > max) {\n              max = this.get(row, column);\n            }\n          }\n        }\n        return max;\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  maxIndex() {\n    checkNonEmpty(this);\n    let v = this.get(0, 0);\n    let idx = [0, 0];\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        if (this.get(i, j) > v) {\n          v = this.get(i, j);\n          idx[0] = i;\n          idx[1] = j;\n        }\n      }\n    }\n    return idx;\n  }\n\n  min(by) {\n    if (this.isEmpty()) {\n      return NaN;\n    }\n\n    switch (by) {\n      case 'row': {\n        const min = new Array(this.rows).fill(Number.POSITIVE_INFINITY);\n        for (let row = 0; row < this.rows; row++) {\n          for (let column = 0; column < this.columns; column++) {\n            if (this.get(row, column) < min[row]) {\n              min[row] = this.get(row, column);\n            }\n          }\n        }\n        return min;\n      }\n      case 'column': {\n        const min = new Array(this.columns).fill(Number.POSITIVE_INFINITY);\n        for (let row = 0; row < this.rows; row++) {\n          for (let column = 0; column < this.columns; column++) {\n            if (this.get(row, column) < min[column]) {\n              min[column] = this.get(row, column);\n            }\n          }\n        }\n        return min;\n      }\n      case undefined: {\n        let min = this.get(0, 0);\n        for (let row = 0; row < this.rows; row++) {\n          for (let column = 0; column < this.columns; column++) {\n            if (this.get(row, column) < min) {\n              min = this.get(row, column);\n            }\n          }\n        }\n        return min;\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  minIndex() {\n    checkNonEmpty(this);\n    let v = this.get(0, 0);\n    let idx = [0, 0];\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        if (this.get(i, j) < v) {\n          v = this.get(i, j);\n          idx[0] = i;\n          idx[1] = j;\n        }\n      }\n    }\n    return idx;\n  }\n\n  maxRow(row) {\n    checkRowIndex(this, row);\n    if (this.isEmpty()) {\n      return NaN;\n    }\n    let v = this.get(row, 0);\n    for (let i = 1; i < this.columns; i++) {\n      if (this.get(row, i) > v) {\n        v = this.get(row, i);\n      }\n    }\n    return v;\n  }\n\n  maxRowIndex(row) {\n    checkRowIndex(this, row);\n    checkNonEmpty(this);\n    let v = this.get(row, 0);\n    let idx = [row, 0];\n    for (let i = 1; i < this.columns; i++) {\n      if (this.get(row, i) > v) {\n        v = this.get(row, i);\n        idx[1] = i;\n      }\n    }\n    return idx;\n  }\n\n  minRow(row) {\n    checkRowIndex(this, row);\n    if (this.isEmpty()) {\n      return NaN;\n    }\n    let v = this.get(row, 0);\n    for (let i = 1; i < this.columns; i++) {\n      if (this.get(row, i) < v) {\n        v = this.get(row, i);\n      }\n    }\n    return v;\n  }\n\n  minRowIndex(row) {\n    checkRowIndex(this, row);\n    checkNonEmpty(this);\n    let v = this.get(row, 0);\n    let idx = [row, 0];\n    for (let i = 1; i < this.columns; i++) {\n      if (this.get(row, i) < v) {\n        v = this.get(row, i);\n        idx[1] = i;\n      }\n    }\n    return idx;\n  }\n\n  maxColumn(column) {\n    checkColumnIndex(this, column);\n    if (this.isEmpty()) {\n      return NaN;\n    }\n    let v = this.get(0, column);\n    for (let i = 1; i < this.rows; i++) {\n      if (this.get(i, column) > v) {\n        v = this.get(i, column);\n      }\n    }\n    return v;\n  }\n\n  maxColumnIndex(column) {\n    checkColumnIndex(this, column);\n    checkNonEmpty(this);\n    let v = this.get(0, column);\n    let idx = [0, column];\n    for (let i = 1; i < this.rows; i++) {\n      if (this.get(i, column) > v) {\n        v = this.get(i, column);\n        idx[0] = i;\n      }\n    }\n    return idx;\n  }\n\n  minColumn(column) {\n    checkColumnIndex(this, column);\n    if (this.isEmpty()) {\n      return NaN;\n    }\n    let v = this.get(0, column);\n    for (let i = 1; i < this.rows; i++) {\n      if (this.get(i, column) < v) {\n        v = this.get(i, column);\n      }\n    }\n    return v;\n  }\n\n  minColumnIndex(column) {\n    checkColumnIndex(this, column);\n    checkNonEmpty(this);\n    let v = this.get(0, column);\n    let idx = [0, column];\n    for (let i = 1; i < this.rows; i++) {\n      if (this.get(i, column) < v) {\n        v = this.get(i, column);\n        idx[0] = i;\n      }\n    }\n    return idx;\n  }\n\n  diag() {\n    let min = Math.min(this.rows, this.columns);\n    let diag = [];\n    for (let i = 0; i < min; i++) {\n      diag.push(this.get(i, i));\n    }\n    return diag;\n  }\n\n  norm(type = 'frobenius') {\n    switch (type) {\n      case 'max':\n        return this.max();\n      case 'frobenius':\n        return Math.sqrt(this.dot(this));\n      default:\n        throw new RangeError(`unknown norm type: ${type}`);\n    }\n  }\n\n  cumulativeSum() {\n    let sum = 0;\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        sum += this.get(i, j);\n        this.set(i, j, sum);\n      }\n    }\n    return this;\n  }\n\n  dot(vector2) {\n    if (AbstractMatrix.isMatrix(vector2)) vector2 = vector2.to1DArray();\n    let vector1 = this.to1DArray();\n    if (vector1.length !== vector2.length) {\n      throw new RangeError('vectors do not have the same size');\n    }\n    let dot = 0;\n    for (let i = 0; i < vector1.length; i++) {\n      dot += vector1[i] * vector2[i];\n    }\n    return dot;\n  }\n\n  mmul(other) {\n    other = Matrix.checkMatrix(other);\n\n    let m = this.rows;\n    let n = this.columns;\n    let p = other.columns;\n\n    let result = new Matrix(m, p);\n\n    let Bcolj = new Float64Array(n);\n    for (let j = 0; j < p; j++) {\n      for (let k = 0; k < n; k++) {\n        Bcolj[k] = other.get(k, j);\n      }\n\n      for (let i = 0; i < m; i++) {\n        let s = 0;\n        for (let k = 0; k < n; k++) {\n          s += this.get(i, k) * Bcolj[k];\n        }\n\n        result.set(i, j, s);\n      }\n    }\n    return result;\n  }\n\n  gram() {\n    const rows = this.rows;\n    const n = this.columns;\n\n    // The Gram matrix `thisᵀ · this` is symmetric, so only its upper triangle is\n    // accumulated (then mirrored) and the transpose is never materialized.\n    // Row-streaming rank-1 updates read each row of `this` contiguously and skip\n    // zero entries, so the cost scales with the number of non-zeros: it is as\n    // fast as the dense version on dense matrices (the skip never fires) and far\n    // faster on sparse ones.\n    const gramData = new Float64Array(n * n);\n    for (let r = 0; r < rows; r++) {\n      for (let i = 0; i < n; i++) {\n        const value = this.get(r, i);\n        if (value === 0) continue;\n        const offset = i * n;\n        for (let j = i; j < n; j++) {\n          gramData[offset + j] += value * this.get(r, j);\n        }\n      }\n    }\n\n    const result = new Matrix(n, n);\n    for (let i = 0; i < n; i++) {\n      const offset = i * n;\n      for (let j = i; j < n; j++) {\n        const value = gramData[offset + j];\n        result.set(i, j, value);\n        result.set(j, i, value);\n      }\n    }\n    return result;\n  }\n\n  transposeMultiply(other) {\n    other = Matrix.checkMatrix(other);\n    if (this.rows !== other.rows) {\n      throw new RangeError(\n        'the number of rows of the two matrices must be equal',\n      );\n    }\n    const n = this.columns;\n    const p = other.columns;\n\n    const result = new Matrix(n, p);\n    const otherRow = new Float64Array(p);\n    for (let r = 0; r < this.rows; r++) {\n      for (let j = 0; j < p; j++) {\n        otherRow[j] = other.get(r, j);\n      }\n      for (let i = 0; i < n; i++) {\n        const value = this.get(r, i);\n        if (value === 0) continue;\n        const resultRow = result.data[i];\n        for (let j = 0; j < p; j++) {\n          resultRow[j] += value * otherRow[j];\n        }\n      }\n    }\n    return result;\n  }\n\n  mmulByTranspose(scale) {\n    let m = this.rows;\n    let n = this.columns;\n\n    if (scale !== undefined && scale.length !== n) {\n      throw new RangeError('scale must have one value per column');\n    }\n\n    let result = new Matrix(m, m);\n\n    // result = this · diag(scale) · thisᵀ is symmetric, so only the upper\n    // triangle is computed and mirrored, and the transpose is never\n    // materialized. `scale` (one factor per column) is folded into one operand.\n    let rowj = new Float64Array(n);\n    for (let j = 0; j < m; j++) {\n      if (scale === undefined) {\n        for (let k = 0; k < n; k++) {\n          rowj[k] = this.get(j, k);\n        }\n      } else {\n        for (let k = 0; k < n; k++) {\n          rowj[k] = scale[k] * this.get(j, k);\n        }\n      }\n\n      for (let i = j; i < m; i++) {\n        let s = 0;\n        for (let k = 0; k < n; k++) {\n          s += this.get(i, k) * rowj[k];\n        }\n\n        result.set(i, j, s);\n        result.set(j, i, s);\n      }\n    }\n    return result;\n  }\n\n  mpow(scalar) {\n    if (!this.isSquare()) {\n      throw new RangeError('Matrix must be square');\n    }\n    if (!Number.isInteger(scalar) || scalar < 0) {\n      throw new RangeError('Exponent must be a non-negative integer');\n    }\n    // Russian Peasant exponentiation, i.e. exponentiation by squaring\n    let result = Matrix.eye(this.rows);\n    let bb = this;\n    // Note: Don't bit shift. In JS, that would truncate at 32 bits\n    for (let e = scalar; e >= 1; e /= 2) {\n      if ((e & 1) !== 0) {\n        result = result.mmul(bb);\n      }\n      bb = bb.mmul(bb);\n    }\n    return result;\n  }\n\n  strassen2x2(other) {\n    other = Matrix.checkMatrix(other);\n    let result = new Matrix(2, 2);\n    const a11 = this.get(0, 0);\n    const b11 = other.get(0, 0);\n    const a12 = this.get(0, 1);\n    const b12 = other.get(0, 1);\n    const a21 = this.get(1, 0);\n    const b21 = other.get(1, 0);\n    const a22 = this.get(1, 1);\n    const b22 = other.get(1, 1);\n\n    // Compute intermediate values.\n    const m1 = (a11 + a22) * (b11 + b22);\n    const m2 = (a21 + a22) * b11;\n    const m3 = a11 * (b12 - b22);\n    const m4 = a22 * (b21 - b11);\n    const m5 = (a11 + a12) * b22;\n    const m6 = (a21 - a11) * (b11 + b12);\n    const m7 = (a12 - a22) * (b21 + b22);\n\n    // Combine intermediate values into the output.\n    const c00 = m1 + m4 - m5 + m7;\n    const c01 = m3 + m5;\n    const c10 = m2 + m4;\n    const c11 = m1 - m2 + m3 + m6;\n\n    result.set(0, 0, c00);\n    result.set(0, 1, c01);\n    result.set(1, 0, c10);\n    result.set(1, 1, c11);\n    return result;\n  }\n\n  strassen3x3(other) {\n    other = Matrix.checkMatrix(other);\n    let result = new Matrix(3, 3);\n\n    const a00 = this.get(0, 0);\n    const a01 = this.get(0, 1);\n    const a02 = this.get(0, 2);\n    const a10 = this.get(1, 0);\n    const a11 = this.get(1, 1);\n    const a12 = this.get(1, 2);\n    const a20 = this.get(2, 0);\n    const a21 = this.get(2, 1);\n    const a22 = this.get(2, 2);\n\n    const b00 = other.get(0, 0);\n    const b01 = other.get(0, 1);\n    const b02 = other.get(0, 2);\n    const b10 = other.get(1, 0);\n    const b11 = other.get(1, 1);\n    const b12 = other.get(1, 2);\n    const b20 = other.get(2, 0);\n    const b21 = other.get(2, 1);\n    const b22 = other.get(2, 2);\n\n    const m1 = (a00 + a01 + a02 - a10 - a11 - a21 - a22) * b11;\n    const m2 = (a00 - a10) * (-b01 + b11);\n    const m3 = a11 * (-b00 + b01 + b10 - b11 - b12 - b20 + b22);\n    const m4 = (-a00 + a10 + a11) * (b00 - b01 + b11);\n    const m5 = (a10 + a11) * (-b00 + b01);\n    const m6 = a00 * b00;\n    const m7 = (-a00 + a20 + a21) * (b00 - b02 + b12);\n    const m8 = (-a00 + a20) * (b02 - b12);\n    const m9 = (a20 + a21) * (-b00 + b02);\n    const m10 = (a00 + a01 + a02 - a11 - a12 - a20 - a21) * b12;\n    const m11 = a21 * (-b00 + b02 + b10 - b11 - b12 - b20 + b21);\n    const m12 = (-a02 + a21 + a22) * (b11 + b20 - b21);\n    const m13 = (a02 - a22) * (b11 - b21);\n    const m14 = a02 * b20;\n    const m15 = (a21 + a22) * (-b20 + b21);\n    const m16 = (-a02 + a11 + a12) * (b12 + b20 - b22);\n    const m17 = (a02 - a12) * (b12 - b22);\n    const m18 = (a11 + a12) * (-b20 + b22);\n    const m19 = a01 * b10;\n    const m20 = a12 * b21;\n    const m21 = a10 * b02;\n    const m22 = a20 * b01;\n    const m23 = a22 * b22;\n\n    const c00 = m6 + m14 + m19;\n    const c01 = m1 + m4 + m5 + m6 + m12 + m14 + m15;\n    const c02 = m6 + m7 + m9 + m10 + m14 + m16 + m18;\n    const c10 = m2 + m3 + m4 + m6 + m14 + m16 + m17;\n    const c11 = m2 + m4 + m5 + m6 + m20;\n    const c12 = m14 + m16 + m17 + m18 + m21;\n    const c20 = m6 + m7 + m8 + m11 + m12 + m13 + m14;\n    const c21 = m12 + m13 + m14 + m15 + m22;\n    const c22 = m6 + m7 + m8 + m9 + m23;\n\n    result.set(0, 0, c00);\n    result.set(0, 1, c01);\n    result.set(0, 2, c02);\n    result.set(1, 0, c10);\n    result.set(1, 1, c11);\n    result.set(1, 2, c12);\n    result.set(2, 0, c20);\n    result.set(2, 1, c21);\n    result.set(2, 2, c22);\n    return result;\n  }\n\n  mmulStrassen(y) {\n    y = Matrix.checkMatrix(y);\n    let x = this.clone();\n    let r1 = x.rows;\n    let c1 = x.columns;\n    let r2 = y.rows;\n    let c2 = y.columns;\n    if (c1 !== r2) {\n      // eslint-disable-next-line no-console\n      console.warn(\n        `Multiplying ${r1} x ${c1} and ${r2} x ${c2} matrix: dimensions do not match.`,\n      );\n    }\n\n    // Put a matrix into the top left of a matrix of zeros.\n    // `rows` and `cols` are the dimensions of the output matrix.\n    function embed(mat, rows, cols) {\n      let r = mat.rows;\n      let c = mat.columns;\n      if (r === rows && c === cols) {\n        return mat;\n      } else {\n        let resultat = AbstractMatrix.zeros(rows, cols);\n        resultat = resultat.setSubMatrix(mat, 0, 0);\n        return resultat;\n      }\n    }\n\n    // Make sure both matrices are the same size.\n    // This is exclusively for simplicity:\n    // this algorithm can be implemented with matrices of different sizes.\n\n    let r = Math.max(r1, r2);\n    let c = Math.max(c1, c2);\n    x = embed(x, r, c);\n    y = embed(y, r, c);\n\n    // Our recursive multiplication function.\n    function blockMult(a, b, rows, cols) {\n      // For small matrices, resort to naive multiplication.\n      if (rows <= 512 || cols <= 512) {\n        return a.mmul(b); // a is equivalent to this\n      }\n\n      // Apply dynamic padding.\n      if (rows % 2 === 1 && cols % 2 === 1) {\n        a = embed(a, rows + 1, cols + 1);\n        b = embed(b, rows + 1, cols + 1);\n      } else if (rows % 2 === 1) {\n        a = embed(a, rows + 1, cols);\n        b = embed(b, rows + 1, cols);\n      } else if (cols % 2 === 1) {\n        a = embed(a, rows, cols + 1);\n        b = embed(b, rows, cols + 1);\n      }\n\n      let halfRows = parseInt(a.rows / 2, 10);\n      let halfCols = parseInt(a.columns / 2, 10);\n      // Subdivide input matrices.\n      let a11 = a.subMatrix(0, halfRows - 1, 0, halfCols - 1);\n      let b11 = b.subMatrix(0, halfRows - 1, 0, halfCols - 1);\n\n      let a12 = a.subMatrix(0, halfRows - 1, halfCols, a.columns - 1);\n      let b12 = b.subMatrix(0, halfRows - 1, halfCols, b.columns - 1);\n\n      let a21 = a.subMatrix(halfRows, a.rows - 1, 0, halfCols - 1);\n      let b21 = b.subMatrix(halfRows, b.rows - 1, 0, halfCols - 1);\n\n      let a22 = a.subMatrix(halfRows, a.rows - 1, halfCols, a.columns - 1);\n      let b22 = b.subMatrix(halfRows, b.rows - 1, halfCols, b.columns - 1);\n\n      // Compute intermediate values.\n      let m1 = blockMult(\n        AbstractMatrix.add(a11, a22),\n        AbstractMatrix.add(b11, b22),\n        halfRows,\n        halfCols,\n      );\n      let m2 = blockMult(AbstractMatrix.add(a21, a22), b11, halfRows, halfCols);\n      let m3 = blockMult(a11, AbstractMatrix.sub(b12, b22), halfRows, halfCols);\n      let m4 = blockMult(a22, AbstractMatrix.sub(b21, b11), halfRows, halfCols);\n      let m5 = blockMult(AbstractMatrix.add(a11, a12), b22, halfRows, halfCols);\n      let m6 = blockMult(\n        AbstractMatrix.sub(a21, a11),\n        AbstractMatrix.add(b11, b12),\n        halfRows,\n        halfCols,\n      );\n      let m7 = blockMult(\n        AbstractMatrix.sub(a12, a22),\n        AbstractMatrix.add(b21, b22),\n        halfRows,\n        halfCols,\n      );\n\n      // Combine intermediate values into the output.\n      let c11 = AbstractMatrix.add(m1, m4);\n      c11.sub(m5);\n      c11.add(m7);\n      let c12 = AbstractMatrix.add(m3, m5);\n      let c21 = AbstractMatrix.add(m2, m4);\n      let c22 = AbstractMatrix.sub(m1, m2);\n      c22.add(m3);\n      c22.add(m6);\n\n      // Crop output to the desired size (undo dynamic padding).\n      let result = AbstractMatrix.zeros(2 * c11.rows, 2 * c11.columns);\n      result = result.setSubMatrix(c11, 0, 0);\n      result = result.setSubMatrix(c12, c11.rows, 0);\n      result = result.setSubMatrix(c21, 0, c11.columns);\n      result = result.setSubMatrix(c22, c11.rows, c11.columns);\n      return result.subMatrix(0, rows - 1, 0, cols - 1);\n    }\n\n    return blockMult(x, y, r, c);\n  }\n\n  scaleRows(options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { min = 0, max = 1 } = options;\n    if (!Number.isFinite(min)) throw new TypeError('min must be a number');\n    if (!Number.isFinite(max)) throw new TypeError('max must be a number');\n    if (min >= max) throw new RangeError('min must be smaller than max');\n    let newMatrix = new Matrix(this.rows, this.columns);\n    for (let i = 0; i < this.rows; i++) {\n      const row = this.getRow(i);\n      if (row.length > 0) {\n        rescale(row, { min, max, output: row });\n      }\n      newMatrix.setRow(i, row);\n    }\n    return newMatrix;\n  }\n\n  scaleColumns(options = {}) {\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { min = 0, max = 1 } = options;\n    if (!Number.isFinite(min)) throw new TypeError('min must be a number');\n    if (!Number.isFinite(max)) throw new TypeError('max must be a number');\n    if (min >= max) throw new RangeError('min must be smaller than max');\n    let newMatrix = new Matrix(this.rows, this.columns);\n    for (let i = 0; i < this.columns; i++) {\n      const column = this.getColumn(i);\n      if (column.length) {\n        rescale(column, {\n          min,\n          max,\n          output: column,\n        });\n      }\n      newMatrix.setColumn(i, column);\n    }\n    return newMatrix;\n  }\n\n  flipRows() {\n    const middle = Math.ceil(this.columns / 2);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < middle; j++) {\n        let first = this.get(i, j);\n        let last = this.get(i, this.columns - 1 - j);\n        this.set(i, j, last);\n        this.set(i, this.columns - 1 - j, first);\n      }\n    }\n    return this;\n  }\n\n  flipColumns() {\n    const middle = Math.ceil(this.rows / 2);\n    for (let j = 0; j < this.columns; j++) {\n      for (let i = 0; i < middle; i++) {\n        let first = this.get(i, j);\n        let last = this.get(this.rows - 1 - i, j);\n        this.set(i, j, last);\n        this.set(this.rows - 1 - i, j, first);\n      }\n    }\n    return this;\n  }\n\n  kroneckerProduct(other) {\n    other = Matrix.checkMatrix(other);\n\n    let m = this.rows;\n    let n = this.columns;\n    let p = other.rows;\n    let q = other.columns;\n\n    let result = new Matrix(m * p, n * q);\n    for (let i = 0; i < m; i++) {\n      for (let j = 0; j < n; j++) {\n        for (let k = 0; k < p; k++) {\n          for (let l = 0; l < q; l++) {\n            result.set(p * i + k, q * j + l, this.get(i, j) * other.get(k, l));\n          }\n        }\n      }\n    }\n    return result;\n  }\n\n  kroneckerSum(other) {\n    other = Matrix.checkMatrix(other);\n    if (!this.isSquare() || !other.isSquare()) {\n      throw new Error('Kronecker Sum needs two Square Matrices');\n    }\n    let m = this.rows;\n    let n = other.rows;\n    let AxI = this.kroneckerProduct(Matrix.eye(n, n));\n    let IxB = Matrix.eye(m, m).kroneckerProduct(other);\n    return AxI.add(IxB);\n  }\n\n  transpose() {\n    let result = new Matrix(this.columns, this.rows);\n    for (let i = 0; i < this.rows; i++) {\n      for (let j = 0; j < this.columns; j++) {\n        result.set(j, i, this.get(i, j));\n      }\n    }\n    return result;\n  }\n\n  sortRows(compareFunction = compareNumbers) {\n    for (let i = 0; i < this.rows; i++) {\n      this.setRow(i, this.getRow(i).sort(compareFunction));\n    }\n    return this;\n  }\n\n  sortColumns(compareFunction = compareNumbers) {\n    for (let i = 0; i < this.columns; i++) {\n      this.setColumn(i, this.getColumn(i).sort(compareFunction));\n    }\n    return this;\n  }\n\n  subMatrix(startRow, endRow, startColumn, endColumn) {\n    checkRange(this, startRow, endRow, startColumn, endColumn);\n    let newMatrix = new Matrix(\n      endRow - startRow + 1,\n      endColumn - startColumn + 1,\n    );\n    for (let i = startRow; i <= endRow; i++) {\n      for (let j = startColumn; j <= endColumn; j++) {\n        newMatrix.set(i - startRow, j - startColumn, this.get(i, j));\n      }\n    }\n    return newMatrix;\n  }\n\n  subMatrixRow(indices, startColumn, endColumn) {\n    if (startColumn === undefined) startColumn = 0;\n    if (endColumn === undefined) endColumn = this.columns - 1;\n    if (\n      startColumn > endColumn ||\n      startColumn < 0 ||\n      startColumn >= this.columns ||\n      endColumn < 0 ||\n      endColumn >= this.columns\n    ) {\n      throw new RangeError('Argument out of range');\n    }\n\n    let newMatrix = new Matrix(indices.length, endColumn - startColumn + 1);\n    for (let i = 0; i < indices.length; i++) {\n      for (let j = startColumn; j <= endColumn; j++) {\n        if (indices[i] < 0 || indices[i] >= this.rows) {\n          throw new RangeError(`Row index out of range: ${indices[i]}`);\n        }\n        newMatrix.set(i, j - startColumn, this.get(indices[i], j));\n      }\n    }\n    return newMatrix;\n  }\n\n  subMatrixColumn(indices, startRow, endRow) {\n    if (startRow === undefined) startRow = 0;\n    if (endRow === undefined) endRow = this.rows - 1;\n    if (\n      startRow > endRow ||\n      startRow < 0 ||\n      startRow >= this.rows ||\n      endRow < 0 ||\n      endRow >= this.rows\n    ) {\n      throw new RangeError('Argument out of range');\n    }\n\n    let newMatrix = new Matrix(endRow - startRow + 1, indices.length);\n    for (let i = 0; i < indices.length; i++) {\n      for (let j = startRow; j <= endRow; j++) {\n        if (indices[i] < 0 || indices[i] >= this.columns) {\n          throw new RangeError(`Column index out of range: ${indices[i]}`);\n        }\n        newMatrix.set(j - startRow, i, this.get(j, indices[i]));\n      }\n    }\n    return newMatrix;\n  }\n\n  setSubMatrix(matrix, startRow, startColumn) {\n    matrix = Matrix.checkMatrix(matrix);\n    if (matrix.isEmpty()) {\n      return this;\n    }\n    let endRow = startRow + matrix.rows - 1;\n    let endColumn = startColumn + matrix.columns - 1;\n    checkRange(this, startRow, endRow, startColumn, endColumn);\n    for (let i = 0; i < matrix.rows; i++) {\n      for (let j = 0; j < matrix.columns; j++) {\n        this.set(startRow + i, startColumn + j, matrix.get(i, j));\n      }\n    }\n    return this;\n  }\n\n  concat(other, by = 'row') {\n    other = Matrix.checkMatrix(other);\n    switch (by) {\n      case 'row': {\n        if (this.columns !== other.columns) {\n          throw new RangeError(\n            'both matrices must have the same number of columns',\n          );\n        }\n        const result = new Matrix(this.rows + other.rows, this.columns);\n        result.setSubMatrix(this, 0, 0);\n        result.setSubMatrix(other, this.rows, 0);\n        return result;\n      }\n      case 'column': {\n        if (this.rows !== other.rows) {\n          throw new RangeError(\n            'both matrices must have the same number of rows',\n          );\n        }\n        const result = new Matrix(this.rows, this.columns + other.columns);\n        result.setSubMatrix(this, 0, 0);\n        result.setSubMatrix(other, 0, this.columns);\n        return result;\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  selection(rowIndices, columnIndices) {\n    checkRowIndices(this, rowIndices);\n    checkColumnIndices(this, columnIndices);\n    let newMatrix = new Matrix(rowIndices.length, columnIndices.length);\n    for (let i = 0; i < rowIndices.length; i++) {\n      let rowIndex = rowIndices[i];\n      for (let j = 0; j < columnIndices.length; j++) {\n        let columnIndex = columnIndices[j];\n        newMatrix.set(i, j, this.get(rowIndex, columnIndex));\n      }\n    }\n    return newMatrix;\n  }\n\n  trace() {\n    let min = Math.min(this.rows, this.columns);\n    let trace = 0;\n    for (let i = 0; i < min; i++) {\n      trace += this.get(i, i);\n    }\n    return trace;\n  }\n\n  clone() {\n    return this.constructor.copy(this, new Matrix(this.rows, this.columns));\n  }\n\n  /**\n   * @template {AbstractMatrix} M\n   * @param {AbstractMatrix} from\n   * @param {M} to\n   * @return {M}\n   */\n  static copy(from, to) {\n    for (const [row, column, value] of from.entries()) {\n      to.set(row, column, value);\n    }\n\n    return to;\n  }\n\n  sum(by) {\n    switch (by) {\n      case 'row':\n        return sumByRow(this);\n      case 'column':\n        return sumByColumn(this);\n      case undefined:\n        return sumAll(this);\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  product(by) {\n    switch (by) {\n      case 'row':\n        return productByRow(this);\n      case 'column':\n        return productByColumn(this);\n      case undefined:\n        return productAll(this);\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  mean(by) {\n    const sum = this.sum(by);\n    switch (by) {\n      case 'row': {\n        for (let i = 0; i < this.rows; i++) {\n          sum[i] /= this.columns;\n        }\n        return sum;\n      }\n      case 'column': {\n        for (let i = 0; i < this.columns; i++) {\n          sum[i] /= this.rows;\n        }\n        return sum;\n      }\n      case undefined:\n        return sum / this.size;\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  variance(by, options = {}) {\n    if (typeof by === 'object') {\n      options = by;\n      by = undefined;\n    }\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { unbiased = true, mean = this.mean(by) } = options;\n    if (typeof unbiased !== 'boolean') {\n      throw new TypeError('unbiased must be a boolean');\n    }\n    switch (by) {\n      case 'row': {\n        if (!isAnyArray(mean)) {\n          throw new TypeError('mean must be an array');\n        }\n        return varianceByRow(this, unbiased, mean);\n      }\n      case 'column': {\n        if (!isAnyArray(mean)) {\n          throw new TypeError('mean must be an array');\n        }\n        return varianceByColumn(this, unbiased, mean);\n      }\n      case undefined: {\n        if (typeof mean !== 'number') {\n          throw new TypeError('mean must be a number');\n        }\n        return varianceAll(this, unbiased, mean);\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  standardDeviation(by, options) {\n    if (typeof by === 'object') {\n      options = by;\n      by = undefined;\n    }\n    const variance = this.variance(by, options);\n    if (by === undefined) {\n      return Math.sqrt(variance);\n    } else {\n      for (let i = 0; i < variance.length; i++) {\n        variance[i] = Math.sqrt(variance[i]);\n      }\n      return variance;\n    }\n  }\n\n  center(by, options = {}) {\n    if (typeof by === 'object') {\n      options = by;\n      by = undefined;\n    }\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    const { center = this.mean(by) } = options;\n    switch (by) {\n      case 'row': {\n        if (!isAnyArray(center)) {\n          throw new TypeError('center must be an array');\n        }\n        centerByRow(this, center);\n        return this;\n      }\n      case 'column': {\n        if (!isAnyArray(center)) {\n          throw new TypeError('center must be an array');\n        }\n        centerByColumn(this, center);\n        return this;\n      }\n      case undefined: {\n        if (typeof center !== 'number') {\n          throw new TypeError('center must be a number');\n        }\n        centerAll(this, center);\n        return this;\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  scale(by, options = {}) {\n    if (typeof by === 'object') {\n      options = by;\n      by = undefined;\n    }\n    if (typeof options !== 'object') {\n      throw new TypeError('options must be an object');\n    }\n    let scale = options.scale;\n    switch (by) {\n      case 'row': {\n        if (scale === undefined) {\n          scale = getScaleByRow(this);\n        } else if (!isAnyArray(scale)) {\n          throw new TypeError('scale must be an array');\n        }\n        scaleByRow(this, scale);\n        return this;\n      }\n      case 'column': {\n        if (scale === undefined) {\n          scale = getScaleByColumn(this);\n        } else if (!isAnyArray(scale)) {\n          throw new TypeError('scale must be an array');\n        }\n        scaleByColumn(this, scale);\n        return this;\n      }\n      case undefined: {\n        if (scale === undefined) {\n          scale = getScaleAll(this);\n        } else if (typeof scale !== 'number') {\n          throw new TypeError('scale must be a number');\n        }\n        scaleAll(this, scale);\n        return this;\n      }\n      default:\n        throw new Error(`invalid option: ${by}`);\n    }\n  }\n\n  toString(options) {\n    return inspectMatrixWithOptions(this, options);\n  }\n\n  [Symbol.iterator]() {\n    return this.entries();\n  }\n\n  /**\n   * iterator from left to right, from top to bottom\n   * yield [row, column, value]\n   * @returns {Generator<[number, number, number], void, void>}\n   */\n  *entries() {\n    for (let row = 0; row < this.rows; row++) {\n      for (let col = 0; col < this.columns; col++) {\n        yield [row, col, this.get(row, col)];\n      }\n    }\n  }\n\n  /**\n   * iterator from left to right, from top to bottom\n   * yield value\n   * @returns {Generator<number, void, void>}\n   */\n  *values() {\n    for (let row = 0; row < this.rows; row++) {\n      for (let col = 0; col < this.columns; col++) {\n        yield this.get(row, col);\n      }\n    }\n  }\n}\n\nAbstractMatrix.prototype.klass = 'Matrix';\nif (typeof Symbol !== 'undefined') {\n  AbstractMatrix.prototype[Symbol.for('nodejs.util.inspect.custom')] =\n    inspectMatrix;\n}\n\nfunction compareNumbers(a, b) {\n  return a - b;\n}\n\nfunction isArrayOfNumbers(array) {\n  return array.every((element) => {\n    return typeof element === 'number';\n  });\n}\n\n// Synonyms\nAbstractMatrix.random = AbstractMatrix.rand;\nAbstractMatrix.randomInt = AbstractMatrix.randInt;\nAbstractMatrix.diagonal = AbstractMatrix.diag;\nAbstractMatrix.prototype.diagonal = AbstractMatrix.prototype.diag;\nAbstractMatrix.identity = AbstractMatrix.eye;\nAbstractMatrix.prototype.negate = AbstractMatrix.prototype.neg;\nAbstractMatrix.prototype.tensorProduct =\n  AbstractMatrix.prototype.kroneckerProduct;\n\nclass Matrix extends AbstractMatrix {\n  /**\n   * @type {Float64Array[]}\n   */\n  data;\n\n  /**\n   * Init an empty matrix\n   * @param {number} nRows\n   * @param {number} nColumns\n   */\n  #initData(nRows, nColumns) {\n    this.data = [];\n\n    if (Number.isInteger(nColumns) && nColumns >= 0) {\n      for (let i = 0; i < nRows; i++) {\n        this.data.push(new Float64Array(nColumns));\n      }\n    } else {\n      throw new TypeError('nColumns must be a positive integer');\n    }\n\n    this.rows = nRows;\n    this.columns = nColumns;\n  }\n\n  constructor(nRows, nColumns) {\n    super();\n    if (Matrix.isMatrix(nRows)) {\n      this.#initData(nRows.rows, nRows.columns);\n      Matrix.copy(nRows, this);\n    } else if (Number.isInteger(nRows) && nRows >= 0) {\n      this.#initData(nRows, nColumns);\n    } else if (isAnyArray(nRows)) {\n      // Copy the values from the 2D array\n      const arrayData = nRows;\n      nRows = arrayData.length;\n      nColumns = nRows ? arrayData[0].length : 0;\n      if (typeof nColumns !== 'number') {\n        throw new TypeError(\n          'Data must be a 2D array with at least one element',\n        );\n      }\n      this.data = [];\n\n      for (let i = 0; i < nRows; i++) {\n        if (arrayData[i].length !== nColumns) {\n          throw new RangeError('Inconsistent array dimensions');\n        }\n        if (!isArrayOfNumbers(arrayData[i])) {\n          throw new TypeError('Input data contains non-numeric values');\n        }\n        this.data.push(Float64Array.from(arrayData[i]));\n      }\n\n      this.rows = nRows;\n      this.columns = nColumns;\n    } else {\n      throw new TypeError(\n        'First argument must be a positive number or an array',\n      );\n    }\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.data[rowIndex][columnIndex] = value;\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.data[rowIndex][columnIndex];\n  }\n\n  removeRow(index) {\n    checkRowIndex(this, index);\n    this.data.splice(index, 1);\n    this.rows -= 1;\n    return this;\n  }\n\n  addRow(index, array) {\n    if (array === undefined) {\n      array = index;\n      index = this.rows;\n    }\n    checkRowIndex(this, index, true);\n    array = Float64Array.from(checkRowVector(this, array));\n    this.data.splice(index, 0, array);\n    this.rows += 1;\n    return this;\n  }\n\n  removeColumn(index) {\n    checkColumnIndex(this, index);\n    for (let i = 0; i < this.rows; i++) {\n      const newRow = new Float64Array(this.columns - 1);\n      for (let j = 0; j < index; j++) {\n        newRow[j] = this.data[i][j];\n      }\n      for (let j = index + 1; j < this.columns; j++) {\n        newRow[j - 1] = this.data[i][j];\n      }\n      this.data[i] = newRow;\n    }\n    this.columns -= 1;\n    return this;\n  }\n\n  addColumn(index, array) {\n    if (typeof array === 'undefined') {\n      array = index;\n      index = this.columns;\n    }\n    checkColumnIndex(this, index, true);\n    array = checkColumnVector(this, array);\n    for (let i = 0; i < this.rows; i++) {\n      const newRow = new Float64Array(this.columns + 1);\n      let j = 0;\n      for (; j < index; j++) {\n        newRow[j] = this.data[i][j];\n      }\n      newRow[j++] = array[i];\n      for (; j < this.columns + 1; j++) {\n        newRow[j] = this.data[i][j - 1];\n      }\n      this.data[i] = newRow;\n    }\n    this.columns += 1;\n    return this;\n  }\n}\n\ninstallMathOperations(AbstractMatrix, Matrix);\n\n/**\n * @typedef {0 | 1 | number | boolean} Mask\n */\n\nclass SymmetricMatrix extends AbstractMatrix {\n  /** @type {Matrix} */\n  #matrix;\n\n  get size() {\n    return this.#matrix.size;\n  }\n\n  get rows() {\n    return this.#matrix.rows;\n  }\n\n  get columns() {\n    return this.#matrix.columns;\n  }\n\n  get diagonalSize() {\n    return this.rows;\n  }\n\n  /**\n   * not the same as matrix.isSymmetric()\n   * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n   *\n   * @param value\n   * @returns {boolean}\n   */\n  static isSymmetricMatrix(value) {\n    return Matrix.isMatrix(value) && value.klassType === 'SymmetricMatrix';\n  }\n\n  /**\n   * @param diagonalSize\n   * @return {SymmetricMatrix}\n   */\n  static zeros(diagonalSize) {\n    return new this(diagonalSize);\n  }\n\n  /**\n   * @param diagonalSize\n   * @return {SymmetricMatrix}\n   */\n  static ones(diagonalSize) {\n    return new this(diagonalSize).fill(1);\n  }\n\n  /**\n   * @param {number | AbstractMatrix | ArrayLike<ArrayLike<number>>} diagonalSize\n   * @return {this}\n   */\n  constructor(diagonalSize) {\n    super();\n\n    if (Matrix.isMatrix(diagonalSize)) {\n      if (!diagonalSize.isSymmetric()) {\n        throw new TypeError('not symmetric data');\n      }\n\n      this.#matrix = Matrix.copy(\n        diagonalSize,\n        new Matrix(diagonalSize.rows, diagonalSize.rows),\n      );\n    } else if (Number.isInteger(diagonalSize) && diagonalSize >= 0) {\n      this.#matrix = new Matrix(diagonalSize, diagonalSize);\n    } else {\n      this.#matrix = new Matrix(diagonalSize);\n\n      if (!this.isSymmetric()) {\n        throw new TypeError('not symmetric data');\n      }\n    }\n  }\n\n  clone() {\n    const matrix = new SymmetricMatrix(this.diagonalSize);\n\n    for (const [row, col, value] of this.upperRightEntries()) {\n      matrix.set(row, col, value);\n    }\n\n    return matrix;\n  }\n\n  toMatrix() {\n    return new Matrix(this);\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.#matrix.get(rowIndex, columnIndex);\n  }\n  set(rowIndex, columnIndex, value) {\n    // symmetric set\n    this.#matrix.set(rowIndex, columnIndex, value);\n    this.#matrix.set(columnIndex, rowIndex, value);\n\n    return this;\n  }\n\n  removeCross(index) {\n    // symmetric remove side\n    this.#matrix.removeRow(index);\n    this.#matrix.removeColumn(index);\n\n    return this;\n  }\n\n  addCross(index, array) {\n    if (array === undefined) {\n      array = index;\n      index = this.diagonalSize;\n    }\n\n    const row = array.slice();\n    row.splice(index, 1);\n\n    this.#matrix.addRow(index, row);\n    this.#matrix.addColumn(index, array);\n\n    return this;\n  }\n\n  /**\n   * @param {Mask[]} mask\n   */\n  applyMask(mask) {\n    if (mask.length !== this.diagonalSize) {\n      throw new RangeError('Mask size do not match with matrix size');\n    }\n\n    // prepare sides to remove from matrix from mask\n    /** @type {number[]} */\n    const sidesToRemove = [];\n    for (const [index, passthroughs] of mask.entries()) {\n      if (passthroughs) continue;\n      sidesToRemove.push(index);\n    }\n    // to remove from highest to lowest for no mutation shifting\n    sidesToRemove.reverse();\n\n    // remove sides\n    for (const sideIndex of sidesToRemove) {\n      this.removeCross(sideIndex);\n    }\n\n    return this;\n  }\n\n  /**\n   * Compact format upper-right corner of matrix\n   * iterate from left to right, from top to bottom.\n   *\n   * ```\n   *   A B C D\n   * A 1 2 3 4\n   * B 2 5 6 7\n   * C 3 6 8 9\n   * D 4 7 9 10\n   * ```\n   *\n   * will return compact 1D array `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]`\n   *\n   * length is S(i=0, n=sideSize) => 10 for a 4 sideSized matrix\n   *\n   * @returns {number[]}\n   */\n  toCompact() {\n    const { diagonalSize } = this;\n\n    /** @type {number[]} */\n    const compact = new Array((diagonalSize * (diagonalSize + 1)) / 2);\n    for (let col = 0, row = 0, index = 0; index < compact.length; index++) {\n      compact[index] = this.get(row, col);\n\n      if (++col >= diagonalSize) col = ++row;\n    }\n\n    return compact;\n  }\n\n  /**\n   * @param {number[]} compact\n   * @return {SymmetricMatrix}\n   */\n  static fromCompact(compact) {\n    const compactSize = compact.length;\n    // compactSize = (sideSize * (sideSize + 1)) / 2\n    // https://mathsolver.microsoft.com/fr/solve-problem/y%20%3D%20%20x%20%60cdot%20%20%20%60frac%7B%20%20%60left(%20x%2B1%20%20%60right)%20%20%20%20%7D%7B%202%20%20%7D\n    // sideSize = (Sqrt(8 × compactSize + 1) - 1) / 2\n    const diagonalSize = (Math.sqrt(8 * compactSize + 1) - 1) / 2;\n\n    if (!Number.isInteger(diagonalSize)) {\n      throw new TypeError(\n        `This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(\n          compact,\n        )}`,\n      );\n    }\n\n    const matrix = new SymmetricMatrix(diagonalSize);\n    for (let col = 0, row = 0, index = 0; index < compactSize; index++) {\n      matrix.set(col, row, compact[index]);\n      if (++col >= diagonalSize) col = ++row;\n    }\n\n    return matrix;\n  }\n\n  /**\n   * half iterator upper-right-corner from left to right, from top to bottom\n   * yield [row, column, value]\n   *\n   * @returns {Generator<[number, number, number], void, void>}\n   */\n  *upperRightEntries() {\n    for (let row = 0, col = 0; row < this.diagonalSize; void 0) {\n      const value = this.get(row, col);\n\n      yield [row, col, value];\n\n      // at the end of row, move cursor to next row at diagonal position\n      if (++col >= this.diagonalSize) col = ++row;\n    }\n  }\n\n  /**\n   * half iterator upper-right-corner from left to right, from top to bottom\n   * yield value\n   *\n   * @returns {Generator<[number, number, number], void, void>}\n   */\n  *upperRightValues() {\n    for (let row = 0, col = 0; row < this.diagonalSize; void 0) {\n      const value = this.get(row, col);\n\n      yield value;\n\n      // at the end of row, move cursor to next row at diagonal position\n      if (++col >= this.diagonalSize) col = ++row;\n    }\n  }\n}\nSymmetricMatrix.prototype.klassType = 'SymmetricMatrix';\n\nclass DistanceMatrix extends SymmetricMatrix {\n  /**\n   * not the same as matrix.isSymmetric()\n   * Here is to check if it's instanceof SymmetricMatrix without bundling issues\n   *\n   * @param value\n   * @returns {boolean}\n   */\n  static isDistanceMatrix(value) {\n    return (\n      SymmetricMatrix.isSymmetricMatrix(value) &&\n      value.klassSubType === 'DistanceMatrix'\n    );\n  }\n\n  constructor(sideSize) {\n    super(sideSize);\n\n    if (!this.isDistance()) {\n      throw new TypeError('Provided arguments do no produce a distance matrix');\n    }\n  }\n\n  set(rowIndex, columnIndex, value) {\n    // distance matrix diagonal is 0\n    if (rowIndex === columnIndex) value = 0;\n\n    return super.set(rowIndex, columnIndex, value);\n  }\n\n  addCross(index, array) {\n    if (array === undefined) {\n      array = index;\n      index = this.diagonalSize;\n    }\n\n    // ensure distance\n    array = array.slice();\n    array[index] = 0;\n\n    return super.addCross(index, array);\n  }\n\n  toSymmetricMatrix() {\n    return new SymmetricMatrix(this);\n  }\n\n  clone() {\n    const matrix = new DistanceMatrix(this.diagonalSize);\n\n    for (const [row, col, value] of this.upperRightEntries()) {\n      if (row === col) continue;\n      matrix.set(row, col, value);\n    }\n\n    return matrix;\n  }\n\n  /**\n   * Compact format upper-right corner of matrix\n   * no diagonal (only zeros)\n   * iterable from left to right, from top to bottom.\n   *\n   * ```\n   *   A B C D\n   * A 0 1 2 3\n   * B 1 0 4 5\n   * C 2 4 0 6\n   * D 3 5 6 0\n   * ```\n   *\n   * will return compact 1D array `[1, 2, 3, 4, 5, 6]`\n   *\n   * length is S(i=0, n=sideSize-1) => 6 for a 4 side sized matrix\n   *\n   * @returns {number[]}\n   */\n  toCompact() {\n    const { diagonalSize } = this;\n    const compactLength = ((diagonalSize - 1) * diagonalSize) / 2;\n\n    /** @type {number[]} */\n    const compact = new Array(compactLength);\n    for (let col = 1, row = 0, index = 0; index < compact.length; index++) {\n      compact[index] = this.get(row, col);\n\n      if (++col >= diagonalSize) col = ++row + 1;\n    }\n\n    return compact;\n  }\n\n  /**\n   * @param {number[]} compact\n   */\n  static fromCompact(compact) {\n    const compactSize = compact.length;\n\n    if (compactSize === 0) {\n      return new this(0);\n    }\n\n    // compactSize in Natural integer range ]0;∞]\n    // compactSize = (sideSize * (sideSize - 1)) / 2\n    // sideSize = (Sqrt(8 × compactSize + 1) + 1) / 2\n    const diagonalSize = (Math.sqrt(8 * compactSize + 1) + 1) / 2;\n\n    if (!Number.isInteger(diagonalSize)) {\n      throw new TypeError(\n        `This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(\n          compact,\n        )}`,\n      );\n    }\n\n    const matrix = new this(diagonalSize);\n    for (let col = 1, row = 0, index = 0; index < compactSize; index++) {\n      matrix.set(col, row, compact[index]);\n      if (++col >= diagonalSize) col = ++row + 1;\n    }\n\n    return matrix;\n  }\n}\nDistanceMatrix.prototype.klassSubType = 'DistanceMatrix';\n\nclass BaseView extends AbstractMatrix {\n  constructor(matrix, rows, columns) {\n    super();\n    this.matrix = matrix;\n    this.rows = rows;\n    this.columns = columns;\n  }\n}\n\nclass MatrixColumnView extends BaseView {\n  constructor(matrix, column) {\n    checkColumnIndex(matrix, column);\n    super(matrix, matrix.rows, 1);\n    this.column = column;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(rowIndex, this.column, value);\n    return this;\n  }\n\n  get(rowIndex) {\n    return this.matrix.get(rowIndex, this.column);\n  }\n}\n\nclass MatrixColumnSelectionView extends BaseView {\n  constructor(matrix, columnIndices) {\n    checkColumnIndices(matrix, columnIndices);\n    super(matrix, matrix.rows, columnIndices.length);\n    this.columnIndices = columnIndices;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(rowIndex, this.columnIndices[columnIndex], value);\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.matrix.get(rowIndex, this.columnIndices[columnIndex]);\n  }\n}\n\nclass MatrixFlipColumnView extends BaseView {\n  constructor(matrix) {\n    super(matrix, matrix.rows, matrix.columns);\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(rowIndex, this.columns - columnIndex - 1, value);\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.matrix.get(rowIndex, this.columns - columnIndex - 1);\n  }\n}\n\nclass MatrixFlipRowView extends BaseView {\n  constructor(matrix) {\n    super(matrix, matrix.rows, matrix.columns);\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(this.rows - rowIndex - 1, columnIndex, value);\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.matrix.get(this.rows - rowIndex - 1, columnIndex);\n  }\n}\n\nclass MatrixRowView extends BaseView {\n  constructor(matrix, row) {\n    checkRowIndex(matrix, row);\n    super(matrix, 1, matrix.columns);\n    this.row = row;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(this.row, columnIndex, value);\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.matrix.get(this.row, columnIndex);\n  }\n}\n\nclass MatrixRowSelectionView extends BaseView {\n  constructor(matrix, rowIndices) {\n    checkRowIndices(matrix, rowIndices);\n    super(matrix, rowIndices.length, matrix.columns);\n    this.rowIndices = rowIndices;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(this.rowIndices[rowIndex], columnIndex, value);\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.matrix.get(this.rowIndices[rowIndex], columnIndex);\n  }\n}\n\nclass MatrixSelectionView extends BaseView {\n  constructor(matrix, rowIndices, columnIndices) {\n    checkRowIndices(matrix, rowIndices);\n    checkColumnIndices(matrix, columnIndices);\n    super(matrix, rowIndices.length, columnIndices.length);\n    this.rowIndices = rowIndices;\n    this.columnIndices = columnIndices;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(\n      this.rowIndices[rowIndex],\n      this.columnIndices[columnIndex],\n      value,\n    );\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.matrix.get(\n      this.rowIndices[rowIndex],\n      this.columnIndices[columnIndex],\n    );\n  }\n}\n\nclass MatrixSubView extends BaseView {\n  constructor(matrix, startRow, endRow, startColumn, endColumn) {\n    checkRange(matrix, startRow, endRow, startColumn, endColumn);\n    super(matrix, endRow - startRow + 1, endColumn - startColumn + 1);\n    this.startRow = startRow;\n    this.startColumn = startColumn;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(\n      this.startRow + rowIndex,\n      this.startColumn + columnIndex,\n      value,\n    );\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.matrix.get(\n      this.startRow + rowIndex,\n      this.startColumn + columnIndex,\n    );\n  }\n}\n\nclass MatrixTransposeView extends BaseView {\n  constructor(matrix) {\n    super(matrix, matrix.columns, matrix.rows);\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.matrix.set(columnIndex, rowIndex, value);\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.matrix.get(columnIndex, rowIndex);\n  }\n}\n\nclass WrapperMatrix1D extends AbstractMatrix {\n  constructor(data, options = {}) {\n    const { rows = 1 } = options;\n\n    if (data.length % rows !== 0) {\n      throw new Error('the data length is not divisible by the number of rows');\n    }\n    super();\n    this.rows = rows;\n    this.columns = data.length / rows;\n    this.data = data;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    let index = this._calculateIndex(rowIndex, columnIndex);\n    this.data[index] = value;\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    let index = this._calculateIndex(rowIndex, columnIndex);\n    return this.data[index];\n  }\n\n  _calculateIndex(row, column) {\n    return row * this.columns + column;\n  }\n}\n\nclass WrapperMatrix2D extends AbstractMatrix {\n  constructor(data) {\n    super();\n    this.data = data;\n    this.rows = data.length;\n    this.columns = data[0].length;\n  }\n\n  set(rowIndex, columnIndex, value) {\n    this.data[rowIndex][columnIndex] = value;\n    return this;\n  }\n\n  get(rowIndex, columnIndex) {\n    return this.data[rowIndex][columnIndex];\n  }\n}\n\nfunction wrap(array, options) {\n  if (isAnyArray(array)) {\n    if (array[0] && isAnyArray(array[0])) {\n      return new WrapperMatrix2D(array);\n    } else {\n      return new WrapperMatrix1D(array, options);\n    }\n  } else {\n    throw new Error('the argument is not an array');\n  }\n}\n\nclass LuDecomposition {\n  constructor(matrix) {\n    matrix = WrapperMatrix2D.checkMatrix(matrix);\n\n    let lu = matrix.clone();\n    let rows = lu.rows;\n    let columns = lu.columns;\n    let pivotVector = new Float64Array(rows);\n    let pivotSign = 1;\n    let i, j, k, p, s, t, v;\n    let LUcolj, kmax;\n\n    for (i = 0; i < rows; i++) {\n      pivotVector[i] = i;\n    }\n\n    LUcolj = new Float64Array(rows);\n\n    for (j = 0; j < columns; j++) {\n      for (i = 0; i < rows; i++) {\n        LUcolj[i] = lu.get(i, j);\n      }\n\n      for (i = 0; i < rows; i++) {\n        kmax = Math.min(i, j);\n        s = 0;\n        for (k = 0; k < kmax; k++) {\n          s += lu.get(i, k) * LUcolj[k];\n        }\n        LUcolj[i] -= s;\n        lu.set(i, j, LUcolj[i]);\n      }\n\n      p = j;\n      for (i = j + 1; i < rows; i++) {\n        if (Math.abs(LUcolj[i]) > Math.abs(LUcolj[p])) {\n          p = i;\n        }\n      }\n\n      if (p !== j) {\n        for (k = 0; k < columns; k++) {\n          t = lu.get(p, k);\n          lu.set(p, k, lu.get(j, k));\n          lu.set(j, k, t);\n        }\n\n        v = pivotVector[p];\n        pivotVector[p] = pivotVector[j];\n        pivotVector[j] = v;\n\n        pivotSign = -pivotSign;\n      }\n\n      if (j < rows && lu.get(j, j) !== 0) {\n        for (i = j + 1; i < rows; i++) {\n          lu.set(i, j, lu.get(i, j) / lu.get(j, j));\n        }\n      }\n    }\n\n    this.LU = lu;\n    this.pivotVector = pivotVector;\n    this.pivotSign = pivotSign;\n  }\n\n  isSingular() {\n    let data = this.LU;\n    let col = data.columns;\n    for (let j = 0; j < col; j++) {\n      if (data.get(j, j) === 0) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  solve(value) {\n    value = Matrix.checkMatrix(value);\n\n    let lu = this.LU;\n    let rows = lu.rows;\n\n    if (rows !== value.rows) {\n      throw new Error('Invalid matrix dimensions');\n    }\n    if (this.isSingular()) {\n      throw new Error('LU matrix is singular');\n    }\n\n    let count = value.columns;\n    let X = value.subMatrixRow(this.pivotVector, 0, count - 1);\n    let columns = lu.columns;\n    let i, j, k;\n\n    for (k = 0; k < columns; k++) {\n      for (i = k + 1; i < columns; i++) {\n        for (j = 0; j < count; j++) {\n          X.set(i, j, X.get(i, j) - X.get(k, j) * lu.get(i, k));\n        }\n      }\n    }\n    for (k = columns - 1; k >= 0; k--) {\n      for (j = 0; j < count; j++) {\n        X.set(k, j, X.get(k, j) / lu.get(k, k));\n      }\n      for (i = 0; i < k; i++) {\n        for (j = 0; j < count; j++) {\n          X.set(i, j, X.get(i, j) - X.get(k, j) * lu.get(i, k));\n        }\n      }\n    }\n    return X;\n  }\n\n  get determinant() {\n    let data = this.LU;\n    if (!data.isSquare()) {\n      throw new Error('Matrix must be square');\n    }\n    let determinant = this.pivotSign;\n    let col = data.columns;\n    for (let j = 0; j < col; j++) {\n      determinant *= data.get(j, j);\n    }\n    return determinant;\n  }\n\n  get lowerTriangularMatrix() {\n    let data = this.LU;\n    let rows = data.rows;\n    let columns = data.columns;\n    let X = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        if (i > j) {\n          X.set(i, j, data.get(i, j));\n        } else if (i === j) {\n          X.set(i, j, 1);\n        } else {\n          X.set(i, j, 0);\n        }\n      }\n    }\n    return X;\n  }\n\n  get upperTriangularMatrix() {\n    let data = this.LU;\n    let rows = data.rows;\n    let columns = data.columns;\n    let X = new Matrix(rows, columns);\n    for (let i = 0; i < rows; i++) {\n      for (let j = 0; j < columns; j++) {\n        if (i <= j) {\n          X.set(i, j, data.get(i, j));\n        } else {\n          X.set(i, j, 0);\n        }\n      }\n    }\n    return X;\n  }\n\n  get pivotPermutationVector() {\n    return Array.from(this.pivotVector);\n  }\n}\n\n/**\n * Transpose a square matrix in place, without allocating a copy.\n * Used to restore the logical layout of decomposition outputs that were\n * accumulated in transposed storage for cache-sequential inner loops.\n * @param {import('../matrix').default} matrix - square matrix, mutated in place\n * @returns {import('../matrix').default} the same matrix\n */\nfunction transposeSquareInPlace(matrix) {\n  const data = matrix.data;\n  const n = matrix.rows;\n  for (let i = 0; i < n; i++) {\n    const rowI = data[i];\n    for (let j = i + 1; j < n; j++) {\n      const tmp = rowI[j];\n      rowI[j] = data[j][i];\n      data[j][i] = tmp;\n    }\n  }\n  return matrix;\n}\n\nfunction hypotenuse(a, b) {\n  let r = 0;\n  if (Math.abs(a) > Math.abs(b)) {\n    r = b / a;\n    return Math.abs(a) * Math.sqrt(1 + r * r);\n  }\n  if (b !== 0) {\n    r = a / b;\n    return Math.abs(b) * Math.sqrt(1 + r * r);\n  }\n  return 0;\n}\n\nclass QrDecomposition {\n  constructor(value) {\n    value = WrapperMatrix2D.checkMatrix(value);\n\n    let qr = value.clone();\n    let m = value.rows;\n    let n = value.columns;\n    let rdiag = new Float64Array(n);\n    let i, j, k, s;\n\n    for (k = 0; k < n; k++) {\n      let nrm = 0;\n      for (i = k; i < m; i++) {\n        nrm = hypotenuse(nrm, qr.get(i, k));\n      }\n      if (nrm !== 0) {\n        if (qr.get(k, k) < 0) {\n          nrm = -nrm;\n        }\n        for (i = k; i < m; i++) {\n          qr.set(i, k, qr.get(i, k) / nrm);\n        }\n        qr.set(k, k, qr.get(k, k) + 1);\n        for (j = k + 1; j < n; j++) {\n          s = 0;\n          for (i = k; i < m; i++) {\n            s += qr.get(i, k) * qr.get(i, j);\n          }\n          s = -s / qr.get(k, k);\n          for (i = k; i < m; i++) {\n            qr.set(i, j, qr.get(i, j) + s * qr.get(i, k));\n          }\n        }\n      }\n      rdiag[k] = -nrm;\n    }\n\n    this.QR = qr;\n    this.Rdiag = rdiag;\n  }\n\n  solve(value) {\n    value = Matrix.checkMatrix(value);\n\n    let qr = this.QR;\n    let m = qr.rows;\n\n    if (value.rows !== m) {\n      throw new Error('Matrix row dimensions must agree');\n    }\n    if (!this.isFullRank()) {\n      throw new Error('Matrix is rank deficient');\n    }\n\n    let count = value.columns;\n    let X = value.clone();\n    let n = qr.columns;\n    let i, j, k, s;\n\n    for (k = 0; k < n; k++) {\n      for (j = 0; j < count; j++) {\n        s = 0;\n        for (i = k; i < m; i++) {\n          s += qr.get(i, k) * X.get(i, j);\n        }\n        s = -s / qr.get(k, k);\n        for (i = k; i < m; i++) {\n          X.set(i, j, X.get(i, j) + s * qr.get(i, k));\n        }\n      }\n    }\n    for (k = n - 1; k >= 0; k--) {\n      for (j = 0; j < count; j++) {\n        X.set(k, j, X.get(k, j) / this.Rdiag[k]);\n      }\n      for (i = 0; i < k; i++) {\n        for (j = 0; j < count; j++) {\n          X.set(i, j, X.get(i, j) - X.get(k, j) * qr.get(i, k));\n        }\n      }\n    }\n\n    return X.subMatrix(0, n - 1, 0, count - 1);\n  }\n\n  isFullRank() {\n    let columns = this.QR.columns;\n    for (let i = 0; i < columns; i++) {\n      if (this.Rdiag[i] === 0) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  get upperTriangularMatrix() {\n    let qr = this.QR;\n    let n = qr.columns;\n    let X = new Matrix(n, n);\n    let i, j;\n    for (i = 0; i < n; i++) {\n      for (j = 0; j < n; j++) {\n        if (i < j) {\n          X.set(i, j, qr.get(i, j));\n        } else if (i === j) {\n          X.set(i, j, this.Rdiag[i]);\n        } else {\n          X.set(i, j, 0);\n        }\n      }\n    }\n    return X;\n  }\n\n  get orthogonalMatrix() {\n    let qr = this.QR;\n    let rows = qr.rows;\n    let columns = qr.columns;\n    let X = new Matrix(rows, columns);\n    let i, j, k, s;\n\n    for (k = columns - 1; k >= 0; k--) {\n      for (i = 0; i < rows; i++) {\n        X.set(i, k, 0);\n      }\n      X.set(k, k, 1);\n      for (j = k; j < columns; j++) {\n        if (qr.get(k, k) !== 0) {\n          s = 0;\n          for (i = k; i < rows; i++) {\n            s += qr.get(i, k) * X.get(i, j);\n          }\n\n          s = -s / qr.get(k, k);\n\n          for (i = k; i < rows; i++) {\n            X.set(i, j, X.get(i, j) + s * qr.get(i, k));\n          }\n        }\n      }\n    }\n    return X;\n  }\n}\n\nclass SingularValueDecomposition {\n  constructor(value, options = {}) {\n    value = WrapperMatrix2D.checkMatrix(value);\n\n    if (value.isEmpty()) {\n      throw new Error('Matrix must be non-empty');\n    }\n\n    let m = value.rows;\n    let n = value.columns;\n\n    const {\n      computeLeftSingularVectors = true,\n      computeRightSingularVectors = true,\n      autoTranspose = false,\n    } = options;\n\n    let wantu = Boolean(computeLeftSingularVectors);\n    let wantv = Boolean(computeRightSingularVectors);\n\n    // Work on the transpose of the input so the hot inner loops (which iterate\n    // over rows for a fixed column) scan memory sequentially in the row-major\n    // backing store. `at` holds the transpose: at.get(j, i) === a.get(i, j)\n    // where `a` is the logical m x n working matrix.\n    let swapped = false;\n    let at;\n    if (m < n) {\n      if (!autoTranspose) {\n        // eslint-disable-next-line no-console\n        console.warn(\n          'Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose',\n        );\n        at = value.transpose();\n      } else {\n        at = value.clone();\n        m = value.columns;\n        n = value.rows;\n        swapped = true;\n        let aux = wantu;\n        wantu = wantv;\n        wantv = aux;\n      }\n    } else {\n      at = value.transpose();\n    }\n\n    let nu = Math.min(m, n);\n    let ni = Math.min(m + 1, n);\n    let s = new Float64Array(ni);\n    // U and V are stored transposed during the computation so the inner loops\n    // (which always vary the row index) scan memory sequentially. They are\n    // transposed back to their logical layout before being returned.\n    // Ut.get(j, i) === U.get(i, j) and Vt.get(j, i) === V.get(i, j).\n    let U = new Matrix(nu, m);\n    let V = new Matrix(n, n);\n\n    let e = new Float64Array(n);\n    let work = new Float64Array(m);\n\n    let si = new Float64Array(ni);\n    for (let i = 0; i < ni; i++) si[i] = i;\n\n    let nct = Math.min(m - 1, n);\n    let nrt = Math.max(0, Math.min(n - 2, m));\n    let mrc = Math.max(nct, nrt);\n\n    for (let k = 0; k < mrc; k++) {\n      if (k < nct) {\n        s[k] = 0;\n        for (let i = k; i < m; i++) {\n          s[k] = hypotenuse(s[k], at.get(k, i));\n        }\n        if (s[k] !== 0) {\n          if (at.get(k, k) < 0) {\n            s[k] = -s[k];\n          }\n          for (let i = k; i < m; i++) {\n            at.set(k, i, at.get(k, i) / s[k]);\n          }\n          at.set(k, k, at.get(k, k) + 1);\n        }\n        s[k] = -s[k];\n      }\n\n      for (let j = k + 1; j < n; j++) {\n        if (k < nct && s[k] !== 0) {\n          let t = 0;\n          for (let i = k; i < m; i++) {\n            t += at.get(k, i) * at.get(j, i);\n          }\n          t = -t / at.get(k, k);\n          for (let i = k; i < m; i++) {\n            at.set(j, i, at.get(j, i) + t * at.get(k, i));\n          }\n        }\n        e[j] = at.get(j, k);\n      }\n\n      if (wantu && k < nct) {\n        for (let i = k; i < m; i++) {\n          U.set(k, i, at.get(k, i));\n        }\n      }\n\n      if (k < nrt) {\n        e[k] = 0;\n        for (let i = k + 1; i < n; i++) {\n          e[k] = hypotenuse(e[k], e[i]);\n        }\n        if (e[k] !== 0) {\n          if (e[k + 1] < 0) {\n            e[k] = 0 - e[k];\n          }\n          for (let i = k + 1; i < n; i++) {\n            e[i] /= e[k];\n          }\n          e[k + 1] += 1;\n        }\n        e[k] = -e[k];\n        if (k + 1 < m && e[k] !== 0) {\n          for (let i = k + 1; i < m; i++) {\n            work[i] = 0;\n          }\n          for (let i = k + 1; i < m; i++) {\n            for (let j = k + 1; j < n; j++) {\n              work[i] += e[j] * at.get(j, i);\n            }\n          }\n          for (let j = k + 1; j < n; j++) {\n            let t = -e[j] / e[k + 1];\n            for (let i = k + 1; i < m; i++) {\n              at.set(j, i, at.get(j, i) + t * work[i]);\n            }\n          }\n        }\n        if (wantv) {\n          for (let i = k + 1; i < n; i++) {\n            V.set(k, i, e[i]);\n          }\n        }\n      }\n    }\n\n    let p = Math.min(n, m + 1);\n    if (nct < n) {\n      s[nct] = at.get(nct, nct);\n    }\n    if (m < p) {\n      s[p - 1] = 0;\n    }\n    if (nrt + 1 < p) {\n      e[nrt] = at.get(p - 1, nrt);\n    }\n    e[p - 1] = 0;\n\n    if (wantu) {\n      for (let j = nct; j < nu; j++) {\n        for (let i = 0; i < m; i++) {\n          U.set(j, i, 0);\n        }\n        U.set(j, j, 1);\n      }\n      for (let k = nct - 1; k >= 0; k--) {\n        if (s[k] !== 0) {\n          for (let j = k + 1; j < nu; j++) {\n            let t = 0;\n            for (let i = k; i < m; i++) {\n              t += U.get(k, i) * U.get(j, i);\n            }\n            t = -t / U.get(k, k);\n            for (let i = k; i < m; i++) {\n              U.set(j, i, U.get(j, i) + t * U.get(k, i));\n            }\n          }\n          for (let i = k; i < m; i++) {\n            U.set(k, i, -U.get(k, i));\n          }\n          U.set(k, k, 1 + U.get(k, k));\n          for (let i = 0; i < k - 1; i++) {\n            U.set(k, i, 0);\n          }\n        } else {\n          for (let i = 0; i < m; i++) {\n            U.set(k, i, 0);\n          }\n          U.set(k, k, 1);\n        }\n      }\n    }\n\n    if (wantv) {\n      for (let k = n - 1; k >= 0; k--) {\n        if (k < nrt && e[k] !== 0) {\n          for (let j = k + 1; j < n; j++) {\n            let t = 0;\n            for (let i = k + 1; i < n; i++) {\n              t += V.get(k, i) * V.get(j, i);\n            }\n            t = -t / V.get(k, k + 1);\n            for (let i = k + 1; i < n; i++) {\n              V.set(j, i, V.get(j, i) + t * V.get(k, i));\n            }\n          }\n        }\n        for (let i = 0; i < n; i++) {\n          V.set(k, i, 0);\n        }\n        V.set(k, k, 1);\n      }\n    }\n\n    let pp = p - 1;\n    let eps = Number.EPSILON;\n    while (p > 0) {\n      let k, kase;\n      for (k = p - 2; k >= -1; k--) {\n        if (k === -1) {\n          break;\n        }\n        const alpha =\n          Number.MIN_VALUE + eps * Math.abs(s[k] + Math.abs(s[k + 1]));\n        if (Math.abs(e[k]) <= alpha || Number.isNaN(e[k])) {\n          e[k] = 0;\n          break;\n        }\n      }\n      if (k === p - 2) {\n        kase = 4;\n      } else {\n        let ks;\n        for (ks = p - 1; ks >= k; ks--) {\n          if (ks === k) {\n            break;\n          }\n          let t =\n            (ks !== p ? Math.abs(e[ks]) : 0) +\n            (ks !== k + 1 ? Math.abs(e[ks - 1]) : 0);\n          if (Math.abs(s[ks]) <= eps * t) {\n            s[ks] = 0;\n            break;\n          }\n        }\n        if (ks === k) {\n          kase = 3;\n        } else if (ks === p - 1) {\n          kase = 1;\n        } else {\n          kase = 2;\n          k = ks;\n        }\n      }\n\n      k++;\n\n      switch (kase) {\n        case 1: {\n          let f = e[p - 2];\n          e[p - 2] = 0;\n          for (let j = p - 2; j >= k; j--) {\n            let t = hypotenuse(s[j], f);\n            let cs = s[j] / t;\n            let sn = f / t;\n            s[j] = t;\n            if (j !== k) {\n              f = -sn * e[j - 1];\n              e[j - 1] = cs * e[j - 1];\n            }\n            if (wantv) {\n              for (let i = 0; i < n; i++) {\n                t = cs * V.get(j, i) + sn * V.get(p - 1, i);\n                V.set(p - 1, i, -sn * V.get(j, i) + cs * V.get(p - 1, i));\n                V.set(j, i, t);\n              }\n            }\n          }\n          break;\n        }\n        case 2: {\n          let f = e[k - 1];\n          e[k - 1] = 0;\n          for (let j = k; j < p; j++) {\n            let t = hypotenuse(s[j], f);\n            let cs = s[j] / t;\n            let sn = f / t;\n            s[j] = t;\n            f = -sn * e[j];\n            e[j] = cs * e[j];\n            if (wantu) {\n              for (let i = 0; i < m; i++) {\n                t = cs * U.get(j, i) + sn * U.get(k - 1, i);\n                U.set(k - 1, i, -sn * U.get(j, i) + cs * U.get(k - 1, i));\n                U.set(j, i, t);\n              }\n            }\n          }\n          break;\n        }\n        case 3: {\n          const scale = Math.max(\n            Math.abs(s[p - 1]),\n            Math.abs(s[p - 2]),\n            Math.abs(e[p - 2]),\n            Math.abs(s[k]),\n            Math.abs(e[k]),\n          );\n          const sp = s[p - 1] / scale;\n          const spm1 = s[p - 2] / scale;\n          const epm1 = e[p - 2] / scale;\n          const sk = s[k] / scale;\n          const ek = e[k] / scale;\n          const b = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2;\n          const c = sp * epm1 * (sp * epm1);\n          let shift = 0;\n          if (b !== 0 || c !== 0) {\n            if (b < 0) {\n              shift = 0 - Math.sqrt(b * b + c);\n            } else {\n              shift = Math.sqrt(b * b + c);\n            }\n            shift = c / (b + shift);\n          }\n          let f = (sk + sp) * (sk - sp) + shift;\n          let g = sk * ek;\n          for (let j = k; j < p - 1; j++) {\n            let t = hypotenuse(f, g);\n            if (t === 0) t = Number.MIN_VALUE;\n            let cs = f / t;\n            let sn = g / t;\n            if (j !== k) {\n              e[j - 1] = t;\n            }\n            f = cs * s[j] + sn * e[j];\n            e[j] = cs * e[j] - sn * s[j];\n            g = sn * s[j + 1];\n            s[j + 1] = cs * s[j + 1];\n            if (wantv) {\n              for (let i = 0; i < n; i++) {\n                t = cs * V.get(j, i) + sn * V.get(j + 1, i);\n                V.set(j + 1, i, -sn * V.get(j, i) + cs * V.get(j + 1, i));\n                V.set(j, i, t);\n              }\n            }\n            t = hypotenuse(f, g);\n            if (t === 0) t = Number.MIN_VALUE;\n            cs = f / t;\n            sn = g / t;\n            s[j] = t;\n            f = cs * e[j] + sn * s[j + 1];\n            s[j + 1] = -sn * e[j] + cs * s[j + 1];\n            g = sn * e[j + 1];\n            e[j + 1] = cs * e[j + 1];\n            if (wantu && j < m - 1) {\n              for (let i = 0; i < m; i++) {\n                t = cs * U.get(j, i) + sn * U.get(j + 1, i);\n                U.set(j + 1, i, -sn * U.get(j, i) + cs * U.get(j + 1, i));\n                U.set(j, i, t);\n              }\n            }\n          }\n          e[p - 2] = f;\n          break;\n        }\n        case 4: {\n          if (s[k] <= 0) {\n            s[k] = s[k] < 0 ? -s[k] : 0;\n            if (wantv) {\n              for (let i = 0; i <= pp; i++) {\n                V.set(k, i, -V.get(k, i));\n              }\n            }\n          }\n          while (k < pp) {\n            if (s[k] >= s[k + 1]) {\n              break;\n            }\n            let t = s[k];\n            s[k] = s[k + 1];\n            s[k + 1] = t;\n            if (wantv && k < n - 1) {\n              for (let i = 0; i < n; i++) {\n                t = V.get(k + 1, i);\n                V.set(k + 1, i, V.get(k, i));\n                V.set(k, i, t);\n              }\n            }\n            if (wantu && k < m - 1) {\n              for (let i = 0; i < m; i++) {\n                t = U.get(k + 1, i);\n                U.set(k + 1, i, U.get(k, i));\n                U.set(k, i, t);\n              }\n            }\n            k++;\n          }\n          p--;\n          break;\n        }\n        // no default\n      }\n    }\n\n    // Restore the logical (row-major) layout of the singular vectors, which were\n    // accumulated in transposed storage for cache-sequential inner loops. V is\n    // always square and U is square whenever the input is, so this is done in\n    // place (no allocation) in the common case.\n    U = U.isSquare() ? transposeSquareInPlace(U) : U.transpose();\n    V = transposeSquareInPlace(V);\n\n    if (swapped) {\n      let tmp = V;\n      V = U;\n      U = tmp;\n    }\n\n    this.m = m;\n    this.n = n;\n    this.s = s;\n    this.U = U;\n    this.V = V;\n  }\n\n  solve(value) {\n    let Y = value;\n    let e = this.threshold;\n    let scols = this.s.length;\n    let Ls = Matrix.zeros(scols, scols);\n\n    for (let i = 0; i < scols; i++) {\n      if (Math.abs(this.s[i]) <= e) {\n        Ls.set(i, i, 0);\n      } else {\n        Ls.set(i, i, 1 / this.s[i]);\n      }\n    }\n\n    let U = this.U;\n    let V = this.rightSingularVectors;\n\n    let VL = V.mmul(Ls);\n    let vrows = V.rows;\n    let urows = U.rows;\n    let VLU = Matrix.zeros(vrows, urows);\n\n    for (let i = 0; i < vrows; i++) {\n      for (let j = 0; j < urows; j++) {\n        let sum = 0;\n        for (let k = 0; k < scols; k++) {\n          sum += VL.get(i, k) * U.get(j, k);\n        }\n        VLU.set(i, j, sum);\n      }\n    }\n\n    return VLU.mmul(Y);\n  }\n\n  solveForDiagonal(value) {\n    return this.solve(Matrix.diag(value));\n  }\n\n  inverse() {\n    let V = this.V;\n    let e = this.threshold;\n    let vrows = V.rows;\n    let vcols = V.columns;\n    let X = new Matrix(vrows, this.s.length);\n\n    for (let i = 0; i < vrows; i++) {\n      for (let j = 0; j < vcols; j++) {\n        if (Math.abs(this.s[j]) > e) {\n          X.set(i, j, V.get(i, j) / this.s[j]);\n        }\n      }\n    }\n\n    let U = this.U;\n\n    let urows = U.rows;\n    let ucols = U.columns;\n    let Y = new Matrix(vrows, urows);\n\n    for (let i = 0; i < vrows; i++) {\n      for (let j = 0; j < urows; j++) {\n        let sum = 0;\n        for (let k = 0; k < ucols; k++) {\n          sum += X.get(i, k) * U.get(j, k);\n        }\n        Y.set(i, j, sum);\n      }\n    }\n\n    return Y;\n  }\n\n  get condition() {\n    return this.s[0] / this.s[Math.min(this.m, this.n) - 1];\n  }\n\n  get norm2() {\n    return this.s[0];\n  }\n\n  get rank() {\n    let tol = Math.max(this.m, this.n) * this.s[0] * Number.EPSILON;\n    let r = 0;\n    let s = this.s;\n    for (let i = 0, ii = s.length; i < ii; i++) {\n      if (s[i] > tol) {\n        r++;\n      }\n    }\n    return r;\n  }\n\n  get diagonal() {\n    return Array.from(this.s);\n  }\n\n  get threshold() {\n    return (Number.EPSILON / 2) * Math.max(this.m, this.n) * this.s[0];\n  }\n\n  get leftSingularVectors() {\n    return this.U;\n  }\n\n  get rightSingularVectors() {\n    return this.V;\n  }\n\n  get diagonalMatrix() {\n    return Matrix.diag(this.s);\n  }\n}\n\nfunction inverse(matrix, useSVD = false) {\n  matrix = WrapperMatrix2D.checkMatrix(matrix);\n  if (useSVD) {\n    return new SingularValueDecomposition(matrix).inverse();\n  } else {\n    return solve(matrix, Matrix.eye(matrix.rows));\n  }\n}\n\nfunction solve(leftHandSide, rightHandSide, useSVD = false) {\n  leftHandSide = WrapperMatrix2D.checkMatrix(leftHandSide);\n  rightHandSide = WrapperMatrix2D.checkMatrix(rightHandSide);\n  if (useSVD) {\n    return new SingularValueDecomposition(leftHandSide).solve(rightHandSide);\n  } else {\n    return leftHandSide.isSquare()\n      ? new LuDecomposition(leftHandSide).solve(rightHandSide)\n      : new QrDecomposition(leftHandSide).solve(rightHandSide);\n  }\n}\n\nfunction determinant(matrix) {\n  matrix = Matrix.checkMatrix(matrix);\n  if (matrix.isSquare()) {\n    if (matrix.columns === 0) {\n      return 1;\n    }\n\n    let a, b, c, d;\n    if (matrix.columns === 2) {\n      // 2 x 2 matrix\n      a = matrix.get(0, 0);\n      b = matrix.get(0, 1);\n      c = matrix.get(1, 0);\n      d = matrix.get(1, 1);\n\n      return a * d - b * c;\n    } else if (matrix.columns === 3) {\n      // 3 x 3 matrix\n      let subMatrix0, subMatrix1, subMatrix2;\n      subMatrix0 = new MatrixSelectionView(matrix, [1, 2], [1, 2]);\n      subMatrix1 = new MatrixSelectionView(matrix, [1, 2], [0, 2]);\n      subMatrix2 = new MatrixSelectionView(matrix, [1, 2], [0, 1]);\n      a = matrix.get(0, 0);\n      b = matrix.get(0, 1);\n      c = matrix.get(0, 2);\n\n      return (\n        a * determinant(subMatrix0) -\n        b * determinant(subMatrix1) +\n        c * determinant(subMatrix2)\n      );\n    } else {\n      // general purpose determinant using the LU decomposition\n      return new LuDecomposition(matrix).determinant;\n    }\n  } else {\n    throw Error('determinant can only be calculated for a square matrix');\n  }\n}\n\nfunction xrange(n, exception) {\n  let range = [];\n  for (let i = 0; i < n; i++) {\n    if (i !== exception) {\n      range.push(i);\n    }\n  }\n  return range;\n}\n\nfunction dependenciesOneRow(\n  error,\n  matrix,\n  index,\n  thresholdValue = 10e-10,\n  thresholdError = 10e-10,\n) {\n  if (error > thresholdError) {\n    return new Array(matrix.rows + 1).fill(0);\n  } else {\n    let returnArray = matrix.addRow(index, [0]);\n    for (let i = 0; i < returnArray.rows; i++) {\n      if (Math.abs(returnArray.get(i, 0)) < thresholdValue) {\n        returnArray.set(i, 0, 0);\n      }\n    }\n    return returnArray.to1DArray();\n  }\n}\n\nfunction linearDependencies(matrix, options = {}) {\n  const { thresholdValue = 10e-10, thresholdError = 10e-10 } = options;\n  matrix = Matrix.checkMatrix(matrix);\n\n  let n = matrix.rows;\n  let results = new Matrix(n, n);\n\n  for (let i = 0; i < n; i++) {\n    let b = Matrix.columnVector(matrix.getRow(i));\n    let Abis = matrix.subMatrixRow(xrange(n, i)).transpose();\n    let svd = new SingularValueDecomposition(Abis);\n    let x = svd.solve(b);\n    // The residual scales with the row it explains; the coefficients don't.\n    let scale = Matrix.abs(b).max() || 1;\n    let error = Matrix.sub(b, Abis.mmul(x)).abs().max() / scale;\n    results.setRow(\n      i,\n      dependenciesOneRow(error, x, i, thresholdValue, thresholdError),\n    );\n  }\n  return results;\n}\n\nfunction pseudoInverse(matrix, threshold = Number.EPSILON) {\n  matrix = Matrix.checkMatrix(matrix);\n  if (matrix.isEmpty()) {\n    // with a zero dimension, the pseudo-inverse is the transpose, since all 0xn and nx0 matrices are singular\n    // (0xn)*(nx0)*(0xn) = 0xn\n    // (nx0)*(0xn)*(nx0) = nx0\n    return matrix.transpose();\n  }\n  let svdSolution = new SingularValueDecomposition(matrix, { autoTranspose: true });\n\n  let U = svdSolution.leftSingularVectors;\n  let V = svdSolution.rightSingularVectors;\n  let s = svdSolution.diagonal;\n\n  // Singular values scale with the matrix, so the cutoff must too. Same\n  // tolerance as SVD.rank, and the `rcond * max(s)` rule used by LAPACK.\n  const cutoff = threshold * Math.max(matrix.rows, matrix.columns) * s[0];\n\n  for (let i = 0; i < s.length; i++) {\n    if (Math.abs(s[i]) > cutoff) {\n      s[i] = 1.0 / s[i];\n    } else {\n      s[i] = 0.0;\n    }\n  }\n\n  return V.mmul(Matrix.diag(s).mmul(U.transpose()));\n}\n\nfunction covariance(xMatrix, yMatrix = xMatrix, options = {}) {\n  xMatrix = new Matrix(xMatrix);\n  let yIsSame = false;\n  if (\n    typeof yMatrix === 'object' &&\n    !Matrix.isMatrix(yMatrix) &&\n    !isAnyArray(yMatrix)\n  ) {\n    options = yMatrix;\n    yMatrix = xMatrix;\n    yIsSame = true;\n  } else {\n    yMatrix = new Matrix(yMatrix);\n  }\n  if (xMatrix.rows !== yMatrix.rows) {\n    throw new TypeError('Both matrices must have the same number of rows');\n  }\n  const { center = true } = options;\n  if (center) {\n    xMatrix = xMatrix.center('column');\n    if (!yIsSame) {\n      yMatrix = yMatrix.center('column');\n    }\n  }\n  const cov = xMatrix.transposeMultiply(yMatrix);\n  for (let i = 0; i < cov.rows; i++) {\n    for (let j = 0; j < cov.columns; j++) {\n      cov.set(i, j, cov.get(i, j) * (1 / (xMatrix.rows - 1)));\n    }\n  }\n  return cov;\n}\n\nfunction correlation(xMatrix, yMatrix = xMatrix, options = {}) {\n  xMatrix = new Matrix(xMatrix);\n  let yIsSame = false;\n  if (\n    typeof yMatrix === 'object' &&\n    !Matrix.isMatrix(yMatrix) &&\n    !isAnyArray(yMatrix)\n  ) {\n    options = yMatrix;\n    yMatrix = xMatrix;\n    yIsSame = true;\n  } else {\n    yMatrix = new Matrix(yMatrix);\n  }\n  if (xMatrix.rows !== yMatrix.rows) {\n    throw new TypeError('Both matrices must have the same number of rows');\n  }\n\n  const { center = true, scale = true } = options;\n  if (center) {\n    xMatrix.center('column');\n    if (!yIsSame) {\n      yMatrix.center('column');\n    }\n  }\n  if (scale) {\n    xMatrix.scale('column');\n    if (!yIsSame) {\n      yMatrix.scale('column');\n    }\n  }\n\n  const sdx = xMatrix.standardDeviation('column', { unbiased: true });\n  const sdy = yIsSame\n    ? sdx\n    : yMatrix.standardDeviation('column', { unbiased: true });\n\n  const corr = xMatrix.transposeMultiply(yMatrix);\n  for (let i = 0; i < corr.rows; i++) {\n    for (let j = 0; j < corr.columns; j++) {\n      corr.set(\n        i,\n        j,\n        corr.get(i, j) * (1 / (sdx[i] * sdy[j])) * (1 / (xMatrix.rows - 1)),\n      );\n    }\n  }\n  return corr;\n}\n\nclass EigenvalueDecomposition {\n  constructor(matrix, options = {}) {\n    const { assumeSymmetric = false } = options;\n\n    matrix = WrapperMatrix2D.checkMatrix(matrix);\n    if (!matrix.isSquare()) {\n      throw new Error('Matrix is not a square matrix');\n    }\n\n    if (matrix.isEmpty()) {\n      throw new Error('Matrix must be non-empty');\n    }\n\n    let n = matrix.columns;\n    let V = new Matrix(n, n);\n    let d = new Float64Array(n);\n    let e = new Float64Array(n);\n    let value = matrix;\n    let i, j;\n\n    let isSymmetric = false;\n    if (assumeSymmetric) {\n      isSymmetric = true;\n    } else {\n      isSymmetric = matrix.isSymmetric();\n    }\n\n    if (isSymmetric) {\n      // tred2/tql2 access V almost exclusively down columns (the row index\n      // varies in the hot loops). Storing V transposed turns those into\n      // sequential row scans of the row-major backing store; we transpose it\n      // back to the logical layout before returning. V.get(j, i) holds the\n      // logical V(i, j).\n      for (i = 0; i < n; i++) {\n        for (j = 0; j < n; j++) {\n          V.set(j, i, value.get(i, j));\n        }\n      }\n      tred2(n, e, d, V);\n      tql2(n, e, d, V);\n      // V is square; restore the logical layout in place (no allocation).\n      transposeSquareInPlace(V);\n    } else {\n      // The non-symmetric path (orthes/hqr2) has two O(n^3) phases with opposite\n      // memory-layout preferences (the QR sweep favours column-major eigenvectors\n      // while the back-transform favours row-major), so a single transposed\n      // storage cannot help both. It is left in the original row-major layout.\n      let H = new Matrix(n, n);\n      let ort = new Float64Array(n);\n      for (j = 0; j < n; j++) {\n        for (i = 0; i < n; i++) {\n          H.set(i, j, value.get(i, j));\n        }\n      }\n      orthes(n, H, ort, V);\n      hqr2(n, e, d, V, H);\n    }\n\n    this.n = n;\n    this.e = e;\n    this.d = d;\n    this.V = V;\n  }\n\n  get realEigenvalues() {\n    return Array.from(this.d);\n  }\n\n  get imaginaryEigenvalues() {\n    return Array.from(this.e);\n  }\n\n  get eigenvectorMatrix() {\n    return this.V;\n  }\n\n  get diagonalMatrix() {\n    let n = this.n;\n    let e = this.e;\n    let d = this.d;\n    let X = new Matrix(n, n);\n    let i, j;\n    for (i = 0; i < n; i++) {\n      for (j = 0; j < n; j++) {\n        X.set(i, j, 0);\n      }\n      X.set(i, i, d[i]);\n      if (e[i] > 0) {\n        X.set(i, i + 1, e[i]);\n      } else if (e[i] < 0) {\n        X.set(i, i - 1, e[i]);\n      }\n    }\n    return X;\n  }\n}\n\nfunction tred2(n, e, d, V) {\n  let f, g, h, i, j, k, hh, scale;\n\n  for (j = 0; j < n; j++) {\n    d[j] = V.get(j, n - 1);\n  }\n\n  for (i = n - 1; i > 0; i--) {\n    scale = 0;\n    h = 0;\n    for (k = 0; k < i; k++) {\n      scale = scale + Math.abs(d[k]);\n    }\n\n    if (scale === 0) {\n      e[i] = d[i - 1];\n      for (j = 0; j < i; j++) {\n        d[j] = V.get(j, i - 1);\n        V.set(j, i, 0);\n        V.set(i, j, 0);\n      }\n    } else {\n      for (k = 0; k < i; k++) {\n        d[k] /= scale;\n        h += d[k] * d[k];\n      }\n\n      f = d[i - 1];\n      g = Math.sqrt(h);\n      if (f > 0) {\n        g = -g;\n      }\n\n      e[i] = scale * g;\n      h = h - f * g;\n      d[i - 1] = f - g;\n      for (j = 0; j < i; j++) {\n        e[j] = 0;\n      }\n\n      for (j = 0; j < i; j++) {\n        f = d[j];\n        V.set(i, j, f);\n        g = e[j] + V.get(j, j) * f;\n        for (k = j + 1; k <= i - 1; k++) {\n          g += V.get(j, k) * d[k];\n          e[k] += V.get(j, k) * f;\n        }\n        e[j] = g;\n      }\n\n      f = 0;\n      for (j = 0; j < i; j++) {\n        e[j] /= h;\n        f += e[j] * d[j];\n      }\n\n      hh = f / (h + h);\n      for (j = 0; j < i; j++) {\n        e[j] -= hh * d[j];\n      }\n\n      for (j = 0; j < i; j++) {\n        f = d[j];\n        g = e[j];\n        for (k = j; k <= i - 1; k++) {\n          V.set(j, k, V.get(j, k) - (f * e[k] + g * d[k]));\n        }\n        d[j] = V.get(j, i - 1);\n        V.set(j, i, 0);\n      }\n    }\n    d[i] = h;\n  }\n\n  for (i = 0; i < n - 1; i++) {\n    V.set(i, n - 1, V.get(i, i));\n    V.set(i, i, 1);\n    h = d[i + 1];\n    if (h !== 0) {\n      for (k = 0; k <= i; k++) {\n        d[k] = V.get(i + 1, k) / h;\n      }\n\n      for (j = 0; j <= i; j++) {\n        g = 0;\n        for (k = 0; k <= i; k++) {\n          g += V.get(i + 1, k) * V.get(j, k);\n        }\n        for (k = 0; k <= i; k++) {\n          V.set(j, k, V.get(j, k) - g * d[k]);\n        }\n      }\n    }\n\n    for (k = 0; k <= i; k++) {\n      V.set(i + 1, k, 0);\n    }\n  }\n\n  for (j = 0; j < n; j++) {\n    d[j] = V.get(j, n - 1);\n    V.set(j, n - 1, 0);\n  }\n\n  V.set(n - 1, n - 1, 1);\n  e[0] = 0;\n}\n\nfunction tql2(n, e, d, V) {\n  let g, h, i, j, k, l, m, p, r, dl1, c, c2, c3, el1, s, s2;\n\n  for (i = 1; i < n; i++) {\n    e[i - 1] = e[i];\n  }\n\n  e[n - 1] = 0;\n\n  let f = 0;\n  let tst1 = 0;\n  let eps = Number.EPSILON;\n\n  for (l = 0; l < n; l++) {\n    tst1 = Math.max(tst1, Math.abs(d[l]) + Math.abs(e[l]));\n    m = l;\n    while (m < n) {\n      if (Math.abs(e[m]) <= eps * tst1) {\n        break;\n      }\n      m++;\n    }\n\n    if (m > l) {\n      do {\n\n        g = d[l];\n        p = (d[l + 1] - g) / (2 * e[l]);\n        r = hypotenuse(p, 1);\n        if (p < 0) {\n          r = -r;\n        }\n\n        d[l] = e[l] / (p + r);\n        d[l + 1] = e[l] * (p + r);\n        dl1 = d[l + 1];\n        h = g - d[l];\n        for (i = l + 2; i < n; i++) {\n          d[i] -= h;\n        }\n\n        f = f + h;\n\n        p = d[m];\n        c = 1;\n        c2 = c;\n        c3 = c;\n        el1 = e[l + 1];\n        s = 0;\n        s2 = 0;\n        for (i = m - 1; i >= l; i--) {\n          c3 = c2;\n          c2 = c;\n          s2 = s;\n          g = c * e[i];\n          h = c * p;\n          r = hypotenuse(p, e[i]);\n          e[i + 1] = s * r;\n          s = e[i] / r;\n          c = p / r;\n          p = c * d[i] - s * g;\n          d[i + 1] = h + s * (c * g + s * d[i]);\n\n          for (k = 0; k < n; k++) {\n            h = V.get(i + 1, k);\n            V.set(i + 1, k, s * V.get(i, k) + c * h);\n            V.set(i, k, c * V.get(i, k) - s * h);\n          }\n        }\n\n        p = (-s * s2 * c3 * el1 * e[l]) / dl1;\n        e[l] = s * p;\n        d[l] = c * p;\n      } while (Math.abs(e[l]) > eps * tst1);\n    }\n    d[l] = d[l] + f;\n    e[l] = 0;\n  }\n\n  for (i = 0; i < n - 1; i++) {\n    k = i;\n    p = d[i];\n    for (j = i + 1; j < n; j++) {\n      if (d[j] < p) {\n        k = j;\n        p = d[j];\n      }\n    }\n\n    if (k !== i) {\n      d[k] = d[i];\n      d[i] = p;\n      for (j = 0; j < n; j++) {\n        p = V.get(i, j);\n        V.set(i, j, V.get(k, j));\n        V.set(k, j, p);\n      }\n    }\n  }\n}\n\nfunction orthes(n, H, ort, V) {\n  let low = 0;\n  let high = n - 1;\n  let f, g, h, i, j, m;\n  let scale;\n\n  for (m = low + 1; m <= high - 1; m++) {\n    scale = 0;\n    for (i = m; i <= high; i++) {\n      scale = scale + Math.abs(H.get(i, m - 1));\n    }\n\n    if (scale !== 0) {\n      h = 0;\n      for (i = high; i >= m; i--) {\n        ort[i] = H.get(i, m - 1) / scale;\n        h += ort[i] * ort[i];\n      }\n\n      g = Math.sqrt(h);\n      if (ort[m] > 0) {\n        g = -g;\n      }\n\n      h = h - ort[m] * g;\n      ort[m] = ort[m] - g;\n\n      for (j = m; j < n; j++) {\n        f = 0;\n        for (i = high; i >= m; i--) {\n          f += ort[i] * H.get(i, j);\n        }\n\n        f = f / h;\n        for (i = m; i <= high; i++) {\n          H.set(i, j, H.get(i, j) - f * ort[i]);\n        }\n      }\n\n      for (i = 0; i <= high; i++) {\n        f = 0;\n        for (j = high; j >= m; j--) {\n          f += ort[j] * H.get(i, j);\n        }\n\n        f = f / h;\n        for (j = m; j <= high; j++) {\n          H.set(i, j, H.get(i, j) - f * ort[j]);\n        }\n      }\n\n      ort[m] = scale * ort[m];\n      H.set(m, m - 1, scale * g);\n    }\n  }\n\n  for (i = 0; i < n; i++) {\n    for (j = 0; j < n; j++) {\n      V.set(i, j, i === j ? 1 : 0);\n    }\n  }\n\n  for (m = high - 1; m >= low + 1; m--) {\n    if (H.get(m, m - 1) !== 0) {\n      for (i = m + 1; i <= high; i++) {\n        ort[i] = H.get(i, m - 1);\n      }\n\n      for (j = m; j <= high; j++) {\n        g = 0;\n        for (i = m; i <= high; i++) {\n          g += ort[i] * V.get(i, j);\n        }\n\n        g = g / ort[m] / H.get(m, m - 1);\n        for (i = m; i <= high; i++) {\n          V.set(i, j, V.get(i, j) + g * ort[i]);\n        }\n      }\n    }\n  }\n}\n\nfunction hqr2(nn, e, d, V, H) {\n  let n = nn - 1;\n  let low = 0;\n  let high = nn - 1;\n  let eps = Number.EPSILON;\n  let exshift = 0;\n  let norm = 0;\n  let p = 0;\n  let q = 0;\n  let r = 0;\n  let s = 0;\n  let z = 0;\n  let iter = 0;\n  let i, j, k, l, m, t, w, x, y;\n  let ra, sa, vr, vi;\n  let notlast, cdivres;\n\n  for (i = 0; i < nn; i++) {\n    if (i < low || i > high) {\n      d[i] = H.get(i, i);\n      e[i] = 0;\n    }\n\n    for (j = Math.max(i - 1, 0); j < nn; j++) {\n      norm = norm + Math.abs(H.get(i, j));\n    }\n  }\n\n  while (n >= low) {\n    l = n;\n    while (l > low) {\n      s = Math.abs(H.get(l - 1, l - 1)) + Math.abs(H.get(l, l));\n      if (s === 0) {\n        s = norm;\n      }\n      if (Math.abs(H.get(l, l - 1)) < eps * s) {\n        break;\n      }\n      l--;\n    }\n\n    if (l === n) {\n      H.set(n, n, H.get(n, n) + exshift);\n      d[n] = H.get(n, n);\n      e[n] = 0;\n      n--;\n      iter = 0;\n    } else if (l === n - 1) {\n      w = H.get(n, n - 1) * H.get(n - 1, n);\n      p = (H.get(n - 1, n - 1) - H.get(n, n)) / 2;\n      q = p * p + w;\n      z = Math.sqrt(Math.abs(q));\n      H.set(n, n, H.get(n, n) + exshift);\n      H.set(n - 1, n - 1, H.get(n - 1, n - 1) + exshift);\n      x = H.get(n, n);\n\n      if (q >= 0) {\n        z = p >= 0 ? p + z : p - z;\n        d[n - 1] = x + z;\n        d[n] = d[n - 1];\n        if (z !== 0) {\n          d[n] = x - w / z;\n        }\n        e[n - 1] = 0;\n        e[n] = 0;\n        x = H.get(n, n - 1);\n        s = Math.abs(x) + Math.abs(z);\n        p = x / s;\n        q = z / s;\n        r = Math.sqrt(p * p + q * q);\n        p = p / r;\n        q = q / r;\n\n        for (j = n - 1; j < nn; j++) {\n          z = H.get(n - 1, j);\n          H.set(n - 1, j, q * z + p * H.get(n, j));\n          H.set(n, j, q * H.get(n, j) - p * z);\n        }\n\n        for (i = 0; i <= n; i++) {\n          z = H.get(i, n - 1);\n          H.set(i, n - 1, q * z + p * H.get(i, n));\n          H.set(i, n, q * H.get(i, n) - p * z);\n        }\n\n        for (i = low; i <= high; i++) {\n          z = V.get(i, n - 1);\n          V.set(i, n - 1, q * z + p * V.get(i, n));\n          V.set(i, n, q * V.get(i, n) - p * z);\n        }\n      } else {\n        d[n - 1] = x + p;\n        d[n] = x + p;\n        e[n - 1] = z;\n        e[n] = -z;\n      }\n\n      n = n - 2;\n      iter = 0;\n    } else {\n      x = H.get(n, n);\n      y = 0;\n      w = 0;\n      if (l < n) {\n        y = H.get(n - 1, n - 1);\n        w = H.get(n, n - 1) * H.get(n - 1, n);\n      }\n\n      if (iter === 10) {\n        exshift += x;\n        for (i = low; i <= n; i++) {\n          H.set(i, i, H.get(i, i) - x);\n        }\n        s = Math.abs(H.get(n, n - 1)) + Math.abs(H.get(n - 1, n - 2));\n        // eslint-disable-next-line no-multi-assign\n        x = y = 0.75 * s;\n        w = -0.4375 * s * s;\n      }\n\n      if (iter === 30) {\n        s = (y - x) / 2;\n        s = s * s + w;\n        if (s > 0) {\n          s = Math.sqrt(s);\n          if (y < x) {\n            s = -s;\n          }\n          s = x - w / ((y - x) / 2 + s);\n          for (i = low; i <= n; i++) {\n            H.set(i, i, H.get(i, i) - s);\n          }\n          exshift += s;\n          // eslint-disable-next-line no-multi-assign\n          x = y = w = 0.964;\n        }\n      }\n\n      iter = iter + 1;\n\n      m = n - 2;\n      while (m >= l) {\n        z = H.get(m, m);\n        r = x - z;\n        s = y - z;\n        p = (r * s - w) / H.get(m + 1, m) + H.get(m, m + 1);\n        q = H.get(m + 1, m + 1) - z - r - s;\n        r = H.get(m + 2, m + 1);\n        s = Math.abs(p) + Math.abs(q) + Math.abs(r);\n        p = p / s;\n        q = q / s;\n        r = r / s;\n        if (m === l) {\n          break;\n        }\n        if (\n          Math.abs(H.get(m, m - 1)) * (Math.abs(q) + Math.abs(r)) <\n          eps *\n            (Math.abs(p) *\n              (Math.abs(H.get(m - 1, m - 1)) +\n                Math.abs(z) +\n                Math.abs(H.get(m + 1, m + 1))))\n        ) {\n          break;\n        }\n        m--;\n      }\n\n      for (i = m + 2; i <= n; i++) {\n        H.set(i, i - 2, 0);\n        if (i > m + 2) {\n          H.set(i, i - 3, 0);\n        }\n      }\n\n      for (k = m; k <= n - 1; k++) {\n        notlast = k !== n - 1;\n        if (k !== m) {\n          p = H.get(k, k - 1);\n          q = H.get(k + 1, k - 1);\n          r = notlast ? H.get(k + 2, k - 1) : 0;\n          x = Math.abs(p) + Math.abs(q) + Math.abs(r);\n          if (x !== 0) {\n            p = p / x;\n            q = q / x;\n            r = r / x;\n          }\n        }\n\n        if (x === 0) {\n          break;\n        }\n\n        s = Math.sqrt(p * p + q * q + r * r);\n        if (p < 0) {\n          s = -s;\n        }\n\n        if (s !== 0) {\n          if (k !== m) {\n            H.set(k, k - 1, -s * x);\n          } else if (l !== m) {\n            H.set(k, k - 1, -H.get(k, k - 1));\n          }\n\n          p = p + s;\n          x = p / s;\n          y = q / s;\n          z = r / s;\n          q = q / p;\n          r = r / p;\n\n          for (j = k; j < nn; j++) {\n            p = H.get(k, j) + q * H.get(k + 1, j);\n            if (notlast) {\n              p = p + r * H.get(k + 2, j);\n              H.set(k + 2, j, H.get(k + 2, j) - p * z);\n            }\n\n            H.set(k, j, H.get(k, j) - p * x);\n            H.set(k + 1, j, H.get(k + 1, j) - p * y);\n          }\n\n          for (i = 0; i <= Math.min(n, k + 3); i++) {\n            p = x * H.get(i, k) + y * H.get(i, k + 1);\n            if (notlast) {\n              p = p + z * H.get(i, k + 2);\n              H.set(i, k + 2, H.get(i, k + 2) - p * r);\n            }\n\n            H.set(i, k, H.get(i, k) - p);\n            H.set(i, k + 1, H.get(i, k + 1) - p * q);\n          }\n\n          for (i = low; i <= high; i++) {\n            p = x * V.get(i, k) + y * V.get(i, k + 1);\n            if (notlast) {\n              p = p + z * V.get(i, k + 2);\n              V.set(i, k + 2, V.get(i, k + 2) - p * r);\n            }\n\n            V.set(i, k, V.get(i, k) - p);\n            V.set(i, k + 1, V.get(i, k + 1) - p * q);\n          }\n        }\n      }\n    }\n  }\n\n  if (norm === 0) {\n    return;\n  }\n\n  for (n = nn - 1; n >= 0; n--) {\n    p = d[n];\n    q = e[n];\n\n    if (q === 0) {\n      l = n;\n      H.set(n, n, 1);\n      for (i = n - 1; i >= 0; i--) {\n        w = H.get(i, i) - p;\n        r = 0;\n        for (j = l; j <= n; j++) {\n          r = r + H.get(i, j) * H.get(j, n);\n        }\n\n        if (e[i] < 0) {\n          z = w;\n          s = r;\n        } else {\n          l = i;\n          if (e[i] === 0) {\n            H.set(i, n, w !== 0 ? -r / w : -r / (eps * norm));\n          } else {\n            x = H.get(i, i + 1);\n            y = H.get(i + 1, i);\n            q = (d[i] - p) * (d[i] - p) + e[i] * e[i];\n            t = (x * s - z * r) / q;\n            H.set(i, n, t);\n            H.set(\n              i + 1,\n              n,\n              Math.abs(x) > Math.abs(z) ? (-r - w * t) / x : (-s - y * t) / z,\n            );\n          }\n\n          t = Math.abs(H.get(i, n));\n          if (eps * t * t > 1) {\n            for (j = i; j <= n; j++) {\n              H.set(j, n, H.get(j, n) / t);\n            }\n          }\n        }\n      }\n    } else if (q < 0) {\n      l = n - 1;\n\n      if (Math.abs(H.get(n, n - 1)) > Math.abs(H.get(n - 1, n))) {\n        H.set(n - 1, n - 1, q / H.get(n, n - 1));\n        H.set(n - 1, n, -(H.get(n, n) - p) / H.get(n, n - 1));\n      } else {\n        cdivres = cdiv(0, -H.get(n - 1, n), H.get(n - 1, n - 1) - p, q);\n        H.set(n - 1, n - 1, cdivres[0]);\n        H.set(n - 1, n, cdivres[1]);\n      }\n\n      H.set(n, n - 1, 0);\n      H.set(n, n, 1);\n      for (i = n - 2; i >= 0; i--) {\n        ra = 0;\n        sa = 0;\n        for (j = l; j <= n; j++) {\n          ra = ra + H.get(i, j) * H.get(j, n - 1);\n          sa = sa + H.get(i, j) * H.get(j, n);\n        }\n\n        w = H.get(i, i) - p;\n\n        if (e[i] < 0) {\n          z = w;\n          r = ra;\n          s = sa;\n        } else {\n          l = i;\n          if (e[i] === 0) {\n            cdivres = cdiv(-ra, -sa, w, q);\n            H.set(i, n - 1, cdivres[0]);\n            H.set(i, n, cdivres[1]);\n          } else {\n            x = H.get(i, i + 1);\n            y = H.get(i + 1, i);\n            vr = (d[i] - p) * (d[i] - p) + e[i] * e[i] - q * q;\n            vi = (d[i] - p) * 2 * q;\n            if (vr === 0 && vi === 0) {\n              vr =\n                eps *\n                norm *\n                (Math.abs(w) +\n                  Math.abs(q) +\n                  Math.abs(x) +\n                  Math.abs(y) +\n                  Math.abs(z));\n            }\n            cdivres = cdiv(\n              x * r - z * ra + q * sa,\n              x * s - z * sa - q * ra,\n              vr,\n              vi,\n            );\n            H.set(i, n - 1, cdivres[0]);\n            H.set(i, n, cdivres[1]);\n            if (Math.abs(x) > Math.abs(z) + Math.abs(q)) {\n              H.set(\n                i + 1,\n                n - 1,\n                (-ra - w * H.get(i, n - 1) + q * H.get(i, n)) / x,\n              );\n              H.set(\n                i + 1,\n                n,\n                (-sa - w * H.get(i, n) - q * H.get(i, n - 1)) / x,\n              );\n            } else {\n              cdivres = cdiv(\n                -r - y * H.get(i, n - 1),\n                -s - y * H.get(i, n),\n                z,\n                q,\n              );\n              H.set(i + 1, n - 1, cdivres[0]);\n              H.set(i + 1, n, cdivres[1]);\n            }\n          }\n\n          t = Math.max(Math.abs(H.get(i, n - 1)), Math.abs(H.get(i, n)));\n          if (eps * t * t > 1) {\n            for (j = i; j <= n; j++) {\n              H.set(j, n - 1, H.get(j, n - 1) / t);\n              H.set(j, n, H.get(j, n) / t);\n            }\n          }\n        }\n      }\n    }\n  }\n\n  for (i = 0; i < nn; i++) {\n    if (i < low || i > high) {\n      for (j = i; j < nn; j++) {\n        V.set(i, j, H.get(i, j));\n      }\n    }\n  }\n\n  for (j = nn - 1; j >= low; j--) {\n    for (i = low; i <= high; i++) {\n      z = 0;\n      for (k = low; k <= Math.min(j, high); k++) {\n        z = z + V.get(i, k) * H.get(k, j);\n      }\n      V.set(i, j, z);\n    }\n  }\n}\n\nfunction cdiv(xr, xi, yr, yi) {\n  let r, d;\n  if (Math.abs(yr) > Math.abs(yi)) {\n    r = yi / yr;\n    d = yr + r * yi;\n    return [(xr + r * xi) / d, (xi - r * xr) / d];\n  } else {\n    r = yr / yi;\n    d = yi + r * yr;\n    return [(r * xr + xi) / d, (r * xi - xr) / d];\n  }\n}\n\nclass CholeskyDecomposition {\n  constructor(value) {\n    value = WrapperMatrix2D.checkMatrix(value);\n    if (!value.isSymmetric()) {\n      throw new Error('Matrix is not symmetric');\n    }\n\n    let a = value;\n    let dimension = a.rows;\n    let l = new Matrix(dimension, dimension);\n    let positiveDefinite = true;\n    let i, j, k;\n\n    for (j = 0; j < dimension; j++) {\n      let d = 0;\n      for (k = 0; k < j; k++) {\n        let s = 0;\n        for (i = 0; i < k; i++) {\n          s += l.get(k, i) * l.get(j, i);\n        }\n        s = (a.get(j, k) - s) / l.get(k, k);\n        l.set(j, k, s);\n        d = d + s * s;\n      }\n\n      d = a.get(j, j) - d;\n\n      positiveDefinite &&= d > 0;\n      l.set(j, j, Math.sqrt(Math.max(d, 0)));\n      for (k = j + 1; k < dimension; k++) {\n        l.set(j, k, 0);\n      }\n    }\n\n    this.L = l;\n    this.positiveDefinite = positiveDefinite;\n  }\n\n  isPositiveDefinite() {\n    return this.positiveDefinite;\n  }\n\n  solve(value) {\n    value = WrapperMatrix2D.checkMatrix(value);\n\n    let l = this.L;\n    let dimension = l.rows;\n\n    if (value.rows !== dimension) {\n      throw new Error('Matrix dimensions do not match');\n    }\n    if (this.isPositiveDefinite() === false) {\n      throw new Error('Matrix is not positive definite');\n    }\n\n    let count = value.columns;\n    let B = value.clone();\n    let i, j, k;\n\n    for (k = 0; k < dimension; k++) {\n      for (j = 0; j < count; j++) {\n        for (i = 0; i < k; i++) {\n          B.set(k, j, B.get(k, j) - B.get(i, j) * l.get(k, i));\n        }\n        B.set(k, j, B.get(k, j) / l.get(k, k));\n      }\n    }\n\n    for (k = dimension - 1; k >= 0; k--) {\n      for (j = 0; j < count; j++) {\n        for (i = k + 1; i < dimension; i++) {\n          B.set(k, j, B.get(k, j) - B.get(i, j) * l.get(i, k));\n        }\n        B.set(k, j, B.get(k, j) / l.get(k, k));\n      }\n    }\n\n    return B;\n  }\n\n  get lowerTriangularMatrix() {\n    return this.L;\n  }\n}\n\nclass nipals {\n  constructor(X, options = {}) {\n    X = WrapperMatrix2D.checkMatrix(X);\n    let { Y } = options;\n    const {\n      scaleScores = false,\n      maxIterations = 1000,\n      terminationCriteria = 1e-10,\n    } = options;\n\n    let u;\n    if (Y) {\n      if (isAnyArray(Y) && typeof Y[0] === 'number') {\n        Y = Matrix.columnVector(Y);\n      } else {\n        Y = WrapperMatrix2D.checkMatrix(Y);\n      }\n      if (Y.rows !== X.rows) {\n        throw new Error('Y should have the same number of rows as X');\n      }\n      u = Y.getColumnVector(0);\n    } else {\n      u = X.getColumnVector(0);\n    }\n\n    let diff = 1;\n    let t, q, w, tOld;\n\n    for (\n      let counter = 0;\n      counter < maxIterations && diff > terminationCriteria;\n      counter++\n    ) {\n      w = X.transpose().mmul(u).div(u.transpose().mmul(u).get(0, 0));\n      w = w.div(w.norm());\n\n      t = X.mmul(w).div(w.transpose().mmul(w).get(0, 0));\n\n      if (counter > 0) {\n        diff = t.clone().sub(tOld).pow(2).sum();\n      }\n      tOld = t.clone();\n\n      if (Y) {\n        q = Y.transpose().mmul(t).div(t.transpose().mmul(t).get(0, 0));\n        q = q.div(q.norm());\n\n        u = Y.mmul(q).div(q.transpose().mmul(q).get(0, 0));\n      } else {\n        u = t;\n      }\n    }\n\n    if (Y) {\n      let p = X.transpose().mmul(t).div(t.transpose().mmul(t).get(0, 0));\n      p = p.div(p.norm());\n      let xResidual = X.clone().sub(t.clone().mmul(p.transpose()));\n      let residual = u.transpose().mmul(t).div(t.transpose().mmul(t).get(0, 0));\n      let yResidual = Y.clone().sub(\n        t.clone().mulS(residual.get(0, 0)).mmul(q.transpose()),\n      );\n\n      this.t = t;\n      this.p = p.transpose();\n      this.w = w.transpose();\n      this.q = q;\n      this.u = u;\n      this.s = t.transpose().mmul(t);\n      this.xResidual = xResidual;\n      this.yResidual = yResidual;\n      this.betas = residual;\n    } else {\n      this.w = w.transpose();\n      this.s = t.transpose().mmul(t).sqrt();\n      if (scaleScores) {\n        this.t = t.clone().div(this.s.get(0, 0));\n      } else {\n        this.t = t;\n      }\n      this.xResidual = X.sub(t.mmul(w.transpose()));\n    }\n  }\n}\n\nexports.AbstractMatrix = AbstractMatrix;\nexports.CHO = CholeskyDecomposition;\nexports.CholeskyDecomposition = CholeskyDecomposition;\nexports.DistanceMatrix = DistanceMatrix;\nexports.EVD = EigenvalueDecomposition;\nexports.EigenvalueDecomposition = EigenvalueDecomposition;\nexports.LU = LuDecomposition;\nexports.LuDecomposition = LuDecomposition;\nexports.Matrix = Matrix;\nexports.MatrixColumnSelectionView = MatrixColumnSelectionView;\nexports.MatrixColumnView = MatrixColumnView;\nexports.MatrixFlipColumnView = MatrixFlipColumnView;\nexports.MatrixFlipRowView = MatrixFlipRowView;\nexports.MatrixRowSelectionView = MatrixRowSelectionView;\nexports.MatrixRowView = MatrixRowView;\nexports.MatrixSelectionView = MatrixSelectionView;\nexports.MatrixSubView = MatrixSubView;\nexports.MatrixTransposeView = MatrixTransposeView;\nexports.NIPALS = nipals;\nexports.Nipals = nipals;\nexports.QR = QrDecomposition;\nexports.QrDecomposition = QrDecomposition;\nexports.SVD = SingularValueDecomposition;\nexports.SingularValueDecomposition = SingularValueDecomposition;\nexports.SymmetricMatrix = SymmetricMatrix;\nexports.WrapperMatrix1D = WrapperMatrix1D;\nexports.WrapperMatrix2D = WrapperMatrix2D;\nexports.correlation = correlation;\nexports.covariance = covariance;\nexports.default = Matrix;\nexports.determinant = determinant;\nexports.inverse = inverse;\nexports.linearDependencies = linearDependencies;\nexports.pseudoInverse = pseudoInverse;\nexports.solve = solve;\nexports.wrap = wrap;\n//# sourceMappingURL=matrix.js.map\n","import * as matrix from './matrix.js';\n\nexport const AbstractMatrix = matrix.AbstractMatrix;\nexport const CHO = matrix.CHO;\nexport const CholeskyDecomposition = matrix.CholeskyDecomposition;\nexport const DistanceMatrix = matrix.DistanceMatrix;\nexport const EVD = matrix.EVD;\nexport const EigenvalueDecomposition = matrix.EigenvalueDecomposition;\nexport const LU = matrix.LU;\nexport const LuDecomposition = matrix.LuDecomposition;\nexport const Matrix = matrix.Matrix;\nexport const MatrixColumnSelectionView = matrix.MatrixColumnSelectionView;\nexport const MatrixColumnView = matrix.MatrixColumnView;\nexport const MatrixFlipColumnView = matrix.MatrixFlipColumnView;\nexport const MatrixFlipRowView = matrix.MatrixFlipRowView;\nexport const MatrixRowSelectionView = matrix.MatrixRowSelectionView;\nexport const MatrixRowView = matrix.MatrixRowView;\nexport const MatrixSelectionView = matrix.MatrixSelectionView;\nexport const MatrixSubView = matrix.MatrixSubView;\nexport const MatrixTransposeView = matrix.MatrixTransposeView;\nexport const NIPALS = matrix.NIPALS;\nexport const Nipals = matrix.Nipals;\nexport const QR = matrix.QR;\nexport const QrDecomposition = matrix.QrDecomposition;\nexport const SVD = matrix.SVD;\nexport const SingularValueDecomposition = matrix.SingularValueDecomposition;\nexport const SymmetricMatrix = matrix.SymmetricMatrix;\nexport const WrapperMatrix1D = matrix.WrapperMatrix1D;\nexport const WrapperMatrix2D = matrix.WrapperMatrix2D;\nexport const correlation = matrix.correlation;\nexport const covariance = matrix.covariance;\nexport default matrix.default.Matrix ? matrix.default.Matrix : matrix.Matrix;\nexport const determinant = matrix.determinant;\nexport const inverse = matrix.inverse;\nexport const linearDependencies = matrix.linearDependencies;\nexport const pseudoInverse = matrix.pseudoInverse;\nexport const solve = matrix.solve;\nexport const wrap = matrix.wrap;\n","import { Matrix } from 'ml-matrix';\nconst absDiff = (a, b) => Math.abs(a - b);\n/**\n * Generate a cost matrix from two set of values using the function passed. by default it\n * generate the cost matrix of absolute value of differences.\n * @param rowsArray - array of values that will represent the rows of the cost matrix.\n * @param columnsArray - array of values that will represent the columns of the cost matrix.\n * @param options - options.\n * @returns a matrix instance with dimensions rowsArray.length x columnsArray.length.\n */\nexport function xCostMatrix(rowsArray, columnsArray, options = {}) {\n    const { fct = absDiff } = options;\n    const nbRows = rowsArray.length;\n    const nbColumns = columnsArray.length;\n    const result = new Matrix(nbRows, nbColumns);\n    for (let r = 0; r < nbRows; r++) {\n        for (let c = 0; c < nbColumns; c++) {\n            result.set(r, c, fct(rowsArray[r], columnsArray[c]));\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=xCostMatrix.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xGetFromToIndex } from \"./xGetFromToIndex.js\";\n/**\n * Computes the mean value of an array of values.\n * @param array - array of numbers\n * @param options - options\n */\nexport function xMean(array, options = {}) {\n    xCheck(array);\n    const { fromIndex, toIndex } = xGetFromToIndex(array, options);\n    let sumValue = array[fromIndex];\n    for (let i = fromIndex + 1; i <= toIndex; i++) {\n        sumValue += array[i];\n    }\n    return sumValue / (toIndex - fromIndex + 1);\n}\n//# sourceMappingURL=xMean.js.map","import { xVariance } from \"./xVariance.js\";\n/**\n * Finds the standard deviation for the data at hand\n * @param values - values in the data\n * @param options - options\n * @returns standard deviation\n */\nexport function xStandardDeviation(values, options = {}) {\n    return Math.sqrt(xVariance(values, options));\n}\n//# sourceMappingURL=xStandardDeviation.js.map","import { isAnyArray } from 'is-any-array';\nimport { xMean } from \"./xMean.js\";\n/**\n * Finds the variance of the data\n * @param values - the values of the array\n * @param options - options\n * @returns variance\n */\nexport function xVariance(values, options = {}) {\n    if (!isAnyArray(values)) {\n        throw new TypeError('input must be an array');\n    }\n    const { unbiased = true, mean = xMean(values) } = options;\n    let sqrError = 0;\n    for (let i = 0; i < values.length; i++) {\n        const x = values[i] - mean;\n        sqrError += x * x;\n    }\n    if (unbiased) {\n        return sqrError / (values.length - 1);\n    }\n    else {\n        return sqrError / values.length;\n    }\n}\n//# sourceMappingURL=xVariance.js.map","import { xCheck } from \"./xCheck.js\";\n/**\n * Returns a copy of the data as a Float64Array.\n * @param array - array of numbers\n */\nexport function xEnsureFloat64(array) {\n    xCheck(array);\n    if (array instanceof Float64Array) {\n        return array.slice(0);\n    }\n    return Float64Array.from(array);\n}\n//# sourceMappingURL=xEnsureFloat64.js.map","'use strict';\n\nfunction FFT(size) {\n  this.size = size | 0;\n  if (this.size <= 1 || (this.size & (this.size - 1)) !== 0)\n    throw new Error('FFT size must be a power of two and bigger than 1');\n\n  this._csize = size << 1;\n\n  // NOTE: Use of `var` is intentional for old V8 versions\n  var table = new Array(this.size * 2);\n  for (var i = 0; i < table.length; i += 2) {\n    const angle = Math.PI * i / this.size;\n    table[i] = Math.cos(angle);\n    table[i + 1] = -Math.sin(angle);\n  }\n  this.table = table;\n\n  // Find size's power of two\n  var power = 0;\n  for (var t = 1; this.size > t; t <<= 1)\n    power++;\n\n  // Calculate initial step's width:\n  //   * If we are full radix-4 - it is 2x smaller to give inital len=8\n  //   * Otherwise it is the same as `power` to give len=4\n  this._width = power % 2 === 0 ? power - 1 : power;\n\n  // Pre-compute bit-reversal patterns\n  this._bitrev = new Array(1 << this._width);\n  for (var j = 0; j < this._bitrev.length; j++) {\n    this._bitrev[j] = 0;\n    for (var shift = 0; shift < this._width; shift += 2) {\n      var revShift = this._width - shift - 2;\n      this._bitrev[j] |= ((j >>> shift) & 3) << revShift;\n    }\n  }\n\n  this._out = null;\n  this._data = null;\n  this._inv = 0;\n}\nmodule.exports = FFT;\n\nFFT.prototype.fromComplexArray = function fromComplexArray(complex, storage) {\n  var res = storage || new Array(complex.length >>> 1);\n  for (var i = 0; i < complex.length; i += 2)\n    res[i >>> 1] = complex[i];\n  return res;\n};\n\nFFT.prototype.createComplexArray = function createComplexArray() {\n  const res = new Array(this._csize);\n  for (var i = 0; i < res.length; i++)\n    res[i] = 0;\n  return res;\n};\n\nFFT.prototype.toComplexArray = function toComplexArray(input, storage) {\n  var res = storage || this.createComplexArray();\n  for (var i = 0; i < res.length; i += 2) {\n    res[i] = input[i >>> 1];\n    res[i + 1] = 0;\n  }\n  return res;\n};\n\nFFT.prototype.completeSpectrum = function completeSpectrum(spectrum) {\n  var size = this._csize;\n  var half = size >>> 1;\n  for (var i = 2; i < half; i += 2) {\n    spectrum[size - i] = spectrum[i];\n    spectrum[size - i + 1] = -spectrum[i + 1];\n  }\n};\n\nFFT.prototype.transform = function transform(out, data) {\n  if (out === data)\n    throw new Error('Input and output buffers must be different');\n\n  this._out = out;\n  this._data = data;\n  this._inv = 0;\n  this._transform4();\n  this._out = null;\n  this._data = null;\n};\n\nFFT.prototype.realTransform = function realTransform(out, data) {\n  if (out === data)\n    throw new Error('Input and output buffers must be different');\n\n  this._out = out;\n  this._data = data;\n  this._inv = 0;\n  this._realTransform4();\n  this._out = null;\n  this._data = null;\n};\n\nFFT.prototype.inverseTransform = function inverseTransform(out, data) {\n  if (out === data)\n    throw new Error('Input and output buffers must be different');\n\n  this._out = out;\n  this._data = data;\n  this._inv = 1;\n  this._transform4();\n  for (var i = 0; i < out.length; i++)\n    out[i] /= this.size;\n  this._out = null;\n  this._data = null;\n};\n\n// radix-4 implementation\n//\n// NOTE: Uses of `var` are intentional for older V8 version that do not\n// support both `let compound assignments` and `const phi`\nFFT.prototype._transform4 = function _transform4() {\n  var out = this._out;\n  var size = this._csize;\n\n  // Initial step (permute and transform)\n  var width = this._width;\n  var step = 1 << width;\n  var len = (size / step) << 1;\n\n  var outOff;\n  var t;\n  var bitrev = this._bitrev;\n  if (len === 4) {\n    for (outOff = 0, t = 0; outOff < size; outOff += len, t++) {\n      const off = bitrev[t];\n      this._singleTransform2(outOff, off, step);\n    }\n  } else {\n    // len === 8\n    for (outOff = 0, t = 0; outOff < size; outOff += len, t++) {\n      const off = bitrev[t];\n      this._singleTransform4(outOff, off, step);\n    }\n  }\n\n  // Loop through steps in decreasing order\n  var inv = this._inv ? -1 : 1;\n  var table = this.table;\n  for (step >>= 2; step >= 2; step >>= 2) {\n    len = (size / step) << 1;\n    var quarterLen = len >>> 2;\n\n    // Loop through offsets in the data\n    for (outOff = 0; outOff < size; outOff += len) {\n      // Full case\n      var limit = outOff + quarterLen;\n      for (var i = outOff, k = 0; i < limit; i += 2, k += step) {\n        const A = i;\n        const B = A + quarterLen;\n        const C = B + quarterLen;\n        const D = C + quarterLen;\n\n        // Original values\n        const Ar = out[A];\n        const Ai = out[A + 1];\n        const Br = out[B];\n        const Bi = out[B + 1];\n        const Cr = out[C];\n        const Ci = out[C + 1];\n        const Dr = out[D];\n        const Di = out[D + 1];\n\n        // Middle values\n        const MAr = Ar;\n        const MAi = Ai;\n\n        const tableBr = table[k];\n        const tableBi = inv * table[k + 1];\n        const MBr = Br * tableBr - Bi * tableBi;\n        const MBi = Br * tableBi + Bi * tableBr;\n\n        const tableCr = table[2 * k];\n        const tableCi = inv * table[2 * k + 1];\n        const MCr = Cr * tableCr - Ci * tableCi;\n        const MCi = Cr * tableCi + Ci * tableCr;\n\n        const tableDr = table[3 * k];\n        const tableDi = inv * table[3 * k + 1];\n        const MDr = Dr * tableDr - Di * tableDi;\n        const MDi = Dr * tableDi + Di * tableDr;\n\n        // Pre-Final values\n        const T0r = MAr + MCr;\n        const T0i = MAi + MCi;\n        const T1r = MAr - MCr;\n        const T1i = MAi - MCi;\n        const T2r = MBr + MDr;\n        const T2i = MBi + MDi;\n        const T3r = inv * (MBr - MDr);\n        const T3i = inv * (MBi - MDi);\n\n        // Final values\n        const FAr = T0r + T2r;\n        const FAi = T0i + T2i;\n\n        const FCr = T0r - T2r;\n        const FCi = T0i - T2i;\n\n        const FBr = T1r + T3i;\n        const FBi = T1i - T3r;\n\n        const FDr = T1r - T3i;\n        const FDi = T1i + T3r;\n\n        out[A] = FAr;\n        out[A + 1] = FAi;\n        out[B] = FBr;\n        out[B + 1] = FBi;\n        out[C] = FCr;\n        out[C + 1] = FCi;\n        out[D] = FDr;\n        out[D + 1] = FDi;\n      }\n    }\n  }\n};\n\n// radix-2 implementation\n//\n// NOTE: Only called for len=4\nFFT.prototype._singleTransform2 = function _singleTransform2(outOff, off,\n                                                             step) {\n  const out = this._out;\n  const data = this._data;\n\n  const evenR = data[off];\n  const evenI = data[off + 1];\n  const oddR = data[off + step];\n  const oddI = data[off + step + 1];\n\n  const leftR = evenR + oddR;\n  const leftI = evenI + oddI;\n  const rightR = evenR - oddR;\n  const rightI = evenI - oddI;\n\n  out[outOff] = leftR;\n  out[outOff + 1] = leftI;\n  out[outOff + 2] = rightR;\n  out[outOff + 3] = rightI;\n};\n\n// radix-4\n//\n// NOTE: Only called for len=8\nFFT.prototype._singleTransform4 = function _singleTransform4(outOff, off,\n                                                             step) {\n  const out = this._out;\n  const data = this._data;\n  const inv = this._inv ? -1 : 1;\n  const step2 = step * 2;\n  const step3 = step * 3;\n\n  // Original values\n  const Ar = data[off];\n  const Ai = data[off + 1];\n  const Br = data[off + step];\n  const Bi = data[off + step + 1];\n  const Cr = data[off + step2];\n  const Ci = data[off + step2 + 1];\n  const Dr = data[off + step3];\n  const Di = data[off + step3 + 1];\n\n  // Pre-Final values\n  const T0r = Ar + Cr;\n  const T0i = Ai + Ci;\n  const T1r = Ar - Cr;\n  const T1i = Ai - Ci;\n  const T2r = Br + Dr;\n  const T2i = Bi + Di;\n  const T3r = inv * (Br - Dr);\n  const T3i = inv * (Bi - Di);\n\n  // Final values\n  const FAr = T0r + T2r;\n  const FAi = T0i + T2i;\n\n  const FBr = T1r + T3i;\n  const FBi = T1i - T3r;\n\n  const FCr = T0r - T2r;\n  const FCi = T0i - T2i;\n\n  const FDr = T1r - T3i;\n  const FDi = T1i + T3r;\n\n  out[outOff] = FAr;\n  out[outOff + 1] = FAi;\n  out[outOff + 2] = FBr;\n  out[outOff + 3] = FBi;\n  out[outOff + 4] = FCr;\n  out[outOff + 5] = FCi;\n  out[outOff + 6] = FDr;\n  out[outOff + 7] = FDi;\n};\n\n// Real input radix-4 implementation\nFFT.prototype._realTransform4 = function _realTransform4() {\n  var out = this._out;\n  var size = this._csize;\n\n  // Initial step (permute and transform)\n  var width = this._width;\n  var step = 1 << width;\n  var len = (size / step) << 1;\n\n  var outOff;\n  var t;\n  var bitrev = this._bitrev;\n  if (len === 4) {\n    for (outOff = 0, t = 0; outOff < size; outOff += len, t++) {\n      const off = bitrev[t];\n      this._singleRealTransform2(outOff, off >>> 1, step >>> 1);\n    }\n  } else {\n    // len === 8\n    for (outOff = 0, t = 0; outOff < size; outOff += len, t++) {\n      const off = bitrev[t];\n      this._singleRealTransform4(outOff, off >>> 1, step >>> 1);\n    }\n  }\n\n  // Loop through steps in decreasing order\n  var inv = this._inv ? -1 : 1;\n  var table = this.table;\n  for (step >>= 2; step >= 2; step >>= 2) {\n    len = (size / step) << 1;\n    var halfLen = len >>> 1;\n    var quarterLen = halfLen >>> 1;\n    var hquarterLen = quarterLen >>> 1;\n\n    // Loop through offsets in the data\n    for (outOff = 0; outOff < size; outOff += len) {\n      for (var i = 0, k = 0; i <= hquarterLen; i += 2, k += step) {\n        var A = outOff + i;\n        var B = A + quarterLen;\n        var C = B + quarterLen;\n        var D = C + quarterLen;\n\n        // Original values\n        var Ar = out[A];\n        var Ai = out[A + 1];\n        var Br = out[B];\n        var Bi = out[B + 1];\n        var Cr = out[C];\n        var Ci = out[C + 1];\n        var Dr = out[D];\n        var Di = out[D + 1];\n\n        // Middle values\n        var MAr = Ar;\n        var MAi = Ai;\n\n        var tableBr = table[k];\n        var tableBi = inv * table[k + 1];\n        var MBr = Br * tableBr - Bi * tableBi;\n        var MBi = Br * tableBi + Bi * tableBr;\n\n        var tableCr = table[2 * k];\n        var tableCi = inv * table[2 * k + 1];\n        var MCr = Cr * tableCr - Ci * tableCi;\n        var MCi = Cr * tableCi + Ci * tableCr;\n\n        var tableDr = table[3 * k];\n        var tableDi = inv * table[3 * k + 1];\n        var MDr = Dr * tableDr - Di * tableDi;\n        var MDi = Dr * tableDi + Di * tableDr;\n\n        // Pre-Final values\n        var T0r = MAr + MCr;\n        var T0i = MAi + MCi;\n        var T1r = MAr - MCr;\n        var T1i = MAi - MCi;\n        var T2r = MBr + MDr;\n        var T2i = MBi + MDi;\n        var T3r = inv * (MBr - MDr);\n        var T3i = inv * (MBi - MDi);\n\n        // Final values\n        var FAr = T0r + T2r;\n        var FAi = T0i + T2i;\n\n        var FBr = T1r + T3i;\n        var FBi = T1i - T3r;\n\n        out[A] = FAr;\n        out[A + 1] = FAi;\n        out[B] = FBr;\n        out[B + 1] = FBi;\n\n        // Output final middle point\n        if (i === 0) {\n          var FCr = T0r - T2r;\n          var FCi = T0i - T2i;\n          out[C] = FCr;\n          out[C + 1] = FCi;\n          continue;\n        }\n\n        // Do not overwrite ourselves\n        if (i === hquarterLen)\n          continue;\n\n        // In the flipped case:\n        // MAi = -MAi\n        // MBr=-MBi, MBi=-MBr\n        // MCr=-MCr\n        // MDr=MDi, MDi=MDr\n        var ST0r = T1r;\n        var ST0i = -T1i;\n        var ST1r = T0r;\n        var ST1i = -T0i;\n        var ST2r = -inv * T3i;\n        var ST2i = -inv * T3r;\n        var ST3r = -inv * T2i;\n        var ST3i = -inv * T2r;\n\n        var SFAr = ST0r + ST2r;\n        var SFAi = ST0i + ST2i;\n\n        var SFBr = ST1r + ST3i;\n        var SFBi = ST1i - ST3r;\n\n        var SA = outOff + quarterLen - i;\n        var SB = outOff + halfLen - i;\n\n        out[SA] = SFAr;\n        out[SA + 1] = SFAi;\n        out[SB] = SFBr;\n        out[SB + 1] = SFBi;\n      }\n    }\n  }\n};\n\n// radix-2 implementation\n//\n// NOTE: Only called for len=4\nFFT.prototype._singleRealTransform2 = function _singleRealTransform2(outOff,\n                                                                     off,\n                                                                     step) {\n  const out = this._out;\n  const data = this._data;\n\n  const evenR = data[off];\n  const oddR = data[off + step];\n\n  const leftR = evenR + oddR;\n  const rightR = evenR - oddR;\n\n  out[outOff] = leftR;\n  out[outOff + 1] = 0;\n  out[outOff + 2] = rightR;\n  out[outOff + 3] = 0;\n};\n\n// radix-4\n//\n// NOTE: Only called for len=8\nFFT.prototype._singleRealTransform4 = function _singleRealTransform4(outOff,\n                                                                     off,\n                                                                     step) {\n  const out = this._out;\n  const data = this._data;\n  const inv = this._inv ? -1 : 1;\n  const step2 = step * 2;\n  const step3 = step * 3;\n\n  // Original values\n  const Ar = data[off];\n  const Br = data[off + step];\n  const Cr = data[off + step2];\n  const Dr = data[off + step3];\n\n  // Pre-Final values\n  const T0r = Ar + Cr;\n  const T1r = Ar - Cr;\n  const T2r = Br + Dr;\n  const T3r = inv * (Br - Dr);\n\n  // Final values\n  const FAr = T0r + T2r;\n\n  const FBr = T1r;\n  const FBi = -T3r;\n\n  const FCr = T0r - T2r;\n\n  const FDr = T1r;\n  const FDi = T3r;\n\n  out[outOff] = FAr;\n  out[outOff + 1] = 0;\n  out[outOff + 2] = FBr;\n  out[outOff + 3] = FBi;\n  out[outOff + 4] = FCr;\n  out[outOff + 5] = 0;\n  out[outOff + 6] = FDr;\n  out[outOff + 7] = FDi;\n};\n","const LITTLE_ENDIAN = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n/**\n * Check whether the host stores multi-byte values least significant byte first.\n * Needed whenever a typed array is reinterpreted through another view, because\n * the position of the words of a value then depends on the platform.\n * @returns true on a little-endian host.\n */\nexport function isLittleEndian() {\n    return LITTLE_ENDIAN;\n}\n//# sourceMappingURL=isLittleEndian.js.map","import FFT from 'fft.js';\n// An FFT instance precomputes size-dependent twiddle factors and a bit-reversal\n// table; for a 64k transform that setup dominates the cost. A single shared\n// cache keeps one instance per size so every FFT-based function in the library\n// (spectra, matrices, Hilbert transforms…) reuses it instead of rebuilding the\n// tables on each call.\nclass FFTCache {\n    #maxSize;\n    #instances = new Map();\n    constructor(maxSize = 1) {\n        this.#maxSize = maxSize;\n    }\n    get maxSize() {\n        return this.#maxSize;\n    }\n    set maxSize(value) {\n        if (!Number.isInteger(value) || value < 1) {\n            throw new RangeError(`FFT cache size must be a positive integer, got ${value}.`);\n        }\n        this.#maxSize = value;\n        // Honour the new bound right away: if already over it, drop everything,\n        // matching the clear-when-full strategy used in get().\n        if (this.#instances.size > value)\n            this.#instances.clear();\n    }\n    get(size) {\n        let fft = this.#instances.get(size);\n        if (fft === undefined) {\n            // Bound the cache so transforming many different sizes cannot grow it\n            // without limit. Rather than track insertion order to evict a single\n            // entry, drop everything once full: distinct sizes are rare, so the\n            // common workload never hits this and stays at full speed.\n            if (this.#instances.size >= this.#maxSize)\n                this.#instances.clear();\n            fft = new FFT(size);\n            this.#instances.set(size, fft);\n        }\n        return fft;\n    }\n    clear() {\n        this.#instances.clear();\n    }\n}\n// Process-wide singleton: a single shared cache, like a static global, but kept\n// as an instance so its state stays fully encapsulated.\nconst fftCache = new FFTCache();\n/**\n * Returns a cached `fft.js` instance for the given transform size, building it\n * on first use. Shared by every FFT-based function in the library so the\n * size-dependent lookup tables are computed once and reused across calls.\n * @param size - number of points of the transform.\n * @returns a reusable FFT instance for that size.\n */\nexport function getFFT(size) {\n    return fftCache.get(size);\n}\n/**\n * Releases every cached FFT instance. The library keeps one FFT instance per\n * transform size to avoid rebuilding its lookup tables on each call; each\n * instance holds tables proportional to its size (≈1 MB for a 64k transform).\n * Call this to free that memory once you are done transforming — for example\n * after processing a batch of large spectra. Subsequent transforms simply\n * rebuild whatever sizes they need.\n */\nexport function clearFFTCache() {\n    fftCache.clear();\n}\n/**\n * Sets the maximum number of distinct transform sizes kept in the shared FFT\n * cache (default 1). When the cache is full and a new size is requested, the\n * whole cache is dropped and rebuilt on demand. Lowering the limit below the\n * current number of cached sizes clears the cache immediately.\n * @param maxSize - maximum number of cached sizes; must be a positive integer.\n */\nexport function setFFTCacheMaxSize(maxSize) {\n    fftCache.maxSize = maxSize;\n}\n//# sourceMappingURL=fftCache.js.map","export function createNumberArray(ArrayConstructor, length) {\n    if (ArrayConstructor === Array) {\n        return new ArrayConstructor(length).fill(0);\n    }\n    else {\n        return new ArrayConstructor(length);\n    }\n}\nexport function createDoubleArray(ArrayConstructor, length) {\n    if (ArrayConstructor === Array) {\n        return new ArrayConstructor(length).fill(0);\n    }\n    else {\n        return new ArrayConstructor(length);\n    }\n}\n//# sourceMappingURL=createArray.js.map","/**\n * Create an array with numbers between \"from\" and \"to\" of length \"length\"\n * @param options - options.\n * @returns array of distributed numbers between \"from\" and \"to\".\n */\nexport function createFromToArray(options = {}) {\n    const { from = 0, to = 1, length = 1000, includeFrom = true, includeTo = true, distribution = 'uniform', } = options;\n    const array = new Float64Array(length);\n    let div = length;\n    if (includeFrom && includeTo) {\n        div = length - 1;\n    }\n    else if ((!includeFrom && includeTo) || (includeFrom && !includeTo)) {\n        div = length;\n    }\n    else if (!includeFrom && !includeTo) {\n        div = length + 1;\n    }\n    const delta = (to - from) / div;\n    if (distribution === 'uniform') {\n        if (includeFrom) {\n            let index = 0;\n            while (index < length) {\n                array[index] = from + delta * index;\n                index++;\n            }\n        }\n        else {\n            let index = 0;\n            while (index < length) {\n                array[index] = from + delta * (index + 1);\n                index++;\n            }\n        }\n    }\n    else if (distribution === 'log') {\n        const base = (to / from) ** (1 / div);\n        const firstExponent = Math.log(from) / Math.log(base);\n        if (includeFrom) {\n            let index = 0;\n            while (index < length) {\n                array[index] = base ** (firstExponent + index);\n                index++;\n            }\n        }\n        else {\n            let index = 0;\n            while (index < length) {\n                array[index] = base ** (firstExponent + index + 1);\n                index++;\n            }\n        }\n    }\n    else {\n        throw new Error('distribution must be uniform or log');\n    }\n    return array;\n}\n//# sourceMappingURL=createFromToArray.js.map","/**\n * Check if a number is a power of two.\n * @param n - input number.\n */\nexport function isPowerOfTwo(n) {\n    return n !== 0 && (n & (n - 1)) === 0;\n}\n//# sourceMappingURL=isPowerOfTwo.js.map","/**\n * Get the size of the next power of two.\n * @param n - input number.\n */\nexport function nextPowerOfTwo(n) {\n    if (n === 0)\n        return 1;\n    n--;\n    n |= n >> 1;\n    n |= n >> 2;\n    n |= n >> 4;\n    n |= n >> 8;\n    n |= n >> 16;\n    return n + 1;\n}\n//# sourceMappingURL=nextPowerOfTwo.js.map","import { isAnyArray } from 'is-any-array';\n/**\n * This function xSubtract the first array by the second array or a constant value from each element of the first array\n * @param array1 - the array that will be rotated\n * @param array2 - second array or number\n * @returns array after subtraction\n */\nexport function xSubtract(array1, array2) {\n    let isConstant = false;\n    let constant = 0;\n    if (isAnyArray(array2)) {\n        if (array1.length !== array2.length) {\n            throw new Error('size of array1 and array2 must be identical');\n        }\n    }\n    else {\n        isConstant = true;\n        constant = array2;\n    }\n    const array3 = new Float64Array(array1.length);\n    if (isConstant) {\n        for (let i = 0; i < array1.length; i++) {\n            array3[i] = array1[i] - constant;\n        }\n    }\n    else {\n        for (let i = 0; i < array1.length; i++) {\n            array3[i] = array1[i] - array2[i];\n        }\n    }\n    return array3;\n}\n//# sourceMappingURL=xSubtract.js.map","import { xAbsolute } from \"../x/xAbsolute.js\";\nimport { xMedian } from \"../x/xMedian.js\";\nimport { xSubtract } from \"../x/xSubtract.js\";\n/**\n * Calculate the weights based on the control points and the MAD between the original data and the new baseline.\n * MAD (Median Absolute Deviation) is more robust to outliers and\n * the factor (1.4826) makes MAD scaled to be equivalent to the standard deviation for\n * normal distributions. {@link https://en.m.wikipedia.org/wiki/Median_absolute_deviation}.\n * @param yData - the original data.\n * @param baseline - the new baseline calculated.\n * @param weights - the current weights to be updated.\n * @param options - options for updating weights.\n * @returns new array of weights.\n */\nexport function calculateAdaptiveWeights(yData, baseline, weights, options) {\n    const { controlPoints, factorStd = 3, learningRate = 0.5 } = options;\n    if (learningRate === 0) {\n        return weights;\n    }\n    const absResiduals = xAbsolute(xSubtract(yData, baseline));\n    const medAbsRes = xMedian(absResiduals);\n    const mad = 1.4826 * medAbsRes;\n    const threshold = mad > 0 ? factorStd * mad : 1;\n    const rawWeights = new Float64Array(absResiduals.length);\n    for (let i = 0; i < absResiduals.length; i++) {\n        rawWeights[i] = Math.exp(-((absResiduals[i] / threshold) ** 2));\n    }\n    const oneMinusLearningRate = 1 - learningRate;\n    for (let i = 0; i < weights.length; i++) {\n        let weight = weights[i];\n        weight = (oneMinusLearningRate * weight + learningRate * rawWeights[i]) / 4;\n        if (controlPoints && controlPoints[i] > 0) {\n            weight *= 4;\n        }\n        weights[i] = weight;\n    }\n    weights[0] = 1;\n    weights[weights.length - 1] = 1;\n    return weights;\n}\n//# sourceMappingURL=calculateAdaptiveWeights.js.map","import { getFFT } from \"../utils/fftCache.js\";\nimport { isPowerOfTwo, nextPowerOfTwo } from \"../utils/index.js\";\nimport { xCheck } from \"./xCheck.js\";\n/**\n * Performs the Hilbert transform\n * @link https://en.wikipedia.org/wiki/Hilbert_transform\n * @param array - array containing values.\n * @param options - options.\n * @returns a new vector with 90 degree shift regarding the phase of the original function.\n */\nexport function xHilbertTransform(array, options = {}) {\n    xCheck(array);\n    const { forceFFT = false } = options;\n    const length = array.length;\n    if (isPowerOfTwo(length)) {\n        return hilbertTransformWithFFT(array);\n    }\n    else if (forceFFT) {\n        return resampling(hilbertTransformWithFFT(resampling(array, nextPowerOfTwo(length))), length);\n    }\n    else {\n        return hilbertTransform(array);\n    }\n}\n/**\n * Performs the discrete Hilbert transform using fast Fourier transform\n * @param array - array containing values.\n * @returns a new vector with 90 degree shift regarding the phase of the original function.\n * @see DOI: 10.1109/TAU.1970.1162139 \"Discrete Hilbert transform\"\n */\nfunction hilbertTransformWithFFT(array) {\n    const length = array.length;\n    const fft = getFFT(length);\n    // Single reusable buffer for FFT spectrum\n    const spectrum = new Float64Array(length * 2);\n    // Forward FFT\n    fft.realTransform(spectrum, array);\n    fft.completeSpectrum(spectrum);\n    const half = length >> 1;\n    // Zero Nyquist\n    const j = half << 1;\n    spectrum[j] = 0;\n    spectrum[j + 1] = 0;\n    // Negate negative frequencies\n    for (let j = (half + 1) << 1; j < spectrum.length; j += 2) {\n        spectrum[j] = -spectrum[j];\n        spectrum[j + 1] = -spectrum[j + 1];\n    }\n    const hilbertSignal = new Float64Array(length * 2);\n    fft.inverseTransform(hilbertSignal, spectrum);\n    // Extract imaginary part directly into output\n    const result = new Float64Array(length);\n    for (let i = 0; i < length; i++) {\n        result[i] = hilbertSignal[i * 2 + 1];\n    }\n    return result;\n}\n/**\n * Performs the discrete Hilbert transform\n * @param array - array containing values.\n * @param options - options.\n * @param options.inClockwise - whether to apply clockwise rotation.\n * @returns a new vector with 90 degree shift regarding the phase of the original function.\n */\nfunction hilbertTransform(array, options = {}) {\n    const { inClockwise = true } = options;\n    const input = [0, ...array, 0];\n    const result = new Float64Array(array.length);\n    for (let k = 1; k < input.length - 1; k++) {\n        let aSum = 0;\n        for (let i = 0; i < k - 1; i++) {\n            const log = Math.log((k - i) / (k - i - 1));\n            aSum += input[i] * log + (input[i + 1] - input[i]) * (-1 + (k - i) * log);\n        }\n        const b = input[k - 1] - input[k + 1];\n        let cSum = 0;\n        for (let i = k + 1; i < input.length - 1; i++) {\n            const log = Math.log((i - k) / (i - k + 1));\n            cSum += input[i] * log + (input[i - 1] - input[i]) * (1 + (i - k) * log);\n        }\n        result[k - 1] = ((inClockwise ? 1 : -1) * (aSum + b + cSum)) / Math.PI;\n    }\n    return result;\n}\n/**\n * Performs resampling of an input array to the desired length employing linear interpolation.\n * @param array - array containing values.\n * @param length - the length of the resulting array.\n * @returns a new array of the desired length.\n * @link https://en.wikipedia.org/wiki/Sample-rate_conversion\n */\nfunction resampling(array, length) {\n    xCheck(array);\n    const oldLength = array.length;\n    const ratio = (oldLength - 1) / (length - 1);\n    const result = new Float64Array(length);\n    let currentIndex = 0;\n    let floor = Math.floor(currentIndex);\n    let ceil = Math.min(Math.ceil(currentIndex), oldLength - 1);\n    let diff = currentIndex - floor;\n    for (let i = 0; i < length; i++) {\n        result[i] = array[floor] * (1 - diff) + array[ceil] * diff;\n        currentIndex += ratio;\n        floor = Math.floor(currentIndex);\n        ceil = Math.min(Math.ceil(currentIndex), oldLength - 1);\n        diff = currentIndex - floor;\n    }\n    return result;\n}\n//# sourceMappingURL=xHilbertTransform.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xGetFromToIndex } from \"./xGetFromToIndex.js\";\n/**\n * Computes the maximal value of an array of values\n * @param array - array of numbers\n * @param options - options\n */\nexport function xMaxValue(array, options = {}) {\n    xCheck(array);\n    const { fromIndex, toIndex } = xGetFromToIndex(array, options);\n    let maxValue = array[fromIndex];\n    for (let i = fromIndex + 1; i <= toIndex; i++) {\n        if (array[i] > maxValue) {\n            maxValue = array[i];\n        }\n    }\n    return maxValue;\n}\n//# sourceMappingURL=xMaxValue.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xGetFromToIndex } from \"./xGetFromToIndex.js\";\n/**\n * Computes the minimal value of an array of values.\n * @param array - array of numbers\n * @param options - options\n */\nexport function xMinValue(array, options = {}) {\n    xCheck(array);\n    const { fromIndex, toIndex } = xGetFromToIndex(array, options);\n    let minValue = array[fromIndex];\n    for (let i = fromIndex + 1; i <= toIndex; i++) {\n        if (array[i] < minValue) {\n            minValue = array[i];\n        }\n    }\n    return minValue;\n}\n//# sourceMappingURL=xMinValue.js.map","/**\n * Check if the values are separated always by the same difference\n * @param array - monotone growing array of number.\n * @param options - options.\n */\nexport function xIsEquallySpaced(array, options = {}) {\n    if (array.length < 3)\n        return true;\n    const { tolerance = 0.05 } = options;\n    let maxDx = 0;\n    let minDx = Number.MAX_SAFE_INTEGER;\n    for (let i = 0; i < array.length - 1; ++i) {\n        const absoluteDifference = array[i + 1] - array[i];\n        if (absoluteDifference < minDx) {\n            minDx = absoluteDifference;\n        }\n        if (absoluteDifference > maxDx) {\n            maxDx = absoluteDifference;\n        }\n    }\n    return (maxDx - minDx) / maxDx < tolerance;\n}\n//# sourceMappingURL=xIsEquallySpaced.js.map","/**\n * Returns true if x is monotonic.\n * @param array - array of numbers.\n * @returns 1 if monotonic increasing, -1 if monotonic decreasing, 0 if not monotonic.\n */\nexport function xIsMonotonic(array) {\n    if (array.length < 2) {\n        return 1;\n    }\n    if (array[0] === array[1]) {\n        // maybe a constant series\n        for (let i = 1; i < array.length - 1; i++) {\n            if (array[i] !== array[i + 1])\n                return 0;\n        }\n        return 1;\n    }\n    if (array[0] < array.at(-1)) {\n        for (let i = 0; i < array.length - 1; i++) {\n            if (array[i] >= array[i + 1])\n                return 0;\n        }\n        return 1;\n    }\n    else {\n        for (let i = 0; i < array.length - 1; i++) {\n            if (array[i] <= array[i + 1])\n                return 0;\n        }\n        return -1;\n    }\n}\n//# sourceMappingURL=xIsMonotonic.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xGetFromToIndex } from \"./xGetFromToIndex.js\";\n/**\n * Computes the maximal value of an array of values\n * @param array - array of numbers\n * @param options - options\n */\nexport function xMaxAbsoluteValue(array, options = {}) {\n    xCheck(array);\n    const { fromIndex, toIndex } = xGetFromToIndex(array, options);\n    let maxValue = Math.abs(array[fromIndex]);\n    for (let i = fromIndex + 1; i <= toIndex; i++) {\n        if (array[i] >= 0) {\n            if (array[i] > maxValue) {\n                maxValue = array[i];\n            }\n        }\n        else if (-array[i] > maxValue) {\n            maxValue = -array[i];\n        }\n    }\n    return maxValue;\n}\n//# sourceMappingURL=xMaxAbsoluteValue.js.map","import { xCheck } from \"./xCheck.js\";\n/**\n * Return min and max values of an array.\n * @param array - array of number\n * @returns object with 2 properties, min and max.\n */\nexport function xMinMaxValues(array) {\n    xCheck(array);\n    let min = array[0];\n    let max = array[0];\n    for (let i = 1; i < array.length; i++) {\n        const value = array[i];\n        if (value < min)\n            min = value;\n        else if (value > max)\n            max = value;\n    }\n    return { min, max };\n}\n//# sourceMappingURL=xMinMaxValues.js.map","import { isAnyArray } from 'is-any-array';\nimport { getOutputArray } from \"./getOutputArray.js\";\n/**\n * This function xMultiply the first array by the second array or a constant value to each element of the first array\n * @param array1 - first array\n * @param array2 - second array\n * @param options - options\n */\nexport function xMultiply(array1, array2, options = {}) {\n    let isConstant = false;\n    let constant = 0;\n    if (isAnyArray(array2)) {\n        if (array1.length !== array2.length) {\n            throw new Error('size of array1 and array2 must be identical');\n        }\n    }\n    else {\n        isConstant = true;\n        constant = array2;\n    }\n    const array3 = getOutputArray(options.output, array1.length);\n    if (isConstant) {\n        for (let i = 0; i < array1.length; i++) {\n            array3[i] = array1[i] * constant;\n        }\n    }\n    else {\n        for (let i = 0; i < array1.length; i++) {\n            array3[i] = array1[i] * array2[i];\n        }\n    }\n    return array3;\n}\n//# sourceMappingURL=xMultiply.js.map","/**\n * Applies the Rayleigh inverse cumulative distribution for a single value.\n * @param input - cumulative probability value.\n * @returns the inverse value for the Rayleigh distribution.\n */\nexport function simpleNormInvMagnitude(input) {\n    return -Math.sqrt(-2 * Math.log(1 - input));\n}\n//# sourceMappingURL=simpleNormInvMagnitude.js.map","/*\nAdapted from: https://github.com/compute-io/erfcinv/blob/aa116e23883839359e310ad41a7c42f72815fc1e/lib/number.js\n\nThe MIT License (MIT)\n\nCopyright (c) 2014-2015 The Compute.io Authors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nBoost Software License - Version 1.0 - August 17th, 2003\n\nPermission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the \"Software\") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:\n\nThe copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n/* eslint-disable no-loss-of-precision */\n// Coefficients for erfcinv on [0, 0.5]:\nconst Y1 = 8.91314744949340820313e-2;\nconst P1 = [\n    -5.38772965071242932965e-3, 8.22687874676915743155e-3,\n    2.19878681111168899165e-2, -3.65637971411762664006e-2,\n    -1.26926147662974029034e-2, 3.34806625409744615033e-2,\n    -8.36874819741736770379e-3, -5.08781949658280665617e-4,\n];\nconst Q1 = [\n    8.86216390456424707504e-4, -2.33393759374190016776e-3,\n    7.95283687341571680018e-2, -5.27396382340099713954e-2,\n    -7.1228902341542847553e-1, 6.62328840472002992063e-1, 1.56221558398423026363,\n    -1.56574558234175846809, -9.70005043303290640362e-1, 1,\n];\n// Coefficients for erfcinv for 0.5 > 1-x >= 0:\nconst Y2 = 2.249481201171875;\nconst P2 = [\n    -3.67192254707729348546, 2.11294655448340526258e1, 1.7445385985570866523e1,\n    -4.46382324441786960818e1, -1.88510648058714251895e1,\n    1.76447298408374015486e1, 8.37050328343119927838, 1.05264680699391713268e-1,\n    -2.02433508355938759655e-1,\n];\nconst Q2 = [\n    1.72114765761200282724, -2.26436933413139721736e1, 1.08268667355460159008e1,\n    4.85609213108739935468e1, -2.01432634680485188801e1,\n    -2.86608180499800029974e1, 3.9713437953343869095, 6.24264124854247537712, 1,\n];\n// Coefficients for erfcinv for sqrt( -log(1-x)):\nconst Y3 = 8.07220458984375e-1;\nconst P3 = [\n    -6.81149956853776992068e-10, 2.85225331782217055858e-8,\n    -6.79465575181126350155e-7, 2.14558995388805277169e-3,\n    2.90157910005329060432e-2, 1.42869534408157156766e-1,\n    3.37785538912035898924e-1, 3.87079738972604337464e-1,\n    1.17030156341995252019e-1, -1.63794047193317060787e-1,\n    -1.31102781679951906451e-1,\n];\nconst Q3 = [\n    1.105924229346489121e-2, 1.52264338295331783612e-1, 8.48854343457902036425e-1,\n    2.59301921623620271374, 4.77846592945843778382, 5.38168345707006855425,\n    3.46625407242567245975, 1,\n];\nconst Y4 = 9.3995571136474609375e-1;\nconst P4 = [\n    2.66339227425782031962e-12, -2.30404776911882601748e-10,\n    4.60469890584317994083e-6, 1.57544617424960554631e-4,\n    1.87123492819559223345e-3, 9.50804701325919603619e-3,\n    1.85573306514231072324e-2, -2.22426529213447927281e-3,\n    -3.50353787183177984712e-2,\n];\nconst Q4 = [\n    7.64675292302794483503e-5, 2.63861676657015992959e-3,\n    3.41589143670947727934e-2, 2.20091105764131249824e-1,\n    7.62059164553623404043e-1, 1.3653349817554063097, 1,\n];\nconst Y5 = 9.8362827301025390625e-1;\nconst P5 = [\n    9.9055709973310326855e-17, -2.81128735628831791805e-14,\n    4.62596163522878599135e-9, 4.49696789927706453732e-7,\n    1.49624783758342370182e-5, 2.09386317487588078668e-4,\n    1.05628862152492910091e-3, -1.12951438745580278863e-3,\n    -1.67431005076633737133e-2,\n];\nconst Q5 = [\n    2.82243172016108031869e-7, 2.75335474764726041141e-5,\n    9.64011807005165528527e-4, 1.60746087093676504695e-2,\n    1.38151865749083321638e-1, 5.91429344886417493481e-1, 1,\n];\n/**\n * Evaluates a polynomial at x using Horner's method.\n * @param c - array of polynomial coefficients.\n * @param x - evaluation point.\n * @returns polynomial value.\n */\nfunction polyval(c, x) {\n    let p = 0;\n    for (const coef of c) {\n        p = p * x + coef;\n    }\n    return p;\n}\n/**\n * Calculates a rational approximation.\n * @private\n * @param x - input value.\n * @param v - shift value.\n * @param P - array of numerator polynomial coefficients.\n * @param Q - array of denominator polynomial coefficients.\n * @param Y - scale factor.\n * @returns rational approximation.\n */\nfunction calc(x, v, P, Q, Y) {\n    const s = x - v;\n    const r = polyval(P, s) / polyval(Q, s);\n    return Y * x + r * x;\n}\n/**\n * Evaluates the complementary inverse error function for an input value.\n * @private\n * @param x - input value.\n * @returns evaluated complementary inverse error function.\n */\nexport default function erfcinv(x) {\n    let sign = false;\n    let val;\n    let q;\n    let g;\n    let r;\n    // [1] Special cases...\n    // NaN:\n    if (Number.isNaN(x)) {\n        return Number.NaN;\n    }\n    // x not on the interval: [0,2]\n    if (x < 0 || x > 2) {\n        throw new RangeError(`erfcinv()::invalid input argument. Value must be on the interval [0,2]. Value: \\`${x}\\`.`);\n    }\n    if (x === 0) {\n        return Number.POSITIVE_INFINITY;\n    }\n    if (x === 2) {\n        return Number.NEGATIVE_INFINITY;\n    }\n    if (x === 1) {\n        return 0;\n    }\n    // [2] Get the sign and make use of `erfc` reflection formula: `erfc(-z)=2 - erfc(z)`...\n    if (x > 1) {\n        q = 2 - x;\n        x = 1 - q;\n        sign = true;\n    }\n    else {\n        q = x;\n        x = 1 - x;\n    }\n    // [3] |x| <= 0.5\n    if (x <= 0.5) {\n        g = x * (x + 10);\n        r = polyval(P1, x) / polyval(Q1, x);\n        val = g * Y1 + g * r;\n        return sign ? -val : val;\n    }\n    // [4] 1-|x| >= 0.25\n    if (q >= 0.25) {\n        g = Math.sqrt(-2 * Math.log(q));\n        q = q - 0.25;\n        r = polyval(P2, q) / polyval(Q2, q);\n        val = g / (Y2 + r);\n        return sign ? -val : val;\n    }\n    q = Math.sqrt(-Math.log(q));\n    // [5] q < 3\n    if (q < 3) {\n        return calc(q, 1.125, P3, Q3, Y3);\n    }\n    // [6] q < 6\n    if (q < 6) {\n        return calc(q, 3, P4, Q4, Y4);\n    }\n    // Note that the smallest number in JavaScript is 5e-324. Math.sqrt( -Math.log( 5e-324 ) ) ~27.2844\n    return calc(q, 6, P5, Q5, Y5);\n    // Note that in the boost library, they are able to go to much smaller values, as 128 bit long doubles support ~1e-5000; something which JavaScript does not natively support.\n}\n//# sourceMappingURL=erfcinv.js.map","import erfcinv from \"./erfcinv.js\";\n/**\n * Applies the inverse of the normal cumulative distribution for a single value.\n * @param input - cumulative probability value.\n * @returns the inverse value for the normal distribution.\n */\nexport function simpleNormInvRaw(input) {\n    return -1 * Math.SQRT2 * erfcinv(2 * input);\n}\n//# sourceMappingURL=simpleNormInvRaw.js.map","import { isAnyArray } from 'is-any-array';\nimport { createFromToArray } from \"../utils/index.js\";\nimport { simpleNormInvMagnitude } from \"./utils/simpleNormInvMagnitude.js\";\nimport { simpleNormInvRaw } from \"./utils/simpleNormInvRaw.js\";\nimport { xEnsureFloat64 } from \"./xEnsureFloat64.js\";\n/**\n * Determine noise level by san plot methodology (https://doi.org/10.1002/mrc.4882)\n * @param array - real or magnitude spectra data.\n * @param options - options\n * @returns noise level\n */\nexport function xNoiseSanPlot(array, options = {}) {\n    const { mask, cutOffFromPositive = true, refine = true, magnitudeMode = false, scaleFactor = 1, factorStd = 5, fixOffset = true, } = options;\n    const input = prepareData(array, { scaleFactor, mask });\n    if (fixOffset && !magnitudeMode) {\n        const medianIndex = Math.floor(input.length / 2);\n        const median = input.length % 2 === 0\n            ? 0.5 * (input[medianIndex - 1] + input[medianIndex])\n            : input[medianIndex];\n        for (let i = 0; i < input.length; i++) {\n            input[i] -= median;\n        }\n    }\n    const firstNegativeValueIndex = input.at(-1) >= 0\n        ? input.length\n        : input.findIndex((e) => e < 0);\n    let lastPositiveValueIndex = firstNegativeValueIndex - 1;\n    for (let i = lastPositiveValueIndex; i >= 0; i--) {\n        if (input[i] > 0) {\n            lastPositiveValueIndex = i;\n            break;\n        }\n    }\n    const signPositive = input.slice(0, lastPositiveValueIndex + 1);\n    const signNegative = createNegativeSign(input, firstNegativeValueIndex);\n    const skyPoint = signPositive[0];\n    const cutOff = options.cutOff ??\n        (cutOffFromPositive\n            ? determineCutOff(signPositive, { magnitudeMode })\n            : null);\n    const noiseLevelPositive = calculateNoiseLevel(signPositive, {\n        factorStd,\n        refine,\n        magnitudeMode,\n        cutOff,\n    });\n    const noiseLevelNegative = calculateNoiseLevel(signNegative, {\n        factorStd,\n        refine,\n        magnitudeMode,\n        cutOff,\n    });\n    return {\n        positive: noiseLevelPositive,\n        negative: noiseLevelNegative,\n        snr: skyPoint / noiseLevelPositive,\n        sanplot: generateSanPlot(input, {\n            fromTo: {\n                positive: { from: 0, to: lastPositiveValueIndex },\n                negative: { from: firstNegativeValueIndex, to: input.length },\n            },\n        }),\n        percentiles: {\n            positive: getPercentiles(signPositive),\n            negative: getPercentiles(signNegative),\n        },\n    };\n}\nfunction calculateNoiseLevel(sign, options) {\n    const { factorStd, refine, magnitudeMode, cutOff } = options;\n    if (sign.length === 0)\n        return 0;\n    const simpleNormInvValue = magnitudeMode\n        ? simpleNormInvMagnitude\n        : simpleNormInvRaw;\n    const cutOffDist = cutOff || determineCutOff(sign, { magnitudeMode });\n    let noiseLevel = sign[Math.floor(sign.length * cutOffDist)];\n    let cloneSign = sign.slice();\n    let cutOffSignalsIndex = -1;\n    if (refine) {\n        const cutOffSignals = noiseLevel * factorStd;\n        cutOffSignalsIndex = sign.findIndex((e) => e < cutOffSignals);\n        if (cutOffSignalsIndex > -1) {\n            cloneSign = sign.slice(cutOffSignalsIndex);\n            noiseLevel = cloneSign[Math.floor(cloneSign.length * cutOffDist)];\n        }\n    }\n    if (refine && cutOffSignalsIndex > -1) {\n        const effectiveCutOffDist = (cutOffDist * cloneSign.length + cutOffSignalsIndex) /\n            (cloneSign.length + cutOffSignalsIndex);\n        const refinedCorrectionFactor = -1 * simpleNormInvValue(effectiveCutOffDist / 2);\n        noiseLevel /= refinedCorrectionFactor;\n    }\n    else {\n        const correctionFactor = -simpleNormInvValue(cutOffDist / 2);\n        noiseLevel /= correctionFactor;\n    }\n    return noiseLevel;\n}\n/**\n * Estimates where the \"noise region\" begins in a SAN-plot-style sorted\n * intensity series (Sheberstov et al., Magn. Reson. Chem. 2020, 58, 466-472,\n * https://doi.org/10.1002/mrc.4882).\n *\n * `signPositive` is expected to already be sorted by decreasing absolute\n * magnitude (the paper's S+ or S- series). For each quantile fraction `i`\n * (fraction of points at or beyond that position, counting from the tail),\n * we invert the Gaussian (or Rayleigh, in magnitude mode) order-statistics\n * relationship to get a local estimate of the noise standard deviation\n * (sigma). This estimate is only expected to be stable/flat once we are\n * fully inside the true noise region; in the signal and artifact regions\n * it will be biased and noisy. We therefore scan candidate quantile windows\n * and pick the one where the sigma estimates are most self-consistent\n * (lowest variance) - a proxy for \"where the noise region reliably starts\".\n * @param signPositive - an array of positive numbers.\n * @param options - optional parameters to configure the cut-off determination.\n * @param options.magnitudeMode - if true, uses magnitude mode for normalization. Default is false.\n * @param options.considerList - an object specifying the range and step for consideration.\n * @param options.considerList.from - the starting point of the range. Default is 0.5.\n * @param options.considerList.step - the step size for the range. Default is 0.1.\n * @param options.considerList.to - the ending point of the range. Default is 0.9.\n * @returns the optimal cut-off point as a number.\n */\nfunction determineCutOff(signPositive, options = {}) {\n    const { magnitudeMode = false, considerList = { from: 0.5, step: 0.1, to: 0.9 }, } = options;\n    const inverseQuantileFn = magnitudeMode\n        ? simpleNormInvMagnitude\n        : simpleNormInvRaw;\n    const indexMax = signPositive.length - 1;\n    // Ensure the configurable scan range stays inside the valid quantile domain.\n    const { from, to, step } = considerList;\n    const safeFrom = Math.min(Math.max(from, 0.001), 0.999);\n    const safeTo = Math.min(Math.max(to, 0.001), 0.999);\n    const safeStep = Math.max(0.001, Math.min(0.999, step));\n    const normalizedFrom = Math.min(safeFrom, safeTo);\n    const normalizedTo = Math.max(safeFrom, safeTo);\n    // For each quantile fraction, compute a local sigma estimate by inverting\n    // the theoretical relationship between order statistics and the assumed\n    // noise distribution (Gaussian or Rayleigh).\n    const sigmaEstimates = [];\n    const startQuantile = Math.max(0.001, normalizedFrom - safeStep / 2);\n    const endQuantile = Math.min(0.999, normalizedTo + safeStep / 2);\n    for (let quantileFraction = startQuantile; quantileFraction <= endQuantile; quantileFraction += 0.01) {\n        const index = Math.max(0, Math.min(indexMax, Math.round(indexMax * quantileFraction)));\n        const sigma = -signPositive[index] / inverseQuantileFn(quantileFraction / 2);\n        // Skip non-finite sigma estimates\n        if (Number.isFinite(sigma)) {\n            sigmaEstimates.push([quantileFraction, Math.abs(sigma)]);\n        }\n    }\n    const halfWindow = safeStep / 2;\n    let bestVariance = Number.MAX_SAFE_INTEGER;\n    let bestQuantileFraction = 0.5;\n    for (let windowCenter = normalizedFrom; windowCenter <= normalizedTo; windowCenter += safeStep) {\n        const windowFloor = windowCenter - halfWindow;\n        const windowTop = windowCenter + halfWindow;\n        let count = 0;\n        let sum = 0;\n        // First pass: compute mean\n        for (const [q, absSigma] of sigmaEstimates) {\n            if (q > windowFloor && q < windowTop) {\n                sum += absSigma;\n                count++;\n            }\n        }\n        // Guard against empty windows.\n        if (count === 0)\n            continue;\n        const meanSigma = sum / count;\n        // Second pass: compute variance\n        let variance = 0;\n        for (const [q, absSigma] of sigmaEstimates) {\n            if (q > windowFloor && q < windowTop) {\n                variance += (absSigma - meanSigma) ** 2;\n            }\n        }\n        if (variance < bestVariance) {\n            bestVariance = variance;\n            bestQuantileFraction = windowCenter;\n        }\n    }\n    return bestQuantileFraction;\n}\n/**\n * Generates a SAN plot from the given array based on the specified options.\n * @param array - the input array of numbers to be processed.\n * @param options - an optional object containing configuration options.\n * @param options.logBaseY - the logarithmic base for the Y-axis. Defaults to 2.\n * @param options.fromTo - an object specifying the range for each key. Each key maps to an object with `from` and `to` properties.\n * @returns an object where each key maps to a DataXY object containing the processed data.\n */\nfunction generateSanPlot(array, options = {}) {\n    const { fromTo, logBaseY = 2 } = options;\n    const sanplot = {};\n    for (const key in fromTo) {\n        const { from, to } = fromTo[key];\n        sanplot[key] =\n            from !== to\n                ? scale(array.slice(from, to), {\n                    logBaseY,\n                })\n                : { x: [], y: [] };\n        if (key === 'negative') {\n            sanplot[key].y.reverse();\n        }\n    }\n    return sanplot;\n}\n/**\n * Scales the input array based on the provided options.\n * @param array - the input array to be scaled.\n * @param options - an optional object containing scaling options.\n * @param options.logBaseY - if provided, the array values will be scaled using the logarithm of this base.\n * @returns an object containing the scaled x and y arrays.\n */\nfunction scale(array, options = {}) {\n    const { log10, abs } = Math;\n    const { logBaseY } = options;\n    if (logBaseY) {\n        array = array.slice(0);\n        const logOfBase = log10(logBaseY);\n        for (let i = 0; i < array.length; i++) {\n            array[i] = log10(abs(array[i])) / logOfBase;\n        }\n    }\n    const xAxis = createFromToArray({\n        from: 0,\n        to: array.length - 1,\n        length: array.length,\n    });\n    return { x: xAxis, y: array };\n}\nfunction createNegativeSign(array, from) {\n    const length = array.length - from;\n    const result = new Float64Array(length);\n    for (let i = 0; i < length; i++) {\n        result[i] = -array[array.length - 1 - i];\n    }\n    return result;\n}\n/**\n * Calculates intensity percentiles ranging from the 0th to the 100th percentile\n * (in 1 percentile increments) from a pre-sorted array.\n * @param sorted - a pre-sorted array of numbers.\n * @returns An array where index `p` contains the `p`th percentile.\n */\nfunction getPercentiles(sorted) {\n    const result = new Array(101).fill(0);\n    if (sorted.length === 0)\n        return result;\n    const maxIndex = sorted.length - 1;\n    for (let percentile = 0; percentile <= 100; percentile++) {\n        const ratio = percentile / 100;\n        const index = maxIndex - Math.floor(ratio * maxIndex);\n        result[percentile] = sorted[index];\n    }\n    return result;\n}\n/**\n * Prepares and processes the input data array based on the provided options.\n * @param array - The input array of numbers to be processed.\n * @param options - The configuration options for processing the data.\n * @returns A new Float64Array containing the processed data, scaled by the\n *          scaleFactor and sorted in descending order.\n */\nfunction prepareData(array, options) {\n    const { scaleFactor, mask } = options;\n    const input = xEnsureFloat64(isAnyArray(mask) && mask.length === array.length\n        ? array.filter((_e, i) => !mask[i])\n        : array);\n    if (scaleFactor > 1) {\n        for (let i = 0; i < input.length; i++) {\n            input[i] *= scaleFactor;\n        }\n    }\n    input.sort();\n    input.reverse();\n    return input;\n}\n//# sourceMappingURL=xNoiseSanPlot.js.map","import { xMedianAbsoluteDeviation } from \"./xMedianAbsoluteDeviation.js\";\n/**\n * Determine noise level using MAD https://en.wikipedia.org/wiki/Median_absolute_deviation\n * Constant to convert mad to sd calculated using https://www.wolframalpha.com/input?i=sqrt%282%29+inverse+erf%280.5%29\n * This assumes a gaussian distribution of the noise\n * @param array - array of numbers.\n * @returns noise level corresponding to one standard deviation.\n */\nexport function xNoiseStandardDeviation(array) {\n    const { mad, median } = xMedianAbsoluteDeviation(array);\n    return { sd: mad / 0.6744897501960817, mad, median };\n}\n//# sourceMappingURL=xNoiseStandardDeviation.js.map","import { xMedian } from \"./xMedian.js\";\n/**\n * This function calculates the median absolute deviation (MAD).\n * https://en.wikipedia.org/wiki/Median_absolute_deviation\n * @param array - array of numbers.\n */\nexport function xMedianAbsoluteDeviation(array) {\n    const median = xMedian(array);\n    const averageDeviations = new Float64Array(array.length);\n    for (let i = 0; i < array.length; i++) {\n        averageDeviations[i] = Math.abs(array[i] - median);\n    }\n    return {\n        median,\n        mad: xMedian(averageDeviations),\n    };\n}\n//# sourceMappingURL=xMedianAbsoluteDeviation.js.map","/**\n * This function calculate the norm of a vector.\n * @example xNorm([3, 4]) -> 5\n * @param array - array\n * @returns - calculated norm\n */\nexport function xNorm(array) {\n    let result = 0;\n    for (let i = 0; i < array.length; i++) {\n        const element = array[i];\n        result += element * element;\n    }\n    return Math.sqrt(result);\n}\n//# sourceMappingURL=xNorm.js.map","import { getOutputArray } from \"./getOutputArray.js\";\nimport { xCheck } from \"./xCheck.js\";\nimport { xMaxValue } from \"./xMaxValue.js\";\nimport { xSum } from \"./xSum.js\";\n/**\n * Divides the data with either the sum, the absolute sum or the maximum of the data\n * @param input - array containing values.\n * @param options - options.\n * @returns normalized data.\n */\nexport function xNormed(input, options = {}) {\n    const { algorithm = 'absolute', value = 1 } = options;\n    xCheck(input);\n    const output = getOutputArray(options.output, input.length);\n    if (input.length === 0) {\n        throw new Error('input must not be empty');\n    }\n    switch (algorithm) {\n        case 'absolute': {\n            const absoluteSumValue = absoluteSum(input) / value;\n            if (absoluteSumValue === 0) {\n                throw new Error('trying to divide by 0');\n            }\n            for (let i = 0; i < input.length; i++) {\n                output[i] = input[i] / absoluteSumValue;\n            }\n            return output;\n        }\n        case 'max': {\n            const currentMaxValue = xMaxValue(input);\n            if (currentMaxValue === 0) {\n                throw new Error('trying to divide by 0');\n            }\n            const factor = value / currentMaxValue;\n            for (let i = 0; i < input.length; i++) {\n                output[i] = input[i] * factor;\n            }\n            return output;\n        }\n        case 'sum': {\n            const sumFactor = xSum(input) / value;\n            if (sumFactor === 0) {\n                throw new Error('trying to divide by 0');\n            }\n            for (let i = 0; i < input.length; i++) {\n                output[i] = input[i] / sumFactor;\n            }\n            return output;\n        }\n        default:\n            throw new Error(`unknown algorithm: ${String(algorithm)}`);\n    }\n}\nfunction absoluteSum(input) {\n    let sumValue = 0;\n    for (let i = 0; i < input.length; i++) {\n        sumValue += Math.abs(input[i]);\n    }\n    return sumValue;\n}\n//# sourceMappingURL=xNormed.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xGetFromToIndex } from \"./xGetFromToIndex.js\";\n/**\n * Calculate the sum of the values\n * @param array - object that contains property x (an ordered increasing array) and y (an array).\n * @param options - options.\n * @returns sum value on the specified range.\n */\nexport function xSum(array, options = {}) {\n    xCheck(array);\n    const { fromIndex, toIndex } = xGetFromToIndex(array, options);\n    let sumValue = array[fromIndex];\n    for (let i = fromIndex + 1; i <= toIndex; i++) {\n        sumValue += array[i];\n    }\n    return sumValue;\n}\n//# sourceMappingURL=xSum.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xStandardDeviation } from \"./xStandardDeviation.js\";\n/**\n * Pareto scaling, which uses the square root of standard deviation as the scaling factor, circumvents the amplification of noise by retaining a small portion of magnitude information.\n * Noda, I. (2008). Scaling techniques to enhance two-dimensional correlation spectra. Journal of Molecular Structure, 883, 216-227.\n * DOI: 10.1016/j.molstruc.2007.12.026\n * @param array - array of number\n */\nexport function xParetoNormalization(array) {\n    xCheck(array);\n    const result = new Float64Array(array.length);\n    const sqrtSD = Math.sqrt(xStandardDeviation(array));\n    for (let i = 0; i < array.length; i++) {\n        result[i] = array[i] / sqrtSD;\n    }\n    return result;\n}\n//# sourceMappingURL=xParetoNormalization.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xPadding } from \"./xPadding.js\";\n/**\n * This function calculates a rolling average\n * @param array - array\n * @param fct - callback function that from an array returns a value\n * @param options - options\n */\nexport function xRolling(array, fct, options = {}) {\n    xCheck(array);\n    if (typeof fct !== 'function') {\n        throw new TypeError('fct must be a function');\n    }\n    const { window = 5, padding = {} } = options;\n    const { size = window - 1, algorithm, value } = padding;\n    const padded = xPadding(array, { size, algorithm, value }); // ensure we get a copy and it is float64\n    const newArray = [];\n    for (let i = 0; i < padded.length - window + 1; i++) {\n        // we will send a view to the original buffer\n        newArray.push(fct(padded.subarray(i, i + window)));\n    }\n    return newArray;\n}\n//# sourceMappingURL=xRolling.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xEnsureFloat64 } from \"./xEnsureFloat64.js\";\n/**\n * Pads an array symmetrically on both sides.\n * @param array - the array that will be padded\n * @param options - options\n * @returns padded Float64Array\n */\nexport function xPadding(array, options = {}) {\n    const { size = 0, value = 0, algorithm } = options;\n    xCheck(array);\n    if (!algorithm) {\n        return xEnsureFloat64(array);\n    }\n    const result = new Float64Array(array.length + size * 2);\n    for (let i = 0; i < array.length; i++) {\n        result[i + size] = array[i];\n    }\n    const fromEnd = size + array.length;\n    const toEnd = 2 * size + array.length;\n    switch (algorithm) {\n        case 'value':\n            for (let i = 0; i < size; i++) {\n                result[i] = value;\n            }\n            for (let i = fromEnd; i < toEnd; i++) {\n                result[i] = value;\n            }\n            break;\n        case 'duplicate':\n            for (let i = 0; i < size; i++) {\n                result[i] = array[0];\n            }\n            for (let i = fromEnd; i < toEnd; i++) {\n                result[i] = array.at(-1);\n            }\n            break;\n        case 'circular':\n            for (let i = 0; i < size; i++) {\n                result[i] =\n                    array[(array.length - (size % array.length) + i) % array.length];\n            }\n            for (let i = 0; i < size; i++) {\n                result[i + fromEnd] = array[i % array.length];\n            }\n            break;\n        default:\n            throw new Error(`unknown algorithm ${String(algorithm)}`);\n    }\n    return result;\n}\n//# sourceMappingURL=xPadding.js.map","import { createNumberArray } from \"../utils/index.js\";\nexport function xSequentialFillFromStep(parameters, options = {}) {\n    const { from, step, size } = parameters;\n    const { ArrayConstructor = Float64Array } = options;\n    const result = createNumberArray(ArrayConstructor, size);\n    for (let i = 0; i < size; i++) {\n        result[i] = from + i * step;\n    }\n    return result;\n}\n//# sourceMappingURL=xSequentialFillFromStep.js.map","import { xSequentialFillFromStep } from \"./xSequentialFillFromStep.js\";\nexport function xSequentialFillFromTo(parameters, options = {}) {\n    const { from, to, size } = parameters;\n    const step = size <= 1 ? 0 : (to - from) / (size - 1);\n    return xSequentialFillFromStep({ from, step, size }, options);\n}\n//# sourceMappingURL=xSequentialFillFromTo.js.map","import { createNumberArray } from \"../utils/index.js\";\n/**\n * Create a new matrix based on the size of the current one or by using specific dimensions.\n * @param options - options.\n */\nexport function matrixCreateEmpty(options) {\n    const { matrix, nbRows = matrix?.length || 1, nbColumns = matrix?.[0].length || 1, ArrayConstructor = Float64Array, } = options;\n    const newMatrix = [];\n    for (let row = 0; row < nbRows; row++) {\n        newMatrix.push(createNumberArray(ArrayConstructor, nbColumns));\n    }\n    return newMatrix;\n}\n//# sourceMappingURL=matrixCreateEmpty.js.map","export function matrixCheck(data) {\n    if (data.length === 0 || data[0].length === 0) {\n        throw new RangeError('matrix must contain data');\n    }\n    const firstLength = data[0].length;\n    for (let i = 1; i < data.length; i++) {\n        if (data[i].length !== firstLength) {\n            throw new RangeError('all rows must has the same length');\n        }\n    }\n}\n//# sourceMappingURL=matrixCheck.js.map","/*\nThe MIT License (MIT)\n\nCopyright (c) 2013 Eric Arnebäck\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n/**\n * Solves a system of linear equations using the Cholesky decomposition method.\n * It is a direct conversion to TS from {@link https://github.com/scijs/cholesky-solve}\n * @param nonZerosArray - the matrix in triplet form (array of arrays), where each sub-array contains three elements: row index, column index, and value.\n * @param dimension - the order of the matrix (number of rows/columns).\n * @param permutationEncoded - optional permutation array. If provided, it will be used to permute the matrix.\n * @returns a function that takes a right-hand side vector `b` and returns the solution vector `x`, or `null` if the decomposition fails.\n */\nexport function matrixCholeskySolver(nonZerosArray, dimension, permutationEncoded) {\n    if (permutationEncoded) {\n        const pinv = new Int32Array(dimension);\n        for (let k = 0; k < dimension; k++) {\n            pinv[permutationEncoded[k]] = k;\n        }\n        // Build a permuted copy (kept as plain arrays for compatibility)\n        const mt = new Array(nonZerosArray.length);\n        for (let a = 0; a < nonZerosArray.length; ++a) {\n            const [r, c, value] = nonZerosArray[a];\n            const ar = pinv[r];\n            const ac = pinv[c];\n            mt[a] = ac < ar ? [ac, ar, value] : [ar, ac, value];\n        }\n        nonZerosArray = mt;\n    }\n    else {\n        // use a typed identity permutation\n        const p = new Int32Array(dimension);\n        for (let i = 0; i < dimension; ++i) {\n            p[i] = i;\n        }\n        permutationEncoded = p;\n    }\n    const nnz = nonZerosArray.length;\n    const ap = new Int32Array(dimension + 1);\n    const ai = new Int32Array(nnz);\n    const ax = new Float64Array(nnz);\n    const lnz = new Int32Array(dimension);\n    for (let idx = 0; idx < nnz; idx++) {\n        const col = nonZerosArray[idx][1];\n        lnz[col]++;\n    }\n    ap[0] = 0;\n    for (let i = 0; i < dimension; ++i) {\n        ap[i + 1] = ap[i] + lnz[i];\n    }\n    const colOffset = new Int32Array(dimension);\n    for (let idx = 0; idx < nnz; idx++) {\n        const e = nonZerosArray[idx];\n        const col = e[1];\n        const adr = ap[col] + colOffset[col];\n        ai[adr] = e[0];\n        ax[adr] = e[2];\n        colOffset[col]++;\n    }\n    const d = new Float64Array(dimension);\n    const y = new Float64Array(dimension);\n    const lp = new Int32Array(dimension + 1);\n    const parent = new Int32Array(dimension);\n    const lnzArray = new Int32Array(dimension);\n    const flag = new Int32Array(dimension);\n    const pattern = new Int32Array(dimension);\n    const bp1 = new Float64Array(dimension);\n    const x = new Float64Array(dimension);\n    ldlSymbolic(dimension, ap, ai, lp, parent, lnzArray, flag);\n    const nz = lp[dimension];\n    const lx = new Float64Array(nz);\n    const li = new Int32Array(nz);\n    const result = ldlNumeric(dimension, ap, ai, ax, lp, parent, lnzArray, li, lx, d, y, pattern, flag);\n    if (result === dimension) {\n        return (b) => {\n            ldlPerm(dimension, bp1, b, permutationEncoded);\n            ldlLsolve(dimension, bp1, lp, li, lx);\n            ldlDsolve(dimension, bp1, d);\n            ldlLTsolve(dimension, bp1, lp, li, lx);\n            ldlPermt(dimension, x, bp1, permutationEncoded);\n            return x;\n        };\n    }\n    else {\n        return null;\n    }\n}\nfunction ldlSymbolic(dimension, ap, ai, lp, parent, lnz, flag) {\n    const apLoc = ap;\n    const aiLoc = ai;\n    const parentLoc = parent;\n    const lnzLoc = lnz;\n    const flagLoc = flag;\n    for (let k = 0; k < dimension; k++) {\n        parentLoc[k] = -1;\n        flagLoc[k] = k;\n        lnzLoc[k] = 0;\n        const kk = k;\n        const p2 = apLoc[kk + 1];\n        for (let p = apLoc[kk]; p < p2; p++) {\n            let i = aiLoc[p];\n            if (i < k) {\n                for (; flagLoc[i] !== k; i = parentLoc[i]) {\n                    if (parentLoc[i] === -1)\n                        parentLoc[i] = k;\n                    lnzLoc[i]++;\n                    flagLoc[i] = k;\n                }\n            }\n        }\n    }\n    lp[0] = 0;\n    for (let k = 0; k < dimension; k++) {\n        lp[k + 1] = lp[k] + lnz[k];\n    }\n}\nfunction ldlNumeric(dimension, ap, ai, ax, lp, parent, lnz, li, lx, d, y, pattern, flag) {\n    const apLoc = ap;\n    const aiLoc = ai;\n    const axLoc = ax;\n    const lpLoc = lp;\n    const parentLoc = parent;\n    const lnzLoc = lnz;\n    const liLoc = li;\n    const lxLoc = lx;\n    const dLoc = d;\n    const yLoc = y;\n    const patternLoc = pattern;\n    const flagLoc = flag;\n    let yi, lKi;\n    for (let k = 0; k < dimension; k++) {\n        yLoc[k] = 0;\n        let top = dimension;\n        flagLoc[k] = k;\n        lnzLoc[k] = 0;\n        const kk = k;\n        const p2col = apLoc[kk + 1];\n        for (let p = apLoc[kk]; p < p2col; p++) {\n            let i = aiLoc[p];\n            if (i <= k) {\n                yLoc[i] += axLoc[p];\n                let len = 0;\n                for (; flagLoc[i] !== k; i = parentLoc[i]) {\n                    patternLoc[len++] = i;\n                    flagLoc[i] = k;\n                }\n                while (len > 0)\n                    patternLoc[--top] = patternLoc[--len];\n            }\n        }\n        dLoc[k] = yLoc[k];\n        yLoc[k] = 0;\n        for (; top < dimension; top++) {\n            const i = patternLoc[top];\n            yi = yLoc[i];\n            yLoc[i] = 0;\n            const p2 = lpLoc[i] + lnzLoc[i];\n            let p;\n            for (p = lpLoc[i]; p < p2; p++) {\n                yLoc[liLoc[p]] -= lxLoc[p] * yi;\n            }\n            lKi = yi / dLoc[i];\n            dLoc[k] -= lKi * yi;\n            liLoc[p] = k;\n            lxLoc[p] = lKi;\n            lnzLoc[i]++;\n        }\n        if (dLoc[k] === 0)\n            return k;\n    }\n    return dimension;\n}\nfunction ldlLsolve(dimension, x, lp, li, lx) {\n    const lpLoc = lp;\n    const liLoc = li;\n    const lxLoc = lx;\n    const xLoc = x;\n    for (let j = 0; j < dimension; j++) {\n        const p2 = lpLoc[j + 1];\n        for (let p = lpLoc[j]; p < p2; p++) {\n            xLoc[liLoc[p]] -= lxLoc[p] * xLoc[j];\n        }\n    }\n}\nfunction ldlDsolve(dimension, x, d) {\n    const xLoc = x;\n    const dLoc = d;\n    for (let j = 0; j < dimension; j++) {\n        xLoc[j] /= dLoc[j];\n    }\n}\nfunction ldlLTsolve(dimension, x, lp, li, lx) {\n    const lpLoc = lp;\n    const liLoc = li;\n    const lxLoc = lx;\n    const xLoc = x;\n    for (let j = dimension - 1; j >= 0; j--) {\n        const p2 = lpLoc[j + 1];\n        for (let p = lpLoc[j]; p < p2; p++) {\n            xLoc[j] -= lxLoc[p] * xLoc[liLoc[p]];\n        }\n    }\n}\nfunction ldlPerm(dimension, x, b, permutationEncoded) {\n    const perm = permutationEncoded;\n    const xLoc = x;\n    const bLoc = b;\n    for (let j = 0; j < dimension; j++) {\n        xLoc[j] = bLoc[perm[j]];\n    }\n}\nfunction ldlPermt(dimension, x, b, permutationEncoded) {\n    const perm = permutationEncoded;\n    const xLoc = x;\n    const bLoc = b;\n    for (let j = 0; j < dimension; j++) {\n        xLoc[perm[j]] = bLoc[j];\n    }\n}\n//# sourceMappingURL=matrixCholeskySolver.js.map","/**\n * The MIT License (MIT)\n *\n * Copyright (c) 2013 Mikola Lysenko\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n/**\n * The reverse Cuthill-Mckee method is a fast and effective preconditioner for reducing the bandwidth of sparse linear systems.\n * When solving a positive semidefinite linear system using Cholesky factorization, it greatly reduces fill-in.\n * It is a direct conversion to TS from {@link github.com/mikolalysenko/cuthill-mckee}\n * @param list - lower triangular non zeros from a symmetric sparse matrix.\n * @param dimension - matrix dimension\n * @returns A Float64Array where the value at each index represents the new position of the node\n *          in the bandwidth-reduced ordering.\n */\nexport function matrixCuthillMckee(list, dimension) {\n    const adj = new Array(dimension);\n    const visited = new Array(dimension).fill(false);\n    for (let i = 0; i < dimension; ++i) {\n        adj[i] = [];\n    }\n    for (const l of list) {\n        adj[l[0]].push(l[1]);\n    }\n    const toVisit = new Float64Array(dimension);\n    let eol = 0;\n    let ptr = 0;\n    for (let i = 0; i < dimension; ++i) {\n        if (visited[i]) {\n            continue;\n        }\n        toVisit[eol++] = i;\n        visited[i] = true;\n        while (ptr < eol) {\n            const v = toVisit[ptr++];\n            const nbhd = Float64Array.from(adj[v]);\n            nbhd.sort();\n            for (const u of nbhd) {\n                if (visited[u]) {\n                    continue;\n                }\n                visited[u] = true;\n                toVisit[eol++] = u;\n            }\n        }\n    }\n    const result = new Float64Array(dimension);\n    for (let i = 0; i < dimension; ++i) {\n        result[toVisit[i]] = i;\n    }\n    return result;\n}\n//# sourceMappingURL=matrixCuthillMckee.js.map","import { matrixCheck } from \"./matrixCheck.js\";\n/**\n * Get min and max Z.\n * @param matrix - matrix [rows][cols].\n */\nexport function matrixMinMaxZ(matrix) {\n    matrixCheck(matrix);\n    const nbRows = matrix.length;\n    const nbColumns = matrix[0].length;\n    let min = matrix[0][0];\n    let max = matrix[0][0];\n    for (let column = 0; column < nbColumns; column++) {\n        for (let row = 0; row < nbRows; row++) {\n            if (matrix[row][column] < min)\n                min = matrix[row][column];\n            if (matrix[row][column] > max)\n                max = matrix[row][column];\n        }\n    }\n    return { min, max };\n}\n//# sourceMappingURL=matrixMinMaxZ.js.map","/**\n * add the provided weights to a particular given system matrix (lD'D) in the triplet form and y data. This function is not general\n * it assumes that diagonal coefficients are in the even indexes, it is the case of the matrix generated by createSystemMatrix function.\n * It simulates the matrix operation W + lD'D and Wy.\n * @param leftHandSide - the original system matrix to be updated, a lower triangular non-zeros of the system matrix (lambda D'D).\n * @param rightHandSide - the original vector to be updated.\n * @param weights - the weights to apply to the system matrix and vector.\n * @returns an object that contains the new left and right hand-side of the system.\n */\nexport function addWeights(leftHandSide, rightHandSide, weights) {\n    const nbPoints = rightHandSide.length;\n    const l = nbPoints - 1;\n    const newLeftHandSide = new Array(leftHandSide.length);\n    const newRightHandSide = new Float64Array(nbPoints);\n    for (let i = 0; i < l; i++) {\n        const w = weights[i];\n        const diag = i * 2;\n        const next = diag + 1;\n        newLeftHandSide[diag] = leftHandSide[diag].slice();\n        newLeftHandSide[next] = leftHandSide[next].slice();\n        newRightHandSide[i] = rightHandSide[i] * w;\n        newLeftHandSide[diag][2] += w;\n    }\n    newRightHandSide[l] = rightHandSide[l] * weights[l];\n    newLeftHandSide[l * 2] = leftHandSide[l * 2].slice();\n    newLeftHandSide[l * 2][2] += weights[l];\n    return {\n        leftHandSide: newLeftHandSide,\n        rightHandSide: newRightHandSide,\n    };\n}\n//# sourceMappingURL=addWeights.js.map","import { matrixCholeskySolver } from \"../matrix/index.js\";\nimport { addWeights } from \"../utils/addWeights.js\";\nimport { createSystemMatrix } from \"../utils/createSystemMatrix.js\";\nimport { calculateAdaptiveWeights } from \"../utils/index.js\";\nimport { xEnsureFloat64 } from \"./xEnsureFloat64.js\";\nimport { xMultiply } from \"./xMultiply.js\";\nexport function xWhittakerSmoother(yData, options = {}) {\n    const { algorithm = 'thomas', ...restOptions } = options;\n    if (algorithm === 'thomas') {\n        return whittakerByThomas(yData, restOptions);\n    }\n    return whittakerByCholesky(yData, restOptions);\n}\n/**\n * @deprecated Use xWhittakerSmoother instead.\n * TODO: Remove in next major version.\n */\nexport const xWhitakerSmoother = xWhittakerSmoother;\n/**\n * Computes the baseline points for the given data using an iterative smoothing algorithm.\n * @param yData - the input data array.\n * @param options - the options for baseline computation.\n * @returns the computed baseline points.\n */\nfunction whittakerByCholesky(yData, options = {}) {\n    const { lambda = 100, maxIterations = 100, tolerance = 1e-6, factorStd = 3, learningRate = 0.5, } = options;\n    const size = yData.length;\n    const { controlPoints, weights } = getWeightsAndControlPoints(yData, options);\n    const prevBaseline = new Float64Array(size);\n    let iteration = 0;\n    let delta = Infinity;\n    let baseline = xEnsureFloat64(yData);\n    const { upperTriangularNonZeros, permutationEncodedArray } = createSystemMatrix(size, lambda);\n    while (iteration < maxIterations && delta > tolerance) {\n        const { leftHandSide, rightHandSide } = addWeights(upperTriangularNonZeros, yData, weights);\n        const cho = matrixCholeskySolver(leftHandSide, size, permutationEncodedArray);\n        if (!cho) {\n            return baseline;\n        }\n        const newBaseline = cho(rightHandSide);\n        //weights is updated inplace\n        calculateAdaptiveWeights(yData, newBaseline, weights, {\n            controlPoints,\n            learningRate,\n            factorStd,\n        });\n        delta = calculateDelta(newBaseline, prevBaseline, size);\n        prevBaseline.set(newBaseline);\n        baseline = xEnsureFloat64(newBaseline);\n        iteration++;\n    }\n    return baseline;\n}\n/**\n * Calculates the delta between the current and previous baseline.\n * @param baseline - the current baseline array.\n * @param prevBaseline - the previous baseline array.\n * @param n - the length of the arrays.\n * @returns the calculated delta value.\n */\nfunction calculateDelta(baseline, prevBaseline, n) {\n    let sum = 0;\n    for (let i = 0; i < n; i++) {\n        sum += (baseline[i] - prevBaseline[i]) ** 2;\n    }\n    return Math.sqrt(sum / n);\n}\n/**\n * Retrieves the control points and weights for the given data, the weights are modified multiplication of controlPoints if it exists.\n * @param y - the input data array.\n * @param options - the options for control points and weights.\n * @returns the control points and modified weights.\n */\nfunction getWeightsAndControlPoints(y, options = {}) {\n    const { controlPoints } = options;\n    const { weights = Float64Array.from({ length: y.length }).fill(1) } = options;\n    if (controlPoints && controlPoints.length !== y.length) {\n        throw new RangeError('controlPoints should match the length with X');\n    }\n    else if (weights.length !== y.length) {\n        throw new RangeError('weights should match the length with X');\n    }\n    return {\n        weights: controlPoints ? xMultiply(weights, controlPoints) : weights,\n        controlPoints,\n    };\n}\nfunction whittakerByThomas(yData, options = {}) {\n    const { lambda = 100, maxIterations = 100, tolerance = 1e-6, factorStd = 3, learningRate = 0.5, } = options;\n    const n = yData.length;\n    const y = xEnsureFloat64(yData);\n    const { controlPoints, weights } = getWeightsAndControlPoints(yData, options);\n    const prevBaseline = new Float64Array(n);\n    let baseline = xEnsureFloat64(yData);\n    // Precompute base diagonal and constant off-diagonals (−lambda)\n    const baseDiag = new Float64Array(n);\n    if (n === 1) {\n        baseDiag[0] = lambda;\n    }\n    else {\n        baseDiag[0] = lambda;\n        for (let i = 1; i < n - 1; i++)\n            baseDiag[i] = 2 * lambda;\n        baseDiag[n - 1] = lambda;\n    }\n    const lower = new Float64Array(Math.max(0, n - 1));\n    const upper = new Float64Array(Math.max(0, n - 1));\n    for (let i = 0; i < lower.length; i++) {\n        lower[i] = -lambda;\n        upper[i] = -lambda;\n    }\n    const main = new Float64Array(n);\n    const rhs = new Float64Array(n);\n    const solution = new Float64Array(n);\n    const workC = new Float64Array(Math.max(0, n - 1));\n    const workD = new Float64Array(n);\n    let iteration = 0;\n    let delta = Infinity;\n    /**\n     * Iterative Whittaker smoothing implementation using the Thomas algorithm\n     * (tridiagonal solver). The method constructs the system\n     * [W + lambda * D'D] z = W * y where D is the second-difference operator\n     * and W are adaptive weights. At each iteration the tridiagonal system is\n     * solved with the Thomas algorithm and the weights are updated using\n     * `calculateAdaptiveWeights` until convergence.\n     *\n     * Use this algorithm by passing `algorithm: 'thomas'` to `xWhittakerSmoother`.\n     * It is more memory-efficient for large inputs because it avoids forming\n     * the full banded matrix, but both implementations aim to produce the same\n     * baseline result.\n     * @param yData - input signal/spectrum\n     * @param options - smoothing options (supports `lambda`, `maxIterations`,\n     *                  `tolerance`, `factorStd`, `learningRate`, and optional\n     *                  `controlPoints` / `weights` inherited from\n     *                  `CalculateAdaptiveWeightsOptions`).\n     * @returns baseline as a `Float64Array`.\n     */\n    while (iteration < maxIterations && delta > tolerance) {\n        // Build main diagonal = baseDiag + weights, and RHS = weights * y\n        for (let i = 0; i < n; i++) {\n            main[i] = baseDiag[i] + weights[i];\n            rhs[i] = weights[i] * y[i];\n        }\n        // Solve tridiagonal system in-place into `solution`\n        solveTridiagonalFloat64(lower, main, upper, rhs, solution, workC, workD);\n        calculateAdaptiveWeights(y, solution, weights, {\n            controlPoints,\n            learningRate,\n            factorStd,\n        });\n        delta = calculateDelta(solution, prevBaseline, n);\n        prevBaseline.set(solution);\n        baseline = xEnsureFloat64(solution);\n        iteration++;\n    }\n    return baseline;\n}\nfunction solveTridiagonalFloat64(lower, diag, upper, rhs, out, cp, dp) {\n    const n = diag.length;\n    const x = out ?? new Float64Array(n);\n    if (n === 0)\n        return x;\n    if (n === 1) {\n        x[0] = rhs[0] / diag[0];\n        return x;\n    }\n    const cprime = cp ?? new Float64Array(n - 1);\n    const dprime = dp ?? new Float64Array(n);\n    let denom = diag[0];\n    cprime[0] = upper[0] / denom;\n    dprime[0] = rhs[0] / denom;\n    for (let i = 1; i < n - 1; i++) {\n        denom = diag[i] - lower[i - 1] * cprime[i - 1];\n        cprime[i] = upper[i] / denom;\n        dprime[i] = (rhs[i] - lower[i - 1] * dprime[i - 1]) / denom;\n    }\n    denom = diag[n - 1] - lower[n - 2] * cprime[n - 2];\n    dprime[n - 1] = (rhs[n - 1] - lower[n - 2] * dprime[n - 2]) / denom;\n    x[n - 1] = dprime[n - 1];\n    for (let i = n - 2; i >= 0; i--) {\n        x[i] = dprime[i] - cprime[i] * x[i + 1];\n    }\n    return x;\n}\n//# sourceMappingURL=xWhittakerSmoother.js.map","import { matrixCuthillMckee } from \"../matrix/matrixCuthillMckee.js\";\n/**\n * Generates a lower triangular non-zeros of the first order smoother matrix (lambda D'D) where D is the derivate of the identity matrix\n * this function in combination with addWeights function can obtain (Q = W + lambda D'D) a penalized least square of Whittaker smoother,\n * it also generates a permutation encoded array.\n * @param dimension - the number of points in the matrix.\n * @param lambda - the factor of smoothness.\n * @returns an object containing the lower triangular non-zero elements of the matrix\n * and the permutation encoded array.\n * @property lowerTriangularNonZeros - The lower triangular non-zero elements of the matrix in triplet form.\n * @property permutationEncodedArray - The permutation encoded array generated using the Cuthill-McKee algorithm.\n */\nexport function createSystemMatrix(dimension, lambda) {\n    const upperTriangularNonZeros = [];\n    const last = dimension - 1;\n    for (let i = 0; i < last; i++) {\n        upperTriangularNonZeros.push([i, i, lambda * 2], [i, i + 1, -1 * lambda]);\n    }\n    upperTriangularNonZeros[0][2] = lambda;\n    upperTriangularNonZeros.push([last, last, lambda]);\n    const permutationEncodedArray = matrixCuthillMckee(upperTriangularNonZeros, dimension);\n    return { upperTriangularNonZeros, permutationEncodedArray };\n}\n//# sourceMappingURL=createSystemMatrix.js.map","/**\n * Phase correction filter.\n * @param data - complex spectrum\n * @param phi0 - angle in radians for zero order phase correction.\n * @param phi1 - angle in radians for first order phase correction.\n * @param options - options.\n * @returns a new object {re:[], im:[]} unless inPlace=true.\n */\nexport function reimPhaseCorrection(data, phi0 = 0, phi1 = 0, options = {}) {\n    const { reverse = false, inPlace = false } = options;\n    phi0 = Number.isFinite(phi0) ? phi0 : 0;\n    phi1 = Number.isFinite(phi1) ? phi1 : 0;\n    const length = data.re.length;\n    // Decide target arrays\n    const re = data.re;\n    const im = data.im;\n    const outRe = inPlace ? re : new Float64Array(length);\n    const outIm = inPlace ? im : new Float64Array(length);\n    let firstAngle = phi0;\n    let delta = phi1 / length;\n    if (reverse) {\n        delta *= -1;\n        firstAngle += phi1;\n    }\n    const alpha = 2 * Math.sin(delta / 2) ** 2;\n    const beta = Math.sin(delta);\n    let cosTheta = Math.cos(firstAngle);\n    let sinTheta = Math.sin(firstAngle);\n    for (let i = 0; i < length; i++) {\n        const r = re[i];\n        const ii = im[i];\n        outRe[i] = r * cosTheta - ii * sinTheta;\n        outIm[i] = ii * cosTheta + r * sinTheta;\n        // Recursive angle update (stable incremental rotation)\n        const newCosTheta = cosTheta - (alpha * cosTheta + beta * sinTheta);\n        const newSinTheta = sinTheta - (alpha * sinTheta - beta * cosTheta);\n        cosTheta = newCosTheta;\n        sinTheta = newSinTheta;\n    }\n    return { re: outRe, im: outIm };\n}\n//# sourceMappingURL=reimPhaseCorrection.js.map","import { xNoiseSanPlot } from \"../x/index.js\";\nimport { reimAbsolute } from \"./reimAbsolute.js\";\nimport { reimPhaseCorrection } from \"./reimPhaseCorrection.js\";\n/**\n * Implementation of the algorithm for automatic phase correction: A robust, general automatic phase\n * correction algorithm for high-resolution NMR data. 10.1002/mrc.4586\n * @param data - complex spectrum\n * @param options - options\n * @returns phased spectrum together with the zero- and first-order correction angles (ph0, ph1) in degrees\n */\nexport function reimAutoPhaseCorrection(data, options = {}) {\n    const { magnitudeMode = true, minRegSize = 30, factorNoise = 3, maxDistanceToJoin = 256, reverse = false, inPlace = false, } = options;\n    const finalPeaks = detectBaselineRegions(data, {\n        maxDistanceToJoin,\n        magnitudeMode,\n        factorNoise,\n    });\n    const { re, im } = data;\n    const length = re.length;\n    const indexMask = reverse ? (i) => length - 1 - i : (i) => i;\n    let x0 = 0;\n    let counter = -1;\n    const res = [];\n    while (counter < length) {\n        const reTmp = [];\n        const imTmp = [];\n        while (!finalPeaks[indexMask(++counter)] && counter < length) {\n            // Add some extra points(0.1 ppm) at rigth and left sides of the region.\n            x0 = counter;\n        }\n        for (; finalPeaks[indexMask(counter)] && counter < length; counter += 2) {\n            reTmp.push(re[indexMask(counter)]);\n            imTmp.push(im[indexMask(counter)]);\n        }\n        if (reTmp.length > minRegSize) {\n            res.push(autoPhaseRegion(reTmp, imTmp, x0));\n        }\n    }\n    const { ph1, ph0 } = determiningGlobalValues(res.map((r) => r.x0 / length), res.map((r) => r.ph0), res.map((r) => r.area / 1e11));\n    const phased = reimPhaseCorrection({ re, im }, toRadians(ph0), toRadians(ph1), { reverse, inPlace });\n    return { data: phased, ph0, ph1 };\n}\nfunction determiningGlobalValues(x, ph0Values, weights) {\n    if (x.length === 0) {\n        return { ph0: 0, ph1: 0 };\n    }\n    else if (x.length === 1) {\n        return { ph0: ph0Values[0], ph1: 0 };\n    }\n    const [ph1, ph0] = weightedLinearRegression(x, ph0Values, weights);\n    let indexMax = -1;\n    let maxDiff = Number.MIN_SAFE_INTEGER;\n    for (let i = 0; i < x.length; i++) {\n        const predictedPh0 = x[i] * ph1 + ph0;\n        const diff = Math.abs(ph0Values[i] - predictedPh0);\n        if (diff > 34 && maxDiff < diff) {\n            indexMax = i;\n            maxDiff = diff;\n        }\n    }\n    if (indexMax > -1) {\n        x.splice(indexMax, 1);\n        ph0Values.splice(indexMax, 1);\n        weights.splice(indexMax, 1);\n        return determiningGlobalValues(x, ph0Values, weights);\n    }\n    return { ph0, ph1 };\n}\nfunction detectBaselineRegions(data, options) {\n    const magnitudeData = options.magnitudeMode ? reimAbsolute(data) : data.re;\n    const ds = holoborodko(magnitudeData);\n    const peaksDs = robustBaseLineRegionsDetection(ds, options);\n    const peaksSp = robustBaseLineRegionsDetection(magnitudeData, options);\n    return peaksSp.map((sp, i) => sp && peaksDs[i]);\n}\n/**\n * Finds the best phase angle for a region by minimizing the negative area.\n * @param re - array of number.\n * @param im - array of number.\n * @param x0 - number.\n * @returns region.\n */\nfunction autoPhaseRegion(re, im, x0) {\n    let start = -180;\n    let stop = 180;\n    const nSteps = 6;\n    let maxSteps = 10;\n    let bestAng = 0;\n    let minArea = Number.MAX_SAFE_INTEGER;\n    while (maxSteps > 0) {\n        const dAng = (stop - start) / (nSteps + 1);\n        for (let i = start; i <= stop; i += dAng) {\n            const tmpPhased = reimPhaseCorrection({ re, im }, toRadians(i), 0);\n            const negArea = getNegArea(tmpPhased.re);\n            if (negArea < minArea) {\n                [minArea, bestAng] = [negArea, i];\n            }\n        }\n        start = bestAng - dAng;\n        stop = bestAng + dAng;\n        maxSteps--;\n    }\n    // Calculate the area for the best angle\n    const phased = reimPhaseCorrection({ re, im }, toRadians(bestAng), 0);\n    let area = 0;\n    let sumX = 0;\n    for (let j = 0; j < re.length; j++) {\n        area += phased.re[j];\n        sumX += phased.re[j] * (j + x0);\n    }\n    return { ph0: bestAng, area, x0: sumX / area };\n}\n/**\n * Applies the Holoborodko smoothing derivative filter.\n * @param s - array of float.\n * @returns array of float.\n */\nfunction holoborodko(s) {\n    const dk = new Float64Array(s.length);\n    for (let i = 5; i < s.length - 5; i++) {\n        dk[i] =\n            (42 * (s[i + 1] - s[i - 1]) +\n                48 * (s[i + 2] - s[i - 2]) +\n                27 * (s[i + 3] + s[i - 3]) +\n                8 * (s[i + 4] - s[i - 4]) +\n                s[i + 5] -\n                s[i - 5]) /\n                512;\n    }\n    //Fill the borders\n    for (let i = 0; i < 5; i++) {\n        dk[i] = dk[5];\n        dk[s.length - i - 1] = dk[s.length - 6];\n    }\n    return dk;\n}\n/**\n * Detects baseline regions using robust iterative noise estimation.\n * @param s - input signal array.\n * @param options - detection options.\n * @param options.magnitudeMode - whether to use magnitude mode.\n * @param options.maxDistanceToJoin - max distance to join nearby regions.\n * @param options.factorNoise - noise factor for cutoff.\n */\nfunction robustBaseLineRegionsDetection(s, options) {\n    const { maxDistanceToJoin, magnitudeMode, factorNoise } = options;\n    const mask = new Uint8Array(s.length);\n    for (let i = 0; i < s.length; i++) {\n        mask[i] = 0;\n    }\n    let change = true;\n    while (change) {\n        const noiseLevel = xNoiseSanPlot(s, { magnitudeMode });\n        const cutOff = factorNoise * noiseLevel.positive;\n        change = false;\n        for (let i = 0; i < s.length; i++) {\n            if (Math.abs(s[i]) > cutOff && !mask[i]) {\n                change = true;\n                mask[i] = 1;\n            }\n        }\n    }\n    // Clean up mask by merging peaks blocks, separated by just a few points(4??).\n    let count = 0;\n    let prev = 0;\n    for (let i = 0; i < s.length; i++) {\n        if (!mask[i]) {\n            count++;\n        }\n        else {\n            if (count < maxDistanceToJoin) {\n                for (let j = 0; j <= count; j++) {\n                    mask[prev + j] = 1;\n                }\n            }\n            while (mask[++i] && i < s.length)\n                ;\n            prev = i;\n            count = 0;\n        }\n    }\n    return mask;\n}\n/**\n * Computes a weighted linear regression and returns [slope, intercept].\n * @param x - x values.\n * @param y - y values.\n * @param w - weights.\n */\nfunction weightedLinearRegression(x, y, w) {\n    let sxtw = 0;\n    let swx = 0;\n    let sw = 0;\n    let sxtwy = 0;\n    let swy = 0;\n    for (let i = 0; i < x.length; i++) {\n        sxtw += x[i] * x[i] * w[i];\n        swx += x[i] * w[i];\n        sw += w[i];\n        sxtwy += x[i] * w[i] * y[i];\n        swy += w[i] * y[i];\n    }\n    /* Just to know what is the matrix system that we solve\n     let Mx=[[sxtw, swx], [swx, sw]];\n     let My=[[sxtwy], [swy]];\n    */\n    //Mx inverse\n    const detMx = sxtw * sw - swx * swx;\n    const inMx = [\n        [sw / detMx, -swx / detMx],\n        [-swx / detMx, sxtw / detMx],\n    ];\n    return [\n        inMx[0][0] * sxtwy + inMx[0][1] * swy,\n        inMx[1][0] * sxtwy + inMx[1][1] * swy,\n    ];\n}\nfunction toRadians(degree) {\n    return (degree * Math.PI) / 180;\n}\nfunction getNegArea(data) {\n    let area = 0;\n    for (let i = 0; i < data.length; i++) {\n        const element = data[i];\n        if (element < 0)\n            area -= element;\n    }\n    return area;\n}\n//# sourceMappingURL=reimAutoPhaseCorrection.js.map","import { xRotate } from \"../x/index.js\";\n/**\n * Circular shift that moves the zero-frequency component to the center of the array (FFT shift).\n * For the inverse, the shift is reversed to restore the original layout.\n * @param data - input array\n * @param inverse - if true, shifts by ceil(n/2) instead of floor(n/2) to undo a previous zeroShift\n * @returns shifted array\n */\nexport function zeroShift(data, inverse) {\n    const middle = inverse\n        ? Math.ceil(data.length / 2)\n        : Math.floor(data.length / 2);\n    return xRotate(data, middle);\n}\n//# sourceMappingURL=zeroShift.js.map","/**\n * This function performs a circular shift to an array.\n * Positive values of shifts will shift to the right and negative values will do to the left.\n * @example xRotate([1,2,3,4],1) -> [4,1,2,3]\n * @example xRotate([1,2,3,4],-1) -> [2,3,4,1]\n * @param array - array\n * @param shift - shift\n * @returns - rotated array\n */\nexport function xRotate(array, shift) {\n    shift = shift % array.length;\n    if (shift < 0)\n        shift += array.length;\n    const result = new Float64Array(array.length);\n    result.set(array.slice(array.length - shift));\n    result.set(array.slice(0, array.length - shift), shift);\n    return result;\n}\n//# sourceMappingURL=xRotate.js.map","import { createDoubleArray } from \"../utils/createArray.js\";\n/**\n * This function make a zero filling to re and im part.\n * @param data - object of kind {re:[], im:[]}\n * @param totalLength - final number of points\n * @returns new DataReIm object with zero-filled,\n * truncated arrays if totalLength is smaller current length or\n * the same input if totalLength is equal that current length\n */\nexport function reimZeroFilling(data, totalLength) {\n    if (!Number.isInteger(totalLength) || totalLength < 0) {\n        throw new RangeError('totalLength must be a non-negative integer');\n    }\n    const { re, im } = data;\n    const length = re.length;\n    if (totalLength === 0 || length === totalLength)\n        return data;\n    if (length > totalLength) {\n        return {\n            re: re.slice(0, totalLength),\n            im: im.slice(0, totalLength),\n        };\n    }\n    const newRE = createDoubleArray(re.constructor, totalLength);\n    const newIM = createDoubleArray(im.constructor, totalLength);\n    for (let i = 0; i < re.length; i++) {\n        newRE[i] = re[i];\n        newIM[i] = im[i];\n    }\n    return {\n        re: newRE,\n        im: newIM,\n    };\n}\n//# sourceMappingURL=reimZeroFilling.js.map","import { zeroShift } from \"../reim/zeroShift.js\";\nimport { getFFT } from \"../utils/fftCache.js\";\n/**\n * Apply FFT to each row of a complex matrix, reusing a single FFT instance for\n * all rows to avoid repeated instantiation overhead.\n * All rows must have the same length.\n * @param data - complex matrix with re and im arrays of Float64Array rows\n * @param options - options\n * @returns complex matrix with transformed rows\n */\nexport function reimMatrixFFT(data, options = {}) {\n    const { re, im } = data;\n    const numRows = re.length;\n    if (numRows === 0)\n        return { re: [], im: [] };\n    const { inverse = false, applyZeroShift = false, inPlace = false } = options;\n    const size = re[0].length;\n    const csize = size << 1;\n    for (let j = 0; j < numRows; j++) {\n        if (re[j].length !== size || im[j].length !== size) {\n            throw new RangeError(`All rows must have the same length. Expected ${size} but row ${j} has length ${re[j].length}.`);\n        }\n    }\n    // Single FFT instance and working buffers reused across all rows\n    const fft = getFFT(size);\n    const complexArray = new Float64Array(csize);\n    const output = new Float64Array(csize);\n    const resultRe = new Array(numRows);\n    const resultIm = new Array(numRows);\n    for (let j = 0; j < numRows; j++) {\n        const reRow = re[j];\n        const imRow = im[j];\n        for (let i = 0; i < csize; i += 2) {\n            complexArray[i] = reRow[i >>> 1];\n            complexArray[i + 1] = imRow[i >>> 1];\n        }\n        const outRe = inPlace ? reRow : new Float64Array(size);\n        const outIm = inPlace ? imRow : new Float64Array(size);\n        if (inverse) {\n            const input = applyZeroShift\n                ? zeroShift(complexArray, true)\n                : complexArray;\n            fft.inverseTransform(output, input);\n            for (let i = 0; i < csize; i += 2) {\n                outRe[i >>> 1] = output[i];\n                outIm[i >>> 1] = output[i + 1];\n            }\n        }\n        else {\n            fft.transform(output, complexArray);\n            const source = applyZeroShift ? zeroShift(output) : output;\n            for (let i = 0; i < csize; i += 2) {\n                outRe[i >>> 1] = source[i];\n                outIm[i >>> 1] = source[i + 1];\n            }\n        }\n        resultRe[j] = outRe;\n        resultIm[j] = outIm;\n    }\n    return { re: resultRe, im: resultIm };\n}\n//# sourceMappingURL=reimMatrixFFT.js.map","/**\n * Apply phase correction to a complex matrix along rows or columns.\n * All rows must have the same length.\n * @param data - complex matrix with re and im arrays of Float64Array rows\n * @param phi0 - angle in radians for zero order phase correction.\n * @param phi1 - angle in radians for first order phase correction.\n * @param options - options including direction ('rows' or 'columns', default 'rows').\n * @returns complex matrix with corrected rows or columns.\n */\nexport function reimMatrixPhaseCorrection(data, phi0 = 0, phi1 = 0, options = {}) {\n    const { reverse = false, inPlace = false, direction = 'rows' } = options;\n    phi0 = Number.isFinite(phi0) ? phi0 : 0;\n    phi1 = Number.isFinite(phi1) ? phi1 : 0;\n    const { re, im } = data;\n    const numRows = re.length;\n    if (numRows === 0) {\n        return {\n            re: [],\n            im: [],\n            minRe: Number.NaN,\n            maxRe: Number.NaN,\n            minIm: Number.NaN,\n            maxIm: Number.NaN,\n        };\n    }\n    const numColumns = re[0].length;\n    for (let j = 0; j < numRows; j++) {\n        if (re[j].length !== numColumns || im[j].length !== numColumns) {\n            throw new RangeError(`All rows must have the same length. Expected ${numColumns} but row ${j} has length ${re[j].length}.`);\n        }\n    }\n    const resultRe = new Array(numRows);\n    const resultIm = new Array(numRows);\n    // Initialize result arrays\n    for (let i = 0; i < numRows; i++) {\n        resultRe[i] = inPlace ? re[i] : new Float64Array(numColumns);\n        resultIm[i] = inPlace ? im[i] : new Float64Array(numColumns);\n    }\n    const size = direction === 'rows' ? numColumns : numRows;\n    let delta = phi1 / (size - 1);\n    if (reverse) {\n        delta = -delta;\n    }\n    const alpha = 2 * Math.sin(delta / 2) ** 2;\n    const beta = Math.sin(delta);\n    let minRe = Number.POSITIVE_INFINITY;\n    let maxRe = Number.NEGATIVE_INFINITY;\n    let minIm = Number.POSITIVE_INFINITY;\n    let maxIm = Number.NEGATIVE_INFINITY;\n    if (direction === 'rows') {\n        for (let j = 0; j < numRows; j++) {\n            let firstAngle = phi0;\n            if (reverse) {\n                firstAngle += phi1;\n            }\n            let cosTheta = Math.cos(firstAngle);\n            let sinTheta = Math.sin(firstAngle);\n            for (let i = 0; i < numColumns; i++) {\n                const r = re[j][i];\n                const ii = im[j][i];\n                resultRe[j][i] = r * cosTheta - ii * sinTheta;\n                resultIm[j][i] = ii * cosTheta + r * sinTheta;\n                if (resultRe[j][i] < minRe)\n                    minRe = resultRe[j][i];\n                if (resultRe[j][i] > maxRe)\n                    maxRe = resultRe[j][i];\n                if (resultIm[j][i] < minIm)\n                    minIm = resultIm[j][i];\n                if (resultIm[j][i] > maxIm)\n                    maxIm = resultIm[j][i];\n                const newCosTheta = cosTheta - (alpha * cosTheta + beta * sinTheta);\n                const newSinTheta = sinTheta - (alpha * sinTheta - beta * cosTheta);\n                cosTheta = newCosTheta;\n                sinTheta = newSinTheta;\n            }\n        }\n    }\n    else {\n        for (let col = 0; col < numColumns; col++) {\n            let firstAngle = phi0;\n            if (reverse) {\n                firstAngle += phi1;\n            }\n            let cosTheta = Math.cos(firstAngle);\n            let sinTheta = Math.sin(firstAngle);\n            for (let row = 0; row < numRows; row++) {\n                const r = re[row][col];\n                const ii = im[row][col];\n                resultRe[row][col] = r * cosTheta - ii * sinTheta;\n                resultIm[row][col] = ii * cosTheta + r * sinTheta;\n                if (resultRe[row][col] < minRe)\n                    minRe = resultRe[row][col];\n                if (resultRe[row][col] > maxRe)\n                    maxRe = resultRe[row][col];\n                if (resultIm[row][col] < minIm)\n                    minIm = resultIm[row][col];\n                if (resultIm[row][col] > maxIm)\n                    maxIm = resultIm[row][col];\n                const newCosTheta = cosTheta - (alpha * cosTheta + beta * sinTheta);\n                const newSinTheta = sinTheta - (alpha * sinTheta - beta * cosTheta);\n                cosTheta = newCosTheta;\n                sinTheta = newSinTheta;\n            }\n        }\n    }\n    return { re: resultRe, im: resultIm, minRe, maxRe, minIm, maxIm };\n}\n//# sourceMappingURL=reimMatrixPhaseCorrection.js.map","import { isAnyArray } from 'is-any-array';\n/**\n * Verify that `data` is an object of x,y arrays.\n * Throws an error if it's not.\n * @param data - data to check.\n * @param options - options.\n * @param options.minLength - minimum required length.\n */\nexport function xyCheck(data, options = {}) {\n    const { minLength } = options;\n    if (data === null ||\n        typeof data !== 'object' ||\n        // @ts-expect-error Typechecking\n        !isAnyArray(data.x) ||\n        // @ts-expect-error Typechecking\n        !isAnyArray(data.y)) {\n        throw new Error('data must be an object of x and y arrays');\n    }\n    // @ts-expect-error Typechecking\n    if (data.x.length !== data.y.length) {\n        throw new Error('the x and y arrays must have the same length');\n    }\n    // @ts-expect-error Typechecking\n    if (minLength && data.x.length < minLength) {\n        throw new Error(`data.x must have a length of at least ${minLength}`);\n    }\n}\n//# sourceMappingURL=xyCheck.js.map","import { xGetFromToIndex } from \"../x/index.js\";\nimport { xyCheck } from \"./xyCheck.js\";\n/**\n * Finds the max y value in a range and return a {x,y} point\n * @param data - object that contains property x (an ordered increasing array) and y (an array).\n * @param options - options.\n * @returns point with the highest y value in the range.\n */\nexport function xyMaxYPoint(data, options = {}) {\n    xyCheck(data, { minLength: 1 });\n    const { x, y } = data;\n    if (x.length === 1) {\n        return { x: x[0], y: y[0], index: 0 };\n    }\n    const { fromIndex, toIndex } = xGetFromToIndex(x, options);\n    let current = { x: x[fromIndex], y: y[fromIndex], index: fromIndex };\n    for (let i = fromIndex + 1; i <= toIndex; i++) {\n        if (y[i] > current.y)\n            current = { x: x[i], y: y[i], index: i };\n    }\n    return current;\n}\n//# sourceMappingURL=xyMaxYPoint.js.map","import { xIsMonotonic } from \"../x/index.js\";\nimport { xyCheck } from \"./xyCheck.js\";\n/**\n * Filters x,y values to allow strictly growing values in x-axis.\n * @param data - object that contains property x (an ordered increasing array) and y (an array).\n * @returns filtered data with strictly increasing x values.\n */\nexport function xyEnsureGrowingX(data) {\n    xyCheck(data);\n    if (xIsMonotonic(data.x) === 1)\n        return data;\n    const x = Array.from(data.x);\n    const y = Array.from(data.y);\n    let prevX = Number.NEGATIVE_INFINITY;\n    let currentIndex = 0;\n    for (let index = 0; index < x.length; index++) {\n        if (prevX < x[index]) {\n            if (currentIndex < index) {\n                x[currentIndex] = x[index];\n                y[currentIndex] = y[index];\n            }\n            currentIndex++;\n            prevX = x[index];\n        }\n    }\n    x.length = currentIndex;\n    y.length = currentIndex;\n    return { x, y };\n}\n//# sourceMappingURL=xyEnsureGrowingX.js.map","/**\n * Normalize an array of zones:\n * - ensure than from < to\n * - merge overlapping zones\n * - deal with exclusions zones\n * - if no zones is specified add one between -Infinity and +Infinity\n * @param zones - array of zones\n * @param options - options\n * @returns array of zones\n */\nexport function zonesNormalize(zones = [], options = {}) {\n    const { exclusions = [] } = options;\n    let { from = Number.NEGATIVE_INFINITY, to = Number.POSITIVE_INFINITY } = options;\n    if (from > to)\n        [from, to] = [to, from];\n    zones = zones.map((zone) => zone.from > zone.to ? { from: zone.to, to: zone.from } : { ...zone });\n    zones.sort((a, b) => {\n        if (a.from !== b.from)\n            return a.from - b.from;\n        return a.to - b.to;\n    });\n    if (zones.length === 0) {\n        zones.push({ from, to });\n    }\n    for (const zone of zones) {\n        if (from > zone.from)\n            zone.from = from;\n        if (to < zone.to)\n            zone.to = to;\n    }\n    zones = zones.filter((zone) => zone.from <= zone.to);\n    if (zones.length === 0)\n        return [];\n    let currentZone = zones[0];\n    const beforeExclusionsZones = [currentZone];\n    for (let i = 1; i < zones.length; i++) {\n        const zone = zones[i];\n        if (zone.from <= currentZone.to) {\n            if (currentZone.to < zone.to) {\n                currentZone.to = zone.to;\n            }\n        }\n        else {\n            currentZone = zone;\n            beforeExclusionsZones.push(currentZone);\n        }\n    }\n    if (exclusions.length === 0)\n        return beforeExclusionsZones;\n    const normalizedExclusions = zonesNormalize(exclusions);\n    let currentExclusionIndex = 0;\n    const results = [];\n    for (let zoneIndex = 0; zoneIndex < beforeExclusionsZones.length; zoneIndex++) {\n        const zone = beforeExclusionsZones[zoneIndex];\n        if (currentExclusionIndex === normalizedExclusions.length) {\n            // we analysed all the exclusion zones\n            results.push(zone);\n            continue;\n        }\n        while (currentExclusionIndex < normalizedExclusions.length &&\n            normalizedExclusions[currentExclusionIndex].to <= zone.from) {\n            currentExclusionIndex++;\n        }\n        if (currentExclusionIndex === normalizedExclusions.length) {\n            // we analysed all the exclusion zones\n            results.push(zone);\n            continue;\n        }\n        if (zone.to < normalizedExclusions[currentExclusionIndex].from) {\n            // no problems, not yet in exclusion\n            results.push(zone);\n            continue;\n        }\n        if (normalizedExclusions[currentExclusionIndex].to >= zone.to) {\n            // could be totally excluded\n            if (normalizedExclusions[currentExclusionIndex].from <= zone.from) {\n                continue;\n            }\n            results.push({\n                from: normalizedExclusions[currentExclusionIndex].to,\n                to: zone.to,\n            });\n        }\n        // we cut in the middle, we need to create more zones, annoying !\n        if (normalizedExclusions[currentExclusionIndex].from > zone.from) {\n            results.push({\n                from: zone.from,\n                to: normalizedExclusions[currentExclusionIndex].from,\n            });\n        }\n        zone.from = normalizedExclusions[currentExclusionIndex].to;\n        zoneIndex--;\n    }\n    return results;\n}\n//# sourceMappingURL=zonesNormalize.js.map","import { zonesNormalize } from \"./zonesNormalize.js\";\n/**\n * Add the number of points per zone to reach a specified total\n * @param zones - array of zones\n * @param numberOfPoints - total number of points to distribute between zones\n * @param options - options\n * @returns array of zones with points\n */\nexport function zonesWithPoints(zones = [], \n/**\n * total number of points to distribute between zones\n * @default 10\n */\nnumberOfPoints = 10, options = {}) {\n    if (zones.length === 0)\n        return [];\n    const normalizedZones = zonesNormalize(zones, options);\n    const zonesWithNumberOfPoints = [];\n    const totalSize = normalizedZones.reduce((previous, current) => {\n        return previous + (current.to - current.from);\n    }, 0);\n    const unitsPerPoint = totalSize / numberOfPoints;\n    let currentTotal = 0;\n    for (let i = 0; i < normalizedZones.length - 1; i++) {\n        const tempZone = normalizedZones[i];\n        const tempZoneNumberOfPoints = Math.min(Math.round((tempZone.to - tempZone.from) / unitsPerPoint), numberOfPoints - currentTotal);\n        zonesWithNumberOfPoints.push({\n            ...tempZone,\n            numberOfPoints: tempZoneNumberOfPoints,\n        });\n        currentTotal += tempZoneNumberOfPoints;\n    }\n    zonesWithNumberOfPoints.push({\n        ...normalizedZones.at(-1),\n        numberOfPoints: numberOfPoints - currentTotal,\n    });\n    return zonesWithNumberOfPoints;\n}\n//# sourceMappingURL=zonesWithPoints.js.map","import { createFromToArray } from \"../utils/createFromToArray.js\";\nimport { zonesNormalize } from \"./zonesNormalize.js\";\nimport { zonesWithPoints } from \"./zonesWithPoints.js\";\n/**\n * Function that returns a Number array of equally spaced numberOfPoints x values\n * distributed across the specified zones.\n * @param zones - array of from/to zones where x values should be distributed\n * @param numberOfPoints - total number of points to distribute across all zones\n * @param options - options\n * @returns array of equally spaced x values distributed across zones\n */\nexport function zonesToXEquallySpaced(zones, numberOfPoints, options = {}) {\n    if (!zones || zones.length === 0) {\n        throw new RangeError('zones array must not be empty');\n    }\n    if (numberOfPoints < 1) {\n        throw new RangeError(\"'numberOfPoints' must be greater than 0\");\n    }\n    const from = options.from ?? zones[0].from;\n    //@ts-expect-error zones is tested before\n    const to = options.to ?? zones.at(-1).to;\n    if (from > to) {\n        throw new RangeError('from should be less than or equal to to');\n    }\n    const normalizedZones = zonesNormalize(zones, { from, to, exclusions: [] });\n    const zonesWithPointsRes = zonesWithPoints(normalizedZones, numberOfPoints, {\n        from,\n        to,\n    }).filter((zone) => zone.numberOfPoints);\n    let xResult = [];\n    for (const zone of zonesWithPointsRes) {\n        if (!zone.numberOfPoints) {\n            zone.numberOfPoints = 0;\n        }\n        const zoneXValues = Array.from(createFromToArray({\n            from: zone.from,\n            to: zone.to,\n            length: zone.numberOfPoints,\n            includeFrom: false,\n            includeTo: false,\n        }));\n        xResult = xResult.concat(zoneXValues);\n    }\n    return new Float64Array(xResult);\n}\n//# sourceMappingURL=zonesToXEquallySpaced.js.map","/**\n * Function that calculates the integral of the line between two\n * x-coordinates, given the slope and intercept of the line.\n * @param x0 - first x coordinate.\n * @param x1 - second x coordinate.\n * @param slope - slope of the line.\n * @param intercept - y-intercept of the line.\n * @returns integral value.\n */\nexport default function integral(\n/** first coordinate of point */\nx0, \n/** second coordinate of point */\nx1, \n/** slope of the line */\nslope, \n/** intercept of the line on the y axis */\nintercept) {\n    return (0.5 * slope * x1 * x1 +\n        intercept * x1 -\n        (0.5 * slope * x0 * x0 + intercept * x0));\n}\n//# sourceMappingURL=integral.js.map","import integral from \"./integral.js\";\n/**\n * Function that retrieves the getEquallySpacedData with the variant \"smooth\".\n * @param x - x coordinates.\n * @param y - y coordinates.\n * @param from - start of the output x range.\n * @param to - end of the output x range.\n * @param numberOfPoints - number of output points.\n * @returns array of y values equally spaced with the variant \"smooth\".\n */\nexport default function equallySpacedSmooth(\n/** x coordinates */\nx, \n/** y coordinates */\ny, \n/** from value */\nfrom, \n/** to value */\nto, \n/** number of points */\nnumberOfPoints) {\n    const xLength = x.length;\n    const step = (to - from) / (numberOfPoints > 1 ? numberOfPoints - 1 : 1);\n    const halfStep = step / 2;\n    // Changed Array to Float64Array\n    const output = new Float64Array(numberOfPoints);\n    const initialOriginalStep = x[1] - x[0];\n    const lastOriginalStep = x[xLength - 1] - x[xLength - 2];\n    // Init main variables\n    let min = from - halfStep;\n    let max = from + halfStep;\n    let previousX = Number.MIN_SAFE_INTEGER;\n    let previousY = 0;\n    let nextX = x[0] - initialOriginalStep;\n    let nextY = 0;\n    let currentValue = 0;\n    let slope = 0;\n    let intercept = 0;\n    let sumAtMin = 0;\n    let sumAtMax = 0;\n    let i = 0; // index of input\n    let j = 0; // index of output\n    let add = 0;\n    main: while (true) {\n        if (previousX >= nextX)\n            throw new Error('x must be a growing series');\n        if (previousX <= min && min <= nextX) {\n            add = integral(0, min - previousX, slope, previousY);\n            sumAtMin = currentValue + add;\n        }\n        while (nextX - max >= 0) {\n            // no overlap with original point, just consume current value\n            add = integral(0, max - previousX, slope, previousY);\n            sumAtMax = currentValue + add;\n            output[j++] = (sumAtMax - sumAtMin) / step;\n            if (j === numberOfPoints) {\n                break main;\n            }\n            min = max;\n            max += step;\n            sumAtMin = sumAtMax;\n        }\n        currentValue += integral(previousX, nextX, slope, intercept);\n        previousX = nextX;\n        previousY = nextY;\n        if (i < xLength) {\n            nextX = x[i];\n            nextY = y[i];\n            i++;\n        }\n        else if (i === xLength) {\n            nextX += lastOriginalStep;\n            nextY = 0;\n        }\n        slope = getSlope(previousX, previousY, nextX, nextY);\n        intercept = -slope * previousX + previousY;\n    }\n    return output;\n}\nfunction getSlope(x0, y0, x1, y1) {\n    return (y1 - y0) / (x1 - x0);\n}\n//# sourceMappingURL=equallySpacedSmooth.js.map","import { createFromToArray } from \"../utils/index.js\";\nimport { zonesNormalize, zonesWithPoints } from \"../zones/index.js\";\nimport equallySpacedSlot from \"./utils/equallySpacedSlot.js\";\nimport equallySpacedSmooth from \"./utils/equallySpacedSmooth.js\";\nimport { xyCheck } from \"./xyCheck.js\";\n/**\n * Resample a spectrum to equally spaced x points.\n * When `exclusions` are provided they take precedence and `zones` is ignored.\n * @param data - object containing x and y arrays\n * @param options - options\n * @returns resampled spectrum with equally spaced x values\n */\nexport function xyEquallySpaced(data, options = {}) {\n    const { x, y } = data;\n    const xLength = x.length;\n    const { from = x[0], to = x[xLength - 1], variant = 'smooth', numberOfPoints = 100, exclusions = [], zones = [{ from, to }], } = options;\n    if (from > to) {\n        throw new RangeError('from should be larger than to');\n    }\n    xyCheck(data);\n    if (numberOfPoints < 2) {\n        throw new RangeError(\"'numberOfPoints' option must be greater than 1\");\n    }\n    const normalizedZones = zonesNormalize(zones, { from, to, exclusions });\n    const zonesWithPointsRes = zonesWithPoints(normalizedZones, numberOfPoints, {\n        from,\n        to,\n    }).filter((zone) => zone.numberOfPoints);\n    let xResult = [];\n    let yResult = [];\n    for (const zone of zonesWithPointsRes) {\n        if (!zone.numberOfPoints) {\n            zone.numberOfPoints = 0;\n        }\n        const zoneResult = processZone(Array.from(x), Array.from(y), zone.from, zone.to, zone.numberOfPoints, variant);\n        xResult = xResult.concat(zoneResult.x);\n        yResult = yResult.concat(zoneResult.y);\n    }\n    return { x: xResult, y: yResult };\n}\nfunction processZone(x, y, from, to, numberOfPoints, variant) {\n    if (numberOfPoints < 1) {\n        throw new RangeError('the number of points must be at least 1');\n    }\n    const output = variant === 'slot'\n        ? Array.from(equallySpacedSlot(x, y, from, to, numberOfPoints))\n        : Array.from(equallySpacedSmooth(x, y, from, to, numberOfPoints));\n    return {\n        x: Array.from(createFromToArray({\n            from,\n            to,\n            length: numberOfPoints,\n        })),\n        y: output,\n    };\n}\n//# sourceMappingURL=xyEquallySpaced.js.map","/**\n * Function that retrieves the getEquallySpacedData with the variant \"slot\".\n * @param x - x coordinates.\n * @param y - y coordinates.\n * @param from - start of the output x range.\n * @param to - end of the output x range.\n * @param numberOfPoints - number of output points.\n * @returns array of y values equally spaced with the variant \"slot\".\n */\nexport default function equallySpacedSlot(\n/** x coordinates */\nx, \n/** y coordinates */\ny, \n/** from value */\nfrom, \n/** to value */\nto, \n/** number of points */\nnumberOfPoints) {\n    const xLength = x.length;\n    if (xLength < 2) {\n        return Float64Array.from(x);\n    }\n    const step = (to - from) / (numberOfPoints > 1 ? numberOfPoints - 1 : 1);\n    const halfStep = step / 2;\n    const lastStep = x.at(-1) - x.at(-2);\n    const start = from - halfStep;\n    // Changed Array to Float64Array\n    const output = new Float64Array(numberOfPoints);\n    // Init main variables\n    let min = start;\n    let max = start + step;\n    let previousX = -Number.MAX_VALUE;\n    let previousY = 0;\n    let nextX = x[0];\n    let nextY = y[0];\n    let frontOutsideSpectra = 0;\n    let backOutsideSpectra = true;\n    let currentValue = 0;\n    // for slot algorithm\n    let currentPoints = 0;\n    let i = 1; // index of input\n    let j = 0; // index of output\n    main: while (true) {\n        if (previousX >= nextX)\n            throw new Error('x must be a growing series');\n        while (previousX - max > 0) {\n            // no overlap with original point, just consume current value\n            if (backOutsideSpectra) {\n                currentPoints++;\n                backOutsideSpectra = false;\n            }\n            output[j] = currentPoints <= 0 ? 0 : currentValue / currentPoints;\n            j++;\n            if (j === numberOfPoints) {\n                break main;\n            }\n            min = max;\n            max += step;\n            currentValue = 0;\n            currentPoints = 0;\n        }\n        if (previousX > min) {\n            currentValue += previousY;\n            currentPoints++;\n        }\n        if (previousX === -Number.MAX_VALUE || frontOutsideSpectra > 1) {\n            currentPoints--;\n        }\n        previousX = nextX;\n        previousY = nextY;\n        if (i < xLength) {\n            nextX = x[i];\n            nextY = y[i];\n            i++;\n        }\n        else {\n            nextX += lastStep;\n            nextY = 0;\n            frontOutsideSpectra++;\n        }\n    }\n    return output;\n}\n//# sourceMappingURL=equallySpacedSlot.js.map","import { zonesNormalize } from \"../zones/index.js\";\n/**\n * Filter an array x/y based on various criteria x points are expected to be sorted\n * @param data - object containing 2 properties x and y\n * @param options - options\n * @returns filtered array\n */\nexport function xyFilterX(data, options = {}) {\n    const { x, y } = data;\n    if (x.length === 0) {\n        return {\n            x: Array.from(x),\n            y: Array.from(y),\n        };\n    }\n    const { from = x[0], to = x.at(-1), zones = [{ from, to }], exclusions = [], } = options;\n    // @ts-expect-error -- x.at(-1) returns number | undefined but array is guaranteed non-empty here\n    const normalizedZones = zonesNormalize(zones, { from, to, exclusions });\n    let currentZoneIndex = 0;\n    const newX = [];\n    const newY = [];\n    let position = 0;\n    while (position < x.length) {\n        if (x[position] <= normalizedZones[currentZoneIndex].to &&\n            x[position] >= normalizedZones[currentZoneIndex].from) {\n            newX.push(x[position]);\n            newY.push(y[position]);\n        }\n        else if (x[position] > normalizedZones[currentZoneIndex].to) {\n            currentZoneIndex++;\n            if (!normalizedZones[currentZoneIndex])\n                break;\n        }\n        position++;\n    }\n    return {\n        x: newX,\n        y: newY,\n    };\n}\n//# sourceMappingURL=xyFilterX.js.map","/**\n * Order object of array, x has to be monotone. Ensure x is growing\n * @param data - object of kind {x:[], y:[]}.\n * @returns data with x in ascending order (reversed in-place if descending).\n */\nexport function xyGrowingX(data) {\n    const { x, y } = data;\n    if (x.length !== y.length) {\n        throw new TypeError('length of x and y must be identical');\n    }\n    if (x.length < 2 || x[0] < x.at(-1))\n        return data;\n    return {\n        x: x.toReversed(),\n        y: y.toReversed(),\n    };\n}\n//# sourceMappingURL=xyGrowingX.js.map","import { xGetFromToIndex } from \"../x/index.js\";\nimport { xyCheck } from \"./xyCheck.js\";\n/**\n * Calculate integration\n * @param data - object that contains property x (an ordered increasing array) and y (an array).\n * @param options - options.\n * @returns integration value on the specified range.\n */\nexport function xyIntegration(data, options = {}) {\n    xyCheck(data, { minLength: 1 });\n    const { x, y } = data;\n    if (x.length === 1)\n        return 0;\n    const { fromIndex, toIndex } = xGetFromToIndex(x, options);\n    let currentxyIntegration = 0;\n    for (let i = fromIndex; i < toIndex; i++) {\n        currentxyIntegration += ((x[i + 1] - x[i]) * (y[i + 1] + y[i])) / 2;\n    }\n    return currentxyIntegration;\n}\n//# sourceMappingURL=xyIntegration.js.map","import { zonesNormalize } from \"../zones/index.js\";\nimport { xyCheck } from \"./xyCheck.js\";\n/**\n * Set a value (default 0) to specific zones.\n * @param data - object that contains property x (an ordered increasing array) and y (an array).\n * @param options - options.\n * @returns data with y values set to the given value in the specified zones.\n */\nexport function xySetYValue(data, options = {}) {\n    xyCheck(data);\n    const { x, y } = data;\n    const { value = 0 } = options;\n    let { zones } = options;\n    if (!Array.isArray(zones) || zones.length === 0) {\n        return data;\n    }\n    zones = zonesNormalize(zones);\n    const newX = x.slice();\n    const newY = y.slice();\n    let currentZone = zones[0];\n    let position = 0;\n    loop: for (let i = 0; i < x.length; i++) {\n        while (currentZone.to < x[i]) {\n            position++;\n            currentZone = zones[position];\n            if (!currentZone) {\n                i = x.length;\n                break loop;\n            }\n        }\n        if (x[i] >= currentZone.from) {\n            newY[i] = value;\n        }\n    }\n    return { x: newX, y: newY };\n}\n//# sourceMappingURL=xySetYValue.js.map","/**\n * Basic assertion with (a possible lazy) message.\n * Pay attention, it will throw an error if the value is falsy, even for 0, false, and empty strings.\n * If these cases are not desired, use `assertDefined` or `assertDefinedNotNull` instead.\n * @param value\n * @param message\n */\nexport function assert(value, message = `value ${String(value)} is falsy`) {\n    if (!value) {\n        const finalMessage = typeof message === 'function' ? message() : message;\n        throw new Error(finalMessage);\n    }\n}\n/**\n * Asserts that the given value is unreachable.\n * Whenever possible, use ts-pattern instead.\n * @param value\n * @example switch-case\n * ```ts\n * type MyEnum = 'a' | 'b' | 'c';\n * const myEnum: MyEnum = 'a';\n *\n * switch (myEnum) {\n *  case 'a':\n *  case 'b':\n *  case 'c':\n *    break;\n *  default:\n *    assertUnreachable(myEnum);\n * }\n * ```\n */\nexport function assertUnreachable(value) {\n    throw new Error(`unreachable: ${String(value)}`);\n}\n/**\n * Ensures that the given value is not undefined.\n * Useful to validate that value gotten from an array or record object is defined.\n * Pay attention, it will throw an error only if the value is undefined.\n * null will not throw an error. If you need it to throw an error for null, use `assertDefinedNotNull` instead.\n * @param value\n * @example get map item previously set\n * ```ts\n * const map = new Map<string, number>();\n * map.set('foo', 20);\n * map.set('bar', 22);\n * const foo = map.get('foo');\n * const bar = map.get('bar');\n * assertDefined(foo);\n * assertDefined(bar);\n * console.log(`Answer to the Ultimate Question of Life, the Universe, and Everything is ${foo + bar}`);\n * ```\n */\nexport function assertDefined(value) {\n    if (value === undefined) {\n        throw new Error(`unexpected undefined value`);\n    }\n}\n/**\n * Ensures that the given value is not nullish.\n * @param value\n * @example React Ref\n * ```ts\n * function Component() {\n *  const ref = useRef<HTMLSpanElement>(null);\n *  function onClick() {\n *    const span = ref.current;\n *    assertNotNullish(span);\n *    span.textContent = 'Hello world!';\n *  }\n *\n *  return (\n *    <div>\n *      <button onClick={onClick}>Click me</button>\n *      <span ref={ref}></span>\n *    </div>\n *  )\n * }\n *\n * ```\n */\nexport function assertNotNullish(value) {\n    // catch null and undefined\n    if (value == null) {\n        throw new Error(`unexpected ${String(value)} value`);\n    }\n}\n/**\n * Asserts that the given value is in the given array.\n * If the call does not throw, the value is narrowed to the type of the array elements.\n * @param value - The value to check.\n * @param values - The constraint values.\n * @example\n * ```ts\n * type Unit = \"ppm\" | \"hz\" | \"pt\" | \"s\";\n * type Mode = \"fid\" | \"ft\";\n * const fidUnits = [\"pt\", \"s\"] as const;\n * const ftUnits = [\"pt\", \"ppm\", \"hz\"] as const;\n *\n * function setUnit(unit: Unit, mode: Mode) {\n *   match(mode)\n *     .with('fid', (mode) => {\n *       assertIn(unit, fidUnits);\n *       // unit is narrowed to \"pt\" | \"s\"\n *       return dispatch({\n *         type: 'SET_AXIS_UNIT_1D_HORIZONTAL',\n *         payload: { nucleus, mode, unit },\n *       });\n *     })\n *     .with('ft', (mode) => {\n *       assertIn(unit, ftUnits);\n *       // unit is narrowed to \"pt\" | \"ppm\" | \"hz\"\n *       return dispatch({\n *         type: 'SET_AXIS_UNIT_1D_HORIZONTAL',\n *         payload: { nucleus, mode, unit },\n *       });\n *     })\n *     .exhaustive();\n * }\n * ```\n */\nexport function assertIn(value, values) {\n    if (values.includes(value))\n        return;\n    throw new Error(`Value ${String(value)} is not in [${values.join(',')}]`);\n}\n/**\n * @param value\n * @deprecated Use `assertNotNullish` instead.\n */\nexport function assertDefinedNotNull(value) {\n    assertNotNullish(value);\n}\n//# sourceMappingURL=assert.js.map","/**\n * Conditional type casting. You are responsible for ensuring that the condition implies the type casting.\n * @param value\n * @param condition\n * @example Spectrum\n * ```ts\n * interface BaseSpectrum {\n *  dimension: number;\n * }\n * interface Spectrum1D extends BaseSpectrum {\n *  foo: number;\n * }\n * interface Spectrum2D extends BaseSpectrum {\n *  bar: number;\n * }\n *\n * const spectrum: Spectrum = {...null};\n *\n * if (is<Spectrum1D>(spectrum, spectrum.dimension === 1)) {\n *  // spectrum is Spectrum1D\n *  void spectrum.foo;\n * }\n * else if (is<Spectrum2D>(spectrum, spectrum.dimension === 2)) {\n *  // spectrum is Spectrum2D\n *  void spectrum.bar;\n * }\n * ```\n * @example Build spectrum check helper\n * Hide type checks with noisy syntax in dedicated helpers.\n *\n * ```ts\n * function isSpectrum1D(spectrum: Spectrum) {\n *   return is<Spectrum1D>(spectrum, spectrum.dimension === 1);\n * }\n *\n * function isSpectrum2D(spectrum: Spectrum) {\n *   return is<Spectrum2D>(spectrum, spectrum.dimension === 1);\n * }\n * ```\n */\n// The purpose of this method is to cast the value to Output.\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\nexport function is(value, condition) {\n    void value;\n    return condition;\n}\n/**\n * Casts the value to the Output type.\n * This kind of helpers should be avoided whenever it is possible. It is roughly equivalent to `as unknown as Output` cast. There is not checks.\n * Use it when you are sure that the value is of the Output type, but for some reason TypeScript is not able to infer it,\n * and for optimization purpose you want to avoid the redundant checks.\n * @param value\n * @example Valid use-case, runner with de-corelated checks from run method.\n *\n * ```ts\n * interface Operator<Value> {\n *  id: string;\n *  isApplicable: (value: Value) => boolean;\n *  apply: (value: Value) => void;\n * }\n *\n * interface Operation {\n *  uid: string;\n *  operatorId: string;\n * }\n *\n * const operators = new Map<string, Operator<unknown>>([\n *  [\n *    'add',\n *    {\n *      id: 'add',\n *      isApplicable: isSpectrum1D,\n *      apply: (spectrum: Spectrum) => {\n *        cast<Spectrum1D>();\n *        spectrum.foo += 1;\n *      },\n *    },\n *  ]\n * ]);\n *\n * function run(value: unknown, operations: Operation[]) {\n *  for (const operation of operations) {\n *    const operator = operators.get(operation.operatorId);\n *    assertDefined(operator);\n *    assert(operator.isApplicable(value));\n *    operator.apply(value);\n *  }\n * }\n * ```\n */\n// The purpose of this method is to cast the value to Output.\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\nexport function cast(value) {\n    void value;\n}\n//# sourceMappingURL=cast.js.map","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst MAX_32_BITS = 0xffffffff;\nconst MAX_16_BITS = 0xffff;\nconst MAX_8_BITS = 0xff;\nconst COMPRESSION_METHOD_DEFLATE = 0x08;\nconst COMPRESSION_METHOD_DEFLATE_64 = 0x09;\nconst COMPRESSION_METHOD_STORE = 0x00;\nconst COMPRESSION_METHOD_AES = 0x63;\n\nconst LOCAL_FILE_HEADER_SIGNATURE = 0x04034b50;\nconst SPLIT_ZIP_FILE_SIGNATURE = 0x08074b50;\nconst TEMPORARY_SPLIT_ZIP_FILE_SIGNATURE = 0x30304b50;\nconst DATA_DESCRIPTOR_RECORD_SIGNATURE = SPLIT_ZIP_FILE_SIGNATURE;\nconst ARCHIVE_EXTRA_DATA_SIGNATURE = 0x08064b50;\nconst DIGITAL_SIGNATURE_RECORD_SIGNATURE = 0x05054b50;\nconst CENTRAL_FILE_HEADER_SIGNATURE = 0x02014b50;\nconst END_OF_CENTRAL_DIR_SIGNATURE = 0x06054b50;\nconst ZIP64_END_OF_CENTRAL_DIR_SIGNATURE = 0x06064b50;\nconst ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE = 0x07064b50;\nconst CENTRAL_FILE_HEADER_LENGTH = 46;\nconst END_OF_CENTRAL_DIR_LENGTH = 22;\nconst ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH = 20;\nconst ZIP64_END_OF_CENTRAL_DIR_LENGTH = 56;\nconst ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH = END_OF_CENTRAL_DIR_LENGTH + ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH + ZIP64_END_OF_CENTRAL_DIR_LENGTH;\n\nconst DATA_DESCRIPTOR_RECORD_LENGTH = 12;\nconst DATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH = 20;\nconst DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH = 4;\nconst SPLIT_ZIP_FILE_SIGNATURE_LENGTH = 4;\n\nconst EXTRAFIELD_TYPE_ZIP64 = 0x0001;\nconst EXTRAFIELD_TYPE_AES = 0x9901;\nconst EXTRAFIELD_TYPE_NTFS = 0x000a;\nconst EXTRAFIELD_TYPE_NTFS_TAG1 = 0x0001;\nconst EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP = 0x5455;\nconst EXTRAFIELD_TYPE_UNICODE_PATH = 0x7075;\nconst EXTRAFIELD_TYPE_UNICODE_COMMENT = 0x6375;\nconst EXTRAFIELD_TYPE_USDZ = 0x1986;\nconst EXTRAFIELD_TYPE_INFOZIP = 0x7875;\nconst EXTRAFIELD_TYPE_UNIX = 0x7855;\nconst EXTRAFIELD_TYPE_UNIX_TYPE1 = 0x5855;\nconst EXTRAFIELD_TYPE_PKWARE_UNIX = 0x000d;\n\nconst BITFLAG_ENCRYPTED = 0b1;\nconst BITFLAG_LEVEL = 0b0110;\nconst BITFLAG_LEVEL_MAX_MASK = 0b010;\nconst BITFLAG_LEVEL_FAST_MASK = 0b100;\nconst BITFLAG_LEVEL_SUPER_FAST_MASK = 0b110;\nconst BITFLAG_DATA_DESCRIPTOR = 0b1000;\nconst BITFLAG_COMPRESSED_PATCHED_DATA = 0b100000;\nconst BITFLAG_STRONG_ENCRYPTION = 0b1000000;\nconst BITFLAG_LANG_ENCODING_FLAG = 0b100000000000;\nconst BITFLAG_MASKED_LOCAL_HEADERS = 0b10000000000000;\nconst FILE_ATTR_MSDOS_DIR_MASK = 0b10000;\nconst FILE_ATTR_MSDOS_READONLY_MASK = 0x01;\nconst FILE_ATTR_MSDOS_HIDDEN_MASK = 0x02;\nconst FILE_ATTR_MSDOS_SYSTEM_MASK = 0x04;\nconst FILE_ATTR_MSDOS_ARCHIVE_MASK = 0x20;\nconst FILE_ATTR_UNIX_TYPE_MASK = 0o170000;\nconst FILE_ATTR_UNIX_TYPE_DIR = 0o040000;\nconst FILE_ATTR_UNIX_TYPE_SYMLINK = 0o120000;\nconst FILE_ATTR_UNIX_TYPE_FILE = 0o100000;\nconst FILE_ATTR_UNIX_EXECUTABLE_MASK = 0o111;\nconst FILE_ATTR_UNIX_DEFAULT_MASK = 0o644;\nconst FILE_ATTR_UNIX_SETUID_MASK = 0o4000;\nconst FILE_ATTR_UNIX_SETGID_MASK = 0o2000;\nconst FILE_ATTR_UNIX_STICKY_MASK = 0o1000;\n\nconst VERSION_STORE = 0x0A;\nconst VERSION_DEFLATE = 0x14;\nconst VERSION_ZIP64 = 0x2D;\nconst VERSION_AES = 0x33;\n\nconst VERSION_MADE_BY_MSDOS = 0x0014;\nconst VERSION_MADE_BY_UNIX = 0x0300;\n\nconst DIRECTORY_SIGNATURE = \"/\";\n\nconst HEADER_SIZE = 30;\nconst HEADER_OFFSET_VERSION = 0;\nconst HEADER_OFFSET_SIGNATURE = 10;\nconst HEADER_OFFSET_COMPRESSED_SIZE = 14;\nconst HEADER_OFFSET_UNCOMPRESSED_SIZE = 18;\nconst HEADER_OFFSET_FILENAME_LENGTH = 22;\nconst HEADER_OFFSET_EXTRAFIELD_LENGTH = 24;\nconst LOCAL_HEADER_COMMON_OFFSET = 4;\n\nconst MAX_DATE = new Date(2107, 11, 31, 23, 59, 58);\nconst MIN_DATE = new Date(1980, 0, 1);\n\nconst UNDEFINED_VALUE = undefined;\nconst INFINITY_VALUE = Infinity;\nconst UNDEFINED_TYPE = \"undefined\";\nconst FUNCTION_TYPE = \"function\";\nconst OBJECT_TYPE = \"object\";\nconst STRING_TYPE = \"string\";\nconst NUMBER_TYPE = \"number\";\nconst BOOLEAN_TYPE = \"boolean\";\n\nconst EMPTY_UINT8_ARRAY = new Uint8Array();\nconst SYMBOL_ASYNC_DISPOSE = Symbol.asyncDispose || Symbol();\n\nexport {\n\tEMPTY_UINT8_ARRAY,\n\tSYMBOL_ASYNC_DISPOSE,\n\tMAX_32_BITS,\n\tMAX_16_BITS,\n\tMAX_8_BITS,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_DEFLATE_64,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_AES,\n\tSPLIT_ZIP_FILE_SIGNATURE,\n\tTEMPORARY_SPLIT_ZIP_FILE_SIGNATURE,\n\tARCHIVE_EXTRA_DATA_SIGNATURE,\n\tDIGITAL_SIGNATURE_RECORD_SIGNATURE,\n\tLOCAL_FILE_HEADER_SIGNATURE,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE,\n\tCENTRAL_FILE_HEADER_SIGNATURE,\n\tCENTRAL_FILE_HEADER_LENGTH,\n\tEND_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_SIGNATURE,\n\tDATA_DESCRIPTOR_RECORD_LENGTH,\n\tDATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH,\n\tSPLIT_ZIP_FILE_SIGNATURE_LENGTH,\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_NTFS_TAG1,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEXTRAFIELD_TYPE_UNICODE_PATH,\n\tEXTRAFIELD_TYPE_UNICODE_COMMENT,\n\tEXTRAFIELD_TYPE_USDZ,\n\tEXTRAFIELD_TYPE_INFOZIP,\n\tEXTRAFIELD_TYPE_UNIX,\n\tEXTRAFIELD_TYPE_UNIX_TYPE1,\n\tEXTRAFIELD_TYPE_PKWARE_UNIX,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH,\n\tBITFLAG_ENCRYPTED,\n\tBITFLAG_LEVEL,\n\tBITFLAG_LEVEL_MAX_MASK,\n\tBITFLAG_LEVEL_FAST_MASK,\n\tBITFLAG_LEVEL_SUPER_FAST_MASK,\n\tBITFLAG_DATA_DESCRIPTOR,\n\tBITFLAG_COMPRESSED_PATCHED_DATA,\n\tBITFLAG_STRONG_ENCRYPTION,\n\tBITFLAG_LANG_ENCODING_FLAG,\n\tBITFLAG_MASKED_LOCAL_HEADERS,\n\tFILE_ATTR_MSDOS_DIR_MASK,\n\tFILE_ATTR_MSDOS_READONLY_MASK,\n\tFILE_ATTR_MSDOS_HIDDEN_MASK,\n\tFILE_ATTR_MSDOS_SYSTEM_MASK,\n\tFILE_ATTR_MSDOS_ARCHIVE_MASK,\n\tFILE_ATTR_UNIX_TYPE_MASK,\n\tFILE_ATTR_UNIX_TYPE_DIR,\n\tFILE_ATTR_UNIX_TYPE_SYMLINK,\n\tFILE_ATTR_UNIX_TYPE_FILE,\n\tFILE_ATTR_UNIX_EXECUTABLE_MASK,\n\tFILE_ATTR_UNIX_DEFAULT_MASK,\n\tFILE_ATTR_UNIX_SETUID_MASK,\n\tFILE_ATTR_UNIX_SETGID_MASK,\n\tFILE_ATTR_UNIX_STICKY_MASK,\n\tVERSION_STORE,\n\tVERSION_DEFLATE,\n\tVERSION_MADE_BY_MSDOS,\n\tVERSION_MADE_BY_UNIX,\n\tVERSION_ZIP64,\n\tVERSION_AES,\n\tHEADER_SIZE,\n\tHEADER_OFFSET_VERSION,\n\tHEADER_OFFSET_SIGNATURE,\n\tHEADER_OFFSET_COMPRESSED_SIZE,\n\tHEADER_OFFSET_UNCOMPRESSED_SIZE,\n\tHEADER_OFFSET_FILENAME_LENGTH,\n\tHEADER_OFFSET_EXTRAFIELD_LENGTH,\n\tLOCAL_HEADER_COMMON_OFFSET,\n\tDIRECTORY_SIGNATURE,\n\tMIN_DATE,\n\tMAX_DATE,\n\tUNDEFINED_VALUE,\n\tINFINITY_VALUE,\n\tUNDEFINED_TYPE,\n\tFUNCTION_TYPE,\n\tOBJECT_TYPE,\n\tSTRING_TYPE,\n\tNUMBER_TYPE,\n\tBOOLEAN_TYPE\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global DOMException */\n\nimport {\n\tBOOLEAN_TYPE,\n\tFUNCTION_TYPE,\n\tSTRING_TYPE,\n\tUNDEFINED_VALUE\n} from \"./constants.js\";\n\nconst OPTION_FILENAME_ENCODING = \"filenameEncoding\";\nconst OPTION_COMMENT_ENCODING = \"commentEncoding\";\nconst OPTION_DECODE_TEXT = \"decodeText\";\nconst OPTION_EXTRACT_PREPENDED_DATA = \"extractPrependedData\";\nconst OPTION_EXTRACT_APPENDED_DATA = \"extractAppendedData\";\nconst OPTION_PASSWORD = \"password\";\nconst OPTION_RAW_PASSWORD = \"rawPassword\";\nconst OPTION_PASS_THROUGH = \"passThrough\";\nconst OPTION_SIGNAL = \"signal\";\nconst OPTION_CHECK_PASSWORD_ONLY = \"checkPasswordOnly\";\nconst OPTION_CHECK_OVERLAPPING_ENTRY_ONLY = \"checkOverlappingEntryOnly\";\nconst OPTION_CHECK_OVERLAPPING_ENTRY = \"checkOverlappingEntry\";\nconst OPTION_CHECK_AMBIGUITY = \"checkAmbiguity\";\nconst OPTION_CHECK_LOCAL_DIRECTORY = \"checkLocalDirectory\";\nconst OPTION_CHECK_LOCAL_FILENAME = \"checkLocalFilename\";\nconst OPTION_CHECK_SIGNATURE = \"checkSignature\";\nconst OPTION_CHECK_CRC32 = \"checkCrc32\";\nconst OPTION_CHECK_AUTHENTICATION_CODE = \"checkAuthenticationCode\";\nconst OPTION_USE_WEB_WORKERS = \"useWebWorkers\";\nconst OPTION_USE_COMPRESSION_STREAM = \"useCompressionStream\";\nconst OPTION_TRANSFER_STREAMS = \"transferStreams\";\nconst OPTION_PREVENT_CLOSE = \"preventClose\";\nconst OPTION_ENCRYPTION_STRENGTH = \"encryptionStrength\";\nconst OPTION_EXTENDED_TIMESTAMP = \"extendedTimestamp\";\nconst OPTION_NTFS_TIMESTAMP = \"ntfsTimestamp\";\nconst OPTION_KEEP_ORDER = \"keepOrder\";\nconst OPTION_LEVEL = \"level\";\nconst OPTION_BUFFERED_WRITE = \"bufferedWrite\";\nconst OPTION_CREATE_TEMP_STREAM = \"createTempStream\";\nconst OPTION_DATA_DESCRIPTOR_SIGNATURE = \"dataDescriptorSignature\";\nconst OPTION_USE_UNICODE_FILE_NAMES = \"useUnicodeFileNames\";\nconst OPTION_DATA_DESCRIPTOR = \"dataDescriptor\";\nconst OPTION_SUPPORT_ZIP64_SPLIT_FILE = \"supportZip64SplitFile\";\nconst OPTION_ENCODE_TEXT = \"encodeText\";\nconst OPTION_OFFSET = \"offset\";\nconst OPTION_USDZ = \"usdz\";\nconst OPTION_UNIX_EXTRA_FIELD_TYPE = \"unixExtraFieldType\";\nconst OPTION_LOCAL_EXTRA_FIELD = \"localExtraField\";\nconst OPTION_CENTRAL_EXTRA_FIELD = \"centralExtraField\";\nconst OPTION_STRICTNESS = \"strictness\";\nconst OPTION_FILENAME_VALIDATION = \"filenameValidation\";\nconst OPTION_NORMALIZE_FILENAME = \"normalizeFilename\";\nconst OPTION_MAX_APPENDED_DATA_SIZE = \"maxAppendedDataSize\";\nconst OPTION_DECRYPT_CENTRAL_DIRECTORY = \"decryptCentralDirectory\";\nconst OPTION_SIGN_CENTRAL_DIRECTORY = \"signCentralDirectory\";\nconst OPTION_ENTRY = \"entry\";\nconst TEXT_TYPE_FILENAME = \"filename\";\nconst TEXT_TYPE_COMMENT = \"comment\";\nconst STRICTNESS_STRICT = \"strict\";\nconst STRICTNESS_BALANCED = \"balanced\";\nconst STRICTNESS_TOLERANT = \"tolerant\";\nconst PASS_THROUGH_COMPRESSED = \"compressed\";\n\nconst ERR_INVALID_FUNCTION_OPTION = \"Invalid option (must be a function)\";\nconst ERR_INVALID_SIGNAL = \"Invalid signal (must be an AbortSignal instance)\";\nconst ERR_INVALID_PASSWORD_TYPE = \"Invalid password (password must be a string, rawPassword must be a Uint8Array)\";\nconst ERR_INVALID_PASS_THROUGH_VALUE = \"Invalid passThrough option (must be a boolean or 'compressed')\";\nconst ERR_ABORTED = \"The operation was aborted\";\nconst ABORT_ERROR_NAME = \"AbortError\";\n\nexport {\n\tOPTION_FILENAME_ENCODING,\n\tOPTION_COMMENT_ENCODING,\n\tOPTION_DECODE_TEXT,\n\tOPTION_EXTRACT_PREPENDED_DATA,\n\tOPTION_EXTRACT_APPENDED_DATA,\n\tOPTION_PASSWORD,\n\tOPTION_RAW_PASSWORD,\n\tOPTION_PASS_THROUGH,\n\tOPTION_SIGNAL,\n\tOPTION_CHECK_PASSWORD_ONLY,\n\tOPTION_CHECK_OVERLAPPING_ENTRY_ONLY,\n\tOPTION_CHECK_OVERLAPPING_ENTRY,\n\tOPTION_CHECK_AMBIGUITY,\n\tOPTION_CHECK_LOCAL_DIRECTORY,\n\tOPTION_CHECK_LOCAL_FILENAME,\n\tOPTION_CHECK_SIGNATURE,\n\tOPTION_CHECK_CRC32,\n\tOPTION_CHECK_AUTHENTICATION_CODE,\n\tOPTION_USE_WEB_WORKERS,\n\tOPTION_USE_COMPRESSION_STREAM,\n\tOPTION_TRANSFER_STREAMS,\n\tOPTION_PREVENT_CLOSE,\n\tOPTION_ENCRYPTION_STRENGTH,\n\tOPTION_EXTENDED_TIMESTAMP,\n\tOPTION_NTFS_TIMESTAMP,\n\tOPTION_KEEP_ORDER,\n\tOPTION_LEVEL,\n\tOPTION_BUFFERED_WRITE,\n\tOPTION_CREATE_TEMP_STREAM,\n\tOPTION_DATA_DESCRIPTOR_SIGNATURE,\n\tOPTION_USE_UNICODE_FILE_NAMES,\n\tOPTION_DATA_DESCRIPTOR,\n\tOPTION_SUPPORT_ZIP64_SPLIT_FILE,\n\tOPTION_ENCODE_TEXT,\n\tOPTION_OFFSET,\n\tOPTION_USDZ,\n\tOPTION_UNIX_EXTRA_FIELD_TYPE,\n\tOPTION_LOCAL_EXTRA_FIELD,\n\tOPTION_CENTRAL_EXTRA_FIELD,\n\tOPTION_STRICTNESS,\n\tOPTION_FILENAME_VALIDATION,\n\tOPTION_NORMALIZE_FILENAME,\n\tOPTION_MAX_APPENDED_DATA_SIZE,\n\tOPTION_DECRYPT_CENTRAL_DIRECTORY,\n\tOPTION_SIGN_CENTRAL_DIRECTORY,\n\tOPTION_ENTRY,\n\tTEXT_TYPE_FILENAME,\n\tTEXT_TYPE_COMMENT,\n\tSTRICTNESS_STRICT,\n\tSTRICTNESS_BALANCED,\n\tSTRICTNESS_TOLERANT,\n\tPASS_THROUGH_COMPRESSED,\n\tERR_INVALID_FUNCTION_OPTION,\n\tERR_INVALID_SIGNAL,\n\tERR_INVALID_PASSWORD_TYPE,\n\tERR_INVALID_PASS_THROUGH_VALUE,\n\tERR_ABORTED,\n\tABORT_ERROR_NAME,\n\tcheckFunctionOption,\n\tcheckSignalOption,\n\tthrowIfAborted,\n\tcheckPasswordOption,\n\tcheckPassThroughOption,\n\tcheckInteger,\n\tcheckIntegerOption,\n\ttoNumber\n};\n\nfunction checkFunctionOption(value) {\n\tif (value && typeof value != FUNCTION_TYPE) {\n\t\tthrow new Error(ERR_INVALID_FUNCTION_OPTION);\n\t}\n\treturn value;\n}\n\nfunction checkSignalOption(signal) {\n\tif (signal && (typeof signal.addEventListener != FUNCTION_TYPE || typeof signal.aborted != BOOLEAN_TYPE)) {\n\t\tthrow new Error(ERR_INVALID_SIGNAL);\n\t}\n\treturn signal || UNDEFINED_VALUE;\n}\n\nfunction throwIfAborted(signal) {\n\tif (signal && signal.aborted) {\n\t\tthrow signal.reason === UNDEFINED_VALUE ? new DOMException(ERR_ABORTED, ABORT_ERROR_NAME) : signal.reason;\n\t}\n}\n\nfunction checkPasswordOption(password, rawPassword) {\n\tif ((password && typeof password != STRING_TYPE) || (rawPassword && !(rawPassword instanceof Uint8Array))) {\n\t\tthrow new Error(ERR_INVALID_PASSWORD_TYPE);\n\t}\n}\n\nfunction checkPassThroughOption(passThrough) {\n\tif (passThrough !== UNDEFINED_VALUE && typeof passThrough != BOOLEAN_TYPE && passThrough !== PASS_THROUGH_COMPRESSED) {\n\t\tthrow new Error(ERR_INVALID_PASS_THROUGH_VALUE);\n\t}\n\treturn passThrough;\n}\n\nfunction checkInteger(value, maxValue, errorMessage) {\n\tif (!Number.isInteger(value) || value < 0 || value > maxValue) {\n\t\tthrow new Error(errorMessage);\n\t}\n}\n\nfunction checkIntegerOption(value, maxValue, errorMessage) {\n\tif (value !== UNDEFINED_VALUE) {\n\t\tcheckInteger(value, maxValue, errorMessage);\n\t}\n}\n\nfunction toNumber(value) {\n\treturn typeof value == STRING_TYPE && value.trim() ? Number(value) : value;\n}","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global navigator, CompressionStream, DecompressionStream */\n\nimport {\n\tUNDEFINED_VALUE,\n\tUNDEFINED_TYPE,\n\tFUNCTION_TYPE,\n\tSTRING_TYPE\n} from \"./constants.js\";\nimport {\n\tcheckFunctionOption,\n\ttoNumber\n} from \"./options.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\nconst MINIMUM_CHUNK_SIZE = 64;\nconst MINIMUM_PROPERTY_VALUE = 1;\nconst ERR_INVALID_MAX_WORKERS = \"Invalid maxWorkers (must be an integer greater than 0)\";\nconst ERR_INVALID_BASE_URI = \"Invalid baseURI (must be a string)\";\nconst ERR_INVALID_URI = \"Invalid URI (must be a string or a function returning a string)\";\nlet maxWorkers = 2;\ntry {\n\tif (typeof navigator != UNDEFINED_TYPE && navigator.hardwareConcurrency) {\n\t\tmaxWorkers = navigator.hardwareConcurrency;\n\t}\n} catch {\n\t// ignored\n}\nconst DEFAULT_CONFIGURATION = {\n\tworkerURI: \"./core/web-worker-wasm.js\",\n\twasmURI: \"./core/streams/zlib-wasm/zlib-streams.wasm\",\n\tchunkSize: DEFAULT_CHUNK_SIZE,\n\tmaxWorkers,\n\tterminateWorkerTimeout: 5000,\n\tworkerStarvationTimeout: 5000,\n\tworkerStartupTimeout: 5000,\n\tuseWebWorkers: true,\n\tuseCompressionStream: true,\n\ttransferStreams: true,\n\tCompressionStream: typeof CompressionStream != UNDEFINED_TYPE && CompressionStream,\n\tDecompressionStream: typeof DecompressionStream != UNDEFINED_TYPE && DecompressionStream\n};\n\nconst PROPERTY_NAME_MAX_WORKERS = \"maxWorkers\";\nconst PROPERTY_NAME_BASE_URI = \"baseURI\";\n\nconst URI_PROPERTY_NAMES = [\n\t\"wasmURI\",\n\t\"workerURI\"\n];\nconst BOOLEAN_PROPERTY_NAMES = [\n\t\"useCompressionStream\",\n\t\"useWebWorkers\",\n\t\"transferStreams\"\n];\nconst NUMBER_PROPERTY_NAMES = [\n\t\"chunkSize\",\n\tPROPERTY_NAME_MAX_WORKERS,\n\t\"terminateWorkerTimeout\",\n\t\"workerStarvationTimeout\",\n\t\"workerStartupTimeout\"\n];\nconst FUNCTION_PROPERTY_NAMES = [\n\t\"createWorker\",\n\t\"CompressionStream\",\n\t\"DecompressionStream\",\n\t\"CompressionStreamFallback\",\n\t\"DecompressionStreamFallback\"\n];\nconst CONFIGURABLE_PROPERTY_NAMES = [\n\tPROPERTY_NAME_BASE_URI,\n\t...URI_PROPERTY_NAMES,\n\t...BOOLEAN_PROPERTY_NAMES,\n\t...NUMBER_PROPERTY_NAMES,\n\t...FUNCTION_PROPERTY_NAMES\n];\n\nconst config = { ...DEFAULT_CONFIGURATION };\n\nexport {\n\tconfigure,\n\tsetDefaultConfiguration,\n\tresetConfiguration,\n\tgetConfiguration,\n\tgetChunkSize,\n\tnormalizeChunkSize,\n\tERR_INVALID_MAX_WORKERS,\n\tERR_INVALID_BASE_URI,\n\tERR_INVALID_URI\n};\n\nfunction getConfiguration() {\n\treturn config;\n}\n\nfunction getChunkSize(config) {\n\treturn normalizeChunkSize(config.chunkSize);\n}\n\nfunction normalizeChunkSize(chunkSize) {\n\tchunkSize = toNumber(chunkSize);\n\treturn Number.isInteger(chunkSize) && chunkSize >= MINIMUM_PROPERTY_VALUE ? Math.max(chunkSize, MINIMUM_CHUNK_SIZE) : DEFAULT_CHUNK_SIZE;\n}\n\nfunction configure(configuration) {\n\tObject.assign(config, checkConfiguration(normalizeConfiguration(configuration)));\n}\n\nfunction checkConfiguration(configuration) {\n\tconst checkedConfiguration = {};\n\tfor (const propertyName of CONFIGURABLE_PROPERTY_NAMES) {\n\t\tconst propertyValue = configuration[propertyName];\n\t\tif (propertyValue !== UNDEFINED_VALUE) {\n\t\t\tcheckedConfiguration[propertyName] = checkPropertyValue(propertyName, propertyValue);\n\t\t}\n\t}\n\treturn checkedConfiguration;\n}\n\nfunction checkPropertyValue(propertyName, propertyValue) {\n\tif (NUMBER_PROPERTY_NAMES.includes(propertyName)) {\n\t\tpropertyValue = toNumber(propertyValue);\n\t\tif (propertyName == PROPERTY_NAME_MAX_WORKERS && (!Number.isInteger(propertyValue) || propertyValue < MINIMUM_PROPERTY_VALUE)) {\n\t\t\tthrow new Error(ERR_INVALID_MAX_WORKERS);\n\t\t}\n\t} else if (FUNCTION_PROPERTY_NAMES.includes(propertyName)) {\n\t\tcheckFunctionOption(propertyValue);\n\t} else if (propertyName == PROPERTY_NAME_BASE_URI) {\n\t\tif (propertyValue && typeof propertyValue != STRING_TYPE) {\n\t\t\tthrow new Error(ERR_INVALID_BASE_URI);\n\t\t}\n\t} else if (URI_PROPERTY_NAMES.includes(propertyName)) {\n\t\tif (propertyValue && typeof propertyValue != STRING_TYPE && typeof propertyValue != FUNCTION_TYPE) {\n\t\t\tthrow new Error(ERR_INVALID_URI);\n\t\t}\n\t}\n\treturn propertyValue;\n}\n\nfunction normalizeConfiguration(configuration) {\n\tconfiguration = configuration || {};\n\tconst { CompressionStreamZlib, DecompressionStreamZlib } = configuration;\n\tif (CompressionStreamZlib === UNDEFINED_VALUE && DecompressionStreamZlib === UNDEFINED_VALUE) {\n\t\treturn configuration;\n\t}\n\tconst normalizedConfiguration = Object.assign({}, configuration);\n\tif (normalizedConfiguration.CompressionStreamFallback === UNDEFINED_VALUE) {\n\t\tnormalizedConfiguration.CompressionStreamFallback = CompressionStreamZlib;\n\t}\n\tif (normalizedConfiguration.DecompressionStreamFallback === UNDEFINED_VALUE) {\n\t\tnormalizedConfiguration.DecompressionStreamFallback = DecompressionStreamZlib;\n\t}\n\treturn normalizedConfiguration;\n}\n\nfunction setDefaultConfiguration(configuration) {\n\tconst checkedConfiguration = checkConfiguration(normalizeConfiguration(configuration));\n\tObject.assign(DEFAULT_CONFIGURATION, checkedConfiguration);\n\tObject.assign(config, checkedConfiguration);\n}\n\nfunction resetConfiguration() {\n\tfor (const propertyName of CONFIGURABLE_PROPERTY_NAMES) {\n\t\tdelete config[propertyName];\n\t}\n\tObject.assign(config, DEFAULT_CONFIGURATION);\n}\n","const t=new Uint8Array(288);t.fill(8,0,144),t.fill(9,144,256),t.fill(7,256,280),t.fill(8,280,288),new Uint8Array(30).fill(5);const n=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",e=t=>t({workerURI:t=>{const e=\"text/javascript\";let r='!function(t){\"function\"==typeof define&&define.amd?define(t):t()}(function(){\"use strict\";const{Array:t,Object:n,Number:e,Math:o,Error:r,Uint8Array:c,Uint16Array:s,Uint32Array:a,Int32Array:i,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:d,postMessage:p,TransformStream:h,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b=\"undefined\",k=\"function\",z=new c,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,M,A,E,R,x,P,D]=C;class F{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let o=0;if(e>=8&&t.buffer){const r=new u(t.buffer,t.byteOffset,e),c=e-8;for(;o<=c;o+=8){const t=n^r.getInt32(o,!0),e=r.getInt32(o+4,!0);n=D[255&t]^P[t>>>8&255]^x[t>>>16&255]^R[t>>>24&255]^E[255&e]^A[e>>>8&255]^M[e>>>16&255]^I[e>>>24&255]}}for(;o<e;o++)n=n>>>8^I[255&(n^t[o])];this.o=n}get(){return~this.o}}class U extends h{constructor(){let t;const n=new F;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new c(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new c(t.length+n.length);return e.set(t),e.set(n,t.length),e}function W(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const O=64,V=20,K=new c([128]),T=new c(1),_=new i([1732584193,4023233417,2562383102,271733878,3285377520]),j=new c(256),H=new i(256),L=new i(256),Z=new i(256),N=new i(256);let q=!1;function G(t,n){!function(){if(!q){let t=1,n=1;do{t=255&(t^t<<1^(128&t?27:0)),n=255&(n^n<<1),n=255&(n^n<<2),n=255&(n^n<<4),128&n&&(n^=9),j[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);j[0]=99;for(let t=0;t<256;t++){const n=j[t],e=Y(n),o=e<<24|n<<16|n<<8|e^n;H[t]=o,L[t]=o>>>8|o<<24,Z[t]=o>>>16|o<<16,N[t]=o>>>24|o<<8}q=!0}}();const e=new i(60),o=function(t,n){const e=t.length>>2,o=e+6,r=4*(o+1);let c=1;for(let o=0;o<e;o++)n[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let t=e;t<r;t++){let o=n[t-1];t%e==0?(o=Q(o<<8|o>>>24)^c<<24,c=Y(c)):e>6&&t%e==4&&(o=Q(o)),n[t]=n[t-e]^o}return o}(t,e),r=new i(4),c=J(n);let s=0,a=0,f=0,w=0;return{process(t,n){n&&c.update(t,0,t.length),function(t){const n=new u(t.buffer,t.byteOffset,t.byteLength),e=t.length;let o=0;for(;o+16<=e;o+=16)l(),n.setInt32(o,n.getInt32(o)^r[0]),n.setInt32(o+4,n.getInt32(o+4)^r[1]),n.setInt32(o+8,n.getInt32(o+8)^r[2]),n.setInt32(o+12,n.getInt32(o+12)^r[3]);if(o<e){l();for(let n=0;o<e;o++,n++)t[o]^=r[n>>2]>>>24-8*(3&n)}}(t),n||c.update(t,0,t.length)},digest:()=>c.digest()};function l(){s=s+1|0,s||(a=a+1|0,a||(f=f+1|0,f||(w=w+1|0)));let t=X(s)^e[0],n=X(a)^e[1],c=X(f)^e[2],i=X(w)^e[3],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[4],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[5],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[6],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[7];t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[8],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[9],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[10],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[11],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[12],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[13],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[14],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[15],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[16],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[17],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[18],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[19],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[20],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[21],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[22],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[23],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[24],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[25],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[26],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[27],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[28],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[29],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[30],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[31],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[32],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[33],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[34],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[35],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[36],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[37],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[38],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[39];let h=40;o>10&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[40],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[41],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[42],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[43],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[44],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[45],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[46],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[47],h=48),o>12&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[48],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[49],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[50],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[51],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[52],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[53],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[54],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[55],h=56),r[0]=(j[u>>>24]<<24|j[l>>>16&255]<<16|j[d>>>8&255]<<8|j[255&p])^e[h],r[1]=(j[l>>>24]<<24|j[d>>>16&255]<<16|j[p>>>8&255]<<8|j[255&u])^e[h+1],r[2]=(j[d>>>24]<<24|j[p>>>16&255]<<16|j[u>>>8&255]<<8|j[255&l])^e[h+2],r[3]=(j[p>>>24]<<24|j[u>>>16&255]<<16|j[l>>>8&255]<<8|j[255&d])^e[h+3]}}function J(t){const n=function(){const t=new i(_),n=new i(16),e=new c(O),r=new u(e.buffer),s=new c(8);let a=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),r=n>>>0;for(w(K,0,1);56!=a;)w(T,0,1);s[0]=e>>>24,s[1]=e>>>16,s[2]=e>>>8,s[3]=e,s[4]=r>>>24,s[5]=r>>>16,s[6]=r>>>8,s[7]=r,w(s,0,8);const i=new c(V),l=new u(i.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(_),a=0,f=0,i}};function w(t,n,o){const c=n+o;if(f+=o,a){for(;n<c&&a<O;)e[a++]=t[n++];a==O&&(l(r,0),a=0)}if(n+O<=c){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+O<=c;n+=O)l(e,n)}for(;n<c;)e[a++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);let r,c=t[0],s=t[1],a=t[2],i=t[3],f=t[4];for(let t=0;t<15;t+=5)f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[t]|0,s=s<<30|s>>>2,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+n[t+1]|0,c=c<<30|c>>>2,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+n[t+2]|0,f=f<<30|f>>>2,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+n[t+3]|0,i=i<<30|i>>>2,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+n[t+4]|0,a=a<<30|a>>>2;f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[15]|0,s=s<<30|s>>>2,r=n[13]^n[8]^n[2]^n[0],r=r<<1|r>>>31,n[0]=r,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+r|0,c=c<<30|c>>>2,r=n[14]^n[9]^n[3]^n[1],r=r<<1|r>>>31,n[1]=r,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+r|0,f=f<<30|f>>>2,r=n[15]^n[10]^n[4]^n[2],r=r<<1|r>>>31,n[2]=r,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+r|0,i=i<<30|i>>>2,r=n[0]^n[11]^n[5]^n[3],r=r<<1|r>>>31,n[3]=r,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+r|0,a=a<<30|a>>>2;for(let t=20;t<40;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+1859775393+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+1859775393+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+1859775393+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+1859775393+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+1859775393+r|0,a=a<<30|a>>>2;for(let t=40;t<60;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s&a|(s|a)&i)+f+2400959708+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c&s|(c|s)&a)+i+2400959708+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f&c|(f|c)&s)+a+2400959708+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i&f|(i|f)&c)+s+2400959708+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a&i|(a|i)&f)+c+2400959708+r|0,a=a<<30|a>>>2;for(let t=60;t<80;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+3395469782+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+3395469782+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+3395469782+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+3395469782+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+3395469782+r|0,a=a<<30|a>>>2;t[0]=t[0]+c|0,t[1]=t[1]+s|0,t[2]=t[2]+a|0,t[3]=t[3]+i|0,t[4]=t[4]+f|0}}(),e=new c(O),r=new c(O);t.length>O&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<O;n++){const o=n<t.length?t[n]:0;e[n]=54^o,r[n]=92^o}return n.update(e,0,O),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(r,0,O),n.update(t,0,V);const o=n.digest();return n.update(e,0,O),o}}}function Q(t){return j[t>>>24]<<24|j[t>>>16&255]<<16|j[t>>>8&255]<<8|j[255&t]}function X(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function Y(t){return 255&(t<<1^27*(t>>7))}const $=typeof d!=b&&typeof d.getRandomValues==k,tt=\"Invalid password\",nt=\"zipjs-abort-check-password\";function et(t){if($)return d.getRandomValues(t);throw new r(\"Crypto API not supported\")}const ot={name:\"PBKDF2\"},rt=n.assign({hash:{name:\"HMAC\"}},ot),ct=n.assign({iterations:1e3,hash:{name:\"SHA-1\"}},ot),st=[\"deriveBits\"],at=[8,12,16],it=[16,24,32],ft=10,ut=typeof d!=b,wt=ut&&d.subtle;let lt=ut&&typeof wt!=b&&typeof wt.importKey==k&&typeof wt.deriveBits==k,dt=G;class pt extends h{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:s=!0}){const a={};super({start(){yt(a,t,n,e)},async transform(t,n){const{password:e,strength:s,l:i,ready:f}=a;if(e?(await async function(t,n,e,o){const c=await vt(t,n,e,kt(o,0,at[n])),s=kt(o,at[n]);if(c[0]!=s[0]||c[1]!=s[1])throw gt(t),new r(tt)}(a,s,e,kt(t,0,at[s]+2)),t=kt(t,at[s]+2),o?(gt(a),n.error(new r(nt))):i()):await f,a.h)return;const u=new c(t.length-ft-(t.length-ft)%16);n.enqueue(St(a,t,u,0,ft,!0))},async flush(t){const{m:n,S:e,ready:o}=a;if(n){if(await o,a.h)return;const i=kt(e,e.length-ft),f=new c(kt(e,0,e.length-ft));n.process(f,!0);const u=n.digest();let w=e.length<ft?1:0;for(let t=0;t<ft;t++)w|=u[t]^i[t];if(w&&s)return void t.error(new r(\"Invalid authentication code\"));t.enqueue(f)}}}),mt(this,a)}}class ht extends h{constructor({password:t,rawPassword:n,encryptionStrength:e}){const o={};super({start(){yt(o,t,n,e)},async transform(t,n){const{password:e,strength:r,l:s,ready:a}=o;let i=z;if(e?(i=await async function(t,n,e){const o=et(new c(at[n]));return B(o,await vt(t,n,e,o))}(o,r,e),s()):await a,o.h)return;const f=new c(i.length+t.length-t.length%16);f.set(i,0),n.enqueue(St(o,t,f,i.length,0,!1))},async flush(t){const{m:n,S:e,ready:r}=o;if(n){if(await r,o.h)return;const s=new c(e);n.process(s,!1);const a=kt(n.digest(),0,ft);t.enqueue(B(s,a))}}}),mt(this,o)}}function yt(t,e,o,r){n.assign(t,{ready:new w(n=>t.l=n),password:bt(e,o),strength:r-1,S:z,h:!1})}function mt(t,e){const o=t.readable.getReader(),r=new y({async pull(t){try{const{value:n,done:e}=await o.read();e?t.close():t.enqueue(n)}catch(t){throw gt(e),o.cancel(t).catch(()=>{}),t}},cancel:t=>(gt(e),o.cancel(t))});n.defineProperty(t,\"readable\",{get:()=>r})}function St(t,n,e,o,r,s){const{m:a,S:i}=t;i.length&&(n=B(i,n));const f=n.length-r,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new c(n)).set(e,0)}return t}(e,o+u),u){const t=kt(e,o,o+u);t.set(kt(n,0,u)),a.process(t,s)}return t.S=kt(n,u),e}function gt(t){const{m:n}=t;t.h=!0,n&&n.dispose&&n.dispose()}async function vt(t,e,r,s){t.password=null;const a=it[e],i=await async function(t,e,r){if(lt)try{const o=await wt.importKey(\"raw\",t,rt,!1,st);return new c(await wt.deriveBits(n.assign({salt:e},ct),o,8*r))}catch{lt=!1}return function(t,n,e,r){const s=J(t),a=new c(r),i=new c(n.length+4),f=new u(i.buffer);i.set(n);for(let t=1,e=0;e<r;t++,e+=V){f.setUint32(n.length,t),s.update(i,0,i.length);let c=s.digest();const u=c.slice();for(let t=1;t<1e3;t++){s.update(c,0,V),c=s.digest();for(let t=0;t<V;t++)u[t]^=c[t]}a.set(u.subarray(0,o.min(V,r-e)),e)}return a}(t,e,0,r)}(r,s,2*a+2);return t.m=dt(kt(i,0,a),kt(i,a,2*a)),t.h&&gt(t),kt(i,2*a)}function bt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new c(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new l).encode(t)}(t):n}function kt(t,n,e){return t.subarray(n,e)}class zt extends h{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=Mt(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new r(tt);t=t.subarray(12)}o?n.error(new r(nt)):n.enqueue(Mt(e,t))}})}}class Ct extends h{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;let o,r;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=et(new c(12));n[11]=e.passwordVerification,o=new c(t.length+n.length),o.set(At(e,n),0),r=12}else o=new c(t.length),r=0;o.set(At(e,t),r),n.enqueue(o)}})}}function It(t,e,o,r){n.assign(t,{password:e,rawPassword:o,passwordVerification:r}),function(t,e,o){const r=[305419896,591751049,878082192];if(n.assign(t,{v:r,C:new F(r[0]),I:new F(r[2])}),o)for(let n=0;n<o.length;n++)Et(t,o[n]);else for(let n=0;n<e.length;n++)Et(t,e.charCodeAt(n))}(t,e,o)}function Mt(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,e[o]);return e}function At(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,n[o]);return e}function Et(t,n){let[,e]=t.v;t.C.append([n]);const r=~t.C.get();e=Pt(o.imul(Pt(e+xt(r)),134775813)+1),t.I.append([e>>>24]);const c=~t.I.get();t.v=[r,e,c]}function Rt(t){const n=2|t.v[2];return xt(o.imul(n,1^n)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Dt(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){try{const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)}catch(t){throw n.cancel(t).catch(()=>{}),t}},cancel:t=>n.cancel(t)})}function Ft(t){return Boolean(t)&&\"object\"==typeof t}const Ut=new f;function Bt(t){return Ut.get(t)}const Wt=\"Invalid uncompressed size\",Ot=\"Codec out of memory\",Vt=\"Invalid CRC32\",Kt=\"deflate-raw\",Tt=\"gzip\",_t=[31,139,8];class jt extends h{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:r,encrypted:c,useCompressionStream:s,zipCrypto:a,computeCrc32:i,level:f,deflate64:w,format:l,compressionMethod:d,inputSize:p}=t,h=this;let y,m,S,g=super.readable;const v=l&&Bt(l),b=Gt(s,o,e),k=i&&r&&!w&&!v&&(!c||a)&&Boolean(b);if(c&&!a||!i||k||(y=new U,g=Qt(g,y)),r)if(v)g=Xt(g,qt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:d,uncompressedSize:p}));else if(k)S=new Ht,g=Xt(g,new b(Tt,{level:f,chunkSize:n})),g=Qt(g,S);else try{g=Jt(g,s,{level:f,chunkSize:n},o,e)}catch(t){if(!s&&e)throw en(t);let n;try{n=new o(Tt)}catch{throw en(t)}g=Xt(g,n),g=Qt(g,new Ht)}c&&(a?g=Qt(g,new Ct(t)):(m=new ht(t),g=Qt(g,m))),Nt(h,g,()=>{c&&!a||!i||(h.crc32=k?S.crc32:new u(y.value.buffer).getUint32(0))})}}class Ht extends h{constructor(){let t,n=10,e=new c(0);super({transform(t,r){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const c=e.length+t.length;if(c<=8)return void(e=B(e,t));const s=c-8,a=o.min(s,e.length);r.enqueue(B(e.subarray(0,a),t.subarray(0,s-a))),e=B(e.subarray(a),t.subarray(s-a))},flush(){const n=W(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Lt extends h{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:s,encrypted:a,checkCrc32:i,crc32:f,compressed:l,useCompressionStream:d,deflate64:p,format:h,compressionMethod:m,rawBitFlag:S,outputSize:g}=t;let b,k,z,C=super.readable;if(a&&(s?C=Qt(C,new zt(t)):(k=new pt(t),C=Qt(C,k))),l){const t=new Set,s=h&&Bt(h);let a;if(s)C=Xt(C,qt(s.DecompressionStream,h,{chunkSize:n,compressionMethod:m,rawBitFlag:S,uncompressedSize:g}),t);else{const r=Gt(d,o,e);if(i&&!p&&f!==v&&g!==v&&r)try{a=new r(Tt,{chunkSize:n})}catch{a=v}if(!a)try{C=Jt(C,d,{chunkSize:n,deflate64:p},o,e,t)}catch(t){if(p||g===v||!d&&e)throw en(t);try{a=new o(Tt)}catch{throw en(t)}}}a?(z=!0,C=function(t,n,e,o,s){const a=n.writable.getWriter(),i=n.readable.getReader(),f=o===v?new F:v;let u,l,d=0,p=!1,h=!1;const m=new y({start(t){l=t},pull(){b()},cancel:t=>(h=!0,b(),i.cancel(t))});return async function(){const n=t.getReader();try{const t=new c(10);for(t.set(_t),await a.write(t);;){await g(),await a.ready;const{value:t,done:e}=await tn(n,s);if(e)break;await a.write(t)}f&&await a.write(new c(0));const r=new c(8),i=W(r);i.setUint32(0,f?f.get():o,!0),i.setUint32(4,e,!0),p=!0,await a.write(r),await a.close()}catch(t){await Yt(a,t),await $t(n,t)}}(),async function(){try{for(;;){const{value:t,done:n}=await S();if(n)break;if(d+=t.length,d>e)throw new r(Wt);f&&f.append(t),l.enqueue(t)}h||(h=!0,l.close())}catch(t){!function(t){h||(h=!0,l.error(t),b())}(t),await $t(i,t)}}(),m;function S(){return i.read().catch(t=>{if(p){if(!f)throw rn(t,Vt);if(d!=e)throw rn(t,Wt);return{done:!0}}throw nn(t,s)})}function g(){if(!h&&l.desiredSize<=0)return new w(t=>u=t)}function b(){if(u){const t=u;u=v,t()}}}(C,a,g,f,t)):C=function(t,n){const e=t.getReader();return new y({async pull(t){try{const{value:n,done:o}=await e.read();o?t.close():t.enqueue(n)}catch(t){throw await $t(e,t),nn(t,n)}},cancel:t=>e.cancel(t)})}(C,t)}i&&!z&&(b=new U,C=Qt(C,b)),Nt(this,C,()=>{if(b){const t=new u(b.value.buffer).getUint32(0,!1);if(f!=t)throw new r(Vt)}})}}const Zt=new f;function Nt(t,e,o){e=Qt(e,new h({flush:o})),n.defineProperty(t,\"readable\",{get:()=>e})}function qt(t,n,e){if(!t)throw new r(\"Compression method not supported\");return new t(n,e)}function Gt(t,n,e){return t&&n?n:e&&e.requiresModule?e:void 0}function Jt(t,n,e,o,r,c){const s=n&&o?o:r||o,a=e.deflate64?\"deflate64-raw\":Kt;let i;try{i=new s(a,e)}catch(t){if(!n||!r||s==r)throw t;i=new r(a,e)}return Xt(t,i,c)}function Qt(t,n){return Dt(t).pipeThrough(n)}function Xt(t,n,e){const o=n.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await o.ready;const t=await tn(r,e);if(t.done){await o.close();break}await o.write(t.value)}}catch(t){await Yt(o,t),await $t(r,t)}}(),n.readable}async function Yt(t,n){try{await t.abort(n)}catch{}}async function $t(t,n){try{await t.cancel(n)}catch{}}function tn(t,n){const e=t.read();return n?e.catch(t=>{throw n.add(t),t}):e}function nn(t,n){return n.has(t)?t:rn(t,on(t)?Ot:\"Invalid compressed data\")}function en(t){return on(t)?rn(t,Ot):t}function on(t){return Ft(t)&&\"Z_MEM_ERROR\"==t.code}function rn(t,n){const e=new r(n);return e.cause=t,e}const cn=\"data\",sn=\"deflate\";class an extends h{constructor(t,e){super({});const o=this,{codecType:c}=t;let s;c.startsWith(sn)?s=jt:c.startsWith(\"inflate\")&&(s=Lt),o.outputSize=0;let a=0;const i=new s(t,e),f=super.readable,u=new h({transform(t,n){t&&t.length&&(a+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:a})}}),w=new h({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new r(Wt)},flush(){const{crc32:t}=i;n.assign(o,{crc32:t,inputSize:a})}});n.defineProperty(o,\"readable\",{get:()=>f.pipeThrough(u).pipeThrough(i).pipeThrough(w)})}}class fn extends h{constructor(t){const o=[];let r=0,s=0;function a(){const n=new c(t);let e=0;for(;e<t;){const r=o[0],c=t-e;r.length<=c?(n.set(r,e),e+=r.length,o.shift()):(n.set(r.subarray(0,c),e),o[0]=r.subarray(c),e+=c)}return r-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(o.push(n),r+=n.length;r>t;)s+=t,e.enqueue(a())},flush(t){r&&(s+=r,t.enqueue(function(t,n){const e=new c(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,r)))}}),n.defineProperty(this,\"outputSize\",{get:()=>s})}}let un=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(un=navigator.hardwareConcurrency)}catch{}const wn=new f,ln=new f,dn=function(){try{return structuredClone(new r)instanceof r}catch{return!1}}();let pn=0;async function hn(t){let n,c,s;try{const{options:a,config:i}=t;if(a.format)try{await async function(t,n){!Ut.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=k&&typeof o!=k)throw new r(\"Invalid codec module\");Ut.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(a.format,a.codecURI)}catch(t){if(Ft(t))try{t.codecImportFailed=!0}catch{}throw t}if(i.CompressionStream=self.CompressionStream,i.DecompressionStream=self.DecompressionStream,a.compressed&&!a.format)if(a.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Zt.get(t);e||(e=new f,Zt.set(t,e));let o=e.get(n);if(o===v){try{new t(n),o=!0}catch{o=!1}e.set(n,o)}return o}(a.codecType.startsWith(sn)?i.CompressionStream:i.DecompressionStream,Kt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{a.useCompressionStream=!0}if(a.encrypted&&!a.zipCrypto)try{await self.initModule(t.config)}catch{}!i.CompressionStreamFallback&&i.CompressionStreamZlib&&(i.CompressionStreamFallback=i.CompressionStreamZlib),!i.DecompressionStreamFallback&&i.DecompressionStreamZlib&&(i.DecompressionStreamFallback=i.DecompressionStreamZlib);const u={highWaterMark:1},l=t.readable?Dt(t.readable):new y({async pull(t){const n=new w(t=>wn.set(pn,t));yn({type:\"pull\",messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER;const{value:o,done:r}=await n;t.enqueue(o),r&&t.close()}},u);s=t.writable?function(t){if(t instanceof m)return t;const n=t.getWriter();return new m({write:t=>n.write(t),close:()=>n.close(),abort:t=>n.abort(t)})}(t.writable):new m({async write(t){let n;const o=new w(t=>n=t);ln.set(pn,n),yn({type:cn,value:t,messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new an(a,i),c=new fn(function(t){return r=\"string\"==typeof(n=r=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(r)&&r>=1?o.max(r,64):65536;var n,r}(i)),await l.pipeThrough(n).pipeThrough(c).pipeTo(s,{preventClose:!0,preventAbort:!0}),await s.getWriter().close();const{crc32:d,inputSize:p,outputSize:h}=n;yn({type:\"close\",result:{crc32:d,inputSize:p,outputSize:h}})}catch(t){const n=c?c.outputSize:0;if(Ft(t))try{t.outputSize=n}catch{}if(s&&!s.locked)try{await s.getWriter().close()}catch{}mn(t,n)}}function yn(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new c(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function mn(t,n){const{message:e,stack:o,code:c,name:s,outputSize:a,cause:i,codecImportFailed:f}=function(t=new r(\"Unknown error\")){return Ft(t)?t:new r(String(t))}(t),u={message:e,stack:o,code:c,name:s,outputSize:a===v?n:a};if(Ft(i)&&(u.cause={name:i.name,message:i.message,code:i.code}),f&&(u.codecImportFailed=!0),dn)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener(\"message\",({data:t})=>{const{type:n,messageId:e,value:o,done:r}=t;try{if(\"start\"==n&&hn(t),n==cn){const t=wn.get(e);wn.delete(e),t({value:o||new c,done:r})}if(\"ack\"==n){const t=ln.get(e);ln.delete(e),t()}}catch(t){mn(t)}}),p({type:\"ready\"});const Sn=\"deflate\",gn=\"deflate-raw\",vn=\"deflate64-raw\",bn=\"gzip\",kn=[Sn,gn,bn],zn=[Sn,gn,bn,vn];let Cn,In,Mn,An,En;function Rn(t,n){return-4===n&&(t.code=\"Z_MEM_ERROR\"),t}function xn(t,n,e={}){if(!(t?kn:zn).includes(n))throw new TypeError(\"Unsupported format: \"+n);if(!Cn){const t=new r(\"WASM module not loaded\");throw t.cause=En,t}const s=\"number\"==typeof e.level?e.level:-1,a=\"number\"==typeof e.outBuffer?e.outBuffer:65536,i=\"number\"==typeof e.inBufferSize?e.inBufferSize:65536,f={M:0,in:0,inBufferSize:0,A:0,R:!1};let u,l,d,p,h=!0,S=!1;return function(){try{let e;if(f.M=In(a),f.in=In(i),f.inBufferSize=i,!f.M||!f.in)throw Rn(new r(\"allocation failed\"),-4);if(t?(f.P=Cn.deflate_process,f.D=Cn.deflate_last_consumed,f.F=Cn.deflate_end,f.A=Cn.deflate_new(),e=n===bn?Cn.deflate_init_gzip(f.A,s):n===gn?Cn.deflate_init_raw(f.A,s):Cn.deflate_init(f.A,s)):n===vn?(f.P=Cn.inflate9_process,f.D=Cn.inflate9_last_consumed,f.F=Cn.inflate9_end,f.A=Cn.inflate9_new(),e=Cn.inflate9_init_raw(f.A)):(f.P=Cn.inflate_process,f.D=Cn.inflate_last_consumed,f.F=Cn.inflate_end,f.A=Cn.inflate_new(),e=n===gn?Cn.inflate_init_raw(f.A):n===bn?Cn.inflate_init_gzip(f.A):Cn.inflate_init(f.A)),0!==e)throw Rn(new r(\"init failed:\"+e),e)}catch(t){throw b(f),t}}(),{readable:new y({start(t){u=t},pull(){h=!1,v()},cancel(t){S=!0,p=t,b(f),l.error(t),v()}},{highWaterMark:0}),writable:new m({start(t){l=t},async write(t){if(h&&await new w(t=>d=t),S)throw p;try{!function(t){const n=new c(An.buffer),e=f.P,s=f.D,i=f.M;let u=0;for(;u<t.length;){if(f.R)throw new r(\"trailing data after the end of the stream\");const c=o.min(t.length-u,32768);if((!f.in||f.inBufferSize<c)&&(f.in&&Mn&&(Mn(f.in),f.in=0),f.in=In(c),f.inBufferSize=c,!f.in))throw Rn(new r(\"allocation failed\"),-4);n.set(t.subarray(u,u+c),f.in);const w=e(f.A,f.in,c,i,a,0),l=w>>24&255,d=128&l?l-256:l;if(d<0)throw Rn(new r(\"process error:\"+d),d);const p=16777215&w;p&&g(n.slice(i,i+p));const h=s(f.A);if(1===l)f.R=!0;else if(0===h&&0===p)break;u+=h}}(t)}catch(t){throw b(f),u.error(t),t}},close(){if(S)return;try{!function(){const t=new c(An.buffer),n=f.P,e=f.M;for(;;){const o=n(f.A,0,0,e,a,4),c=o>>24&255,s=128&c?c-256:c;if(s<0)throw Rn(new r(\"process error:\"+s),s);const i=16777215&o;if(i&&g(t.slice(e,e+i)),1===c||0===i)break}}()}catch(t){throw b(f),u.error(t),t}const t=b(f);if(0!==t){const n=Rn(new r(\"end error:\"+t),t);throw u.error(n),n}u.close()},abort(t){b(f),u.error(t)}},{highWaterMark:1})};function g(t){h=!0,u.enqueue(t)}function v(){if(d){const t=d;d=null,t()}}function b(t){let n=0;return t.A&&t.F&&(n=t.F(t.A)),t.A=0,t.in&&Mn&&Mn(t.in),t.in=0,t.M&&Mn&&Mn(t.M),t.M=0,n}}class Pn{constructor(t=Sn,n){return xn(!0,t,n)}}class Dn{constructor(t=Sn,n){return xn(!1,t,n)}}Pn.requiresModule=!0,Dn.requiresModule=!0,Pn.supportedFormats=kn,Dn.supportedFormats=zn;const Fn=65536;let Un,Bn;function Wn(t){return new c(t.memory.buffer)}let On=!1;!function(t={}){const{init:n,U:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(dt=e||G),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),r&&(t.DecompressionStreamFallback=r)}}({CompressionStreamFallback:Pn,DecompressionStreamFallback:Dn,U:function(t,n){const e=Un;let o=e?function(t,n,e){Bn||(Bn=t.malloc(Fn));const o=Bn?t.aes_hmac_new():0;if(o){const r=Wn(t);if(r.set(n,Bn),r.set(e,Bn+n.length),t.aes_hmac_init(o,Bn,n.length,Bn+n.length,e.length))return t.aes_hmac_end(o,0),0}return o}(e,t,n):0;if(!o)return G(t,n);const r=Bn;return{process(t,n){for(let c=0;c<t.length;c+=Fn){const s=t.subarray(c,c+Fn),a=Wn(e);a.set(s,r),e.aes_hmac_process(o,r,s.length,n?1:0),s.set(a.subarray(r,r+s.length))}},digest:()=>(e.aes_hmac_end(o,r),o=0,Wn(e).slice(r,r+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!On)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const r=await fetch(o);e=await r.arrayBuffer()}catch(n){if(!t.startsWith(\"data:application/wasm;base64,\"))throw n;e=function(t){const n=t.split(\",\")[1],e=atob(n),o=e.length,r=new c(o);for(let t=0;t<o;++t)r[t]=e.charCodeAt(t);return r.buffer}(t)}const s=await WebAssembly.instantiate(e);var a;(function(t){if(Cn=t,({malloc:In,free:Mn,memory:An}=Cn),\"function\"!=typeof In||\"function\"!=typeof Mn||!An)throw Cn=In=Mn=An=null,new r(\"Invalid WASM module\")})(s.instance.exports),typeof(a=s.instance.exports).aes_hmac_new==k&&(Un=a,Bn=0)}(t,n),On=!0}catch(t){throw function(t){En=t}(t),t}}(t.wasmURI,t)})});\\n';if(\"string\"==typeof r&&(r=(new TextEncoder).encode(r)),t){const t=new Blob([r],{type:e});return URL.createObjectURL(t)}return\"data:\"+e+\";base64,\"+function(t){let e=\"\";const r=t.length;let o=0;for(;o+2<r;o+=3){const r=t[o]<<16|t[o+1]<<8|t[o+2];e+=n[r>>18&63]+n[r>>12&63]+n[r>>6&63]+n[63&r]}const s=r-o;if(1===s){const r=t[o]<<16;e+=n[r>>18&63]+n[r>>12&63]+\"==\"}else if(2===s){const r=t[o]<<16|t[o+1]<<8;e+=n[r>>18&63]+n[r>>12&63]+n[r>>6&63]+\"=\"}return e}(r)}});export{e as configureWebWorker};\n","/*\n Copyright (c) 2026 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nexport {\n\tconcat,\n\ttoExactUint8Array,\n\tgetDataView\n};\n\nfunction concat(first, second) {\n\tconst result = new Uint8Array(first.length + second.length);\n\tresult.set(first);\n\tresult.set(second, first.length);\n\treturn result;\n}\n\nfunction toExactUint8Array(array) {\n\treturn array.byteOffset || array.byteLength != array.buffer.byteLength ? new Uint8Array(array) : array;\n}\n\nfunction getDataView(array) {\n\treturn new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\n","/*\n Copyright (c) 2026 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nexport {\n\tisErrorObject\n};\n\nfunction isErrorObject(error) {\n\treturn Boolean(error) && typeof error == \"object\";\n}\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n// Slicing-by-8 CRC-32 (Intel / zlib). The eight 256-entry tables let the inner loop\n// consume 8 bytes per iteration with a shorter dependency chain, ~4x the byte-at-a-time\n// rate (measured ~320 -> ~1400 MB/s on 64KB chunks).\n//\n// Every table MUST stay a PACKED_SMI array: build with array literals (not `new Array(n)`,\n// which is HOLEY) and store the signed int32 XOR result (no `>>> 0`). An unsigned or holey\n// table becomes a V8 FixedDoubleArray whose every hot-loop lookup unboxes a double (~1.6x\n// slower). Signedness is irrelevant to the result: the reads mask/shift it and the final\n// `~crc` normalizes it. Do NOT reintroduce `>>> 0` here or switch to `new Array(256)`.\nconst T = [[], [], [], [], [], [], [], []];\nfor (let n = 0; n < 256; n++) {\n\tlet t = n;\n\tfor (let j = 0; j < 8; j++) {\n\t\tt = (t & 1) ? (t >>> 1) ^ 0xEDB88320 : t >>> 1;\n\t}\n\tT[0][n] = t;\n}\nfor (let n = 0; n < 256; n++) {\n\tfor (let k = 1; k < 8; k++) {\n\t\tconst previous = T[k - 1][n];\n\t\tT[k][n] = (previous >>> 8) ^ T[0][previous & 0xFF];\n\t}\n}\nconst [T0, T1, T2, T3, T4, T5, T6, T7] = T;\n\nclass Crc32 {\n\n\tconstructor(crc) {\n\t\tthis.crc = crc || -1;\n\t}\n\n\tappend(data) {\n\t\tlet crc = this.crc | 0;\n\t\tconst length = data.length | 0;\n\t\tlet offset = 0;\n\t\t// Process 8 bytes per iteration over the typed-array body. DataView.getInt32(le)\n\t\t// reads an unaligned little-endian word as a signed int32 (no double boxing), so no\n\t\t// alignment or endianness handling is needed; data.buffer guards non-typed inputs.\n\t\tif (length >= 8 && data.buffer) {\n\t\t\tconst view = new DataView(data.buffer, data.byteOffset, length);\n\t\t\tconst end = length - 8;\n\t\t\tfor (; offset <= end; offset += 8) {\n\t\t\t\tconst a = crc ^ view.getInt32(offset, true);\n\t\t\t\tconst b = view.getInt32(offset + 4, true);\n\t\t\t\tcrc = T7[a & 0xFF] ^ T6[(a >>> 8) & 0xFF] ^ T5[(a >>> 16) & 0xFF] ^ T4[(a >>> 24) & 0xFF] ^\n\t\t\t\t\tT3[b & 0xFF] ^ T2[(b >>> 8) & 0xFF] ^ T1[(b >>> 16) & 0xFF] ^ T0[(b >>> 24) & 0xFF];\n\t\t\t}\n\t\t}\n\t\t// Remaining tail (and non-typed inputs) byte-at-a-time with the base table.\n\t\tfor (; offset < length; offset++) {\n\t\t\tcrc = (crc >>> 8) ^ T0[(crc ^ data[offset]) & 0xFF];\n\t\t}\n\t\tthis.crc = crc;\n\t}\n\n\tget() {\n\t\treturn ~this.crc;\n\t}\n}\n\nexport {\n\tCrc32\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TransformStream */\n\nimport { Crc32 } from \"./codecs/crc32.js\";\n\nclass Crc32Stream extends TransformStream {\n\n\tconstructor() {\n\t\t// deno-lint-ignore prefer-const\n\t\tlet stream;\n\t\tconst crc32 = new Crc32();\n\t\tsuper({\n\t\t\ttransform(chunk, controller) {\n\t\t\t\tcrc32.append(chunk);\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t\tflush() {\n\t\t\t\tconst value = new Uint8Array(4);\n\t\t\t\tconst dataView = new DataView(value.buffer);\n\t\t\t\tdataView.setUint32(0, crc32.get());\n\t\t\t\tstream.value = value;\n\t\t\t}\n\t\t});\n\t\tstream = this;\n\t}\n}\n\nexport {\n\tCrc32Stream\n};","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TextEncoder */\n\nimport { UNDEFINED_TYPE } from \"../constants.js\";\n\nexport {\n\tencodeText\n};\n\nfunction encodeText(value) {\n\t// deno-lint-ignore valid-typeof\n\tif (typeof TextEncoder == UNDEFINED_TYPE) {\n\t\tvalue = unescape(encodeURIComponent(value));\n\t\tconst result = new Uint8Array(value.length);\n\t\tfor (let i = 0; i < result.length; i++) {\n\t\t\tresult[i] = value.charCodeAt(i);\n\t\t}\n\t\treturn result;\n\t} else {\n\t\treturn new TextEncoder().encode(value);\n\t}\n}","/*\n Copyright (c) 2026 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst BLOCK_LENGTH = 16;\nconst ROUND_KEYS_LENGTH = 60;\nconst SHA1_BLOCK_LENGTH = 64;\nconst SHA1_DIGEST_LENGTH = 20;\nconst SHA1_SCHEDULE_LENGTH = 16;\nconst SHA1_LENGTH_OFFSET = 56;\nconst SHA1_PADDING = new Uint8Array([0x80]);\nconst SHA1_ZERO = new Uint8Array(1);\nconst SHA1_INITIAL_STATE = new Int32Array([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\nconst HMAC_INNER_PADDING = 0x36;\nconst HMAC_OUTER_PADDING = 0x5c;\nconst S_BOX = new Uint8Array(256);\nconst T0 = new Int32Array(256);\nconst T1 = new Int32Array(256);\nconst T2 = new Int32Array(256);\nconst T3 = new Int32Array(256);\n\nlet tablesInitialized = false;\n\nexport {\n\tcreateEngine,\n\tpbkdf2\n};\n\nfunction createEngine(key, authenticationKey) {\n\tinitTables();\n\tconst roundKeys = new Int32Array(ROUND_KEYS_LENGTH);\n\tconst rounds = expandKey(key, roundKeys);\n\tconst keystream = new Int32Array(BLOCK_LENGTH / 4);\n\tconst hmac = createHmac(authenticationKey);\n\tlet counter0 = 0;\n\tlet counter1 = 0;\n\tlet counter2 = 0;\n\tlet counter3 = 0;\n\treturn {\n\t\tprocess(data, decrypt) {\n\t\t\tif (decrypt) {\n\t\t\t\thmac.update(data, 0, data.length);\n\t\t\t}\n\t\t\tencrypt(data);\n\t\t\tif (!decrypt) {\n\t\t\t\thmac.update(data, 0, data.length);\n\t\t\t}\n\t\t},\n\t\tdigest() {\n\t\t\treturn hmac.digest();\n\t\t}\n\t};\n\n\tfunction encrypt(data) {\n\t\tconst view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\t\tconst length = data.length;\n\t\tlet offset = 0;\n\t\tfor (; offset + BLOCK_LENGTH <= length; offset += BLOCK_LENGTH) {\n\t\t\tnextKeystream();\n\t\t\tview.setInt32(offset, view.getInt32(offset) ^ keystream[0]);\n\t\t\tview.setInt32(offset + 4, view.getInt32(offset + 4) ^ keystream[1]);\n\t\t\tview.setInt32(offset + 8, view.getInt32(offset + 8) ^ keystream[2]);\n\t\t\tview.setInt32(offset + 12, view.getInt32(offset + 12) ^ keystream[3]);\n\t\t}\n\t\tif (offset < length) {\n\t\t\tnextKeystream();\n\t\t\tfor (let indexByte = 0; offset < length; offset++, indexByte++) {\n\t\t\t\tdata[offset] ^= keystream[indexByte >> 2] >>> (24 - 8 * (indexByte & 3));\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction nextKeystream() {\n\t\tcounter0 = (counter0 + 1) | 0;\n\t\tif (!counter0) {\n\t\t\tcounter1 = (counter1 + 1) | 0;\n\t\t\tif (!counter1) {\n\t\t\t\tcounter2 = (counter2 + 1) | 0;\n\t\t\t\tif (!counter2) {\n\t\t\t\t\tcounter3 = (counter3 + 1) | 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlet s0 = swapBytes(counter0) ^ roundKeys[0];\n\t\tlet s1 = swapBytes(counter1) ^ roundKeys[1];\n\t\tlet s2 = swapBytes(counter2) ^ roundKeys[2];\n\t\tlet s3 = swapBytes(counter3) ^ roundKeys[3];\n\t\tlet t0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[4];\n\t\tlet t1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[5];\n\t\tlet t2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[6];\n\t\tlet t3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[7];\n\t\ts0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[8];\n\t\ts1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[9];\n\t\ts2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[10];\n\t\ts3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[11];\n\t\tt0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[12];\n\t\tt1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[13];\n\t\tt2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[14];\n\t\tt3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[15];\n\t\ts0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[16];\n\t\ts1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[17];\n\t\ts2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[18];\n\t\ts3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[19];\n\t\tt0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[20];\n\t\tt1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[21];\n\t\tt2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[22];\n\t\tt3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[23];\n\t\ts0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[24];\n\t\ts1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[25];\n\t\ts2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[26];\n\t\ts3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[27];\n\t\tt0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[28];\n\t\tt1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[29];\n\t\tt2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[30];\n\t\tt3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[31];\n\t\ts0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[32];\n\t\ts1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[33];\n\t\ts2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[34];\n\t\ts3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[35];\n\t\tt0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[36];\n\t\tt1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[37];\n\t\tt2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[38];\n\t\tt3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[39];\n\t\tlet indexKey = 40;\n\t\tif (rounds > 10) {\n\t\t\ts0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[40];\n\t\t\ts1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[41];\n\t\t\ts2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[42];\n\t\t\ts3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[43];\n\t\t\tt0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[44];\n\t\t\tt1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[45];\n\t\t\tt2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[46];\n\t\t\tt3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[47];\n\t\t\tindexKey = 48;\n\t\t}\n\t\tif (rounds > 12) {\n\t\t\ts0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[48];\n\t\t\ts1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[49];\n\t\t\ts2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[50];\n\t\t\ts3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[51];\n\t\t\tt0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[52];\n\t\t\tt1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[53];\n\t\t\tt2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[54];\n\t\t\tt3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[55];\n\t\t\tindexKey = 56;\n\t\t}\n\t\tkeystream[0] = ((S_BOX[t0 >>> 24] << 24) | (S_BOX[(t1 >>> 16) & 255] << 16) | (S_BOX[(t2 >>> 8) & 255] << 8) | S_BOX[t3 & 255]) ^ roundKeys[indexKey];\n\t\tkeystream[1] = ((S_BOX[t1 >>> 24] << 24) | (S_BOX[(t2 >>> 16) & 255] << 16) | (S_BOX[(t3 >>> 8) & 255] << 8) | S_BOX[t0 & 255]) ^ roundKeys[indexKey + 1];\n\t\tkeystream[2] = ((S_BOX[t2 >>> 24] << 24) | (S_BOX[(t3 >>> 16) & 255] << 16) | (S_BOX[(t0 >>> 8) & 255] << 8) | S_BOX[t1 & 255]) ^ roundKeys[indexKey + 2];\n\t\tkeystream[3] = ((S_BOX[t3 >>> 24] << 24) | (S_BOX[(t0 >>> 16) & 255] << 16) | (S_BOX[(t1 >>> 8) & 255] << 8) | S_BOX[t2 & 255]) ^ roundKeys[indexKey + 3];\n\t}\n}\n\nfunction pbkdf2(password, salt, iterations, length) {\n\tconst hmac = createHmac(password);\n\tconst result = new Uint8Array(length);\n\tconst block = new Uint8Array(salt.length + 4);\n\tconst blockView = new DataView(block.buffer);\n\tblock.set(salt);\n\tfor (let indexBlock = 1, offset = 0; offset < length; indexBlock++, offset += SHA1_DIGEST_LENGTH) {\n\t\tblockView.setUint32(salt.length, indexBlock);\n\t\thmac.update(block, 0, block.length);\n\t\tlet previous = hmac.digest();\n\t\tconst output = previous.slice();\n\t\tfor (let iteration = 1; iteration < iterations; iteration++) {\n\t\t\thmac.update(previous, 0, SHA1_DIGEST_LENGTH);\n\t\t\tprevious = hmac.digest();\n\t\t\tfor (let indexByte = 0; indexByte < SHA1_DIGEST_LENGTH; indexByte++) {\n\t\t\t\toutput[indexByte] ^= previous[indexByte];\n\t\t\t}\n\t\t}\n\t\tresult.set(output.subarray(0, Math.min(SHA1_DIGEST_LENGTH, length - offset)), offset);\n\t}\n\treturn result;\n}\n\nfunction createHmac(key) {\n\tconst sha1 = createSha1();\n\tconst innerKey = new Uint8Array(SHA1_BLOCK_LENGTH);\n\tconst outerKey = new Uint8Array(SHA1_BLOCK_LENGTH);\n\tif (key.length > SHA1_BLOCK_LENGTH) {\n\t\tsha1.update(key, 0, key.length);\n\t\tkey = sha1.digest();\n\t}\n\tfor (let indexByte = 0; indexByte < SHA1_BLOCK_LENGTH; indexByte++) {\n\t\tconst keyByte = indexByte < key.length ? key[indexByte] : 0;\n\t\tinnerKey[indexByte] = keyByte ^ HMAC_INNER_PADDING;\n\t\touterKey[indexByte] = keyByte ^ HMAC_OUTER_PADDING;\n\t}\n\tsha1.update(innerKey, 0, SHA1_BLOCK_LENGTH);\n\treturn {\n\t\tupdate(data, offset, length) {\n\t\t\tsha1.update(data, offset, length);\n\t\t},\n\t\tdigest() {\n\t\t\tconst innerDigest = sha1.digest();\n\t\t\tsha1.update(outerKey, 0, SHA1_BLOCK_LENGTH);\n\t\t\tsha1.update(innerDigest, 0, SHA1_DIGEST_LENGTH);\n\t\t\tconst result = sha1.digest();\n\t\t\tsha1.update(innerKey, 0, SHA1_BLOCK_LENGTH);\n\t\t\treturn result;\n\t\t}\n\t};\n}\n\nfunction createSha1() {\n\tconst state = new Int32Array(SHA1_INITIAL_STATE);\n\tconst schedule = new Int32Array(SHA1_SCHEDULE_LENGTH);\n\tconst block = new Uint8Array(SHA1_BLOCK_LENGTH);\n\tconst blockView = new DataView(block.buffer);\n\tconst lengthBytes = new Uint8Array(8);\n\tlet blockLength = 0;\n\tlet totalLength = 0;\n\treturn {\n\t\tupdate,\n\t\tdigest\n\t};\n\n\tfunction update(data, offset, length) {\n\t\tconst end = offset + length;\n\t\ttotalLength += length;\n\t\tif (blockLength) {\n\t\t\twhile (offset < end && blockLength < SHA1_BLOCK_LENGTH) {\n\t\t\t\tblock[blockLength++] = data[offset++];\n\t\t\t}\n\t\t\tif (blockLength == SHA1_BLOCK_LENGTH) {\n\t\t\t\tcompress(blockView, 0);\n\t\t\t\tblockLength = 0;\n\t\t\t}\n\t\t}\n\t\tif (offset + SHA1_BLOCK_LENGTH <= end) {\n\t\t\tconst view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\t\t\tfor (; offset + SHA1_BLOCK_LENGTH <= end; offset += SHA1_BLOCK_LENGTH) {\n\t\t\t\tcompress(view, offset);\n\t\t\t}\n\t\t}\n\t\twhile (offset < end) {\n\t\t\tblock[blockLength++] = data[offset++];\n\t\t}\n\t}\n\n\tfunction digest() {\n\t\tconst bits = totalLength * 8;\n\t\tconst high = Math.floor(bits / 0x100000000);\n\t\tconst low = bits >>> 0;\n\t\tupdate(SHA1_PADDING, 0, 1);\n\t\twhile (blockLength != SHA1_LENGTH_OFFSET) {\n\t\t\tupdate(SHA1_ZERO, 0, 1);\n\t\t}\n\t\tlengthBytes[0] = high >>> 24;\n\t\tlengthBytes[1] = high >>> 16;\n\t\tlengthBytes[2] = high >>> 8;\n\t\tlengthBytes[3] = high;\n\t\tlengthBytes[4] = low >>> 24;\n\t\tlengthBytes[5] = low >>> 16;\n\t\tlengthBytes[6] = low >>> 8;\n\t\tlengthBytes[7] = low;\n\t\tupdate(lengthBytes, 0, 8);\n\t\tconst result = new Uint8Array(SHA1_DIGEST_LENGTH);\n\t\tconst resultView = new DataView(result.buffer);\n\t\tfor (let indexWord = 0; indexWord < state.length; indexWord++) {\n\t\t\tresultView.setInt32(4 * indexWord, state[indexWord]);\n\t\t}\n\t\tstate.set(SHA1_INITIAL_STATE);\n\t\tblockLength = 0;\n\t\ttotalLength = 0;\n\t\treturn result;\n\t}\n\n\tfunction compress(view, offset) {\n\t\tfor (let index = 0; index < 16; index++) {\n\t\t\tschedule[index] = view.getInt32(offset + 4 * index);\n\t\t}\n\t\tlet a = state[0];\n\t\tlet b = state[1];\n\t\tlet c = state[2];\n\t\tlet d = state[3];\n\t\tlet e = state[4];\n\t\tlet t;\n\t\tfor (let index = 0; index < 15; index += 5) {\n\t\t\te = (((a << 5) | (a >>> 27)) + (((c ^ d) & b) ^ d) + e + 0x5A827999 + schedule[index]) | 0;\n\t\t\tb = (b << 30) | (b >>> 2);\n\t\t\td = (((e << 5) | (e >>> 27)) + (((b ^ c) & a) ^ c) + d + 0x5A827999 + schedule[index + 1]) | 0;\n\t\t\ta = (a << 30) | (a >>> 2);\n\t\t\tc = (((d << 5) | (d >>> 27)) + (((a ^ b) & e) ^ b) + c + 0x5A827999 + schedule[index + 2]) | 0;\n\t\t\te = (e << 30) | (e >>> 2);\n\t\t\tb = (((c << 5) | (c >>> 27)) + (((e ^ a) & d) ^ a) + b + 0x5A827999 + schedule[index + 3]) | 0;\n\t\t\td = (d << 30) | (d >>> 2);\n\t\t\ta = (((b << 5) | (b >>> 27)) + (((d ^ e) & c) ^ e) + a + 0x5A827999 + schedule[index + 4]) | 0;\n\t\t\tc = (c << 30) | (c >>> 2);\n\t\t}\n\t\te = (((a << 5) | (a >>> 27)) + (((c ^ d) & b) ^ d) + e + 0x5A827999 + schedule[15]) | 0;\n\t\tb = (b << 30) | (b >>> 2);\n\t\tt = schedule[13] ^ schedule[8] ^ schedule[2] ^ schedule[0];\n\t\tt = (t << 1) | (t >>> 31);\n\t\tschedule[0] = t;\n\t\td = (((e << 5) | (e >>> 27)) + (((b ^ c) & a) ^ c) + d + 0x5A827999 + t) | 0;\n\t\ta = (a << 30) | (a >>> 2);\n\t\tt = schedule[14] ^ schedule[9] ^ schedule[3] ^ schedule[1];\n\t\tt = (t << 1) | (t >>> 31);\n\t\tschedule[1] = t;\n\t\tc = (((d << 5) | (d >>> 27)) + (((a ^ b) & e) ^ b) + c + 0x5A827999 + t) | 0;\n\t\te = (e << 30) | (e >>> 2);\n\t\tt = schedule[15] ^ schedule[10] ^ schedule[4] ^ schedule[2];\n\t\tt = (t << 1) | (t >>> 31);\n\t\tschedule[2] = t;\n\t\tb = (((c << 5) | (c >>> 27)) + (((e ^ a) & d) ^ a) + b + 0x5A827999 + t) | 0;\n\t\td = (d << 30) | (d >>> 2);\n\t\tt = schedule[0] ^ schedule[11] ^ schedule[5] ^ schedule[3];\n\t\tt = (t << 1) | (t >>> 31);\n\t\tschedule[3] = t;\n\t\ta = (((b << 5) | (b >>> 27)) + (((d ^ e) & c) ^ e) + a + 0x5A827999 + t) | 0;\n\t\tc = (c << 30) | (c >>> 2);\n\t\tfor (let index = 20; index < 40; index += 5) {\n\t\t\tt = schedule[(index - 3) & 15] ^ schedule[(index - 8) & 15] ^ schedule[(index - 14) & 15] ^ schedule[(index) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index) & 15] = t;\n\t\t\te = (((a << 5) | (a >>> 27)) + (b ^ c ^ d) + e + 0x6ED9EBA1 + t) | 0;\n\t\t\tb = (b << 30) | (b >>> 2);\n\t\t\tt = schedule[(index - 2) & 15] ^ schedule[(index - 7) & 15] ^ schedule[(index - 13) & 15] ^ schedule[(index + 1) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 1) & 15] = t;\n\t\t\td = (((e << 5) | (e >>> 27)) + (a ^ b ^ c) + d + 0x6ED9EBA1 + t) | 0;\n\t\t\ta = (a << 30) | (a >>> 2);\n\t\t\tt = schedule[(index - 1) & 15] ^ schedule[(index - 6) & 15] ^ schedule[(index - 12) & 15] ^ schedule[(index + 2) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 2) & 15] = t;\n\t\t\tc = (((d << 5) | (d >>> 27)) + (e ^ a ^ b) + c + 0x6ED9EBA1 + t) | 0;\n\t\t\te = (e << 30) | (e >>> 2);\n\t\t\tt = schedule[(index) & 15] ^ schedule[(index - 5) & 15] ^ schedule[(index - 11) & 15] ^ schedule[(index + 3) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 3) & 15] = t;\n\t\t\tb = (((c << 5) | (c >>> 27)) + (d ^ e ^ a) + b + 0x6ED9EBA1 + t) | 0;\n\t\t\td = (d << 30) | (d >>> 2);\n\t\t\tt = schedule[(index + 1) & 15] ^ schedule[(index - 4) & 15] ^ schedule[(index - 10) & 15] ^ schedule[(index + 4) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 4) & 15] = t;\n\t\t\ta = (((b << 5) | (b >>> 27)) + (c ^ d ^ e) + a + 0x6ED9EBA1 + t) | 0;\n\t\t\tc = (c << 30) | (c >>> 2);\n\t\t}\n\t\tfor (let index = 40; index < 60; index += 5) {\n\t\t\tt = schedule[(index - 3) & 15] ^ schedule[(index - 8) & 15] ^ schedule[(index - 14) & 15] ^ schedule[(index) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index) & 15] = t;\n\t\t\te = (((a << 5) | (a >>> 27)) + ((b & c) | ((b | c) & d)) + e + 0x8F1BBCDC + t) | 0;\n\t\t\tb = (b << 30) | (b >>> 2);\n\t\t\tt = schedule[(index - 2) & 15] ^ schedule[(index - 7) & 15] ^ schedule[(index - 13) & 15] ^ schedule[(index + 1) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 1) & 15] = t;\n\t\t\td = (((e << 5) | (e >>> 27)) + ((a & b) | ((a | b) & c)) + d + 0x8F1BBCDC + t) | 0;\n\t\t\ta = (a << 30) | (a >>> 2);\n\t\t\tt = schedule[(index - 1) & 15] ^ schedule[(index - 6) & 15] ^ schedule[(index - 12) & 15] ^ schedule[(index + 2) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 2) & 15] = t;\n\t\t\tc = (((d << 5) | (d >>> 27)) + ((e & a) | ((e | a) & b)) + c + 0x8F1BBCDC + t) | 0;\n\t\t\te = (e << 30) | (e >>> 2);\n\t\t\tt = schedule[(index) & 15] ^ schedule[(index - 5) & 15] ^ schedule[(index - 11) & 15] ^ schedule[(index + 3) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 3) & 15] = t;\n\t\t\tb = (((c << 5) | (c >>> 27)) + ((d & e) | ((d | e) & a)) + b + 0x8F1BBCDC + t) | 0;\n\t\t\td = (d << 30) | (d >>> 2);\n\t\t\tt = schedule[(index + 1) & 15] ^ schedule[(index - 4) & 15] ^ schedule[(index - 10) & 15] ^ schedule[(index + 4) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 4) & 15] = t;\n\t\t\ta = (((b << 5) | (b >>> 27)) + ((c & d) | ((c | d) & e)) + a + 0x8F1BBCDC + t) | 0;\n\t\t\tc = (c << 30) | (c >>> 2);\n\t\t}\n\t\tfor (let index = 60; index < 80; index += 5) {\n\t\t\tt = schedule[(index - 3) & 15] ^ schedule[(index - 8) & 15] ^ schedule[(index - 14) & 15] ^ schedule[(index) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index) & 15] = t;\n\t\t\te = (((a << 5) | (a >>> 27)) + (b ^ c ^ d) + e + 0xCA62C1D6 + t) | 0;\n\t\t\tb = (b << 30) | (b >>> 2);\n\t\t\tt = schedule[(index - 2) & 15] ^ schedule[(index - 7) & 15] ^ schedule[(index - 13) & 15] ^ schedule[(index + 1) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 1) & 15] = t;\n\t\t\td = (((e << 5) | (e >>> 27)) + (a ^ b ^ c) + d + 0xCA62C1D6 + t) | 0;\n\t\t\ta = (a << 30) | (a >>> 2);\n\t\t\tt = schedule[(index - 1) & 15] ^ schedule[(index - 6) & 15] ^ schedule[(index - 12) & 15] ^ schedule[(index + 2) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 2) & 15] = t;\n\t\t\tc = (((d << 5) | (d >>> 27)) + (e ^ a ^ b) + c + 0xCA62C1D6 + t) | 0;\n\t\t\te = (e << 30) | (e >>> 2);\n\t\t\tt = schedule[(index) & 15] ^ schedule[(index - 5) & 15] ^ schedule[(index - 11) & 15] ^ schedule[(index + 3) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 3) & 15] = t;\n\t\t\tb = (((c << 5) | (c >>> 27)) + (d ^ e ^ a) + b + 0xCA62C1D6 + t) | 0;\n\t\t\td = (d << 30) | (d >>> 2);\n\t\t\tt = schedule[(index + 1) & 15] ^ schedule[(index - 4) & 15] ^ schedule[(index - 10) & 15] ^ schedule[(index + 4) & 15];\n\t\t\tt = (t << 1) | (t >>> 31);\n\t\t\tschedule[(index + 4) & 15] = t;\n\t\t\ta = (((b << 5) | (b >>> 27)) + (c ^ d ^ e) + a + 0xCA62C1D6 + t) | 0;\n\t\t\tc = (c << 30) | (c >>> 2);\n\t\t}\n\t\tstate[0] = (state[0] + a) | 0;\n\t\tstate[1] = (state[1] + b) | 0;\n\t\tstate[2] = (state[2] + c) | 0;\n\t\tstate[3] = (state[3] + d) | 0;\n\t\tstate[4] = (state[4] + e) | 0;\n\t}\n}\n\nfunction initTables() {\n\tif (!tablesInitialized) {\n\t\tlet p = 1;\n\t\tlet q = 1;\n\t\tdo {\n\t\t\tp = (p ^ (p << 1) ^ ((p & 0x80) ? 0x1b : 0)) & 255;\n\t\t\tq = (q ^ (q << 1)) & 255;\n\t\t\tq = (q ^ (q << 2)) & 255;\n\t\t\tq = (q ^ (q << 4)) & 255;\n\t\t\tif (q & 0x80) {\n\t\t\t\tq ^= 0x09;\n\t\t\t}\n\t\t\tS_BOX[p] = (q ^ ((q << 1) | (q >> 7)) ^ ((q << 2) | (q >> 6)) ^ ((q << 3) | (q >> 5)) ^ ((q << 4) | (q >> 4)) ^ 0x63) & 255;\n\t\t} while (p != 1);\n\t\tS_BOX[0] = 0x63;\n\t\tfor (let index = 0; index < 256; index++) {\n\t\t\tconst s = S_BOX[index];\n\t\t\tconst s2 = multiplyByTwo(s);\n\t\t\tconst t = (s2 << 24) | (s << 16) | (s << 8) | (s2 ^ s);\n\t\t\tT0[index] = t;\n\t\t\tT1[index] = (t >>> 8) | (t << 24);\n\t\t\tT2[index] = (t >>> 16) | (t << 16);\n\t\t\tT3[index] = (t >>> 24) | (t << 8);\n\t\t}\n\t\ttablesInitialized = true;\n\t}\n}\n\nfunction expandKey(key, roundKeys) {\n\tconst keyWords = key.length >> 2;\n\tconst rounds = keyWords + 6;\n\tconst total = 4 * (rounds + 1);\n\tlet roundConstant = 1;\n\tfor (let index = 0; index < keyWords; index++) {\n\t\troundKeys[index] = (key[4 * index] << 24) | (key[4 * index + 1] << 16) | (key[4 * index + 2] << 8) | key[4 * index + 3];\n\t}\n\tfor (let index = keyWords; index < total; index++) {\n\t\tlet word = roundKeys[index - 1];\n\t\tif (index % keyWords == 0) {\n\t\t\tword = substituteWord((word << 8) | (word >>> 24)) ^ (roundConstant << 24);\n\t\t\troundConstant = multiplyByTwo(roundConstant);\n\t\t} else if (keyWords > 6 && index % keyWords == 4) {\n\t\t\tword = substituteWord(word);\n\t\t}\n\t\troundKeys[index] = roundKeys[index - keyWords] ^ word;\n\t}\n\treturn rounds;\n}\n\nfunction substituteWord(word) {\n\treturn (S_BOX[word >>> 24] << 24) | (S_BOX[(word >>> 16) & 255] << 16) | (S_BOX[(word >>> 8) & 255] << 8) | S_BOX[word & 255];\n}\n\nfunction swapBytes(value) {\n\treturn (value << 24) | ((value & 0xff00) << 8) | ((value >>> 8) & 0xff00) | (value >>> 24);\n}\n\nfunction multiplyByTwo(value) {\n\treturn ((value << 1) ^ ((value >> 7) * 0x1b)) & 255;\n}\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global crypto */\n\nimport { FUNCTION_TYPE, UNDEFINED_TYPE } from \"../constants.js\";\n\nconst GET_RANDOM_VALUES_SUPPORTED = typeof crypto != UNDEFINED_TYPE && typeof crypto.getRandomValues == FUNCTION_TYPE;\n\nconst ERR_INVALID_PASSWORD = \"Invalid password\";\nconst ERR_INVALID_AUTHENTICATION_CODE = \"Invalid authentication code\";\nconst ERR_ABORT_CHECK_PASSWORD = \"zipjs-abort-check-password\";\nconst ERR_UNSUPPORTED_CRYPTO_API = \"Crypto API not supported\";\n\nexport {\n\tgetRandomValues,\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_ABORT_CHECK_PASSWORD,\n\tERR_UNSUPPORTED_CRYPTO_API\n};\n\nfunction getRandomValues(array) {\n\tif (GET_RANDOM_VALUES_SUPPORTED) {\n\t\treturn crypto.getRandomValues(array);\n\t} else {\n\t\tthrow new Error(ERR_UNSUPPORTED_CRYPTO_API);\n\t}\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global crypto, TransformStream, ReadableStream */\n\nimport { UNDEFINED_VALUE, UNDEFINED_TYPE, FUNCTION_TYPE, EMPTY_UINT8_ARRAY } from \"../constants.js\";\nimport { encodeText } from \"./../util/encode-text.js\";\nimport { concat } from \"./../util/array.js\";\nimport { createEngine as createDefaultEngine, pbkdf2 } from \"./codecs/aes-hmac-sha1.js\";\nimport {\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_ABORT_CHECK_PASSWORD,\n\tgetRandomValues\n} from \"./common-crypto.js\";\n\nconst BLOCK_LENGTH = 16;\nconst RAW_FORMAT = \"raw\";\nconst PBKDF2_ALGORITHM = { name: \"PBKDF2\" };\nconst HASH_ALGORITHM = { name: \"HMAC\" };\nconst HASH_FUNCTION = \"SHA-1\";\nconst PBKDF2_ITERATIONS = 1000;\nconst BASE_KEY_ALGORITHM = Object.assign({ hash: HASH_ALGORITHM }, PBKDF2_ALGORITHM);\nconst DERIVED_BITS_ALGORITHM = Object.assign({ iterations: PBKDF2_ITERATIONS, hash: { name: HASH_FUNCTION } }, PBKDF2_ALGORITHM);\nconst DERIVED_BITS_USAGE = [\"deriveBits\"];\nconst SALT_LENGTH = [8, 12, 16];\nconst KEY_LENGTH = [16, 24, 32];\nconst AUTHENTICATION_CODE_LENGTH = 10;\nconst PASSWORD_VERIFICATION_LENGTH = 2;\n// deno-lint-ignore valid-typeof\nconst CRYPTO_API_SUPPORTED = typeof crypto != UNDEFINED_TYPE;\nconst subtle = CRYPTO_API_SUPPORTED && crypto.subtle;\nconst SUBTLE_API_SUPPORTED = CRYPTO_API_SUPPORTED && typeof subtle != UNDEFINED_TYPE;\n\nlet DERIVE_BITS_SUPPORTED = SUBTLE_API_SUPPORTED && typeof subtle.importKey == FUNCTION_TYPE && typeof subtle.deriveBits == FUNCTION_TYPE;\nlet createEngine = createDefaultEngine;\n\nclass AESDecryptionStream extends TransformStream {\n\n\tconstructor({ password, rawPassword, encryptionStrength, checkPasswordOnly, checkAuthenticationCode = true }) {\n\t\tconst aesCrypto = {};\n\t\tsuper({\n\t\t\tstart() {\n\t\t\t\tinitAesCrypto(aesCrypto, password, rawPassword, encryptionStrength);\n\t\t\t},\n\t\t\tasync transform(chunk, controller) {\n\t\t\t\tconst {\n\t\t\t\t\tpassword,\n\t\t\t\t\tstrength,\n\t\t\t\t\tresolveReady,\n\t\t\t\t\tready\n\t\t\t\t} = aesCrypto;\n\t\t\t\tif (password) {\n\t\t\t\t\tawait createDecryptionKeys(aesCrypto, strength, password, subarray(chunk, 0, SALT_LENGTH[strength] + PASSWORD_VERIFICATION_LENGTH));\n\t\t\t\t\tchunk = subarray(chunk, SALT_LENGTH[strength] + PASSWORD_VERIFICATION_LENGTH);\n\t\t\t\t\tif (checkPasswordOnly) {\n\t\t\t\t\t\tdisposeEngine(aesCrypto);\n\t\t\t\t\t\tcontroller.error(new Error(ERR_ABORT_CHECK_PASSWORD));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolveReady();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tawait ready;\n\t\t\t\t}\n\t\t\t\tif (aesCrypto.discarded) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst output = new Uint8Array(chunk.length - AUTHENTICATION_CODE_LENGTH - ((chunk.length - AUTHENTICATION_CODE_LENGTH) % BLOCK_LENGTH));\n\t\t\t\tcontroller.enqueue(append(aesCrypto, chunk, output, 0, AUTHENTICATION_CODE_LENGTH, true));\n\t\t\t},\n\t\t\tasync flush(controller) {\n\t\t\t\tconst {\n\t\t\t\t\tengine,\n\t\t\t\t\tpendingInput,\n\t\t\t\t\tready\n\t\t\t\t} = aesCrypto;\n\t\t\t\tif (engine) {\n\t\t\t\t\tawait ready;\n\t\t\t\t\tif (aesCrypto.discarded) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst originalAuthenticationCode = subarray(pendingInput, pendingInput.length - AUTHENTICATION_CODE_LENGTH);\n\t\t\t\t\tconst decryptedChunkArray = new Uint8Array(subarray(pendingInput, 0, pendingInput.length - AUTHENTICATION_CODE_LENGTH));\n\t\t\t\t\tengine.process(decryptedChunkArray, true);\n\t\t\t\t\tconst authenticationCode = engine.digest();\n\t\t\t\t\tlet invalidAuthenticationCode = pendingInput.length < AUTHENTICATION_CODE_LENGTH ? 1 : 0;\n\t\t\t\t\tfor (let indexByte = 0; indexByte < AUTHENTICATION_CODE_LENGTH; indexByte++) {\n\t\t\t\t\t\tinvalidAuthenticationCode |= authenticationCode[indexByte] ^ originalAuthenticationCode[indexByte];\n\t\t\t\t\t}\n\t\t\t\t\tif (invalidAuthenticationCode && checkAuthenticationCode) {\n\t\t\t\t\t\tcontroller.error(new Error(ERR_INVALID_AUTHENTICATION_CODE));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.enqueue(decryptedChunkArray);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tsetDisposingReadable(this, aesCrypto);\n\t}\n}\n\nclass AESEncryptionStream extends TransformStream {\n\n\tconstructor({ password, rawPassword, encryptionStrength }) {\n\t\tconst aesCrypto = {};\n\t\tsuper({\n\t\t\tstart() {\n\t\t\t\tinitAesCrypto(aesCrypto, password, rawPassword, encryptionStrength);\n\t\t\t},\n\t\t\tasync transform(chunk, controller) {\n\t\t\t\tconst {\n\t\t\t\t\tpassword,\n\t\t\t\t\tstrength,\n\t\t\t\t\tresolveReady,\n\t\t\t\t\tready\n\t\t\t\t} = aesCrypto;\n\t\t\t\tlet preamble = EMPTY_UINT8_ARRAY;\n\t\t\t\tif (password) {\n\t\t\t\t\tpreamble = await createEncryptionKeys(aesCrypto, strength, password);\n\t\t\t\t\tresolveReady();\n\t\t\t\t} else {\n\t\t\t\t\tawait ready;\n\t\t\t\t}\n\t\t\t\tif (aesCrypto.discarded) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst output = new Uint8Array(preamble.length + chunk.length - (chunk.length % BLOCK_LENGTH));\n\t\t\t\toutput.set(preamble, 0);\n\t\t\t\tcontroller.enqueue(append(aesCrypto, chunk, output, preamble.length, 0, false));\n\t\t\t},\n\t\t\tasync flush(controller) {\n\t\t\t\tconst {\n\t\t\t\t\tengine,\n\t\t\t\t\tpendingInput,\n\t\t\t\t\tready\n\t\t\t\t} = aesCrypto;\n\t\t\t\tif (engine) {\n\t\t\t\t\tawait ready;\n\t\t\t\t\tif (aesCrypto.discarded) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst encryptedChunkArray = new Uint8Array(pendingInput);\n\t\t\t\t\tengine.process(encryptedChunkArray, false);\n\t\t\t\t\tconst authenticationCode = subarray(engine.digest(), 0, AUTHENTICATION_CODE_LENGTH);\n\t\t\t\t\tcontroller.enqueue(concat(encryptedChunkArray, authenticationCode));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tsetDisposingReadable(this, aesCrypto);\n\t}\n}\n\nexport {\n\tAESDecryptionStream,\n\tAESEncryptionStream,\n\tsetAESEngine\n};\n\nfunction setAESEngine(createEngineFunction) {\n\tcreateEngine = createEngineFunction || createDefaultEngine;\n}\n\nfunction initAesCrypto(aesCrypto, password, rawPassword, encryptionStrength) {\n\tObject.assign(aesCrypto, {\n\t\tready: new Promise(resolve => aesCrypto.resolveReady = resolve),\n\t\tpassword: encodePassword(password, rawPassword),\n\t\tstrength: encryptionStrength - 1,\n\t\tpendingInput: EMPTY_UINT8_ARRAY,\n\t\tdiscarded: false\n\t});\n}\n\nfunction setDisposingReadable(stream, aesCrypto) {\n\tconst reader = stream.readable.getReader();\n\tconst readable = new ReadableStream({\n\t\tasync pull(controller) {\n\t\t\ttry {\n\t\t\t\tconst { value, done } = await reader.read();\n\t\t\t\tif (done) {\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} else {\n\t\t\t\t\tcontroller.enqueue(value);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tdisposeEngine(aesCrypto);\n\t\t\t\treader.cancel(error).catch(() => { });\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tcancel(reason) {\n\t\t\tdisposeEngine(aesCrypto);\n\t\t\treturn reader.cancel(reason);\n\t\t}\n\t});\n\tObject.defineProperty(stream, \"readable\", {\n\t\tget() {\n\t\t\treturn readable;\n\t\t}\n\t});\n}\n\nfunction append(aesCrypto, input, output, paddingStart, paddingEnd, decrypt) {\n\tconst {\n\t\tengine,\n\t\tpendingInput\n\t} = aesCrypto;\n\tif (pendingInput.length) {\n\t\tinput = concat(pendingInput, input);\n\t}\n\tconst inputLength = input.length - paddingEnd;\n\tconst alignedLength = inputLength - (inputLength % BLOCK_LENGTH);\n\toutput = expand(output, paddingStart + alignedLength);\n\tif (alignedLength) {\n\t\tconst chunk = subarray(output, paddingStart, paddingStart + alignedLength);\n\t\tchunk.set(subarray(input, 0, alignedLength));\n\t\tengine.process(chunk, decrypt);\n\t}\n\taesCrypto.pendingInput = subarray(input, alignedLength);\n\treturn output;\n}\n\nasync function createDecryptionKeys(decrypt, strength, password, preamble) {\n\tconst passwordVerificationKey = await createKeys(decrypt, strength, password, subarray(preamble, 0, SALT_LENGTH[strength]));\n\tconst passwordVerification = subarray(preamble, SALT_LENGTH[strength]);\n\tif (passwordVerificationKey[0] != passwordVerification[0] || passwordVerificationKey[1] != passwordVerification[1]) {\n\t\tdisposeEngine(decrypt);\n\t\tthrow new Error(ERR_INVALID_PASSWORD);\n\t}\n}\n\nfunction disposeEngine(aesCrypto) {\n\tconst { engine } = aesCrypto;\n\taesCrypto.discarded = true;\n\tif (engine && engine.dispose) {\n\t\tengine.dispose();\n\t}\n}\n\nasync function createEncryptionKeys(encrypt, strength, password) {\n\tconst salt = getRandomValues(new Uint8Array(SALT_LENGTH[strength]));\n\tconst passwordVerification = await createKeys(encrypt, strength, password, salt);\n\treturn concat(salt, passwordVerification);\n}\n\nasync function createKeys(aesCrypto, strength, password, salt) {\n\taesCrypto.password = null;\n\tconst keyLength = KEY_LENGTH[strength];\n\tconst compositeKey = await deriveKey(password, salt, keyLength * 2 + PASSWORD_VERIFICATION_LENGTH);\n\taesCrypto.engine = createEngine(subarray(compositeKey, 0, keyLength), subarray(compositeKey, keyLength, keyLength * 2));\n\tif (aesCrypto.discarded) {\n\t\tdisposeEngine(aesCrypto);\n\t}\n\treturn subarray(compositeKey, keyLength * 2);\n}\n\nasync function deriveKey(password, salt, length) {\n\tif (DERIVE_BITS_SUPPORTED) {\n\t\ttry {\n\t\t\tconst baseKey = await subtle.importKey(RAW_FORMAT, password, BASE_KEY_ALGORITHM, false, DERIVED_BITS_USAGE);\n\t\t\treturn new Uint8Array(await subtle.deriveBits(Object.assign({ salt }, DERIVED_BITS_ALGORITHM), baseKey, length * 8));\n\t\t} catch {\n\t\t\tDERIVE_BITS_SUPPORTED = false;\n\t\t}\n\t}\n\treturn pbkdf2(password, salt, PBKDF2_ITERATIONS, length);\n}\n\nfunction encodePassword(password, rawPassword) {\n\tif (rawPassword === UNDEFINED_VALUE) {\n\t\treturn encodeText(password);\n\t} else {\n\t\treturn rawPassword;\n\t}\n}\n\nfunction expand(inputArray, length) {\n\tif (length && length > inputArray.length) {\n\t\tconst array = inputArray;\n\t\tinputArray = new Uint8Array(length);\n\t\tinputArray.set(array, 0);\n\t}\n\treturn inputArray;\n}\n\nfunction subarray(array, begin, end) {\n\treturn array.subarray(begin, end);\n}\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TransformStream */\n// deno-lint-ignore-file no-this-alias\n\nimport { Crc32 } from \"./codecs/crc32.js\";\nimport {\n\tERR_INVALID_PASSWORD,\n\tERR_ABORT_CHECK_PASSWORD,\n\tgetRandomValues\n} from \"./common-crypto.js\";\n\nconst HEADER_LENGTH = 12;\n\nclass ZipCryptoDecryptionStream extends TransformStream {\n\n\tconstructor({ password, rawPassword, passwordVerification, checkPasswordOnly }) {\n\t\tsuper({\n\t\t\tstart() {\n\t\t\t\tinitZipCrypto(this, password, rawPassword, passwordVerification);\n\t\t\t},\n\t\t\ttransform(chunk, controller) {\n\t\t\t\tconst zipCrypto = this;\n\t\t\t\tif (zipCrypto.password || zipCrypto.rawPassword) {\n\t\t\t\t\tconst decryptedHeader = decrypt(zipCrypto, chunk.subarray(0, HEADER_LENGTH));\n\t\t\t\t\tzipCrypto.password = zipCrypto.rawPassword = null;\n\t\t\t\t\tif ((decryptedHeader[HEADER_LENGTH - 1] ^ zipCrypto.passwordVerification) != 0) {\n\t\t\t\t\t\tthrow new Error(ERR_INVALID_PASSWORD);\n\t\t\t\t\t}\n\t\t\t\t\tchunk = chunk.subarray(HEADER_LENGTH);\n\t\t\t\t}\n\t\t\t\tif (checkPasswordOnly) {\n\t\t\t\t\tcontroller.error(new Error(ERR_ABORT_CHECK_PASSWORD));\n\t\t\t\t} else {\n\t\t\t\t\tcontroller.enqueue(decrypt(zipCrypto, chunk));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass ZipCryptoEncryptionStream extends TransformStream {\n\n\tconstructor({ password, rawPassword, passwordVerification }) {\n\t\tsuper({\n\t\t\tstart() {\n\t\t\t\tinitZipCrypto(this, password, rawPassword, passwordVerification);\n\t\t\t},\n\t\t\ttransform(chunk, controller) {\n\t\t\t\tconst zipCrypto = this;\n\t\t\t\tlet output;\n\t\t\t\tlet offset;\n\t\t\t\tif (zipCrypto.password || zipCrypto.rawPassword) {\n\t\t\t\t\tzipCrypto.password = zipCrypto.rawPassword = null;\n\t\t\t\t\tconst header = getRandomValues(new Uint8Array(HEADER_LENGTH));\n\t\t\t\t\theader[HEADER_LENGTH - 1] = zipCrypto.passwordVerification;\n\t\t\t\t\toutput = new Uint8Array(chunk.length + header.length);\n\t\t\t\t\toutput.set(encrypt(zipCrypto, header), 0);\n\t\t\t\t\toffset = HEADER_LENGTH;\n\t\t\t\t} else {\n\t\t\t\t\toutput = new Uint8Array(chunk.length);\n\t\t\t\t\toffset = 0;\n\t\t\t\t}\n\t\t\t\toutput.set(encrypt(zipCrypto, chunk), offset);\n\t\t\t\tcontroller.enqueue(output);\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport {\n\tZipCryptoDecryptionStream,\n\tZipCryptoEncryptionStream\n};\n\nfunction initZipCrypto(zipCrypto, password, rawPassword, passwordVerification) {\n\tObject.assign(zipCrypto, {\n\t\tpassword,\n\t\trawPassword,\n\t\tpasswordVerification\n\t});\n\tcreateKeys(zipCrypto, password, rawPassword);\n}\n\nfunction decrypt(target, input) {\n\tconst output = new Uint8Array(input.length);\n\tfor (let index = 0; index < input.length; index++) {\n\t\toutput[index] = getByte(target) ^ input[index];\n\t\tupdateKeys(target, output[index]);\n\t}\n\treturn output;\n}\n\nfunction encrypt(target, input) {\n\tconst output = new Uint8Array(input.length);\n\tfor (let index = 0; index < input.length; index++) {\n\t\toutput[index] = getByte(target) ^ input[index];\n\t\tupdateKeys(target, input[index]);\n\t}\n\treturn output;\n}\n\nfunction createKeys(target, password, rawPassword) {\n\tconst cryptoKeys = [0x12345678, 0x23456789, 0x34567890];\n\tObject.assign(target, {\n\t\tcryptoKeys,\n\t\tcrcKey0: new Crc32(cryptoKeys[0]),\n\t\tcrcKey2: new Crc32(cryptoKeys[2])\n\t});\n\tif (rawPassword) {\n\t\tfor (let index = 0; index < rawPassword.length; index++) {\n\t\t\tupdateKeys(target, rawPassword[index]);\n\t\t}\n\t} else {\n\t\tfor (let index = 0; index < password.length; index++) {\n\t\t\tupdateKeys(target, password.charCodeAt(index));\n\t\t}\n\t}\n}\n\nfunction updateKeys(target, byte) {\n\tlet [, key1] = target.cryptoKeys;\n\ttarget.crcKey0.append([byte]);\n\tconst key0 = ~target.crcKey0.get();\n\tkey1 = getInt32(Math.imul(getInt32(key1 + getInt8(key0)), 134775813) + 1);\n\ttarget.crcKey2.append([key1 >>> 24]);\n\tconst key2 = ~target.crcKey2.get();\n\ttarget.cryptoKeys = [key0, key1, key2];\n}\n\nfunction getByte(target) {\n\tconst temp = target.cryptoKeys[2] | 2;\n\treturn getInt8(Math.imul(temp, (temp ^ 1)) >>> 8);\n}\n\nfunction getInt8(number) {\n\treturn number & 0xFF;\n}\n\nfunction getInt32(number) {\n\treturn number & 0xFFFFFFFF;\n}","/*\n Copyright (c) 2026 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global Blob, Response, ReadableStream, WritableStream */\n\nimport { FUNCTION_TYPE } from \"../constants.js\";\n\nexport {\n\ttoCompatibleReadable,\n\ttoCompatibleWritable,\n\tstreamToBlob\n};\n\nfunction toCompatibleReadable(readable) {\n\tif (readable instanceof ReadableStream) {\n\t\treturn readable;\n\t}\n\tconst reader = readable.getReader();\n\treturn new ReadableStream({\n\t\tasync pull(controller) {\n\t\t\ttry {\n\t\t\t\tconst { value, done } = await reader.read();\n\t\t\t\tif (done) {\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} else {\n\t\t\t\t\tcontroller.enqueue(value);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\treader.cancel(error).catch(() => { });\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tcancel(reason) {\n\t\t\treturn reader.cancel(reason);\n\t\t}\n\t});\n}\n\nfunction streamToBlob(readable, contentType) {\n\treadable = toCompatibleReadable(readable);\n\tconst blobOptions = contentType ? { type: contentType } : {};\n\tif (responseSupportsGlobalReadable()) {\n\t\treturn new Response(readable).blob().then(blob => contentType ? new Blob([blob], blobOptions) : blob);\n\t}\n\tconst chunks = [];\n\treturn readable\n\t\t.pipeTo(new WritableStream({\n\t\t\twrite(chunk) {\n\t\t\t\tchunks.push(chunk);\n\t\t\t}\n\t\t}))\n\t\t.then(() => new Blob(chunks, blobOptions));\n}\n\nfunction responseSupportsGlobalReadable() {\n\treturn typeof Blob.prototype.stream != FUNCTION_TYPE || new Blob([]).stream() instanceof ReadableStream;\n}\n\nfunction toCompatibleWritable(writable) {\n\tif (writable instanceof WritableStream) {\n\t\treturn writable;\n\t}\n\tconst writer = writable.getWriter();\n\treturn new WritableStream({\n\t\twrite(chunk) {\n\t\t\treturn writer.write(chunk);\n\t\t},\n\t\tclose() {\n\t\t\treturn writer.close();\n\t\t},\n\t\tabort(reason) {\n\t\t\treturn writer.abort(reason);\n\t\t}\n\t});\n}\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport {\n\tMAX_16_BITS,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_DEFLATE_64,\n\tCOMPRESSION_METHOD_AES,\n\tFUNCTION_TYPE,\n\tSTRING_TYPE\n} from \"./constants.js\";\n\nconst ERR_INVALID_CODEC_DEFINITION = \"Invalid codec definition\";\nconst ERR_RESERVED_COMPRESSION_METHOD = \"Reserved compression method\";\nconst ERR_INVALID_CODEC_MODULE = \"Invalid codec module\";\nconst ERR_UNSUPPORTED_COMPRESSION = \"Compression method not supported\";\n\nconst RESERVED_COMPRESSION_METHODS = [\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_DEFLATE_64,\n\tCOMPRESSION_METHOD_AES\n];\n\nconst registeredCodecs = new Map();\nconst codecStreams = new Map();\n\nexport {\n\tERR_INVALID_CODEC_DEFINITION,\n\tERR_UNSUPPORTED_COMPRESSION,\n\tERR_RESERVED_COMPRESSION_METHOD,\n\tERR_INVALID_CODEC_MODULE,\n\tregisterCodec,\n\tunregisterCodec,\n\tgetRegisteredCodec,\n\tgetRegisteredCodecs,\n\tgetCodecStreams,\n\tsetCodecStreams,\n\tensureCodecStreams\n};\n\nfunction registerCodec(codec = {}) {\n\tconst { compressionMethod, format, codecURI, CompressionStream, DecompressionStream, versionNeeded } = codec;\n\tif (!Number.isInteger(compressionMethod) || compressionMethod < 0 || compressionMethod > MAX_16_BITS ||\n\t\ttypeof format != STRING_TYPE || !format.length) {\n\t\tthrow new Error(ERR_INVALID_CODEC_DEFINITION);\n\t}\n\tif (RESERVED_COMPRESSION_METHODS.includes(compressionMethod)) {\n\t\tthrow new Error(ERR_RESERVED_COMPRESSION_METHOD);\n\t}\n\tconst hasStreams = typeof CompressionStream == FUNCTION_TYPE || typeof DecompressionStream == FUNCTION_TYPE;\n\tif (!hasStreams && (typeof codecURI != STRING_TYPE || !codecURI.length)) {\n\t\tthrow new Error(ERR_INVALID_CODEC_DEFINITION);\n\t}\n\tregisteredCodecs.set(compressionMethod, { compressionMethod, format, codecURI, versionNeeded });\n\tif (hasStreams) {\n\t\tsetCodecStreams(format, { CompressionStream, DecompressionStream });\n\t}\n}\n\nfunction unregisterCodec(compressionMethod) {\n\tconst codec = registeredCodecs.get(compressionMethod);\n\tif (codec) {\n\t\tregisteredCodecs.delete(compressionMethod);\n\t\tlet formatUsed;\n\t\tregisteredCodecs.forEach(otherCodec => formatUsed = formatUsed || otherCodec.format == codec.format);\n\t\tif (!formatUsed) {\n\t\t\tcodecStreams.delete(codec.format);\n\t\t}\n\t}\n}\n\nfunction getRegisteredCodec(compressionMethod) {\n\treturn registeredCodecs.get(compressionMethod);\n}\n\nfunction getRegisteredCodecs() {\n\treturn Array.from(registeredCodecs.values(), codec => Object.assign({}, codec, codecStreams.get(codec.format)));\n}\n\nfunction getCodecStreams(format) {\n\treturn codecStreams.get(format);\n}\n\nfunction setCodecStreams(format, streams) {\n\tconst { CompressionStream, DecompressionStream } = streams;\n\tif (typeof CompressionStream != FUNCTION_TYPE && typeof DecompressionStream != FUNCTION_TYPE) {\n\t\tthrow new Error(ERR_INVALID_CODEC_MODULE);\n\t}\n\tcodecStreams.set(format, { CompressionStream, DecompressionStream });\n}\n\nasync function ensureCodecStreams(format, codecURI) {\n\tif (!codecStreams.has(format) && codecURI) {\n\t\tsetCodecStreams(format, await import(/* webpackIgnore: true */ /* @vite-ignore */ codecURI));\n\t}\n}\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TransformStream, ReadableStream */\n// deno-lint-ignore-file no-this-alias\n\nimport { Crc32 } from \"./codecs/crc32.js\";\nimport { Crc32Stream } from \"./crc32-stream.js\";\nimport {\n\tAESEncryptionStream,\n\tAESDecryptionStream\n} from \"./aes-crypto-stream.js\";\nimport {\n\tZipCryptoEncryptionStream,\n\tZipCryptoDecryptionStream\n} from \"./zip-crypto-stream.js\";\nimport {\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_ABORT_CHECK_PASSWORD,\n\tERR_UNSUPPORTED_CRYPTO_API\n} from \"./common-crypto.js\";\nimport { UNDEFINED_VALUE } from \"../constants.js\";\nimport { concat, getDataView } from \"../util/array.js\";\nimport { toCompatibleReadable } from \"../util/compatible-streams.js\";\nimport { isErrorObject } from \"../util/error.js\";\nimport { getCodecStreams, ERR_UNSUPPORTED_COMPRESSION } from \"../codec-registry.js\";\n\nconst ERR_INVALID_UNCOMPRESSED_SIZE = \"Invalid uncompressed size\";\nconst ERR_INVALID_COMPRESSED_DATA = \"Invalid compressed data\";\nconst ERR_CODEC_OUT_OF_MEMORY = \"Codec out of memory\";\nconst ERR_INVALID_CRC32 = \"Invalid CRC32\";\nconst Z_MEM_ERROR_CODE = \"Z_MEM_ERROR\";\nconst FORMAT_DEFLATE_RAW = \"deflate-raw\";\nconst FORMAT_DEFLATE64_RAW = \"deflate64-raw\";\nconst FORMAT_GZIP = \"gzip\";\nconst GZIP_HEADER_LENGTH = 10;\nconst GZIP_TRAILER_LENGTH = 8;\nconst GZIP_HEADER_BYTES = [0x1f, 0x8b, 0x08];\n\nclass DeflateStream extends TransformStream {\n\n\tconstructor(options, { chunkSize, CompressionStreamFallback, CompressionStream }) {\n\t\tsuper({});\n\t\tconst { compressed, encrypted, useCompressionStream, zipCrypto, computeCrc32, level, deflate64, format, compressionMethod, inputSize } = options;\n\t\tconst stream = this;\n\t\tlet crc32Stream, encryptionStream, gzipCrc32Stream;\n\t\tlet readable = super.readable;\n\t\tconst codecStreams = format && getCodecStreams(format);\n\t\tconst GzipCompressionStream = getGzipCodecStream(useCompressionStream, CompressionStream, CompressionStreamFallback);\n\t\tconst useGzipCrc32 = computeCrc32 && compressed && !deflate64 && !codecStreams && (!encrypted || zipCrypto) && Boolean(GzipCompressionStream);\n\t\tif ((!encrypted || zipCrypto) && computeCrc32 && !useGzipCrc32) {\n\t\t\tcrc32Stream = new Crc32Stream();\n\t\t\treadable = pipeThrough(readable, crc32Stream);\n\t\t}\n\t\tif (compressed) {\n\t\t\tif (codecStreams) {\n\t\t\t\treadable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.CompressionStream, format, { level, chunkSize, compressionMethod, uncompressedSize: inputSize }));\n\t\t\t} else if (useGzipCrc32) {\n\t\t\t\tgzipCrc32Stream = new GzipToRawDeflateStream();\n\t\t\t\treadable = pipeThroughBackpressured(readable, new GzipCompressionStream(FORMAT_GZIP, { level, chunkSize }));\n\t\t\t\treadable = pipeThrough(readable, gzipCrc32Stream);\n\t\t\t} else {\n\t\t\t\ttry {\n\t\t\t\t\treadable = pipeThroughCompressionStream(readable, useCompressionStream, { level, chunkSize }, CompressionStream, CompressionStreamFallback);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!useCompressionStream && CompressionStreamFallback) {\n\t\t\t\t\t\tthrow mapMemoryError(error);\n\t\t\t\t\t}\n\t\t\t\t\tlet gzipStream;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tgzipStream = new CompressionStream(FORMAT_GZIP);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tthrow mapMemoryError(error);\n\t\t\t\t\t}\n\t\t\t\t\treadable = pipeThroughBackpressured(readable, gzipStream);\n\t\t\t\t\treadable = pipeThrough(readable, new GzipToRawDeflateStream());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (encrypted) {\n\t\t\tif (zipCrypto) {\n\t\t\t\treadable = pipeThrough(readable, new ZipCryptoEncryptionStream(options));\n\t\t\t} else {\n\t\t\t\tencryptionStream = new AESEncryptionStream(options);\n\t\t\t\treadable = pipeThrough(readable, encryptionStream);\n\t\t\t}\n\t\t}\n\t\tsetReadable(stream, readable, () => {\n\t\t\tif ((!encrypted || zipCrypto) && computeCrc32) {\n\t\t\t\tstream.crc32 = useGzipCrc32 ? gzipCrc32Stream.crc32 : new DataView(crc32Stream.value.buffer).getUint32(0);\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass GzipToRawDeflateStream extends TransformStream {\n\n\tconstructor() {\n\t\t// deno-lint-ignore prefer-const\n\t\tlet stream;\n\t\tlet headerBytesLeft = GZIP_HEADER_LENGTH;\n\t\tlet trailerCandidate = new Uint8Array(0);\n\t\tsuper({\n\t\t\ttransform(chunk, controller) {\n\t\t\t\tif (headerBytesLeft) {\n\t\t\t\t\tconst droppedLength = Math.min(headerBytesLeft, chunk.length);\n\t\t\t\t\theaderBytesLeft -= droppedLength;\n\t\t\t\t\tchunk = chunk.subarray(droppedLength);\n\t\t\t\t\tif (!chunk.length) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst availableLength = trailerCandidate.length + chunk.length;\n\t\t\t\tif (availableLength <= GZIP_TRAILER_LENGTH) {\n\t\t\t\t\ttrailerCandidate = concat(trailerCandidate, chunk);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst emitLength = availableLength - GZIP_TRAILER_LENGTH;\n\t\t\t\tconst emittedFromTrailer = Math.min(emitLength, trailerCandidate.length);\n\t\t\t\tcontroller.enqueue(concat(\n\t\t\t\t\ttrailerCandidate.subarray(0, emittedFromTrailer),\n\t\t\t\t\tchunk.subarray(0, emitLength - emittedFromTrailer)));\n\t\t\t\ttrailerCandidate = concat(\n\t\t\t\t\ttrailerCandidate.subarray(emittedFromTrailer),\n\t\t\t\t\tchunk.subarray(emitLength - emittedFromTrailer));\n\t\t\t},\n\t\t\tflush() {\n\t\t\t\tconst dataView = getDataView(trailerCandidate);\n\t\t\t\tstream.crc32 = dataView.getUint32(0, true);\n\t\t\t\tstream.uncompressedSize = dataView.getUint32(4, true);\n\t\t\t}\n\t\t});\n\t\tstream = this;\n\t}\n}\n\nfunction pipeThroughGzipDecompressionStream(readable, gzipStream, outputSize, crc32, sourceErrors) {\n\tconst writer = gzipStream.writable.getWriter();\n\tconst reader = gzipStream.readable.getReader();\n\tconst outputCrc32 = crc32 === UNDEFINED_VALUE ? new Crc32() : UNDEFINED_VALUE;\n\tlet outputLength = 0;\n\tlet trailerWritten = false;\n\tlet settled = false;\n\tlet resolvePull, controller;\n\tconst output = new ReadableStream({\n\t\tstart(streamController) {\n\t\t\tcontroller = streamController;\n\t\t},\n\t\tpull() {\n\t\t\tresumePump();\n\t\t},\n\t\tcancel(reason) {\n\t\t\tsettled = true;\n\t\t\tresumePump();\n\t\t\treturn reader.cancel(reason);\n\t\t}\n\t});\n\tpump();\n\tdrain();\n\treturn output;\n\n\tasync function pump() {\n\t\tconst inputReader = readable.getReader();\n\t\ttry {\n\t\t\tconst header = new Uint8Array(GZIP_HEADER_LENGTH);\n\t\t\theader.set(GZIP_HEADER_BYTES);\n\t\t\tawait writer.write(header);\n\t\t\tfor (; ;) {\n\t\t\t\tawait outputCapacity();\n\t\t\t\tawait writer.ready;\n\t\t\t\tconst { value, done } = await readSource(inputReader, sourceErrors);\n\t\t\t\tif (done) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tawait writer.write(value);\n\t\t\t}\n\t\t\tif (outputCrc32) {\n\t\t\t\tawait writer.write(new Uint8Array(0));\n\t\t\t}\n\t\t\tconst trailer = new Uint8Array(GZIP_TRAILER_LENGTH);\n\t\t\tconst dataView = getDataView(trailer);\n\t\t\tdataView.setUint32(0, outputCrc32 ? outputCrc32.get() : crc32, true);\n\t\t\tdataView.setUint32(4, outputSize, true);\n\t\t\ttrailerWritten = true;\n\t\t\tawait writer.write(trailer);\n\t\t\tawait writer.close();\n\t\t} catch (error) {\n\t\t\tawait abort(writer, error);\n\t\t\tawait cancel(inputReader, error);\n\t\t}\n\t}\n\n\tasync function drain() {\n\t\ttry {\n\t\t\tfor (; ;) {\n\t\t\t\tconst { value, done } = await read();\n\t\t\t\tif (done) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toutputLength += value.length;\n\t\t\t\tif (outputLength > outputSize) {\n\t\t\t\t\tthrow new Error(ERR_INVALID_UNCOMPRESSED_SIZE);\n\t\t\t\t}\n\t\t\t\tif (outputCrc32) {\n\t\t\t\t\toutputCrc32.append(value);\n\t\t\t\t}\n\t\t\t\tcontroller.enqueue(value);\n\t\t\t}\n\t\t\tif (!settled) {\n\t\t\t\tsettled = true;\n\t\t\t\tcontroller.close();\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tfail(error);\n\t\t\tawait cancel(reader, error);\n\t\t}\n\t}\n\n\tfunction read() {\n\t\treturn reader.read().catch(error => {\n\t\t\tif (trailerWritten) {\n\t\t\t\tif (!outputCrc32) {\n\t\t\t\t\tthrow mapError(error, ERR_INVALID_CRC32);\n\t\t\t\t}\n\t\t\t\tif (outputLength != outputSize) {\n\t\t\t\t\tthrow mapError(error, ERR_INVALID_UNCOMPRESSED_SIZE);\n\t\t\t\t}\n\t\t\t\treturn { done: true };\n\t\t\t}\n\t\t\tthrow mapCodecError(error, sourceErrors);\n\t\t});\n\t}\n\n\tfunction outputCapacity() {\n\t\tif (!settled && controller.desiredSize <= 0) {\n\t\t\treturn new Promise(resolve => resolvePull = resolve);\n\t\t}\n\t}\n\n\tfunction resumePump() {\n\t\tif (resolvePull) {\n\t\t\tconst resolve = resolvePull;\n\t\t\tresolvePull = UNDEFINED_VALUE;\n\t\t\tresolve();\n\t\t}\n\t}\n\n\tfunction fail(error) {\n\t\tif (!settled) {\n\t\t\tsettled = true;\n\t\t\tcontroller.error(error);\n\t\t\tresumePump();\n\t\t}\n\t}\n}\n\nclass InflateStream extends TransformStream {\n\n\tconstructor(options, { chunkSize, DecompressionStreamFallback, DecompressionStream }) {\n\t\tsuper({});\n\t\tconst { zipCrypto, encrypted, checkCrc32, crc32, compressed, useCompressionStream, deflate64, format, compressionMethod, rawBitFlag, outputSize } = options;\n\t\tlet crc32Stream, decryptionStream, gzipCrc32;\n\t\tlet readable = super.readable;\n\t\tif (encrypted) {\n\t\t\tif (zipCrypto) {\n\t\t\t\treadable = pipeThrough(readable, new ZipCryptoDecryptionStream(options));\n\t\t\t} else {\n\t\t\t\tdecryptionStream = new AESDecryptionStream(options);\n\t\t\t\treadable = pipeThrough(readable, decryptionStream);\n\t\t\t}\n\t\t}\n\t\tif (compressed) {\n\t\t\tconst sourceErrors = new Set();\n\t\t\tconst codecStreams = format && getCodecStreams(format);\n\t\t\tlet gzipStream;\n\t\t\tif (codecStreams) {\n\t\t\t\treadable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.DecompressionStream, format, { chunkSize, compressionMethod, rawBitFlag, uncompressedSize: outputSize }), sourceErrors);\n\t\t\t} else {\n\t\t\t\tconst GzipDecompressionStream = getGzipCodecStream(useCompressionStream, DecompressionStream, DecompressionStreamFallback);\n\t\t\t\tif (checkCrc32 && !deflate64 && crc32 !== UNDEFINED_VALUE && outputSize !== UNDEFINED_VALUE && GzipDecompressionStream) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tgzipStream = new GzipDecompressionStream(FORMAT_GZIP, { chunkSize });\n\t\t\t\t\t} catch {\n\t\t\t\t\t\tgzipStream = UNDEFINED_VALUE;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!gzipStream) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treadable = pipeThroughCompressionStream(readable, useCompressionStream, { chunkSize, deflate64 }, DecompressionStream, DecompressionStreamFallback, sourceErrors);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (deflate64 || outputSize === UNDEFINED_VALUE || (!useCompressionStream && DecompressionStreamFallback)) {\n\t\t\t\t\t\t\tthrow mapMemoryError(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tgzipStream = new DecompressionStream(FORMAT_GZIP);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tthrow mapMemoryError(error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (gzipStream) {\n\t\t\t\tgzipCrc32 = true;\n\t\t\t\treadable = pipeThroughGzipDecompressionStream(readable, gzipStream, outputSize, crc32, sourceErrors);\n\t\t\t} else {\n\t\t\t\treadable = mapInflateStreamError(readable, sourceErrors);\n\t\t\t}\n\t\t}\n\t\tif (checkCrc32 && !gzipCrc32) {\n\t\t\tcrc32Stream = new Crc32Stream();\n\t\t\treadable = pipeThrough(readable, crc32Stream);\n\t\t}\n\t\tsetReadable(this, readable, () => {\n\t\t\tif (crc32Stream) {\n\t\t\t\tconst computedCrc32 = new DataView(crc32Stream.value.buffer).getUint32(0, false);\n\t\t\t\tif (crc32 != computedCrc32) {\n\t\t\t\t\tthrow new Error(ERR_INVALID_CRC32);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nconst formatSupportByStream = new Map();\n\nfunction supportsFormat(StreamClass, format) {\n\tif (!StreamClass) {\n\t\treturn false;\n\t}\n\tlet supportByFormat = formatSupportByStream.get(StreamClass);\n\tif (!supportByFormat) {\n\t\tsupportByFormat = new Map();\n\t\tformatSupportByStream.set(StreamClass, supportByFormat);\n\t}\n\tlet supported = supportByFormat.get(format);\n\tif (supported === UNDEFINED_VALUE) {\n\t\ttry {\n\t\t\tnew StreamClass(format);\n\t\t\tsupported = true;\n\t\t} catch {\n\t\t\tsupported = false;\n\t\t}\n\t\tsupportByFormat.set(format, supported);\n\t}\n\treturn supported;\n}\n\nfunction supportsDeflateRaw(StreamClass) {\n\treturn supportsFormat(StreamClass, FORMAT_DEFLATE_RAW);\n}\n\nfunction supportsGzip(StreamClass) {\n\treturn supportsFormat(StreamClass, FORMAT_GZIP);\n}\n\nexport {\n\tDeflateStream,\n\tInflateStream,\n\tsupportsFormat,\n\tsupportsDeflateRaw,\n\tsupportsGzip,\n\tFORMAT_DEFLATE_RAW,\n\tFORMAT_DEFLATE64_RAW,\n\tFORMAT_GZIP,\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_CRC32,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_INVALID_UNCOMPRESSED_SIZE,\n\tERR_INVALID_COMPRESSED_DATA,\n\tERR_CODEC_OUT_OF_MEMORY,\n\tERR_ABORT_CHECK_PASSWORD,\n\tERR_UNSUPPORTED_CRYPTO_API\n};\n\nfunction setReadable(stream, readable, flush) {\n\treadable = pipeThrough(readable, new TransformStream({ flush }));\n\tObject.defineProperty(stream, \"readable\", {\n\t\tget() {\n\t\t\treturn readable;\n\t\t}\n\t});\n}\n\nfunction createCodecStream(CodecStreamClass, format, options) {\n\tif (!CodecStreamClass) {\n\t\tthrow new Error(ERR_UNSUPPORTED_COMPRESSION);\n\t}\n\treturn new CodecStreamClass(format, options);\n}\n\nfunction getGzipCodecStream(useCompressionStream, CodecStreamNative, CodecStreamFallback) {\n\tif (useCompressionStream && CodecStreamNative) {\n\t\treturn CodecStreamNative;\n\t} else if (CodecStreamFallback && CodecStreamFallback.requiresModule) {\n\t\treturn CodecStreamFallback;\n\t}\n}\n\nfunction pipeThroughCompressionStream(readable, useCompressionStream, options, CompressionStreamNative, CompressionStreamFallback, sourceErrors) {\n\tconst Stream = useCompressionStream && CompressionStreamNative ?\n\t\tCompressionStreamNative :\n\t\tCompressionStreamFallback || CompressionStreamNative;\n\tconst format = options.deflate64 ? FORMAT_DEFLATE64_RAW : FORMAT_DEFLATE_RAW;\n\tlet codecStream;\n\ttry {\n\t\tcodecStream = new Stream(format, options);\n\t} catch (error) {\n\t\tif (useCompressionStream && CompressionStreamFallback && Stream != CompressionStreamFallback) {\n\t\t\tcodecStream = new CompressionStreamFallback(format, options);\n\t\t} else {\n\t\t\tthrow error;\n\t\t}\n\t}\n\treturn pipeThroughBackpressured(readable, codecStream, sourceErrors);\n}\n\nfunction pipeThrough(readable, transformStream) {\n\treturn toCompatibleReadable(readable).pipeThrough(transformStream);\n}\n\nfunction pipeThroughBackpressured(readable, transformStream, sourceErrors) {\n\tconst writer = transformStream.writable.getWriter();\n\tconst reader = readable.getReader();\n\tpump();\n\treturn transformStream.readable;\n\n\tasync function pump() {\n\t\ttry {\n\t\t\tfor (; ;) {\n\t\t\t\tawait writer.ready;\n\t\t\t\tconst result = await readSource(reader, sourceErrors);\n\t\t\t\tif (result.done) {\n\t\t\t\t\tawait writer.close();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tawait writer.write(result.value);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tawait abort(writer, error);\n\t\t\tawait cancel(reader, error);\n\t\t}\n\t}\n}\n\nasync function abort(writer, error) {\n\ttry {\n\t\tawait writer.abort(error);\n\t} catch {\n\t\t// ignored: the writable may already be errored/closed\n\t}\n}\n\nasync function cancel(reader, error) {\n\ttry {\n\t\tawait reader.cancel(error);\n\t} catch {\n\t\t// ignored: the readable may already be errored/closed\n\t}\n}\n\nfunction readSource(reader, sourceErrors) {\n\tconst result = reader.read();\n\treturn sourceErrors ? result.catch(error => {\n\t\tsourceErrors.add(error);\n\t\tthrow error;\n\t}) : result;\n}\n\nfunction mapCodecError(error, sourceErrors) {\n\tif (sourceErrors.has(error)) {\n\t\treturn error;\n\t}\n\treturn mapError(error, isMemoryError(error) ? ERR_CODEC_OUT_OF_MEMORY : ERR_INVALID_COMPRESSED_DATA);\n}\n\nfunction mapMemoryError(error) {\n\treturn isMemoryError(error) ? mapError(error, ERR_CODEC_OUT_OF_MEMORY) : error;\n}\n\nfunction isMemoryError(error) {\n\treturn isErrorObject(error) && error.code == Z_MEM_ERROR_CODE;\n}\n\nfunction mapError(error, message) {\n\tconst mappedError = new Error(message);\n\tmappedError.cause = error;\n\treturn mappedError;\n}\n\nfunction mapInflateStreamError(readable, sourceErrors) {\n\tconst reader = readable.getReader();\n\treturn new ReadableStream({\n\t\tasync pull(controller) {\n\t\t\ttry {\n\t\t\t\tconst { value, done } = await reader.read();\n\t\t\t\tif (done) {\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} else {\n\t\t\t\t\tcontroller.enqueue(value);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tawait cancel(reader, error);\n\t\t\t\tthrow mapCodecError(error, sourceErrors);\n\t\t\t}\n\t\t},\n\t\tcancel(reason) {\n\t\t\treturn reader.cancel(reason);\n\t\t}\n\t});\n}\n","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/*\n * This program is based on JZlib 1.0.2 ymnk, JCraft,Inc.\n * JZlib is based on zlib-1.1.3, so all credit should go authors\n * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)\n * and contributors of zlib.\n */\n\n/* global TransformStream */\n// deno-lint-ignore-file no-this-alias\n\nimport { UNDEFINED_VALUE } from \"../constants.js\";\nimport {\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_CRC32,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_INVALID_UNCOMPRESSED_SIZE,\n\tERR_INVALID_COMPRESSED_DATA,\n\tERR_CODEC_OUT_OF_MEMORY,\n\tERR_ABORT_CHECK_PASSWORD,\n\tERR_UNSUPPORTED_CRYPTO_API,\n\tInflateStream,\n\tDeflateStream,\n\tsupportsDeflateRaw,\n\tsupportsGzip\n} from \"./zip-entry-stream.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\nconst MESSAGE_EVENT_TYPE = \"message\";\nconst MESSAGE_START = \"start\";\nconst MESSAGE_PULL = \"pull\";\nconst MESSAGE_DATA = \"data\";\nconst MESSAGE_ACK_DATA = \"ack\";\nconst MESSAGE_CLOSE = \"close\";\nconst MESSAGE_READY = \"ready\";\nconst CODEC_DEFLATE = \"deflate\";\nconst CODEC_INFLATE = \"inflate\";\n\nexport {\n\tCODEC_DEFLATE,\n\tCODEC_INFLATE,\n\tMESSAGE_EVENT_TYPE,\n\tMESSAGE_START,\n\tMESSAGE_PULL,\n\tMESSAGE_DATA,\n\tMESSAGE_ACK_DATA,\n\tMESSAGE_CLOSE,\n\tMESSAGE_READY,\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_CRC32,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_INVALID_UNCOMPRESSED_SIZE,\n\tERR_INVALID_COMPRESSED_DATA,\n\tERR_CODEC_OUT_OF_MEMORY,\n\tERR_ABORT_CHECK_PASSWORD,\n\tERR_UNSUPPORTED_CRYPTO_API,\n\tCodecStream,\n\tChunkStream,\n\tsupportsDeflateRaw,\n\tsupportsGzip\n};\n\nclass CodecStream extends TransformStream {\n\n\tconstructor(options, config) {\n\t\tsuper({});\n\t\tconst codec = this;\n\t\tconst { codecType } = options;\n\t\tlet Stream;\n\t\tif (codecType.startsWith(CODEC_DEFLATE)) {\n\t\t\tStream = DeflateStream;\n\t\t} else if (codecType.startsWith(CODEC_INFLATE)) {\n\t\t\tStream = InflateStream;\n\t\t}\n\t\tcodec.outputSize = 0;\n\t\tlet inputSize = 0;\n\t\tconst stream = new Stream(options, config);\n\t\tconst readable = super.readable;\n\t\tconst inputSizeStream = new TransformStream({\n\t\t\ttransform(chunk, controller) {\n\t\t\t\tif (chunk && chunk.length) {\n\t\t\t\t\tinputSize += chunk.length;\n\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t}\n\t\t\t},\n\t\t\tflush() {\n\t\t\t\tObject.assign(codec, {\n\t\t\t\t\tinputSize\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tconst outputSizeStream = new TransformStream({\n\t\t\ttransform(chunk, controller) {\n\t\t\t\tif (chunk && chunk.length) {\n\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\tcodec.outputSize += chunk.length;\n\t\t\t\t\tif (options.outputSize !== UNDEFINED_VALUE && codec.outputSize > options.outputSize) {\n\t\t\t\t\t\tthrow new Error(ERR_INVALID_UNCOMPRESSED_SIZE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tflush() {\n\t\t\t\tconst { crc32 } = stream;\n\t\t\t\tObject.assign(codec, {\n\t\t\t\t\tcrc32,\n\t\t\t\t\tinputSize\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(codec, \"readable\", {\n\t\t\tget() {\n\t\t\t\treturn readable.pipeThrough(inputSizeStream).pipeThrough(stream).pipeThrough(outputSizeStream);\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass ChunkStream extends TransformStream {\n\n\tconstructor(chunkSize) {\n\t\tconst pendingChunks = [];\n\t\tlet pendingLength = 0;\n\t\tlet outputSize = 0;\n\t\tif (!Number.isFinite(chunkSize) || chunkSize < 1) {\n\t\t\tchunkSize = DEFAULT_CHUNK_SIZE;\n\t\t}\n\t\tsuper({\n\t\t\ttransform(chunk, controller) {\n\t\t\t\tpendingChunks.push(chunk);\n\t\t\t\tpendingLength += chunk.length;\n\t\t\t\twhile (pendingLength > chunkSize) {\n\t\t\t\t\toutputSize += chunkSize;\n\t\t\t\t\tcontroller.enqueue(shiftChunk());\n\t\t\t\t}\n\t\t\t},\n\t\t\tflush(controller) {\n\t\t\t\tif (pendingLength) {\n\t\t\t\t\toutputSize += pendingLength;\n\t\t\t\t\tcontroller.enqueue(concatChunks(pendingChunks, pendingLength));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(this, \"outputSize\", {\n\t\t\tget: () => outputSize\n\t\t});\n\n\t\tfunction shiftChunk() {\n\t\t\tconst result = new Uint8Array(chunkSize);\n\t\t\tlet resultOffset = 0;\n\t\t\twhile (resultOffset < chunkSize) {\n\t\t\t\tconst firstChunk = pendingChunks[0];\n\t\t\t\tconst remainingLength = chunkSize - resultOffset;\n\t\t\t\tif (firstChunk.length <= remainingLength) {\n\t\t\t\t\tresult.set(firstChunk, resultOffset);\n\t\t\t\t\tresultOffset += firstChunk.length;\n\t\t\t\t\tpendingChunks.shift();\n\t\t\t\t} else {\n\t\t\t\t\tresult.set(firstChunk.subarray(0, remainingLength), resultOffset);\n\t\t\t\t\tpendingChunks[0] = firstChunk.subarray(remainingLength);\n\t\t\t\t\tresultOffset += remainingLength;\n\t\t\t\t}\n\t\t\t}\n\t\t\tpendingLength -= chunkSize;\n\t\t\treturn result;\n\t\t}\n\n\t\tfunction concatChunks(chunks, length) {\n\t\t\tconst result = new Uint8Array(length);\n\t\t\tlet offset = 0;\n\t\t\tfor (const chunk of chunks) {\n\t\t\t\tresult.set(chunk, offset);\n\t\t\t\toffset += chunk.length;\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n}","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global Worker, TransformStream */\n\nimport {\n\tUNDEFINED_VALUE,\n\tUNDEFINED_TYPE\n} from \"./constants.js\";\nimport { getChunkSize } from \"./configuration.js\";\nimport { isErrorObject } from \"./util/error.js\";\nimport {\n\tCODEC_DEFLATE,\n\tCodecStream,\n\tChunkStream,\n\tsupportsDeflateRaw,\n\tsupportsGzip\n} from \"./streams/codec-stream.js\";\n\nconst ERR_WORKER_STARTUP_TIMEOUT = \"Worker startup timeout\";\n\nlet webWorkerSupported, createWorkerFailed, webWorkerBackend;\nlet initModule = () => { };\n\nexport {\n\tCodecWorker,\n\tProgressWatcherStream,\n\tcallHandler,\n\tconfigureWorker,\n\tresetWebWorkerSupport,\n\tsupportsDeflate,\n\tsetWebWorkerBackend,\n\tdisableWebWorker,\n\tcreateWorkerInterface,\n\trunWorker,\n\tERR_WORKER_STARTUP_TIMEOUT\n};\n\nfunction configureWorker({ initModule: initModuleFunction }) {\n\tinitModule = initModuleFunction;\n}\n\nfunction setWebWorkerBackend(backend) {\n\twebWorkerBackend = backend;\n}\n\nasync function supportsDeflate(config) {\n\tconst { CompressionStream: NativeStream, CompressionStreamFallback: FallbackStream } = config;\n\tif (FallbackStream && !FallbackStream.requiresModule) {\n\t\treturn true;\n\t}\n\tif (supportsDeflateRaw(NativeStream) || supportsGzip(NativeStream)) {\n\t\treturn true;\n\t}\n\tif (FallbackStream) {\n\t\treturn await loadModule(config);\n\t}\n\treturn false;\n}\n\nasync function loadModule(config) {\n\tif (initModule) {\n\t\ttry {\n\t\t\tawait initModule(config);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\t// ignored\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction resetWebWorkerSupport() {\n\twebWorkerSupported = UNDEFINED_VALUE;\n\tcreateWorkerFailed = false;\n}\n\nfunction disableWebWorker(workerData) {\n\tif (workerData.createWorker) {\n\t\tcreateWorkerFailed = true;\n\t} else {\n\t\twebWorkerSupported = false;\n\t}\n}\n\nclass CodecWorker {\n\n\tconstructor(workerData, { readable, writable }, workerOptions, onTaskFinished) {\n\t\tconst { options, config, streamOptions, useWebWorkers, transferStreams, workerURI } = workerOptions;\n\t\tlet { createWorker } = workerOptions;\n\t\tconst { signal } = streamOptions;\n\t\tif (createWorkerFailed) {\n\t\t\tcreateWorker = UNDEFINED_VALUE;\n\t\t}\n\t\tObject.assign(workerData, {\n\t\t\tbusy: true,\n\t\t\tgeneration: (workerData.generation || 0) + 1,\n\t\t\treadable: readable\n\t\t\t\t.pipeThrough(new ChunkStream(getChunkSize(config)))\n\t\t\t\t.pipeThrough(new ProgressWatcherStream(streamOptions), { signal }),\n\t\t\twritable,\n\t\t\toptions: Object.assign({}, options),\n\t\t\tworkerOptions,\n\t\t\tworkerURI,\n\t\t\tcreateWorker,\n\t\t\ttransferStreams,\n\t\t\tterminate() {\n\t\t\t\treturn new Promise(resolve => {\n\t\t\t\t\tconst { worker, busy } = workerData;\n\t\t\t\t\tif (busy) {\n\t\t\t\t\t\tworkerData.terminateResolvers = workerData.terminateResolvers || [];\n\t\t\t\t\t\tworkerData.terminateResolvers.push(resolve);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (worker) {\n\t\t\t\t\t\t\tworker.terminate();\n\t\t\t\t\t\t\tworkerData.worker = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t}\n\t\t\t\t\tworkerData.interface = null;\n\t\t\t\t});\n\t\t\t},\n\t\t\tonTaskFinished() {\n\t\t\t\tif (workerData.busy) {\n\t\t\t\t\tconst { terminateResolvers, worker } = workerData;\n\t\t\t\t\tif (terminateResolvers) {\n\t\t\t\t\t\tworkerData.terminateResolvers = null;\n\t\t\t\t\t\tif (worker) {\n\t\t\t\t\t\t\tworkerData.terminated = true;\n\t\t\t\t\t\t\tworker.terminate();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tworkerData.busy = false;\n\t\t\t\t\tconst pendingTasks = onTaskFinished(workerData);\n\t\t\t\t\tif (terminateResolvers) {\n\t\t\t\t\t\tterminateResolvers.forEach(resolve => resolve(pendingTasks));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif (webWorkerSupported === UNDEFINED_VALUE) {\n\t\t\t// deno-lint-ignore valid-typeof\n\t\t\twebWorkerSupported = typeof Worker != UNDEFINED_TYPE;\n\t\t}\n\t\treturn (useWebWorkers && webWorkerBackend && ((webWorkerSupported && workerURI) || createWorker) ? webWorkerBackend : createWorkerInterface)(workerData, config);\n\t}\n}\n\nclass ProgressWatcherStream extends TransformStream {\n\n\tconstructor({ onstart, onprogress, size, onend }) {\n\t\tlet chunkOffset = 0;\n\t\tsuper({\n\t\t\tasync start() {\n\t\t\t\tif (onstart) {\n\t\t\t\t\tawait callHandler(onstart, size);\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync transform(chunk, controller) {\n\t\t\t\tchunkOffset += chunk.length;\n\t\t\t\tif (onprogress) {\n\t\t\t\t\tawait callHandler(onprogress, chunkOffset, size);\n\t\t\t\t}\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t\tasync flush() {\n\t\t\t\tif (onend) {\n\t\t\t\t\tawait callHandler(onend, chunkOffset);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nasync function callHandler(handler, ...parameters) {\n\ttry {\n\t\tawait handler(...parameters);\n\t} catch {\n\t\t// ignored\n\t}\n}\n\nfunction createWorkerInterface(workerData, config) {\n\treturn {\n\t\trun: () => runWorker(workerData, config)\n\t};\n}\n\nasync function runWorker({ options, readable, writable, onTaskFinished, workerOptions }, config) {\n\tlet codecStream, chunkStream, modulePromise;\n\ttry {\n\t\tif (options.compressed && !options.format) {\n\t\t\tconst deflate = options.codecType.startsWith(CODEC_DEFLATE);\n\t\t\tconst FallbackStream = deflate ? config.CompressionStreamFallback : config.DecompressionStreamFallback;\n\t\t\tconst NativeStream = deflate ? config.CompressionStream : config.DecompressionStream;\n\t\t\tif (!options.useCompressionStream) {\n\t\t\t\tif (!await moduleLoaded() && (!FallbackStream || FallbackStream.requiresModule)) {\n\t\t\t\t\toptions.useCompressionStream = true;\n\t\t\t\t}\n\t\t\t} else if (FallbackStream && FallbackStream.requiresModule && !supportsDeflateRaw(NativeStream)) {\n\t\t\t\tawait moduleLoaded();\n\t\t\t}\n\t\t}\n\t\tif (options.encrypted && !options.zipCrypto) {\n\t\t\tawait moduleLoaded();\n\t\t}\n\t\tcodecStream = new CodecStream(options, config);\n\t\tchunkStream = new ChunkStream(getChunkSize(config));\n\t\tconst { signal } = workerOptions.streamOptions;\n\t\tawait readable\n\t\t\t.pipeThrough(codecStream)\n\t\t\t.pipeThrough(chunkStream)\n\t\t\t.pipeTo(writable, { preventClose: true, preventAbort: true, signal });\n\t\tconst {\n\t\t\tcrc32,\n\t\t\tinputSize,\n\t\t\toutputSize\n\t\t} = codecStream;\n\t\treturn {\n\t\t\tcrc32,\n\t\t\tinputSize,\n\t\t\toutputSize\n\t\t};\n\t} catch (error) {\n\t\tif (codecStream) {\n\t\t\tconst outputSize = chunkStream ? chunkStream.outputSize : 0;\n\t\t\tworkerOptions.outputSize = outputSize;\n\t\t\tif (isErrorObject(error)) {\n\t\t\t\ttry {\n\t\t\t\t\terror.outputSize = outputSize;\n\t\t\t\t} catch {\n\t\t\t\t\t// ignored\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow error;\n\t} finally {\n\t\tonTaskFinished();\n\t}\n\n\tfunction moduleLoaded() {\n\t\tif (!modulePromise) {\n\t\t\tmodulePromise = loadModule(config);\n\t\t}\n\t\treturn modulePromise;\n\t}\n}\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global Worker, URL, TransformStream, AbortController, structuredClone, DOMException, setTimeout, clearTimeout */\n\nimport {\n\tUNDEFINED_VALUE,\n\tFUNCTION_TYPE\n} from \"./constants.js\";\nimport { toExactUint8Array } from \"./util/array.js\";\nimport { isErrorObject } from \"./util/error.js\";\nimport {\n\tMESSAGE_EVENT_TYPE,\n\tMESSAGE_START,\n\tMESSAGE_PULL,\n\tMESSAGE_DATA,\n\tMESSAGE_ACK_DATA,\n\tMESSAGE_CLOSE\n} from \"./streams/codec-stream.js\";\nimport {\n\tsetWebWorkerBackend,\n\tdisableWebWorker,\n\tcreateWorkerInterface,\n\trunWorker,\n\tERR_WORKER_STARTUP_TIMEOUT\n} from \"./codec-worker.js\";\n\nconst MODULE_WORKER_OPTIONS = { type: \"module\" };\nconst ERROR_EVENT_TYPE = \"error\";\nconst MESSAGE_ERROR_EVENT_TYPE = \"messageerror\";\nconst ABORT_EVENT_TYPE = \"abort\";\n\nlet webWorkerSource, webWorkerURI, webWorkerOptions;\nlet transferStreamsSupported = true;\ntry {\n\ttransferStreamsSupported = typeof structuredClone == FUNCTION_TYPE && structuredClone(new DOMException(\"\", \"AbortError\")).code !== UNDEFINED_VALUE;\n} catch {\n\t// ignored\n}\n\nsetWebWorkerBackend(createWebWorkerInterface);\n\nfunction createWebWorkerInterface(workerData, config) {\n\tconst { baseURI, chunkSize, workerStartupTimeout } = config;\n\tlet { wasmURI } = config;\n\n\tif (!workerData.interface) {\n\t\t// deno-lint-ignore valid-typeof\n\t\tif (typeof wasmURI == FUNCTION_TYPE) {\n\t\t\twasmURI = wasmURI();\n\t\t}\n\t\tlet worker;\n\t\ttry {\n\t\t\tworker = getWebWorker(workerData.workerURI, baseURI, workerData);\n\t\t} catch {\n\t\t\tdisableWebWorker(workerData);\n\t\t\treturn createWorkerInterface(workerData, config);\n\t\t}\n\t\tObject.assign(workerData, {\n\t\t\tworker,\n\t\t\tworkerAlive: false,\n\t\t\tterminated: false,\n\t\t\tstartupError: null,\n\t\t\tinterface: {\n\t\t\t\trun: async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn await runWebWorker(workerData, { chunkSize, wasmURI, baseURI, workerStartupTimeout });\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tif (error && error.workerStartupFailed) {\n\t\t\t\t\t\t\tdisableWebWorker(workerData);\n\t\t\t\t\t\t\treleaseWorkerStreams(workerData);\n\t\t\t\t\t\t\treturn runWorker(workerData, config);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (error && error.codecImportFailed) {\n\t\t\t\t\t\t\tif (workerData.reader) {\n\t\t\t\t\t\t\t\treleaseWorkerStreams(workerData);\n\t\t\t\t\t\t\t\treturn runWorker(workerData, config);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tworkerData.onTaskFinished();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn workerData.interface;\n}\n\nasync function runWebWorker(workerData, config) {\n\tif (!workerData.worker) {\n\t\tconst { startupError } = workerData;\n\t\tworkerData.startupError = null;\n\t\tconst error = startupError || new Error(ERR_WORKER_STARTUP_TIMEOUT);\n\t\terror.workerStartupFailed = true;\n\t\tthrow error;\n\t}\n\tlet resolveResult, rejectResult;\n\tconst result = new Promise((resolve, reject) => {\n\t\tresolveResult = resolve;\n\t\trejectResult = error => {\n\t\t\tconst { outputSize, workerOptions } = workerData;\n\t\t\tworkerOptions.outputSize = outputSize;\n\t\t\tif (isErrorObject(error)) {\n\t\t\t\ttry {\n\t\t\t\t\terror.outputSize = outputSize;\n\t\t\t\t} catch {\n\t\t\t\t\t// ignored\n\t\t\t\t}\n\t\t\t}\n\t\t\treject(error);\n\t\t};\n\t});\n\tObject.assign(workerData, {\n\t\treader: null,\n\t\twriter: null,\n\t\toutputSize: 0,\n\t\tdestinationFailed: false,\n\t\tdestinationError: null,\n\t\tresolveResult,\n\t\trejectResult,\n\t\tresult\n\t});\n\tconst { readable, options } = workerData;\n\tconst { writable, closed, abortPipe } = watchClosedStream(workerData.writable, workerData);\n\tlet streamsTransferred;\n\ttry {\n\t\tstreamsTransferred = sendMessage({\n\t\t\ttype: MESSAGE_START,\n\t\t\toptions,\n\t\t\tconfig,\n\t\t\treadable,\n\t\t\twritable\n\t\t}, workerData);\n\t} catch (error) {\n\t\tabortPipe();\n\t\ttry {\n\t\t\tawait closed;\n\t\t} catch {\n\t\t\t// ignored\n\t\t}\n\t\tworkerData.onTaskFinished();\n\t\tthrow error;\n\t}\n\tif (!streamsTransferred) {\n\t\tObject.assign(workerData, {\n\t\t\treader: readable.getReader(),\n\t\t\twriter: writable.getWriter()\n\t\t});\n\t}\n\tconst { workerStartupTimeout } = config;\n\tif (!workerData.workerAlive && Number.isFinite(workerStartupTimeout) && workerStartupTimeout >= 0) {\n\t\tworkerData.startupTimeout = setTimeout(() => onStartupTimeout(workerData), workerStartupTimeout);\n\t}\n\ttry {\n\t\tconst resultValue = await result;\n\t\tawait closeWritable();\n\t\tawait closed;\n\t\treturn resultValue;\n\t} catch (error) {\n\t\tawait closeWritable();\n\t\tabortPipe();\n\t\ttry {\n\t\t\tawait closed;\n\t\t} catch {\n\t\t\t// ignored\n\t\t}\n\t\tconst { outputSize, workerOptions, destinationFailed, destinationError } = workerData;\n\t\tworkerOptions.outputSize = outputSize;\n\t\tconst workerFailed = isErrorObject(error) && (error.codecImportFailed || error.workerStartupFailed);\n\t\tconst reportedError = destinationFailed && !workerFailed ? destinationError : error;\n\t\tif (isErrorObject(reportedError)) {\n\t\t\ttry {\n\t\t\t\treportedError.outputSize = outputSize;\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t}\n\t\tthrow reportedError;\n\t}\n\n\tasync function closeWritable() {\n\t\tif (!streamsTransferred && !writable.locked) {\n\t\t\ttry {\n\t\t\t\tawait writable.getWriter().close();\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction watchClosedStream(writableSource, workerData) {\n\tconst abortController = new AbortController();\n\tlet aborting;\n\tconst { writable, readable } = new TransformStream({\n\t\ttransform(chunk, controller) {\n\t\t\tworkerData.outputSize += chunk.length;\n\t\t\tcontroller.enqueue(chunk);\n\t\t}\n\t});\n\tconst closed = readable.pipeTo(writableSource, { preventClose: true, preventAbort: true, signal: abortController.signal });\n\tclosed.catch(error => {\n\t\tif (!aborting) {\n\t\t\tObject.assign(workerData, { destinationFailed: true, destinationError: error });\n\t\t}\n\t});\n\tconst { signal } = workerData.workerOptions.streamOptions;\n\tif (signal) {\n\t\tconst onAbort = () => abortController.abort(signal.reason);\n\t\tconst removeAbortListener = () => signal.removeEventListener(ABORT_EVENT_TYPE, onAbort);\n\t\tsignal.addEventListener(ABORT_EVENT_TYPE, onAbort);\n\t\tclosed.then(removeAbortListener, removeAbortListener);\n\t}\n\treturn {\n\t\twritable, closed, abortPipe: () => {\n\t\t\taborting = true;\n\t\t\tabortController.abort();\n\t\t}\n\t};\n}\n\nfunction releaseWorkerStreams(workerData) {\n\tconst { reader } = workerData;\n\tif (reader) {\n\t\treader.releaseLock();\n\t}\n\tworkerData.reader = null;\n\tworkerData.writer = null;\n}\n\nfunction terminateWorker(workerData) {\n\tconst { worker } = workerData;\n\tif (worker) {\n\t\ttry {\n\t\t\tworker.terminate();\n\t\t} catch {\n\t\t\t// ignored\n\t\t}\n\t}\n\tworkerData.interface = null;\n}\n\nfunction getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {\n\tconst { createWorker } = workerData;\n\tlet worker, resolvedURI, resolvedOptions;\n\tif (createWorker) {\n\t\tworker = createWorker();\n\t} else if (webWorkerURI === UNDEFINED_VALUE || webWorkerSource !== url) {\n\t\t// deno-lint-ignore valid-typeof\n\t\tconst isFunctionURI = typeof url == FUNCTION_TYPE;\n\t\tif (isFunctionURI) {\n\t\t\tresolvedURI = url(useBlobURI);\n\t\t} else {\n\t\t\tresolvedURI = url;\n\t\t}\n\t\tconst isDataURI = resolvedURI.startsWith(\"data:\");\n\t\tconst isBlobURI = resolvedURI.startsWith(\"blob:\");\n\t\tif (isDataURI || isBlobURI) {\n\t\t\tif (isModuleType === UNDEFINED_VALUE) {\n\t\t\t\tisModuleType = false;\n\t\t\t}\n\t\t\tif (isModuleType) {\n\t\t\t\tresolvedOptions = MODULE_WORKER_OPTIONS;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tworker = new Worker(resolvedURI, resolvedOptions);\n\t\t\t} catch (error) {\n\t\t\t\tif (isBlobURI) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tURL.revokeObjectURL(resolvedURI);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// ignored\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isFunctionURI && isBlobURI) {\n\t\t\t\t\treturn getWebWorker(url, baseURI, workerData, isModuleType, false);\n\t\t\t\t} else if (!isModuleType) {\n\t\t\t\t\treturn getWebWorker(url, baseURI, workerData, true, false);\n\t\t\t\t} else {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (isModuleType === UNDEFINED_VALUE) {\n\t\t\t\tisModuleType = true;\n\t\t\t}\n\t\t\tif (isModuleType) {\n\t\t\t\tresolvedOptions = MODULE_WORKER_OPTIONS;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tresolvedURI = new URL(resolvedURI, baseURI);\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tworker = new Worker(resolvedURI, resolvedOptions);\n\t\t\t} catch (error) {\n\t\t\t\tif (isModuleType) {\n\t\t\t\t\treturn getWebWorker(url, baseURI, workerData, false, useBlobURI);\n\t\t\t\t} else {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\twebWorkerSource = url;\n\t\twebWorkerURI = resolvedURI;\n\t\twebWorkerOptions = resolvedOptions;\n\t} else {\n\t\tworker = new Worker(webWorkerURI, webWorkerOptions);\n\t}\n\tworker.addEventListener(MESSAGE_EVENT_TYPE, event => {\n\t\tworkerData.workerAlive = true;\n\t\tclearStartupTimeout(workerData);\n\t\tonMessage(event, workerData);\n\t});\n\tworker.addEventListener(ERROR_EVENT_TYPE, event => onWorkerError(event, workerData));\n\tworker.addEventListener(MESSAGE_ERROR_EVENT_TYPE, event => onWorkerError(event, workerData));\n\treturn worker;\n}\n\nfunction onStartupTimeout(workerData) {\n\tworkerData.startupTimeout = null;\n\tif (workerData.workerAlive) {\n\t\treturn;\n\t}\n\tconst { rejectResult, writer } = workerData;\n\tterminateWorker(workerData);\n\tworkerData.worker = null;\n\tif (rejectResult) {\n\t\tconst error = new Error(ERR_WORKER_STARTUP_TIMEOUT);\n\t\terror.workerStartupFailed = true;\n\t\trejectResult(error);\n\t\tif (writer) {\n\t\t\twriter.releaseLock();\n\t\t}\n\t}\n}\n\nfunction clearStartupTimeout(workerData) {\n\tconst { startupTimeout } = workerData;\n\tif (startupTimeout) {\n\t\tclearTimeout(startupTimeout);\n\t\tworkerData.startupTimeout = null;\n\t}\n}\n\nfunction onWorkerError(event, workerData) {\n\tif (event.preventDefault) {\n\t\tevent.preventDefault();\n\t}\n\tclearStartupTimeout(workerData);\n\tconst { workerAlive, rejectResult, writer, onTaskFinished } = workerData;\n\tterminateWorker(workerData);\n\tif (!workerAlive) {\n\t\tworkerData.worker = null;\n\t}\n\tlet error = event.error || new Error(event.message || ERROR_EVENT_TYPE);\n\tif (!workerAlive) {\n\t\terror = Object.assign(new Error(error.message || ERROR_EVENT_TYPE), { workerStartupFailed: true });\n\t\tworkerData.startupError = error;\n\t}\n\tif (rejectResult) {\n\t\trejectResult(error);\n\t\tif (writer) {\n\t\t\twriter.releaseLock();\n\t\t}\n\t\tif (workerAlive) {\n\t\t\tonTaskFinished();\n\t\t}\n\t}\n}\n\nfunction sendMessage(message, { worker, writer, transferStreams, workerAlive }) {\n\ttry {\n\t\tconst { value, readable, writable } = message;\n\t\tconst transferables = [];\n\t\tif (value) {\n\t\t\tmessage.value = toExactUint8Array(value);\n\t\t\ttransferables.push(message.value.buffer);\n\t\t}\n\t\tif (transferStreams && transferStreamsSupported && workerAlive) {\n\t\t\tif (readable) {\n\t\t\t\ttransferables.push(readable);\n\t\t\t}\n\t\t\tif (writable) {\n\t\t\t\ttransferables.push(writable);\n\t\t\t}\n\t\t} else {\n\t\t\tmessage.readable = message.writable = null;\n\t\t}\n\t\tif (transferables.length) {\n\t\t\ttry {\n\t\t\t\tworker.postMessage(message, transferables);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\ttransferStreamsSupported = false;\n\t\t\t\tmessage.readable = message.writable = null;\n\t\t\t\tworker.postMessage(message);\n\t\t\t}\n\t\t} else {\n\t\t\tworker.postMessage(message);\n\t\t}\n\t} catch (error) {\n\t\tif (writer) {\n\t\t\twriter.releaseLock();\n\t\t}\n\t\tthrow error;\n\t}\n}\n\nasync function onMessage({ data }, workerData) {\n\tconst { type, value, messageId, result, error, errorValue } = data;\n\tconst { reader, writer, resolveResult, rejectResult, onTaskFinished, generation } = workerData;\n\tconst stale = () => workerData.generation != generation;\n\ttry {\n\t\tif (error) {\n\t\t\tfail(getResponseError(error, errorValue));\n\t\t} else {\n\t\t\tif (type == MESSAGE_PULL) {\n\t\t\t\tconst { value, done } = await reader.read();\n\t\t\t\tif (!stale()) {\n\t\t\t\t\tsendMessage({ type: MESSAGE_DATA, value, done, messageId }, workerData);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (type == MESSAGE_DATA) {\n\t\t\t\tconst chunk = new Uint8Array(value);\n\t\t\t\tawait writer.ready;\n\t\t\t\tawait writer.write(chunk);\n\t\t\t\tif (!stale()) {\n\t\t\t\t\tsendMessage({ type: MESSAGE_ACK_DATA, messageId }, workerData);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (type == MESSAGE_CLOSE) {\n\t\t\t\tsucceed(result);\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tif (!stale()) {\n\t\t\tterminateWorker(workerData);\n\t\t\tfail(error);\n\t\t}\n\t}\n\n\tfunction fail(error) {\n\t\tif (!stale()) {\n\t\t\trejectResult(error);\n\t\t\treleaseWriter();\n\t\t\tif (!(isErrorObject(error) && error.codecImportFailed)) {\n\t\t\t\tonTaskFinished();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction succeed(result) {\n\t\tif (!stale()) {\n\t\t\tresolveResult(result);\n\t\t\treleaseWriter();\n\t\t\tonTaskFinished();\n\t\t}\n\t}\n\n\tfunction releaseWriter() {\n\t\tif (writer) {\n\t\t\twriter.releaseLock();\n\t\t}\n\t}\n}\n\nfunction getResponseError(errorData, errorValue) {\n\tconst { message, stack, code, name, outputSize, cause, codecImportFailed } = errorData;\n\tlet responseError;\n\tif (errorValue) {\n\t\tresponseError = errorValue.value;\n\t} else {\n\t\tresponseError = Object.assign(new Error(message), { stack, code, name });\n\t}\n\tif (isErrorObject(responseError)) {\n\t\ttry {\n\t\t\tif (outputSize !== UNDEFINED_VALUE) {\n\t\t\t\tresponseError.outputSize = outputSize;\n\t\t\t}\n\t\t\tif (codecImportFailed) {\n\t\t\t\tresponseError.codecImportFailed = true;\n\t\t\t}\n\t\t\tif (cause) {\n\t\t\t\tif (!isErrorObject(responseError.cause)) {\n\t\t\t\t\tresponseError.cause = Object.assign(new Error(cause.message), { name: cause.name });\n\t\t\t\t}\n\t\t\t\tif (cause.code !== UNDEFINED_VALUE && responseError.cause.code !== cause.code) {\n\t\t\t\t\tresponseError.cause.code = cause.code;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (errorValue) {\n\t\t\t\tif (responseError.name !== name) {\n\t\t\t\t\tresponseError.name = name;\n\t\t\t\t}\n\t\t\t\tif (responseError.code !== code) {\n\t\t\t\t\tresponseError.code = code;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {\n\t\t\t// ignored\n\t\t}\n\t}\n\treturn responseError;\n}\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global setTimeout, clearTimeout, URL */\n\nimport { UNDEFINED_VALUE } from \"./constants.js\";\nimport {\n\tCODEC_INFLATE,\n\tCODEC_DEFLATE,\n\tERR_INVALID_CRC32,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_INVALID_UNCOMPRESSED_SIZE,\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_COMPRESSED_DATA,\n\tERR_CODEC_OUT_OF_MEMORY,\n\tERR_ABORT_CHECK_PASSWORD,\n\tERR_UNSUPPORTED_CRYPTO_API\n} from \"./streams/codec-stream.js\";\nimport { ensureCodecStreams } from \"./codec-registry.js\";\nimport { CodecWorker, resetWebWorkerSupport, ERR_WORKER_STARTUP_TIMEOUT } from \"./codec-worker.js\";\n\nlet pool = [];\nconst pendingRequests = [];\nlet starvationTimeout;\nlet starvationDelay;\n\nexport {\n\trunWorker,\n\tterminateWorkers,\n\tCODEC_DEFLATE,\n\tCODEC_INFLATE,\n\tERR_INVALID_CRC32,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_INVALID_UNCOMPRESSED_SIZE,\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_COMPRESSED_DATA,\n\tERR_CODEC_OUT_OF_MEMORY,\n\tERR_ABORT_CHECK_PASSWORD,\n\tERR_UNSUPPORTED_CRYPTO_API,\n\tERR_WORKER_STARTUP_TIMEOUT\n};\n\nlet indexWorker = 0;\n\nasync function runWorker(stream, workerOptions) {\n\tconst { options, config } = workerOptions;\n\tconst { transferStreams, useWebWorkers, useCompressionStream, compressed, checkCrc32, computeCrc32, encrypted, format, codecURI } = options;\n\tconst { workerURI, createWorker, maxWorkers } = config;\n\tif (format) {\n\t\tif (codecURI) {\n\t\t\toptions.codecURI = resolveCodecURI(codecURI, config.baseURI);\n\t\t}\n\t\tawait ensureCodecStreams(format, options.codecURI);\n\t}\n\tworkerOptions.transferStreams = !format && (transferStreams || (transferStreams === UNDEFINED_VALUE && config.transferStreams));\n\tconst streamCopy = !compressed && !checkCrc32 && !computeCrc32 && !encrypted;\n\tconst workerSupported = format === UNDEFINED_VALUE || Boolean(options.codecURI);\n\tworkerOptions.useWebWorkers = !streamCopy && workerSupported && (useWebWorkers || (useWebWorkers === UNDEFINED_VALUE && config.useWebWorkers));\n\tworkerOptions.workerURI = workerOptions.useWebWorkers && workerURI ? workerURI : UNDEFINED_VALUE;\n\tworkerOptions.createWorker = workerOptions.useWebWorkers && createWorker ? createWorker : UNDEFINED_VALUE;\n\toptions.useCompressionStream = useCompressionStream || (useCompressionStream === UNDEFINED_VALUE && config.useCompressionStream);\n\treturn (await getWorker()).run();\n\n\t// deno-lint-ignore require-await\n\tasync function getWorker() {\n\t\tconst workerData = pool.find(workerData => !workerData.busy);\n\t\tif (workerData) {\n\t\t\tclearTerminateTimeout(workerData);\n\t\t\treturn new CodecWorker(workerData, stream, workerOptions, onTaskFinished);\n\t\t} else if (pool.length < maxWorkers) {\n\t\t\tconst workerData = { indexWorker };\n\t\t\tindexWorker++;\n\t\t\tpool.push(workerData);\n\t\t\treturn new CodecWorker(workerData, stream, workerOptions, onTaskFinished);\n\t\t} else {\n\t\t\treturn new Promise(resolve => {\n\t\t\t\tpendingRequests.push({ resolve, stream, workerOptions });\n\t\t\t\tstarvationDelay = config.workerStarvationTimeout;\n\t\t\t\tarmStarvationTimeout();\n\t\t\t});\n\t\t}\n\t}\n\n\tfunction onTaskFinished(workerData) {\n\t\tclearStarvationTimeout();\n\t\tif (workerData.terminated) {\n\t\t\tworkerData.terminated = false;\n\t\t\treturn runPendingRequestsInline();\n\t\t} else if (pendingRequests.length) {\n\t\t\tconst [{ resolve, stream, workerOptions }] = pendingRequests.splice(0, 1);\n\t\t\tresolve(new CodecWorker(workerData, stream, workerOptions, onTaskFinished));\n\t\t\tarmStarvationTimeout();\n\t\t} else if (workerData.worker) {\n\t\t\tclearTerminateTimeout(workerData);\n\t\t\tterminateWorker(workerData, workerOptions);\n\t\t} else {\n\t\t\tpool = pool.filter(data => data != workerData);\n\t\t}\n\t}\n}\n\nfunction resolveCodecURI(codecURI, baseURI) {\n\ttry {\n\t\treturn new URL(codecURI, baseURI).toString();\n\t} catch {\n\t\treturn codecURI;\n\t}\n}\n\nfunction armStarvationTimeout() {\n\tif (!starvationTimeout && pendingRequests.length && Number.isFinite(starvationDelay) && starvationDelay >= 0) {\n\t\tstarvationTimeout = setTimeout(onWorkerStarvation, starvationDelay);\n\t}\n}\n\nfunction clearStarvationTimeout() {\n\tif (starvationTimeout) {\n\t\tclearTimeout(starvationTimeout);\n\t\tstarvationTimeout = null;\n\t}\n}\n\nfunction onWorkerStarvation() {\n\tstarvationTimeout = null;\n\tif (pendingRequests.length) {\n\t\tconst [{ resolve, stream, workerOptions }] = pendingRequests.splice(0, 1);\n\t\tresolve(new CodecWorker({}, stream, getInlineWorkerOptions(workerOptions), onInlineTaskFinished));\n\t\tarmStarvationTimeout();\n\t}\n}\n\nfunction runPendingRequestsInline() {\n\tconst tasks = pendingRequests.splice(0).map(({ resolve, stream, workerOptions }) => new Promise(resolveTask => {\n\t\tresolve(new CodecWorker({}, stream, getInlineWorkerOptions(workerOptions), () => {\n\t\t\tonInlineTaskFinished();\n\t\t\tresolveTask();\n\t\t}));\n\t}));\n\tclearStarvationTimeout();\n\treturn Promise.all(tasks);\n}\n\nfunction getInlineWorkerOptions(workerOptions) {\n\treturn Object.assign({}, workerOptions, { useWebWorkers: false, workerURI: UNDEFINED_VALUE, createWorker: UNDEFINED_VALUE });\n}\n\nfunction onInlineTaskFinished() {\n\tclearStarvationTimeout();\n\tarmStarvationTimeout();\n}\n\nfunction terminateWorker(workerData, workerOptions) {\n\tconst { config } = workerOptions;\n\tconst { terminateWorkerTimeout } = config;\n\tif (Number.isFinite(terminateWorkerTimeout) && terminateWorkerTimeout >= 0) {\n\t\tworkerData.terminateTimeout = setTimeout(async () => {\n\t\t\tpool = pool.filter(data => data != workerData);\n\t\t\ttry {\n\t\t\t\tawait workerData.terminate();\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t}, terminateWorkerTimeout);\n\t}\n}\n\nfunction clearTerminateTimeout(workerData) {\n\tconst { terminateTimeout } = workerData;\n\tif (terminateTimeout) {\n\t\tclearTimeout(terminateTimeout);\n\t\tworkerData.terminateTimeout = null;\n\t}\n}\n\nasync function terminateWorkers() {\n\tawait Promise.allSettled([\n\t\trunPendingRequestsInline(),\n\t\t...pool.map(workerData => {\n\t\t\tclearTerminateTimeout(workerData);\n\t\t\treturn workerData.terminate();\n\t\t})\n\t]);\n\tresetWebWorkerSupport();\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nconst CP437 = \"\\0\\u263A\\u263B\\u2665\\u2666\\u2663\\u2660\\u2022\\u25D8\\u25CB\\u25D9\\u2642\\u2640\\u266A\\u266B\\u263C\\u25BA\\u25C4\\u2195\\u203C\\u00B6\\u00A7\\u25AC\\u21A8\\u2191\\u2193\\u2192\\u2190\\u221F\\u2194\\u25B2\\u25BC !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\\u2302\\u00C7\\u00FC\\u00E9\\u00E2\\u00E4\\u00E0\\u00E5\\u00E7\\u00EA\\u00EB\\u00E8\\u00EF\\u00EE\\u00EC\\u00C4\\u00C5\\u00C9\\u00E6\\u00C6\\u00F4\\u00F6\\u00F2\\u00FB\\u00F9\\u00FF\\u00D6\\u00DC\\u00A2\\u00A3\\u00A5\\u20A7\\u0192\\u00E1\\u00ED\\u00F3\\u00FA\\u00F1\\u00D1\\u00AA\\u00BA\\u00BF\\u2310\\u00AC\\u00BD\\u00BC\\u00A1\\u00AB\\u00BB\\u2591\\u2592\\u2593\\u2502\\u2524\\u2561\\u2562\\u2556\\u2555\\u2563\\u2551\\u2557\\u255D\\u255C\\u255B\\u2510\\u2514\\u2534\\u252C\\u251C\\u2500\\u253C\\u255E\\u255F\\u255A\\u2554\\u2569\\u2566\\u2560\\u2550\\u256C\\u2567\\u2568\\u2564\\u2565\\u2559\\u2558\\u2552\\u2553\\u256B\\u256A\\u2518\\u250C\\u2588\\u2584\\u258C\\u2590\\u2580\\u03B1\\u00DF\\u0393\\u03C0\\u03A3\\u03C3\\u00B5\\u03C4\\u03A6\\u0398\\u03A9\\u03B4\\u221E\\u03C6\\u03B5\\u2229\\u2261\\u00B1\\u2265\\u2264\\u2320\\u2321\\u00F7\\u2248\\u00B0\\u2219\\u00B7\\u221A\\u207F\\u00B2\\u25A0\\u00A0\".split(\"\");\n\nexport {\n\tdecodeCP437\n};\n\nfunction decodeCP437(stringValue) {\n\tlet result = \"\";\n\tfor (let indexCharacter = 0; indexCharacter < stringValue.length; indexCharacter++) {\n\t\tresult += CP437[stringValue[indexCharacter]];\n\t}\n\treturn result;\n}","/*\n Copyright (c) 2022 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TextDecoder */\n\nimport { decodeCP437 } from \"./decode-cp437.js\";\n\nexport {\n\tdecodeText,\n\tdecodeTextRemovingBOM,\n\tisUTF8Text\n};\n\nfunction decodeText(value, encoding) {\n\treturn decode(value, encoding, true);\n}\n\nfunction isUTF8Text(value) {\n\tif (value.some(byte => byte > 0x7f)) {\n\t\ttry {\n\t\t\tnew TextDecoder(\"utf-8\", { fatal: true }).decode(value);\n\t\t\treturn true;\n\t\t} catch {\n\t\t\treturn false;\n\t\t}\n\t} else {\n\t\treturn false;\n\t}\n}\n\nfunction decodeTextRemovingBOM(value, encoding) {\n\treturn decode(value, encoding, false);\n}\n\nfunction decode(value, encoding, ignoreBOM) {\n\tif (encoding && encoding.trim().toLowerCase() == \"cp437\") {\n\t\treturn decodeCP437(value);\n\t} else {\n\t\treturn new TextDecoder(encoding, { ignoreBOM }).decode(value);\n\t}\n}","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global Blob, atob, btoa, XMLHttpRequest, URL, fetch, ReadableStream, WritableStream, TransformStream */\n// deno-lint-ignore-file no-this-alias\n\nimport {\n\tUNDEFINED_VALUE,\n\tFUNCTION_TYPE,\n\tUNDEFINED_TYPE,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tMAX_16_BITS,\n\tEMPTY_UINT8_ARRAY\n} from \"./constants.js\";\nimport { getConfiguration, getChunkSize, normalizeChunkSize } from \"./configuration.js\";\nimport { concat, toExactUint8Array } from \"./util/array.js\";\nimport { toCompatibleReadable, toCompatibleWritable, streamToBlob } from \"./util/compatible-streams.js\";\nimport { decodeTextRemovingBOM } from \"./util/decode-text.js\";\n\nconst ERR_HTTP_STATUS = \"HTTP error \";\nconst MIN_SUCCESS_HTTP_STATUS = 200;\nconst MAX_SUCCESS_HTTP_STATUS = 299;\nconst ERR_HTTP_RANGE = \"HTTP Range not supported\";\nconst ERR_HTTP_RESOURCE_CHANGED = \"HTTP resource changed\";\nconst ERR_ITERATOR_COMPLETED_TOO_SOON = \"Writer iterator completed too soon\";\nconst ERR_WRITER_NOT_INITIALIZED = \"Writer not initialized\";\nconst ERR_WRITER_SIZE_NOT_WRITABLE = \"Invalid writer (size must be writable)\";\n\nconst CONTENT_TYPE_TEXT_PLAIN = \"text/plain\";\nconst HTTP_HEADER_CONTENT_LENGTH = \"Content-Length\";\nconst HTTP_HEADER_CONTENT_ENCODING = \"Content-Encoding\";\nconst HTTP_HEADER_CONTENT_RANGE = \"Content-Range\";\nconst HTTP_HEADER_ACCEPT_RANGES = \"Accept-Ranges\";\nconst HTTP_HEADER_RANGE = \"Range\";\nconst HTTP_HEADER_ETAG = \"Etag\";\nconst HTTP_HEADER_LAST_MODIFIED = \"Last-Modified\";\nconst HTTP_METHOD_HEAD = \"HEAD\";\nconst HTTP_METHOD_GET = \"GET\";\nconst HTTP_RANGE_UNIT = \"bytes\";\nconst DEFAULT_BUFFER_SIZE = 256 * 1024;\nconst DEFAULT_MAXIMUM_RANGE_SIZE = 16 * 1024 * 1024;\nconst END_OF_CENTRAL_DIR_SEARCH_LENGTH = END_OF_CENTRAL_DIR_LENGTH + MAX_16_BITS;\n\nconst PROPERTY_NAME_WRITABLE = \"writable\";\nconst DISK_BOUNDARY = Symbol();\n\nclass Stream {\n\n\tconstructor() {\n\t\tthis.size = 0;\n\t}\n\n\tinit() {\n\t\tthis.initialized = true;\n\t}\n}\n\nclass Reader extends Stream {\n\n\tget readable() {\n\t\treturn this.createReadable();\n\t}\n\n\tcreateReadable({ offset = 0, size, chunkSize = getChunkSize(getConfiguration()) } = {}) {\n\t\tconst reader = this;\n\t\tlet chunkOffset = 0;\n\t\tchunkSize = normalizeChunkSize(chunkSize);\n\t\treturn new ReadableStream({\n\t\t\tasync pull(controller) {\n\t\t\t\tconst dataSize = size === UNDEFINED_VALUE ? chunkSize : Math.min(chunkSize, size - chunkOffset);\n\t\t\t\tconst data = await readUint8Array(reader, offset + chunkOffset, dataSize);\n\t\t\t\tif (data.length) {\n\t\t\t\t\tcontroller.enqueue(data);\n\t\t\t\t\tchunkOffset += data.length;\n\t\t\t\t}\n\t\t\t\tif ((size !== UNDEFINED_VALUE && chunkOffset >= size) || (!data.length && dataSize)) {\n\t\t\t\t\tcontroller.close();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nclass Writer extends Stream {\n\n\tconstructor() {\n\t\tsuper();\n\t\tconst writer = this;\n\t\tconst writable = new WritableStream({\n\t\t\twrite(chunk) {\n\t\t\t\tif (!writer.initialized) {\n\t\t\t\t\tthrow new Error(ERR_WRITER_NOT_INITIALIZED);\n\t\t\t\t}\n\t\t\t\treturn writer.writeUint8Array(toExactUint8Array(chunk));\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(writer, PROPERTY_NAME_WRITABLE, {\n\t\t\tget() {\n\t\t\t\treturn writable;\n\t\t\t}\n\t\t});\n\t}\n\n\twriteUint8Array() {\n\t\t// abstract\n\t}\n}\n\nclass Data64URIReader extends Reader {\n\n\tconstructor(dataURI) {\n\t\tsuper();\n\t\tlet dataEnd = dataURI.length;\n\t\twhile (dataURI.charAt(dataEnd - 1) == \"=\") {\n\t\t\tdataEnd--;\n\t\t}\n\t\tconst dataStart = dataURI.indexOf(\",\") + 1;\n\t\tObject.assign(this, {\n\t\t\tdataURI,\n\t\t\tdataStart,\n\t\t\tsize: Math.floor((dataEnd - dataStart) * 0.75)\n\t\t});\n\t}\n\n\treadUint8Array(offset, length) {\n\t\tconst {\n\t\t\tdataStart,\n\t\t\tdataURI\n\t\t} = this;\n\t\tconst dataArray = new Uint8Array(length);\n\t\tconst start = Math.floor(offset / 3) * 4;\n\t\tconst bytes = atob(dataURI.substring(start + dataStart, Math.ceil((offset + length) / 3) * 4 + dataStart));\n\t\tconst delta = offset - Math.floor(start / 4) * 3;\n\t\tlet effectiveLength = 0;\n\t\tfor (let indexByte = delta; indexByte < delta + length && indexByte < bytes.length; indexByte++) {\n\t\t\tdataArray[indexByte - delta] = bytes.charCodeAt(indexByte);\n\t\t\teffectiveLength++;\n\t\t}\n\t\tif (effectiveLength < dataArray.length) {\n\t\t\treturn dataArray.subarray(0, effectiveLength);\n\t\t} else {\n\t\t\treturn dataArray;\n\t\t}\n\t}\n}\n\nclass Data64URIWriter extends Writer {\n\n\tconstructor(contentType) {\n\t\tsuper();\n\t\tObject.assign(this, {\n\t\t\tcontentType,\n\t\t\tdata: \"data:\" + (contentType || \"\") + \";base64,\",\n\t\t\tpendingCharacters: \"\"\n\t\t});\n\t}\n\n\twriteUint8Array(array) {\n\t\tconst writer = this;\n\t\tlet indexArray;\n\t\tlet dataString = writer.pendingCharacters;\n\t\tconst delta = writer.pendingCharacters.length;\n\t\twriter.pendingCharacters = \"\";\n\t\tfor (indexArray = 0; indexArray < (Math.floor((delta + array.length) / 3) * 3) - delta; indexArray++) {\n\t\t\tdataString += String.fromCharCode(array[indexArray]);\n\t\t}\n\t\tfor (; indexArray < array.length; indexArray++) {\n\t\t\twriter.pendingCharacters += String.fromCharCode(array[indexArray]);\n\t\t}\n\t\tif (dataString.length > 2) {\n\t\t\twriter.data += btoa(dataString);\n\t\t} else {\n\t\t\twriter.pendingCharacters = dataString + writer.pendingCharacters;\n\t\t}\n\t}\n\n\tgetData() {\n\t\treturn this.data + btoa(this.pendingCharacters);\n\t}\n}\n\nlet blobSliceReliable;\nlet blobSliceProbe;\n\nfunction probeBlobSliceReliability() {\n\tblobSliceProbe = (async () => {\n\t\ttry {\n\t\t\tconst slicedBlob = new Blob([new Uint8Array(3)]).slice(1, 2);\n\t\t\tconst streamReader = slicedBlob.stream().getReader();\n\t\t\tlet streamedLength = 0;\n\t\t\tlet result = await streamReader.read();\n\t\t\twhile (!result.done) {\n\t\t\t\tstreamedLength += result.value.length;\n\t\t\t\tresult = await streamReader.read();\n\t\t\t}\n\t\t\tblobSliceReliable = streamedLength == 1;\n\t\t} catch {\n\t\t\tblobSliceReliable = false;\n\t\t}\n\t})();\n}\n\nclass BlobReader extends Reader {\n\n\tconstructor(blob) {\n\t\tsuper();\n\t\tObject.assign(this, {\n\t\t\tsourceBlob: blob,\n\t\t\tsize: blob.size\n\t\t});\n\t\tif (!blobSliceProbe) {\n\t\t\tprobeBlobSliceReliability();\n\t\t}\n\t}\n\n\tcreateReadable(options) {\n\t\tconst reader = this;\n\t\tconst { sourceBlob, size } = reader;\n\t\tconst { offset = 0, size: readSize = size - offset } = options || {};\n\t\t// deno-lint-ignore valid-typeof\n\t\tif (typeof sourceBlob.stream == FUNCTION_TYPE) {\n\t\t\tif (!offset && readSize >= size) {\n\t\t\t\treturn toCompatibleReadable(sourceBlob.stream());\n\t\t\t}\n\t\t\tif (blobSliceReliable) {\n\t\t\t\treturn toCompatibleReadable(sourceBlob.slice(offset, offset + readSize).stream());\n\t\t\t}\n\t\t}\n\t\treturn super.createReadable(options);\n\t}\n\n\tasync readUint8Array(offset, length) {\n\t\tconst reader = this;\n\t\tconst offsetEnd = offset + length;\n\t\tconst readsWholeBlob = !offset && offsetEnd >= reader.size;\n\t\tconst blob = readsWholeBlob ? reader.sourceBlob : reader.sourceBlob.slice(offset, offsetEnd);\n\t\tlet arrayBuffer = await blob.arrayBuffer();\n\t\tconst sliceIgnoredByBuggyImplementation = arrayBuffer.byteLength > length;\n\t\tif (sliceIgnoredByBuggyImplementation) {\n\t\t\tarrayBuffer = arrayBuffer.slice(offset, offsetEnd);\n\t\t}\n\t\treturn new Uint8Array(arrayBuffer);\n\t}\n}\n\nclass BlobWriter extends Stream {\n\n\tconstructor(contentType) {\n\t\tsuper();\n\t\tconst writer = this;\n\t\tconst transformStream = new TransformStream();\n\t\tObject.defineProperty(writer, PROPERTY_NAME_WRITABLE, {\n\t\t\tget() {\n\t\t\t\treturn transformStream.writable;\n\t\t\t}\n\t\t});\n\t\twriter.contentType = contentType;\n\t\twriter.blobPromise = streamToBlob(transformStream.readable, contentType);\n\t\twriter.blobPromise.catch(() => { });\n\t}\n\n\tgetData() {\n\t\treturn this.blobPromise;\n\t}\n}\n\nclass TextReader extends BlobReader {\n\n\tconstructor(text) {\n\t\tsuper(new Blob([text], { type: CONTENT_TYPE_TEXT_PLAIN }));\n\t}\n}\n\nfunction getTextSize(text) {\n\tlet size = 0;\n\tfor (let indexCharacter = 0; indexCharacter < text.length; indexCharacter++) {\n\t\tconst characterCode = text.charCodeAt(indexCharacter);\n\t\tif (characterCode < 0x80) {\n\t\t\tsize += 1;\n\t\t} else if (characterCode < 0x800) {\n\t\t\tsize += 2;\n\t\t} else if (characterCode < 0xd800 || characterCode >= 0xe000) {\n\t\t\tsize += 3;\n\t\t} else if (characterCode < 0xdc00 && (text.charCodeAt(indexCharacter + 1) & 0xfc00) == 0xdc00) {\n\t\t\tsize += 4;\n\t\t\tindexCharacter++;\n\t\t} else {\n\t\t\tsize += 3;\n\t\t}\n\t}\n\treturn size;\n}\n\nclass TextWriter extends BlobWriter {\n\n\tconstructor(encoding) {\n\t\tsuper();\n\t\tObject.assign(this, {\n\t\t\tencoding,\n\t\t\tutf8: !encoding || encoding.toLowerCase() == \"utf-8\"\n\t\t});\n\t}\n\n\tasync getData() {\n\t\tconst {\n\t\t\tencoding,\n\t\t\tutf8\n\t\t} = this;\n\t\tconst blob = await super.getData();\n\t\tif (blob.text && utf8) {\n\t\t\treturn blob.text();\n\t\t} else {\n\t\t\treturn decodeTextRemovingBOM(new Uint8Array(await blob.arrayBuffer()), encoding);\n\t\t}\n\t}\n}\n\nclass FetchReader extends Reader {\n\n\tconstructor(url, options) {\n\t\tsuper();\n\t\tcreateHttpReader(this, url, options);\n\t}\n\n\tasync init() {\n\t\tawait initHttpReader(this, sendFetchRequest, getFetchRequestData);\n\t\tsuper.init();\n\t}\n\n\tcreateReadable(options) {\n\t\tconst reader = this;\n\t\tconst { useRangeHeader, forceRangeRequests, size, eocdCache } = reader;\n\t\tif ((useRangeHeader || forceRangeRequests) && size !== UNDEFINED_VALUE) {\n\t\t\tconst { offset = 0, size: readSize = size - offset } = options || {};\n\t\t\tconst cached = eocdCache && offset >= size - eocdCache.length;\n\t\t\tif (readSize > 0 && offset < size && !cached) {\n\t\t\t\treturn createRangeReadable(reader, offset, Math.min(readSize, size - offset));\n\t\t\t}\n\t\t}\n\t\treturn super.createReadable(options);\n\t}\n\n\treadUint8Array(index, length) {\n\t\treturn readUint8ArrayHttpReader(this, index, length, sendFetchRequest, getFetchRequestData);\n\t}\n}\n\nclass XHRReader extends Reader {\n\n\tconstructor(url, options) {\n\t\tsuper();\n\t\tcreateHttpReader(this, url, options);\n\t}\n\n\tasync init() {\n\t\tawait initHttpReader(this, sendXMLHttpRequest, getXMLHttpRequestData);\n\t\tsuper.init();\n\t}\n\n\treadUint8Array(index, length) {\n\t\treturn readUint8ArrayHttpReader(this, index, length, sendXMLHttpRequest, getXMLHttpRequestData);\n\t}\n}\n\nfunction createHttpReader(httpReader, url, options) {\n\tconst {\n\t\tpreventHeadRequest,\n\t\tuseRangeHeader,\n\t\tforceRangeRequests,\n\t\tcombineSizeEocd,\n\t\tcheckResourceChanges = true,\n\t\tmaximumRangeSize = DEFAULT_MAXIMUM_RANGE_SIZE,\n\t\tfetch\n\t} = options;\n\toptions = Object.assign({}, options);\n\tdelete options.preventHeadRequest;\n\tdelete options.useRangeHeader;\n\tdelete options.forceRangeRequests;\n\tdelete options.combineSizeEocd;\n\tdelete options.checkResourceChanges;\n\tdelete options.maximumRangeSize;\n\tdelete options.useXHR;\n\tdelete options.fetch;\n\tObject.assign(httpReader, {\n\t\turl,\n\t\toptions,\n\t\tpreventHeadRequest,\n\t\tuseRangeHeader,\n\t\tforceRangeRequests,\n\t\tcombineSizeEocd,\n\t\tcheckResourceChanges,\n\t\tmaximumRangeSize,\n\t\tfetch\n\t});\n}\n\nasync function initHttpReader(httpReader, sendRequest, getRequestData) {\n\tconst {\n\t\turl,\n\t\tpreventHeadRequest,\n\t\tuseRangeHeader,\n\t\tforceRangeRequests,\n\t\tcombineSizeEocd\n\t} = httpReader;\n\tif (isHttpFamily(url) && (useRangeHeader || forceRangeRequests) && (typeof preventHeadRequest == UNDEFINED_TYPE || preventHeadRequest)) {\n\t\tconst response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, combineSizeEocd ? -END_OF_CENTRAL_DIR_SEARCH_LENGTH : undefined));\n\t\tconst acceptRanges = response.headers.get(HTTP_HEADER_ACCEPT_RANGES);\n\t\tif (!forceRangeRequests && (!acceptRanges || acceptRanges.toLowerCase() != HTTP_RANGE_UNIT)) {\n\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t} else {\n\t\t\tlet eocdCache;\n\t\t\tif (combineSizeEocd && response.status == 206) {\n\t\t\t\teocdCache = new Uint8Array(await response.arrayBuffer());\n\t\t\t}\n\t\t\tsetResourceValidators(httpReader, response);\n\t\t\tconst contentSize = getContentRangeSize(response);\n\t\t\tif (contentSize === UNDEFINED_VALUE) {\n\t\t\t\tawait getContentLength(httpReader, sendRequest, getRequestData);\n\t\t\t} else {\n\t\t\t\thttpReader.size = contentSize;\n\t\t\t}\n\t\t\tif (eocdCache && eocdCache.length && getContentRangeOffset(response) === httpReader.size - eocdCache.length) {\n\t\t\t\thttpReader.eocdCache = eocdCache;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tawait getContentLength(httpReader, sendRequest, getRequestData);\n\t}\n}\n\nasync function readUint8ArrayHttpReader(httpReader, index, length, sendRequest, getRequestData) {\n\tconst {\n\t\tuseRangeHeader,\n\t\tforceRangeRequests,\n\t\teocdCache,\n\t\tsize,\n\t\toptions\n\t} = httpReader;\n\tif (useRangeHeader || forceRangeRequests) {\n\t\tif (index >= size || length === 0) {\n\t\t\treturn EMPTY_UINT8_ARRAY;\n\t\t} else {\n\t\t\tif (index + length > size) {\n\t\t\t\tlength = size - index;\n\t\t\t}\n\t\t\tif (eocdCache && index >= size - eocdCache.length) {\n\t\t\t\tconst cacheIndex = index - (size - eocdCache.length);\n\t\t\t\treturn eocdCache.slice(cacheIndex, cacheIndex + length);\n\t\t\t}\n\t\t\tconst response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, index, length));\n\t\t\tif (response.status != 206) {\n\t\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t\t}\n\t\t\tconst rangeStart = getContentRangeOffset(response);\n\t\t\tif (rangeStart !== UNDEFINED_VALUE && rangeStart != index) {\n\t\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t\t}\n\t\t\tcheckResourceValidators(httpReader, response);\n\t\t\tsetResourceValidators(httpReader, response);\n\t\t\tconst data = new Uint8Array(await response.arrayBuffer());\n\t\t\tif (data.length != length) {\n\t\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t\t}\n\t\t\treturn data;\n\t\t}\n\t} else {\n\t\tconst { data } = httpReader;\n\t\tif (!data) {\n\t\t\tawait getRequestData(httpReader, options);\n\t\t}\n\t\treturn httpReader.data.subarray(index, index + length);\n\t}\n}\n\nfunction createRangeReadable(httpReader, offset, size) {\n\tlet bodyReader;\n\tlet windowOffset = offset;\n\tlet windowRemainingLength = 0;\n\tlet remainingLength = size;\n\treturn new ReadableStream({\n\t\tstart() {\n\t\t\treturn openWindow();\n\t\t},\n\t\tasync pull(controller) {\n\t\t\tif (!bodyReader) {\n\t\t\t\tawait openWindow();\n\t\t\t}\n\t\t\tconst { value, done } = await bodyReader.read();\n\t\t\tif (done) {\n\t\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t\t}\n\t\t\tconst chunk = value.length > windowRemainingLength ? value.subarray(0, windowRemainingLength) : value;\n\t\t\twindowRemainingLength -= chunk.length;\n\t\t\tremainingLength -= chunk.length;\n\t\t\tif (chunk.length) {\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t}\n\t\t\tif (!windowRemainingLength) {\n\t\t\t\tawait closeWindow();\n\t\t\t\tif (!remainingLength) {\n\t\t\t\t\tcontroller.close();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcancel(reason) {\n\t\t\treturn bodyReader && bodyReader.cancel(reason);\n\t\t}\n\t});\n\n\tasync function openWindow() {\n\t\tconst windowLength = Math.min(httpReader.maximumRangeSize, remainingLength);\n\t\tconst response = await sendFetchRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, windowOffset, windowLength));\n\t\tif (response.status != 206) {\n\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t}\n\t\tconst rangeStart = getContentRangeOffset(response);\n\t\tif (rangeStart !== UNDEFINED_VALUE && rangeStart != windowOffset) {\n\t\t\tthrow new Error(ERR_HTTP_RANGE);\n\t\t}\n\t\tcheckResourceValidators(httpReader, response);\n\t\tsetResourceValidators(httpReader, response);\n\t\twindowOffset += windowLength;\n\t\twindowRemainingLength = windowLength;\n\t\tbodyReader = response.body.getReader();\n\t}\n\n\tasync function closeWindow() {\n\t\tconst currentBodyReader = bodyReader;\n\t\tbodyReader = UNDEFINED_VALUE;\n\t\tawait currentBodyReader.cancel();\n\t}\n}\n\nfunction getContentRangeOffset(response) {\n\tconst contentRangeHeader = response.headers.get(HTTP_HEADER_CONTENT_RANGE);\n\tif (contentRangeHeader) {\n\t\tconst rangeStart = Number(contentRangeHeader.trim().split(/[\\s-]+/)[1]);\n\t\tif (!Number.isNaN(rangeStart)) {\n\t\t\treturn rangeStart;\n\t\t}\n\t}\n}\n\nfunction getContentRangeSize(response) {\n\tconst contentRangeHeader = response.headers.get(HTTP_HEADER_CONTENT_RANGE);\n\tif (contentRangeHeader) {\n\t\tconst headerValue = contentRangeHeader.trim().split(/\\s*\\/\\s*/)[1];\n\t\tif (headerValue && headerValue != \"*\") {\n\t\t\tconst contentSize = Number(headerValue);\n\t\t\tif (!Number.isNaN(contentSize)) {\n\t\t\t\treturn contentSize;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getResourceValidators({ headers }) {\n\treturn {\n\t\tetag: headers.get(HTTP_HEADER_ETAG) || UNDEFINED_VALUE,\n\t\tlastModified: headers.get(HTTP_HEADER_LAST_MODIFIED) || UNDEFINED_VALUE\n\t};\n}\n\nfunction setResourceValidators(httpReader, response) {\n\tconst { checkResourceChanges, resourceValidators } = httpReader;\n\tif (checkResourceChanges && !resourceValidators && response.status == 206) {\n\t\thttpReader.resourceValidators = getResourceValidators(response);\n\t}\n}\n\nfunction checkResourceValidators(httpReader, response) {\n\tconst { checkResourceChanges, resourceValidators, size } = httpReader;\n\tif (checkResourceChanges) {\n\t\tconst contentRangeSize = getContentRangeSize(response);\n\t\tif (contentRangeSize !== UNDEFINED_VALUE && size !== UNDEFINED_VALUE && contentRangeSize != size) {\n\t\t\tthrow new Error(ERR_HTTP_RESOURCE_CHANGED);\n\t\t}\n\t\tif (resourceValidators) {\n\t\t\tconst validators = getResourceValidators(response);\n\t\t\tconst changed = Object.entries(resourceValidators).some(([name, value]) =>\n\t\t\t\tvalue !== UNDEFINED_VALUE && validators[name] !== UNDEFINED_VALUE && value != validators[name]);\n\t\t\tif (changed) {\n\t\t\t\tthrow new Error(ERR_HTTP_RESOURCE_CHANGED);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getRangeHeaders(httpReader, index = 0, length = 1) {\n\treturn Object.assign({}, getHeaders(httpReader), { [HTTP_HEADER_RANGE]: HTTP_RANGE_UNIT + \"=\" + (index < 0 ? index : index + \"-\" + (index + length - 1)) });\n}\n\nfunction getHeaders({ options }) {\n\tconst { headers } = options;\n\tif (headers) {\n\t\tif (Symbol.iterator in headers) {\n\t\t\treturn Object.fromEntries(headers);\n\t\t} else {\n\t\t\treturn headers;\n\t\t}\n\t}\n}\n\nasync function getFetchRequestData(httpReader) {\n\tawait getRequestData(httpReader, sendFetchRequest);\n}\n\nasync function getXMLHttpRequestData(httpReader) {\n\tawait getRequestData(httpReader, sendXMLHttpRequest);\n}\n\nasync function getRequestData(httpReader, sendRequest) {\n\tconst response = await sendRequest(HTTP_METHOD_GET, httpReader, getHeaders(httpReader));\n\thttpReader.data = new Uint8Array(await response.arrayBuffer());\n\thttpReader.size = httpReader.data.length;\n}\n\nasync function getContentLength(httpReader, sendRequest, getRequestData) {\n\tif (httpReader.preventHeadRequest) {\n\t\tawait getRequestData(httpReader, httpReader.options);\n\t} else {\n\t\tconst response = await sendRequest(HTTP_METHOD_HEAD, httpReader, getHeaders(httpReader));\n\t\tconst contentLength = response.headers.get(HTTP_HEADER_CONTENT_LENGTH);\n\t\tif (contentLength && !response.headers.get(HTTP_HEADER_CONTENT_ENCODING)) {\n\t\t\thttpReader.size = Number(contentLength);\n\t\t} else {\n\t\t\tawait getRequestData(httpReader, httpReader.options);\n\t\t}\n\t}\n}\n\nasync function sendFetchRequest(method, { fetch: fetchFunction = fetch, options, url }, headers) {\n\tconst response = await fetchFunction(url, Object.assign({}, options, { method, headers }));\n\tif (response.status >= MIN_SUCCESS_HTTP_STATUS && response.status <= MAX_SUCCESS_HTTP_STATUS) {\n\t\treturn response;\n\t} else {\n\t\tthrow response.status == 416 ? new Error(ERR_HTTP_RANGE) : new Error(ERR_HTTP_STATUS + (response.statusText || response.status));\n\t}\n}\n\nfunction sendXMLHttpRequest(method, { url }, headers) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst request = new XMLHttpRequest();\n\t\trequest.addEventListener(\"load\", () => {\n\t\t\tif (request.status >= MIN_SUCCESS_HTTP_STATUS && request.status <= MAX_SUCCESS_HTTP_STATUS) {\n\t\t\t\tconst headers = [];\n\t\t\t\trequest.getAllResponseHeaders().trim().split(/[\\r\\n]+/).forEach(header => {\n\t\t\t\t\tconst splitHeader = header.trim().split(/\\s*:\\s*/);\n\t\t\t\t\tsplitHeader[0] = splitHeader[0].trim().replace(/^[a-z]|-[a-z]/g, value => value.toUpperCase());\n\t\t\t\t\theaders.push(splitHeader);\n\t\t\t\t});\n\t\t\t\tresolve({\n\t\t\t\t\tstatus: request.status,\n\t\t\t\t\tarrayBuffer: () => request.response,\n\t\t\t\t\theaders: new Map(headers)\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treject(request.status == 416 ? new Error(ERR_HTTP_RANGE) : new Error(ERR_HTTP_STATUS + (request.statusText || request.status)));\n\t\t\t}\n\t\t}, false);\n\t\trequest.addEventListener(\"error\", event => reject(event.detail ? event.detail.error : new Error(\"Network error\")), false);\n\t\trequest.open(method, url);\n\t\tif (headers) {\n\t\t\tfor (const entry of Object.entries(headers)) {\n\t\t\t\trequest.setRequestHeader(entry[0], entry[1]);\n\t\t\t}\n\t\t}\n\t\trequest.responseType = \"arraybuffer\";\n\t\trequest.send();\n\t});\n}\n\nclass HttpReader extends Reader {\n\n\tconstructor(url, options = {}) {\n\t\tsuper();\n\t\tObject.assign(this, {\n\t\t\turl,\n\t\t\treader: options.useXHR && !options.fetch ? new XHRReader(url, options) : new FetchReader(url, options)\n\t\t});\n\t}\n\n\tset size(value) {\n\t\t// ignored\n\t}\n\n\tget size() {\n\t\treturn this.reader.size;\n\t}\n\n\tasync init() {\n\t\tawait this.reader.init();\n\t\tsuper.init();\n\t}\n\n\tcreateReadable(options) {\n\t\treturn this.reader.createReadable(options);\n\t}\n\n\treadUint8Array(index, length) {\n\t\treturn this.reader.readUint8Array(index, length);\n\t}\n}\n\nclass HttpRangeReader extends HttpReader {\n\n\tconstructor(url, options = {}) {\n\t\tsuper(url, Object.assign({}, options, { useRangeHeader: true }));\n\t}\n}\n\n\nclass Uint8ArrayReader extends Reader {\n\n\tconstructor(array) {\n\t\tsuper();\n\t\tarray = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);\n\t\tObject.assign(this, {\n\t\t\tarray,\n\t\t\tsize: array.length\n\t\t});\n\t}\n\n\treadUint8Array(index, length) {\n\t\treturn this.array.slice(index, index + length);\n\t}\n}\n\nclass Uint8ArrayWriter extends Writer {\n\n\tconstructor(defaultBufferSize) {\n\t\tsuper();\n\t\tthis.defaultBufferSize = defaultBufferSize || DEFAULT_BUFFER_SIZE;\n\t}\n\n\tinit(initSize = 0) {\n\t\tObject.assign(this, {\n\t\t\toffset: 0,\n\t\t\tarray: new Uint8Array(initSize > 0 ? initSize : this.defaultBufferSize)\n\t\t});\n\t\tsuper.init();\n\t}\n\n\twriteUint8Array(array) {\n\t\tconst writer = this;\n\t\tconst requiredLength = writer.offset + array.length;\n\t\tif (requiredLength > writer.array.length) {\n\t\t\tlet newLength = writer.array.length ? writer.array.length * 2 : writer.defaultBufferSize;\n\t\t\twhile (newLength < requiredLength) {\n\t\t\t\tnewLength *= 2;\n\t\t\t}\n\t\t\tconst previousArray = writer.array;\n\t\t\twriter.array = new Uint8Array(newLength);\n\t\t\twriter.array.set(previousArray);\n\t\t}\n\t\twriter.array.set(array, writer.offset);\n\t\twriter.offset += array.length;\n\t}\n\n\tgetData() {\n\t\tif (this.offset === this.array.length) {\n\t\t\treturn this.array;\n\t\t} else {\n\t\t\treturn this.array.slice(0, this.offset);\n\t\t}\n\t}\n}\n\nclass SplitDataReader extends Reader {\n\n\tconstructor(readers) {\n\t\tsuper();\n\t\tthis.readers = readers;\n\t}\n\n\tasync init() {\n\t\tconst reader = this;\n\t\treader.lastDiskNumber = 0;\n\t\tconst readers = reader.readers = await Promise.all(reader.readers.map(initDiskReader));\n\t\treader.diskOffsets = readers.map(diskReader => {\n\t\t\tconst diskOffset = reader.size;\n\t\t\treader.size += diskReader.size;\n\t\t\treturn diskOffset;\n\t\t});\n\t\tsuper.init();\n\t}\n\n\tgetDiskOffset(diskNumber) {\n\t\tconst { diskOffsets, size } = this;\n\t\tconst diskOffset = diskOffsets[diskNumber];\n\t\treturn diskOffset === UNDEFINED_VALUE ? size : diskOffset;\n\t}\n\n\tasync readUint8Array(offset, length) {\n\t\tconst reader = this;\n\t\tconst { readers } = this;\n\t\tlet result;\n\t\tlet currentDiskNumber = 0;\n\t\tlet currentReaderOffset = offset;\n\t\twhile (readers[currentDiskNumber] && currentReaderOffset >= readers[currentDiskNumber].size) {\n\t\t\tcurrentReaderOffset -= readers[currentDiskNumber].size;\n\t\t\tcurrentDiskNumber++;\n\t\t}\n\t\tconst currentReader = readers[currentDiskNumber];\n\t\tif (currentReader) {\n\t\t\tconst currentReaderSize = currentReader.size;\n\t\t\tif (currentReaderOffset + length <= currentReaderSize) {\n\t\t\t\tresult = await readUint8Array(currentReader, currentReaderOffset, length);\n\t\t\t} else {\n\t\t\t\tconst chunkLength = currentReaderSize - currentReaderOffset;\n\t\t\t\tconst firstPart = await readUint8Array(currentReader, currentReaderOffset, chunkLength);\n\t\t\t\tconst secondPart = await reader.readUint8Array(offset + chunkLength, length - chunkLength);\n\t\t\t\tresult = concat(firstPart, secondPart);\n\t\t\t}\n\t\t} else {\n\t\t\tresult = EMPTY_UINT8_ARRAY;\n\t\t}\n\t\treader.lastDiskNumber = Math.max(currentDiskNumber, reader.lastDiskNumber);\n\t\treturn result;\n\t}\n}\n\nclass SplitDataWriter extends Stream {\n\n\tconstructor(writerGenerator, maxSize = 4294967295) {\n\t\tsuper();\n\t\tconst writer = this;\n\t\tObject.assign(writer, {\n\t\t\tdiskNumber: 0,\n\t\t\tdiskOffset: 0,\n\t\t\tsize: 0,\n\t\t\tmaxSize,\n\t\t\tavailableSize: maxSize\n\t\t});\n\t\tlet diskSourceWriter, diskWritable, diskWriter;\n\t\tconst writable = new WritableStream({\n\t\t\tasync write(chunk) {\n\t\t\t\tif (chunk === DISK_BOUNDARY) {\n\t\t\t\t\tif (diskWriter) {\n\t\t\t\t\t\tawait endDisk();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst { availableSize } = writer;\n\t\t\t\tif (!diskWriter) {\n\t\t\t\t\tconst { value, done } = await writerGenerator.next();\n\t\t\t\t\tif (done && !value) {\n\t\t\t\t\t\tthrow new Error(ERR_ITERATOR_COMPLETED_TOO_SOON);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdiskSourceWriter = value;\n\t\t\t\t\t\tdiskSourceWriter.size = 0;\n\t\t\t\t\t\tif (diskSourceWriter.maxSize) {\n\t\t\t\t\t\t\twriter.maxSize = diskSourceWriter.maxSize;\n\t\t\t\t\t\t}\n\t\t\t\t\t\twriter.availableSize = writer.maxSize;\n\t\t\t\t\t\tawait initStream(diskSourceWriter);\n\t\t\t\t\t\tdiskWritable = value.writable;\n\t\t\t\t\t\tdiskWriter = diskWritable.getWriter();\n\t\t\t\t\t}\n\t\t\t\t\tawait this.write(chunk);\n\t\t\t\t} else if (chunk.length >= availableSize) {\n\t\t\t\t\tawait writeChunk(chunk.subarray(0, availableSize));\n\t\t\t\t\tawait endDisk();\n\t\t\t\t\tif (chunk.length > availableSize) {\n\t\t\t\t\t\tawait this.write(chunk.subarray(availableSize));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tawait writeChunk(chunk);\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync close() {\n\t\t\t\tif (diskWriter) {\n\t\t\t\t\tawait diskWriter.ready;\n\t\t\t\t\tawait closeDiskWriter();\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync abort(reason) {\n\t\t\t\tif (diskWriter) {\n\t\t\t\t\tawait diskWriter.abort(reason);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(writer, PROPERTY_NAME_WRITABLE, {\n\t\t\tget() {\n\t\t\t\treturn writable;\n\t\t\t}\n\t\t});\n\n\t\tasync function writeChunk(chunk) {\n\t\t\tconst chunkLength = chunk.length;\n\t\t\tif (chunkLength) {\n\t\t\t\tawait diskWriter.ready;\n\t\t\t\tawait diskWriter.write(chunk);\n\t\t\t\tdiskSourceWriter.size += chunkLength;\n\t\t\t\twriter.availableSize -= chunkLength;\n\t\t\t}\n\t\t}\n\n\t\tasync function endDisk() {\n\t\t\tawait closeDiskWriter();\n\t\t\twriter.diskOffset += diskSourceWriter.size;\n\t\t\twriter.diskNumber++;\n\t\t\tdiskWriter = null;\n\t\t\twriter.availableSize = writer.maxSize;\n\t\t}\n\n\t\tasync function closeDiskWriter() {\n\t\t\tawait diskWriter.close();\n\t\t}\n\t}\n\n\tasync closeDisk() {\n\t\tconst streamWriter = this.writable.getWriter();\n\t\ttry {\n\t\t\tawait streamWriter.ready;\n\t\t\tawait streamWriter.write(DISK_BOUNDARY);\n\t\t} finally {\n\t\t\tstreamWriter.releaseLock();\n\t\t}\n\t}\n}\n\nclass GenericReader {\n\n\tconstructor(reader) {\n\t\tif (Array.isArray(reader)) {\n\t\t\treader = new SplitDataReader(reader);\n\t\t}\n\t\tif (reader instanceof ReadableStream || typeof reader.getReader == FUNCTION_TYPE) {\n\t\t\treader = {\n\t\t\t\treadable: toCompatibleReadable(reader)\n\t\t\t};\n\t\t}\n\t\treturn reader;\n\t}\n}\n\nclass GenericWriter {\n\n\tconstructor(writer) {\n\t\tif (writer.writable === UNDEFINED_VALUE && typeof writer.next == FUNCTION_TYPE) {\n\t\t\twriter = new SplitDataWriter(writer);\n\t\t}\n\t\tif (writer instanceof WritableStream || typeof writer.getWriter == FUNCTION_TYPE) {\n\t\t\twriter = {\n\t\t\t\twritable: toCompatibleWritable(writer)\n\t\t\t};\n\t\t}\n\t\ttry {\n\t\t\twriter.size = writer.size === UNDEFINED_VALUE ? 0 : writer.size;\n\t\t} catch {\n\t\t\tthrow new Error(ERR_WRITER_SIZE_NOT_WRITABLE);\n\t\t}\n\t\treturn writer;\n\t}\n}\n\nfunction ownsWritable(writer) {\n\treturn Boolean(writer && writer.getData);\n}\n\nfunction isHttpFamily(url) {\n\tconst { baseURI } = getConfiguration();\n\tconst { protocol } = new URL(url, baseURI);\n\treturn protocol == \"http:\" || protocol == \"https:\";\n}\n\nasync function initStream(stream, initSize) {\n\tif (stream.init && !stream.initialized) {\n\t\tawait stream.init(initSize);\n\t} else {\n\t\treturn Promise.resolve();\n\t}\n}\n\nasync function initDiskReader(diskReader) {\n\tdiskReader = new GenericReader(diskReader);\n\tawait initStream(diskReader);\n\tif (diskReader.size === UNDEFINED_VALUE || !diskReader.readUint8Array) {\n\t\tdiskReader = new BlobReader(await streamToBlob(diskReader.readable));\n\t\tawait initStream(diskReader);\n\t}\n\treturn diskReader;\n}\n\nfunction readUint8Array(reader, offset, size) {\n\treturn reader.readUint8Array(offset, size);\n}\n\nfunction createReadable(reader, options) {\n\tif (reader.createReadable) {\n\t\treturn reader.createReadable(options);\n\t} else if (reader.readUint8Array) {\n\t\treturn Reader.prototype.createReadable.call(reader, options);\n\t} else {\n\t\treturn reader.readable;\n\t}\n}\n\nexport {\n\tinitStream,\n\tcreateReadable,\n\tGenericReader,\n\tGenericWriter,\n\townsWritable,\n\treadUint8Array,\n\tReader,\n\tWriter,\n\tTextReader,\n\tTextWriter,\n\tgetTextSize,\n\tData64URIReader,\n\tData64URIWriter,\n\tBlobReader,\n\tBlobWriter,\n\tUint8ArrayReader,\n\tUint8ArrayWriter,\n\tHttpReader,\n\tHttpRangeReader,\n\tSplitDataReader,\n\tSplitDataWriter,\n\tERR_HTTP_RANGE,\n\tERR_HTTP_STATUS,\n\tERR_HTTP_RESOURCE_CHANGED,\n\tERR_ITERATOR_COMPLETED_TOO_SOON,\n\tERR_WRITER_NOT_INITIALIZED,\n\tERR_WRITER_SIZE_NOT_WRITABLE\n};","/*\n Copyright (c) 2026 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n\nimport { UNDEFINED_VALUE } from \"../constants.js\";\n\nexport { addWarning };\n\nfunction addWarning(warnings, reason, filename) {\n\tif (!warnings.some(warning => warning.reason == reason)) {\n\t\tconst warning = { reason };\n\t\tif (filename !== UNDEFINED_VALUE) {\n\t\t\twarning.filename = filename;\n\t\t}\n\t\twarnings.push(warning);\n\t}\n}\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport {\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEXTRAFIELD_TYPE_UNICODE_PATH,\n\tEXTRAFIELD_TYPE_UNICODE_COMMENT,\n\tEXTRAFIELD_TYPE_USDZ,\n\tEXTRAFIELD_TYPE_INFOZIP,\n\tEXTRAFIELD_TYPE_UNIX,\n\tEXTRAFIELD_TYPE_UNIX_TYPE1,\n\tEXTRAFIELD_TYPE_PKWARE_UNIX\n} from \"./constants.js\";\n\nconst PROPERTY_NAME_FILENAME = \"filename\";\nconst PROPERTY_NAME_RAW_FILENAME = \"rawFilename\";\nconst PROPERTY_NAME_COMMENT = \"comment\";\nconst PROPERTY_NAME_RAW_COMMENT = \"rawComment\";\nconst PROPERTY_NAME_UNCOMPRESSED_SIZE = \"uncompressedSize\";\nconst PROPERTY_NAME_COMPRESSED_SIZE = \"compressedSize\";\nconst PROPERTY_NAME_OFFSET = \"offset\";\nconst PROPERTY_NAME_DISK_NUMBER_START = \"diskNumberStart\";\nconst PROPERTY_NAME_LAST_MODIFICATION_DATE = \"lastModDate\";\nconst PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE = \"rawLastModDate\";\nconst PROPERTY_NAME_LAST_ACCESS_DATE = \"lastAccessDate\";\nconst PROPERTY_NAME_RAW_LAST_ACCESS_DATE = \"rawLastAccessDate\";\nconst PROPERTY_NAME_CREATION_DATE = \"creationDate\";\nconst PROPERTY_NAME_RAW_CREATION_DATE = \"rawCreationDate\";\nconst PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES = \"internalFileAttributes\";\nconst PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES = \"externalFileAttributes\";\nconst PROPERTY_NAME_MSDOS_ATTRIBUTES_RAW = \"msdosAttributesRaw\";\nconst PROPERTY_NAME_MSDOS_ATTRIBUTES = \"msdosAttributes\";\nconst PROPERTY_NAME_MS_DOS_COMPATIBLE = \"msDosCompatible\";\nconst PROPERTY_NAME_ZIP64 = \"zip64\";\nconst PROPERTY_NAME_ENCRYPTED = \"encrypted\";\nconst PROPERTY_NAME_VERSION = \"version\";\nconst PROPERTY_NAME_VERSION_MADE_BY = \"versionMadeBy\";\nconst PROPERTY_NAME_ZIPCRYPTO = \"zipCrypto\";\nconst PROPERTY_NAME_DIRECTORY = \"directory\";\nconst PROPERTY_NAME_EXECUTABLE = \"executable\";\nconst PROPERTY_NAME_SYMLINK = \"symlink\";\nconst PROPERTY_NAME_COMPRESSION_METHOD = \"compressionMethod\";\nconst PROPERTY_NAME_SIGNATURE = \"signature\";\nconst PROPERTY_NAME_CRC32 = \"crc32\";\nconst PROPERTY_NAME_EXTRA_FIELD = \"extraField\";\nconst PROPERTY_NAME_EXTRA_FIELD_INFOZIP = \"extraFieldInfoZip\";\nconst PROPERTY_NAME_EXTRA_FIELD_UNIX = \"extraFieldUnix\";\nconst PROPERTY_NAME_EXTRA_FIELD_UNIX_TYPE1 = \"extraFieldUnixType1\";\nconst PROPERTY_NAME_EXTRA_FIELD_PKWARE_UNIX = \"extraFieldPkwareUnix\";\nconst PROPERTY_NAME_UID = \"uid\";\nconst PROPERTY_NAME_GID = \"gid\";\nconst PROPERTY_NAME_UNIX_MODE = \"unixMode\";\nconst PROPERTY_NAME_SETUID = \"setuid\";\nconst PROPERTY_NAME_SETGID = \"setgid\";\nconst PROPERTY_NAME_STICKY = \"sticky\";\nconst PROPERTY_NAME_BITFLAG = \"bitFlag\";\nconst PROPERTY_NAME_RAW_BITFLAG = \"rawBitFlag\";\nconst PROPERTY_NAME_FILENAME_LENGTH = \"filenameLength\";\nconst PROPERTY_NAME_EXTRA_FIELD_LENGTH = \"extraFieldLength\";\nconst PROPERTY_NAME_UNIX_EXTERNAL_UPPER = \"unixExternalUpper\";\nconst PROPERTY_NAME_FILENAME_UTF8 = \"filenameUTF8\";\nconst PROPERTY_NAME_COMMENT_UTF8 = \"commentUTF8\";\nconst PROPERTY_NAME_RAW_EXTRA_FIELD = \"rawExtraField\";\nconst PROPERTY_NAME_EXTRA_FIELD_ZIP64 = \"extraFieldZip64\";\nconst PROPERTY_NAME_EXTRA_FIELD_UNICODE_PATH = \"extraFieldUnicodePath\";\nconst PROPERTY_NAME_EXTRA_FIELD_UNICODE_COMMENT = \"extraFieldUnicodeComment\";\nconst PROPERTY_NAME_EXTRA_FIELD_AES = \"extraFieldAES\";\nconst PROPERTY_NAME_EXTRA_FIELD_NTFS = \"extraFieldNTFS\";\nconst PROPERTY_NAME_EXTRA_FIELD_EXTENDED_TIMESTAMP = \"extraFieldExtendedTimestamp\";\nconst PROPERTY_NAME_EXTRA_FIELD_USDZ = \"extraFieldUSDZ\";\n\nconst PROPERTY_NAMES = [\n\tPROPERTY_NAME_FILENAME,\n\tPROPERTY_NAME_RAW_FILENAME,\n\tPROPERTY_NAME_UNCOMPRESSED_SIZE,\n\tPROPERTY_NAME_COMPRESSED_SIZE,\n\tPROPERTY_NAME_LAST_MODIFICATION_DATE,\n\tPROPERTY_NAME_RAW_LAST_MODIFICATION_DATE,\n\tPROPERTY_NAME_COMMENT,\n\tPROPERTY_NAME_RAW_COMMENT,\n\tPROPERTY_NAME_LAST_ACCESS_DATE,\n\tPROPERTY_NAME_RAW_LAST_ACCESS_DATE,\n\tPROPERTY_NAME_CREATION_DATE,\n\tPROPERTY_NAME_RAW_CREATION_DATE,\n\tPROPERTY_NAME_OFFSET,\n\tPROPERTY_NAME_DISK_NUMBER_START,\n\tPROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES,\n\tPROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES,\n\tPROPERTY_NAME_MSDOS_ATTRIBUTES_RAW,\n\tPROPERTY_NAME_MSDOS_ATTRIBUTES,\n\tPROPERTY_NAME_MS_DOS_COMPATIBLE,\n\tPROPERTY_NAME_ZIP64,\n\tPROPERTY_NAME_ENCRYPTED,\n\tPROPERTY_NAME_VERSION,\n\tPROPERTY_NAME_VERSION_MADE_BY,\n\tPROPERTY_NAME_ZIPCRYPTO,\n\tPROPERTY_NAME_DIRECTORY,\n\tPROPERTY_NAME_EXECUTABLE,\n\tPROPERTY_NAME_SYMLINK,\n\tPROPERTY_NAME_COMPRESSION_METHOD,\n\tPROPERTY_NAME_SIGNATURE,\n\tPROPERTY_NAME_CRC32,\n\tPROPERTY_NAME_EXTRA_FIELD,\n\tPROPERTY_NAME_EXTRA_FIELD_UNIX,\n\tPROPERTY_NAME_EXTRA_FIELD_INFOZIP,\n\tPROPERTY_NAME_EXTRA_FIELD_UNIX_TYPE1,\n\tPROPERTY_NAME_EXTRA_FIELD_PKWARE_UNIX,\n\tPROPERTY_NAME_UID,\n\tPROPERTY_NAME_GID,\n\tPROPERTY_NAME_UNIX_MODE,\n\tPROPERTY_NAME_UNIX_EXTERNAL_UPPER,\n\tPROPERTY_NAME_SETUID,\n\tPROPERTY_NAME_SETGID,\n\tPROPERTY_NAME_STICKY,\n\tPROPERTY_NAME_BITFLAG,\n\tPROPERTY_NAME_RAW_BITFLAG,\n\tPROPERTY_NAME_FILENAME_LENGTH,\n\tPROPERTY_NAME_EXTRA_FIELD_LENGTH,\n\tPROPERTY_NAME_FILENAME_UTF8,\n\tPROPERTY_NAME_COMMENT_UTF8,\n\tPROPERTY_NAME_RAW_EXTRA_FIELD,\n\tPROPERTY_NAME_EXTRA_FIELD_ZIP64,\n\tPROPERTY_NAME_EXTRA_FIELD_UNICODE_PATH,\n\tPROPERTY_NAME_EXTRA_FIELD_UNICODE_COMMENT,\n\tPROPERTY_NAME_EXTRA_FIELD_AES,\n\tPROPERTY_NAME_EXTRA_FIELD_NTFS,\n\tPROPERTY_NAME_EXTRA_FIELD_EXTENDED_TIMESTAMP,\n\tPROPERTY_NAME_EXTRA_FIELD_USDZ\n];\n\nclass Entry {\n\n\tconstructor(data) {\n\t\tPROPERTY_NAMES.forEach(name => this[name] = data[name]);\n\t}\n\n}\n\nconst INTERPRETED_EXTRA_FIELD_TYPES = new Set([\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEXTRAFIELD_TYPE_UNICODE_PATH,\n\tEXTRAFIELD_TYPE_UNICODE_COMMENT,\n\tEXTRAFIELD_TYPE_USDZ,\n\tEXTRAFIELD_TYPE_INFOZIP,\n\tEXTRAFIELD_TYPE_UNIX,\n\tEXTRAFIELD_TYPE_UNIX_TYPE1,\n\tEXTRAFIELD_TYPE_PKWARE_UNIX\n]);\n\nfunction getUserExtraField(extraField) {\n\tif (extraField) {\n\t\tconst userExtraField = new Map();\n\t\textraField.forEach((field, type) => {\n\t\t\tif (!INTERPRETED_EXTRA_FIELD_TYPES.has(type)) {\n\t\t\t\tuserExtraField.set(type, field.data);\n\t\t\t}\n\t\t});\n\t\tif (userExtraField.size) {\n\t\t\treturn userExtraField;\n\t\t}\n\t}\n}\n\nfunction getEncryptionOverhead(encrypted, zipCrypto, encryptionStrength) {\n\treturn encrypted ? (zipCrypto ? 12 : 16 + encryptionStrength * 4) : 0;\n}\n\nexport {\n\tPROPERTY_NAME_FILENAME,\n\tPROPERTY_NAME_RAW_FILENAME,\n\tPROPERTY_NAME_COMMENT,\n\tPROPERTY_NAME_RAW_COMMENT,\n\tPROPERTY_NAME_UNCOMPRESSED_SIZE,\n\tPROPERTY_NAME_COMPRESSED_SIZE,\n\tPROPERTY_NAME_OFFSET,\n\tPROPERTY_NAME_DISK_NUMBER_START,\n\tPROPERTY_NAME_LAST_MODIFICATION_DATE,\n\tPROPERTY_NAME_RAW_LAST_MODIFICATION_DATE,\n\tPROPERTY_NAME_LAST_ACCESS_DATE,\n\tPROPERTY_NAME_RAW_LAST_ACCESS_DATE,\n\tPROPERTY_NAME_CREATION_DATE,\n\tPROPERTY_NAME_RAW_CREATION_DATE,\n\tPROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES,\n\tPROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES,\n\tPROPERTY_NAME_MSDOS_ATTRIBUTES_RAW,\n\tPROPERTY_NAME_MSDOS_ATTRIBUTES,\n\tPROPERTY_NAME_MS_DOS_COMPATIBLE,\n\tPROPERTY_NAME_ZIP64,\n\tPROPERTY_NAME_ENCRYPTED,\n\tPROPERTY_NAME_VERSION,\n\tPROPERTY_NAME_VERSION_MADE_BY,\n\tPROPERTY_NAME_ZIPCRYPTO,\n\tPROPERTY_NAME_DIRECTORY,\n\tPROPERTY_NAME_EXECUTABLE,\n\tPROPERTY_NAME_COMPRESSION_METHOD,\n\tPROPERTY_NAME_SIGNATURE,\n\tPROPERTY_NAME_CRC32,\n\tPROPERTY_NAME_EXTRA_FIELD,\n\tPROPERTY_NAME_GID,\n\tPROPERTY_NAME_UID,\n\tPROPERTY_NAME_UNIX_MODE,\n\tPROPERTY_NAME_SETUID,\n\tPROPERTY_NAME_SETGID,\n\tPROPERTY_NAME_STICKY,\n\tEntry,\n\tgetEncryptionOverhead,\n\tgetUserExtraField\n};","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global WritableStream, ReadableStream, TransformStream */\n// deno-lint-ignore-file no-this-alias\n\nimport {\n\tMAX_32_BITS,\n\tMAX_16_BITS,\n\tMAX_8_BITS,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_AES,\n\tSPLIT_ZIP_FILE_SIGNATURE,\n\tTEMPORARY_SPLIT_ZIP_FILE_SIGNATURE,\n\tSPLIT_ZIP_FILE_SIGNATURE_LENGTH,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE,\n\tDATA_DESCRIPTOR_RECORD_LENGTH,\n\tDATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH,\n\tLOCAL_FILE_HEADER_SIGNATURE,\n\tARCHIVE_EXTRA_DATA_SIGNATURE,\n\tDIGITAL_SIGNATURE_RECORD_SIGNATURE,\n\tCENTRAL_FILE_HEADER_SIGNATURE,\n\tCENTRAL_FILE_HEADER_LENGTH,\n\tEND_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_SIGNATURE,\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_UNICODE_PATH,\n\tEXTRAFIELD_TYPE_UNICODE_COMMENT,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_NTFS_TAG1,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEXTRAFIELD_TYPE_INFOZIP,\n\tEXTRAFIELD_TYPE_UNIX,\n\tEXTRAFIELD_TYPE_UNIX_TYPE1,\n\tEXTRAFIELD_TYPE_PKWARE_UNIX,\n\tEXTRAFIELD_TYPE_USDZ,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_LENGTH,\n\tBITFLAG_ENCRYPTED,\n\tBITFLAG_STRONG_ENCRYPTION,\n\tBITFLAG_COMPRESSED_PATCHED_DATA,\n\tBITFLAG_MASKED_LOCAL_HEADERS,\n\tBITFLAG_LEVEL,\n\tBITFLAG_DATA_DESCRIPTOR,\n\tBITFLAG_LANG_ENCODING_FLAG,\n\tFILE_ATTR_MSDOS_DIR_MASK,\n\tFILE_ATTR_MSDOS_READONLY_MASK,\n\tFILE_ATTR_MSDOS_HIDDEN_MASK,\n\tFILE_ATTR_MSDOS_SYSTEM_MASK,\n\tFILE_ATTR_MSDOS_ARCHIVE_MASK,\n\tFILE_ATTR_UNIX_TYPE_MASK,\n\tFILE_ATTR_UNIX_TYPE_DIR,\n\tFILE_ATTR_UNIX_TYPE_SYMLINK,\n\tFILE_ATTR_UNIX_EXECUTABLE_MASK,\n\tFILE_ATTR_UNIX_DEFAULT_MASK,\n\tDIRECTORY_SIGNATURE,\n\tHEADER_SIZE,\n\tHEADER_OFFSET_SIGNATURE,\n\tHEADER_OFFSET_COMPRESSED_SIZE,\n\tHEADER_OFFSET_UNCOMPRESSED_SIZE,\n\tUNDEFINED_VALUE,\n\tCOMPRESSION_METHOD_DEFLATE_64,\n\tFILE_ATTR_UNIX_SETUID_MASK,\n\tFILE_ATTR_UNIX_SETGID_MASK,\n\tFILE_ATTR_UNIX_STICKY_MASK,\n\tNUMBER_TYPE,\n\tEMPTY_UINT8_ARRAY,\n\tSYMBOL_ASYNC_DISPOSE,\n\tMIN_DATE\n} from \"./constants.js\";\nimport { getConfiguration } from \"./configuration.js\";\nimport { getRegisteredCodec, ERR_UNSUPPORTED_COMPRESSION } from \"./codec-registry.js\";\nimport {\n\trunWorker,\n\tCODEC_INFLATE,\n\tERR_INVALID_CRC32,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_UNCOMPRESSED_SIZE,\n\tERR_INVALID_COMPRESSED_DATA,\n\tERR_CODEC_OUT_OF_MEMORY,\n\tERR_ABORT_CHECK_PASSWORD,\n\tERR_WORKER_STARTUP_TIMEOUT\n} from \"./codec-pool.js\";\nimport {\n\tinitStream,\n\treadUint8Array,\n\tBlobReader,\n\tGenericReader,\n\tGenericWriter,\n\townsWritable\n} from \"./io.js\";\nimport { decodeText, isUTF8Text } from \"./util/decode-text.js\";\nimport { getDataView } from \"./util/array.js\";\nimport { addWarning } from \"./util/warnings.js\";\nimport { toCompatibleReadable, streamToBlob } from \"./util/compatible-streams.js\";\nimport { isErrorObject } from \"./util/error.js\";\nimport { Crc32 } from \"./streams/codecs/crc32.js\";\nimport {\n\tPROPERTY_NAME_RAW_FILENAME,\n\tPROPERTY_NAME_FILENAME,\n\tPROPERTY_NAME_RAW_COMMENT,\n\tPROPERTY_NAME_COMMENT,\n\tPROPERTY_NAME_UNCOMPRESSED_SIZE,\n\tPROPERTY_NAME_COMPRESSED_SIZE,\n\tPROPERTY_NAME_OFFSET,\n\tPROPERTY_NAME_DISK_NUMBER_START,\n\tPROPERTY_NAME_LAST_MODIFICATION_DATE,\n\tPROPERTY_NAME_RAW_LAST_MODIFICATION_DATE,\n\tPROPERTY_NAME_LAST_ACCESS_DATE,\n\tPROPERTY_NAME_RAW_LAST_ACCESS_DATE,\n\tPROPERTY_NAME_CREATION_DATE,\n\tPROPERTY_NAME_RAW_CREATION_DATE,\n\tEntry,\n\tgetEncryptionOverhead\n} from \"./zip-entry.js\";\nimport {\n\tOPTION_FILENAME_ENCODING,\n\tOPTION_COMMENT_ENCODING,\n\tOPTION_DECODE_TEXT,\n\tOPTION_EXTRACT_PREPENDED_DATA,\n\tOPTION_EXTRACT_APPENDED_DATA,\n\tOPTION_PASSWORD,\n\tOPTION_RAW_PASSWORD,\n\tOPTION_PASS_THROUGH,\n\tOPTION_SIGNAL,\n\tOPTION_CHECK_PASSWORD_ONLY,\n\tOPTION_CHECK_OVERLAPPING_ENTRY_ONLY,\n\tOPTION_CHECK_OVERLAPPING_ENTRY,\n\tOPTION_CHECK_AMBIGUITY,\n\tOPTION_CHECK_LOCAL_DIRECTORY,\n\tOPTION_CHECK_LOCAL_FILENAME,\n\tOPTION_CHECK_SIGNATURE,\n\tOPTION_CHECK_CRC32,\n\tOPTION_CHECK_AUTHENTICATION_CODE,\n\tOPTION_STRICTNESS,\n\tOPTION_FILENAME_VALIDATION,\n\tOPTION_NORMALIZE_FILENAME,\n\tOPTION_MAX_APPENDED_DATA_SIZE,\n\tOPTION_DECRYPT_CENTRAL_DIRECTORY,\n\tTEXT_TYPE_FILENAME,\n\tTEXT_TYPE_COMMENT,\n\tSTRICTNESS_STRICT,\n\tSTRICTNESS_BALANCED,\n\tSTRICTNESS_TOLERANT,\n\tOPTION_USE_WEB_WORKERS,\n\tOPTION_USE_COMPRESSION_STREAM,\n\tOPTION_TRANSFER_STREAMS,\n\tOPTION_PREVENT_CLOSE,\n\tcheckFunctionOption,\n\tcheckSignalOption,\n\tthrowIfAborted,\n\tcheckPasswordOption,\n\tcheckPassThroughOption,\n\ttoNumber\n} from \"./options.js\";\n\nconst ERR_BAD_FORMAT = \"File format is not recognized\";\nconst ERR_EOCDR_NOT_FOUND = \"End of central directory not found\";\nconst ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND = \"End of Zip64 central directory locator not found\";\nconst ERR_CENTRAL_DIRECTORY_NOT_FOUND = \"Central directory header not found\";\nconst ERR_LOCAL_FILE_HEADER_NOT_FOUND = \"Local file header not found\";\nconst ERR_EXTRAFIELD_ZIP64_NOT_FOUND = \"Zip64 extra field not found\";\nconst ERR_ENCRYPTED = \"File contains encrypted entry\";\nconst ERR_UNSUPPORTED_ENCRYPTION = \"Encryption method not supported\";\nconst ERR_SPLIT_ZIP_FILE = \"Split zip file\";\nconst ERR_OVERLAPPING_ENTRY = \"Overlapping entry found\";\nconst ERR_ENTRY_DATA_OUT_OF_BOUNDS = \"Entry data out of bounds\";\nconst ERR_AMBIGUOUS_ARCHIVE = \"Ambiguous archive\";\nconst ERR_ENCRYPTED_CENTRAL_DIRECTORY = \"Encrypted central directory is not supported\";\nconst ERR_UNSAFE_FILENAME = \"Unsafe filename\";\nconst ERR_INVALID_STRICTNESS = \"Invalid strictness (must be 'strict', 'balanced' or 'tolerant')\";\nconst ERR_INVALID_FILENAME_VALIDATION = \"Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')\";\nconst ERR_INVALID_MAX_APPENDED_DATA_SIZE = \"Invalid maxAppendedDataSize (must be a number greater than or equal to 0)\";\nconst ERR_UNSUPPORTED_UINT64 = \"64-bit value exceeds Number.MAX_SAFE_INTEGER\";\nconst WARNING_UNSORTED_CENTRAL_DIRECTORY = \"unsorted central directory\";\nconst WARNING_UNKNOWN_VERSION = \"unknown version needed to extract\";\nconst WARNING_COMPRESSED_PATCHED_DATA = \"compressed patched data\";\nconst WARNING_MALFORMED_EXTRA_FIELD = \"malformed extra field\";\nconst WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA = \"unknown zip64 extensible data\";\nconst WARNING_WRAPPED_ENTRIES_COUNT = \"wrapped entries count\";\nconst WARNING_APPENDED_DATA = \"appended data\";\nconst WARNING_PREPENDED_DATA = \"prepended data\";\nconst WARNING_PREPENDED_CENTRAL_DIRECTORY = \"prepended central directory\";\nconst WARNING_TRAILING_CENTRAL_DIRECTORY_DATA = \"trailing central directory data\";\nconst WARNING_DUPLICATE_FILENAME = \"duplicate filename\";\nconst WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY = \"mismatched zip64 end of central directory record\";\nconst WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY = \"multiple end of central directory records\";\nconst WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME = \"mismatched local file header (filename)\";\nconst WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG = \"mismatched local file header (general purpose bit flag)\";\nconst WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD = \"mismatched local file header (compression method)\";\nconst WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES = \"mismatched local file header (crc32 or sizes)\";\nconst MAX_KNOWN_VERSION = 63;\nconst DRIVE_LETTER_REGEXP = /^[a-zA-Z]:/;\nconst PARENT_DIRECTORY_REGEXP = /(^|[\\\\/])\\.\\.([\\\\/]|$)/;\nconst CHARSET_UTF8 = \"utf-8\";\nconst PROPERTY_NAME_UTF8_SUFFIX = \"UTF8\";\nconst CHARSET_CP437 = \"cp437\";\nconst BITFLAG_AMBIGUITY_MASK = BITFLAG_ENCRYPTED | BITFLAG_DATA_DESCRIPTOR | BITFLAG_STRONG_ENCRYPTION | BITFLAG_LANG_ENCODING_FLAG;\nconst VENDOR_VERSION_AE_1 = 1;\nconst ZIP64_PROPERTIES = [\n\t[PROPERTY_NAME_UNCOMPRESSED_SIZE, MAX_32_BITS],\n\t[PROPERTY_NAME_COMPRESSED_SIZE, MAX_32_BITS],\n\t[PROPERTY_NAME_OFFSET, MAX_32_BITS],\n\t[PROPERTY_NAME_DISK_NUMBER_START, MAX_16_BITS]\n];\nconst ZIP64_EXTRACTION = {\n\t[MAX_16_BITS]: {\n\t\tgetValue: getUint32,\n\t\tbytes: 4\n\t},\n\t[MAX_32_BITS]: {\n\t\tgetValue: getBigUint64,\n\t\tbytes: 8\n\t}\n};\nconst MAX_SAFE_UINT64 = BigInt(Number.MAX_SAFE_INTEGER);\nconst MAX_END_OF_CENTRAL_DIR_PROBES = 64;\nconst MAX_DEFLATE_EXPANSION_RATIO = 1032;\nconst CENTRAL_DIRECTORY_UNREACHABLE = 0;\nconst CENTRAL_DIRECTORY_PLAUSIBLE = 1;\nconst CENTRAL_DIRECTORY_REACHABLE = 2;\n\nclass ZipReader {\n\n\tconstructor(reader, options = {}) {\n\t\tObject.assign(this, {\n\t\t\treader: new GenericReader(reader),\n\t\t\toptions,\n\t\t\treadRanges: { indexes: new Set(), sortedRanges: [], pendingRanges: [] }\n\t\t});\n\t}\n\n\tasync* getEntriesGenerator(options = {}) {\n\t\tconst zipReader = this;\n\t\tlet { reader } = zipReader;\n\t\tawait initStream(reader);\n\t\tif (reader.size === UNDEFINED_VALUE || !reader.readUint8Array) {\n\t\t\treader = new BlobReader(await streamToBlob(reader.readable));\n\t\t\tawait initStream(reader);\n\t\t}\n\t\tif (reader.size < END_OF_CENTRAL_DIR_LENGTH) {\n\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t}\n\t\tconst warnings = zipReader.warnings = [];\n\t\tconst strictness = getStrictness(options, zipReader.options);\n\t\tconst checkAmbiguity = strictness == STRICTNESS_STRICT;\n\t\tconst rejectAmbiguousEndOfDirectory = strictness != STRICTNESS_TOLERANT;\n\t\tconst maxAppendedDataSize = getMaxAppendedDataSize(getOptionValue(zipReader, options, OPTION_MAX_APPENDED_DATA_SIZE), strictness);\n\t\tconst filenameValidation = getFilenameValidation(getOptionValue(zipReader, options, OPTION_FILENAME_VALIDATION), strictness);\n\t\tconst normalizeFilename = getOptionValue(zipReader, options, OPTION_NORMALIZE_FILENAME);\n\t\tconst { endOfDirectoryInfo, endOfDirectoryReachingEndCount } = await findEndOfCentralDirectory(reader, rejectAmbiguousEndOfDirectory, maxAppendedDataSize);\n\t\tif (!endOfDirectoryInfo) {\n\t\t\tif (await startsWithSplitZipSignature(reader)) {\n\t\t\t\tthrow new Error(ERR_SPLIT_ZIP_FILE);\n\t\t\t} else {\n\t\t\t\tthrow new Error(ERR_EOCDR_NOT_FOUND);\n\t\t\t}\n\t\t}\n\t\tif (rejectAmbiguousEndOfDirectory && endOfDirectoryReachingEndCount > 1) {\n\t\t\tthrowAmbiguousArchive(WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY);\n\t\t}\n\t\tconst endOfDirectoryView = getDataView(endOfDirectoryInfo);\n\t\tlet directoryDataLength = getUint32(endOfDirectoryView, 12);\n\t\tlet directoryDataOffset = getUint32(endOfDirectoryView, 16);\n\t\tconst commentOffset = endOfDirectoryInfo.offset;\n\t\tconst commentLength = getUint16(endOfDirectoryView, 20);\n\t\tconst appendedDataOffset = commentOffset + END_OF_CENTRAL_DIR_LENGTH + commentLength;\n\t\tconst appendedDataLength = reader.size - appendedDataOffset;\n\t\tif (appendedDataLength > maxAppendedDataSize) {\n\t\t\tthrowAmbiguousArchive(WARNING_APPENDED_DATA);\n\t\t}\n\t\tif (appendedDataLength > 0) {\n\t\t\taddWarning(warnings, WARNING_APPENDED_DATA);\n\t\t}\n\t\tlet lastDiskNumber = getUint16(endOfDirectoryView, 4);\n\t\tconst expectedLastDiskNumber = reader.lastDiskNumber || 0;\n\t\tlet diskNumber = getUint16(endOfDirectoryView, 6);\n\t\tlet filesLength = getUint16(endOfDirectoryView, 10);\n\t\tlet prependedDataLength = 0;\n\t\tlet prependedCentralDirectory;\n\t\tlet startOffset;\n\t\tlet zip64EndOfDirectory;\n\t\tlet zip64EndOfDirectoryVersion2;\n\t\tlet zip64EndOfDirectoryLength = ZIP64_END_OF_CENTRAL_DIR_LENGTH;\n\t\tlet directoryEncryptionInfo;\n\t\tconst requiresZip64 = directoryDataOffset == MAX_32_BITS || directoryDataLength == MAX_32_BITS || filesLength == MAX_16_BITS || diskNumber == MAX_16_BITS;\n\t\tif (directoryDataOffset != MAX_32_BITS && diskNumber != MAX_16_BITS) {\n\t\t\tdirectoryDataOffset += getDiskOffset(reader, diskNumber);\n\t\t}\n\t\tif (requiresZip64) {\n\t\t\tconst endOfDirectoryLocatorArray = endOfDirectoryInfo.offset >= ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH ?\n\t\t\t\tawait readUint8Array(reader, endOfDirectoryInfo.offset - ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH) :\n\t\t\t\tEMPTY_UINT8_ARRAY;\n\t\t\tconst endOfDirectoryLocatorView = getDataView(endOfDirectoryLocatorArray);\n\t\t\tif (endOfDirectoryLocatorArray.length == ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH &&\n\t\t\t\tgetUint32(endOfDirectoryLocatorView, 0) == ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE) {\n\t\t\t\tdirectoryDataOffset = getDiskOffset(reader, getUint32(endOfDirectoryLocatorView, 4)) + getBigUint64(endOfDirectoryLocatorView, 8);\n\t\t\t\tlet endOfDirectoryArray = await readUint8Array(reader, directoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_LENGTH);\n\t\t\t\tlet endOfDirectoryView = getDataView(endOfDirectoryArray);\n\t\t\t\tconst expectedDirectoryDataOffset = endOfDirectoryInfo.offset - ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH - ZIP64_END_OF_CENTRAL_DIR_LENGTH;\n\t\t\t\tif ((endOfDirectoryArray.length < ZIP64_END_OF_CENTRAL_DIR_LENGTH || getUint32(endOfDirectoryView, 0) != ZIP64_END_OF_CENTRAL_DIR_SIGNATURE) &&\n\t\t\t\t\tdirectoryDataOffset != expectedDirectoryDataOffset && expectedDirectoryDataOffset >= 0) {\n\t\t\t\t\tconst originalDirectoryDataOffset = directoryDataOffset;\n\t\t\t\t\tdirectoryDataOffset = expectedDirectoryDataOffset;\n\t\t\t\t\tif (directoryDataOffset > originalDirectoryDataOffset) {\n\t\t\t\t\t\tprependedDataLength = directoryDataOffset - originalDirectoryDataOffset;\n\t\t\t\t\t}\n\t\t\t\t\tendOfDirectoryArray = await readUint8Array(reader, directoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_LENGTH);\n\t\t\t\t\tendOfDirectoryView = getDataView(endOfDirectoryArray);\n\t\t\t\t}\n\t\t\t\tif (endOfDirectoryArray.length < ZIP64_END_OF_CENTRAL_DIR_LENGTH || getUint32(endOfDirectoryView, 0) != ZIP64_END_OF_CENTRAL_DIR_SIGNATURE) {\n\t\t\t\t\tthrow new Error(ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND);\n\t\t\t\t}\n\t\t\t\tzip64EndOfDirectory = true;\n\t\t\t\tzip64EndOfDirectoryVersion2 = getBigUint64(endOfDirectoryView, 4) > ZIP64_END_OF_CENTRAL_DIR_LENGTH - 12;\n\t\t\t\tif (zip64EndOfDirectoryVersion2) {\n\t\t\t\t\tconst extensibleDataLength = Math.min(\n\t\t\t\t\t\tgetBigUint64(endOfDirectoryView, 4) - (ZIP64_END_OF_CENTRAL_DIR_LENGTH - 12),\n\t\t\t\t\t\treader.size - directoryDataOffset - ZIP64_END_OF_CENTRAL_DIR_LENGTH);\n\t\t\t\t\tif (extensibleDataLength > 0) {\n\t\t\t\t\t\tzip64EndOfDirectoryLength += extensibleDataLength;\n\t\t\t\t\t\tconst rawExtensibleData = await readUint8Array(reader, directoryDataOffset + ZIP64_END_OF_CENTRAL_DIR_LENGTH, extensibleDataLength);\n\t\t\t\t\t\tdirectoryEncryptionInfo = getDirectoryEncryptionInfo(rawExtensibleData);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (lastDiskNumber == MAX_16_BITS) {\n\t\t\t\t\tlastDiskNumber = getUint32(endOfDirectoryView, 16);\n\t\t\t\t} else if (lastDiskNumber != getUint32(endOfDirectoryView, 16)) {\n\t\t\t\t\treportAmbiguity(checkAmbiguity, warnings, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY);\n\t\t\t\t}\n\t\t\t\tif (diskNumber == MAX_16_BITS) {\n\t\t\t\t\tdiskNumber = getUint32(endOfDirectoryView, 20);\n\t\t\t\t} else if (diskNumber != getUint32(endOfDirectoryView, 20)) {\n\t\t\t\t\treportAmbiguity(checkAmbiguity, warnings, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY);\n\t\t\t\t}\n\t\t\t\tif (filesLength == MAX_16_BITS) {\n\t\t\t\t\tfilesLength = getBigUint64(endOfDirectoryView, 32);\n\t\t\t\t} else if (filesLength != getBigUint64(endOfDirectoryView, 32)) {\n\t\t\t\t\treportAmbiguity(checkAmbiguity, warnings, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY);\n\t\t\t\t}\n\t\t\t\tif (directoryDataLength == MAX_32_BITS) {\n\t\t\t\t\tdirectoryDataLength = getBigUint64(endOfDirectoryView, 40);\n\t\t\t\t} else if (directoryDataLength != getBigUint64(endOfDirectoryView, 40)) {\n\t\t\t\t\treportAmbiguity(checkAmbiguity, warnings, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY);\n\t\t\t\t}\n\t\t\t\tdirectoryDataOffset = getDiskOffset(reader, diskNumber) + getBigUint64(endOfDirectoryView, 48) + prependedDataLength;\n\t\t\t}\n\t\t}\n\t\tlet declaredDirectoryDataLength = directoryDataLength;\n\t\tconst centralDirectoryEndOffset = endOfDirectoryInfo.offset -\n\t\t\t(zip64EndOfDirectory ? zip64EndOfDirectoryLength + ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH : 0);\n\t\tif (directoryDataOffset >= reader.size) {\n\t\t\tprependedDataLength = reader.size - directoryDataOffset - directoryDataLength - END_OF_CENTRAL_DIR_LENGTH;\n\t\t\tdirectoryDataOffset = reader.size - directoryDataLength - END_OF_CENTRAL_DIR_LENGTH;\n\t\t}\n\t\tif (expectedLastDiskNumber != lastDiskNumber) {\n\t\t\tthrow new Error(ERR_SPLIT_ZIP_FILE);\n\t\t}\n\t\tif (directoryDataOffset < 0) {\n\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t}\n\t\tlet offset = 0;\n\t\tlet directoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);\n\t\tlet directoryView = getDataView(directoryArray);\n\t\tif (directoryDataLength) {\n\t\t\tif (directoryArray.length < 4) {\n\t\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t\t}\n\t\t\tconst expectedDirectoryDataOffset = centralDirectoryEndOffset - directoryDataLength;\n\t\t\tif (directoryDataOffset != expectedDirectoryDataOffset && diskNumber == lastDiskNumber) {\n\t\t\t\tconst storedPointsAtDirectory = getUint32(directoryView, offset) == CENTRAL_FILE_HEADER_SIGNATURE ||\n\t\t\t\t\tBoolean(directoryEncryptionInfo && directoryEncryptionInfo.compressedSize) ||\n\t\t\t\t\tdetectEncryptedCentralDirectory(directoryView);\n\t\t\t\tlet reconcile = !storedPointsAtDirectory;\n\t\t\t\tif (!reconcile && expectedDirectoryDataOffset >= 0 && expectedDirectoryDataOffset + 4 <= reader.size) {\n\t\t\t\t\tconst expectedSignatureArray = await readUint8Array(reader, expectedDirectoryDataOffset, 4);\n\t\t\t\t\treconcile = getUint32(getDataView(expectedSignatureArray), 0) == CENTRAL_FILE_HEADER_SIGNATURE;\n\t\t\t\t}\n\t\t\t\tif (reconcile) {\n\t\t\t\t\tconst originalDirectoryDataOffset = directoryDataOffset;\n\t\t\t\t\tdirectoryDataOffset = expectedDirectoryDataOffset;\n\t\t\t\t\tif (directoryDataOffset > originalDirectoryDataOffset) {\n\t\t\t\t\t\tprependedDataLength += directoryDataOffset - originalDirectoryDataOffset;\n\t\t\t\t\t\tprependedCentralDirectory = storedPointsAtDirectory;\n\t\t\t\t\t}\n\t\t\t\t\tdirectoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);\n\t\t\t\t\tdirectoryView = getDataView(directoryArray);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst expectedDirectoryDataLength = centralDirectoryEndOffset - directoryDataOffset;\n\t\tif (directoryDataLength != expectedDirectoryDataLength && expectedDirectoryDataLength >= 0 && diskNumber == lastDiskNumber) {\n\t\t\tdirectoryDataLength = expectedDirectoryDataLength;\n\t\t\tdirectoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);\n\t\t\tdirectoryView = getDataView(directoryArray);\n\t\t}\n\t\tif (directoryDataOffset < 0 || directoryDataOffset >= reader.size) {\n\t\t\tthrow new Error(ERR_BAD_FORMAT);\n\t\t}\n\t\tzipReader.directoryOffset = directoryDataOffset;\n\t\tzipReader.directoryLength = declaredDirectoryDataLength;\n\t\tconst decryptCentralDirectory = getFunctionOptionValue(zipReader, options, OPTION_DECRYPT_CENTRAL_DIRECTORY);\n\t\tlet decryptedDirectory, dataAfterEncryptedDirectory;\n\t\tif (decryptCentralDirectory && filesLength && directoryArray.length >= 4 &&\n\t\t\tgetUint32(directoryView, 0) != CENTRAL_FILE_HEADER_SIGNATURE &&\n\t\t\t(zip64EndOfDirectoryVersion2 || detectEncryptedCentralDirectory(directoryView))) {\n\t\t\tconst encryptedDirectoryDataLength = getEncryptedDirectoryDataLength(directoryEncryptionInfo, declaredDirectoryDataLength, directoryArray.length);\n\t\t\tdataAfterEncryptedDirectory = directoryArray.subarray(encryptedDirectoryDataLength);\n\t\t\tdirectoryArray = await decryptCentralDirectory(directoryArray.subarray(0, encryptedDirectoryDataLength), directoryEncryptionInfo);\n\t\t\tdirectoryView = getDataView(directoryArray);\n\t\t\tdeclaredDirectoryDataLength = directoryArray.length;\n\t\t\tdecryptedDirectory = true;\n\t\t}\n\t\tif (directoryEncryptionInfo && !decryptedDirectory &&\n\t\t\t(directoryArray.length < 4 || getUint32(directoryView, 0) == CENTRAL_FILE_HEADER_SIGNATURE)) {\n\t\t\taddWarning(warnings, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA);\n\t\t}\n\t\tstartOffset = directoryDataOffset;\n\t\tconst filenameEncoding = getOptionValue(zipReader, options, OPTION_FILENAME_ENCODING);\n\t\tconst commentEncoding = getOptionValue(zipReader, options, OPTION_COMMENT_ENCODING);\n\t\tconst filenames = new Set();\n\t\tlet duplicateFilename;\n\t\tlet previousEntryPosition = -1;\n\t\tconst recoverWrappedFilesLength = !checkAmbiguity && !zip64EndOfDirectory;\n\t\tif (!filesLength && recoverWrappedFilesLength) {\n\t\t\tfilesLength = getWrappedFilesLength(directoryView, directoryArray, offset);\n\t\t\tif (filesLength) {\n\t\t\t\taddWarning(warnings, WARNING_WRAPPED_ENTRIES_COUNT);\n\t\t\t}\n\t\t}\n\t\tfor (let indexFile = 0; indexFile < filesLength; indexFile++) {\n\t\t\tconst fileEntry = new ZipEntry(reader, zipReader.options);\n\t\t\tif (offset + CENTRAL_FILE_HEADER_LENGTH > directoryArray.length || getUint32(directoryView, offset) != CENTRAL_FILE_HEADER_SIGNATURE) {\n\t\t\t\tif (indexFile == 0 && !decryptedDirectory && (zip64EndOfDirectoryVersion2 || detectEncryptedCentralDirectory(directoryView))) {\n\t\t\t\t\tthrow new Error(ERR_ENCRYPTED_CENTRAL_DIRECTORY);\n\t\t\t\t}\n\t\t\t\tthrow new Error(ERR_CENTRAL_DIRECTORY_NOT_FOUND);\n\t\t\t}\n\t\t\treadCommonHeader(fileEntry, directoryView, offset + 6);\n\t\t\tconst languageEncodingFlag = Boolean(fileEntry.bitFlag.languageEncodingFlag);\n\t\t\tconst filenameOffset = offset + CENTRAL_FILE_HEADER_LENGTH;\n\t\t\tconst extraFieldOffset = filenameOffset + fileEntry.filenameLength;\n\t\t\tconst commentOffset = extraFieldOffset + fileEntry.extraFieldLength;\n\t\t\tconst versionMadeBy = getUint16(directoryView, offset + 4);\n\t\t\tconst msDosCompatible = versionMadeBy >> 8 == 0;\n\t\t\tconst unixCompatible = versionMadeBy >> 8 == 3;\n\t\t\tconst commentLength = getUint16(directoryView, offset + 32);\n\t\t\tconst endOffset = commentOffset + commentLength;\n\t\t\tconst rawEntryData = new Uint8Array(directoryArray.subarray(filenameOffset, endOffset));\n\t\t\tconst rawFilename = rawEntryData.subarray(0, fileEntry.filenameLength);\n\t\t\tconst rawComment = rawEntryData.subarray(fileEntry.filenameLength + fileEntry.extraFieldLength);\n\t\t\tconst filenameUTF8 = languageEncodingFlag || (!filenameEncoding && isUTF8Text(rawFilename));\n\t\t\tconst commentUTF8 = languageEncodingFlag || (!commentEncoding && isUTF8Text(rawComment));\n\t\t\tconst externalFileAttributes = getUint32(directoryView, offset + 38);\n\t\t\tconst msdosAttributesRaw = externalFileAttributes & MAX_8_BITS;\n\t\t\tconst msdosAttributes = {\n\t\t\t\treadOnly: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_READONLY_MASK),\n\t\t\t\thidden: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_HIDDEN_MASK),\n\t\t\t\tsystem: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_SYSTEM_MASK),\n\t\t\t\tdirectory: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_DIR_MASK),\n\t\t\t\tarchive: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_ARCHIVE_MASK)\n\t\t\t};\n\t\t\tconst offsetFileEntry = getUint32(directoryView, offset + 42);\n\t\t\tconst decode = getFunctionOptionValue(zipReader, options, OPTION_DECODE_TEXT) || decodeText;\n\t\t\tconst rawFilenameEncoding = filenameUTF8 ? CHARSET_UTF8 : filenameEncoding || CHARSET_CP437;\n\t\t\tconst rawCommentEncoding = commentUTF8 ? CHARSET_UTF8 : commentEncoding || CHARSET_CP437;\n\t\t\tlet filename = decode(rawFilename, rawFilenameEncoding, TEXT_TYPE_FILENAME);\n\t\t\tif (filename === UNDEFINED_VALUE) {\n\t\t\t\tfilename = decodeText(rawFilename, rawFilenameEncoding);\n\t\t\t}\n\t\t\tif (normalizeFilename) {\n\t\t\t\tconst normalizedFilename = normalizeFilename(filename);\n\t\t\t\tif (normalizedFilename !== UNDEFINED_VALUE) {\n\t\t\t\t\tfilename = normalizedFilename;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isUnsafeFilename(filename, filenameValidation)) {\n\t\t\t\tconst error = new Error(ERR_UNSAFE_FILENAME);\n\t\t\t\terror.filename = filename;\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tlet comment = decode(rawComment, rawCommentEncoding, TEXT_TYPE_COMMENT);\n\t\t\tif (comment === UNDEFINED_VALUE) {\n\t\t\t\tcomment = decodeText(rawComment, rawCommentEncoding);\n\t\t\t}\n\t\t\tObject.assign(fileEntry, {\n\t\t\t\tindex: indexFile,\n\t\t\t\tdecryptedDirectory,\n\t\t\t\tversionMadeBy,\n\t\t\t\tmsDosCompatible,\n\t\t\t\tzip64: false,\n\t\t\t\tcompressedSize: 0,\n\t\t\t\tuncompressedSize: 0,\n\t\t\t\tcommentLength,\n\t\t\t\toffset: offsetFileEntry,\n\t\t\t\tdiskNumberStart: getUint16(directoryView, offset + 34),\n\t\t\t\tinternalFileAttributes: getUint16(directoryView, offset + 36),\n\t\t\t\texternalFileAttributes,\n\t\t\t\tmsdosAttributesRaw,\n\t\t\t\tmsdosAttributes,\n\t\t\t\trawFilename,\n\t\t\t\tfilenameUTF8,\n\t\t\t\tcommentUTF8,\n\t\t\t\trawExtraField: rawEntryData.subarray(fileEntry.filenameLength, fileEntry.filenameLength + fileEntry.extraFieldLength),\n\t\t\t\trawComment,\n\t\t\t\tfilename,\n\t\t\t\tcomment\n\t\t\t});\n\t\t\tif (readCommonFooter(fileEntry, fileEntry, directoryView, offset + 6)) {\n\t\t\t\taddWarning(warnings, WARNING_MALFORMED_EXTRA_FIELD, filename);\n\t\t\t}\n\t\t\tfileEntry.offset += prependedDataLength;\n\t\t\tconst entryPosition = getDiskOffset(reader, fileEntry.diskNumberStart) + fileEntry.offset;\n\t\t\tstartOffset = Math.min(entryPosition, startOffset);\n\t\t\tif (entryPosition < previousEntryPosition) {\n\t\t\t\taddWarning(warnings, WARNING_UNSORTED_CENTRAL_DIRECTORY, filename);\n\t\t\t}\n\t\t\tpreviousEntryPosition = entryPosition;\n\t\t\tif ((fileEntry.version & MAX_8_BITS) > MAX_KNOWN_VERSION) {\n\t\t\t\taddWarning(warnings, WARNING_UNKNOWN_VERSION, filename);\n\t\t\t}\n\t\t\tif ((fileEntry.rawBitFlag & BITFLAG_COMPRESSED_PATCHED_DATA) == BITFLAG_COMPRESSED_PATCHED_DATA) {\n\t\t\t\taddWarning(warnings, WARNING_COMPRESSED_PATCHED_DATA, filename);\n\t\t\t}\n\t\t\tif (filenames.has(fileEntry.filename)) {\n\t\t\t\tduplicateFilename = true;\n\t\t\t}\n\t\t\tfilenames.add(fileEntry.filename);\n\t\t\tconst unixExternalUpper = (fileEntry.externalFileAttributes >> 16) & MAX_16_BITS;\n\t\t\tif (fileEntry.unixMode === UNDEFINED_VALUE && (unixExternalUpper & (FILE_ATTR_UNIX_DEFAULT_MASK | FILE_ATTR_UNIX_EXECUTABLE_MASK | FILE_ATTR_UNIX_TYPE_DIR)) != 0) {\n\t\t\t\tfileEntry.unixMode = unixExternalUpper;\n\t\t\t}\n\t\t\tconst setuid = Boolean(fileEntry.unixMode & FILE_ATTR_UNIX_SETUID_MASK);\n\t\t\tconst setgid = Boolean(fileEntry.unixMode & FILE_ATTR_UNIX_SETGID_MASK);\n\t\t\tconst sticky = Boolean(fileEntry.unixMode & FILE_ATTR_UNIX_STICKY_MASK);\n\t\t\tconst unixType = fileEntry.unixMode === UNDEFINED_VALUE ? unixExternalUpper : fileEntry.unixMode;\n\t\t\tconst symlink = (unixType & FILE_ATTR_UNIX_TYPE_MASK) == FILE_ATTR_UNIX_TYPE_SYMLINK;\n\t\t\tconst executable = !symlink && ((fileEntry.unixMode !== UNDEFINED_VALUE)\n\t\t\t\t? ((fileEntry.unixMode & FILE_ATTR_UNIX_EXECUTABLE_MASK) != 0)\n\t\t\t\t: (unixCompatible && ((unixExternalUpper & FILE_ATTR_UNIX_EXECUTABLE_MASK) != 0)));\n\t\t\tconst modeIsDir = fileEntry.unixMode !== UNDEFINED_VALUE && ((fileEntry.unixMode & FILE_ATTR_UNIX_TYPE_MASK) == FILE_ATTR_UNIX_TYPE_DIR);\n\t\t\tconst upperIsDir = ((unixExternalUpper & FILE_ATTR_UNIX_TYPE_MASK) == FILE_ATTR_UNIX_TYPE_DIR);\n\t\t\tObject.assign(fileEntry, {\n\t\t\t\tsetuid,\n\t\t\t\tsetgid,\n\t\t\t\tsticky,\n\t\t\t\tsymlink,\n\t\t\t\tunixExternalUpper,\n\t\t\t\texecutable,\n\t\t\t\tdirectory: modeIsDir || upperIsDir || (msDosCompatible && msdosAttributes.directory) || fileEntry.filename.endsWith(DIRECTORY_SIGNATURE),\n\t\t\t\tzipCrypto: fileEntry.encrypted && !fileEntry.extraFieldAES\n\t\t\t});\n\t\t\tconst entry = new Entry(fileEntry);\n\t\t\tentry.getData = (writer, options) => fileEntry.getData(writer, entry, zipReader.readRanges, options);\n\t\t\tentry.arrayBuffer = async options => {\n\t\t\t\tconst writer = new TransformStream();\n\t\t\t\tconst arrayBufferPromise = streamToBlob(writer.readable).then(blob => blob.arrayBuffer());\n\t\t\t\tarrayBufferPromise.catch(() => { });\n\t\t\t\tawait fileEntry.getData(writer, entry, zipReader.readRanges,\n\t\t\t\t\tObject.assign({}, options, { preventClose: false }));\n\t\t\t\treturn arrayBufferPromise;\n\t\t\t};\n\t\t\toffset = endOffset;\n\t\t\tif (indexFile == filesLength - 1 && recoverWrappedFilesLength) {\n\t\t\t\tconst wrappedFilesLength = getWrappedFilesLength(directoryView, directoryArray, offset);\n\t\t\t\tif (wrappedFilesLength) {\n\t\t\t\t\tfilesLength += wrappedFilesLength;\n\t\t\t\t\taddWarning(warnings, WARNING_WRAPPED_ENTRIES_COUNT);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst { onprogress } = options;\n\t\t\tif (onprogress) {\n\t\t\t\ttry {\n\t\t\t\t\tawait onprogress(indexFile + 1, filesLength, new Entry(fileEntry));\n\t\t\t\t} catch {\n\t\t\t\t\t// ignored\n\t\t\t\t}\n\t\t\t}\n\t\t\tyield entry;\n\t\t}\n\t\tlet offsetAfterSignature = offset;\n\t\tlet digitalSignature = readDigitalSignature(directoryArray.subarray(offset)) ||\n\t\t\t(decryptedDirectory ? readDigitalSignature(dataAfterEncryptedDirectory) : UNDEFINED_VALUE);\n\t\tif (!digitalSignature && !decryptedDirectory) {\n\t\t\tconst signatureRecordOffset = directoryDataOffset + offset;\n\t\t\tconst signatureRecordLength = Math.min(centralDirectoryEndOffset - signatureRecordOffset, 6 + MAX_16_BITS);\n\t\t\tif (signatureRecordLength >= 6) {\n\t\t\t\tdigitalSignature = readDigitalSignature(await readUint8Array(reader, signatureRecordOffset, signatureRecordLength));\n\t\t\t}\n\t\t}\n\t\tif (digitalSignature) {\n\t\t\tzipReader.digitalSignature = digitalSignature;\n\t\t\toffsetAfterSignature = offset + 6 + digitalSignature.length;\n\t\t}\n\t\tif ((offset != declaredDirectoryDataLength && offsetAfterSignature != declaredDirectoryDataLength) ||\n\t\t\t(!decryptedDirectory && offset != directoryDataLength && offsetAfterSignature != directoryDataLength)) {\n\t\t\treportAmbiguity(checkAmbiguity, warnings, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA);\n\t\t}\n\t\tif (duplicateFilename) {\n\t\t\treportAmbiguity(checkAmbiguity, warnings, WARNING_DUPLICATE_FILENAME);\n\t\t}\n\t\tconst extractPrependedData = getOptionValue(zipReader, options, OPTION_EXTRACT_PREPENDED_DATA);\n\t\tconst extractAppendedData = getOptionValue(zipReader, options, OPTION_EXTRACT_APPENDED_DATA);\n\t\tconst splitZipSignatureLength = (checkAmbiguity || extractPrependedData) && filesLength &&\n\t\t\tstartOffset == SPLIT_ZIP_FILE_SIGNATURE_LENGTH && await startsWithSplitZipMarker(reader) ? SPLIT_ZIP_FILE_SIGNATURE_LENGTH : 0;\n\t\tif (checkAmbiguity && (prependedDataLength || (filesLength && startOffset > splitZipSignatureLength))) {\n\t\t\tthrowAmbiguousArchive(WARNING_PREPENDED_DATA);\n\t\t}\n\t\tif (prependedDataLength || (filesLength && startOffset > SPLIT_ZIP_FILE_SIGNATURE_LENGTH)) {\n\t\t\taddWarning(warnings, WARNING_PREPENDED_DATA);\n\t\t}\n\t\tif (prependedCentralDirectory) {\n\t\t\taddWarning(warnings, WARNING_PREPENDED_CENTRAL_DIRECTORY);\n\t\t}\n\t\tif (extractPrependedData) {\n\t\t\tzipReader.prependedData = startOffset > splitZipSignatureLength ?\n\t\t\t\tawait readUint8Array(reader, splitZipSignatureLength, startOffset - splitZipSignatureLength) :\n\t\t\t\tEMPTY_UINT8_ARRAY;\n\t\t}\n\t\tzipReader.comment = commentLength ? await readUint8Array(reader, commentOffset + END_OF_CENTRAL_DIR_LENGTH, commentLength) : EMPTY_UINT8_ARRAY;\n\t\tif (extractAppendedData) {\n\t\t\tzipReader.appendedData = appendedDataOffset < reader.size ? await readUint8Array(reader, appendedDataOffset, reader.size - appendedDataOffset) : EMPTY_UINT8_ARRAY;\n\t\t}\n\t\treturn true;\n\t}\n\n\tasync getEntries(options = {}) {\n\t\tconst entries = [];\n\t\tfor await (const entry of this.getEntriesGenerator(options)) {\n\t\t\tentries.push(entry);\n\t\t}\n\t\treturn entries;\n\t}\n\n\tasync close() {\n\t\tconst { reader } = this;\n\t\tif (!reader.readUint8Array && reader.readable && !reader.readable.locked) {\n\t\t\tawait reader.readable.cancel();\n\t\t}\n\t}\n\n\t[SYMBOL_ASYNC_DISPOSE]() {\n\t\treturn this.close();\n\t}\n}\n\nclass ZipReaderStream {\n\n\tconstructor(options = {}) {\n\t\tlet sourceController;\n\t\tconst { readable, writable } = new TransformStream({\n\t\t\tstart(controller) {\n\t\t\t\tsourceController = controller;\n\t\t\t}\n\t\t});\n\t\tconst zipReader = new ZipReader(readable, options);\n\t\tconst gen = zipReader.getEntriesGenerator();\n\t\tconst pendingEntries = new Set();\n\t\tthis.readable = new ReadableStream({\n\t\t\tasync pull(controller) {\n\t\t\t\tconst { done, value } = await gen.next();\n\t\t\t\tif (done)\n\t\t\t\t\treturn controller.close();\n\t\t\t\tconst entryStream = createEntryStream(value, pendingEntries);\n\t\t\t\tconst chunk = {\n\t\t\t\t\t...value,\n\t\t\t\t\treadable: entryStream.readable\n\t\t\t\t};\n\t\t\t\tdelete chunk.getData;\n\t\t\t\tObject.defineProperties(chunk, {\n\t\t\t\t\tlocalDirectory: {\n\t\t\t\t\t\tget: () => value.localDirectory,\n\t\t\t\t\t\tenumerable: true\n\t\t\t\t\t},\n\t\t\t\t\twarnings: {\n\t\t\t\t\t\tget: () => value.warnings,\n\t\t\t\t\t\tenumerable: true\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t\tasync cancel(reason) {\n\t\t\t\tconst entryStreams = Array.from(pendingEntries);\n\t\t\t\tpendingEntries.clear();\n\t\t\t\tsourceController.error(reason);\n\t\t\t\tawait Promise.allSettled(entryStreams.map(entryStream => entryStream.cancel(reason)));\n\t\t\t\tawait Promise.allSettled([gen.return(), zipReader.close()]);\n\t\t\t}\n\t\t});\n\t\tthis.writable = writable;\n\t}\n}\n\nfunction createEntryStream(entry, pendingEntries) {\n\tconst { readable, writable } = new TransformStream();\n\tlet dataReader;\n\tconst entryStream = {\n\t\tcancel: async reason => {\n\t\t\tpendingEntries.delete(entryStream);\n\t\t\tawait (dataReader ? dataReader.cancel(reason) : readable.cancel(reason));\n\t\t}\n\t};\n\tentryStream.readable = new ReadableStream({\n\t\tasync pull(controller) {\n\t\t\tif (!dataReader) {\n\t\t\t\tdataReader = readable.getReader();\n\t\t\t\tpendingEntries.add(entryStream);\n\t\t\t\tgetData();\n\t\t\t}\n\t\t\tconst { done, value } = await dataReader.read();\n\t\t\tif (done) {\n\t\t\t\tcontroller.close();\n\t\t\t} else {\n\t\t\t\tcontroller.enqueue(value);\n\t\t\t}\n\t\t},\n\t\tcancel: reason => entryStream.cancel(reason)\n\t}, { highWaterMark: 0 });\n\treturn entryStream;\n\n\tasync function getData() {\n\t\ttry {\n\t\t\tawait entry.getData(writable, { preventClose: false });\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\tawait writable.abort(error);\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t} finally {\n\t\t\tpendingEntries.delete(entryStream);\n\t\t}\n\t}\n}\n\nasync function isZipFile(reader, options = {}) {\n\treader = new GenericReader(reader);\n\tawait initStream(reader);\n\tif (reader.size === UNDEFINED_VALUE || !reader.readUint8Array) {\n\t\treader = new BlobReader(await streamToBlob(reader.readable));\n\t\tawait initStream(reader);\n\t}\n\tif (reader.size < END_OF_CENTRAL_DIR_LENGTH) {\n\t\treturn false;\n\t}\n\tconst strictness = getStrictness(options, {});\n\tconst rejectAmbiguousEndOfDirectory = strictness != STRICTNESS_TOLERANT;\n\tconst maxAppendedDataSize = getMaxAppendedDataSize(options[OPTION_MAX_APPENDED_DATA_SIZE], strictness);\n\tconst { endOfDirectoryInfo, endOfDirectoryReachingEndCount } = await findEndOfCentralDirectory(reader, rejectAmbiguousEndOfDirectory, maxAppendedDataSize);\n\tif (!endOfDirectoryInfo || (strictness == STRICTNESS_STRICT && endOfDirectoryReachingEndCount > 1)) {\n\t\treturn false;\n\t}\n\tconst commentLength = getUint16(getDataView(endOfDirectoryInfo), 20);\n\tconst appendedDataOffset = endOfDirectoryInfo.offset + END_OF_CENTRAL_DIR_LENGTH + commentLength;\n\treturn reader.size - appendedDataOffset <= maxAppendedDataSize;\n}\n\nexport {\n\tZipReader,\n\tisZipFile,\n\tZipReaderStream,\n\tERR_BAD_FORMAT,\n\tERR_EOCDR_NOT_FOUND,\n\tERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND,\n\tERR_CENTRAL_DIRECTORY_NOT_FOUND,\n\tERR_LOCAL_FILE_HEADER_NOT_FOUND,\n\tERR_EXTRAFIELD_ZIP64_NOT_FOUND,\n\tERR_ENCRYPTED,\n\tERR_UNSUPPORTED_ENCRYPTION,\n\tERR_UNSUPPORTED_COMPRESSION,\n\tERR_INVALID_CRC32,\n\tERR_INVALID_AUTHENTICATION_CODE,\n\tERR_INVALID_PASSWORD,\n\tERR_INVALID_UNCOMPRESSED_SIZE,\n\tERR_INVALID_COMPRESSED_DATA,\n\tERR_CODEC_OUT_OF_MEMORY,\n\tERR_SPLIT_ZIP_FILE,\n\tERR_OVERLAPPING_ENTRY,\n\tERR_ENTRY_DATA_OUT_OF_BOUNDS,\n\tERR_AMBIGUOUS_ARCHIVE,\n\tERR_ENCRYPTED_CENTRAL_DIRECTORY,\n\tERR_UNSAFE_FILENAME,\n\tERR_INVALID_STRICTNESS,\n\tERR_INVALID_FILENAME_VALIDATION,\n\tERR_INVALID_MAX_APPENDED_DATA_SIZE,\n\tERR_UNSUPPORTED_UINT64,\n\tERR_WORKER_STARTUP_TIMEOUT,\n\tWARNING_UNSORTED_CENTRAL_DIRECTORY,\n\tWARNING_UNKNOWN_VERSION,\n\tWARNING_COMPRESSED_PATCHED_DATA,\n\tWARNING_MALFORMED_EXTRA_FIELD,\n\tWARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA,\n\tWARNING_WRAPPED_ENTRIES_COUNT,\n\tWARNING_APPENDED_DATA,\n\tWARNING_PREPENDED_DATA,\n\tWARNING_PREPENDED_CENTRAL_DIRECTORY,\n\tWARNING_TRAILING_CENTRAL_DIRECTORY_DATA,\n\tWARNING_DUPLICATE_FILENAME,\n\tWARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY,\n\tWARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY,\n\tWARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME,\n\tWARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG,\n\tWARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD,\n\tWARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES\n};\n\nclass ZipEntry {\n\n\tconstructor(reader, options) {\n\t\tObject.assign(this, {\n\t\t\treader,\n\t\t\toptions\n\t\t});\n\t}\n\n\tasync getData(writer, fileEntry, readRanges, options = {}) {\n\t\tconst zipEntry = this;\n\t\tconst config = getConfiguration();\n\t\tconst {\n\t\t\treader,\n\t\t\tindex,\n\t\t\toffset,\n\t\t\tdiskNumberStart,\n\t\t\textraFieldAES,\n\t\t\textraFieldZip64,\n\t\t\tcompressionMethod,\n\t\t\tbitFlag,\n\t\t\trawBitFlag,\n\t\t\tcrc32,\n\t\t\trawLastModDate,\n\t\t\tuncompressedSize,\n\t\t\tcompressedSize\n\t\t} = zipEntry;\n\t\tconst {\n\t\t\tdataDescriptor\n\t\t} = bitFlag;\n\t\tconst localDirectory = fileEntry.localDirectory = {};\n\t\tconst warnings = fileEntry.warnings = [];\n\t\tconst localHeaderOffset = getDiskOffset(reader, diskNumberStart) + offset;\n\t\tconst dataArray = await readUint8Array(reader, localHeaderOffset, HEADER_SIZE);\n\t\tconst dataView = getDataView(dataArray);\n\t\tlet password = getOptionValue(zipEntry, options, OPTION_PASSWORD);\n\t\tlet rawPassword = getOptionValue(zipEntry, options, OPTION_RAW_PASSWORD);\n\t\tconst passThrough = checkPassThroughOption(getOptionValue(zipEntry, options, OPTION_PASS_THROUGH));\n\t\tconst passThroughCompression = Boolean(passThrough);\n\t\tconst passThroughEncryption = passThrough === true;\n\t\tcheckPasswordOption(password, rawPassword);\n\t\tpassword = password && password.length ? password : UNDEFINED_VALUE;\n\t\trawPassword = rawPassword && rawPassword.length ? rawPassword : UNDEFINED_VALUE;\n\t\tif (extraFieldAES) {\n\t\t\tif (extraFieldAES.originalCompressionMethod != COMPRESSION_METHOD_AES) {\n\t\t\t\tthrow new Error(ERR_UNSUPPORTED_COMPRESSION);\n\t\t\t}\n\t\t}\n\t\tif (dataArray.length < HEADER_SIZE || getUint32(dataView, 0) != LOCAL_FILE_HEADER_SIGNATURE) {\n\t\t\tthrow new Error(ERR_LOCAL_FILE_HEADER_NOT_FOUND);\n\t\t}\n\t\treadCommonHeader(localDirectory, dataView, 4);\n\t\tconst {\n\t\t\textraFieldLength,\n\t\t\tfilenameLength\n\t\t} = localDirectory;\n\t\tconst dataOffset = localDirectory.dataOffset = localHeaderOffset + HEADER_SIZE + filenameLength + extraFieldLength;\n\t\tconst checkLocalDirectoryOption = getOptionValue(zipEntry, options, OPTION_CHECK_LOCAL_DIRECTORY);\n\t\tconst entryStrictness = getStrictness(options, zipEntry.options);\n\t\tconst checkLocalDirectory = getCheckLocalDirectory(checkLocalDirectoryOption, entryStrictness);\n\t\tconst checkLocalFilenameOption = getOptionValue(zipEntry, options, OPTION_CHECK_LOCAL_FILENAME);\n\t\tconst checkLocalFilename = getCheckLocalFilename(\n\t\t\tcheckLocalFilenameOption === UNDEFINED_VALUE ? checkLocalDirectoryOption : checkLocalFilenameOption, entryStrictness);\n\t\tlet rawLocalFilename = EMPTY_UINT8_ARRAY;\n\t\tif (checkLocalFilename && (filenameLength || extraFieldLength)) {\n\t\t\tconst trailingDataArray = await readUint8Array(reader, localHeaderOffset + HEADER_SIZE, filenameLength + extraFieldLength);\n\t\t\trawLocalFilename = trailingDataArray.subarray(0, filenameLength);\n\t\t\tlocalDirectory.rawExtraField = trailingDataArray.subarray(filenameLength);\n\t\t} else {\n\t\t\tlocalDirectory.rawExtraField = extraFieldLength ?\n\t\t\t\tawait readUint8Array(reader, localHeaderOffset + HEADER_SIZE + filenameLength, extraFieldLength) :\n\t\t\t\tEMPTY_UINT8_ARRAY;\n\t\t}\n\t\tif (checkLocalFilename) {\n\t\t\tlocalDirectory.rawFilename = rawLocalFilename;\n\t\t}\n\t\tif (readCommonFooter(zipEntry, localDirectory, dataView, 4, true)) {\n\t\t\taddWarning(warnings, WARNING_MALFORMED_EXTRA_FIELD);\n\t\t}\n\t\tvalidateLocalDirectory(zipEntry, localDirectory, rawLocalFilename, checkLocalFilename, checkLocalDirectory ? UNDEFINED_VALUE : warnings);\n\t\tconst { lastAccessDate, creationDate, uid, gid } = localDirectory;\n\t\tif (lastAccessDate) {\n\t\t\tfileEntry.lastAccessDate = lastAccessDate;\n\t\t}\n\t\tif (creationDate) {\n\t\t\tfileEntry.creationDate = creationDate;\n\t\t}\n\t\tif (uid !== UNDEFINED_VALUE && fileEntry.uid === UNDEFINED_VALUE) {\n\t\t\tfileEntry.uid = uid;\n\t\t}\n\t\tif (gid !== UNDEFINED_VALUE && fileEntry.gid === UNDEFINED_VALUE) {\n\t\t\tfileEntry.gid = gid;\n\t\t}\n\t\tconst checkPasswordOnly = getOptionValue(zipEntry, options, OPTION_CHECK_PASSWORD_ONLY);\n\t\tconst encrypted = zipEntry.encrypted && (!passThroughEncryption || checkPasswordOnly);\n\t\tconst zipCrypto = encrypted && !extraFieldAES;\n\t\tif (!passThroughEncryption) {\n\t\t\tfileEntry.zipCrypto = zipCrypto;\n\t\t}\n\t\tif (encrypted && (zipEntry.rawBitFlag & BITFLAG_STRONG_ENCRYPTION) == BITFLAG_STRONG_ENCRYPTION) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_ENCRYPTION);\n\t\t}\n\t\tconst registeredCodec = passThroughCompression ? UNDEFINED_VALUE : getRegisteredCodec(compressionMethod);\n\t\tif (compressionMethod != COMPRESSION_METHOD_STORE && compressionMethod != COMPRESSION_METHOD_DEFLATE && compressionMethod != COMPRESSION_METHOD_DEFLATE_64 && !registeredCodec && !passThroughCompression) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_COMPRESSION);\n\t\t}\n\t\tif (encrypted) {\n\t\t\tif (!zipCrypto && (extraFieldAES.strength < 1 || extraFieldAES.strength > 3)) {\n\t\t\t\tthrow new Error(ERR_UNSUPPORTED_ENCRYPTION);\n\t\t\t} else if (!password && !rawPassword) {\n\t\t\t\tthrow new Error(ERR_ENCRYPTED);\n\t\t\t}\n\t\t}\n\t\tif (dataOffset + compressedSize > reader.size) {\n\t\t\tthrow new Error(ERR_ENTRY_DATA_OUT_OF_BOUNDS);\n\t\t}\n\t\tconst size = compressedSize;\n\t\tconst signal = checkSignalOption(getOptionValue(zipEntry, options, OPTION_SIGNAL));\n\t\tthrowIfAborted(signal);\n\t\tlet checkOverlappingEntry = getOptionValue(zipEntry, options, OPTION_CHECK_OVERLAPPING_ENTRY);\n\t\tconst checkOverlappingEntryOnly = getOptionValue(zipEntry, options, OPTION_CHECK_OVERLAPPING_ENTRY_ONLY);\n\t\tif (checkOverlappingEntryOnly) {\n\t\t\tcheckOverlappingEntry = true;\n\t\t}\n\t\tconst { onstart, onprogress, onend } = options;\n\t\tconst compressed = compressionMethod != COMPRESSION_METHOD_STORE && !passThroughCompression;\n\t\tconst outputSize = passThroughCompression ?\n\t\t\tcompressedSize - getEncryptionOverhead(encrypted, zipCrypto, extraFieldAES && extraFieldAES.strength) :\n\t\t\tuncompressedSize;\n\t\tconst deflate64 = compressionMethod == COMPRESSION_METHOD_DEFLATE_64;\n\t\tlet useCompressionStream = getOptionValue(zipEntry, options, OPTION_USE_COMPRESSION_STREAM);\n\t\tif (deflate64) {\n\t\t\tuseCompressionStream = false;\n\t\t}\n\t\tconst checkCrc32Option = getOptionValue(zipEntry, options, OPTION_CHECK_CRC32);\n\t\tconst checkCrc32 = (checkCrc32Option === UNDEFINED_VALUE ?\n\t\t\tgetOptionValue(zipEntry, options, OPTION_CHECK_SIGNATURE) :\n\t\t\tcheckCrc32Option) && !passThroughCompression &&\n\t\t\t(!encrypted || zipCrypto || (extraFieldAES && extraFieldAES.vendorVersion == VENDOR_VERSION_AE_1));\n\t\tconst workerOptions = {\n\t\t\toptions: {\n\t\t\t\tcodecType: CODEC_INFLATE,\n\t\t\t\tpassword,\n\t\t\t\trawPassword,\n\t\t\t\tzipCrypto,\n\t\t\t\tencryptionStrength: extraFieldAES && extraFieldAES.strength,\n\t\t\t\tcheckCrc32,\n\t\t\t\tcheckAuthenticationCode: getOptionValue(zipEntry, options, OPTION_CHECK_AUTHENTICATION_CODE),\n\t\t\t\tpasswordVerification: zipCrypto && (dataDescriptor ? ((rawLastModDate >>> 8) & MAX_8_BITS) : ((crc32 >>> 24) & MAX_8_BITS)),\n\t\t\t\toutputSize,\n\t\t\t\tcrc32,\n\t\t\t\tcompressed,\n\t\t\t\tencrypted,\n\t\t\t\tuseWebWorkers: getOptionValue(zipEntry, options, OPTION_USE_WEB_WORKERS),\n\t\t\t\tuseCompressionStream,\n\t\t\t\ttransferStreams: getOptionValue(zipEntry, options, OPTION_TRANSFER_STREAMS),\n\t\t\t\tdeflate64,\n\t\t\t\tformat: registeredCodec ? registeredCodec.format : UNDEFINED_VALUE,\n\t\t\t\tcodecURI: registeredCodec ? registeredCodec.codecURI : UNDEFINED_VALUE,\n\t\t\t\tcompressionMethod,\n\t\t\t\trawBitFlag,\n\t\t\t\tcheckPasswordOnly\n\t\t\t},\n\t\t\tconfig,\n\t\t\tstreamOptions: { signal, size, onstart, onprogress, onend }\n\t\t};\n\t\tif (checkOverlappingEntry) {\n\t\t\tawait detectOverlappingEntry({\n\t\t\t\treader,\n\t\t\t\tfileEntry,\n\t\t\t\tindex,\n\t\t\t\toffset: localHeaderOffset,\n\t\t\t\tcrc32,\n\t\t\t\tcompressedSize,\n\t\t\t\tuncompressedSize,\n\t\t\t\tdataOffset,\n\t\t\t\tdataDescriptor: dataDescriptor || localDirectory.bitFlag.dataDescriptor,\n\t\t\t\textraFieldZip64: extraFieldZip64 || localDirectory.extraFieldZip64,\n\t\t\t\treadRanges\n\t\t\t});\n\t\t}\n\t\tlet writable, abortError, aborted;\n\t\ttry {\n\t\t\tif (!checkOverlappingEntryOnly) {\n\t\t\t\tif (checkPasswordOnly) {\n\t\t\t\t\twriter = new WritableStream();\n\t\t\t\t}\n\t\t\t\twriter = new GenericWriter(writer);\n\t\t\t\tawait initStream(writer, getDecodableOutputSize(outputSize, compressedSize, compressed));\n\t\t\t\t({ writable } = writer);\n\t\t\t\tconst readable = toCompatibleReadable(reader.createReadable({ offset: dataOffset, size }));\n\t\t\t\tconst { outputSize: writtenSize } = await runWorker({ readable, writable }, workerOptions);\n\t\t\t\tthrowIfAborted(signal);\n\t\t\t\tif (writtenSize != outputSize) {\n\t\t\t\t\tthrow Object.assign(new Error(ERR_INVALID_UNCOMPRESSED_SIZE), { outputSize: writtenSize });\n\t\t\t\t}\n\t\t\t\twriter.size += writtenSize;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst { outputSize: failedOutputSize } = workerOptions;\n\t\t\tif (failedOutputSize !== UNDEFINED_VALUE) {\n\t\t\t\twriter.size += failedOutputSize;\n\t\t\t} else if (isErrorObject(error) && error.outputSize !== UNDEFINED_VALUE) {\n\t\t\t\twriter.size += error.outputSize;\n\t\t\t}\n\t\t\tif (!checkPasswordOnly || !isErrorObject(error) || error.message != ERR_ABORT_CHECK_PASSWORD) {\n\t\t\t\tabortError = error;\n\t\t\t\taborted = true;\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t} finally {\n\t\t\tconst preventClose = !ownsWritable(writer) && getOptionValue(zipEntry, options, OPTION_PREVENT_CLOSE);\n\t\t\tif (!preventClose && writable && !writable.locked) {\n\t\t\t\tconst writableWriter = writable.getWriter();\n\t\t\t\tif (aborted) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait writableWriter.abort(abortError);\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// the error being propagated is more relevant; ignored\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tawait writableWriter.close();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn checkPasswordOnly || checkOverlappingEntryOnly ? UNDEFINED_VALUE : writer.getData ? writer.getData() : writable;\n\t}\n}\n\nfunction detectEncryptedCentralDirectory(directoryView) {\n\tconst maxOffset = Math.min(directoryView.byteLength, 1024) - 3;\n\tfor (let offset = 0; offset < maxOffset; offset++) {\n\t\tif (getUint32(directoryView, offset) == ARCHIVE_EXTRA_DATA_SIGNATURE) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction getWrappedFilesLength(directoryView, directoryArray, offset) {\n\tlet wrappedFilesLength = 0;\n\twhile (offset + CENTRAL_FILE_HEADER_LENGTH <= directoryArray.length && getUint32(directoryView, offset) == CENTRAL_FILE_HEADER_SIGNATURE) {\n\t\toffset += CENTRAL_FILE_HEADER_LENGTH +\n\t\t\tgetUint16(directoryView, offset + 28) + getUint16(directoryView, offset + 30) + getUint16(directoryView, offset + 32);\n\t\twrappedFilesLength++;\n\t}\n\treturn wrappedFilesLength % (MAX_16_BITS + 1) ? 0 : wrappedFilesLength;\n}\n\nfunction readDigitalSignature(signatureRecordArray) {\n\tif (signatureRecordArray.length >= 6) {\n\t\tconst signatureRecordView = getDataView(signatureRecordArray);\n\t\tif (getUint32(signatureRecordView, 0) == DIGITAL_SIGNATURE_RECORD_SIGNATURE) {\n\t\t\tconst signatureDataLength = getUint16(signatureRecordView, 4);\n\t\t\tif (6 + signatureDataLength <= signatureRecordArray.length) {\n\t\t\t\treturn new Uint8Array(signatureRecordArray.subarray(6, 6 + signatureDataLength));\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction getEncryptedDirectoryDataLength(directoryEncryptionInfo, declaredDirectoryDataLength, directoryDataLength) {\n\tconst encryptedDirectoryDataLength = directoryEncryptionInfo && directoryEncryptionInfo.compressedSize ?\n\t\tdirectoryEncryptionInfo.compressedSize :\n\t\tdeclaredDirectoryDataLength;\n\treturn encryptedDirectoryDataLength > 0 && encryptedDirectoryDataLength <= directoryDataLength ?\n\t\tencryptedDirectoryDataLength :\n\t\tdirectoryDataLength;\n}\n\nfunction getDirectoryEncryptionInfo(rawExtensibleData) {\n\tconst directoryEncryptionInfo = { rawExtensibleData };\n\tif (rawExtensibleData.length >= 28) {\n\t\tconst extensibleDataView = getDataView(rawExtensibleData);\n\t\tconst hashDataLength = getUint16(extensibleDataView, 26);\n\t\tObject.assign(directoryEncryptionInfo, {\n\t\t\tcompressionMethod: getUint16(extensibleDataView, 0),\n\t\t\tcompressedSize: getBigUint64(extensibleDataView, 2),\n\t\t\tuncompressedSize: getBigUint64(extensibleDataView, 10),\n\t\t\tencryptionAlgorithm: getUint16(extensibleDataView, 18),\n\t\t\tbitLength: getUint16(extensibleDataView, 20),\n\t\t\tflags: getUint16(extensibleDataView, 22),\n\t\t\thashAlgorithm: getUint16(extensibleDataView, 24),\n\t\t\thashData: rawExtensibleData.subarray(28, 28 + hashDataLength)\n\t\t});\n\t}\n\treturn directoryEncryptionInfo;\n}\n\nfunction readCommonHeader(directory, dataView, offset) {\n\tconst rawBitFlag = directory.rawBitFlag = getUint16(dataView, offset + 2);\n\tconst encrypted = (rawBitFlag & BITFLAG_ENCRYPTED) == BITFLAG_ENCRYPTED;\n\tconst rawLastModDate = getUint32(dataView, offset + 6);\n\tObject.assign(directory, {\n\t\tencrypted,\n\t\tversion: getUint16(dataView, offset),\n\t\tbitFlag: {\n\t\t\tlevel: (rawBitFlag & BITFLAG_LEVEL) >> 1,\n\t\t\tdataDescriptor: (rawBitFlag & BITFLAG_DATA_DESCRIPTOR) == BITFLAG_DATA_DESCRIPTOR,\n\t\t\tlanguageEncodingFlag: (rawBitFlag & BITFLAG_LANG_ENCODING_FLAG) == BITFLAG_LANG_ENCODING_FLAG\n\t\t},\n\t\trawLastModDate,\n\t\tlastModDate: getDate(rawLastModDate),\n\t\tfilenameLength: getUint16(dataView, offset + 22),\n\t\textraFieldLength: getUint16(dataView, offset + 24)\n\t});\n}\n\nfunction readCommonFooter(fileEntry, directory, dataView, offset, localDirectory) {\n\tconst { rawExtraField } = directory;\n\tconst extraField = directory.extraField = new Map();\n\tconst rawExtraFieldView = getDataView(rawExtraField);\n\tlet offsetExtraField = 0;\n\tlet malformedExtraField = false;\n\ttry {\n\t\twhile (offsetExtraField < rawExtraField.length) {\n\t\t\tconst type = getUint16(rawExtraFieldView, offsetExtraField);\n\t\t\tconst size = getUint16(rawExtraFieldView, offsetExtraField + 2);\n\t\t\textraField.set(type, {\n\t\t\t\ttype,\n\t\t\t\tdata: rawExtraField.slice(offsetExtraField + 4, offsetExtraField + 4 + size)\n\t\t\t});\n\t\t\toffsetExtraField += 4 + size;\n\t\t}\n\t} catch {\n\t\tmalformedExtraField = true;\n\t}\n\tif (offsetExtraField > rawExtraField.length) {\n\t\tmalformedExtraField = true;\n\t}\n\tconst compressionMethod = getUint16(dataView, offset + 4);\n\tObject.assign(directory, {\n\t\tsignature: getUint32(dataView, offset + HEADER_OFFSET_SIGNATURE),\n\t\tcrc32: getUint32(dataView, offset + HEADER_OFFSET_SIGNATURE),\n\t\tcompressedSize: getUint32(dataView, offset + HEADER_OFFSET_COMPRESSED_SIZE),\n\t\tuncompressedSize: getUint32(dataView, offset + HEADER_OFFSET_UNCOMPRESSED_SIZE)\n\t});\n\tconst extraFieldZip64 = extraField.get(EXTRAFIELD_TYPE_ZIP64);\n\tif (extraFieldZip64) {\n\t\tif (!readExtraFieldZip64(extraFieldZip64, directory, localDirectory)) {\n\t\t\tmalformedExtraField = true;\n\t\t}\n\t\tdirectory.extraFieldZip64 = extraFieldZip64;\n\t} else if (ZIP64_PROPERTIES.some(([propertyName, max]) => directory[propertyName] == max)) {\n\t\tif (localDirectory) {\n\t\t\tmalformedExtraField = true;\n\t\t} else {\n\t\t\tthrow new Error(ERR_EXTRAFIELD_ZIP64_NOT_FOUND);\n\t\t}\n\t}\n\tconst extraFieldUnicodePath = extraField.get(EXTRAFIELD_TYPE_UNICODE_PATH);\n\tif (extraFieldUnicodePath) {\n\t\treadExtraFieldUnicode(extraFieldUnicodePath, PROPERTY_NAME_FILENAME, PROPERTY_NAME_RAW_FILENAME, directory, fileEntry);\n\t\tdirectory.extraFieldUnicodePath = extraFieldUnicodePath;\n\t}\n\tconst extraFieldUnicodeComment = extraField.get(EXTRAFIELD_TYPE_UNICODE_COMMENT);\n\tif (extraFieldUnicodeComment) {\n\t\treadExtraFieldUnicode(extraFieldUnicodeComment, PROPERTY_NAME_COMMENT, PROPERTY_NAME_RAW_COMMENT, directory, fileEntry);\n\t\tdirectory.extraFieldUnicodeComment = extraFieldUnicodeComment;\n\t}\n\tconst extraFieldAES = extraField.get(EXTRAFIELD_TYPE_AES);\n\tif (extraFieldAES && (compressionMethod == COMPRESSION_METHOD_AES || directory.encrypted) && extraFieldAES.data.length >= 7) {\n\t\treadExtraFieldAES(extraFieldAES, directory, compressionMethod);\n\t\tdirectory.extraFieldAES = extraFieldAES;\n\t} else {\n\t\tif (extraFieldAES) {\n\t\t\tmalformedExtraField = true;\n\t\t}\n\t\tdirectory.compressionMethod = compressionMethod;\n\t}\n\tconst extraFieldPkwareUnix = extraField.get(EXTRAFIELD_TYPE_PKWARE_UNIX);\n\tif (extraFieldPkwareUnix) {\n\t\treadExtraFieldUnixDates(extraFieldPkwareUnix, directory);\n\t\tdirectory.extraFieldPkwareUnix = extraFieldPkwareUnix;\n\t}\n\tconst extraFieldUnixType1 = extraField.get(EXTRAFIELD_TYPE_UNIX_TYPE1);\n\tif (extraFieldUnixType1) {\n\t\treadExtraFieldUnixDates(extraFieldUnixType1, directory);\n\t\tdirectory.extraFieldUnixType1 = extraFieldUnixType1;\n\t}\n\tconst extraFieldNTFS = extraField.get(EXTRAFIELD_TYPE_NTFS);\n\tif (extraFieldNTFS) {\n\t\treadExtraFieldNTFS(extraFieldNTFS, directory);\n\t\tdirectory.extraFieldNTFS = extraFieldNTFS;\n\t}\n\tconst extraFieldUnix = extraField.get(EXTRAFIELD_TYPE_UNIX);\n\tlet unixIdsRead;\n\tif (extraFieldUnix) {\n\t\tunixIdsRead = readExtraFieldUnix(extraFieldUnix, directory, false);\n\t\tdirectory.extraFieldUnix = extraFieldUnix;\n\t}\n\tif (!unixIdsRead) {\n\t\tconst extraFieldInfoZip = extraField.get(EXTRAFIELD_TYPE_INFOZIP);\n\t\tif (extraFieldInfoZip) {\n\t\t\treadExtraFieldUnix(extraFieldInfoZip, directory, true);\n\t\t\tdirectory.extraFieldInfoZip = extraFieldInfoZip;\n\t\t}\n\t}\n\tconst extraFieldExtendedTimestamp = extraField.get(EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);\n\tif (extraFieldExtendedTimestamp) {\n\t\treadExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory, localDirectory);\n\t\tdirectory.extraFieldExtendedTimestamp = extraFieldExtendedTimestamp;\n\t}\n\tconst extraFieldUSDZ = extraField.get(EXTRAFIELD_TYPE_USDZ);\n\tif (extraFieldUSDZ) {\n\t\tdirectory.extraFieldUSDZ = extraFieldUSDZ;\n\t}\n\treturn malformedExtraField;\n}\n\nfunction readExtraFieldZip64(extraFieldZip64, directory, localDirectory) {\n\tdirectory.zip64 = true;\n\tconst extraFieldView = getDataView(extraFieldZip64.data);\n\tconst missingProperties = ZIP64_PROPERTIES.filter(([propertyName, max]) => directory[propertyName] == max);\n\tconst requiredLength = missingProperties.reduce((length, [, max]) => length + ZIP64_EXTRACTION[max].bytes, 0);\n\tif (extraFieldZip64.data.length < requiredLength) {\n\t\tif (localDirectory) {\n\t\t\treturn false;\n\t\t}\n\t\tthrow new Error(ERR_EXTRAFIELD_ZIP64_NOT_FOUND);\n\t}\n\tconst values = [];\n\ttry {\n\t\tfor (let indexMissingProperty = 0, offset = 0; indexMissingProperty < missingProperties.length; indexMissingProperty++) {\n\t\t\tconst [, max] = missingProperties[indexMissingProperty];\n\t\t\tconst extraction = ZIP64_EXTRACTION[max];\n\t\t\tvalues.push(extraction.getValue(extraFieldView, offset));\n\t\t\toffset += extraction.bytes;\n\t\t}\n\t} catch (error) {\n\t\tif (localDirectory) {\n\t\t\treturn false;\n\t\t}\n\t\tthrow error;\n\t}\n\tmissingProperties.forEach(([propertyName], indexMissingProperty) => {\n\t\tdirectory[propertyName] = extraFieldZip64[propertyName] = values[indexMissingProperty];\n\t});\n\treturn true;\n}\n\nfunction readExtraFieldUnicode(extraFieldUnicode, propertyName, rawPropertyName, directory, fileEntry) {\n\tif (extraFieldUnicode.data.length < 5) {\n\t\textraFieldUnicode.valid = false;\n\t\treturn;\n\t}\n\tconst extraFieldView = getDataView(extraFieldUnicode.data);\n\tconst computedCrc32 = new Crc32();\n\tcomputedCrc32.append(fileEntry[rawPropertyName]);\n\tconst computedCrc32View = getDataView(new Uint8Array(4));\n\tcomputedCrc32View.setUint32(0, computedCrc32.get(), true);\n\tconst nameCrc32 = getUint32(extraFieldView, 1);\n\tconst version = getUint8(extraFieldView, 0);\n\tObject.assign(extraFieldUnicode, {\n\t\tversion,\n\t\t[propertyName]: decodeText(extraFieldUnicode.data.subarray(5)),\n\t\tvalid: version == 1 && !fileEntry.bitFlag.languageEncodingFlag && nameCrc32 == getUint32(computedCrc32View, 0)\n\t});\n\tif (extraFieldUnicode.valid) {\n\t\tdirectory[propertyName] = extraFieldUnicode[propertyName];\n\t\tdirectory[propertyName + PROPERTY_NAME_UTF8_SUFFIX] = true;\n\t}\n}\n\nfunction readExtraFieldAES(extraFieldAES, directory, compressionMethod) {\n\tconst extraFieldView = getDataView(extraFieldAES.data);\n\tconst strength = getUint8(extraFieldView, 4);\n\tObject.assign(extraFieldAES, {\n\t\tvendorVersion: getUint8(extraFieldView, 0),\n\t\tvendorId: getUint8(extraFieldView, 2),\n\t\tstrength,\n\t\toriginalCompressionMethod: compressionMethod,\n\t\tcompressionMethod: getUint16(extraFieldView, 5)\n\t});\n\tdirectory.compressionMethod = extraFieldAES.compressionMethod;\n\tif (extraFieldAES.vendorVersion != VENDOR_VERSION_AE_1) {\n\t\tdirectory.crc32 = UNDEFINED_VALUE;\n\t}\n}\n\nfunction readExtraFieldNTFS(extraFieldNTFS, directory) {\n\tconst extraFieldView = getDataView(extraFieldNTFS.data);\n\tlet offsetExtraField = 4;\n\tlet tag1Data;\n\ttry {\n\t\twhile (offsetExtraField < extraFieldNTFS.data.length && !tag1Data) {\n\t\t\tconst tagValue = getUint16(extraFieldView, offsetExtraField);\n\t\t\tconst attributeSize = getUint16(extraFieldView, offsetExtraField + 2);\n\t\t\tif (tagValue == EXTRAFIELD_TYPE_NTFS_TAG1) {\n\t\t\t\ttag1Data = extraFieldNTFS.data.slice(offsetExtraField + 4, offsetExtraField + 4 + attributeSize);\n\t\t\t}\n\t\t\toffsetExtraField += 4 + attributeSize;\n\t\t}\n\t} catch {\n\t\t// ignored\n\t}\n\tif (tag1Data && tag1Data.length == 24) {\n\t\tconst tag1View = getDataView(tag1Data);\n\t\tconst rawLastModDate = tag1View.getBigUint64(0, true);\n\t\tconst rawLastAccessDate = tag1View.getBigUint64(8, true);\n\t\tconst rawCreationDate = tag1View.getBigUint64(16, true);\n\t\tObject.assign(extraFieldNTFS, {\n\t\t\trawLastModDate,\n\t\t\trawLastAccessDate,\n\t\t\trawCreationDate\n\t\t});\n\t\tconst lastModDate = getDateNTFS(rawLastModDate);\n\t\tconst lastAccessDate = getDateNTFS(rawLastAccessDate);\n\t\tconst creationDate = getDateNTFS(rawCreationDate);\n\t\tconst extraFieldData = { lastModDate, lastAccessDate, creationDate };\n\t\tObject.assign(extraFieldNTFS, extraFieldData);\n\t\tObject.assign(directory, extraFieldData, { rawLastAccessDate, rawCreationDate });\n\t}\n}\n\nfunction readExtraFieldUnixDates(extraField, directory) {\n\tif (extraField.data.length < 8) {\n\t\treturn;\n\t}\n\tconst extraFieldView = getDataView(extraField.data);\n\tconst lastAccessDate = new Date((getUint32(extraFieldView, 0) | 0) * 1000);\n\tconst lastModDate = new Date((getUint32(extraFieldView, 4) | 0) * 1000);\n\tconst extraFieldData = { lastAccessDate, lastModDate };\n\tif (extraField.data.length >= 12) {\n\t\textraFieldData.uid = getUint16(extraFieldView, 8);\n\t\textraFieldData.gid = getUint16(extraFieldView, 10);\n\t}\n\tObject.assign(extraField, extraFieldData);\n\tObject.assign(directory, extraFieldData);\n}\n\nfunction readExtraFieldUnix(extraField, directory, isInfoZip) {\n\ttry {\n\t\tconst view = getDataView(extraField.data);\n\t\tlet uid, gid;\n\t\tif (isInfoZip) {\n\t\t\tlet offset = 0;\n\t\t\tconst version = getUint8(view, offset++);\n\t\t\tconst uidSize = getUint8(view, offset++);\n\t\t\tuid = unpackUnixId(extraField.data.subarray(offset, offset + uidSize));\n\t\t\toffset += uidSize;\n\t\t\tconst gidSize = getUint8(view, offset++);\n\t\t\tgid = unpackUnixId(extraField.data.subarray(offset, offset + gidSize));\n\t\t\tObject.assign(extraField, { version, uid, gid });\n\t\t} else if (extraField.data.length >= 4) {\n\t\t\tuid = getUint16(view, 0);\n\t\t\tgid = getUint16(view, 2);\n\t\t\tObject.assign(extraField, { uid, gid });\n\t\t}\n\t\tif (uid !== UNDEFINED_VALUE) {\n\t\t\tdirectory.uid = uid;\n\t\t}\n\t\tif (gid !== UNDEFINED_VALUE) {\n\t\t\tdirectory.gid = gid;\n\t\t}\n\t\treturn uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE;\n\t} catch {\n\t\t// ignored\n\t}\n}\n\nfunction unpackUnixId(bytes) {\n\tconst buffer = new Uint8Array(4);\n\tbuffer.set(bytes, 0);\n\tconst view = new DataView(buffer.buffer, buffer.byteOffset, 4);\n\treturn view.getUint32(0, true);\n}\n\nfunction readExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory, localDirectory) {\n\tif (!extraFieldExtendedTimestamp.data.length) {\n\t\treturn;\n\t}\n\tconst extraFieldView = getDataView(extraFieldExtendedTimestamp.data);\n\tconst flags = getUint8(extraFieldView, 0);\n\tconst timeProperties = [];\n\tconst timeRawProperties = [];\n\tif (localDirectory) {\n\t\tif ((flags & 0x1) == 0x1) {\n\t\t\ttimeProperties.push(PROPERTY_NAME_LAST_MODIFICATION_DATE);\n\t\t\ttimeRawProperties.push(PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE);\n\t\t}\n\t\tif ((flags & 0x2) == 0x2) {\n\t\t\ttimeProperties.push(PROPERTY_NAME_LAST_ACCESS_DATE);\n\t\t\ttimeRawProperties.push(PROPERTY_NAME_RAW_LAST_ACCESS_DATE);\n\t\t}\n\t\tif ((flags & 0x4) == 0x4) {\n\t\t\ttimeProperties.push(PROPERTY_NAME_CREATION_DATE);\n\t\t\ttimeRawProperties.push(PROPERTY_NAME_RAW_CREATION_DATE);\n\t\t}\n\t} else if (extraFieldExtendedTimestamp.data.length >= 5) {\n\t\ttimeProperties.push(PROPERTY_NAME_LAST_MODIFICATION_DATE);\n\t\ttimeRawProperties.push(PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE);\n\t}\n\tlet offset = 1;\n\ttimeProperties.forEach((propertyName, indexProperty) => {\n\t\tif (extraFieldExtendedTimestamp.data.length >= offset + 4) {\n\t\t\tconst time = getUint32(extraFieldView, offset);\n\t\t\tdirectory[propertyName] = extraFieldExtendedTimestamp[propertyName] = new Date((time | 0) * 1000);\n\t\t\tconst rawPropertyName = timeRawProperties[indexProperty];\n\t\t\textraFieldExtendedTimestamp[rawPropertyName] = time;\n\t\t}\n\t\toffset += 4;\n\t});\n}\n\nasync function detectOverlappingEntry({\n\treader,\n\tfileEntry,\n\tindex,\n\toffset,\n\tcrc32,\n\tcompressedSize,\n\tuncompressedSize,\n\tdataOffset,\n\tdataDescriptor,\n\textraFieldZip64,\n\treadRanges\n}) {\n\tlet dataDescriptorLength = 0;\n\tif (dataDescriptor) {\n\t\tconst zip64 = Boolean(extraFieldZip64);\n\t\tconst dataDescriptorArray = await readUint8Array(reader, dataOffset + compressedSize, DATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH + DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH);\n\t\tconst dataDescriptorView = getDataView(dataDescriptorArray);\n\t\tconst candidates = [[zip64, true], [zip64, false], [!zip64, true], [!zip64, false]]\n\t\t\t.map(([zip64Layout, signature]) => readDataDescriptor(dataDescriptorView, zip64Layout, signature))\n\t\t\t.filter(candidate => candidate && candidate.compressedSize == compressedSize && candidate.uncompressedSize == uncompressedSize);\n\t\tconst localDataDescriptor = candidates.find(candidate => candidate.crc32 == crc32) || candidates[0] ||\n\t\t\treadDataDescriptor(dataDescriptorView, zip64, true) || readDataDescriptor(dataDescriptorView, zip64, false);\n\t\tif (localDataDescriptor) {\n\t\t\tfileEntry.localDirectory.dataDescriptor = localDataDescriptor;\n\t\t\tdataDescriptorLength = getDataDescriptorLength(localDataDescriptor.zip64, localDataDescriptor.signature);\n\t\t} else {\n\t\t\tdataDescriptorLength = getDataDescriptorLength(zip64, false);\n\t\t}\n\t}\n\tconst range = {\n\t\tstart: offset,\n\t\tend: dataOffset + compressedSize + dataDescriptorLength,\n\t\tfileEntry\n\t};\n\tconst { indexes, sortedRanges, pendingRanges } = readRanges;\n\tif (!indexes.has(index)) {\n\t\tconst overlappingRange = findOverlappingRange(sortedRanges, range) || pendingRanges.find(otherRange => rangesOverlap(range, otherRange));\n\t\tif (overlappingRange) {\n\t\t\tconst error = new Error(ERR_OVERLAPPING_ENTRY);\n\t\t\terror.overlappingEntry = overlappingRange.fileEntry;\n\t\t\tthrow error;\n\t\t}\n\t\tindexes.add(index);\n\t\tpendingRanges.push(range);\n\t\tif (pendingRanges.length * pendingRanges.length > sortedRanges.length) {\n\t\t\tpendingRanges.sort((range, otherRange) => range.start - otherRange.start);\n\t\t\treadRanges.sortedRanges = mergeRanges(sortedRanges, pendingRanges);\n\t\t\tpendingRanges.length = 0;\n\t\t}\n\t}\n}\n\nfunction findOverlappingRange(sortedRanges, range) {\n\tlet low = 0;\n\tlet high = sortedRanges.length;\n\twhile (low < high) {\n\t\tconst middle = (low + high) >>> 1;\n\t\tif (sortedRanges[middle].start < range.start) {\n\t\t\tlow = middle + 1;\n\t\t} else {\n\t\t\thigh = middle;\n\t\t}\n\t}\n\tconst previousRange = sortedRanges[low - 1];\n\tconst nextRange = sortedRanges[low];\n\tif (previousRange && rangesOverlap(range, previousRange)) {\n\t\treturn previousRange;\n\t}\n\tif (nextRange && rangesOverlap(range, nextRange)) {\n\t\treturn nextRange;\n\t}\n}\n\nfunction rangesOverlap(range, otherRange) {\n\treturn range.start < otherRange.end && otherRange.start < range.end;\n}\n\nfunction mergeRanges(sortedRanges, pendingRanges) {\n\tconst mergedRanges = [];\n\tlet indexSorted = 0;\n\tlet indexPending = 0;\n\twhile (indexSorted < sortedRanges.length || indexPending < pendingRanges.length) {\n\t\tif (indexPending == pendingRanges.length || (indexSorted < sortedRanges.length && sortedRanges[indexSorted].start < pendingRanges[indexPending].start)) {\n\t\t\tmergedRanges.push(sortedRanges[indexSorted++]);\n\t\t} else {\n\t\t\tmergedRanges.push(pendingRanges[indexPending++]);\n\t\t}\n\t}\n\treturn mergedRanges;\n}\n\nfunction readDataDescriptor(dataDescriptorView, zip64, signature) {\n\tconst offset = signature ? DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH : 0;\n\tif (dataDescriptorView.byteLength < getDataDescriptorLength(zip64, signature) ||\n\t\t(signature && getUint32(dataDescriptorView, 0) != DATA_DESCRIPTOR_RECORD_SIGNATURE)) {\n\t\treturn UNDEFINED_VALUE;\n\t}\n\tconst crc32 = getUint32(dataDescriptorView, offset);\n\tlet compressedSize;\n\tlet uncompressedSize;\n\ttry {\n\t\tif (zip64) {\n\t\t\tcompressedSize = getBigUint64(dataDescriptorView, offset + 4);\n\t\t\tuncompressedSize = getBigUint64(dataDescriptorView, offset + 12);\n\t\t} else {\n\t\t\tcompressedSize = getUint32(dataDescriptorView, offset + 4);\n\t\t\tuncompressedSize = getUint32(dataDescriptorView, offset + 8);\n\t\t}\n\t} catch {\n\t\treturn UNDEFINED_VALUE;\n\t}\n\treturn { signature, zip64, crc32, compressedSize, uncompressedSize };\n}\n\nfunction getDataDescriptorLength(zip64, signature) {\n\treturn (zip64 ? DATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH : DATA_DESCRIPTOR_RECORD_LENGTH) + (signature ? DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH : 0);\n}\n\nfunction getDiskOffset(reader, diskNumber) {\n\treturn reader.getDiskOffset ? reader.getDiskOffset(diskNumber) : 0;\n}\n\nasync function startsWithSplitZipSignature(reader) {\n\treturn await getFirstSignature(reader) == SPLIT_ZIP_FILE_SIGNATURE;\n}\n\nasync function startsWithSplitZipMarker(reader) {\n\tconst signature = await getFirstSignature(reader);\n\treturn signature == SPLIT_ZIP_FILE_SIGNATURE || signature == TEMPORARY_SPLIT_ZIP_FILE_SIGNATURE;\n}\n\nasync function getFirstSignature(reader) {\n\tconst signatureArray = await readUint8Array(reader, 0, SPLIT_ZIP_FILE_SIGNATURE_LENGTH);\n\treturn getUint32(getDataView(signatureArray));\n}\n\nfunction isStrictnessValue(value) {\n\treturn value === STRICTNESS_STRICT || value === STRICTNESS_BALANCED || value === STRICTNESS_TOLERANT;\n}\n\nfunction getDecodableOutputSize(outputSize, compressedSize, compressed) {\n\treturn Math.min(outputSize, compressed ? compressedSize * MAX_DEFLATE_EXPANSION_RATIO : compressedSize);\n}\n\nfunction getStrictness(options, inheritedOptions) {\n\treturn resolveStrictness(options, resolveStrictness(inheritedOptions, STRICTNESS_BALANCED));\n}\n\nfunction resolveStrictness(options, inheritedStrictness) {\n\tconst strictness = options[OPTION_STRICTNESS];\n\tif (strictness !== UNDEFINED_VALUE) {\n\t\tif (!isStrictnessValue(strictness)) {\n\t\t\tthrow new Error(ERR_INVALID_STRICTNESS);\n\t\t}\n\t\treturn strictness;\n\t}\n\tconst checkAmbiguity = options[OPTION_CHECK_AMBIGUITY];\n\tif (checkAmbiguity === UNDEFINED_VALUE) {\n\t\treturn inheritedStrictness;\n\t}\n\tif (checkAmbiguity) {\n\t\treturn STRICTNESS_STRICT;\n\t}\n\treturn inheritedStrictness == STRICTNESS_TOLERANT ? STRICTNESS_TOLERANT : STRICTNESS_BALANCED;\n}\n\nfunction getCheckLocalDirectory(checkLocalDirectory, strictness) {\n\tif (checkLocalDirectory === UNDEFINED_VALUE) {\n\t\treturn strictness != STRICTNESS_TOLERANT;\n\t}\n\treturn Boolean(checkLocalDirectory);\n}\n\nfunction getCheckLocalFilename(checkLocalFilename, strictness) {\n\tif (checkLocalFilename === UNDEFINED_VALUE) {\n\t\treturn strictness == STRICTNESS_STRICT;\n\t}\n\treturn Boolean(checkLocalFilename);\n}\n\nfunction getFilenameValidation(filenameValidation, strictness) {\n\tif (filenameValidation === UNDEFINED_VALUE) {\n\t\treturn strictness;\n\t}\n\tif (!isStrictnessValue(filenameValidation)) {\n\t\tthrow new Error(ERR_INVALID_FILENAME_VALIDATION);\n\t}\n\treturn filenameValidation;\n}\n\nfunction isUnsafeFilename(filename, filenameValidation) {\n\tif (filenameValidation == STRICTNESS_TOLERANT) {\n\t\treturn false;\n\t}\n\tconst pathParts = filename.split(\"/\");\n\tif (pathParts.length > 1 && pathParts[pathParts.length - 1] === \"\") {\n\t\tpathParts.pop();\n\t}\n\tif (PARENT_DIRECTORY_REGEXP.test(filename) || filename.startsWith(\"/\") || filename.startsWith(\"\\\\\") || DRIVE_LETTER_REGEXP.test(filename)) {\n\t\treturn true;\n\t}\n\treturn filenameValidation == STRICTNESS_STRICT && (pathParts.includes(\".\") || pathParts.includes(\"\") || filename.includes(\"\\0\"));\n}\n\nfunction getMaxAppendedDataSize(maxAppendedDataSize, strictness) {\n\tif (maxAppendedDataSize !== UNDEFINED_VALUE) {\n\t\tconst size = toNumber(maxAppendedDataSize);\n\t\tif (typeof size != NUMBER_TYPE || Number.isNaN(size) || size < 0) {\n\t\t\tthrow new Error(ERR_INVALID_MAX_APPENDED_DATA_SIZE);\n\t\t}\n\t\treturn size;\n\t}\n\tif (strictness == STRICTNESS_STRICT) {\n\t\treturn 0;\n\t}\n\tif (strictness == STRICTNESS_TOLERANT) {\n\t\treturn Infinity;\n\t}\n\treturn MAX_16_BITS;\n}\n\nasync function findEndOfCentralDirectory(reader, rejectAmbiguous, maxAppendedDataSize) {\n\tconst { size } = reader;\n\tconst anchoredLength = Math.min(size, END_OF_CENTRAL_DIR_LENGTH + MAX_16_BITS);\n\tconst remoteProbeBudget = { remaining: MAX_END_OF_CENTRAL_DIR_PROBES };\n\tlet endOfDirectoryInfo;\n\tlet plausibleEndOfDirectoryInfo;\n\tlet endOfDirectoryReachingEndCount = 0;\n\tfor await (const [anchoredView, anchoredOffset, anchoredArray, indexByte, offset] of scanEndOfCentralDirectory(reader, anchoredLength)) {\n\t\tconst commentLength = getUint16(anchoredView, indexByte + 20);\n\t\tif (offset + END_OF_CENTRAL_DIR_LENGTH + commentLength == size) {\n\t\t\tconst reachability = await getCentralDirectoryReachability(reader, anchoredView, anchoredOffset, indexByte, offset, size, remoteProbeBudget);\n\t\t\tif (reachability == CENTRAL_DIRECTORY_REACHABLE) {\n\t\t\t\tif (!endOfDirectoryInfo) {\n\t\t\t\t\tendOfDirectoryInfo = getEndOfCentralDirectoryInfo(anchoredArray, indexByte, offset);\n\t\t\t\t}\n\t\t\t\tendOfDirectoryReachingEndCount++;\n\t\t\t\tif (!rejectAmbiguous || endOfDirectoryReachingEndCount > 1) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (reachability == CENTRAL_DIRECTORY_PLAUSIBLE && !plausibleEndOfDirectoryInfo) {\n\t\t\t\tplausibleEndOfDirectoryInfo = getEndOfCentralDirectoryInfo(anchoredArray, indexByte, offset);\n\t\t\t}\n\t\t}\n\t}\n\tif (!endOfDirectoryInfo) {\n\t\tendOfDirectoryInfo = plausibleEndOfDirectoryInfo;\n\t}\n\tif (!endOfDirectoryInfo) {\n\t\tendOfDirectoryInfo = await seekEndOfCentralDirectory(reader, maxAppendedDataSize, remoteProbeBudget);\n\t}\n\treturn { endOfDirectoryInfo, endOfDirectoryReachingEndCount };\n}\n\nasync function seekEndOfCentralDirectory(reader, maxAppendedDataSize, remoteProbeBudget) {\n\tconst { size } = reader;\n\tconst searchLength = Math.min(size, maxAppendedDataSize == Infinity ? size :\n\t\tEND_OF_CENTRAL_DIR_LENGTH + MAX_16_BITS + maxAppendedDataSize);\n\tlet firstSignatureInfo, plausibleInfo;\n\tfor await (const [searchView, searchOffset, searchArray, indexByte, offset] of scanEndOfCentralDirectory(reader, searchLength)) {\n\t\tconst record = getEndOfCentralDirectoryInfo(searchArray, indexByte, offset);\n\t\tif (!firstSignatureInfo) {\n\t\t\tfirstSignatureInfo = record;\n\t\t}\n\t\tconst reachability = await getCentralDirectoryReachability(reader, searchView, searchOffset, indexByte, offset, size, remoteProbeBudget);\n\t\tif (reachability == CENTRAL_DIRECTORY_REACHABLE) {\n\t\t\treturn record;\n\t\t}\n\t\tif (reachability == CENTRAL_DIRECTORY_PLAUSIBLE && !plausibleInfo) {\n\t\t\tplausibleInfo = record;\n\t\t}\n\t}\n\treturn plausibleInfo || firstSignatureInfo;\n}\n\nasync function* scanEndOfCentralDirectory(reader, scanLength) {\n\tconst scanOffset = reader.size - scanLength;\n\tconst scanArray = await readUint8Array(reader, scanOffset, scanLength);\n\tconst scanView = getDataView(scanArray);\n\tfor (let indexByte = scanArray.length - END_OF_CENTRAL_DIR_LENGTH; indexByte >= 0; indexByte--) {\n\t\tif (getUint32(scanView, indexByte) == END_OF_CENTRAL_DIR_SIGNATURE) {\n\t\t\tyield [scanView, scanOffset, scanArray, indexByte, scanOffset + indexByte];\n\t\t}\n\t}\n}\n\nfunction getEndOfCentralDirectoryInfo(scanArray, indexByte, offset) {\n\treturn { offset, buffer: new Uint8Array(scanArray.subarray(indexByte, indexByte + END_OF_CENTRAL_DIR_LENGTH)).buffer };\n}\n\nasync function getCentralDirectoryReachability(reader, view, anchoredOffset, indexByte, offset, size, remoteProbeBudget) {\n\tconst filesLength = getUint16(view, indexByte + 10);\n\tconst directoryDataLength = getUint32(view, indexByte + 12);\n\tconst directoryDataOffset = getUint32(view, indexByte + 16);\n\tif (filesLength == MAX_16_BITS || directoryDataLength == MAX_32_BITS || directoryDataOffset == MAX_32_BITS) {\n\t\tconst locatorSignature = await readSignature(reader, view, anchoredOffset, offset - ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH, size, remoteProbeBudget);\n\t\treturn locatorSignature == ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE ? CENTRAL_DIRECTORY_REACHABLE : CENTRAL_DIRECTORY_UNREACHABLE;\n\t}\n\tif (!filesLength && !directoryDataLength) {\n\t\treturn CENTRAL_DIRECTORY_PLAUSIBLE;\n\t}\n\tconst directoryDiskNumber = getUint16(view, indexByte + 6);\n\tfor (const centralDirectoryOffset of [offset - directoryDataLength, getDiskOffset(reader, directoryDiskNumber) + directoryDataOffset]) {\n\t\tif (await readSignature(reader, view, anchoredOffset, centralDirectoryOffset, size, remoteProbeBudget) == CENTRAL_FILE_HEADER_SIGNATURE) {\n\t\t\treturn CENTRAL_DIRECTORY_REACHABLE;\n\t\t}\n\t}\n\treturn CENTRAL_DIRECTORY_UNREACHABLE;\n}\n\nasync function readSignature(reader, view, anchoredOffset, signatureOffset, size, remoteProbeBudget) {\n\tif (signatureOffset < 0 || signatureOffset + 4 > size) {\n\t\treturn UNDEFINED_VALUE;\n\t}\n\tif (signatureOffset >= anchoredOffset) {\n\t\treturn getUint32(view, signatureOffset - anchoredOffset);\n\t}\n\tif (remoteProbeBudget.remaining > 0) {\n\t\tremoteProbeBudget.remaining--;\n\t\tconst signatureArray = await readUint8Array(reader, signatureOffset, 4);\n\t\treturn getUint32(getDataView(signatureArray), 0);\n\t}\n\treturn UNDEFINED_VALUE;\n}\n\nfunction validateLocalDirectory(zipEntry, localDirectory, rawLocalFilename, checkLocalFilename, warnings) {\n\tconst { rawFilename } = zipEntry;\n\tconst reject = !warnings;\n\tconst maskedLocalDirectory = zipEntry.decryptedDirectory &&\n\t\t(localDirectory.rawBitFlag & BITFLAG_MASKED_LOCAL_HEADERS) == BITFLAG_MASKED_LOCAL_HEADERS;\n\tif (checkLocalFilename && !maskedLocalDirectory &&\n\t\t(rawLocalFilename.length != rawFilename.length ||\n\t\t\trawLocalFilename.some((byteValue, indexByte) => byteValue != rawFilename[indexByte]))) {\n\t\treportAmbiguity(reject, warnings, WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME);\n\t}\n\tif ((localDirectory.rawBitFlag & BITFLAG_AMBIGUITY_MASK) != (zipEntry.rawBitFlag & BITFLAG_AMBIGUITY_MASK)) {\n\t\treportAmbiguity(reject, warnings, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG);\n\t}\n\tif (localDirectory.compressionMethod != zipEntry.compressionMethod) {\n\t\treportAmbiguity(reject, warnings, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD);\n\t}\n\tif (!localDirectory.bitFlag.dataDescriptor && !maskedLocalDirectory &&\n\t\t(localDirectory.crc32 || localDirectory.compressedSize || localDirectory.uncompressedSize) &&\n\t\t(localDirectory.crc32 != zipEntry.crc32 ||\n\t\t\tlocalDirectory.compressedSize != zipEntry.compressedSize ||\n\t\t\tlocalDirectory.uncompressedSize != zipEntry.uncompressedSize)) {\n\t\treportAmbiguity(reject, warnings, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES);\n\t}\n}\n\nfunction reportAmbiguity(reject, warnings, reason) {\n\tif (reject) {\n\t\tthrowAmbiguousArchive(reason);\n\t} else {\n\t\taddWarning(warnings, reason);\n\t}\n}\n\nfunction throwAmbiguousArchive(reason) {\n\tconst error = new Error(ERR_AMBIGUOUS_ARCHIVE);\n\terror.reason = reason;\n\tthrow error;\n}\n\nfunction getOptionValue(zipReader, options, name) {\n\treturn options[name] === UNDEFINED_VALUE ? zipReader.options[name] : options[name];\n}\n\nfunction getFunctionOptionValue(zipReader, options, name) {\n\treturn checkFunctionOption(getOptionValue(zipReader, options, name));\n}\n\n\nfunction getDate(timeRaw) {\n\tconst date = (timeRaw & 0xffff0000) >> 16, time = timeRaw & MAX_16_BITS;\n\tconst result = new Date(1980 + ((date & 0xFE00) >> 9), ((date & 0x01E0) >> 5) - 1, date & 0x001F, (time & 0xF800) >> 11, (time & 0x07E0) >> 5, (time & 0x001F) * 2, 0);\n\treturn result < MIN_DATE ? MIN_DATE : result;\n}\n\nfunction getDateNTFS(timeRaw) {\n\treturn new Date((Number((timeRaw / BigInt(10000)) - BigInt(11644473600000))));\n}\n\nfunction getUint8(view, offset) {\n\treturn view.getUint8(offset);\n}\n\nfunction getUint16(view, offset) {\n\treturn view.getUint16(offset, true);\n}\n\nfunction getUint32(view, offset) {\n\treturn view.getUint32(offset, true);\n}\n\nfunction getBigUint64(view, offset) {\n\tconst value = view.getBigUint64(offset, true);\n\tif (value > MAX_SAFE_UINT64) {\n\t\tthrow new Error(ERR_UNSUPPORTED_UINT64);\n\t}\n\treturn Number(value);\n}\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global TransformStream, WritableStream */\n// deno-lint-ignore-file no-this-alias\n\n/*\n * Internal state invariants\n *\n * Positions:\n * - `zipWriter.offset` is the logical write position: the offset where the next entry will start\n *   in the final archive. It includes `zipWriter.initialOffset` (see below) and is only updated\n *   between entries, or by the recovery code in getFileEntry() when a write fails mid-entry.\n * - `writer.size` counts the bytes actually written into the writer. Between entries,\n *   `zipWriter.offset - writer.size` is constant and equals `initialOffset`.\n * - `zipWriter.initialOffset` is the number of bytes assumed to be prepended to the final archive\n *   (i.e. to the first segment when the archive is split): the `offset` option minus the data\n *   already stored in the writer. Positions within the first segment include it; positions within\n *   the other segments do not, see getSegmentOffset().\n * - For split archives, `writer.diskOffset` is the total size of the closed segments and\n *   `writer.diskNumber` the index of the current segment. `writer.availableSize` is the remaining\n *   capacity of the current segment; `writer.closeDisk()` ends it, the next segment being opened\n *   when more data is written. This is how header records are kept whole within a segment, as\n *   required by APPNOTE section 8.5.2. These properties only exist on split writers; the\n *   getDiskNumber(), getDiskOffset() and exceedsAvailableSize() accessors default them otherwise.\n * - The segment coordinates of an entry (`diskNumberStart` and `offset`) must be read after\n *   calling skipDiskIfNeeded() and while holding the writer lock; they are unstable otherwise.\n *\n * Scheduling:\n * - The central directory order (i.e. the order in which entries are listed by getEntries()) is\n *   the insertion order of the `fileEntries` map. addFile() reserves each entry's slot synchronously in\n *   add() call order, before initializing the reader, so concurrent entries whose readers\n *   initialize at different speeds are still listed in call order.\n * - `fileEntry.lockFileEntry` chains every entry to the previous one; awaiting it serializes the\n *   physical writes when `keepOrder` is set. addFile() claims the link in the same synchronous\n *   prologue as the central directory slot, so the physical layout follows the add() call order\n *   as well, whatever the readers do. The lock is released for every entry, including the ones\n *   failing before they reach getFileEntry().\n * - `zipWriter.lockWriter`/`writerLocked` is the mutex over the writer; only the holder may write\n *   into it or read the position variables above.\n * - At most one entry is written directly into the writer at a time, every other one is buffered.\n *   `bufferedWrites`/`directWrites` record the choice in the same synchronous block that makes it,\n *   because `writerLocked` is only raised an await later: concurrent add() calls all decide before\n *   that, and would all pick the direct path and then serialize on the previous entry's lock.\n * - Both write paths await the lock of the previous entry before requesting the writer lock.\n *   Requesting it first would deadlock an entry written directly into the writer (i.e. without\n *   being buffered) against a buffered predecessor, which needs that same lock to be flushed.\n * - `lastFileEntry` is the tail of the lock chain (the most recently added entry).\n *\n * Failures:\n * - When a write fails mid-entry, `zipWriter.offset` advances by the number of bytes written for\n *   the entry so that the offsets of subsequent entries remain correct, and\n *   `hasCorruptedEntries` is set on the ZipWriter.\n * - closeFile() does not update `zipWriter.offset`; the position of the central directory and of\n *   the end of central directory records are derived from it.\n */\n\nimport {\n\tMAX_32_BITS,\n\tMAX_16_BITS,\n\tMAX_8_BITS,\n\tCOMPRESSION_METHOD_DEFLATE,\n\tCOMPRESSION_METHOD_DEFLATE_64,\n\tCOMPRESSION_METHOD_STORE,\n\tCOMPRESSION_METHOD_AES,\n\tSPLIT_ZIP_FILE_SIGNATURE,\n\tSPLIT_ZIP_FILE_SIGNATURE_LENGTH,\n\tLOCAL_FILE_HEADER_SIGNATURE,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE,\n\tDIGITAL_SIGNATURE_RECORD_SIGNATURE,\n\tCENTRAL_FILE_HEADER_SIGNATURE,\n\tCENTRAL_FILE_HEADER_LENGTH,\n\tEND_OF_CENTRAL_DIR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE,\n\tZIP64_END_OF_CENTRAL_DIR_SIGNATURE,\n\tDATA_DESCRIPTOR_RECORD_LENGTH,\n\tDATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH,\n\tDATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH,\n\tEXTRAFIELD_TYPE_AES,\n\tEXTRAFIELD_TYPE_ZIP64,\n\tEXTRAFIELD_TYPE_EXTENDED_TIMESTAMP,\n\tEXTRAFIELD_TYPE_NTFS,\n\tEXTRAFIELD_TYPE_NTFS_TAG1,\n\tEXTRAFIELD_TYPE_USDZ,\n\tEXTRAFIELD_TYPE_INFOZIP,\n\tEXTRAFIELD_TYPE_UNIX,\n\tEND_OF_CENTRAL_DIR_LENGTH,\n\tZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH,\n\tBITFLAG_ENCRYPTED,\n\tBITFLAG_DATA_DESCRIPTOR,\n\tBITFLAG_LANG_ENCODING_FLAG,\n\tBITFLAG_LEVEL,\n\tBITFLAG_LEVEL_FAST_MASK,\n\tBITFLAG_LEVEL_SUPER_FAST_MASK,\n\tBITFLAG_LEVEL_MAX_MASK,\n\tFILE_ATTR_MSDOS_DIR_MASK,\n\tFILE_ATTR_MSDOS_READONLY_MASK,\n\tFILE_ATTR_MSDOS_HIDDEN_MASK,\n\tFILE_ATTR_MSDOS_SYSTEM_MASK,\n\tFILE_ATTR_MSDOS_ARCHIVE_MASK,\n\tFILE_ATTR_UNIX_TYPE_DIR,\n\tFILE_ATTR_UNIX_TYPE_FILE,\n\tFILE_ATTR_UNIX_TYPE_MASK,\n\tFILE_ATTR_UNIX_TYPE_SYMLINK,\n\tFILE_ATTR_UNIX_EXECUTABLE_MASK,\n\tFILE_ATTR_UNIX_DEFAULT_MASK,\n\tFILE_ATTR_UNIX_SETUID_MASK,\n\tFILE_ATTR_UNIX_SETGID_MASK,\n\tFILE_ATTR_UNIX_STICKY_MASK,\n\tVERSION_STORE,\n\tVERSION_DEFLATE,\n\tVERSION_MADE_BY_MSDOS,\n\tVERSION_MADE_BY_UNIX,\n\tVERSION_ZIP64,\n\tVERSION_AES,\n\tDIRECTORY_SIGNATURE,\n\tHEADER_SIZE,\n\tHEADER_OFFSET_VERSION,\n\tHEADER_OFFSET_SIGNATURE,\n\tHEADER_OFFSET_COMPRESSED_SIZE,\n\tHEADER_OFFSET_UNCOMPRESSED_SIZE,\n\tHEADER_OFFSET_FILENAME_LENGTH,\n\tHEADER_OFFSET_EXTRAFIELD_LENGTH,\n\tLOCAL_HEADER_COMMON_OFFSET,\n\tMIN_DATE,\n\tMAX_DATE,\n\tUNDEFINED_VALUE,\n\tINFINITY_VALUE,\n\tOBJECT_TYPE,\n\tSTRING_TYPE,\n\tFUNCTION_TYPE,\n\tEMPTY_UINT8_ARRAY,\n\tSYMBOL_ASYNC_DISPOSE\n} from \"./constants.js\";\nimport { getConfiguration } from \"./configuration.js\";\nimport { getRegisteredCodec, ERR_UNSUPPORTED_COMPRESSION } from \"./codec-registry.js\";\nimport { supportsDeflate } from \"./codec-worker.js\";\nimport {\n\tCODEC_DEFLATE,\n\trunWorker,\n\tERR_UNSUPPORTED_CRYPTO_API\n} from \"./codec-pool.js\";\nimport {\n\tinitStream,\n\tcreateReadable,\n\treadUint8Array,\n\tGenericWriter,\n\tGenericReader,\n\tBlobReader,\n\townsWritable\n} from \"./io.js\";\nimport { encodeText } from \"./util/encode-text.js\";\nimport { concat, getDataView } from \"./util/array.js\";\nimport { addWarning } from \"./util/warnings.js\";\nimport { toCompatibleReadable, streamToBlob } from \"./util/compatible-streams.js\";\nimport { isErrorObject } from \"./util/error.js\";\nimport {\n\tPROPERTY_NAME_LAST_MODIFICATION_DATE,\n\tPROPERTY_NAME_RAW_LAST_MODIFICATION_DATE,\n\tPROPERTY_NAME_LAST_ACCESS_DATE,\n\tPROPERTY_NAME_CREATION_DATE,\n\tPROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES,\n\tPROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES,\n\tPROPERTY_NAME_MS_DOS_COMPATIBLE,\n\tPROPERTY_NAME_ZIP64,\n\tPROPERTY_NAME_ENCRYPTED,\n\tPROPERTY_NAME_VERSION,\n\tPROPERTY_NAME_VERSION_MADE_BY,\n\tPROPERTY_NAME_ZIPCRYPTO,\n\tPROPERTY_NAME_DIRECTORY,\n\tPROPERTY_NAME_EXECUTABLE,\n\tPROPERTY_NAME_COMPRESSION_METHOD,\n\tPROPERTY_NAME_SIGNATURE,\n\tPROPERTY_NAME_COMMENT,\n\tPROPERTY_NAME_UNCOMPRESSED_SIZE,\n\tPROPERTY_NAME_EXTRA_FIELD,\n\tPROPERTY_NAME_UID,\n\tPROPERTY_NAME_GID,\n\tPROPERTY_NAME_UNIX_MODE,\n\tPROPERTY_NAME_SETUID,\n\tPROPERTY_NAME_SETGID,\n\tPROPERTY_NAME_STICKY,\n\tPROPERTY_NAME_MSDOS_ATTRIBUTES,\n\tPROPERTY_NAME_MSDOS_ATTRIBUTES_RAW,\n\tEntry,\n\tgetEncryptionOverhead,\n\tgetUserExtraField\n} from \"./zip-entry.js\";\nimport {\n\tOPTION_PASSWORD,\n\tOPTION_RAW_PASSWORD,\n\tOPTION_PASS_THROUGH,\n\tOPTION_SIGNAL,\n\tOPTION_USE_WEB_WORKERS,\n\tOPTION_USE_COMPRESSION_STREAM,\n\tOPTION_TRANSFER_STREAMS,\n\tOPTION_PREVENT_CLOSE,\n\tOPTION_ENCRYPTION_STRENGTH,\n\tOPTION_EXTENDED_TIMESTAMP,\n\tOPTION_NTFS_TIMESTAMP,\n\tOPTION_KEEP_ORDER,\n\tOPTION_LEVEL,\n\tOPTION_BUFFERED_WRITE,\n\tOPTION_CREATE_TEMP_STREAM,\n\tOPTION_DATA_DESCRIPTOR_SIGNATURE,\n\tOPTION_USE_UNICODE_FILE_NAMES,\n\tOPTION_DATA_DESCRIPTOR,\n\tOPTION_SUPPORT_ZIP64_SPLIT_FILE,\n\tOPTION_ENCODE_TEXT,\n\tOPTION_OFFSET,\n\tOPTION_USDZ,\n\tOPTION_UNIX_EXTRA_FIELD_TYPE,\n\tOPTION_LOCAL_EXTRA_FIELD,\n\tOPTION_CENTRAL_EXTRA_FIELD,\n\tOPTION_SIGN_CENTRAL_DIRECTORY,\n\tTEXT_TYPE_FILENAME,\n\tTEXT_TYPE_COMMENT,\n\tERR_INVALID_PASSWORD_TYPE,\n\tcheckFunctionOption,\n\tcheckSignalOption,\n\tthrowIfAborted,\n\tcheckPasswordOption,\n\tcheckPassThroughOption,\n\tcheckInteger,\n\tcheckIntegerOption,\n\ttoNumber,\n\tOPTION_ENTRY,\n\tPASS_THROUGH_COMPRESSED\n} from \"./options.js\";\n\nconst ERR_DUPLICATED_NAME = \"File already exists\";\nconst ERR_INVALID_COMMENT = \"Zip file comment exceeds 64KB\";\nconst ERR_INVALID_COMMENT_TYPE = \"Invalid zip file comment (must be a Uint8Array)\";\nconst ERR_INVALID_ENTRY_COMMENT = \"File entry comment exceeds 64KB\";\nconst ERR_INVALID_ENTRY_COMMENT_TYPE = \"Invalid file entry comment (must be a string)\";\nconst ERR_INVALID_DATE = \"Invalid date (must be a valid Date instance)\";\nconst ERR_INVALID_ENTRY_NAME = \"File entry name exceeds 64KB\";\nconst ERR_INVALID_VERSION = \"Version exceeds 65535\";\nconst ERR_INVALID_ENCRYPTION_STRENGTH = \"The strength must equal 1, 2, or 3\";\nconst ERR_UNSUPPORTED_ENCRYPTION_USDZ = \"Encryption is not supported in USDZ files\";\nconst ERR_UNSUPPORTED_SPLIT_USDZ = \"Split zip files are not supported in USDZ files\";\nconst ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH = \"Encryption is not supported when the 'passThrough' option is set to true (use 'compressed' instead)\";\nconst ERR_INVALID_EXTRAFIELD = \"Invalid extra field (must be a Map)\";\nconst ERR_INVALID_EXTRAFIELD_TYPE = \"Invalid extra field type (must be integer 0..65535)\";\nconst ERR_INVALID_EXTRAFIELD_DATA_TYPE = \"Invalid extra field data (must be a Uint8Array)\";\nconst ERR_INVALID_EXTRAFIELD_DATA = \"Extra field data exceeds 64KB\";\nconst MIN_UNIX_TIME = -2147483648;\nconst MAX_UNIX_TIME = 2147483647;\nconst MIN_NTFS_TIME = BigInt(0);\nconst MAX_NTFS_TIME = BigInt(\"0x7fffffffffffffff\");\nconst ERR_UNSUPPORTED_FORMAT = \"Zip64 is not supported (set the 'zip64' option to 'true')\";\nconst ERR_UNDEFINED_UNCOMPRESSED_SIZE = \"Undefined uncompressed size\";\nconst ERR_UNDEFINED_COMPRESSION_METHOD = \"Undefined compression method\";\nconst ERR_UNDEFINED_CRC32 = \"Undefined CRC32\";\nconst ERR_UNDETERMINED_SIZE = \"Undetermined size\";\nconst ERR_UNDEFINED_READER = \"Undefined reader\";\nconst ERR_INVALID_READER = \"Invalid reader (must be a Reader instance, a ReadableStream instance, or an object with a 'readable' property)\";\nconst ERR_ZIP_NOT_EMPTY = \"Zip file not empty\";\nconst ERR_INVALID_UID = \"Invalid uid (must be integer 0..2^32-1)\";\nconst ERR_INVALID_GID = \"Invalid gid (must be integer 0..2^32-1)\";\nconst ERR_INVALID_UNIX_MODE = \"Invalid UNIX mode (must be integer 0..65535)\";\nconst ERR_INVALID_UNIX_EXTRA_FIELD_TYPE = \"Invalid unixExtraFieldType (must be 'infozip' or 'unix')\";\nconst ERR_INVALID_UNIX_ID_SIZE = \"uid/gid must be 0..65535 for unixExtraFieldType 'unix' (use 'infozip' for larger ids)\";\nconst ERR_INVALID_MSDOS_ATTRIBUTES = \"Invalid msdosAttributesRaw (must be integer 0..255)\";\nconst ERR_INVALID_MSDOS_DATA = \"Invalid msdosAttributes (must be an object with boolean flags)\";\nconst ERR_INVALID_LEVEL = \"Invalid level (must be integer 0..9)\";\nconst ERR_INVALID_SIGNATURE_DATA = \"Signature data exceeds 64KB\";\nconst ERR_INVALID_ENTRY = \"Invalid entry option (must be an entry returned by ZipReader#getEntries())\";\nconst ERR_ZIP_CRYPTO_LAST_MOD_DATE = \"The last modification date of an entry encrypted with ZipCrypto cannot be changed when passThrough is set\";\nconst WARNING_COMPRESSION_UNAVAILABLE = \"compression unavailable\";\nconst WARNING_CLAMPED_LAST_MODIFICATION_DATE = \"clamped last modification date\";\n\nconst EXTRAFIELD_DATA_AES = new Uint8Array([0x07, 0x00, 0x02, 0x00, 0x41, 0x45, 0x03, 0x00, 0x00]);\nconst EXTRAFIELD_OFFSET_AES_VENDOR_VERSION = 4;\nconst EXTRAFIELD_OFFSET_AES_COMPRESSION_METHOD = 9;\nconst EXTRAFIELD_USDZ_MAX_LENGTH = 67;\nconst MIN_PRINTABLE_ASCII_CHARACTER_CODE = 0x20;\nconst MAX_PRINTABLE_ASCII_CHARACTER_CODE = 0x7e;\nconst VENDOR_VERSION_AE_1 = 1;\nconst INFOZIP_EXTRA_FIELD_TYPE = \"infozip\";\nconst UNIX_EXTRA_FIELD_TYPE = \"unix\";\nconst LEVEL_BY_BITFLAG_LEVEL = [8, 9, 5, 3];\nconst MAX_LEVEL = 9;\n\nlet workers = 0;\nconst pendingEntries = [];\n\nclass ZipWriter {\n\n\tconstructor(writer, options = {}) {\n\t\twriter = new GenericWriter(writer);\n\t\tconst { availableSize = INFINITY_VALUE, maxSize = INFINITY_VALUE } = writer;\n\t\tconst addSplitZipSignature =\n\t\t\tavailableSize > 0 && availableSize !== INFINITY_VALUE &&\n\t\t\tmaxSize > 0 && maxSize !== INFINITY_VALUE;\n\t\tif (addSplitZipSignature && options[OPTION_USDZ]) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_SPLIT_USDZ);\n\t\t}\n\t\tObject.assign(this, {\n\t\t\twriter,\n\t\t\taddSplitZipSignature,\n\t\t\toptions,\n\t\t\tfileEntries: new Map(),\n\t\t\tfilenames: new Set(),\n\t\t\toffset: options[OPTION_OFFSET] === UNDEFINED_VALUE ? writer.size || writer.writable.size || 0 : options[OPTION_OFFSET],\n\t\t\tinitialOffset: options[OPTION_OFFSET] === UNDEFINED_VALUE ? 0 : options[OPTION_OFFSET] - (writer.size || writer.writable.size || 0),\n\t\t\tpendingAddFileCalls: new Set(),\n\t\t\tpendingErrors: [],\n\t\t\twarnings: [],\n\t\t\tbufferedWrites: 0,\n\t\t\tdirectWrites: 0,\n\t\t\tlastFileEntry: UNDEFINED_VALUE,\n\t\t\tarchiveClosed: false\n\t\t});\n\t}\n\n\tprependZip(reader) {\n\t\treturn watchPromiseError(this, prependZipEntries(this, reader));\n\t}\n\n\tappendZip(reader) {\n\t\treturn watchPromiseError(this, this.appendZipEntries(reader));\n\t}\n\n\tasync appendZipEntries(reader) {\n\t\tconst zipWriter = this;\n\t\tconst { pendingAddFileCalls, filenames, fileEntries } = zipWriter;\n\t\twhile (pendingAddFileCalls.size) {\n\t\t\tawait Promise.allSettled(Array.from(pendingAddFileCalls));\n\t\t}\n\t\tlet resolveAppendZip;\n\t\tconst promiseAppendZip = new Promise(resolve => resolveAppendZip = resolve);\n\t\tpendingAddFileCalls.add(promiseAppendZip);\n\t\tconst appendedFilenames = [];\n\t\tlet releaseLockWriter;\n\t\ttry {\n\t\t\treader = new GenericReader(reader);\n\t\t\tawait initStream(reader);\n\t\t\tif (reader.size === UNDEFINED_VALUE || !reader.readUint8Array) {\n\t\t\t\treader = new BlobReader(await streamToBlob(reader.readable));\n\t\t\t\tawait initStream(reader);\n\t\t\t}\n\t\t\tconst { ZipReader } = await import(\"./zip-reader.js\");\n\t\t\tconst zipReader = new ZipReader(reader);\n\t\t\tconst entries = await zipReader.getEntries();\n\t\t\tawait zipReader.close();\n\t\t\tawait initStream(zipWriter.writer);\n\t\t\tconst { directoryOffset } = zipReader;\n\t\t\tentries.forEach(({ filename }) => {\n\t\t\t\tif (filenames.has(filename)) {\n\t\t\t\t\tthrow new Error(ERR_DUPLICATED_NAME);\n\t\t\t\t}\n\t\t\t\tfilenames.add(filename);\n\t\t\t\tappendedFilenames.push(filename);\n\t\t\t});\n\t\t\tzipWriter.writerLocked = true;\n\t\t\tconst { lockWriter } = zipWriter;\n\t\t\tzipWriter.lockWriter = new Promise(resolve => releaseLockWriter = () => {\n\t\t\t\tzipWriter.writerLocked = false;\n\t\t\t\tresolve();\n\t\t\t});\n\t\t\tawait lockWriter;\n\t\t\tif (zipWriter.addSplitZipSignature) {\n\t\t\t\tdelete zipWriter.addSplitZipSignature;\n\t\t\t\tif (!await startsWithSplitZipSignature(reader)) {\n\t\t\t\t\tawait writeData(zipWriter.writer, getSplitZipSignatureArray());\n\t\t\t\t\tzipWriter.offset += SPLIT_ZIP_FILE_SIGNATURE_LENGTH;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst entryPositions = await copyZipData(zipWriter, reader, entries, directoryOffset);\n\t\t\tentries.forEach(entry => {\n\t\t\t\tconst {\n\t\t\t\t\tversion,\n\t\t\t\t\trawLastModDate,\n\t\t\t\t\trawFilename,\n\t\t\t\t\tbitFlag,\n\t\t\t\t\tencrypted,\n\t\t\t\t\tuncompressedSize,\n\t\t\t\t\tcompressedSize,\n\t\t\t\t\textraFieldZip64\n\t\t\t\t} = entry;\n\t\t\t\tlet {\n\t\t\t\t\tcompressionMethod,\n\t\t\t\t\trawExtraField,\n\t\t\t\t} = entry;\n\t\t\t\tconst { level, languageEncodingFlag, dataDescriptor } = bitFlag;\n\t\t\t\trawExtraField = removeExtraFieldZip64(rawExtraField || EMPTY_UINT8_ARRAY);\n\t\t\t\tif (entry.extraFieldAES) {\n\t\t\t\t\tcompressionMethod = COMPRESSION_METHOD_AES;\n\t\t\t\t}\n\t\t\t\tconst extraFieldLength = getLength(rawExtraField);\n\t\t\t\tconst zip64UncompressedSize = Boolean(extraFieldZip64) && extraFieldZip64.uncompressedSize !== UNDEFINED_VALUE;\n\t\t\t\tconst zip64CompressedSize = Boolean(extraFieldZip64) && extraFieldZip64.compressedSize !== UNDEFINED_VALUE;\n\t\t\t\tconst bitFlagValue = (getBitFlag(level, languageEncodingFlag, dataDescriptor, encrypted, compressionMethod) & ~BITFLAG_LEVEL) | (level << 1);\n\t\t\t\tconst {\n\t\t\t\t\theaderArray,\n\t\t\t\t\theaderView\n\t\t\t\t} = getHeaderArrayData({\n\t\t\t\t\tversion,\n\t\t\t\t\tbitFlag: bitFlagValue,\n\t\t\t\t\tcompressionMethod,\n\t\t\t\t\tuncompressedSize,\n\t\t\t\t\tcompressedSize,\n\t\t\t\t\trawLastModDate,\n\t\t\t\t\trawFilename,\n\t\t\t\t\tzip64CompressedSize,\n\t\t\t\t\tzip64UncompressedSize,\n\t\t\t\t\textraFieldLength\n\t\t\t\t});\n\t\t\t\tconst { crc32 } = entry;\n\t\t\t\tif (crc32 !== UNDEFINED_VALUE) {\n\t\t\t\t\tsetUint32(headerView, HEADER_OFFSET_SIGNATURE, crc32);\n\t\t\t\t}\n\t\t\t\tconst { offset, diskNumberStart } = entryPositions.get(entry);\n\t\t\t\tObject.assign(entry, {\n\t\t\t\t\tzip64Enabled: true,\n\t\t\t\t\tzip64UncompressedSize,\n\t\t\t\t\tzip64CompressedSize,\n\t\t\t\t\toffset,\n\t\t\t\t\tdiskNumberStart,\n\t\t\t\t\tzip64DiskNumberStart: false,\n\t\t\t\t\trawExtraFieldZip64: EMPTY_UINT8_ARRAY,\n\t\t\t\t\trawExtraFieldAES: EMPTY_UINT8_ARRAY,\n\t\t\t\t\trawExtraFieldExtendedTimestamp: EMPTY_UINT8_ARRAY,\n\t\t\t\t\trawExtraFieldNTFS: EMPTY_UINT8_ARRAY,\n\t\t\t\t\trawExtraFieldUnix: EMPTY_UINT8_ARRAY,\n\t\t\t\t\trawExtraField,\n\t\t\t\t\trawCentralExtraField: EMPTY_UINT8_ARRAY,\n\t\t\t\t\theaderArray,\n\t\t\t\t\theaderView\n\t\t\t\t});\n\t\t\t\tfileEntries.set(entry.filename, entry);\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tappendedFilenames.forEach(filename => filenames.delete(filename));\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tresolveAppendZip();\n\t\t\tpendingAddFileCalls.delete(promiseAppendZip);\n\t\t\tif (releaseLockWriter) {\n\t\t\t\treleaseLockWriter();\n\t\t\t}\n\t\t}\n\t}\n\n\tadd(name = \"\", reader, options = {}) {\n\t\tconst zipWriter = this;\n\t\tconst { pendingAddFileCalls } = zipWriter;\n\t\tconst promiseAddFile = addFileEntry(zipWriter, name, reader, options);\n\t\tpendingAddFileCalls.add(promiseAddFile);\n\t\tconst deletePendingAddFileCall = () => pendingAddFileCalls.delete(promiseAddFile);\n\t\tPromise.prototype.then.call(promiseAddFile, deletePendingAddFileCall, deletePendingAddFileCall);\n\t\treturn watchPromiseError(zipWriter, promiseAddFile);\n\t}\n\n\tremove(entry) {\n\t\tconst { filenames, fileEntries } = this;\n\t\t// deno-lint-ignore valid-typeof\n\t\tif (typeof entry == STRING_TYPE) {\n\t\t\tentry = fileEntries.get(entry);\n\t\t}\n\t\tif (entry && entry.filename !== UNDEFINED_VALUE) {\n\t\t\tconst { filename } = entry;\n\t\t\tif (filenames.has(filename) && fileEntries.has(filename)) {\n\t\t\t\tfilenames.delete(filename);\n\t\t\t\tfileEntries.delete(filename);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tasync close(comment = EMPTY_UINT8_ARRAY, options = {}) {\n\t\tconst zipWriter = this;\n\t\tconst { pendingAddFileCalls, writer } = this;\n\t\tconst { writable } = writer;\n\t\tif (zipWriter.archiveClosed) {\n\t\t\treturn getWriterData(writer);\n\t\t}\n\t\tif (!(comment instanceof Uint8Array)) {\n\t\t\tthrow new Error(ERR_INVALID_COMMENT_TYPE);\n\t\t}\n\t\tif (getLength(comment) > MAX_16_BITS) {\n\t\t\tthrow new Error(ERR_INVALID_COMMENT);\n\t\t}\n\t\twhile (pendingAddFileCalls.size) {\n\t\t\tawait Promise.allSettled(Array.from(pendingAddFileCalls));\n\t\t}\n\t\tawait Promise.allSettled(zipWriter.pendingErrors.map(watcher => watcher.recorded));\n\t\tconst unobservedWatchers = zipWriter.pendingErrors.filter(watcher => watcher.failed && !watcher.observed);\n\t\tif (unobservedWatchers.length) {\n\t\t\tconst unobservedErrors = unobservedWatchers.map(watcher => watcher.error);\n\t\t\tunobservedWatchers.forEach(watcher => watcher.observed = true);\n\t\t\tconst [error] = unobservedErrors;\n\t\t\ttry {\n\t\t\t\terror.entryErrors = unobservedErrors;\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\tawait closeFile(zipWriter, comment, options);\n\t\tzipWriter.archiveClosed = true;\n\t\tconst preventClose = !ownsWritable(writer) && getOptionValue(zipWriter, options, OPTION_PREVENT_CLOSE);\n\t\tif (!preventClose) {\n\t\t\tawait writable.getWriter().close();\n\t\t}\n\t\treturn getWriterData(writer);\n\t}\n\n\t[SYMBOL_ASYNC_DISPOSE]() {\n\t\treturn this.close();\n\t}\n}\n\nclass ZipWriterStream {\n\n\tconstructor(options = {}) {\n\t\tconst { readable, writable } = new TransformStream();\n\t\tthis.readable = readable;\n\t\tthis.zipWriter = new ZipWriter(writable, options);\n\t\tthis.pendingAddFileCalls = new Set();\n\t}\n\n\ttransform(path) {\n\t\tconst zipWriter = this.zipWriter;\n\t\tlet streamController;\n\t\tconst { readable, writable } = new TransformStream({\n\t\t\tstart(controller) {\n\t\t\t\tstreamController = controller;\n\t\t\t},\n\t\t\tflush: () => void closeArchive()\n\t\t});\n\t\twatchAddFileCall(this, this.zipWriter.add(path, readable), error => streamController.error(error));\n\t\treturn { readable: this.readable, writable };\n\n\t\tasync function closeArchive() {\n\t\t\ttry {\n\t\t\t\tawait zipWriter.close();\n\t\t\t} catch (error) {\n\t\t\t\tawait abortWritable(zipWriter, error);\n\t\t\t}\n\t\t}\n\t}\n\n\twritable(path) {\n\t\tlet streamController;\n\t\tconst { readable, writable } = new TransformStream({\n\t\t\tstart(controller) {\n\t\t\t\tstreamController = controller;\n\t\t\t}\n\t\t});\n\t\twatchAddFileCall(this, this.zipWriter.add(path, readable), error => streamController.error(error));\n\t\treturn writable;\n\t}\n\n\tasync close(comment = UNDEFINED_VALUE, options = {}) {\n\t\tconst { zipWriter } = this;\n\t\tconst results = await Promise.allSettled(Array.from(this.pendingAddFileCalls));\n\t\tconst entryErrors = results.filter(result => result.status == \"rejected\").map(result => result.reason);\n\t\tif (entryErrors.length) {\n\t\t\tconst [error] = entryErrors;\n\t\t\ttry {\n\t\t\t\terror.entryErrors = entryErrors;\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t\tawait abortWritable(zipWriter, error);\n\t\t\tthrow error;\n\t\t}\n\t\ttry {\n\t\t\treturn await zipWriter.close(comment, options);\n\t\t} catch (error) {\n\t\t\tawait abortWritable(zipWriter, error);\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n\nclass WatchedPromise extends Promise {\n\n\tthen(onFulfilled, onRejected) {\n\t\tconst { watcher } = this;\n\t\tif (watcher) {\n\t\t\twatcher.observed = true;\n\t\t}\n\t\treturn super.then(onFulfilled, onRejected);\n\t}\n}\n\nfunction getWriterData(writer) {\n\treturn writer.getData ? writer.getData() : writer.writable;\n}\n\nfunction watchPromiseError(zipWriter, promise) {\n\tconst watchedPromise = new WatchedPromise((resolve, reject) => Promise.prototype.then.call(promise, resolve, reject));\n\tconst watcher = {};\n\twatchedPromise.watcher = watcher;\n\twatcher.recorded = Promise.prototype.then.call(watchedPromise, UNDEFINED_VALUE,\n\t\terror => Object.assign(watcher, { failed: true, error }));\n\tzipWriter.pendingErrors.push(watcher);\n\treturn watchedPromise;\n}\n\nasync function prependZipEntries(zipWriter, reader) {\n\tif (zipWriter.filenames.size) {\n\t\tthrow new Error(ERR_ZIP_NOT_EMPTY);\n\t}\n\tawait zipWriter.appendZipEntries(reader);\n}\n\nasync function addFileEntry(zipWriter, name, reader, options) {\n\toptions = Object.assign({}, options);\n\tconst entry = options[OPTION_ENTRY];\n\tif (entry !== UNDEFINED_VALUE) {\n\t\tconst { entryOptions, passThroughOptions } = getSourceEntryOptions(entry,\n\t\t\tcheckPassThroughOption(getOptionValue(zipWriter, options, OPTION_PASS_THROUGH)),\n\t\t\tgetOptionValue(zipWriter, options, PROPERTY_NAME_LAST_MODIFICATION_DATE));\n\t\tdelete options[OPTION_ENTRY];\n\t\toptions = Object.assign(entryOptions, passThroughOptions, options);\n\t}\n\tif (getOptionValue(zipWriter, options, PROPERTY_NAME_DIRECTORY) && !name.endsWith(DIRECTORY_SIGNATURE)) {\n\t\tname += DIRECTORY_SIGNATURE;\n\t}\n\tif (zipWriter.filenames.has(name)) {\n\t\tthrow new Error(ERR_DUPLICATED_NAME);\n\t}\n\tzipWriter.filenames.add(name);\n\tif (workers < getConfiguration().maxWorkers) {\n\t\tworkers++;\n\t} else {\n\t\tawait new Promise(resolve => pendingEntries.push(resolve));\n\t}\n\ttry {\n\t\treturn await addFile(zipWriter, name, reader, options);\n\t} catch (error) {\n\t\tzipWriter.filenames.delete(name);\n\t\tthrow error;\n\t} finally {\n\t\tconst pendingEntry = pendingEntries.shift();\n\t\tif (pendingEntry) {\n\t\t\tpendingEntry();\n\t\t} else {\n\t\t\tworkers--;\n\t\t}\n\t}\n}\n\nasync function abortWritable(zipWriter, error) {\n\ttry {\n\t\tawait zipWriter.writer.writable.abort(error);\n\t} catch {\n\t\t// ignored\n\t}\n}\n\nfunction watchAddFileCall(zipWriterStream, promiseAddFile, onerror) {\n\tzipWriterStream.pendingAddFileCalls.add(promiseAddFile);\n\tpromiseAddFile.catch(error => {\n\t\ttry {\n\t\t\tonerror(error);\n\t\t} catch {\n\t\t\t// ignored\n\t\t}\n\t});\n}\n\nexport {\n\tZipWriter,\n\tZipWriterStream,\n\tgetEntriesSize,\n\tgetSourceEntryOptions,\n\tERR_DUPLICATED_NAME,\n\tERR_INVALID_COMMENT,\n\tERR_INVALID_COMMENT_TYPE,\n\tERR_INVALID_ENTRY_NAME,\n\tERR_INVALID_ENTRY_COMMENT,\n\tERR_INVALID_ENTRY_COMMENT_TYPE,\n\tERR_INVALID_DATE,\n\tERR_INVALID_VERSION,\n\tERR_INVALID_EXTRAFIELD,\n\tERR_INVALID_EXTRAFIELD_TYPE,\n\tERR_INVALID_EXTRAFIELD_DATA_TYPE,\n\tERR_INVALID_EXTRAFIELD_DATA,\n\tERR_INVALID_ENCRYPTION_STRENGTH,\n\tERR_UNSUPPORTED_ENCRYPTION_USDZ,\n\tERR_UNSUPPORTED_SPLIT_USDZ,\n\tERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH,\n\tERR_UNSUPPORTED_FORMAT,\n\tERR_UNDEFINED_UNCOMPRESSED_SIZE,\n\tERR_UNDEFINED_COMPRESSION_METHOD,\n\tERR_UNDEFINED_CRC32,\n\tERR_UNDETERMINED_SIZE,\n\tERR_UNDEFINED_READER,\n\tERR_INVALID_READER,\n\tERR_ZIP_NOT_EMPTY,\n\tERR_INVALID_SIGNATURE_DATA,\n\tERR_INVALID_ENTRY,\n\tERR_ZIP_CRYPTO_LAST_MOD_DATE,\n\tERR_INVALID_UID,\n\tERR_INVALID_GID,\n\tERR_INVALID_UNIX_MODE,\n\tERR_INVALID_UNIX_EXTRA_FIELD_TYPE,\n\tERR_INVALID_UNIX_ID_SIZE,\n\tERR_INVALID_MSDOS_ATTRIBUTES,\n\tERR_INVALID_MSDOS_DATA,\n\tERR_INVALID_LEVEL,\n\tERR_INVALID_PASSWORD_TYPE,\n\tERR_UNSUPPORTED_CRYPTO_API,\n\tWARNING_COMPRESSION_UNAVAILABLE,\n\tWARNING_CLAMPED_LAST_MODIFICATION_DATE\n};\n\nasync function addFile(zipWriter, name, reader, options) {\n\tconst attributesInfo = resolveAttributes(zipWriter, name, options);\n\t({ name } = attributesInfo);\n\tconst metadataInfo = resolveMetadata(zipWriter, name, options);\n\tconst { comment } = metadataInfo;\n\tconst extraField = options[PROPERTY_NAME_EXTRA_FIELD];\n\tzipWriter.fileEntries.set(name, UNDEFINED_VALUE);\n\tconst previousFileEntry = zipWriter.lastFileEntry;\n\tconst pendingFileEntry = {};\n\tlet releaseLockFileEntry;\n\tif (metadataInfo.resolvedOptions.keepOrder) {\n\t\tpendingFileEntry.lockFileEntry = new Promise(resolve => releaseLockFileEntry = resolve);\n\t}\n\tzipWriter.lastFileEntry = pendingFileEntry;\n\tlet fileEntry;\n\ttry {\n\t\tconst { resolvedOptions } = metadataInfo;\n\t\tif (resolvedOptions.level != 0 && resolvedOptions.compressionMethod === UNDEFINED_VALUE &&\n\t\t\t!resolvedOptions.passThroughCompression && !(await supportsDeflate(getConfiguration()))) {\n\t\t\tresolvedOptions.level = 0;\n\t\t\taddWarning(zipWriter.warnings, WARNING_COMPRESSION_UNAVAILABLE, name);\n\t\t}\n\t\tconst sizesInfo = await resolveSizes(zipWriter, reader, metadataInfo, options);\n\t\t({ reader } = sizesInfo);\n\t\tconst diskOffset = getDiskOffset(zipWriter.writer);\n\t\tconst diskNumber = getDiskNumber(zipWriter.writer);\n\t\tlet crc32 = options.crc32 === UNDEFINED_VALUE ? options[PROPERTY_NAME_SIGNATURE] : options.crc32;\n\t\tconst storesAE2 = sizesInfo.resolvedOptions.encrypted && !resolvedOptions.zipCrypto;\n\t\tif (resolvedOptions.passThroughCompression && !resolvedOptions.passThroughEncryption && storesAE2) {\n\t\t\tcrc32 = UNDEFINED_VALUE;\n\t\t}\n\t\tif (resolvedOptions.passThroughCompression && reader && !storesAE2 && crc32 === UNDEFINED_VALUE) {\n\t\t\tthrow new Error(ERR_UNDEFINED_CRC32);\n\t\t}\n\t\toptions = Object.assign({}, options, attributesInfo.resolvedOptions, metadataInfo.resolvedOptions, sizesInfo.resolvedOptions, {\n\t\t\tsignature: options[PROPERTY_NAME_SIGNATURE],\n\t\t\tcrc32,\n\t\t\toffset: zipWriter.offset - diskOffset,\n\t\t\tdiskNumberStart: diskNumber,\n\t\t\t[OPTION_USDZ]: zipWriter.options[OPTION_USDZ]\n\t\t});\n\t\tconst headerInfo = getHeaderInfo(options);\n\t\tif (headerInfo.lastModDateClamped) {\n\t\t\taddWarning(zipWriter.warnings, WARNING_CLAMPED_LAST_MODIFICATION_DATE, name);\n\t\t}\n\t\tconst dataDescriptorInfo = getDataDescriptorInfo(options);\n\t\tconst metadataSize = getLength(headerInfo.localHeaderArray, dataDescriptorInfo.dataDescriptorArray);\n\t\tfileEntry = await getFileEntry(zipWriter, name, reader, {\n\t\t\theaderInfo,\n\t\t\tdataDescriptorInfo,\n\t\t\tmetadataSize,\n\t\t\tfileEntry: pendingFileEntry,\n\t\t\tpreviousFileEntry,\n\t\t\treleaseLockFileEntry\n\t\t}, options);\n\t} catch (error) {\n\t\tzipWriter.fileEntries.delete(name);\n\t\tthrow error;\n\t} finally {\n\t\tif (releaseLockFileEntry) {\n\t\t\treleaseLockFileEntry(previousFileEntry && previousFileEntry.lockFileEntry);\n\t\t}\n\t}\n\tObject.assign(fileEntry, {\n\t\tname,\n\t\tcomment,\n\t\textraField\n\t});\n\treturn new Entry(fileEntry);\n}\n\nfunction getSourceEntryOptions(entry, passThrough, lastModDateOverride) {\n\tif (entry === null || typeof entry != OBJECT_TYPE || Array.isArray(entry)) {\n\t\tthrow new Error(ERR_INVALID_ENTRY);\n\t}\n\tconst {\n\t\texternalFileAttributes,\n\t\tversionMadeBy,\n\t\tcomment,\n\t\tlastModDate,\n\t\trawLastModDate,\n\t\tcreationDate,\n\t\tlastAccessDate,\n\t\tuncompressedSize,\n\t\tencrypted,\n\t\tzipCrypto,\n\t\tcrc32,\n\t\tcompressionMethod,\n\t\textraFieldAES,\n\t\textraFieldUnix,\n\t\tinternalFileAttributes,\n\t\textraField,\n\t\tbitFlag,\n\t\tdirectory,\n\t\tuid,\n\t\tgid\n\t} = entry;\n\tconst entryOptions = {\n\t\texternalFileAttributes,\n\t\tversionMadeBy,\n\t\tcomment,\n\t\tlastModDate,\n\t\tcreationDate,\n\t\tlastAccessDate,\n\t\tinternalFileAttributes,\n\t\tdirectory\n\t};\n\tif (bitFlag && bitFlag.languageEncodingFlag) {\n\t\tentryOptions[OPTION_USE_UNICODE_FILE_NAMES] = true;\n\t}\n\tconst userExtraField = getUserExtraField(extraField);\n\tif (userExtraField) {\n\t\tentryOptions[PROPERTY_NAME_EXTRA_FIELD] = userExtraField;\n\t}\n\tif (uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE) {\n\t\tObject.assign(entryOptions, {\n\t\t\tuid,\n\t\t\tgid,\n\t\t\tunixExtraFieldType: extraFieldUnix ? UNIX_EXTRA_FIELD_TYPE : INFOZIP_EXTRA_FIELD_TYPE\n\t\t});\n\t}\n\tconst passThroughOptions = {};\n\tif (passThrough && !directory) {\n\t\tObject.assign(passThroughOptions, {\n\t\t\tuncompressedSize,\n\t\t\tcrc32,\n\t\t\tcompressionMethod\n\t\t});\n\t\tif (passThrough !== PASS_THROUGH_COMPRESSED) {\n\t\t\tObject.assign(passThroughOptions, {\n\t\t\t\tencrypted,\n\t\t\t\tzipCrypto,\n\t\t\t\tencryptionStrength: extraFieldAES ? extraFieldAES.strength : UNDEFINED_VALUE\n\t\t\t});\n\t\t}\n\t\tif (bitFlag) {\n\t\t\tpassThroughOptions.dataDescriptor = bitFlag.dataDescriptor;\n\t\t\tpassThroughOptions[OPTION_LEVEL] = LEVEL_BY_BITFLAG_LEVEL[bitFlag.level];\n\t\t}\n\t\tif (lastModDateOverride === UNDEFINED_VALUE) {\n\t\t\tpassThroughOptions.rawLastModDate = rawLastModDate;\n\t\t} else if (passThrough !== PASS_THROUGH_COMPRESSED && zipCrypto && (!bitFlag || bitFlag.dataDescriptor) &&\n\t\t\tlastModDateOverride instanceof Date &&\n\t\t\tgetDosTimeHighByte(lastModDateOverride) != ((rawLastModDate >>> 8) & MAX_8_BITS)) {\n\t\t\tthrow new Error(ERR_ZIP_CRYPTO_LAST_MOD_DATE);\n\t\t}\n\t}\n\treturn { entryOptions, passThroughOptions };\n}\n\nfunction getDosTimeHighByte(lastModDate) {\n\tlet dosLastModDate = new Date(Math.ceil(Math.floor(lastModDate.getTime() / 1000) / 2) * 2000);\n\tif (dosLastModDate < MIN_DATE) {\n\t\tdosLastModDate = MIN_DATE;\n\t} else if (dosLastModDate > MAX_DATE) {\n\t\tdosLastModDate = MAX_DATE;\n\t}\n\treturn ((dosLastModDate.getHours() << 3) | (dosLastModDate.getMinutes() >> 3)) & MAX_8_BITS;\n}\n\nfunction resolveAttributes(zipWriter, name, options) {\n\tlet msDosCompatible = getOptionValue(zipWriter, options, PROPERTY_NAME_MS_DOS_COMPATIBLE);\n\tlet versionMadeBy = getOptionValue(zipWriter, options, PROPERTY_NAME_VERSION_MADE_BY, msDosCompatible ? VERSION_MADE_BY_MSDOS : VERSION_MADE_BY_UNIX);\n\tconst executable = getOptionValue(zipWriter, options, PROPERTY_NAME_EXECUTABLE);\n\tconst uid = getNumberOptionValue(zipWriter, options, PROPERTY_NAME_UID);\n\tconst gid = getNumberOptionValue(zipWriter, options, PROPERTY_NAME_GID);\n\tlet unixMode = getNumberOptionValue(zipWriter, options, PROPERTY_NAME_UNIX_MODE);\n\tlet unixExtraFieldType = getOptionValue(zipWriter, options, OPTION_UNIX_EXTRA_FIELD_TYPE);\n\tlet setuid = getOptionValue(zipWriter, options, PROPERTY_NAME_SETUID);\n\tlet setgid = getOptionValue(zipWriter, options, PROPERTY_NAME_SETGID);\n\tlet sticky = getOptionValue(zipWriter, options, PROPERTY_NAME_STICKY);\n\tcheckIntegerOption(uid, MAX_32_BITS, ERR_INVALID_UID);\n\tcheckIntegerOption(gid, MAX_32_BITS, ERR_INVALID_GID);\n\tcheckIntegerOption(unixMode, MAX_16_BITS, ERR_INVALID_UNIX_MODE);\n\tif (unixExtraFieldType !== UNDEFINED_VALUE && unixExtraFieldType !== INFOZIP_EXTRA_FIELD_TYPE && unixExtraFieldType !== UNIX_EXTRA_FIELD_TYPE) {\n\t\tthrow new Error(ERR_INVALID_UNIX_EXTRA_FIELD_TYPE);\n\t}\n\tif (unixExtraFieldType === UNIX_EXTRA_FIELD_TYPE &&\n\t\t((uid !== UNDEFINED_VALUE && uid > MAX_16_BITS) || (gid !== UNDEFINED_VALUE && gid > MAX_16_BITS))) {\n\t\tthrow new Error(ERR_INVALID_UNIX_ID_SIZE);\n\t}\n\tif (unixExtraFieldType === UNDEFINED_VALUE && (uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE)) {\n\t\tunixExtraFieldType = INFOZIP_EXTRA_FIELD_TYPE;\n\t}\n\tlet msdosAttributesRaw = getNumberOptionValue(zipWriter, options, PROPERTY_NAME_MSDOS_ATTRIBUTES_RAW);\n\tlet msdosAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_MSDOS_ATTRIBUTES);\n\tconst hasUnixMetadata = uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE || unixMode !== UNDEFINED_VALUE || unixExtraFieldType || executable;\n\tconst hasMsDosProvided = msdosAttributesRaw !== UNDEFINED_VALUE || msdosAttributes !== UNDEFINED_VALUE;\n\tif (hasUnixMetadata) {\n\t\tmsDosCompatible = false;\n\t\tversionMadeBy = (versionMadeBy & MAX_8_BITS) | VERSION_MADE_BY_UNIX;\n\t} else if (hasMsDosProvided) {\n\t\tmsDosCompatible = true;\n\t\tversionMadeBy = (versionMadeBy & MAX_8_BITS);\n\t}\n\tcheckIntegerOption(msdosAttributesRaw, MAX_8_BITS, ERR_INVALID_MSDOS_ATTRIBUTES);\n\tif (msdosAttributes && (typeof msdosAttributes !== OBJECT_TYPE || Array.isArray(msdosAttributes))) {\n\t\tthrow new Error(ERR_INVALID_MSDOS_DATA);\n\t}\n\tif (versionMadeBy > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_VERSION);\n\t}\n\tlet externalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES);\n\tconst externalFileAttributesProvided = externalFileAttributes !== UNDEFINED_VALUE;\n\tif (!externalFileAttributesProvided) {\n\t\texternalFileAttributes = 0;\n\t}\n\tif (!options[PROPERTY_NAME_DIRECTORY] && name.endsWith(DIRECTORY_SIGNATURE)) {\n\t\toptions[PROPERTY_NAME_DIRECTORY] = true;\n\t}\n\tconst directory = getOptionValue(zipWriter, options, PROPERTY_NAME_DIRECTORY);\n\tif (directory) {\n\t\tif (!name.endsWith(DIRECTORY_SIGNATURE)) {\n\t\t\tname += DIRECTORY_SIGNATURE;\n\t\t}\n\t\tif (!externalFileAttributesProvided) {\n\t\t\texternalFileAttributes = FILE_ATTR_MSDOS_DIR_MASK;\n\t\t\tif (!msDosCompatible) {\n\t\t\t\texternalFileAttributes |= (FILE_ATTR_UNIX_TYPE_DIR | FILE_ATTR_UNIX_EXECUTABLE_MASK | FILE_ATTR_UNIX_DEFAULT_MASK) << 16;\n\t\t\t}\n\t\t}\n\t} else if (!msDosCompatible && !externalFileAttributesProvided) {\n\t\tif (executable) {\n\t\t\texternalFileAttributes = (FILE_ATTR_UNIX_EXECUTABLE_MASK | FILE_ATTR_UNIX_DEFAULT_MASK) << 16;\n\t\t} else {\n\t\t\texternalFileAttributes = FILE_ATTR_UNIX_DEFAULT_MASK << 16;\n\t\t}\n\t}\n\tif (!msDosCompatible) {\n\t\tconst unixModeProvided = unixMode !== UNDEFINED_VALUE || Boolean(setuid || setgid || sticky);\n\t\tconst defaultUnixMode = (externalFileAttributes >> 16) & MAX_16_BITS;\n\t\tunixMode = unixMode === UNDEFINED_VALUE ? defaultUnixMode : (unixMode & MAX_16_BITS);\n\t\tif (setuid) {\n\t\t\tunixMode |= FILE_ATTR_UNIX_SETUID_MASK;\n\t\t} else {\n\t\t\tsetuid = Boolean(unixMode & FILE_ATTR_UNIX_SETUID_MASK);\n\t\t}\n\t\tif (setgid) {\n\t\t\tunixMode |= FILE_ATTR_UNIX_SETGID_MASK;\n\t\t} else {\n\t\t\tsetgid = Boolean(unixMode & FILE_ATTR_UNIX_SETGID_MASK);\n\t\t}\n\t\tif (sticky) {\n\t\t\tunixMode |= FILE_ATTR_UNIX_STICKY_MASK;\n\t\t} else {\n\t\t\tsticky = Boolean(unixMode & FILE_ATTR_UNIX_STICKY_MASK);\n\t\t}\n\t\tif (!externalFileAttributesProvided || unixModeProvided) {\n\t\t\tif (directory) {\n\t\t\t\tunixMode = (unixMode & ~FILE_ATTR_UNIX_TYPE_MASK) | FILE_ATTR_UNIX_TYPE_DIR;\n\t\t\t} else if (!(unixMode & FILE_ATTR_UNIX_TYPE_MASK)) {\n\t\t\t\tunixMode |= FILE_ATTR_UNIX_TYPE_FILE;\n\t\t\t}\n\t\t\texternalFileAttributes = ((unixMode & MAX_16_BITS) << 16) | (externalFileAttributes & MAX_16_BITS);\n\t\t}\n\t}\n\t({ msdosAttributesRaw, msdosAttributes } = normalizeMsdosAttributes(msdosAttributesRaw, msdosAttributes));\n\tif (hasMsDosProvided) {\n\t\texternalFileAttributes = (externalFileAttributes & MAX_32_BITS) | (msdosAttributesRaw & MAX_8_BITS);\n\t}\n\tconst unixExternalUpper = (externalFileAttributes >> 16) & MAX_16_BITS;\n\tconst symlink = unixMode !== UNDEFINED_VALUE && ((unixMode & FILE_ATTR_UNIX_TYPE_MASK) == FILE_ATTR_UNIX_TYPE_SYMLINK);\n\treturn {\n\t\tname,\n\t\tresolvedOptions: {\n\t\t\tversionMadeBy,\n\t\t\tmsDosCompatible: Boolean(msDosCompatible),\n\t\t\texternalFileAttributes,\n\t\t\tunixExternalUpper,\n\t\t\tuid,\n\t\t\tgid,\n\t\t\tunixMode,\n\t\t\tunixExtraFieldType,\n\t\t\tsymlink,\n\t\t\tsetuid,\n\t\t\tsetgid,\n\t\t\tsticky,\n\t\t\tmsdosAttributesRaw,\n\t\t\tmsdosAttributes\n\t\t}\n\t};\n}\n\nfunction resolveMetadata(zipWriter, name, options) {\n\tconst encode = getFunctionOptionValue(zipWriter, options, OPTION_ENCODE_TEXT) || encodeText;\n\tlet rawFilename = encode(name, TEXT_TYPE_FILENAME);\n\tif (rawFilename === UNDEFINED_VALUE) {\n\t\trawFilename = encodeText(name);\n\t}\n\tif (getLength(rawFilename) > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_ENTRY_NAME);\n\t}\n\tconst comment = options[PROPERTY_NAME_COMMENT] || \"\";\n\t// deno-lint-ignore valid-typeof\n\tif (typeof comment != STRING_TYPE) {\n\t\tthrow new Error(ERR_INVALID_ENTRY_COMMENT_TYPE);\n\t}\n\tlet rawComment = encode(comment, TEXT_TYPE_COMMENT);\n\tif (rawComment === UNDEFINED_VALUE) {\n\t\trawComment = encodeText(comment);\n\t}\n\tif (getLength(rawComment) > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_ENTRY_COMMENT);\n\t}\n\tconst version = getOptionValue(zipWriter, options, PROPERTY_NAME_VERSION);\n\tif (version !== UNDEFINED_VALUE && version > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_VERSION);\n\t}\n\tconst lastModDate = getDateOptionValue(zipWriter, options, PROPERTY_NAME_LAST_MODIFICATION_DATE, new Date());\n\tconst rawLastModDate = getOptionValue(zipWriter, options, PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE);\n\tconst lastAccessDate = getDateOptionValue(zipWriter, options, PROPERTY_NAME_LAST_ACCESS_DATE);\n\tconst creationDate = getDateOptionValue(zipWriter, options, PROPERTY_NAME_CREATION_DATE);\n\tconst internalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES, 0);\n\tconst passThrough = checkPassThroughOption(getOptionValue(zipWriter, options, OPTION_PASS_THROUGH));\n\tconst passThroughCompression = Boolean(passThrough);\n\tconst passThroughEncryption = passThrough === true;\n\tlet password = getOptionValue(zipWriter, options, OPTION_PASSWORD);\n\tlet rawPassword = getOptionValue(zipWriter, options, OPTION_RAW_PASSWORD);\n\tcheckPasswordOption(password, rawPassword);\n\tpassword = password && password.length ? password : UNDEFINED_VALUE;\n\trawPassword = rawPassword && rawPassword.length ? rawPassword : UNDEFINED_VALUE;\n\tconst encryptionStrength = getNumberOptionValue(zipWriter, options, OPTION_ENCRYPTION_STRENGTH, 3);\n\tconst zipCrypto = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIPCRYPTO);\n\tconst extendedTimestamp = getOptionValue(zipWriter, options, OPTION_EXTENDED_TIMESTAMP, true);\n\tconst ntfsTimestamp = getOptionValue(zipWriter, options, OPTION_NTFS_TIMESTAMP);\n\tconst keepOrder = getOptionValue(zipWriter, options, OPTION_KEEP_ORDER, true);\n\tconst useWebWorkers = getOptionValue(zipWriter, options, OPTION_USE_WEB_WORKERS);\n\tconst transferStreams = getOptionValue(zipWriter, options, OPTION_TRANSFER_STREAMS);\n\tconst bufferedWrite = getOptionValue(zipWriter, options, OPTION_BUFFERED_WRITE);\n\tconst createTempStream = getFunctionOptionValue(zipWriter, options, OPTION_CREATE_TEMP_STREAM);\n\tconst dataDescriptorSignature = getOptionValue(zipWriter, options, OPTION_DATA_DESCRIPTOR_SIGNATURE, true);\n\tconst signal = checkSignalOption(getOptionValue(zipWriter, options, OPTION_SIGNAL));\n\tthrowIfAborted(signal);\n\tconst useUnicodeFileNames = getOptionValue(zipWriter, options, OPTION_USE_UNICODE_FILE_NAMES,\n\t\t!isPrintableASCIIText(rawFilename) || !isPrintableASCIIText(rawComment));\n\tconst compressionMethod = getOptionValue(zipWriter, options, PROPERTY_NAME_COMPRESSION_METHOD);\n\tconst registeredCodec = passThroughCompression || compressionMethod === UNDEFINED_VALUE ? UNDEFINED_VALUE : getRegisteredCodec(compressionMethod);\n\tif (!passThroughCompression && compressionMethod !== UNDEFINED_VALUE &&\n\t\tcompressionMethod !== COMPRESSION_METHOD_STORE && compressionMethod !== COMPRESSION_METHOD_DEFLATE && !registeredCodec) {\n\t\tthrow new Error(ERR_UNSUPPORTED_COMPRESSION);\n\t}\n\tlet level = getNumberOptionValue(zipWriter, options, OPTION_LEVEL);\n\tcheckIntegerOption(level, MAX_LEVEL, ERR_INVALID_LEVEL);\n\tif (zipWriter.options[OPTION_USDZ]) {\n\t\tif (password !== UNDEFINED_VALUE || rawPassword !== UNDEFINED_VALUE) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_ENCRYPTION_USDZ);\n\t\t}\n\t\tif (level === UNDEFINED_VALUE && compressionMethod === UNDEFINED_VALUE) {\n\t\t\tlevel = 0;\n\t\t}\n\t}\n\tif (passThroughCompression) {\n\t\tlevel = toNumber(options[OPTION_LEVEL]);\n\t}\n\tlet useCompressionStream = getOptionValue(zipWriter, options, OPTION_USE_COMPRESSION_STREAM);\n\tlet dataDescriptor = getOptionValue(zipWriter, options, OPTION_DATA_DESCRIPTOR);\n\tif (bufferedWrite && dataDescriptor === UNDEFINED_VALUE) {\n\t\tdataDescriptor = false;\n\t}\n\tif (dataDescriptor === UNDEFINED_VALUE || (zipCrypto && !passThroughEncryption)) {\n\t\tdataDescriptor = true;\n\t}\n\tif (level !== UNDEFINED_VALUE && level != 6) {\n\t\tuseCompressionStream = false;\n\t}\n\tconst zip64 = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIP64);\n\tif (!zipCrypto && (password !== UNDEFINED_VALUE || rawPassword !== UNDEFINED_VALUE) && !(Number.isInteger(encryptionStrength) && encryptionStrength >= 1 && encryptionStrength <= 3)) {\n\t\tthrow new Error(ERR_INVALID_ENCRYPTION_STRENGTH);\n\t}\n\tconst rawExtraField = serializeExtraField(options[PROPERTY_NAME_EXTRA_FIELD]);\n\tconst rawLocalExtraField = serializeExtraField(options[OPTION_LOCAL_EXTRA_FIELD]);\n\tconst rawCentralExtraField = serializeExtraField(options[OPTION_CENTRAL_EXTRA_FIELD]);\n\treturn {\n\t\tcomment,\n\t\tresolvedOptions: {\n\t\t\trawFilename,\n\t\t\trawComment,\n\t\t\tversion,\n\t\t\tlastModDate,\n\t\t\trawLastModDate,\n\t\t\tlastAccessDate,\n\t\t\tcreationDate,\n\t\t\tinternalFileAttributes,\n\t\t\tpassThroughCompression,\n\t\t\tpassThroughEncryption,\n\t\t\tpassword,\n\t\t\trawPassword,\n\t\t\tencryptionStrength,\n\t\t\tzipCrypto,\n\t\t\textendedTimestamp,\n\t\t\tntfsTimestamp,\n\t\t\tkeepOrder,\n\t\t\tuseWebWorkers,\n\t\t\ttransferStreams,\n\t\t\tbufferedWrite,\n\t\t\tcreateTempStream,\n\t\t\tdataDescriptorSignature,\n\t\t\tsignal,\n\t\t\tuseUnicodeFileNames,\n\t\t\tcompressionMethod,\n\t\t\tformat: registeredCodec ? registeredCodec.format : UNDEFINED_VALUE,\n\t\t\tcodecURI: registeredCodec ? registeredCodec.codecURI : UNDEFINED_VALUE,\n\t\t\tcodecVersionNeeded: registeredCodec ? registeredCodec.versionNeeded : UNDEFINED_VALUE,\n\t\t\tlevel,\n\t\t\tuseCompressionStream,\n\t\t\tdataDescriptor,\n\t\t\tzip64,\n\t\t\trawExtraField,\n\t\t\trawLocalExtraField,\n\t\t\trawCentralExtraField\n\t\t}\n\t};\n}\n\nfunction serializeExtraField(extraField) {\n\tif (!extraField) {\n\t\treturn EMPTY_UINT8_ARRAY;\n\t}\n\tif (!(extraField instanceof Map)) {\n\t\tthrow new Error(ERR_INVALID_EXTRAFIELD);\n\t}\n\tlet extraFieldSize = 0;\n\tlet offset = 0;\n\textraField.forEach((data, type) => {\n\t\tcheckInteger(type, MAX_16_BITS, ERR_INVALID_EXTRAFIELD_TYPE);\n\t\tif (!(data instanceof Uint8Array)) {\n\t\t\tthrow new Error(ERR_INVALID_EXTRAFIELD_DATA_TYPE);\n\t\t}\n\t\tif (getLength(data) > MAX_16_BITS) {\n\t\t\tthrow new Error(ERR_INVALID_EXTRAFIELD_DATA);\n\t\t}\n\t\textraFieldSize += 4 + getLength(data);\n\t});\n\tconst rawExtraField = new Uint8Array(extraFieldSize);\n\tconst rawExtraFieldView = getDataView(rawExtraField);\n\textraField.forEach((data, type) => {\n\t\tsetUint16(rawExtraFieldView, offset, type);\n\t\tsetUint16(rawExtraFieldView, offset + 2, getLength(data));\n\t\tarraySet(rawExtraField, data, offset + 4);\n\t\toffset += 4 + getLength(data);\n\t});\n\treturn rawExtraField;\n}\n\nasync function resolveSizes(zipWriter, reader, { resolvedOptions: metadata }, options) {\n\tif (metadata.passThroughCompression && !reader && !getOptionValue(zipWriter, options, PROPERTY_NAME_DIRECTORY)) {\n\t\tthrow new Error(ERR_UNDEFINED_READER);\n\t}\n\tlet contentSize;\n\tif (reader) {\n\t\treader = new GenericReader(reader);\n\t\tawait initStream(reader);\n\t\tif (!reader.readable && !reader.readUint8Array) {\n\t\t\tthrow new Error(ERR_INVALID_READER);\n\t\t}\n\t\t({ size: contentSize } = reader);\n\t}\n\treturn Object.assign({ reader }, resolveEntrySizes(zipWriter, Boolean(reader), contentSize, metadata, options));\n}\n\nfunction resolveEntrySizes(zipWriter, hasContent, contentSize, metadata, options) {\n\tconst { passThroughCompression, passThroughEncryption, zipCrypto, password, rawPassword, encryptionStrength } = metadata;\n\tlet { dataDescriptor, zip64, level, compressionMethod } = metadata;\n\tlet maximumCompressedSize = 0;\n\tlet uncompressedSize = 0;\n\tlet unknownSize = false;\n\tif (passThroughCompression && hasContent) {\n\t\tuncompressedSize = options[PROPERTY_NAME_UNCOMPRESSED_SIZE];\n\t\tif (uncompressedSize === UNDEFINED_VALUE) {\n\t\t\tthrow new Error(ERR_UNDEFINED_UNCOMPRESSED_SIZE);\n\t\t}\n\t\tif (compressionMethod === UNDEFINED_VALUE) {\n\t\t\tthrow new Error(ERR_UNDEFINED_COMPRESSION_METHOD);\n\t\t}\n\t}\n\tconst zip64Enabled = zip64 === true;\n\tconst encrypted = getOptionValue(zipWriter, options, PROPERTY_NAME_ENCRYPTED);\n\tif (hasContent && passThroughEncryption && !encrypted && getLength(password, rawPassword)) {\n\t\tthrow new Error(ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH);\n\t}\n\tconst encryptedEntry = hasContent && (Boolean((password && getLength(password)) || (rawPassword && getLength(rawPassword))) || (passThroughEncryption && encrypted));\n\tif (!hasContent) {\n\t\tlevel = 0;\n\t\tcompressionMethod = COMPRESSION_METHOD_STORE;\n\t}\n\tconst encryptionOverhead = getEncryptionOverhead(encryptedEntry, zipCrypto, encryptionStrength);\n\tif (hasContent) {\n\t\tif (!passThroughCompression) {\n\t\t\tif (contentSize === UNDEFINED_VALUE) {\n\t\t\t\tdataDescriptor = true;\n\t\t\t\tif (zip64 || zip64 === UNDEFINED_VALUE) {\n\t\t\t\t\tzip64 = unknownSize = true;\n\t\t\t\t\tmaximumCompressedSize = MAX_32_BITS + 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toptions.uncompressedSize = uncompressedSize = contentSize;\n\t\t\t\tmaximumCompressedSize = (isCompressed(compressionMethod, level) ? getMaximumCompressedSize(uncompressedSize) : uncompressedSize) + encryptionOverhead;\n\t\t\t}\n\t\t} else {\n\t\t\toptions.uncompressedSize = uncompressedSize;\n\t\t\tmaximumCompressedSize = contentSize === UNDEFINED_VALUE ?\n\t\t\t\tgetMaximumCompressedSize(uncompressedSize) + encryptionOverhead :\n\t\t\t\tcontentSize + (passThroughEncryption ? 0 : encryptionOverhead);\n\t\t}\n\t}\n\tconst emptyEntry = !encryptedEntry && (!hasContent || (contentSize === 0 && !passThroughCompression)) && !isCompressed(compressionMethod, level);\n\tif (emptyEntry && getOptionValue(zipWriter, options, OPTION_DATA_DESCRIPTOR) === UNDEFINED_VALUE) {\n\t\tdataDescriptor = false;\n\t}\n\tconst zip64UncompressedSize = zip64Enabled || unknownSize || uncompressedSize >= MAX_32_BITS;\n\tconst zip64CompressedSize = zip64Enabled || maximumCompressedSize >= MAX_32_BITS;\n\tif (zip64UncompressedSize || zip64CompressedSize) {\n\t\tif (zip64 === false) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t} else {\n\t\t\tzip64 = true;\n\t\t}\n\t}\n\tzip64 = zip64 || false;\n\treturn {\n\t\tmaximumCompressedSize,\n\t\tresolvedOptions: {\n\t\t\tdataDescriptor,\n\t\t\temptyEntry,\n\t\t\tzip64,\n\t\t\tzip64Enabled,\n\t\t\tunknownSize,\n\t\t\tzip64UncompressedSize,\n\t\t\tzip64CompressedSize,\n\t\t\tuncompressedSize,\n\t\t\tlevel,\n\t\t\tcompressionMethod,\n\t\t\tencrypted: encryptedEntry\n\t\t}\n\t};\n}\n\nasync function getEntriesSize(writerOptions, entries, writeOrderGuaranteed, comment) {\n\tconst zipWriter = { options: writerOptions };\n\tif (checkFunctionOption(writerOptions[OPTION_SIGN_CENTRAL_DIRECTORY])) {\n\t\tthrow new Error(ERR_UNDETERMINED_SIZE);\n\t}\n\tif (comment !== UNDEFINED_VALUE && !(comment instanceof Uint8Array)) {\n\t\tthrow new Error(ERR_INVALID_COMMENT_TYPE);\n\t}\n\tconst commentLength = getLength(comment);\n\tif (commentLength > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_COMMENT);\n\t}\n\tconst usdz = writerOptions[OPTION_USDZ];\n\tconst files = new Map();\n\tconst initialOffset = writerOptions[OPTION_OFFSET] === UNDEFINED_VALUE ? 0 : writerOptions[OPTION_OFFSET];\n\tlet offset = initialOffset;\n\tlet minimumEntrySize = INFINITY_VALUE;\n\tconst entrySizes = [];\n\tconst entriesAlreadyZip64 = new Set();\n\tfor (const entry of entries) {\n\t\tlet { name } = entry;\n\t\tconst { size } = entry;\n\t\tconst options = Object.assign({}, entry.options);\n\t\tif (getOptionValue(zipWriter, options, PROPERTY_NAME_DIRECTORY) && !name.endsWith(DIRECTORY_SIGNATURE)) {\n\t\t\tname += DIRECTORY_SIGNATURE;\n\t\t}\n\t\tconst attributesInfo = resolveAttributes(zipWriter, name, options);\n\t\t({ name } = attributesInfo);\n\t\tconst { resolvedOptions: metadata } = resolveMetadata(zipWriter, name, options);\n\t\tif (metadata.level != 0 && metadata.compressionMethod === UNDEFINED_VALUE &&\n\t\t\t!metadata.passThroughCompression && !(await supportsDeflate(getConfiguration()))) {\n\t\t\tmetadata.level = 0;\n\t\t}\n\t\tconst hasContent = !getOptionValue(zipWriter, options, PROPERTY_NAME_DIRECTORY);\n\t\tif (hasContent && size === UNDEFINED_VALUE) {\n\t\t\tthrow new Error(ERR_UNDETERMINED_SIZE);\n\t\t}\n\t\tconst { maximumCompressedSize, resolvedOptions: sizes } = resolveEntrySizes(zipWriter, hasContent, size, metadata, options);\n\t\tif (hasContent && !metadata.passThroughCompression && isCompressed(sizes.compressionMethod, sizes.level)) {\n\t\t\tthrow new Error(ERR_UNDETERMINED_SIZE);\n\t\t}\n\t\tconst entryOptions = Object.assign({}, options, attributesInfo.resolvedOptions, metadata, sizes, { [OPTION_USDZ]: usdz });\n\t\tconst headerInfo = getHeaderInfo(entryOptions);\n\t\tconst dataDescriptorInfo = getDataDescriptorInfo(entryOptions);\n\t\tconst entryInfo = {\n\t\t\theaderInfo,\n\t\t\tmetadataSize: getLength(headerInfo.localHeaderArray, dataDescriptorInfo.dataDescriptorArray)\n\t\t};\n\t\tif (usdz) {\n\t\t\tappendExtraFieldUSDZ(entryInfo, offset);\n\t\t}\n\t\tconst compressedSize = hasContent ? maximumCompressedSize : 0;\n\t\tfiles.set(name, Object.assign({}, entryOptions, headerInfo, {\n\t\t\toffset,\n\t\t\tdiskNumberStart: 0,\n\t\t\tcompressedSize\n\t\t}));\n\t\tconst entrySize = entryInfo.metadataSize + compressedSize;\n\t\tentrySizes.push(entrySize);\n\t\tentriesAlreadyZip64.add(Boolean(entryOptions.zip64Enabled ||\n\t\t\tentryOptions.uncompressedSize >= MAX_32_BITS || compressedSize >= MAX_32_BITS));\n\t\tminimumEntrySize = Math.min(minimumEntrySize, entrySize);\n\t\toffset += entrySize;\n\t}\n\tconst layoutDependsOnWriteOrder = files.size > 1 && (usdz ||\n\t\t(offset - minimumEntrySize >= MAX_32_BITS &&\n\t\t\t(entriesAlreadyZip64.size > 1 || countEntriesBefore4GB(entrySizes, initialOffset, true) != countEntriesBefore4GB(entrySizes, initialOffset, false))));\n\tif (layoutDependsOnWriteOrder && !writeOrderGuaranteed) {\n\t\tthrow new Error(ERR_UNDETERMINED_SIZE);\n\t}\n\tconst { directoryDataLength, zip64Entries } = createDirectoryRecords(files);\n\tlet zip64 = getOptionValue(zipWriter, writerOptions, PROPERTY_NAME_ZIP64);\n\tif (offset >= MAX_32_BITS || directoryDataLength >= MAX_32_BITS || files.size >= MAX_16_BITS) {\n\t\tif (zip64 === false) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t} else {\n\t\t\tzip64 = true;\n\t\t}\n\t} else if (zip64 === UNDEFINED_VALUE && zip64Entries) {\n\t\tzip64 = true;\n\t}\n\treturn offset - initialOffset + directoryDataLength + commentLength + (zip64 ? ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH : END_OF_CENTRAL_DIR_LENGTH);\n}\n\nfunction countEntriesBefore4GB(entrySizes, initialOffset, largestFirst) {\n\tconst ordered = entrySizes.slice().sort((first, second) => largestFirst ? second - first : first - second);\n\tlet position = initialOffset;\n\tlet count = 0;\n\tfor (const entrySize of ordered) {\n\t\tif (position >= MAX_32_BITS) {\n\t\t\tbreak;\n\t\t}\n\t\tposition += entrySize;\n\t\tcount++;\n\t}\n\treturn count;\n}\n\nasync function getFileEntry(zipWriter, name, reader, entryInfo, options) {\n\tconst {\n\t\tfileEntries,\n\t\twriter\n\t} = zipWriter;\n\tconst {\n\t\tkeepOrder,\n\t\tdataDescriptor,\n\t\temptyEntry,\n\t\tsignal\n\t} = options;\n\tconst {\n\t\theaderInfo,\n\t\tfileEntry: pendingFileEntry,\n\t\tpreviousFileEntry,\n\t\treleaseLockFileEntry\n\t} = entryInfo;\n\tconst usdz = zipWriter.options[OPTION_USDZ];\n\tlet fileEntry = pendingFileEntry;\n\tlet bufferedWrite;\n\tlet directWrite;\n\tlet releaseLockWriter;\n\tlet writingBufferedEntryData;\n\tlet writingEntryData;\n\tlet writerSizeBeforeEntry;\n\tlet flushedBufferedSize = 0;\n\tlet fileWriter;\n\tconst lockPreviousFileEntry = keepOrder && previousFileEntry ? previousFileEntry.lockFileEntry : UNDEFINED_VALUE;\n\tfileEntries.set(name, fileEntry);\n\ttry {\n\t\tif (options.bufferedWrite || !keepOrder || zipWriter.writerLocked || zipWriter.bufferedWrites || zipWriter.directWrites || (!dataDescriptor && !emptyEntry)) {\n\t\t\tbufferedWrite = true;\n\t\t\tzipWriter.bufferedWrites++;\n\t\t\tif (options.createTempStream) {\n\t\t\t\tfileWriter = await options.createTempStream();\n\t\t\t} else {\n\t\t\t\tfileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });\n\t\t\t}\n\t\t\tfileWriter.size = 0;\n\t\t\tawait initStream(writer);\n\t\t} else {\n\t\t\tdirectWrite = true;\n\t\t\tzipWriter.directWrites++;\n\t\t\tfileWriter = writer;\n\t\t\tawait lockPreviousFileEntry;\n\t\t\tawait requestLockWriter();\n\t\t}\n\t\tawait initStream(fileWriter);\n\t\tconst diskOffset = getDiskOffset(writer);\n\t\tif (zipWriter.addSplitZipSignature && !bufferedWrite) {\n\t\t\tawait writeSplitZipSignature(zipWriter, writer);\n\t\t}\n\t\tif (usdz && !bufferedWrite) {\n\t\t\tappendExtraFieldUSDZ(entryInfo, zipWriter.offset - diskOffset);\n\t\t}\n\t\tconst { localHeaderArray } = headerInfo;\n\t\tif (!bufferedWrite) {\n\t\t\tawait skipDiskIfNeeded();\n\t\t}\n\t\tconst diskNumberStart = getDiskNumber(writer);\n\t\tconst entryOffset = getSegmentOffset(zipWriter, writer);\n\t\tfileEntry.diskNumberStart = diskNumberStart;\n\t\tif (!bufferedWrite) {\n\t\t\twritingEntryData = true;\n\t\t\twriterSizeBeforeEntry = writer.size;\n\t\t\tawait writeData(fileWriter, localHeaderArray);\n\t\t}\n\t\tfileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, getConfiguration(), options);\n\t\tif (!bufferedWrite) {\n\t\t\twritingEntryData = false;\n\t\t}\n\t\tfileEntries.set(name, fileEntry);\n\t\tfileEntry.filename = name;\n\t\tif (bufferedWrite) {\n\t\t\tawait Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);\n\t\t\tawait requestLockWriter();\n\t\t\tif (zipWriter.addSplitZipSignature) {\n\t\t\t\tawait writeSplitZipSignature(zipWriter, writer);\n\t\t\t}\n\t\t\twritingBufferedEntryData = true;\n\t\t\twriterSizeBeforeEntry = writer.size;\n\t\t\tawait skipDiskIfNeeded();\n\t\t\tfileEntry.diskNumberStart = getDiskNumber(writer);\n\t\t\tfileEntry.offset = getSegmentOffset(zipWriter, writer);\n\t\t\tif (usdz) {\n\t\t\t\tconst previousMetadataSize = entryInfo.metadataSize;\n\t\t\t\tappendExtraFieldUSDZ(entryInfo, zipWriter.offset - getDiskOffset(writer));\n\t\t\t\tfileEntry.size += entryInfo.metadataSize - previousMetadataSize;\n\t\t\t}\n\t\t\tupdateLocalHeader(fileEntry, headerInfo.localHeaderView, options);\n\t\t\tawait writeData(writer, headerInfo.localHeaderArray);\n\t\t\tawait flushBufferedData(fileWriter.readable, writer, signal, chunkLength => flushedBufferedSize += chunkLength);\n\t\t\twriter.size += fileWriter.size;\n\t\t\twritingBufferedEntryData = false;\n\t\t} else {\n\t\t\tfileEntry.diskNumberStart = diskNumberStart;\n\t\t\tfileEntry.offset = entryOffset;\n\t\t}\n\t\tzipWriter.offset += fileEntry.size;\n\t\treturn fileEntry;\n\t} catch (error) {\n\t\tif (writingBufferedEntryData || writingEntryData) {\n\t\t\tzipWriter.hasCorruptedEntries = true;\n\t\t\tif (error) {\n\t\t\t\ttry {\n\t\t\t\t\terror.corruptedEntry = true;\n\t\t\t\t} catch {\n\t\t\t\t\t// ignored\n\t\t\t\t}\n\t\t\t}\n\t\t\tzipWriter.offset += writer.size - writerSizeBeforeEntry;\n\t\t\tif (bufferedWrite) {\n\t\t\t\tzipWriter.offset += flushedBufferedSize;\n\t\t\t}\n\t\t}\n\t\tfileEntries.delete(name);\n\t\tthrow error;\n\t} finally {\n\t\tif (bufferedWrite) {\n\t\t\tzipWriter.bufferedWrites--;\n\t\t}\n\t\tif (directWrite) {\n\t\t\tzipWriter.directWrites--;\n\t\t}\n\t\tif (releaseLockFileEntry) {\n\t\t\treleaseLockFileEntry(lockPreviousFileEntry);\n\t\t}\n\t\tif (releaseLockWriter) {\n\t\t\treleaseLockWriter();\n\t\t}\n\t\tif (bufferedWrite && fileWriter && fileWriter.dispose) {\n\t\t\ttry {\n\t\t\t\tawait fileWriter.dispose();\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function requestLockWriter() {\n\t\tzipWriter.writerLocked = true;\n\t\tconst { lockWriter } = zipWriter;\n\t\tzipWriter.lockWriter = new Promise(resolve => releaseLockWriter = () => {\n\t\t\tzipWriter.writerLocked = false;\n\t\t\tresolve();\n\t\t});\n\t\tawait lockWriter;\n\t}\n\n\tasync function skipDiskIfNeeded() {\n\t\tif (exceedsAvailableSize(writer, getLength(headerInfo.localHeaderArray))) {\n\t\t\tawait writer.closeDisk();\n\t\t}\n\t}\n}\n\nasync function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry }, entryInfo, config, options) {\n\tconst {\n\t\theaderInfo,\n\t\tdataDescriptorInfo,\n\t\tmetadataSize\n\t} = entryInfo;\n\tconst {\n\t\theaderArray,\n\t\theaderView,\n\t\tlastModDate,\n\t\trawLastModDate,\n\t\tencrypted,\n\t\tcompressed,\n\t\tversion,\n\t\tcompressionMethod,\n\t\trawExtraFieldZip64,\n\t\tlocalExtraFieldZip64Length,\n\t\trawExtraFieldExtendedTimestamp,\n\t\textraFieldExtendedTimestampFlag,\n\t\textraFieldExtendedTimestampTime,\n\t\trawExtraFieldNTFS,\n\t\trawExtraFieldUnix,\n\t\trawExtraFieldAES,\n\t} = headerInfo;\n\tconst { dataDescriptorArray } = dataDescriptorInfo;\n\tconst {\n\t\trawFilename,\n\t\tlastAccessDate,\n\t\tcreationDate,\n\t\tpassword,\n\t\trawPassword,\n\t\tlevel,\n\t\tuseUnicodeFileNames,\n\t\tzip64,\n\t\tzip64Enabled,\n\t\tzip64UncompressedSize,\n\t\tzip64CompressedSize,\n\t\tzipCrypto,\n\t\tdataDescriptor,\n\t\tdirectory,\n\t\texecutable,\n\t\tversionMadeBy,\n\t\trawComment,\n\t\trawExtraField,\n\t\trawCentralExtraField,\n\t\tuseWebWorkers,\n\t\ttransferStreams,\n\t\tonstart,\n\t\tonprogress,\n\t\tonend,\n\t\tsignal,\n\t\tencryptionStrength,\n\t\textendedTimestamp,\n\t\tmsDosCompatible,\n\t\tinternalFileAttributes,\n\t\texternalFileAttributes,\n\t\tuid,\n\t\tgid,\n\t\tunixMode,\n\t\tsymlink,\n\t\tsetuid,\n\t\tsetgid,\n\t\tsticky,\n\t\tunixExternalUpper,\n\t\tmsdosAttributesRaw,\n\t\tmsdosAttributes,\n\t\tuseCompressionStream,\n\t\tpassThroughCompression,\n\t\tpassThroughEncryption,\n\t\tformat,\n\t\tcodecURI\n\t} = options;\n\tconst fileEntry = {\n\t\tlockFileEntry,\n\t\tversionMadeBy,\n\t\tzip64,\n\t\tzip64Enabled,\n\t\tdirectory: Boolean(directory),\n\t\texecutable: Boolean(executable),\n\t\tfilenameUTF8: Boolean(useUnicodeFileNames),\n\t\trawFilename,\n\t\tcommentUTF8: Boolean(useUnicodeFileNames),\n\t\trawComment,\n\t\trawExtraFieldZip64,\n\t\tlocalExtraFieldZip64Length,\n\t\trawExtraFieldExtendedTimestamp,\n\t\trawExtraFieldNTFS,\n\t\trawExtraFieldUnix,\n\t\trawExtraFieldAES,\n\t\trawExtraField,\n\t\trawCentralExtraField,\n\t\textendedTimestamp,\n\t\tmsDosCompatible,\n\t\tinternalFileAttributes,\n\t\texternalFileAttributes,\n\t\tdiskNumberStart,\n\t\tuid,\n\t\tgid,\n\t\tunixMode,\n\t\tsymlink: Boolean(symlink),\n\t\tsetuid,\n\t\tsetgid,\n\t\tsticky,\n\t\tunixExternalUpper,\n\t\tmsdosAttributesRaw,\n\t\tmsdosAttributes\n\t};\n\tlet {\n\t\tcrc32,\n\t\tuncompressedSize\n\t} = options;\n\tlet compressedSize = 0;\n\tif (!passThroughCompression) {\n\t\tuncompressedSize = 0;\n\t}\n\tconst { writable } = writer;\n\tif (reader) {\n\t\tconst size = reader.size;\n\t\tconst readable = toCompatibleReadable(createReadable(reader, { size }));\n\t\tconst workerOptions = {\n\t\t\toptions: {\n\t\t\t\tcodecType: CODEC_DEFLATE,\n\t\t\t\tinputSize: size,\n\t\t\t\tlevel,\n\t\t\t\trawPassword,\n\t\t\t\tpassword,\n\t\t\t\tencryptionStrength,\n\t\t\t\tzipCrypto: encrypted && zipCrypto,\n\t\t\t\tpasswordVerification: encrypted && zipCrypto && (rawLastModDate >> 8) & MAX_8_BITS,\n\t\t\t\tcomputeCrc32: !passThroughCompression,\n\t\t\t\tcompressed: compressed && !passThroughCompression,\n\t\t\t\tencrypted: encrypted && !passThroughEncryption,\n\t\t\t\tuseWebWorkers,\n\t\t\t\tuseCompressionStream,\n\t\t\t\ttransferStreams,\n\t\t\t\tformat,\n\t\t\t\tcodecURI,\n\t\t\t\tcompressionMethod\n\t\t\t},\n\t\t\tconfig,\n\t\t\tstreamOptions: { signal, size, onstart, onprogress, onend }\n\t\t};\n\t\ttry {\n\t\t\tconst result = await runWorker({ readable, writable }, workerOptions);\n\t\t\tcompressedSize = result.outputSize;\n\t\t\twriter.size += compressedSize;\n\t\t\tthrowIfAborted(signal);\n\t\t\tif (!passThroughCompression) {\n\t\t\t\tuncompressedSize = result.inputSize;\n\t\t\t\tif (!encrypted || zipCrypto) {\n\t\t\t\t\tcrc32 = result.crc32;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ((!zip64CompressedSize && compressedSize >= MAX_32_BITS) ||\n\t\t\t\t(!zip64UncompressedSize && uncompressedSize >= MAX_32_BITS)) {\n\t\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst { outputSize: failedOutputSize } = workerOptions;\n\t\t\tif (failedOutputSize !== UNDEFINED_VALUE) {\n\t\t\t\twriter.size += failedOutputSize;\n\t\t\t} else if (isErrorObject(error) && error.outputSize !== UNDEFINED_VALUE) {\n\t\t\t\twriter.size += error.outputSize;\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\n\t}\n\tsetEntryInfo({\n\t\tcrc32,\n\t\tcompressedSize,\n\t\tuncompressedSize,\n\t\theaderInfo,\n\t\tdataDescriptorInfo\n\t}, options);\n\tif (dataDescriptor) {\n\t\tawait writeData(writer, dataDescriptorArray);\n\t}\n\tObject.assign(fileEntry, {\n\t\tuncompressedSize,\n\t\tcompressedSize,\n\t\tlastModDate,\n\t\trawLastModDate,\n\t\tcreationDate,\n\t\tlastAccessDate,\n\t\tencrypted: Boolean(encrypted),\n\t\tzipCrypto: Boolean(zipCrypto),\n\t\tsize: metadataSize + compressedSize,\n\t\tcompressionMethod,\n\t\tversion,\n\t\theaderArray,\n\t\theaderView,\n\t\tsignature: crc32,\n\t\tcrc32: encrypted && !zipCrypto && !passThroughCompression ? UNDEFINED_VALUE : crc32,\n\t\textraFieldExtendedTimestampFlag,\n\t\textraFieldExtendedTimestampTime,\n\t\tzip64UncompressedSize,\n\t\tzip64CompressedSize\n\t});\n\treturn fileEntry;\n}\n\nfunction getHeaderInfo(options) {\n\tconst {\n\t\trawFilename,\n\t\tlastModDate,\n\t\trawLastModDate: rawLastModDateOption,\n\t\tlastAccessDate,\n\t\tcreationDate,\n\t\tlevel,\n\t\tzip64,\n\t\tzipCrypto,\n\t\tuseUnicodeFileNames,\n\t\tdataDescriptor,\n\t\tdirectory,\n\t\trawExtraField,\n\t\trawLocalExtraField,\n\t\tencryptionStrength,\n\t\textendedTimestamp,\n\t\tntfsTimestamp,\n\t\tpassThroughCompression,\n\t\tencrypted,\n\t\tzip64UncompressedSize,\n\t\tzip64CompressedSize,\n\t\tuncompressedSize,\n\t\tunknownSize,\n\t\tcrc32\n\t} = options;\n\tlet { version, compressionMethod } = options;\n\tconst compressed = !directory && isCompressed(compressionMethod, level);\n\tlet rawLocalExtraFieldZip64;\n\tconst uncompressedFile = passThroughCompression || !compressed;\n\tconst zip64ExtraFieldComplete = zip64 && (options.bufferedWrite || !dataDescriptor || ((!zip64UncompressedSize && !zip64CompressedSize) || (uncompressedFile && !unknownSize)));\n\tconst writeLocalExtraFieldZip64 = zip64ExtraFieldComplete || (zip64 && dataDescriptor && (zip64UncompressedSize || zip64CompressedSize));\n\tif (zip64 && (zip64UncompressedSize || zip64CompressedSize)) {\n\t\tconst length = 4 + 16;\n\t\tconst extraFieldZip64 = createRecordWriter(length);\n\t\textraFieldZip64.writeUint16(EXTRAFIELD_TYPE_ZIP64);\n\t\textraFieldZip64.writeUint16(length - 4);\n\t\trawLocalExtraFieldZip64 = extraFieldZip64.array;\n\t\tif (zip64ExtraFieldComplete) {\n\t\t\textraFieldZip64.writeUint64(uncompressedSize);\n\t\t\tif (uncompressedFile) {\n\t\t\t\tconst encryptionOverhead = getEncryptionOverhead(encrypted, zipCrypto, encryptionStrength);\n\t\t\t\textraFieldZip64.writeUint64(passThroughCompression ? 0 : uncompressedSize + encryptionOverhead);\n\t\t\t}\n\t\t}\n\t} else {\n\t\trawLocalExtraFieldZip64 = EMPTY_UINT8_ARRAY;\n\t}\n\tlet rawExtraFieldAES;\n\tif (encrypted && !zipCrypto) {\n\t\tconst extraFieldAES = createRecordWriter(getLength(EXTRAFIELD_DATA_AES) + 2);\n\t\textraFieldAES.writeUint16(EXTRAFIELD_TYPE_AES);\n\t\textraFieldAES.writeBytes(EXTRAFIELD_DATA_AES);\n\t\trawExtraFieldAES = extraFieldAES.array;\n\t\trawExtraFieldAES[8] = encryptionStrength;\n\t} else {\n\t\trawExtraFieldAES = EMPTY_UINT8_ARRAY;\n\t}\n\tlet rawExtraFieldNTFS;\n\tlet rawExtraFieldExtendedTimestamp;\n\tlet extraFieldExtendedTimestampFlag;\n\tlet extraFieldExtendedTimestampTime;\n\tif (extendedTimestamp) {\n\t\tconst lastModTimeUnix = getTimeUnix(lastModDate);\n\t\tconst lastModTimeUnixInRange = inUnixTimeRange(lastModTimeUnix);\n\t\tif (lastModTimeUnixInRange) {\n\t\t\tconst extraFieldTimestampLength = 9 + (lastAccessDate ? 4 : 0) + (creationDate ? 4 : 0);\n\t\t\tconst extraFieldTimestamp = createRecordWriter(extraFieldTimestampLength);\n\t\t\textraFieldExtendedTimestampFlag = 0x1 + (lastAccessDate ? 0x2 : 0) + (creationDate ? 0x4 : 0);\n\t\t\textraFieldExtendedTimestampTime = lastModTimeUnix;\n\t\t\textraFieldTimestamp.writeUint16(EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);\n\t\t\textraFieldTimestamp.writeUint16(extraFieldTimestampLength - 4);\n\t\t\textraFieldTimestamp.writeUint8(extraFieldExtendedTimestampFlag);\n\t\t\textraFieldTimestamp.writeUint32(lastModTimeUnix);\n\t\t\tif (lastAccessDate) {\n\t\t\t\textraFieldTimestamp.writeUint32(clampUnixTime(getTimeUnix(lastAccessDate)));\n\t\t\t}\n\t\t\tif (creationDate) {\n\t\t\t\textraFieldTimestamp.writeUint32(clampUnixTime(getTimeUnix(creationDate)));\n\t\t\t}\n\t\t\trawExtraFieldExtendedTimestamp = extraFieldTimestamp.array;\n\t\t} else {\n\t\t\trawExtraFieldExtendedTimestamp = EMPTY_UINT8_ARRAY;\n\t\t}\n\t\tconst writeExtraFieldNTFS = ntfsTimestamp === UNDEFINED_VALUE ?\n\t\t\t!lastModTimeUnixInRange || Boolean(lastAccessDate || creationDate) :\n\t\t\tntfsTimestamp;\n\t\tif (writeExtraFieldNTFS) {\n\t\t\ttry {\n\t\t\t\tconst lastModTimeNTFS = getTimeNTFS(lastModDate);\n\t\t\t\tconst extraFieldNTFS = createRecordWriter(36);\n\t\t\t\textraFieldNTFS.writeUint16(EXTRAFIELD_TYPE_NTFS);\n\t\t\t\textraFieldNTFS.writeUint16(32);\n\t\t\t\textraFieldNTFS.skip(4);\n\t\t\t\textraFieldNTFS.writeUint16(EXTRAFIELD_TYPE_NTFS_TAG1);\n\t\t\t\textraFieldNTFS.writeUint16(24);\n\t\t\t\textraFieldNTFS.writeUint64(lastModTimeNTFS);\n\t\t\t\textraFieldNTFS.writeUint64(lastAccessDate ? getTimeNTFS(lastAccessDate) : lastModTimeNTFS);\n\t\t\t\textraFieldNTFS.writeUint64(creationDate ? getTimeNTFS(creationDate) : lastModTimeNTFS);\n\t\t\t\trawExtraFieldNTFS = extraFieldNTFS.array;\n\t\t\t} catch {\n\t\t\t\trawExtraFieldNTFS = EMPTY_UINT8_ARRAY;\n\t\t\t}\n\t\t} else {\n\t\t\trawExtraFieldNTFS = EMPTY_UINT8_ARRAY;\n\t\t}\n\t} else {\n\t\trawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = EMPTY_UINT8_ARRAY;\n\t}\n\tlet rawExtraFieldUnix;\n\ttry {\n\t\tconst { uid, gid, unixExtraFieldType } = options;\n\t\tif (unixExtraFieldType == INFOZIP_EXTRA_FIELD_TYPE && (uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE)) {\n\t\t\tconst uidBytes = packUnixId(uid === UNDEFINED_VALUE ? 0 : uid);\n\t\t\tconst gidBytes = packUnixId(gid === UNDEFINED_VALUE ? 0 : gid);\n\t\t\tconst payloadLength = 3 + uidBytes.length + gidBytes.length;\n\t\t\tconst extraFieldUnix = createRecordWriter(4 + payloadLength);\n\t\t\textraFieldUnix.writeUint16(EXTRAFIELD_TYPE_INFOZIP);\n\t\t\textraFieldUnix.writeUint16(payloadLength);\n\t\t\textraFieldUnix.writeUint8(1);\n\t\t\textraFieldUnix.writeUint8(uidBytes.length);\n\t\t\textraFieldUnix.writeBytes(uidBytes);\n\t\t\textraFieldUnix.writeUint8(gidBytes.length);\n\t\t\textraFieldUnix.writeBytes(gidBytes);\n\t\t\trawExtraFieldUnix = extraFieldUnix.array;\n\t\t} else if (unixExtraFieldType == UNIX_EXTRA_FIELD_TYPE && (uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE)) {\n\t\t\tconst extraFieldUnix = createRecordWriter(8);\n\t\t\textraFieldUnix.writeUint16(EXTRAFIELD_TYPE_UNIX);\n\t\t\textraFieldUnix.writeUint16(4);\n\t\t\textraFieldUnix.writeUint16((uid === UNDEFINED_VALUE ? 0 : uid) & MAX_16_BITS);\n\t\t\textraFieldUnix.writeUint16((gid === UNDEFINED_VALUE ? 0 : gid) & MAX_16_BITS);\n\t\t\trawExtraFieldUnix = extraFieldUnix.array;\n\t\t} else {\n\t\t\trawExtraFieldUnix = EMPTY_UINT8_ARRAY;\n\t\t}\n\t} catch {\n\t\trawExtraFieldUnix = EMPTY_UINT8_ARRAY;\n\t}\n\tif (compressionMethod === UNDEFINED_VALUE) {\n\t\tcompressionMethod = compressed ? COMPRESSION_METHOD_DEFLATE : COMPRESSION_METHOD_STORE;\n\t}\n\tif (version === UNDEFINED_VALUE) {\n\t\tversion = compressionMethod == COMPRESSION_METHOD_STORE && !directory && !encrypted ? VERSION_STORE : VERSION_DEFLATE;\n\t}\n\tconst { codecVersionNeeded } = options;\n\tif (compressed && codecVersionNeeded !== UNDEFINED_VALUE) {\n\t\tversion = version > codecVersionNeeded ? version : codecVersionNeeded;\n\t}\n\tif (zip64) {\n\t\tversion = version > VERSION_ZIP64 ? version : VERSION_ZIP64;\n\t}\n\tif (encrypted && !zipCrypto) {\n\t\tversion = version > VERSION_AES ? version : VERSION_AES;\n\t\tif (passThroughCompression && crc32 !== UNDEFINED_VALUE) {\n\t\t\trawExtraFieldAES[EXTRAFIELD_OFFSET_AES_VENDOR_VERSION] = VENDOR_VERSION_AE_1;\n\t\t}\n\t\tsetUint16(getDataView(rawExtraFieldAES), EXTRAFIELD_OFFSET_AES_COMPRESSION_METHOD, compressionMethod);\n\t\tcompressionMethod = COMPRESSION_METHOD_AES;\n\t}\n\tconst localExtraFieldZip64Length = writeLocalExtraFieldZip64 ? getLength(rawLocalExtraFieldZip64) : 0;\n\tconst extraFieldLength = localExtraFieldZip64Length + getLength(rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraFieldUnix, rawExtraField, rawLocalExtraField);\n\tconst maximumUsdzExtraFieldLength = options[OPTION_USDZ] ? EXTRAFIELD_USDZ_MAX_LENGTH : 0;\n\tif (extraFieldLength + maximumUsdzExtraFieldLength > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_EXTRAFIELD_DATA);\n\t}\n\tconst dosLastModDate = new Date(Math.ceil(Math.floor(lastModDate.getTime() / 1000) / 2) * 2000);\n\tconst clampedLastModDate = dosLastModDate < MIN_DATE ? MIN_DATE : dosLastModDate > MAX_DATE ? MAX_DATE : dosLastModDate;\n\tconst storedLastModDate = getLength(rawExtraFieldExtendedTimestamp) ?\n\t\tnew Date(getTimeUnix(lastModDate) * 1000) :\n\t\tgetLength(rawExtraFieldNTFS) ? lastModDate : clampedLastModDate;\n\tconst {\n\t\theaderArray,\n\t\theaderView,\n\t\trawLastModDate\n\t} = getHeaderArrayData({\n\t\tversion,\n\t\tbitFlag: getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compressionMethod),\n\t\tcompressionMethod,\n\t\tuncompressedSize,\n\t\tlastModDate: clampedLastModDate,\n\t\trawLastModDate: rawLastModDateOption,\n\t\trawFilename,\n\t\tzip64CompressedSize,\n\t\tzip64UncompressedSize,\n\t\textraFieldLength\n\t});\n\tconst localHeader = createRecordWriter(HEADER_SIZE + getLength(rawFilename) + extraFieldLength);\n\tconst localHeaderArray = localHeader.array;\n\tconst localHeaderView = getDataView(localHeaderArray);\n\tlocalHeader.writeUint32(LOCAL_FILE_HEADER_SIGNATURE);\n\tlocalHeader.writeBytes(headerArray);\n\tlocalHeader.writeBytes(rawFilename);\n\tif (writeLocalExtraFieldZip64) {\n\t\tlocalHeader.writeBytes(rawLocalExtraFieldZip64);\n\t}\n\tlocalHeader.writeBytes(rawExtraFieldAES);\n\tlocalHeader.writeBytes(rawExtraFieldExtendedTimestamp);\n\tlocalHeader.writeBytes(rawExtraFieldNTFS);\n\tlocalHeader.writeBytes(rawExtraFieldUnix);\n\tlocalHeader.writeBytes(rawExtraField);\n\tlocalHeader.writeBytes(rawLocalExtraField);\n\tif (dataDescriptor) {\n\t\tif (!zip64CompressedSize) {\n\t\t\tsetUint32(localHeaderView, HEADER_OFFSET_COMPRESSED_SIZE + LOCAL_HEADER_COMMON_OFFSET, 0);\n\t\t}\n\t\tif (!zip64UncompressedSize) {\n\t\t\tsetUint32(localHeaderView, HEADER_OFFSET_UNCOMPRESSED_SIZE + LOCAL_HEADER_COMMON_OFFSET, 0);\n\t\t}\n\t}\n\treturn {\n\t\tlocalHeaderArray,\n\t\tlocalHeaderView,\n\t\theaderArray,\n\t\theaderView,\n\t\tlastModDate: storedLastModDate,\n\t\tlastModDateClamped: storedLastModDate === clampedLastModDate && dosLastModDate.getTime() != clampedLastModDate.getTime(),\n\t\trawLastModDate,\n\t\tencrypted,\n\t\tcompressed,\n\t\tversion,\n\t\tcompressionMethod,\n\t\textraFieldExtendedTimestampFlag,\n\t\textraFieldExtendedTimestampTime,\n\t\trawExtraFieldZip64: EMPTY_UINT8_ARRAY,\n\t\tlocalExtraFieldZip64Length,\n\t\trawExtraFieldExtendedTimestamp,\n\t\trawExtraFieldNTFS,\n\t\trawExtraFieldUnix,\n\t\trawExtraFieldAES,\n\t\textraFieldLength\n\t};\n}\n\nfunction appendExtraFieldUSDZ(entryInfo, zipWriterOffset) {\n\tconst { headerInfo } = entryInfo;\n\tlet { localHeaderArray, extraFieldLength } = headerInfo;\n\tlet extraBytesLength = 64 - ((zipWriterOffset + getLength(localHeaderArray)) % 64);\n\tif (extraBytesLength < 4) {\n\t\textraBytesLength += 64;\n\t}\n\tconst rawExtraFieldUSDZ = new Uint8Array(extraBytesLength);\n\tconst extraFieldUSDZView = getDataView(rawExtraFieldUSDZ);\n\tsetUint16(extraFieldUSDZView, 0, EXTRAFIELD_TYPE_USDZ);\n\tsetUint16(extraFieldUSDZView, 2, extraBytesLength - 4);\n\tconst previousLocalHeaderArray = localHeaderArray;\n\theaderInfo.localHeaderArray = localHeaderArray = new Uint8Array(getLength(previousLocalHeaderArray) + extraBytesLength);\n\tarraySet(localHeaderArray, previousLocalHeaderArray);\n\tarraySet(localHeaderArray, rawExtraFieldUSDZ, getLength(previousLocalHeaderArray));\n\tconst localHeaderArrayView = getDataView(localHeaderArray);\n\tsetUint16(localHeaderArrayView, 28, extraFieldLength + extraBytesLength);\n\theaderInfo.localHeaderView = localHeaderArrayView;\n\tentryInfo.metadataSize += extraBytesLength;\n}\n\nfunction packUnixId(id) {\n\tconst dataArray = new Uint8Array(4);\n\tconst dataView = getDataView(dataArray);\n\tdataView.setUint32(0, id, true);\n\tlet length = 4;\n\twhile (length > 1 && dataArray[length - 1] === 0) {\n\t\tlength--;\n\t}\n\treturn dataArray.subarray(0, length);\n}\n\nfunction normalizeMsdosAttributes(msdosAttributesRaw, msdosAttributes) {\n\tif (msdosAttributesRaw !== UNDEFINED_VALUE) {\n\t\tmsdosAttributesRaw = msdosAttributesRaw & MAX_8_BITS;\n\t} else if (msdosAttributes !== UNDEFINED_VALUE) {\n\t\tconst { readOnly, hidden, system, directory: msdDir, archive } = msdosAttributes;\n\t\tlet raw = 0;\n\t\tif (readOnly) raw |= FILE_ATTR_MSDOS_READONLY_MASK;\n\t\tif (hidden) raw |= FILE_ATTR_MSDOS_HIDDEN_MASK;\n\t\tif (system) raw |= FILE_ATTR_MSDOS_SYSTEM_MASK;\n\t\tif (msdDir) raw |= FILE_ATTR_MSDOS_DIR_MASK;\n\t\tif (archive) raw |= FILE_ATTR_MSDOS_ARCHIVE_MASK;\n\t\tmsdosAttributesRaw = raw & MAX_8_BITS;\n\t}\n\tif (msdosAttributes === UNDEFINED_VALUE) {\n\t\tmsdosAttributes = {\n\t\t\treadOnly: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_READONLY_MASK),\n\t\t\thidden: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_HIDDEN_MASK),\n\t\t\tsystem: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_SYSTEM_MASK),\n\t\t\tdirectory: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_DIR_MASK),\n\t\t\tarchive: Boolean(msdosAttributesRaw & FILE_ATTR_MSDOS_ARCHIVE_MASK)\n\t\t};\n\t}\n\treturn { msdosAttributesRaw, msdosAttributes };\n}\n\nfunction getDataDescriptorInfo({\n\tzip64,\n\tdataDescriptor,\n\tdataDescriptorSignature\n}) {\n\tlet dataDescriptorArray = EMPTY_UINT8_ARRAY;\n\tlet dataDescriptorView, dataDescriptorOffset = 0;\n\tlet dataDescriptorLength = zip64 ? DATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH : DATA_DESCRIPTOR_RECORD_LENGTH;\n\tif (dataDescriptorSignature) {\n\t\tdataDescriptorLength += DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH;\n\t}\n\tif (dataDescriptor) {\n\t\tdataDescriptorArray = new Uint8Array(dataDescriptorLength);\n\t\tdataDescriptorView = getDataView(dataDescriptorArray);\n\t\tif (dataDescriptorSignature) {\n\t\t\tdataDescriptorOffset = DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH;\n\t\t\tsetUint32(dataDescriptorView, 0, DATA_DESCRIPTOR_RECORD_SIGNATURE);\n\t\t}\n\t}\n\treturn {\n\t\tdataDescriptorArray,\n\t\tdataDescriptorView,\n\t\tdataDescriptorOffset\n\t};\n}\n\nfunction setEntryInfo({\n\tcrc32,\n\tcompressedSize,\n\tuncompressedSize,\n\theaderInfo,\n\tdataDescriptorInfo\n}, {\n\tzip64,\n\tzipCrypto,\n\tpassThroughCompression,\n\tdataDescriptor\n}) {\n\tconst {\n\t\theaderView,\n\t\tencrypted\n\t} = headerInfo;\n\tconst {\n\t\tdataDescriptorView,\n\t\tdataDescriptorOffset\n\t} = dataDescriptorInfo;\n\tif ((!encrypted || zipCrypto || passThroughCompression) && crc32 !== UNDEFINED_VALUE) {\n\t\tsetUint32(headerView, HEADER_OFFSET_SIGNATURE, crc32);\n\t\tif (dataDescriptor) {\n\t\t\tsetUint32(dataDescriptorView, dataDescriptorOffset, crc32);\n\t\t}\n\t}\n\tif (zip64) {\n\t\tif (dataDescriptor) {\n\t\t\tsetBigUint64(dataDescriptorView, dataDescriptorOffset + 4, BigInt(compressedSize));\n\t\t\tsetBigUint64(dataDescriptorView, dataDescriptorOffset + 12, BigInt(uncompressedSize));\n\t\t}\n\t} else {\n\t\tsetUint32(headerView, HEADER_OFFSET_COMPRESSED_SIZE, compressedSize);\n\t\tsetUint32(headerView, HEADER_OFFSET_UNCOMPRESSED_SIZE, uncompressedSize);\n\t\tif (dataDescriptor) {\n\t\t\tsetUint32(dataDescriptorView, dataDescriptorOffset + 4, compressedSize);\n\t\t\tsetUint32(dataDescriptorView, dataDescriptorOffset + 8, uncompressedSize);\n\t\t}\n\t}\n}\n\nfunction updateLocalHeader({\n\trawFilename,\n\tencrypted,\n\tzip64,\n\tlocalExtraFieldZip64Length,\n\tcrc32,\n\tcompressedSize,\n\tuncompressedSize,\n\tzip64UncompressedSize,\n\tzip64CompressedSize\n}, localHeaderView, { dataDescriptor, passThroughCompression }) {\n\tif (!dataDescriptor) {\n\t\tif (!encrypted || (passThroughCompression && crc32 !== UNDEFINED_VALUE)) {\n\t\t\tsetUint32(localHeaderView, HEADER_OFFSET_SIGNATURE + LOCAL_HEADER_COMMON_OFFSET, crc32);\n\t\t}\n\t\tif (!zip64CompressedSize) {\n\t\t\tsetUint32(localHeaderView, HEADER_OFFSET_COMPRESSED_SIZE + LOCAL_HEADER_COMMON_OFFSET, compressedSize);\n\t\t}\n\t\tif (!zip64UncompressedSize) {\n\t\t\tsetUint32(localHeaderView, HEADER_OFFSET_UNCOMPRESSED_SIZE + LOCAL_HEADER_COMMON_OFFSET, uncompressedSize);\n\t\t}\n\t}\n\tif (zip64 && localExtraFieldZip64Length) {\n\t\tconst localHeaderOffset = HEADER_SIZE + getLength(rawFilename) + 4;\n\t\tsetBigUint64(localHeaderView, localHeaderOffset, BigInt(uncompressedSize));\n\t\tsetBigUint64(localHeaderView, localHeaderOffset + 8, BigInt(compressedSize));\n\t}\n}\n\n\nasync function closeFile(zipWriter, comment, options) {\n\tconst { directoryDataLength, zip64Entries } = createDirectoryRecords(zipWriter.fileEntries);\n\tconst { directoryStart, directoryEnd, directoryArray } = await writeDirectoryRecords(zipWriter, directoryDataLength, options);\n\tconst signatureLength = await writeDigitalSignatureRecord(zipWriter, directoryArray, options);\n\tawait writeEndOfDirectoryRecord(zipWriter, comment, options, { directoryStart, directoryEnd, directoryDataLength, signatureLength, zip64Entries });\n}\n\nfunction createDirectoryRecords(files) {\n\tlet directoryDataLength = 0;\n\tlet zip64Entries = false;\n\tfor (const [, fileEntry] of files) {\n\t\tconst {\n\t\t\trawFilename,\n\t\t\trawExtraFieldAES,\n\t\t\trawComment,\n\t\t\trawExtraFieldNTFS,\n\t\t\trawExtraFieldUnix,\n\t\t\trawExtraField,\n\t\t\trawCentralExtraField,\n\t\t\textraFieldExtendedTimestampFlag,\n\t\t\textraFieldExtendedTimestampTime,\n\t\t\tzip64Enabled,\n\t\t\tuncompressedSize,\n\t\t\tcompressedSize\n\t\t} = fileEntry;\n\t\tlet { zip64UncompressedSize, zip64CompressedSize } = fileEntry;\n\t\tif (!zip64Enabled) {\n\t\t\tif (zip64UncompressedSize && uncompressedSize < MAX_32_BITS) {\n\t\t\t\tzip64UncompressedSize = fileEntry.zip64UncompressedSize = false;\n\t\t\t}\n\t\t\tif (zip64CompressedSize && compressedSize < MAX_32_BITS) {\n\t\t\t\tzip64CompressedSize = fileEntry.zip64CompressedSize = false;\n\t\t\t}\n\t\t}\n\t\tzip64Entries = zip64Entries || zip64UncompressedSize || zip64CompressedSize;\n\t\tconst zip64Offset = fileEntry.offset >= MAX_32_BITS;\n\t\tconst zip64DiskNumberStart = fileEntry.diskNumberStart >= MAX_16_BITS;\n\t\tlet rawExtraFieldZip64;\n\t\tif (zip64Offset || zip64DiskNumberStart || zip64UncompressedSize || zip64CompressedSize) {\n\t\t\tconst length = 4 + (zip64UncompressedSize ? 8 : 0) + (zip64CompressedSize ? 8 : 0) + (zip64Offset ? 8 : 0) + (zip64DiskNumberStart ? 4 : 0);\n\t\t\tconst extraFieldZip64 = createRecordWriter(length);\n\t\t\textraFieldZip64.writeUint16(EXTRAFIELD_TYPE_ZIP64);\n\t\t\textraFieldZip64.writeUint16(length - 4);\n\t\t\tif (zip64UncompressedSize) {\n\t\t\t\textraFieldZip64.writeUint64(uncompressedSize);\n\t\t\t}\n\t\t\tif (zip64CompressedSize) {\n\t\t\t\textraFieldZip64.writeUint64(compressedSize);\n\t\t\t}\n\t\t\tif (zip64Offset) {\n\t\t\t\textraFieldZip64.writeUint64(fileEntry.offset);\n\t\t\t}\n\t\t\tif (zip64DiskNumberStart) {\n\t\t\t\textraFieldZip64.writeUint32(fileEntry.diskNumberStart);\n\t\t\t}\n\t\t\trawExtraFieldZip64 = extraFieldZip64.array;\n\t\t} else {\n\t\t\trawExtraFieldZip64 = EMPTY_UINT8_ARRAY;\n\t\t}\n\t\tfileEntry.rawExtraFieldZip64 = rawExtraFieldZip64;\n\t\tfileEntry.zip64Offset = zip64Offset;\n\t\tfileEntry.zip64DiskNumberStart = zip64DiskNumberStart;\n\t\tlet rawExtraFieldTimestamp;\n\t\tif (extraFieldExtendedTimestampTime === UNDEFINED_VALUE) {\n\t\t\trawExtraFieldTimestamp = EMPTY_UINT8_ARRAY;\n\t\t} else {\n\t\t\tconst extraFieldTimestamp = createRecordWriter(9);\n\t\t\textraFieldTimestamp.writeUint16(EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);\n\t\t\textraFieldTimestamp.writeUint16(5);\n\t\t\textraFieldTimestamp.writeUint8(extraFieldExtendedTimestampFlag);\n\t\t\textraFieldTimestamp.writeUint32(extraFieldExtendedTimestampTime);\n\t\t\trawExtraFieldTimestamp = extraFieldTimestamp.array;\n\t\t}\n\t\tfileEntry.rawExtraFieldExtendedTimestamp = rawExtraFieldTimestamp;\n\t\tconst extraFieldLength = getLength(\n\t\t\trawExtraFieldZip64,\n\t\t\trawExtraFieldAES,\n\t\t\trawExtraFieldNTFS,\n\t\t\trawExtraFieldUnix,\n\t\t\trawExtraFieldTimestamp,\n\t\t\trawExtraField,\n\t\t\trawCentralExtraField);\n\t\tif (extraFieldLength > MAX_16_BITS) {\n\t\t\tthrow new Error(ERR_INVALID_EXTRAFIELD_DATA);\n\t\t}\n\t\tdirectoryDataLength += CENTRAL_FILE_HEADER_LENGTH + getLength(rawFilename, rawComment) + extraFieldLength;\n\t}\n\treturn { directoryDataLength, zip64Entries };\n}\n\nasync function writeDirectoryRecords(zipWriter, directoryDataLength, options) {\n\tconst { fileEntries, writer } = zipWriter;\n\tconst directoryArray = new Uint8Array(directoryDataLength);\n\tawait initStream(writer);\n\tlet offset = 0;\n\tlet directoryDiskOffset = 0;\n\tlet directoryStartDiskNumber = getDiskNumber(writer);\n\tlet directoryStartDiskOffset = getDiskOffset(writer);\n\tlet directoryEndDiskEntriesLength = 0;\n\tfor (const [indexFileEntry, fileEntry] of Array.from(fileEntries.values()).entries()) {\n\t\tconst {\n\t\t\toffset: fileEntryOffset,\n\t\t\trawFilename,\n\t\t\trawExtraFieldZip64,\n\t\t\trawExtraFieldAES,\n\t\t\trawExtraFieldExtendedTimestamp,\n\t\t\trawExtraFieldNTFS,\n\t\t\trawExtraFieldUnix,\n\t\t\trawExtraField,\n\t\t\trawCentralExtraField,\n\t\t\trawComment,\n\t\t\tversionMadeBy,\n\t\t\theaderArray,\n\t\t\theaderView,\n\t\t\tzip64UncompressedSize,\n\t\t\tzip64CompressedSize,\n\t\t\tzip64DiskNumberStart,\n\t\t\tzip64Offset,\n\t\t\tinternalFileAttributes,\n\t\t\texternalFileAttributes,\n\t\t\tdiskNumberStart,\n\t\t\tuncompressedSize,\n\t\t\tcompressedSize\n\t\t} = fileEntry;\n\t\tconst extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraFieldUnix, rawExtraField, rawCentralExtraField);\n\t\tconst directoryRecordLength = CENTRAL_FILE_HEADER_LENGTH + getLength(rawFilename, rawComment) + extraFieldLength;\n\t\tif (exceedsAvailableSize(writer, offset + directoryRecordLength - directoryDiskOffset)) {\n\t\t\tawait writeData(writer, directoryArray.slice(directoryDiskOffset, offset));\n\t\t\tdirectoryDiskOffset = offset;\n\t\t\tdirectoryEndDiskEntriesLength = 0;\n\t\t\tawait writer.closeDisk();\n\t\t}\n\t\tif (indexFileEntry == 0) {\n\t\t\tdirectoryStartDiskNumber = getDiskNumber(writer);\n\t\t\tdirectoryStartDiskOffset = getDiskOffset(writer);\n\t\t}\n\t\tif (!zip64UncompressedSize) {\n\t\t\tsetUint32(headerView, HEADER_OFFSET_UNCOMPRESSED_SIZE, uncompressedSize);\n\t\t}\n\t\tif (!zip64CompressedSize) {\n\t\t\tsetUint32(headerView, HEADER_OFFSET_COMPRESSED_SIZE, compressedSize);\n\t\t}\n\t\tif ((zip64Offset || zip64DiskNumberStart) && fileEntry.version < VERSION_ZIP64) {\n\t\t\tsetUint16(headerView, HEADER_OFFSET_VERSION, VERSION_ZIP64);\n\t\t}\n\t\tconst directoryRecord = createRecordWriter(directoryRecordLength);\n\t\tdirectoryRecord.writeUint32(CENTRAL_FILE_HEADER_SIGNATURE);\n\t\tdirectoryRecord.writeUint16(versionMadeBy);\n\t\tdirectoryRecord.writeBytes(headerArray.subarray(0, HEADER_SIZE - 4 - 2));\n\t\tdirectoryRecord.writeUint16(extraFieldLength);\n\t\tdirectoryRecord.writeUint16(getLength(rawComment));\n\t\tdirectoryRecord.writeUint16(zip64DiskNumberStart ? MAX_16_BITS : diskNumberStart);\n\t\tdirectoryRecord.writeUint16(internalFileAttributes);\n\t\tdirectoryRecord.writeUint32(externalFileAttributes);\n\t\tdirectoryRecord.writeUint32(zip64Offset ? MAX_32_BITS : fileEntryOffset);\n\t\tdirectoryRecord.writeBytes(rawFilename);\n\t\tdirectoryRecord.writeBytes(rawExtraFieldZip64);\n\t\tdirectoryRecord.writeBytes(rawExtraFieldAES);\n\t\tdirectoryRecord.writeBytes(rawExtraFieldExtendedTimestamp);\n\t\tdirectoryRecord.writeBytes(rawExtraFieldNTFS);\n\t\tdirectoryRecord.writeBytes(rawExtraFieldUnix);\n\t\tdirectoryRecord.writeBytes(rawExtraField);\n\t\tdirectoryRecord.writeBytes(rawCentralExtraField);\n\t\tdirectoryRecord.writeBytes(rawComment);\n\t\tarraySet(directoryArray, directoryRecord.array, offset);\n\t\toffset += directoryRecordLength;\n\t\tdirectoryEndDiskEntriesLength++;\n\t\tif (options.onprogress) {\n\t\t\ttry {\n\t\t\t\tawait options.onprogress(indexFileEntry + 1, fileEntries.size, new Entry(fileEntry));\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t}\n\t}\n\tawait writeData(writer, directoryDiskOffset ? directoryArray.slice(directoryDiskOffset) : directoryArray);\n\treturn {\n\t\tdirectoryStart: { diskNumber: directoryStartDiskNumber, diskOffset: directoryStartDiskOffset },\n\t\tdirectoryEnd: { diskNumber: getDiskNumber(writer), entriesLength: directoryEndDiskEntriesLength },\n\t\tdirectoryArray\n\t};\n}\n\nasync function writeDigitalSignatureRecord(zipWriter, directoryArray, options) {\n\tconst signCentralDirectory = getFunctionOptionValue(zipWriter, options, OPTION_SIGN_CENTRAL_DIRECTORY);\n\tif (signCentralDirectory) {\n\t\tconst signatureData = await signCentralDirectory(directoryArray);\n\t\tconst signatureDataLength = getLength(signatureData);\n\t\tif (signatureDataLength > MAX_16_BITS) {\n\t\t\tthrow new Error(ERR_INVALID_SIGNATURE_DATA);\n\t\t}\n\t\tconst signatureRecord = createRecordWriter(6 + signatureDataLength);\n\t\tsignatureRecord.writeUint32(DIGITAL_SIGNATURE_RECORD_SIGNATURE);\n\t\tsignatureRecord.writeUint16(signatureDataLength);\n\t\tsignatureRecord.writeBytes(signatureData);\n\t\tconst { writer } = zipWriter;\n\t\tif (exceedsAvailableSize(writer, getLength(signatureRecord.array))) {\n\t\t\tawait writer.closeDisk();\n\t\t}\n\t\tawait writeData(writer, signatureRecord.array);\n\t\treturn 6 + signatureDataLength;\n\t}\n\treturn 0;\n}\n\nasync function writeEndOfDirectoryRecord(zipWriter, comment, options, cdInfo) {\n\tconst { writer } = zipWriter;\n\tconst { directoryStart, directoryEnd, signatureLength, zip64Entries } = cdInfo;\n\tlet { directoryDataLength } = cdInfo;\n\tlet fileEntriesLength = zipWriter.fileEntries.size;\n\tlet diskNumber = directoryStart.diskNumber;\n\tlet directoryOffset = getSegmentOffset(zipWriter, directoryStart);\n\tconst commentLength = getLength(comment);\n\tif (commentLength > MAX_16_BITS) {\n\t\tthrow new Error(ERR_INVALID_COMMENT);\n\t}\n\tlet zip64 = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIP64);\n\tlet lastDiskNumber = getDiskNumber(writer);\n\tif (exceedsAvailableSize(writer, (zip64 ? ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH : END_OF_CENTRAL_DIR_LENGTH) + commentLength)) {\n\t\tlastDiskNumber++;\n\t}\n\tif (directoryOffset >= MAX_32_BITS || directoryDataLength >= MAX_32_BITS || fileEntriesLength >= MAX_16_BITS || lastDiskNumber >= MAX_16_BITS) {\n\t\tif (zip64 === false) {\n\t\t\tthrow new Error(ERR_UNSUPPORTED_FORMAT);\n\t\t} else {\n\t\t\tzip64 = true;\n\t\t}\n\t} else if (zip64 === UNDEFINED_VALUE && zip64Entries) {\n\t\tzip64 = true;\n\t}\n\tconst endOfdirectoryRecord = createRecordWriter(zip64 ? ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH : END_OF_CENTRAL_DIR_LENGTH);\n\tif (exceedsAvailableSize(writer, getLength(endOfdirectoryRecord.array) + commentLength)) {\n\t\tawait writer.closeDisk();\n\t}\n\tlastDiskNumber = getDiskNumber(writer);\n\tlet diskFileEntriesLength = lastDiskNumber == directoryEnd.diskNumber ? directoryEnd.entriesLength : 0;\n\tif (zip64) {\n\t\tendOfdirectoryRecord.writeUint32(ZIP64_END_OF_CENTRAL_DIR_SIGNATURE);\n\t\tendOfdirectoryRecord.writeUint64(44);\n\t\tendOfdirectoryRecord.writeUint16(45);\n\t\tendOfdirectoryRecord.writeUint16(45);\n\t\tendOfdirectoryRecord.writeUint32(lastDiskNumber);\n\t\tendOfdirectoryRecord.writeUint32(diskNumber);\n\t\tendOfdirectoryRecord.writeUint64(diskFileEntriesLength);\n\t\tendOfdirectoryRecord.writeUint64(fileEntriesLength);\n\t\tendOfdirectoryRecord.writeUint64(directoryDataLength);\n\t\tendOfdirectoryRecord.writeUint64(directoryOffset);\n\t\tendOfdirectoryRecord.writeUint32(ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE);\n\t\tendOfdirectoryRecord.writeUint32(lastDiskNumber);\n\t\tendOfdirectoryRecord.writeUint64(BigInt(getSegmentOffset(zipWriter, writer)) + BigInt(directoryDataLength) + BigInt(signatureLength));\n\t\tendOfdirectoryRecord.writeUint32(lastDiskNumber + 1);\n\t\tconst supportZip64SplitFile = getOptionValue(zipWriter, options, OPTION_SUPPORT_ZIP64_SPLIT_FILE, true);\n\t\tif (supportZip64SplitFile) {\n\t\t\tlastDiskNumber = MAX_16_BITS;\n\t\t\tdiskNumber = MAX_16_BITS;\n\t\t}\n\t\tdiskFileEntriesLength = MAX_16_BITS;\n\t\tfileEntriesLength = MAX_16_BITS;\n\t\tdirectoryOffset = MAX_32_BITS;\n\t\tdirectoryDataLength = MAX_32_BITS;\n\t}\n\tendOfdirectoryRecord.writeUint32(END_OF_CENTRAL_DIR_SIGNATURE);\n\tendOfdirectoryRecord.writeUint16(lastDiskNumber);\n\tendOfdirectoryRecord.writeUint16(diskNumber);\n\tendOfdirectoryRecord.writeUint16(diskFileEntriesLength);\n\tendOfdirectoryRecord.writeUint16(fileEntriesLength);\n\tendOfdirectoryRecord.writeUint32(directoryDataLength);\n\tendOfdirectoryRecord.writeUint32(directoryOffset);\n\tendOfdirectoryRecord.writeUint16(commentLength);\n\tawait writeData(writer, endOfdirectoryRecord.array);\n\tif (commentLength) {\n\t\tawait writeData(writer, comment);\n\t}\n}\n\nfunction createRecordWriter(length) {\n\tconst array = new Uint8Array(length);\n\tconst view = getDataView(array);\n\tlet offset = 0;\n\treturn {\n\t\tarray,\n\t\twriteUint8: value => { setUint8(view, offset, value); offset += 1; },\n\t\twriteUint16: value => { setUint16(view, offset, value); offset += 2; },\n\t\twriteUint32: value => { setUint32(view, offset, value); offset += 4; },\n\t\twriteUint64: value => { setBigUint64(view, offset, BigInt(value)); offset += 8; },\n\t\twriteBytes: value => { arraySet(array, value, offset); offset += getLength(value); },\n\t\tskip: count => offset += count\n\t};\n}\n\nfunction getDiskNumber(writer) {\n\tconst { diskNumber = 0 } = writer;\n\treturn diskNumber;\n}\n\nfunction getDiskOffset(writer) {\n\tconst { diskOffset = 0 } = writer;\n\treturn diskOffset;\n}\n\nfunction exceedsAvailableSize(writer, length) {\n\tconst { availableSize = INFINITY_VALUE } = writer;\n\treturn length > availableSize;\n}\n\nfunction getSegmentOffset(zipWriter, { diskNumber = 0, diskOffset = 0 }) {\n\treturn zipWriter.offset - diskOffset - (diskNumber ? zipWriter.initialOffset : 0);\n}\n\nasync function startsWithSplitZipSignature(reader) {\n\tconst signatureArray = await readUint8Array(reader, 0, SPLIT_ZIP_FILE_SIGNATURE_LENGTH);\n\treturn getUint32(getDataView(signatureArray), 0) == SPLIT_ZIP_FILE_SIGNATURE;\n}\n\nfunction removeExtraFieldZip64(rawExtraField) {\n\tconst rawExtraFieldView = getDataView(rawExtraField);\n\tlet offsetExtraField = 0;\n\twhile (offsetExtraField + 4 <= getLength(rawExtraField)) {\n\t\tconst size = 4 + getUint16(rawExtraFieldView, offsetExtraField + 2);\n\t\tif (getUint16(rawExtraFieldView, offsetExtraField) == EXTRAFIELD_TYPE_ZIP64) {\n\t\t\treturn removeExtraFieldZip64(concat(\n\t\t\t\trawExtraField.subarray(0, offsetExtraField),\n\t\t\t\trawExtraField.subarray(Math.min(offsetExtraField + size, getLength(rawExtraField)))));\n\t\t}\n\t\toffsetExtraField += size;\n\t}\n\treturn rawExtraField;\n}\n\nasync function copyZipData(zipWriter, reader, entries, directoryOffset) {\n\tconst { writer } = zipWriter;\n\tconst entryPositions = new Map();\n\tif (writer.closeDisk) {\n\t\tconst sortedEntries = Array.from(entries).sort((firstEntry, secondEntry) =>\n\t\t\tgetSourceOffset(reader, firstEntry) - getSourceOffset(reader, secondEntry));\n\t\tlet copiedLength = 0;\n\t\tfor (const entry of sortedEntries) {\n\t\t\tconst sourceOffset = getSourceOffset(reader, entry);\n\t\t\tawait copyData(zipWriter, reader, copiedLength, sourceOffset - copiedLength);\n\t\t\tif (exceedsAvailableSize(writer, await getLocalHeaderLength(reader, sourceOffset))) {\n\t\t\t\tawait writer.closeDisk();\n\t\t\t}\n\t\t\tentryPositions.set(entry, {\n\t\t\t\toffset: getSegmentOffset(zipWriter, writer),\n\t\t\t\tdiskNumberStart: getDiskNumber(writer)\n\t\t\t});\n\t\t\tcopiedLength = sourceOffset;\n\t\t}\n\t\tawait copyData(zipWriter, reader, copiedLength, directoryOffset - copiedLength);\n\t} else {\n\t\tconst baseOffset = zipWriter.offset;\n\t\tawait copyData(zipWriter, reader, 0, directoryOffset);\n\t\tentries.forEach(entry => entryPositions.set(entry, {\n\t\t\toffset: baseOffset + getSourceOffset(reader, entry),\n\t\t\tdiskNumberStart: 0\n\t\t}));\n\t}\n\treturn entryPositions;\n}\n\nasync function copyData(zipWriter, reader, offset, size) {\n\tif (size > 0) {\n\t\tconst { writer } = zipWriter;\n\t\tlet copiedLength = 0;\n\t\ttry {\n\t\t\tawait flushBufferedData(createReadable(reader, { offset, size }), writer, UNDEFINED_VALUE, chunkLength => copiedLength += chunkLength);\n\t\t} catch (error) {\n\t\t\tzipWriter.hasCorruptedEntries = true;\n\t\t\ttry {\n\t\t\t\terror.corruptedEntry = true;\n\t\t\t} catch {\n\t\t\t\t// ignored\n\t\t\t}\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\twriter.size += copiedLength;\n\t\t\tzipWriter.offset += copiedLength;\n\t\t}\n\t}\n}\n\nasync function getLocalHeaderLength(reader, offset) {\n\tconst headerArray = await readUint8Array(reader, offset, HEADER_SIZE);\n\tif (getLength(headerArray) < HEADER_SIZE) {\n\t\treturn HEADER_SIZE;\n\t}\n\tconst headerView = getDataView(headerArray);\n\treturn HEADER_SIZE +\n\t\tgetUint16(headerView, HEADER_OFFSET_FILENAME_LENGTH + LOCAL_HEADER_COMMON_OFFSET) +\n\t\tgetUint16(headerView, HEADER_OFFSET_EXTRAFIELD_LENGTH + LOCAL_HEADER_COMMON_OFFSET);\n}\n\nfunction getSourceOffset(reader, { offset, diskNumberStart }) {\n\treturn offset + (reader.getDiskOffset ? reader.getDiskOffset(diskNumberStart) : 0);\n}\n\nfunction getSplitZipSignatureArray() {\n\tconst signatureArray = new Uint8Array(SPLIT_ZIP_FILE_SIGNATURE_LENGTH);\n\tsetUint32(getDataView(signatureArray), 0, SPLIT_ZIP_FILE_SIGNATURE);\n\treturn signatureArray;\n}\n\nasync function writeSplitZipSignature(zipWriter, writer) {\n\tdelete zipWriter.addSplitZipSignature;\n\tawait writeData(writer, getSplitZipSignatureArray());\n\tzipWriter.offset += SPLIT_ZIP_FILE_SIGNATURE_LENGTH;\n}\n\nasync function writeData(writer, array) {\n\tconst { writable } = writer;\n\tconst streamWriter = writable.getWriter();\n\ttry {\n\t\tawait streamWriter.ready;\n\t\twriter.size += getLength(array);\n\t\tawait streamWriter.write(array);\n\t} finally {\n\t\tstreamWriter.releaseLock();\n\t}\n}\n\nasync function flushBufferedData(readable, writer, signal, onChunkWritten) {\n\tconst streamWriter = writer.writable.getWriter();\n\ttry {\n\t\tawait readable.pipeTo(new WritableStream({\n\t\t\tasync write(chunk) {\n\t\t\t\tawait streamWriter.ready;\n\t\t\t\tawait streamWriter.write(chunk);\n\t\t\t\tonChunkWritten(getLength(chunk));\n\t\t\t}\n\t\t}), { preventClose: true, preventAbort: true, signal });\n\t} finally {\n\t\tstreamWriter.releaseLock();\n\t}\n}\n\nfunction getTimeNTFS(date) {\n\tif (date) {\n\t\tconst timeNTFS = ((BigInt(date.getTime()) + BigInt(11644473600000)) * BigInt(10000));\n\t\treturn timeNTFS < MIN_NTFS_TIME ? MIN_NTFS_TIME : timeNTFS > MAX_NTFS_TIME ? MAX_NTFS_TIME : timeNTFS;\n\t}\n}\n\nfunction getTimeUnix(date) {\n\treturn Math.floor(date.getTime() / 1000);\n}\n\nfunction inUnixTimeRange(timeUnix) {\n\treturn timeUnix >= MIN_UNIX_TIME && timeUnix <= MAX_UNIX_TIME;\n}\n\nfunction clampUnixTime(timeUnix) {\n\treturn Math.min(MAX_UNIX_TIME, Math.max(MIN_UNIX_TIME, timeUnix));\n}\n\nfunction getOptionValue(zipWriter, options, name, defaultValue) {\n\tconst result = options[name] === UNDEFINED_VALUE ? zipWriter.options[name] : options[name];\n\treturn result === UNDEFINED_VALUE ? defaultValue : result;\n}\n\nfunction getDateOptionValue(zipWriter, options, name, defaultValue) {\n\tconst date = getOptionValue(zipWriter, options, name, defaultValue);\n\tif (date === null) {\n\t\treturn defaultValue;\n\t}\n\tif (date !== UNDEFINED_VALUE && (typeof date.getTime != FUNCTION_TYPE || Number.isNaN(date.getTime()))) {\n\t\tthrow new Error(ERR_INVALID_DATE);\n\t}\n\treturn date;\n}\n\nfunction getFunctionOptionValue(zipWriter, options, name) {\n\treturn checkFunctionOption(getOptionValue(zipWriter, options, name));\n}\n\nfunction getNumberOptionValue(zipWriter, options, name, defaultValue) {\n\treturn toNumber(getOptionValue(zipWriter, options, name, defaultValue));\n}\n\n\nfunction getMaximumCompressedSize(uncompressedSize) {\n\treturn uncompressedSize + (5 * (Math.floor(uncompressedSize / 16383) + 1));\n}\n\nfunction isCompressed(compressionMethod, level) {\n\treturn compressionMethod === UNDEFINED_VALUE\n\t\t? (level === UNDEFINED_VALUE || level > 0)\n\t\t: compressionMethod !== COMPRESSION_METHOD_STORE;\n}\n\nfunction getUint16(view, offset) {\n\treturn view.getUint16(offset, true);\n}\n\nfunction getUint32(view, offset) {\n\treturn view.getUint32(offset, true);\n}\n\nfunction setUint8(view, offset, value) {\n\tview.setUint8(offset, value);\n}\n\nfunction setUint16(view, offset, value) {\n\tview.setUint16(offset, value, true);\n}\n\nfunction setUint32(view, offset, value) {\n\tview.setUint32(offset, value, true);\n}\n\nfunction setBigUint64(view, offset, value) {\n\tview.setBigUint64(offset, value, true);\n}\n\nfunction arraySet(array, typedArray, offset) {\n\tarray.set(typedArray, offset);\n}\n\n\nfunction getLength(...arrayLikes) {\n\tlet result = 0;\n\tarrayLikes.forEach(arrayLike => arrayLike && (result += arrayLike.length));\n\treturn result;\n}\n\nfunction getHeaderArrayData({\n\tversion,\n\tbitFlag,\n\tcompressionMethod,\n\tuncompressedSize,\n\tcompressedSize,\n\tlastModDate,\n\trawLastModDate,\n\trawFilename,\n\tzip64CompressedSize,\n\tzip64UncompressedSize,\n\textraFieldLength\n}) {\n\tconst headerRecord = createRecordWriter(HEADER_SIZE - 4);\n\tconst headerArray = headerRecord.array;\n\tconst headerView = getDataView(headerArray);\n\theaderRecord.writeUint16(version);\n\theaderRecord.writeUint16(bitFlag);\n\theaderRecord.writeUint16(compressionMethod);\n\tif (rawLastModDate === UNDEFINED_VALUE) {\n\t\tconst dateArray = new Uint32Array(1);\n\t\tconst dateView = getDataView(dateArray);\n\t\tsetUint16(dateView, 0, (((lastModDate.getHours() << 6) | lastModDate.getMinutes()) << 5) | lastModDate.getSeconds() / 2);\n\t\tsetUint16(dateView, 2, ((((lastModDate.getFullYear() - 1980) << 4) | (lastModDate.getMonth() + 1)) << 5) | lastModDate.getDate());\n\t\trawLastModDate = dateArray[0];\n\t}\n\theaderRecord.writeUint32(rawLastModDate);\n\theaderRecord.skip(4);\n\tif (zip64CompressedSize || compressedSize !== UNDEFINED_VALUE) {\n\t\theaderRecord.writeUint32(zip64CompressedSize ? MAX_32_BITS : compressedSize);\n\t} else {\n\t\theaderRecord.skip(4);\n\t}\n\tif (zip64UncompressedSize || uncompressedSize !== UNDEFINED_VALUE) {\n\t\theaderRecord.writeUint32(zip64UncompressedSize ? MAX_32_BITS : uncompressedSize);\n\t} else {\n\t\theaderRecord.skip(4);\n\t}\n\theaderRecord.writeUint16(getLength(rawFilename));\n\theaderRecord.writeUint16(extraFieldLength);\n\treturn {\n\t\theaderArray,\n\t\theaderView,\n\t\trawLastModDate\n\t};\n}\n\nfunction isPrintableASCIIText(rawText) {\n\treturn rawText.every(characterCode =>\n\t\tcharacterCode >= MIN_PRINTABLE_ASCII_CHARACTER_CODE && characterCode <= MAX_PRINTABLE_ASCII_CHARACTER_CODE);\n}\n\nfunction getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compressionMethod) {\n\tlet bitFlag = 0;\n\tif (useUnicodeFileNames) {\n\t\tbitFlag = bitFlag | BITFLAG_LANG_ENCODING_FLAG;\n\t}\n\tif (dataDescriptor) {\n\t\tbitFlag = bitFlag | BITFLAG_DATA_DESCRIPTOR;\n\t}\n\tif (compressionMethod == COMPRESSION_METHOD_DEFLATE || compressionMethod == COMPRESSION_METHOD_DEFLATE_64) {\n\t\tif (level >= 0 && level <= 3) {\n\t\t\tbitFlag = bitFlag | BITFLAG_LEVEL_SUPER_FAST_MASK;\n\t\t}\n\t\tif (level > 3 && level <= 5) {\n\t\t\tbitFlag = bitFlag | BITFLAG_LEVEL_FAST_MASK;\n\t\t}\n\t\tif (level == 9) {\n\t\t\tbitFlag = bitFlag | BITFLAG_LEVEL_MAX_MASK;\n\t\t}\n\t}\n\tif (encrypted) {\n\t\tbitFlag = bitFlag | BITFLAG_ENCRYPTED;\n\t}\n\treturn bitFlag;\n}\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport { setDefaultConfiguration } from \"./core/configuration.js\";\n\ntry {\n\tsetDefaultConfiguration({ baseURI: import.meta.url });\n} catch {\n\t// ignored\n}\n\nexport * from \"./zip-core-reader.js\";\nexport * from \"./zip-core-writer.js\";\nexport {\n\tReader,\n\tWriter,\n\tTextReader,\n\tTextWriter,\n\tData64URIReader,\n\tData64URIWriter,\n\tBlobReader,\n\tBlobWriter,\n\tHttpReader,\n\tHttpRangeReader,\n\tUint8ArrayWriter,\n\tUint8ArrayReader,\n\tSplitDataReader,\n\tSplitDataWriter,\n\tERR_HTTP_RANGE,\n\tERR_HTTP_STATUS,\n\tERR_HTTP_RESOURCE_CHANGED,\n\tERR_ITERATOR_COMPLETED_TOO_SOON,\n\tERR_WRITER_NOT_INITIALIZED,\n\tERR_WRITER_SIZE_NOT_WRITABLE\n} from \"./core/io.js\";\nexport {\n\tERR_INVALID_FUNCTION_OPTION,\n\tERR_INVALID_SIGNAL,\n\tERR_INVALID_PASS_THROUGH_VALUE,\n\tERR_ABORTED\n} from \"./core/options.js\";\nexport {\n\tgetMimeType\n} from \"./core/util/default-mime-type.js\";\nexport {\n\tconfigure,\n\tresetConfiguration,\n\tERR_INVALID_MAX_WORKERS,\n\tERR_INVALID_BASE_URI,\n\tERR_INVALID_URI\n} from \"./core/configuration.js\";\nexport {\n\tregisterCodec,\n\tunregisterCodec,\n\tgetRegisteredCodecs,\n\tERR_INVALID_CODEC_DEFINITION,\n\tERR_RESERVED_COMPRESSION_METHOD,\n\tERR_INVALID_CODEC_MODULE\n} from \"./core/codec-registry.js\";\nexport {\n\tgetSupportedCompressionMethods\n} from \"./core/compression-methods.js\";\nexport {\n\tVERSION\n} from \"./core/version.js\";\nexport {\n\tcreateOPFSTempStream\n} from \"./core/util/opfs-temp-stream.js\";\nexport {\n\tcreateBlobTempStream\n} from \"./core/util/blob-temp-stream.js\";\nexport {\n\tcreateSyncAccessHandleTempStream,\n\tERR_UNSUPPORTED_CONTEXT\n} from \"./core/util/sync-access-handle-temp-stream.js\";","const n=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],t=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],r=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],e=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],o=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],f=new Uint8Array(288);f.fill(8,0,144),f.fill(9,144,256),f.fill(7,256,280),f.fill(8,280,288);const b=new Uint8Array(30).fill(5);function l(n){const t=new Uint16Array(16);for(const r of n)t[r]++;t[0]=0;const r=new Uint16Array(17);for(let n=1;n<=15;n++)r[n+1]=r[n]+t[n];const e=new Uint16Array(n.length);for(let t=0;t<n.length;t++)n[t]&&(e[r[n[t]]++]=t);return{lengthCounts:t,symbols:e}}const p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function s(s){let X;s({wasmURI:()=>(X||(X=\"data:application/wasm;base64,\"+function(n){let t=\"\";const r=n.length;let e=0;for(;e+2<r;e+=3){const r=n[e]<<16|n[e+1]<<8|n[e+2];t+=p[r>>18&63]+p[r>>12&63]+p[r>>6&63]+p[63&r]}const o=r-e;if(1===o){const r=n[e]<<16;t+=p[r>>18&63]+p[r>>12&63]+\"==\"}else if(2===o){const r=n[e]<<16|n[e+1]<<8;t+=p[r>>18&63]+p[r>>12&63]+p[r>>6&63]+\"=\"}return t}(function(p){let s=0,X=0,x=0,Y=new Uint8Array(1024),a=0,w=0;for(;!w;){w=U(1);const n=U(2);if(0==n)h();else if(1==n)P(l(f),l(b));else{if(2!=n)throw new Error(\"invalid deflate block type\");P(...B())}}return Y.subarray(0,a);function c(){if(s>=p.length)throw new Error(\"unexpected end of deflate data\");return p[s++]}function U(n){for(;x<n;)X|=c()<<x,x+=8;const t=X&(1<<n)-1;return X>>>=n,x-=n,t}function h(){X=0,x=0;const n=c()|c()<<8;s+=2,R(a+n);for(let t=0;t<n;t++)Y[a++]=c()}function P(o,f){let b=i(o);for(;256!=b;){if(b<256)R(a+1),Y[a++]=b;else{const o=b-257,l=n[o]+U(t[o]),p=i(f),s=r[p]+U(e[p]);R(a+l);const X=a-s;for(let n=0;n<l;n++)Y[a++]=Y[X+n]}b=i(o)}}function B(){const n=U(5)+257,t=U(5)+1,r=U(4)+4,e=new Uint8Array(19);for(let n=0;n<r;n++)e[o[n]]=U(3);const f=l(e),b=new Uint8Array(n+t);let p=0;for(;p<b.length;){const n=i(f);if(n<16)b[p++]=n;else if(16==n){const n=b[p-1];let t=U(2)+3;for(;t--;)b[p++]=n}else p+=17==n?U(3)+3:U(7)+11}return[l(b.subarray(0,n)),l(b.subarray(n))]}function i(n){const{lengthCounts:t,symbols:r}=n;let e=0,o=0,f=0;for(let n=1;n<=15;n++){e|=U(1);const b=t[n];if(e-o<b)return r[f+(e-o)];f+=b,o=o+b<<1,e<<=1}throw new Error(\"invalid huffman code\")}function R(n){if(Y.length<n){let t=2*Y.length;for(;t<n;)t*=2;const r=new Uint8Array(t);r.set(Y.subarray(0,a)),Y=r}}}(function(n){const t=(n=String(n).replace(/[^A-Za-z0-9+/=]/g,\"\")).length,r=[];for(let e=0;e<t;e+=4){const t=p.indexOf(n[e])<<18|p.indexOf(n[e+1])<<12|(63&p.indexOf(n[e+2]))<<6|63&p.indexOf(n[e+3]);r.push(t>>16&255),\"=\"!==n[e+2]&&r.push(t>>8&255),\"=\"!==n[e+3]&&r.push(255&t)}return new Uint8Array(r)}(\"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\")))),X)})}export{s as configureZlibModule};\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global ReadableStream, WritableStream */\n\nconst FORMAT_DEFLATE = \"deflate\";\nconst FORMAT_DEFLATE_RAW = \"deflate-raw\";\nconst FORMAT_DEFLATE64_RAW = \"deflate64-raw\";\nconst FORMAT_GZIP = \"gzip\";\nconst Z_MEM_ERROR = -4;\nconst Z_MEM_ERROR_CODE = \"Z_MEM_ERROR\";\nconst COMPRESSION_FORMATS = [FORMAT_DEFLATE, FORMAT_DEFLATE_RAW, FORMAT_GZIP];\nconst DECOMPRESSION_FORMATS = [FORMAT_DEFLATE, FORMAT_DEFLATE_RAW, FORMAT_GZIP, FORMAT_DEFLATE64_RAW];\n\nlet wasm, malloc, free, memory, initError;\n\nexport function setWasmExports(wasmAPI) {\n\twasm = wasmAPI;\n\t({ malloc, free, memory } = wasm);\n\tif (typeof malloc !== \"function\" || typeof free !== \"function\" || !memory) {\n\t\twasm = malloc = free = memory = null;\n\t\tthrow new Error(\"Invalid WASM module\");\n\t}\n}\n\nexport function setInitError(error) {\n\tinitError = error;\n}\n\nexport function resetWasmExports() {\n\twasm = malloc = free = memory = initError = null;\n}\n\nfunction setZlibCode(error, result) {\n\tif (result === Z_MEM_ERROR) {\n\t\terror.code = Z_MEM_ERROR_CODE;\n\t}\n\treturn error;\n}\n\nfunction _make(isCompress, type, options = {}) {\n\tif (!(isCompress ? COMPRESSION_FORMATS : DECOMPRESSION_FORMATS).includes(type)) {\n\t\tthrow new TypeError(\"Unsupported format: \" + type);\n\t}\n\tif (!wasm) {\n\t\tconst error = new Error(\"WASM module not loaded\");\n\t\terror.cause = initError;\n\t\tthrow error;\n\t}\n\tconst level = (typeof options.level === \"number\") ? options.level : -1;\n\tconst outBufferSize = (typeof options.outBuffer === \"number\") ? options.outBuffer : 64 * 1024;\n\tconst inBufferSize = (typeof options.inBufferSize === \"number\") ? options.inBufferSize : 64 * 1024;\n\tconst state = { out: 0, in: 0, inBufferSize: 0, streamHandle: 0, streamEnded: false };\n\tlet readableController, writableController, resolveWrite, cancelReason;\n\tlet backpressure = true;\n\tlet cancelled = false;\n\tinitStream();\n\tconst readable = new ReadableStream({\n\t\tstart(controller) {\n\t\t\treadableController = controller;\n\t\t},\n\t\tpull() {\n\t\t\tbackpressure = false;\n\t\t\tresumeWrite();\n\t\t},\n\t\tcancel(reason) {\n\t\t\tcancelled = true;\n\t\t\tcancelReason = reason;\n\t\t\tdisposeStream(state);\n\t\t\twritableController.error(reason);\n\t\t\tresumeWrite();\n\t\t}\n\t}, { highWaterMark: 0 });\n\tconst writable = new WritableStream({\n\t\tstart(controller) {\n\t\t\twritableController = controller;\n\t\t},\n\t\tasync write(chunk) {\n\t\t\tif (backpressure) {\n\t\t\t\tawait new Promise(resolve => resolveWrite = resolve);\n\t\t\t}\n\t\t\tif (cancelled) {\n\t\t\t\tthrow cancelReason;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tprocessChunk(chunk);\n\t\t\t} catch (error) {\n\t\t\t\tdisposeStream(state);\n\t\t\t\treadableController.error(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t},\n\t\tclose() {\n\t\t\tif (cancelled) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tflushStream();\n\t\t\t} catch (error) {\n\t\t\t\tdisposeStream(state);\n\t\t\t\treadableController.error(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\tconst result = disposeStream(state);\n\t\t\tif (result !== 0) {\n\t\t\t\tconst error = setZlibCode(new Error(\"end error:\" + result), result);\n\t\t\t\treadableController.error(error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t\treadableController.close();\n\t\t},\n\t\tabort(reason) {\n\t\t\tdisposeStream(state);\n\t\t\treadableController.error(reason);\n\t\t}\n\t}, { highWaterMark: 1 });\n\treturn { readable, writable };\n\n\tfunction initStream() {\n\t\ttry {\n\t\t\tlet result;\n\t\t\tstate.out = malloc(outBufferSize);\n\t\t\tstate.in = malloc(inBufferSize);\n\t\t\tstate.inBufferSize = inBufferSize;\n\t\t\tif (!state.out || !state.in) {\n\t\t\t\tthrow setZlibCode(new Error(\"allocation failed\"), Z_MEM_ERROR);\n\t\t\t}\n\t\t\tif (isCompress) {\n\t\t\t\tstate._process = wasm.deflate_process;\n\t\t\t\tstate._last_consumed = wasm.deflate_last_consumed;\n\t\t\t\tstate._end = wasm.deflate_end;\n\t\t\t\tstate.streamHandle = wasm.deflate_new();\n\t\t\t\tif (type === FORMAT_GZIP) {\n\t\t\t\t\tresult = wasm.deflate_init_gzip(state.streamHandle, level);\n\t\t\t\t} else if (type === FORMAT_DEFLATE_RAW) {\n\t\t\t\t\tresult = wasm.deflate_init_raw(state.streamHandle, level);\n\t\t\t\t} else {\n\t\t\t\t\tresult = wasm.deflate_init(state.streamHandle, level);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (type === FORMAT_DEFLATE64_RAW) {\n\t\t\t\t\tstate._process = wasm.inflate9_process;\n\t\t\t\t\tstate._last_consumed = wasm.inflate9_last_consumed;\n\t\t\t\t\tstate._end = wasm.inflate9_end;\n\t\t\t\t\tstate.streamHandle = wasm.inflate9_new();\n\t\t\t\t\tresult = wasm.inflate9_init_raw(state.streamHandle);\n\t\t\t\t} else {\n\t\t\t\t\tstate._process = wasm.inflate_process;\n\t\t\t\t\tstate._last_consumed = wasm.inflate_last_consumed;\n\t\t\t\t\tstate._end = wasm.inflate_end;\n\t\t\t\t\tstate.streamHandle = wasm.inflate_new();\n\t\t\t\t\tif (type === FORMAT_DEFLATE_RAW) {\n\t\t\t\t\t\tresult = wasm.inflate_init_raw(state.streamHandle);\n\t\t\t\t\t} else if (type === FORMAT_GZIP) {\n\t\t\t\t\t\tresult = wasm.inflate_init_gzip(state.streamHandle);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = wasm.inflate_init(state.streamHandle);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result !== 0) {\n\t\t\t\tthrow setZlibCode(new Error(\"init failed:\" + result), result);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tdisposeStream(state);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tfunction processChunk(chunk) {\n\t\tconst heap = new Uint8Array(memory.buffer);\n\t\tconst process = state._process;\n\t\tconst last_consumed = state._last_consumed;\n\t\tconst out = state.out;\n\t\tlet offset = 0;\n\t\twhile (offset < chunk.length) {\n\t\t\tif (state.streamEnded) {\n\t\t\t\tthrow new Error(\"trailing data after the end of the stream\");\n\t\t\t}\n\t\t\tconst toRead = Math.min(chunk.length - offset, 32 * 1024);\n\t\t\tif (!state.in || state.inBufferSize < toRead) {\n\t\t\t\tif (state.in && free) {\n\t\t\t\t\tfree(state.in);\n\t\t\t\t\tstate.in = 0;\n\t\t\t\t}\n\t\t\t\tstate.in = malloc(toRead);\n\t\t\t\tstate.inBufferSize = toRead;\n\t\t\t\tif (!state.in) {\n\t\t\t\t\tthrow setZlibCode(new Error(\"allocation failed\"), Z_MEM_ERROR);\n\t\t\t\t}\n\t\t\t}\n\t\t\theap.set(chunk.subarray(offset, offset + toRead), state.in);\n\t\t\tconst result = process(state.streamHandle, state.in, toRead, out, outBufferSize, 0);\n\t\t\t// checked before the byte count is used, so a status code can never be read as one\n\t\t\tconst code = (result >> 24) & 0xff;\n\t\t\tconst signedCode = (code & 0x80) ? code - 256 : code;\n\t\t\tif (signedCode < 0) {\n\t\t\t\tthrow setZlibCode(new Error(\"process error:\" + signedCode), signedCode);\n\t\t\t}\n\t\t\tconst prod = result & 0x00ffffff;\n\t\t\tif (prod) {\n\t\t\t\tenqueue(heap.slice(out, out + prod));\n\t\t\t}\n\t\t\tconst consumed = last_consumed(state.streamHandle);\n\t\t\tif (code === 1) {\n\t\t\t\tstate.streamEnded = true;\n\t\t\t} else if (consumed === 0 && prod === 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\toffset += consumed;\n\t\t}\n\t}\n\n\tfunction flushStream() {\n\t\tconst heap = new Uint8Array(memory.buffer);\n\t\tconst process = state._process;\n\t\tconst out = state.out;\n\t\twhile (true) {\n\t\t\tconst result = process(state.streamHandle, 0, 0, out, outBufferSize, 4);\n\t\t\tconst code = (result >> 24) & 0xff;\n\t\t\tconst signedCode = (code & 0x80) ? code - 256 : code;\n\t\t\tif (signedCode < 0) {\n\t\t\t\tthrow setZlibCode(new Error(\"process error:\" + signedCode), signedCode);\n\t\t\t}\n\t\t\tconst produced = result & 0x00ffffff;\n\t\t\tif (produced) {\n\t\t\t\tenqueue(heap.slice(out, out + produced));\n\t\t\t}\n\t\t\tif (code === 1 || produced === 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction enqueue(chunk) {\n\t\tbackpressure = true;\n\t\treadableController.enqueue(chunk);\n\t}\n\n\tfunction resumeWrite() {\n\t\tif (resolveWrite) {\n\t\t\tconst resolve = resolveWrite;\n\t\t\tresolveWrite = null;\n\t\t\tresolve();\n\t\t}\n\t}\n\n\tfunction disposeStream(state) {\n\t\tlet endResult = 0;\n\t\tif (state.streamHandle && state._end) {\n\t\t\tendResult = state._end(state.streamHandle);\n\t\t}\n\t\tstate.streamHandle = 0;\n\t\tif (state.in && free) {\n\t\t\tfree(state.in);\n\t\t}\n\t\tstate.in = 0;\n\t\tif (state.out && free) {\n\t\t\tfree(state.out);\n\t\t}\n\t\tstate.out = 0;\n\t\treturn endResult;\n\t}\n}\n\nexport class CompressionStreamZlib {\n\tconstructor(type = FORMAT_DEFLATE, options) {\n\t\treturn _make(true, type, options);\n\t}\n}\nexport class DecompressionStreamZlib {\n\tconstructor(type = FORMAT_DEFLATE, options) {\n\t\treturn _make(false, type, options);\n\t}\n}\n// These codecs are backed by the WASM module; they are unusable until setWasmExports() has run.\n// The worker uses this flag to know it must fall back to the native CompressionStream when the\n// module fails to load, rather than discarding a self-contained codec supplied through config.\nCompressionStreamZlib.requiresModule = true;\nDecompressionStreamZlib.requiresModule = true;\n// Constructing these classes before the module is loaded throws, so capability probes cannot rely\n// on trying the constructor; the formats are declared instead, the lists _make() checks a format\n// against before anything else.\nCompressionStreamZlib.supportedFormats = COMPRESSION_FORMATS;\nDecompressionStreamZlib.supportedFormats = DECOMPRESSION_FORMATS;","/*\n Copyright (c) 2026 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport { FUNCTION_TYPE } from \"../../constants.js\";\nimport { createEngine as createDefaultEngine } from \"../codecs/aes-hmac-sha1.js\";\n\nconst BUFFER_LENGTH = 64 * 1024;\nconst DIGEST_LENGTH = 20;\n\nlet wasm, buffer;\n\nexport {\n\tsetWasmExports,\n\tresetWasmExports,\n\tcreateEngine\n};\n\nfunction setWasmExports(wasmAPI) {\n\t// deno-lint-ignore valid-typeof\n\tif (typeof wasmAPI.aes_hmac_new == FUNCTION_TYPE) {\n\t\twasm = wasmAPI;\n\t\tbuffer = 0;\n\t}\n}\n\nfunction resetWasmExports() {\n\twasm = null;\n\tbuffer = 0;\n}\n\nfunction createEngine(key, authenticationKey) {\n\tconst exports = wasm;\n\tlet context = exports ? createContext(exports, key, authenticationKey) : 0;\n\tif (!context) {\n\t\treturn createDefaultEngine(key, authenticationKey);\n\t}\n\tconst scratch = buffer;\n\treturn {\n\t\tprocess(data, decrypt) {\n\t\t\tfor (let offset = 0; offset < data.length; offset += BUFFER_LENGTH) {\n\t\t\t\tconst chunk = data.subarray(offset, offset + BUFFER_LENGTH);\n\t\t\t\tconst heap = getHeap(exports);\n\t\t\t\theap.set(chunk, scratch);\n\t\t\t\texports.aes_hmac_process(context, scratch, chunk.length, decrypt ? 1 : 0);\n\t\t\t\tchunk.set(heap.subarray(scratch, scratch + chunk.length));\n\t\t\t}\n\t\t},\n\t\tdigest() {\n\t\t\texports.aes_hmac_end(context, scratch);\n\t\t\tcontext = 0;\n\t\t\treturn getHeap(exports).slice(scratch, scratch + DIGEST_LENGTH);\n\t\t},\n\t\tdispose() {\n\t\t\tif (context) {\n\t\t\t\texports.aes_hmac_end(context, 0);\n\t\t\t\tcontext = 0;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction createContext(exports, key, authenticationKey) {\n\tif (!buffer) {\n\t\tbuffer = exports.malloc(BUFFER_LENGTH);\n\t}\n\tconst context = buffer ? exports.aes_hmac_new() : 0;\n\tif (context) {\n\t\tconst heap = getHeap(exports);\n\t\theap.set(key, buffer);\n\t\theap.set(authenticationKey, buffer + key.length);\n\t\tif (exports.aes_hmac_init(context, buffer, key.length, buffer + key.length, authenticationKey.length)) {\n\t\t\texports.aes_hmac_end(context, 0);\n\t\t\treturn 0;\n\t\t}\n\t}\n\treturn context;\n}\n\nfunction getHeap(exports) {\n\treturn new Uint8Array(exports.memory.buffer);\n}\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright \n notice, this list of conditions and the following disclaimer in \n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* global WebAssembly, URL, fetch, atob */\n\nimport { setWasmExports, setInitError, resetWasmExports } from \"./zlib-streams.js\";\nimport { setWasmExports as setEngineWasmExports, resetWasmExports as resetEngineWasmExports } from \"./aes-hmac-sha1-wasm.js\";\n\nlet initializedModule = false;\n\nasync function initModule(wasmURI, { baseURI }) {\n\tif (!initializedModule) {\n\t\ttry {\n\t\t\tawait instantiateModule(wasmURI, baseURI);\n\t\t\tinitializedModule = true;\n\t\t} catch (error) {\n\t\t\tsetInitError(error);\n\t\t\tthrow error;\n\t\t}\n\t}\n}\n\nasync function instantiateModule(wasmURI, baseURI) {\n\tlet arrayBuffer, uri;\n\ttry {\n\t\ttry {\n\t\t\turi = new URL(wasmURI, baseURI);\n\t\t} catch {\n\t\t\t// ignored\n\t\t}\n\t\tconst response = await fetch(uri);\n\t\tarrayBuffer = await response.arrayBuffer();\n\t} catch (error) {\n\t\tif (wasmURI.startsWith(\"data:application/wasm;base64,\")) {\n\t\t\tarrayBuffer = arrayBufferFromDataURI(wasmURI);\n\t\t} else {\n\t\t\tthrow error;\n\t\t}\n\t}\n\tconst wasmInstance = await WebAssembly.instantiate(arrayBuffer);\n\tsetWasmExports(wasmInstance.instance.exports);\n\tsetEngineWasmExports(wasmInstance.instance.exports);\n}\n\nfunction resetWasmModule() {\n\tinitializedModule = false;\n\tresetWasmExports();\n\tresetEngineWasmExports();\n}\n\nfunction arrayBufferFromDataURI(dataURI) {\n\tconst base64 = dataURI.split(\",\")[1];\n\tconst binary = atob(base64);\n\tconst len = binary.length;\n\tconst bytes = new Uint8Array(len);\n\tfor (let i = 0; i < len; ++i) {\n\t\tbytes[i] = binary.charCodeAt(i);\n\t}\n\treturn bytes.buffer;\n}\n\nexport {\n\tCompressionStreamZlib,\n\tDecompressionStreamZlib\n} from \"./zlib-streams.js\";\nexport { createEngine as createAESEngine } from \"./aes-hmac-sha1-wasm.js\";\nexport {\n\tinitModule,\n\tresetWasmModule\n};","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport { FUNCTION_TYPE } from \"./core/constants.js\";\nimport { setDefaultConfiguration } from \"./core/configuration.js\";\nimport { configureWorker } from \"./core/codec-worker.js\";\nimport { terminateWorkers } from \"./core/codec-pool.js\";\nimport { setAESEngine } from \"./core/streams/aes-crypto-stream.js\";\nimport { initModule, resetWasmModule, createAESEngine, CompressionStreamZlib as CompressionStreamFallback, DecompressionStreamZlib as DecompressionStreamFallback } from \"./core/streams/zlib-wasm/zlib-streams-loader.js\";\n\nlet modulePromise;\n\nsetAESEngine(createAESEngine);\nconfigureWorker({\n\tinitModule: config => {\n\t\tif (!modulePromise) {\n\t\t\tlet { wasmURI } = config;\n\t\t\t// deno-lint-ignore valid-typeof\n\t\t\tif (typeof wasmURI == FUNCTION_TYPE) {\n\t\t\t\twasmURI = wasmURI();\n\t\t\t}\n\t\t\tmodulePromise = initModule(wasmURI, config).catch(error => {\n\t\t\t\tmodulePromise = null;\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}\n\t\treturn modulePromise;\n\t}\n});\nsetDefaultConfiguration({\n\tCompressionStreamFallback,\n\tDecompressionStreamFallback\n});\n\nexport { terminateWorkersAndModule as terminateWorkers };\n\nasync function terminateWorkersAndModule() {\n\tawait terminateWorkers();\n\tmodulePromise = null;\n\tresetWasmModule();\n}\n","export function cloneExtendedSourceItem(source) {\n    return { ...source };\n}\n//# sourceMappingURL=ExtendedSourceItem.js.map","/**\n * Clones a FileItem object.\n * @param fileItem - The FileItem to clone.\n * @returns A new FileItem object with the same properties as the original.\n */\nexport function cloneFileItem(fileItem) {\n    return { ...fileItem };\n}\n//# sourceMappingURL=FileItem.js.map","// eslint-disable-next-line jsdoc/require-jsdoc\nexport function mergeOptions(base, override) {\n    // merge options\n    const options = {\n        filter: override.filter\n            ? { ...base.filter, ...override.filter }\n            : base.filter,\n        unzip: override.unzip ? { ...base.unzip, ...override.unzip } : base.unzip,\n        ungzip: override.ungzip\n            ? { ...base.ungzip, ...override.ungzip }\n            : base.ungzip,\n        logger: override.logger ?? base.logger,\n    };\n    // remove undefined values\n    if (!options.filter) {\n        delete options.filter;\n    }\n    else if (typeof options.filter.ignoreDotfiles !== 'boolean') {\n        delete options.filter.ignoreDotfiles;\n    }\n    if (!options.unzip) {\n        delete options.unzip;\n    }\n    else {\n        if (typeof options.unzip.recursive !== 'boolean') {\n            delete options.unzip.recursive;\n        }\n        if (!options.unzip.zipExtensions)\n            delete options.unzip.zipExtensions;\n    }\n    if (!options.ungzip) {\n        delete options.ungzip;\n    }\n    else if (!options.ungzip.gzipExtensions) {\n        delete options.ungzip.gzipExtensions;\n    }\n    if (!options.logger)\n        delete options.logger;\n    return options;\n}\nexport const defaultOptions = {\n    filter: {\n        ignoreDotfiles: true,\n    },\n    ungzip: {\n        gzipExtensions: ['gz'],\n    },\n    unzip: {\n        zipExtensions: ['zip'],\n        recursive: true,\n    },\n};\n//# sourceMappingURL=Options.js.map","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport { setDefaultConfiguration } from \"./core/configuration.js\";\nimport { configureZlibModule } from \"./core/zlib-streams-inline.js\";\n\nconfigureZlibModule(setDefaultConfiguration);\n\nexport * from \"./zip-module-wasm-base.js\";\n","/*\n Copyright (c) 2025 Gildas Lormeau. All rights reserved.\n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n 1. Redistributions of source code must retain the above copyright notice,\n this list of conditions and the following disclaimer.\n\n 2. Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in\n the documentation and/or other materials provided with the distribution.\n\n 3. The names of the authors may not be used to endorse or promote products\n derived from this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,\n INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,\n INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\n OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport { setDefaultConfiguration } from \"./core/configuration.js\";\nimport { configureWebWorker } from \"./core/web-worker-inline-wasm.js\";\n\nconfigureWebWorker(setDefaultConfiguration);\n\nexport * from \"./zip-fs-core-wasm.js\";\nexport { getMimeType } from \"./core/util/mime-type.js\";","export function getNameInfo(name) {\n    const url = new URL(name, 'ium:/');\n    return {\n        url,\n        name: url.pathname.split('/').pop(),\n        relativePath: url.pathname.slice(1),\n    };\n}\n//# sourceMappingURL=getNameInfo.js.map","import { getNameInfo } from \"../utilities/getNameInfo.js\";\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport async function appendArrayBuffer(fileCollection, relativePath, arrayBuffer, options = {}) {\n    const source = await getExtendedSourceFromArrayBuffer(relativePath, arrayBuffer, options);\n    await fileCollection.appendExtendedSource(source);\n}\nasync function getExtendedSourceFromArrayBuffer(originalRelativePath, arrayBuffer, options = {}) {\n    const { name, relativePath } = getNameInfo(originalRelativePath);\n    const blobInput = await arrayBuffer;\n    // Types of property [Symbol.toStringTag] are incompatible.\n    // Type SharedArrayBuffer is not assignable to type ArrayBuffer\n    // @ts-expect-error Blob doesn't explicitly accept ArrayBufferLike but that should work.\n    const blob = new Blob([blobInput], {\n        type: 'application/octet-stream',\n    });\n    return {\n        uuid: crypto.randomUUID(),\n        relativePath,\n        name,\n        lastModified: options.dateModified || Date.now(),\n        baseURL: 'ium:/',\n        extra: options.extra,\n        text: () => blob.text(),\n        stream: () => blob.stream(),\n        arrayBuffer: () => blob.arrayBuffer(),\n    };\n}\n//# sourceMappingURL=appendArrayBuffer.js.map","/**\n * Normalizes a relative path so it doesn't start with '/' or './'.\n * @param path - The path to normalize\n * @returns The normalized path\n */\nexport function normalizeRelativePath(path) {\n    return path.replace(/^\\.?\\//, '');\n}\n//# sourceMappingURL=normalize_relative_path.js.map","import { normalizeRelativePath } from \"../utilities/normalize_relative_path.js\";\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport async function appendFileList(fileCollection, fileList) {\n    await Promise.all(toSourceAppend(fileCollection, fileList));\n}\nfunction* toSourceAppend(fileCollection, fileList) {\n    for (const file of fileList) {\n        const source = {\n            uuid: crypto.randomUUID(),\n            name: file.name,\n            size: file.size,\n            baseURL: 'ium:/',\n            relativePath: normalizeRelativePath(\n            // @ts-expect-error We allow file.path as alternative to webkitRelativePath\n            file.webkitRelativePath || file.path || file.name),\n            lastModified: file.lastModified,\n            text: () => file.text(),\n            arrayBuffer: () => file.arrayBuffer(),\n            stream: () => file.stream(),\n        };\n        yield fileCollection.appendExtendedSource(source);\n    }\n}\n//# sourceMappingURL=appendFileList.js.map","import { defaultOptions } from \"../Options.js\";\n/**\n * Utility function that allows to filter files from a FileCollection ignores by default the dotFiles\n * @param relativePath - The relative path of the file to check\n * @param options - the filter options to use\n * @returns boolean\n */\nexport function shouldAddItem(relativePath, options = {}) {\n    const { ignoreDotfiles = defaultOptions.filter.ignoreDotfiles, exclude, include, } = options;\n    if (!ignoreDotfiles)\n        return true;\n    if (relativePath.startsWith('.'))\n        return false;\n    if (relativePath.includes('/.'))\n        return false;\n    if (exclude && isMatchAnyPattern(exclude, relativePath)) {\n        return false;\n    }\n    if (include && !isMatchAnyPattern(include, relativePath)) {\n        return false;\n    }\n    return true;\n}\nfunction isMatchAnyPattern(patterns, path) {\n    if (Array.isArray(patterns)) {\n        return patterns.some((pattern) => isMatchPattern(pattern, path));\n    }\n    return isMatchPattern(patterns, path);\n}\nfunction isMatchPattern(pattern, path) {\n    if (typeof pattern === 'string') {\n        return path.includes(pattern);\n    }\n    return pattern.test(path);\n}\n//# sourceMappingURL=shouldAddItem.js.map","import { streamFromAsyncBlob } from \"../utilities/stream_from_async_blob.js\";\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function sourceItemToExtendedSourceItem(entry, alternativeBaseURL) {\n    let baseURL = entry.baseURL || alternativeBaseURL;\n    if (!baseURL) {\n        if (!globalThis.location?.href) {\n            throw new Error(`We could not find a baseURL for ${entry.relativePath}`);\n        }\n        else {\n            baseURL = globalThis.location.href;\n        }\n    }\n    const fileURL = new URL(entry.originalRelativePath ?? entry.relativePath, baseURL);\n    let _blobPromise;\n    async function getBlobCached() {\n        if (!_blobPromise)\n            _blobPromise = fetch(fileURL).then((r) => r.blob());\n        return _blobPromise;\n    }\n    return {\n        uuid: entry.uuid ?? crypto.randomUUID(),\n        name: entry.relativePath.split('/').pop() || '',\n        size: entry.size,\n        baseURL,\n        extra: entry.extra,\n        originalRelativePath: entry.originalRelativePath,\n        relativePath: entry.relativePath,\n        lastModified: entry.lastModified,\n        options: entry.options,\n        text: async () => {\n            const blob = await getBlobCached();\n            return blob.text();\n        },\n        arrayBuffer: async () => {\n            const blob = await getBlobCached();\n            return blob.arrayBuffer();\n        },\n        stream: () => streamFromAsyncBlob(getBlobCached),\n    };\n}\n//# sourceMappingURL=sourceItemToExtendedSourceItem.js.map","export function streamFromAsyncBlob(blobGetter) {\n    const { writable, readable } = new TransformStream();\n    async function propagateErrorToStream(error) {\n        await Promise.allSettled([writable.abort(error), readable.cancel(error)]);\n    }\n    async function pipeFetchToStream() {\n        const blob = await blobGetter();\n        await blob.stream().pipeTo(writable);\n    }\n    void pipeFetchToStream().catch(propagateErrorToStream);\n    return readable;\n}\n//# sourceMappingURL=stream_from_async_blob.js.map","import { shouldAddItem } from \"../utilities/shouldAddItem.js\";\nimport { sourceItemToExtendedSourceItem } from \"./sourceItemToExtendedSourceItem.js\";\n/**\n * Append a source to a FileCollection\n * @param fileCollection - The FileCollection to append the files to.\n * @param source - The source to append.\n * @param options - Options for appending the source.\n * @param options.baseURL - The base URL to use for the source if it doesn't have one.\n * @returns Promise<void>\n */\nexport async function appendSource(fileCollection, source, options = {}) {\n    const { options: { filter }, } = fileCollection;\n    const { entries, baseURL } = source;\n    const promises = [];\n    for (const entry of entries) {\n        const { relativePath } = entry;\n        if (!shouldAddItem(relativePath, entry.options?.filter ?? filter))\n            continue;\n        const alternativeBaseURL = baseURL || options.baseURL;\n        const source = sourceItemToExtendedSourceItem(entry, alternativeBaseURL);\n        promises.push(fileCollection.appendExtendedSource(source));\n    }\n    await Promise.all(promises);\n}\n//# sourceMappingURL=appendSource.js.map","import { getNameInfo } from \"../utilities/getNameInfo.js\";\nexport async function appendText(fileCollection, relativePath, text, options = {}) {\n    const source = await getExtendedSourceFromText(relativePath, text, options);\n    await fileCollection.appendExtendedSource(source);\n}\nasync function getExtendedSourceFromText(originalRelativePath, text, options = {}) {\n    const { relativePath, name } = getNameInfo(originalRelativePath);\n    const blob = new Blob([await text], { type: 'text/plain' });\n    return {\n        uuid: crypto.randomUUID(),\n        relativePath,\n        name,\n        lastModified: options.dateModified || Date.now(),\n        baseURL: 'ium:/',\n        text: () => blob.text(),\n        stream: () => blob.stream(),\n        arrayBuffer: () => blob.arrayBuffer(),\n    };\n}\n//# sourceMappingURL=appendText.js.map","import { BlobReader, Uint8ArrayReader, ZipReader } from '@zip.js/zip.js';\n/**\n * Creates a ZipReader from the provided zip file content.\n * @param buffer - The content of the zip file, which can be a Uint8Array, ArrayBuffer, Blob, or ReadableStream.\n * @returns A ZipReader instance that can be used to read the zip file.\n */\nexport function getZipReader(buffer) {\n    const contentReader = getZipContentReader(buffer);\n    return new ZipReader(contentReader, {\n        filenameValidation: 'tolerant',\n    });\n}\nexport const UNSUPPORTED_ZIP_CONTENT_ERROR = `Unsupported zip content type.\nIf you passed a Node.js Stream convert it to Web Stream.\nIf you passed a (binary) string, decode it to Uint8Array.`;\nfunction getZipContentReader(zipContent) {\n    if (zipContent instanceof Uint8Array) {\n        // support Node.js Buffer they extend Uint8Array,\n        // but when it is read by Uint8ArrayReader it produces `Error: Split zip file`\n        // wrap Node.js Buffer into a new Uint8Array fix the issue\n        return new Uint8ArrayReader(new Uint8Array(zipContent.buffer, zipContent.byteOffset, zipContent.length));\n    }\n    else if (zipContent instanceof ArrayBuffer) {\n        return new Uint8ArrayReader(new Uint8Array(zipContent));\n    }\n    else if (zipContent instanceof Blob) {\n        return new BlobReader(zipContent);\n    }\n    else if (zipContent instanceof ReadableStream) {\n        return zipContent;\n    }\n    throw new Error(UNSUPPORTED_ZIP_CONTENT_ERROR);\n}\n//# sourceMappingURL=get_zip_reader.js.map","/**\n * This method will transform a source item to a path that can be used by filesystems\n * @param source - The source item to transform\n * @returns The transformed path and the URL\n */\nexport function toIumSourceToPath(source) {\n    const pathname = toIumSourceToLegacyPath(source);\n    return pathnameToSafePath(pathname);\n}\nfunction toIumSourceToLegacyPath(source) {\n    const url = new URL(source.extra\n        ? source.relativePath\n        : // ensure the path is relative and does not start with a slash\n            `data/${source.relativePath.replace(/^\\/+/, '')}`, 'ium:/');\n    return url.pathname;\n}\n/**\n * This method will transform a source item to a path that had been serialised for filesystems\n * @param source - The source item to transform\n * @returns A tuple containing the URL, transformed path, and the legacy path\n */\nexport function fromIumSourceToPath(source) {\n    const [url, legacyZipPath] = fromIumSourceToLegacyPath(source);\n    return [url, pathnameToSafePath(legacyZipPath), legacyZipPath];\n}\nfunction fromIumSourceToLegacyPath(source) {\n    const url = new URL(source.relativePath, source.baseURL);\n    const zipPath = source.extra\n        ? url.pathname\n        : `/data/${url.pathname.slice(1)}`;\n    return [url, zipPath];\n}\n/**\n * This method will transform a source item to a path that is safe for filesystems\n * @param source - The source item to transform\n * @returns the path safe for filesystems\n */\nexport function sourceToZipPath(source) {\n    const path = sourceToZipPathLegacy(source);\n    return pathnameToSafePath(path);\n}\nfunction sourceToZipPathLegacy(source) {\n    const baseUrl = new URL(source.baseURL || 'ium:/');\n    return `${baseUrl.pathname}/${source.relativePath}`.replaceAll(/\\/\\/+/g, '/');\n}\nfunction pathnameToSafePath(pathname) {\n    const decodedPathname = decodeURIComponent(pathname);\n    // https://en.wikipedia.org/wiki/Filename#Comparison_of_filename_limitations\n    return (decodedPathname\n        // eslint-disable-next-line no-control-regex\n        .replaceAll(/[\\u0000-\\u001F\\u007F\\u00FF]/g, '')\n        // replace problematic fs characters\n        .replaceAll(/[#*:<>?\\\\|+,;=[\\]]+/g, '-')\n        // ensure the path is relative\n        .replace(/^\\.?\\/+/, '')\n        // trim multiple slashes\n        .replaceAll(/\\/\\/+/g, '/'));\n}\n//# sourceMappingURL=source_zip.js.map","import { migrateV1ToV2 } from \"./migrations/v01_to_v02.js\";\nexport const CURRENT_IUM_VERSION = 2;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst migrations = [migrateV1ToV2];\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function migrateIumIndex(index) {\n    const version = index.version ?? 1;\n    if (version === CURRENT_IUM_VERSION)\n        return index;\n    const indexMigration = version - 1;\n    const migration = migrations[indexMigration];\n    if (!migration)\n        throw new Error(`No migration found for version ${version}`);\n    const indexMigrated = migration(index);\n    return migrateIumIndex(indexMigrated);\n}\n//# sourceMappingURL=index.js.map","import { fromIumSourceToPath } from \"../../../transformation/source_zip.js\";\n/**\n * Migrate index from v1 to v2.\n * Add `paths` property in `index`, associate uuid to zip path, and `<uuid>_legacy` to legacy zip path.\n * @param index - the index to migrate\n * @returns the index migrated\n */\nexport function migrateV1ToV2(index) {\n    const paths = {};\n    for (const source of index.sources) {\n        const [, zipPath, legacyZipPath] = fromIumSourceToPath(source);\n        paths[source.uuid] = zipPath;\n        paths[`${source.uuid}_legacy`] = legacyZipPath;\n    }\n    return {\n        ...index,\n        version: 2,\n        paths,\n    };\n}\n//# sourceMappingURL=v01_to_v02.js.map","import { TextWriter, Uint8ArrayWriter } from '@zip.js/zip.js';\nimport { FileCollection } from \"../FileCollection.js\";\nimport { sourceItemToExtendedSourceItem } from \"../append/sourceItemToExtendedSourceItem.js\";\nimport { getZipReader } from \"../zip/get_zip_reader.js\";\nimport { migrateIumIndex } from \"./versions/index.js\";\n/**\n * Creates a FileCollection from an IUM zip file.\n * @param zipContent - The content of the IUM zip file, which can be a Uint8Array, ArrayBuffer, Blob, or ReadableStream.\n * @param options - the options for fromIum.\n * @returns A Promise that resolves to a FileCollection containing the data from the IUM file.\n */\nexport async function fromIum(zipContent, options) {\n    const { validateMimetype } = options;\n    const zipReader = getZipReader(zipContent);\n    const zipFiles = new Map();\n    for await (const entry of zipReader.getEntriesGenerator()) {\n        if (entry.directory)\n            continue;\n        if (typeof validateMimetype === 'string' &&\n            (entry.filename === 'mimetype' || entry.filename === '.mimetype')) {\n            const mimetype = await entry.getData(new TextWriter());\n            if (mimetype === validateMimetype)\n                continue;\n            throw new Error(`Invalid IUM file: invalid mimetype ${mimetype}, it should be ${validateMimetype}.`);\n        }\n        const legacyPath = entry.filename.replaceAll(/\\/\\/+/g, '/');\n        const relativePath = legacyPath.replace(/^\\.?\\/+/, '');\n        zipFiles.set(legacyPath, entry);\n        zipFiles.set(relativePath, entry);\n    }\n    const indexFile = zipFiles.get('index.json');\n    if (!indexFile) {\n        throw new Error('Invalid IUM file: missing index.json');\n    }\n    const rawData = await indexFile.getData(new TextWriter());\n    const originalIndex = await JSON.parse(rawData);\n    const index = migrateIumIndex(originalIndex);\n    const fileCollection = new FileCollection(index.options);\n    const promises = [];\n    for (const source of index.sources) {\n        const url = new URL(source.relativePath, source.baseURL);\n        if (url.protocol === 'ium:') {\n            const pathname = index.paths[source.uuid];\n            const legacyPathname = index.paths[`${source.uuid}_legacy`];\n            const zipEntry = (pathname && zipFiles.get(pathname)) ??\n                (legacyPathname && zipFiles.get(legacyPathname));\n            if (!zipEntry) {\n                throw new Error(`Invalid IUM file: missing ${url.pathname}`);\n            }\n            promises.push(appendEntry(zipEntry, source, fileCollection));\n        }\n        else {\n            // should come from the web\n            promises.push(fileCollection.appendExtendedSource(sourceItemToExtendedSourceItem(source, undefined)));\n        }\n    }\n    await Promise.all(promises);\n    return fileCollection;\n}\nasync function appendEntry(entry, source, fileCollection) {\n    const buffer = await entry.getData(new Uint8ArrayWriter());\n    const blob = new Blob([buffer]);\n    const lastSlash = source.relativePath.lastIndexOf('/') + 1;\n    const name = source.relativePath.slice(lastSlash);\n    const extendedSource = {\n        uuid: source.uuid ?? crypto.randomUUID(),\n        name,\n        relativePath: source.relativePath,\n        originalRelativePath: source.originalRelativePath,\n        baseURL: source.baseURL ?? 'ium:/',\n        lastModified: source.lastModified ?? entry.lastModDate.getTime(),\n        size: source.size ?? entry.uncompressedSize,\n        options: source.options,\n        extra: source.extra,\n        arrayBuffer: () => blob.arrayBuffer(),\n        stream: () => blob.stream(),\n        text: () => blob.text(),\n    };\n    await fileCollection.appendExtendedSource(extendedSource);\n}\n//# sourceMappingURL=from_ium.js.map","import { defaultOptions } from \"../Options.js\";\n/**\n * Check if the file is known to be compressed or not\n * @param source - The source item to check, it should contain options to check by extension\n * @returns boolean\n */\nexport function shouldAvoidCompression(source) {\n    const { relativePath, options = {} } = source;\n    const lastSlashIndex = relativePath.lastIndexOf('/');\n    const name = relativePath.slice(lastSlashIndex + 1);\n    const unzipExtensions = options.unzip?.zipExtensions ?? defaultOptions.unzip.zipExtensions;\n    const ungzipExtensions = options.ungzip?.gzipExtensions ?? defaultOptions.ungzip.gzipExtensions;\n    const toStoreExtensions = new Set([...unzipExtensions, ...ungzipExtensions].map((ext) => ext.toLowerCase()));\n    const lastDotIndex = name.lastIndexOf('.');\n    const extension = name.slice(lastDotIndex + 1).toLowerCase();\n    return toStoreExtensions.has(extension);\n}\n//# sourceMappingURL=should_avoid_compression.js.map","import { BlobReader, TextReader, Uint8ArrayReader, Uint8ArrayWriter, ZipWriter, } from '@zip.js/zip.js';\nimport { mergeOptions } from \"../Options.js\";\nimport { toIumSourceToPath } from \"../transformation/source_zip.js\";\nimport { shouldAvoidCompression } from \"../utilities/should_avoid_compression.js\";\nimport { CURRENT_IUM_VERSION } from \"./versions/index.js\";\n/**\n * This method will zip a file collection and return the zip as an ArrayBuffer\n * @param fileCollection - The file collection to zip\n * @param options - Options for the zip process\n * @returns Zip as an Uint8Array\n */\nexport async function toIum(fileCollection, options = {}) {\n    const { includeData = true, getExtraFiles, mimetype = 'application/x-ium+zip', } = options;\n    const zipWriter = new ZipWriter(new Uint8ArrayWriter());\n    await zipWriter.add('.mimetype', new TextReader(mimetype), {\n        compressionMethod: 0,\n        // ensures the data length is written in the local file header\n        dataDescriptor: false,\n        dataDescriptorSignature: false,\n        // smaller payload, the extra field is empty\n        extendedTimestamp: false,\n    });\n    const sources = [];\n    const paths = {};\n    for (const source of fileCollection.sources) {\n        const newSource = {\n            uuid: source.uuid,\n            relativePath: source.relativePath,\n            originalRelativePath: source.originalRelativePath,\n            baseURL: source.baseURL,\n            lastModified: source.lastModified,\n            size: source.size,\n            extra: source.extra,\n            options: source.options,\n        };\n        sources.push(newSource);\n        const shouldIncludeFile = includeData || source.baseURL === 'ium:/';\n        if (!shouldIncludeFile)\n            continue;\n        newSource.baseURL = 'ium:/';\n        const pathname = toIumSourceToPath(newSource);\n        const addOptions = shouldAvoidCompression(source) ? { compressionMethod: 0 } : undefined;\n        paths[source.uuid] = pathname;\n        // eslint-disable-next-line no-await-in-loop\n        await zipWriter.add(pathname, source.stream(), addOptions);\n    }\n    const index = {\n        version: CURRENT_IUM_VERSION,\n        options: fileCollection.options,\n        sources,\n        paths,\n    };\n    if (getExtraFiles) {\n        const extraFiles = getExtraFiles(structuredClone(index), fileCollection);\n        for (const extraFile of extraFiles) {\n            const { relativePath, data, uuid = crypto.randomUUID() } = extraFile;\n            const source = {\n                uuid,\n                extra: true,\n                baseURL: 'ium:/',\n                relativePath,\n                options: extraFile.options\n                    ? mergeOptions(fileCollection.options, extraFile.options)\n                    : fileCollection.options,\n            };\n            sources.push(source);\n            const pathname = toIumSourceToPath(source);\n            const addOptions = shouldAvoidCompression(source) ? { compressionMethod: 0 } : undefined;\n            const fileReader = getExtraFileContentReader(data);\n            paths[uuid] = pathname;\n            // eslint-disable-next-line no-await-in-loop\n            await zipWriter.add(pathname, fileReader, addOptions);\n        }\n    }\n    await zipWriter.add('index.json', new TextReader(JSON.stringify(index, null, 2)));\n    return await zipWriter.close();\n}\nexport const UNSUPPORTED_EXTRA_FILE_CONTENT_ERROR = `Unsupported file content type.\nIf you passed a Node.js Stream convert it to Web Stream.`;\nfunction getExtraFileContentReader(fileContent) {\n    if (typeof fileContent === 'string') {\n        return new TextReader(fileContent);\n    }\n    else if (fileContent instanceof Uint8Array) {\n        // support Node.js Buffer they extend Uint8Array,\n        // but when it is read by Uint8ArrayReader it produces `Error: Split zip file`\n        // wrap Node.js Buffer into a new Uint8Array fix the issue\n        return new Uint8ArrayReader(new Uint8Array(fileContent.buffer, fileContent.byteOffset, fileContent.length));\n    }\n    else if (fileContent instanceof ArrayBuffer) {\n        return new Uint8ArrayReader(new Uint8Array(fileContent));\n    }\n    else if (fileContent instanceof Blob) {\n        return new BlobReader(fileContent);\n    }\n    else if (fileContent instanceof ReadableStream) {\n        return fileContent;\n    }\n    throw new Error(UNSUPPORTED_EXTRA_FILE_CONTENT_ERROR);\n}\n//# sourceMappingURL=to_ium.js.map","import { cloneExtendedSourceItem } from \"./ExtendedSourceItem.js\";\nimport { cloneFileItem } from \"./FileItem.js\";\nimport { normalizeRelativePath } from \"./utilities/normalize_relative_path.js\";\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function subroot(top, sub, subPath) {\n    const sanitizedSubPath = normalizeRelativePath(subPath).replace(/\\/+$/, '');\n    const pathMatch = `${sanitizedSubPath}/`;\n    const sources = new Map(top.sources.map((source) => [source.uuid, source]));\n    const addedSources = new Set();\n    for (const topFile of top.files) {\n        if (!topFile.relativePath.startsWith(pathMatch))\n            continue;\n        if (!addedSources.has(topFile.sourceUUID)) {\n            const source = sources.get(topFile.sourceUUID);\n            assert(source, 'source');\n            const subSource = cloneExtendedSourceItem(source);\n            subSource.originalRelativePath ??= source.relativePath;\n            subSource.relativePath = source.relativePath.slice(pathMatch.length);\n            addedSources.add(subSource.uuid);\n            sub.sources.push(subSource);\n        }\n        const file = cloneFileItem(topFile);\n        file.relativePath = file.relativePath.slice(pathMatch.length);\n        sub.files.push(file);\n    }\n}\nfunction assert(value, variableName) {\n    if (!value)\n        throw new Error(`Unreachable: ${variableName} is not defined`);\n}\n//# sourceMappingURL=subroot.js.map","import { defaultOptions } from \"../../Options.js\";\n/**\n * Some files in the fileItems may actually be gzip. This method will ungzip those files.\n * The method will actually not really ungzip the files but decompress them if you need.\n * During this process the extension .gz will be removed\n * @param fileItem - The file item to check and potentially ungzip.\n * @param options - Options to filter the files and control the ungzip behavior.\n * @returns A file item with ungzipped data.\n */\nexport async function fileItemUngzip(fileItem, options = {}) {\n    const { ungzip: ungzipOptions = {}, logger } = options;\n    let { gzipExtensions = defaultOptions.ungzip.gzipExtensions } = ungzipOptions;\n    gzipExtensions = gzipExtensions.map((extension) => extension.toLowerCase());\n    const extension = fileItem.name.replace(/^.*\\./, '').toLowerCase();\n    if (!gzipExtensions.includes(extension)) {\n        return fileItem;\n    }\n    if (!(await isGzip(fileItem))) {\n        logger?.info(`Could not ungzip the following file: ${fileItem.relativePath}`);\n        return fileItem;\n    }\n    return {\n        sourceUUID: fileItem.sourceUUID,\n        parent: fileItem,\n        name: fileItem.name.replace(/\\.[^.]+$/, ''),\n        size: fileItem.size,\n        relativePath: `${fileItem.relativePath}/${fileItem.name.replace(/\\.[^.]+$/, '')}`,\n        lastModified: fileItem.lastModified,\n        text: () => {\n            const stream = toUngzip(fileItem);\n            // Simplest way to convert a stream to text\n            // https://stackoverflow.com/a/72718732\n            return new Response(stream).text();\n        },\n        arrayBuffer: () => {\n            const stream = toUngzip(fileItem);\n            return new Response(stream).arrayBuffer();\n        },\n        stream: () => {\n            return toUngzip(fileItem);\n        },\n    };\n}\nasync function isGzip(file) {\n    const buffer = await file.arrayBuffer();\n    if (buffer.byteLength < 2)\n        return false;\n    const bytes = new Uint8Array(buffer);\n    return bytes[0] === 0x1f && bytes[1] === 0x8b;\n}\nfunction toUngzip(file) {\n    // @ts-expect-error `stream()` may return a stream of SharedArrayBuffer, which is not supported by the types of `DecompressionStream`.\n    return file.stream().pipeThrough(new DecompressionStream('gzip'));\n}\n//# sourceMappingURL=fileItemUngzip.js.map","const SIGNATURE_NORMAL = 0x504b0304; // PK\\x03\\x04\nconst SIGNATURE_EMPTY = 0x504b0506; // PK\\x05\\x06\nconst SIGNATURE_SPANNED = 0x504b0708; // PK\\x07\\x08\nconst SIGNATURES = new Set([\n    SIGNATURE_NORMAL,\n    SIGNATURE_EMPTY,\n    SIGNATURE_SPANNED,\n]);\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function isZip(buffer) {\n    // https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT#:~:text=4.3.16%20end%20of%20central%20directory%20record%3A\n    // empty zip file has minimal 22 bytes size (it's only an \"end of central directory record\")\n    // normal / spanned zip files have minimal 30 bytes\n    if (buffer.byteLength < 22)\n        return false;\n    const view = new DataView(buffer);\n    const signature = view.getUint32(0, false);\n    return SIGNATURES.has(signature);\n}\n/*\n 4.3.7  Local file header:\n    local file header signature     4 bytes  (0x04034b50)\n    version needed to extract       2 bytes\n    general purpose bit flag        2 bytes\n    compression method              2 bytes\n    last mod file time              2 bytes\n    last mod file date              2 bytes\n    crc-32                          4 bytes\n    compressed size                 4 bytes\n    uncompressed size               4 bytes\n    file name length                2 bytes\n    extra field length              2 bytes\n\n    file name (variable size)\n    extra field (variable size)\n */\nconst SUPPORTED_MIMETYPE_FILENAME = new Set(['mimetype', '.mimetype']);\nconst SUPPORTED_MIMETYPE_FILENAME_SIZE = new Set([...SUPPORTED_MIMETYPE_FILENAME].map((str) => str.length));\nconst COMPRESSION_METHOD_OFFSET = 4 + // local file header signature\n    2 + // version needed to extract\n    2; // general purpose bit flag\nconst UNCOMPRESSION_SIZE_OFFSET = COMPRESSION_METHOD_OFFSET +\n    2 + // compression method\n    2 + // last mod file time\n    2 + // last mod file date\n    4 + // crc-32\n    4; // compressed size\nconst FILENAME_SIZE_OFFSET = UNCOMPRESSION_SIZE_OFFSET + 4; // uncompressed size\nconst EXTRA_FIELD_SIZE_OFFSET = FILENAME_SIZE_OFFSET + 2; // file name length;\nconst LOCAL_FILE_HEADER_MINIMAL_SIZE = EXTRA_FIELD_SIZE_OFFSET + 2; // extra field length;\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function isIum(buffer, mimetype) {\n    if (buffer.byteLength < LOCAL_FILE_HEADER_MINIMAL_SIZE)\n        return false;\n    const view = new DataView(buffer);\n    const signature = view.getUint32(0, false);\n    // ium archive is never empty, and zip spanned is not supported\n    if (signature !== SIGNATURE_NORMAL)\n        return false;\n    // if no mimetype to check, we consider it as valid\n    if (typeof mimetype !== 'string')\n        return true;\n    // mimetype file must not be compressed\n    const compressionMethod = view.getUint16(COMPRESSION_METHOD_OFFSET, true);\n    if (compressionMethod > 0)\n        return false;\n    const nameSize = view.getUint16(FILENAME_SIZE_OFFSET, true);\n    if (!SUPPORTED_MIMETYPE_FILENAME_SIZE.has(nameSize)) {\n        // if name size is not supported, it cannot be a file supported filename\n        return false;\n    }\n    const fileSize = view.getUint32(UNCOMPRESSION_SIZE_OFFSET, true);\n    const extraFieldLength = view.getUint16(EXTRA_FIELD_SIZE_OFFSET, true);\n    const startFilename = LOCAL_FILE_HEADER_MINIMAL_SIZE;\n    const startExtraField = startFilename + nameSize;\n    const startFileData = startExtraField + extraFieldLength;\n    const minimalTotalSize = startFileData + fileSize;\n    // The buffer may be truncated\n    if (buffer.byteLength < minimalTotalSize)\n        return false;\n    const filename = new TextDecoder().decode(buffer.slice(startFilename, startExtraField));\n    // the first file of the zip is not a mimetype file\n    if (!SUPPORTED_MIMETYPE_FILENAME.has(filename)) {\n        return false;\n    }\n    const mimetypeValue = new TextDecoder().decode(buffer.slice(startFileData, minimalTotalSize));\n    return mimetypeValue === mimetype;\n}\n//# sourceMappingURL=zip.js.map","import { TextWriter } from '@zip.js/zip.js';\n/**\n * Converts a zip entry to an ItemData object.\n * @param entry - The zip file entry.\n * @returns An ItemData object with methods to retrieve the data in different formats.\n */\nexport function fileEntryToData(entry) {\n    return {\n        text: () => {\n            return entry.getData(new TextWriter());\n        },\n        arrayBuffer: async () => {\n            const stream = new TransformStream();\n            const [buffer] = await Promise.all([\n                new Response(stream.readable).arrayBuffer(),\n                entry.getData(stream.writable),\n            ]);\n            return buffer;\n        },\n        stream: () => {\n            const { writable, readable } = new TransformStream();\n            /* v8 ignore start */\n            // getData and writable are local, there is no easy way to force an error\n            async function propagateErrorToStream(error) {\n                await Promise.allSettled([\n                    writable.abort(error),\n                    readable.cancel(error),\n                ]);\n            }\n            /* v8 ignore end */\n            void entry.getData(writable).catch(propagateErrorToStream);\n            return readable;\n        },\n    };\n}\n//# sourceMappingURL=file_entry_to_data.js.map","import { Uint8ArrayReader, ZipReader } from '@zip.js/zip.js';\nimport { fileEntryToData } from \"../../zip/file_entry_to_data.js\";\nimport { shouldAddItem } from \"../shouldAddItem.js\";\n/**\n * Extracts file items from a zip file buffer.\n * @param buffer - The zip file as ArrayBuffer.\n * @param sourceUUID - The UUID of the source from which the zip file was created.\n * @param options - Options to filter the files.\n * @returns An async generator that yields file item.\n * @yields FileItem - The file item extracted from the zip.\n */\nexport async function* fileItemsFromZip(buffer, sourceUUID, options = {}) {\n    const uint8Array = ArrayBuffer.isView(buffer)\n        ? new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n        : new Uint8Array(buffer);\n    const zipReader = new ZipReader(new Uint8ArrayReader(uint8Array));\n    for await (const entry of zipReader.getEntriesGenerator()) {\n        if (entry.directory)\n            continue;\n        if (!shouldAddItem(entry.filename, options.filter))\n            continue;\n        yield entryToFileItem(entry, sourceUUID);\n    }\n}\nfunction entryToFileItem(entry, sourceUUID) {\n    return {\n        name: entry.filename.replace(/^.*\\//, ''),\n        sourceUUID,\n        relativePath: entry.filename,\n        lastModified: entry.lastModDate.getTime(),\n        size: entry.uncompressedSize,\n        ...fileEntryToData(entry),\n    };\n}\n//# sourceMappingURL=fileItemsFromZip.js.map","import { defaultOptions } from \"../../Options.js\";\nimport { shouldAddItem } from \"../shouldAddItem.js\";\nimport { isZip } from \"../zip.js\";\nimport { expandAndFilter } from \"./expandAndFilter.js\";\nimport { fileItemsFromZip } from \"./fileItemsFromZip.js\";\n/**\n * Some files in the fileItems may actually be zip. This method will unzip those files.\n * The method will actually not really unzip the files but only add them in the fileItems.\n * Unzipping will only take place when you want to actually retrieve the data.\n * @param fileItem - The file item to check and potentially unzip. if not zip file, return an array with the fileItem.\n * @param options - Options to filter the files and control the unzipping behavior.\n * @returns An array of file items, which may include unzipped files if the input was a zip file.\n */\nexport async function fileItemUnzip(fileItem, options = {}) {\n    const { unzip = {}, filter = {}, logger } = options;\n    let { zipExtensions = defaultOptions.unzip.zipExtensions } = unzip;\n    const { recursive = defaultOptions.unzip.recursive } = unzip;\n    zipExtensions = zipExtensions.map((extension) => extension.toLowerCase());\n    const extension = fileItem.name.replace(/^.*\\./, '').toLowerCase();\n    if (!fileItem.sourceUUID) {\n        throw new Error('fileItem.sourceUUID is not defined');\n    }\n    if (!zipExtensions.includes(extension)) {\n        return [fileItem];\n    }\n    const buffer = await fileItem.arrayBuffer();\n    if (!isZip(buffer)) {\n        if (logger) {\n            logger.info(`Could not unzip the following file: ${fileItem.relativePath}`);\n        }\n        return [fileItem];\n    }\n    const zipFileItems = fileItemsFromZip(buffer, fileItem.sourceUUID, options);\n    const fileItems = [];\n    for await (const zipEntry of zipFileItems) {\n        zipEntry.parent = fileItem;\n        zipEntry.relativePath = `${fileItem.relativePath}/${zipEntry.relativePath}`;\n        zipEntry.sourceUUID = fileItem.sourceUUID;\n        if (recursive) {\n            const recursiveFiles = await expandAndFilter(zipEntry, options);\n            fileItems.push(...recursiveFiles);\n        }\n        else if (shouldAddItem(zipEntry.relativePath, filter)) {\n            fileItems.push(zipEntry);\n        }\n    }\n    return fileItems;\n}\n//# sourceMappingURL=fileItemUnzip.js.map","import { shouldAddItem } from \"../shouldAddItem.js\";\nimport { fileItemUngzip } from \"./fileItemUngzip.js\";\nimport { fileItemUnzip } from \"./fileItemUnzip.js\";\n/**\n * Utility function that allows to expand gzip and zip files without really expanding them\n * @param fileCollection\n * @param originalFileItem\n * @param options\n * @returns\n */\nexport async function expandAndFilter(originalFileItem, options = {}) {\n    const { filter = {} } = options;\n    if (!shouldAddItem(originalFileItem.relativePath, filter)) {\n        return [];\n    }\n    const fileItem = await fileItemUngzip(originalFileItem, options);\n    const fileItems = await fileItemUnzip(fileItem, options);\n    for (const fileItem of fileItems) {\n        fileItem.sourceUUID = originalFileItem.sourceUUID;\n    }\n    return fileItems;\n}\n//# sourceMappingURL=expandAndFilter.js.map","import { normalizeRelativePath } from \"../utilities/normalize_relative_path.js\";\nimport { shouldAddItem } from \"../utilities/shouldAddItem.js\";\nimport { fileEntryToData } from \"./file_entry_to_data.js\";\nimport { getZipReader } from \"./get_zip_reader.js\";\n/**\n * Create a FileCollection from a zip\n * @param collection - The FileCollection to append the files to.\n * @param zipContent - The content of the zip file, which can be a Uint8Array, ArrayBuffer, Blob, or ReadableStream.\n * @param options - Options for creating the FileCollection.\n */\nexport async function fromZip(collection, zipContent, options) {\n    const reader = getZipReader(zipContent);\n    for await (const entry of reader.getEntriesGenerator()) {\n        if (entry.directory)\n            continue;\n        if (!shouldAddItem(entry.filename, options?.filter))\n            continue;\n        const source = entryToSource(entry);\n        await collection.appendExtendedSource(source);\n    }\n}\n/**\n * Converts a zip entry to an ExtendedSourceItem.\n * @param entry - The zip entry to convert.\n * @returns An ExtendedSourceItem or undefined if the entry does not have getData (should not happen).\n * @see https://github.com/gildas-lormeau/zip.js/issues/574\n */\nfunction entryToSource(entry) {\n    return {\n        uuid: crypto.randomUUID(),\n        size: entry.uncompressedSize,\n        baseURL: 'ium:/',\n        relativePath: normalizeRelativePath(entry.filename),\n        name: entry.filename.replace(/^.*\\//, ''),\n        lastModified: entry.lastModDate.getTime(),\n        ...fileEntryToData(entry),\n    };\n}\n//# sourceMappingURL=from_zip.js.map","import { cloneExtendedSourceItem } from \"./ExtendedSourceItem.js\";\nimport { cloneFileItem } from \"./FileItem.js\";\nimport { mergeOptions } from \"./Options.js\";\nimport { appendArrayBuffer } from \"./append/appendArrayBuffer.js\";\nimport { appendFileList } from \"./append/appendFileList.js\";\nimport { appendPath } from \"./append/appendPath.js\";\nimport { appendSource } from \"./append/appendSource.js\";\nimport { appendText } from \"./append/appendText.js\";\nimport { appendWebSource } from \"./append/appendWebSource.js\";\nimport { appendFileCollection } from \"./append/append_file_collection.js\";\nimport { fromIum } from \"./ium/from_ium.js\";\nimport { toIum } from \"./ium/to_ium.js\";\nimport { subroot } from \"./subroot.js\";\nimport { convertExtendedSourceToFile } from \"./utilities/convertExtendedSourceToFile.js\";\nimport { expandAndFilter } from \"./utilities/expand/expandAndFilter.js\";\nimport { filterFileCollection } from \"./utilities/filter_file_collection.js\";\nimport { getNameInfo } from \"./utilities/getNameInfo.js\";\nimport { shouldAddItem } from \"./utilities/shouldAddItem.js\";\nimport { isIum, isZip } from \"./utilities/zip.js\";\nimport { fromZip } from \"./zip/from_zip.js\";\nimport { toZip } from \"./zip/to_zip.js\";\nexport class FileCollection {\n    files;\n    sources;\n    options;\n    constructor(options = {}, toClone) {\n        this.options = toClone ? mergeOptions(toClone.options, options) : options;\n        if (toClone) {\n            this.files = toClone.files.map(cloneFileItem);\n            this.sources = toClone.sources.map(cloneExtendedSourceItem);\n        }\n        else {\n            this.files = [];\n            this.sources = [];\n        }\n    }\n    /**\n     * This is unexpected to be used directly\n     *\n     * About options merging, in merge in this order:\n     * 1. options passed to the collection constructor\n     * 2. options contained in the source\n     * 3. options passed to the method\n     * @param source - The source to append, which should be an ExtendedSourceItem.\n     * @param itemOptions - Options for the item, which will be merged with the collection's options.\n     * @private\n     * @returns - A promise that resolves to the FileCollection instance.\n     */\n    async appendExtendedSource(source, itemOptions) {\n        let options = this.options;\n        if (source.options)\n            options = mergeOptions(options, source.options);\n        if (itemOptions)\n            options = mergeOptions(options, itemOptions);\n        const shouldAdd = shouldAddItem(source.relativePath, options.filter);\n        if (!shouldAdd)\n            return this;\n        source = cloneExtendedSourceItem(source);\n        source.options = options;\n        this.sources.push(source);\n        const sourceFile = convertExtendedSourceToFile(source);\n        const files = await expandAndFilter(sourceFile, options);\n        const existingFiles = new Set(this.files.map((f) => f.relativePath));\n        for (const file of files) {\n            if (existingFiles.has(file.relativePath)) {\n                throw new Error(`Duplicate relativePath: ${file.relativePath}`);\n            }\n            this.files.push(file);\n        }\n        return this;\n    }\n    /**\n     * Save an object to the collection.\n     * This method will convert typed arrays to normal arrays and will\n     * replace a potentially existing file with the same name.\n     * @param key - The key is the relative path of the file in the collection.\n     * @param value - The value is the object to save.\n     *   It will be serialized using JSON.stringify.\n     * @returns A promise that resolves when the file is saved.\n     */\n    /* eslint-disable @typescript-eslint/no-explicit-any */\n    set(key, value) {\n        this.removeFile(key);\n        const string = JSON.stringify(value, (key, value) => ArrayBuffer.isView(value) ? Array.from(value) : value);\n        return this.appendText(key, string);\n    }\n    /* eslint-enable @typescript-eslint/no-explicit-any */\n    removeFile(originalRelativePath) {\n        const { relativePath } = getNameInfo(originalRelativePath);\n        const index = this.files.findIndex((f) => f.relativePath === relativePath);\n        const fileToRemove = this.files[index];\n        if (index !== -1) {\n            const sourceUUID = fileToRemove?.sourceUUID;\n            this.files.splice(index, 1);\n            // any other files with the same sourceUUID?\n            if (this.files.some((f) => f.sourceUUID === sourceUUID))\n                return;\n            // delete the source\n            const sourceIndex = this.sources.findIndex((s) => s.uuid === sourceUUID);\n            if (sourceIndex !== -1) {\n                this.sources.splice(sourceIndex, 1);\n            }\n            else {\n                throw new Error(`Source not found for UUID: ${sourceUUID}`);\n            }\n        }\n        return fileToRemove;\n    }\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    async get(key) {\n        const { relativePath } = getNameInfo(key);\n        const file = this.files.find((f) => f.relativePath === relativePath);\n        if (!file) {\n            throw new Error(`Key not found: ${key}`);\n        }\n        const string = await file.text();\n        return JSON.parse(string);\n    }\n    async appendWebSource(webSourceURL, options = {}) {\n        await appendWebSource(this, webSourceURL, options);\n        return this;\n    }\n    /**\n     * This method will append a list of files to the collection.\n     * @param fileList - pass a FileList (from dom input file element or similar) or an iterable of File objects.\n     * @returns - A promise that resolves when the files are appended.\n     */\n    async appendFileList(fileList) {\n        await appendFileList(this, fileList);\n        return this;\n    }\n    async appendSource(webSource, options = {}) {\n        await appendSource(this, webSource, options);\n        return this;\n    }\n    /**\n     * This method can only be used from nodejs and will throw an error in the browser\n     * @param path - The path to the file or directory to append.\n     * @param options - Options for appending the path.\n     * @returns A promise that resolves when the path is appended.\n     */\n    async appendPath(path, options = {}) {\n        await appendPath(this, path, options);\n        return this;\n    }\n    async appendText(relativePath, text, options = {}) {\n        await appendText(this, relativePath, text, options);\n        return this;\n    }\n    async appendArrayBuffer(relativePath, arrayBuffer, options = {}) {\n        await appendArrayBuffer(this, relativePath, arrayBuffer, options);\n        return this;\n    }\n    /**\n     * This method will merge the files and sources of another collection into this collection.\n     * Sources and files will be appended to this collection.\n     * The relative paths of the files and sources will be prefixed with the subPath.\n     * @param other - The collection to merge into this collection.\n     * @param subPath - Optional subPath to prefix the relative paths of the files and sources.\n     * @returns this - The method is chainable.\n     */\n    appendFileCollection(other, subPath = '') {\n        appendFileCollection(this, other, subPath);\n        return this;\n    }\n    /**\n     * This method will generate a new FileCollection.\n     * It filters files and sources from this collection based on the subPath.\n     * The files and sources will have the subPath removed from their relative paths.\n     *\n     * Think of this method like a cd command.\n     * Only with a relative path, and no possibility to go up.\n     * @param subPath - The subPath to filter the files and sources by.\n     * @returns A new FileCollection with the filtered files and sources with subPath as root.\n     * @example\n     * ```ts\n     * const collection = new FileCollection();\n     * collection.appendText('a/b/c.txt', 'hello');\n     * collection.appendText('a/b/d.txt', 'world');\n     * collection.appendText('a/e.txt', 'hello world');\n     *\n     * const subCollection = collection.subroot('a');\n     *\n     * expect(subCollection.files.map((f) => f.relativePath)).toStrictEqual([\n     *   'b/c.txt',\n     *   'b/d.txt',\n     *   'e.txt',\n     * ]);\n     * expect(subCollection.sources.map((s) => s.relativePath)).toStrictEqual([\n     *   'b/c.txt',\n     *   'b/d.txt',\n     *   'e.txt',\n     * ]);\n     * ```\n     */\n    subroot(subPath) {\n        const sub = new FileCollection(this.options);\n        subroot(this, sub, subPath);\n        return sub;\n    }\n    toIum(options = {}) {\n        return toIum(this.alphabetical(), options);\n    }\n    /**\n     * This method will zip the file collection and return the zip as an ArrayBuffer\n     * @param finalPaths - toZip will fill this map with the final paths of the sources\n     * @returns Zip as an Uint8Array\n     */\n    toZip(finalPaths) {\n        return toZip(this, finalPaths);\n    }\n    static async fromIum(ium, options = {}) {\n        const fileCollection = await fromIum(ium, options);\n        return fileCollection.alphabetical();\n    }\n    static async fromZip(zipContent, options = {}) {\n        const collection = new FileCollection(options);\n        await fromZip(collection, zipContent, options);\n        collection.alphabetical();\n        return collection;\n    }\n    static async fromPath(path, collectionOptions = {}, options = {}) {\n        const collection = new FileCollection(collectionOptions);\n        await collection.appendPath(path, options);\n        return collection;\n    }\n    static async fromSource(source, collectionOptions = {}, options = {}) {\n        const collection = new FileCollection(collectionOptions);\n        await collection.appendSource(source, options);\n        collection.alphabetical();\n        return collection;\n    }\n    static fromCollection(collection, options) {\n        return new FileCollection(options, collection);\n    }\n    /**\n     * Fast check if the buffer is a valid ium container.\n     * Check the mimetype if provided.\n     * The check assume the first entry:\n     *  - is a file with name \"mimetype\"\n     *  - the size of the file is in the local file header\n     *    (some zip tools can set it to 0 and put the size into the data descriptor)\n     *  - the compression method is 0 (store)\n     * @param buffer - the buffer to check\n     * @param mimetype - the mimetype to check as the first file in zip named \"mimetype\"\n     * @returns boolean\n     */\n    static isIum(buffer, mimetype) {\n        return isIum(buffer, mimetype);\n    }\n    /**\n     * Fast check if the buffer is a zip file, checks are:\n     *  + size must be >= 22\n     *  + 4 first bytes must be a valid zip signature\n     * @param buffer - the buffer to check\n     * @returns boolean\n     */\n    static isZip(buffer) {\n        return isZip(buffer);\n    }\n    alphabetical() {\n        this.sources.sort((a, b) => (a.relativePath < b.relativePath ? -1 : 1));\n        this.files.sort((a, b) => (a.relativePath < b.relativePath ? -1 : 1));\n        return this;\n    }\n    [Symbol.iterator]() {\n        return this.files.values();\n    }\n    /**\n     * Filter files of the collection based on a predicate function.\n     * @param predicate - Function which takes a FileItem, its index, and the array of FileItems, must return a boolean.\n     *  True to keep the file, false to remove it.\n     * @returns A new FileCollection containing only the files that match the predicate (and sources attached to these files).\n     */\n    filter(predicate) {\n        return filterFileCollection(this, predicate, new FileCollection(this.options));\n    }\n}\n//# sourceMappingURL=FileCollection.js.map","// eslint-disable-next-line jsdoc/require-jsdoc\nexport function convertExtendedSourceToFile(source) {\n    return {\n        sourceUUID: source.uuid,\n        relativePath: source.relativePath,\n        name: source.name,\n        lastModified: source.lastModified,\n        size: source.size,\n        baseURL: source.baseURL,\n        arrayBuffer: () => source.arrayBuffer(),\n        text: () => source.text(),\n        stream: () => source.stream(),\n    };\n}\n//# sourceMappingURL=convertExtendedSourceToFile.js.map","import { appendSource } from \"./appendSource.js\";\nexport async function appendWebSource(fileCollection, webSourceURL, options = {}) {\n    const response = await fetch(webSourceURL);\n    const webSource = (await response.json());\n    return appendSource(fileCollection, webSource, {\n        baseURL: webSourceURL,\n        ...options,\n    });\n}\n//# sourceMappingURL=appendWebSource.js.map","export function appendPath() {\n    throw new Error('This method is not available in the browser');\n}\n//# sourceMappingURL=appendPath.browser.js.map","import { cloneExtendedSourceItem } from \"../ExtendedSourceItem.js\";\nimport { cloneFileItem } from \"../FileItem.js\";\nimport { normalizeRelativePath } from \"../utilities/normalize_relative_path.js\";\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function appendFileCollection(self, other, subPath) {\n    const sanitizedSubPath = normalizeRelativePath(subPath)\n        // trim ending slash\n        .replace(/\\/$/, '');\n    for (const otherSource of other.sources) {\n        const source = cloneExtendedSourceItem(otherSource);\n        source.originalRelativePath ??= source.relativePath;\n        source.relativePath = normalizeRelativePath(`${sanitizedSubPath}/${source.relativePath}`);\n        self.sources.push(source);\n    }\n    const existingFiles = new Set(self.files.map((f) => f.relativePath));\n    for (const otherFile of other.files) {\n        const relativePath = normalizeRelativePath(`${sanitizedSubPath}/${otherFile.relativePath}`);\n        if (existingFiles.has(relativePath)) {\n            throw new Error(`Duplicate relativePath: ${otherFile.relativePath}`);\n        }\n        const file = cloneFileItem(otherFile);\n        file.relativePath = relativePath;\n        self.files.push(file);\n    }\n}\n//# sourceMappingURL=append_file_collection.js.map","import { Uint8ArrayWriter, ZipWriter } from '@zip.js/zip.js';\nimport { sourceToZipPath } from \"../transformation/source_zip.js\";\nimport { shouldAvoidCompression } from \"../utilities/should_avoid_compression.js\";\n/**\n * This method will zip a file collection and return the zip as an ArrayBuffer\n * @param collection - The file collection to zip\n * @param finalPaths - toZip will fill this map with the final paths of the sources\n * @returns Zip as an Uint8Array\n */\nexport async function toZip(collection, finalPaths) {\n    const zipWriter = new ZipWriter(new Uint8ArrayWriter());\n    for (const source of collection.sources) {\n        const path = sourceToZipPath(source);\n        finalPaths?.set(source, path);\n        const addOptions = shouldAvoidCompression(source) ? { compressionMethod: 0 } : undefined;\n        // eslint-disable-next-line no-await-in-loop\n        await zipWriter.add(path, source.stream(), addOptions);\n    }\n    return await zipWriter.close();\n}\n//# sourceMappingURL=to_zip.js.map","import { cloneExtendedSourceItem } from \"../ExtendedSourceItem.js\";\nimport { cloneFileItem } from \"../FileItem.js\";\n// eslint-disable-next-line jsdoc/require-jsdoc\nexport function filterFileCollection(collection, predicate, newCollection) {\n    const sourcesMap = new Map(collection.sources.map((s) => [s.uuid, s]));\n    const filteredFiles = [];\n    const filteredSources = new Map();\n    for (const [index, file] of collection.files.entries()) {\n        if (!predicate.call(collection.files, file, index, collection.files)) {\n            continue;\n        }\n        filteredFiles.push(cloneFileItem(file));\n        const source = sourcesMap.get(file.sourceUUID);\n        if (!source)\n            continue;\n        if (filteredSources.has(file.sourceUUID))\n            continue;\n        filteredSources.set(file.sourceUUID, cloneExtendedSourceItem(source));\n    }\n    Object.assign(newCollection, {\n        files: filteredFiles,\n        sources: Array.from(filteredSources.values()),\n    });\n    return newCollection;\n}\n//# sourceMappingURL=filter_file_collection.js.map","import { configure } from '@zip.js/zip.js';\nconfigure({\n    useCompressionStream: true,\n    useWebWorkers: false,\n});\nexport * from \"./FileCollection.js\";\nexport { CURRENT_IUM_VERSION } from \"./ium/versions/index.js\";\n/**\n * Tools using this package can configure zip.js with the following `zipJsConfigure` method\n *\n * The default configuration from FileCollection is:\n * ```ts\n * configure({\n *   useCompressionStream: true,\n *   useWebWorkers: false,\n * });\n * ```\n * @see https://github.com/gildas-lormeau/zip.js/tree/master/dist\n */\nexport { configure as zipJsConfigure } from '@zip.js/zip.js';\n//# sourceMappingURL=index.js.map","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    asyncTag = '[object AsyncFunction]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    nullTag = '[object Null]',\n    objectTag = '[object Object]',\n    proxyTag = '[object Proxy]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    undefinedTag = '[object Undefined]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n    funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    Symbol = root.Symbol,\n    Uint8Array = root.Uint8Array,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n    getPrototype = overArg(Object.getPrototypeOf, Object),\n    objectCreate = Object.create,\n    propertyIsEnumerable = objectProto.propertyIsEnumerable,\n    splice = arrayProto.splice,\n    symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n    nativeMax = Math.max,\n    nativeNow = Date.now;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n    nativeCreate = getNative(Object, 'create');\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n  if ((value !== undefined && !eq(object[key], value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  baseFor(source, function(srcValue, key) {\n    stack || (stack = new Stack);\n    if (isObject(srcValue)) {\n      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n    }\n    else {\n      var newValue = customizer\n        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      if (newValue === undefined) {\n        newValue = srcValue;\n      }\n      assignMergeValue(object, key, newValue);\n    }\n  }, keysIn);\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = safeGet(object, key),\n      srcValue = safeGet(source, key),\n      stacked = stack.get(srcValue);\n\n  if (stacked) {\n    assignMergeValue(object, key, stacked);\n    return;\n  }\n  var newValue = customizer\n    ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n    : undefined;\n\n  var isCommon = newValue === undefined;\n\n  if (isCommon) {\n    var isArr = isArray(srcValue),\n        isBuff = !isArr && isBuffer(srcValue),\n        isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if (isArray(objValue)) {\n        newValue = objValue;\n      }\n      else if (isArrayLikeObject(objValue)) {\n        newValue = copyArray(objValue);\n      }\n      else if (isBuff) {\n        isCommon = false;\n        newValue = cloneBuffer(srcValue, true);\n      }\n      else if (isTyped) {\n        isCommon = false;\n        newValue = cloneTypedArray(srcValue, true);\n      }\n      else {\n        newValue = [];\n      }\n    }\n    else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n      newValue = objValue;\n      if (isArguments(objValue)) {\n        newValue = toPlainObject(objValue);\n      }\n      else if (!isObject(objValue) || isFunction(objValue)) {\n        newValue = initCloneObject(srcValue);\n      }\n    }\n    else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    // Recursively merge objects and arrays (susceptible to call stack limits).\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack['delete'](srcValue);\n  }\n  assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == 'function' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n  if (key === 'constructor' && typeof object[key] === 'function') {\n    return;\n  }\n\n  if (key == '__proto__') {\n    return;\n  }\n\n  return object[key];\n}\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n    funcToString.call(Ctor) == objectCtorString;\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n  return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n *   'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n *   'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n  baseMerge(object, source, srcIndex);\n});\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = merge;\n","var xt={NORMAL:\"NORMAL\",FORMULA:\"FORMULA\"};var ht={RELATIVE:\"relative\",ABSOLUTE:\"absolute\",MIN:\"min\",MAX:\"max\"};var Ot=[{name:\"pixels\",unit:\"px\"},{name:\"inches\",unit:\"in\"},{name:\"feet\",unit:\"ft\"},{name:\"yards\",unit:\"yd\"},{name:\"centimeters\",unit:\"cm\"},{name:\"millimeters\",unit:\"mm\"},{name:\"meters\",unit:\"m\"},{name:\"points\",unit:\"pt\"},{name:\"picas\",unit:\"pc\"}];var Dt=[\"ppm\",\"hz\",\"pt\",\"s\"],bt=[\"pt\",\"s\"],It=[\"pt\",\"ppm\",\"hz\"],Nt=[\"pt\",\"s\"],Rt=[\"pt\",\"ppm\",\"hz\"],vt=\"s\",Tt=\"ppm\",wt=\"s\",kt=\"ppm\";var D=22;var Ct=[{key:\"ct\",label:\"CT from NMR Solutions\"},{key:\"mixonat\",label:\"MixONat\"}];import{isAnyArray as At}from\"is-any-array\";import{xMultiply as se}from\"ml-spectra-processing\";var Ft=crypto.randomUUID.bind(crypto),O=Ft;function w(e){let{id:t=O(),meta:o,peaks:r={},filters:n=[],info:i={},ranges:a={},integrals:s={},processingInfo:p={},originalProcessingInfo:l={},selector:u,sourceId:c,dependentVariables:m=[],display:d,...g}=e,f={id:t,meta:o,filters:n,processingInfo:p,originalProcessingInfo:l},{data:y=Mt(m[0]?.components??[])}=e;if(Array.isArray(i.nucleus)&&(i.nucleus=i.nucleus[0]),f.data={x:[],re:[],im:[],...y},\"scaleFactor\"in i){let{scaleFactor:x}=i,{re:P,im:h}=f.data;se(P,x,{output:P}),h&&se(h,x,{output:h})}u&&(f.selector=u),c&&(f.sourceId=c,f.fileCollectionId=c);let S=At(y.im);if(f.info={phc0:0,phc1:0,nucleus:\"1H\",isFid:!1,isComplex:S,dimension:1,name:i?.name||t,...i},i.isFid&&i.reverse&&S){let{im:x}=f.data;se(x,-1,{output:x}),f.info.reverse=!1}return f.display={isVisible:!0,isPeaksMarkersVisible:!0,isRealSpectrumVisible:!0,isVisibleInDomain:!0,...d},f.peaks={values:[],options:{},...r},f.ranges={values:[],options:{sum:null,isSumConstant:!0,sumAuto:!0},...a},f.integrals={values:[],options:{},...s},!f.originalData&&f.data&&(f.originalData={...f.data}),!f.originalInfo&&f.info&&(f.originalInfo={...f.info}),{...g,...f}}function Mt(e){let t=e[0]?.data?.x||[],o=e[0]?.data?.re||e[0]?.data?.y||[],r=e[0]?.data?.im||e[1]?.data?.y||null;return t.length>0&&t[0]>t[1]&&(t.reverse(),o.reverse(),r&&r.reverse()),{x:t,re:o,im:r}}import{matrixToArray as zt,xMinMaxValues as Vt,xNoiseSanPlot as Lt}from\"ml-spectra-processing\";function M(e){return\"re\"in e}function E(e){return\"rr\"in e}function ae(e){return\"rr\"in e&&\"ri\"in e&&\"ir\"in e&&\"ii\"in e}function C(e){let t=e.x.slice(),o=e.re.slice(),r={x:t,re:o};return\"im\"in e&&(r.im=e.im?.slice()),r}function I(e){if(M(e))return Et(e);if(E(e))return Ut(e);throw new Error(\"Unsupported 2D data\")}function Et(e){let o={re:k(e.re)};return\"im\"in e&&(o.im=e.im?k(e.im):void 0),o}function Ut(e){let o={rr:k(e.rr)};return\"ri\"in e&&(o.ri=e.ri?k(e.ri):void 0),\"ir\"in e&&(o.ir=e.ir?k(e.ir):void 0),\"ii\"in e&&(o.ii=e.ii?k(e.ii):void 0),o}function k(e){let t=e.z.map(o=>o.slice());return{...e,z:t}}var ce={z:[[]],minX:0,minY:0,maxX:0,maxY:0},_t={re:ce,im:ce},jt={rr:ce};function L(e){let{id:t=O(),meta:o={},dependentVariables:r=[],info:n={},filters:i=[],processingInfo:a={},originalProcessingInfo:s={},zones:p=[],sourceId:l,...u}=e,c={id:t,meta:o,filters:i,processingInfo:a,originalProcessingInfo:s};l&&(c.sourceId=l,c.fileCollectionId=l),c.info={nucleus:[\"1H\",\"1H\"],isFid:!1,isComplex:!1,name:n?.name||O(),...n},c.originalInfo=structuredClone(c.info),c.display={isPositiveVisible:!0,isNegativeVisible:!0,isVisible:!0,dimension:2,...e.display};let{data:m=r[0]?.components??{}}=e;if(c.data={...c.info.isFid?_t:jt,...m},c.originalData=I(c.data),!(\"spectrumSize\"in n)){let d=n.isFid?\"re\":\"rr\",g=c.data[d].z.length,f=g>0?c.data[d].z[0].length:0;c.info.spectrumSize=[f,g]}if(!n.isFid){let d=c.data.rr,g=zt(d.z),{positive:f,negative:y}=Lt(g,{magnitudeMode:n.acquisitionScheme===\"notPhaseSensitive\"}),{min:S,max:x}=Vt(g);c.data.rr={...d,minZ:S,maxZ:x},c.info.noise={positive:f,negative:y}}return c.zones={values:[],options:{},...p},!c.originalData&&c.data&&(c.originalData=I(c.data)),!c.originalInfo&&c.info&&(c.originalInfo=structuredClone(c.info)),{...u,...c}}import{xSequentialFillFromTo as Zt}from\"ml-spectra-processing\";import{isAnyArray as Bt}from\"is-any-array\";function pe(e,t=0){if(Bt(e)){let o=e.at(t);if(o!==void 0)return o;throw new RangeError(\"An array with a index out of boundaries\")}return e}var Wt=new Set([\"t1ir\",\"T1\"]);function Ee(e){let t=[];for(let o of e){let{info:{pulseSequence:r,isFid:n}}=o,{data:i,info:a,meta:{vdlistValues:s=[]}={}}=o;if(!(r&&Wt.has(r))||s.length===0){t.push(o);continue}let l=n?\"re\":\"rr\",u={};for(let S in a)u[S]=pe(a[S]);let{z:c,maxX:m,minX:d}=i[l],g=Zt({from:d,to:m,size:c[0].length}),[f,y]=Xt(o);for(let S=0;S<s.length;S++){let x={re:g,x:g};for(let P in i)x[Kt(P)]=i[P].z.at(f*(S+y));t.push(w({data:x,info:{...u,name:`${u.name}_${s[S]}`,dimension:1,vd:s[S]}}))}}return t}function Kt(e){return[\"rr\",\"re\"].includes(e)?\"re\":[\"im\",\"ri\",\"ir\",\"ii\"].includes(e)?\"im\":\"x\"}function Xt(e){let{meta:{PAGE:t}}=e,o=!0;if(t){let r=n=>Number.parseFloat(n.replace(/[F|T]1=/,\"\"));o=r(t[0])>r(t[2])}return o?[-1,1]:[1,0]}var $t=2,Gt=1;function Yt(e){let{spectra:t=[],molecules:o}=e,r=[];for(let n of t){let{info:i}=n;switch(i.dimension){case Gt:r.push(w(n));break;case $t:r.push(L(n));break;default:throw new Error(\"dimension does not supported\")}}return{molecules:o,spectra:Ee(r)}}function N(e){return e?.info.dimension===2}function qt(e){return N(e)&&M(e.data)}function Jt(e){return N(e)&&E(e.data)}function Ht(e){return N(e)&&ae(e.data)}function Qt(e){if(!N(e))throw new Error(\"Spectrum is not 2D\")}function er(e){}function v(e){return e?.info.dimension===1}function tr(e){return v(e)&&e.info.isFid}function rr(e){return v(e)&&e.info.isFt}function or(e){if(!v(e))throw new Error(\"Spectrum is not 1D\")}function nr(e){}function Ue(e,t){}function ir(e,t){}function sr(e,t){}function ar(e,t){}import{assertUnreachable as cr}from\"@zakodium/utils\";function pr(e){if(v(e))return ze(e);if(N(e))return Ve(e);cr(e)}function ze(e){let{data:t,originalData:o,...r}=e,n=structuredClone(r);return{data:C(t),originalData:C(o),...n}}function Ve(e){let{data:t,originalData:o,...r}=e,n=structuredClone(r);return{data:I(t),originalData:I(o),...n}}function lr(e){return e}import{assert as Le,cast as F}from\"@zakodium/utils\";function ur(){return!0}function mr(){return null}function fr(){return null}function dr(e,t){return t}function gr(e){let{id:t,apply:o,domainUpdateRules:r,isApplicable:n=ur}=e,i=\"schemaSettings\"in e&&e.schemaSettings?e.schemaSettings:null,a=\"schemaOptions\"in e&&e.schemaOptions?e.schemaOptions??null:null,s=\"computeOptions\"in e?e.computeOptions:null,p=\"getDefaultSettings\"in e?e.getDefaultSettings:null;if(i&&!s&&(a||(F(i),a=i),s=dr),!a&&!s){let u=mr;F(u),s=u}if(Le(s,\"computeOptions is mandatory when schemaOptions is defined\"),!i){let u=fr;F(u),p=u}return Le(p,\"getDefaultSettings is mandatory when schemaOptions is defined\"),F(p),F(i),F(a),{id:t,isApplicable:n,apply:(u,c)=>o(u,c)??u,domainUpdateRules:r,schemaSettings:i,schemaOptions:a,computeOptions:s,getDefaultSettings:p}}function Sr(e){return e}var U=class{#e=new Map;operationIds(){return this.#e.keys()}registerOperation(t){if(this.#e.has(t.id))throw new Error(`Operation \"${t.id}\" is already registered`);this.#e.set(t.id,t)}async executeOperation(t,o){let r=this.#e.get(t.operationId);if(!r)return{type:\"error\",kind:\"not_registered\",error:new Error(`Operation \"${t.operationId}\" is not registered`)};if(r.isApplicable)try{if(!await r.isApplicable(o))return{type:\"error\",kind:\"not_applicable\",error:new Error(`Operation \"${t.operationId}\" is not applicable`)}}catch(n){return{type:\"error\",kind:\"is_applicable_exception\",error:n}}try{return{type:\"success\",value:await r.apply(o,t.options)}}catch(n){return{type:\"error\",kind:\"apply_exception\",error:n}}}async executePipeline(t,o){let r=o;for(let[n,i]of t.operations.entries()){let a=await this.executeOperation(i,r);if(a.type===\"error\")return{...a,operationIndex:n,intermediateValue:r};r=a.value}return{type:\"success\",value:r}}};import{assert as yt}from\"@zakodium/utils\";function b(e,t){return JSON.parse(JSON.stringify(e),function(r,n){if(r in t){this[t[r]]=n;return}return n})}function le(e){if(e?.version===1)return e;let t={...e,version:1},o={j:\"js\",signal:\"signals\",integral:\"integration\",peak:\"peaks\",diaID:\"diaIDs\"};for(let r of t.spectra){if(r.ranges){let n=b(r.ranges,o);r.ranges=Array.isArray(n)?{values:n}:n}else if(r.zones){let n=b(r.zones,o);r.zones=Array.isArray(n)?{values:n}:n}r.peaks&&(r.peaks=Array.isArray(r.peaks)?{values:r.peaks}:r.peaks),r.integrals&&(r.integrals=Array.isArray(r.integrals)?{values:r.integrals}:r.integrals)}return t}function ue(e){if(e?.version===2)return e;let t={...e,version:2},o={peaks:{delta:\"x\",originDelta:\"originalX\",intensity:\"y\"},ranges:{atomIDs:\"atoms\",intensity:\"y\"}};for(let r of t.spectra)r.peaks?r.peaks=b(r.peaks,o.peaks):r.ranges?r.ranges=b(r.ranges,o.ranges):r.zones&&(r.zones.values=yr(r.zones.values));return t}function yr(e){return e.map(t=>(t.signals&&(t.signals=t.signals.map(o=>{if(o.x&&o.y){let{x:{fromTo:r,...n},y:{fromTo:i,...a}}=o;o={...o,x:{...n,...r},y:{...a,...i}}}else{let{fromTo:r,deltaX:n,resolutionX:i,nucleusX:a,deltaY:s,resolutionY:p,nucleusY:l,shiftX:u,shiftY:c,...m}=o;o={...m,x:{from:r[0].from,to:r[0].to,delta:n,resolution:i,nucleus:a},y:{from:r[1].from,to:r[1].to,delta:s,resolution:p,nucleus:l}}}return o},[])),t),[])}var Pr={name:\"apodization\",label:\"Apodization\",value:{lineBroadening:1,gaussBroadening:0,lineBroadeningCenter:0}};function me(e){if(e?.version===3)return e;let t={...e,version:3};for(let o of t.spectra)if(Array.isArray(o?.filters)&&o?.filters.length>0){let r=o.filters.findIndex(n=>n.name===\"lineBroadening\");if(r!==-1){let n={...o.filters[r],...Pr};o.filters[r]=o.filters[r-1],o.filters[r-1]=n}}return t}function fe(e){if(e?.version===4)return e;let{version:t,...o}=e,r=[],n={};for(let{source:s,...p}of o.spectra){let l={},{info:u={},display:c={},filters:m}=p;if(u.dimension===2&&!s?.jcampURL)if(u.isFt)l.data={rr:p.data};else continue;if(s?.jcampURL){let{jcampURL:f,jcampSpectrumIndex:y}=s,S=f.match(/(?<baseURL>^\\w+:\\/{2}\\w+\\/)(?<relativePath>.*)/);n[f]||(n[f]={baseURL:S?.groups.baseURL||\"\",relativePath:S?.groups.relativePath||f.replace(/^\\.\\//,\"\")}),l.sourceSelector={files:[n[f].relativePath]},y!==void 0&&(l.sourceSelector.jcamp={index:y})}l.filters=xr(m);let{name:d,...g}=c;d&&(l.info={...u,name:d}),l.display=g,r.push({...p,...l})}let i={data:{...o,spectra:r},version:4},a={entries:Object.values(n)};return a.entries.length>0&&(i.data.source=a),i}function xr(e=[]){let t=[];for(let o of e){let{name:r,value:n}=o;switch(r){case\"zeroFilling\":t.push({...o,value:{nbPoints:n}});break;case\"shiftX\":case\"shift2DX\":case\"shift2DY\":t.push({...o,value:{shift:n}});break;default:t.push({...o})}}return t}function de(e){if(e?.version===5)return e;let t={...e,version:5},o={originFrom:\"originalFrom\",originTo:\"originalTo\",originDelta:\"originalDelta\",originX:\"originalX\",originY:\"originalY\",originZ:\"originalZ\"};for(let r of t?.data?.spectra||[])for(let n of[\"peaks\",\"ranges\",\"zones\"])r?.[n]&&(r[n]=b(r[n],o));return t}function ge(e){if(e?.version===6)return e;let t={...e,version:6};for(let o of t?.data?.spectra||[]){let{digitalFilter:r,fft:n,phaseCorrection:i}=hr(o);n?.flag&&r?.flag&&i&&Math.floor(r.value.digitalFilterValue)%2>0&&(i.value.ph0-=180)}return t}function hr(e,t=[\"phaseCorrection\",\"fft\",\"digitalFilter\"]){let{filters:o=[]}=e,r={};for(let n of t)r[n]=o.find(i=>i.name===n);return r}function _(e,t=\"localStorage\"){if(e?.version===7)return e;if(t===\"nmrium\")return _e(e);let o={...e,version:7};for(let r in e.workspaces)o.workspaces[r]=_e(o.workspaces[r]);return o}function _e(e){let{formatting:{nuclei:t,panels:o}={nuclei:null,panels:null},version:r,...n}=e,i={...n};return t&&(i.nuclei=Or(t)),o&&(i.panels=o),i}function Or(e){let t=[],o={name:\"nucleus\",ppm:\"ppmFormat\",hz:\"hzFormat\"};for(let r in e)t.push(b(e[r],o));return t}function Se(e){if(e?.version===7)return e;let t={...e,version:7};return t?.settings&&(t.settings=_(t.settings,\"nmrium\")),t}function j(e,t=\"localStorage\"){if(e?.version===8)return e;if(t===\"nmrium\")return je(e);let o={...e,version:8};for(let r in e.workspaces)o.workspaces[r]=je(o.workspaces[r]);return o}function je(e){let{version:t,...o}=e,r={...o};return r.display.panels=Dr(e),r}function Dr(e){let t={},o=e.display.panels;for(let r of Object.keys(o)){let{display:n,open:i}=o[r];t[r]={display:n,visible:n,open:i}}return t}function ye(e){if(e?.version===8)return e;let t={...e,version:8};t?.settings&&(t.settings=j(t.settings,\"nmrium\"));for(let o of t?.data?.spectra||[]){let{filters:r=[]}=o;for(let s=0;s<r.length;s++){let{flag:p,isDeleteAllow:l,label:u,...c}=r[s];r[s]={...c,enabled:p}}let n=r.findIndex(s=>s.name===\"apodization\");if(n!==-1){let s=r[n],{lineBroadening:p,gaussBroadening:l,lineBroadeningCenter:u}=s.value;s.value={exponential:{apply:!0,options:{lineBroadening:l>0?-p:p}}},l>0&&(s.value.gaussian={apply:!0,options:{lineBroadening:.6*l,lineBroadeningCenter:u}}),r[n]=s}let i=r.findIndex(s=>s.name===\"apodizationDimension1\"),a=r.findIndex(s=>s.name===\"apodizationDimension2\");if(i!==-1){let s=r[i],{shapes:p}=s.value.compose;s.value=Be(p)}if(a!==-1){let s=r[a],{shapes:p}=s.value.compose;s.value=Be(p)}}return t}function Be(e){let t={};for(let{shape:o}of e){let{kind:r,options:n}=o;if(r===\"sineBell\"){let{exponent:i,offset:a}=n,s=i===2?\"sineSquare\":\"sineBell\";t[s]={apply:!0,options:{offset:a}}}}return t}function Pe(e){let{version:t,plugins:o,...r}=e;return t===9?e:{version:9,plugins:{},...r}}function xe(e){if(e?.version>=10)return e;let t={...e,version:10};if(e.data){let{source:o,spectra:r,...n}=e.data,i=o?O():void 0,a=o?[{...o,id:i}]:[];t.data={...n,sources:a,spectra:o?r?.map(s=>({...s,sourceId:i})):r}}return t}function he(e){if(e.version>=11)return e;let t={...e,version:11};return e?.view?.molecules&&(t.view=br(e.view)),t}function br(e){let{molecules:t,...o}=e,r={};for(let[n,i]of Object.entries(t)){let{showAtomNumber:a,...s}=i;r[n]={...s,atomAnnotation:\"none\",showLabel:!1}}return{molecules:r,...o}}function Oe(e){if(e?.version>=12)return e;let t={...e,version:12};if(t.data){let o=e.data.spectra??[],r=e.data.molecules??[];for(let n of o){let{sourceId:i,fileCollectionId:a,sourceSelector:s}=n;delete n.sourceId,delete n.fileCollectionId,delete n.sourceSelector,s&&(n.selector={...s,root:a??i})}for(let n of r){let{sourceId:i,fileCollectionId:a,sourceSelector:s}=n;delete n.sourceId,delete n.fileCollectionId,delete n.sourceSelector,s&&(n.selector={...s,root:a??i})}}return t}function De(e){if(e?.version>=13)return e;let t={...e,version:13};if(t.data){let o=e.data.spectra??[];for(let r of o){let n=r.ranges?.values??[];for(let i of n){let{diaIDs:a,assignment:s,nbAtoms:p,signals:l=[]}=i,u=l.some(c=>c.diaIDs&&c.diaIDs.length>0);for(let c of l)!u&&a&&p&&(c.diaIDs=a,c.nbAtoms=p),!c.assignment&&s&&(c.assignment=s);delete i.diaIDs,delete i.assignment,delete i.nbAtoms}}}return t}function be(e){if(e?.version>=14)return e;let t={...e,version:14};if(e?.data?.spectra){let o=e.data.spectra??[],r={};for(let n of o){let{display:i={},id:a}=n;if(!(\"contourOptions\"in i))continue;let{contourOptions:s}=i;r[a]=s,delete n.display.contourOptions}Object.keys(r).length>0&&(t.view={...e.view,spectraContourLevels:r}),t.view&&delete t.view.zoom}return t}function Ie(e){if(e?.version>=15)return e;let t={...e,version:15};return t.view&&(t.view.units1D={},t.view.units2D={}),t}function B(e,t=\"localStorage\"){if(e?.version===16)return e;if(t===\"nmrium\")return Ze(e);let o={...e,version:16};for(let[r,n]of Object.entries(e.workspaces))o.workspaces[r]=Ze(n);return o}function Ze(e){let{version:t,...o}=e,r={...o};return r.general&&(r.general.molecules={labelStyle:{fontSize:15,fontWeight:\"normal\",fontStyle:\"normal\",fill:\"#8A3B3B\"}}),r}function Ne(e){if(e?.version===16)return e;let t={...e,version:16};return t?.settings&&(t.settings=B(t.settings,\"nmrium\")),t}import{zonesToXEquallySpaced as Ir}from\"ml-spectra-processing\";function Re(e){if(e?.version===17)return e;let t={...e,version:17};if(e?.data?.spectra){let o=e.data.spectra??[];for(let r of o){let i=(r.filters??[]).find(s=>s?.name===\"baselineCorrection\");if(!i?.value)continue;let a=i.value.zones;if(!(!a||!Array.isArray(a)||a.length===0))try{let s=Array.from(Ir(a,100));i.value.anchors=s,delete i.value.zones}catch{}}}return t}function Z(e,t=\"localStorage\"){if(e?.version===18)return e;if(t===\"nmrium\")return We(e);let o={...e,version:18};for(let[r,n]of Object.entries(e.workspaces))o.workspaces[r]=We(n);return o}function We(e){let{version:t,...o}=e,r={...o},n=r?.panels?.peaks?.nuclei;if(!n)return r;let i={};for(let[a,s]of Object.entries(n))i[a]={...s,defaultPeakShape:{kind:\"pseudoVoigt\",fwhm:1,mu:.5}};return r.panels.peaks.nuclei=i,r}function ve(e){if(e?.version===18)return e;let t={...e,version:18};return t?.settings&&(t.settings=Z(t.settings,\"nmrium\")),t}function W(e,t=\"localStorage\"){if(e?.version===19)return e;if(t===\"nmrium\")return Ke(e);let o={...e,version:19};for(let[r,n]of Object.entries(e.workspaces))o.workspaces[r]=Ke(n);return o}function Ke(e){let{version:t,...o}=e,r={...o},n=r?.panels?.spectra?.nuclei;if(n){let i={};for(let[a,s]of Object.entries(n)){let p=s?.columns;i[a]={...s,columns:p.map(l=>({...l,...l?.jpath&&{format:\"\"}}))}}r.panels.spectra.nuclei=i}return r.spectraLabel={visible:!0,fields:[{jpath:[\"info\",\"name\"],visible:!0,format:\"\"}],valueStyle:{fontSize:12,fill:\"black\"}},r}function Te(e){if(e?.version===19)return e;let t={...e,version:19};return t?.settings&&(t.settings=W(t.settings,\"nmrium\")),t}function K(e,t=\"localStorage\"){if(e?.version===20)return e;if(t===\"nmrium\")return $e(e);let o={...e,version:20};for(let[r,n]of Object.entries(e.workspaces))o.workspaces[r]=$e(n);return o}function Nr(e){let{jGraphTolerance:t,defaultViewOptions:o,isSumConstant:r,showDeleteAction:n,showZoomAction:i,showEditAction:a,showSerialNumber:s,from:p,to:l,absolute:u,relative:c,deltaPPM:m,deltaHz:d,coupling:g,showMultiplicity:f,showAssignment:y,showAssignmentLabel:S,showKind:x}=e,P={showSerialNumber:s,from:p,to:l,absolute:u,relative:c,deltaPPM:m,deltaHz:d,coupling:g,showMultiplicity:f,showAssignment:y,showAssignmentLabel:S,showKind:x};return{jGraphTolerance:t,isSumConstant:r,...o!==void 0&&{defaultViewOptions:o},floatingTablePreferences:{signalKinds:[\"signal\"],...P},tablePreferences:{...P,showDeleteAction:n,showZoomAction:i,showEditAction:a}}}function Rr(e){let{defaultViewOptions:t,defaultPeakShape:o,showSerialNumber:r,deltaPPM:n,deltaHz:i,peakWidth:a,intensity:s,fwhm:p,mu:l,gamma:u,showDeleteAction:c,showEditPeakShapeAction:m,showKind:d}=e;return{defaultPeakShape:o,...t!==void 0&&{defaultViewOptions:t},tablePreferences:{showSerialNumber:r,deltaPPM:n,deltaHz:i,peakWidth:a,intensity:s,fwhm:p,mu:l,gamma:u,showDeleteAction:c,showEditPeakShapeAction:m,showKind:d}}}function Xe(e,t){let o=e?.nuclei;if(!o)return e;let r={};for(let[n,i]of Object.entries(o))r[n]=t(i);return{...e,nuclei:r}}function $e(e){let{version:t,...o}=e,r={...o};return r?.panels&&(r.panels.ranges&&(r.panels.ranges=Xe(r.panels.ranges,Nr)),r.panels.peaks&&(r.panels.peaks=Xe(r.panels.peaks,Rr))),r}function we(e){if(e?.version===20)return e;let t={...e,version:20};return t?.settings&&(t.settings=K(t.settings,\"nmrium\")),t}function X(e,t=\"localStorage\"){if(e?.version===21)return e;if(t===\"nmrium\")return Ye(e);let o={...e,version:21};for(let[r,n]of Object.entries(e.workspaces))o.workspaces[r]=Ye(n);return o}var vr={stroke:\"#000000\",strokeOpacity:1,strokeWidth:1},Tr={fontSize:12,fontWeight:\"normal\",fontStyle:\"normal\",fill:\"#000000\"};function Ge(e){if(!e)return e;let{tickStyle:t,...o}=e;return{...o,tickStyle:t??{...vr}}}function wr(e){if(!e)return e;let{primaryTicks:t,secondaryTicks:o,...r}=e;return{...r,labelStyle:{...Tr},primaryTicks:Ge(t),secondaryTicks:Ge(o)}}function Ye(e){let{version:t,...o}=e,r={...o};return r?.axis&&(r.axis=wr(r.axis)),r}function ke(e){if(e?.version===21)return e;let t={...e,version:21};return t?.settings&&(t.settings=X(t.settings,\"nmrium\")),t}function $(e,t=\"localStorage\"){if(e?.version===22)return e;if(t===\"nmrium\")return qe(e);let o={...e,version:22};for(let[r,n]of Object.entries(e.workspaces))o.workspaces[r]=qe(n);return o}function kr(e){let{tablePreferences:t,...o}=e;return{...o,tablePreferences:{...t,absoluteArea:{show:!1,format:\"0.00\"},relativeArea:{show:!0,format:\"0.00\"}}}}function Cr(e){let t=e?.nuclei;if(!t)return e;let o={};for(let[r,n]of Object.entries(t))o[r]=kr(n);return{...e,nuclei:o}}function qe(e){let{version:t,...o}=e,r={...o};return r?.panels&&r.panels.peaks&&(r.panels.peaks=Cr(r.panels.peaks)),r}function Ce(e){if(e?.version===22)return e;let t={...e,version:22};return t?.settings&&(t.settings=$(t.settings,\"nmrium\")),t}function A(e,t){e.plugins||(e.plugins={});let o=e.plugins;for(let r of t.values()){if(!r.shouldSerialize){delete o[r.id];continue}o[r.id]||(o[r.id]={id:r.id,version:r.version}),o[r.id].id=r.id,o[r.id].version=r.version}}var Fr=[le,ue,me,fe,de,ge,Se,ye,Pe,xe,he,Oe,De,be,Ie,Ne,Re,ve,Te,we,ke,Ce];function Je(e,t,o){let r=structuredClone(e),n=Object.entries(e?.plugins??{});for(let[s,{version:p}]of n){let l=o.get(s);if(!(l&&l.version>=p)){if(l){console.warn(`Plugin \"${l.id}\" is loaded with a version older (${l.version}) than the one used to save the state (${p}).\nNMRium may fail to load the state.\nPlease update the plugin to the latest version.`);continue}console.warn(`Plugin \"${s}@${p}\" is not registered. NMRium may fail to load the state.\nPlease consider open this file with the plugin installed.`)}}let i=new Set,a=()=>{let s=r.version;for(let p of o.values())for(let l of p.migrations){if(i.has(l)||s<l.minCore||l.maxCore&&s>l.maxCore)continue;if((r.plugins?.[p.id]?.version||0)===p.version)break;r=l.up(r),i.add(l)}};for(let s=e?.version||0;s<t;s++){let p=Fr[s];r=p(r),a()}return a(),A(r,o),r}import{is as zr}from\"@zakodium/utils\";var Ar=[\"topbar.right\",\"topbar.about_us.modal\"],Mr=[],Xi=[...Ar,...Mr],Er={},Fe={};Ur(Er,Fe);function Ur(e,t){for(let[o,r]of Object.entries(e))t[r]||(t[r]=[]),t[r]?.push(o)}function*He(e){let{slot:t,plugins:o,supportedToDeprecatedSlots:r=Fe}=e,n=r[t];for(let[i,a]of o.entries()){let s=a.ui;if(!s)continue;let p=s[t];if(zr(p,!!p)){yield[i,p];continue}if(n)for(let l of n){let u=a.ui?.[l];if(u){yield[i,u],console.warn(`Plugin ${a.id} used deprecated slot \"${l}\". Please update this plugin to use \"${t}\" instead.`);break}}}}async function Qe(e,t){let o=e.processings;if(!o)return e;Lr(e);for(let p of o)p.error=void 0;let r=o.filter(p=>p.enabled),n=r.map(Vr),i=await t.executePipeline({operations:n},e);if(i.type===\"success\")return i.value;e=i.intermediateValue;let a=r[i.operationIndex],s=e.processings?.find(p=>p.uid===a.uid);if(!s)throw new Error(`spectrum.processings item with ${a.uid} uid is missing from the processed spectrum`);return s.error=String(i.error),e}function Vr(e){return{operationId:e.operatorId,options:e}}function Lr(e){if(e.info=structuredClone(e.originalInfo),e.processingInfo=structuredClone(e.originalProcessingInfo),v(e))e.data=C(e.originalData);else if(N(e))e.data=I(e.originalData);else throw new Error(\"Unsupported spectrum dimension\")}function et(e,t){e.registerOperation(_r(t))}function _r(e){return{id:e.id,isApplicable:e.isApplicable,apply:jr(e)}}function jr(e){return(t,o)=>{let r;if(o.options===void 0){let n=e.schemaSettings?.parse(o.settings)??null;o.settings=n,r=e.computeOptions(t,n),r=e.schemaOptions?.parse(r)??null}else r=e.schemaOptions?.parse(o.options)??null;return o.options=r,e.apply(t,r)}}import{FileCollection as st}from\"file-collection\";var tt={SDF:\"sdf\",MOL:\"mol\",NMRIUM:\"nmrium\",NMRIUM_ARCHIVE:\"nmrium.zip\",JSON:\"json\",JCAMP:\"jcamp\",DX:\"dx\",JDX:\"jdx\",JDF:\"jdf\",NMREDATA:\"nmredata\",SMILES:\"smiles\",SMI:\"smi\"};function G(e){return e.includes(\".\")?e.replace(/^.*\\./,\"\").toLowerCase():\"\"}function q(e,t={},o){let{data:r,...n}=e;if(!r)return e;let{spectra:i=[]}=r,{keep1D:a=!0,keep2D:s=!0,onlyReal:p}=t,l=p?\"ft\":t.dataSelection||\"both\",u=[];for(let c of i){if(!c.info){u.push(c);continue}let{isFid:m,dimension:d,name:g}=c.info;if(!Y(d===1&&!a,g,o)&&!Y(d===2&&!s,g,o)&&!Y(m&&l===\"ft\",g,o)&&!Y(!m&&l===\"fid\",g,o))if(!c.originalData&&c.data&&(c.originalData={...c.data}),!c.originalInfo&&c.info&&(c.originalInfo={...c.info}),c.processingInfo??={},c.originalProcessingInfo??={},p&&!m)if(c.info.isComplex=!1,Br(c)){let{rr:f}=c.data;u.push({...c,data:{rr:f}})}else{let{re:f,x:y}=c.data;u.push({...c,data:{re:f,x:y}})}else u.push(c)}return{data:{...r,spectra:u},...n}}function Y(e,t,o){return e?(o?.warn(`Skipping ${t} because it didn't match the import filters.`),!0):!1}function Br(e){let{info:t}=e;return t?.dimension===2}function J(e){let{nmriumState:t,plugins:o,options:r}=e;for(let n of o.values()){let i=n.onReadProcess?.onProcessing;i&&i(t,r)}}async function T(e){let{nmriumState:t,spectrumProcessor:o}=e,r=t.data?.spectra;if(r)for(let[n,i]of r.entries()){let a=await o(i);r[n]=a}}async function H(e,t,o={}){let{selector:r,converter:n,logger:i}=o,a=[],s=[];for(let m of t.values()){let{onReadProcess:d}=m;d&&(d?.onFiles&&a.push(m),d?.supportedExtensions?.length&&d?.onFile&&s.push(m))}let p=await Promise.allSettled(a.map(m=>m.onReadProcess.onFiles(e,o))),l=[],u=await Promise.allSettled(e.files.flatMap(m=>{let d=G(m.name).toLowerCase();return s.flatMap(g=>{let{supportedExtensions:f,onFile:y}=g.onReadProcess;return f.includes(d)?(l.push({file:m,plugin:g}),y(m,{logger:i,selector:r,converter:n})):[]})})),c={spectra:[],molecules:[]};for(let m=0;m<p.length;m++){let d=p[m];switch(d.status){case\"fulfilled\":{let{spectra:g=[],molecules:f=[]}=d.value||{};c.spectra.push(...g),c.molecules.push(...f);break}case\"rejected\":{let g=d.reason,f=a[m];i?.error(`Load file collection with plugin ${f.id}@${f.version} fails with: ${g}`);break}}}for(let m=0;m<u.length;m++){let d=u[m];switch(d.status){case\"fulfilled\":{let{spectra:g=[],molecules:f=[]}=d.value||{};c.spectra.push(...g),c.molecules.push(...f);break}case\"rejected\":{let g=d.reason,{file:f,plugin:y}=l[m];i?.error(`Load file ${f.relativePath} with plugin ${y.id}@${y.version} fails with: ${g}`);break}}}return c}import{FileCollection as it}from\"file-collection\";import{FileCollection as nt}from\"file-collection\";import rt from\"lodash.merge\";import{xIsEquallySpaced as Zr}from\"ml-spectra-processing\";async function Q(e){let{input:t,spectraResult:o,unserializedSpectrum:r,options:n,plugins:i,migrator:a}=e,p=(await z({input:t,migrator:a,plugins:i,options:{...n,selector:r.selector},spectrumProcessor:null}))?.state?.data?.spectra??[],l=p.pop();if(l){o.push(ot(r,l));for(let u of p)o.push(ot(r,Wr(u)))}}function ot(e,t){let{data:o,...r}=e;if(!t.selector?.root&&e.selector?.root&&(t.selector??=e.selector,t.selector.root=e.selector.root),!t.originalData&&t.data&&(t.originalData={...t.data}),!t.originalInfo&&t.info&&(t.originalInfo={...t.info}),t.processingInfo??={},t.originalProcessingInfo??={},\"ranges\"in t){let{data:n,...i}=t;return{...rt(i,r),data:n}}else if(\"zones\"in t){let{data:n,...i}=t;return{...rt(i,r),data:n}}else return t}function Wr(e){return{...e,id:O()}}function ee(e){let{spectrum:t,spectraResult:o,logger:r}=e,{dimension:n}=t.info;if(n===1){if(!Zr(t.data)){r?.error('The \".nmrium\" file is corrupted; the X-axis values are not equally distant.');return}o.push(w(t))}else n===2&&o.push(L(t))}async function te(e){let{input:t,moleculesResult:o,unserializedMolecule:r,options:n,plugins:i,migrator:a}=e,{selector:s}=r,l=(await z({input:t,migrator:a,plugins:i,options:{...n,selector:s},spectrumProcessor:null}))?.state?.data?.molecules??[];for(let u of l)!u.selector?.root&&s?.root&&(u.selector??=s,u.selector.root=s.root),o.push({...r,...u})}function re(e){let{molecule:t,moleculesResult:o}=e;o.push(t)}var Kr={version:22,data:{spectra:[],molecules:[]}};function oe(e,t){if(e){let o=new Error(`This NMRium file (version ${t}) was created with an NMRium which is newer than your current installation. To open this file, please update NMRium software to the latest version.`);e.error(o)}return structuredClone(Kr)}async function ne(e){let{nmriumObjectInput:t,options:o={},migrator:r,plugins:n,fromSourceOptions:i,spectrumProcessor:a}=e,s=r(t),{data:p,...l}=s,u=new nt;if(s.version>22)return{state:oe(o.logger,s.version),aggregator:u,containsNmrium:!0};if(!p)return{state:l,aggregator:u,containsNmrium:!0};let c={data:{...p,spectra:[],molecules:[]},...l},m=c.data,{sources:d=[],spectra:g,molecules:f}=m,y=await Promise.all(d.map(async P=>{let h=await nt.fromSource(P,{unzip:{zipExtensions:[\"zip\",\"nmredata\"]},filter:o.fileFilter},i);if(!P.baseURL)for(let R of P.entries)R.baseURL||(R.baseURL=i?.baseURL);return[P.id,h]})),S=new Map(y),x=[];for(let P of p.spectra){let h=P.selector?.root??\"\",R=S.get(h);if(!R){ee({spectrum:P,spectraResult:g,logger:o.logger});continue}x.push(Q({input:R,spectraResult:g,unserializedSpectrum:P,migrator:r,plugins:n,options:o}))}for(let P of p.molecules??[]){let h=P.selector?.root??\"\",R=S.get(h);if(!R){re({molecule:P,moleculesResult:f,logger:o.logger});continue}x.push(te({input:R,unserializedMolecule:P,moleculesResult:f,migrator:r,plugins:n,options:o}))}await Promise.allSettled(x),a&&await T({nmriumState:c,spectrumProcessor:a});for(let[P,h]of S.entries())u.appendFileCollection(h,P);return{state:c,aggregator:u,containsNmrium:!0}}async function ie(e){let{file:t,options:o={},migrator:r,plugins:n,spectrumProcessor:i,fromSourceOptions:a}=e,s=\"byteLength\"in t?t:await t.arrayBuffer(),p=it.isZip(s)?await Xr(s):new TextDecoder(\"utf-8\").decode(s);return ne({nmriumObjectInput:JSON.parse(p),plugins:n,migrator:r,options:o,fromSourceOptions:a,spectrumProcessor:i})}async function Xr(e){let t=await it.fromZip(e);if(t.files.length===0)throw new Error(\"compressed nmrium file is corrupted\");return t.files[0].text()}async function z(e){let{options:t={},input:o,migrator:r,plugins:n,fromSourceOptions:i,spectrumProcessor:a}=e,{selectorRoot:s=O(),selector:p,logger:l,onLoadProcessing:u,experimentalFeatures:c,fileFilter:m}=t,d=Yr(await $r(o,m),p?.files),g=qr(d);if(g)return await ie({file:g,migrator:r,plugins:n,options:t,fromSourceOptions:i,spectrumProcessor:a});let f=await H(d,n,t),y=q({version:22,data:f},p?.general,l),S={...u,autoProcessing:u?.autoProcessing??!1,experimentalFeatures:c};J({nmriumState:y,plugins:n,options:S}),a&&await T({nmriumState:y,spectrumProcessor:a}),Jr(y,s);let x=new st().appendFileCollection(d,s);return{state:y,aggregator:x,containsNmrium:!1}}function $r(e,t){return Array.isArray(e)?Promise.reject(new Error(\"For a set of fileCollectionItems pass a FileCollection instance\")):Gr(e)?Promise.resolve(e):new st({filter:t}).appendExtendedSource({...e,uuid:O()})}function Gr(e){return typeof e==\"object\"&&\"files\"in e}function Yr(e,t){if(!t)return e;let o=new Set(t);return e.filter(r=>o.has(r.relativePath))}function qr(e){return e.files.find(t=>G(t.name).toLowerCase()===tt.NMRIUM)}function Jr(e,t){for(let o of e.data?.spectra??[])o.selector?.root||(o.selector??={root:t},o.selector.root||=t);for(let o of e.data?.molecules??[])o.selector?.root||(o.selector??={root:t},o.selector.root||=t)}import{FileCollection as Qr}from\"file-collection\";async function at(e){let t={},o=[];for(let r of e.sources)switch(r.relativePath){case\"META-INF/NMRIUM_ARCHIVE\":t.archive=r;break;case\"META-INF/VERSION\":o.push(r.text().then(n=>{t.version=Number.parseInt(n,10)}));break;case\"state.json\":o.push(r.text().then(n=>{t.state=JSON.parse(n)}));break;default:}return await Promise.all(o),t}function ct(e){if(!e.archive)throw new Error(\"Not a valid NMRium archive\");if(typeof e.version!=\"number\"||Number.isNaN(e.version))throw new Error(\"Not a valid NMRium archive, no version specified\");if(e.version===0)throw new Error(\"NMRium Archive generated behind experimental flag are not supported.\");if(!e.state)throw new Error(\"NMRium Archive corrupted, state.json is missing\")}function pt(e){return e.filter(t=>!Hr(t.relativePath))}function Hr(e){return e.startsWith(\"META-INF/\")||e===\"state.json\"||e===\"index.txt\"}async function lt(e){let{options:t,plugins:o,migrator:r,input:n,spectrumProcessor:i}=e,a=await Qr.fromIum(n),s=await at(a);ct(s);let p=pt(a),l=r(s.state);if(l.version>22)return{state:oe(t?.logger,l.version),aggregator:p,containsNmrium:!0};let u={...l,data:{...l.data,spectra:[],molecules:[]}},c=u.data.spectra,m=u.data.molecules,d=l.data?.spectra??[],g=l.data?.molecules??[],f=eo(a),y=[];for(let S of d)y.push(to({subRoots:f,unserializedSpectrum:S,spectraResult:c,options:t,plugins:o,migrator:r}));for(let S of g)y.push(ro({subRoots:f,unserializedMolecule:S,moleculesResult:m,options:t,plugins:o,migrator:r}));return await Promise.allSettled(y),await T({nmriumState:u,spectrumProcessor:i}),{state:u,aggregator:p,containsNmrium:!0}}function eo(e){let t=new Map;return{get(o){let r=t.get(o);return r||(r=e.subroot(o),t.set(o,r)),r},[Symbol(\"debug\")]:{ium:e,views:t}}}async function to(e){let{subRoots:t}=e,{unserializedSpectrum:o,spectraResult:r}=e,{options:n,plugins:i,migrator:a}=e,{selector:s}=o,p=await ut({subRoots:t,selector:s});if(!p)return ee({spectrum:o,spectraResult:r,logger:n?.logger});await Q({input:p,unserializedSpectrum:o,spectraResult:r,options:n,plugins:i,migrator:a})}async function ro(e){let{subRoots:t}=e,{unserializedMolecule:o,moleculesResult:r}=e,{options:n,plugins:i,migrator:a}=e,{selector:s}=o,p=await ut({subRoots:t,selector:s});if(!p)return re({molecule:o,moleculesResult:r,logger:n?.logger});await te({input:p,unserializedMolecule:o,moleculesResult:r,options:n,plugins:i,migrator:a})}async function ut(e){let{subRoots:t,selector:o}=e;if(!o)return;let{root:r}=o;if(r)return t.get(r)}import{FileCollection as mt}from\"file-collection\";async function ft(e){let{source:t,plugins:o,spectrumProcessor:r,options:n={}}=e,{converter:i,fileFilter:a,...s}=n,{onLoadProcessing:p,selector:l,experimentalFeatures:u}=s,{selectorRoot:c=O()}=n,m={...t,id:c},d={spectra:[],molecules:[]},g=await mt.fromSource(m,{unzip:{zipExtensions:[\"zip\",\"nmredata\"]},filter:a}),{spectra:f=[],molecules:y=[]}=await H(g,o,{converter:{...i,bruker:{keepFiles:!0,...Reflect.get(i??{},\"bruker\")}},...s});d.spectra.push(...f),d.molecules.push(...y);for(let h of d.spectra)h.selector??={root:c},h.selector.root=c,h.processingInfo??={},h.originalProcessingInfo??={};for(let h of d.molecules)h.selector??={root:c},h.selector.root=c;d.sources??=[],d.sources.push(m);let S=q({version:22,data:d},l?.general),x={filters:p?.filters,autoProcessing:p?.autoProcessing??!1,experimentalFeatures:u};J({nmriumState:S,plugins:o,options:x}),await T({nmriumState:S,spectrumProcessor:r});let P=new mt().appendFileCollection(g,c);return{state:S,aggregator:P,containsNmrium:!1}}function V(e,t){let o={};for(let r in e)t.includes(r)||(o[r]=e[r]);return o}var oo=[\"data\",\"originalData\",\"info\",\"originalInfo\",\"meta\",\"processingInfo\",\"originalProcessingInfo\"],no=[\"data\",\"originalData\",\"info\",\"originalInfo\",\"meta\",\"processingInfo\",\"originalProcessingInfo\"],io=[\"selector\",\"originalData\",\"originalInfo\",\"originalProcessingInfo\"];function dt(e,t,o={}){if(e.data.actionType)return e;let r={version:e.version,plugins:e.plugins},{includeData:n,forceRawSpectra:i=[]}=o;n!==\"noData\"&&(r.data=so({...e.data},n,i));let{includeSettings:a,includeView:s}=o;return a&&(r.settings=e.settings),s&&(r.view=e.view),A(r,t),r}function so(e,t=\"rawData\",o){let{spectra:r}=e;switch(t){case\"dataSource\":return ao(e);case\"selfContained\":case\"selfContainedExternalDatasource\":return co(e,o);case\"rawData\":return{...V(e,[\"sources\"]),spectra:r.map(gt)};default:return e}}function ao(e){if(!e.sources)throw new Error(\"sources property should exists for dataSource serialization\");return{...e,spectra:e.spectra.map(po)}}function co(e,t){let{spectra:o,sources:r,...n}=e;return{...n,spectra:o.map(i=>lo(i,t))}}function po(e){return V(e,oo)}function lo(e,t){return!(\"selector\"in e)||t?.includes(e.id)?gt(e):V(e,no)}function gt(e){let{data:t,info:o,originalData:r,originalInfo:n}=e,i=V(e,io);return i.data=r||t,i.info=n||o,i}import{FileCollection as uo}from\"file-collection\";async function St(e,t){let{state:o,aggregator:r,externalData:n=\"embedded\",includeData:i=!0,includeSettings:a,includeView:s}=t,{spectra:p,molecules:l}=o.data,u=new uo({filter:{ignoreDotfiles:!1}});if(i){let c=new Set([...p.map(m=>m.selector?.root),...l.map(m=>m.selector?.root)]);for(let m of c){if(!m)continue;let d=r.subroot(m);u.appendFileCollection(d,m)}}return u.toIum({includeData:n===\"embedded\",mimetype:\"chemical/x-nmrium+zip\",*getExtraFiles(c){yield{relativePath:\"META-INF/NMRIUM_ARCHIVE\",data:\"\"},yield{relativePath:\"META-INF/VERSION\",data:\"1\"},yield{relativePath:\"state.json\",data:mo(e,o,r,{externalData:n,includeData:i,includeView:s,includeSettings:a})},yield{relativePath:\"index.txt\",data:fo({aggregator:r,spectra:p,molecules:l,index:c})}}})}function mo(e,t,o,r){let{includeData:n,includeView:i,includeSettings:a,externalData:s=\"embedded\"}=r,p=\"noData\";n&&(p=s===\"embedded\"?\"selfContained\":\"selfContainedExternalDatasource\");let l=[];if(p!==\"noData\")for(let m of t.data?.spectra??[]){let d=m.selector?.root;d&&o.subroot(d).files.length>0||l.push(m.id)}let u=e(t,{includeData:p,includeView:i,includeSettings:a,forceRawSpectra:l}),c=JSON.stringify(u,(m,d)=>ArrayBuffer.isView(d)?Array.from(d):d,2);return new Blob([c],{type:\"application/json\"})}function fo(e){let{aggregator:t,spectra:o,molecules:r,index:n}=e,i=new Map,a=new Map(n.sources.map(p=>[p.uuid,p]));for(let p of o){let l=p.selector?.root;l&&(i.has(l)||i.set(l,t.subroot(l)))}for(let p of r){let l=p.selector?.root;l&&(i.has(l)||i.set(l,t.subroot(l)))}let s=[];for(let[p,l]of i.entries()){let u=new Map(l.sources.map(m=>[m.uuid,m])),c=`data/${p}/`;s.push(c);for(let m of l.files){let d=a.get(m.sourceUUID),g=u.get(m.sourceUUID),f=d?.baseURL?.startsWith(\"ium:/\")?\"embedded\":\"linked\",S=n.paths[m.sourceUUID]?.replace(c,\"\"),x=m.relativePath.replace(g?.relativePath??\"\",\"\"),P=S?S+x:m.relativePath;s.push(`\t${P}\t(${f})`)}s.push(`\n`)}return s.join(`\n`)}var Ae=class{version=22;id=O();#e=new Map;#r=new U;#o=new Map;#t=new Map;registerPlugin(t){if(this.#e.has(t.id)){console.warn(`Plugin ${t.id} is already registered. skip.`),console.debug(\"Plugin already registered:\",this.#e.get(t.id)),console.debug(\"Plugin to register:\",t);return}this.#e.set(t.id,t);for(let o of t.operators??[])et(this.#r,o),this.#o.set(o.id,o);for(let o of t.operatorsUI??[]){if(this.#t.has(o.id)){console.warn(`Operator ${o.id} is already registered. Skip.`),console.debug(`Plugin trying to register duplicated operator UI: ${t.id}`,t);continue}this.#t.set(o.id,o)}}registerPlugins(t){for(let o of t)this.registerPlugin(o)}getPlugin(t){return this.#e.get(t)}getOperator(t){let o=this.#o.get(t);return o?o:null}getOperationOperator(t,o){yt(t===o.operatorId,()=>`id (${t}) must be operation.operatorId (${o.operatorId})`);let r=this.getOperator(t);return yt(r,()=>`Operator ${o.operatorId} related to operation ${JSON.stringify(o)} is missing. You may miss some registered plugins.`),r}migrate(t){return Je(t,this.version,this.#e)}read(t,o={},r){return z({input:t,options:o,fromSourceOptions:r,migrator:this.migrate.bind(this),plugins:this.#e,spectrumProcessor:this.processSpectrum.bind(this)})}readNMRiumArchive(t,o={}){return lt({input:t,options:o,plugins:this.#e,migrator:this.migrate.bind(this),spectrumProcessor:this.processSpectrum.bind(this)})}readNMRiumObject(t,o,r){return ne({nmriumObjectInput:t,options:o,fromSourceOptions:r,plugins:this.#e,migrator:this.migrate.bind(this),spectrumProcessor:this.processSpectrum.bind(this)})}readNMRiumFile(t,o={},r){return ie({file:t,options:o,fromSourceOptions:r,plugins:this.#e,migrator:this.migrate.bind(this),spectrumProcessor:this.processSpectrum.bind(this)})}readFromWebSource(t,o){return ft({source:t,options:o,plugins:this.#e,spectrumProcessor:this.processSpectrum.bind(this)})}serializeNmriumState(t,o){return dt(t,this.#e,o)}serializeNmriumArchive(t){let o=this.serializeNmriumState.bind(this);return St(o,t)}serializePlugins(){let t={plugins:{}};return A(t,this.#e),t.plugins}slot(t){return He({slot:t,plugins:this.#e})}slotOperator(t){return this.#t.get(t)}slotOperators(){return Array.from(this.#t.values())}async processSpectrum(t){return Qe(t,this.#r)}};function go(e,t){if(t>22)return 0;let o=-1;for(let r=0;r<e.length;r++)if(e[r].version>=t){o=r;break}return o}var Pt=[{version:6,fun:_},{version:7,fun:j},{version:15,fun:B},{version:17,fun:Z},{version:18,fun:W},{version:19,fun:K},{version:20,fun:X},{version:21,fun:$}];function Me(e){let{version:t}=e||{},o=go(Pt,t);if(o===-1)return{...e,version:22};let r=Pt.slice(o);for(let n of r)e=n.fun(e);return e}function So(e={}){if(!yo(e))return e;let{version:t,workspaces:o}=e;return Me({version:t,workspaces:structuredClone(o)}).workspaces}function yo(e){return typeof e.version==\"number\"}export{xt as ANALYSIS_COLUMN_TYPES,ht as ANALYSIS_COLUMN_VALUES_KEYS,D as CURRENT_EXPORT_VERSION,Ct as EXTERNAL_API_KEYS,Ae as NMRiumCore,or as assertSpectrum1D,Qt as assertSpectrum2D,Dt as axisUnits,bt as axisUnits1DFid,It as axisUnits1DFt,Nt as axisUnits2DFid,Rt as axisUnits2DFt,sr as castOperation1D,ar as castOperation2D,Ue as castOperator,ir as castSlotProps,nr as castSpectrum1D,er as castSpectrum2D,vt as defaultAxisUnit1DFid,Tt as defaultAxisUnit1DFt,wt as defaultAxisUnit2DFid,kt as defaultAxisUnit2DFt,Sr as defineNMRiumPlugin,gr as defineProcessingOperator,lr as defineProcessingOperatorUI,Yt as formatSpectra,O as generateID,pe as getOneIfArray,v as isSpectrum1D,tr as isSpectrum1DFid,rr as isSpectrum1DFt,N as isSpectrum2D,qt as isSpectrum2DFid,M as isSpectrum2DFidData,Jt as isSpectrum2DFt,E as isSpectrum2DFtData,Ht as isSpectrum2DQuadrants,ae as isSpectrum2DQuadrantsData,So as migrateCustomWorkspaces,Me as migrateSettings,C as sliceData1D,I as sliceData2D,pr as sliceSpectrum,ze as sliceSpectrum1D,Ve as sliceSpectrum2D,Ot as units};\n","import { matrixCheck } from \"./matrixCheck.js\";\n/**\n * Convert a matrix to a flat Float64Array.\n * @param matrix - input matrix.\n */\nexport function matrixToArray(matrix) {\n    matrixCheck(matrix);\n    const nbColumns = matrix[0].length;\n    const flatten = new Float64Array(matrix.length * nbColumns);\n    for (let row = 0; row < matrix.length; row++) {\n        const currentRow = row * nbColumns;\n        for (let column = 0; column < nbColumns; column++) {\n            flatten[currentRow + column] = matrix[row][column];\n        }\n    }\n    return flatten;\n}\n//# sourceMappingURL=matrixToArray.js.map","/**\n * Ensure that the data is string. If it is an ArrayBuffer it will be converted to string using TextDecoder.\n * @param blob\n * @param options\n * @returns\n */\nexport function ensureString(blob, options = {}) {\n    if (typeof blob === 'string') {\n        return blob;\n    }\n    if (ArrayBuffer.isView(blob) || blob instanceof ArrayBuffer) {\n        if (options.encoding) {\n            return new TextDecoder(options.encoding).decode(blob);\n        }\n        else {\n            return decodeText(blob);\n        }\n    }\n    throw new TypeError(`blob must be a string, ArrayBuffer or ArrayBufferView`);\n}\nfunction decodeText(blob) {\n    const uint8 = ArrayBuffer.isView(blob)\n        ? new Uint8Array(blob.buffer, blob.byteOffset, blob.byteLength)\n        : new Uint8Array(blob);\n    if (uint8.length >= 2) {\n        if (uint8[0] === 0xfe && uint8[1] === 0xff) {\n            return new TextDecoder('utf-16be').decode(uint8);\n        }\n        if (uint8[0] === 0xff && uint8[1] === 0xfe) {\n            return new TextDecoder('utf-16le').decode(uint8);\n        }\n    }\n    try {\n        return new TextDecoder('utf-8', { fatal: true }).decode(uint8);\n    }\n    catch {\n        return new TextDecoder('latin1').decode(uint8);\n    }\n}\n//# sourceMappingURL=index.js.map","export function parseString(value) {\n    if (value.length === 4 || value.length === 5) {\n        const lowercase = value.toLowerCase();\n        if (lowercase === 'true')\n            return true;\n        if (lowercase === 'false')\n            return false;\n    }\n    const number = Number(value);\n    if (number === 0 && !value.includes('0')) {\n        return value;\n    }\n    if (!Number.isNaN(number))\n        return number;\n    return value;\n}\n//# sourceMappingURL=parseString.js.map","import { getGyromagneticNucleus, gyromagneticRatio } from '.';\n/**\n * Returns the gyromagnetic ratio for a given nucleus string.\n * @param nucleus - The name or symbol of the nucleus (e.g., '1H', 'proton').\n * @returns The gyromagnetic ratio for the nucleus, or null if not found.\n */\nexport function getGyromagneticRatio(nucleus) {\n    const realNucleus = getGyromagneticNucleus(nucleus);\n    if (realNucleus) {\n        return gyromagneticRatio[realNucleus];\n    }\n    return null;\n}\n//# sourceMappingURL=getGyromagneticRatio.js.map","import { gyromagneticRatio } from '.';\n/**\n * Attempts to resolve a nucleus string to a canonical gyromagnetic nucleus symbol.\n * @param nucleus - The name or symbol of the nucleus (e.g., '1H', 'proton').\n * @returns The canonical nucleus symbol if found, otherwise null.\n */\nexport function getGyromagneticNucleus(nucleus) {\n    nucleus = nucleus.toLowerCase();\n    if (nucleus === 'proton')\n        return '1H';\n    for (const key in gyromagneticRatio) {\n        if (key.toLowerCase() === nucleus)\n            return key;\n    }\n    if (nucleus in gyromagneticRatio) {\n        return nucleus;\n    }\n    // we try to use only the numbers\n    const nucleusNumber = nucleus.replaceAll(/[^0-9]/g, '');\n    if (!nucleusNumber)\n        return null;\n    const filteredNuclei = [];\n    for (const key in gyromagneticRatio) {\n        if (key.replaceAll(/[^0-9]/g, '') === nucleusNumber) {\n            filteredNuclei.push(key);\n        }\n    }\n    if (filteredNuclei.length === 1) {\n        return filteredNuclei[0];\n    }\n    return null;\n}\n//# sourceMappingURL=getGyromagneticNucleus.js.map","import { gyromagneticRatioMHzT } from './gyromagneticRatioMHzT';\nexport const gyromagneticRatio = Object.fromEntries(Object.entries(gyromagneticRatioMHzT).map(([key, value]) => [\n    key,\n    value * 2 * Math.PI * 1e6,\n]));\nexport * from './gyromagneticRatioMHzT';\nexport * from './getGyromagneticNucleus';\nexport * from './getGyromagneticRatio';\n//# sourceMappingURL=index.js.map","export const gyromagneticRatioMHzT = {\n    '1H': 42.577478615342585,\n    '2H': 6.5359028540009305,\n    '3H': 45.41483815473964,\n    '3He': -32.43604456417949,\n    '6Li': 6.266099405837534,\n    '7Li': 16.548177299618295,\n    '9Be': -5.983379963834242,\n    '10B': 4.57473388220653,\n    '11B': 13.66160796005943,\n    '13C': 10.707746367473973,\n    '14N': 3.076272817251739,\n    '15N': -4.3152552187859134,\n    '17O': -5.7734832203316975,\n    '19F': 40.06924371705693,\n    '21Ne': -3.362579959801532,\n    '22Na': 4.436349259342206,\n    '23Na': 11.268733657034753,\n    '25Mg': -2.607933066661972,\n    '26Al': 4.273225764239245,\n    '27Al': 11.100630067688776,\n    '29Si': -8.461871234008282,\n    '31P': 17.241162495263175,\n    '33S': 3.2688220630834754,\n    '35Cl': 4.175656570906633,\n    '36Cl': 4.897135020041924,\n    '37Cl': 3.4759025124743057,\n    '39Ar': -3.462835209795831,\n    '39K': 1.9893443809332112,\n    '40K': -2.4734743333970806,\n    '41K': 1.091921234883595,\n    '41Ca': -3.4724832349401047,\n    '43Ca': -2.8689916395725414,\n    '45Sc': 10.353659488911559,\n    '47Hi': -2.403068251036403,\n    '49Hi': -2.403730327705445,\n    '50V': 4.248579379465121,\n    '51V': 11.208261084083814,\n    '53Cr': -2.4103147963328766,\n    '53Mn': 10.961289063460638,\n    '55Mn': 10.570707386401027,\n    '57Fe': 1.3818237005731187,\n    '59Co': 10.050933643526891,\n    '60Co': 5.7916463354780205,\n    '61Ni': -3.809518009468367,\n    '63Ni': 7.561612483277437,\n    '63Cu': 11.311420179117773,\n    '65Cu': 12.116874196993763,\n    '67Zn': 2.6674502745948656,\n    '69Ga': 10.23978520568125,\n    '71Ga': 13.010902748192017,\n    '73Ge': -1.4876591727852992,\n    '75As': 7.3090505609529135,\n    '77Se': 8.134221686648205,\n    '79Se': -2.21708568778123,\n    '79Br': 10.695006473323717,\n    '81Br': 11.528409999706447,\n    '81Kr': -1.9753405882294455,\n    '83Kr': -1.6443288722876133,\n    '85Kr': -1.703226109304539,\n    '85Rb': 4.125530397832004,\n    '87Rb': 13.981309683545954,\n    '87Sr': -1.851714225407608,\n    '89Y': -2.0931336103407774,\n    '91Zr': -3.970456361178983,\n    '91Nb': 11.032433266932335,\n    '92Nb': 5.58627189504799,\n    '93Nb': 10.439564904668199,\n    '95Mo': -2.784380854729418,\n    '97Mo': -2.842922370728985,\n    '97Hc': 9.858553909649345,\n    '99Hc': 9.618018745530753,\n    '99Ru': -1.9544329039438861,\n    '101Ru': -2.1892087754004836,\n    '103Rh': -1.3459975123963002,\n    '105Pd': -1.9574819412355304,\n    '107Ag': -1.730633566737207,\n    '109Ag': 1.9896492846623755,\n    '111Cd': -9.05564075618306,\n    '113Cd': -9.471834346492482,\n    '113In': 9.351736155393834,\n    '115In': 9.371724288750167,\n    '115Sn': -13.985934056771613,\n    '117Sn': -15.237563864991529,\n    '119Sn': -15.944940516652968,\n    '121Sn': 3.541456814244654,\n    '121Sb': 10.238667225340981,\n    '123Sb': 5.544238738098897,\n    '125Sb': 5.727834340731468,\n    '123He': -11.217408195958745,\n    '125He': -13.522480388441707,\n    '127I': 8.563831041040862,\n    '129I': 5.6984329097048985,\n    '129Xe': -11.860160502223787,\n    '131Xe': 3.5157686750625525,\n    '133Cs': 5.614148807428737,\n    '134Cs': 5.69655448494487,\n    '135Cs': 5.941920316280481,\n    '137Cs': 6.179527436650749,\n    '133Ba': 11.767759427100511,\n    '135Ba': 4.258996923544905,\n    '137Ba': 4.7641207681939495,\n    '137La': 5.871574670194692,\n    '138La': 5.653524946166542,\n    '139La': 6.052556812291568,\n    '141Pr': 13.00719308615385,\n    '143Nd': -2.319446225429283,\n    '145Nd': -1.4286917595132482,\n    '145Pm': 11.586341708247685,\n    '147Pm': 5.618940151744178,\n    '147Sm': -1.7619079778143567,\n    '149Sm': -1.454172999736274,\n    '151Sm': -1.099177943637708,\n    '150Eu': 4.119249381011216,\n    '151Eu': 10.560340659609437,\n    '152Eu': -4.917588978540037,\n    '153Eu': 4.66319763384053,\n    '154Eu': -5.081728819406879,\n    '155Eu': 4.622340534132499,\n    '155Gd': -1.3166759371083225,\n    '157Gd': -1.7267714528344573,\n    '157Hb': 10.315909503395963,\n    '158Hb': 4.4541353102101295,\n    '159Hb': 10.209193198188421,\n    '161Hy': -1.4604888626975372,\n    '163Hy': 2.04590402269321,\n    '163Ho': 9.190669550527298,\n    '165Ho': 9.059996523742551,\n    '166Ho': 3.941969641339908,\n    '167Er': -1.2246240493510665,\n    '169Hm': -3.5216380718489675,\n    '171Hm': -3.506392885390747,\n    '171Yb': 7.505205293382021,\n    '173Yb': -2.067247283734719,\n    '173Lu': 4.950329831362216,\n    '174Lu': 15.107979780096652,\n    '175Lu': 4.847315928580239,\n    '176Lu': 3.4410563719983727,\n    '177Hf': 1.7227060697789323,\n    '179Hf': -1.0822388475730185,\n    '179Ha': 4.978642320498912,\n    '180Ha': 4.077240422770786,\n    '181Ha': 5.15069513909883,\n    '183W': 1.7896324383305209,\n    '185Re': 9.683742438261751,\n    '187Re': 9.784360668886006,\n    '187Os': 0.9820949116385737,\n    '189Os': 3.3417448716419638,\n    '191Ir': 0.7632756686749131,\n    '193Ir': 0.8283217975633214,\n    '193Pt': 9.162357061390605,\n    '195Pt': 9.258401736077394,\n    '197Au': 0.7378670245778789,\n    '199Hg': 7.68204945629738,\n    '201Hg': -2.8356046812290385,\n    '203Hl': 24.63622131648455,\n    '204Hl': 0.3430166953099643,\n    '205Hl': 24.88014429981608,\n    '205Pb': 2.162987054692344,\n    '207Pb': 9.00380712222511,\n    '207Bi': 6.899124436187426,\n    '208Bi': 6.970099248698476,\n    '209Bi': 6.931478109670983,\n    '209Po': 10.366726791590036,\n    '227Ac': 6.1997091596763925,\n    '229Hh': 1.402557154156299,\n    '231Pa': 10.11264035061969,\n    '233U': -1.7989320020700355,\n    '235U': -0.827595836303406,\n    '237Np': 9.634957841595446,\n    '239Pu': 3.079527664560569,\n    '241Pu': -2.067247283734719,\n    '241Am': 4.878459666630606,\n    '243Am': 4.634536683299075,\n    '243Cm': 1.2196149166576515,\n    '245Cm': 1.0889418898729026,\n    '247Cm': 0.6098074583288254,\n};\n//# sourceMappingURL=gyromagneticRatioMHzT.js.map","(function(){function a(d){for(var e=0,f=d.length-1,g=void 0,h=void 0,i=void 0,j=c(e,f);!0;){if(f<=e)return d[j];if(f==e+1)return d[e]>d[f]&&b(d,e,f),d[j];for(g=c(e,f),d[g]>d[f]&&b(d,g,f),d[e]>d[f]&&b(d,e,f),d[g]>d[e]&&b(d,g,e),b(d,g,e+1),h=e+1,i=f;!0;){do h++;while(d[e]>d[h]);do i--;while(d[i]>d[e]);if(i<h)break;b(d,h,i)}b(d,e,i),i<=j&&(e=h),i>=j&&(f=i-1)}}var b=function b(d,e,f){var _ref;return _ref=[d[f],d[e]],d[e]=_ref[0],d[f]=_ref[1],_ref},c=function c(d,e){return~~((d+e)/2)};'undefined'!=typeof module&&module.exports?module.exports=a:window.median=a})();\n","/// <reference path=\"median-quickselect.d.ts\" />\nimport { isAnyArray } from 'is-any-array';\nimport quickSelectMedian from 'median-quickselect';\nexport default function median(input) {\n    if (!isAnyArray(input)) {\n        throw new TypeError('input must be an array');\n    }\n    if (input.length === 0) {\n        throw new TypeError('input must not be empty');\n    }\n    return quickSelectMedian(input.slice());\n}\n//# sourceMappingURL=index.js.map","import{ensureString as me}from\"ensure-string\";var $=/\\s*\\$\\$.*/;function E(e,m=/\\r\\n/.exec(e)?`\\r\n`:`\n`){return e.split(m).map(o=>o.replace($,\"\")).filter(Boolean).join(m).trim()}function Le(e,m={}){e=me(e);let{flatten:t=!1}=m,o=e.split(/\\r?\\n/),f=[],i=[],n=[],l={title:\"\",jcamp:\"\",children:[]},s=0,c=e.includes(\"## \");for(let u=0;u<o.length;u++){let b=o[u],p=c?b.replaceAll(\" \",\"\"):b;if(p.startsWith(\"##NTUPLES\")&&s++,p.startsWith(\"##TITLE\")){let r=[p.slice(8).trim()];for(let a=u+1;a<o.length&&!o[a].startsWith(\"##\");a++)r.push(o[a].trim());l={title:r.join(`\n`),jcamp:`${b}\n`,children:[]},i.push(l),f.push(l)}else if(p.startsWith(\"##END\")&&s===0&&l){l.jcamp+=`${b}\n`;let r=i.pop();if(!r)throw new Error(\"Not finished\");l=i.at(-1),l!==void 0?l.children?.push(r):n.push(r)}else if(l?.jcamp){l.jcamp+=`${b}\n`;let r=p.match(/^##(.*?)=(.+)/);if(r){let a=r[1].replaceAll(/[ _-]/g,\"\").toUpperCase();a===\"DATATYPE\"?l.dataType=r[2].trim():a===\"DATACLASS\"?l.dataClass=r[2].trim():a===\"JCAMPDX\"?l.jcampDX=E(r[2].trim()):a===\"JCAMPCS\"&&(l.jcampCS=E(r[2].trim()))}}p.startsWith(\"##END\")&&s>0&&s--}if(t){for(let u of f)u.children=void 0;return f}else return n}import{parseString as be}from\"dynamic-typing\";import{ensureString as ge}from\"ensure-string\";var te=new Set([\"TIC\",\".RIC\",\"SCANNUMBER\"]);function ne(e){let m=e.spectra,t=m.length,o={times:new Array(t),series:{ms:{dimension:2,data:new Array(t)}}},f=[];for(let i of te){let n=k(i);m[0][n]&&(f.push(n),o.series[n]={dimension:1,data:new Array(t)})}for(let i=0;i<t;i++){let n=m[i];o.times[i]=n.pageValue;for(let l of f)o.series[l].data[i]=Number(n[l]);n.data&&(o.series.ms.data[i]=[n.data.x,n.data.y])}e.chromatogram=o}function re(e){return te.has(e)}function k(e){return e.toLowerCase().replaceAll(/[^a-z0-9]/g,\"\")}function O(e){return e.map(Number)}function V(e,m,t){let{logger:o}=t;o&&(e.xFactor||o.info(\"The xFactor is not defined, it will be set to 1\"),e.yFactor||o.info(\"The yFactor is not defined, it will be set to 1\"));let f=e.yFactor??1,i=e.xFactor??1,n=e.deltaX??1,l=Math.abs(n*.1),s=.01;e.isXYdata=!0;let c={x:[],y:[]};e.data=c;let u=e.firstX||0,b=e.firstY||0,p=!1,r,a=0;for(;a<m.length;a++)if(r=m.codePointAt(a),r===13||r===10)p=!0;else if(p)break;let d=0,g=!0,A=!1,x=!1,I=0,S=!1,C=!1,h=0,X=0,L=!1,N=!1,Y=!1,F=0;for(;a<=m.length;a++)if(a===m.length?r=13:r=m.codePointAt(a),C)(r===13||r===10)&&(g=!0,C=!1,d++);else if(r<=57&&r>=48)N=!0,F>0?h+=(r-48)/10**F++:(h*=10,h+=r-48);else if(r===44||r===46)N=!0,F++;else{if(N){if(L&&(h=h*-1,L=!1),g)h*=i,o&&(x?Math.abs(u-n-h)>l&&(Math.abs(u-h)<l?o.trace(`Data line ${d}: After a DIFFERENCE the next line should repeat the last value and this does not seem to be the case: Current value: ${h} - Expected: ${u}.`):Math.abs(u-n-h)>10*l?o.trace(`Data line ${d}: The difference between the first value ${h} and the expected first x value ${u} based on increment after a DIFFERENCE is too high`):o.trace(`Data line ${d}: The difference between the first value ${h} and the expected first x value ${u} based on increment after a DIFFERENCE is too high`)):Math.abs(u-h)>l&&o.trace(`Data line ${d}: The difference between the first value ${h} and the first x value ${u} is too high`)),g=!1,x&&(Y=!0);else if(Y)Y=!1,o&&Math.abs(b-h)>s&&o.trace(`Data line ${d}: After a duplicate the next line should repeat the same value ${h} !== ${b}`),b=h;else{A?(I=L?0-h:h,x=!0,A=!1):S||(X=L?0-h:h);let y=S?h-1:1;for(let M=0;M<y;M++)x?b+=I:b=X,c.x.push(u),c.y.push(b*f),u+=n}L=!1,h=0,F=0,N=!1,S=!1}if(r<74&&r>63)N=!0,x=!1,h=r-64;else if(r>96&&r<106)N=!0,x=!1,h=r-96,L=!0;else if(r===115)N=!0,S=!0,h=9;else if(r>82&&r<91)N=!0,S=!0,h=r-82;else if(r>73&&r<83)N=!0,A=!0,h=r-73;else if(r>105&&r<115)N=!0,A=!0,h=r-105,L=!0;else if(r===36&&m.codePointAt(a+1)===36)N=!0,C=!0;else if(r===37)N=!0,A=!0,h=0,L=!1;else if(r===45){let y=m.codePointAt(a+1);(y!==void 0&&y>=48&&y<=57||y===44||y===46)&&(N=!0,g||(x=!1),L=!0)}else(r===13||r===10)&&(g=!0,C=!1,d++)}o&&x&&o.warn(\"The last value is a difference, it should be repeated on the next line\")}var oe=/[,\\t ]+/;function w(e,m,t){if(e.isPeaktable=!0,!e.variables||Object.keys(e.variables).length===2?ue(e,m,t):ce(e,m,t),e.variables)for(let o in e.variables)e.variables[o].data=e.data?.[o]}function ue(e,m,t){let{logger:o}=t,f={x:[],y:[]};e.data=f;let i=m.split(/,? *,?[;\\r\\n]+ */);for(let n=1;n<i.length;n++){let l=i[n].trim().replace($,\"\").split(oe);if(l.length%2===0)for(let s=0;s<l.length;s=s+2)e.xFactor!==void 0&&e.yFactor!==void 0&&(f.x.push(Number(l[s])*e.xFactor),f.y.push(Number(l[s+1])*e.yFactor));else o?.warn(`Format error: ${l.toString()}`)}}function ce(e,m,t){let{logger:o}=t,f={},i=Object.keys(e.variables),n=i.length;for(let s of i)f[s]=[];e.data=f;let l=m.split(/,? *,?[;\\r\\n]+ */);for(let s=1;s<l.length;s++){let c=l[s].trim().replace($,\"\").split(oe);if(c.length%n===0)for(let u=0;u<c.length;u++)f[i[u%n]].push(Number(c[u]));else o?.warn(`Wrong number of columns: ${c.toString()}`)}}function B(e,m){e.isXYAdata=!0;let t={};e.data=t;let o=m.split(/\\r?\\n/),f=o[0].replace(/^.*?([A-Z]+).*$/,\"$1\").split(\"\").map(i=>i.toLowerCase());for(let i=1;i<o.length;i++){let n=o[i].replace(/^\\((.*)\\)$/,\"$1\").split(/ *, */);for(let l=0;l<f.length;l++){let s=n[l];switch(f[l]){case\"x\":case\"y\":case\"w\":s=Number.parseFloat(s);break;case\"a\":s=s.replace(/^<(.*)>$/,\"$1\");break;case\"m\":break;default:continue}t[f[l]]||(t[f[l]]=[]),t[f[l]].push(s)}}}import{parseString as le}from\"dynamic-typing\";import{getGyromagneticRatio as ie}from\"gyromagnetic-ratio\";import ae from\"ml-array-median\";function se(e){return Array.isArray(e)?e[0]:e}function Z(e){let{spectra:m}=e,t=m[0].data.y[0],o=t,f=m.length,i=m[0].data.x.length||0,n=new Array(f);for(let r=0;r<f;r++){n[r]=m[r].data.y;for(let a=0;a<i;a++){let d=n[r][a];d<t&&(t=d),d>o&&(o=d)}}let l=m[0].data.x[0],s=m[0].data.x.at(-1),{firstY:c,lastY:u}=pe(e);if(l>s)for(let r of n)r.reverse();c>u&&n.reverse();let b=[];for(let r=0;r<n.length;r++){let a=Float64Array.from(n[r]);for(let d=0;d<a.length;d++)a[d]<0&&(a[d]=-a[d]);b.push(ae(a))}let p=ae(b);return{z:n,minX:Math.min(l,s),maxX:Math.max(l,s),minY:Math.min(c,u),maxY:Math.max(c,u),minZ:t,maxZ:o,noise:p}}function pe(e){let{spectra:m,ntuples:t,info:o}=e;if(t)for(let f of t){let{symbol:i,nucleus:n,units:l}=f;if(i.match(/[F|T]1/)&&l?.toUpperCase().match(\"HZ\")){let s=se(o[\".OBSERVEFREQUENCY\"]),{nucleus:c}=t.find(d=>d.symbol.match(/[F|T]2/));if([s,c,n].some(d=>!d))break;let u=ie(c),b=ie(n),{first:p,last:r}=f,a=b!==null&&u!==null?s*b/u:s;return{firstY:p/a,lastY:r/a}}}return{firstY:m[0].pageValue,lastY:m.at(-1).pageValue}}function H(e,m){let t=e.noise,o=e.z,f,i,n,l,s,c,u,b,p=o.length,r=o[0].length,a,d,g,A,x=e.minX,S=(e.maxX-x)/(r-1),C=e.minY,X=(e.maxY-C)/(p-1),L=e.minZ,N=e.maxZ,Y=m.nbContourLevels*2,F=new Array(Y),y;for(let M=0;M<Y;M++){let U={};F[M]=U;let fe=M%2,Q=(N-m.noiseMultiplier*t)*Math.exp((M>>1)-m.nbContourLevels);fe===0?y=Q+m.noiseMultiplier*t:y=0-Q-m.noiseMultiplier*t;let D=[];if(U.zValue=y,U.lines=D,!(y<=L||y>=N))for(let v=0;v<p-1;v++){let _=o[v],ee=o[v+1];for(let T=0;T<r-1;T++)f=_[T],i=_[T+1],n=ee[T],l=ee[T+1],s=f>y,c=i>y,u=n>y,b=l>y,s!==c&&s!==u&&(a=T+(y-f)/(i-f),d=v,g=T,A=v+(y-f)/(n-f),D.push(a*S+x,d*X+C,g*S+x,A*X+C)),b!==c&&b!==u&&(a=T+1,d=v+1-(y-l)/(i-l),g=T+1-(y-l)/(n-l),A=v+1,D.push(a*S+x,d*X+C,g*S+x,A*X+C)),c!==u&&(a=(T+1-(y-i)/(n-i))*S+x,d=(v+(y-i)/(n-i))*X+C,c!==s&&(g=T+1-(y-i)/(f-i),A=v,D.push(a,d,g*S+x,A*X+C)),u!==s&&(g=T,A=v+1-(y-n)/(f-n),D.push(a,d,g*S+x,A*X+C)),c!==b&&(g=T+1,A=v+(y-i)/(l-i),D.push(a,d,g*S+x,A*X+C)),u!==b&&(g=T+(y-n)/(l-n),A=v+1,D.push(a,d,g*S+x,A*X+C)))}}return{minX:e.minX,maxX:e.maxX,minY:e.minY,maxY:e.maxY,segments:F}}function G(e,m){let t=Z(e);m.noContour||(e.contourLines=H(t,m),delete t.z),e.minMax=t}import{getGyromagneticRatio as W}from\"gyromagnetic-ratio\";function z(e,m){for(let t of e){let o=0,f=0;for(let i of t.spectra){if(t.ntuples?.symbol?(!o&&i.observeFrequency&&(o=i.observeFrequency),!f&&i.shiftOffsetVal&&(f=i.shiftOffsetVal)):(o=i.observeFrequency,f=i.shiftOffsetVal),o&&i.xUnits?.toUpperCase().includes(\"HZ\")&&(i.xUnits=\"PPM\",i.xFactor=i.xFactor!==void 0?i.xFactor/o:void 0,i.firstX=i.firstX!==void 0?i.firstX/o:void 0,i.lastX=i.lastX!==void 0?i.lastX/o:void 0,i.deltaX=i.deltaX!==void 0?i.deltaX/o:void 0,i.data))for(let n=0;n<i.data.x.length;n++)i.data.x[n]/=o;if(f&&i.xUnits.toLowerCase().includes(\"ppm\")&&i.firstX!==void 0&&i.lastX!==void 0){let n=i.firstX-f;if(i.firstX=i.firstX-n,i.lastX=i.lastX-n,i.data)for(let l=0;l<i.data.x.length;l++)i.data.x[l]-=n}if(t.ntuples?.nucleus&&t.ntuples.symbol)for(let n=0;n<t.ntuples.nucleus.length;n++){let l=t.ntuples.symbol[n],s=t.ntuples.nucleus[n];if(l.match(/^[F|T]/)&&!s){if(l.match(/[F|T]1/))if(t.tmp.$NUC2&&typeof t.tmp.$NUC2==\"string\")t.ntuples.nucleus[n]=t.tmp.$NUC2;else{let c=t.ntuples.symbol.indexOf(l.replace(/^([F|T]).*/,\"$12\"));c&&t.ntuples.nucleus[c]&&(t.ntuples.nucleus[n]=t.ntuples.nucleus[c])}l.match(/[F|T]2/)&&typeof t.tmp.$NUC1==\"string\"&&(t.ntuples.nucleus[n]=t.tmp.$NUC1)}l.match(/[F|T]2/)&&(t.yType=t.ntuples.nucleus[0],t.xType&&!W(t.xType)&&(t.xType=t.ntuples.nucleus[1]))}if(o&&t.ntuples?.symbol&&t.ntuples.nucleus){let n=\"\",l=t.ntuples.symbol.indexOf(i.pageSymbol);t.ntuples.units?.[l]&&(n=t.ntuples.units[l]);let{nucleus:s}=t.ntuples;if(!n.toLowerCase().match(/(ppm|seconds)/)&&s.length>1){if(l!==0){let p=\"Not sure about this ntuples format\";if(m){m.warn(p);continue}else throw new Error(p)}let{nucleus:c}=t.ntuples,u=W(c[0]),b=W(c[1]);if(!u||!b){let p=`Problem with determination of gyromagnetic ratio for ${c.join(\"-\")}`;if(m)m.error(p);else throw new Error(p)}else{let p=u/b*o;i.pageValue/=p}}}}}}function J(e){let m=e.spectra[0].data;e.chromatogram={times:m.x.slice(),series:{intensity:{dimension:1,data:m.y.slice()}}}}function q(e,m,t){z(e,t.logger),de(e,t);for(let o of e){if(Object.keys(o.ntuples).length>0){let f=[],i=Object.keys(o.ntuples);for(let n of i){let l=o.ntuples[n];if(l)for(let s=0;s<l.length;s++)f[s]||(f[s]={}),f[s][n]=l[s]}o.ntuples=f}o.twoD&&t.wantXY&&(G(o,t),t.logger?.trace({profiling:!0},\"Finished countour plot calculation\"),t.keepSpectra||delete o.spectra),t.chromatogram&&(o.spectra.length>1?ne(o):J(o),t.logger?.trace({profiling:!0},\"Finished chromatogram calculation\")),delete o.tmp}}function de(e,m){for(let t of e)for(let o in t.meta){let f=t.meta[o];if(typeof f==\"string\"){if(f.startsWith(\"{\")){if(!f.includes(\":\")&&f.endsWith(\"}\")){let i=f.slice(1,-1).split(/[,; ]+/).filter(Boolean);for(let n=0;n<i.length;n++)t.meta[o+String(n)]=m.dynamicTyping?le(i[n]):i[n]}}else if(f.startsWith(\"(\")){let i=f.split(/\\r?\\n/),n=/^\\((?<from>\\d+)\\.\\.(?<to>\\d+)\\).*$/;if(n.test(i[0])){let[l,s]=i[0].match(n)?.slice(1).map(Number)??[],c=i.slice(1).join(\" \").split(/[,; ]+/).filter(Boolean);for(let u=l;u<=s;u++)m.dynamicTyping&&typeof c[u-l]==\"string\"?t.meta[o+String(u)]=le(c[u-l]):t.meta[o+String(u)]=c[u-l]}}}}}function K(e,m,t){let o=-1,f=-1,i=\"\",n=\"\";if(t.indexOf(\"++\")>0)i=t.replace(/.*\\(([a-zA-Z0-9]+)\\+\\+.*/,\"$1\"),n=t.replace(/.*\\.\\.([a-zA-Z0-9]+).*/,\"$1\");else{t=t.replaceAll(/[^a-zA-Z%]/g,\"\"),i=t.charAt(0),n=t.charAt(1),m.variables={};for(let l of t){let s=l.toLowerCase(),c=e.ntuples.symbol?.indexOf(l)||0;if(c===-1)throw new Error(`Symbol undefined: ${l}`);m.variables[s]={};for(let u in e.ntuples)e.ntuples[u]?.[c]&&(m.variables[s][u.replace(/^var/,\"\")]=e.ntuples[u]?.[c])}}o=e.ntuples.symbol?.indexOf(i)??-1,f=e.ntuples.symbol?.indexOf(n)??-1,o===-1&&(o=0),f===-1&&(f=0),e.ntuples.first&&(e.ntuples.first.length>o&&(m.firstX=e.ntuples.first[o]),e.ntuples.first.length>f&&(m.firstY=e.ntuples.first[f])),e.ntuples.last&&(e.ntuples.last.length>o&&(m.lastX=e.ntuples.last[o]),e.ntuples.last.length>f&&(m.lastY=e.ntuples.last[f])),e.ntuples.vardim&&e.ntuples.vardim.length>o&&(m.nbPoints=e.ntuples.vardim[o]),e.ntuples.factor&&(e.ntuples.factor.length>o&&(m.xFactor=e.ntuples.factor[o]),e.ntuples.factor.length>f&&(m.yFactor=e.ntuples.factor[f])),e.ntuples.units&&(e.ntuples.units.length>o&&(e.ntuples.varname?.[o]?m.xUnits=`${e.ntuples.varname[o]} [${e.ntuples.units[o]}]`:m.xUnits=e.ntuples.units[o]),e.ntuples.units.length>f&&(e.ntuples.varname?.[f]?m.yUnits=`${e.ntuples.varname[f]} [${e.ntuples.units[f]}]`:m.yUnits=e.ntuples.units[f]))}function j(e){e.xFactor||(e.xFactor=1),e.yFactor||(e.yFactor=1)}var R=/[ \\t]*,[ \\t]*/,he={removeComments:!1,keepRecordsRegExp:/^$/,canonicDataLabels:!0,canonicMetadataLabels:!1,dynamicTyping:!0,withoutXY:!1,noTrimRegExp:/^$/,chromatogram:!1,keepSpectra:!1,noContour:!1,nbContourLevels:7,noiseMultiplier:5};function pt(e,m={}){e=ge(e);let t={...he,...m};t.logger?.debug(\"Starting jcamp conversion\"),t.wantXY=!t.withoutXY,t.start=Date.now();let o=[],f={entries:[],flatten:[]},i={children:[],spectra:[],ntuples:{},info:{},meta:{},tmp:{}},n=i,l=[],s={data:{}};t.logger?.trace({profiling:!0},\"Before split to LDRS\");let c=e.replaceAll(/[\\r\\n]+##/g,`\n##`).split(`\n##`);t.logger?.trace({profiling:!0},\"Split to LDRS\"),c[0]&&(c[0]=c[0].replace(/^[\\r\\n ]*##/,\"\"));for(let u of c){let b=u.indexOf(\"=\"),p=b>0?u.slice(0,Math.max(0,b)):u,r=b>0?p.match(t.noTrimRegExp)?u.slice(Math.max(0,b+1)):u.slice(Math.max(0,b+1)).trim():\"\",a=p.replaceAll(/[_ -]/g,\"\").toUpperCase();if(a===\"DATATABLE\"){let d=r.indexOf(`\n`);if(d===-1&&(d=r.indexOf(\"\\r\")),d>0){let g=r.slice(0,Math.max(0,d)).split(/[ ,;\\t]+/);K(n,s,g[0]),s.datatable=g[0],g[1]?.includes(\"PEAKS\")?a=\"PEAKTABLE\":g[1]&&(g[1].indexOf(\"XYDATA\")||g[0].indexOf(\"++\")>0)&&(a=\"XYDATA\",s.nbPoints&&s.lastX!==void 0&&s.firstX!==void 0&&(s.deltaX=(s.lastX-s.firstX)/(s.nbPoints-1)))}}if(a===\"XYDATA\"){t.wantXY&&(j(s),r.match(/.*\\+\\+.*/)?(s.nbPoints&&s.lastX!==void 0&&s.firstX!==void 0&&(s.deltaX=(s.lastX-s.firstX)/(s.nbPoints-1)),V(s,r,t)):w(s,r,t),n?.spectra.push(s),s={data:{}});continue}else if(a===\"PEAKTABLE\"){t.wantXY&&(j(s),w(s,r,t),n?.spectra.push(s),s={data:{}});continue}if(a===\"PEAKASSIGNMENTS\"){t.wantXY&&(r.match(/.*[^A-Z]*.*/)&&B(s,r),n?.spectra.push(s),s={data:{}});continue}if(t.removeComments&&(r=r.split(/\\r?\\n/).map(d=>d.replace(/ *\\$\\$.*$/,\"\")).join(`\n`)),a===\"TITLE\"){let d=n;d.children||(d.children=[]),n={spectra:[],ntuples:{},info:{},meta:{},tmp:{}},d.children.push(n),l.push(d),o.push(n),n.title=r}else a===\"DATATYPE\"?(n.dataType=r,r.match(/^nd|\\snd\\s/i)&&(n.twoD=!0)):a===\"NTUPLES\"?r.match(/^nd|\\snd\\s/i)&&(n.twoD=!0):a===\"DATACLASS\"?n.dataClass=r:a===\"JCAMPDX\"?n.jcampDX=E(r):a===\"JCAMPCS\"?n.jcampCS=E(r):a===\"XUNITS\"?s.xUnits=r:a===\"YUNITS\"?s.yUnits=r:a===\"FIRSTX\"?s.firstX=Number(r):a===\"LASTX\"?s.lastX=Number(r):a===\"FIRSTY\"?s.firstY=Number(r):a===\"LASTY\"?s.lastY=Number(r):a===\"NPOINTS\"?s.nbPoints=Number(r):a===\"XFACTOR\"?s.xFactor=Number(r):a===\"YFACTOR\"?s.yFactor=Number(r):a===\"MAXX\"?s.maxX=Number(r):a===\"MINX\"?s.minX=Number(r):a===\"MAXY\"?s.maxY=Number(r):a===\"MINY\"?s.minY=Number(r):a===\"DELTAX\"?s.deltaX=Number(r):a===\".OBSERVEFREQUENCY\"||a===\"$SFO1\"?s.observeFrequency||(s.observeFrequency=Number(r)):a===\".OBSERVENUCLEUS\"?s.xType||(n.xType=r.replaceAll(/[^a-zA-Z0-9]/g,\"\")):a===\"$OFFSET\"?(n.shiftOffsetNum=0,s.shiftOffsetVal||(s.shiftOffsetVal=Number(r))):a===\"$REFERENCEPOINT\"||(a===\"VARNAME\"?n.ntuples.varname=r.split(R):a===\"SYMBOL\"?n.ntuples.symbol=r.split(R):a===\"VARTYPE\"?n.ntuples.vartype=r.split(R):a===\"VARFORM\"?n.ntuples.varform=r.split(R):a===\"VARDIM\"?n.ntuples.vardim=O(r.split(R)):a===\"UNITS\"?n.ntuples.units=r.split(R):a===\"FACTOR\"?n.ntuples.factor=O(r.split(R)):a===\"FIRST\"?n.ntuples.first=O(r.split(R)):a===\"LAST\"?n.ntuples.last=O(r.split(R)):a===\"MIN\"?n.ntuples.min=O(r.split(R)):a===\"MAX\"?n.ntuples.max=O(r.split(R)):a===\".NUCLEUS\"?n.ntuples&&(n.ntuples.nucleus=r.split(R).map(d=>d.replaceAll(/[^a-zA-Z0-9]/g,\"\"))):a===\"PAGE\"?(s.page=r.trim(),s.pageValue=Number(r.replace(/^.*=/,\"\")),s.pageSymbol=s.page.replace(/[=].*/,\"\")):a===\"RETENTIONTIME\"?s.pageValue=Number(r):re(a)?s[k(a)]=r:a===\"SAMPLEDESCRIPTION\"?s.sampleDescription=r:a.startsWith(\"$NUC\")?!n.tmp[a]&&!r.includes(\"off\")&&(n.tmp[a]=r.replaceAll(/[<>]/g,\"\")):a===\"END\"&&(n=l.pop()));if(n?.info&&n.meta&&a.match(t.keepRecordsRegExp)){let d,g;p.startsWith(\"$\")?(g=t.canonicMetadataLabels?a.slice(1):p.slice(1),d=n.meta):(g=t.canonicDataLabels?a:p,d=n.info),t.dynamicTyping&&(r=be(r)),d[g]?(Array.isArray(d[g])||(d[g]=[d[g]]),d[g].push(r)):d[g]=r}}if(t.logger?.trace({profiling:!0},\"Finished parsing\"),q(o,f,t),t.logger?.trace({profiling:!0},\"Total time\"),f.entries=i.children||[],f.flatten=o,t.logger){t.logger.debug(\"Finished jcamp conversion\");for(let u of f.flatten)t.logger.debug(`${u.dataType} - ${u.title}`)}return f}function gt(e,m){let{logger:t,OCL:o}=m;if(!e.info.ATOMLIST||!e.info.BONDLIST){t?.warn(\"No ATOMLIST or BONDLIST in the JCAMP-CS entry\");return}Te(e,t);let f=xe(e.info.ATOMLIST),i=Ae(e.info.BONDLIST),n=Ne(e.info.CHARGE,t),l=Se(e.info.XYRASTER,t),s=Ce(e.info.STEREOCENTER,t),c=ye(o,{atoms:f,bonds:i,charges:n,xyRasters:l,stereocenters:s},t);return{molecule:c,molfile:c.toMolfile()}}function ye(e,m,t){let{atoms:o,bonds:f,charges:i,xyRasters:n,stereocenters:l}=m,s={S:e.Molecule.cBondTypeSingle,D:e.Molecule.cBondTypeDouble,T:e.Molecule.cBondTypeTriple,Q:e.Molecule.cBondTypeQuadruple},c={},u=new e.Molecule(o.length,f.length);for(let p of o){let r=e.Molecule.getAtomicNoFromLabel(p.element);r||(t?.error(`Atomic number of ${p.element} could not be determined`),r=e.Molecule.getAtomicNoFromLabel(\"X\")),c[p.atomNumber]=u.addAtom(r),u.setAtomMapNo(c[p.atomNumber],p.atomNumber,!1)}for(let p of f){if(c[p.atomNumber1]===void 0){t?.error(`A bond goes from atomNumber ${p.atomNumber1} that does not exists`);continue}if(c[p.atomNumber2]===void 0){t?.error(`A bond goes to atomNumber ${p.atomNumber2} that does not exists`);continue}let r=u.addBond(c[p.atomNumber1],c[p.atomNumber2]);u.setBondType(r,s[p.bondType])}for(let p of i){if(c[p.atomNumber]===void 0){t?.error(`A charge goes to atomNumber ${p.atomNumber} that does not exists`);continue}u.setAtomCharge(c[p.atomNumber],p.value)}let b=n.length===0||l.length>0;for(let p of n){if(c[p.atomNumber]===void 0){t?.error(`A XYRASTER goes to atomNumber ${p.atomNumber} that does not exists`);continue}u.setAtomX(c[p.atomNumber],p.x),u.setAtomY(c[p.atomNumber],p.y),u.setAtomZ(c[p.atomNumber],p.z)}u.ensureHelperArrays(e.Molecule.cHelperParities);for(let p of l){let{atomNumber:r,type:a}=p,d=c[r];if(d===void 0){t?.error(`A stereocenter goes to atomNumber ${r} that does not exists`);continue}if(!u.isAtomStereoCenter(d)){t?.warn(`Want to set chirality of atom number ${r} but it is not a stereocenter`);continue}if(u.getAtomParity(d)!==e.Molecule.cAtomParityUnknown){t?.debug(`Atom number ${r} already has a parity defined based on 3D coordinates`);continue}let x=a===\"P\"?e.Molecule.cAtomParity1:e.Molecule.cAtomParity2;u.setAtomParity(c[r],x,!1)}return u.ensureHelperArrays(e.Molecule.cHelperParities),b&&u.inventCoordinates({keepHydrogens:!0}),u}function xe(e){let m=P(e),t=[];for(let o of m){let[f,i,n]=o.trim().split(/\\s+/);t.push({atomNumber:Number(f),element:i,nbImplicitHydrogens:n?.length>0?Number(n):void 0})}return t}function Ae(e){let m=P(e),t=[];for(let o of m){let[f,i,n]=o.trim().split(/\\s+/);t.push({atomNumber1:Number(f),atomNumber2:Number(i),bondType:n})}return t}function Ne(e,m){if(!e)return[];let t=P(e),o=[];for(let f of t){let[i,n,l]=f.trim().split(/\\s+/);l!==void 0&&m?.warn(\"Charge on multiple atom is not supported\"),o.push({atomNumber:Number(n),value:Number(i)})}return o}function Se(e,m){if(!e)return[];let t=P(e),o=[];for(let f of t){let[i,n,l,s]=f.trim().split(/\\s+/);if(i===void 0){m?.warn(\"XYRASTER without atom number is not supported\");continue}o.push({atomNumber:Number(i),x:Number(n),y:Number(l),z:s!==void 0?Number(s):0})}return o}function Ce(e,m){if(!e)return[];let t=P(e),o=[];for(let f of t){let[i,n]=f.trim().split(/\\s+/);if(![\"P\",\"M\"].includes(n)){m?.warn(`Stereocenter type ${n} is not supported`);continue}o.push({atomNumber:Number(i),type:n})}return o}function P(e){return e.split(/\\r?\\n/).map(m=>E(m)).filter(Boolean)}function Te(e,m){let t=[\"STEREOPAIR\",\"STEREOCENTER\",\"RADICAL\",\"STEREOMOLECULE\"];for(let o of t)e.info[o]&&m?.warn(`JCAMP-CS parser do not support: ${o}`)}export{pt as convert,Le as createTree,gt as parseJcampCS,E as removeComment,$ as removeCommentRegExp};\n","export class UTCDateMini extends Date {\n  constructor() {\n    super();\n    this.setTime(arguments.length === 0 ?\n    // Enables Sinon's fake timers that override the constructor\n    Date.now() : arguments.length === 1 ? typeof arguments[0] === \"string\" ? +new Date(arguments[0]) : arguments[0] : Date.UTC(...arguments));\n  }\n  getTimezoneOffset() {\n    return 0;\n  }\n}\n\n// Replace getter and setter functions with UTC counterparts\nconst re = /^(get|set)(?!UTC)/;\nObject.getOwnPropertyNames(Date.prototype).forEach(method => {\n  if (re.test(method)) {\n    const utcMethod = Date.prototype[method.replace(re, \"$1UTC\")];\n    if (utcMethod) UTCDateMini.prototype[method] = utcMethod;\n  }\n});","import { UTCDateMini } from \"./mini.js\";\n\n/**\n * UTC date class. It maps getters and setters to corresponding UTC methods,\n * forcing all calculations in the UTC time zone.\n *\n * Combined with date-fns, it allows using the class the same way as\n * the original date class.\n *\n * This complete version provides not only getters, setters,\n * and `getTimezoneOffset`, but also the formatter functions, mirroring\n * all original `Date` functionality. Use this version when you need to format\n * a string or in an environment you don't fully control (a library).\n * For a minimal version, see `UTCDateMini`.\n */\nexport class UTCDate extends UTCDateMini {\n  toString() {\n    const date = this.toDateString();\n    const time = this.toTimeString();\n    return `${date} ${time}`;\n  }\n  toDateString() {\n    const weekday = weekdayFormat.format(this);\n    const date = dateFormat.format(this);\n    const year = this.getFullYear();\n    return `${weekday} ${date} ${year}`;\n  }\n  toTimeString() {\n    const time = timeFormat.format(this);\n    return `${time} GMT+0000 (Coordinated Universal Time)`;\n  }\n  toLocaleString(locales, options) {\n    return Date.prototype.toLocaleString.call(this, locales, {\n      timeZone: \"UTC\",\n      ...options\n    });\n  }\n  toLocaleDateString(locales, options) {\n    return Date.prototype.toLocaleDateString.call(this, locales, {\n      timeZone: \"UTC\",\n      ...options\n    });\n  }\n  toLocaleTimeString(locales, options) {\n    return Date.prototype.toLocaleTimeString.call(this, locales, {\n      timeZone: \"UTC\",\n      ...options\n    });\n  }\n}\nvar weekdayFormat = new Intl.DateTimeFormat(\"en-US\", {\n  weekday: \"short\",\n  timeZone: \"UTC\"\n});\nvar dateFormat = new Intl.DateTimeFormat(\"en-US\", {\n  month: \"short\",\n  day: \"numeric\",\n  timeZone: \"UTC\"\n});\nvar timeFormat = new Intl.DateTimeFormat(\"en-GB\", {\n  hour12: false,\n  hour: \"numeric\",\n  minute: \"numeric\",\n  second: \"numeric\",\n  timeZone: \"UTC\"\n});","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n *   return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n *   return constructFrom(\n *     date, // Use constructor from the given date\n *     date.getTime() // Use the date value to create a new date\n *   );\n * }\n */\nexport function constructFrom(date, value) {\n  if (typeof date === \"function\") return date(value);\n\n  if (date && typeof date === \"object\" && constructFromSymbol in date)\n    return date[constructFromSymbol](value);\n\n  if (date instanceof Date) return new date.constructor(value);\n\n  return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n  // [TODO] Get rid of `toDate` or `constructFrom`?\n  return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * **You don't need date-fns\\***:\n *\n * Temporal has a built-in `add` method on all its classes:\n *\n * - [`Temporal.Instant.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Instant/add)\n * - [`Temporal.PlainDate.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate/add)\n * - [`Temporal.PlainDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDateTime/add)\n * - [`Temporal.PlainTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/add)\n * - [`Temporal.PlainYearMonth.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/add)\n * - [`Temporal.ZonedDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/add)\n *\n * \\* **Not really**, see: https://date-fns.org/you-dont-need-date-fns\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n *\n * @example\n * // Using Temporal:\n * // Add 10 days to 1 September 2014:\n * Temporal.PlainDate.from(\"2014-09-01\").add({ days: 10 }).toString();\n * //=> \"2014-09-11\"\n */\nexport function addDays(date, amount, options) {\n  const _date = toDate(date, options?.in);\n  if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n  // If 0 days, no-op to avoid changing times in the hour before end of DST\n  if (!amount) return _date;\n\n  _date.setDate(_date.getDate() + amount);\n  return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n  return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n  defaultOptions = newOptions;\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n  const defaultOptions = getDefaultOptions();\n  const weekStartsOn =\n    options?.weekStartsOn ??\n    options?.locale?.options?.weekStartsOn ??\n    defaultOptions.weekStartsOn ??\n    defaultOptions.locale?.options?.weekStartsOn ??\n    0;\n\n  const _date = toDate(date, options?.in);\n  const day = _date.getDay();\n  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n  _date.setDate(_date.getDate() - diff);\n  _date.setHours(0, 0, 0, 0);\n  return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n  return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n  const _date = toDate(date);\n  const utcDate = new Date(\n    Date.UTC(\n      _date.getFullYear(),\n      _date.getMonth(),\n      _date.getDate(),\n      _date.getHours(),\n      _date.getMinutes(),\n      _date.getSeconds(),\n      _date.getMilliseconds(),\n    ),\n  );\n  utcDate.setUTCFullYear(_date.getFullYear());\n  return +date - +utcDate;\n}\n","import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n  const year = getISOWeekYear(date, options);\n  const fourthOfJanuary = constructFrom(options?.in || date, 0);\n  fourthOfJanuary.setFullYear(year, 0, 4);\n  fourthOfJanuary.setHours(0, 0, 0, 0);\n  return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n  const _date = toDate(date, options?.in);\n  const year = _date.getFullYear();\n\n  const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n  const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n  const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n  fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n  fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n  const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n  if (_date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1;\n  } else if (_date.getTime() >= startOfThisYear.getTime()) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n  return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n  return (\n    value instanceof Date ||\n    (typeof value === \"object\" &&\n      Object.prototype.toString.call(value) === \"[object Date]\")\n  );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"less than a second\",\n    other: \"less than {{count}} seconds\",\n  },\n\n  xSeconds: {\n    one: \"1 second\",\n    other: \"{{count}} seconds\",\n  },\n\n  halfAMinute: \"half a minute\",\n\n  lessThanXMinutes: {\n    one: \"less than a minute\",\n    other: \"less than {{count}} minutes\",\n  },\n\n  xMinutes: {\n    one: \"1 minute\",\n    other: \"{{count}} minutes\",\n  },\n\n  aboutXHours: {\n    one: \"about 1 hour\",\n    other: \"about {{count}} hours\",\n  },\n\n  xHours: {\n    one: \"1 hour\",\n    other: \"{{count}} hours\",\n  },\n\n  xDays: {\n    one: \"1 day\",\n    other: \"{{count}} days\",\n  },\n\n  aboutXWeeks: {\n    one: \"about 1 week\",\n    other: \"about {{count}} weeks\",\n  },\n\n  xWeeks: {\n    one: \"1 week\",\n    other: \"{{count}} weeks\",\n  },\n\n  aboutXMonths: {\n    one: \"about 1 month\",\n    other: \"about {{count}} months\",\n  },\n\n  xMonths: {\n    one: \"1 month\",\n    other: \"{{count}} months\",\n  },\n\n  aboutXYears: {\n    one: \"about 1 year\",\n    other: \"about {{count}} years\",\n  },\n\n  xYears: {\n    one: \"1 year\",\n    other: \"{{count}} years\",\n  },\n\n  overXYears: {\n    one: \"over 1 year\",\n    other: \"over {{count}} years\",\n  },\n\n  almostXYears: {\n    one: \"almost 1 year\",\n    other: \"almost {{count}} years\",\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  let result;\n\n  const tokenValue = formatDistanceLocale[token];\n  if (typeof tokenValue === \"string\") {\n    result = tokenValue;\n  } else if (count === 1) {\n    result = tokenValue.one;\n  } else {\n    result = tokenValue.other.replace(\"{{count}}\", count.toString());\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"in \" + result;\n    } else {\n      return result + \" ago\";\n    }\n  }\n\n  return result;\n};\n","export function buildFormatLongFn(args) {\n  return (options = {}) => {\n    // TODO: Remove String()\n    const width = options.width ? String(options.width) : args.defaultWidth;\n    const format = args.formats[width] || args.formats[args.defaultWidth];\n    return format;\n  };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, MMMM do, y\",\n  long: \"MMMM do, y\",\n  medium: \"MMM d, y\",\n  short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n  full: \"h:mm:ss a zzzz\",\n  long: \"h:mm:ss a z\",\n  medium: \"h:mm:ss a\",\n  short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'at' {{time}}\",\n  long: \"{{date}} 'at' {{time}}\",\n  medium: \"{{date}}, {{time}}\",\n  short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n  date: buildFormatLongFn({\n    formats: dateFormats,\n    defaultWidth: \"full\",\n  }),\n\n  time: buildFormatLongFn({\n    formats: timeFormats,\n    defaultWidth: \"full\",\n  }),\n\n  dateTime: buildFormatLongFn({\n    formats: dateTimeFormats,\n    defaultWidth: \"full\",\n  }),\n};\n","const formatRelativeLocale = {\n  lastWeek: \"'last' eeee 'at' p\",\n  yesterday: \"'yesterday at' p\",\n  today: \"'today at' p\",\n  tomorrow: \"'tomorrow at' p\",\n  nextWeek: \"eeee 'at' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n  return (value, options) => {\n    const context = options?.context ? String(options.context) : \"standalone\";\n\n    let valuesArray;\n    if (context === \"formatting\" && args.formattingValues) {\n      const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n      const width = options?.width ? String(options.width) : defaultWidth;\n\n      valuesArray =\n        args.formattingValues[width] || args.formattingValues[defaultWidth];\n    } else {\n      const defaultWidth = args.defaultWidth;\n      const width = options?.width ? String(options.width) : args.defaultWidth;\n\n      valuesArray = args.values[width] || args.values[defaultWidth];\n    }\n    const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n    // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n    return valuesArray[index];\n  };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"B\", \"A\"],\n  abbreviated: [\"BC\", \"AD\"],\n  wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"Jan\",\n    \"Feb\",\n    \"Mar\",\n    \"Apr\",\n    \"May\",\n    \"Jun\",\n    \"Jul\",\n    \"Aug\",\n    \"Sep\",\n    \"Oct\",\n    \"Nov\",\n    \"Dec\",\n  ],\n\n  wide: [\n    \"January\",\n    \"February\",\n    \"March\",\n    \"April\",\n    \"May\",\n    \"June\",\n    \"July\",\n    \"August\",\n    \"September\",\n    \"October\",\n    \"November\",\n    \"December\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n  short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n  abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  wide: [\n    \"Sunday\",\n    \"Monday\",\n    \"Tuesday\",\n    \"Wednesday\",\n    \"Thursday\",\n    \"Friday\",\n    \"Saturday\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mi\",\n    noon: \"n\",\n    morning: \"morning\",\n    afternoon: \"afternoon\",\n    evening: \"evening\",\n    night: \"night\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"midnight\",\n    noon: \"noon\",\n    morning: \"morning\",\n    afternoon: \"afternoon\",\n    evening: \"evening\",\n    night: \"night\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnight\",\n    noon: \"noon\",\n    morning: \"morning\",\n    afternoon: \"afternoon\",\n    evening: \"evening\",\n    night: \"night\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mi\",\n    noon: \"n\",\n    morning: \"in the morning\",\n    afternoon: \"in the afternoon\",\n    evening: \"in the evening\",\n    night: \"at night\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"midnight\",\n    noon: \"noon\",\n    morning: \"in the morning\",\n    afternoon: \"in the afternoon\",\n    evening: \"in the evening\",\n    night: \"at night\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnight\",\n    noon: \"noon\",\n    morning: \"in the morning\",\n    afternoon: \"in the afternoon\",\n    evening: \"in the evening\",\n    night: \"at night\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n\n  // If ordinal numbers depend on context, for example,\n  // if they are different for different grammatical genders,\n  // use `options.unit`.\n  //\n  // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n  // 'day', 'hour', 'minute', 'second'.\n\n  const rem100 = number % 100;\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return number + \"st\";\n      case 2:\n        return number + \"nd\";\n      case 3:\n        return number + \"rd\";\n    }\n  }\n  return number + \"th\";\n};\n\nexport const localize = {\n  ordinalNumber,\n\n  era: buildLocalizeFn({\n    values: eraValues,\n    defaultWidth: \"wide\",\n  }),\n\n  quarter: buildLocalizeFn({\n    values: quarterValues,\n    defaultWidth: \"wide\",\n    argumentCallback: (quarter) => quarter - 1,\n  }),\n\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n};\n","export function buildMatchFn(args) {\n  return (string, options = {}) => {\n    const width = options.width;\n\n    const matchPattern =\n      (width && args.matchPatterns[width]) ||\n      args.matchPatterns[args.defaultMatchWidth];\n    const matchResult = string.match(matchPattern);\n\n    if (!matchResult) {\n      return null;\n    }\n    const matchedString = matchResult[0];\n\n    const parsePatterns =\n      (width && args.parsePatterns[width]) ||\n      args.parsePatterns[args.defaultParseWidth];\n\n    const key = Array.isArray(parsePatterns)\n      ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n      : // [TODO] -- I challenge you to fix the type\n        findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n    let value;\n\n    value = args.valueCallback ? args.valueCallback(key) : key;\n    value = options.valueCallback\n      ? // [TODO] -- I challenge you to fix the type\n        options.valueCallback(value)\n      : value;\n\n    const rest = string.slice(matchedString.length);\n\n    return { value, rest };\n  };\n}\n\nfunction findKey(object, predicate) {\n  for (const key in object) {\n    if (\n      Object.prototype.hasOwnProperty.call(object, key) &&\n      predicate(object[key])\n    ) {\n      return key;\n    }\n  }\n  return undefined;\n}\n\nfunction findIndex(array, predicate) {\n  for (let key = 0; key < array.length; key++) {\n    if (predicate(array[key])) {\n      return key;\n    }\n  }\n  return undefined;\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(b|a)/i,\n  abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n  any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n  wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^j/i,\n    /^f/i,\n    /^m/i,\n    /^a/i,\n    /^m/i,\n    /^j/i,\n    /^j/i,\n    /^a/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  any: [\n    /^ja/i,\n    /^f/i,\n    /^mar/i,\n    /^ap/i,\n    /^may/i,\n    /^jun/i,\n    /^jul/i,\n    /^au/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[smtwf]/i,\n  short: /^(su|mo|tu|we|th|fr|sa)/i,\n  abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n  wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n  any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n  any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mi/i,\n    noon: /^no/i,\n    morning: /morning/i,\n    afternoon: /afternoon/i,\n    evening: /evening/i,\n    night: /night/i,\n  },\n};\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: (value) => parseInt(value, 10),\n  }),\n\n  era: buildMatchFn({\n    matchPatterns: matchEraPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseEraPatterns,\n    defaultParseWidth: \"any\",\n  }),\n\n  quarter: buildMatchFn({\n    matchPatterns: matchQuarterPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseQuarterPatterns,\n    defaultParseWidth: \"any\",\n    valueCallback: (index) => index + 1,\n  }),\n\n  month: buildMatchFn({\n    matchPatterns: matchMonthPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseMonthPatterns,\n    defaultParseWidth: \"any\",\n  }),\n\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: \"any\",\n  }),\n\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: \"any\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","export function buildMatchPatternFn(args) {\n  return (string, options = {}) => {\n    const matchResult = string.match(args.matchPattern);\n    if (!matchResult) return null;\n    const matchedString = matchResult[0];\n\n    const parseResult = string.match(args.parsePattern);\n    if (!parseResult) return null;\n    let value = args.valueCallback\n      ? args.valueCallback(parseResult[0])\n      : parseResult[0];\n\n    // [TODO] I challenge you to fix the type\n    value = options.valueCallback ? options.valueCallback(value) : value;\n\n    const rest = string.slice(matchedString.length);\n\n    return { value, rest };\n  };\n}\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n  code: \"en-US\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 0 /* Sunday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n  const _date = toDate(date, options?.in);\n  const year = _date.getFullYear();\n\n  const defaultOptions = getDefaultOptions();\n  const firstWeekContainsDate =\n    options?.firstWeekContainsDate ??\n    options?.locale?.options?.firstWeekContainsDate ??\n    defaultOptions.firstWeekContainsDate ??\n    defaultOptions.locale?.options?.firstWeekContainsDate ??\n    1;\n\n  const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n  firstWeekOfNextYear.setHours(0, 0, 0, 0);\n  const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n  const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n  firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n  firstWeekOfThisYear.setHours(0, 0, 0, 0);\n  const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n  if (+_date >= +startOfNextYear) {\n    return year + 1;\n  } else if (+_date >= +startOfThisYear) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n *   weekStartsOn: 1,\n *   firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n  const _date = toDate(date, options?.in);\n  const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n  // Round the number of weeks to the nearest integer because the number of\n  // milliseconds in a week is not constant (e.g. it's different in the week of\n  // the daylight saving time clock shift).\n  return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n *   weekStartsOn: 1,\n *   firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n  const defaultOptions = getDefaultOptions();\n  const firstWeekContainsDate =\n    options?.firstWeekContainsDate ??\n    options?.locale?.options?.firstWeekContainsDate ??\n    defaultOptions.firstWeekContainsDate ??\n    defaultOptions.locale?.options?.firstWeekContainsDate ??\n    1;\n\n  const year = getWeekYear(date, options);\n  const firstWeek = constructFrom(options?.in || date, 0);\n  firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n  firstWeek.setHours(0, 0, 0, 0);\n  const _date = startOfWeek(firstWeek, options);\n  return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","const dateLongFormatter = (pattern, formatLong) => {\n  switch (pattern) {\n    case \"P\":\n      return formatLong.date({ width: \"short\" });\n    case \"PP\":\n      return formatLong.date({ width: \"medium\" });\n    case \"PPP\":\n      return formatLong.date({ width: \"long\" });\n    case \"PPPP\":\n    default:\n      return formatLong.date({ width: \"full\" });\n  }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n  switch (pattern) {\n    case \"p\":\n      return formatLong.time({ width: \"short\" });\n    case \"pp\":\n      return formatLong.time({ width: \"medium\" });\n    case \"ppp\":\n      return formatLong.time({ width: \"long\" });\n    case \"pppp\":\n    default:\n      return formatLong.time({ width: \"full\" });\n  }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n  const matchResult = pattern.match(/(P+)(p+)?/) || [];\n  const datePattern = matchResult[1];\n  const timePattern = matchResult[2];\n\n  if (!timePattern) {\n    return dateLongFormatter(pattern, formatLong);\n  }\n\n  let dateTimeFormat;\n\n  switch (datePattern) {\n    case \"P\":\n      dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n      break;\n    case \"PP\":\n      dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n      break;\n    case \"PPP\":\n      dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n      break;\n    case \"PPPP\":\n    default:\n      dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n      break;\n  }\n\n  return dateTimeFormat\n    .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n    .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n  p: timeLongFormatter,\n  P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n  return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n  return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n  const _message = message(token, format, input);\n  console.warn(_message);\n  if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n  const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n  return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { toDate } from \"./toDate.js\";\n\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param date - The given date\n *\n * @returns The timestamp\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nexport function getTime(date) {\n  return +toDate(date);\n}\n\n// Fallback for modularized imports:\nexport default getTime;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n  subPriority = 0;\n\n  validate(_utcDate, _options) {\n    return true;\n  }\n}\n\nexport class ValueSetter extends Setter {\n  constructor(\n    value,\n    validateValue,\n\n    setValue,\n\n    priority,\n    subPriority,\n  ) {\n    super();\n    this.value = value;\n    this.validateValue = validateValue;\n    this.setValue = setValue;\n    this.priority = priority;\n    if (subPriority) {\n      this.subPriority = subPriority;\n    }\n  }\n\n  validate(date, options) {\n    return this.validateValue(date, this.value, options);\n  }\n\n  set(date, flags, options) {\n    return this.setValue(date, flags, this.value, options);\n  }\n}\n\nexport class DateTimezoneSetter extends Setter {\n  priority = TIMEZONE_UNIT_PRIORITY;\n  subPriority = -1;\n\n  constructor(context, reference) {\n    super();\n    this.context = context || ((date) => constructFrom(reference, date));\n  }\n\n  set(date, flags) {\n    if (flags.timestampIsSet) return date;\n    return constructFrom(date, transpose(date, this.context));\n  }\n}\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n  const date_ = isConstructor(constructor)\n    ? new constructor(0)\n    : constructFrom(constructor, 0);\n  date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n  date_.setHours(\n    date.getHours(),\n    date.getMinutes(),\n    date.getSeconds(),\n    date.getMilliseconds(),\n  );\n  return date_;\n}\n\nfunction isConstructor(constructor) {\n  return (\n    typeof constructor === \"function\" &&\n    constructor.prototype?.constructor === constructor\n  );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n  run(dateString, token, match, options) {\n    const result = this.parse(dateString, token, match, options);\n    if (!result) {\n      return null;\n    }\n\n    return {\n      setter: new ValueSetter(\n        result.value,\n        this.validate,\n        this.set,\n        this.priority,\n        this.subPriority,\n      ),\n      rest: result.rest,\n    };\n  }\n\n  validate(_utcDate, _value, _options) {\n    return true;\n  }\n}\n","export const numericPatterns = {\n  month: /^(1[0-2]|0?\\d)/, // 0 to 12\n  date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n  dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n  week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n  hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n  hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n  hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n  hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n  minute: /^[0-5]?\\d/, // 0 to 59\n  second: /^[0-5]?\\d/, // 0 to 59\n\n  singleDigit: /^\\d/, // 0 to 9\n  twoDigits: /^\\d{1,2}/, // 0 to 99\n  threeDigits: /^\\d{1,3}/, // 0 to 999\n  fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n  anyDigitsSigned: /^-?\\d+/,\n  singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n  twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n  threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n  fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n  basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n  basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n  basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n  extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n  extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n  millisecondsInHour,\n  millisecondsInMinute,\n  millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n  if (!parseFnResult) {\n    return parseFnResult;\n  }\n\n  return {\n    value: mapFn(parseFnResult.value),\n    rest: parseFnResult.rest,\n  };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n  const matchResult = dateString.match(pattern);\n\n  if (!matchResult) {\n    return null;\n  }\n\n  return {\n    value: parseInt(matchResult[0], 10),\n    rest: dateString.slice(matchResult[0].length),\n  };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n  const matchResult = dateString.match(pattern);\n\n  if (!matchResult) {\n    return null;\n  }\n\n  // Input is 'Z'\n  if (matchResult[0] === \"Z\") {\n    return {\n      value: 0,\n      rest: dateString.slice(1),\n    };\n  }\n\n  const sign = matchResult[1] === \"+\" ? 1 : -1;\n  const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n  const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n  const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n  return {\n    value:\n      sign *\n      (hours * millisecondsInHour +\n        minutes * millisecondsInMinute +\n        seconds * millisecondsInSecond),\n    rest: dateString.slice(matchResult[0].length),\n  };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n  return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n  switch (n) {\n    case 1:\n      return parseNumericPattern(numericPatterns.singleDigit, dateString);\n    case 2:\n      return parseNumericPattern(numericPatterns.twoDigits, dateString);\n    case 3:\n      return parseNumericPattern(numericPatterns.threeDigits, dateString);\n    case 4:\n      return parseNumericPattern(numericPatterns.fourDigits, dateString);\n    default:\n      return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n  }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n  switch (n) {\n    case 1:\n      return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n    case 2:\n      return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n    case 3:\n      return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n    case 4:\n      return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n    default:\n      return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n  }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n  switch (dayPeriod) {\n    case \"morning\":\n      return 4;\n    case \"evening\":\n      return 17;\n    case \"pm\":\n    case \"noon\":\n    case \"afternoon\":\n      return 12;\n    case \"am\":\n    case \"midnight\":\n    case \"night\":\n    default:\n      return 0;\n  }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n  const isCommonEra = currentYear > 0;\n  // Absolute number of the current year:\n  // 1 -> 1 AC\n  // 0 -> 1 BC\n  // -1 -> 2 BC\n  const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n  let result;\n  if (absCurrentYear <= 50) {\n    result = twoDigitYear || 100;\n  } else {\n    const rangeEnd = absCurrentYear + 50;\n    const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n    const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n    result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n  }\n\n  return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n  const _date = toDate(date, options?.in);\n  const diff = getISOWeek(_date, options) - week;\n  _date.setDate(_date.getDate() - diff * 7);\n  return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n  const _date = toDate(date, options?.in);\n  const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n  // Round the number of weeks to the nearest integer because the number of\n  // milliseconds in a week is not constant (e.g. it's different in the week of\n  // the daylight saving time clock shift).\n  return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n  isLeapYearIndex,\n  parseNDigits,\n  parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n  31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n  priority = 90;\n  subPriority = 1;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"d\":\n        return parseNumericPattern(numericPatterns.date, dateString);\n      case \"do\":\n        return match.ordinalNumber(dateString, { unit: \"date\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(date, value) {\n    const year = date.getFullYear();\n    const isLeapYear = isLeapYearIndex(year);\n    const month = date.getMonth();\n    if (isLeapYear) {\n      return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n    } else {\n      return value >= 1 && value <= DAYS_IN_MONTH[month];\n    }\n  }\n\n  set(date, _flags, value) {\n    date.setDate(value);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\n    \"Y\",\n    \"R\",\n    \"q\",\n    \"Q\",\n    \"w\",\n    \"I\",\n    \"D\",\n    \"i\",\n    \"e\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n  const defaultOptions = getDefaultOptions();\n  const weekStartsOn =\n    options?.weekStartsOn ??\n    options?.locale?.options?.weekStartsOn ??\n    defaultOptions.weekStartsOn ??\n    defaultOptions.locale?.options?.weekStartsOn ??\n    0;\n\n  const date_ = toDate(date, options?.in);\n  const currentDay = date_.getDay();\n\n  const remainder = day % 7;\n  const dayIndex = (remainder + 7) % 7;\n\n  const delta = 7 - weekStartsOn;\n  const diff =\n    day < 0 || day > 6\n      ? day - ((currentDay + delta) % 7)\n      : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n  return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n  const date_ = toDate(date, options?.in);\n  const currentDay = getISODay(date_, options);\n  const diff = day - currentDay;\n  return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n  const day = toDate(date, options?.in).getDay();\n  return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* | Milliseconds in day            |\n * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |\n * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |\n * |  d  | Day of month                   |  D  | Day of year                    |\n * |  e  | Local day of week              |  E  | Day of week                    |\n * |  f  |                                |  F* | Day of week in month           |\n * |  g* | Modified Julian day            |  G  | Era                            |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  i! | ISO day of week                |  I! | ISO week of year               |\n * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |\n * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |\n * |  l* | (deprecated)                   |  L  | Stand-alone month              |\n * |  m  | Minute                         |  M  | Month                          |\n * |  n  |                                |  N  |                                |\n * |  o! | Ordinal number modifier        |  O* | Timezone (GMT)                 |\n * |  p  |                                |  P  |                                |\n * |  q  | Stand-alone quarter            |  Q  | Quarter                        |\n * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |\n * |  u  | Extended year                  |  U* | Cyclic year                    |\n * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |\n * |  w  | Local week of year             |  W* | Week of month                  |\n * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |\n * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |\n * |  z* | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n *   i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n *   `R` is supposed to be used in conjunction with `I` and `i`\n *   for universal ISO week-numbering date, whereas\n *   `Y` is supposed to be used in conjunction with `w` and `e`\n *   for week-numbering date specific to the locale.\n */\nexport const parsers = {\n  G: new EraParser(),\n  y: new YearParser(),\n  Y: new LocalWeekYearParser(),\n  R: new ISOWeekYearParser(),\n  u: new ExtendedYearParser(),\n  Q: new QuarterParser(),\n  q: new StandAloneQuarterParser(),\n  M: new MonthParser(),\n  L: new StandAloneMonthParser(),\n  w: new LocalWeekParser(),\n  I: new ISOWeekParser(),\n  d: new DateParser(),\n  D: new DayOfYearParser(),\n  E: new DayParser(),\n  e: new LocalDayParser(),\n  c: new StandAloneLocalDayParser(),\n  i: new ISODayParser(),\n  a: new AMPMParser(),\n  b: new AMPMMidnightParser(),\n  B: new DayPeriodParser(),\n  h: new Hour1to12Parser(),\n  H: new Hour0to23Parser(),\n  K: new Hour0To11Parser(),\n  k: new Hour1To24Parser(),\n  m: new MinuteParser(),\n  s: new SecondParser(),\n  S: new FractionOfSecondParser(),\n  X: new ISOTimezoneWithZParser(),\n  x: new ISOTimezoneParser(),\n  t: new TimestampSecondsParser(),\n  T: new TimestampMillisecondsParser(),\n};\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n  priority = 140;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      // AD, BC\n      case \"G\":\n      case \"GG\":\n      case \"GGG\":\n        return (\n          match.era(dateString, { width: \"abbreviated\" }) ||\n          match.era(dateString, { width: \"narrow\" })\n        );\n\n      // A, B\n      case \"GGGGG\":\n        return match.era(dateString, { width: \"narrow\" });\n      // Anno Domini, Before Christ\n      case \"GGGG\":\n      default:\n        return (\n          match.era(dateString, { width: \"wide\" }) ||\n          match.era(dateString, { width: \"abbreviated\" }) ||\n          match.era(dateString, { width: \"narrow\" })\n        );\n    }\n  }\n\n  set(date, flags, value) {\n    flags.era = value;\n    date.setFullYear(value, 0, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year     |     y | yy |   yyy |  yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1     |     1 | 01 |   001 |  0001 | 00001 |\n// | AD 12    |    12 | 12 |   012 |  0012 | 00012 |\n// | AD 123   |   123 | 23 |   123 |  0123 | 00123 |\n// | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n  priority = 130;\n  incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n  parse(dateString, token, match) {\n    const valueCallback = (year) => ({\n      year,\n      isTwoDigitYear: token === \"yy\",\n    });\n\n    switch (token) {\n      case \"y\":\n        return mapValue(parseNDigits(4, dateString), valueCallback);\n      case \"yo\":\n        return mapValue(\n          match.ordinalNumber(dateString, {\n            unit: \"year\",\n          }),\n          valueCallback,\n        );\n      default:\n        return mapValue(parseNDigits(token.length, dateString), valueCallback);\n    }\n  }\n\n  validate(_date, value) {\n    return value.isTwoDigitYear || value.year > 0;\n  }\n\n  set(date, flags, value) {\n    const currentYear = date.getFullYear();\n\n    if (value.isTwoDigitYear) {\n      const normalizedTwoDigitYear = normalizeTwoDigitYear(\n        value.year,\n        currentYear,\n      );\n      date.setFullYear(normalizedTwoDigitYear, 0, 1);\n      date.setHours(0, 0, 0, 0);\n      return date;\n    }\n\n    const year =\n      !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n    date.setFullYear(year, 0, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n  priority = 130;\n\n  parse(dateString, token, match) {\n    const valueCallback = (year) => ({\n      year,\n      isTwoDigitYear: token === \"YY\",\n    });\n\n    switch (token) {\n      case \"Y\":\n        return mapValue(parseNDigits(4, dateString), valueCallback);\n      case \"Yo\":\n        return mapValue(\n          match.ordinalNumber(dateString, {\n            unit: \"year\",\n          }),\n          valueCallback,\n        );\n      default:\n        return mapValue(parseNDigits(token.length, dateString), valueCallback);\n    }\n  }\n\n  validate(_date, value) {\n    return value.isTwoDigitYear || value.year > 0;\n  }\n\n  set(date, flags, value, options) {\n    const currentYear = getWeekYear(date, options);\n\n    if (value.isTwoDigitYear) {\n      const normalizedTwoDigitYear = normalizeTwoDigitYear(\n        value.year,\n        currentYear,\n      );\n      date.setFullYear(\n        normalizedTwoDigitYear,\n        0,\n        options.firstWeekContainsDate,\n      );\n      date.setHours(0, 0, 0, 0);\n      return startOfWeek(date, options);\n    }\n\n    const year =\n      !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n    date.setFullYear(year, 0, options.firstWeekContainsDate);\n    date.setHours(0, 0, 0, 0);\n    return startOfWeek(date, options);\n  }\n\n  incompatibleTokens = [\n    \"y\",\n    \"R\",\n    \"u\",\n    \"Q\",\n    \"q\",\n    \"M\",\n    \"L\",\n    \"I\",\n    \"d\",\n    \"D\",\n    \"i\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n  priority = 130;\n\n  parse(dateString, token) {\n    if (token === \"R\") {\n      return parseNDigitsSigned(4, dateString);\n    }\n\n    return parseNDigitsSigned(token.length, dateString);\n  }\n\n  set(date, _flags, value) {\n    const firstWeekOfYear = constructFrom(date, 0);\n    firstWeekOfYear.setFullYear(value, 0, 4);\n    firstWeekOfYear.setHours(0, 0, 0, 0);\n    return startOfISOWeek(firstWeekOfYear);\n  }\n\n  incompatibleTokens = [\n    \"G\",\n    \"y\",\n    \"Y\",\n    \"u\",\n    \"Q\",\n    \"q\",\n    \"M\",\n    \"L\",\n    \"w\",\n    \"d\",\n    \"D\",\n    \"e\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n  priority = 130;\n\n  parse(dateString, token) {\n    if (token === \"u\") {\n      return parseNDigitsSigned(4, dateString);\n    }\n\n    return parseNDigitsSigned(token.length, dateString);\n  }\n\n  set(date, _flags, value) {\n    date.setFullYear(value, 0, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n  priority = 120;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      // 1, 2, 3, 4\n      case \"Q\":\n      case \"QQ\": // 01, 02, 03, 04\n        return parseNDigits(token.length, dateString);\n      // 1st, 2nd, 3rd, 4th\n      case \"Qo\":\n        return match.ordinalNumber(dateString, { unit: \"quarter\" });\n      // Q1, Q2, Q3, Q4\n      case \"QQQ\":\n        return (\n          match.quarter(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.quarter(dateString, {\n            width: \"narrow\",\n            context: \"formatting\",\n          })\n        );\n\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n      case \"QQQQQ\":\n        return match.quarter(dateString, {\n          width: \"narrow\",\n          context: \"formatting\",\n        });\n      // 1st quarter, 2nd quarter, ...\n      case \"QQQQ\":\n      default:\n        return (\n          match.quarter(dateString, {\n            width: \"wide\",\n            context: \"formatting\",\n          }) ||\n          match.quarter(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.quarter(dateString, {\n            width: \"narrow\",\n            context: \"formatting\",\n          })\n        );\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 1 && value <= 4;\n  }\n\n  set(date, _flags, value) {\n    date.setMonth((value - 1) * 3, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\n    \"Y\",\n    \"R\",\n    \"q\",\n    \"M\",\n    \"L\",\n    \"w\",\n    \"I\",\n    \"d\",\n    \"D\",\n    \"i\",\n    \"e\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n  priority = 120;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      // 1, 2, 3, 4\n      case \"q\":\n      case \"qq\": // 01, 02, 03, 04\n        return parseNDigits(token.length, dateString);\n      // 1st, 2nd, 3rd, 4th\n      case \"qo\":\n        return match.ordinalNumber(dateString, { unit: \"quarter\" });\n      // Q1, Q2, Q3, Q4\n      case \"qqq\":\n        return (\n          match.quarter(dateString, {\n            width: \"abbreviated\",\n            context: \"standalone\",\n          }) ||\n          match.quarter(dateString, {\n            width: \"narrow\",\n            context: \"standalone\",\n          })\n        );\n\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n      case \"qqqqq\":\n        return match.quarter(dateString, {\n          width: \"narrow\",\n          context: \"standalone\",\n        });\n      // 1st quarter, 2nd quarter, ...\n      case \"qqqq\":\n      default:\n        return (\n          match.quarter(dateString, {\n            width: \"wide\",\n            context: \"standalone\",\n          }) ||\n          match.quarter(dateString, {\n            width: \"abbreviated\",\n            context: \"standalone\",\n          }) ||\n          match.quarter(dateString, {\n            width: \"narrow\",\n            context: \"standalone\",\n          })\n        );\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 1 && value <= 4;\n  }\n\n  set(date, _flags, value) {\n    date.setMonth((value - 1) * 3, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\n    \"Y\",\n    \"R\",\n    \"Q\",\n    \"M\",\n    \"L\",\n    \"w\",\n    \"I\",\n    \"d\",\n    \"D\",\n    \"i\",\n    \"e\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n  incompatibleTokens = [\n    \"Y\",\n    \"R\",\n    \"q\",\n    \"Q\",\n    \"L\",\n    \"w\",\n    \"I\",\n    \"D\",\n    \"i\",\n    \"e\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n\n  priority = 110;\n\n  parse(dateString, token, match) {\n    const valueCallback = (value) => value - 1;\n\n    switch (token) {\n      // 1, 2, ..., 12\n      case \"M\":\n        return mapValue(\n          parseNumericPattern(numericPatterns.month, dateString),\n          valueCallback,\n        );\n      // 01, 02, ..., 12\n      case \"MM\":\n        return mapValue(parseNDigits(2, dateString), valueCallback);\n      // 1st, 2nd, ..., 12th\n      case \"Mo\":\n        return mapValue(\n          match.ordinalNumber(dateString, {\n            unit: \"month\",\n          }),\n          valueCallback,\n        );\n      // Jan, Feb, ..., Dec\n      case \"MMM\":\n        return (\n          match.month(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n        );\n\n      // J, F, ..., D\n      case \"MMMMM\":\n        return match.month(dateString, {\n          width: \"narrow\",\n          context: \"formatting\",\n        });\n      // January, February, ..., December\n      case \"MMMM\":\n      default:\n        return (\n          match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n          match.month(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n        );\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 0 && value <= 11;\n  }\n\n  set(date, _flags, value) {\n    date.setMonth(value, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n  priority = 110;\n\n  parse(dateString, token, match) {\n    const valueCallback = (value) => value - 1;\n\n    switch (token) {\n      // 1, 2, ..., 12\n      case \"L\":\n        return mapValue(\n          parseNumericPattern(numericPatterns.month, dateString),\n          valueCallback,\n        );\n      // 01, 02, ..., 12\n      case \"LL\":\n        return mapValue(parseNDigits(2, dateString), valueCallback);\n      // 1st, 2nd, ..., 12th\n      case \"Lo\":\n        return mapValue(\n          match.ordinalNumber(dateString, {\n            unit: \"month\",\n          }),\n          valueCallback,\n        );\n      // Jan, Feb, ..., Dec\n      case \"LLL\":\n        return (\n          match.month(dateString, {\n            width: \"abbreviated\",\n            context: \"standalone\",\n          }) ||\n          match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n        );\n\n      // J, F, ..., D\n      case \"LLLLL\":\n        return match.month(dateString, {\n          width: \"narrow\",\n          context: \"standalone\",\n        });\n      // January, February, ..., December\n      case \"LLLL\":\n      default:\n        return (\n          match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n          match.month(dateString, {\n            width: \"abbreviated\",\n            context: \"standalone\",\n          }) ||\n          match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n        );\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 0 && value <= 11;\n  }\n\n  set(date, _flags, value) {\n    date.setMonth(value, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\n    \"Y\",\n    \"R\",\n    \"q\",\n    \"Q\",\n    \"M\",\n    \"w\",\n    \"I\",\n    \"D\",\n    \"i\",\n    \"e\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n  priority = 100;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"w\":\n        return parseNumericPattern(numericPatterns.week, dateString);\n      case \"wo\":\n        return match.ordinalNumber(dateString, { unit: \"week\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 1 && value <= 53;\n  }\n\n  set(date, _flags, value, options) {\n    return startOfWeek(setWeek(date, value, options), options);\n  }\n\n  incompatibleTokens = [\n    \"y\",\n    \"R\",\n    \"u\",\n    \"q\",\n    \"Q\",\n    \"M\",\n    \"L\",\n    \"I\",\n    \"d\",\n    \"D\",\n    \"i\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n *   weekStartsOn: 1,\n *   firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n  const date_ = toDate(date, options?.in);\n  const diff = getWeek(date_, options) - week;\n  date_.setDate(date_.getDate() - diff * 7);\n  return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n  priority = 100;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"I\":\n        return parseNumericPattern(numericPatterns.week, dateString);\n      case \"Io\":\n        return match.ordinalNumber(dateString, { unit: \"week\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 1 && value <= 53;\n  }\n\n  set(date, _flags, value) {\n    return startOfISOWeek(setISOWeek(date, value));\n  }\n\n  incompatibleTokens = [\n    \"y\",\n    \"Y\",\n    \"u\",\n    \"q\",\n    \"Q\",\n    \"M\",\n    \"L\",\n    \"w\",\n    \"d\",\n    \"D\",\n    \"e\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n  isLeapYearIndex,\n  parseNDigits,\n  parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n  priority = 90;\n\n  subpriority = 1;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"D\":\n      case \"DD\":\n        return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n      case \"Do\":\n        return match.ordinalNumber(dateString, { unit: \"date\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(date, value) {\n    const year = date.getFullYear();\n    const isLeapYear = isLeapYearIndex(year);\n    if (isLeapYear) {\n      return value >= 1 && value <= 366;\n    } else {\n      return value >= 1 && value <= 365;\n    }\n  }\n\n  set(date, _flags, value) {\n    date.setMonth(0, value);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\n    \"Y\",\n    \"R\",\n    \"q\",\n    \"Q\",\n    \"M\",\n    \"L\",\n    \"w\",\n    \"I\",\n    \"d\",\n    \"E\",\n    \"i\",\n    \"e\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n  priority = 90;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      // Tue\n      case \"E\":\n      case \"EE\":\n      case \"EEE\":\n        return (\n          match.day(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n          match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n        );\n\n      // T\n      case \"EEEEE\":\n        return match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\",\n        });\n      // Tu\n      case \"EEEEEE\":\n        return (\n          match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n          match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n        );\n\n      // Tuesday\n      case \"EEEE\":\n      default:\n        return (\n          match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n          match.day(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n          match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n        );\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 0 && value <= 6;\n  }\n\n  set(date, _flags, value, options) {\n    date = setDay(date, value, options);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n  priority = 90;\n  parse(dateString, token, match, options) {\n    const valueCallback = (value) => {\n      // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n      const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n      return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n    };\n\n    switch (token) {\n      // 3\n      case \"e\":\n      case \"ee\": // 03\n        return mapValue(parseNDigits(token.length, dateString), valueCallback);\n      // 3rd\n      case \"eo\":\n        return mapValue(\n          match.ordinalNumber(dateString, {\n            unit: \"day\",\n          }),\n          valueCallback,\n        );\n      // Tue\n      case \"eee\":\n        return (\n          match.day(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n          match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n        );\n\n      // T\n      case \"eeeee\":\n        return match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\",\n        });\n      // Tu\n      case \"eeeeee\":\n        return (\n          match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n          match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n        );\n\n      // Tuesday\n      case \"eeee\":\n      default:\n        return (\n          match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n          match.day(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n          match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n        );\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 0 && value <= 6;\n  }\n\n  set(date, _flags, value, options) {\n    date = setDay(date, value, options);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\n    \"y\",\n    \"R\",\n    \"u\",\n    \"q\",\n    \"Q\",\n    \"M\",\n    \"L\",\n    \"I\",\n    \"d\",\n    \"D\",\n    \"E\",\n    \"i\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n  priority = 90;\n\n  parse(dateString, token, match, options) {\n    const valueCallback = (value) => {\n      // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n      const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n      return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n    };\n\n    switch (token) {\n      // 3\n      case \"c\":\n      case \"cc\": // 03\n        return mapValue(parseNDigits(token.length, dateString), valueCallback);\n      // 3rd\n      case \"co\":\n        return mapValue(\n          match.ordinalNumber(dateString, {\n            unit: \"day\",\n          }),\n          valueCallback,\n        );\n      // Tue\n      case \"ccc\":\n        return (\n          match.day(dateString, {\n            width: \"abbreviated\",\n            context: \"standalone\",\n          }) ||\n          match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n          match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n        );\n\n      // T\n      case \"ccccc\":\n        return match.day(dateString, {\n          width: \"narrow\",\n          context: \"standalone\",\n        });\n      // Tu\n      case \"cccccc\":\n        return (\n          match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n          match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n        );\n\n      // Tuesday\n      case \"cccc\":\n      default:\n        return (\n          match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n          match.day(dateString, {\n            width: \"abbreviated\",\n            context: \"standalone\",\n          }) ||\n          match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n          match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n        );\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 0 && value <= 6;\n  }\n\n  set(date, _flags, value, options) {\n    date = setDay(date, value, options);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\n    \"y\",\n    \"R\",\n    \"u\",\n    \"q\",\n    \"Q\",\n    \"M\",\n    \"L\",\n    \"I\",\n    \"d\",\n    \"D\",\n    \"E\",\n    \"i\",\n    \"e\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n  priority = 90;\n\n  parse(dateString, token, match) {\n    const valueCallback = (value) => {\n      if (value === 0) {\n        return 7;\n      }\n      return value;\n    };\n\n    switch (token) {\n      // 2\n      case \"i\":\n      case \"ii\": // 02\n        return parseNDigits(token.length, dateString);\n      // 2nd\n      case \"io\":\n        return match.ordinalNumber(dateString, { unit: \"day\" });\n      // Tue\n      case \"iii\":\n        return mapValue(\n          match.day(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n            match.day(dateString, {\n              width: \"short\",\n              context: \"formatting\",\n            }) ||\n            match.day(dateString, {\n              width: \"narrow\",\n              context: \"formatting\",\n            }),\n          valueCallback,\n        );\n      // T\n      case \"iiiii\":\n        return mapValue(\n          match.day(dateString, {\n            width: \"narrow\",\n            context: \"formatting\",\n          }),\n          valueCallback,\n        );\n      // Tu\n      case \"iiiiii\":\n        return mapValue(\n          match.day(dateString, {\n            width: \"short\",\n            context: \"formatting\",\n          }) ||\n            match.day(dateString, {\n              width: \"narrow\",\n              context: \"formatting\",\n            }),\n          valueCallback,\n        );\n      // Tuesday\n      case \"iiii\":\n      default:\n        return mapValue(\n          match.day(dateString, {\n            width: \"wide\",\n            context: \"formatting\",\n          }) ||\n            match.day(dateString, {\n              width: \"abbreviated\",\n              context: \"formatting\",\n            }) ||\n            match.day(dateString, {\n              width: \"short\",\n              context: \"formatting\",\n            }) ||\n            match.day(dateString, {\n              width: \"narrow\",\n              context: \"formatting\",\n            }),\n          valueCallback,\n        );\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 1 && value <= 7;\n  }\n\n  set(date, _flags, value) {\n    date = setISODay(date, value);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\n    \"y\",\n    \"Y\",\n    \"u\",\n    \"q\",\n    \"Q\",\n    \"M\",\n    \"L\",\n    \"w\",\n    \"d\",\n    \"D\",\n    \"E\",\n    \"e\",\n    \"c\",\n    \"t\",\n    \"T\",\n  ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n  priority = 80;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"a\":\n      case \"aa\":\n      case \"aaa\":\n        return (\n          match.dayPeriod(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.dayPeriod(dateString, {\n            width: \"narrow\",\n            context: \"formatting\",\n          })\n        );\n\n      case \"aaaaa\":\n        return match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\",\n        });\n      case \"aaaa\":\n      default:\n        return (\n          match.dayPeriod(dateString, {\n            width: \"wide\",\n            context: \"formatting\",\n          }) ||\n          match.dayPeriod(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.dayPeriod(dateString, {\n            width: \"narrow\",\n            context: \"formatting\",\n          })\n        );\n    }\n  }\n\n  set(date, _flags, value) {\n    date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n  priority = 80;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"b\":\n      case \"bb\":\n      case \"bbb\":\n        return (\n          match.dayPeriod(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.dayPeriod(dateString, {\n            width: \"narrow\",\n            context: \"formatting\",\n          })\n        );\n\n      case \"bbbbb\":\n        return match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\",\n        });\n      case \"bbbb\":\n      default:\n        return (\n          match.dayPeriod(dateString, {\n            width: \"wide\",\n            context: \"formatting\",\n          }) ||\n          match.dayPeriod(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.dayPeriod(dateString, {\n            width: \"narrow\",\n            context: \"formatting\",\n          })\n        );\n    }\n  }\n\n  set(date, _flags, value) {\n    date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n  priority = 80;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"B\":\n      case \"BB\":\n      case \"BBB\":\n        return (\n          match.dayPeriod(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.dayPeriod(dateString, {\n            width: \"narrow\",\n            context: \"formatting\",\n          })\n        );\n\n      case \"BBBBB\":\n        return match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\",\n        });\n      case \"BBBB\":\n      default:\n        return (\n          match.dayPeriod(dateString, {\n            width: \"wide\",\n            context: \"formatting\",\n          }) ||\n          match.dayPeriod(dateString, {\n            width: \"abbreviated\",\n            context: \"formatting\",\n          }) ||\n          match.dayPeriod(dateString, {\n            width: \"narrow\",\n            context: \"formatting\",\n          })\n        );\n    }\n  }\n\n  set(date, _flags, value) {\n    date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n  priority = 70;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"h\":\n        return parseNumericPattern(numericPatterns.hour12h, dateString);\n      case \"ho\":\n        return match.ordinalNumber(dateString, { unit: \"hour\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 1 && value <= 12;\n  }\n\n  set(date, _flags, value) {\n    const isPM = date.getHours() >= 12;\n    if (isPM && value < 12) {\n      date.setHours(value + 12, 0, 0, 0);\n    } else if (!isPM && value === 12) {\n      date.setHours(0, 0, 0, 0);\n    } else {\n      date.setHours(value, 0, 0, 0);\n    }\n    return date;\n  }\n\n  incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n  priority = 70;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"H\":\n        return parseNumericPattern(numericPatterns.hour23h, dateString);\n      case \"Ho\":\n        return match.ordinalNumber(dateString, { unit: \"hour\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 0 && value <= 23;\n  }\n\n  set(date, _flags, value) {\n    date.setHours(value, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n  priority = 70;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"K\":\n        return parseNumericPattern(numericPatterns.hour11h, dateString);\n      case \"Ko\":\n        return match.ordinalNumber(dateString, { unit: \"hour\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 0 && value <= 11;\n  }\n\n  set(date, _flags, value) {\n    const isPM = date.getHours() >= 12;\n    if (isPM && value < 12) {\n      date.setHours(value + 12, 0, 0, 0);\n    } else {\n      date.setHours(value, 0, 0, 0);\n    }\n    return date;\n  }\n\n  incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n  priority = 70;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"k\":\n        return parseNumericPattern(numericPatterns.hour24h, dateString);\n      case \"ko\":\n        return match.ordinalNumber(dateString, { unit: \"hour\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 1 && value <= 24;\n  }\n\n  set(date, _flags, value) {\n    const hours = value <= 24 ? value % 24 : value;\n    date.setHours(hours, 0, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n  priority = 60;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"m\":\n        return parseNumericPattern(numericPatterns.minute, dateString);\n      case \"mo\":\n        return match.ordinalNumber(dateString, { unit: \"minute\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 0 && value <= 59;\n  }\n\n  set(date, _flags, value) {\n    date.setMinutes(value, 0, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n  priority = 50;\n\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"s\":\n        return parseNumericPattern(numericPatterns.second, dateString);\n      case \"so\":\n        return match.ordinalNumber(dateString, { unit: \"second\" });\n      default:\n        return parseNDigits(token.length, dateString);\n    }\n  }\n\n  validate(_date, value) {\n    return value >= 0 && value <= 59;\n  }\n\n  set(date, _flags, value) {\n    date.setSeconds(value, 0);\n    return date;\n  }\n\n  incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n  priority = 30;\n\n  parse(dateString, token) {\n    const valueCallback = (value) =>\n      Math.trunc(value * Math.pow(10, -token.length + 3));\n    return mapValue(parseNDigits(token.length, dateString), valueCallback);\n  }\n\n  set(date, _flags, value) {\n    date.setMilliseconds(value);\n    return date;\n  }\n\n  incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n  priority = 10;\n\n  parse(dateString, token) {\n    switch (token) {\n      case \"X\":\n        return parseTimezonePattern(\n          timezonePatterns.basicOptionalMinutes,\n          dateString,\n        );\n      case \"XX\":\n        return parseTimezonePattern(timezonePatterns.basic, dateString);\n      case \"XXXX\":\n        return parseTimezonePattern(\n          timezonePatterns.basicOptionalSeconds,\n          dateString,\n        );\n      case \"XXXXX\":\n        return parseTimezonePattern(\n          timezonePatterns.extendedOptionalSeconds,\n          dateString,\n        );\n      case \"XXX\":\n      default:\n        return parseTimezonePattern(timezonePatterns.extended, dateString);\n    }\n  }\n\n  set(date, flags, value) {\n    if (flags.timestampIsSet) return date;\n    return constructFrom(\n      date,\n      date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n    );\n  }\n\n  incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n  priority = 10;\n\n  parse(dateString, token) {\n    switch (token) {\n      case \"x\":\n        return parseTimezonePattern(\n          timezonePatterns.basicOptionalMinutes,\n          dateString,\n        );\n      case \"xx\":\n        return parseTimezonePattern(timezonePatterns.basic, dateString);\n      case \"xxxx\":\n        return parseTimezonePattern(\n          timezonePatterns.basicOptionalSeconds,\n          dateString,\n        );\n      case \"xxxxx\":\n        return parseTimezonePattern(\n          timezonePatterns.extendedOptionalSeconds,\n          dateString,\n        );\n      case \"xxx\":\n      default:\n        return parseTimezonePattern(timezonePatterns.extended, dateString);\n    }\n  }\n\n  set(date, flags, value) {\n    if (flags.timestampIsSet) return date;\n    return constructFrom(\n      date,\n      date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n    );\n  }\n\n  incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n  priority = 40;\n\n  parse(dateString) {\n    return parseAnyDigitsSigned(dateString);\n  }\n\n  set(date, _flags, value) {\n    return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n  }\n\n  incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n  priority = 20;\n\n  parse(dateString) {\n    return parseAnyDigitsSigned(dateString);\n  }\n\n  set(date, _flags, value) {\n    return [constructFrom(date, value), { timestampIsSet: true }];\n  }\n\n  incompatibleTokens = \"*\";\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n  isProtectedDayOfYearToken,\n  isProtectedWeekYearToken,\n  warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n//   (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n//   except a single quote symbol, which ends the sequence.\n//   Two quote characters do not end the sequence.\n//   If there is no matching single quote\n//   then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n  /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit                            |Prior| Pattern | Result examples                   | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era                             | 140 | G..GGG  | AD, BC                            |       |\n * |                                 |     | GGGG    | Anno Domini, Before Christ        | 2     |\n * |                                 |     | GGGGG   | A, B                              |       |\n * | Calendar year                   | 130 | y       | 44, 1, 1900, 2017, 9999           | 4     |\n * |                                 |     | yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |\n * |                                 |     | yy      | 44, 01, 00, 17                    | 4     |\n * |                                 |     | yyy     | 044, 001, 123, 999                | 4     |\n * |                                 |     | yyyy    | 0044, 0001, 1900, 2017            | 4     |\n * |                                 |     | yyyyy   | ...                               | 2,4   |\n * | Local week-numbering year       | 130 | Y       | 44, 1, 1900, 2017, 9000           | 4     |\n * |                                 |     | Yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |\n * |                                 |     | YY      | 44, 01, 00, 17                    | 4,6   |\n * |                                 |     | YYY     | 044, 001, 123, 999                | 4     |\n * |                                 |     | YYYY    | 0044, 0001, 1900, 2017            | 4,6   |\n * |                                 |     | YYYYY   | ...                               | 2,4   |\n * | ISO week-numbering year         | 130 | R       | -43, 1, 1900, 2017, 9999, -9999   | 4,5   |\n * |                                 |     | RR      | -43, 01, 00, 17                   | 4,5   |\n * |                                 |     | RRR     | -043, 001, 123, 999, -999         | 4,5   |\n * |                                 |     | RRRR    | -0043, 0001, 2017, 9999, -9999    | 4,5   |\n * |                                 |     | RRRRR   | ...                               | 2,4,5 |\n * | Extended year                   | 130 | u       | -43, 1, 1900, 2017, 9999, -999    | 4     |\n * |                                 |     | uu      | -43, 01, 99, -99                  | 4     |\n * |                                 |     | uuu     | -043, 001, 123, 999, -999         | 4     |\n * |                                 |     | uuuu    | -0043, 0001, 2017, 9999, -9999    | 4     |\n * |                                 |     | uuuuu   | ...                               | 2,4   |\n * | Quarter (formatting)            | 120 | Q       | 1, 2, 3, 4                        |       |\n * |                                 |     | Qo      | 1st, 2nd, 3rd, 4th                | 5     |\n * |                                 |     | QQ      | 01, 02, 03, 04                    |       |\n * |                                 |     | QQQ     | Q1, Q2, Q3, Q4                    |       |\n * |                                 |     | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 |     | QQQQQ   | 1, 2, 3, 4                        | 4     |\n * | Quarter (stand-alone)           | 120 | q       | 1, 2, 3, 4                        |       |\n * |                                 |     | qo      | 1st, 2nd, 3rd, 4th                | 5     |\n * |                                 |     | qq      | 01, 02, 03, 04                    |       |\n * |                                 |     | qqq     | Q1, Q2, Q3, Q4                    |       |\n * |                                 |     | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 |     | qqqqq   | 1, 2, 3, 4                        | 3     |\n * | Month (formatting)              | 110 | M       | 1, 2, ..., 12                     |       |\n * |                                 |     | Mo      | 1st, 2nd, ..., 12th               | 5     |\n * |                                 |     | MM      | 01, 02, ..., 12                   |       |\n * |                                 |     | MMM     | Jan, Feb, ..., Dec                |       |\n * |                                 |     | MMMM    | January, February, ..., December  | 2     |\n * |                                 |     | MMMMM   | J, F, ..., D                      |       |\n * | Month (stand-alone)             | 110 | L       | 1, 2, ..., 12                     |       |\n * |                                 |     | Lo      | 1st, 2nd, ..., 12th               | 5     |\n * |                                 |     | LL      | 01, 02, ..., 12                   |       |\n * |                                 |     | LLL     | Jan, Feb, ..., Dec                |       |\n * |                                 |     | LLLL    | January, February, ..., December  | 2     |\n * |                                 |     | LLLLL   | J, F, ..., D                      |       |\n * | Local week of year              | 100 | w       | 1, 2, ..., 53                     |       |\n * |                                 |     | wo      | 1st, 2nd, ..., 53th               | 5     |\n * |                                 |     | ww      | 01, 02, ..., 53                   |       |\n * | ISO week of year                | 100 | I       | 1, 2, ..., 53                     | 5     |\n * |                                 |     | Io      | 1st, 2nd, ..., 53th               | 5     |\n * |                                 |     | II      | 01, 02, ..., 53                   | 5     |\n * | Day of month                    |  90 | d       | 1, 2, ..., 31                     |       |\n * |                                 |     | do      | 1st, 2nd, ..., 31st               | 5     |\n * |                                 |     | dd      | 01, 02, ..., 31                   |       |\n * | Day of year                     |  90 | D       | 1, 2, ..., 365, 366               | 7     |\n * |                                 |     | Do      | 1st, 2nd, ..., 365th, 366th       | 5     |\n * |                                 |     | DD      | 01, 02, ..., 365, 366             | 7     |\n * |                                 |     | DDD     | 001, 002, ..., 365, 366           |       |\n * |                                 |     | DDDD    | ...                               | 2     |\n * | Day of week (formatting)        |  90 | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 |     | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 |     | EEEEE   | M, T, W, T, F, S, S               |       |\n * |                                 |     | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | ISO day of week (formatting)    |  90 | i       | 1, 2, 3, ..., 7                   | 5     |\n * |                                 |     | io      | 1st, 2nd, ..., 7th                | 5     |\n * |                                 |     | ii      | 01, 02, ..., 07                   | 5     |\n * |                                 |     | iii     | Mon, Tue, Wed, ..., Sun           | 5     |\n * |                                 |     | iiii    | Monday, Tuesday, ..., Sunday      | 2,5   |\n * |                                 |     | iiiii   | M, T, W, T, F, S, S               | 5     |\n * |                                 |     | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 5     |\n * | Local day of week (formatting)  |  90 | e       | 2, 3, 4, ..., 1                   |       |\n * |                                 |     | eo      | 2nd, 3rd, ..., 1st                | 5     |\n * |                                 |     | ee      | 02, 03, ..., 01                   |       |\n * |                                 |     | eee     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 |     | eeee    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 |     | eeeee   | M, T, W, T, F, S, S               |       |\n * |                                 |     | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | Local day of week (stand-alone) |  90 | c       | 2, 3, 4, ..., 1                   |       |\n * |                                 |     | co      | 2nd, 3rd, ..., 1st                | 5     |\n * |                                 |     | cc      | 02, 03, ..., 01                   |       |\n * |                                 |     | ccc     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 |     | cccc    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 |     | ccccc   | M, T, W, T, F, S, S               |       |\n * |                                 |     | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | AM, PM                          |  80 | a..aaa  | AM, PM                            |       |\n * |                                 |     | aaaa    | a.m., p.m.                        | 2     |\n * |                                 |     | aaaaa   | a, p                              |       |\n * | AM, PM, noon, midnight          |  80 | b..bbb  | AM, PM, noon, midnight            |       |\n * |                                 |     | bbbb    | a.m., p.m., noon, midnight        | 2     |\n * |                                 |     | bbbbb   | a, p, n, mi                       |       |\n * | Flexible day period             |  80 | B..BBB  | at night, in the morning, ...     |       |\n * |                                 |     | BBBB    | at night, in the morning, ...     | 2     |\n * |                                 |     | BBBBB   | at night, in the morning, ...     |       |\n * | Hour [1-12]                     |  70 | h       | 1, 2, ..., 11, 12                 |       |\n * |                                 |     | ho      | 1st, 2nd, ..., 11th, 12th         | 5     |\n * |                                 |     | hh      | 01, 02, ..., 11, 12               |       |\n * | Hour [0-23]                     |  70 | H       | 0, 1, 2, ..., 23                  |       |\n * |                                 |     | Ho      | 0th, 1st, 2nd, ..., 23rd          | 5     |\n * |                                 |     | HH      | 00, 01, 02, ..., 23               |       |\n * | Hour [0-11]                     |  70 | K       | 1, 2, ..., 11, 0                  |       |\n * |                                 |     | Ko      | 1st, 2nd, ..., 11th, 0th          | 5     |\n * |                                 |     | KK      | 01, 02, ..., 11, 00               |       |\n * | Hour [1-24]                     |  70 | k       | 24, 1, 2, ..., 23                 |       |\n * |                                 |     | ko      | 24th, 1st, 2nd, ..., 23rd         | 5     |\n * |                                 |     | kk      | 24, 01, 02, ..., 23               |       |\n * | Minute                          |  60 | m       | 0, 1, ..., 59                     |       |\n * |                                 |     | mo      | 0th, 1st, ..., 59th               | 5     |\n * |                                 |     | mm      | 00, 01, ..., 59                   |       |\n * | Second                          |  50 | s       | 0, 1, ..., 59                     |       |\n * |                                 |     | so      | 0th, 1st, ..., 59th               | 5     |\n * |                                 |     | ss      | 00, 01, ..., 59                   |       |\n * | Seconds timestamp               |  40 | t       | 512969520                         |       |\n * |                                 |     | tt      | ...                               | 2     |\n * | Fraction of second              |  30 | S       | 0, 1, ..., 9                      |       |\n * |                                 |     | SS      | 00, 01, ..., 99                   |       |\n * |                                 |     | SSS     | 000, 001, ..., 999                |       |\n * |                                 |     | SSSS    | ...                               | 2     |\n * | Milliseconds timestamp          |  20 | T       | 512969520900                      |       |\n * |                                 |     | TT      | ...                               | 2     |\n * | Timezone (ISO-8601 w/ Z)        |  10 | X       | -08, +0530, Z                     |       |\n * |                                 |     | XX      | -0800, +0530, Z                   |       |\n * |                                 |     | XXX     | -08:00, +05:30, Z                 |       |\n * |                                 |     | XXXX    | -0800, +0530, Z, +123456          | 2     |\n * |                                 |     | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |\n * | Timezone (ISO-8601 w/o Z)       |  10 | x       | -08, +0530, +00                   |       |\n * |                                 |     | xx      | -0800, +0530, +0000               |       |\n * |                                 |     | xxx     | -08:00, +05:30, +00:00            | 2     |\n * |                                 |     | xxxx    | -0800, +0530, +0000, +123456      |       |\n * |                                 |     | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |\n * | Long localized date             |  NA | P       | 05/29/1453                        | 5,8   |\n * |                                 |     | PP      | May 29, 1453                      |       |\n * |                                 |     | PPP     | May 29th, 1453                    |       |\n * |                                 |     | PPPP    | Sunday, May 29th, 1453            | 2,5,8 |\n * | Long localized time             |  NA | p       | 12:00 AM                          | 5,8   |\n * |                                 |     | pp      | 12:00:00 AM                       |       |\n * | Combination of date and time    |  NA | Pp      | 05/29/1453, 12:00 AM              |       |\n * |                                 |     | PPpp    | May 29, 1453, 12:00:00 AM         |       |\n * |                                 |     | PPPpp   | May 29th, 1453 at ...             |       |\n * |                                 |     | PPPPpp  | Sunday, May 29th, 1453 at ...     | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n *    are the same as \"stand-alone\" units, but are different in some languages.\n *    \"Formatting\" units are declined according to the rules of the language\n *    in the context of a date. \"Stand-alone\" units are always nominative singular.\n *    In `format` function, they will produce different result:\n *\n *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n *    `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n *    the single quote characters (see below).\n *    If the sequence is longer than listed in table:\n *    - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n *      as wide as the sequence\n *    - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n *      These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n *    These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n *    | Year | `y` | `u` |\n *    |------|-----|-----|\n *    | AC 1 |   1 |   1 |\n *    | BC 1 |   1 |   0 |\n *    | BC 2 |   2 |  -1 |\n *\n *    Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n *    `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n *    `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n *    while `uu` will just assign the year as is:\n *\n *    `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n *    `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n *    except local week-numbering years are dependent on `options.weekStartsOn`\n *    and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n *    and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n *    - `i`: ISO day of week\n *    - `I`: ISO week of year\n *    - `R`: ISO week-numbering year\n *    - `o`: ordinal number modifier\n *    - `P`: long localized date\n *    - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n *    on the given locale.\n *\n *    using `en-US` locale: `P` => `MM/dd/yyyy`\n *    using `en-US` locale: `p` => `hh:mm a`\n *    using `pt-BR` locale: `P` => `dd/MM/yyyy`\n *    using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n *   locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n  const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n  const defaultOptions = getDefaultOptions();\n  const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n  const firstWeekContainsDate =\n    options?.firstWeekContainsDate ??\n    options?.locale?.options?.firstWeekContainsDate ??\n    defaultOptions.firstWeekContainsDate ??\n    defaultOptions.locale?.options?.firstWeekContainsDate ??\n    1;\n\n  const weekStartsOn =\n    options?.weekStartsOn ??\n    options?.locale?.options?.weekStartsOn ??\n    defaultOptions.weekStartsOn ??\n    defaultOptions.locale?.options?.weekStartsOn ??\n    0;\n\n  if (!formatStr)\n    return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n  const subFnOptions = {\n    firstWeekContainsDate,\n    weekStartsOn,\n    locale,\n  };\n\n  // If timezone isn't specified, it will try to use the context or\n  // the reference date and fallback to the system time zone.\n  const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n  const tokens = formatStr\n    .match(longFormattingTokensRegExp)\n    .map((substring) => {\n      const firstCharacter = substring[0];\n      if (firstCharacter in longFormatters) {\n        const longFormatter = longFormatters[firstCharacter];\n        return longFormatter(substring, locale.formatLong);\n      }\n      return substring;\n    })\n    .join(\"\")\n    .match(formattingTokensRegExp);\n\n  const usedTokens = [];\n\n  for (let token of tokens) {\n    if (\n      !options?.useAdditionalWeekYearTokens &&\n      isProtectedWeekYearToken(token)\n    ) {\n      warnOrThrowProtectedError(token, formatStr, dateStr);\n    }\n    if (\n      !options?.useAdditionalDayOfYearTokens &&\n      isProtectedDayOfYearToken(token)\n    ) {\n      warnOrThrowProtectedError(token, formatStr, dateStr);\n    }\n\n    const firstCharacter = token[0];\n    const parser = parsers[firstCharacter];\n    if (parser) {\n      const { incompatibleTokens } = parser;\n      if (Array.isArray(incompatibleTokens)) {\n        const incompatibleToken = usedTokens.find(\n          (usedToken) =>\n            incompatibleTokens.includes(usedToken.token) ||\n            usedToken.token === firstCharacter,\n        );\n        if (incompatibleToken) {\n          throw new RangeError(\n            `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n          );\n        }\n      } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n        throw new RangeError(\n          `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n        );\n      }\n\n      usedTokens.push({ token: firstCharacter, fullToken: token });\n\n      const parseResult = parser.run(\n        dateStr,\n        token,\n        locale.match,\n        subFnOptions,\n      );\n\n      if (!parseResult) {\n        return invalidDate();\n      }\n\n      setters.push(parseResult.setter);\n\n      dateStr = parseResult.rest;\n    } else {\n      if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n        throw new RangeError(\n          \"Format string contains an unescaped latin alphabet character `\" +\n            firstCharacter +\n            \"`\",\n        );\n      }\n\n      // Replace two single quote characters with one single quote character\n      if (token === \"''\") {\n        token = \"'\";\n      } else if (firstCharacter === \"'\") {\n        token = cleanEscapedString(token);\n      }\n\n      // Cut token from string, or, if string doesn't match the token, return Invalid Date\n      if (dateStr.indexOf(token) === 0) {\n        dateStr = dateStr.slice(token.length);\n      } else {\n        return invalidDate();\n      }\n    }\n  }\n\n  // Check if the remaining input contains something other than whitespace\n  if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n    return invalidDate();\n  }\n\n  const uniquePrioritySetters = setters\n    .map((setter) => setter.priority)\n    .sort((a, b) => b - a)\n    .filter((priority, index, array) => array.indexOf(priority) === index)\n    .map((priority) =>\n      setters\n        .filter((setter) => setter.priority === priority)\n        .sort((a, b) => b.subPriority - a.subPriority),\n    )\n    .map((setterArray) => setterArray[0]);\n\n  let date = toDate(referenceDate, options?.in);\n\n  if (isNaN(+date)) return invalidDate();\n\n  const flags = {};\n  for (const setter of uniquePrioritySetters) {\n    if (!setter.validate(date, subFnOptions)) {\n      return invalidDate();\n    }\n\n    const result = setter.set(date, flags, subFnOptions);\n    // Result is tuple (date, flags)\n    if (Array.isArray(result)) {\n      date = result[0];\n      Object.assign(flags, result[1]);\n      // Result is date\n    } else {\n      date = result;\n    }\n  }\n\n  return date;\n}\n\nfunction cleanEscapedString(input) {\n  return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n  return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import {\n  millisecondsInHour,\n  millisecondsInMinute,\n} from \"./constants.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n  const invalidDate = () => constructFrom(options?.in, NaN);\n\n  const additionalDigits = options?.additionalDigits ?? 2;\n  const dateStrings = splitDateString(argument);\n\n  let date;\n  if (dateStrings.date) {\n    const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n    date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n  }\n\n  if (!date || isNaN(+date)) return invalidDate();\n\n  const timestamp = +date;\n  let time = 0;\n  let offset;\n\n  if (dateStrings.time) {\n    time = parseTime(dateStrings.time);\n    if (isNaN(time)) return invalidDate();\n  }\n\n  if (dateStrings.timezone) {\n    offset = parseTimezone(dateStrings.timezone);\n    if (isNaN(offset)) return invalidDate();\n  } else {\n    const tmpDate = new Date(timestamp + time);\n    const result = toDate(0, options?.in);\n    result.setFullYear(\n      tmpDate.getUTCFullYear(),\n      tmpDate.getUTCMonth(),\n      tmpDate.getUTCDate(),\n    );\n    result.setHours(\n      tmpDate.getUTCHours(),\n      tmpDate.getUTCMinutes(),\n      tmpDate.getUTCSeconds(),\n      tmpDate.getUTCMilliseconds(),\n    );\n    return result;\n  }\n\n  return toDate(timestamp + time + offset, options?.in);\n}\n\nconst patterns = {\n  dateTimeDelimiter: /[T ]/,\n  timeZoneDelimiter: /[Z ]/i,\n  timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n  /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n  /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n  const dateStrings = {};\n  const array = dateString.split(patterns.dateTimeDelimiter);\n  let timeString;\n\n  // The regex match should only return at maximum two array elements.\n  // [date], [time], or [date, time].\n  if (array.length > 2) {\n    return dateStrings;\n  }\n\n  if (/:/.test(array[0])) {\n    timeString = array[0];\n  } else {\n    dateStrings.date = array[0];\n    timeString = array[1];\n    if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n      dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n      timeString = dateString.substr(\n        dateStrings.date.length,\n        dateString.length,\n      );\n    }\n  }\n\n  if (timeString) {\n    const token = patterns.timezone.exec(timeString);\n    if (token) {\n      dateStrings.time = timeString.replace(token[1], \"\");\n      dateStrings.timezone = token[1];\n    } else {\n      dateStrings.time = timeString;\n    }\n  }\n\n  return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n  const regex = new RegExp(\n    \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n      (4 + additionalDigits) +\n      \"})|(\\\\d{2}|[+-]\\\\d{\" +\n      (2 + additionalDigits) +\n      \"})$)\",\n  );\n\n  const captures = dateString.match(regex);\n  // Invalid ISO-formatted year\n  if (!captures) return { year: NaN, restDateString: \"\" };\n\n  const year = captures[1] ? parseInt(captures[1]) : null;\n  const century = captures[2] ? parseInt(captures[2]) : null;\n\n  // either year or century is null, not both\n  return {\n    year: century === null ? year : century * 100,\n    restDateString: dateString.slice((captures[1] || captures[2]).length),\n  };\n}\n\nfunction parseDate(dateString, year) {\n  // Invalid ISO-formatted year\n  if (year === null) return new Date(NaN);\n\n  const captures = dateString.match(dateRegex);\n  // Invalid ISO-formatted string\n  if (!captures) return new Date(NaN);\n\n  const isWeekDate = !!captures[4];\n  const dayOfYear = parseDateUnit(captures[1]);\n  const month = parseDateUnit(captures[2]) - 1;\n  const day = parseDateUnit(captures[3]);\n  const week = parseDateUnit(captures[4]);\n  const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n  if (isWeekDate) {\n    if (!validateWeekDate(year, week, dayOfWeek)) {\n      return new Date(NaN);\n    }\n    return dayOfISOWeekYear(year, week, dayOfWeek);\n  } else {\n    const date = new Date(0);\n    if (\n      !validateDate(year, month, day) ||\n      !validateDayOfYearDate(year, dayOfYear)\n    ) {\n      return new Date(NaN);\n    }\n    date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n    return date;\n  }\n}\n\nfunction parseDateUnit(value) {\n  return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n  const captures = timeString.match(timeRegex);\n  if (!captures) return NaN; // Invalid ISO-formatted time\n\n  const hours = parseTimeUnit(captures[1]);\n  const minutes = parseTimeUnit(captures[2]);\n  const seconds = parseTimeUnit(captures[3]);\n\n  if (!validateTime(hours, minutes, seconds)) {\n    return NaN;\n  }\n\n  return (\n    hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n  );\n}\n\nfunction parseTimeUnit(value) {\n  return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n  if (timezoneString === \"Z\") return 0;\n\n  const captures = timezoneString.match(timezoneRegex);\n  if (!captures) return 0;\n\n  const sign = captures[1] === \"+\" ? -1 : 1;\n  const hours = parseInt(captures[2]);\n  const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n  if (!validateTimezone(hours, minutes)) {\n    return NaN;\n  }\n\n  return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n  const date = new Date(0);\n  date.setUTCFullYear(isoWeekYear, 0, 4);\n  const fourthOfJanuaryDay = date.getUTCDay() || 7;\n  const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n  date.setUTCDate(date.getUTCDate() + diff);\n  return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n  return (\n    month >= 0 &&\n    month <= 11 &&\n    date >= 1 &&\n    date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n  );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n  return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n  return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n  if (hours === 24) {\n    return minutes === 0 && seconds === 0;\n  }\n\n  return (\n    seconds >= 0 &&\n    seconds < 60 &&\n    minutes >= 0 &&\n    minutes < 60 &&\n    hours >= 0 &&\n    hours < 25\n  );\n}\n\nfunction validateTimezone(_hours, minutes) {\n  return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\n","let xAtomicNumber = 0;\n/**\n * Returns the atomic number of the X atom\n * @param {import('openchemlib').Molecule} molecule - An instance of a molecule\n * @returns\n */\nexport function getXAtomicNumber(molecule) {\n    if (!xAtomicNumber) {\n        const OCL = molecule.getOCL();\n        xAtomicNumber = OCL.Molecule.getAtomicNoFromLabel('X', OCL.Molecule.cPseudoAtomX);\n    }\n    return xAtomicNumber;\n}\n//# sourceMappingURL=getXAtomicNumber.js.map","/**\n * This method put all the chiral centers in the molecule in the same group and racemic\n * @param {import('openchemlib').Molecule} molecule - An instance of a molecule\n * @param {object} [options={}]\n * @param {object} [options.OCL] - openchemlib library\n */\nexport function makeRacemic(molecule) {\n    const { Molecule } = molecule.getOCL();\n    // if we don't calculate this we have 2 epimers\n    molecule.ensureHelperArrays(Molecule.cHelperCIP);\n    // we need to make one group \"AND\" for chiral (to force to racemic, this means diastereotopic and not enantiotopic)\n    for (let i = 0; i < molecule.getAllAtoms(); i++) {\n        if (molecule.getAtomParity(i) !== Molecule.cAtomParityNone) {\n            molecule.setAtomESR(i, Molecule.cESRTypeAnd, 0); // changed to group 0; TLS 9.Nov.2015\n        }\n    }\n    // after the change we need to recalculate the CIP\n    molecule.ensureHelperArrays(Molecule.cHelperCIP);\n}\n//# sourceMappingURL=makeRacemic.js.map","import { getXAtomicNumber } from './getXAtomicNumber.js';\n/**\n * Tag an atom to be able to visualize it\n * @param molecule\n * @param iAtom\n */\nexport function tagAtom(molecule, iAtom) {\n    const customLabel = `${molecule.getAtomLabel(iAtom)}*`;\n    molecule.setAtomCustomLabel(iAtom, customLabel);\n    if (molecule.getAtomicNo(iAtom) === 1) {\n        molecule.setAtomicNo(iAtom, getXAtomicNumber(molecule));\n    }\n    else {\n        // we can not use X because we would have problems with valencies if it is\n        // expanded hydrogens or not\n        // we can not only use a custom label because it does not count for the canonisation\n        molecule.setAtomMass(iAtom, molecule.getAtomMass(iAtom) + 5);\n    }\n    return customLabel;\n}\n//# sourceMappingURL=tagAtom.js.map","/**\n * Creates a compact copy of the molecule without custom labels.\n * We don't want that custom labels interfere with hose code and diaID generation.\n * @param molecule\n * @returns\n */\nexport function getCompactCopyWithoutCustomLabels(molecule) {\n    const tempMolecule = molecule.getCompactCopy();\n    for (let i = 0; i < tempMolecule.getAllAtoms(); i++) {\n        tempMolecule.setAtomCustomLabel(i, '');\n    }\n    return tempMolecule;\n}\n//# sourceMappingURL=getCompactCopyWithoutCustomLabels.js.map","import { getXAtomicNumber } from '../util/getXAtomicNumber.js';\n/**\n * Returns the atoms that are chiral or pseudo chiral.\n * There could be some issues if the original molecule lacks chiral bonds.\n * The function will add them and this could lead to some issues in the case of pseudochiral atoms.\n * @param {import('openchemlib').Molecule} molecule\n * @returns {number[]}\n */\nexport function getChiralOrHeterotopicCarbons(molecule) {\n    const { Molecule } = molecule.getOCL();\n    const xAtomicNumber = getXAtomicNumber(molecule);\n    const internalMolecule = molecule.getCompactCopy();\n    // hydrogens may be diastereotopic, we need to add them\n    internalMolecule.addImplicitHydrogens();\n    for (let i = 0; i < internalMolecule.getAllAtoms(); i++) {\n        // hydrogens are not taken into account during canonization, we need to change them with an atom with a valence of 1\n        if (internalMolecule.getAtomicNo(i) === 1) {\n            internalMolecule.setAtomicNo(i, xAtomicNumber);\n        }\n    }\n    addPossibleChiralBonds(internalMolecule);\n    internalMolecule.ensureHelperArrays(Molecule.cHelperSymmetryStereoHeterotopicity);\n    const atoms = [];\n    for (let i = 0; i < molecule.getAllAtoms(); i++) {\n        if (internalMolecule.getAtomicNo(i) === xAtomicNumber) {\n            continue;\n        }\n        if (molecule.getAtomicNo(i) !== internalMolecule.getAtomicNo(i)) {\n            throw new Error('getChiralOrHeterotopicCarbons: mismatching atomic numbers');\n        }\n        if (internalMolecule.getAtomicNo(i) !== 6) {\n            continue;\n        }\n        const neighbourSymmetries = getNeighbourSymmetries(internalMolecule, i);\n        if (neighbourSymmetries.length === 4) {\n            atoms.push(i);\n        }\n    }\n    return atoms;\n}\nfunction addPossibleChiralBonds(molecule) {\n    const { Molecule } = molecule.getOCL();\n    molecule.ensureHelperArrays(Molecule.cHelperSymmetryStereoHeterotopicity);\n    for (let i = 0; i < molecule.getAtoms(); i++) {\n        if (molecule.getAtomicNo(i) !== 6)\n            continue;\n        if (molecule.getStereoBond(i) >= 0)\n            continue;\n        const neighbourSymmetries = getNeighbourSymmetries(molecule, i);\n        if (neighbourSymmetries.length <= 2)\n            continue;\n        const stereoBond = molecule.getAtomPreferredStereoBond(i);\n        if (stereoBond !== -1) {\n            molecule.setBondType(stereoBond, Molecule.cBondTypeUp);\n            if (molecule.getBondAtom(1, stereoBond) === i) {\n                const connAtom = molecule.getBondAtom(0, stereoBond);\n                molecule.setBondAtom(0, stereoBond, i);\n                molecule.setBondAtom(1, stereoBond, connAtom);\n            }\n            // To me it seems that we have to add all stereo centers into AND group 0. TLS 9.Nov.2015\n            molecule.setAtomESR(i, Molecule.cESRTypeAnd, 0);\n        }\n    }\n}\nfunction getNeighbourSymmetries(molecule, iAtom) {\n    const neighbourSymmetries = [];\n    for (let j = 0; j < molecule.getAllConnAtoms(iAtom); j++) {\n        const connAtom = molecule.getConnAtom(iAtom, j);\n        const symmetryRank = molecule.getSymmetryRank(connAtom);\n        if (!neighbourSymmetries.includes(symmetryRank)) {\n            neighbourSymmetries.push(molecule.getSymmetryRank(connAtom));\n        }\n    }\n    return neighbourSymmetries;\n}\n//# sourceMappingURL=getChiralOrHeterotopicCarbons.js.map","import { getCompactCopyWithoutCustomLabels } from \"../util/getCompactCopyWithoutCustomLabels.js\";\nimport { getSymmetryRanks } from '../util/getSymmetryRanks.js';\nimport { makeRacemic } from '../util/makeRacemic.js';\nimport { tagAtom } from \"../util/tagAtom.js\";\nimport { ensureHeterotopicChiralBonds } from './ensureHeterotopicChiralBonds.js';\n/**\n * Returns an array of diastereotopic ID (as idCode)\n * @param {import('openchemlib').Molecule} molecule\n */\nexport function getDiastereotopicAtomIDs(molecule) {\n    const { Molecule } = molecule.getOCL();\n    ensureHeterotopicChiralBonds(molecule);\n    const symmetryRanks = getSymmetryRanks(molecule);\n    const numberAtoms = molecule.getAllAtoms();\n    const ids = [];\n    const cache = {};\n    for (let iAtom = 0; iAtom < numberAtoms; iAtom++) {\n        const rank = symmetryRanks[iAtom];\n        if (rank && cache[rank]) {\n            ids[iAtom] = cache[rank];\n            continue;\n        }\n        const tempMolecule = getCompactCopyWithoutCustomLabels(molecule);\n        tagAtom(tempMolecule, iAtom);\n        makeRacemic(tempMolecule);\n        // We need to ensure the helper array in order to get correctly the result of racemisation\n        ids[iAtom] = tempMolecule.getCanonizedIDCode(Molecule.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS);\n        cache[rank] = ids[iAtom];\n    }\n    return ids;\n}\n//# sourceMappingURL=getDiastereotopicAtomIDs.js.map","import { getChiralOrHeterotopicCarbons } from './getChiralOrHeterotopicCarbons.js';\n/**\n * This function will add missing chiral bonds on carbons ensure that all enantiotopic\n * or diastereotopic atoms can be identified uniquely\n * @param {import('openchemlib').Molecule} molecule\n * @param {object} [options={}]\n * @param {number} [options.esrType=Molecule.cESRTypeAnd]\n * @param {boolean} [options.atLeastThreeAtoms=true] - if true, only carbons with at least three atoms will be considered\n */\nexport function ensureHeterotopicChiralBonds(molecule, options = {}) {\n    const { Molecule } = molecule.getOCL();\n    const { esrType = Molecule.cESRTypeAnd, atLeastThreeAtoms = true } = options;\n    molecule.ensureHelperArrays(Molecule.cHelperBitNeighbours);\n    const heterotopicCarbons = getChiralOrHeterotopicCarbons(molecule);\n    for (const i of heterotopicCarbons) {\n        if (atLeastThreeAtoms && molecule.getAllConnAtoms(i) < 3)\n            continue;\n        if (molecule.getStereoBond(i) === -1) {\n            const stereoBond = molecule.getAtomPreferredStereoBond(i);\n            if (stereoBond !== -1) {\n                molecule.setBondType(stereoBond, Molecule.cBondTypeUp);\n                if (molecule.getBondAtom(1, stereoBond) === i) {\n                    const connAtom = molecule.getBondAtom(0, stereoBond);\n                    molecule.setBondAtom(0, stereoBond, i);\n                    molecule.setBondAtom(1, stereoBond, connAtom);\n                }\n                // To me it seems that we have to add all stereo centers into AND group 0. TLS 9.Nov.2015\n                molecule.setAtomESR(i, esrType, 0);\n            }\n        }\n    }\n}\n//# sourceMappingURL=ensureHeterotopicChiralBonds.js.map","import { getXAtomicNumber } from './getXAtomicNumber.js';\n/**\n * Returns an array of symmetry ranks.\n * @param {import('openchemlib').Molecule} molecule - An instance of a molecule\n * @returns\n */\nexport function getSymmetryRanks(molecule) {\n    const { Molecule } = molecule.getOCL();\n    const xAtomNumber = getXAtomicNumber(molecule);\n    // most of the molecules have some symmetry\n    const internalMolecule = molecule.getCompactCopy();\n    for (let i = 0; i < internalMolecule.getAllAtoms(); i++) {\n        // hydrogens are not taken into account during canonization, we need to change them with an atom with a valence of 1\n        if (internalMolecule.getAtomicNo(i) === 1) {\n            internalMolecule.setAtomicNo(i, xAtomNumber);\n        }\n    }\n    internalMolecule.ensureHelperArrays(Molecule.cHelperSymmetryStereoHeterotopicity);\n    const symmetryRanks = [];\n    for (let i = 0; i < molecule.getAllAtoms(); i++) {\n        symmetryRanks.push(internalMolecule.getSymmetryRank(i));\n    }\n    return symmetryRanks;\n}\n//# sourceMappingURL=getSymmetryRanks.js.map","import { getDiastereotopicAtomIDsAndH } from './getDiastereotopicAtomIDsAndH.js';\n/**\n * Parse a molfile and returns an object containing the molecule, the map and the diaIDs\n * The map allows to reload properties assigned to the atom molfile\n * Please take care than numbering of atoms starts at 0 !\n * @param {typeof import('openchemlib')} OCL - openchemlib library\n * @param {string} molfile\n * @returns\n */\nexport function getDiastereotopicAtomIDsFromMolfile(OCL, molfile) {\n    const { map, molecule } = OCL.Molecule.fromMolfileWithAtomMap(molfile);\n    const diaIDsArray = getDiastereotopicAtomIDsAndH(molecule);\n    const diaIDs = {};\n    for (let i = 0; i < map.length; i++) {\n        diaIDs[map[i]] = { source: map[i], destination: i, ...diaIDsArray[i] };\n    }\n    return { map: diaIDs, molecule, diaIDs: diaIDsArray };\n}\n//# sourceMappingURL=getDiastereotopicAtomIDsFromMolfile.js.map","import { getDiastereotopicAtomIDs } from './getDiastereotopicAtomIDs.js';\n/**\n *\n * @param {import('openchemlib').Molecule} molecule\n */\nexport function getDiastereotopicAtomIDsAndH(molecule) {\n    const OCL = molecule.getOCL();\n    molecule = molecule.getCompactCopy();\n    molecule.addImplicitHydrogens();\n    molecule.ensureHelperArrays(OCL.Molecule.cHelperNeighbours);\n    const diaIDs = getDiastereotopicAtomIDs(molecule);\n    const newDiaIDs = [];\n    for (let i = 0; i < diaIDs.length; i++) {\n        const diaID = diaIDs[i];\n        const newDiaID = {\n            oclID: diaID,\n            hydrogenOCLIDs: [],\n            nbHydrogens: 0,\n        };\n        if (molecule.getAtomicNo(i) === 1) {\n            const atom = molecule.getConnAtom(i, 0);\n            newDiaID.heavyAtom = diaIDs[atom];\n        }\n        for (let j = 0; j < molecule.getAllConnAtoms(i); j++) {\n            const atom = molecule.getConnAtom(i, j);\n            if (molecule.getAtomicNo(atom) === 1) {\n                newDiaID.nbHydrogens++;\n                if (!newDiaID.hydrogenOCLIDs.includes(diaIDs[atom])) {\n                    newDiaID.hydrogenOCLIDs.push(diaIDs[atom]);\n                }\n            }\n        }\n        newDiaIDs.push(newDiaID);\n    }\n    return newDiaIDs;\n}\n//# sourceMappingURL=getDiastereotopicAtomIDsAndH.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.atomSorter = atomSorter;\n/**\n * Implementation of the Hill system for sorting atoms\n * https://en.wikipedia.org/wiki/Chemical_formula#Hill_system\n * @param a - first atom to compare\n * @param b - second atom to compare\n * @returns A value suitable for use in Array.prototype.sort.\n */\nfunction atomSorter(a, b) {\n    if (a === b)\n        return 0;\n    if (a === 'C')\n        return -1;\n    if (b === 'C')\n        return 1;\n    if (a === 'H')\n        return -1;\n    if (b === 'H')\n        return 1;\n    if (a < b)\n        return -1;\n    return 1;\n}\n//# sourceMappingURL=index.js.map","/**\n * Parse a single SDF entry string into a molecule object.\n * @param sdfPart - A single SDF record (everything before the `$$$$` line).\n * @param labels - Shared label tracking object, mutated in place.\n * @param currentLabels - Array to collect label names found in this entry.\n * @param options - Resolved parse options.\n * @returns The molecule object, or `undefined` if the entry is too short.\n */\nexport function getMolecule(sdfPart, labels, currentLabels, options) {\n    const { eol, dynamicTyping, include, exclude, modifiers, forEach } = options;\n    const parts = sdfPart.split(`${eol}>`);\n    if (parts.length === 0 || parts[0].length <= 5)\n        return undefined;\n    const molecule = { molfile: parts[0] + eol };\n    for (let j = 1; j < parts.length; j++) {\n        const lines = parts[j].split(eol);\n        const from = lines[0].indexOf('<');\n        const to = lines[0].indexOf('>');\n        const label = lines[0].slice(from + 1, to);\n        currentLabels.push(label);\n        if (!labels[label]) {\n            labels[label] = {\n                counter: 0,\n                isNumeric: dynamicTyping,\n                keep: false,\n            };\n            if (!exclude?.includes(label) && (!include || include.includes(label))) {\n                labels[label].keep = true;\n                if (modifiers[label])\n                    labels[label].modifier = modifiers[label];\n                if (forEach[label])\n                    labels[label].forEach = forEach[label];\n            }\n        }\n        if (labels[label].keep) {\n            for (let k = 1; k < lines.length - 1; k++) {\n                if (molecule[label]) {\n                    molecule[label] = `${molecule[label]}${eol}${lines[k]}`;\n                }\n                else {\n                    molecule[label] = lines[k];\n                }\n            }\n            if (labels[label].modifier) {\n                const modifiedValue = labels[label].modifier(molecule[label]);\n                if (modifiedValue === undefined || modifiedValue === null) {\n                    // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n                    delete molecule[label];\n                }\n                else {\n                    molecule[label] = modifiedValue;\n                }\n            }\n            if (labels[label].isNumeric &&\n                (!Number.isFinite(+molecule[label]) ||\n                    molecule[label].match(/^0[0-9]/))) {\n                labels[label].isNumeric = false;\n            }\n        }\n    }\n    return molecule;\n}\n//# sourceMappingURL=getMolecule.js.map","/* @license\nPapa Parse\nv5.7.0\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n((e,t)=>{\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof module&&\"undefined\"!=typeof exports?module.exports=t():e.Papa=t()})(this,function r(){var n=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==n?n:{};var s=!n.document&&!!n.postMessage,a=n.IS_PAPA_WORKER||!1,o={},h=0,w={};function q(e){return 65279===e.charCodeAt(0)?e.slice(1):e}function u(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=v(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null);this._handle=new i(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(t,e){var i=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<i){let e=this._config.newline;e||(r=this._config.quoteChar||'\"',e=this._handle.guessLineEndings(t,r)),t=[...t.split(e).slice(i)].join(e)}this.isFirstChunk&&U(this._config.beforeFirstChunk)&&void 0!==(r=this._config.beforeFirstChunk(t))&&(t=r),this.isFirstChunk=!1,this._halted=!1;var i=this._partialLine+t,r=(this._partialLine=\"\",this._handle.parse(i,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){t=r.meta.cursor,i=(this._finished||(this._partialLine=i.substring(t-this._baseIndex),this._baseIndex=t),r&&r.data&&(this._rowCount+=r.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview);if(a)n.postMessage({results:r,workerId:w.WORKER_ID,finished:i});else if(U(this._config.chunk)&&!e){if(this._config.chunk(r,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=r=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(r.data),this._completeResults.errors=this._completeResults.errors.concat(r.errors),this._completeResults.meta=r.meta),this._completed||!i||!U(this._config.complete)||r&&r.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),i||r&&r.meta.paused||this._nextChunk(),r}this._halted=!0},this._sendError=function(e){U(this._config.error)?this._config.error(e):a&&this._config.error&&n.postMessage({workerId:w.WORKER_ID,error:e,finished:!1})}}function d(e){var r;(e=e||{}).chunkSize||(e.chunkSize=w.RemoteChunkSize),u.call(this,e),this._nextChunk=s?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(r=new XMLHttpRequest,this._config.withCredentials&&(r.withCredentials=this._config.withCredentials),s||(r.onload=m(this._chunkLoaded,this),r.onerror=m(this._chunkError,this)),r.ontimeout=m(this._chunkTimeout,this),r.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!s),this._config.downloadTimeout&&!s&&(r.timeout=this._config.downloadTimeout),this._config.downloadRequestHeaders){var e,t=this._config.downloadRequestHeaders;for(e in t)r.setRequestHeader(e,t[e])}var i;this._config.chunkSize&&(i=this._start+this._config.chunkSize-1,r.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+i));try{r.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}s&&0===r.status&&this._chunkError()}},this._chunkLoaded=function(){4===r.readyState&&(r.status<200||400<=r.status?this._chunkError():(this._start+=this._config.chunkSize||r.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>null!==(e=e.getResponseHeader(\"Content-Range\"))?parseInt(e.substring(e.lastIndexOf(\"/\")+1)):-1)(r),this.parseChunk(r.responseText)))},this._chunkError=function(e){e=r.statusText||e;this._sendError(new Error(e))},this._chunkTimeout=function(){this._chunkError(\"Request timed out after \"+this._config.downloadTimeout+\"ms\")}}function l(e){(e=e||{}).chunkSize||(e.chunkSize=w.LocalChunkSize),u.call(this,e);var i,r,n=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,r=e.slice||e.webkitSlice||e.mozSlice,n?((i=new FileReader).onload=m(this._chunkLoaded,this),i.onerror=m(this._chunkError,this)):i=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input,t=(this._config.chunkSize&&(t=Math.min(this._start+this._config.chunkSize,this._input.size),e=r.call(e,this._start,t)),i.readAsText(e,this._config.encoding));n||this._chunkLoaded({target:{result:t}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(i.error)}}function f(e){var i;u.call(this,e=e||{}),this.stream=function(e){return i=e,this._nextChunk()},this._nextChunk=function(){var e,t;if(!this._finished)return e=this._config.chunkSize,i=e?(t=i.substring(0,e),i.substring(e)):(t=i,\"\"),this._finished=!i,this.parseChunk(t)}}function c(e){u.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):i=!0},this._streamData=m(function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=m(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=m(function(){this._streamCleanUp(),r=!0,this._streamData(\"\")},this),this._streamCleanUp=m(function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)},this)}function i(m){var n,s,a,t,o=Math.pow(2,53),h=-o,u=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,d=/^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/,i=this,r=0,l=0,f=!1,e=!1,c=[],p={data:[],errors:[],meta:{}};function y(e){return\"greedy\"===m.skipEmptyLines?\"\"===e.join(\"\").trim():1===e.length&&0===e[0].length}function _(){if(p&&a&&(k(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+w.DefaultDelimiter+\"'\"),a=!1),m.skipEmptyLines&&(p.data=p.data.filter(function(e){return!y(e)})),g()){if(p)if(Array.isArray(p.data[0])){for(var e=0;g()&&e<p.data.length;e++)p.data[e].forEach(t);p.data.splice(0,1)}else p.data.forEach(t);function t(e){c.push(e)}}function i(e,t){for(var i=m.header?{}:[],r=0;r<e.length;r++){var n=r,s=e[r],s=((e,t)=>(e=>(m.dynamicTypingFunction&&void 0===m.dynamicTyping[e]&&(m.dynamicTyping[e]=m.dynamicTypingFunction(e)),!0===(m.dynamicTyping[e]||m.dynamicTyping)))(e)?\"true\"===t||\"TRUE\"===t||\"false\"!==t&&\"FALSE\"!==t&&((e=>{if(u.test(e)){e=parseFloat(e);if(h<e&&e<o)return 1}})(t)?parseFloat(t):d.test(t)?new Date(t):\"\"===t?null:t):t)(n=m.header?r>=c.length?\"__parsed_extra\":c[r]:n,s=m.transform?m.transform(s,n):s);\"__parsed_extra\"===n?(i[n]=i[n]||[],i[n].push(s)):i[n]=s}return m.header&&(r>c.length?k(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+c.length+\" fields but parsed \"+r,l+t):r<c.length&&k(\"FieldMismatch\",\"TooFewFields\",\"Too few fields: expected \"+c.length+\" fields but parsed \"+r,l+t)),i}var r;p&&(m.header||m.dynamicTyping||m.transform)&&(r=1,!p.data.length||Array.isArray(p.data[0])?(p.data=p.data.map(i),r=p.data.length):p.data=i(p.data,0),m.header&&p.meta&&(p.meta.fields=c),l+=r)}function g(){return m.header&&0===c.length}function k(e,t,i,r){e={type:e,code:t,message:i};void 0!==r&&(e.row=r),p.errors.push(e)}U(m.step)&&(t=m.step,m.step=function(e){p=e,g()?_():(_(),0!==p.data.length&&(r+=e.data.length,m.preview&&r>m.preview?s.abort():(p.data=p.data[0],t(p,i))))}),this.parse=function(e,t,i){var r=m.quoteChar||'\"',r=(m.newline||(m.newline=this.guessLineEndings(e,r)),a=!1,m.delimiter?U(m.delimiter)&&(m.delimiter=m.delimiter(e),p.meta.delimiter=m.delimiter):((r=((e,t,i,r,n)=>{var s,a,o,h;n=n||[\",\",\"\\t\",\"|\",\";\",w.RECORD_SEP,w.UNIT_SEP];for(var u=0;u<n.length;u++){for(var d,l=n[u],f=0,c=0,p=0,_=(o=void 0,new E({comments:r,delimiter:l,newline:t,preview:10}).parse(e)),g=0;g<_.data.length;g++)i&&y(_.data[g])?p++:(d=_.data[g].length,c+=d,void 0===o?o=d:0<d&&(f+=Math.abs(d-o),o=d));0<_.data.length&&(c/=_.data.length-p),1.99<c&&(void 0===a||f<a||f===a&&h<c)&&(a=f,s=l,h=c)}return{successful:!!(m.delimiter=s),bestDelimiter:s}})(e,m.newline,m.skipEmptyLines,m.comments,m.delimitersToGuess)).successful?m.delimiter=r.bestDelimiter:(a=!0,m.delimiter=w.DefaultDelimiter),p.meta.delimiter=m.delimiter),v(m));return r.header=g(),m.preview&&m.header&&r.preview++,n=e,s=new E(r),p=s.parse(n,t,i),_(),f?{meta:{paused:!0}}:p||{meta:{paused:!1}}},this.paused=function(){return f},this.pause=function(){f=!0,s.abort(),n=U(m.chunk)?\"\":n.substring(s.getCharIndex())},this.resume=function(){i.streamer._halted?(f=!1,i.streamer.parseChunk(n,!0)):setTimeout(i.resume,3)},this.aborted=function(){return e},this.abort=function(){e=!0,s.abort(),p.meta.aborted=!0,U(m.complete)&&m.complete(p),n=\"\"},this.guessLineEndings=function(e,t){e=e.substring(0,1048576);var t=new RegExp(P(t)+\"([^]*?)\"+P(t),\"gm\"),i=(e=e.replace(t,\"\")).split(\"\\r\"),t=e.split(\"\\n\"),e=1<t.length&&t[0].length<i[0].length;if(1===i.length||e)return\"\\n\";for(var r=0,n=0;n<i.length;n++)\"\\n\"===i[n][0]&&r++;return r>=i.length/2?\"\\r\\n\":\"\\r\"}}function P(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function E(C){var S=(C=C||{}).delimiter,O=C.newline,x=C.comments,T=C.step,I=C.preview,A=C.fastMode,D=null,L=!1,F=null==C.quoteChar?'\"':C.quoteChar,z=F;if(void 0!==C.escapeChar&&(z=C.escapeChar),(\"string\"!=typeof S||-1<w.BAD_DELIMITERS.indexOf(S))&&(S=\",\"),x===S)throw new Error(\"Comment character same as delimiter\");!0===x?x=\"#\":(\"string\"!=typeof x||-1<w.BAD_DELIMITERS.indexOf(x))&&(x=!1),\"\\n\"!==O&&\"\\r\"!==O&&\"\\r\\n\"!==O&&(O=\"\\n\");var M=0,j=!1;this.parse=function(i,t,r){if(\"string\"!=typeof i)throw new Error(\"Input must be a string\");var n=i.length,e=S.length,s=O.length,a=x.length,o=U(T),h=[],u=[],d=[],l=M=0;if(!i)return b();if(A||!1!==A&&-1===i.indexOf(F)){for(var f=i.split(O),c=0;c<f.length;c++){if(d=f[c],M+=d.length,c!==f.length-1)M+=O.length;else if(r)return b();if(!x||d.substring(0,a)!==x){if(o){if(h=[],k(d.split(S)),R(),j)return b()}else k(d.split(S));if(I&&I<=c)return h=h.slice(0,I),b(!0)}}return b()}for(var p=i.indexOf(S,M),_=i.indexOf(O,M),g=new RegExp(P(z)+P(F),\"g\"),m=i.indexOf(F,M);;)if(i[M]===F)for(m=M,M++;;){if(-1===(m=i.indexOf(F,m+1)))return r||u.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:h.length,index:M}),E();if(m===n-1)return E(i.substring(M,m).replace(g,F));if(F===z&&i[m+1]===z)m++;else if(F===z||0===m||i[m-1]!==z){-1!==p&&p<m+1&&(p=i.indexOf(S,m+1));var y=w(-1===(_=-1!==_&&_<m+1?i.indexOf(O,m+1):_)?p:Math.min(p,_));if(i.substr(m+1+y,e)===S){d.push(i.substring(M,m).replace(g,F)),i[M=m+1+y+e]!==F&&(m=i.indexOf(F,M)),p=i.indexOf(S,M),_=i.indexOf(O,M);break}y=w(_);if(i.substring(m+1+y,m+1+y+s)===O){if(d.push(i.substring(M,m).replace(g,F)),v(m+1+y+s),p=i.indexOf(S,M),m=i.indexOf(F,M),o&&(R(),j))return b();if(I&&h.length>=I)return b(!0);break}u.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:h.length,index:M}),m++}}else if(x&&0===d.length&&i.substring(M,M+a)===x){if(-1===_)return b();M=_+s,_=i.indexOf(O,M),p=i.indexOf(S,M)}else if(-1!==p&&(p<_||-1===_))d.push(i.substring(M,p)),M=p+e,p=i.indexOf(S,M);else{if(-1===_)break;if(d.push(i.substring(M,_)),v(_+s),o&&(R(),j))return b();if(I&&h.length>=I)return b(!0)}return E();function k(e){h.push(e),l=M}function w(e){var t=0;return t=-1!==e&&(e=i.substring(m+1,e))&&\"\"===e.trim()?e.length:t}function E(e){return r||(void 0===e&&(e=i.substring(M)),d.push(e),M=n,k(d),o&&R()),b()}function v(e){M=e,k(d),d=[],_=i.indexOf(O,M)}function b(e){if(C.header&&!t&&h.length&&!L){var s=h[0],a=Object.create(null),o=new Set(s);let n=!1;for(let r=0;r<s.length;r++){let i=q(s[r]);if(a[i=U(C.transformHeader)?C.transformHeader(i,r):i]){let e,t=a[i];for(;e=i+\"_\"+t,t++,o.has(e););o.add(e),s[r]=e,a[i]++,n=!0,(D=null===D?{}:D)[e]=i}else a[i]=1,s[r]=i;o.add(i)}n&&console.warn(\"Duplicate headers found and renamed.\"),L=!0}return{data:h,errors:u,meta:{delimiter:S,linebreak:O,aborted:j,truncated:!!e,cursor:l+(t||0),renamedHeaders:D}}}function R(){T(b()),h=[],u=[]}},this.abort=function(){j=!0},this.getCharIndex=function(){return M}}function p(e){var t=e.data,i=o[t.workerId],r=!1;if(t.error)i.userError(t.error,t.file);else if(t.results&&t.results.data){var n={abort:function(){r=!0,_(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:g,resume:g};if(U(i.userStep)){for(var s=0;s<t.results.data.length&&(i.userStep({data:t.results.data[s],errors:t.results.errors,meta:t.results.meta},n),!r);s++);delete t.results}else U(i.userChunk)&&(i.userChunk(t.results,n,t.file),delete t.results)}t.finished&&!r&&_(t.workerId,t.results)}function _(e,t){var i=o[e];U(i.userComplete)&&i.userComplete(t),i.terminate(),delete o[e]}function g(){throw new Error(\"Not implemented.\")}function v(e){if(\"object\"!=typeof e||null===e)return e;var t,i=Array.isArray(e)?[]:{};for(t in e)i[t]=v(e[t]);return i}function m(e,t){return function(){e.apply(t,arguments)}}function U(e){return\"function\"==typeof e}return w.parse=function(e,t){var i=(t=t||{}).dynamicTyping||!1;U(i)&&(t.dynamicTypingFunction=i,i={});if(t.dynamicTyping=i,t.transform=!!U(t.transform)&&t.transform,void 0!==t.downloadTimeout){var i=parseInt(t.downloadTimeout);if(isNaN(i))throw new Error(\"Config downloadTimeout value (\"+t.downloadTimeout+\") not parsable by parseInt(val).\");t.downloadTimeout=i}if(!t.worker||!w.WORKERS_SUPPORTED)return i=null,w.NODE_STREAM_INPUT,\"string\"==typeof e?(e=q(e),i=new(t.download?d:f)(t)):!0===e.readable&&U(e.read)&&U(e.on)?i=new c(t):(n.File&&e instanceof File||e instanceof Object)&&(i=new l(t)),i.stream(e);(i=(()=>{var e;return!!w.WORKERS_SUPPORTED&&(e=(()=>{var e=n.URL||n.webkitURL||null,t=r.toString();return w.BLOB_URL||(w.BLOB_URL=e.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \",\"(\",t,\")();\"],{type:\"text/javascript\"})))})(),(e=new n.Worker(e)).onmessage=p,e.id=h++,o[e.id]=e)})()).userStep=t.step,i.userChunk=t.chunk,i.userComplete=t.complete,i.userError=t.error,t.step=U(t.step),t.chunk=U(t.chunk),t.complete=U(t.complete),t.error=U(t.error),delete t.worker,i.postMessage({input:e,config:t,workerId:i.id})},w.unparse=function(e,t){var s=!1,g=!0,m=\",\",y=\"\\r\\n\",a='\"',o=a+a,i=!1,r=null,h=!1,u=((()=>{if(\"object\"==typeof t){if(\"string\"!=typeof t.delimiter||w.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(m=t.delimiter),\"boolean\"!=typeof t.quotes&&\"function\"!=typeof t.quotes&&!Array.isArray(t.quotes)||(s=t.quotes),\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(i=t.skipEmptyLines),\"string\"==typeof t.newline&&(y=t.newline),\"string\"==typeof t.quoteChar&&(a=t.quoteChar,o=a+a),\"boolean\"==typeof t.header&&(g=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");r=t.columns}void 0!==t.escapeChar&&(o=t.escapeChar+a),t.escapeFormulae instanceof RegExp?h=t.escapeFormulae:\"boolean\"==typeof t.escapeFormulae&&t.escapeFormulae&&(h=/^[=+\\-@\\t\\r].*$/)}})(),new RegExp(P(a),\"g\"));\"string\"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return n(null,e,i);if(\"object\"==typeof e[0])return n(r||Object.keys(e[0]),e,i)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||r),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),n(e.fields||[],e.data||[],i);throw new Error(\"Unable to serialize unrecognized input\");function n(e,t,i){var r=\"\",n=(\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t)),Array.isArray(e)&&0<e.length),s=!Array.isArray(t[0]);if(n&&g){for(var a=0;a<e.length;a++)0<a&&(r+=m),r+=k(e[a],a);0<t.length&&(r+=y)}for(var o=0;o<t.length;o++){var h=(n?e:t[o]).length,u=!1,d=n?0===Object.keys(t[o]).length:0===t[o].length;if(i&&!n&&(u=\"greedy\"===i?\"\"===t[o].join(\"\").trim():1===t[o].length&&0===t[o][0].length),\"greedy\"===i&&n){for(var l=[],f=0;f<h;f++){var c=s?e[f]:f;l.push(t[o][c])}u=\"\"===l.join(\"\").trim()}if(!u){for(var p=0;p<h;p++){0<p&&!d&&(r+=m);var _=n&&s?e[p]:p;r+=k(t[o][_],p)}o<t.length-1&&(!i||0<h&&!d)&&(r+=y)}}return r}function k(e,t){var i,r,n;return null==e?\"\":e.constructor===Date?isNaN(e.getTime())?\"\":e.toISOString():(n=!1,h&&\"string\"==typeof e&&h.test(e)&&(e=\"'\"+e,n=!0),r=(i=e.toString()).replace(u,o),(n=n||!0===s||\"function\"==typeof s&&s(e,t)||Array.isArray(s)&&s[t]||((e,t)=>{for(var i=0;i<t.length;i++)if(-1<e.indexOf(t[i]))return!0;return!1})(r,w.BAD_DELIMITERS)||-1<r.indexOf(m)||-1<i.indexOf(a)||\" \"===r.charAt(0)||\" \"===r.charAt(r.length-1))?a+r+a:r)}},w.RECORD_SEP=String.fromCharCode(30),w.UNIT_SEP=String.fromCharCode(31),w.BYTE_ORDER_MARK=\"\\ufeff\",w.BAD_DELIMITERS=[\"\\r\",\"\\n\",'\"',w.BYTE_ORDER_MARK],w.WORKERS_SUPPORTED=!s&&!!n.Worker,w.NODE_STREAM_INPUT=1,w.LocalChunkSize=10485760,w.RemoteChunkSize=5242880,w.DefaultDelimiter=\",\",w.Parser=E,w.ParserHandle=i,w.NetworkStreamer=d,w.FileStreamer=l,w.StringStreamer=f,w.ReadableStreamStreamer=c,a&&(n.onmessage=function(e){e=e.data;void 0===w.WORKER_ID&&e&&(w.WORKER_ID=e.workerId);\"string\"==typeof e.input?n.postMessage({workerId:w.WORKER_ID,results:w.parse(e.input,e.config),finished:!0}):(n.File&&e.input instanceof File||e.input instanceof Object)&&(e=w.parse(e.input,e.config))&&n.postMessage({workerId:w.WORKER_ID,results:e,finished:!0})}),(d.prototype=Object.create(u.prototype)).constructor=d,(l.prototype=Object.create(u.prototype)).constructor=l,(f.prototype=Object.create(f.prototype)).constructor=f,(c.prototype=Object.create(u.prototype)).constructor=c,w});","var Kl=class{copyMolecule(Y){let vt=Y.getIDCodeAndCoordinates();navigator.clipboard.writeText(`${vt.idCode} ${vt.coordinates}`)}pasteMolecule(){return null}};var WS=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",tU=new Uint8Array(256);for(let w=0;w<WS.length;w++)tU[WS.charCodeAt(w)]=w;function _S(w){let Y=w.length*.75,vt=w.length,ot,kt=0,C1,jt,T1,u1;w.at(-1)===\"=\"&&(Y--,w.at(-2)===\"=\"&&Y--);let h1=new ArrayBuffer(Y),s1=new Uint8Array(h1);for(ot=0;ot<vt;ot+=4)C1=tU[w.charCodeAt(ot)],jt=tU[w.charCodeAt(ot+1)],T1=tU[w.charCodeAt(ot+2)],u1=tU[w.charCodeAt(ot+3)],s1[kt++]=C1<<2|jt>>4,s1[kt++]=(jt&15)<<4|T1>>2,s1[kt++]=(T1&3)<<6|u1&63;return h1}function Jl(w){return w.toString(16).padStart(2,\"0\")}var R9=globalThis.devicePixelRatio||1;var $2=class{constructor(Y){this.ctx=Y,this.ctx.textAlign=\"left\",this.ctx.textBaseline=\"top\",this.currentFontSize=12,this.currentFont=\"12px sans-serif\",this.ctx.font=this.currentFont,this.currentColor=\"#000000\",this.currentLineWidth=1,this.canvasCache=new Map}clearRect(Y,vt,ot,kt){this.ctx.clearRect(Y,vt,ot,kt)}getBackgroundRGB(){return 16777215}getForegroundRGB(){return 0}getSelectionBackgroundRGB(){return 12310268}getLineWidth(){return this.currentLineWidth}setRGB(Y){let vt=Y>>>16&255,ot=Y>>>8&255,kt=Y>>>0&255;this.currentColor=`#${Jl(vt)}${Jl(ot)}${Jl(kt)}`,this.ctx.fillStyle=this.currentColor,this.ctx.strokeStyle=this.currentColor}setFont(Y,vt,ot){this.currentFontSize=Y,this.currentFont=`${vt?\"bold\":\"\"} ${ot?\"italic\":\"\"} ${Y}px sans-serif`,this.ctx.font=this.currentFont}getFontSize(){return this.currentFontSize}getBounds(Y){let vt=this.ctx.measureText(Y);return{x:vt.actualBoundingBoxLeft,y:vt.actualBoundingBoxAscent,width:vt.actualBoundingBoxRight,height:vt.actualBoundingBoxAscent}}drawString(Y,vt,ot){this.ctx.fillText(ot,Y,vt)}drawCenteredString(Y,vt,ot){this.ctx.textAlign=\"center\",this.ctx.textBaseline=\"middle\",this.ctx.fillText(ot,Y,vt),this.ctx.textAlign=\"left\",this.ctx.textBaseline=\"top\"}setLineWidth(Y){this.currentLineWidth=Y,this.ctx.lineWidth=Y}fillRectangle(Y,vt,ot,kt){this.ctx.fillRect(Y,vt,ot,kt)}fillCircle(Y,vt,ot){let kt=ot/2;this.ctx.beginPath(),this.ctx.arc(Y+kt,vt+kt,kt,0,2*Math.PI),this.ctx.fill()}drawLine(Y,vt,ot,kt){this.ctx.beginPath(),this.ctx.moveTo(Y,vt),this.ctx.lineTo(ot,kt),this.ctx.stroke()}drawPolygon(Y){this.ctx.beginPath(),this.ctx.moveTo(Y.getX(0),Y.getY(0));for(let vt=1;vt<Y.getSize();vt++)this.ctx.lineTo(Y.getX(vt),Y.getY(vt));this.ctx.stroke()}drawRectangle(Y,vt,ot,kt){this.ctx.strokeRect(Y,vt,ot,kt)}fillPolygon(Y){this.ctx.beginPath(),this.ctx.moveTo(Y.getX(0),Y.getY(0));for(let vt=1;vt<Y.getSize();vt++)this.ctx.lineTo(Y.getX(vt),Y.getY(vt));this.ctx.fill()}drawImage(Y,vt,ot,kt,C1,jt,T1,u1,h1){if(arguments.length!==9)throw new Error(`drawImage call with ${arguments.length} arguments unimplemented`);let s1=this.canvasCache.get(Y);if(!s1){s1=document.createElement(\"canvas\");let P0=Y.imageData;s1.width=P0.width,s1.height=P0.height;let z0=s1.getContext(\"2d\");z0.globalAlpha=0,z0.putImageData(P0,0,0),this.canvasCache.set(Y,s1)}this.ctx.drawImage(s1,vt,ot,kt,C1,jt,T1,u1,h1)}isDarkBackground(){return!1}};var Yl=class{constructor(Y,vt){this.canvasElement=Y,this.changeListener=vt,this.drawContext=new $2(this.canvasElement.getContext(\"2d\"))}getBackgroundRGB(){return 16777215}getCanvasWidth(){return this.canvasElement.width}getCanvasHeight(){return this.canvasElement.height}getDrawContext(){return this.drawContext}onChange(Y,vt){this.changeListener?.({what:Y,isUserEvent:vt})}getClipboardHandler(){return new Kl}};var W8t=`\n/* We can customize editor styles here. */\n`,Qw;function $S(){if(Qw)return Qw;let w=new CSSStyleSheet;return w.replaceSync(W8t),Qw=w,w}function ow(w,Y,vt){let ot=-1;function kt(jt,T1,u1=0){T1.button>0||Y.fireMouseEvent(jt,T1.button+1,u1,Math.round(T1.offsetX*R9),Math.round(T1.offsetY*R9),T1.shiftKey,T1.ctrlKey,T1.altKey,T1.button===2)}w.addEventListener(\"pointerdown\",jt=>{ot===-1&&(ot=jt.pointerId,kt(vt.MOUSE_EVENT_PRESSED,jt))});function C1(jt){ot===jt.pointerId&&(ot=-1,kt(vt.MOUSE_EVENT_RELEASED,jt))}return document.addEventListener(\"pointerup\",C1),w.addEventListener(\"click\",jt=>{kt(vt.MOUSE_EVENT_CLICKED,jt,jt.detail)}),w.addEventListener(\"pointerenter\",jt=>{kt(vt.MOUSE_EVENT_ENTERED,jt)}),w.addEventListener(\"pointerleave\",jt=>{kt(vt.MOUSE_EVENT_EXITED,jt)}),w.addEventListener(\"pointermove\",jt=>{ot!==-1?ot===jt.pointerId&&kt(vt.MOUSE_EVENT_DRAGGED,jt):kt(vt.MOUSE_EVENT_MOVED,jt)}),()=>{document.removeEventListener(\"pointerup\",C1)}}function aS(w,Y,vt,ot,kt){let C1=typeof navigator<\"u\"&&navigator.platform===\"MacIntel\",jt=u1=>C1&&u1.metaKey||!C1&&u1.ctrlKey;function T1(u1,h1){let s1=_8t(h1,ot);s1!==null&&vt.fireKeyEvent(u1,s1,h1.altKey,h1.ctrlKey,h1.shiftKey,jt(h1))}Y.addEventListener(\"keydown\",u1=>{jt(u1)&&u1.key===\"c\"||jt(u1)&&u1.key===\"v\"||T1(ot.KEY_EVENT_PRESSED,u1)}),Y.addEventListener(\"keyup\",u1=>{T1(ot.KEY_EVENT_RELEASED,u1)}),w.addEventListener(\"paste\",u1=>{let h1=u1.clipboardData.getData(\"text\"),s1=kt.fromText(h1);s1&&s1.getAllAtoms()>0&&vt.addPastedOrDropped(s1)})}function _8t(w,Y){switch(w.key){case\"Control\":return Y.KEY_CTRL;case\"Alt\":return Y.KEY_ALT;case\"Shift\":return Y.KEY_SHIFT;case\"Delete\":case\"Backspace\":return Y.KEY_DELETE;case\"F1\":return Y.KEY_HELP;case\"Escape\":return Y.KEY_ESCAPE;case\"Enter\":return Y.KEY_ENTER;default:return w.key.length===1?w.key.codePointAt(0):null}}var Xl=class{constructor(Y){this.canvasElement=Y,this.drawContext=new $2(this.canvasElement.getContext(\"2d\"))}setDimensions(Y,vt){this.canvasElement.width=Y,this.canvasElement.style.width=`${Y/R9}px`,this.canvasElement.height=vt,this.canvasElement.style.height=`${vt/R9}px`}getDrawContext(){return this.drawContext}getBackgroundRGB(){return 16777215}getForegroundRGB(){return 0}};var tI={\"chain.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAB2UlEQVR4XmNgGJmAkYGJgQULZGXAhCygIGICQg4GdjTIARRDh5xAEQwNKYzXeK4xY1Oez3SNfz8TmoYUxq+6m9bfqLjDI4tmfhzLff9VR17FoWhwZXpkOm2v1C+79+cbD4gga8lneuhrfdv6/+ItSBpSGB+bTDos9IfzP9N/k3cX6+7wwByWz/TWR/E1w/+kO+8j4BpSGL9rz9wh+Efs14TF3heY/tu/vlF2hxtkSxzLY2/FVyz/om69jT0G8kM6QyNDM9MT41nbZX9y/J/ct1/4iU7aIYb/9q8uVx0UbmF64mV7i/1/0s0HSVM5dRgYrjB84/8U+bh80iH+34z/17Xc51ZhUGX8qpkK1GL6+krltyClVyz/c+69C57CwQsK1v+Sl9rdvgr8Z/7P9WvKxNs8fsD44ABqeWLkdYHhv9sL8e+s/xJuv4k4yajEAI6H/+6llxn+g6DUh75gSXhgugEdmXIUJB5150HSFA59oHKIBteGSyBhpv+q9wsVQaZDICdDKuNnneRjCY9exU3l5AUrh2gQelAQ/8Tgve2Tb25NjIgYBkmnMl5Sumi+hQmiGKqhgaGB57Pts4Bfek0sjkjmIxQhs8BpiZFBh0EPCLGlTnQxcGod8gAAp9es6fCW8G8AAAAASUVORK5CYII=)\",\"eraser.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAC1UlEQVR4XnWU309SYRjHn8OYTTM3zTmjC8NFFBR10dJu27wx11VX/QNdeGebTsvua93mRbUmLhURzYgKRZRJUJLibLPpRDCZC3/b1AMc4Tw97+EAR2e8FzD4fr7v53nPOQDCDkT/s2KAKiwROOXvFP8JLnDDGHhgArzgg28wCQGYgiDMw6E+1pY2rsECLEIIIrAC1O2CV/AWzPAOLGCFQbDDJ/hC+CQktU5bXWJoMGlaVv0iPAy/GeCmeBf0QB/YYECKO6kkzAl6Z/+t+BmsSJotgmmN4lFYZcA4tfdQez+1D8Fnio+S1oHe5TAcFuJHVBNit4nGLYrHGOCBbin+ntodMEzxKMkMWy8LpfgSEUN4niC7TTBtqzYYMCG3Z9xHadgD/bC1hi+U4uw1TkhFsqs3adpngJdGHSAZB8VHYAZ4vdt+RSjED3KcvYWYWMJuFY0E+MjdQe5MZgYE7YhFL8soCJzDU1iKwdcE+HOjBoG/NNJbq5DJI40EPNiIPCLgO/Wzk4lS3D2kPyaTQe5hETZsLDfxRRQLkLuLDjJd7u8wJs/mRs22J7CR4re3Qq3xIpENPUUHG+biuqX2UVsVX41epTp9ZjINm0ttqTIEZECQboK0ztd/Ya951t+nRi2GFYgksxluSlO7BMTYLVblMVcmOOTEZ9N+i4YvkREmAySz2JaNE4CqtM5jvrZHcbbE5lmLU8NrJTEmc3drsT1VlmmXdsCbgTdSu7wKUi2zPqsaq7GWZCjeJBZnwxlAN9dRyecBtsvzH/4+DV+MNdsLT4/GJSU0jHde3T2KtMxYnA8X5tvT5cp2eehDLnVxrPPoLgWpx4Hd+8Lp/Zx7boYoe/g40eDtViIF6Se+xPX8qPl96DqECImrRMOY2fg3e1atwd16UX1cR75wEXr4VmGdxL52atbpX2HnxfTenfiJcelKr9CjvQp/IMWJ57AO62ndOKk7890/iSWBU4XaZc0AAAAASUVORK5CYII=)\",\"fist.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAABj0lEQVR4Xu2S3yuDYRTHz7IZsfdCUrYLG4VCpJV6d0mS/A1zg79ArRArP4q5s4ulVousFCn/gX/g5WK7wkZMzIXMxjZ793XeMdn7vpM/wDn1PD1P53PO95znIfq3rwmYyU5tZPr7PJYoTjGaZ8xB1t+xZQqyP60iAEeWsThFGKpqbiE9CRECrnCHLnTAj17QbLV4E3mFXALbcOAGSXRiClnMgZLkZR/QYg0UEpDBDuxI4IHzT6OADdRiEK2gE12gBWmWE8Yj7weQIGOT650zaoiqAVtjDx2KeEWR8xZ4lUt+jEWkWJxJBYgkWa7NLy5WXWl5FilzhfoKwEAzzkwYI3DhTQUoVYpYR10FYCTPaDbJ2heQUwGfR0kFELmt6Utu9Jmz6dmFpmmR7v141w1XBiCBNFNacyKmCxT59kgHGBIQ4g7UkpRzESuwaCoQ+YZxqwGUGaUwrvvStqazLeRLj/bTZUTQB5rQfg1jjac9e8qAzFgZKbDMALpj1Kz3Z0WKjiGIfex++x6H98PgK4d/APiDpdwStyBoAAAAAElFTkSuQmCC)\",\"hand.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAB50lEQVR4Xq2TwUsUcRzF3yy52TboHiKVLBCElb1479g5kgKPCkKs4ME6eAiiP0GELileStew6NLJq5Sihw6BG2VlECymB2PVXd10Zl7vN+OuOjNLl35fZhiY+fzee9/vb4D/tAow9fafu90BsqrvnXzNBwSTTBAZ2I3BkSbeYBMzLHNRn9/nEFHCvYZAutDHDfb5wDvanOVnoozBhkBzIUeHOQEHfO8DW0QV0xjC3VjoUh2onAC/ZPAme4giemMQo+BKoaeusCmdSa41MmYL8HxLgUKe27q/UKLzSSxcwUOMwk7VgTKX6sBz7oeA61hJHSUP8ST1raZQA7Z8hb0QkO1WE+d5lZdlx+UbTsjSR95i0bc0E7GUzfIHdziouRqFPzwU5ii4IzOP+SFiqe3i8jyP1A1bgKPyVGa5/M2S7iaDdWZ8KUwNe1Uus923FHx8ujwZPA9YGO48+CK/Ywp4un8N8SIZgG78fCTvFV1n9w+ePe6GFMzMJ7u4zuOInQDYYaKcDB3Ba63FGQWPLk8mt2MAWKv96kk0sKM2TBFfkQ4fvkx6fyHSH9NalwO0PkXPaktirt8rhRpqelblbV6IASzkmivP9NrEdE9AM/FXbCPG4v+6p+3VcZ2ql5zTZSqv+XcQ6+gKgL8a/RiIJPdySgAAAABJRU5ErkJggg==)\",\"handPlus.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACAUlEQVR4Xq2Tz0sUcRjGn1lytW2wPUQamSAIK3vp7kk6i1LgMUGIFTqUBw9BiPsPhNAlpUtuKhpdOnVUKqlDh6CNsh+CsJQdjC13ddOZeXq+M7uTzu7SpXmZLwvzfr7P8/5Y4D89eZh48s/bhoC04nMXH/EmwThjRAp2c/B6C7vZwhRLXFP6NY4RRVxpCiTzw/zCYR94RpsP+Z4oYbQp0JbP0GFGwB6f+8A2UcF9jOFyQ+hkCJSrwDcZ7GcfUcDFBohRcKXQFyp8lc4s3zYzZgvwfEuBwgK/65xXRccrsXAGE7gBOxECJb4IgQfcjQAX8DJxEN/HVOJTTaEGbPsKvyJAuldNXOZZnpIdl485I0tveIkF31KuzlI6zU3ucFRzNQq/uS/MUeGOzNzm6zpLHa3ryzxQN2wBjsIT4JE6f7Co09RgHRlfAnPjXoXr7PQtmdSsNqn2eDJ4HLAw3rX3QX4nVaC534sA0bYCvdi6Je9lveb+mkLw2+PPiIKZ+WwPN3ioj9MyczQMsMNYKR5ZwfOnCzkVTq7KTpYDgrKCp5XuyGw9AOvViHoSmPhryaS7nCM+IhldvlRy92nYmaBLQWtdXqX1rn5X22OLI16xihhjBjA9q3CQJxoAFjJt5Xv6bBLdKmgmvsIOYrLxv+5uZ+WOtmqJi3pNLGj+54gN9ATAH0reBFwT+FQbAAAAAElFTkSuQmCC)\",\"invisible.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACjUlEQVR4XnWTS09TURSF178wMUExvhIfiY+0Q6MThwwEHYk6MODAqHHgzD9gHDgWYhQBAUWMqY/SogSkCGJJNAiFUiyV2qqURkFa7cPvnJZiBXMH7Tl3rbXX2ntf5bWgyH+emPI8v8reAn8nj3r0Qr3qU78GNKghDWtEfk3ot2LKKq6AphTUjGYF26ObuqU7alabOvRQj/VEz6APKS23jvI/rY/6AD2ksCH0AG9Sq9r1QJ0W/hyREFbcOqQNcqiL/3FuIpozhJeot6J+H/VHegrci60lSA7t0VVtlRNqTvPAY4bQqxYL70LdxSsvd2l164B2qVHLVN4L0U2VhL4aQl9RveDdS9gl4IcBNWpRUShNUJxUT3OG0E/UTo4u4N0a1U9SHdRu3QOQIOw8N+0Yc/A2ZwgDeHfh3ZgZpbBH+zDTAPy7Jok6qU/K0Jht2k91CL5SVD9aHh1BvYHiCxYe1nV9w9h5bVcdk4DwGn3TmYg1Y9Rb8P2FQYVQbOM+qjPaDDwMguMw3j00Mst0narUDaUgBICPI5VgAhe5rUVguZBhhMaGOEzrrU6pQpfpdoqeB8k2hvoF7UB9mhxmsyD4WYIs0c/ifEKnoVxSEsptQke5rdQ5vGdRt4SYXTEf2lWq1l1s1GojlDiAgpmTLN4KHEKegw+NKvsco8oglApd0XtoOzEzhZmCuq2QJ7RRX3lqmO84xjaxGltUj/dVcJEwhuIqwVRptsZMZwL/wG2FPIHryijVVBnUNdJlS1ZKlmJEzkApr1JDj5KsyeJaQsR+fDlW8G/KCWyl1tgpziEIxczwVcnYcT6p5LpwO7gZ5jzH7mT0hmbW0+IO/UBixXX5L4RZlmpOn8u6vT7Y3P4BKLGmkBK1qvgAAAAASUVORK5CYII=)\",\"lasso.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADg0lEQVR4Xk2UXWxTZRjHn7XYfWhh4DKlIFLRdlucImbGr2gEwYwsAjGRXXihRlTOFrOoF0RcdWwhEVnQdgOmbgzoliEhAZJlvZwdMQg6No/U2IYOWVrK1q1d19q1Pef8fU7bsy3/nIvznv/ved/n47xEZKDivNpK8RoE6XC4J9gX7A/2hXukwxCwta1UcxhUu4PcLFHnqZnaf+/E0FhTqDpiiaqqjjSFhsbvnZja76kRdarLQRzbTSjAuozgczaHVoJYhShX1krlSmH2bSWaQz5nRsA6MJQDrHMtx0Y3y4QS7Eo0eTpG3K5rP7tdHSNNnl2JNQxtlo+NzrXAmgXEDcnWA/5ihbAtOeyKtKf3wmIvs6+2l8GS3hv51u3aliQUKwf8yVZxA2GNIvSIBCNaJmPt/jrR6KZfyL6omQdQF2tvmTTyPt2iIhDq/f1mth/1LtjCVTa9QAIN8dEl8tK8mgJBj6oF21GvEWb4+wlft08Sds+FHbPmDl2A/mOl2Ran7SQylkV0MIcdu+cI7J3utUb0aL2q1DZSlDiRvObpKdpCZymVf1dqW6/qYY1QsM8SXYULw3jcq8XLWlSghOrJpYUwXxpeDUuUZn6smNWheUx6l7uxGD8HrKXz9A2doQidJnnPoWt6VEQItm4/4aX0LSd2wLCEqMB6+otmqYt8K1LVd3+oTRA6/yXUTXe+mCHsjE048QbWw8R6EHoNAMlGbA+d/PSOAZXKZC9tKbr19m+DFZztc/E/B2/3jp//x5logyC/8oyBd9DBIjeODj4/X8hTcO4PZZ/a6RKpYfBKWb6CuTQ+i41elD5A5cLHga7jPjOvWDIDv6e/EE25WXo49N0mPmF21OR3wm/FTahMf3/dNtLoe4GPa1LeC9y4xGUxacNnvHnykfTG+IWxJzOlyhnPzHH7bUJRvgINiSuu+CE8i2Jw8NwORq/jidRDktMz4COU46twnVyEx+brwxfFQDc+weu4P0drQFHq/Z+uP73UZq7vh8FAV6oeL2OTZl4OFMCUaZw4NXDjyNTBWENylaLDwXFpH+5Tm5mku4sN1XZQFwrkR+OvyjvxpvT5kTuEHcmpDh5i/qIQ/1l5LQd4RifUOS1A1XTnRq76r5dhzRlTPBxx7vlSDstmiA0r8NGXUcLZm6jJARkGZvnJAtqtod4JmhJbT/9tiZ4bS9QsX83dGv8DIrFVpnd+f4UAAAAASUVORK5CYII=)\",\"lassoPlus.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADiklEQVR4XlVUbWxTVRh+12K3oYWBy9SCSAHbbXGRaGb8SoygmJFFICayH/5AIyrdYhb1BxFXHWswQRa03WVM3RzYjaEhYcZl/Tk6QhB0bN62xjV0yNJStm7tutbetvfex3N7e3XmyUnuOXme9+O8zz1EZKDyIhwVeBE28VisLzIQGYwMxPrEY7Bhh6NCYxgUuou8DLwuUD936G736GRrtC5uSSioi7dGR6fuds8dCtTzOoXlIhbbSyjBhrwt6G6LrgExlKJKfkiskksLuzVoiwbdeRs2gIlUgXWp/eTEdomwGnvSrYGuca/n2g9eT9d4a2BPej0TbZdOTiy1w1oQ8JsyHYdD5TJhZ2bME+/M7YfFWelc56yEJbc//oXXszNDKJcPhzId/CbCetnWxxOMaJ9NdoYaeaOXLpHg8HOCw0lOWrgPjcnO9lkjy9PLyzZCU2jQzOgnpgV7rNaut5GNRsnPEXzcstICQY9awX5i2ggzQoOEzzpnCXuXYq5Fc5cuTH8z5IoCnkRVooM55tq7RGDc+X5rXI+Oq3JDCyVILhTj54bPEYbPKV+CoyAhuaHjqh7WOEUGLIm1uDCGbdOFeEoxK+Hjilvz8Ng6WBK08E31og5tk+IBNg3GFBw+zlfMoHwJjrMUpzMk7Tt6TY/qOMHeGyI8l7vpxi4YtOBq0xvJR4vUQ8FV2bo7XzekCdxfhMZ57tk8YXdyxo1XsBEmhvv93ZoAJBnxcvT0B7cNqJFn++mJspuv/zJSzcb2VOr3kVv9Uz/+6U47BI/vZ+FzlkEHi9QyMfL0cilzwfnf5IPKpFeLzSOXK4s3qDb8YXLiovg2aoT3wj2ngmZ2YskP/Zr7mDepXnow+uVWVmHBatIbsddSJtTkvrpuH28JPsPKNclvhm8Ms2sxaeYz+k8/nNucujD5WL5CPhtYOOW8RSgr3kBz+rIndRRPohwsuJrBOO16NPuA6A4MBQlV+DTWKJVhy3JT7CIf7sX7eAn3qmpNUJZ969vrj7PGNRjwTiTck23C89iqkVcKSmDKt8x8N3Tj+NyRZHNmrazDkSnxIO5RhpmhO/9G0jIoByXSI6kXpN14Vfzo+G3CrsxcFzOx4iJif1YRKwXMozNssZi189xmdutXfoJVJWaZOVJs5v/18H+/rcK7nyQI3/tRrwryTLDIVkGgvRrKm6AhvePMH5bE+cl0/cpT9dX4B08ibwJFFp9KAAAAAElFTkSuQmCC)\",\"pointingHand.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADe0lEQVR4Xq2V+yvrYRzHnWwuaaUst9mY21iyHcVySghxJJLLDy7L2Y9S4geHThx+5ISc0vCDf0AS6fj1rPxkRJ2dJjvtjNolt1y+NMY+5/N5yonZbIunvm179nyf1/N+fy5PSMgLo6OjwxAWFgaxsbHQ2NhonJiYELy0Pqj/CgoKPqSmpjoGBgZgfHwciouLna2tre+D2uSlxXK5XJ2UlMTt7e2B2WyGjIwMiImJ+fhmADy9OjMzk7PZbHB0dAT4HXp6en6+GSA5OVktk8k4u90Ox8fHTEF3d/fvNwNIpVKm4AFACgYHB//Mzc0pUZ3o1SBPgEKhgKysLFd5ebkdlekTExMLUKUU56VVVVVhQQM9AdnZ2dDe3g5bW1tQU1MDKSkpNrTtr0qlsvT3939/NSA9PR2mp6fh7u4OhoaGWG2gXdDZ2Qnx8fFWBH3CR4P1IvMFe4feqoqKir7k5OQoSQEF2Wq1siwiwMzMDLjdbhgeHoa8vDw4OztjiiIiIqCyshLq6uoA39mRSCSKZ5DQ0FAxnuQXeutG+Yb8/Hwt1gIDHB4eMsDs7Czc399TsAFPCxzHwe7uLojFYlhdXQWDwQBKpZLDfdTeVMhra2vBaDRCV1cX2zAtLQ0IcHp6yuYWFxeZRfPz89DX18cAVIgYbNje3oaTkxPAJODwsN4BLS0tTPbGxgagTBCJRECFdnt7C+fn53B9fc0UXF1dweXlJbhcLnA4HAxmsVhYvVRUVHA8Hu85IDIyUl5SUgImk4mduKmp6T+ANiXvHz+Ag+ZJEYHpkxTgHt4VCIVCCTY009TUFNzc3MDk5CTlPRwcHLCN/A2CE6C0tNQ7IDw8nI8Z8LWhoeGWFGxubkJvby+THSyAz+d7jUEIpp46ISGB0+l0zHeKh9PpDAhACimd0QUuKirKO4BSC3uOTqPRwMXFBQvig/+BWER9C+8RLjo62jcAPayhvqPX6xmAgkf++hu0huKF2cdhivsGjIyMCAsLC81jY2PMHgIEMgiwvr4OcXFxHNaCbwDZ1NbW9q2srAz29/fZ6QOB0LrR0VHAdPd/ZwgEAhF6uaPVap/EwbMOHpTRPGUbKgfsBv5vPawJXn19/WfsR04qPMoozzg8hlEirK2tMUBzc3Pg93Zubq6uurqa9aCVlZUnz/LyMvu9tLQECwsLgPVD1f/Ds8n9AyubuM4FiwqZAAAAAElFTkSuQmCC)\",\"rect.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACc0lEQVR4Xo2UT0hUURTGf7uipMy8GbUwigx0WbiwpCgQKmgl1CYj3Plahtg/eguFUIoamNxUCEFCGlIgEhSORmQRNeVMSkhpWcSU1KSOQ9i8vvfmpiMZOB8Xzjv3fPPd8+dertPHQICX/OAVnTRTz1GOaNXL7pQvSdTG9KHwCVJMyzlMFw1UsJFC8lmtVSi7Qr4u7SUVk1KsmCkyZtJETchUmTKh3NSYk6ZBq0a276nSXtRMGc+kfMIkiRY3shQkWiZ9wjjxMN5SEAuPQ5qegBALe07a+eiMCj9lxZ0ZJ+N483A9oQf6qbWED6rITW4IcQGaGJuT/Y0f7rm1cJliS+jnLjNkAviEDXTwVbZ/2gwjobLESKgY6iiwhI5gyw/N/T2zKtljF0CN6p39SAZbCVyhTpwVLKOUM8wGmn4lEy35yGH+Jp1TKF9nrRp3mzbOMcp9m0MhtLPrvwRDr/6/mwda6cZ4ON24Hd5z1RISfGNIAdmDnWabtHtlzxLjtY1pgucM2o8rPOUhj+UZY0qDWGEJad5y0ca8mO90LLyKA+yjkirN6QWeaO0kwjvucZw8m0MwGinLzmelUi1nP3vYQrUCH3GNY5Qp+UpbpelcQjNnWcchVWRQhc2jiPWsYTl7aZRetvTBtP5VaJW7la0c5g4npFbCbk5xSzlNKPGRUKk6vYCwScIH2ax2lagH1VJ6wxdbNVUumKUFhGFNaMxiyEk4v3Jn1VmE4LluBK804W/5zdDA/+OxCtk58dzeNjcS7vYJ/v1bzGMJnm7rPDLmkzlvdph2E5/zRs13M2BS/p3OvhoLkVSBi7jE5zn/VPCy+K/GH86K+gV5WsL6AAAAAElFTkSuQmCC)\",\"rectPlus.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACi0lEQVR4Xo2UT0hUQRzHP6c2KmrTnYoKjCAP+45FB0uKAqECT0FdMsKbr2OIUdE76EUpamHzUmoEGWmIgUnQn9UOWURp7ksJKSuLeCW1qesStq/fvB11lzr4vgzM/Ob3md+b3/xmuEYfA4Fe8ZMhOmmklmMclVYr/U6xpRg0Pn2I+yRpZsQ4Shd1lLGJCGHWSItIv0xsXTKXEp+0+AqZJqum1KCKqQpliXaqKnVK1Umrkr62VMjcoJpWvkprYAqvyUksRV7TlAYmcOP4S1EyPgEZegMgGfftjP3JHhf9kp5rz9pZ21+U44t6oZ9qA3yUjNygReSKoIEPC2H/oN19pxouUWKAfrqZJRtIAxvp4Jv09d9mGYtZ3lisBGooMkBHMKVd5QsRlSbfcxMl99tFUCX5zg1SwZSHI6qJ4q+wNHWGuSCmzqTXFEYMan7TeYlyBSi2ItymjXOMc9/sIQLt7C4AMiE36ka7K/HDlUXR1uh0qIcH9JCpd+OZ+u3wnisG8PjOCEOydr6S1hxJXhufBnjBsBlc5hkPeRS6bt2zbuUiWK1WJpThLReMz8vFk07GV3OQ/ZRTIXWqN11t7SLBO+5yglVmD0FppA0dZqWkcScH2MtmAVqsJ1zlOJZUbbnJ0kw+0MhZ1lEpGRnGCS2zVGgDa1nOPup5ahYNqnU+QrOYm9nGEe5wUqKVsofT3JRdTspZjMWictIFwBYJfIitcsClFHNYIr3hq7iapAW1VACMSoUmjUZsz/6dX6t2rvgKAN9xEvhRT0/oZaXg/7EYIFcnvvO4zUnEezSg79//LAbw5bYuKqs+q/Nqh2pX7oJ1UP1QAyqt73Tu1ShUShK8not8WbBPBy+LfjX+AjC0Avv8MQHTAAAAAElFTkSuQmCC)\",\"zoom.png\":\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACiUlEQVR4XpVTTUgUYRh+nJWCxUsNevBiYGm7UjAnFyoI9ORKSxt4a71Ei9I10EPg0VO7hOE1ikQSofXiYv6QRX9bkTAjbbM/B2mz8id3Z2f/ZvbtndR0NYn9XuYbPuZ55n3f730efMQCZjCLOX4/xyJe4BXe4C3e4QNi0JDCBu8JRPkURxIMm8BjjOMJJvEUU8jadUn36D79Zs5X8JhSyb6AX/iBzxxfLMIMwx/gIcYwXRMTNa86Mhrp23QXOwx3sW9zNKKOaF5NzAlrnCWBFXAx43jE8PeC0b4U9KstJmh/tJh+dSlotJeEDYZ/Bea5GAtudoZDkm5jcCP1poejd+XhaG+6kc82kvRwiDpLwha+A1RX8K4OaDfCU038UTQGk/GA2qO4lDbFpfbEA4NJ0QA1UThktOeFDBPOLd+/qF9PtOZBDi30LNU91FBfgz+rvmaoIdUVmnZo4CxLQU3cYsLJ7G1HebvqC7nIhHJ6G7y7mmsNKTQtGjbyq5p3Dnzv2au31i24QK35cEhpriQAzbUp92AS1GKqI7odL5F1jM9bzV7KzoyVLvfbDhKAoYZ4wGp/NFKU8Br6scS9VrM7Fw8a56/8A271ovb0pkF9m2UPy2AWGd/k4sYdpal/7+fH4cTxvaPsGo6C3EXysWYWQafIR2cqSnFyV237CM6ADOowyM8Si+xkkCsztB2RIYZCFT2QB1mYVdwSSSza/N85nD1qDl27cyA76EQ1k6bqtESiRagrXFsdyBxQq+ySnfIhtbJ6gHX2bBprQvmAHwKH/GDBmRCDyibP4Od/HLcNZ0KcCSnkmLQsKEd4mmvfgTMhybGCb0zI4RPb1bSbUtnDUvHz4yGJ7BUWx2+5Iu7Rc33AhQAAAABJRU5ErkJggg==)\"};var Uw=Object.create(null),eI=3/4,Zl=class{constructor(Y){this.HOTSPOT_32=Y.HOTSPOT_32,this.IMAGE_NAME_32=Y.IMAGE_NAME_32,this.cPointerCursor=Y.cPointerCursor,this.cTextCursor=Y.cTextCursor}getCursor(Y){if(Uw[Y])return Uw[Y];if(this.IMAGE_NAME_32[Y])return this.buildCursor(Y);switch(Y){case this.cPointerCursor:return\"default\";case this.cTextCursor:return\"text\";default:throw new Error(`Unknown cursor: ${Y}`)}}buildCursor(Y){let vt=this.IMAGE_NAME_32[Y],kt=`${tI[vt]} ${this.HOTSPOT_32[Y*2]*eI} ${this.HOTSPOT_32[Y*2+1]*eI}, default`;return Uw[Y]=kt,kt}};var Wl=class{constructor(Y,vt){this.title=Y,this.rootElement=vt,this.elements=[],this.dialogElement=null}setLayout(Y,vt){this.hLayout=AI(Y),this.vLayout=`${AI(vt)} auto`}add(Y,vt,ot,kt,C1){this.elements.push({component:Y,x:vt,y:ot,x2:kt,y2:C1})}createTextField(Y,vt){return new sw(Y,vt)}createLabel(Y){return new Lw(Y)}createComboBox(){return new yw}createCheckBox(Y){return new lw(Y)}setEventConsumer(Y){this.consumer=Y}showMessage(Y){window.alert(Y)}showDialog(Y){let vt=document.createElement(\"dialog\"),ot=this.rootElement.getBoundingClientRect();Object.assign(vt.style,{position:\"absolute\",marginBlock:0,left:`${ot.left}px`,right:`${document.body.parentElement.clientWidth-ot.right}px`,top:`${this.rootElement.offsetTop+30}px`}),this.dialogElement=vt,this.rootElement.getRootNode().append(vt);let kt=document.createElement(\"form\");kt.style.display=\"grid\",kt.style.gridTemplateColumns=this.hLayout,kt.style.gridTemplateRows=this.vLayout,kt.addEventListener(\"submit\",u1=>{u1.preventDefault(),this.consumer.fireOk(),Y()}),vt.append(kt);for(let{component:u1,x:h1,y:s1,x2:P0,y2:z0}of this.elements){let I0=document.createElement(\"div\");P0===void 0?(I0.style.gridColumn=`${h1+1} / ${h1+2}`,I0.style.gridRow=`${s1+1} / ${s1+2}`):(I0.style.gridColumn=`${h1+1} / ${P0+2}`,I0.style.gridRow=`${s1+1} / ${z0+2}`),I0.append(u1.getElement()),kt.append(I0)}let C1=document.createElement(\"div\");Object.assign(C1.style,{display:\"flex\",flexDirection:\"row-reverse\",gap:\"15px\",gridColumn:\"1 / -1\",gridRow:\"-1\"}),kt.append(C1);let jt=document.createElement(\"button\");jt.type=\"submit\",jt.textContent=\"OK\",C1.append(jt);let T1=document.createElement(\"button\");T1.type=\"button\",T1.textContent=\"Cancel\",T1.addEventListener(\"click\",()=>{this.consumer.fireCancel(),Y()}),C1.append(T1),vt.showModal(),vt.addEventListener(\"cancel\",()=>{this.consumer.fireCancel(),Y()})}disposeDialog(){this.dialogElement!==null&&(this.dialogElement.remove(),this.dialogElement=null)}},a2=class{setEventHandler(Y){this.eventHandler=Y}fireEvent(Y,vt){this.eventHandler(Y,vt)}},Lw=class extends a2{constructor(Y){super(),this.element=document.createElement(\"label\"),this.setText(Y)}setText(Y){this.element.textContent=Y}getElement(){return this.element}},sw=class extends a2{constructor(){super(),this.element=document.createElement(\"input\"),this.element.type=\"text\"}setText(Y){this.element.value=Y}getText(){return this.element.value}getElement(){return this.element}},yw=class extends a2{constructor(){super(),this.element=document.createElement(\"select\"),this.element.addEventListener(\"change\",()=>{this.fireEvent(2,this.element.selectedIndex)})}setEnabled(Y){this.element.disabled=!Y}addItem(Y){let vt=document.createElement(\"option\");vt.textContent=Y,this.element.append(vt)}getSelectedIndex(){return this.element.selectedIndex}setSelectedIndex(Y){this.element.selectedIndex=Y}setSelectedItem(Y){let vt=this.element.options;for(let ot=0;ot<vt.length;ot++)vt[ot].textContent===Y&&(this.element.selectedIndex=ot)}getSelectedItem(){return this.element.options[this.element.selectedIndex].textContent}removeAllItems(){this.element.innerHTML=\"\"}setEditable(){}getElement(){return this.element}},lw=class extends a2{constructor(Y){super();let vt=document.createElement(\"label\"),ot=document.createElement(\"input\");ot.type=\"checkbox\",ot.addEventListener(\"change\",()=>{this.fireEvent(3,ot.checked?1:0)}),vt.append(ot),vt.append(Y),this.element=vt,this.checkBox=ot}setEnabled(Y){this.checkBox.disabled=!Y}isSelected(){return this.checkBox.checked}setSelected(Y){this.checkBox.checked=Y}getElement(){return this.element}};function AI(w){return w.map(Y=>Y>0?`${Y}px`:\"auto\").join(\" \")}var eU=class{constructor(Y){this.imageData=Y,this.dataView=new DataView(Y.data.buffer)}getWidth(){return this.imageData.width}getHeight(){return this.imageData.height}getRGB(Y,vt){let ot=this.dataView.getInt32((vt*this.imageData.width+Y)*4,!1);return(ot&255)<<24|ot>>>8}setRGB(Y,vt,ot){let kt=ot>>>24&255,C1=ot<<8|kt;this.dataView.setInt32((vt*this.imageData.width+Y)*4,C1,!1)}toDataURL(){let Y=document.createElement(\"canvas\"),vt=Y.getContext(\"2d\");return Y.width=this.imageData.width,Y.height=this.imageData.height,vt.putImageData(this.imageData,0,0),Y.toDataURL(\"image/png\")}};var _l=class{constructor(Y,vt,ot){this.canvasElement=Y,this.dialogRoot=vt,this.JavaEditorArea=ot}register(Y){this.javaUiHelper=Y,this.cursorManager=new Zl(this.JavaEditorArea,Y)}grabFocus(){this.canvasElement.focus({preventScroll:!0})}setCursor(Y){this.canvasElement.style.cursor=this.cursorManager.getCursor(Y)}showHelpDialog(){}createImage(Y,vt){let ot=new ImageData(Y,vt);return new eU(ot)}createImageFromBase64(Y,vt,ot){ot=ot.replaceAll(/%\\d+%/g,T1=>\"A\".repeat(Number(T1.slice(1,-1))));let kt=_S(ot),C1=new Uint8ClampedArray(kt),jt=new ImageData(C1,Y,vt);return new eU(jt)}createDialog(Y){return new Wl(Y,this.dialogRoot)}runLater(Y){typeof requestAnimationFrame==\"function\"?requestAnimationFrame(Y):typeof setImmediate==\"function\"?setImmediate(Y):setTimeout(Y,0)}};function nI(w,Y,vt,ot,kt,C1,jt,T1){let{readOnly:u1=!1,initialMode:h1=\"molecule\",initialFragment:s1=!1}=Y,P0=document.createElement(\"div\");P0.dataset.openchemlibCanvasEditor=\"true\",Object.assign(P0.style,{width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"row\",alignItems:\"start\",backgroundColor:\"white\",touchAction:\"none\",userSelect:\"none\",webkitUserSelect:\"none\"});let z0=P0.attachShadow({mode:\"open\"});z0.adoptedStyleSheets=[$S()];let I0=null;u1||(I0=document.createElement(\"canvas\"),z0.append(I0));let qe=document.createElement(\"div\");Object.assign(qe.style,{width:\"100%\",height:\"100%\"}),z0.append(qe);let x0=document.createElement(\"canvas\");x0.tabIndex=0,Object.assign(x0.style,{outline:\"none\"}),qe.append(x0),w.append(P0);let S8=new C1(new _l(x0,qe,ot)),JP=new ot($8t(h1,ot),new Yl(x0,vt),S8);if(s1)if(h1===\"molecule\"){let ce=new jt(0,0);ce.setFragment(!0),JP.setMolecule(ce)}else{let ce=T1.create();ce.setFragment(!0),JP.setReaction(ce)}S8.setEditorArea(JP);let tu=u1?null:new kt(JP,new Xl(I0),S8);function eu(ce){x0.style.width=`${ce.width}px`,x0.width=Math.floor(ce.width*R9),x0.style.height=`${ce.height}px`,x0.height=Math.floor(ce.height*R9),ce.width>0&&ce.height>0&&JP.repaint()}let AU=qe.getBoundingClientRect();eu(AU);let Au=new ResizeObserver(([ce])=>{eu(ce.contentRect)});Au.observe(qe);let nu=null,Pu=null,ru=null;u1||(nu=ow(x0,JP,ot),Pu=aS(qe,x0,JP,ot,jt),ru=ow(I0,tu,ot));function nU(){P0.remove(),Au.disconnect(),nu?.(),Pu?.(),ru?.()}return{editorArea:JP,toolbar:tu,uiHelper:S8,destroy:nU}}function $8t(w,Y){switch(w){case\"molecule\":return 0;case\"reaction\":return Y.MODE_REACTION|Y.MODE_MULTIPLE_FRAGMENTS;default:throw new Error(`Invalid initial mode: ${w}`)}}function PI(w,Y,vt,ot,kt){class C1{#t;#e;#P;#n;#f;#r;constructor(T1,u1={}){let{editorArea:h1,toolbar:s1,uiHelper:P0,destroy:z0}=nI(T1,u1,I0=>this.#i(I0),w,Y,vt,ot,kt);this.#t=h1,this.#e=s1,this.#P=P0,this.#n=null,this.#f={[w.EDITOR_EVENT_MOLECULE_CHANGED]:\"molecule\",[w.EDITOR_EVENT_SELECTION_CHANGED]:\"selection\",[w.EDITOR_EVENT_HIGHLIGHT_ATOM_CHANGED]:\"highlight-atom\",[w.EDITOR_EVENT_HIGHLIGHT_BOND_CHANGED]:\"highlight-bond\"},this.#r=z0}getMode(){return this.#A(),this.#t.getMode()&w.MODE_REACTION!==0?\"reaction\":\"molecule\"}setMolecule(T1){this.#A(),this.#t.setMolecule(T1)}getMolecule(){return this.#A(),this.#t.getMolecule()}setReaction(T1){this.#A(),this.#t.setReaction(T1)}getReaction(){return this.#A(),this.#t.getReaction()}setOnChangeListener(T1){this.#A(),this.#n=T1}removeOnChangeListener(){this.#A(),this.#n=null}clearAll(){this.#A(),this.#t.clearAll()}destroy(){this.#A(),this.#r(),this.#t=null,this.#e=null,this.#P=null,this.#n=null,this.#r=null}get isDestroyed(){return!this.#t}moleculeChanged(){this.#A(),this.#t.moleculeChanged()}#A(){if(this.isDestroyed)throw new Error(\"CanvasEditor has been destroyed\")}#i(T1){if(!this.#n)return;let{what:u1,isUserEvent:h1}=T1;this.#n({type:this.#f[u1],isUserEvent:h1})}}return C1}function rI(w,Y,vt,ot){class kt extends HTMLElement{static MODE=Object.freeze(Object.create({MOLECULE:\"molecule\",REACTION:\"reaction\"}));static observedAttributes=Object.freeze([\"idcode\",\"fragment\",\"mode\",\"readonly\"]);#t={idcode:\"\",fragment:!1,mode:kt.MODE_MOLECULE,readonly:!1};get idcode(){return this.#t.idcode}set idcode(jt){this.#t.idcode=String(jt),this.setAttribute(\"idcode\",this.#t.idcode)}get fragment(){return this.#t.fragment}set fragment(jt){this.#t.fragment=!!jt,this.#t.fragment?this.setAttribute(\"fragment\",\"\"):this.removeAttribute(\"fragment\")}get mode(){return this.#t.mode}set mode(jt){this.#t.mode=String(jt),this.setAttribute(\"mode\",this.#t.mode)}get readonly(){return this.#t.readonly}set readonly(jt){this.#t.readonly=!!jt,this.#t.readonly?this.setAttribute(\"readonly\",\"\"):this.removeAttribute(\"readonly\")}setMolecule(jt){this.fragment=jt.isFragment(),this.idcode=`${jt.getIDCode()} ${jt.getIDCoordinates()}`,this.#e.setMolecule(jt)}getMolecule(){return this.#e.getMolecule()}setReaction(jt){this.fragment=jt.isFragment(),this.idcode=ot.encode(jt,{keepAbsoluteCoordinates:!0,mode:ot.INCLUDE_MAPPING|ot.INCLUDE_COORDS|ot.RETAIN_REACTANT_AND_PRODUCT_ORDER})??\"\",this.#e.setReaction(jt)}getReaction(){return this.#e.getReaction()}clearAll(){this.#e.clearAll(),this.idcode=\"\"}moleculeChanged(){this.#e.moleculeChanged()}#e;#P(){this.#e||(this.#e=new w(this,{readOnly:this.readonly,initialMode:this.mode}),this.#e.setOnChangeListener(this.#o),requestIdleCallback(()=>this.#n()))}#n(){switch(this.mode){case kt.MODE.MOLECULE:return this.#r();case kt.MODE.REACTION:return this.#A();default:throw new Error(`Mode ${this.mode} is not supported`)}}#f(jt){let T1=jt.indexOf(\" \");if(T1===-1)return Y.fromIDCode(jt);let u1=jt.slice(0,T1),h1=jt.slice(T1+1);return Y.fromIDCode(u1,h1)}#r(){let jt=this.#f(this.idcode);jt.setFragment(this.fragment),this.#e.setMolecule(jt)}#A(){let jt=ot.decode(this.idcode,{ensureCoordinates:!0})??vt.create();jt.setFragment(this.fragment),this.#e.setReaction(jt)}#i=!1;#Q(jt){this.#i=!0;try{jt()}finally{this.#i=!1}}#o=jt=>{let T1=this.idcode,u1=this.fragment;this.#Q(()=>{if(jt.type===\"molecule\")switch(this.mode){case kt.MODE.MOLECULE:{let s1=this.getMolecule();this.idcode=`${s1.getIDCode()} ${s1.getIDCoordinates()}`,this.fragment=s1.isFragment();break}case kt.MODE.REACTION:{let s1=this.getReaction();this.idcode=ot.encode(s1,{keepAbsoluteCoordinates:!0,mode:ot.INCLUDE_MAPPING|ot.INCLUDE_COORDS|ot.RETAIN_REACTANT_AND_PRODUCT_ORDER}),this.fragment=s1.isFragment();break}default:throw new Error(`Unsupported mode ${this.mode}`)}});let h1=new CustomEvent(\"change\",{detail:jt,bubbles:!0});if(this.dispatchEvent(h1),jt.mode===\"molecule\"){if(this.idcode!==T1){let s1=new CustomEvent(\"idcode-changed\",{detail:this.idcode,bubbles:!0});this.dispatchEvent(s1)}if(this.fragment!==u1){let s1=new CustomEvent(\"fragment-changed\",{detail:this.fragment,bubbles:!0});this.dispatchEvent(s1)}}};#D(){this.#e&&(this.#e.destroy(),this.#e=void 0)}#u(){this.#D(),this.#P()}connectedCallback(){this.#t={idcode:this.getAttribute(\"idcode\")||\"\",fragment:this.hasAttribute(\"fragment\"),mode:this.getAttribute(\"mode\")||kt.MODE.MOLECULE,readonly:this.hasAttribute(\"readonly\")},this.#P()}disconnectedCallback(){this.#D()}adoptedCallback(){this.connectedCallback()}attributeChangedCallback(jt,T1,u1){if(!this.#e||this.#i)return;(()=>{switch(jt){case\"idcode\":return this.#t.idcode=String(u1),()=>this.#n();case\"fragment\":return this.#t.fragment=u1!==null,()=>this.#n();case\"mode\":return this.#t.mode=String(u1),()=>this.#u();case\"readonly\":return this.#t.readonly=u1!==null,()=>this.#u();default:throw new Error(\"unsupported attribute change\")}})()()}}return kt}function hw(w){let{GenericEditorArea:Y,GenericEditorToolbar:vt,GenericUIHelper:ot,Molecule:kt,Reaction:C1,ReactionEncoder:jt}=w,T1=PI(Y,vt,ot,kt,C1);function u1(){let h1=customElements.get(\"openchemlib-editor\");if(h1)return h1;let s1=rI(T1,kt,C1,jt);customElements.define(\"openchemlib-editor\",s1);let P0=document.createElement(\"style\");return P0.id=\"openchemlib-editor-default-style\",P0.innerHTML=`\n    /* dynamicaly added from openchemlib registerCustomElement with low priority */\n    openchemlib-editor:defined {\n      display: block;\n      height: 400px;\n      width: 600px;\n    }\n    `,document.head.prepend(P0),s1}w.CanvasEditor=T1,w.registerCustomElement=u1,delete w.GenericEditorArea,delete w.GenericEditorToolbar,delete w.GenericUIHelper}function iI(w){w.prototype.changeCustomLabelPosition=function(vt){switch(vt){case\"superscript\":for(let ot=0;ot<this.getAllAtoms();ot++){let kt=this.getAtomCustomLabel(ot);kt&&!kt.startsWith(\"]\")&&this.setAtomCustomLabel(ot,`]${kt}`)}break;case\"normal\":for(let ot=0;ot<this.getAllAtoms();ot++){let kt=this.getAtomCustomLabel(ot);kt?.startsWith(\"]\")&&this.setAtomCustomLabel(ot,kt.slice(1))}break;case\"auto\":for(let ot=0;ot<this.getAllAtoms();ot++){let kt=this.getAtomCustomLabel(ot);kt&&(this.getAtomLabel(ot)===\"C\"?kt.startsWith(\"]\")&&this.setAtomCustomLabel(ot,kt.slice(1)):kt.startsWith(\"]\")||this.setAtomCustomLabel(ot,`]${kt}`))}break;case void 0:break;default:break}}}function fI(w){w.prototype.getNextCustomAtomLabel=function(vt){let ot=vt||\"1\",kt=new Set;for(let jt=0;jt<this.getAllAtoms();jt++){let T1=this.getAtomCustomLabel(jt);T1&&kt.add(T1)}let C1=0;for(;kt.has(ot)&&C1++<100;)ot=a8t(ot);return ot}}function a8t(w){let Y=w.match(/(\\d+)/);if(Y){let ot=Number.parseInt(Y[1],10);return w.replace(/(\\d+)/,(ot+1).toString())}let vt=w.match(/([a-yA-Y])([^a-zA-Z]*)$/);if(vt){let ot=vt[1],kt=String.fromCodePoint(ot.codePointAt(0)+1);return kt===\"Z\"||kt===\"z\"?\"1\":w.replace(/([a-yA-Y])([^a-zA-Z]*)$/,`${kt}$2`)}return\"1\"}function DI(w){let Y=w.fromMolfile;w.fromMolfile=function(ot,kt={}){let{customLabelPosition:C1}=kt,jt=Y.call(this,ot),T1=ot.includes(`\\r\n`)?`\\r\n`:`\n`,u1=ot.split(T1);if(u1.length<4||!u1[3].includes(\"V2000\"))return jt;let h1=u1.slice(4+jt.getAllAtoms()+jt.getAllBonds());for(let s1=0;s1<h1.length;s1++){let P0=h1[s1];if(P0.startsWith(\"A  \")){let z0=Number(P0.slice(3)),I0=h1[s1+1]?.trim();s1++,!Number.isNaN(z0)&&z0<=jt.getAllAtoms()&&I0&&!jt.getAtomCustomLabel(z0-1)&&jt.setAtomCustomLabel(z0-1,I0)}if(P0.startsWith(\"V  \")){let z0=P0.split(\" \").filter(Boolean);if(z0.length>=3){let I0=Number(z0[1]),qe=z0.slice(2).join(\" \");!Number.isNaN(I0)&&I0<=jt.getAllAtoms()&&!jt.getAtomCustomLabel(I0-1)&&jt.setAtomCustomLabel(I0-1,qe)}}if(P0.startsWith(\"M  ZZC\")){let z0=Number(P0.slice(7,10).trim()),I0=P0.slice(10).trim();z0&&I0&&jt.setAtomCustomLabel(z0-1,I0)}}return jt.changeCustomLabelPosition(C1),jt}}var trt=[\"M  STY\",\"M  SLB\",\"M  SAL\",\"M  SDT\",\"M  SDD\",\"M  SED\"];function uI(w){let Y=w.prototype.toMolfile;w.prototype.toMolfile=function(ot={}){let kt=this.getCompactCopy(),{includeCustomAtomLabelsAsALines:C1=!1,includeCustomAtomLabelsAsVLines:jt=!1,customLabelPosition:T1,removeCustomAtomLabels:u1=!1}=ot;kt.changeCustomLabelPosition(T1);let h1=Y.call(kt);if(!C1&&!jt&&!u1)return h1;let s1=h1.includes(`\\r\n`)?`\\r\n`:`\n`,P0=h1.split(s1);if(u1&&(P0=P0.filter(qe=>!trt.some(x0=>qe.startsWith(x0)))),P0.length<4||!P0[3].includes(\"V2000\"))return h1;let z0=[];for(let qe=0;qe<kt.getAllAtoms();qe++){let x0=kt.getAtomCustomLabel(qe);if(x0){let S8=String(qe+1).padStart(3,\" \");C1&&z0.push(`A  ${S8}`,x0),jt&&z0.push(`V  ${S8} ${x0}`)}}let I0=P0.findIndex(qe=>qe.startsWith(\"M  END\"));return I0===-1?h1:(P0.splice(I0,0,...z0),P0.join(s1))}}function oI(w){let Y=w.prototype.toRxn,vt=w.prototype.toRxnV3;w.prototype.toRxn=function(kt={}){return QI(this,Y,kt)},w.prototype.toRxnV3=function(kt={}){return QI(this,vt,kt)}}function QI(w,Y,vt){let{programName:ot=\"\",keepIdCode:kt=!1}=vt,C1=Y.call(w,ot);return kt?C1:C1.replace(/^OCL_RXN_V1.0:.*$/m,\"\")}function UI(w){let Y=w.prototype.toSVG;w.prototype.toSVG=function(ot,kt,C1,jt){if(typeof ot!=\"number\"||typeof kt!=\"number\")throw new Error(\"Molecule#toSVG requires width and height to be specified\");jt=jt||{};let T1=jt.factorTextSize||1,u1=jt.autoCrop===!0,h1=jt.autoCropMargin===void 0?5:jt.autoCropMargin,s1=Y.call(this,ot,kt,T1,u1,h1,C1,jt),P0=/svg id=\"(.*)\" xmlns/.exec(s1)[1];return s1=s1.replace(\"<style>\",`<style> #${P0} text {font-family: sans-serif;}`),s1=s1.replace(\"line {\",`#${P0} line {`),s1=s1.replace(\"polygon {\",`#${P0} polygon {`),jt.fontWeight&&(s1=s1.replaceAll(\"font-size=\",`font-weight=\"${jt.fontWeight}\" font-size=`)),jt.strokeWidth&&(s1=s1.replaceAll(/stroke-width=\"[^\"]+\"/g,`stroke-width=\"${jt.strokeWidth}\"`)),s1}}function LI(w){let{ConformerGenerator:Y,ForceFieldMMFF94:vt,Molecule:ot,Reaction:kt}=w;Y.prototype.molecules=function*(){let h1;for(;(h1=this.getNextConformerAsMolecule())!==null;)yield h1};let C1={maxIts:4e3,gradTol:1e-4,funcTol:1e-6},jt=vt.prototype._minimise;delete vt.prototype._minimise,vt.prototype.minimise=function(h1){return h1={...C1,...h1},jt.call(this,h1.maxIts,h1.gradTol,h1.funcTol)},iI(ot),fI(ot),DI(ot),uI(ot),oI(kt,ot),UI(ot);function T1(u1){if(!u1)return null;if(u1.includes(\"V2000\")||u1.includes(\"V3000\"))return ot.fromMolfile(u1);try{return ot.fromSmiles(u1)}catch{}try{return ot.fromIDCode(u1)}catch{}return null}ot.fromText=function(h1){let s1=T1(h1);return s1&&s1.getAllAtoms()>0?s1:null},ot.prototype.getOCL=function(){return w}}function rD(){}function ert(w){let Y=w.document,vt={},ot={userAgent:\"webkit\"},kt=rD;kt.__moduleStartupDone=rD;let C1=rD,jt,T1;function u1(){}function h1(){}function s1(){}function P0(){}function z0(){}function I0(){}function qe(){}function x0(){}function S8(){}function JP(){}function tu(){}function eu(){}function AU(){}function Au(){}function nu(){}function Pu(){}function ru(){}function nU(){}function ce(){}function iD(){}function Tw(){}function $l(){}function cw(){}function ww(){}function gw(){}function dw(){}function al(){}function fD(){}function Bw(){}function rrt(t){}function DD(){}function v1(){}function yI(){}function vw(){}function Fw(){}function kw(){}function ki(){}function th(){}function u0(){}function mw(){}function bw(){}function PU(){}function jw(){}function Rw(){}function rU(){}function eh(){}function pw(){}function Mw(){}function Cw(){}function Hw(){}function Vw(){}function Ew(){}function Sw(){}function Iw(){}function xw(){}function Nw(){}function Gw(){}function Ow(){}function qw(){}function zw(){}function Kw(){}function Jw(){}function Yw(){}function Xw(){}function Zw(){}function Ww(){}function lI(t,e){t.G=e}function hI(t,e){t.d=e}function TI(t,e){t.f=e}function cI(t,e){t.i=e}function wI(t,e){t.i=e}function Ah(t,e){t.J=e}function gI(t,e){t.U=e}function dI(t,e){t.T=e}function BI(t,e){t.P=e}function iu(t,e){t.Q=e}function vI(t,e){t.f=e}function FI(t,e){t.n=e}function _w(t,e){t.p=e}function kI(t,e){t.b=e}function mI(t,e){t.e=e}function bI(t,e){t.r=e}function jI(t){t.a=t.b}function $w(t){this.a=t}function iU(t){this.a=t}function p9(t){this.j=t}function WA(t){this.b=t}function aw(t){this.e=t}function t7(t){this.e=t}function e7(t){this.a=t}function A7(t){this.a=t}function n7(t){this.a=t}function P7(t){this.a=t}function r7(t){this.a=t}function i7(t){this.a=t}function f7(t){this.a=t}function D7(t){this.a=t}function u7(t){this.a=t}function fu(t){this.a=t}function fU(t){this.a=t}function uD(t){this.a=t}function Q7(t){this.b=t}function Du(){this.i=0}function o7(){this.i=1}function U7(){this.a=-1}function nh(){this.b=-1}function mi(t){this.a=t}function uu(t){this.a=t}function Ph(t){this.a=t}function rh(t){this.a=t}function ih(t){this.a=t}function QD(t){this.a=t}function fh(t){this.d=t}function Dh(t){this.a=t}function uh(t){this.a=t}function oD(t){this.a=t}function UD(t){this.a=t}function br(t){this.a=t}function jr(t){this.a=t}function Qh(t){this.b=t}function DU(t){this.b=t}function L7(t){this.a=t}function s7(t){this.c=t}function Zt(t){this.c=t}function y7(t){this.a=t}function oh(t){this.a=t}function l7(t){this.c=t}function h7(t){this.a=t}function T7(t){this.a=t}function c7(t){this.a=t}function w7(t){this.a=t}function g7(t){this.a=t}function d7(t){this.a=t}function RI(t,e){t.a=e}function pI(t,e){t.a=e}function MI(t,e){t.d=e}function CI(t,e){t.e=e}function uU(t,e){t.n=e}function HI(t,e){t.U&=~e}function B7(t,e){t.D[e]=-1}function VI(t,e){f2(e,t.a)}function EI(t,e){xI(e,t.B)}function SI(t,e){NI(e,t.v)}function II(t,e){Ex(e,t.f)}function xI(t,e){Dq(t.a,e)}function NI(t,e){uq(t.a,e)}function GI(t,e){uQ(t.a,e)}function Uh(t,e){Ft(t.a,e)}function Lh(t,e){Ft(t.a,e)}function YP(t,e){Ft(t.a,e)}function OI(t,e){Ft(t.S,e)}function QU(t,e){cA(t.d,e)}function n1(){bD(this)}function Qu(){TU(this)}function Yn(){i8(this)}function sh(t){uZ(this,t)}function oU(){n1.call(this)}function v7(){n1.call(this)}function F7(){S9.call(this)}function qI(t){return CX(t)}function zI(t){return xX(t)}function KI(){return++TE}function ou(){this.c=new n1}function LD(){this.a=new n1}function k7(){this.a=new n1}function m7(){this.a=new CU}function b7(){k7.call(this)}function yh(){k7.call(this)}function lh(){S9.call(this)}function Rr(){S9.call(this)}function bi(t,e){t.length=e}function JI(t,e){t.I[e]=512}function hP(t,e){t.v[e]|=Q0}function hh(t,e){t.G[e]|=O0}function YI(t,e,A){t.k[e]=A}function XI(t,e){t.r=e,t.U=0}function ZI(t,e){t.s=e,t.U=0}function QA(t,e){Ni(t.a,e)}function WI(t,e){Ft(t.c,e)}function c0(){c0=v1,_u()}function Th(){S9.call(this)}function j7(){S9.call(this)}function mA(){S9.call(this)}function ch(){S9.call(this)}function R7(){S9.call(this)}function p7(){BQ.call(this,0)}function _I(t){t.a>0&&--t.a}function $I(t){return rr(t)}function aI(t){return t>>>0}function tx(){return pf(),F9}function M7(){this.b=new Vr}function C7(){this.a=new n1}function wh(){this.a=new gD}function ex(t){this.a=t,Li(t)}function sD(t){this.a=_K(t)}function ji(){this.a=new Yn}function UU(){this.a=new Tk}function gh(){this.a=new cP}function H7(){this.a=new cP}function V7(){fM(),this.b=Et}function Ri(t){KL(t),t.d=null}function Ax(t){mS=t,Go=!0}function nx(t){aA(),O1(),Bn=t}function M9(t){H1.call(this,t)}function E7(){lh.call(this)}function Px(t,e){QA(e,t.a.a)}function LU(t,e,A){t.k[e].a=A}function sU(t,e,A){t.k[e].b=A}function yU(t,e,A){t.k[e].c=A}function rx(t,e){return t.o[e]}function ix(t,e){return t.X[e]}function fx(t,e){return t.Y[e]}function yD(t,e){return t.e[e]}function Ct(t,e){return t.e[e]}function t0(t,e){return t.p[e]}function N(t,e){return t.k[e]}function R1(t,e){return t.t[e]}function S7(t,e){return t.K[e]}function we(t,e){return t.B[e]}function l0(t,e){return t.C[e]}function J(t,e){return t.D[e]}function ie(t,e){return t.H[e]}function c1(t,e){return t.I[e]}function Dx(t,e){return t.d[e]}function dh(t,e){return t.e[e]}function ux(t,e){return t.f[e]}function pr(t,e){return t.a[e]}function Z0(t,e){return t.k[e]}function Uu(t,e){return t.a[e]}function Lu(t,e){return t.b[e]}function lD(t,e){return t.e[e]}function Qx(t,e){return t.a[e]}function I7(t,e){return t.b[e]}function x7(t,e){return t.c[e]}function ox(t,e,A){f8(t.a,A,e)}function Ux(t){CK(t.a,t.c,t.b)}function N7(t){M9.call(this,t)}function G7(t){rX.call(this,t)}function O7(t){Vtt.call(this,t)}function q7(t){$U.call(this,t)}function z7(t){$U.call(this,t)}function K7(t){$U.call(this,t)}function J7(t){$U.call(this,t)}function XP(t){M9.call(this,t)}function Y7(t){M9.call(this,t)}function X7(t){Ps.call(this,t)}function pi(t){return y1(t),t}function hD(t){return y1(t),t}function Lx(t){return fP*t*t}function sx(t,e){return t.db[e]}function yx(t){return si(t),t.B}function lx(t){return si(t),t.H}function hx(t){return ls(t,t.i)}function Tx(t,e){return wJ(t,e)}function cx(t,e){return PK(t,e)}function TD(t,e){t.U|=248&(8|e)}function Z7(t,e){t.g=new $i(e)}function Mi(t){t.b=null,t.c=0}function I8(t){M9.call(this,t)}function ZP(t){M9.call(this,t)}function lU(t){M9.call(this,t)}function W7(t){M9.call(this,t)}function cD(t){M9.call(this,t)}function wx(t){PG(t,t.length)}function gx(t){tG(t,t.length)}function dx(t){eG(t,t.length)}function Bx(t){rG(t,t.length)}function Bh(t){xu(t,t.length)}function hU(t){y1(t),this.a=t}function vh(t){new n1,this.a=t}function _7(t){return 4e3*t*t}function vx(t){return 8e3*t*t}function WP(t){return!!t&&t.b}function $7(t){return t.b==t.c}function Fh(t,e){return t.a[e]}function k(t,e){return uv(t,e)}function a7(t){return zu(t,t.jb)}function B0(t,e){return t.v[e]&3}function mt(t,e){return t.K[e].a}function Rt(t,e){return t.K[e].b}function oA(t,e){return t.K[e].c}function ze(t,e){return t.G[e]&3}function Fn(t,e){return t.A[e]<0}function wD(t,e,A){HD(t.k[e],A)}function bA(t){qA.call(this,t,0)}function tg(t){dD.call(this,t,0)}function kh(t){XP.call(this,t)}function _A(){O1(),D3.call(this)}function eg(t){this.b=t,this.a=1}function TU(t){t.a=0,t.b=0,t.c=1}function Fx(t,e){t.c=e,t.U&=-144}function Mr(t,e){return t.k[e].a}function Cr(t,e){return t.k[e].b}function Hr(t,e){return t.k[e].c}function kx(t){return t.c||jQ(t)}function mx(t){return aA(),ii(t)}function bx(t){return aA(),Pi(t)}function Ag(t){ex.call(this,t.a)}function ng(t){XP.call(this,t)}function _P(t){ZP.call(this,t)}function gD(){uu.call(this,\"\")}function su(){uu.call(this,\"\")}function M0(){uu.call(this,\"\")}function Vr(){uu.call(this,\"\")}function mh(t){sD.call(this,t)}function cU(t){DU.call(this,t)}function Pg(t){GU.call(this,t)}function rg(t){cU.call(this,t)}function ig(t){XB.call(this,t)}function bh(t){x8.call(this,t)}function jh(t){w7.call(this,t)}function fg(t){xr.call(this,t)}function Ci(){zh.call(this,null)}function Dg(){Dg=v1,p1=new Td}function ug(){ug=v1,cc=new u1}function Rh(){Rh=v1,wc=new Bw}function Hi(){Hi=v1,gl=new Yn}function Er(){Er=v1,Ro=!1}function yu(t){return zU(t),t.n}function lu(t,e){return hF(t,e)}function jx(t,e){QN(t.b,t.a,e)}function wU(t,e){return t<e?t:t-e}function Z1(t,e){return e*t.c+t.b}function W1(t,e){return e*t.c+t.a}function ph(t,e){return x(t.j,e)}function Qg(t,e){return x(t.k,e)}function Mh(t,e){return sx(t.d,e)}function Rx(t,e){return rx(t.d,e)}function C0(t,e){return KU(t.d,e)}function px(t,e){return x(t.a,e)}function Ch(t,e){return x(t.f,e)}function C9(t,e){return x(t.g,e)}function jA(t,e){return t.v[e]&48}function hu(t,e){return t.B[e]==0}function Mx(t,e){return Qf(t.d,e)}function Tu(t){return tj(t,Q6(t))}function og(t){return t.l|t.m<<22}function kn(t){return ut(t,7),t.q}function Cx(t,e){return t.a+=e,t}function Hh(t,e){return t.a+=e,t}function m0(t,e,A){t.t[e]=A,t.U=0}function w0(t,e,A){t.I[e]=A,t.U=0}function Ug(t,e){Ft(t.f,e),t.d=-1}function Lg(t,e){Ft(t.g,e),t.d=-1}function Hx(){Oo!=0&&(Oo=0),qo=-1}function Vh(){Vh=v1,eS=(g5(),So)}function x8(t){this.a=(y1(t),t)}function gU(t){this.a=new Ji(t)}function sg(t){this.a=new O7(t.a)}function Sr(t){this.b=t,this.a=0}function yg(){this.a=0,this.b=0}function dD(t,e){this.k=t,this.j=e}function u(t,e){this.b=t,this.a=e}function UA(t,e){return t.a[e]&d1}function TP(t,e){return t.c[e]&d1}function cu(t,e){return t.I[e]&127}function wu(t,e){return t.v[e]&448}function Vx(t,e){return t.D[e]==-1}function Vi(t,e){return J0[t.D[e]]}function dU(t,e){Jtt.call(this,t,e)}function BD(t){PZ.call(this,t,t.o)}function BU(){yq.call(this,new ce)}function vD(t,e){gu.call(this,t,e)}function lg(t,e){this.b=t,this.a=e}function $P(t,e){this.a=t,this.b=e}function gu(t,e){this.a=t,this.b=e}function hg(t,e){this.a=t,this.b=e}function ae(t,e){this.a=t,this.b=e}function Tg(t,e){this.a=t,this.b=e}function cg(t,e){this.a=t,this.b=e}function wg(t,e){this.a=t,this.b=e}function vU(t,e){this.b=t,this.a=e}function FD(t,e){this.b=t,this.a=e}function gg(t,e){this.a=t,this.b=e}function dg(t,e){this.a=t,this.b=e}function FU(t,e){this.k=e,this.j=t}function Eh(t,e){this.a=t,this.b=e}function Ei(t,e){gu.call(this,t,e)}function Bg(t,e,A){GA(t,A),MA(t,e)}function Ex(t,e){Qz(t.a,t.b,t.c,e)}function Sx(t,e){wL(t.c,new P7(e))}function Ix(){throw et(new mA)}function Sh(){throw et(new mA)}function z1(){z1=v1,k9=new kw}function kU(){kU=v1,Sl=new bw}function vg(){sl==null&&(sl=[])}function Fg(t){ID.call(this,t,0)}function kg(){XB.call(this,null)}function cP(){Ji.call(this,null)}function un(t){this.b=t,this.a=-2}function xx(t){throw new Error(t)}function aP(t){return t.a.c+t.c.c}function mg(t,e){return Ft(t.a,e)}function bg(t,e){return Qf(t.a,e)}function Nx(t,e){return t.exec(e)}function q(t,e,A){return t.F[e][A]}function Z(t,e,A){return t.j[e][A]}function Nt(t,e,A){return t.n[e][A]}function EA(t,e,A){return t.o[e][A]}function Gx(t,e){return t.I[e]==512}function Ih(t,e){return x(t.a,e).a}function jg(t,e){return x(t.a,e).b}function Rg(t){return CA(t,1,t.c)>0}function Ox(t){return Array.from(t)}function qx(){return new P8(new U8)}function pg(){Vh(),Go||CL(),new lp}function Mg(t){eM(),r1t.call(this,t)}function Cg(){xr.call(this,null)}function Ir(t,e){gu.call(this,t,e)}function Hg(t,e){this.a=t,this.b=e}function zx(t,e){DG(t),t.b.bd(e)}function I1(t,e){return O(t,e)>0}function Si(t,e){return O(t,e)<0}function du(t,e){return Kr(t.a,e)}function Bu(t,e){return $g(e,t.a)}function xh(t,e){return $g(e,t.a)}function H9(t){return t.b=Cv(t.a)}function mU(t,e){return YU(t.a,e)}function Vg(t,e){return t.a.get(e)}function bU(t,e){zr(t,t.length,e)}function vu(t,e){gu.call(this,t,e)}function jU(t,e){gu.call(this,t,e)}function Eg(t,e){this.a=t,this.b=e}function wP(t,e){this.a=t,this.b=e}function Sg(t,e){this.a=t,this.c=e}function RU(t,e){this.c=t,this.d=e}function Ig(t,e){this.b=t,this.a=e}function xg(t,e){this.b=t,this.a=e}function Ng(t,e){this.b=t,this.a=e}function Kx(t){return t.B?t.B.t:1}function Fu(t){return typeof t===m2}function Ii(t){return typeof t===s9}function N8(t){return typeof t===Mf}function K1(t){return t??null}function Nh(t,e){return t==e-1?0:t+1}function Jx(t,e){R6.call(this,t,0,e)}function Yx(t){w.clearTimeout(t)}function Gg(t){this.b=t,this.c=!1}function Og(){Go||CL(),this.a=new om}function tA(t,e,A,n){t.A[e]=n?-A:A}function ge(t,e,A){t.K[e].a=A,t.U&=7}function Ve(t,e,A){t.K[e].b=A,t.U&=7}function Xn(t,e,A){t.K[e].c=A,t.U&=7}function A0(t,e){return O(t,e)==0}function ku(t,e){return O(t,e)>=0}function qg(t,e){return O(t,e)<=0}function gt(t,e){return O(t,e)!=0}function Xx(t,e){return aA(),Ze(t,e)}function Zx(t,e){return aA(),zA(t,e)}function zg(t,e){return K1(t)===K1(e)}function Gh(t,e,A){return t.e[e][A]}function Oh(t,e,A){return t.f[e][A]}function xi(t,e){return(t.v[e]&4)!=0}function pU(t,e){return(t.G[e]&4)!=0}function Ue(t,e){return t.j[e].length}function qh(t,e){return t.e[e]-t.k[e]}function MU(t,e){return(t.v[e]&8)!=0}function Kg(t){return parseInt(t)||-1}function Wx(t,e,A){f8(t.f,A,e),t.d=-1}function _x(t,e,A){f8(t.g,A,e),t.d=-1}function Ni(t,e){return t.a+=\"\"+e,t}function Jg(t,e){return t.a+=\"\"+e,t}function G(t,e){return t.a+=\"\"+e,t}function xr(t){this.f=t,this.g=!0}function zh(t){this.d=new n1,this.c=t}function Yg(){this.c=new cP,this.b=0}function CU(){pf(),this.g=new Gr,uJ()}function HU(){HU=v1,Ac=zA(\"X\",32)}function Xg(){Xg=v1,Zf=(z1(),nn)}function Zg(){Zg=v1,R8=(z1(),nn)}function mu(t){d6(),YB.call(this,t,0)}function Wg(){w7.call(this,\"UTF-8\")}function Kh(t){U8.call(this),this.e=t}function Nr(t){return t.b<t.d.size()}function t8(t){return t?t.jd():null}function _g(t){return N0(t.l,t.m,t.h)}function G8(t){return dP(t,t.r,t.s,Bn)}function $x(t,e,A){return e6(t.a,e,A)}function bu(t,e){return(t.G[e]&48)>>4}function LA(t,e){return(t.G[e]&64)!=0}function ax(t,e){return t.k[e]-XL(t,e)}function $g(t,e){return t.toFixed(e)}function ag(t,e){return e==0?t.i:t.j}function U0(t){return typeof t===s9}function tN(t,e){return H0(t.a[e][3])}function eN(t,e){return H0(t.a[e][2])}function td(t,e){return H0(t.a[e][2])}function ed(t,e){return H0(t.a[e][1])}function kD(t,e){QG(t.a,t.a.length,e)}function ju(t,e){ai(t,0,t.length,e)}function e8(t,e,A){Ft(t.a,new ae(e,A))}function VU(t,e,A,n){t.a=e,t.b=A,t.c=n}function Ad(t,e,A,n){t.e=e,t.c=A,t.d=n}function mD(t,e,A,n){t.F[e][A]=n,t.U=0}function nd(t,e){this.b=iP(e),this.a=t}function Pd(t,e){this.b=iP(e),this.a=t}function rd(t,e){return t.a+=ve(e),t}function id(t){Ce(),Dz.call(this,t)}function fd(){vu.call(this,\"Head\",1)}function Dd(){vu.call(this,\"Tail\",3)}function ud(t){Xq.call(this,t,LO())}function Jh(t){Jx.call(this,t,new Vr)}function Qd(t){tW.call(this,t,new Vr)}function bD(t){t.a=c(zn,e0,1,0,5,1)}function od(t){ai(t,0,t.length,null)}function Yh(t){ut(t,31),t.d&&NY(t.d)}function EU(t){return t!=null?fr(t):0}function AN(t){return t.e==null?\"\":t.e}function gP(t,e){return(t.G[e]&768)>>8}function Xh(t,e){return(t.G[e]&g8)!=0}function Ru(t,e){return(t.H[e]&d8)!=0}function Ud(t,e){return(t.v[e]&Q0)!=0}function V9(t,e){return(t.G[e]&Q0)!=0}function Zh(t,e){return(t.G[e]&O0)!=0}function W0(t,e){return(t.v[e]&O0)!=0}function E9(t,e){return(t.v[e]&Uo)!=0}function O8(t,e){return(t.v[e]&wn)!=0}function Gi(t,e){return(t.v[e]&gn)!=0}function nN(t,e){return(t.v[e]&E0)!=0}function PN(t,e){return(t.v[e]&be)!=0}function i0(t,e){return(t.a[e]&Q0)!=0}function Ee(t,e){return(t.c[e]&Q0)!=0}function q8(t,e){return(t.c[e]&O0)!=0}function rN(t,e){return(t.a[e]&O0)!=0}function Wh(t,e){return(t.a[e]&v8)!=0}function r0(t,e){return(t.v[e]&512)!=0}function A8(t,e){return(t.G[e]&128)!=0}function _h(t,e){return t<e?-1:t>e?1:0}function $h(t,e,A){return{x:t,y:e,z:A}}function N0(t,e,A){return{l:t,m:e,h:A}}function Qn(t,e){return dP(t,t.r,t.s,e)}function SA(t,e){O1(),DF.call(this,t,e)}function sA(t){aA(),LL.call(this,0,0,t)}function Ld(){pL.call(this,\"#\",\"\",\"\")}function sd(){vu.call(this,\"Range\",2)}function iN(t,e,A){return sN(t.a,e,A)}function fN(t,e){return new xg(t.a,e)}function Jt(t,e){return t!=null&&FJ(t,e)}function SU(t,e){dL(t,e),t.d&&(e.U=0)}function DN(t,e){t.I[e]=512,Rf(t),t.U=0}function uN(t,e){e.Nb(t.c),Wq(e,t.a,t.b)}function ah(t,e){wv(e,t.c),OL(e,t.a,t.b)}function QN(t,e,A){RI(t,iN(e,t.a,A))}function oN(t,e,A,n){t.a.rd(A,e.od(n))}function IU(t,e,A){return t.j=e,m6(t,A)}function Ft(t,e){return t.a.push(e),!0}function fe(t,e){return(t.v[e]&b1)>>18}function t3(t,e){return(t.H[e]&7680)>>9}function e3(t,e){return x(t.k,e).length}function z8(t){return PP(t,0,t.length)}function et(t){return t.backingJsObject}function mn(t,e){return e<t.g&&i0(t.q,e)}function UN(t,e){return e<t.g&&Wh(t.q,e)}function eA(t,e){return e<t.i&&Ee(t.q,e)}function LN(t,e){return H0(t.b[e-1][2])}function yd(t,e,A){return H0(t.a[e][A])}function A3(t,e,A){return e.od(t.od(A))}function sN(t,e,A){return t.a.rd(e,A),e}function yN(t,e,A){t.a=e^1502,t.b=A^Ul}function ld(t,e,A){t.i[0].a=e,t.i[0].b=A}function lN(t,e){t.q=P5(new fv(t.o,e),t)}function n3(t){t.g=c(QS,T0,116,0,0,1)}function pu(t){Ke.call(this,t.a,t.b,t.c)}function hd(t){this.c=t,this.b=t.length}function xU(){this.a=0,this.b=0,this.c=0}function Td(){this.a=0,this.b=0,this.c=0}function S9(){n3(this),eT(this),this.kc()}function hN(){return aA(),O1(),O1(),Bn}function TN(t,e){return{type:e,value:t}}function cN(t){return e1(s9,typeof t)}function wN(t){return e1(Mf,typeof t)}function jD(t){return t.$H||(t.$H=++TE)}function P3(t){return t.p==null?t.o.Q:t.p}function Mu(t){return Dg(),ktt(t,t.length)}function gN(t){return t.l+t.m*oP+t.h*UP}function dN(t){return t>=56320&&t<=57343}function NU(t){this.d=c(XA,Pe,6,t,14,1)}function cd(t,e){this.a=new qA(t.a,i$(e))}function wd(t,e,A){this.a=new ep(t.a,e.a)}function gd(t){Go||CL(),this.a=new ud(t)}function dd(){Ci.call(this),this.b=new n1}function GU(t){DU.call(this,t),this.a=t}function bn(t){uu.call(this,(y1(t),t))}function K8(t){this.a=t,Qh.call(this,t)}function Bd(){this.a=c(zn,e0,1,8,5,1)}function vd(){this.a=c(B,F,6,0,15,1)}function Fd(){this.b=new nh,this.a=this.b}function OU(t){t.e=Ge,t.a=null,t.d=null}function r3(t,e){return RL(t.a,e)!=null}function Oi(t,e){return de(t.a,P3(e.c))}function Cu(t,e,A){return An(t,e,A,t.D[e])}function qU(t,e){return(t.v[e]&49152)>>14}function BN(t,e){return{molecule:t,map:e}}function I9(t,e){return e<0?null:x(t.d,e)}function vN(t,e,A){return MY(Jp(t.a,e,A))}function RD(t,e,A){t.v[e]&=-449,t.v[e]|=A}function n8(t,e,A,n){t.a+=e,t.b+=A,t.c+=n}function Le(t,e){t.d[t.c]=at(t.d[t.c],e)}function FN(t,e){We(t.a,P3(e.c),new Rd)}function pD(t,e,A){return aF(t,e,e,A),t}function kN(t,e,A,n,P){yb(e,A,t.i[n][P])}function kd(t,e,A){t.Q=-6,t.F=e,t.D=A,Tj(t)}function md(t,e){t.s=w.Math.min(e,t.t)}function zU(t){t.n==null&&dZ(t)}function mN(t){if(!t)throw et(new Th)}function bd(t){if(!t)throw et(new Th)}function x9(t){if(!t)throw et(new j7)}function MD(t){if(!t)throw et(new R7)}function jd(t){if(!t)throw et(new ch)}function Hu(t){Mk.call(this,t),this.e=NaN}function i3(t,e){this.c=1,this.a=t,this.b=e}function Zn(t,e){this.a=0,this.b=t,this.c=e}function Rd(){this.b=new M0,this.c=new n1}function pd(){this.e=new Yn,this.c=5e5}function Md(t){this.a=c(Pt,it,6,t,16,1)}function bN(t){return t<0?t+36:t>=36?t-36:t}function KU(t,e){return t.g==null?-1:t.g[e]}function Cd(t,e){return t.j==null?-1:t.j[e]}function Hd(t,e){return t&&e&&t instanceof e}function jN(t,e){return lu(new Array(e),t)}function dP(t,e,A,n){return LR(t,e,A,n,t.K)}function RN(t,e,A,n,P){return zZ(t,e,A,n,P)}function Vd(t,e){return EO(t,e,t.a.length-1)}function CD(t,e){return I5(t,e,e.r,e.s,!0)}function qi(t,e){return t.j[e].length-t.e[e]}function Ed(t){return t.c==1&&t.a==0&&t.b==0}function AA(t,e){t.a=e,t.c=0,t.b=63,gx(t.d)}function pN(t,e){t.backingJsObject=e,Wb(t,e)}function f3(t,e){Hi(),$B(gl,t)||qD(gl,t,e)}function MN(t,e){J1(t),gR(t,_Q(e,!0,null))}function HD(t,e){return VU(t,e.a,e.b,e.c),t}function Sd(t,e){var A;return A=t.d,t.d=e,A}function CN(t,e){return Er(),t==e?0:t?1:-1}function HN(t,e,A,n){return aA(),pA(t,e,A,n)}function VN(t,e,A){return t.apply(e,A);var n}function Id(t,e){return y1(e),new wP(t,e)}function xd(t,e){return y1(e),new wP(t,e)}function EN(t){return Ot(b0(t,32))^Ot(t)}function on(t){return z8(F2(t,0,t.length))}function Nd(t){return t.d.length-t.c.length}function e1(t,e){return y1(t),K1(t)===K1(e)}function SN(t,e,A){t.ub(e-t.V/2,A-t.V/2,t.V)}function Gd(t,e,A){t.G[e]&=-49,t.G[e]|=A<<4}function Vu(t,e,A){this.b=t,this.c=e,this.a=A}function Ke(t,e,A){this.a=t,this.b=e,this.c=A}function Od(t){this.a=new w.Map,this.b=t}function qd(t){this.a=new w.Map,this.b=t}function zd(t,e){this.a=new uF(new Sr(t),e)}function Gr(){this.c=8,this.O=new gU(new fD)}function D3(){O1(),this.N=this.O=256,oR(this)}function u3(t,e,A){this.c=t,this.a=e,this.b=A}function Q3(t,e,A){this.c=t,this.a=e,this.b=A}function BP(t,e,A){this.a=t,this.b=e,this.c=A}function Kd(t,e,A){this.a=t,this.b=e,this.c=A}function Jd(t,e,A){this.a=t,this.c=e,this.b=A}function Yd(t,e,A){this.a=t,this.c=e,this.b=A}function x1(t,e,A){FU.call(this,e,t),this.a=A}function JU(t,e,A){FU.call(this,e,t),this.a=A}function Xd(t){BD.call(this,t),HT(this,t)}function J8(t){wz.call(this,t,(fT(),Hc))}function Zd(){aA(),LL.call(this,32,32,null)}function Wd(t){var e;e=tX(t),this.a=new G7(e)}function N9(t){var e=t.Kc();e.disposeDialog()}function YU(t,e){var A;return A=e,!!e9(t,A)}function XU(t,e){return kk(e,JO(t,I3(e)))}function IN(t,e,A){return t.indexOf(R0(e),A)}function M1(t,e){return w.Math.abs(t.A[e])}function IA(t,e){return t.w==null?null:t.w[e]}function o3(t,e){return t.u==null?null:t.u[e]}function _d(t,e){return t.e[e]-t.k[e]+xt(t,e)}function $d(t,e){return t.e[e]-n0(t,e)+xt(t,e)}function G9(t,e){return((t.v[e]&m8)>>>27)-1}function se(t,e){return gt(V(t.C[e],ne),0)}function xN(t,e){Yi(t.e,e)&&cL(t.d,e)}function ZU(t,e){Gu(e,t.R),Yu(e,t.v),rB(e,t.w)}function NN(t,e){t.B=!1,wL(t.v,new Tg(t,e))}function GN(t,e){t.v=!1,wL(t.s,new cg(t,e))}function ON(t,e){t.f=!1,wL(t.c,new wg(t,e))}function qN(t){t.b=!1,T1t(t.a,new fu(pB(t)))}function VD(t){this.c=t,this.O=new gU(new fD)}function ad(t,e,A){this.a=t,this.b=e,this.c=A}function tB(t,e,A){this.d=t,this.b=A,this.a=e}function zi(t,e){this.a=t>e?t:e,this.b=t>e?e:t}function WU(t,e){return t.a*=e,t.b*=e,t.c*=e,t}function zN(t,e){return t.d==null&&sj(t,e),t.d}function U3(t,e){t.u=new M0,t.t=6,t.v=0,t.r=e}function O9(t,e,A){t.B[e]=A,t.U&=t.D[e]==1?0:7}function eB(t,e,A){t.v[e]&=-49153,t.v[e]|=A<<14}function Je(t,e,A){t.v[e]&=-49,t.v[e]|=A,t.U&=7}function L3(t,e,A){k5(A,0,t,e,A.length,!1)}function KN(t,e,A,n,P){p6(t,e,A,0,A.length,n,P)}function JN(t,e,A){return ee(t,e)||ee(t,A)?16:1}function H0(t){return Ii(t)?(y1(t),t):t.Zc()}function YN(t){return t.g.a.length+t.f.a.length}function AB(t){O3(t.a),fF(t.c,t.b),t.b=null}function nB(t){this.a=t.a,this.b=t.b,this.c=t.c}function Ki(t){var e=t.Gc();return e.getText()}function _U(t){var e=t.Mc();return e.getWidth()}function ED(t,e){var A=t.Kc();A.showMessage(e)}function XN(){var t;return t=YL(null),t.f=2,t}function ZN(t){return Er(),e1(m2,typeof t)}function WN(t){return aA(),new sA(mv(new Du,t))}function Wn(t){return En(wG(U0(t)?Se(t):t))}function PB(t,e){return Dk(e,t.c)||Dk(e,t.a)}function _N(t,e){return e==1?t.a+t.f++:t.i+t.g++}function rB(t,e){e.a=e.a*t.c+t.a,e.b=e.b*t.c+t.b}function x(t,e){return te(e,t.a.length),t.a[e]}function s3(t){var e;return e=t.slice(),hF(e,t)}function M(t){var e;return e=YL(t),RF(t,e),e}function iB(t){Hi(),l6.call(this,t,Yy,new Yn)}function fB(t,e){if(t!=e)throw et(new ch)}function SD(t,e){if(!t)throw et(new ZP(e))}function ID(t,e){this.e=e,CT(this,(y1(t),t))}function y3(t){this.f=t,this.e=2,this.a=Vs(t)}function DB(t,e){this.a=t,this.c=e,this.b=!0}function uB(t,e){e?this.a=e:this.a=new Kh(t)}function _n(t,e,A){A?t.v[e]|=O0:t.v[e]&=py}function q9(t,e){return t.I[e]==257||t.I[e]==129}function Or(t,e){return t.q&&e<t.g?UA(t.q,e):0}function z9(t,e){return t.q&&e<t.i?TP(t.q,e):0}function QB(t){return(!$4&&($4=new rM),$4).b[t]}function $U(t){this.b=t,this.a=new n1,mO(this,t)}function $N(t){return!Tc&&(Tc=new CU),ms(Tc,t)}function nA(t,e){var A=t.Lc();return A.setRGB(e)}function aU(t){var e=t.Mc();return e.getHeight()}function oB(t){var e=t.Dc();return e.grabFocus()}function de(t,e){var A;return A=e,t8(e9(t,A))}function aN(t,e){var A;for(A=0;A<e;A++)aD(t,A)}function tG(t,e){var A;for(A=0;A<e;++A)t[A]=0}function eG(t,e){var A;for(A=0;A<e;++A)t[A]=2}function Be(t,e){t.L!=e&&(t.L=e,e||pj(t),t.U=0)}function UB(t,e){this.c=t,this.a=e,this.b=!1}function P8(t){t?this.a=t:this.a=new Kh(null)}function Eu(t){return t.p==null&&(t.p=G_(t)),t.p}function AG(t){return t.d==null&&sj(t,10240),t.d}function nG(t){return aP(new QD(t.e).a)<t.c}function Su(t,e){return y1(t),t+(\"\"+(y1(e),e))}function LB(t,e,A,n){return(n[t]&n[e]&~n[A])!=0}function j1(t,e,A,n,P,r){return Ub(t,e,A,n,P,0,r)}function tL(t,e){var A=t.Gc();return A.setText(e)}function Y8(t,e){var A=t.Gc();return A.setText(e)}function Gt(t,e){var A=t.Gc();return A.addItem(e)}function $A(t){var e=t.Gc();return e.isSelected()}function eL(t,e,A,n){var P=t.Mc();P.setRGB(e,A,n)}function PG(t,e){var A;for(A=0;A<e;++A)t[A]=-1}function rG(t,e){var A;for(A=0;A<e;++A)t[A]=-1}function l3(t){var e;for(e=0;e<t.r;e++)t.v[e]&=py}function vP(t,e,A){A?t.v[e]|=512:t.v[e]&=-513}function iG(t,e,A){Sx(new Ev(t._,e),new Jd(t,e,A))}function fG(t,e){!t.b&&(t.b=new Ci),tr(t.b,U1(e))}function DG(t){t.b||(t.b=t.a.Tb(),t.a.size())}function $n(t){return Ii(t)?Bt((y1(t),t)):t.$c()}function h3(t){return Array.isArray(t)&&t.yd===DD}function qr(t){return t.length==0?0:L1(t,f1,Et)}function uG(){return m(k(jE,1),F,6,15,[0,1,2])}function sB(){sB=v1,vc=c(N8t,_e,141,128,0,1)}function yB(){yB=v1,Fc=c(G8t,_e,142,256,0,1)}function lB(){lB=v1,kc=c(O8t,_e,143,256,0,1)}function hB(){$F(),$D.call(this,4,(Qr(),El))}function FP(t,e,A){VQ(),NL.call(this,t,e,A,255)}function QG(t,e,A){Ek(0,e,t.length),ai(t,0,e,A)}function zr(t,e,A){var n;for(n=0;n<e;++n)t[n]=A}function TB(t){var e;return e=t.a[0],t.e>0?e:-e|0}function K9(t){var e;return e=YL(t),e.k=t,e.f=1,e}function oG(t,e){return!t&&(t=[]),t[t.length]=e,t}function cB(t){return t.N==null&&(si(t),EW(t)),t.N}function Ot(t){return U0(t)?t|0:og(t)}function r8(t,e){return t.a.get(e)!==void 0}function wB(t,e){return BA(0,t,0,e.a.length,!0,e)}function gB(t,e,A,n){return BA(1,e,0,A,n,new iU(t))}function AL(t,e){return t==null?e:e==null?t:t+\",\"+e}function T3(t){return!Array.isArray(t)&&t.yd===DD}function c3(t){aR(),this.a=\"Helvetica\",this.b=t}function H1(t){n3(this),this.f=t,eT(this),this.kc()}function w3(t){this.b=-1,this.a=c(B,F,6,t,15,1)}function xD(t){t.a||(t.a=!0,vL(t.e,new D7(t)))}function P1(t){t.b||(t.b=!0,vL(t.f,new f7(t)))}function UG(t,e,A){A?t.G[e]|=g8:t.G[e]&=-32769}function LG(t,e,A){A?t.G[e]|=Q0:t.G[e]&=-65537}function sG(t){var e;for(e=0;e<t.r;e++)t.v[e]&=-513}function dB(t){var e;for(e=0;e<t.r;e++)t.v[e]&=-449}function BB(t,e){var A=t.Dc();return A.setCursor(e)}function ve(t){return U0(t)?\"\"+t:Jj(t)}function Wt(t,e){return En(Cb(U0(t)?Se(t):t,e))}function G0(t,e){return En(p5(U0(t)?Se(t):t,e))}function b0(t,e){return En(yX(U0(t)?Se(t):t,e))}function vB(t,e,A){return t.c?ir(e.b,A.b):Zk(e,A)}function yG(t,e,A){return A<0?-1:t.lastIndexOf(e,A)}function lG(t,e){return N0(t.l&e.l,t.m&e.m,t.h&e.h)}function hG(t,e){return N0(t.l|e.l,t.m|e.m,t.h|e.h)}function TG(t,e){return N0(t.l^e.l,t.m^e.m,t.h^e.h)}function X8(t,e){return t.a+=e.a,t.b+=e.b,t.c+=e.c,t}function FB(t,e){return t.a-=e.a,t.b-=e.b,t.c-=e.c,t}function i8(t){t.a=new Od(t),t.c=new qd(t),++t.b}function g3(t,e){if(t==null)throw et(new Y7(e))}function Iu(t,e){if(t<0||t>=e)throw et(new E7)}function kB(t,e){this.k=t,this.c=0,this.g=e,Es(this)}function d3(t){this.c=0,this.d=0,this.b=t,this.a=0}function ye(t,e,A){Ce(),this.e=t,this.d=e,this.a=A}function mB(t,e){g6(),xe.call(this,t),x$(this,e)}function Ji(t){this.b=null,this.a=(kU(),t||Sl)}function bB(t,e,A){xr.call(this,e),i1t(this,t,e,A)}function cG(t,e,A,n,P){for(;e<A;)n[P++]=Xi(t,e++)}function Kr(t,e){return N8(e)?$B(t,e):!!XU(t.a,e)}function wG(t){return N0(~t.l&q0,~t.m&q0,~t.h&Pn)}function Z8(t,e){return e<t.i&&(q8(t.q,e)||t.I[e]==8)}function jB(t,e,A){return l8(t,e,e.F[0][A],e.F[1][A])}function gG(t,e,A){t.v[e]&=-67108865,A&&(t.v[e]|=wn)}function RB(t,e,A){var n=t.Mc();return n.getRGB(e,A)}function kP(t,e){var A=t.Gc();return A.setEnabled(e)}function yA(t,e){var A=t.Gc();return A.setSelected(e)}function dG(t,e){var A=t.Lc();return A.drawPolygon(e)}function nL(t,e){var A=t.Lc();return A.fillPolygon(e)}function pB(t){var e=t.Bc();return e.getDrawContext()}function MB(t){var e=t.Cc();return e.getDrawContext()}function ND(t){var e=t.Bc();return e.getCanvasWidth()}function BG(t){var e;return e=y2(LP,t),e?KR(e):null}function vG(t){var e;return e=y2(LP,t),e?Ep(e):null}function FG(t){var e;return e=y2(LP,t),e?yp(e):null}function xA(t,e){var A;return A=Jr(t.a,e,t),A==null}function Yi(t,e){return We(t.a,e,(Er(),Ro))==null}function kG(t,e){return O(t,e)<0?-1:O(t,e)>0?1:0}function mP(t){return t.e==0?t:new ye(-t.e,t.d,t.a)}function B3(t,e){return t.f[e]&&(t.o[e]==1||t.o[e]==2)}function GD(t,e){return zt(e,t.length+1),t.substr(e)}function f8(t,e,A){Ju(e,t.a.length),t.a.splice(e,0,A)}function jn(t,e){for(y1(e);t.cd();)jx(e,t.dd())}function J9(t,e){G(t.c,\"  \"),G(t.c,e),G(t.c,nn)}function v3(t,e){zL.call(this,t,!0,e),this.a=!0}function CB(t){var e;e=AZ(t),this.a=e,this.b=new VD(e)}function Y9(t){var e=t.Bc();return e.getCanvasHeight()}function mG(t,e,A){var n=t.Bc();return n.onChange(e,A)}function HB(t,e){var A=t.Dc();return A.createDialog(e)}function PL(t,e){var A=t.Lc();return A.setLineWidth(e)}function bG(t,e){var A;A=e+1,A>t.length&&(t.length=A)}function xu(t,e){var A;for(A=0;A<e;++A)t[A]=!1}function VB(t){var e;for(e=0;e<t.s;e++)t.G[e]&=-98305}function W8(t){var e;for(e=0;t>0;)t>>=1,++e;return e}function EB(t,e){return t.a+=String.fromCharCode(e),t}function Ye(t,e){return t.a+=String.fromCharCode(e),t}function y1(t){if(t==null)throw et(new Rr);return t}function an(t){var e;return e=new SA(t.r,t.s),Uf(t,e),e}function jG(t,e){var A;for(A=0;A<e.r;A++)VI(t,e.K[A])}function _8(t,e){return new Ke(t.a-e.a,t.b-e.b,t.c-e.c)}function SB(t,e){return new BP(e.a-t.a,e.b-t.b,e.c-t.c)}function rL(t,e){return t.k[e]==2&&t.p[e]==2&&t.D[e]<=7}function iL(t,e,A){A?t.v[e]|=Uo:t.v[e]&=My,t.U&=7}function F3(t,e,A){t.I[e]=A==1?1:A==2?2:A==3?4:16,t.U=0}function RG(t,e,A,n,P,r){t.F=e,t.B=A,t.D=n,t.C=P,t.A=r}function pG(t,e,A,n){return{x:t,y:e,width:A,height:n}}function MG(t){w.setTimeout(function(){throw t},0)}function IB(t,e){return t.c==null?null:t.c[e]}function fL(t,e,A){var n=t.Kc();return n.setLayout(e,A)}function k3(t){var e=t.Lc();return e.getBackgroundRGB()}function xB(t){var e=t.Lc();return e.getForegroundRGB()}function v0(t){var e=t.Gc();return e.getSelectedIndex()}function CG(t){var e;return e=t-10,(e<0?48+t:97+e)&d1}function HG(t,e){var A;return A=cp(t),A?Qs(A,e):null}function Xi(t,e){return zt(e,t.length),t.charCodeAt(e)}function VG(t,e){t.c=e,t.e*w.Math.pow(10,-t.b/1.36)}function NB(t){J1(t),t.eb=w.Math.max(t.eb,3),P1(t.k)}function m3(t,e){return new Ou(t.d,t.a,t.b,t.c.nd(e))}function D8(t,e){return N8(e)?Ku(t,e):t8(XU(t.a,e))}function GB(t,e,A){this.i=t,this.d=e,this.f=gZ(A,t,e)}function Zi(t,e,A,n){this.b=t,this.a=e,this.c=A,this.d=n}function It(t,e,A,n){this.c=t,this.b=e,this.d=A,this.a=n}function lA(t,e,A,n){this.c=t,this.d=e,this.b=A,this.a=n}function OB(t,e,A,n){FU.call(this,t,n),this.b=e,this.a=A}function b3(t,e){this.a=x4,this.d=t,this.b=e,this.c=-1}function DL(t){this.d=t,this.a=this.d.b,this.b=this.d.c}function qB(){ou.call(this),this.b=new n1,this.a=new n1}function zB(t,e,A){Yq.call(this,t,e,e.F[0][A],e.F[1][A])}function uL(t,e,A){t.d=6,t.e=A,t.c=e,t.f=(e[t.e]&63)<<11}function EG(t,e,A,n){for(var P=0;P<=n;P++)t[P]=e[A+P]}function Jr(t,e,A){return N8(e)?qD(t,e,A):zb(t.a,e,A)}function j3(t,e){return K1(t)===K1(e)||t!=null&&SP(t,e)}function $8(t,e){return K1(t)===K1(e)||t!=null&&SP(t,e)}function QL(t,e,A){return K0(t,e,A,ee(t,e)||ee(t,A)?16:1)}function Nu(t,e,A,n){return A<n?t.a[e][n][A]:t.a[e][A][n]}function SG(t){return String.fromCharCode.apply(null,t)}function Rn(t){return/\\d/.test(String.fromCharCode(t))}function oL(t){if(t==null)throw et(new Rr);return t}function KB(t,e){return t.c!=e.c?t.c>e.c?1:-1:0}function IG(t){return t.a==t.b?-1:t.c[t.a++]}function xG(t,e){var A=t.Gc();return A.setSelectedItem(e)}function UL(t,e,A,n){var P=t.Lc();return P.setFont(e,A,n)}function NG(t,e){var A;return A=RX(t,e),A?Qs(A,e):null}function R3(t,e){var A;return A=t.D[e],A==7||A==15||A==33}function GG(t,e){var A;return A=vY(t.a,e),t.a=Qx(t.a,A),A}function p3(t,e){var A;return A=Sn(t,e),A+An(t,e,A,t.D[e])}function OG(t,e){var A;for(A=0;A<e.r;A++)HD(t.k[A],e.K[A])}function qG(t,e){t.H=e,t.eb=w.Math.max(t.eb,1),P1(t.k)}function Gu(t,e){e.c*=t.c,e.a=e.a*t.c+t.a,e.b=e.b*t.c+t.b}function JB(t,e,A){e<A?t.u[A][e]=!0:t.u[e][A]=!0}function LL(t,e,A){aA(),A?this.a=A:this.a=new SA(t,e)}function Ou(t,e,A,n){this.d=t,this.a=e,this.b=A,this.c=n}function YB(t,e){this.v=new iD,this.L=t,this.G=e,this.xb()}function XB(t){this.b=new ML(11),this.a=(kU(),t||Sl)}function a8(t){this.e=t,(t&1)==0&&!Eo&&!Eo&&(Eo=new ub)}function ZB(t){var e;this.a=t,e=this.Dc(),e.register(this)}function zG(t){var e;for(e=0;e<t.R.g;e++)gG(t.R,e,t.M[e])}function KG(t){var e;for(e=Np(t);e;)hT(t,e,lo),e=Np(t)}function JG(t){var e;for(e=UF(t);e;)hT(t,e,PC),e=UF(t)}function $t(t,e){var A=t.Gc();return A.setSelectedIndex(e)}function WB(t,e,A){var n=t.Cc();return n.setDimensions(e,A)}function YG(t,e){return t.b!=e.b?t.b<e.b?-1:1:0}function OD(t,e,A){var n;return n=new Q7(HB(t,e)),fJ(n,A),n}function Yr(t,e){var A;return A=YL(t),RF(t,A),A.f=e?8:0,A}function _B(t,e){var A;return A=yu(t.wd),e==null?A:A+\": \"+e}function hA(t,e,A){return Mt(e,A,t.length),t.substr(e,A-e)}function $B(t,e){return e==null?!!XU(t.a,null):r8(t.c,e)}function aB(t,e){return new Ou(e.d,new Eg(e,t),e.b,e.c)}function pn(t,e){return t.a[BA(0,e,0,t.a.length,!0,t)][2]}function NA(t,e){return t.a[BA(0,e,0,t.a.length,!0,t)][5]}function X9(t,e){return t.a[BA(0,e,0,t.a.length,!0,t)][4]}function u8(t,e){return t.a[BA(0,e,0,t.a.length,!0,t)][3]}function XG(t,e){return W9(t,e.c,e.d)&&W9(t,e.c+e.b,e.d+e.a)}function ZG(t){return String.fromCodePoint(t).trim()===\"\"}function tv(t){return/[A-Z]/i.test(String.fromCharCode(t))}function ev(t){return/[A-Z]/i.test(String.fromCharCode(t))}function WG(t){return a3(t.ad().Vb(),Qq(new jw,new Rw))}function _G(t){return t>=5&&t<=9||t>=15&&t<=17||t==35||t==53}function Av(t){t.a.a=t.c,t.c.b=t.a,t.a.b=t.c.a=null,t.b=0}function qu(t){var e;e=t.a,t.a=t.b,t.b=e,e=t.c,t.c=t.d,t.d=e}function M3(){M3=v1,PS=(k6(),af),AS=NE,nS=GE,rS=OE}function $G(t,e){var A;for(A=0;A<e;++A)t[A]=new oh(t[A])}function C3(t,e,A){nB.call(this,SB(new N3(t,e),new N3(t,A)))}function F0(t,e,A){nB.call(this,SB(new Wi(t,e),new Wi(t,A)))}function aG(t,e){return a9(t.toLowerCase(),e.toLowerCase())}function tO(t,e){return D8(t.a,e)!=null?D8(t.a,e):(r9(),Y2)}function H3(t,e){return((t.H[e]&7680)>>9)+((t.H[e]&Ry)>>13)}function sL(t,e){return t.a[BA(0,e,0,t.a.length,!0,t)][6]>0}function nv(t,e){return t.a[BA(0,e,0,t.a.length,!0,t)][8]>0}function yL(t,e){return t.a[BA(0,e,0,t.a.length,!0,t)][5].a}function eO(t,e){return q9(t.V,e)&&(xs(t,e)!=-1||es(t,e)!=-1)}function Bt(t){return Math.max(Math.min(t,Et),-2147483648)|0}function Mn(t){return w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c)}function AO(t){return t==2||t==10||t==18||t==36||t==54||t==86}function Q8(t,e,A,n){t.G[e]&=-131080,t.G[e]|=A,n&&(t.G[e]|=4)}function nO(t,e,A,n){var P;for(P=0;P<t.r;P++)n8(t.K[P],e,A,n)}function lL(t,e,A,n){var P=t.Lc();return P.fillCircle(e,A,n)}function V3(t,e,A,n){var P=t.Lc();return P.drawString(e,A,n)}function E3(t,e,A){var n=t.Dc();return n.showHelpDialog(e,A)}function Pv(t,e,A,n){var P;return P=en(t,e,A),P!=-1&&pT(t,P,n)}function a0(t,e,A,n){var P;return P=i9(t,6),VU(t.K[P],e,A,n),P}function S3(t,e){var A,n;return A=e,n=new rU,sp(t,A,n),n.d}function I3(t){var e;return t==null?0:(e=fr(t),e|0)}function PO(t){if(t.Yc())return null;var e=t.k;return jo[e]}function rv(t,e){return Jt(e,86)?ib(t.a,e):!1}function zu(t,e){return t.s==null&&(si(t),Ttt(t,e,t.R.K)),t.s}function Ku(t,e){return e==null?t8(XU(t.a,null)):Vg(t.c,e)}function iv(t,e){return e===t?\"(this Map)\":e==null?y9:n2(e)}function bP(t,e){return(t.v[t.F[0][e]]&t.v[t.F[1][e]]&512)!=0}function hL(t,e){var A;A=t.b,t.b=e.b,e.b=A,A=t.d,t.d=e.d,e.d=A}function fv(t,e){Cs(),this.b=t,ut(this.b,63),this.d=e,SR(this)}function Wi(t,e){this.a=t[3*e],this.b=t[3*e+1],this.c=t[3*e+2]}function Dv(t,e,A){Go||CL(),y_(e),this.a=new l6(t.a,e,new Yn)}function Z9(t,e,A,n,P){var r=t.Lc();return r.drawLine(e,A,n,P)}function uv(t,e){var A=t.a=t.a||[];return A[e]||(A[e]=t.Tc(e))}function rO(t){var e;return e=Nx(t.b,t.a),e?new g7(e):null}function iO(t,e){return ok(t,e)?(VF(t),!0):!1}function Ju(t,e){if(t<0||t>e)throw et(new XP(E6+t+S6+e))}function fO(t,e){t.b.a.length!=0&&G(t.b,\"<NL>\"),G(t.b,e)}function DO(t,e,A){t.b=null,t.a=e,A==null?t.c=ms(t,e):t.c=A}function uO(t,e,A){t.e=null,t.d=e,A==null?t.f=ms(t,e):t.f=A}function Qv(t,e,A){this.k=t,this.c=2,this.g=A,this.j=e,Es(this)}function QO(t,e,A,n,P){var r=t.Lc();return r.clearRect(e,A,n,P)}function qD(t,e,A){return e==null?zb(t.a,null,A):$k(t.c,e,A)}function oO(t){var e;return z8(F2(t,0,(e=t.length,_u(),e)))}function UO(t,e){return o8(e),pP(t,c(_,At,6,e,15,1),0,e)}function zD(t,e){return o8(e),pP(t,c(Ut,Tt,6,e,15,1),0,e)}function Cn(t,e){return o8(e),pP(t,c(B,F,6,e,15,1),0,e)}function TL(t,e){return o8(e),pP(t,c(Yt,t1,6,e,15,1),0,e)}function LO(){return Zo||(!Zo&&(Zo=new pd),Zo)}function sO(t){try{return new RegExp(t)}catch{return null}}function yO(t){throw new Error(\"missing static resource: \"+t)}function lO(t){return t.r?\"Unresolved SMARTS features:\"+t.r:\"\"}function hO(t){return/[A-Z\\d]/i.test(String.fromCharCode(t))}function x3(t){if(t<0)throw et(new XP(\"bitIndex < 0: \"+t))}function te(t,e){if(t<0||t>=e)throw et(new XP(E6+t+S6+e))}function zt(t,e){if(t<0||t>=e)throw et(new kh(E6+t+S6+e))}function N3(t,e){this.a=t.K[e].a,this.b=t.K[e].b,this.c=t.K[e].c}function ov(t){Cs(),this.b=t,ut(this.b,63),this.d=Fb(t),SR(this)}function Uv(){this.a=am(\"/resources/forcefield/mmff94/def.csv\")}function Lv(){this.a=am(\"/resources/forcefield/mmff94/atom.csv\")}function sv(){this.a=iP(\"/resources/forcefield/mmff94/bndk.csv\")}function yv(){this.a=iP(\"/resources/forcefield/mmff94/dfsb.csv\")}function KD(t){var e=t.Lc();return e.getSelectionBackgroundRGB()}function jP(t){return Ce(),O(t,0)>=0?me(t):mP(me(V0(t)))}function TO(){return lQ(),m(k(Il,1),_e,96,0,[kS,Xo,Vc])}function lv(t,e){ye.call(this,1,2,m(k(B,1),F,6,15,[t,e]))}function cO(t,e){return r0(t.u,q(t.u,0,e))&&r0(t.u,q(t.u,1,e))}function hv(t,e){return H0(t.a[BA(0,e,0,t.a.length,!0,t)][1])}function Tv(t,e){return H0(t.a[BA(0,e,0,t.a.length,!0,t)][4])}function cv(t,e){return H0(t.a[BA(0,e,0,t.a.length,!0,t)][2])}function _0(t,e,A){return pA(t.K[e].a,t.K[e].b,t.K[A].a,t.K[A].b)}function wO(t,e,A){return gt(V(e.c[t.d[A]],Wt(1,t.b[A])),0)}function V(t,e){return En(lG(U0(t)?Se(t):t,U0(e)?Se(e):e))}function z(t,e){return En(hG(U0(t)?Se(t):t,U0(e)?Se(e):e))}function g0(t,e){return En(TG(U0(t)?Se(t):t,U0(e)?Se(e):e))}function gO(t,e){return e<t.i&&(q8(t.q,e)||t.I[e]==8)?1.5:dt(t,e)}function W9(t,e,A){return e>=t.c&&e<=t.c+t.b&&A>=t.d&&A<=t.d+t.a}function _9(t,e,A){return(t.I[e]==257||t.I[e]==129)&&t.F[0][e]==A}function wv(t,e){var A;for(A=0;A<t.r;A++)t.K[A].a*=e,t.K[A].b*=e}function _i(t,e){var A;return A=Sn(t,e),A+An(t,e,A,t.D[e])-G1(t,e)}function gv(t,e,A){var n;Am(e,A,t.a.length),n=A-e,t.a.splice(e,n)}function cL(t,e){y1(e),t.a[t.c]=e,t.c=t.c+1&t.a.length-1,JJ(t)}function _t(t){return MD(t.a<t.c.a.length),t.b=t.a++,t.c.a[t.b]}function Yu(t,e){e.c=e.c*t.c+t.a,e.d=e.d*t.c+t.b,e.b*=t.c,e.a*=t.c}function G3(t,e,A,n,P){t.i[0].a=e,t.i[0].b=A,t.i[1].a=n,t.i[1].b=P}function Hn(t){for(;t.d>0&&t.a[--t.d]==0;);t.a[t.d++]==0&&(t.e=0)}function O3(t){x9(t.c!=-1),t.d.removeAtIndex(t.c),t.b=t.c,t.c=-1}function JD(t,e,A){Am(e,A,t.size()),this.c=t,this.a=e,this.b=A-e}function dv(t){ug(),Ps.call(this,t),this.a=\"\",this.b=t,this.a=\"\"}function Bv(t){this.a=new PU,this.c=new PU,Av(this),TT(this,t)}function q3(t,e){if(e==null)throw et(new Rr);return Kr(t.e,e)}function vv(t,e){if(e==null)throw et(new Rr);return D8(t.e,e)}function Fv(t,e){var A;return A=1-e,t.a[A]=rQ(t.a[A],A),rQ(t,e)}function Xr(t,e){var A,n;return n=V(t,g1),A=Wt(e,32),z(A,n)}function f0(t,e,A,n){var P=t.Kc(),r=e.Gc();return P.add(r,A,n)}function wL(t,e){var A=t.Kc();function n(){e.oc()}A.showDialog(n)}function kv(t,e){var A;return A=e.D[t],A<(k2(),JA).length?JA[A]:2}function dO(t,e){var A;return e==null?null:w6(t,ln((A=e,c0(),A)))}function z3(t,e,A){return A=HX(A),t.replace(new RegExp(e,\"g\"),A)}function mv(t,e){return t.j=null,m6(t,new un(new Sr(e)))?t.j:null}function bv(){this.a=iP(\"/resources/forcefield/mmff94/covrad.csv\")}function K3(t,e,A,n,P){var r=t.Lc();return r.fillRectangle(e,A,n,P)}function BO(t,e){var A;return A=Ra(t,e),A?new P8(A):null}function vO(t,e,A){var n;n=sJ();try{return VN(t,e,A)}finally{ZO(n)}}function $9(t){var e;return U0(t)?(e=t,e==-0?0:e):Bq(t)}function jv(t){var e,A;for(e=0,A=t-1;A>0;)A>>=1,++e;return e}function Rv(t,e){var A;return A=vv(t,e),++t.a,A&&(++A.b,++t.b),A}function YD(t,e){var A;return A=t.b?de(t.b,U1(e)):null,A?A.a:e-1}function gL(t,e){var A;return A=t.c?de(t.c,U1(e)):null,A?A.a:e-1}function FO(t){var e,A;for(A=op(t);A;)e=cY(A),hT(t,e,To),A=op(t)}function kO(t){zs();var e,A;for(ut(t,1),A=t.g,e=0;e<A;e++)AM(t,e)}function mO(t,e){var A=t;e.setEventHandler(function(n,P){A.Fc(n,P)})}function J3(t,e,A,n){var P=t.Lc();return P.drawCenteredString(e,A,n)}function bO(t,e,A,n,P){var r=t.Lc();return r.drawDottedLine(e,A,n,P)}function Y3(t,e,A,n,P){this.a=t,this.b=e,this.g=A,this.f=n,this.e=P}function dL(t,e){e.L=t.L,e.M=t.M,e.T=t.T,e.J=t.J,e.Q=t.Q,e.U=t.U&24}function X3(t,e){this.a=t,fh.call(this,t),Ju(e,t.size()),this.b=e}function RA(t,e){Ce(),ye.call(this,t,1,m(k(B,1),F,6,15,[e]))}function Z3(){Z3=v1,MS=m(k(B,1),F,6,15,[40,20,20,100,20])}function jO(){return r9(),m(k(N1t,1),_e,108,0,[Uc,sc,Lc,wi,Y2])}function RO(){return Dr(),m(k(G1t,1),_e,98,0,[ml,kl,Fl,bl,Io,jl])}function pO(){return fT(),m(k(J8t,1),_e,83,0,[Hc,BS,vS,FS])}function pv(t,e,A){return aP(new QD(t.e).a)<t.c?sF(t,e,A):null}function Mv(t,e,A){t.b=e,t.a=A,t.c&&t.e*w.Math.pow(10,-e/1.36)}function BL(t){return MD(t.b!=t.d.c),t.c=t.b,t.b=t.b.a,++t.a,t.c.c}function Cv(t){return MD(t.b<t.d.size()),t.d.getAtIndex(t.c=t.b++)}function W3(t,e){var A;return A=t.v[e]&gn,A==0?0:A==ue?2:A==q1?3:4}function Hv(t,e){var A;return A=lJ(t,e),!!Hm(A,t)}function TA(t){var e=t.Kc(),A=e.createComboBox();return new z7(A)}function le(t,e){var A=t.Kc(),n=A.createLabel(e);return new K7(n)}function vL(t,e){var A=t,n=t.Dc();n.runLater(function(){A.Ec(e)})}function Vv(t,e){var A;return A=t-e,A>=l1?A-=k0:A<$6&&(A+=k0),A}function Xu(t,e,A){var n;return n=new GB(e,A,t.C),CI(n,pJ(t,n)),n}function MO(t){if(!(\"stack\"in t))try{throw t}catch{}return t}function RP(t,e){return e.e==0||t.e==0?vr:(Lr(),Ks(t,e))}function Zu(t,e){t.e&&(!t.r&&(t.r=new M0),G(t.r,\" \"),G(t.r,e))}function o8(t){if(t<0)throw et(new W7(\"Negative array size: \"+t))}function CO(){throw new Error(\"drug likeness must be assessed first\")}function HO(t){return function(){return vO(t,this,arguments);var e}}function Ev(t,e){bb(),this.c=OD(t,\"Edit Text\",this),this.e=e,_$(this)}function _3(t){this.a=c(B,F,6,t,15,1),this.b=c(B,F,6,t,15,1)}function Wu(t){bD(this),L3(this.a,0,YT(t,c(zn,e0,1,aP(t.a),5,1)))}function Sv(t){bi(t.g.a,0),bi(t.f.a,0),bi(t.a.a,0),t.b=null,t.d=-1}function Zr(t,e,A){var n;return n=(te(e,t.a.length),t.a[e]),t.a[e]=A,n}function Iv(t,e,A){var n;for(n=0;n<t.e.length;n++)t.a[n]+=e,t.b[n]+=A}function VO(t,e){var A;for(A=t.d-1;A>=0&&t.a[A]==e[A];A--);return A<0}function tr(t,e){var A;return A=u9(t,e),A<0&&(A=-(A+1),f8(t.d,A,e)),A}function EO(t,e,A){for(;A>=0;--A)if($8(e,t.a[A]))return A;return-1}function SO(t){var e,A;return A=w6(new p7,ln((e=t,_u(),e))),new P8(A)}function IO(t,e){var A=t.Hc(),n=new sA(e);return A.copyMolecule(n)}function xv(t,e,A,n){var P=t.Dc();return P.createImageFromBase64(e,A,n)}function $3(t,e){var A;return A=t.D[e],A==8||A==16||A==34||A==52||A==84}function xO(t,e){var A;return A=t.D[e],A==9||A==17||A==35||A==53||A==85}function FL(t){var e;for(e=t.length-1;e>=0&&(t[e]|0)==0;--e);return e}function Nv(t,e){return e<t.g.a.length?x(t.g,e):x(t.f,e-t.g.a.length)}function NO(t,e){return Lr(),e<pc.length?yW(t,pc[e]):RP(t,Qi(e))}function a3(t,e){var A;return e.c.od(aq(t,e.d.qc(),(A=new c7(e),A)))}function $i(t){r5(),yN(this,Ot(V(G0(t,24),yi)),Ot(V(t,yi)))}function Wr(t){O1(),DF.call(this,t?t.N:256,t?t.O:256),t&&Uf(t,this)}function tT(t){this.d=t,this.b=this.d.a.entries(),this.a=this.b.next()}function Gv(){this.a=iP(\"/resources/forcefield/mmff94/vanderwaals.csv\")}function Ov(t){t.cb&&(Uf(t.cb,t.V),t.I=t.bb?new cs(t.bb):null)}function eT(t){return t.j&&(t.backingJsObject!==oM&&t.kc(),t.g=null),t}function tP(t){var e,A;e=Wk(t);do A=e,K_(t),e=Wk(t);while(A!=e);return e}function qv(t,e){var A;return A=new M7,A.c=e,ut(t,15),iM(A,t,!0),A.b.a}function GO(t,e){var A;return A=_Q(t,e,null),A?new P8(A):null}function Un(t,e){var A=t.Kc(),n=A.createCheckBox(e);return new q7(n)}function kL(t,e){return e[0]!=-1&&e[3]!=-1?XQ(t,e):p$(t.o,t,e)}function OO(t,e){return t.a=(t.a+e.a)/2,t.b=(t.b+e.b)/2,t.c=(t.c+e.c)/2,t}function GA(t,e){if(!e||e.r==0){t.H=null;return}t.H=e,t.L=!1,ut(t.H,1)}function zv(t,e,A,n){var P;P=new PU,P.c=e,P.b=A,P.a=n,n.b=A.a=P,++t.b}function Xe(t,e,A,n){n?t.H[e]|=A:t.H[e]&=~A,t.U=0,n&&A!=0&&(t.L=!0)}function Kv(t,e,A){return t.f.k.F[0][e]==A?t.f.k.F[1][e]:t.f.k.F[0][e]}function qO(t,e){return w.Math.pow(10,w.Math.log10(2e3)*t/(e-1)-1)}function zO(t){t.eb=w.Math.max(t.eb,4),P1(t.k),N1(t,new x1(t,1,!1))}function Jv(t,e){var A;t.b&&(J1(t),A=new pm(t._,t.V,e),GN(A,new A7(t)))}function N1(t,e){var A;A=e.j,(A&t.J)==0&&(vL(t._,new Yd(t,A,e)),t.J|=A)}function mL(t,e,A){var n,P;n=e>>4,P=2*(e&15),t.a[n]&=~(3<<P),t.a[n]|=A<<P}function bL(t){var e,A,n;return e=t&q0,A=t>>22&q0,n=t<0?Pn:0,N0(e,A,n)}function Yv(t,e,A){var n=t.Dc(),P=n.createImage(e,A);return new fU(P)}function jL(t,e,A,n){var P;return P=c(B,F,6,e,15,1),IY(P,t,e,A,n),P}function Xv(){Xv=v1,Ec=m(k(XA,1),Pe,6,14,[0,1,3,7,15,31,63,127])}function _r(t,e){return e==0||t.e==0?t:e>0?vm(t,e):Cj(t,-e)}function AT(t,e){return e==0||t.e==0?t:e>0?Cj(t,e):vm(t,-e)}function KO(t,e){aA(),e=e||{};var A=new sh(e);return A.parseMolecule(t,e)}function a9(t,e){var A,n;return A=(y1(t),t),n=(y1(e),e),A==n?0:A<n?-1:1}function Zv(t,e){var A,n;return A=e.hd(),n=e9(t,A),!!n&&$8(n.d,e.jd())}function JO(t,e){var A;return A=t.a.get(e),A??c(zn,e0,1,0,5,1)}function YO(t){var e,A;return e=t.c.e.length,A=t.c.e.length,A<e?-1:A>e?1:0}function XO(t){var e,A;return e=t.c.e.length,A=t.c.e.length,e<A?-1:e>A?1:0}function Wv(t){var e;return!!(t.r&&(e=Kq(t.r),RR(t,e)))}function ZO(t){t&&Fq((Rh(),wc)),--Oo,t&&qo!=-1&&(Yx(qo),qo=-1)}function _v(t){return t==5||t==6||t==7||t==8||t==15||t==16||t==33||t==34}function RL(t,e){return N8(e)?e==null?j5(t.a,null):sk(t.c,e):j5(t.a,e)}function $v(t,e){return t.a?G(t.a,t.b):t.a=new bn(t.d),Jg(t.a,e),t}function av(t,e){var A;x3(e),A=e/31|0,bG(t.a,A),t.a[A]=t.a[A]|0|1<<e%31}function XD(t){var e;return e=(k2(),JA)[t<JA.length?t:6],e*(t==1,.9)}function Fe(t,e,A,n,P,r){var i=t.Kc(),f=e.Gc();return i.add(f,A,n,P,r)}function nT(t,e,A,n,P){xr.call(this,e),this.c=iW(this,t,n,e,A),this.b=P}function pL(t,e,A){this.b=t,this.d=e,this.e=A,this.c=this.d+(\"\"+this.e)}function tF(t){this.b=iP(\"/resources/forcefield/mmff94/stbn.csv\"),this.a=t}function eF(t){this.b=iP(\"/resources/forcefield/mmff94/bond.csv\"),this.a=t}function AF(t){this.b=iP(\"/resources/forcefield/mmff94/angle.csv\"),this.a=t}function ML(t){bD(this),SD(t>=0,\"Initial capacity must not be negative\")}function CL(){throw new Error(\"static resources must be registered first\")}function nF(){return z1(),\"\"+null.zd(),null}function HL(t,e){var A;return A=c(B,F,6,e,15,1),PA(t,0,A,0,t.length),A}function VL(t,e,A,n){var P;return P=c(B,F,6,e+1,15,1),X_(P,t,e,A,n),P}function c(t,e,A,n,P,r){var i;return i=Zm(P,n),P!=10&&m(k(t,r),e,A,P,i),i}function cA(t,e){var A;return A=(te(e,t.a.length),t.a[e]),t.a.splice(e,1),A}function EL(t,e){var A;for(A=t-e;A<$6;)A+=k0;for(;A>l1;)A-=k0;return A}function PF(t,e){var A,n;return n=t.j.k[e],A=t.j.j[e],n==0?t.b:n==1?A:t.a+A}function ke(t,e,A,n){t.v[e]&=-8,A!=3&&(t.v[e]&=My),t.v[e]|=A,n&&(t.v[e]|=4)}function SL(t,e){t.eb=w.Math.max(t.eb,e),P1(t.k),N1(t,new x1(t,1,!0))}function J1(t){!t.cb&&(t.cb=new D3),Uf(t.V,t.cb),t.bb=t.I?new cs(t.I):null}function WO(t){var e;for(ut(t,15),e=0;e<t.r;e++)(t.v[e]&3)!=0&&Ne(t,e,1,0)}function _O(t,e){return t.a[e]>-1?t.a[e]:t.D[e]==1?Ja(t,e):M6(t,e)}function rF(t,e){return e<t.i&&(q8(t.q,e)||t.I[e]==8)?0:t.I[e]&127}function iF(t,e){return e<t.i&&(q8(t.q,e)||t.I[e]==8)?0:t.I[e]&127}function fF(t,e){var A;return A=new rU,A.c=!0,A.d=e.jd(),sp(t,e.hd(),A)}function er(t,e){var A;return A=$r(t,e,0),A==-1?!1:(cA(t,A),!0)}function IL(t){var e;return e=-1,t.a!=-2?(e=t.a,t.a=-2):e=t.b.Qc(),e}function PT(t){var e,A;for(A=0,e=0;e<t.a.length;e++)A+=rr(t.a[e]);return A}function ZD(t,e){var A;return A=BA(0,e,0,t.a.length,!0,t),A>=0&&t.a[A][7]>0}function WD(t){this.b=c(Ut,Tt,6,t,15,1),this.c=c(Ut,Tt,6,t,15,1),this.a=0}function rT(t){this.e=t,this.d=c(B,F,6,0,15,1),this.c=c(B,F,6,0,15,1)}function DF(t,e){this.N=w.Math.max(1,t),this.O=w.Math.max(1,e),oR(this)}function iT(t){this.e=t,this.b=this.e.a.entries(),this.a=c(zn,e0,1,0,5,1)}function xL(t,e){RU.call(this,t,e),this.a=c(K8t,e0,123,2,0,1),this.b=!0}function NL(t,e,A,n){VQ(),this.a=(n&255)<<24|(t&255)<<16|(e&255)<<8|A&255}function Ar(t,e,A,n,P,r,i){i.a=e.a+P,i.c=e.c+r,i.b=e.b+P,i.d=e.d+r,xn(t,i,A,n)}function Mt(t,e,A){if(t<0||e>A||e<t)throw et(new kh(eo+t+V6+e+LM+A))}function $O(t){if(!t)throw et(new lU(\"Unable to add element to queue\"))}function _u(){_u=v1,new Wg,new jh(\"ISO-LATIN-1\"),new jh(\"ISO-8859-1\")}function uF(t,e){Qm(),this.d=e,this.i=new un(t),this.g=new Vr,this.b=new Vr}function U8(){this.g=new n1,this.f=new n1,this.a=new n1,this.d=-1,this.c=!1}function QF(){this.b=c(Ut,Tt,6,64,15,1),this.c=c(Ut,Tt,6,64,15,1),this.a=0}function oF(t,e,A){this.b=w.Math.max(t,e),this.c=w.Math.min(t,e),this.a=A}function aO(t){return e1(s9,typeof t)||Hd(t,w.java.lang.Number$impl)}function tq(t,e){try{t.c=sn(e)}catch(A){if(A=_1(A),!Jt(A,42))throw et(A)}}function $u(t,e,A){var n=t.Kc(),P=n.createTextField(e,A);return new J7(P)}function au(t,e){var A;for(A=e;A<t.length;A++)if(t[A]==62)return A;return-1}function L8(t,e){var A;for(A=0;A<t.e.length;A++)if(e==t.e[A])return A;return-1}function $r(t,e,A){for(;A<t.a.length;++A)if($8(e,t.a[A]))return A;return-1}function tQ(t){var e;for(e=0;e<t.r;e++)if(t.K[e].c!=0)return!0;return!1}function eq(t,e){var A;for(A=wl[e]/2;t<-A;)t+=k0;for(;t>=A;)t-=wl[e];return t}function Aq(t,e){var A;return A=t.D[e],A==3||A==11||A==19||A==37||A==55||A==87}function nq(t,e){var A;return A=t.D[e],A==4||A==12||A==20||A==38||A==56||A==88}function GL(t){return t.a.d!=t.c?Vg(t.a,t.b.value[0]):t.b.value[1]}function Pq(t){return O(t,0)==0&&2<Ko.length?Ko[2]:new ff(t,2)}function UF(t){return t.d.a.length<2?null:new Mj(x(t.d,0),x(t.d,1))}function LF(t,e,A,n){return y1(t),y1(e),y1(A),y1(n),new Ou(t,e,A,new Kw)}function ai(t,e,A,n){var P;n=(kU(),n||Sl),P=t.slice(e,A),T5(P,t,e,A,-e,n)}function rq(t,e,A,n,P){Mt(e,A,t.length),Mt(P,P+(A-e),n.length),cG(t,e,A,n,P)}function sF(t,e,A){if(e==null||A==null)throw et(new Rr);return Jr(t.e,e,A)}function fT(){fT=v1,Hc=new vu(\"All\",0),BS=new fd,vS=new sd,FS=new Dd}function yF(t){return t.__elementTypeCategory$==null?10:t.__elementTypeCategory$}function DT(t,e){return new BP(t.b*e.c-t.c*e.b,t.c*e.a-t.a*e.c,t.a*e.b-t.b*e.a)}function lF(t,e){return ut(t,7),t.p[e]==2&&t.k[e]==2?Kb(t,e,!1):$s(t,e,!1)}function tf(t,e){var A;return e==null||e.length==0?null:zT(t,ln((A=e,c0(),A)))}function iq(t){var e,A;return new P8((e=new U8,A=new un(new Sr(t)),mY(e,A),e))}function fq(t,e){var A,n;for(n=new n1,A=0;A<e.s;A++)Ft(n,new zB(t,e,A));return n}function Ze(t,e){O1();var A;for(A=t-e;A<$6;)A+=k0;for(;A>l1;)A-=k0;return A}function hF(t,e){return yF(e)!=10&&m(Us(e),e.xd,e.__elementTypeId$,yF(e),t),t}function Dq(t,e){e&&(t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0)))}function uq(t,e){e&&(t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0)))}function Qq(t,e){return m3(Pz(Id(t,new eh),xd(e,new eh),new Vw),new Ew)}function uT(t,e){var A,n;for(n=new Zt(t.a);n.a<n.c.a.length;)A=_t(n),A.nc(e)}function oq(t,e){var A,n;for(n=new Zt(t.a);n.a<n.c.a.length;)A=_t(n),A.nc(e)}function OL(t,e,A){var n;for(n=0;n<t.r;n++)t.K[n].a+=e,t.K[n].b+=A;t.V+=e,t.W+=A}function TF(t,e){var A;for(A=0;A<e.length;A++)if(e[A]==t)return!0;return!1}function V0(t){var e;return U0(t)&&(e=0-t,!isNaN(e))?e:En(Ai(t))}function Uq(t,e){try{t.i[0].b=sn(e)}catch(A){if(A=_1(A),!Jt(A,42))throw et(A)}}function Lq(t,e){try{t.i[0].a=sn(e)}catch(A){if(A=_1(A),!Jt(A,42))throw et(A)}}function cF(t,e,A){f8(t.g,A,e),t.b[e.a]=!0,e.g!=-1&&(t.c[o1(t.k,e.a,e.g)]=!0)}function sq(t,e){t.L||(xa(t,e),t.L=!0),t.r||(O$(t,e),Ltt(t),yY(t),t.r=!0)}function qL(t){return t.v<<=t.t,(!t.r||t.v!=63)&&(t.v+=64),Ye(t.u,t.v&d1),t.u.a}function QT(t){var e;return e=t.b.a.length==0?null:x(t.b,0),e!=null&&lT(t,0),e}function oT(t,e,A,n){if(A==null||A.length==0){KL(e),e.d=null;return}DM(t,e,A,n,0)}function wF(t,e,A,n,P,r){this.c=t,this.e=e,this.d=A,this.f=n,this.b=P,this.a=r}function yq(t){this.e=\"\",this.c=9,this.d=0,this.i=c(lc,e0,56,1,0,1),this.i[0]=t}function gF(t,e){this.a=H0(t.b[e][5]),this.b=H0(t.b[e][6]),this.c=H0(t.b[e][7])}function ef(t,e){return(t.G[e]&768)>>8!=1&&(t.G[e]&768)>>8!=2?-1:(t.G[e]&cn)>>10}function UT(t,e){return t.p[e]==2&&t.k[e]==2&&t.o[e][0]==2&&t.o[e][1]==2&&t.D[e]<=7}function lq(t){return t==1||t>=5&&t<=9||t>=14&&t<=17||t>=32&&t<=35||t>=52&&t<=53}function hq(t,e){return new Ke(t.b*e.c-t.c*e.b,-(t.a*e.c-t.c*e.a),t.a*e.b-t.b*e.a)}function Tq(t,e){var A,n;for(A=0,n=0;n<t.b;n++)t.e[n][e]&&t.c[n]==-3&&++A;return A}function cq(t){var e,A;for(A=t.a,e=0;e<t.b.length;e++)A+=t.b[e]*X4[t.c[e]];return A}function wq(t){var e,A;for(A=t.d,e=0;e<t.b.length;e++)A+=t.b[e]*Z4[t.c[e]];return A}function gq(t){var e,A,n;for(e=Lk(t),n=0,A=0;A<qP.length;A++)n+=e[A]*qP[A];return n}function LT(t,e,A){var n;for(n=x(t.k,e).length;A>=n;)A-=n;for(;A<0;)A+=n;return A}function dF(t,e){return t.V.r!=0&&t.r?IO(t.r,e?Bj(t.V):an(t.V)):!1}function dq(t,e){if(t.N!=0){t.C!=-4&&(t.C=-4,t.Bb(t.N));return}t.C=-5,t.P=e,t.Bb(e)}function Bq(t){return $T(t,(ti(),Bc))<0?-gN(Ai(t)):t.l+t.m*oP+t.h*UP}function vq(t,e,A,n,P){return y1(t),y1(e),y1(A),y1(n),y1(P),new Ou(t,e,A,n)}function zL(t,e,A){Yp.call(this,t),this.b=e,this.c=O(A,0)==0?new P2:new $i(A)}function BF(){ZP.call(this,\"invalid JS RegExp: RGROUPS=\\\\((\\\\d+) (\\\\d+).*\\\\)\")}function vF(){this.a=iP(\"/resources/forcefield/mmff94/herschbachlaurie.csv\")}function _D(){this.i=c(lc,e0,56,2,0,1),this.i[0]=new ce,this.i[1]=new ce,this.a=0}function ti(){ti=v1,gc=N0(q0,q0,524287),fS=N0(0,0,B8),dc=bL(1),bL(2),Bc=bL(0)}function eQ(t,e){var A,n;for(n=Bu(t.b,e),A=n.length;A<10;A++)Ye(t.a,32);G(t.a,n)}function FF(t,e){var A,n;for(n=Bu(t.a,e),A=n.length;A<10;A++)Ye(t.b,32);G(t.b,n)}function kF(t,e){var A,n;for(A=t.p[e],n=0;n<t.k[e];n++)rA(t,t.j[e][n])&&++A;return A}function ei(t,e,A){var n,P;for(n=0,P=0;P<t.k[e];P++)J(t,t.j[e][P])==A&&++n;return n}function mF(t,e,A,n,P){var r;return r=dj(t,e,A,n,P),r<0?bj(t,e,A,n,P):H0(t.b[r][5])}function Fq(t){var e,A;if(t.b){A=null;do e=t.b,t.b=null,A=pb(e,A);while(t.b);t.b=A}}function kq(t){var e,A;if(t.a){A=null;do e=t.a,t.a=null,A=pb(e,A);while(t.a);t.a=A}}function KL(t){t.r=0,t.s=0,t.L=!1,t.M=!1,t.J=0,t.w=null,t.u=null,t.Q=null,t.U=0}function ar(t,e){var A;for(A=0;A<t.e.length;A++)if(e==t.e[A])return!0;return!1}function sT(t,e){var A,n,P;return A=t.length-(e/32|0)-1,n=e%32,P=1,P=P<<n,(t[A]&P)!=0}function mq(t){var e,A;return e=c(B,F,6,t.r,15,1),A=Ur(t,e,!1,!1),OR(t,e,A)}function JL(t,e){return e?(ut(t,1),dP(t,t.g,t.i,Bn)):dP(t,t.r,t.s,Bn)}function bF(t,e,A,n){var P;return P=0,e&&(P|=1),A&&(P|=2),n&&(P|=4),Eu(new dD(t.a,P))}function bq(t,e){var A;return x3(e),A=e/31|0,A<t.a.length&&((t.a[A]|0)>>>e%31&1)==1}function jF(t){var e;x9(!!t.c),e=t.c.a,Vq(t.d,t.c),t.b==t.c?t.b=e:--t.a,t.c=null}function YL(t){var e;return e=new RT,e.n=\"Class$\"+(t?\"S\"+t:\"\"+e.i),e.b=e.n,e.j=e.n,e}function XL(t,e){var A,n;if(A=0,t.L)for(n=0;n<t.k[e];n++)se(t,t.j[e][n])&&++A;return A}function n0(t,e){var A,n;for(A=t.k[e],n=0;n<t.k[e];n++)t.D[t.j[e][n]]==1&&--A;return A}function yT(t,e){var A,n,P,r;return n=e/2|0,P=t>=n,P&&(t-=n),r=e/32,A=r*t/(n-t),P?-A:A}function eP(t,e){var A;return t.u==null||t.u[e]==null?null:on((A=t.u[e],c0(),A))}function OA(t,e){return(t.v[e]&b1)>>18!=1&&(t.v[e]&b1)>>18!=2?-1:(t.v[e]&VA)>>20}function jq(t,e,A){t.a==null&&(t.a=c(_,At,6,t.R.g,15,1),wx(t.a)),t.a[e]=A<<24>>24}function AQ(t,e,A){if(!t.c){if(t.e.a.length==4){t.c=!0;return}Ft(t.e,new u3(t,e,A))}}function Rq(t,e){try{t.d=L1(e,f1,Et)}catch(A){if(A=_1(A),!Jt(A,42))throw et(A)}}function pq(t,e,A){var n;return n=LX(t,e,A),n&&A==386&&(ut(t,7),n=n&(t.G[e]&128)==0),n}function ZL(t,e,A){var n,P;for(n=0,P=0;P<Ct(t.f,A);P++)ar(e,Z(t.f,A,P))&&++n;return n}function Mq(t,e,A){var n,P;for(P=0;P<t.k[A];P++)if(n=t.j[A][P],n!=e)return n;return-1}function Cq(t){var e,A,n,P;return P=0,e=t.d.i,n=t.k.i,A=t.n.i,P=A/w.Math.max(e,n),P}function Hq(t){var e,A;for(ut(t,7),e=0,A=0;A<t.q.j.a.length;A++)dh(t.q,A)&&++e;return e}function Vq(t,e){var A;return A=e.c,e.a.b=e.b,e.b.a=e.a,e.a=e.b=null,e.c=null,--t.b,A}function pe(t,e,A){var n=function(){return t.apply(n,arguments)};return e.apply(n,A),n}function RF(t,e){var A;if(t){e.k=t;var n=PO(e);if(!n){jo[t]=[e];return}n.wd=e}}function pF(t,e){var A;if(t.i!=null)for(A=0;A<t.i.length;A++)t.i[A].a*=e,t.i[A].b*=e}function Eq(){vg();for(var t=sl,e=0;e<arguments.length;e++)t.push(arguments[e])}function Sq(){return Qr(),m(k(q8t,1),_e,75,0,[gS,hS,lS,TS,El,cS,Te,wS])}function nQ(t){return O1(),t>=0&&t<wr.length&&wr[t]!=null?wr[t]:t>=171&&t<=190?dE:BE}function Iq(t,e){var A;return A=t.D[e]<wr.length?wr[t.D[e]]:null,A==null?6:A[A.length-1]}function xq(t,e){var A;for(A=0;A<t.k[e];A++)if(t.t[t.j[e][A]]<0)return!0;return!1}function MF(t,e){var A;for(A=0;A<t.k[e];A++)if(t.t[t.j[e][A]]>0)return!0;return!1}function w1(t,e,A,n){n?t.C[e]=z(t.C[e],A):t.C[e]=V(t.C[e],Wn(A)),t.U=0,t.L=!0}function WL(t,e,A,n,P,r){xr.call(this,n),this.e=t,this.b=e,this.c=A,this.a=P,this.d=r}function CF(t,e,A,n,P,r,i,f){this.e=t,this.a=e,this.b=A,this.f=n,this.d=i,this.c=P*r/f}function HF(t,e){t&&(this.k=c(gr,B9,26,1,0,1),this.k[0]=t),this.c=0,this.g=e,Es(this)}function $D(t,e){SD(t>=0,\"Digits < 0\"),g3(e,\"null RoundingMode\"),this.a=t,this.b=e}function VF(t){x9(t.c>=0),PJ(t.d,t.c)<0&&(t.a=t.a-1&t.d.a.length-1,t.b=t.d.c),t.c=-1}function Nq(t,e){var A,n,P,r;if(t.e!=null)for(n=t.e,P=0,r=n.length;P<r;++P)A=n[P],A.J=e}function EF(t,e,A){var n,P,r;for(r=t.a.length-1,P=t.b,n=0;n<A;P=P+1&r,++n)e[n]=t.a[P]}function Gq(t){var e,A;if(t.L)return 0;for(ut(t,1),A=0,e=0;e<t.g;e++)A+=xt(t,e);return A}function _L(t){var e;return e=t.e[t.d++]-48,Rn(t.e[t.d]&d1)&&(e=10*e+(t.e[t.d++]-48)),e}function Oq(t,e){var A,n;return A=PT(t),n=PT(e),A>n?1:A<n?-1:0}function qq(t){var e,A;return e=FL(t.a),e==-1?0:(A=t.a[e]|0,e*31+(32-D9(A)))}function SF(t,e){var A;for(A=0;A<t.k[e];A++)if(R1(t,t.j[e][A])<0)return!0;return!1}function zq(t){var e,A;for(A=0,e=0;e<t.a.r;e++)(J(t.a,e)==7||J(t.a,e)==8)&&++A;return A}function IF(t){var e;return e=c(Ut,Tt,6,2,15,1),e[0]=vn*(t/17|0)+p8,e[1]=vn*(t%17)+p8,e}function $L(t){var e,A;if(t==0)return 32;for(A=0,e=1;(e&t)==0;e<<=1)++A;return A}function Kq(t){var e=t.Hc(),A=e.pasteMolecule();return A?A.wc():null}function xF(t,e){return t.b!=e.b?t.b>e.b?-1:1:t.c!=e.c?t.c>e.c?-1:1:0}function Jq(t,e){return t.d!=e.d?t.d<e.d?-1:1:t.e!=e.e?t.e<e.e?-1:1:0}function lT(t,e){var A;A=cA(t.b,t.b.a.length-1),e<t.b.a.length&&(Zr(t.b,e,A),Xb(t,e))}function hT(t,e,A){var n;Ftt(e,A,(t.e&12)!=0),n=Z5(t,e.b[0],e.b[1],0),ik(t,e.b[0],e.b[1],n)}function PQ(t,e,A,n){return Bt(w.Math.round((t.a[e]*t.c[e]+n*t.c[A])/(t.c[e]+t.c[A])))}function Yq(t,e,A,n){this.d=e,this.a=A,this.b=n,this.e=d2(t.d,e,A,n),this.c=fa(t.d,e,A,n)}function Xq(t,e){Bm(),this.o=t,this.n=O(t,0)==0?new P2:new $i(t),this.r=new UB(t,e)}function NF(t,e){var A,n;t.b&&(J1(t),n=(t.U&4)!=0,A=new dm(t._,t.V,e,n),NN(A,new e7(t)))}function GF(t){var e;t.a=!1,e=new fu(MB(t)),QO(e,0,0,t.b.o,t.b.e),pa(t.b,new fu(MB(t)))}function Zq(t,e,A){var n,P;for(t.J&=~e,P=new Zt(t.S);P.a<P.c.a.length;)n=_t(P),n.nc(A)}function Wq(t,e,A){var n;if(t.i!=null)for(n=0;n<t.i.length;n++)t.i[n].a+=e,t.i[n].b+=A}function OF(t,e){var A;for(qJ(t),A=0;A<t.b.length;A++)if(e[t.b[A]])return!0;return!1}function _q(t,e){var A;for(A=0;A<t.k[e];A++)if(J(t,t.j[e][A])!=6)return!0;return!1}function qF(t,e,A){var n,P;for(P=x(t.j,e),n=0;n<P.length;n++)if(A==P[n])return n;return-1}function $q(t,e,A){var n,P;for(P=x(t.k,e),n=0;n<P.length;n++)if(A==P[n])return n;return-1}function aq(t,e,A){var n;return Mz(t),t.b=!0,n=new Jw,n.a=e,zx(t.a,new Ig(n,A)),n.a}function rQ(t,e){var A,n;return A=1-e,n=t.a[A],t.a[A]=n.a[e],n.a[e]=t,t.b=!0,n.b=!1,n}function aD(t,e){var A,n,P;A=t.a.length-(e/32|0)-1,n=e%32,P=1,P=P<<n,t.a[A]=t.a[A]|P,t.b=-1}function iQ(t,e,A,n){var P,r;this.a=hn(t,e,A,n),P=A-t,r=n-e,this.b=w.Math.sqrt(P*P+r*r)}function fQ(t,e){var A;for(A=0;A<t.r;A++)w.Math.abs(t.A[A])==w.Math.abs(e)&&(t.A[A]=0)}function nr(t,e){var A;return A=c(B,F,6,e,15,1),PA(t,0,A,0,w.Math.min(t.length,e)),A}function tz(t,e){var A;return A=c(XA,Pe,6,e,14,1),PA(t,0,A,0,w.Math.min(t.length,e)),A}function Me(t){return t.J==null&&(si(t),(t.Q&q1)==0&&(itt(t),ip(t,1),ip(t,2)),m1t(t)),t.J}function zF(t){return t!=null&&(typeof t===hy||typeof t==\"function\")&&t.yd!==DD}function ez(t,e){typeof window===hy&&typeof window.$gwt===hy&&(window.$gwt[t]=e)}function AP(t,e){for(var A in e)e[A].configurable=!0;Object.defineProperties(t,e)}function Az(t){var e={};return t!=null&&(e=t&&t.prototype,!e&&(e=jo[t])),Object.create(e)}function nz(t,e){var A;for(A=0;A<N(t.k,e);A++)if(!t.b[Z(t.k,e,A)])return!0;return!1}function Af(t,e){var A;return A=c(B,F,6,e,15,1),PA(t,0,A,0,w.Math.min(t.length,e)),A}function aL(t,e){var A;return A=c(Pt,it,6,e,16,1),PA(t,0,A,0,w.Math.min(t.length,e)),A}function pP(t,e,A,n){var P,r;return r=t.length,P=w.Math.min(n,r)-A,k5(t,A,e,0,P,!0),e}function Pz(t,e,A){return LF(A,new DB(t,e),new Ow,m(k(Il,1),_e,96,0,[(lQ(),Xo)]))}function KF(t,e){var A;(!t.q||!e.q)&&(A=new ov(t.o),!t.q&&(t.q=P5(A,t)),!e.q&&(e.q=P5(A,e)))}function rz(t,e){var A,n;if(t.g)for(n=new Zt(t.g);n.a<n.c.a.length;)A=_t(n),A.Ib(e,t.p)}function TT(t,e){var A,n,P;for(y1(e),A=!1,P=e.Tb();P.cd();)n=P.dd(),A=A|t.add(n);return A}function ts(t,e,A){var n;for(n=0;n<t.k.a.length;n++)if(rf(t,n,e)&&rf(t,n,A))return n;return-1}function nf(t,e){var A;for(A=0;A<N(t.j,e);A++)if(ee(t.j,Z(t.j,e,A)))return!0;return!1}function o1(t,e,A){var n;for(n=0;n<t.j[e].length;n++)if(t.j[e][n]==A)return t.n[e][n];return-1}function JF(t,e,A){var n,P,r;for(P=0,r=0;r<t.k[e];r++)n=t.j[e][r],n!=A&&t.k[n]>2&&++P;return P}function YF(t,e,A){var n,P,r;for(n=0,P=0;P<A;P++)r=e[P],t[P]=r<<1|n,n=r>>>31;n!=0&&(t[A]=n)}function XF(t){var e;if(t.b==-2){if(t.e==0)e=-1;else for(e=0;t.a[e]==0;e++);t.b=e}return t.b}function es(t,e){var A;return A=gs(t.V,q(t.V,0,e)),A!=-1&&ze(t.V,A)!=1&&ze(t.V,A)!=2&&(A=-1),A}function As(t,e){var A=t.Lc(),n=A.getBounds(e);return new lA(n.x,n.y,n.width,n.height)}function ZF(t){return t.a<54?t.f<0?-1:t.f>0?1:0:(!t.c&&(t.c=jP(E1(t.f))),t.c).e}function iz(t){var e;for(e=0;e<t.i;e++)if(t.I[e]==8)return jf(new p9(t),null,!1);return!1}function WF(t){var e,A;for(ut(t,31),A=0,e=0;e<t.g;e++)(t.v[e]&3)!=0&&(t.v[e]&4)==0&&++A;return A}function fz(t){var e,A;if(e=t.q,t.t)for(A=0;A<t.q;A++)t.e[A]&&--e;return t.i>0&&e>t.i&&(e=t.i),e}function t9(t,e){var A;return A=c(B,F,6,2,15,1),t>e?(A[0]=t,A[1]=e):(A[0]=e,A[1]=t),A}function cT(t,e,A,n){xr.call(this,t),this.a=c(Ut,Tt,6,1,15,1),this.a[0]=A,this.b=e,this.c=n}function ns(t,e,A,n,P,r){this.f=e,this.d=A,this.a=n,this.b=P,this.c=r,this.e=zW(t.k,e,A,n,P,r)}function Ps(t){n3(this),eT(this),this.backingJsObject=t,Wb(this,t),this.f=t==null?y9:n2(t)}function _F(t){this.f=t,this.e=new tT(this.f.c),this.a=this.e,this.b=kT(this),this.d=this.f.b}function Dz(t){if(y1(t),t.length==0)throw et(new _P(\"Zero length BigInteger\"));c_(this,t)}function $F(){$F=v1,new $D(34,(Qr(),Te)),new $D(7,Te),new $D(16,Te),new $D(0,El)}function aF(t,e,A,n){var P;P=t.a.length,A>P?A=P:zt(e,A+1),t.a=hA(t.a,0,e)+(\"\"+n)+GD(t.a,A)}function uz(t,e,A){var n;return n=x(t.I,0),SQ(n,mt(t.V,e),Rt(t.V,e))==SQ(n,mt(t.V,A),Rt(t.V,A))}function tk(t,e,A){var n,P,r;n=Bt(c4*G8(t.V)),P=Bt(mt(t.V,A)),r=Bt(Rt(t.V,A)),lL(e,P-n,r-n,2*n)}function rs(t,e,A,n,P,r,i,f,D,Q){var o=t.Lc(),L=e.qc();return o.drawImage(L,A,n,P,r,i,f,D,Q)}function Qz(t,e,A,n){n&&e!=-1&&(t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0))),A.oc()}function ek(t){return Bt(w.Math.round((Re==-1&&(Re=globalThis.devicePixelRatio||1),Re*t)))}function oz(t){return t>=21&&t<=30||t>=39&&t<=48||t==57||t>=72&&t<=80||t==89||t>=104&&t<=112}function Vn(t){return Ns(t,26)*14901161193847656e-24+Ns(t,27)*11102230246251565e-32}function Uz(t){var e;for(e=0;e<t.o.r;e++)if((t.a==null?NaN:t.a[e])>2.72)return!1;return!0}function Lz(t){var e,A;for(A=!0,e=0;e<t.i.g;e++)if(t.o[e]!=0&&!t.e[e]){A=!1;break}return A}function sz(t){var e,A,n;for(A=0,e=-1,n=0;n<t.a.length;n++)A<t.a[n]&&(A=t.a[n],e=n);return e}function wT(t,e){var A,n;for(A=0,n=0;n<t.k[e];n++)rA(t,t.j[e][n])&&!Ru(t,t.n[e][n])&&++A;return A}function DQ(t,e){var A,n;for(n=0,A=0;A<t.s;A++)(t.F[0][A]==e||t.F[1][A]==e)&&(n+=dt(t,A));return n}function Ak(t){var e,A,n;for(n=0,A=t.Tb();A.cd();)e=A.dd(),n=n+(e!=null?fr(e):0),n=n|0;return n}function nk(t,e){var A,n;for(A=0,n=t.size();A<n;++A)if($8(e,t.getAtIndex(A)))return A;return-1}function gT(t,e){var A,n;for(n=t.o.Gc(),n.removeAllItems(),A=0;A<16;A++)Gt(t.o,\"\"+(e+A));return 16}function En(t){var e;return e=t.h,e==0?t.l+t.m*oP:e==Pn?t.l+t.m*oP-UP:t}function E1(t){return N2<t&&t<UP?t<0?w.Math.ceil(t):w.Math.floor(t):En(_Z(t))}function yz(t){return ut(t,15),!t.d&&(t.g<2||!Ts(t.K[0],t.K[1]))&&(t.d=new bA(t)),t.d?a7(t.d):null}function Pk(t){return ut(t,15),!t.d&&(t.g<2||!Ts(t.K[0],t.K[1]))&&(t.d=new bA(t)),t.d?Me(t.d):null}function dT(t,e){return!!(t0(t.b,e)==1&&J(t.b,e)<10||mn(t.b,e)||xP(t.b,e,!0))}function lz(t,e){return t.D[e]==1&&t.B[e]==0&&t.t[e]==0&&(t.v[e]&m8)==0&&(t.u==null||t.u[e]==null)}function rk(t,e){return w.Math.sqrt((t.a-e.a)*(t.a-e.a)+(t.b-e.b)*(t.b-e.b)+(t.c-e.c)*(t.c-e.c))}function BT(t,e){return w.Math.sqrt((e.a-t.a)*(e.a-t.a)+(e.b-t.b)*(e.b-t.b)+(e.c-t.c)*(e.c-t.c))}function ik(t,e,A,n){var P;P=w.Math.min($r(t.d,e,0),$r(t.d,A,0)),f8(t.d,P,n),er(t.d,e),er(t.d,A)}function PA(t,e,A,n,P){z1(),g3(t,\"src\"),g3(A,\"dest\"),zz(t,e,A,n,P),k5(t,e,A,n,P,!0)}function hz(t,e,A){var n;for(n=0;n<t.j.g.length;n++)if(t.e[e][n]&&t.e[A][n])return!0;return!1}function Tz(t,e){var A;for(A=0;A<t.b;A++)if(t.e[A][e]&&t.c[A]==-3)return A<t.a?1:A<t.b?2:0;return-1}function fk(t,e){return e>=t.g?0:e<t.g&&i0(t.q,e)&&t.D[e]==6&&t.t[e]!=0?1:t.p[e]}function Se(t){var e,A,n,P;return P=t,n=0,P<0&&(P+=UP,n=Pn),A=Bt(P/oP),e=Bt(P-A*oP),N0(e,A,n)}function cz(t,e){var A,n,P;for(P=(ut(t,7),t.q),n=0,A=0;A<P.j.a.length;A++)qF(P,A,e)>=0&&++n;return n}function wz(t,e){var A;this.c=t,A=new n1,WT(t,A,e,t.b,null,!1,null,!1),this.a=new X3(A,0)}function Ln(t,e){var A;A=t.a.length,e<A?t.a=hA(t.a,0,e):e>A&&(t.a+=z8(c(Fr,Pe,6,e-A,15,1)))}function gz(t,e,A){var n,P;return e==null?null:Bs(t,ln((P=e,c0(),P)),A==null?null:ln((n=A,n)),0)}function vT(t){var e;return O(t,0)<0&&(t=Wn(t)),e=Ot(b0(t,32)),64-(e!=0?D9(e):D9(Ot(t))+32)}function dz(t){var e,A,n;for(n=1,A=t.Tb();A.cd();)e=A.dd(),n=31*n+(e!=null?fr(e):0),n=n|0;return n}function Dk(t,e){var A,n;for(n=e.Tb();n.cd();)if(A=n.dd(),j3(t,A.jd()))return!0;return!1}function uk(t,e,A,n){return d1t(n,t,e),A!=null&&(A[0]=n.f[0],A[1]=n.b[0],A[2]=n.b[1],A[3]=n.f[1]),n.d}function uQ(t,e){t.w!=e&&(t.w==19||e==19?(t.w=e,t.eb=w.Math.max(t.eb,1),P1(t.k)):t.w=e)}function Bz(t,e){var A;for(A=0;A<t.j.i;A++)t.e[A]&&Os(e,A)&&(Df(t,q(t.j,0,A)),Df(t,q(t.j,1,A)))}function vz(t,e){var A,n,P;return A=t.l+e.l,n=t.m+e.m+(A>>22),P=t.h+e.h+(n>>22),N0(A&q0,n&q0,P&Pn)}function Qk(t,e){var A,n,P;return A=t.l-e.l,n=t.m-e.m+(A>>22),P=t.h-e.h+(n>>22),N0(A&q0,n&q0,P&Pn)}function FT(t){var e,A;return e=Bt(t.i[1].a-t.i[0].a),A=Bt(t.i[1].b-t.i[0].b),w.Math.sqrt(e*e+A*A)}function Fz(t){var e;return t<128?(e=(sB(),vc)[t],!e&&(e=vc[t]=new Ph(t)),e):new Ph(t)}function _1(t){var e;return Jt(t,27)?t:(e=t&&t.__java$exception,e||(e=new dv(t),void 0),e)}function kT(t){return t.a.cd()?!0:t.a!=t.e?!1:(t.a=new iT(t.f.a),t.a.cd())}function ok(t,e){if(e==null)return!1;for(;t.a!=t.b;)if(SP(e,Kk(t)))return!0;return!1}function kz(t){return t==null?!1:t.$implements__java_lang_Cloneable||Array.isArray(t)}function Uk(t){return t.n==null&&(t.n=Cn(t.e,t.e.length),t.n.sort(pe(u0.prototype.ld,u0,[]))),t.n}function mz(t){return t.includes(\"ATOMS=(\")?E2:t.includes(\"BONDS=(\")?\"BONDS\":null}function bz(t){var e,A;for(A=0,e=0;e<t.a.r;e++)(J(t.a,e)==7||J(t.a,e)==8)&&$d(t.a,e)>0&&++A;return A}function Lk(t){var e,A;for(A=c(B,F,6,qP.length+2,15,1),ut(t,7),e=0;e<t.g;e++)++A[f1t(t,e)];return A}function sk(t,e){var A;return A=t.a.get(e),A===void 0?++t.d:(t.a.delete(e),--t.c,++t.b.b),A}function jz(t){var e;return e=t.a[t.b],e==null?null:(t.a[t.b]=null,t.b=t.b+1&t.a.length-1,e)}function yk(t,e){var A;return e>0?(t[e]+t[e-1])/2:(A=l1+(t[0]+t[t.length-1])/2,A>l1?A-k0:A)}function Rz(t){var e,A;if(t.r==0)return null;for(A=new x0,e=0;e<t.r;e++)X8(A,t.K[e]);return WU(A,1/t.r)}function lk(t){var e,A;for(A=new Zt(t.U);A.a<A.c.a.length;)e=_t(A),$1(t,e.a),SN(t,e.b,e.c);$1(t,t.Q)}function pz(t){Rk();var e;e=nl,(e.startsWith(Pl)||e.startsWith(rl)||e.startsWith(il))&&QY(t,KE)}function hk(t,e){xr.call(this,t),this.a=c(Ut,Tt,6,2,15,1),this.a[0]=e,this.a[1]=Ge,this.c=-1}function Tk(){SD(!0,\"Negative initial capacity\"),SD(!0,\"Non-positive load factor\"),i8(this)}function Mz(t){if(t.b)throw et(new lU(\"Stream already terminated, can't be modified or used\"))}function Cz(t){return e1(typeof t,Mf)?!0:t!=null&&t.$implements__java_lang_CharSequence}function m(t,e,A,n,P){return P.wd=t,P.xd=e,P.yd=DD,P.__elementTypeId$=A,P.__elementTypeCategory$=n,P}function Hz(t){var e,A,n;for(n=w.Math.max(t.d.length,t.c.length),A=1,e=n-t.a+1;e<=n;e++)A*=e;return A}function Vz(t,e){var A,n;return A=Gs(t,e),A==-1?-1:(n=t.b.a.length,Ft(t.b,e),f8(t.a,A,U1(n)),n)}function Ez(t){var e;if(t<0)return f1;if(t==0)return 0;for(e=dn;(e&t)==0;e>>=1);return e}function Ai(t){var e,A,n;return e=~t.l+1&q0,A=~t.m+(e==0?1:0)&q0,n=~t.h+(e==0&&A==0?1:0)&Pn,N0(e,A,n)}function QQ(t,e){var A;for(A=0;A<t.k[e];A++)if(t.o[e][A]==2&&J(t,t.j[e][A])>6)return!0;return!1}function Sz(t,e){var A;for(A=0;A<t.b;A++)if(t.e[A][e]&&t.c[A]==-3)return A<t.a?A:A<t.b?A-t.a:-1;return-1}function MP(t,e){var A,n;return A=e.toArray(),n=A.length,n==0?!1:(L3(t.a,t.a.length,A),!0)}function Iz(t){var e,A;return A=Up(t),A?(kD(A,t.a),e=x(A,A.a.length-1),t.n=Hs(t.d,e),t.n):null}function oQ(t,e){t.F[0]=nr(t.F[0],e),t.F[1]=nr(t.F[1],e),t.I=nr(t.I,e),t.G=nr(t.G,e),t.H=nr(t.H,e),t.O=e}function Ie(t,e,A){t.a==t.b.length&&(t.b=zD(t.b,2*t.a),t.c=zD(t.c,2*t.a)),t.b[t.a]=e,t.c[t.a]=A,++t.a}function xz(t,e,A,n){Ft(t.$,new lA(e-t.V,A-t.V,2*t.V,2*t.V)),t.K||Ft(t.U,new Vu(e,A,gQ(t,n)?-3:t.p[n]))}function ck(t,e,A,n){var P,r;for(r=0;r<N(t.f,A);r++)if(P=Z(t.f,A,r),P!=n&&P<e)return!1;return!0}function We(t,e,A){var n,P;return n=new xL(e,A),P=new rU,t.b=xj(t,t.b,n,P),P.b||++t.c,t.b.b=!1,P.d}function wk(t,e,A,n){var P;return w2(t,e,A,n),Ed(t.R)?null:(P=t.R,ah(t.R,t.L),t.R=new Qu,P)}function gk(t){var e,A;return A=D9(t.h),A==32?(e=D9(t.m),e==32?D9(t.l)+32:e+20-10):A-12}function Nz(t,e){var A;if(t.c!=null){for(A=0;A<t.c.length;A++)if(e==t.c[A]&&t.d[A])return!0}return!1}function Gz(t,e){var A,n;for(A=c(q2,V2,28,e,0,1),n=0;n<t.length;n++)t[n]&&(A[n]=new pu(t[n]));return A}function Oz(t,e){var A,n,P;for(P=new Wu(t.g),n=new Zt(P);n.a<n.c.a.length;)A=_t(n),Hv(e,A)&&r3(t.g,A)}function qz(t,e,A){var n,P,r;for(ut(e,1),P=x(t.a,A),n=0;n<t.d.d.a.length;n++)r=I9(t.d,n),CW(r,e,P);ui(e)}function mT(t,e,A){var n,P,r,i;for(P=e,r=0,i=P.length;r<i;++r)n=P[r],t.f[n&1073741823]=(n&dn)!=0^A?2:1}function zz(t,e,A,n,P){var r,i;if(i=t.length,r=A.length,e<0||n<0||P<0||e+P>i||n+P>r)throw et(new lh)}function dk(t,e,A){var n;for(n=0;n<t.k[e];n++)if(J(t,t.j[e][n])!=6&&t.j[e][n]!=A)return!0;return!1}function Kz(t,e,A,n,P){var r;return r=p5(t,e),A&&is(r),P&&(t=IJ(t,e),n?Kn=Ai(t):Kn=N0(t.l,t.m,t.h)),r}function Jz(t,e){return zA(e,t.c)!=0?1:(t.j=KW(e),t.j==null?oK(e)?3:4:t.j.length==0?3:2)}function Yz(t,e){return sr(t)==-1||sr(e)==-1||((sr(t)|sr(e))&1)!=0?3:sr(t)==sr(e)?1:2}function bT(t){var e,A;return A=(t[1]+t[0])/2,e=w.Math.abs(t[1]-t[0]),e>l1?A:A<0?A+l1:A-l1}function Bk(t,e,A){var n;return t.A.d.a.length!=0&&(n=I9(t.A,0),n.a<e)?(QU(t.A,0),n.b):t.sd(A)}function Xz(t,e){var A,n;for(A=t.a.length-1;e!=t.b;)n=e-1&A,t.a[e]=t.a[n],e=n;t.a[t.b]=null,t.b=t.b+1&A}function Zz(t,e){var A,n;for(A=t.a.length-1,t.c=t.c-1&A;e!=t.c;)n=e+1&A,t.a[e]=t.a[n],e=n;t.a[t.c]=null}function is(t){var e,A,n;e=~t.l+1&q0,A=~t.m+(e==0?1:0)&q0,n=~t.h+(e==0&&A==0?1:0)&Pn,t.l=e,t.m=A,t.h=n}function Wz(t){var e,A,n;for(n=new x0,A=0;A<t.r;A++)X8(n,t.K[A]);for(WU(n,1/t.r),e=0;e<t.r;e++)FB(t.K[e],n)}function jT(t){var e,A;for(e=0,A=0;A<t.length;A++)e=(e<<5)-e+(zt(A,t.length),t.charCodeAt(A))|0;return e}function UQ(t,e){var A,n;for(y1(e),n=e.Tb();n.cd();)if(A=n.dd(),!t.contains(A))return!1;return!0}function e9(t,e){var A,n,P;for(P=t.b;P;){if(A=t.a.Rb(e,P.c),A==0)return P;n=A<0?0:1,P=P.a[n]}return null}function vk(t,e){QM();var A,n;for(n=e-t,A=0;A<hl[t].length;A++)if(hl[t][A].b==n)return hl[t][A].a;return NaN}function _z(t,e){return t.c<e.c?-1:t.c>e.c?1:t.d<e.d?-1:t.d>e.d?1:0}function $z(t,e){return t.a>e.a?1:t.a<e.a?-1:t.b>e.b?1:t.b<e.b?-1:0}function t2(t,e,A,n){var P;return(t.G&1)!=0?!1:(P=x(t.$,n),e>P.c&&e<P.c+P.b&&A>P.d&&A<P.d+P.a)}function Fk(t,e,A,n){var P,r,i;for(P=c(_,At,6,n,15,1),i=uK(t.a,P),r=0;r<i;r++)e[A+r]=P[r]&d1;return i}function kk(t,e){var A,n,P,r;for(n=e,P=0,r=n.length;P<r;++P)if(A=n[P],j3(t,A.hd()))return A;return null}function az(t,e,A){var n,P;for(P=0;P<t.g[e].length;P++)n=t.g[e][P],t.k[n]==2&&(t.k[n]=1,t.j[n]=A<<24>>24)}function tK(t){zs();var e,A;for(ut(t,1),A=0,e=0;e<t.r;e++)t.D[e]==1?++A:A+=t.e[e]-t.k[e]+xt(t,e);return A}function LQ(t){var e,A;for(A=!1,e=0;e<t.r;e++)(t.v[e]&512)!=0&&(t.D[e]=-1,A=!0);return A&&ui(t)!=null}function Pf(t,e){var A;return A=z3(e,\"([/\\\\\\\\\\\\.\\\\*\\\\+\\\\?\\\\|\\\\(\\\\)\\\\[\\\\]\\\\{\\\\}$^])\",\"\\\\\\\\$1\"),z3(t,A,\"\")}function sQ(t,e){var A;e*2+1>=t.b.a.length||(sQ(t,2*e+1),A=2*e+2,A<t.b.a.length&&sQ(t,A),Xb(t,e))}function mk(t,e){var A;return A=BA(0,e,0,t.a.length,!0,t),H0(t.a[A][3])*w.Math.pow(H0(t.a[A][1]),.25)}function yQ(t,e,A){var n;for(n=A-1;n>=0&&t[n]==e[n];n--);return n<0?0:Si(V(t[n],g1),V(e[n],g1))?-1:1}function eK(t,e){var A,n,P;for(P=0,n=new Zt(e);n.a<n.c.a.length;)A=_t(n),P+=Ik(t,A.c,A.b)?t.b:0;return P}function bk(t,e,A){var n;if(t.i!=null)for(n=0;n<t.i.length;n++)t.i[n].a=t.o[n]+e-t.k,t.i[n].b=t.p[n]+A-t.n}function AK(t,e){var A;if(N(t.L,e)!=2)return!1;for(A=0;A<2;A++)if(EA(t.L,e,A)!=2)return!1;return!0}function nK(t,e){var A;for(A=0;A<N(t.R,e);A++)if(t.o[Nt(t.R,e,A)]==3&&EA(t.R,e,A)==1)return!0;return!1}function wA(t,e,A){var n,P,r,i;for(P=x(t.j,e),r=0,i=P.length;r<i;++r)if(n=P[r],A==n)return!0;return!1}function rf(t,e,A){var n,P,r,i;for(P=x(t.k,e),r=0,i=P.length;r<i;++r)if(n=P[r],A==n)return!0;return!1}function PK(t,e){pf();var A,n,P;for(P=0,A=0,n=0;n<t.length;n++)P+=rr(t[n]&e[n]),A+=rr(t[n]|e[n]);return P/A}function jk(t,e){this.n=t,this.k=e,this.j=(e&16)==0,this.d=-1,this.e=0,this.o=0,this.a=-1,this.g=-1,this.c=0}function fs(t,e,A,n,P){xr.call(this,t),this.a=c(Ut,Tt,6,2,15,1),this.a[0]=A,this.a[1]=n,this.b=e,this.c=P}function RT(){this.i=j1t++,this.n=null,this.j=null,this.g=null,this.d=null,this.b=null,this.k=null,this.a=null}function s8(){s8=v1,xl=m(k(ft,1),Dt,2,6,[\"distance\",\"plane\",\"line\",\"torsion\",\"stereo\",\"binap\"])}function A9(){A9=v1,Bi=m(k(ft,1),Dt,2,6,[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\"])}function ni(){ni=v1,YA=m(k(Oe,1),uA,6,15,[.29899999499320984,.5870000123977661,.11400000005960464])}function Rk(){Rk=v1,hc=m(k(B,1),F,6,15,[5258420,0]),KE=m(k(B,1),F,6,15,[11837695,14737632])}function aA(){aA=v1,tS=new iD,WE=(O1(),J0),aE=j8,_E=wr,$E=ll,ZE=m(k(ft,1),Dt,2,6,[i4,f4,D4])}function lQ(){lQ=v1,kS=new jU(\"CONCURRENT\",0),Xo=new jU(\"IDENTITY_FINISH\",1),Vc=new jU(\"UNORDERED\",2)}function pk(t){t.J=1,t.R=new Qu,t.$=new n1,t.U=new n1,t.s=c(Pt,it,6,t.L.r,16,1),t.w=new ce,t.Q=0,t.C=-1,Tj(t)}function Mk(t){var e;for(this.o=t,this.k=c(q2,V2,28,t.r,0,1),e=0;e<t.r;e++)this.k[e]=new pu(t.K[e]);this.n=NaN}function rK(t){var e,A;if(A=ba(t),r0(t.A,t.a))for(e=0;e<t.A.r;e++)r0(t.A,e)&&nM(t,e,A);else nM(t,t.a,A);up(t.A)}function Ck(t,e){var A,n;for(n=c(B,F,6,e.length+1,15,1),A=0;A<e.length;A++)n[A]=e[A];return n[e.length]=t,n}function iK(t,e){var A;for(A=0;A<e.length;A++){if(e[A]<t.g[A].a.length-1)return++e[A],!0;e[A]=0}return!1}function Hk(t,e){var A;for(A=0;A<t.f.length;A++)if(gt(t.f[A],e.f[A]))return Si(t.f[A],e.f[A])?-1:1;return 0}function e2(t,e){var A;for(A=0;A<e.k.length;A++)HD(t.k[A],e.k[A]);e.j==null?t.j=null:t.j=TL(e.j,e.j.length)}function fK(t,e){var A;for(A=0;A<N(t.i,e);A++)if(EA(t.i,e,A)==2&&J(t.i,Z(t.i,e,A))==8)return!0;return!1}function DK(t,e,A){var n,P;for(++t.b,n=new BD(t),n.p=A,P=t.g.length-1;P>=0;P--)kN(t,n,t.g[P],P,e[P]);return n}function Vk(t,e,A){var n;J1(t),n=e==-1?new fm(t._,t,t.F,t.B,t.D,t.C,t.A):new Bb(t._,t,t.V,e),ON(n,new Kd(t,e,A))}function Ek(t,e,A){if(t>e)throw et(new ZP(eo+t+UM+e));if(t<0||e>A)throw et(new ng(eo+t+V6+e+LM+A))}function Ds(t,e){return(t.v[e]&m8)!=0?!0:t.D[e]<=1?!1:Lj(t,e)||t.D[e]==13||t.D[e]>=171}function Sk(t,e){var A;return t===e?!0:Jt(e,163)?(A=e,t.Oc()==A.Oc()&&t.Pc()==A.Pc()):t===e}function uK(t,e){var A;return t.a==t.b?-1:(A=w.Math.min(e.length,t.b-t.a),EG(e,t.c,t.a,A),t.a+=A,A)}function hQ(t){var e,A,n;for(n=t.a.a.length,e=new Array(n),A=0;A<n;A++)e[A]=TN(x(t.a,A).a,x(t.a,A).b);return e}function QK(t){var e,A,n,P,r;for(r=1,A=t,n=0,P=A.length;n<P;++n)e=A[n],r=31*r+(e!=null?fr(e):0),r=r|0;return r}function oK(t){var e;if(t.length<3){for(e=1;e<(O1(),J0).length;e++)if(J0[e].startsWith(t))return!0}return!1}function Ik(t,e,A){var n;for(n=0;n<e.length;n++)if(gt(V(t.f[n],e[n]),V(A[n],e[n])))return!1;return!0}function us(t,e){var A,n,P;for(y1(e),A=!1,n=t.Tb();n.cd();)P=n.dd(),e.contains(P)&&(n.ed(),A=!0);return A}function UK(t,e){var A,n,P;for(n=!1,A=1;A<4;A++)for(P=0;P<A;P++)t[P]>t[A]&&(n=!n),e[P]>e[A]&&(n=!n);return n}function Qs(t,e){var A;for(!e&&(e=an(t.o)),e.U&=-249,A=0;A<e.r;A++)HD(e.K[A],t.k[A]);return t.p!=null&&iu(e,t.p),e}function xk(t,e){return!(t.D[e]!=6||t.t[e]!=0||xt(t,e)+t.k[e]!=4)}function LK(t){var e;return t!=null&&(e=t.__java$exception,e)?e:Hd(t,TypeError)?new X7(t):new Ps(t)}function sK(t,e){var A,n,P;for(n=0,A=0;A<t.V.r;A++)r0(t.V,A)&&++n;P=n!=0&&n!=t.V.r,(t.U&1)!=0?ntt(t,e,P):iY(t,e,P)}function yK(t){var e,A,n;for(n=t.a.length,e=new Array(n),A=0;A<n;A++)e[A]=Ox((te(A,t.a.length),t.a[A]));return e}function Nk(t){var e;for(t.q=c(Pt,it,6,t.L.r,16,1),e=0;e<t.L.s;e++)t.q[q(t.L,0,e)]=!0,t.q[q(t.L,1,e)]=!0}function Gk(t,e,A,n){this.c=c(XA,Pe,6,n.c,14,1),this.b=c(XA,Pe,6,n.c,14,1),fY(n,t,e,this.c,this.b),this.a=A}function Ok(t,e,A,n){this.a=(o8(e),pP(t,c(B,F,6,e,15,1),0,e)),this.b=(o8(n),pP(A,c(B,F,6,n,15,1),0,n))}function TQ(t,e,A,n,P,r,i){return o9(t,e,A,n,P,r==null?t.F[0][A]:r[t.F[0][A]],r==null?t.F[1][A]:r[t.F[1][A]],i)}function lK(t,e,A,n,P,r,i,f){var D;for(D=A;r<i;)D>=n||e<A&&f.Rb(t[e],t[D])<=0?P[r++]=t[e++]:P[r++]=t[D++]}function hK(t,e){var A,n;for(A=Lk(t),n=0;n<qP.length;n++)A[n]!=0&&e8(e,\"\"+A[n]+\" * \"+qP[n]+\"   AtomType: \"+CE[n],2)}function qk(t,e){var A,n,P;for(y1(e),A=!1,n=t.Tb();n.cd();)P=n.dd(),e.contains(P)||(n.ed(),A=!0);return A}function zk(t,e,A){var n,P;return Ju(e,t.a.length),n=A.toArray(),P=n.length,P==0?!1:(L3(t.a,e,n),!0)}function pT(t,e,A){if(A){if(t.t[e]>8)return!1;++t.t[e]}else{if(t.t[e]<-8)return!1;--t.t[e]}return t.U=0,!0}function Pr(t,e){var A;return A=de(t.b,e),A||(A=new Pp(t.k,t.q,t.s,e,t.n),We(t.b,Cn(e,e.length),A),A)}function Kk(t){var e;return MD(t.a!=t.b),e=t.d.a[t.a],jd(t.b==t.d.c&&e!=null),t.c=t.a,t.a=t.a+1&t.d.a.length-1,e}function Jk(t){var e;if(t.c!=0)return t.c;for(e=0;e<t.a.length;e++)t.c=t.c*33+(t.a[e]&-1);return t.c=t.c*t.e,t.c}function TK(t,e){var A,n;for(n=c(gr,B9,26,t.length,0,1),A=0;A<t.length;A++)n[A]=t[A].a;return new P8(new qT(n,e))}function cK(t,e){var A,n,P,r;if(e.length==0)return null;for(n=e,P=0,r=n.length;P<r;++P)A=n[P],t.D[A]=-1;return ui(t)}function MT(){uM();var t,e,A,n;if(!Wf&&!Wf)for(Wf=new Ci,e=ME,A=0,n=e.length;A<n;++A)t=dQ(e[A]),tr(Wf,t)}function wK(t,e,A,n,P){e==0||n==0||(e==1?P[n]=ws(P,A,n,t[0]):n==1?P[e]=ws(P,t,e,A[0]):fZ(t,A,P,e,n))}function os(t,e,A,n,P){A<n?(this.a=t,this.b=e,this.c=A,this.d=n):(this.a=e,this.b=t,this.c=n,this.d=A),this.e=P}function gK(t,e,A){var n,P,r;return r=1.02*kv(t.f[1],e)+kv(t.f[0],e),n=A/r,P=w.Math.pow(n,-6),n>=1?0:2*(P*P-P)}function CP(t,e){var A,n;for(n=new Zt(t);n.a<n.c.a.length;)if(A=_t(n),cJ(A,e))return!1;return t.a.push(e),!0}function O(t,e){var A;return U0(t)&&U0(e)&&(A=t-e,!isNaN(A))?A:$T(U0(t)?Se(t):t,U0(e)?Se(e):e)}function CT(t,e){var A;t.c=e,t.a=IT(e),t.a<54&&(t.f=(A=e.d>1?Xr(e.a[0],e.a[1]):Xr(e.a[0],0),$9(e.e>0?A:V0(A))))}function U1(t){var e,A;return t>-129&&t<128?(yB(),e=t+128,A=Fc[e],!A&&(A=Fc[e]=new rh(t)),A):new rh(t)}function sn(t){var e;return e=he(t),e>gM?1/0:e<-34028234663852886e22?-1/0:e}function dK(t,e,A){var n,P;if(t.I){for(P=new Zt(t.I);P.a<P.c.a.length;)if(n=_t(P),n.Hb(e,A))return n}return null}function BK(t,e,A){var n,P;for(n=j1(ft,[DA,Dt],[13,2],6,[t.g,e],2),ut(t,7),P=0;P<t.g;P++)n[P]=CR(t,P,e,A);return n}function vK(t){var e,A;for(e=new gD,A=0;A<t.b.length;A++)Ni(e,(O1(),J0)[t.c[A]]),t.b[A]>1&&Cx(e,t.b[A]);return e.a}function cQ(t,e){return t.e[e]-n0(t,e)+xt(t,e)<=0?!1:rA(t,e)?!0:t.p[e]==0}function Yk(t,e,A){var n;for(n=0;n<t.k[e];n++)if(t.o[e][n]==2&&J(t,t.j[e][n])>6&&t.j[e][n]!=A)return!0;return!1}function FK(t,e,A,n){var P,r,i;for(P=e+1;P<A;++P)for(r=P;r>e&&n.Rb(t[r-1],t[r])>0;--r)i=t[r],t[r]=t[r-1],t[r-1]=i}function Xk(t,e,A,n,P,r){var i;this.a=A,this.b=n,this.c=P,this.d=r,i=c1t(t.o,e,A,n,P,r),this.e=i.a,this.f=i.b,this.g=i.c}function ff(t,e){this.e=e,this.a=vT(t),this.a<54?this.f=$9(t):this.c=(Ce(),O(t,0)>=0?me(t):mP(me(V0(t))))}function Zk(t,e){return Er(),N8(t)?a9(t,e):Ii(t)?ir((y1(t),t),(y1(e),e)):Fu(t)?CN((y1(t),t),(y1(e),e)):t.Sb(e)}function Us(t){return N8(t)?ft:Ii(t)?p1t:Fu(t)?R1t:T3(t)||h3(t)?t.wd:t.wd||Array.isArray(t)&&k(cE,1)||cE}function kK(t){return t>=3&&t<=4||t>=11&&t<=13||t>=19&&t<=31||t>=37&&t<=51||t>=55&&t<=84||t>=87&&t<=112}function rr(t){return t-=t>>1&1431655765,t=(t>>2&858993459)+(t&858993459),t=(t>>4)+t&252645135,t+=t>>8,t+=t>>16,t&63}function ir(t,e){return t<e?-1:t>e?1:t==e?t==0?ir(1/t,1/e):0:isNaN(t)?isNaN(e)?0:1:-1}function mK(t,e){return t.a!=e.a?t.a<e.a?-1:1:t.b!=e.b?t.b<e.b?-1:1:t.c!=e.c?t.c<e.c?-1:1:0}function wQ(t,e,A){var n,P;return n=x(t.g,t.q[e]),n.g==A?!1:(P=x(t.g,t.q[A]),P.g==e?!0:Nz(P,e))}function HT(t,e){t.e=e.e,t.c=e.c,t.b=e.b,t.a=e.a==null?null:zD(e.a,e.a.length),t.d=e.d==null?null:zD(e.d,e.d.length)}function bK(t,e){t.V!=e&&(J1(t),t.V=e,t.U=0,t.I=null,t.eb=w.Math.max(t.eb,4),P1(t.k),N1(t,new x1(t,1,!1)))}function VT(t,e){var A;return K1(t)===K1(e)?!0:Jt(e,23)?(A=e,t.e==A.e&&t.d==A.d&&VO(t,A.a)):!1}function Wk(t){var e,A;for(e=0,od(t.e),A=0;A<t.e.length;A++)(A==0||ds(t.e[A],t.e[A-1])!=0)&&++e,t.f[t.e[A].a]=e;return e}function jK(t){var e,A;if(t.$!=null)for(e=0;e<t.R.g;e++)eB(t.R,e,t.$[e]);if(t.i!=null)for(A=0;A<t.R.i;A++)Gd(t.R,A,t.i[A])}function RK(t){var e,A,n,P;for(t.a=15,P=(A=new oD(t.c).a.ad().Tb(),new UD(A));P.a.cd();)n=(e=P.a.dd(),e.jd()),_tt(n)}function pK(t){var e,A,n,P;for(e=(t.g==null&&(t.g=(P=kY(t),TY(P))),t.g),A=0,n=e.length;A<n;++A);}function _k(t){var e,A,n,P;return t.e==0?t:(e=t.d,A=e+1,n=c(B,F,6,A,15,1),YF(n,t.a,e),P=new ye(t.e,A,n),Hn(P),P)}function ET(t,e){var A,n,P,r;return A=t.F[0][e],n=t.F[1][e],P=t.K[n].a-t.K[A].a,r=t.K[n].b-t.K[A].b,w.Math.sqrt(P*P+r*r)}function $k(t,e,A){var n;return n=t.a.get(e),t.a.set(e,A===void 0?null:A),n===void 0?(++t.c,++t.b.b):++t.d,n}function yn(t,e){var A;return U0(t)&&U0(e)&&(A=t*e,N2<A&&A<UP)?A:En(Da(U0(t)?Se(t):t,U0(e)?Se(e):e))}function at(t,e){var A;return U0(t)&&U0(e)&&(A=t+e,N2<A&&A<UP)?A:En(vz(U0(t)?Se(t):t,U0(e)?Se(e):e))}function Y1(t,e){var A;return U0(t)&&U0(e)&&(A=t-e,N2<A&&A<UP)?A:En(Qk(U0(t)?Se(t):t,U0(e)?Se(e):e))}function MK(t,e,A,n){return(t.U&6)!=0&&A[1]!=n[1]?A[1]==0?-1:1:ir(e[A[0]].a+e[A[0]].b,e[n[0]].a+e[n[0]].b)}function ak(t,e,A){var n,P;for(n=e;t.k[A]==2&&t.p[A]==2&&A!=n;)P=A,A=t.j[A][0]==e?t.j[A][1]:t.j[A][0],e=P;return A==n?-1:A}function A2(t){var e,A;return t.includes(\"/csd/\")?null:(e=(A=mS[t],typeof A===hy?A:null),!e&&yO(t),new hd(e))}function gQ(t,e){var A;if(Ct(t.L,e)==0)return!1;for(A=0;A<Ct(t.L,e);A++)if(!V9(t.L,Nt(t.L,e,A)))return!1;return!0}function tm(t,e,A,n,P){var r,i;return r=l8(t,e,A,n)+l8(t,e,n,P),i=r,T2(e,A,n,P,3)?i+=r>0?4:3:T2(e,A,n,P,4)&&(i+=r>0?6:4),i}function ST(t,e,A){t.w==null&&(t.w=c(B,D0,7,t.N,0,2)),A.sort(pe(u0.prototype.ld,u0,[])),t.w[e]=A,t.U=0,t.L=!0}function CK(t,e,A){var n,P;for(P=!1,n=0;n<e.e.length;n++)if(!ZG(Xi(e.e,n))){P=!0;break}P||er(t.I,e),P1(t.k),NB(A.a)}function Df(t,e){var A,n;for(t.d[e]&&(t.d[e]=!1,--t.b),n=0;n<N(t.j,e);n++)A=Nt(t.j,e,n),t.e[A]&&(t.e[A]=!1,--t.c)}function uf(t,e){var A,n;for(n=c(B,F,6,t==null?1:t.length+1,15,1),A=0;A<n.length-1;A++)n[A]=t[A];return n[n.length-1]=e,n}function HK(t,e){var A,n,P,r;for(P=0,r=0;P<t.length&&r<e.length;){if(A=t[P],n=e[r],A==n)return!0;A<n?++P:++r}return!1}function VK(t){return t.c?(xx(\"find was already called on this matcher\"),!1):(t.c=!0,t.b=rO(t.a),!!t.b)}function em(t){if(t<f1)throw et(new I8(\"Overflow\"));if(t>Et)throw et(new I8(\"Underflow\"));return Bt(t)}function Am(t,e,A){if(t<0||e>A)throw et(new XP(eo+t+V6+e+\", size: \"+A));if(t>e)throw et(new ZP(eo+t+UM+e))}function nm(t,e,A,n,P){var r,i,f;for(vf(t,e,t.k[A],n,P),f=t.o,i=0;i<f.e[e];i++)r=f.j[e][i],f.e[r]==1&&vf(t,r,t.k[A],n,P)}function EK(t,e){var A;if(t.i==null)return!1;for(A=0;A<t.i.length;A++)if(!e.Hb(t.i[A].a,t.i[A].b))return!1;return!0}function Pm(t){var e,A;return t.w.d.a.length==0?null:(e=Jt(t,118)?kQ(t.c,t.w.d.a.length):0,A=I9(t.w,e),QU(t.w,e),A)}function n2(t){var e;return Array.isArray(t)&&t.yd===DD?yu(Us(t))+\"@\"+(e=fr(t)>>>0,e.toString(16)):t.toString()}function SK(t,e,A,n,P){var r;return r=e.a[n],!(ZD(t.b,r)||A==P||o1(e,A,n)==-1||o1(e,n,P)==-1)}function Ls(t,e,A){var n;for(n=0;n<t.g;n++)if(t.D[n]==A&&t.t[n]==0&&t.k[n]==0&&(t.t[n]=-1,t.U=0,--e,e==0))return 0;return e}function IK(t,e){var A,n,P;for(A=0,od(t.b),n=0;n<e.length;n++)(n==0||ds(t.b[n],t.b[n-1])!=0)&&++A,P=t.b[n].a,e[P]=A;return A}function rm(t){var e,A;ut(t.V,15),e=c(B,F,6,t.V.r,15,1),A=Ur(t.V,e,!1,!0),A=wa(t,e,A),h$(t,e,A),t.M=e,t.L=OR(t.V,e,A)}function im(t,e,A,n,P){this.f=e,this.a=A,this.b=n,this.c=P,this.d=ZD(t.b,e.a[n]),this.g=mF(t.a,e,A,n,P),this.e=uY(t.a,e,A,n,P)}function fm(t,e,A,n,P,r,i){GT(),this.c=OD(t,aV,this),this.d=e,this.a=-1,this.k=A,this.g=n,this.j=P,this.i=r,this.n=i,xp(this)}function Dm(){this.b=iP(\"/resources/forcefield/mmff94/pbci.csv\"),this.a=iP(\"/resources/forcefield/mmff94/bci.csv\")}function um(){um=v1,zE=m(k(ft,1),Dt,2,6,[\"none\",\"pressed\",\"released\",\"clicked\",\"entered\",\"exited\",\"moved\",\"dragged\"])}function Qm(){Qm=v1,pE=m(k(ft,1),Dt,2,6,[\"Idorsia No\",\"Actelion No\",\"ID\",\"IDNUMBER\",\"COMPOUND_ID\",\"NAME\",\"COMPND\"])}function P2(){r5();var t,e,A;A=z8t+++Date.now(),t=Bt(w.Math.floor(A*UE))&yi,e=Bt(A-t*G4),this.a=t^1502,this.b=e^Ul}function om(){if(!dl)try{gi=new $j,dl=!0}catch(t){if(t=_1(t),Jt(t,19))z1();else throw et(t)}}function Um(t,e){var A;return A=e?XK(t):OT(t),A&&t.r?(z1(),\"\"+null.zd(),!0):!1}function xK(t){var e;for(e=0;e<t.o.r;e++)if((t.a==null?NaN:t.a[e])>1e3||(t.a==null?NaN:t.a[e])>2e3)return!0;return!1}function NK(t,e){var A,n;for(A=0,n=0;n<t.a.length;n++)if(t.a[n]>e.a[n]){A=1;break}else if(t.a[n]<e.a[n]){A=-1;break}return A}function Lm(t,e){var A,n;for(n=0,ai(t,0,t.length,null),A=0;A<t.length;A++)(A==0||ds(t[A],t[A-1])!=0)&&++n,e[t[A].a]=n;return n}function GK(t){var e,A,n;for(Ya(t),n=c(gr,DA,78,fz(t),0,2),e=0,A=0;A<t.q&&e<t.i;A++)(!t.t||!t.e[A])&&(n[e++]=t.n[A]);return n}function ln(t){var e,A,n,P;for(P=t.length,e=c(_,At,6,0,15,1),n=0;n<P;)A=_m(t,n,t.length),n+=A>=Q0?2:1,sa(e,A);return e}function sm(t,e){var A,n;return n=t.d.a.length,A=tr(t,e),t.d.a.length!=n?(Ft(t.b,e),t.a=null,n):(t.a==null&&dJ(t),t.a[A])}function ym(t,e){var A,n;for(n=0;n<t.$.a.length;n++)t.v=pQ(t.v,x(t.$,n));TW(t,e),A=.1*e,t.v.c-=A,t.v.d-=A,t.v.b+=2*A,t.v.a+=2*A}function OK(t,e){var A,n;for(n=0;n<t.b.length;n++)if(A=w.Math.abs(t.b[n]-e.b[n]),A>Oy&&A<t.a[n]-Oy)return!1;return!0}function lm(t,e,A){var n,P;for(P=t.Tb();P.cd();)if(n=P.dd(),K1(e)===K1(n)||e!=null&&SP(e,n))return A&&P.ed(),!0;return!1}function qK(t){var e,A,n;return t<Yo.length?Yo[t]:(A=t>>5,e=t&31,n=c(B,F,6,A+1,15,1),n[A]=1<<e,new ye(1,A+1,n))}function IT(t){var e,A,n;return t.e==0?0:(e=t.d<<5,A=t.a[t.d-1],t.e<0&&(n=XF(t),n==t.d-1&&(--A,A=A|0)),e-=D9(A),e)}function zK(t){var e,A,n;for(A=!1,n=!1,e=0;e<t.r;e++)t.B[e]!=0&&(t.B[e]=0,A=!0,t.D[e]==1&&(n=!0));return n&&(t.U=0),A}function KK(t){var e;if(cO(t,t.a))for(e=0;e<t.u.s;e++)r0(t.u,q(t.u,0,e))&&r0(t.u,q(t.u,1,e))&&XR(t,e);else XR(t,t.a);Ej(t.u)}function hm(t,e,A,n){var P,r;for(ut(t,1),P=0;P<n;P++)for(r=0;r<t.e[e[P]];r++)if(t.j[e[P]][r]==e[P+1]){A[P]=t.n[e[P]][r];break}}function JK(t,e,A){var n,P,r;for(P=0,r=0;r<t.a.length;r++)if(n=(1-A)*t.a[r]+A/t.a.length,P+=n,e<=P)return r;return t.a.length-1}function Sn(t,e){var A,n;return A=((t.v[e]&m8)>>>27)-1,A==-1&&(A=(n=t.D[e]<wr.length?wr[t.D[e]]:null,n==null?6:n[n.length-1])),A}function YK(t,e,A){var n,P;for(n=V(A,g1),P=0;O(n,0)!=0&&P<e;P++)n=at(n,V(t[P],g1)),t[P]=Ot(n),n=G0(n,32);return Ot(n)}function hn(t,e,A,n){var P,r,i;return r=A-t,i=n-e,i!=0?(P=w.Math.atan(r/i),i<0&&(r<0?P-=l1:P+=l1)):P=r>0?HA:Qo,P}function Tm(t){var e,A,n;for(n=new M0,A=new Zt(t);A.a<A.c.a.length;)e=_t(A),G(G(n,J6+e.Lb()+'\"'+e.Kb()+Y6),nn);return n.a}function XK(t){var e,A,n;for(A=new U8,e=0;e<t.L.length;e++)n=Bj(t.L[e]),n&&(e<t.Y?(Ft(A.g,n),A.d=-1):(Ft(A.f,n),A.d=-1));return A}function me(t){Ce();var e,A;return A=Ot(t),e=Ot(b0(t,32)),e!=0?new lv(A,e):A>10||A<0?new RA(1,A):LS[A]}function nP(t){return t<3?0:t<11?1:t<19?2:t<37?3:t<55?4:0}function ZK(t,e){return t.h==B8&&t.m==0&&t.l==0?(e&&(Kn=N0(0,0,0)),_g((ti(),dc))):(e&&(Kn=N0(t.l,t.m,t.h)),N0(0,0,0))}function $0(t,e,A){A>=0&&A<=190&&(A==151||A==152?(t.D[e]=1,t.B[e]=A-149):(t.D[e]=A,t.B[e]=0),t.v[e]&=-2013265921,t.U=0)}function cm(t,e,A){var n,P;for(t.U=e,n=0;n<t.R.g;n++)t.f[n]=A[n],t.db[n]=0,t.ib[n]=!1;for(P=0;P<t.R.i;P++)t.o[P]=0,t.q[P]=!1}function xT(t){var e,A;for(A=0,e=0;e<t.length;e++)A<(zt(e,t.length),t.charCodeAt(e))&&(A=(zt(e,t.length),t.charCodeAt(e)));return A}function nt(t,e){var A,n;for(A=e,n=0;e!=0;)t.d==0&&(t.f=(t.c[++t.e]&63)<<11,t.d=6),n|=(Q0&t.f)>>16-A+e,t.f<<=1,--e,--t.d;return n}function PP(t,e,A){var n,P,r,i;for(r=e+A,Mt(e,r,t.length),i=\"\",P=e;P<r;)n=w.Math.min(P+fP,r),i+=SG(t.slice(P,n)),P=n;return i}function WK(t,e,A){var n;n=new Wr(A),ut(n,7),A6(n,!1),ut(n,7),t.k=e,t.d=n,i8(t.g.a),i8(t.i.a),i8(t.j.a),i8(t.f),i8(t.e),v_(t)}function wm(t,e,A){this.b=new Hj(this,t.a),this.c=e,this.e=A,this.d=new yh,Uh(this.d,this.b),WB(this,this.b.o,this.b.e),GF(this)}function gm(t,e,A,n,P,r,i,f,D,Q){this.i=t,this.a=e,this.f=A,this.o=n,this.c=P,this.k=r,this.j=i,this.p=f,this.d=D,this.n=Q,da(this)}function NT(t,e,A,n,P,r,i,f,D,Q){um(),FU.call(this,t,Q),this.b=e,this.c=A,this.g=n,this.i=P,this.f=r,this.d=i,this.a=f,this.e=D}function dm(t,e,A,n){c6(),this.v=OD(t,(e.v[A]&512)!=0?\"Atom Query Features (Multiple)\":\"Atom Query Features\",this),v1t(this,e,A,n)}function GT(){GT=v1,SE=m(k(ft,1),Dt,2,6,[\"None\",\"One electron (duplet)\",\"Two electrons (triplet)\",\"Two electrons (singulet)\"])}function r2(t,e){var A;if(t.f==null)e.a+=\" atoms:<null>\";else for(G(e,\" atoms:\"+t.f[0]),A=1;A<t.f.length;A++)G(e,\",\"+t.f[A])}function _K(t){var e=/^#?0\\.(0+)$/.exec(t);if(!e)throw new Error(\"unimplemented DecimalFormat with pattern \"+t);return e[1].length}function Bm(){var t;!LP&&(LP=new Yg),(LP.b&1)!=0&&LP.a!=15&&z1(),t=1&~LP.b,t!=0&&(Itt(LP,t),t==1&&RK(LP))}function $K(t){aA();var e,A,n;return n=new o7,A=(n.j=null,m6(n,new un(new Sr(t)))?n.j:null),e=n.f==null?Tu(n.j):n.f,BN(new sA(A),e)}function n9(t,e){var A;return U0(t)&&U0(e)&&(A=t%e,N2<A&&A<UP)?A:En((U6(U0(t)?Se(t):t,U0(e)?Se(e):e,!0),Kn))}function vm(t,e){var A,n,P,r;return A=e>>5,e&=31,P=t.d+A+(e==0?0:1),n=c(B,F,6,P,15,1),i5(n,t.a,A,e),r=new ye(t.e,P,n),Hn(r),r}function aK(t,e,A){var n,P,r;for(r=0,n=c(B,F,6,N(t.c,e)-1,15,1),P=0;P<N(t.c,e);P++)Z(t.c,e,P)!=A&&(n[r++]=Z(t.c,e,P));return n}function Fm(t,e,A){var n,P,r;for(r=0,n=c(B,F,6,N(t.b,e)-1,15,1),P=0;P<N(t.b,e);P++)Z(t.b,e,P)!=A&&(n[r++]=Z(t.b,e,P));return n}function km(t,e,A){var n;for(n=0;n<t.s;n++)if((t.F[0][n]==e&&t.F[1][n]==A||t.F[0][n]==A&&t.F[1][n]==e)&&t.I[n]!=512)return n;return-1}function mm(t,e){var A,n;for(n=0;n<t.g[e].length;n++)if(A=t.g[e][n],t.f[A]&&(t.o[A]==1||t.o[A]==2)&&t.k[A]==0)return!0;return!1}function Qf(t,e){var A,n;for(n=t.a.length,e.length<n&&(e=lu(new Array(n),e)),A=0;A<n;++A)e[A]=t.a[A];return e.length>n&&(e[n]=null),e}function ss(t,e){for(var A=0;!e[A]||e[A]==\"\";)A++;for(var n=e[A++];A<e.length;A++)!e[A]||e[A]==\"\"||(n+=t+e[A]);return n}function OT(t){var e,A;if((t.U&4)==0||t.L==null)return null;for(A=new U8,e=0;e<t.L.length;e++)e<t.Y?Lg(A,t.L[e]):Ug(A,t.L[e]);return A}function bm(t,e,A){for(t.j==null&&(t.j=c(Yt,t1,6,t.o.s,15,1),Bx(t.j));A<0;)A=A+360<<16>>16;for(;A>=360;)A=A-360<<16>>16;t.j[e]=A}function tJ(){var t,e;if(t=(e=sO(\"RGROUPS=\\\\((\\\\d+) (\\\\d+).*\\\\)\"),e?new d7(e):null),t)return new T7(t);throw et(new BF)}function dQ(t){var e,A;return O(t,-129)>0&&O(t,128)<0?(lB(),e=Ot(t)+128,A=kc[e],!A&&(A=kc[e]=new ih(t)),A):new ih(t)}function pA(t,e,A,n){O1();var P,r,i;return r=A-t,i=n-e,i!=0?(P=w.Math.atan(r/i),i<0&&(r<0?P-=l1:P+=l1)):P=r>0?HA:Qo,P}function eJ(t){var e;try{return zY((new MT,t.a))}catch(A){if(A=_1(A),Jt(A,19))return e=A,ur(e,(z1(),k9),\"\"),-999;throw et(A)}}function qT(t,e){U8.call(this),t!=null&&(MP(this.g,new JD(new hU(t),0,e)),MP(this.f,new JD(new hU(t),e,t.length))),this.c=jQ(this)}function ys(t,e){return t.e>e.e?1:t.e<e.e?-1:t.d>e.d?t.e:t.d<e.d?-e.e:t.e*yQ(t.a,e.a,t.d)}function AJ(t){return t>=48&&t<48+w.Math.min(10,10)?t-48:t>=97&&t<97?t-97+10:t>=65&&t<65?t-65+10:-1}function nJ(t,e){var A,n;for(A=e;A<t.length;A++){if(n=(zt(A,t.length),t.charCodeAt(A)),n==32||n==9)return-1;if(n==61)return A}return-1}function PJ(t,e){var A,n,P,r;return n=t.a.length-1,A=e-t.b&n,r=t.c-e&n,P=t.c-t.b&n,jd(A<P),A>=r?(Zz(t,e),-1):(Xz(t,e),1)}function jm(t,e){var A,n;for(n=t.a.length,e.length<n&&(e=lu(new Array(n),e)),A=0;A<n;++A)e[A]=t.a[A];return e.length>n&&(e[n]=null),e}function zT(t,e){var A;if(e==null||e.length==0)return null;for(A=2;A<e.length-2;A++)if(e[A]==32)return Bs(t,e,e,A+1);return Bs(t,e,null,0)}function rJ(t){var e;return e=typeof t,e1(e,m2)||e1(e,s9)||e1(e,Mf)?!0:t!=null&&t.$implements__java_lang_Comparable}function P9(t,e){return y1(t),e==null?!1:e1(t,e)?!0:t.length==e.length&&e1(t.toLowerCase(),e.toLowerCase())}function Rm(){Rm=v1,kE=m(k(B,2),D0,7,0,[m(k(B,1),F,6,15,[0,0,1]),m(k(B,1),F,6,15,[0,2,3]),m(k(B,1),F,6,15,[1,3,3])])}function r9(){r9=v1,Uc=new vD(\"ONE_ONE\",0),sc=new vD(\"ONE_TWO\",1),Lc=new vD(\"ONE_THREE\",2),wi=new vD(\"ONE_FOUR\",3),Y2=new vD(\"ONE_X\",4)}function pm(t,e,A){this.s=OD(t,r0(e,e.F[0][A])&&r0(e,e.F[1][A])?\"Bond Query Features (Multiple)\":\"Bond Query Features\",this),A1t(this,e,A)}function iJ(t,e){e=e||{};var A=(typeof e.maxSphereSize===mo?5:e.maxSphereSize)|0,n=(typeof e.type===mo?0:e.type)|0;return $X(t,A,n)}function fJ(t,e){t.a=e;var A=t.Kc(),n=t;function P(){n.Jc()}function r(){n.Ic()}var i={fireOk:P,fireCancel:r};A.setEventConsumer(i)}function xe(t){g6();var e;if(!isNaN(t)&&!isFinite(t)||isNaN(t))throw et(new _P(\"Infinite or NaN\"));Ztt(this,(e=t,e.toPrecision(20)))}function DJ(t){var e;return a3(t.Vb(),(e=aB(new Cw,LF(new Mw,new pw,new Gw,m(k(Il,1),_e,96,0,[(lQ(),Xo)]))),m3(e,new Hw)))}function uJ(){var t,e;if(K2==null)for(e=new WA(!1),K2=c(gr,B9,26,F9.length,0,1),t=0;t<F9.length;t++)K2[t]=tf(e,F9[t]),ut(K2[t],1)}function Mm(t){Ce(),t.length==0?(this.e=0,this.d=1,this.a=m(k(B,1),F,6,15,[0])):(this.e=1,this.d=t.length,this.a=t,Hn(this))}function of(t,e){var A,n;for(A=0,n=0;n<t.k[e];n++)t.o[e][n]==2&&(J(t,t.j[e][n])==7||J(t,t.j[e][n])==8||J(t,t.j[e][n])==16)&&++A;return A}function Cm(t,e,A){var n,P,r,i,f;for(P=0,i=0,f=0;f<t.g[e].length;f++)n=t.g[e][f],t.k[n]==A&&(r=1<<t.j[n],(i&r)==0&&(i|=r,++P));return P}function ls(t,e){var A,n,P,r,i;for(i=0,n=1,r=new Zt(t.a);r.a<r.c.a.length;)P=_t(r),A=P.dc(e,null,\"\"+n,!1),A!=0&&(i+=A,++n);return i}function BQ(t){this.j=t&-4,this.q=t&3,this.o=(t&32)!=0,this.e=(t&64)!=0,this.i=(t&8)!=0,this.d=2,(t&4)!=0&&(this.d|=1),this.i&&(this.d&=-3)}function QJ(t,e,A,n){var P,r;if(t.d.length>t.c.length)for(P=0;P<t.a;P++)A[n+P]=t.c[P];else for(r=x(t.b,e),P=0;P<t.a;P++)A[n+P]=t.c[r[P]]}function oJ(t,e,A,n){var P,r;if(t.d.length<=t.c.length)for(P=0;P<t.a;P++)A[n+P]=t.d[P];else for(r=x(t.b,e),P=0;P<t.a;P++)A[n+P]=t.d[r[P]]}function Hm(t,e){var A,n;if(A=!0,t.a.length!=e.a.length)return!1;for(n=0;n<t.a.length;n++)if(t.a[n]!=e.a[n]){A=!1;break}return A}function UJ(t,e){var A,n,P;if(n=sr(t),P=sr(e),n==-1||P==-1||(n+P&1)==0)return 3;switch(A=0,n+P){case 3:case 7:A=2;break;case 5:A=1}return A}function LJ(t,e){var A,n,P;if(n=sr(t),P=sr(e),n==-1||P==-1||(n+P&1)==0)return 3;switch(A=0,n+P){case 3:case 7:A=1;break;case 5:A=2}return A}function sJ(){var t;return Oo!=0&&(t=Date.now(),t-iS>2e3&&(iS=t,qo=w.setTimeout(Hx,10))),Oo++==0?(kq((Rh(),wc)),!0):!1}function Pi(t){switch(O1(),t){case 7:case 8:case 9:case 15:case 16:case 17:case 33:case 34:case 35:case 52:case 53:return!0}return!1}function Vm(t,e,A,n){var P;P=new hs(t,e),mL(P,A,dt(e,A)==1?2:3),mL(P,n,dt(e,n)==2?1:2),t.g[A]=!0,t.g[n]=!0,Yi(t.e,P)&&cL(t.d,P)}function yJ(){var t,e;if(Rl==null&&Rl==null){for(t=c(O1t,e0,203,xo.length,0,1),e=0;e<xo.length;e++)t[e]=new $p(xo[e][0],xo[e][1]);Rl=t}}function HP(t){var e;if(t<Bi.length)return Bi[t];for(e=new M0;t>=Bi.length;)G(e,Bi[Bi.length-1]),t-=Bi.length-1;return G(e,Bi[t]),e.a}function lJ(t,e){var A,n;for(n=new w3(t.a.length),A=0;A<t.a.length;A++)n.a[A]=t.a[A]|e.a[A];return n.a.length==1?n.b=n.a[0]:n.b=Mu(n.a),n}function hJ(t,e){var A,n;for(n=!0,A=0;A<t.c.length;A++)(gt(V(Wn(e.c[A]),t.c[A]),0)||gt(V(e.b[A],t.c[A]),t.b[A]))&&(n=!1);return n}function TJ(t,e){var A,n;for(n=!0,A=0;A<t.c.length;A++)(gt(V(Wn(t.c[A]),e.c[A]),0)||gt(V(t.b[A],e.c[A]),e.b[A]))&&(n=!1);return n}function Em(t,e){var A,n,P;for(P=0,n=0;n<t.length;n++){for(A=t[n];e[P]<A;)if(++P,P==e.length)return!1;if(e[P]>A)return!1}return!0}function cJ(t,e){var A,n,P;if(e.e.length!=t.e.length)return!1;for(n=Uk(t),P=Uk(e),A=0;A<n.length;A++)if(n[A]!=P[A])return!1;return!0}function vQ(t,e){var A,n;if(Ju(e,t.b),e>=t.b>>1)for(n=t.c,A=t.b;A>e;--A)n=n.b;else for(n=t.a.a,A=0;A<e;++A)n=n.a;return new tB(t,e,n)}function Sm(t,e){var A,n,P,r;for(n=0,P=0,r=0,A=0;A<t.V.r;A++)(!e||r0(t.V,A))&&(P+=mt(t.V,A),r+=Rt(t.V,A),++n);return n>1?new Hg(P/n,r/n):null}function wJ(t,e){pf();var A,n,P,r;for(r=0,n=0,P=0,A=0;A<t.length;A++)r+=rr(t[A]&e[A]),n+=rr(t[A]),P+=rr(e[A]);return r/w.Math.sqrt(n*P)}function gJ(t,e,A,n){var P,r,i;for(r=0,i=0;i<t.i[e].length;i++)if(P=(1-n)*t.e[e][i]+n/t.i[e].length,r+=P,A<=r)return i;return t.i[e].length-1}function Im(t,e,A,n){var P;for(P=0;P<A.length;P++)A[P]||(A[P]=!0,n[e]=P,e+1==n.length?Ft(t.b,Cn(n,n.length)):Im(t,e+1,A,n),A[P]=!1)}function xm(t,e,A){var n,P,r,i;for(i=i=c(Pt,it,6,t.r,16,1),r=xZ(t,e,A,i),P=c(B,F,6,r,15,1),r=0,n=0;n<t.r;n++)i[n]&&(P[r++]=n);return P}function VP(t,e,A){this.j=t,this.i=A,this.e=c(B,F,6,e,15,1),this.k=c(B,F,6,e,15,1),this.a=c(Ut,Tt,6,e,15,1),this.b=c(Ut,Tt,6,e,15,1)}function Nm(t){this.b=-1,this.a=c(B,F,6,t.length,15,1),PA(t,0,this.a,0,t.length),this.a.length==1?this.b=this.a[0]:this.b=Mu(this.a)}function dJ(t){var e,A,n,P;for(t.a=c(B,F,6,t.d.a.length,15,1),e=0,P=new Zt(t.b);P.a<P.c.a.length;)n=_t(P),t.a[A=u9(t,n),A<0?-1:A]=e++}function BJ(t,e){var A,n,P;for(t.c=e,P=new Zt(t.g);P.a<P.c.a.length;)A=_t(P),Be(A,e);for(n=new Zt(t.f);n.a<n.c.a.length;)A=_t(n),Be(A,e)}function hs(t,e){var A;for(this.b=t,this.a=c(B,F,6,(t.i.i+15)/16|0,15,1),A=0;A<t.i.i;A++)this.a[A>>4]|=w.Math.min(3,dt(e,A))<<2*(A&15)}function vJ(t){var e,A,n,P,r;for(A=aZ(new FP(238,238,238)),n=yi&A.a,P=0;P<_U(t);P++)for(r=0;r<aU(t);r++)e=RB(t,P,r),eL(t,P,r,(qn&e)+n)}function KT(t,e){var A,n,P,r;return A=e/2|0,P=t<0,t=w.Math.abs(t),r=e/32|0,n=w.Math.min(A-1,Ot(E1(w.Math.round(t*A/(t+r))))),P?A+n:n}function Gm(t,e,A){var n;return n=e==0?k0+t[0]-t[t.length-1]:t[e]-t[e-1],A>K6&&A<fA?n-=2*w.Math.cos(A+C2):n-=.5*w.Math.cos(A+C2),n}function Ts(t,e){var A;return e==null||!Jt(e,28)?!1:(A=e,w.Math.abs(A.a-t.a)+w.Math.abs(A.b-t.b)+w.Math.abs(A.c-t.c)<1e-6)}function Om(){Om=v1,Co=m(k(Pt,1),it,6,16,[!1,!1,!1,!1,!1,!0,!0,!0,!0,!1,!1,!1,!1,!1,!1,!0,!0])}function FJ(t,e){return N8(t)?!!hE[e]:t.xd?!!t.xd[e]:Ii(t)?!!lE[e]:Fu(t)?!!yE[e]:!1}function FQ(t,e){switch(e){case 0:return qY(t,!1);case 1:return kJ(t);case 2:return aY(t);case 3:return OJ(t);case 4:return gY(t)}return null}function qm(t){var e;e=t.R.c*(t.r!=0?t.r:G8(t.L)),t.Y=e*C1t,t.T=e*M1t,t.S=e*.38,t.W=e*.47,t.X=Bt(e*t.J*H1t+.5),t.V=e*.12,t.Z=e*.4,t.A=e*.5+.5}function kJ(t){try{return t=an(t),Ms(t),Me(new bA(t))}catch(e){if(e=_1(e),Jt(e,27))return z1(),null;throw et(e)}}function JT(t,e){var A;A=vQ(t,e);try{return BL(A)}catch(n){throw n=_1(n),Jt(n,147)?et(new XP(\"Can't get element \"+e)):et(n)}}function mJ(t,e){var A,n;for(n=0;n<t.b.i.i;n++)t.b.g[n]&&(A=3&t.a[n>>4]>>2*(n&15),w0(e,n,A==1?1:A==2?t.b.g[n]&&!A8(t.b.i,n)?386:2:A==3?4:16))}function bJ(t,e,A){var n,P;for(n=new bA(Qs(A,null)),Me(n),zu(n,n.jb),t.d=c(B,F,6,e.g.length,15,1),P=0;P<t.d.length;P++)t.d[P]=Cd(A,e.g[P].a)}function fr(t){return N8(t)?jT(t):Ii(t)?Bt((y1(t),t)):Fu(t)?(y1(t),t?1231:1237):T3(t)?t.ob():h3(t)?jD(t):t&&t.hashCode?t.hashCode():jD(t)}function jJ(t){var e,A;for(e=0;e<t.R.g;e++)(!t.M[e]||t.db[e]==3)&&(t.bb[e]=0);for(A=0;A<t.R.i;A++)(c1(t.R,A)!=1||t.o[A]==0||t.o[A]==3)&&(t.n[A]=0)}function RJ(t,e){var A,n;if((t.v[e]&gn)!=0){for(n=(ut(t,7),t.q),A=0;A<n.j.a.length;A++)if(x(n.k,A).length==6&&wA(n,A,e))return!0}return!1}function i2(t,e){var A,n;if(t.D[e]==7&&t.e[e]+xt(t,e)>=3){for(A=0;A<t.e[e];A++)if(n=t.j[e][A],t.D[n]==8&&t.e[n]+xt(t,n)==1)return!0}return!1}function kQ(t,e){var A,n;if(bd(e>0),(e&-e)==e)return Bt(e*Ns(t,31)*4656612873077393e-25);do A=Ns(t,31),n=A%e;while(A-n+(e-1)<0);return Bt(n)}function cs(t){var e,A;bD(this);try{if(t)for(A=new Zt(t);A.a<A.c.a.length;)e=_t(A),Ft(this,e.Gb())}catch(n){if(n=_1(n),!Jt(n,19))throw et(n)}}function tn(t,e,A){A>=-1&&A<=14&&(t.v[e]&=-2013265921,t.v[e]|=1+A<<27,t.D[e]==6&&(A==-1||A==0||A==2||A==4)&&(t.v[e]&=-49,A==2&&(t.v[e]|=16)))}function zm(t,e,A,n){var P,r,i,f;for(r=-1,i=-1,f=0;f<Ct(t.e,e);f++)if(P=Z(t.e,e,f),P==A||P==n)if(i==-1)i=f;else{r=f;break}return t.a[e][r][i]}function Km(t,e){var A,n,P,r,i;for(A=-1,n=-1,r=0;r<N(t.k,e);r++)P=Z(t.k,e,r),i=(EA(t.k,e,r)<<24)+t.a[P],!t.b[P]&&(A==-1||n<i)&&(A=r,n=i);return A}function pJ(t,e){var A,n,P,r;for(n=1,r=0;r<t.u.length;r++)n*=Fh(t.u[r],e.d[r]);for(A=Pr(t.i,e.d),P=0;P<t.v.length;P++)n*=Gh(A,P,e.i[P]);return n}function YT(t,e){var A,n,P,r;for(r=t.size(),e.length<r&&(e=lu(new Array(r),e)),P=e,n=t.Tb(),A=0;A<r;++A)P[A]=n.dd();return e.length>r&&(e[r]=null),e}function Jm(t,e){return w.Math.acos((t.a*e.a+t.b*e.b+t.c*e.c)/(w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c)*w.Math.sqrt(e.a*e.a+e.b*e.b+e.c*e.c)))}function ws(t,e,A,n){Lr();var P,r;for(P=0,r=0;r<A;r++)P=at(yn(V(e[r],g1),V(n,g1)),V(Ot(P),g1)),t[r]=Ot(P),P=b0(P,32);return Ot(P)}function rP(t,e){var A;for(A=0;A<t.w;A++)e-=16;for(e<0&&z1();e>15;)qt(t,1,1),qt(t,15,4),e-=16,++t.w;qt(t,1,1),qt(t,e,4)}function XT(){Rm(),this.c=new SA(24,29),this.i=c(B,F,6,24,15,1),this.b=c(B,F,6,2,15,1),this.e=c(B,F,6,2,15,1),this.f=c(B,F,6,2,15,1)}function MJ(t,e,A){return mN(t>=0&&t<=1114111),t>=Q0?(e[A++]=55296+(t-Q0>>10&1023)&d1,e[A]=56320+(t-Q0&1023)&d1,2):(e[A]=t&d1,1)}function CJ(t){var e;if(t.r==1)return!0;for(e=1;e<t.r;e++)if(t.K[e].a!=t.K[0].a||t.K[e].b!=t.K[0].b||t.K[e].c!=t.K[0].c)return!0;return!1}function HJ(t,e,A){var n,P;for(P=0;P<N(t.j,e);P++)if(n=Z(t.j,e,P),J(t.j,n)==8&&N(t.j,n)==1)return A&&R1(t.j,n)==0&&m0(t.j,n,-1),!0;return!1}function Ym(t,e){var A,n;for(n=0;n<t.b.length;n++)if(A=w.Math.abs(t.b[n]-e.b[n]),A>Oy&&A<t.a[n]-Oy)return A<t.a[n]/2^t.b[n]<e.b[n]?1:-1;return 0}function ZT(t,e,A,n){var P,r;for(r=0;r<t.g[e].length;r++)P=t.g[e][r],t.f[P]&&(t.o[P]==1||t.o[P]==2)&&t.k[P]==0&&(t.k[P]=n<<24>>24,t.j[P]=A<<24>>24)}function VJ(t){var e;return a3(t.Vb(),(e=aB(new xw,vq(new Sw,new Iw,new qw,new zw,m(k(Il,1),_e,96,0,[(lQ(),Vc),Xo]))),m3(e,new Nw)))}function gs(t,e){var A;if(t.k[e]==3&&e<t.g&&i0(t.q,e)&&(t.q&&e<t.g?UA(t.q,e):0)>=5){for(A=0;A<t.k[e];A++)if(oi(t,t.n[e][A]))return t.n[e][A]}return-1}function EJ(t){var e,A,n;for(A=!1,e=1;e<t.e.a.length;e++)for(n=0;n<e;n++)x(t.e,n).a>x(t.e,e).a&&(A=!A),x(t.e,n).b>x(t.e,e).b&&(A=!A);return A}function SJ(t){var e,A;for(e=0;e<t.f.r;e++)!t.b[e]&&Ct(t.f,e)==0&&(A=new VP(t.f,1,!1),t.b[e]=!0,A.e[0]=e,A.a[0]=0,A.b[0]=0,A.k[0]=0,CP(t.d,A))}function IJ(t,e){var A,n,P;return e<=22?(A=t.l&(1<<e)-1,n=P=0):e<=44?(A=t.l,n=t.m&(1<<e-22)-1,P=0):(A=t.l,n=t.m,P=t.h&(1<<e-44)-1),N0(A,n,P)}function WT(t,e,A,n,P,r,i,f){var D,Q;n&&(D=n.a[0],D&&WT(t,e,A,D,P,r,i,f),ZJ(t,A,n.c,P,r,i,f)&&e.add(n),Q=n.a[1],Q&&WT(t,e,A,Q,P,r,i,f))}function ds(t,e){var A;for(A=0;A<t.c;A++)if(gt(t.d[A],e.d[A]))return Si(t.d[A],e.d[A])?-1:1;return A0(t.d[t.c],e.d[t.c])?0:Si(t.d[t.c],e.d[t.c])?-1:1}function Xm(t,e,A){var n,P,r;for(r=e.length,n=new VP(t.f,r,!1),n.a[0]=0,n.b[0]=0,P=0;P<r;P++)n.k[P]=128-r,n.e[P]=e[P];r<8?mQ(n):L1t(t,n,e,A),CP(t.d,n)}function Zm(t,e){var A=new Array(e),n;switch(t){case 14:case 15:n=0;break;case 16:n=!1;break;default:return A}for(var P=0;P<e;++P)A[P]=n;return A}function Wm(t){var e;return e=new iD,t.a<=t.b?(e.c=t.a,e.b=t.b-t.a):(e.c=t.b,e.b=t.a-t.b),t.c<=t.d?(e.d=t.c,e.a=t.d-t.c):(e.d=t.d,e.a=t.c-t.d),e}function qt(t,e,A){for(;A!=0;)t.t==0&&((!t.r||t.v!=63)&&(t.v+=64),Ye(t.u,t.v&d1),t.t=6,t.v=0),t.v<<=1,t.v=Ot(z(t.v,V(e,1))),e=G0(e,1),--A,--t.t}function xJ(t,e,A,n,P,r,i,f,D,Q){var o;return o=_T(x5(t,e,A,n,P,r,i,f,D)),!Q&&o==-1&&(o=_T(x5(t,e,A,n,P,r,i,7,7)),o==-1&&(o=_T(x5(t,e,A,n,P,3,3,7,7)))),o}function _T(t){var e,A,n,P;for(ec||C$(),P=E0,n=q1,A=0;A<13;A++){if(e=P>=Mo.length||t<Mo[P]?-1:t==Mo[P]?0:1,e==0)return P;P=e<0?P-n:P+n,n=n/2|0}return-1}function NJ(t,e){aA();var A;return typeof e===mo&&(e=!0),typeof e===m2?A=new sA(tf(new WA(e),t)):typeof e===Mf&&(A=new sA(gz(new WA(!1),t,e))),A}function _m(t,e,A){var n,P;return n=Xi(t,e++),n>=55296&&n<=56319&&e<A&&dN(P=(zt(e,t.length),t.charCodeAt(e)))?Q0+((n&1023)<<10)+(P&1023):n}function GJ(t){var e;return t==null?!1:(e=typeof t,e1(e,m2)||e1(e,s9)||e1(e,Mf)||t.$implements__java_io_Serializable||Array.isArray(t))}function OJ(t){var e;try{return e=MR(new m5(t)),Me(new qA(e,8))}catch(A){if(A=_1(A),Jt(A,27))return z1(),null;throw et(A)}}function f2(t,e){var A,n,P;return A=t.a,n=t.b,P=t.c,t.a=A*e[0][0]+n*e[1][0]+P*e[2][0],t.b=A*e[0][1]+n*e[1][1]+P*e[2][1],t.c=A*e[0][2]+n*e[1][2]+P*e[2][2],t}function Bs(t,e,A,n){var P,r,i,f,D;return e==null?null:(uL(t,e,0),P=nt(t,4),f=nt(t,4),P>8&&(P=f),r=nt(t,P),i=nt(t,f),D=new SA(r,i),DM(t,D,e,A,n),D)}function $m(t,e,A){var n,P,r;if(t.i!=null)for(n=0;n<t.i.length;n++)r=t.p[n]*e,P=t.o[n]-A,t.i[n].a=t.k+r*w.Math.sin(P),t.i[n].b=t.n+r*w.Math.cos(P)}function qJ(t){var e,A,n,P,r,i;for(A=0,P=t.a,r=0,i=P.length;r<i;++r)n=P[r],n&&++A;for(t.b=c(B,F,6,A,15,1),A=0,e=0;e<t.a.length;e++)t.a[e]&&(t.b[A++]=e)}function j0(t,e){t.b!=e&&e>=0&&e<34&&(e!=t.b||e==20||e==33)&&(e!=19||(t.a.U&4)!=0)&&(e!=21||(t.a.U&8)!=0)&&!(e==0||e==17||e==1)&&(t.b=e,uQ(t.a,e),xD(t.n))}function zJ(t,e){switch(e){default:case 0:return FQ(t.a,0);case 1:return FQ(t.a,1);case 2:return FQ(t.a,2);case 3:return FQ(t.a,3);case 4:return FQ(t.a,4)}}function KJ(t){switch(typeof t){case Mf:return jT(t);case s9:return Bt((y1(t),t));case m2:return y1(t),t?1231:1237;default:return t==null?0:jD(t)}}function JJ(t){var e,A,n;t.b==t.c&&(n=t.a.length,A=Ez(w.Math.max(8,n))<<1,t.b!=0?(e=jN(t.a,A),EF(t,e,n),t.a=e,t.b=0):bi(t.a,A),t.c=n)}function EP(t,e,A,n,P){var r,i,f;P&&(r=t.vb(n),i=r/2+(t.wb()/8|0),f=t.wb()/2|0,(n==\"+\"||n==\"-\")&&(f=f*2/3),Ft(t.$,new lA(e-i,A-f,2*i,2*f))),t.K||t.tb(n,e,A)}function YJ(t){var e,A;for(A=!1,e=0;e<t.V.g;e++)M1(t.V,e)!=0&&Fn(t.V,e)&&(A||(J1(t),A=!0),tA(t.V,e,M1(t.V,e),!1));A&&SL(t,w.Math.max(t.eb,1))}function XJ(t,e){var A,n,P;return P=t.h-e.h,P<0||(A=t.l-e.l,n=t.m-e.m+(A>>22),P+=n>>22,P<0)?!1:(t.l=A&q0,t.m=n&q0,t.h=P&Pn,!0)}function ZJ(t,e,A,n,P,r,i){var f,D;return!(e.pd()&&(D=t.a.Rb(A,n),D<0||!P&&D==0)||e.qd()&&(f=t.a.Rb(A,r),f>0||!i&&f==0))}function D2(t,e,A,n){var P;return P=c(Ut,Tt,6,3,15,1),P[0]=t.k[n].a-t.k[A].a,P[1]=t.k[n].b-t.k[A].b,P[2]=t.k[n].c-t.k[A].c,P[0]*e[0]+P[1]*e[1]+P[2]*e[2]>0}function WJ(t,e){var A;for(A=0;A<t.j.g;A++)t.d[A]&&yf(t.j,A)==0&&(!e||J(t.j,A)==5&&R1(t.j,A)<0||J(t.j,A)==6||J(t.j,A)==14||rA(t.j,A)&&R1(t.j,A)>0)&&Df(t,A)}function ri(t){var e;return e=w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c),e==0?(z1(),t.a=1,t.b=0,t.c=0,t):(t.a/=e,t.b/=e,t.c/=e,t)}function ii(t){return O1(),!(t==1||t==6||Pi(t)||t==2||t==10||t==18||t==36||t==54||t==86||t>103)}function am(t){var e,A,n,P,r,i;for(i=iP(t),r=i.length,e=i[0].length,P=j1(B,[D0,F],[7,6],15,[r,e],2),A=0;A<r;A++)for(n=0;n<e;n++)P[A][n]=i[A][n].a;return P}function tb(t){var e;return e=0,t==2?e=1:t>=3&&t<=10?e=2:t>=11&&t<=18?e=3:t>=19&&t<=36?e=4:t>=37&&t<=54&&(e=5),(t>=21&&t<=30||t>=39&&t<=48)&&(e*=10),e}function _J(t,e){e.j==1?(t.a!=-1&&($0(t.e,t.a,t.k),O9(t.e,t.a,t.g),tn(t.e,t.a,t.j),Je(t.e,t.a,t.i),IP(t.e,t.a,t.n)),N9(t.c)):e.j==0&&(Att(t),N9(t.c))}function vs(t){var e,A;return isNaN(t)?{l:0,m:0,h:524160}:(e=(A=new ArrayBuffer(8),new Float64Array(A)[0]=t,new Uint32Array(A)),Xr(e[0]|0,e[1]|0))}function eb(t){var e,A;if(t.L){for(e=0;e<t.r;e++)if(gt(V(t.C[e],ne),0)){for(t=new Wr(t),A=e;A<t.r;A++)gt(V(t.C[A],ne),0)&&(t.D[A]=-1);ui(t)}}return t}function Ab(t,e,A,n,P,r){this.f=t,P!=0&&P!=1?this.c=!0:(this.a=e,this.b=A,this.d=r,this.e=new n1,n!=-1&&AQ(this,n,A-1),n!=-1&&P==1&&AQ(this,yo,A+1))}function y8(t,e){J1(t),U5(t.V,t.hb,t.kb,e,0,-1,0,null)&&(t.t!=-1&&(t.t=-1,N1(t,new x1(t,4,!0))),t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)))}function $J(t){var e,A,n,P,r,i;for(r=-1,i=Ge,e=0;e<t.V.r;e++)n=t.hb-mt(t.V,e),P=t.kb-Rt(t.V,e),A=w.Math.sqrt(n*n+P*P),A<24&&i>A&&(i=A,r=t.M[e]);return r}function aJ(t,e){var A,n,P;for(n=0;n<t.k[e];n++)if(t.o[e][n]!=1){for(A=t.j[e][n],P=0;P<t.k[A];P++)if(t.o[A][P]==1&&of(t,t.j[A][P])!=0)return!0}return!1}function Uf(t,e){var A,n;for(e.w=null,e.u=null,e.L=t.L,e.r=0,A=0;A<t.r;A++)Gn(t,e,A,0,0);for(e.s=0,n=0;n<t.s;n++)o9(t,e,n,0,0,t.F[0][n],t.F[1][n],!1);t.Zb(e)}function tY(t,e){var A,n;for(A=c(B,D0,7,e,0,2),n=0;n<t.length;n++)t[n]!=null&&(A[n]=c(B,F,6,t[n].length,15,1),PA(t[n],0,A[n],0,t[n].length));return A}function eY(t,e){var A,n;for(A=c(_,v9,11,e,0,2),n=0;n<t.length;n++)t[n]!=null&&(A[n]=c(_,At,6,t[n].length,15,1),PA(t[n],0,A[n],0,t[n].length));return A}function nb(t,e,A){var n,P,r,i,f;if(r=G1(t,e),n=An(t,e,r,A),i=((t.v[e]&m8)>>>27)-1,i==-1){for(f=nQ(t.D[e]),P=0;P<f.length-1&&r>f[P]+n;)++P;i=f[P]}return i+n-r}function AY(t,e){var A;if(t.b.length!=e.b.length)return t.b.length<e.b.length?-1:1;for(A=0;A<t.b.length;A++)if(t.b[A]!=e.b[A])return t.b[A]<e.b[A]?-1:1;return 0}function nY(t,e){var A,n,P;t.j||e.startsWith(\"COUNTS\")&&(A=gA(e,De(e,7)),n=L1(hA(e,7,De(e,7)),f1,Et),P=L1(hA(e,A,De(e,A)),f1,Et),t.j=new SA(n,P))}function PY(t,e){var A,n,P,r,i,f;for(i=new x0,f=t.c.length==2?t.c:t.b,n=f,P=0,r=n.length;P<r;++P)A=n[P],X8(i,e.k[A]);return WU(i,.5),ri(FB(i,Z0(e,t.f[4]))),i}function rY(t,e){var A,n;if(n=!1,t.f.t==null)for(t.f.t=c(B,F,6,e.length,15,1),A=t.f.t.length;--A>=0;)t.f.t[e[A]]=A;return n=Cp(t,e,0,n),n=Cp(t,e,1,n),n}function iY(t,e,A){var n;if(t.eb==6){if(A)for(n=0;n<t.V.r;n++)_n(t.V,n,!r0(t.V,n));U9(new a8(A?4:0),t.V),A&&l3(t.V)}$5(t.G,e,new lA(0,0,ND(t.k),Y9(t.k)),Q0|t.T)}function Pb(t,e){var A,n,P;if(x3(e),A=e/31|0,n=t.a.length,A>=n)return-1;for(P=(t.a[A]|0)&Et<<e%31;P==0;){if(++A>=n)return-1;P=t.a[A]|0}return A*31+$L(P)}function Lf(t,e,A,n){var P;if(e==0){A<0?n.a=t.T:n.a=-t.T,n.b=0;return}P=w.Math.atan(A/e),e<0&&(P+=l1),n.a=-(t.T*w.Math.sin(P)),n.b=t.T*w.Math.cos(P)}function rb(t,e){var A,n;A=vQ(t,e);try{return n=BL(A),jF(A),n}catch(P){throw P=_1(P),Jt(P,147)?et(new XP(\"Can't remove element \"+e)):et(P)}}function fY(t,e,A,n,P){var r,i,f,D;for(i=A,f=0,D=i.length;f<D;++f)r=i[f],P[t.d[r]]=at(P[t.d[r]],e[r]<<t.b[r]),n[t.d[r]]=at(n[t.d[r]],Wt(Ec[t.a[r]],t.b[r]))}function DY(t){var e=t.backingJsObject;if(e&&e.stack){var A=e.stack,n=e+nn;return A.substring(0,n.length)==n&&(A=A.substring(n.length)),A.split(nn)}return[]}function mQ(t){var e,A;for(e=l1-l1*(t.e.length-2)/t.e.length,A=1;A<t.e.length;A++)t.a[A]=t.a[A-1]+w.Math.sin(e*(A-1)),t.b[A]=t.b[A-1]+w.Math.cos(e*(A-1))}function uY(t,e,A,n,P){var r;return r=dj(t,e,A,n,P),r<0?hp(t,e,A,n,P,bj(t,e,A,n,P)):w.Math.abs(H0(t.b[r][4]))<.001?hp(t,e,A,n,P,H0(t.b[r][5])):H0(t.b[r][4])}function QY(t,e){var A,n,P,r,i;for(r=0;r<_U(t);r++)for(i=0;i<aU(t);i++)for(A=RB(t,r,i),P=A&yi,n=0;n<hc.length;n++)if(P==hc[n]){eL(t,r,i,(qn&A)+e[n]);break}}function $T(t,e){var A,n,P,r,i,f,D,Q;return D=t.h>>19,Q=e.h>>19,D!=Q?Q-D:(P=t.h,f=e.h,P!=f?P-f:(n=t.m,i=e.m,n!=i?n-i:(A=t.l,r=e.l,A-r)))}function oY(t,e,A){var n,P;if(t.k=e,t.n=A,t.i!=null)for(P=t.i.length,t.o=c(Ut,Tt,6,P,15,1),t.p=c(Ut,Tt,6,P,15,1),n=0;n<P;n++)t.o[n]=t.i[n].a,t.p[n]=t.i[n].b}function Fs(t,e){var A,n,P;if(t0(t.R,e)<2)return!1;if(N(t.R,e)==2)return!0;for(A=0,P=0;P<N(t.R,e);P++)n=Nt(t.R,e,P),eA(t.R,n)&&(A+=dt(t.R,n)-1);return A>1}function Dr(){Dr=v1,ml=new Ei(\"CREATE\",0),kl=new Ei(\"CHANGE_DIF\",1),Fl=new Ei(\"CHANGE_ABS\",2),bl=new Ei(\"REMOVE\",3),Io=new Ei(\"NO_CHANGE\",4),jl=new Ei(\"UNKNOWN\",5)}function ib(t,e){var A,n,P;return A=e.hd(),P=e.jd(),n=t.get(A),!(!(K1(P)===K1(n)||P!=null&&SP(P,n))||n==null&&!t.containsKey(A))}function UY(t,e,A){var n,P,r,i,f,D,Q;if(t.e!=null)for(r=t.e,f=0,Q=r.length;f<Q;++f)n=r[f],kd(n,e,A);if(t.b!=null)for(P=t.b,i=0,D=P.length;i<D;++i)n=P[i],kd(n,e,A)}function fb(t,e,A){var n,P,r,i,f;for(r=!0,f=x(t.g,e).a,i=Km(t,f);i!=-1;)n=Z(t.k,f,i),P=Nt(t.k,f,i),i=Km(t,n),cF(t,new Y3(n,P,f,A&&r,A&&i==-1),++e),f=n,r=!1}function Db(t,e){var A,n;if(e!=null)for(ut(t.j,1),A=0;A<t.j.g;A++)e[A]!=0&&(n=Cu(t.j,A,G1(t.j,A)),e[A]==15?n>=0&&tn(t.j,A,0):e[A]!=p3(t.j,A)&&tn(t.j,A,e[A]-n))}function aT(t){var e,A,n;if(A=new n1,e=t.e.indexOf(R0(10)),e==-1)Ft(A,t.e);else{for(n=0;e!=-1;)Ft(A,hA(t.e,n,e)),n=e+1,e=IN(t.e,10,n);Ft(A,GD(t.e,n))}return A}function SP(t,e){return N8(t)?e1(t,e):Ii(t)||Fu(t)?(y1(t),K1(t)===K1(e)):T3(t)?t.mb(e):h3(t)?zg(t,e):t&&t.equals?t.equals(e):K1(t)===K1(e)}function LY(t,e,A){var n,P;return n=c(B,F,6,4,15,1),n[0]=e.b,n[1]=e.a,n[2]=A.a,n[3]=A.b,P=YQ(t.R,n),w.Math.abs(P)<.3||w.Math.abs(P)>sM?3:P<0?2:1}function sY(t,e,A){var n,P;return n=c(B,F,6,4,15,1),n[0]=e.b,n[1]=e.a,n[2]=A.a,n[3]=A.b,P=YQ(t.R,n),w.Math.abs(P)<.3||w.Math.abs(P)>sM?3:P<0?1:2}function gA(t,e){var A;if(e==-1)return-1;for(A=e+1;A<t.length;A++)if(zt(A,t.length),t.charCodeAt(A)!=32&&(zt(A,t.length),t.charCodeAt(A)!=9))return A;return-1}function yY(t){var e,A;for(t.b=null,e=0;e<t.g.i;e++)Ru(t.g,e)&&(!t.b&&(t.b=new n1),A=new AU,A.a=q(t.g,0,e),A.b=q(t.g,1,e),A.d=t3(t.g,e),A.c=H3(t.g,e),Ft(t.b,A))}function ub(){ap();var t,e,A,n,P,r,i;for(bD(this),r=new CU,A=bE,n=0,P=A.length;n<P;++n)e=A[n],t=tf(new JP,e),ut(t,31),wX(r,t),i=new Gg(t),i.a=G8(i.b),this.a.push(i)}function bQ(t){var e,A,n;for(rm(t),jtt(new V7,OT(t)),n=c(B,F,6,t.L.length,15,1),e=0;e<t.V.r;e++)A=t.M[e],tA(t.V,e,M1(t.L[A],n[A]),M1(t.V,e)==0||Fn(t.V,e)),++n[A]}function lY(t,r){var A=DS;A||(A=Y.createElement(\"canvas\"),DS=A);var n=\"\"+t.b+\"px \"+t.a,P=A.getContext(\"2d\");P.font=n;var r=P.measureText(r);return r.width}function Qb(t,e){var A,n,P,r,i;for(r=wj(t,t.F[0][e])||wj(t,t.F[1][e])?5:3,n=0;n<2;n++)A=t.F[n][e],P=dt(t,e)+(i=Sn(t,A),i+An(t,A,i,t.D[A]))-G1(t,A),r>P&&(r=P);return r}function hY(t,e,A){var n,P,r,i,f;if(n=Nt(t.k,e,A),i=Z(t.k,e,A),t.e[n]!=0){for(f=8*t.q[e]+1,P=x(t.g,t.q[e]).c,r=0;r<P.length&&i!=P[r];r++)++f;return f}return 8*t.q[i]}function TY(t){var e,A,n,P;for(e=\"D4\",A=\"nB\",P=w.Math.min(t.length,5),n=P-1;n>=0;n--)if(e1(t[n].d,e)||e1(t[n].d,A)){t.length>=n+1&&t.splice(0,n+1);break}return t}function cY(t){var e,A,n,P;for(P=0,n=null,A=new Zt(t);A.a<A.c.a.length;)e=_t(A),P<e.b[0].e.length*e.b[1].e.length&&(P=e.b[0].e.length*e.b[1].e.length,n=e);return n}function jQ(t){var e,A,n;for(n=new Zt(t.g);n.a<n.c.a.length;)if(e=_t(n),e.L)return!0;for(A=new Zt(t.f);A.a<A.c.a.length;)if(e=_t(A),e.L)return!0;return!1}function In(t,e){var A;return U0(t)&&U0(e)&&(A=t/e,N2<A&&A<UP)?A<0?w.Math.ceil(A):w.Math.floor(A):En(U6(U0(t)?Se(t):t,U0(e)?Se(e):e,!1))}function wY(t,e){var A,n,P;for(t.g=c(B,F,6,t.k.r,15,1),A=Vj(t.k,t.g,e,!0),t.q=c(Y8t,e0,179,A,0,1),P=!0,n=0;n<A;n++)P=P&!!(t.q[n]=h1t(t.r,t.k,t.g,n));return P}function gY(t){var e;try{return t=an(t),Ms(t),e=MR(new m5(t)),Me(new qA(e,8))}catch(A){if(A=_1(A),Jt(A,27))return z1(),null;throw et(A)}}function sf(t,e,A){var n,P,r;if(P=G1(t,e),P-=An(t,e,P,t.D[e]),A&&(P-=t.e[e]-t.k[e]),r=nQ(t.D[e]),P<=r[0])return-1;for(n=1;n<r.length;n++)if(r[n]>=P)return r[n];return P}function ob(t,e,A,n,P){this.f=e,this.a=A,this.b=n,this.c=P,this.j=mF(t.a,e,A,n,P),this.g=d2(t.d,e,A,n),this.i=d2(t.d,e,P,n),this.d=_j(t.n,e,A,n,P),this.e=_j(t.n,e,P,n,A)}function Ub(t,e,A,n,P,r,i){var f,D,Q,o,L;if(o=P[r],Q=r==i-1,f=Q?n:0,L=Zm(f,o),n!=10&&m(k(t,i-r),e[r],A[r],f,L),!Q)for(++r,D=0;D<o;++D)L[D]=Ub(t,e,A,n,P,r,i);return L}function RQ(t,e){var A,n;for(A=0;A<t.s;A++)for(n=0;n<2;n++)t.F[n][A]==e&&(t.I[A]=512);fQ(t,t.A[e]),t.D[e]=-1,t.w!=null&&(t.w[e]=null),t.u!=null&&(t.u[e]=null),Rf(t),t.U=0}function dY(t,e){var A,n,P,r;for(A=t.e[e],r=c(B,F,6,A,15,1),P=0;P<A;P++)r[P]=(t.j[e][P]<<16)+P;for(r.sort(pe(u0.prototype.ld,u0,[])),n=0;n<A;n++)r[n]&=d1;return r}function BY(t,e){var A,n,P;for(P=new M0,n=0;n<t.a.a.length;n++)P.a.length!=0&&(P.a+=\"+\"),A=new bA(x(t.a,n)),G(P,Me(A)),e&&(P.a+=\" \",G(P,zu(A,!0)));return P.a}function vY(t,e){if(t.b==-1)t.a=c(z1t,e0,173,e,0,1),t.b=e,t.c=e-1;else do t.c=t.c==0?t.b-1:t.c-1;while(t.a[t.c]&&e5(t.a[t.c]));return!t.a[t.c]&&(t.a[t.c]=new nh),t.c}function t5(t,e,A){var n,P,r;for(P=t.ad().Tb();P.cd();)if(n=P.dd(),r=n.hd(),K1(e)===K1(r)||e!=null&&SP(e,r))return A&&(n=new RU(n.hd(),n.jd()),P.ed()),n;return null}function xn(t,e,A,n){V9(t.L,o1(t.L,A,n))?($1(t,-3),t.qb(e),$1(t,t.Q)):t.p[A]!=t.p[n]?lX(t,e,A,n):t.p[A]!=0?($1(t,t.p[A]),t.qb(e),$1(t,t.Q)):t.qb(e)}function yf(t,e){var A,n,P,r,i;if(!t.L||t.w==null||t.w[e]==null)return nb(t,e,t.D[e]);for(i=0,n=t.w[e],P=0,r=n.length;P<r;++P)A=n[P],i=w.Math.max(i,nb(t,e,A));return i}function Lb(){Lb=v1,p8=Bt(w.Math.round(Bt(w.Math.round((Re==-1&&(Re=globalThis.devicePixelRatio||1),Re*2))))),vn=(Re==-1&&(Re=globalThis.devicePixelRatio||1),Re*21)}function pQ(t,e){var A,n,P,r;return P=w.Math.min(t.c,e.c),r=w.Math.min(t.d,e.d),n=w.Math.max(t.c+t.b,e.c+e.b)-P,A=w.Math.max(t.d+t.a,e.d+e.a)-r,new lA(P,r,n,A)}function FY(t,e,A,n){vg();var P=sl;jt=e,T1=A,b1t=n;function r(){for(var i=0;i<P.length;i++)P[i]()}if(t)try{VS(r)()}catch(i){t(e,i)}else VS(r)()}function sb(t,e,A,n){var P,r,i;for(P=0;P<t.r;P++)(!n||(t.v[P]&512)!=0)&&(i=t.S[P]*e,r=t.R[P]-A,t.K[P].a=t.V+i*w.Math.sin(r),t.K[P].b=t.W+i*w.Math.cos(r));n&&(t.U&=7)}function e5(t){var e,A,n,P,r;if(!t.d)if(t.b==-1)t.d=!0;else{for(r=!1,A=t.a,n=0,P=A.length;n<P;++n)if(e=A[n],!e)r=!0;else if(!e5(e))return!1;t.d=!r}return t.d}function kY(t){var e,A,n,P,r,i;if(P=DY(t),r=c(QS,T0,116,0,0,1),e=0,n=P.length,n==0)return r;for(i=dp(P[0]),e1(i.d,I4)||(r[e++]=i),A=1;A<n;A++)r[e++]=dp(P[A]);return r}function yb(t,e,A){for(var n,P;A<0;)A=A+360<<16>>16;for(;A>=360;)A=A-360<<16>>16;n=e.a,A!=(t.j==null?-1:t.j[n])&&(P=A-(t.j==null?-1:t.j[n]),YW(t,e,l1*P/180),bm(t,n,A))}function MQ(t){var e,A,n;if(!t.a)return null;for(t.e||FR(t,1),e=null,n=new Zt(t.a);n.a<n.c.a.length;)A=_t(n),!A.b&&(!e||e.e>A.e)&&(e=A);return e?e.b=!0:t.a=null,e}function lb(t){var e,A,n,P;for(n=-1,P=Et,e=0;e<t.k.g;e++)t.b[e]||(A=t.a[e],se(t.k,e)&&(A+=dn),N(t.k,e)==0?A+=1056964608:A+=N(t.k,e)<<24,P>A&&(P=A,n=e));return n}function lf(t,e,A){var n,P;if(e<t.g&&i0(t.q,e)){for(P=(ut(t,7),t.q),n=0;n<P.j.a.length;n++)if(!(x(P.k,n).length!=A||!wA(P,n,e))&&t.b[n]==0)return!0}return!1}function mY(t,e){var A,n;if(n=X1(e),A=!1,n==null||!n.startsWith(\"$RXN\"))throw et(new H1(\"'$RXN' tag not found\"));return e1(n,zC)?A=Xa(t,e,!1):A=ytt(t,e,!1),A}function hb(t,e,A){if(t.f[e])return 0;if(t.a){if(Ct(t.j,e)!=3)return 0}else if(Ct(t.j,e)>3)return 0;return J(t.j,e)==6?(A&&m0(t.j,e,1),2):J(t.j,e)==5?4:0}function en(t,e,A){var n,P,r,i,f,D,Q,o;for(i=-1,P=dP(t,t.r,t.s,Bn),f=Ge,D=P*P/12,n=0;n<t.r;n++)Q=t.K[n].a,o=t.K[n].b,r=(e-Q)*(e-Q)+(A-o)*(A-o),r<D&&r<f&&(f=r,i=n);return i}function Tb(t,e){var A,n,P,r,i,f;for(n=t,P=0,r=n.length;P<r;++P)if(A=n[P],e.k[A]!=0)return!1;for(i=R1(e,t[0]),f=1;f<t.length;f++)if(R1(e,t[f])!=i)return!1;return!0}function cb(t,e,A){var n,P;return t.L.r==0?null:(t.v=Wj(t),n=t.R.c*G8(t.L),P=new iy(t.v,e,n,A),P.c==1&&P.a==0&&P.b==0?P=null:(Gu(P,t.R),Yu(P,t.v)),G5(t,e,n,A),P)}function bY(t){var e,A,n,P;for(ut(t,1),P=0,e=0;e<t.r;e++)n=t.B[e]!=0?t.B[e]:j8[t.D[e]],P+=n+xt(t,e)*j8[1],t.D[e]>=171&&t.D[e]<=190&&(A=t.e[e],A>2&&(P-=(A-2)*j8[1]));return P}function wb(t,e,A){var n,P,r,i,f,D;for(P=0,r=0;r<t.k[e];r++)if(n=t.j[e][r],n!=A){for(i=0,f=0;f<t.k[n];f++)D=t.j[n][f],D!=e&&eA(t,t.n[n][f])&&t.k[D]>2&&++i;i==2&&++P}return P}function jY(t,e){var A,n,P,r,i,f,D,Q;for(D=-1,n=0,i=0;i<2;i++)for(A=t.F[i][e],f=0;f<t.e[A];f++)P=t.j[A][f],P!=t.F[1-i][e]&&(r=t.n[A][f],Q=GQ(t,r,P),n<Q&&(n=Q,D=r));return D}function RY(t,e){var A,n,P,r,i,f;for(A=new n1,n=0;n<e.r;n++)if(e.e[n]>1)for(P=0;P<e.e[n];P++)for(i=e.j[n][P],r=P+1;r<e.e[n];r++)f=e.j[n][r],Ft(A,new im(t,e,i,n,f));return A}function pY(t,e){var A,n,P,r;for(A=1;A<e.r;A++)for(n=0;n<A;n++)!t[A][n]&&(t[A][n]=new hk(t9(A,n),(r=e.D[A],(r<(k2(),JA).length?JA[r]:2)+(P=e.D[n],P<JA.length?JA[P]:2))))}function MY(t){var e,A,n,P,r;for(r=new Ld,A=t,n=0,P=A.length;n<P;++n)e=A[n],r.a?G(r.a,r.b):r.a=new bn(r.d),Jg(r.a,e);return r.a?r.e.length==0?r.a.a:r.a.a+(\"\"+r.e):r.c}function A5(t,e){var A,n,P;return P=-1,n=-1,(t.G&128)!=0||(O8(t.L,e)&&(P=fe(t.L,e),n=OA(t.L,e)),A=gs(t.L,e),A!=-1&&(P=gP(t.L,A),n=ef(t.L,A)),P!=-1&&P!=0&&(P|=n<<8)),P}function n5(t,e,A,n,P,r,i,f){var D,Q;for(Q=1;Q<f;Q++){for(D=i[Q];D<i[Q+1];D++)A[D]=r[P[D]]+(A[n[D]]<<8);if(kR(t,e,A,n,P,i,Q),A[1]!=A[2])return!0;Q>1&&Kj(A,n,i,Q)}return!1}function gb(t,e,A){var n,P;if(A[0]=0,t[e]==43||t[e]==45){for(P=t[e],n=1,++A[0];t[e+A[0]]==P;)++n,++A[0];return n==1&&Rn(t[e+1]&d1)&&(n=t[e+1]-48,++A[0]),P==43?n:-n}return 0}function P5(t,e){var A,n,P;for(P=c(Oe,uA,6,t.d.length,15,1),n=c(Oe,uA,6,t.d.length,15,1),A=0;A<t.d.length;A++)P[A]=eq(kL(e,t.a[A]),t.e[A]),n[A]=wl[t.e[A]];return new lg(P,n)}function r5(){r5=v1;var t,e,A,n;for(Mc=c(Ut,Tt,6,25,15,1),Cc=c(Ut,Tt,6,33,15,1),n=152587890625e-16,e=32;e>=0;e--)Cc[e]=n,n*=.5;for(A=1,t=24;t>=0;t--)Mc[t]=A,A*=.5}function db(t,e){var A,n,P,r,i;for(P=-1,r=Ge,n=0;n<t.e.length;n++)i=l1*t.e[n]/180,A=w.Math.abs(e-i),A>l1&&(A=k0-A),A/=10+w.Math.sqrt(t.b[n]),r>A&&(r=A,P=n);return P}function ur(t,e,A){var n,P,r,i,f;for(pK(t),P=(t.i==null&&(t.i=c(wE,T0,27,0,0,1)),t.i),r=0,i=P.length;r<i;++r)n=P[r],ur(n,e,\"\t\"+A);f=t.e,f&&ur(f,e,A)}function CY(t,e,A){var n,P,r;if(n=A[e],n!=-1&&B0(t.a,n)!=0&&bX(t,e,n,A)){if(r=B0(t.b,e),P=B0(t.a,n),r==3){if(P==1||P==2)return 5}else if(P==3||YY(t,e,A)==(r==P))return 5}return 0}function HY(t){var e,A,n;return O(t,0)>=0?(A=In(t,Jf),n=n9(t,Jf)):(e=b0(t,1),A=In(e,5e8),n=n9(e,5e8),n=at(Wt(n,1),V(t,1))),z(Wt(n,32),V(A,g1))}function VY(t,e){Lr();var A,n;for(n=(Ce(),X2),A=t;e>1;e>>=1)(e&1)!=0&&(n=RP(n,A)),A.d==1?A=RP(A,A):A=new Mm(cR(A.a,A.d,c(B,F,6,A.d<<1,15,1)));return n=RP(n,A),n}function ks(t,e){var A,n;for(y1(e),n=t.b.a.length,Ft(t.b,e);n>0;){if(A=n,n=(n-1)/2|0,t.a.Rb(x(t.b,n),e)<=0)return Zr(t.b,A,e),!0;Zr(t.b,A,x(t.b,n))}return Zr(t.b,n,e),!0}function u2(t,e){var A,n,P,r;for(c1(t.j,e)==1&&(w0(t.j,e,2),t.k+=2),P=0;P<2;P++)for(A=q(t.j,P,e),t.d[A]=!1,r=0;r<N(t.j,A);r++)n=Nt(t.j,A,r),t.e[n]&&(t.e[n]=!1,--t.c)}function EY(t){var e,A,n,P,r;for(A=0;A<t.j.i;A++)if(dt(t.j,A)==2){for(P=0;P<2;P++)if(e=q(t.j,P,A),J(t.j,e)<=8){for(r=0;r<N(t.j,e);r++)if(n=Nt(t.j,e,r),t.e[n]){Df(t,e);break}}}}function SY(t,e){var A,n,P,r,i,f;if(!(e.length<=0||e[0]<64))for(uL(t,e,0),f=nt(t,4),P=nt(t,1)==1,r=nt(t,1)==1,A=0;A<t.g.g;A++)i=nt(t,f),n=P,P&&r&&(n=nt(t,1)==1),tA(t.g,A,i,n)}function IY(t,e,A,n,P){var r,i;for(r=0,i=0;i<P;i++)r=at(r,Y1(V(e[i],g1),V(n[i],g1))),t[i]=Ot(r),r=G0(r,32);for(;i<A;i++)r=at(r,V(e[i],g1)),t[i]=Ot(r),r=G0(r,32)}function xY(t,e,A,n,P){var r,i;if(r=A3(t.a,t.b,P),i=oL(A3(e.a,e.b,P)),n.containsKey(r)){if(A)throw et(new lU(\"Duplicate key \"+r));n.put(r,null.zd(n.get(r)))}else n.put(r,i)}function NY(t){var e,A,n;for(e=0;e<t.R.g;e++)!E9(t.R,e)&&t.db[e]==3&&iL(t.R,e,!0);for(A=0;A<t.R.i;A++)t.o[A]==3&&(n=dt(t.R,A),n==1?iL(t.R,q(t.R,0,A),!0):n==2&&w0(t.R,A,386))}function i5(t,e,A,n){var P,r,i;if(n==0)PA(e,0,t,A,t.length-A);else for(i=32-n,t[t.length-1]=0,r=t.length-1;r>A;r--)t[r]|=e[r-A-1]>>>i,t[r-1]=e[r-A-1]<<n;for(P=0;P<A;P++)t[P]=0}function d0(t,e){var A,n,P;if(e<0||e>999){G(t.a,\"  ?\");return}for(A=!1,n=0;n<3;n++)P=e/100|0,P==0?n==2||A?Ye(t.a,48):Ye(t.a,32):(Ye(t.a,48+P&d1),A=!0),e=10*(e%100)}function GY(t){var e,A,n,P,r;if(r=Up(t),!r)return null;for(kD(r,t.a),n=x(r,r.a.length-1),t.n=Hs(t.d,n),P=new n1,A=new Zt(r);A.a<A.c.a.length;)e=_t(A),Ft(P,Hs(t.d,e));return PX(P)}function Bb(t,e,A,n){GT(),this.c=OD(t,aV,this),this.d=e,this.e=A,this.a=n,this.k=J(this.e,n),this.g=we(this.e,n),this.j=G9(this.e,n),this.i=jA(this.e,n),this.n=eP(this.e,n),xp(this)}function f5(t,e,A,n,P){var r,i,f,D;for(r=-1,i=-1,D=0;D<Ct(t.e,e);D++)if(f=Nt(t.e,e,D),f==A||f==n)if(r==-1)r=D;else{i=D;break}t.a[e][i][r]==0&&(t.a[e][i][r]=P,t.d[e]+=P,++t.c[e])}function OY(t,e){var A,n,P;return P=c(B,F,6,2,15,1),o1(t,e[1],e[2])!=-1?(P[0]=e[2],P[1]=e[1]):(A=c(B,F,6,16,15,1),n=B2(t,A,e[1],e[2],15,null,null),P[0]=A[1],P[1]=A[n-1]),P}function qY(t,e){try{return e?(t=an(t),A6(t,!0),Xtt(t),Me(new bA(t))):Me(new bA(t))}catch(A){if(A=_1(A),Jt(A,27))return z1(),null;throw et(A)}}function vb(t,e,A){d6(),YB.call(this,t,e),this.j=1,this.k=10,this.n=400,this.f=400,this.i=!0,this.d=\"black\",this.b=new n1,this.a=new n1,this.c=new M0,this.e=new c3(12),this.g=A,++J2}function zY(t){var e,A,n,P,r;for(A=0,Li(t),ut(t,7),e=0;e<t.g;e++)try{r=Ly(t,e,6241),P=(n=u9(Wf,dQ(r)),n<0?-1:n),P!=-1&&(A+=yc[P])}catch(i){if(i=_1(i),!Jt(i,19))throw et(i)}return A}function R0(t){var e,A;return t>=Q0?(e=55296+(t-Q0>>10&1023)&d1,A=56320+(t-Q0&1023)&d1,String.fromCharCode(e)+(\"\"+String.fromCharCode(A))):String.fromCharCode(t&d1)}function Q2(t,e){var A;return w.Math.abs(t)>w.Math.abs(e)?(A=e/t,A=w.Math.abs(t)*w.Math.sqrt(1+A*A)):e!=0?(A=t/e,A=w.Math.abs(e)*w.Math.sqrt(1+A*A)):A=0,A}function rA(t,e){var A,n,P,r;if(t.L){if(gt(V(t.C[e],1),0))return!1;if(t.w!=null&&t.w[e]!=null){for(n=t.w[e],P=0,r=n.length;P<r;++P)if(A=n[P],!Pi(A))return!1}}return Pi(t.D[e])}function KY(t,e){var A,n,P,r;if(t.L){if(gt(V(t.C[e],1),0))return!1;if(t.w!=null&&t.w[e]!=null){for(n=t.w[e],P=0,r=n.length;P<r;++P)if(A=n[P],!ii(A))return!1}}return ii(t.D[e])}function JY(){ly();var t,e,A,n,P,r,i,f,D;for(Tl=new cP,i=W4,f=0,D=i.length;f<D;++f)for(r=i[f],P=c8(r[0],\";\"),e=P,A=0,n=e.length;A<n;++A)t=e[A],We(Tl,Pf(t.toLowerCase(),\"-\"),r[1])}function Fb(t){Cs();var e,A,n,P,r;for(ut(t,7),P=c(Pt,it,6,t.i,16,1),n=0,A=0;A<t.i;A++)Ba(t,A)&&(P[A]=!0,++n);for(r=c(B,F,6,n,15,1),n=0,e=0;e<t.i;e++)P[e]&&(r[n++]=e);return r}function YY(t,e,A){var n,P,r,i,f,D,Q;if(D=!1,t0(t.b,e)==0)for(f=1;f<N(t.b,e);f++)for(Q=0;Q<f;Q++)n=Z(t.b,e,f),P=Z(t.b,e,Q),r=A[n],i=A[P],r!=-1&&i!=-1&&r>i^n>P&&(D=!D);return D}function XY(t,e,A){var n,P,r,i,f,D,Q;if(D=!1,t0(t.g,e)==0)for(f=1;f<N(t.g,e);f++)for(Q=0;Q<f;Q++)n=Z(t.g,e,f),P=Z(t.g,e,Q),r=M1(t.g,n),i=M1(t.g,P),A[r]>A[i]^n>P&&(D=!D);return D}function D5(t,e,A){var n,P;for(P=!1,n=0;n<t.V.g;n++)M1(t.V,n)!=0&&(A&&!Fn(t.V,n)||e&&Fn(t.V,n))&&(P||(J1(t),P=!0),tA(t.V,n,0,!1));P&&(e||bQ(t),SL(t,w.Math.max(t.eb,1)))}function ms(t,e){var A,n;if(!e)return null;for(n=c(B,F,6,(F9.length+31)/32|0,15,1),e=eb(e),GA(t.g,e),A=0;A<F9.length;A++)MA(t.g,K2[A]),CA(t.g,1,4)>0&&(n[A/32|0]|=1<<31-A%32);return n}function kb(t,e){var A,n,P,r;for(A=c(B,F,6,t.k[e]-XL(t,e),15,1),r=0,P=0;P<t.k[e];P++)n=t.j[e][P],gt(V(t.C[n],ne),0)||(A[r++]=t.D[n]);return A.sort(pe(u0.prototype.ld,u0,[])),A}function bs(t,e){var A;if(t==null)return e==null?0:1;if(e==null)return-1;for(A=0;A<t.length;A++){if(e.length==A)return 1;if(t[A]!=e[A])return t[A]<e[A]?-1:1}return e.length>t.length?-1:0}function js(t,e){var A;if(t==null)return e==null?0:1;if(e==null)return-1;for(A=0;A<t.length;A++){if(e.length==A)return 1;if(t[A]!==e[A])return t[A]<e[A]?-1:1}return e.length>t.length?-1:0}function ZY(t,e,A,n){var P,r;for(r=e,P=r.c==null||t.a.Rb(A.c,r.c)>0?1:0;r.a[P]!=A;)r=r.a[P],P=t.a.Rb(A.c,r.c)>0?1:0;r.a[P]=n,n.b=A.b,n.a[0]=A.a[0],n.a[1]=A.a[1],A.a[0]=null,A.a[1]=null}function WY(t){var e,A;try{return A=new iB(t),Fj(A,4e3,Bo),ls(A,A.i)}catch(n){if(n=_1(n),Jt(n,188))return NaN;if(Jt(n,19))return e=n,ur(e,(z1(),k9),\"\"),NaN;throw et(n)}}function mb(t,e){var A,n,P,r,i;for(r=e.length,i=c(B,F,6,r,15,1),n=0;n<r;n++)for(A=n==r-1?e[0]:e[n+1],P=0;P<N(t.i,e[n]);P++)if(Z(t.i,e[n],P)==A){i[n]=Nt(t.i,e[n],P);break}return i}function Rs(t,e,A){var n,P;if((t.v[e]&gn)==0||(t.v[A]&gn)==0)return!1;for(P=(ut(t,7),t.q),n=0;n<P.j.a.length;n++)if(x(P.k,n).length==5&&wA(P,n,e)&&wA(P,n,A))return!0;return!1}function _Y(t){var e,A;return t.f||(A=new Du,t.a&&(A.a=!0),t.f=mv(A,(e=t.g.a,e)),t.f&&(t.f.Q==null||t.f.Q.length==0)&&iu(t.f,t.e!=-1&&t.c!=null?t.c[t.e]:t.f?t.f.Q:null)),t.f}function bb(){bb=v1,pl=m(k(B,1),F,6,15,[0,2,1,3]),xE=m(k(ft,1),Dt,2,6,[\"plain\",\"italic\",\"bold\",\"italics & bold\"]),IE=m(k(ft,1),Dt,2,6,[\"8\",\"9\",\"10\",\"12\",\"14\",\"18\",\"24\",\"32\"])}function $Y(t,e){var A;for(A=0;e<t.length&&(t[e]!=93||A!=0);)t[e]==91?++A:t[e]==93&&--A,++e;if(e==t.length)throw et(new H1(\"SmilesParser: No matching closing bracket found.\"));return e+1}function jb(t,e,A){return t.L!=null&&t.L[e]!=null&&t.L[e][A]?null:t.I[e]==0&&t.B[A]==0?(N(t.u,A)!=0&&(t.H[t.G[e]]=!0),N(t.D,e)!=0&&(t.A[t.w[A]]=!0),new FD(e,A)):null}function Rb(t){var e,A,n;for(n=new pL(\", \",\"[\",\"]\"),A=t.Tb();A.cd();)e=A.dd(),$v(n,K1(e)===K1(t)?\"(this Collection)\":e==null?y9:n2(e));return n.a?n.e.length==0?n.a.a:n.a.a+(\"\"+n.e):n.c}function o2(t){var e,A,n;if(cl==null){if(e=A2(\"/resources/csd/\"+t),e)return cl=\"csd/\",new un(new mi((n=e,c0(),n)));cl=\"cod/\"}return new un(new mi((A=A2(\"/resources/\"+cl+t),c0(),A)))}function aY(t){var e,A;try{for(t=an(t),Ms(t),e=t.s,A=0;A<e;A++)t.I[A]=1,t.U=0;return Me(new bA(t))}catch(n){if(n=_1(n),Jt(n,27))return z1(),null;throw et(n)}}function pb(t,e){var A,n,P,r;for(n=0,P=t.length;n<P;n++){r=t[n];try{r[1]?r[0].zd()&&(e=oG(e,r)):r[0].zd()}catch(i){if(i=_1(i),Jt(i,27))A=i,MG(Jt(A,166)?A.Nc():A);else throw et(i)}}return e}function Mb(t){var e,A,n,P,r,i,f,D;for(f=c(B,F,6,t.g,15,1),D=(ut(t,7),t.q),r=0;r<w.Math.min(32,D.j.a.length);r++)for(i=x(D.j,r),A=i,n=0,P=A.length;n<P;++n)e=A[n],f[e]|=1<<r;return f}function u5(t){var e,A,n,P;if(A=Ot(b0(t,32)),A==0)return n=Ot(t)>>>0,n.toString(16);e=c(Fr,Pe,6,17,15,1),P=17;do e[--P]=CG(Ot(t)&15),t=b0(t,4);while(O(t,0)!=0);return PP(e,P,17-P)}function G1(t,e){var A,n,P,r,i,f;for(t._b(1),i=!1,n=!1,f=0,P=0;P<t.e[e];P++)(!t.L||!se(t,t.j[e][P]))&&(r=t.o[e][P],f+=r,r>1&&(i=!0),A=t.n[e][P],t.I[A]==8&&(n=!0));return n&&!i&&++f,f}function CQ(t,e){var A,n,P,r;for(c1(t.k,e)==1&&w0(t.k,e,2),P=0;P<2;P++)for(A=q(t.k,P,e),W0(t.k,A)&&(_n(t.k,A,!1),--t.b),r=0;r<N(t.k,A);r++)n=Nt(t.k,A,r),t.g[n]&&(t.g[n]=!1,--t.c)}function Q5(t,e,A){var n,P,r,i,f;for(P=0,i=new Zt(A);i.a<i.c.a.length;)r=_t(i),r.length!=0&&(f=As(e,r).b,P<f&&(P=f));return n=t.c*lo*(A.a.length-1)+t.c,new lA(t.i[0].a,t.i[0].b-t.c/2,P,n)}function he(t){if(z4==null&&(z4=new RegExp(\"^\\\\s*[+-]?(NaN|Infinity|((\\\\d+\\\\.?\\\\d*)|(\\\\.\\\\d+))([eE][+-]?\\\\d+)?[dDfF]?)\\\\s*$\")),!z4.test(t))throw et(new _P(b2+t+'\"'));return parseFloat(t)}function o5(t){var e,A;for(A=j1(B,[DA,D0],[29,7],0,[2,32],2),e=0;e<t.R.g;e++)t.M[e]&&(t.bb[e]==1?A[0][t.ab[e]]=uf(A[0][t.ab[e]],e):t.bb[e]==2&&(A[1][t.ab[e]]=uf(A[0][t.ab[e]],e)));return A}function ps(t){var e,A,n,P;for(P=new un(new mi((A=A2(t),c0(),A))),n=new ou;;)try{if(e=X1(P),e!=null)Gs(n,e);else break}catch(r){if(r=_1(r),Jt(r,79))break;throw et(r)}return n}function tX(t){t=t||{};var e=t.ringMatchMode||iE;switch(e){case iE:return 0;case\"keepRings\":return 1;case\"keepAromaticRings\":return 2;default:throw new Error(\"invalid ring match mode: \"+e)}}function Cb(t,e){var A,n,P;return e&=63,e<22?(A=t.l<<e,n=t.m<<e|t.l>>22-e,P=t.h<<e|t.m>>22-e):e<44?(A=0,n=t.l<<e-22,P=t.m<<e-22|t.l>>44-e):(A=0,n=0,P=t.l<<e-44),N0(A&q0,n&q0,P&Pn)}function Hb(t,e){var A,n,P,r,i;if(e1(t.a,\"Helvetica\")){for(r=0,n=0,P=e.length;n<P;n++)A=(zt(n,e.length),e.charCodeAt(n)),r+=(A<128?i=uS[A]:i=FA,i*t.b/20);return r}else return lY(t,e)}function Vb(t,e,A){var n,P,r,i;return P=t.c[A][0]*l1/180,r=t.c[A][1]*l1/180,i=t.e[A]*l1/180,e<i-l1?e+=k0:e>i+l1&&(e-=k0),n=(i-e)/(i-(e<i?P:r)),n<1?0:n<2?(n-=1,n*n):1}function eX(t,e){var A,n,P,r,i;if(t.e!=null)for(A=t6(t)/t.p.c,P=t.e,r=0,i=P.length;r<i;++r)n=P[r],lI(n,t.f),n.r=A/n.R.c,T6(n,e);if(t.b!=null)for(P=t.b,r=0,i=P.length;r<i;++r)n=P[r],T6(n,e)}function De(t,e){var A,n,P,r;for(A=!1,P=!1,n=e;n<t.length;n++)if(r=(zt(n,t.length),t.charCodeAt(n)),r==40?A=!0:r==41?A=!1:r==34&&(P=!P),!A&&!P&&(r==32||r==9))return n;return-1}function Ms(t){var e,A;for(ut(t,15),t.M=!1,e=0;e<t.r;e++)t.v[e]&=Cy,(t.v[e]&3)!=0?t.v[e]|=Uo:t.v[e]&=My;for(A=0;A<t.s;A++)(t.G[A]&3)!=0&&dt(t,A)==2?t.I[A]=386:t.I[A]&=-385;t.U&=-249}function AX(t){HU();var e,A,n,P;for(N5(t,1),n=t.r,A=c(ft,Dt,2,n,6,1),e=0;e<n;e++)P=an(t),IP(P,e,(O1(),J0)[P.D[e]]+\"*\"),P.D[e]==1?$0(P,e,Ac):O9(P,e,P.B[e]+5),WO(P),A[e]=Me(new qA(P,8));return A}function HQ(t,e,A,n,P){var r;n|=f1,r=IF(A),n!=-1&&(nA(e,n),K3(e,r[0],r[1],vn,vn)),A==20?rs(e,t.c,0,t.d*84,84,84,r[0],r[1],vn,vn):rs(e,P?t.g:t.i,(r[0]-p8)*t.j,(r[1]-p8)*t.j,84,84,r[0],r[1],vn,vn)}function U2(t,e){var A,n,P,r;for(P=!1,n=0;n<t.R.i;n++)aQ(t,n,1)&&(t.q[n]=t.L,e&&L_(t,n),P=!0);for(r=!1,A=0;A<t.R.g;A++)oy(t,A,1)&&(t.ib[A]=t.L,e&&Aa(t,A),r=!0);return r&&(t.L=!t.L),P||r}function i9(t,e){return t.r>=t.N&&EQ(t,t.N*2),t.D[t.r]=0,$0(t,t.r,e),t.t[t.r]=0,t.v[t.r]=0,t.C[t.r]=0,t.A[t.r]=0,VU(t.K[t.r],0,0,0),t.w!=null&&(t.w[t.r]=null),t.u!=null&&(t.u[t.r]=null),t.U=0,t.r++}function nX(t){var e,A,n,P,r;for(r=new vU(t.g,t.f),P=c(B,F,6,t.g.r,15,1),A=0;A<t.g.r;A++)P[A]=M1(t.g,A);for(n=c(B,F,6,t.f.r,15,1),e=0;e<t.f.r;e++)n[e]=M1(t.f,e);return-ny(r,w5(r,P,n))*.25}function PX(t){var e,A,n,P,r,i;for(i=new Gr,n=new Bv(t),e=n.b-1;e>=0;e--)for(P=JT(n,e),A=0;A<n.b;A++)if(e!=A&&(r=JT(n,A),P.g<r.g&&(GA(i,r),MA(i,P),CA(i,1,i.c)>0))){rb(n,e);break}return n}function rX(t){switch(this.c=!1,this.b=!1,t){case 1:this.c=!0;break;case 2:this.b=!0}this.g=new UU,this.i=new UU,this.j=new UU,this.o=new Gr,this.a=new ru,this.f=new Yn,this.e=new Yn}function fi(t){var e,A,n,P;for(P=new un(new mi((n=A2(t),c0(),n))),e=new n1;;)try{if(A=X1(P),A!=null)e.a.push(A);else break}catch(r){if(r=_1(r),Jt(r,79))break;throw et(r)}return e}function iX(t,e){var A,n,P;for(A=c(B,F,6,t.e.length,15,1),P=0;P<t.e.length;P++)n=Wt(Ec[t.a[P]],t.b[P]),gt(V(e.c[t.d[P]],n),0)?A[P]=Ot(G0(V(e.b[t.d[P]],n),t.b[P])):A[P]=-1;return A}function fX(t,e){s8();var A,n,P,r;for(n=c(Pt,it,6,e.r,16,1),A=0;A<e.g;A++)if(!n[A]&&e.p[A]==2&&e.D[A]<=8){for(P=f_(A,e),r=0;r<P.length;r++)n[P[r]]=!0;P[0]!=P[P.length-1]&&Ft(t,new fg(P))}}function U5(t,e,A,n,P,r,i,f){var D,Q;return D=en(t,e,A),D==-1?(t.r>=t.N&&EQ(t,t.N*2),D=i9(t,n),VU(t.K[D],e,A,0),t.B[D]=P,tn(t,D,r),Je(t,D,i),IP(t,D,f),!0):(Q=mf(t,D,n,P,r,i),Q=Q|IP(t,D,f),Q)}function Eb(t,e,A,n){var P,r,i,f;for(ut(e,1),r=0;r<A;r++)n[r]!=-1&&t.D[r]!=1&&t.e[r]!=Ct(e,n[r])&&(P=sf(t,r,!1),P!=-1&&(f=sf(e,n[r],!1),P!=f&&(i=G9(e,n[r]),(i==-1||i<P)&&tn(e,n[r],P))))}function DX(t,e,A){var n,P,r;for(r=0;r<t.e.length;r++)P=w.Math.sqrt((t.a[r]-e)*(t.a[r]-e)+(t.b[r]-A)*(t.b[r]-A)),n=0-hn(e,A,t.a[r],t.b[r]),t.a[r]=e+P*w.Math.sin(n),t.b[r]=A+P*w.Math.cos(n)}function uX(t,e,A){var n,P,r,i,f;return r=(P=t/e,P>0?w.Math.floor(P):w.Math.ceil(P)),i=t%e,f=ir(t*e,0),i!=0&&(n=ir(w.Math.abs(i)*2,w.Math.abs(e)),r+=KQ(Bt(r)&1,f*(5+n),A)),new y3(r)}function L5(t,e){var A,n,P;for(xr.call(this,t),A=0,P=0;P<t.length;P++)e.k[t[P]]!=1&&++A;if(A>2)for(this.a=c(B,F,6,A,15,1),A=0,n=0;n<t.length;n++)e.k[t[n]]!=1&&(this.a[A++]=t[n]);else this.a=t}function Di(t,e,A,n,P,r){var i,f,D,Q;for(D=0,f=0;f<t.R.i;f++)(ie(t.R,t.C[f])&n)!=0&&++D;if(D!=0)for(rP(t,e),qt(t,D,A),i=0;i<t.R.i;i++)Q=ie(t.R,t.C[i])&n,Q!=0&&(qt(t,i,A),P!=1&&qt(t,Q>>r,P))}function s5(t,e){var A,n,P;if(t.w==null||t.w[e]==null)return gt(V(t.C[e],1),0)?\"\":J0[t.D[e]];for(P=\"\",n=0;n<t.w[e].length;n++)n>0&&(P=(y1(P),P+(y1(\",\"),\",\"))),A=t.w[e][n],P=Su(P,J0[A]);return P}function hf(t){var e,A,n,P;for(ut(t,7),n=0;n<t.i;n++)(t.I[n]==257||t.I[n]==129)&&(t.I[n]=1);for(e=0;e<t.g;e++)Uy(t,e);for(P=0;P<t.i;P++)bp(t,P);for(A=0;A<t.i;A++)t.I[A]==2&&(t.G[A]&3)==3&&(t.I[A]=386)}function QX(t,e,A){var n,P,r;if(e.c!=null)for(P=0;P<e.c.length;P++)for(r=0;r<N(t.k,e.a);r++)e.c[P]==Z(t.k,e.a,r)&&(n=Nt(t.k,e.a,r),e.d[P]||Rp(t,n,e.a,A),t.e[n]>9&&(A.a+=\"%\"),Hh(A,t.e[n]))}function oX(t,e){var A,n,P,r,i;if(t.i.L){if(gt(V(l0(t.i,e),1),0))return!1;if(A=IA(t.i,e),A!=null){for(P=A,r=0,i=P.length;r<i;++r)if(n=P[r],!Pi(n))return!1;return!0}}return Pi(J(t.i,e))}function Sb(t,e,A,n,P){var r,i,f;for(r=!0,i=0;i<n;i++)r=r&A[i]==0;if(P==0)PA(A,n,t,0,e),i=e;else{for(f=32-P,r=r&A[i]<<f==0,i=0;i<e-1;i++)t[i]=A[i+n]>>>P|A[i+n+1]<<f;t[i]=A[i+n]>>>P,++i}return r}function UX(t){var e,A;(t.G&32)==0&&(A=QR(t.L),A!=null&&(t.w.a==0&&t.w.b==0&&(e=t.R.c*G8(t.L),t.v=Wj(t),ym(t,e),G5(t,null,e,0)),t.Cb(Bt(t.A)),t.L.P!=1&&$1(t,448),t.tb(A,t.w.a,t.w.b+Hf*t.A)))}function Ib(t){var e,A,n;if(bD(this),!(t==null||t.length==0))for(e=0,A=t.indexOf(R0(10));A!=-1;)n=XZ((Mt(e,A,t.length),t.substr(e,A-e))),n&&this.a.push(n),e=A+1,A=t.indexOf(R0(10),e)}function LX(t,e,A){var n,P;switch(P=A&127,n=Qb(t,e),P){case 1:case 8:return n>=1;case 2:return n>=2;case 4:return n>=3;case 32:return n>=4;case 64:return n>=5;case 16:return!0;default:return!1}}function Tf(t,e,A,n){var P,r,i;for(i=0;i<t.e.length;i++)r=w.Math.sqrt((t.a[i]-e)*(t.a[i]-e)+(t.b[i]-A)*(t.b[i]-A)),P=hn(e,A,t.a[i],t.b[i])+n,t.a[i]=e+r*w.Math.sin(P),t.b[i]=A+r*w.Math.cos(P)}function y5(t,e){var A,n,P;return n=e.g-p8,P=e.i-p8,n<0||n>=2*vn||P<0||P>=17*vn?-1:(A=17*Bt(n/vn)+Bt(P/vn),A>=0&&A<34&&(A!=t.b||A==20||A==33)&&(A!=19||(t.a.U&4)!=0)&&(A!=21||(t.a.U&8)!=0)?A:-1)}function sX(t){var e;t.c==null&&(e=K1(t.b)===K1(cc)?null:t.b,t.d=e==null?y9:zF(e)?e==null?null:e.name:N8(e)?\"String\":yu(Us(e)),t.a=t.a+\": \"+(zF(e)?e==null?null:e.message:e+\"\"),t.c=\"(\"+t.d+\") \"+t.a)}function yX(t,e){var A,n,P,r;return e&=63,A=t.h&Pn,e<22?(r=A>>>e,P=t.m>>e|A<<22-e,n=t.l>>e|t.m<<22-e):e<44?(r=0,P=A>>>e-22,n=t.m>>e-22|t.h<<44-e):(r=0,P=0,n=A>>>e-44),N0(n&q0,P&q0,r&Pn)}function lX(t,e,A,n){var P,r;P=new h1,r=new h1,P.a=e.a,P.c=e.c,P.b=(e.a+e.b)/2,P.d=(e.c+e.d)/2,r.a=P.b,r.c=P.d,r.b=e.b,r.d=e.d,vA(t,P)&&($1(t,t.p[A]),t.qb(P)),vA(t,r)&&($1(t,t.p[n]),t.qb(r)),$1(t,t.Q)}function xb(t,e,A){var n,P;return n=en(t,e,A),n!=-1?((t.v[n]&512)!=0?LQ(t):RQ(t,n),t.U=0,!0):(P=kf(t,e,A),P!=-1?((t.v[t.F[0][P]]&t.v[t.F[1][P]]&512)!=0?LQ(t):h5(t,P),t.U=0,!0):!1)}function Nb(t,e,A){var n,P,r;for(t.V=e,t.W=A,t.R=c(Ut,Tt,6,t.r,15,1),t.S=c(Ut,Tt,6,t.r,15,1),n=0;n<t.r;n++)P=e-t.K[n].a,r=A-t.K[n].b,t.S[n]=w.Math.sqrt(P*P+r*r),t.R[n]=pA(e,A,t.K[n].a,t.K[n].b)}function Gb(t,e){var A,n,P,r;for(r=c(B,F,6,t.k[e]-XL(t,e),15,1),P=0,n=0;n<t.k[e];n++)A=t.j[e][n],gt(V(t.C[A],ne),0)||(r[P++]=w.Math.abs(t.A[A]));return r.sort(pe(u0.prototype.ld,u0,[])),r}function Ob(t,e){var A,n,P,r,i;if(A=-1,t.p[e]==1){for(r=0;r<t.k[e];r++)if(t.o[e][r]==2){if(n=t.j[e][r],t.k[n]==2&&t.p[n]==2){for(i=0;i<2;i++)if(P=t.j[n][i],P!=e&&t.p[P]==1){A=n;break}}break}}return A}function hX(t,e){var A,n,P,r,i;for(i=new n1,r=0;r<e.r;r++)e.e[r]==3&&(A=e.j[r][0],n=e.j[r][1],P=e.j[r][2],Ft(i,new ns(t,e,r,A,n,P)),Ft(i,new ns(t,e,r,A,P,n)),Ft(i,new ns(t,e,r,n,P,A)));return i}function X1(t){var e,A,n;if(A=IL(t),A==-1)return null;for(n=new M0,e=!1;!e;)if(A==10?e=!0:A==13&&(e=!0,A=IL(t),A!=10&&(t.a=A)),!e){if(A==-1)break;Ye(n,A&d1),A=IL(t)}return n.a}function TX(t,e,A){var n,P,r,i,f,D;if(D=x(t.b,e),t.d.length<=t.c.length)for(f=0;f<t.a;f++)A[t.d[f]]=t.c[D[f]];else{for(P=t.d,r=0,i=P.length;r<i;++r)n=P[r],A[n]=-1;for(f=0;f<t.a;f++)A[t.d[D[f]]]=t.c[f]}}function cX(t){return t.K++==64?!1:t.i?e5(t.i.b)?!1:(bU(t.I,0),bU(t.B,0),Bh(t.H),Bh(t.A),qb(t),jI(t.i),t.q=iR(t),t.g=7,t.c=0,t.d=0,t.e=0,t.f=0,!0):(t.i=new Fd,!0)}function p(t,e,A){var n=jo,P=n[t],r=P instanceof Array?P[0]:null;P&&!r?U=P:(U=Az(e),U.xd=A,!e&&(U.yd=DD),n[t]=U);for(var i=3;i<arguments.length;++i)arguments[i].prototype=U;r&&(U.wd=r)}function l5(t,e){var A,n;if((t.G&4224)!=0||(n=A5(t,e),n==-1&&(A=Ob(t.L,e),A!=-1&&(e=A,n=A5(t,e))),n==-1))return t.p[e];switch(n&255){case 1:return 384;case 2:return 64;default:return 448}}function h5(t,e){var A,n,P;for(n=0;n<2;n++){for(A=0,P=0;P<t.s;P++)P!=e&&(t.F[0][P]==t.F[n][e]||t.F[1][P]==t.F[n][e])&&++A;A==0&&(fQ(t,t.A[t.F[n][e]]),t.D[t.F[n][e]]=-1)}t.I[e]=512,Rf(t),t.U=0}function wX(t,e){var A,n;if(!e)return null;for(n=c(XA,Pe,6,(F9.length+63)/64|0,14,1),e=eb(e),GA(t.g,e),A=0;A<F9.length;A++)MA(t.g,K2[A]),CA(t.g,1,4)>0&&(n[A/64|0]=z(n[A/64|0],Wt(1,63-A%64)));return n}function gX(t,e,A,n){var P,r,i,f;for(f=c(B,F,6,t.o[e].g,15,1),zr(f,f.length,-1),r=C9(t.c,e),P=0;P<r.g;P++)A[P]!=-1&&(f[A[P]]=w.Math.abs(r.A[P]));for(i=0;i<f.length;i++)f[i]==-1&&(f[i]=n++);return f}function qb(t){var e,A,n,P,r,i,f,D,Q;for(Q=t.F.g,t.J=Cn(Q,Q.length),e=t.v.g,t.C=Cn(e,e.length),P=t.J,i=0,D=P.length;i<D;++i)A=P[i],t.o<A&&(t.o=A);for(n=t.C,r=0,f=n.length;r<f;++r)A=n[r],t.n<A&&(t.n=A)}function dX(t,e){var A,n,P,r,i,f,D,Q,o;if(t==null)return e;for(o=c(B,F,6,t.length+e.length,15,1),Q=0,P=t,i=0,D=P.length;i<D;++i)A=P[i],o[Q++]=A;for(n=e,r=0,f=n.length;r<f;++r)A=n[r],o[Q++]=A;return o}function BX(t,e){switch(e){case 0:ab(t);return;case 1:J1(t),t.eb=w.Math.max(t.eb,6),P1(t.k),N1(t,new x1(t,1,!0));return;case 17:Ov(t),t.eb=w.Math.max(t.eb,2),P1(t.k),N1(t,new x1(t,1,!0));return}}function zb(t,e,A){var n,P,r,i;if(i=I3(e),P=(n=t.a.get(i),n??c(zn,e0,1,0,5,1)),P.length==0)t.a.set(i,P);else if(r=kk(e,P),r)return r.kd(A);return P[P.length]=new RU(e,A),++t.c,++t.b.b,null}function Kb(t,e,A){var n,P,r,i,f,D,Q,o;for(Q=-1,P=0,f=0;f<2;f++)for(n=t.j[e][f],D=0;D<t.e[n];D++)r=t.j[n][D],r!=e&&(i=t.n[n][D],o=GQ(t,i,r),P<o&&(!A||!(t.I[i]==257||t.I[i]==129))&&(P=o,Q=i));return Q}function Jb(t){var e,A,n,P;for(A=0,e=0,n=0;n<t.g.a.length+t.f.a.length;n++)P=n<t.g.a.length?x(t.g,n):x(t.f,n-t.g.a.length),P.s!=0&&(A+=P.s,e+=dP(P,P.r,P.s,(O1(),Bn))*P.s);return A==0?(O1(),O1(),Bn):e/A}function vX(t,e,A,n){var P,r,i,f,D;for(i=c(Pt,it,6,t.length+1,16,1),D=c(B,F,6,n,15,1),f=0;f<n;f++)P=A==null?f:A[f],P!=-1&&(D[f]=t[P],i[D[f]]=!0);for(r=0;r<e.length;r++)i[e[r]]||(e[r]=0);return D}function FX(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(n=0,A*=A,f=0;f<e.r;f++){for(Q=e.K[f].a,L=e.K[f].b,i=!1,D=0;D<t.V.r;D++)if(o=mt(t.V,D),s=Rt(t.V,D),P=o-Q,r=s-L,P*P+r*r<A){i=!0;break}i&&++n}return n==e.r}function VQ(){VQ=v1,new FP(255,255,255),new FP(128,128,128),new FP(0,0,0),new FP(0,255,0),new FP(255,255,0),new FP(255,200,0),new FP(255,0,0),new FP(0,255,255),new FP(0,0,255),new FP(255,0,255)}function kX(t,e,A){var n;return xb(t.V,e,A)?(t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0)),!0):(n=dK(t,e,A),n?(er(t.I,n),t.v=null,t.eb=w.Math.max(t.eb,1),P1(t.k),!0):!1)}function mX(t,e,A){A!=null&&A.length==0&&(A=null),A==null?t.u!=null&&(t.u[e]!=null&&t.D[e]==1&&(t.U=0),t.u[e]=null):(t.u==null&&(t.u=c(_,v9,11,t.N,0,2)),t.u[e]==null&&t.D[e]==1&&(t.U=0),t.u[e]=A)}function bX(t,e,A,n){var P,r,i,f;if(N(t.b,e)!=N(t.a,A))return!1;for(r=0;r<N(t.b,e);r++){for(f=Z(t.b,e,r),P=!1,i=0;i<N(t.a,A);i++)if(n[f]==Z(t.a,A,i)){P=!0;break}if(!P)return!1}return!0}function Yb(t,e){var A,n,P,r,i,f,D,Q,o;for(o=0,P=t,i=0,D=P.length;i<D;++i)A=P[i],e[A]==0&&++o;if(o==0)return null;for(Q=c(B,F,6,o,15,1),o=0,n=t,r=0,f=n.length;r<f;++r)A=n[r],e[A]==0&&(Q[o++]=A);return Q}function jX(t,e){var A,n,P,r;for(t.j=new _A,n=0;n<e.g.a.length;n++)r=x(e.g,n),ut(r,1),I5(t.j,r,r.g,r.i,!r.L);for(t.d=new _A,A=0;A<e.f.a.length;A++)P=x(e.f,A),ut(P,1),I5(t.d,P,P.g,P.i,!P.L);Li(t.j),Li(t.d)}function RX(t,e){var A,n;return Ip(t,e,!1)?t.s!=null?(t.B=new v3(t,t.o),md(t.B,400),t.b=new Ji(new fD),cp(t)):(n=new ZQ(e),uU(n,t.v),A=RZ(n,t.o),fy(t,A),A.p=\"SO#1\",A):null}function Xb(t,e){var A,n,P,r,i,f;for(A=t.b.a.length,P=x(t.b,e);e*2+1<A&&(n=(r=2*e+1,i=r+1,f=r,i<A&&t.a.Rb(x(t.b,i),x(t.b,r))<0&&(f=i),f),!(t.a.Rb(P,x(t.b,n))<0));)Zr(t.b,e,x(t.b,n)),e=n;Zr(t.b,e,P)}function k1(t){var e,A,n;for(A=t.length,n=0;n<A&&(zt(n,t.length),t.charCodeAt(n)<=32);)++n;for(e=A;e>n&&(zt(e-1,t.length),t.charCodeAt(e-1)<=32);)--e;return n>0||e<A?(Mt(n,e,t.length),t.substr(n,e-n)):t}function Zb(t,e,A,n,P){var r,i,f,D,Q;for(r=A[n],Q=!1,f=0;f<e.g;f++)if(f!=n&&A[f]==r){Q=!0;break}if(!Q)return P;for(i=0;i<e.g;i++)(i==n||A[i]>r)&&++A[i];++P;do D=P,Z$(t,e,A),P=IK(t,A);while(D!=P);return P}function T5(t,e,A,n,P,r){var i,f,D,Q;if(i=n-A,i<7){FK(e,A,n,r);return}if(D=A+P,f=n+P,Q=D+(f-D>>1),T5(e,t,D,Q,-P,r),T5(e,t,Q,f,-P,r),r.Rb(t[Q-1],t[Q])<=0){for(;A<n;)e[A++]=t[D++];return}lK(t,D,Q,f,e,A,n,r)}function Wb(t,e){if(e instanceof Object)try{e.__java$exception=t;var A=t;Object.defineProperties(e,{cause:{get:function(){var n=A.ic();return n&&n.gc()}},suppressed:{get:function(){return A.hc()}}})}catch{}}function _b(t,e){var A,n,P;return n=t.a*t.a+t.b*t.b+t.c*t.c,P=e.a*e.a+e.b*e.b+e.c*e.c,n==0||P==0||(A=(t.a*e.a+t.b*e.b+t.c*e.c)/w.Math.sqrt(n*P),A>=1)?0:A<=-1?l1:w.Math.acos(A)}function pX(t,e,A){var n,P,r;P=k1((Mt(31,34,A.length),A.substr(31,3))),e1(P,\"A\")||e1(P,\"*\")?w1(t.j,e,1,!0):e1(P,\"Q\")?(r=c(B,F,6,1,15,1),r[0]=6,gf(t.j,e,r,!0)):(n=zA(P,67),$0(t.j,e,n))}function c5(t,e){var A,n,P,r;if(r=t.c.a.length,r==0)return-1;for(P=1;2*P<=r;)P<<=1;for(n=P,--P;n!=0;){if(n>>=1,P>=r){P-=n;continue}if(A=a9(e,x(t.c,P)),A==0)return P;if(n==0)break;A<0?P-=n:P+=n}return-1}function w5(t,e,A){var n,P,r,i;for(r=c(B,F,6,t.b.g+1,15,1),zr(r,r.length,-1),P=0;P<A.length;P++)A[P]!=0&&(r[A[P]]=P);for(i=c(B,F,6,t.b.g,15,1),zr(i,i.length,-1),n=0;n<e.length;n++)i[n]=r[e[n]];return i}function $b(t){var e,A;return t.d>0||(e=1,A=1,t.a<54?(t.a>=1&&(A=t.f),e+=w.Math.log10(w.Math.abs(A))):(e+=(t.a-1)*bo,u6((!t.c&&(t.c=jP(E1(t.f))),t.c),Qi(e)).e!=0&&++e),t.d=Bt(e)),t.d}function MX(t){var e;for(e=0;e<t.r;e++)switch(t.D[e]){case 1:case 5:case 6:case 7:case 8:case 9:case 14:case 15:case 16:case 17:case 33:case 34:case 35:case 52:case 53:continue;default:return!1}return!0}function CX(t){pf();var e,A,n,P,r,i;if(t==null)return null;for(e=c(_,At,6,t.length*8,15,1),n=0;n<t.length;n++)for(i=t[n],P=7;P>=0;P--)A=i&15,A>9&&(A+=7),e[n*8+P]=48+A<<24>>24,i>>=4;return on((r=e,c0(),r))}function s0(t,e,A,n,P){var r,i,f,D,Q,o;for(r=Ct(t.e,e),D=N(t.e,e),Q=1;Q<r;Q++)for(i=Q<D?t.f[Nt(t.e,e,Q)]:0,o=0;o<Q;o++)t.a[e][Q][o]==0&&(f=o<D?t.f[Nt(t.e,e,o)]:0,(i==A&&f==n||i==n&&f==A)&&(t.a[e][Q][o]=P))}function g5(){g5=v1,HE=m(k(ft,1),Dt,2,6,[\"mutagenic\",\"tumorigenic\",\"irritant\",\"reproductive effective\"]),So=m(k(ft,1),Dt,2,6,[\"Mutagenicity\",\"Tumorigenicity\",\"Irritating effects\",\"Reproductive effects\"])}function HX(t){var e;for(e=0;0<=(e=t.indexOf(\"\\\\\",e));)zt(e+1,t.length),t.charCodeAt(e+1)==36?t=(Mt(0,e,t.length),t.substr(0,e)+\"$\"+GD(t,++e)):t=(Mt(0,e,t.length),t.substr(0,e)+(\"\"+GD(t,++e)));return t}function VX(t,e,A,n){var P,r,i,f,D;for(D=new n1,r=0;r<e.r;r++)for(i=r+1;i<e.r;i++)P=new zi(r,i),f=D8(A.a,P)!=null?D8(A.a,P):(r9(),Y2),(f==(r9(),wi)||f==Y2)&&Mn(new C3(e,r,i))<n&&Ft(D,new ZR(t,e,r,i));return D}function d5(t,e,A){var n;n=t.F[0][e],t.F[0][e]=t.F[0][A],t.F[0][A]=n,n=t.F[1][e],t.F[1][e]=t.F[1][A],t.F[1][A]=n,n=t.I[e],t.I[e]=t.I[A],t.I[A]=n,n=t.G[e],t.G[e]=t.G[A],t.G[A]=n,n=t.H[e],t.H[e]=t.H[A],t.H[A]=n,t.U=0}function EX(t,e){var A,n,P;if(e.j==0){try{A=L1((P=t.b.Gc(),P.getSelectedItem()),f1,Et)}catch(r){if(r=_1(r),Jt(r,42)){ED(t.c,\"Illegal text size.\");return}else throw et(r)}n=pl[v0(t.a)],Ad(t.e,Ki(t.d),A,n)}N9(t.c)}function SX(t){var e,A,n,P;for(t.Ab(2*t.S),P=new h1,n=0;n<t.L.s;n++)e=q(t.L,0,n),A=q(t.L,1,n),Xh(t.L,n)&&(P.a=W1(t.R,mt(t.L,e)),P.c=Z1(t.R,Rt(t.L,e)),P.b=W1(t.R,mt(t.L,A)),P.d=Z1(t.R,Rt(t.L,A)),$1(t,-2),t.qb(P))}function Cs(){Cs=v1,wl=m(k(Ut,1),Tt,6,15,[k0,l1,I2,fA]),FE=m(k(B,2),D0,7,0,[m(k(B,1),F,6,15,[0,0,0,2]),m(k(B,1),F,6,15,[0,0,1,2]),m(k(B,1),F,6,15,[0,1,1,3]),m(k(B,1),F,6,15,[2,2,3,2])])}function IX(t){var e,A,n,P;for(n=-.5299999713897705,Li(t),ut(t,7),e=0;e<t.g;e++){P=-1;try{P=Ly(t,e,2144)}catch(r){if(r=_1(r),!Jt(r,19))throw et(r)}for(A=0;A<_f.length;A++)if(A0(Bl[A],P)){n+=_f[A];break}}return n}function ab(t){var e;t.I&&(t.I.a.length=0,t.eb=w.Math.max(t.eb,1),P1(t.k)),J1(t),e=t.V.L,Ri(t.V),Be(t.V,e),t.cb.r!=0?(t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0))):(t.eb=w.Math.max(t.eb,1),P1(t.k))}function tj(t,e){var A,n,P,r,i,f;for(r=c(B,F,6,t.r,15,1),n=0;n<t.r;n++)r[n]=n;P=t.r;do--P;while(P>=0&&e[P]);for(A=0;A<P;A++)if(e[r[A]]){f=r[A],r[A]=r[P],r[P]=f,i=e[A],e[A]=e[P],e[P]=i;do--P;while(e[P])}return r}function xX(t){pf();var e,A,n,P;if(t.length==0||(t.length&7)!=0)return null;for(n=c(B,F,6,t.length/8|0,15,1),A=0;A<t.length;A++)P=A/8|0,e=(zt(A,t.length),t.charCodeAt(A)-48),e>16&&(e-=7),n[P]<<=4,n[P]+=e;return n}function f9(t,e,A){var n,P,r;if(t.length!=e.length)return-1;for(r=0,n=A.mc(),P=0;P<t.length-1;P++)if(r=BA(t[P],e[P],r,n+1,!0,A),n=BA(t[P],e[P],r,n+1,!1,A),r==-1||n==-1)return-1;return BA(t[P],e[P],r,n+1,!0,A)}function Hs(t,e){var A,n,P,r,i,f,D;for(D=c(Pt,it,6,t.g,16,1),n=0,r=t.i,P=0;P<r;P++)if(sT(e.a,P))for(f=0;f<2;f++)A=t.F[f][P],D[A]||(D[A]=!0,++n);return i=new SA(n,r),Be(i,!0),L9(t,i,D,!0,null),ut(i,7),i}function NX(t,e,A){var n,P,r,i,f,D,Q;P=Bt(c4*G8(t.V)),r=Bt(mt(t.V,q(t.V,0,A))),f=Bt(Rt(t.V,q(t.V,0,A))),i=Bt(mt(t.V,q(t.V,1,A))),D=Bt(Rt(t.V,q(t.V,1,A))),n=(Q=e.Lc(),Q.getLineWidth()),PL(e,P),Z9(e,r,f,i,D),PL(e,n)}function ej(t){switch(t){case 6:return 1;case 53:return 2;case 33:return 3;case 34:return 4;case 35:return 5;case 15:return 6;case 16:return 7;case 17:return 8;case 7:return 9;case 8:return 10;case 9:return 11}return 0}function GX(t){var e;for(t.e=new gh,t.d=new Bd,xN(t,new hs(t,t.i)),e=an(t.i);!$7(t.d);)if(mJ(jz(t.d),e),Ptt(t,e),t.e.a.c>=x1t){z1(),\"\"+Me(new bA(t.i));break}}function Vs(t){var e,A;return t>-0x800000000000&&t<0x800000000000?t==0?0:(e=t<0,e&&(t=-t),A=Bt(w.Math.floor(w.Math.log(t)/.6931471805599453)),(!e||t!=w.Math.pow(2,A))&&++A,A):vT(E1(t))}function OX(t,e){var A,n,P,r,i,f;if(t.t[e]==0)return!1;for(f=!0,A=t.t[e],r=t.k[e],i=0,n=0;n<r;n++)P=t.j[e][n],i+=t.t[P];return w.Math.abs(A)<=w.Math.abs(i)&&w.Math.sign(A)!=w.Math.sign(i)&&(f=!1),f}function qX(t,e){var A,n,P,r,i,f;for(ut(t,1),i=0;i<2;i++)if(A=t.F[i][e],t.D[A]==7){for(n=t.F[1-i][e],f=0;f<t.k[n];f++)if(P=t.j[n][f],r=t.n[n][f],(t.D[P]==7||t.D[P]==8||t.D[P]==16)&&dt(t,r)>=2)return!0}return!1}function zX(t){var e;if(t.f!=null){for(e=0;e<t.f.length;e++)if((t.c[e]&~t.f[e])!=0)return!1}else return!1;return!t.d&&(t.d=zT(new WA(!1),t.e)),!t.a&&(t.a=zT(new WA(!1),t.b)),GA(t.g,t.d),MA(t.g,t.a),Rg(t.g)}function Aj(t){var e;e=$A(t.d),kP(t.k,!e),kP(t.c,!e),kP(t.n,!e),kP(t.i,!e),kP(t.j,!e),kP(t.b,!e),kP(t.g,!e),kP(t.f,!e&&dt(t.u,t.a)==2&&ze(t.u,t.a)!=0&&ze(t.u,t.a)!=3),kP(t.q,!e),kP(t.r,!e&&v0(t.q)!=1),kP(t.p,e),kP(t.o,e)}function Qr(){Qr=v1,gS=new Ir(\"UP\",0),hS=new Ir(\"DOWN\",1),lS=new Ir(\"CEILING\",2),TS=new Ir(\"FLOOR\",3),El=new Ir(\"HALF_UP\",4),cS=new Ir(\"HALF_DOWN\",5),Te=new Ir(\"HALF_EVEN\",6),wS=new Ir(\"UNNECESSARY\",7)}function B5(t,e,A){var n,P,r;for(n=!1,r=0;r<t.k[e];r++)if(!eA(t,t.n[e][r])&&t.o[e][r]==1&&(P=t.j[e][r],!(P<t.g&&i0(t.q,P))&&(t.D[P]==6&&of(t,P)==1||t.D[P]==16&&of(t,P)==2))){if(n||!A)return!0;n=!0}return!1}function KX(t,e){var A,n,P,r,i;for(A=c(Ut,Tt,6,t.v.length+t.u.length,15,1),n=Pr(t.i,e.d).c,r=new Zt(n);r.a<r.c.a.length;)if(P=_t(r),(Ik(e,P.c,P.b)?e.b:0)!=0)for(i=0;i<A.length;i++)wO(t.C,P,i)&&(A[i]+=P.a);return A}function dA(t,e,A,n,P,r){var i,f,D,Q;for(D=0,f=0;f<t.R.g;f++)gt(V(l0(t.R,t.B[f]),n),0)&&++D;if(D!=0)for(rP(t,e),qt(t,D,A),i=0;i<t.R.g;i++)Q=V(l0(t.R,t.B[i]),n),O(Q,0)!=0&&(qt(t,i,A),P!=1&&qt(t,G0(Q,r),P))}function JX(t,e){var A,n,P,r,i,f,D;for(i=Ct(t.R,e),f=c(B,F,6,i,15,1),P=0;P<i;P++)f[P]=Z(t.R,e,P);for(n=i;n>1;n--){for(A=!1,r=1;r<n;r++)F6(t,e,f[r-1],f[r])&&(A=!0,D=f[r-1],f[r-1]=f[r],f[r]=D);if(!A)break}return f}function YX(t){var e,A,n,P,r,i,f;for(i=c(_,_y,65,8,0,3),f=0;f<=7;f++)for(i[f]=c(_,v9,11,t[f].c,0,2),n=0,r=(A=new J8(new K8(new br(t[f]).a).b),new jr(A));Nr(r.a.a);)P=(e=H9(r.a),e.hd()),i[f][n++]=P;return i}function EQ(t,e){var A,n;for(t.D=nr(t.D,e),t.t=nr(t.t,e),t.A=nr(t.A,e),n=t.K.length,t.K=Gz(t.K,e),A=n;A<e;A++)t.K[A]=new x0;t.B=nr(t.B,e),t.v=nr(t.v,e),t.C=tz(t.C,e),t.w!=null&&(t.w=tY(t.w,e)),t.u!=null&&(t.u=eY(t.u,e)),t.N=e}function nj(t,e,A){var n,P,r,i;if(t.k=e,t.n=A,t.i!=null)for(i=t.i.length,t.o=c(Ut,Tt,6,i,15,1),t.p=c(Ut,Tt,6,i,15,1),r=0;r<i;r++)n=e-t.i[r].a,P=A-t.i[r].b,t.p[r]=w.Math.sqrt(n*n+P*P),t.o[r]=pA(e,A,t.i[r].a,t.i[r].b)}function XX(t){var e,A,n,P,r;for(r=new Wu(t),e=r.a.length-1;e>=0;e--)for(A=(te(e,r.a.length),r.a[e]),P=0;P<r.a.length;P++)if(n=(te(P,r.a.length),r.a[P]),e!=P&&Hv(n,A)){te(e,r.a.length),r.a.splice(e,1);break}return r}function ZX(t,e){var A,n,P,r,i,f,D;for(n=c(Pt,it,6,N(t.e,e),16,1),D=0,P=0;P<N(t.e,e);P++){for(f=0,i=-1,r=0;r<N(t.e,e);r++)n[r]||(A=Nt(t.e,e,r),f<t.f[A]&&(f=t.f[A],i=r));if(f==0)return D;D<<=8,D+=f,n[i]=!0}return D}function Nn(t){return w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c)>0?new BP(t.a/w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c),t.b/w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c),t.c/w.Math.sqrt(t.a*t.a+t.b*t.b+t.c*t.c)):new BP(0,0,0)}function Es(t){var e;if(t.p=new Qu,t.k!=null)for(t.e=c(qE,e0,105,t.k.length,0,1),e=0;e<t.k.length;e++)t.e[e]=new mu(t.k[e]);if(t.a!=null)for(t.b=c(qE,e0,105,t.a.length,0,1),e=0;e<t.a.length;e++)t.b[e]=new mu(t.a[e]);t.d=24}function WX(t,e,A){var n,P;if(P=x(t.b,e),t.d.length<=t.c.length){for(n=0;n<t.a;n++)if(A[t.d[n]]!=null&&A[t.d[n]][t.c[P[n]]])return!0}else for(n=0;n<t.a;n++)if(A[t.d[P[n]]]!=null&&A[t.d[P[n]]][t.c[n]])return!0;return!1}function _X(t,e){k6();var A,n,P,r;if(af[e]!=null){for(n=0;n<af[e].length;n++)for(r=af[e][n],P=15;P>=0;P--)(r&3)==0&&eL(t,P,n,-1),r>>=2;for(A=0;A<af[e].length;A++)for(r=af[e][A],P=15;P>=0;P--)(r&3)==1&&eL(t,P,A,qn),r>>=2}}function D9(t){var e,A,n;return t<0?0:t==0?32:(n=-(t>>16),e=n>>16&16,A=16-e,t=t>>e,n=t-256,e=n>>16&8,A+=e,t<<=e,n=t-E0,e=n>>16&4,A+=e,t<<=e,n=t-On,e=n>>16&2,A+=e,t<<=e,n=t>>14,e=n&~(n>>1),A+2-e)}function L0(t,e){var A=w;if(t===\"\")return A;var n=t.split(\".\");if(!(n[0]in A)&&A.execScript&&A.execScript(\"var \"+n[0]),e){var P=e.prototype.wd;P.e=e}for(var r;n.length&&(r=n.shift());)A=A[r]=A[r]||!n.length&&e||{};return A}function v5(t,e,A,n,P,r,i){var f,D;return f=Z(t.g,t.s[e],n),f<t.D.length&&(!t.D[f]||t.f[f]==i)&&f!=t.u[e]&&(D=Nt(t.g,t.s[e],n),!r[D]&&!Ru(t.g,D)&&(t.s[++A]=f,t.u[A]=t.s[e],t.v[A]=D,r[D]=!0,P[f]?t.t[A]=!0:P[f]=!0)),A}function L2(t,e){var A,n,P,r,i;for(i=0,A=0,n=0;n<e;n++)i+=t[n].b*w.Math.sin(t[n].a),A+=t[n].b*w.Math.cos(t[n].a);return A==0?r=i>0?HA:Qo:(r=w.Math.atan(i/A),A<0&&(r+=l1)),P=w.Math.sqrt(i*i+A*A)/e,new $P(r,P)}function Ss(t){var e,A,n;if(t.d!=-1)return t.d;for(t.d=0,A=0;A<t.g.a.length+t.f.a.length;A++)for(n=A<t.g.a.length?x(t.g,A):x(t.f,A-t.g.a.length),e=0;e<n.r;e++)t.d<w.Math.abs(n.A[e])&&(t.d=w.Math.abs(n.A[e]));return t.d}function F5(t,e){ni();var A;return A=c(Oe,uA,6,4,15,1),A[0]=S4*((t&QP)>>16),A[1]=S4*((t&DP)>>8),A[2]=S4*(t&255),u_(A,e),t&qn|Bt(w.Math.round(A[0]*255))<<16|Bt(w.Math.round(A[1]*255))<<8|Bt(w.Math.round(A[2]*255))}function k5(t,e,A,n,P,r){var i,f,D,Q,o;if(P!=0)for(K1(t)===K1(A)&&(t=t.slice(e,e+P),e=0),D=A,f=e,Q=e+P;f<Q;)i=w.Math.min(f+fP,Q),P=i-f,o=t.slice(f,i),o.splice(0,0,n,r?P:0),Array.prototype.splice.apply(D,o),f=i,n+=P}function s2(t,e){var A;if(e<0)throw et(new I8(\"Negative exponent\"));if(e==0)return X2;if(e==1||VT(t,X2)||VT(t,vr))return t;if(!IQ(t,0)){for(A=1;!IQ(t,A);)++A;return RP(qK(A*e),s2(AT(t,A),e))}return VY(t,e)}function $X(t,e,A){var n,P,r,i,f;for(f=tf(new WA(!0),t),P=-1,r=0;r<f.r;r++)if(n=f.u==null||f.u[r]==null?null:on((i=f.u[r],c0(),i)),n!=null&&n.endsWith(\"*\")){P=r;break}return P>=0?CR(f,P,e,A):c(ft,Dt,2,0,6,1)}function Pj(t,e,A,n,P){var r,i,f,D,Q;for(Q=-1,i=0;i<N(t.j,A);i++)if(Z(t.j,A,i)==e){Q=i;break}for(f=-1,r=0;r<N(t.d,P);r++)if(Z(t.d,P,r)==n){f=r;break}for(D=0;D<8;D++)if(js(t.k[A][Q][D],t.e[P][f][D])!=0)return D<<8;return q1}function rj(t,e,A,n){var P;for(P=0;P<t.s;P++)if(t.F[0][P]==e&&t.F[1][P]==A||t.F[0][P]==A&&t.F[1][P]==e)return h8(t,P,n),t.U=0,P;return t.s>=t.O&&oQ(t,t.O*2),t.F[0][t.s]=e,t.F[1][t.s]=A,t.I[t.s]=n,t.G[t.s]=0,t.H[t.s]=0,t.U=0,t.s++}function ij(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(s=e.length,P=e,r=0,i=P.length;r<i;++r)n=P[r],L=t.a[n]&d1,(L==0||L>s)&&(t.a[n]&=GP,t.a[n]|=s);for(D=A,Q=0,o=D.length;Q<o;++Q)f=D[Q],L=t.c[f]&d1,(L==0||L>s)&&(t.c[f]&=GP,t.c[f]|=s)}function Is(t,e){this.a=new AF(this),this.e=new Dm,this.b=new Lv,this.c=new sv,this.d=new eF(this),this.f=new bv,this.i=new yv,this.g=new Uv,this.j=new vF,this.k=new nd(this,t),this.n=new tF(this),this.o=new Pd(this,e),this.p=new Gv}function SQ(t,e,A){var n,P,r,i,f,D;return n=t.i[1].a-t.i[0].a,P=t.i[1].b-t.i[0].b,i=(t.i[0].a+t.i[1].a)/2,f=(t.i[0].b+t.i[1].b)/2,n==0?P<0^A>f:P==0?n<0^e>i:(r=-n/P,D=(t.i[0].a+r*r*e-r*A+r*t.i[0].b)/(1+r*r),n<0^D>i)}function ui(t){var e,A,n;for(n=!1,e=0;e<t.r;e++)t.D[e]==-1&&(n=!0,fQ(t,t.A[e]));for(A=0;A<t.s;A++)t.I[A]==512?n=!0:(t.D[t.F[0][A]]==-1||t.D[t.F[1][A]]==-1)&&(t.I[A]=512,n=!0);return n?(t.U=0,Rf(t)):null}function aX(t,e,A){var n,P,r,i,f,D;for(f=c(Pt,it,6,t.g,16,1),A[0]=e,D=1,f[e]=!0,r=0;r<D;r++)for(i=0;i<t.k[A[r]];i++)P=t.n[A[r]][i],((t.G[P]&64)!=0||dt(t,P)==2||oi(t,P))&&(n=t.j[A[r]][i],f[n]||(A[D++]=n,f[n]=!0));return D}function tZ(t,e,A){var n,P,r,i,f;for(f=c(x8t,T0,162,A,0,1),i=c(B,F,6,A,15,1),r=0;r<A;r++)f[r]=new Fw;for(n=0;n<t.V.r;n++)f[e[n]].a+=mt(t.V,n),f[e[n]].b+=Rt(t.V,n),++i[e[n]];for(P=0;P<A;P++)f[P].a/=i[P],f[P].b/=i[P];return f}function eZ(t){var e,A,n,P;for(P=!1,A=0;A<t.V.r;A++)if(r0(t.V,A)){P=!0;break}if(n=Sm(t,P),n){for(J1(t),e=0;e<t.V.r;e++)(!P||r0(t.V,e))&&(ge(t.V,e,2*n.a-mt(t.V,e)),Ve(t.V,e,2*n.b-Rt(t.V,e)));t.eb=w.Math.max(t.eb,1),P1(t.k)}}function fj(t,e,A){var n;M3();var P;this.a=new pR(new _A,t,A,this),OI(this.a,new i7(this)),this.c=e,this.f=A,this.e=new yh,Uh(this.e,this.a),this.d=new b7,Uh(this.d,this.a),P=(n=this.Bc(),n.getClipboardHandler()),bI(this.a,new u7(P))}function Dj(t){Yp.call(this,t),this.d=c(B,F,6,this.v.length,15,1),this.c=c(B,F,6,this.u.length,15,1),this.a=c(pS,H2,168,1,0,1),this.a[0]=Xu(this,c(B,F,6,this.v.length,15,1),c(B,F,6,this.u.length,15,1)),this.b=-1}function m5(t){var e,A;for(this.i=an(t),I_(this),ut(this.i,7),this.g=c(Pt,it,6,this.i.i,16,1),this.f=c(Pt,it,6,this.i.g,16,1),e=0;e<this.i.g;e++)A=nQ(J(this.i,e))[0],this.f[e]=n0(this.i,e)<A;GX(this),Y_(this),jW(this),WZ(this)}function AZ(t){t=t||{};var e=0;return t.matchAtomCharge===!0&&(e|=1),t.matchAtomMass===!0&&(e|=2),t.matchDBondToDelocalized===!0&&(e|=4),(t.matchAromDBondToDelocalized===!0||t.matchAromDBondToDelocalized===void 0)&&(e|=8),e}function uj(t,e){var A,n,P,r,i,f,D;for(D=kn(t.R),A=0;A<D.j.a.length;A++)if(D.e[A]&&wA(D,A,e)){for(P=x(D.j,A),r=0,i=P.length;r<i;++r)if(n=P[r],n!=e){for(f=0;f<N(t.R,n);f++)if(oi(t.R,Nt(t.R,n,f)))return!0}return!1}return!1}function cf(t,e,A){var n,P,r;if(n=J(t.j,e),n>=5&&n<=8||n==15||n==16||n==33||n==34||n==52){if(r=yf(t.j,e),r!=0)return!0;if(P=R1(t.j,e),n==5&&P>=0)return A&&m0(t.j,e,P-1),!0;if(n!=5&&P<=0)return A&&m0(t.j,e,P+1),!0}return!1}function nZ(t,e,A){var n,P,r,i,f;for(f=!1,i=1,e[A]=i,n=!0;n;){for(n=!1,P=0;P<t.b;P++)if(e[P]==i)for(r=0;r<t.b;r++)e[r]==0&&hz(t,P,r)&&(t.c[r]==-2?(e[r]=i+1,n=!0):t.c[r]!=t.c[A]&&(e[r]=i+1,f=!0));++i}return f}function PZ(t,e){var A;for(this.o=e,this.k=c(q2,V2,28,t.k.length,0,1),A=0;A<this.k.length;A++)this.k[A]=new pu(t.k[A]);t.j!=null&&(this.j=TL(t.j,t.j.length)),this.p=t.p==null||t.p.endsWith(\" (copy)\")?t.p:Su(t.p,\" (copy)\"),this.n=NaN}function Qj(t,e){var A,n,P,r,i;for(r=c(dS,T0,44,8,0,1),i=0;i<=7;i++)for(r[i]=new Ji(new al),A=0;A<t.g;A++)P=e[A][i],P!=null&&(n=de(r[i],P),n=n==null?c(B,F,6,1,15,1):Cn(n,n.length+1),n[n.length-1]=A,We(r[i],P,n));return r}function rZ(t,e){var A,n,P;if(t.t!=-1&&(nA(e,(P=KD(e),P!=0?P:Al)),tk(t,e,t.t),t.w==19&&(n=M1(t.V,t.t),n!=0)))for(A=0;A<t.V.g;A++)A!=t.t&&M1(t.V,A)==n&&tk(t,e,A);t.u!=-1&&(nA(e,(P=KD(e),P!=0?P:Al)),NX(t,e,t.u)),t.v&&t.v.Mb(e)}function iZ(t,e){var A,n,P,r,i;if(t.D[e]!=8||t.k[e]!=1)return!1;if(A=t.j[e][0],t.D[A]==15){for(i=t.k[A],n=0;n<i;n++)if(P=t.j[A][n],P!=e&&t.D[P]==8&&(r=o1(t,A,P),t.I[r]==2))return!0}return!1}function b5(t,e){var A,n;if(t==null)return e==null?0:1;if(e==null)return-1;for(A=w.Math.min(t.length,e.length),n=0;n<A;n++)if((t[n]&GP)!=(e[n]&GP))return(t[n]&GP)<(e[n]&GP)?-1:1;return t.length==e.length?0:t.length<e.length?-1:1}function fZ(t,e,A,n,P){var r,i,f,D;if(K1(t)===K1(e)&&n==P){cR(t,n,A);return}for(f=0;f<n;f++){for(i=0,r=t[f],D=0;D<P;D++)i=at(at(yn(V(r,g1),V(e[D],g1)),V(A[f+D],g1)),V(Ot(i),g1)),A[f+D]=Ot(i),i=b0(i,32);A[f+P]=Ot(i)}}function j5(t,e){var A,n,P,r,i;for(r=I3(e),n=(A=t.a.get(r),A??c(zn,e0,1,0,5,1)),i=0;i<n.length;i++)if(P=n[i],j3(e,P.hd()))return n.length==1?(n.length=0,t.a.delete(r)):n.splice(i,1),--t.c,++t.b.b,P.jd();return null}function DZ(t){var e,A,n,P,r;for(A=0;A<t.R.g;A++)AA(t.e[A],A),a1(t.e[A],t.c+1,yn(2,t.f[A]));for(r=c(B,F,6,t.U+1,15,1),n=0;n<t.R.g;n++)++r[t.f[n]];for(P=1;r[P]==1;)++P;for(e=0;e<t.R.g;e++)if(t.f[e]==P){Le(t.e[e],1);break}t.U=tP(t)}function R5(t,e){var A,n,P;if(t.a==null){for(t.a=c(Ut,Tt,6,t.o.r,15,1),t.d=c(Ut,Tt,6,(s8(),xl).length,15,1),P=new Zt(e);P.a<P.c.a.length;)n=_t(P),n.g&&(t.d[n.vd()]+=n.td(t,t.a));for(t.e=0,A=0;A<t.o.r;A++)t.e+=t.a[A];t.c=-1}}function uZ(t,e){e=e||{};var A=e.smartsMode||\"smiles\",n=e.skipCoordinateTemplates||!1,P=e.makeHydrogenExplicit||!1,r=e.noCactvs||!1,i=e.singleDotSeparator||!1,f=e.createSmartsWarnings||!1;t.zc(A,n,P,r,i,f)}function IQ(t,e){var A,n,P;if(e==0)return(t.a[0]&1)!=0;if(e<0)throw et(new I8(\"Negative bit address\"));if(P=e>>5,P>=t.d)return t.e<0;if(A=t.a[P],e=1<<(e&31),t.e<0){if(n=XF(t),P<n)return!1;n==P?A=-A:A=~A}return(A&e)!=0}function oj(t,e,A,n,P,r,i){var f,D,Q;f=A==-1?(i[e].a-i[t.B[0]].a)/8:i[e].a-i[A].a,D=A==-1?(i[e].b-i[t.B[0]].b)/8:i[e].b-i[A].b,qt(t,Bt((n+f)/P),r),qt(t,Bt((n+D)/P),r),t.jb&&(Q=A==-1?(i[e].c-i[t.B[0]].c)/8:i[e].c-i[A].c,qt(t,Bt((n+Q)/P),r))}function Uj(t,e){var A,n,P,r;if(t.d!=e.d)return t.d>e.d?1:-1;for(P=t.a.length,r=e.a.length,A=w.Math.min(P,r),n=0;n<A;n++)if(--P,--r,t.a[P]!=e.a[r])return t.a[P]>e.a[r]?1:-1;return P!=r?P>r?1:-1:t.b!=e.b?t.b>e.b?1:-1:0}function Lj(t,e){var A,n,P,r;if(t.L){if(gt(V(t.C[e],1),0))return!1;if(t.w!=null&&t.w[e]!=null){for(n=t.w[e],P=0,r=n.length;P<r;++P)if(A=n[P],!(A==1||A>=5&&A<=9||A>=14&&A<=17||A>=32&&A<=35||A>=52&&A<=53))return!1}}return lq(t.D[e])}function QZ(t){var e,A,n,P,r,i;if(!dl)return NV;for(r=0,n=0,i=new VD(1),A=new _A,P=0;P<gi.a.a.length;P++)l2(new WA(!1),A,Ih(gi,P)),GA(i,t),MA(i,A),CA(i,1,i.c)>0&&(r+=jg(gi,P),++n);return e=n==0?-1:r/w.Math.sqrt(n),e+\"\t\"+n+\"\t\"+t.g}function p5(t,e){var A,n,P,r,i;return e&=63,A=t.h,n=(A&B8)!=0,n&&(A|=-1048576),e<22?(i=A>>e,r=t.m>>e|A<<22-e,P=t.l>>e|t.m<<22-e):e<44?(i=n?Pn:0,r=A>>e-22,P=t.m>>e-22|A<<44-e):(i=n?Pn:0,r=n?q0:0,P=A>>e-44),N0(P&q0,r&q0,i&Pn)}function sj(t,e){var A,n,P,r;for(r=0,n=new qB;r<e;){try{P=X1(t.i)}catch(i){if(i=_1(i),Jt(i,79))break;throw et(i)}if(P==null)break;P.startsWith(Lo)&&++r,P.startsWith(\">\")&&(A=IR(P),A!=null&&Vz(n,A))}t.d=Qf(n.b,c(ft,Dt,2,0,6,1))}function wf(t,e,A,n,P,r){for(var i,f,D;t.r+n>t.N;)EQ(t,t.N*2);for(;t.s+n>t.O;)oQ(t,t.O*2);return i=en(t,e,A),i!=-1?UR(t,i,n,P,r):(f=kf(t,e,A),f!=-1?$Q(t,f,n,P,r):(i=a0(t,e,A,0),D=l1*(n-2)/n,L6(t,i,n,i,P,0,l1-D,r),t.U=0,!0))}function yj(t){var e,A,n,P,r,i,f,D,Q,o;for(D=0,n=t,r=0,f=n.length;r<f;++r)e=n[r],e==-1&&++D;if(D!=0)for(o=t,t=c(B,F,6,o.length-D,15,1),Q=0,A=o,P=0,i=A.length;P<i;++P)e=A[P],e!=-1&&(t[Q++]=e);return t.sort(pe(u0.prototype.ld,u0,[])),t}function oZ(t){var e,A,n,P;if(A=new U8,t.g.a.length!=0){for(P=new Wr(x(t.g,0)),e=1;e<t.g.a.length;e++)CD(P,x(t.g,e));Ft(A.g,P),A.d=-1}if(t.f.a.length!=0){for(n=new Wr(x(t.f,0)),e=1;e<t.f.a.length;e++)CD(n,x(t.f,e));Ft(A.f,n),A.d=-1}return A}function UZ(t,e){var A,n,P,r,i;for(t.i=c(B,F,6,t.g.g,15,1),n=0;n<t.f.g;n++)M1(t.f,n)!=0&&(t.i[e[M1(t.f,n)]]=C0(t.f,n));if(i=c(B,F,6,t.g.r,15,1),r=Ur(t.g,i,!1,!1),r>1)for(P=c(B,F,6,r,15,1),A=0;A<t.g.g;A++)t.i[A]|=P[i[A]]++<<5}function LZ(t,e){return!e&&(e={mode:3}),e=Object.assign({},e),\"ensureCoordinates\"in e?(e.ensureCoordinates=!!e.ensureCoordinates,GO(t,e.ensureCoordinates)):(typeof e.mode!==s9&&(e.mode=3),e.mode=Math.trunc(e.mode),BO(t,e.mode))}function gf(t,e,A,n){var P;if(A==null){t.w!=null&&(t.w[e]=null);return}if(A.length==1&&!n){P=A[0],t.D[e]!=P&&mf(t,e,P,0,-1,0),t.w!=null&&(t.w[e]=null);return}t.w==null&&(t.w=c(B,D0,7,t.N,0,2)),t.w[e]=A,n&&(t.C[e]=z(t.C[e],1)),t.U=0,t.L=!0}function sZ(t,e){var A,n,P,r,i,f,D;for(A=c(Ut,Tt,6,Ct(t.L,e),15,1),P=0;P<Ct(t.L,e);P++)A[P]=_0(t.L,e,Z(t.L,e,P));for(A.sort(pe(ki.prototype.ld,ki,[])),r=yk(A,0),i=Gm(A,0,r),n=1;n<A.length;n++)f=yk(A,n),D=Gm(A,n,f),i<D&&(i=D,r=f);return r}function yZ(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(s=new gU(new fD),Q=e,o=0,L=Q.length;o<L;++o)for(D=Q[o],P=A,r=0,i=P.length;r<i;++r)n=P[r],f=c(B,F,6,2,15,1),f[0]=t.J[D],f[1]=t.C[n],We(s.a,f,(Er(),Ro))==null;return YT(s,c(B,D0,7,0,0,2))}function u9(t,e){var A,n,P,r;if(r=t.d.a.length,r==0)return-1;for(P=1;2*P<=r;)P<<=1;for(n=P,--P;n!=0;){if(n>>=1,P>=r){P-=n;continue}if(A=vB(t,e,x(t.d,P)),A==0)return P;if(n==0)break;A<0?P-=n:P+=n}return P<r&&vB(t,e,x(t.d,P))>0&&++P,-(P+1)}function lZ(t,e,A,n){var P,r,i,f,D,Q;if(P=t.e[e],f=c(B,F,6,P,15,1),Q=_5(t,e,A,n,f),Q==3)return!1;for(i=(t.v[e]&3)==Q?257:129,D=0;D<P;D++)(f[D]&1)==1&&(r=t.n[e][A[D]],t.I[r]=i,t.F[0][r]!=e&&(t.F[1][r]=t.F[0][r],t.F[0][r]=e));return!0}function hZ(t){var e,A,n,P;for(n=new Zt(t.g);n.a<n.c.a.length;)if(e=_t(n),e.r!=0)return!1;for(P=new Zt(t.f);P.a<P.c.a.length;)if(e=_t(P),e.r!=0)return!1;for(A=new Zt(t.a);A.a<A.c.a.length;)if(e=_t(A),e.r!=0)return!1;return!0}function TZ(t,e){var A,n,P;if(t.f=e,Bg(t.e,t.c,t.f),CA(t.e,4,8)==0)return t.a=null,0;for(t.a=t.e.F,A=t.a.a.length-1;A>=0;A--)for(P=x(t.a,A),n=0;n<P.length;n++)if(P[n]!=-1&&t.b[n]>0&&t.b[n]>_i(t.f,P[n])){cA(t.a,A);break}return t.a.a.length}function lj(t,e,A){var n,P,r,i,f;for(this.a=c(B,F,6,t.g,15,1),this.a[0]=e,A[e]=!0,r=0,i=0;r<=i;){for(P=N(t,this.a[r]),f=0;f<P;f++)n=Z(t,this.a[r],f),w.Math.abs(t.A[n])==0&&A0(V(t.C[n],ne),0)&&!A[n]&&(this.a[++i]=n,A[n]=!0);++r}}function cZ(t,e,A,n,P){var r,i,f,D,Q,o,L,s;return r=nP(e.D[A]),i=nP(e.D[P]),f=r>i?4:3,D=(Q=nP(e.D[A]),o=nP(e.D[n]),L=nP(e.D[P]),Q>L&&(Q=(s=U1(L),U1(L=Q),s).a),f9(m(k(B,1),F,6,15,[1,0,2]),m(k(B,1),F,6,15,[o,Q,L]),t)),D>=0?H0(t.a[D][f]):0}function hj(t,e,A){var n,P,r;if(t.p[e]==2||(t.p[e]==1||xP(t,e,!0))&&t.k[e]!=3||t.p[e]==0&&t.k[e]!=4)return 1;for(r=-2,P=0;P<t.k[e];P++)if(n=t.j[e][P],n!=A){if(r==-2)r=KU(t.d,n);else if(r!=KU(t.d,n))return 1}return t.k[e]-1}function wZ(t,e){var A,n,P,r,i;if(t.i.L){if(gt(V(l0(t.i,e),1),0))return!0;if(i=IA(t.i,e),i!=null){for(n=i,P=0,r=n.length;P<r;++P)if(A=n[P],A==5||A==6||A==7||A==8||A==15||A==16||A==33||A==34)return!0;return!1}}return _v(J(t.i,e))}function gZ(t,e,A){var n,P,r,i,f,D,Q,o,L;for(L=c(XA,Pe,6,1+t.d[t.d.length-1],14,1),n=0,i=e,D=0,o=i.length;D<o;++D)P=i[D],L[t.d[n]]=at(L[t.d[n]],P<<t.b[n]),++n;for(r=A,f=0,Q=r.length;f<Q;++f)P=r[f],L[t.d[n]]=at(L[t.d[n]],P<<t.b[n]),++n;return L}function M5(t,e){var A,n,P;this.a=t.F[0][e],this.b=t.F[1][e],n=M1(t,this.a),P=M1(t,this.b),n<P?(this.d=n,this.e=P):(this.d=P,this.e=n),this.c=t.H[e]&31,A=t.I[e]&127,A==16?this.c|=16:A==2?this.c|=2:A==4?this.c|=4:this.c|=1,this.i=(Dr(),jl)}function xs(t,e){var A,n,P;if(A=q(t.V,0,e),B0(t.V,A)!=0)return xi(t.V,A)||B0(t.V,A)!=1&&B0(t.V,A)!=2?-1:A;if(t0(t.V,A)==1){for(P=0;P<N(t.V,A);P++)if(EA(t.V,A,P)==2&&(n=Z(t.V,A,P),t0(t.V,n)==2&&(B0(t.V,n)==1||B0(t.V,n)==2)))return n}return-1}function dZ(t){if(t.Xc()){var e=t.c;e.Yc()?t.n=\"[\"+e.k:e.Xc()?t.n=\"[\"+e.Vc():t.n=\"[L\"+e.Vc()+\";\",t.b=e.Uc()+\"[]\",t.j=e.Wc()+\"[]\";return}var A=t.g,n=t.d;n=n.split(\"/\"),t.n=ss(\".\",[A,ss(\"$\",n)]),t.b=ss(\".\",[A,ss(\".\",n)]),t.j=n[n.length-1]}function Tj(t){var e,A,n,P;e=t.M!=0?t.M:t.D!=0?t.D:-1,t.t=(ni(),A=(e&QP)>>16,n=(e&DP)>>8,P=e&255,(A+Bt(w.Math.round(Hf*(92-A)))<<16)+(n+Bt(w.Math.round(Hf*(160-n)))<<8)+P+Bt(w.Math.round(Hf*(255-P)))),t.u=as(Fy,e),t.H=-24321,t.I=-6291392}function xQ(t){var e,A,n,P,r,i,f;do for(f=!1,A=0;A<t.j.i;A++)if(t.e[A]){for(r=!1,P=0;P<2;P++){for(n=q(t.j,P,A),e=!1,i=0;i<N(t.j,n);i++)if(A!=Nt(t.j,n,i)&&t.e[Nt(t.j,n,i)]){e=!0;break}if(!e){r=!0;break}}r&&(f=!0,u2(t,A))}while(f)}function C5(t){var e,A,n,P,r,i,f;do for(f=!1,A=0;A<t.k.i;A++)if(t.g[A]){for(r=!1,P=0;P<2;P++){for(e=!1,n=q(t.k,P,A),i=0;i<N(t.k,n);i++)if(A!=Nt(t.k,n,i)&&t.g[Nt(t.k,n,i)]){e=!0;break}if(!e){r=!0;break}}r&&(f=!0,CQ(t,A))}while(f)}function cj(t){var e,A,n,P,r,i;for(t.e=c(Ut,Tt,6,t.d,15,1),A=new Zt(t.a);A.a<A.c.a.length;)e=_t(A),e.ec(t.i,t.e);for(i=-1e8,n=.1,r=0;r<t.d;r++)t.e[r]*=n,t.e[r]>i&&(i=t.e[r]);if(i>10){for(;i*n>10;)n*=.5;for(P=0;P<t.d;P++)t.e[P]*=n}return n}function BZ(t){t=t||{};var e=t.countMode||DE;switch(e){case DE:return 4;case\"existence\":return 1;case\"firstMatch\":return 2;case\"separated\":return 3;case\"rigorous\":return 5;case\"unique\":return 6;default:throw new Error(\"invalid count mode: \"+e)}}function Ns(t,e){var A,n,P,r,i,f;return r=t.a*Ul+t.b*1502,f=t.b*Ul+11,A=w.Math.floor(f*UE),r+=A,f-=A*G4,r%=G4,t.a=r,t.b=f,e<=24?w.Math.floor(t.a*Mc[e]):(P=t.a*(1<<e-24),i=w.Math.floor(t.b*Cc[e]),n=P+i,n>=ko&&(n-=w8),n)}function wj(t,e){var A,n,P,r;if(t.L){if(gt(V(t.C[e],1),0))return!1;if(t.w!=null&&t.w[e]!=null){for(n=t.w[e],P=0,r=n.length;P<r;++P)if(A=n[P],!(A>=21&&A<=30||A>=39&&A<=48||A==57||A>=72&&A<=80||A==89||A>=104&&A<=112))return!1}}return oz(t.D[e])}function vZ(t,e,A,n,P,r){var i,f,D,Q,o,L,s;for(n8(t.k[A],n,P,r),s=t.o,L=c(Pt,it,6,s.r,16,1),D=c(B,F,6,s.r,15,1),D[0]=A,L[e]=!0,L[A]=!0,f=0,Q=0;f<=Q;){for(o=0;o<s.e[D[f]];o++)i=s.j[D[f]][o],L[i]||(L[i]=!0,D[++Q]=i,n8(t.k[i],n,P,r));++f}}function K0(t,e,A,n){var P;if(e==A)return-1;for(P=0;P<t.s;P++)if(t.F[0][P]==e&&t.F[1][P]==A||t.F[0][P]==A&&t.F[1][P]==e)return t.I[P]<n&&(t.I[P]=n),P;return t.s>=t.O&&oQ(t,t.O*2),t.F[0][t.s]=e,t.F[1][t.s]=A,t.I[t.s]=n,t.G[t.s]=0,t.H[t.s]=0,t.U=0,t.s++}function H5(t,e,A){var n,P,r,i,f,D;if(e==A)return 0;for(ut(t,1),i=c(B,F,6,t.r,15,1),r=c(B,F,6,t.r,15,1),r[0]=e,i[e]=1,P=0,f=0;P<=f;){for(D=0;D<t.e[r[P]];D++){if(n=t.j[r[P]][D],n==A)return i[r[P]];i[n]==0&&(r[++f]=n,i[n]=i[r[P]]+1)}++P}return-1}function NQ(t,e){var A,n;if(ut(t,1),t.k[e]==2&&t.o[e][0]==2&&t.o[e][1]==2){for(A=0;A<2;A++)for(n=0;n<t.e[t.j[e][A]];n++)if(_9(t,t.n[t.j[e][A]][n],t.j[e][A]))return t.n[t.j[e][A]][n]}else for(A=0;A<t.e[e];A++)if(_9(t,t.n[e][A],e))return t.n[e][A];return-1}function V5(t,e,A){var n,P,r,i,f,D;for(ut(t,1),r=c(B,F,6,t.g,15,1),D=c(Pt,it,6,t.g,16,1),r[0]=e,r[1]=A,D[e]=!0,D[A]=!0,P=1,i=1;P<=i;){for(f=0;f<t.k[r[P]];f++){if(n=t.j[r[P]][f],n==e&&P!=1)return-1;D[n]||(D[n]=!0,r[++i]=n)}++P}return i}function y2(t,e){var A;return e==null?null:(A=de(t.c,e),A||((e.endsWith(\"<\")||e.endsWith(\"-\"))&&(A=de(t.c,e.endsWith(\"<\")?hA(e,0,e.length-1)+\">\":e.endsWith(\"-\")?hA(e,0,e.length-1)+\"+\":e),A)?(A=new tp(A),We(t.c,e,A),A):null))}function FZ(t,e,A,n,P,r){var i,f,D,Q,o;for(f=new n1,i=s$(t,e),D=0;D<e.r;D++)for(Q=0;Q<D+1;Q++)o=tO(A,new zi(D,Q)),(o==(r9(),wi)||o==Y2)&&w.Math.abs(i[D])>Fo&&w.Math.abs(i[Q])>Fo&&Mn(new C3(e,D,Q))<n&&Ft(f,new CF(e,D,Q,o,i[D],i[Q],P,r));return f}function kZ(t,e,A,n,P){var r,i,f,D,Q;for(Q=-1,i=0;i<N(t.j,A);i++)if(Z(t.j,A,i)==e){Q=i;break}for(f=-1,r=0;r<N(t.d,P);r++)if(Z(t.d,P,r)==n){f=r;break}for(D=2;D<8;D++)if(t.p[A][Q][D]==null||js(t.p[A][Q][D],t.i[P][f][D])!=0)return D-2<<8;return 1536}function mZ(t,e,A,n){var P,r,i,f,D,Q,o;for(o=n.a.length,0<o?n.a=hA(n.a,0,0):0>o&&(n.a+=z8(c(Fr,Pe,6,-o,15,1))),D=mn(t.k,e)&&(t.j&4)==0,r=A,i=0,f=r.length;i<f;++i)P=r[i],n.a.length!=0&&(n.a+=\",\"),Q=(O1(),J0)[P],G(n,D?Q.toLowerCase():Q);return n.a}function bZ(t){var e,A;for(A=new gD,e=0;e<t.length;e++)switch(zt(e,t.length),t.charCodeAt(e)){case 38:A.a+=\"&&\";break;case 9:A.a+=\"&09\";break;case 10:A.a+=\"&0A\";break;case 32:A.a+=\"&20\";break;default:EB(A,(zt(e,t.length),t.charCodeAt(e)))}return A.a}function jZ(t,e,A,n,P){var r,i,f,D;if(t.j.length==0||t.n.a.length==0)return null;for(D=c(Pt,T0,12,e,0,2),f=c(Pt,it,6,n,16,1),i=0;i<P.length;i++)P[i]!=-1&&M1(t.f,i)==0&&(f[P[i]]=!0);for(r=0;r<A.length;r++)A[r]!=-1&&M1(t.g,r)==0&&(D[A[r]]=f);return D}function E5(t,e,A,n,P,r){var i,f,D,Q,o;for(n8(t.k[e],n,P,r),o=t.o,D=0;D<o.e[e];D++){if(i=o.j[e][D],f=!1,A!=null){for(Q=0;Q<A.length;Q++)if(i==A[Q]){f=!0;break}}f||(o.e[i]==1?n8(t.k[i],n,P,r):LA(o,o.n[e][D])?n8(t.k[i],n/3,P/3,r/3):vZ(t,e,i,n,P,r))}}function l2(t,e,A){var n,P,r,i;if(A==null||A.length==0){oT(t,e,null,null);return}n=A.indexOf(R0(32)),n>0&&n<A.length-1?oT(t,e,ln((r=(Mt(0,n,A.length),A.substr(0,n)),c0(),r)),ln((i=(zt(n+1,A.length+1),A.substr(n+1)),i))):oT(t,e,ln((P=A,c0(),P)),null)}function RZ(t,e){var A,n,P,r;for(t.f=O(e,0)==0?new P2:new $i(e),n=new Hu(t.d),A=null,P=0;P<12&&!(gt(t.n,0)&&(z1(),I1(E1(Date.now()),t.n)));P++){if(aj(t,n)||O(e,0)!=0)return n;A?A.e>n.e&&(r=A,A=n,n=r):(A=n,n=new Hu(t.d))}return A}function h2(t,e){var A,n,P,r,i,f;if(!t.b)return!1;for(P=!1,r=t.b.a.length-1;r>=0;r--)if(n=!1,i=x(t.b,r),i.a==2?n=A$(t,i.b,i.c,i.d,e):i.a==1&&(n=z_(t,i.b,e)),n){for(er(t.b,i),f=0;f<t.g[i.b].length;f++)A=t.g[i.b][f],t.n[A]=!1;P=!0}return P}function GQ(t,e,A){return dt(t,e)!=1?0:16-t.e[A]+16*w.Math.max(0,w.Math.min(9,t.q&&e<t.i?TP(t.q,e):0)-2)+((t.I[e]&384)==0||t.F[0][e]!=A?g8:0)+((t.v[A]&3)==0?E0:0)+(t.D[A]==1?q1:0)+(t.e[A]==1?ue:0)+((t.G[e]&64)!=0?0:512)+(t.D[A]!=6?256:0)}function gj(t,e,A,n){var P,r,i,f,D,Q,o;for(P=c(B,F,6,N(t.i,A),15,1),f=0,i=0;i<N(t.i,A);i++)P[f]=Z(t.i,A,i),!n[P[f]]&&Py(t,e,P[f])&&++f;if(f==0)return-1;if(f==1)return P[0];for(D=-1,Q=Et,r=0;r<f;r++)o=Gj(t.i,e,P[r],Et,n),o<Q&&(Q=o,D=P[r]);return D}function pZ(t,e){var A,n,P;e.j==1?N9(t.s):e.j==0?(KK(t),t.v=!0,N9(t.s)):K1(e.k)===K1(t.d)||K1(e.k)===K1(t.q)?Aj(t):K1(e.k)===K1(t.p)&&(P=v0(t.p),t.t!=P&&(n=t.t+v0(t.o),A=gT(t,P),n<P?$t(t.o,0):n<P+A?$t(t.o,n-P):$t(t.o,A-1),t.t=P))}function MZ(t,e){var A,n,P,r;return A=G9(t.R,e),n=sf(t.R,e,!1),P=sf(t.R,e,!0),r=-1,n!=P?A!=-1&&A>n?r=A<<24>>24:r=n<<24>>24:A!=-1?(A>P||A<P&&A>=G1(t.R,e))&&(r=A<<24>>24):!Ds(t.R,e)&&qh(t.R,e)!=0&&(r=G1(t.R,e),r-=Cu(t.R,e,r)),jq(t,e,r),r}function CZ(t){var e,A,n;for(e=0,A=0,n=0;n<t.g.a.length+t.f.a.length;n++)e+=G8(n<t.g.a.length?x(t.g,n):x(t.f,n-t.g.a.length))*(n<t.g.a.length?x(t.g,n):x(t.f,n-t.g.a.length)).s,A+=(n<t.g.a.length?x(t.g,n):x(t.f,n-t.g.a.length)).s;return A!=0?A/e:1}function HZ(t){var e,A,n;for(e=0,A=0,n=0;n<t.g.a.length+t.f.a.length;n++)e+=G8(n<t.g.a.length?x(t.g,n):x(t.f,n-t.g.a.length))*(n<t.g.a.length?x(t.g,n):x(t.f,n-t.g.a.length)).s,A+=(n<t.g.a.length?x(t.g,n):x(t.f,n-t.g.a.length)).s;return A!=0?A/e:1}function ee(t,e){var A,n,P,r;if(t.L){if(gt(V(t.C[e],1),0))return!1;if(t.w!=null&&t.w[e]!=null){for(n=t.w[e],P=0,r=n.length;P<r;++P)if(A=n[P],!(A>=3&&A<=4||A>=11&&A<=13||A>=19&&A<=31||A>=37&&A<=51||A>=55&&A<=84||A>=87&&A<=112))return!1}}return kK(t.D[e])}function Gs(t,e){var A,n,P,r;if(r=t.c.a.length,r==0)return f8(t.c,0,e),0;for(P=1;2*P<=r;)P<<=1;for(n=P,--P;n!=0;){if(n>>=1,P>=r){P-=n;continue}if(A=a9(e,x(t.c,P)),A==0)return-1;if(n==0)break;A<0?P-=n:P+=n}return P<r&&a9(e,x(t.c,P))>0&&++P,f8(t.c,P,e),P}function VZ(t){var e,A,n,P,r,i,f,D,Q;if(Q=1,n=dP(t,t.r,t.s,(O1(),Bn)),n!=0)(n<1||n>3)&&(Q=1.5/n);else{for(D=gM,e=1;e<t.r;e++)for(A=0;A<e;A++)r=t.K[A].a-t.K[e].a,i=t.K[A].b-t.K[e].b,f=t.K[A].c-t.K[e].c,P=r*r+i*i+f*f,D>P&&(D=P);Q=3/w.Math.max(.75,D)}return Q}function EZ(t){var e,A,n,P;for(A=0;A<t.R.g;A++)AA(t.e[A],A),a1(t.e[A],2*t.c+4,Wt(t.f[A],t.c+4));for(P=!1,e=0;e<t.R.g;e++)P=P|oy(t,e,3);for(n=0;n<t.R.i;n++)P=P|aQ(t,n,3);if(!P)return!1;for(;t.U<t.R.g&&(P=ka(t),!!P);)g2(t),t.P&&h2(t.P,t.f);return!0}function dj(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y;for(r=e.a[A],f=e.a[n],D=e.a[P],o=tm(t.a,e,A,n,P),s=-1,L=0;L<5&&s<0;L++)i=t.a.g.a[r-1][L],Q=t.a.g.a[D-1][L],i>Q&&(i=(y=U1(Q),U1(Q=i),y).a),s=f9(m(k(B,1),F,6,15,[2,1,3,0]),m(k(B,1),F,6,15,[f,i,Q,o]),t);return s}function SZ(t,e,A,n,P){var r,i,f;for(r=0,i=0,f=0;f<n;f++)r=(Lr(),at(yn(V(A[f],g1),V(P,g1)),V(Ot(r),g1))),i=at(Y1(V(t[e+f],g1),V(r,g1)),i),t[e+f]=Ot(i),i=G0(i,32),r=b0(r,32);return i=at(Y1(V(t[e+n],g1),r),i),t[e+n]=Ot(i),Ot(G0(i,32))}function IZ(t,e,A,n){var P,r,i,f,D,Q;for(i=c(B,F,6,t.f.r,15,1),f=c(B,F,6,t.f.r,15,1),i[0]=A,i[1]=e,f[A]=1,f[e]=2,r=1,D=1;r<=D;){for(Q=0;Q<N(t.f,i[r]);Q++){if(P=Z(t.f,i[r],Q),P==n)return 1+f[i[r]];f[P]==0&&Gi(t.f,P)&&(i[++D]=P,f[P]=f[i[r]]+1)}++r}return 0}function xZ(t,e,A,n){var P,r,i,f,D,Q,o;for(ut(t,1),n==null&&(n=c(Pt,it,6,t.r,16,1)),D=c(B,F,6,t.r,15,1),D[0]=e,n[e]=!0,i=0,Q=0,f=1;i<=Q;){for(r=A?t.j[D[i]].length:t.e[D[i]],o=0;o<r;o++)P=t.j[D[i]][o],P<n.length&&!n[P]&&(D[++Q]=P,n[P]=!0,++f);++i}return f}function Os(t,e){var A,n,P,r,i,f;for(i=0;i<2;i++)if(A=q(t.i,i,e),J(t.i,A)==7&&N(t.i,A)==2&&(n=q(t.i,1-i,e),J(t.i,n)==6)){for(f=0;f<N(t.i,n);f++)if(P=Z(t.i,n,f),r=Nt(t.i,n,f),(J(t.i,P)==8||J(t.i,P)==16)&&dt(t.i,r)==2&&N(t.i,P)==1)return!0}return!1}function NZ(t){var e,A,n;return A=t.l,(A&A-1)!=0||(n=t.m,(n&n-1)!=0)||(e=t.h,(e&e-1)!=0)||e==0&&n==0&&A==0?-1:e==0&&n==0&&A!=0?$L(A):e==0&&n!=0&&A==0?$L(n)+22:e!=0&&n==0&&A==0?$L(e)+44:-1}function OQ(t,e,A,n,P){t[e[0]][e[1]]?t[e[0]][e[1]].a.length==2||t[e[0]][e[1]].c<P?t[e[0]][e[1]]=new cT(e,A,n,P):t[e[0]][e[1]].c==P&&(t[e[0]][e[1]].a[0]=(t[e[0]][e[1]].a[0]+n)/2,t[e[0]][e[1]].b=dX(t[e[0]][e[1]].b,A)):t[e[0]][e[1]]=new cT(e,A,n,P)}function GZ(t,e,A){var n,P,r,i,f,D,Q;if(Ct(t.d,A)==1&&(r=Z(t.d,A,0),MU(t.d,r))){for(n=e.k[A],P=e.k[r],D=new Ke(P.a-n.a,P.b-n.b,P.c-n.c),i=0;i<N(t.d,r);i++)if(f=Z(t.d,r,i),Gi(t.d,f)&&(Q=_8(P,e.k[f]),_b(D,Q)>HA))return!1;return X8(X8(n,D),D),!0}return!1}function OZ(t){var e,A,n,P,r,i;for(e=0;e<t.k.i;e++)if(t.g[e]){for(r=!0,P=0;P<2&&r;P++)for(A=q(t.k,P,e),i=0;i<N(t.k,A)&&r;i++)e!=Nt(t.k,A,i)&&t.g[Nt(t.k,A,i)]&&(r=!1);if(r)for(w0(t.k,e,8),--t.c,n=0;n<2;n++)A=q(t.k,n,e),W0(t.k,A)&&(_n(t.k,A,!1),--t.b)}}function qZ(t,e){e.j==0?(rK(t),t.B=!0,N9(t.v)):e.j==1?N9(t.v):K1(e.k)===K1(t.b)?e.a==1?(Y8(t.D,\"\"),tL(t.w,m4)):(Y8(t.D,Vi(t.A,t.a)),tL(t.w,$V)):K1(e.k)===K1(t.c)?(yA(t.f,!1),$t(t.n,0),$t(t.j,0)):K1(e.k)===K1(t.f)&&yA(t.c,!1)}function zZ(t,e,A,n,P){var r,i,f,D,Q,o;for(r=1/(1+w.Math.exp(t-5)),o=1-1/(1+w.Math.exp(e+5)),Q=1/(1+w.Math.exp(.012*A-6)),i=1-1/(1+w.Math.exp(n)),f=(.5+r/2)*(.5+o/2)*(.5+Q/2)*(.5+i/2),D=0;P!=null&&D<P.length;D++)P[D]==2?f*=.8:P[D]==3&&(f*=.6);return f}function Bj(t){var e,A,n,P,r,i,f;for(n=0,A=0;A<t.r;A++)(t.v[A]&512)!=0&&++n;if(n==0)return null;for(r=0,P=0;P<t.s;P++)(t.v[t.F[0][P]]&t.v[t.F[1][P]]&512)!=0&&++r;for(f=c(Pt,it,6,t.r,16,1),e=0;e<t.r;e++)f[e]=(t.v[e]&512)!=0;return i=new SA(n,r),L9(t,i,f,!1,null),i}function KZ(t,e){var A,n,P,r,i,f,D,Q;for(i=0,n=e,P=0,r=n.length;P<r;++P)A=n[P],A==-1&&++i;for(Q=c(B,F,6,e.length-i,15,1),D=0,f=0;f<e.length;f++)e[f]!=-1&&(Q[D]=C0(t.g,f)<<16|C0(t.H,e[f]),t.i!=null&&(Q[D]|=t.i[f]<<24),++D);return Q.sort(pe(u0.prototype.ld,u0,[])),Q}function qs(t,e){var A,n;A=-1,n=0,(t.H[e]&16)!=0&&(A=16,++n),(t.H[e]&64)!=0&&(A=64,++n),(t.H[e]&32)!=0&&(A=32,++n),(t.H[e]&4)!=0&&(A=4,++n),(t.H[e]&2)!=0&&(A=2,++n),(t.H[e]&8)!=0&&(A=8,++n),(t.H[e]&1)!=0&&(A=1,++n),A!=-1&&A!=(t.I[e]&127)&&(t.I[e]=A),n<2&&(t.H[e]&=-128)}function JZ(t,e){var A,n;t.c==e.c?t.i=(Dr(),Io):rr(e.c)==1?(t.g=e.c==1?1:e.c==2?386:e.c==4?4:e.c==16?16:8,t.i=(Dr(),Fl)):(A=(t.c&16)!=0?0:(t.c&1)!=0?1:(t.c&2)!=0?2:3,n=(e.c&16)!=0?0:(e.c&1)!=0?1:(e.c&2)!=0?2:3,n==A?t.i=(Dr(),Io):(t.f=n-A,t.i=(Dr(),kl)))}function YZ(t,e,A,n,P,r){var i,f,D,Q,o,L;return Q=o1(e,n,P),i=l8(t,e,A,n),f=l8(t,e,n,P),D=l8(t,e,P,r),L=f,f==0&&dt(e,Q)==1&&(i==1||D==1)&&(L=2),o=r_(e,A,n,P,r),o==4&&o1(e,A,P)==-1&&o1(e,n,r)==-1?40+L:o==5&&(e.a[A]==1||e.a[n]==1||e.a[P]==1||e.a[r]==1)?50+L:L}function XZ(t){var e,A,n;return!t.startsWith(J6)||!t.endsWith(Y6)||(A=t.indexOf(R0(34),21),A==-1)?null:(n=(Mt(21,A,t.length),t.substr(21,A-21)),e=hA(t,21+n.length+1,t.length-17),e1(n,\"arrow\")?new np(e):e1(n,\"text\")?new uR(e):null)}function ZZ(t){var e,A,n,P,r,i,f,D;for(ut(t,1),f=c(Oe,uA,6,t.g,15,1),n=c(B,F,6,t.g,15,1),D=0;D<t.g;D++){for(n[0]=D,P=c(B,F,6,t.g,15,1),P[D]=1,A=0,r=0;A<=r;){for(i=0;i<t.k[n[A]];i++)e=t.j[n[A]][i],P[e]==0&&(P[e]=P[n[A]]+1,n[++r]=e,f[D]+=P[e]-1);++A}f[D]/=r}return f}function WZ(t){var e,A,n;for(t.n=c(B,F,6,t.j,15,1),t.k=c(B,F,6,t.j,15,1),t.o=c(B,F,6,t.j,15,1),e=0;e<t.i.g;e++)t.b[e]!=0&&(n=t.b[e]-1,t.a!=null&&(t.k[n]+=t.a[e]),t.c!=null&&(t.o[n]+=t.c[e]));for(A=0;A<t.i.i;A++)t.g[A]&&dt(t.i,A)==2&&(t.n[t.b[q(t.i,0,A)]-1]+=2)}function zs(){zs=v1,nc=w.Math.cos(C2),fc=w.Math.sin(C2),rc=w.Math.cos(F4),uc=w.Math.sin(F4),Ho=w.Math.cos(fA),Vo=w.Math.sin(fA),Pc=w.Math.cos(go),Dc=w.Math.sin(go),ic=w.Math.cos(a6),Qc=w.Math.sin(a6),w.Math.cos(mC),w.Math.sin(mC)}function _Z(t){var e,A,n,P,r;return isNaN(t)?(ti(),Bc):t<-9223372036854776e3?(ti(),fS):t>=9223372036854776e3?(ti(),gc):(P=!1,t<0&&(P=!0,t=-t),n=0,t>=UP&&(n=Bt(t/UP),t-=n*UP),A=0,t>=oP&&(A=Bt(t/oP),t-=A*oP),e=Bt(t),r=N0(e,A,n),P&&is(r),r)}function S5(t,e){ni();var A,n,P,r,i;return A=t&qn,i=(t&QP)>>16,P=(t&DP)>>8,n=t&255,r=Bt(1/(1-e)),i==0&&P==0&&n==0?A|r<<16|r<<8|r:(i>0&&i<r&&(i=r),P>0&&P<r&&(P=r),n>0&&n<r&&(n=r),A|w.Math.min(Bt(i/e),255)<<16|w.Math.min(Bt(P/e),255)<<8|w.Math.min(Bt(n/e),255))}function $Z(t,e){var A,n,P,r,i,f,D,Q,o;for(D=kn(t.e),Q=x(D.k,e).length,f=x(D.k,e),o=!1,P=0;P<Q;P++)if(t.f[f[P]]==0){o=!0;break}if(o){for(A=(180*Q-360)/Q*.01745329238474369,i=x(D.j,e),r=0;r<Q;r++)f5(t,i[r],f[r==0?Q-1:r-1],f[r],A);if(Q<=4)for(n=0;n<Q;n++)t.f[f[n]]+=Q}}function qQ(t,e,A,n){this.b=c(oc,e0,48,2,0,1),this.b[0]=t,this.b[1]=e,this.c=c(Ut,Tt,6,2,15,1),this.d=c(Ut,Tt,6,2,15,1),this.c[0]=Uu(this.b[0],A),this.d[0]=Lu(this.b[0],A),this.c[1]=Uu(this.b[1],n),this.d[1]=Lu(this.b[1],n),this.a=c(B,F,6,2,15,1),this.a[0]=1,this.a[1]=1}function aZ(t){ni();var e,A,n,P;return P=t.a>>16&255,n=t.a>>8&255,A=t.a&255,e=t.a>>24&255,P==0&&n==0&&A==0?new NL(5,5,5,e):(P>0&&P<5&&(P=5),n>0&&n<5&&(n=5),A>0&&A<5&&(A=5),new NL(w.Math.min(Bt(P/zf),255),w.Math.min(Bt(n/zf),255),w.Math.min(Bt(A/zf),255),e))}function tW(t,e){var A,n,P,r;this.a=new mh((n=Sy,n)),ut(t,15),r=(z1(),nn),this.b=e,P=t.Q!=null?t.Q:\"\",G(this.b,P+r),G(this.b,hM+(tQ(t)?\"3D\":\"2D\")+r+r),G(this.b,\"  0  0  0  0  0  0              0 V3000\"+r),this.c=1,A=CJ(t),A&&(this.c=VZ(t)),iM(this,t,A),G(this.b,hr+r)}function Ks(t,e){Lr();var A,n,P,r,i,f,D,Q,o;return e.d>t.d&&(f=t,t=e,e=f),e.d<63?gW(t,e):(i=(t.d&-2)<<4,Q=AT(t,i),o=AT(e,i),n=_s(t,_r(Q,i)),P=_s(e,_r(o,i)),D=Ks(Q,o),A=Ks(n,P),r=Ks(_s(Q,n),_s(P,o)),r=v2(v2(r,D),A),r=_r(r,i),D=_r(D,i<<1),v2(v2(D,r),A))}function l8(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y;for(P=e.a[A],r=e.a[n],o=o1(e,A,n),L=!0,y=(ut(e,7),e.q),s=0;s<y.j.a.length&&L;s++)for(f=x(y.k,s),D=0,Q=f.length;D<Q;++D)if(i=f[D],i==o&&e.b[s]==0){L=!1;break}return dt(e,o)==1&&L&&(sL(t.b,P)&&sL(t.b,r)||nv(t.b,P)&&nv(t.b,r))?1:0}function Q9(t,e){A9();var A,n,P,r;if(isNaN(t))return\"NaN\";if(!isNaN(t)&&!isFinite(t))return\"Infinity\";if(t==0)return\"0\";for(P=1,n=1;n<e;n++)P*=10;for(r=P*10,A=0;w.Math.abs(t)+.5<P;)t*=10,--A;for(;w.Math.abs(t)+.5>=r;)t/=10,++A;return Gtt(E1(t+(t<0?-.5:.5)),A,e,!0)}function eW(t){var e,A,n,P,r,i;for(n=0,r=0;r<t.e.length;r++)for(e=t.e[r],A=Ct(t.j,e),i=0;i<A;i++)Z(t.j,e,i)>e&&++n;for(t.f=c(B,F,6,n,15,1),t.g=c(B,F,6,t.j.r,15,1),n=0,P=0;P<t.e.length;P++)for(e=t.e[P],A=Ct(t.j,e),t.g[e]=P,i=0;i<A;i++)Z(t.j,e,i)>e&&(t.f[n++]=Nt(t.j,e,i))}function AW(t,e,A){var n,P,r,i,f,D,Q,o;for(n=A.i,o=new n1,P=new ji,i=0;i<n;i++)sT(e.a,i)&&(f=A.F[0][i],D=A.F[1][i],xA(P,U1(f)),xA(P,U1(D)));for(r=0;r<n;r++)sT(e.a,r)||(f=A.F[0][r],D=A.F[1][r],(du(P,U1(f))||du(P,U1(D)))&&(Q=new Nm(e.a),DR(t,r,Q),o.a.push(Q)));return o}function nW(t){for(var e,A,n,P,r,i;;){for(r=c(Pt,it,6,t.U+1,16,1),n=-1,A=0;A<t.R.g;A++)yf(t.R,A)!=0&&(r[t.f[A]]&&n<t.f[A]&&(n=t.f[A]),r[t.f[A]]=!0);if(n==-1)break;for(P=0,e=0;e<t.R.g;e++)i=0,t.f[e]==n&&(i=++P),AA(t.e[e],e),a1(t.e[e],t.c,t.f[e]),a1(t.e[e],8,i);t.U=tP(t)}}function vj(t,e){var A,n,P,r,i;if(t.r==0)return null;for(n=t.K[0].a,r=t.K[0].b,P=t.K[0].a,i=t.K[0].b,A=1;A<t.r;A++)n>t.K[A].a?n=t.K[A].a:P<t.K[A].a&&(P=t.K[A].a),r>t.K[A].b?r=t.K[A].b:i<t.K[A].b&&(i=t.K[A].b);return e?(e.c=n,e.d=r,e.b=P-n,e.a=i-r):e=new lA(n,r,P-n,i-r),e}function Fj(t,e,A){var n,P,r,i;for(i=1,P=0;P<t.g.r;P++)t.i[3*P]=mt(t.g,P),t.i[3*P+1]=Rt(t.g,P),t.i[3*P+2]=oA(t.g,P);if(i=Wtt(t,e,A),i==0)for(n=0;n<t.g.r;n++)ge(t.g,n,t.i[3*n]),Ve(t.g,n,t.i[3*n+1]),Xn(t.g,n,t.i[3*n+2]);for(r=new Zt(t.c);r.a<r.c.a.length;)_t(r),null.zd();return i}function PW(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y;for(r=!1,P=0;P<2;P++)if(A=q(t.g,P,e),o=t.G[A],N(t.H,o)>2){for(s=q(t.g,1-P,e),D=Et,f=0;f<N(t.g,A);f++)n=Z(t.g,A,f),n!=s&&D>n&&(D=n);for(y=t.G[s],Q=Et,i=0;i<N(t.H,o);i++)L=Z(t.H,o,i),L!=y&&Q>L&&(Q=L);t.G[D]!=Q&&(r=!r)}return r}function rW(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y;for(Q=new Zt(e);Q.a<Q.c.a.length;)if(D=_t(Q),D.vd()==1){for(f=D.f,L=t,s=0,y=L.length;s<y;++s){if(o=L[s],o==-1)return!1;for(A=!1,P=f,r=0,i=P.length;r<i;++r)if(n=P[r],o==n){A=!0;break}if(!A)return!1}return!0}return!1}function iW(t,e,A,n,P){var r,i,f,D,Q,o,L;if(A)return k$(e,n[1],n[2]);for(Q=j1(Pt,[T0,it],[12,6],16,[2,e.r],2),i=c(B,F,6,2,15,1),f=0;f<2;f++)i[f]=JQ(e,n[1+f],P[f],Q[f],null,null);for(L=i[0]<i[1]?0:1,o=c(B,F,6,i[L],15,1),D=0,r=0;r<e.r;r++)Q[L][r]&&(o[D++]=r);return t.a=L==1,o}function kj(t,e){var A,n,P,r,i,f;for(P=0;P<t.b;P++)if(t.e[P][e]&&t.c[P]!=-3){for(n=0;n<=t.j.g.length;n++)if(n!=e&&t.e[P][n])for(t.e[P][e]=!1,f=P<t.a?P:P<t.b?P-t.a:-1,i=_N(t,P<t.a?1:P<t.b?2:0),r=0;r<t.j.g[e].length;r++)A=t.j.g[e][r],B3(t.j,A)&&t.j.j[A]==f&&(t.j.j[A]=i<<24>>24)}}function df(t){var e,A,n,P,r;for(r=new M0,P=t.length,n=0;n<P;n++)switch(e=_m(t,n,t.length),A=e&d1,e){case 38:r.a+=\"&amp;\";break;case 60:r.a+=\"&lt;\";break;case 62:r.a+=\"&gt;\";break;case 34:r.a+=\"&quot;\";break;case 39:r.a+=\"&apos;\";break;default:r.a+=String.fromCharCode(A)}return r.a}function fW(t){var e,A,n,P;for(e=0;e<t.k.g;e++)if(J(t.k,e)==7&&R1(t.k,e)==0&&G1(t.k,e)>3&&t0(t.k,e)>0){for(P=0;P<N(t.k,e);P++)if(A=Z(t.k,e,P),n=Nt(t.k,e,P),dt(t.k,n)>1&&rA(t.k,A)){c1(t.k,n)==4?w0(t.k,n,2):w0(t.k,n,1),m0(t.k,e,R1(t.k,e)+1),m0(t.k,A,R1(t.k,A)-1),tn(t.k,e,-1);break}}}function DW(t,e){var A,n,P,r,i,f;for(r=t.indexOf(e+\"=(\")+e.length+2,i=t.indexOf(R0(41),r),P=De(t,r),A=L1((Mt(r,P,t.length),t.substr(r,P-r)),f1,Et),f=c(B,F,6,A,15,1),n=0;n<A;n++)r=gA(t,P),P=De(t,r),(P==-1||P>i)&&(P=i),f[n]=L1((Mt(r,P,t.length),t.substr(r,P-r)),f1,Et);return f}function mj(t,e){var A;if(A=0,e<t.i&&(q8(t.q,e)||t.I[e]==8)||t.I[e]==8)A|=8;else switch(dt(t,e)){case 0:A|=16;break;case 1:A|=1;break;case 2:A|=2;break;case 3:A|=4;break;case 4:A|=32;break;case 5:A|=64}return(t.G[e]&64)!=0?A|=256:t.L||(A|=128),e<t.i&&Ee(t.q,e)?A|=KA:t.L||(A|=oP),A}function bj(t,e,A,n,P){var r;if(T2(e,A,n,P,3))return 60;if(T2(e,A,n,P,4))return 90;switch(r=e.a[n],pn(t.a.b,r)){case 2:if(e.D[n]==8)return 105;if(ZD(t.a.b,r))return 180;break;case 3:if(u8(t.a.b,r)==3&&NA(t.a.b,r)==0)return e.D[n]==7?107:92;break;case 4:return 109.45}return 120}function uW(t,e,A){var n,P,r,i,f,D,Q,o;for(n=!1,D=0;D<e.j.a.length;D++)if(x(e.k,D).length==6){for(f=!0,Q=x(e.j,D),o=x(e.k,D),r=0;r<6;r++)if(!cf(t,Q[r],!1)||!t.e[o[r]]){f=!1;break}if(f){if(A)for(i=0;i<6;i++)cf(t,Q[i],!0);for(P=0;P<6;P+=2)u2(t,o[P]);n=!0;break}}return n}function a1(t,e,A){t.b==0&&(++t.c,t.b=63),t.b==63?(t.d[t.c]=z(t.d[t.c],A),t.b-=e):t.b>=e?(t.d[t.c]=Wt(t.d[t.c],e),t.d[t.c]=z(t.d[t.c],A),t.b-=e):(t.d[t.c]=Wt(t.d[t.c],t.b),t.d[t.c]=z(t.d[t.c],G0(A,e-t.b)),e-=t.b,++t.c,t.b=63-e,t.d[t.c]=z(t.d[t.c],V(A,(1<<e)-1)))}function jj(t,e,A,n){var P,r,i,f;if(n==1&&!dT(t,e)){if(N(t.b,e)==3)return-1;if(N(t.b,e)==3)return P=Fm(t,e,A),C0(t.b,P[0])==C0(t.b,P[1])?P[2]:C0(t.b,P[0])==C0(t.b,P[2])?P[1]:P[0]}for(i=-1,f=-1,r=0;r<N(t.b,e);r++)P=Z(t.b,e,r),P!=A&&i<C0(t.b,P)&&(i=C0(t.b,P),f=P);return f}function Rj(t){var e,A,n,P,r,i,f,D;for(t.c=0,A=new n1,P=1;P<t.e.length;P++)for(r=0;r<P;r++)f=w.Math.abs(t.a[P]-t.a[r]),D=w.Math.abs(t.b[P]-t.b[r]),n=w.Math.sqrt(f*f+D*D),n<.8&&(e=c(B,F,6,2,15,1),e[0]=t.e[P],e[1]=t.e[r],A.a.push(e)),i=1-w.Math.min(n,1),t.c+=i*i;return A}function QW(t){var e;return e=new LD,Ft(e.a,new ae(\"The polar surface area prediction is based on an atom-type based\",2)),Ft(e.a,new ae(\"increment system, published by P. Ertl, B. Rohde, P. Selzer\",2)),Ft(e.a,new ae(\"in J. Med. Chem. 2000, 43, 3714-3717\",2)),Ft(e.a,new ae(k4,2)),hK(t,e),e}function oW(t){var e,A,n,P,r,i,f;for(f=t.U&248,ut(t,1),i=c(B,F,6,t.g,15,1),A=0;A<t.g;A++)i[A]=xt(t,A);for(n=0;n<i.length;n++)if(i[n]!=0)for(r=0;r<i[n];r++)K0(t,n,i9(t,1),1);for(ut(t,1),P=.8*dP(t,t.r,t.s,(O1(),Bn)),e=0;e<i.length;e++)i[e]!=0&&ma(t,e,i[e],P);(f&8)!=0&&(t.U|=248&(8|f))}function pj(t){var e,A,n,P;for(P=!1,A=0;A<t.r;A++)gt(V(t.C[A],ne),0)&&(t.D[A]=-1,P=!0);for(P&&ui(t),t.w!=null&&(t.w=null,P=!0),e=0;e<t.r;e++)gt(t.C[e],0)&&(t.C[e]=0,P=!0);for(n=0;n<t.s;n++)t.H[n]!=0&&(t.H[n]=0,P=!0),t.I[n]==8&&(t.I[n]=1,P=!0);return P&&(t.U=0),P}function UW(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(i=c(B,F,6,P,15,1),r=0;r<t.f.r;r++){for(D=0;D<Ct(t.f,r);D++){for(s=A[Z(t.f,r,D)],Q=0;Q<D&&!(s<i[Q]);Q++);for(o=D;o>Q;o--)i[o]=i[o-1];i[Q]=s}for(L=Ct(t.f,r),AA(e[r],r),a1(e[r],n,A[r]),a1(e[r],(P-L)*(n+1),0),f=0;f<L;f++)a1(e[r],n+1,i[f])}}function Mj(t,e){var A,n;for(this.b=c(oc,e0,48,2,0,1),this.b[0]=t,this.b[1]=e,this.c=c(Ut,Tt,6,2,15,1),this.d=c(Ut,Tt,6,2,15,1),this.a=c(B,F,6,2,15,1),A=0;A<2;A++){for(n=0;n<this.b[A].e.length;n++)this.c[A]+=Uu(this.b[A],n),this.d[A]+=Lu(this.b[A],n);this.a[A]=this.b[A].e.length}}function LW(t,e){var A,n,P;if(A=q(t.R,0,e),A>=t.R.g)return!1;if(t.db[A]==1||t.db[A]==2)return!0;if(t.db[A]==3)return!1;if(n=gs(t.R,A),n!=-1)return t.o[n]==1||t.o[n]==2;for(P=0;P<N(t.R,A);P++)if(EA(t.R,A,P)==2&&(t.db[Z(t.R,A,P)]==1||t.db[Z(t.R,A,P)]==2))return!0;return!1}function I5(t,e,A,n,P){var r,i,f,D,Q;for(t.L=t.L|e.L,i=c(B,F,6,e.r,15,1),D=Ae(t,1),Q=Ae(t,2),r=0;r<A;r++)(P||A0(V(e.C[r],ne),0))&&(i[r]=Gn(e,t,r,D,Q));for(f=0;f<n;f++)(P||!se(e,e.F[0][f])&&!se(e,e.F[1][f]))&&o9(e,t,f,D,Q,i[e.F[0][f]],i[e.F[1][f]],!1);return t.M=t.M&&e.M,t.J=0,t.U=0,i}function sW(t,e,A){var n,P;if(e<3||(n=e-1,(t[n]==43||t[n]==45)&&--n,!Rn(t[n]&d1))||(--n,t[n]!=68&&t[n]!=82&&t[n]!=88&&t[n]!=122))return!1;for(A[0]=0;n>0&&tv(t[n-1]);)--n,++A[0];for(P=e+1;tv(t[n]);){if(t.length<=P||t[n]!==t[P])return!1;++n,++P}return!0}function yW(t,e){var A,n,P,r,i,f,D,Q,o;return Q=t.e,Q==0?(Ce(),vr):(n=t.d,A=t.a,n==1?(P=yn(V(A[0],g1),V(e,g1)),D=Ot(P),i=Ot(b0(P,32)),i==0?new RA(Q,D):new ye(Q,2,m(k(B,1),F,6,15,[D,i]))):(f=n+1,r=c(B,F,6,f,15,1),r[n]=ws(r,A,n,e),o=new ye(Q,f,r),Hn(o),o))}function lW(t,e){var A,n,P,r,i,f;if(e.startsWith(\"M  CHG\")&&(r=L1(k1((Mt(6,9,e.length),e.substr(6,3))),f1,Et),r>0))for(A=10,f=14,i=1;i<=r;++i,A+=8,f+=8)n=L1(k1((Mt(A,A+3,e.length),e.substr(A,A+3-A))),f1,Et)-1,P=L1(k1((Mt(f,f+3,e.length),e.substr(f,f+3-f))),f1,Et),m0(t.j,n,P)}function hW(t,e){var A,n,P,r,i,f;if(e.startsWith(\"M  ISO\")&&(P=L1(k1((Mt(6,9,e.length),e.substr(6,3))),f1,Et),P>0))for(A=10,f=14,r=1;r<=P;++r,A+=8,f+=8)n=L1(k1((Mt(A,A+3,e.length),e.substr(A,A+3-A))),f1,Et)-1,i=L1(k1((Mt(f,f+3,e.length),e.substr(f,f+3-f))),f1,Et),O9(t.j,n,i)}function Cj(t,e){var A,n,P,r,i;if(n=e>>5,e&=31,n>=t.d)return t.e<0?(Ce(),Rc):(Ce(),vr);if(r=t.d-n,P=c(B,F,6,r+1,15,1),Sb(P,r,t.a,n,e),t.e<0){for(A=0;A<n&&t.a[A]==0;A++);if(A<n||e>0&&t.a[A]<<32-e!=0){for(A=0;A<r&&P[A]==-1;A++)P[A]=0;A==r&&++r,++P[A]}}return i=new ye(t.e,r,P),Hn(i),i}function TW(t,e){var A,n,P,r,i,f,D;for(P=c(Pt,it,6,t.L.r,16,1),n=0;n<t.L.s;n++)Xh(t.L,n)&&(P[q(t.L,0,n)]=!0,P[q(t.L,1,n)]=!0);for(i=new iD,A=0;A<t.L.r;A++)r=se(t.L,A)?e*.47:P[A]?e*.38:0,r!=0&&(f=W1(t.R,mt(t.L,A)),D=Z1(t.R,Rt(t.L,A)),i.c=f-r,i.d=D-r,i.b=r*2,i.a=r*2,t.v=pQ(t.v,i))}function cW(t){var e,A,n,P;for(P=new M0,A=0;A<t.g.a.length;A++)A!=0&&(P.a+=\".\"),G(P,Eu(new dD(x(t.g,A),2)));for(P.a+=\">\",n=0;n<t.a.a.length;n++)n!=0&&(P.a+=\".\"),G(P,Eu(new tg(x(t.a,n))));for(P.a+=\">\",e=0;e<t.f.a.length;e++)e!=0&&(P.a+=\".\"),G(P,Eu(new dD(x(t.f,e),2)));return P.a}function Hj(t,e){Lb(),this.n=t,this.a=e,this.i=H6(this.a._,M4),pz(this.i),this.g=H6(this.a._,M4),vJ(this.g),this.o=2*p8+ek(_U(this.i)/4|0),this.e=2*p8+ek(aU(this.i)/4|0),this.c=H6(this.a._,PE),this.j=(Re==-1&&(Re=globalThis.devicePixelRatio||1),4/Re),this.b=5,this.k=-1,this.f=-1,this.a.db=this}function wW(t,e,A,n,P){if(!Ip(t,e,P))return!1;if(t.s==null)t.t=new ZQ(e),uU(t.t,t.v),z5(t.t,t.o,-1);else{switch(t.b=new Ji(new fD),A){case 2:t.B=new zL(t,!1,t.o);break;case 3:t.B=new zL(t,!0,t.o);break;case 4:t.B=new v3(t,t.o);break;case 1:t.B=new Dj(t)}md(t.B,n)}return!0}function T2(t,e,A,n,P){var r,i,f,D,Q,o,L,s;if(s=(ut(t,7),t.q),Q=new ji,xA(Q,U1(e)),xA(Q,U1(A)),xA(Q,U1(n)),o1(t,e,A)>=0&&o1(t,A,n)>=0){for(o=0;o<s.j.a.length;o++)if(x(s.k,o).length==P){for(L=new ji,i=x(s.j,o),f=0,D=i.length;f<D;++f)r=i[f],xA(L,U1(r));if(UQ(L,Q))return!0}}return!1}function Vj(t,e,A,n){var P,r,i,f,D,Q,o,L,s;for(ut(t,1),r=0;r<t.r;r++)e[r]=-1;for(Q=0,P=0;P<t.r;P++)if(e[P]==-1){for(e[P]=Q,o=c(B,F,6,t.r,15,1),o[0]=P,D=0,L=0;D<=L;){for(f=n?t.j[o[D]].length:t.e[o[D]],s=0;s<f;s++)i=t.j[o[D]][s],e[i]==-1&&!A[t.n[o[D]][s]]&&(o[++L]=i,e[i]=Q);++D}++Q}return Q}function Ej(t){var e,A,n;if(t.L)for(ut(t,7),e=0;e<t.i;e++)n=rr(t.H[e]&127),(e<t.i&&(q8(t.q,e)||t.I[e]==8))&(t.H[e]&8)!=0&&(t.H[e]&=-9,--n),n!=0&&(A=t.I[e]&127,A==1?t.H[e]|=1:A==2?t.H[e]|=2:A==4?t.H[e]|=4:A==32?t.H[e]|=32:A==64?t.H[e]|=64:A==16?t.H[e]|=16:A==8&&(t.H[e]|=8))}function x5(t,e,A,n,P,r,i,f,D){var Q,o,L,s,y;return s=n<Co.length&&Co[n]?w.Math.min(3,r):0,y=P<Co.length&&Co[P]?w.Math.min(3,i):0,f=w.Math.min(7,f),D=w.Math.min(7,D),Q=f+(s<<3)+(w.Math.min(127,n)<<5),o=D+(y<<3)+(w.Math.min(127,P)<<5),L=A?8:e?8+t:t,(L<<24)+(Q<o?(Q<<12)+o:(o<<12)+Q)}function gW(t,e){var A,n,P,r,i,f,D,Q,o,L,s;return n=t.d,r=e.d,f=n+r,D=t.e!=e.e?-1:1,f==2?(o=yn(V(t.a[0],g1),V(e.a[0],g1)),s=Ot(o),L=Ot(b0(o,32)),L==0?new RA(D,s):new ye(D,2,m(k(B,1),F,6,15,[s,L]))):(A=t.a,P=e.a,i=c(B,F,6,f,15,1),wK(A,n,P,r,i),Q=new ye(D,f,i),Hn(Q),Q)}function Sj(t,e){var A,n,P,r,i,f;if(dt(t,e)!=1)return!1;for(r=0;r<2;r++){for(A=t.F[r][e],f=t.F[1-r][e];t.p[A]==2&&t.k[A]==2&&t.D[A]<10;)for(i=0;i<2;i++)if(n=t.j[A][i],n!=f){if(t.k[n]==1||(P=t.n[A][i],dt(t,P)==1&&P<e))return!0;f=A,A=n;break}if(t.k[A]==1)return!0}return!1}function Ij(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y;for(y=c(Pt,it,6,n.length,16,1),f=t,Q=0,L=f.length;Q<L;++Q)if(r=f[Q],e[r]==0){if(n[A[r]]||y[A[r]])return!1;y[A[r]]=!0}for(s=-1,i=t,D=0,o=i.length;D<o;++D)if(r=i[D],e[r]==0){if(s==-1)s=P[r];else if(P[r]!=s)return!1}return!0}function xj(t,e,A,n){var P,r;if(e){if(P=t.a.Rb(A.c,e.c),P==0)return n.d=Sd(e,A.d),n.b=!0,e;r=P<0?0:1,e.a[r]=xj(t,e.a[r],A,n),WP(e.a[r])&&(WP(e.a[1-r])?(e.b=!0,e.a[0].b=!1,e.a[1].b=!1):WP(e.a[r].a[r])?e=rQ(e,1-r):WP(e.a[r].a[1-r])&&(e=Fv(e,1-r)))}else return A;return e}function Nj(t,e,A,n,P){var r,i,f;return r=A==-1?w.Math.abs(P[e].a-P[t.B[0]].a)/8:w.Math.abs(P[e].a-P[A].a),n<r&&(n=r),i=A==-1?w.Math.abs(P[e].b-P[t.B[0]].b)/8:w.Math.abs(P[e].b-P[A].b),n<i&&(n=i),t.jb&&(f=A==-1?w.Math.abs(P[e].c-P[t.B[0]].c)/8:w.Math.abs(P[e].c-P[A].c),n<f&&(n=f)),n}function Gj(t,e,A,n,P){var r,i,f,D,Q,o;if(e==A)return 0;for(t._b(1),D=c(B,F,6,t.r,15,1),f=c(B,F,6,t.r,15,1),f[0]=e,D[e]=1,i=0,Q=0;i<=Q&&D[f[i]]<=n;){for(o=0;o<t.e[f[i]];o++){if(r=t.j[f[i]][o],r==A)return D[f[i]];D[r]==0&&(P==null||P.length<=r||!P[r])&&(f[++Q]=r,D[r]=D[f[i]]+1)}++i}return-1}function dW(t,e,A){var n,P,r,i,f;return r=nJ(e,A),r==-1?-1:(P=(n=De(e,r+1),n==-1?e.length:n),i=(Mt(A,r,e.length),e.substr(A,r-A)),f=(Mt(r+1,P,e.length),e.substr(r+1,P-(r+1))),(f.startsWith(\"(\")&&f.endsWith(\")\")||f.startsWith('\"')&&f.endsWith('\"'))&&(f=hA(f,1,f.length-1)),We(t,i,f),gA(e,P))}function iA(t,e){var A;return y1(e),A=2-t.e,A==0?t:A>0?A<vi.length&&t.a+Vl[Bt(A)]<54?new y3(t.f*vi[Bt(A)]):new ID(NO((!t.c&&(t.c=jP(E1(t.f))),t.c),Bt(A)),2):t.a<54&&-A<vi.length?uX(t.f,vi[Bt(-A)],e):Ha((!t.c&&(t.c=jP(E1(t.f))),t.c),Qi(-A),e)}function N5(t,e){HU();var A,n,P,r,i;for(P=0;P<t.r;P++)for(i=an(t),$0(i,P,Ac),ut(i,15),n=0;n<i.g;n++)(i.v[n]&wn)!=0&&NQ(i,n)==-1&&(r=(ut(i,7),i.p[n]==2&&i.k[n]==2?Kb(i,n,!1):$s(i,n,!1)),r!=-1&&(t.I[r]=257,t.U=0,t.F[1][r]==n&&(A=t.F[0][r],t.F[0][r]=n,t.U=0,t.F[1][r]=A,t.U=0),Ne(t,n,e,0)))}function BW(t,e,A,n,P,r){s8();var i,f,D,Q,o,L,s,y,l,h,T;for(s=t.o,i=c(Pt,it,6,s.r,16,1),Q=c(B,F,6,s.r,15,1),Q[0]=e,i[e]=!0,l=A,h=0,T=l.length;h<T;++h)y=l[h],i[y]=!0;for(vf(t,e,n,P,r),D=0,o=0;D<=o;){for(L=0;L<s.e[Q[D]];L++)f=s.j[Q[D]][L],i[f]||(i[f]=!0,Q[++o]=f,vf(t,f,n,P,r));++D}}function vW(t){var e,A,n,P;if(t.g.L)for(e=0;e<t.g.s;e++)n=ie(t.g,e),(n&127)!=0&&(A=-1,P=0,(n&16)!=0&&(A=16,++P),(n&64)!=0&&(A=64,++P),(n&32)!=0&&(A=32,++P),(n&4)!=0&&(A=4,++P),(n&2)!=0&&(A=2,++P),(n&8)!=0&&(A=8,++P),(n&1)!=0&&(A=1,++P),A!=-1&&(w0(t.g,e,A),P==1&&Xe(t.g,e,127,!1)))}function FW(t,e,A){var n;switch(n=A.length<45?0:qr(k1((Mt(42,45,A.length),A.substr(42,3)))),n){case 0:break;case 1:w1(t.j,e,768,!0);break;case 2:w1(t.j,e,128,!0);break;case 3:w1(t.j,e,384,!0);break;default:w1(t.j,e,896,!0)}A.length>=48&&(zt(47,A.length),A.charCodeAt(47)==49)&&w1(t.j,e,be,!0)}function Oj(t,e,A,n,P){var r,i,f,D,Q,o;if(ut(t,7),!((t.v[e]&gn)==0||A&&!(e<t.g&&i0(t.q,e))))for(D=c(B,F,6,t.g,15,1),D[0]=e,n[e]=!0,f=0,Q=0;f<=Q;){for(o=0;o<t.k[D[f]];o++)i=t.n[D[f]][o],!P[i]&&(t.G[i]&64)!=0&&(!A||i<t.i&&Ee(t.q,i))&&(P[i]=!0,r=t.j[D[f]][o],n[r]||(n[r]=!0,D[++Q]=r));++f}}function Bf(t,e,A,n,P,r){var i,f,D,Q,o,L;for(t.a[A]=e<<16>>16,t.c[A]=t.c[A]+t.c[n]<<16>>16,t.d[A][0]=P<<16>>16,t.d[A][1]=r<<16>>16,L=t.a.length-1,D=c(Yt,t1,6,L,15,1),Q=c(Yt,t1,6,L,15,1),o=c(Yt,re,17,L,0,2),f=0,i=0;i<t.a.length;i++)i!=n&&(D[f]=t.a[i],Q[f]=t.c[i],o[f]=t.d[i],++f);t.a=D,t.c=Q,t.d=o}function or(t){var e;switch(e=-1,t.w){case 18:e=9;break;case 2:t.t!=-1&&r0(t.V,t.t)||t.u!=-1&&bP(t.V,t.u)?e=t.W?4:t.Z?3:2:t.t!=-1||t.u!=-1?e=11:t.v?e=t.W?4:t.Z&&!Jt(t.v,63)?3:2:e=t.Z?t.d?8:6:t.d?7:5;break;case 4:e=1;break;case 22:e=0;break;case 21:e=12;break;default:e=11}t.s!=e&&(t.s=e,BB(t._,e))}function vf(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y;L=n.a,s=n.b,y=n.c,r=w.Math.cos(P),Q=w.Math.sin(P),o=1-r,i=t.k[e].a-A.a,f=t.k[e].b-A.b,D=t.k[e].c-A.c,LU(t,e,A.a+(o*L*L+r)*i+(o*L*s+Q*y)*f+(o*L*y-Q*s)*D),sU(t,e,A.b+(o*L*s-Q*y)*i+(o*s*s+r)*f+(o*s*y+Q*L)*D),yU(t,e,A.c+(o*L*y+Q*s)*i+(o*y*s-Q*L)*f+(o*y*y+r)*D)}function kW(t,e){var A,n,P,r,i,f,D,Q;for(Q=new n1,A=0;A<e.r;A++)if(n=e.a[A],!(e.e[A]<=1&&ZD(t.b,n)))for(r=0;r<e.e[A];r++)for(f=e.j[A][r],i=0;i<e.e[A];i++)D=e.j[A][i],!(f>D)&&SK(t,e,f,A,D)&&(P=new ob(t,e,f,A,D),(w.Math.abs(P.d)>Bo||w.Math.abs(P.e)>Bo)&&Q.a.push(P));return Q}function mW(t,e,A,n,P){var r,i,f,D,Q,o,L;switch(r=e.a[A],i=e.a[P],Q=l8(t,e,A,n),L=l8(t,e,n,P),D=r<=i?Q:L,o=r<i?L:Q,f=tm(t,e,A,n,P),f){case 1:return D>0||D==o?1:2;case 2:return 3;case 3:return 5;case 4:return 4;case 5:return D>0||D==o?6:7;case 6:return 8;case 7:return D>0||D==o?9:10;case 8:return 11}return 0}function bW(t,e){var A,n,P;if(t.c)return 3;for(P=new Zt(t.e);P.a<P.c.a.length;)n=_t(P),n.a!=yo&&n.a!=Et&&(n.a=e[n.a]);switch(A=!1,t.e.a.length){case 2:if(x(t.e,0).a>=yo||x(t.e,1).a>=yo)return 3;A=rY(t,e);break;case 3:Ft(t.e,new u3(t,Et,t.b));case 4:A=EJ(t);break;default:return 3}return t.d^A?1:2}function qj(t,e,A){var n,P;if(dt(t,e)!=1)return!1;if((t.v[A]&3)!=0)return!0;for(P=0;P<t.s;P++)if(P!=e&&t.I[P]==2&&(t.F[0][P]==A&&(t.v[t.F[1][P]]&3)!=0||t.F[1][P]==A&&(t.v[t.F[0][P]]&3)!=0))return!0;for(n=0;n<t.s;n++)if(n!=e&&t.I[n]==1&&(t.F[0][n]==A||t.F[1][n]==A)&&(t.G[n]&3)!=0)return!0;return!1}function jW(t){var e,A,n,P;for(n=0;n<t.i.s;n++)for(P=0;P<2;P++)e=q(t.i,P,n),A=q(t.i,1-P,n),J(t.i,e)==1&&we(t.i,e)>1&&J(t.i,A)>1&&t.b[A]!=0&&(we(t.i,e)==2?(t.a==null&&(t.a=c(B,F,6,t.i.r,15,1)),++t.a[A]):(t.c==null&&(t.c=c(B,F,6,t.i.r,15,1)),++t.c[A]),B7(t.i,e));(t.a!=null||t.c!=null)&&ui(t.i)}function RW(t){var e,A,n,P,r,i,f,D,Q;if(t.b){for(e=c(B,F,6,t.F.a.length,15,1),n=0;n<e.length;n++)for(e[n]=n,r=x(t.a,n),i=0,f=r.length;i<f;++i)P=r[i],P&&(e[n]+=Q0);for(e.sort(pe(u0.prototype.ld,u0,[])),Q=new n1,D=new n1,A=0;A<e.length;A++)Ft(Q,x(t.F,e[A]&d1)),Ft(D,x(t.a,e[A]&d1));t.F=Q,t.a=D}}function pW(t){return t.t!=-1?(RQ(t.V,t.t),t.t=-1,t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0)),!0):t.u!=-1?(h5(t.V,t.u),t.u=-1,t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0)),!0):t.v&&!t.v.j?(er(t.I,t.v),t.v=null,t.eb=w.Math.max(t.eb,1),P1(t.k),!0):!1}function MW(t,e){var A,n,P,r;for(P=2+2*w.Math.sqrt(t.d.r),n=0;n<t.d.r;n++)Ct(t.d,n)!=1&&(LU(e,n,P*Vn(t.f)-P/2),sU(e,n,P*Vn(t.f)-P/2),yU(e,n,P*Vn(t.f)-P/2));for(A=0;A<t.d.r;A++)Ct(t.d,A)==1&&(r=Z(t.d,A,0),LU(e,A,e.k[r].a+4*Vn(t.f)-2),sU(e,A,e.k[r].b+4*Vn(t.f)-2),yU(e,A,e.k[r].c+4*Vn(t.f)-2));OU(e)}function CW(t,e,A){var n,P,r,i;if(n=A[t.a],P=A[t.b],t.i==(Dr(),ml))return K0(e,n,P,t.g),!0;if(r=o1(e,n,P),t.i==Fl)return w0(e,r,t.g),!0;if(t.i==kl){if(i=dt(e,r)+t.f,i>=0&&i<=3)return w0(e,r,(O1(),i==0?16:i==1?1:i==2?386:i==3?4:i==4?32:64)),!0}else if(t.i==bl)return e.I[r]=512,!0;return!1}function G5(t,e,A,n){var P;switch(P=A/2,n&b1){case b1:if(e){t.w.a=e.c+e.b/2,t.w.b=e.d+e.a-P;break}case 0:t.w.a=t.v.c+t.v.b/2,t.w.b=t.v.d+t.v.a+P,e&&t.w.b>e.d+e.a-P&&(t.w.b=e.d+e.a-P);break;case B8:if(e){t.w.a=e.c+e.b/2,t.w.b=e.d+P;break}case v8:t.w.a=t.v.c+t.v.b/2,t.w.b=t.v.d-P,e&&t.w.b<e.d+P&&(t.w.b=e.d+P)}}function zj(t,e){var A,n;for(this.k=c(gr,B9,26,t.g.a.length+t.f.a.length,0,1),n=0;n<t.g.a.length+t.f.a.length;n++)this.k[n]=n<t.g.a.length?x(t.g,n):x(t.f,n-t.g.a.length);for(this.n=t.g.a.length,this.a=c(gr,B9,26,t.a.a.length,0,1),A=0;A<t.a.a.length;A++)this.a[A]=x(t.a,A);this.o=!1,this.c=1,this.g=e,Es(this)}function HW(t,e){var A,n,P,r,i,f,D,Q;for(Q=kn(t.H),f=0;f<Q.j.a.length;f++)if(rf(Q,f,e)){for(D=c(B,F,6,2,15,1),P=0;P<2;P++)for(D[P]=Et,n=q(t.H,P,e),r=0;r<N(t.H,n);r++)A=Z(t.H,n,r),A!=q(t.H,1-P,e)&&D[P]>A&&(D[P]=A);return i=0,wA(Q,f,D[0])&&++i,wA(Q,f,D[1])&&++i,i==2?2:i==1?1:2}return 0}function VW(t,e){var A,n,P,r,i,f;if(e.startsWith(\"M  RGP\")&&(P=L1(k1((Mt(6,9,e.length),e.substr(6,3))),f1,Et),P>0))for(A=10,f=14,r=1;r<=P;++r,A+=8,f+=8)n=L1(k1((Mt(A,A+3,e.length),e.substr(A,A+3-A))),f1,Et)-1,i=L1(k1((Mt(f,f+3,e.length),e.substr(f,f+3-f))),f1,Et),i>=1&&i<=20&&$0(t.j,n,zA(\"R\"+i,2))}function Kj(t,e,A,n){var P,r,i,f,D,Q,o,L,s;for(L=A[n],i=A[n+1]-L,s=c(E1t,e0,177,i,0,1),D=0;D<i;D++)s[D]=new I0,s[D].c=t[D+L],s[D].b=e[D+L],s[D].a=D+L;for(P=new z0,o=n;o>1;o--){for(Q=0;Q<i;Q++)s[Q].c+=t[s[Q].b]<<16,s[Q].b=e[s[Q].b];for(ai(s,0,s.length,P),r=1,f=0;f<i;f++)t[s[f].a]=r,f!=i-1&&KB(s[f],s[f+1])!=0&&++r}}function EW(t){var e,A,n,P,r,i;if(t.R.g==0){t.N=\"\";return}for(r=0,n=!1,P=!1,A=0;A<t.R.g;A++)r<M1(t.R,A)&&(r=M1(t.R,A)),Fn(t.R,A)?n=!0:P=!0;if(r==0){t.N=\"\";return}for(i=W8(r),U3(t,!0),qt(t,i,4),qt(t,n?1:0,1),qt(t,P?1:0,1),e=0;e<t.R.g;e++)qt(t,M1(t.R,t.B[e]),i),n&&P&&qt(t,Fn(t.R,t.B[e])?1:0,1);t.N=qL(t)}function O5(t,e,A,n){var P,r,i;for(P=0;P<2;P++)if(r=t.j[A[1]][P],r!=A[0])return r==e||(i=t.n[A[1]][P],A[0]=A[1],A[1]=r,t.k[r]==1)?!1:(n!=null&&(t.v[A[0]]&O0)==0&&(t.v[A[1]]&O0)==0&&(n[0]=w.Math.max(n[0],i)),t.k[r]==2&&t.p[r]==2&&t.D[r]<=7?O5(t,e,A,n):!0);return!1}function SW(t){var e;for(t.S=c(Pt,it,6,t.R.g,16,1),e=0;e<t.R.g;e++)if(J(t.R,e)==7){if(N(t.R,e)==4){t.S[e]=!0;continue}if(N(t.R,e)==3){if(Or(t.R,e)==3){t.S[e]=!0;continue}if(R1(t.R,e)==1){t.S[e]=!0;continue}if(xP(t.R,e,!0))continue;if((t.Q&32)!=0){t.S[e]=!0;continue}if(Xs(t.R,e)){t.S[e]=!0;continue}}}}function Js(t){var e,A,n,P,r,i;for(U8.call(this),i=t&&t.g?t.g.a.length:0,r=t&&t.f?t.f.a.length:0,e=t&&t.a?t.a.a.length:0,n=0;n<i;n++)Ft(this.g,new Wr(x(t.g,n)));for(P=0;P<r;P++)Ft(this.f,new Wr(x(t.f,P)));for(A=0;A<e;A++)Ft(this.a,new Wr(x(t.a,A)));this.b=new cs(t.b),t.e!=null&&(this.e=t.e),this.c=t.c||jQ(t)}function IW(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(s=0,L=-1,i=0;i<t.j.g;i++){o=x(e.g,s),ut(o,1);do++L==o.g&&(L=0,o=C9(e,++s));while(o.L&&gt(V(o.C[L],ne),0));tA(o,L,A[i],A[i]<=P)}for(Q=0,D=-1,r=0;r<t.d.g;r++){f=x(e.f,Q),ut(f,1);do++D==f.g&&(D=0,f=Ch(e,++Q));while(f.L&&gt(V(f.C[D],ne),0));tA(f,D,n[r],n[r]<=P)}}function Jj(t){var e,A,n,P,r;if(t.l==0&&t.m==0&&t.h==0)return\"0\";if(t.h==B8&&t.m==0&&t.l==0)return\"-9223372036854775808\";if(t.h>>19!=0)return\"-\"+Jj(Ai(t));for(A=t,n=\"\";!(A.l==0&&A.m==0&&A.h==0);){if(P=bL(Jf),A=U6(A,P,!0),e=\"\"+og(Kn),!(A.l==0&&A.m==0&&A.h==0))for(r=9-e.length;r>0;r--)e=\"0\"+e;n=e+n}return n}function xW(t,e){var A,n,P,r;if(!vl)return 0;if($f[e].cc(Me(new bA(t)))!=-1)return 3;for(r=new VD(1),A=new _A,P=0;P<dr[e].a.length;P++)if(l2(new WA(!1),A,x(dr[e],P)),GA(r,t),MA(r,A),CA(r,1,r.c)>0)return 3;for(n=0;n<Br[e].a.length;n++)if(l2(new WA(!1),A,x(Br[e],n)),GA(r,t),MA(r,A),CA(r,1,r.c)>0)return 2;return 1}function c2(t,e){var A,n,P,r;return r=w.Math.sin(e),A=w.Math.cos(e),n=1-A,P=j1(Ut,[T0,Tt],[15,6],15,[3,3],2),P[0][0]=t.a*t.a*n+A,P[1][1]=t.b*t.b*n+A,P[2][2]=t.c*t.c*n+A,P[0][1]=t.a*t.b*n-t.c*r,P[1][2]=t.b*t.c*n-t.a*r,P[2][0]=t.c*t.a*n-t.b*r,P[0][2]=t.a*t.c*n+t.b*r,P[1][0]=t.b*t.a*n+t.c*r,P[2][1]=t.c*t.b*n+t.a*r,P}function Yj(t,e,A){var n;if(N(t.b,e)==2)return 1;if(n=Fm(t,e,A),N(t.b,e)==3)return C0(t.b,n[0])==C0(t.b,n[1])?dT(t,e)?2:1:dT(t,e)?1:0;if(N(t.b,e)==4){if(C0(t.b,n[0])==C0(t.b,n[1])&&C0(t.b,n[0])==C0(t.b,n[2]))return 3;if(C0(t.b,n[0])==C0(t.b,n[1])||C0(t.b,n[0])==C0(t.b,n[2])||C0(t.b,n[1])==C0(t.b,n[2]))return 1}return 0}function NW(t,e){var A,n,P,r,i;return n=V(e,g1),O(t,0)>=0?(r=In(t,n),i=n9(t,n)):(A=b0(t,1),P=e>>>1,r=In(A,P),i=n9(A,P),i=at(Wt(i,1),V(t,1)),(e&1)!=0&&(O(r,i)<=0?i=Y1(i,r):qg(Y1(r,i),n)?(i=at(i,Y1(n,r)),r=Y1(r,1)):(i=at(i,Y1(Wt(n,1),r)),r=Y1(r,2)))),z(Wt(i,32),V(r,g1))}function Xj(t,e){var A,n,P;for(A=j1(Ut,[T0,Tt],[15,6],15,[2,3],2),n=0;n<2;n++)A[n][0]=Mr(e,t.f[n])-Mr(e,t.f[4]),A[n][1]=Cr(e,t.f[n])-Cr(e,t.f[4]),A[n][2]=Hr(e,t.f[n])-Hr(e,t.f[4]);return P=c(Ut,Tt,6,3,15,1),P[0]=A[0][1]*A[1][2]-A[0][2]*A[1][1],P[1]=A[0][2]*A[1][0]-A[0][0]*A[1][2],P[2]=A[0][0]*A[1][1]-A[0][1]*A[1][0],P}function GW(t){var e,A,n,P;for(t.L=!0,t.$=c(_,At,6,t.R.g,15,1),t.i=c(_,At,6,t.R.i,15,1),P=U2(t,!0);t.U<t.R.g&&P;){for(e=0;e<t.R.g;e++)AA(t.e[e],e),a1(t.e[e],t.c+4,z(Wt(t.f[e],4),t.db[e]<<2));for(A=0;A<t.R.i;A++)Le(t.e[q(t.R,0,A)],t.o[A]),Le(t.e[q(t.R,1,A)],t.o[A]);if(n=tP(t),t.U==n)break;t.U=n,P=U2(t,!0)}}function q5(t,e){var A,n,P,r,i,f;for(ut(t,e?15:1),t.r=t.g,t.s=t.i,f=c(Pt,it,6,t.g,16,1),P=0;P<t.g;P++)t.e[P]!=t.k[P]&&(A=sf(t,P,!1),f[P]=t.e[P]==t.k[P]+1&&q9(t,t.n[P][t.k[P]]),t.e[P]=t.k[P],A!=-1&&(i=sf(t,P,!0),A!=i&&(r=((t.v[P]&m8)>>>27)-1,(r==-1||r<A)&&tn(t,P,A))));if(e)for(n=0;n<t.g;n++)f[n]&&Uy(t,n);t.U=0}function OW(t,e){var A,n;return!_v(J(t.k,e))||J(t.k,e)==6&&(!W0(t.k,e)||R1(t.k,e)>0)||(A=eP(t.k,e)==null||o3(t.k,e)[0]==9?0:o3(t.k,e)[0],n=_i(t.k,e)-A,n<1)?!1:J(t.k,e)==16||J(t.k,e)==34||J(t.k,e)==52?N(t.k,e)==2&&R1(t.k,e)<=0?!1:n!=2:!0}function dt(t,e){if(t.L&&(t.H[e]&127)!=0){if((t.H[e]&9)!=0)return 1;if((t.H[e]&2)!=0)return 2;if((t.H[e]&4)!=0)return 3;if((t.H[e]&32)!=0)return 4;if((t.H[e]&64)!=0)return 5;if((t.H[e]&16)!=0)return 0}switch(t.I[e]&127){case 1:case 8:return 1;case 2:return 2;case 4:return 3;case 32:return 4;case 64:return 5;default:return 0}}function Ur(t,e,A,n){var P,r,i,f,D,Q,o,L,s;for(ut(t,1),r=0;r<t.r;r++)e[r]=-1;for(Q=0,P=0;P<t.r;P++)if(e[P]==-1&&(!A||(t.v[P]&O0)!=0)){for(e[P]=Q,o=c(B,F,6,t.r,15,1),o[0]=P,D=0,L=0;D<=L;){for(f=n?t.j[o[D]].length:t.e[o[D]],s=0;s<f;s++)i=t.j[o[D]][s],e[i]==-1&&(!A||(t.v[i]&O0)!=0)&&(o[++L]=i,e[i]=Q);++D}++Q}return Q}function Zj(t,e,A){var n,P,r;return r=w.Math.sqrt((t.i[0].a-e)*(t.i[0].a-e)+(t.i[0].b-A)*(t.i[0].b-A)),r<8?1:(P=w.Math.sqrt((t.i[1].a-e)*(t.i[1].a-e)+(t.i[1].b-A)*(t.i[1].b-A)),P<8?2:(n=w.Math.sqrt((t.i[1].a-t.i[0].a)*(t.i[1].a-t.i[0].a)+(t.i[1].b-t.i[0].b)*(t.i[1].b-t.i[0].b)),r+P<n+5?3:0))}function z5(t,e,A){var n,P,r;for(t.f=O(e,0)==0?new P2:new $i(e),t.a=new n1,new n1,t.c=c(Ut,Tt,6,2,15,1),t.c[0]=Ge,t.c[1]=Ge,t.e=!1,P=0,r=0,n=0;n<t.d.i;n++)!eA(t.d,n)&&dt(t.d,n)==1&&Ct(t.d,q(t.d,0,n))>1&&Ct(t.d,q(t.d,1,n))>1&&(LA(t.d,n)?z9(t.d,n)>4&&++r:++P);t.b=A==-1?1<<1+P+(r/2|0):A,FR(t,w.Math.min(8,t.b))}function Wj(t){var e,A,n,P,r;for(P=W1(t.R,mt(t.L,0)),A=W1(t.R,mt(t.L,0)),r=Z1(t.R,Rt(t.L,0)),n=Z1(t.R,Rt(t.L,0)),e=0;e<t.L.r;e++)P>W1(t.R,mt(t.L,e))&&(P=W1(t.R,mt(t.L,e))),A<W1(t.R,mt(t.L,e))&&(A=W1(t.R,mt(t.L,e))),r>Z1(t.R,Rt(t.L,e))&&(r=Z1(t.R,Rt(t.L,e))),n<Z1(t.R,Rt(t.L,e))&&(n=Z1(t.R,Rt(t.L,e)));return new lA(P,r,A-P,n-r)}function _j(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,h;return r=e.a[A],i=e.a[P],D=l8(t.a,e,A,n),Q=l8(t.a,e,n,P),o=(L=e.a[A],s=e.a[n],y=e.a[P],l=mW(t.a,e,A,n,P),L>y&&(L=(h=U1(y),U1(y=L),h).a),f9(m(k(B,1),F,6,15,[2,1,3,0]),m(k(B,1),F,6,15,[s,L,y,l]),t)),f=r>i||r==i&&D<Q?1:0,o>=0?H0(t.b[o][4+f]):cZ(t.a.i,e,A,n,P)}function $j(){var t,e,A,n,P,r;for(r=new un(new mi((A=A2(\"/resources/druglikenessNoIndex.txt\"),c0(),A))),this.a=new n1;P=X1(r),P!=null;){if(n=P.indexOf(R0(9)),n==-1)throw et(new H1(\"line without TAB\"));t=(Mt(0,n,P.length),P.substr(0,n)),e=hD(he((zt(n+1,P.length+1),P.substr(n+1)))),Ft(this.a,new hg(t,e))}}function aj(t,e){var A,n,P,r,i;if(t.d.r<2)return!0;for(i=new Zt(t.j);i.a<i.c.a.length;)r=_t(i),r.g=!0;for(P=0;P<t.k.length;P++)t.k[P]=!1;for(MW(t,e),A=new Xd(e),ey(t,e,A,0),n=0;xK(e)&&n<3&&!(gt(t.n,0)&&(z1(),I1(E1(Date.now()),t.n)))&&ua(t,e)!=0;n++)ey(t,e,A,2);return ey(t,e,A,3),ey(t,e,A,4),Uz(e)}function qW(t,e,A,n){var P,r,i,f,D,Q;return r=n==e.length-1?0:n+1,f=n==0?e.length-1:n-1,i=r==e.length-1?0:r+1,dt(t.f,A[n])==2&&(P=ze(t.f,A[n]),P==1||P==2)?(ck(t,e[f],e[n],e[r])^ck(t,e[i],e[r],e[n])&&(P=P==1?2:1),P):A8(t.f,A[n])?(D=ts(kn(t.f),A[f],A[n]),Q=ts(kn(t.f),A[r],A[n]),D!=-1||Q!=-1?D==Q?2:1:2):0}function zW(t,e,A,n,P,r){var i,f,D,Q,o,L;for(i=e.a[A],o=m(k(B,1),F,6,15,[e.a[n],e.a[P],e.a[r]]),f=0;f<4;f++){for(L=c(B,F,6,3,15,1),Q=0;Q<3;Q++)L[Q]=t.a.g.a[o[Q]-1][f+1];if(L.sort(pe(u0.prototype.ld,u0,[])),D=f9(m(k(B,1),F,6,15,[1,0,2,3]),m(k(B,1),F,6,15,[i,L[0],L[1],L[2]]),t),D>=0)return H0(t.b[D][4])}return 0}function KW(t){ly();var e,A,n,P,r,i,f,D,Q,o;if(t==null||t.length==0)return null;for(i=null,t=Pf(t.toLowerCase(),\"-\"),D=W4,Q=0,o=D.length;Q<o;++Q)for(f=D[Q],r=c8(f[0],\";\"),A=r,n=0,P=A.length;n<P;++n){if(e=A[n],e1(Pf(e.toLowerCase(),\"-\"),t))return e;if(Pf(e.toLowerCase(),\"-\").startsWith(t))if(i==null)i=e;else return\"\"}return i}function K5(t,e){var A,n,P,r,i,f,D,Q;if(i=!1,t0(t.g,e)==0)for(r=1;r<N(t.g,e);r++)for(f=0;f<r;f++)n=Z(t.g,e,r),P=Z(t.g,e,f),t.G[n]>t.G[P]^n>P&&(i=!i);else for(r=0;r<N(t.g,e);r++){for(A=Z(t.g,e,r),Q=0,D=c(B,F,6,3,15,1),f=0;f<N(t.g,A);f++)D[Q]=Z(t.g,A,f),D[Q]!=e&&++Q;Q==2&&t.G[D[0]]>t.G[D[1]]^D[0]>D[1]&&(i=!i)}return i}function JW(t){var e,A,n,P,r;for(r=w.Math.max(t.D.g,t.u.g),t.a=W8(r),t.s=2,A=0;A<t.D.g;A++)t.s=w.Math.max(t.s,N(t.D,A)+qi(t.D,A));for(n=0;n<t.u.g;n++)t.s=w.Math.max(t.s,N(t.u,n)+qi(t.u,n));for(P=w.Math.max(2,(62+t.a+t.s*(t.a+5))/63|0),t.b=c(J4,H2,101,r,0,1),e=0;e<r;e++)t.b[e]=new NU(P);t.F=new qA(t.D,1),t.v=new qA(t.u,1)}function J5(t,e){var A,n,P,r,i;for(i=!1,n=0;n<t.V.r;n++)if(r0(t.V,n)){i=!0;break}if(r=Sm(t,i),r){for(J1(t),A=0;A<t.V.r;A++)(!i||r0(t.V,A))&&(e?ge(t.V,A,2*r.a-mt(t.V,A)):Ve(t.V,A,2*r.b-Rt(t.V,A)));for(P=0;P<t.V.s;P++)(!i||bP(t.V,P))&&(c1(t.V,P)==257?w0(t.V,P,129):c1(t.V,P)==129&&w0(t.V,P,257));t.eb=w.Math.max(t.eb,1),P1(t.k)}}function tR(t){var e,A,n,P,r;for(n=Hp(t);n;){for(r=!1,A=0;A<N(t.D,n.b);A++)t.I[Z(t.D,n.b,A)]==0&&(r=!0);for(P=!1,e=0;e<N(t.u,n.a);e++)t.B[Z(t.u,n.a,e)]==0&&(P=!0);if(r&&P)break;t.I[n.b]=$y,t.B[n.a]=$y,n=Hp(t)}if(!n){for(A=0;A<t.I.length;A++)t.I[A]==$y&&(t.I[A]=0);for(e=0;e<t.B.length;e++)t.B[e]==$y&&(t.B[e]=0)}return n}function YW(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(o=e.p,D=e.n,Q=Z0(t,o[2]),L=ri(_8(Q,Z0(t,o[1]))),f=c2(L,D==o[1]?A:-A),P=e.o,r=0,i=P.length;r<i;++r)n=P[r],n!=D&&(s=t.k[n].a-Q.a,y=t.k[n].b-Q.b,l=t.k[n].c-Q.c,LU(t,n,s*f[0][0]+y*f[0][1]+l*f[0][2]+Q.a),sU(t,n,s*f[1][0]+y*f[1][1]+l*f[1][2]+Q.b),yU(t,n,s*f[2][0]+y*f[2][1]+l*f[2][2]+Q.c))}function XW(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(ut(e,1),l=t.k,h=0,T=l.length;h<T;++h)y=l[h],Q=A[y.a],o=A[y.b],L=o1(e,Q,o),L==-1?K0(e,Q,o,y.e):y.e==-1?e.I[L]=512:y.e!=-2&&w0(e,L,y.e);if(f=ui(e),t.a.length!=0)for(ut(e,7),P=t.a,r=0,i=P.length;r<i;++r)n=P[r],D=f==null?A[n]:f[A[n]],s=e.v[D]&3,ke(e,D,s==1?2:1,!1),Uy(e,D);return f}function ZW(t,e,A){var n,P,r,i,f;if(t.V.L){if(se(t.V,e)||se(t.V,A)||(n=IA(t.V,e),P=IA(t.V,A),n==null^P==null))return!1;if(n!=null){if(n.length!=P.length)return!1;for(r=0;r<n.length;r++)if(n[r]!=P[r])return!1}if(i=gt(V(l0(t.V,e),1),0),f=gt(V(l0(t.V,A),1),0),i!=f)return!1}return J(t.V,e)==J(t.V,A)}function eR(){eR=v1,RS=m(k(Yt,1),t1,6,15,[0,60,120,180,240,300]),bS=m(k(Yt,1),t1,6,15,[17,17,17,17,17,17]),jS=m(k(Yt,2),re,17,0,[m(k(Yt,1),t1,6,15,[-20,20]),m(k(Yt,1),t1,6,15,[40,80]),m(k(Yt,1),t1,6,15,[100,140]),m(k(Yt,1),t1,6,15,[160,200]),m(k(Yt,1),t1,6,15,[220,260]),m(k(Yt,1),t1,6,15,[280,320])])}function Y5(t,e){var A,n,P,r;return A=t.F[0][e],n=t.F[1][e],P=rA(t,A),r=rA(t,n),!P&&!r?e<t.i&&Ee(t.q,e)?LC:s4+dt(t,e)/10:P&&r||P&&ee(t,n)||r&&ee(t,A)?wo:P&&Yk(t,n,A)||r&&Yk(t,A,n)?Gy:P&&dk(t,n,A)||r&&dk(t,A,n)?d4:P&&n<t.g&&i0(t.q,n)||r&&A<t.g&&i0(t.q,A)?1.9500000476837158:s4}function WW(t){var e,A;for(t=V(t,l9),A=0;A<(c6(),di).length;A++)if(A0(t,di[A]))return EE[A];return e=new bn(\"R\"),gt(V(t,w8),0)&&(e.a+=\"0\"),gt(V(t,h9),0)&&(e.a+=\"3\"),gt(V(t,T9),0)&&(e.a+=\"4\"),gt(V(t,c9),0)&&(e.a+=\"5\"),gt(V(t,w9),0)&&(e.a+=\"6\"),gt(V(t,g9),0)&&(e.a+=\"7\"),gt(V(t,Vf),0)&&(e.a+=\"8\"),e.a}function _W(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(L=Qp(t.D),f=Qp(t.u),i=c(dS,T0,44,8,0,1),y=Qj(t.D,L),Q=Qj(t.u,f),o=0;o<=7;o++)for(i[o]=new Ji(new al),r=(n=new J8(new K8(new br(y[o]).a).b),new jr(n));Nr(r.a.a);)P=(A=H9(r.a),A.hd()),s=de(y[o],P),D=de(Q[o],P),D!=null&&(e=c(B,D0,7,2,0,2),e[0]=s,e[1]=D,We(i[o],P,e));return i}function $W(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(A=e.a,s=e.i,i=1;i<A.length;i++)if(A[i]!=null){for(f=0;f<i;f++)if(A[i][f]!=0){for(o=t.f[i][f],L=new Gk(s,o,A[i][f],t.C),D=!1,Q=null,n=Pr(t.i,e.d).c,r=new Zt(n);r.a<r.c.a.length;){if(P=_t(r),hJ(P,L)){D=!0;break}TJ(P,L)&&(!Q&&(Q=new n1),Q.a.push(P))}D||(Q&&us(n,Q),n.a.push(L))}}}function X5(t,e){var A,n,P,r;if(t.p[e]==2&&t.k[e]==2&&t.o[e][0]==2){for(P=0;P<2;P++)if(A=ak(t,e,t.j[e][P]),A!=-1)for(r=0;r<t.k[A];r++)n=t.n[A][r],(t.I[n]==257||t.I[n]==129)&&t.F[0][n]==A&&(t.I[t.n[A][r]]=1);return}if(t.p[e]==0||t.D[e]>=15)for(P=0;P<t.e[e];P++)n=t.n[e][P],(t.I[n]==257||t.I[n]==129)&&t.F[0][n]==e&&t.F[0][n]==e&&(t.I[n]=1)}function AR(t,e,A){var n,P,r,i,f;if(t.b){for(t.C=c(Pt,it,6,e.length,16,1),P=new Zt(t.b);P.a<P.c.a.length;)if(n=_t(P),t.f==null||A==-1&&t.f[n.a]==-1&&t.f[n.b]==-1||A!=-1&&(t.f[n.a]==A||t.f[n.b]==A)){if(f=c(B,F,6,n.c+2,15,1),r=B2(t.H,f,t.G[n.a],t.G[n.b],n.c+1,e,null)-1,r<n.d||r>n.c)return!1;for(i=1;i<=r;i++)t.C[f[i]]=!0}}return!0}function aW(t){var e,A,n,P,r,i;if(t.L.L){for(i=t.W,$1(t,-7),e=0;e<t.L.g;e++)se(t.L,e)&&t.ub(W1(t.R,mt(t.L,e))-i,Z1(t.R,Rt(t.L,e))-i,2*i);for(t.Ab(2*t.W),r=new h1,P=0;P<t.L.s;P++)A=q(t.L,0,P),n=q(t.L,1,P),gt(V(V(l0(t.L,A),l0(t.L,n)),ne),0)&&(r.a=W1(t.R,mt(t.L,A)),r.c=Z1(t.R,Rt(t.L,A)),r.b=W1(t.R,mt(t.L,n)),r.d=Z1(t.R,Rt(t.L,n)),t.qb(r))}}function t_(t,e){var A,n,P,r,i,f,D,Q,o;for(o=new n1,A=0;A<e.r;A++)for(i=0;i<e.e[A];i++)for(n=e.j[A][i],f=0;f<e.e[n];f++)if(P=e.j[n][f],A!=P)for(D=0;D<e.e[P];D++)r=e.j[P][D],!(n==r||A==r)&&r>A&&(Q=new Xk(t,e,A,n,P,r),(w.Math.abs(Q.e)>.001||w.Math.abs(Q.f)>.001||w.Math.abs(Q.g)>.001)&&o.a.push(Q));return o}function nR(t){var e,A,n,P,r,i,f,D,Q;for(Q=0,ut(t,7),n=0;n<t.i;n++)if(dt(t,n)==1&&(t.G[n]&64)==0){for(f=!0,i=0;i<2;i++){if(e=t.F[i][n],t.k[e]==1){f=!1;break}if(t.D[e]==7&&!(e<t.g&&i0(t.q,e))){for(A=t.F[1-i][n],D=0;D<t.k[A];D++)if(P=t.j[A][D],r=t.n[A][D],r!=n&&dt(t,r)>1&&!(P<t.g&&i0(t.q,P))&&rA(t,P)){f=!1;break}}}f&&!Sj(t,n)&&++Q}return Q}function BA(t,e,A,n,P,r){var i,f,D,Q;if(A=w.Math.max(0,A),n=w.Math.min(r.mc(),n),i=(n-A)/2|0,D=A,f=n,r.lc(D,t)>e||r.lc(f-1,t)<e)return-1;for(;n>=A;){if(i=A+((n-A)/2|0),Q=r.lc(i,t),Q==e)if(P&&i>D&&r.lc(i-1,t)==e)n=i;else if(!P&&i<f-1&&r.lc(i+1,t)==e)A=i;else return i;else Q>e?n=i:Q<e&&(A=i);if(n-A==1&&r.lc(A,t)<e&&r.lc(n,t)>e)break}return-1}function PR(t,e,A){var n,P,r,i;if(N(t.c,e)==2)return 1;if(n=aK(t,e,A),N(t.c,e)==3)return C0(t.c,n[0])==C0(t.c,n[1])?t0(t.c,e)==1&&J(t.c,e)<10||mn(t.c,e)||xP(t.c,e,!0)?2:1:t0(t.c,e)==1&&J(t.c,e)<10||mn(t.c,e)||xP(t.c,e,!0)?1:0;if(N(t.c,e)==4){for(P=0;P<n.length;P++)for(i=C0(t.c,n[P]),r=P+1;r<n.length;r++)if(i==C0(t.c,n[r]))return 1}return 0}function Z5(t,e,A,n){var P,r,i,f,D;for(r=new VP(t.f,e.e.length+A.e.length-n,e.i|A.i),P=0,f=0;f<e.e.length;f++)r.e[P]=e.e[f],r.k[P]=e.k[f],r.a[P]=e.a[f],r.b[P++]=e.b[f];for(i=0;i<A.e.length;i++)D=L8(e,A.e[i]),D==-1?(r.e[P]=A.e[i],r.k[P]=A.k[i],r.a[P]=A.a[i],r.b[P++]=A.b[i]):r.k[D]<A.k[i]&&(r.k[D]=A.k[i],r.a[D]=A.a[i],r.b[D]=A.b[i]);return r}function W5(t,e,A,n){var P,r,i,f;if(f=new h1,!(e.a==e.b&&e.c==e.d)){for(f.a=e.a,f.c=e.c,f.b=e.b,f.d=e.d,i=Wm(f),P=0;P<t.$.a.length;P++)if(r=x(t.$,P),!(r.c>i.c+i.b||r.d>i.d+i.a||i.c>r.c+r.b||i.d>r.d+r.a)){if(t2(t,f.a,f.c,P)){if(t2(t,f.b,f.d,P))return;Zs(t,f,0,P),W5(t,f,A,n);return}if(t2(t,f.b,f.d,P)){Zs(t,f,1,P),W5(t,f,A,n);return}}S_(t,f,A,n)}}function e_(t){var e,A,n,P,r,i,f,D,Q;for(D=c(B,F,6,t.j.r,15,1),n=0;n<t.j.s;n++)if(c1(t.j,n)==8)for(i=0;i<2;i++)D[q(t.j,i,n)]=1;for(P=0;P<t.j.s;P++)for(Q=dt(t.j,P),r=0;r<2;r++)D[q(t.j,r,P)]+=Q;for(A=0;A<t.j.s;A++)if(dt(t.j,A)==1){for(r=0;r<2;r++)if(f=q(t.j,1-r,A),ee(t.j,f)&&(e=q(t.j,r,A),rA(t.j,e)&&D[e]>p3(t.j,e))){w0(t.j,A,16);continue}}}function ut(t,e){var A,n,P,r;if(Fp(t,e),(e&~t.U)!=0){for((t.U&15)!=0&&t.r>1&&Ts(t.K[0],t.K[1])&&U9(new a8(0),t),t.c&&(e|=128),A=0;A<t.r;A++)t.v[A]&=-67223560;for(n=0;n<t.i;n++)t.G[n]&=-64;P=0,r=0,(e&32)!=0?(P=32,r=1):(e&64)!=0&&(P=64,r=3),(e&128)!=0&&(P|=128,r|=32),t.d=new qA(t,r),h6(t.d),zG(t.d),jK(t.d),V$(t)&&(t.d=new qA(t,r)),t.U|=24|P}}function A_(t,e,A){var n,P,r,i,f,D,Q;for(Bh(t.p),t.o[0]=e,t.p[e]=!0,r=0,i=0;r<=i;){for(f=0;f<t.j[t.o[r]].length;f++){if(P=t.j[t.o[r]][f],P==A){for(n=1,D=r;D!=0;)++n,D=t.q[D];for(Q=c(B,F,6,n,15,1),Q[0]=t.k[t.o[r]][f],n=1;r!=0;)Q[n++]=t.n[r],r=t.q[r];return Q}t.p[P]||(t.p[P]=!0,++i,t.o[i]=P,t.n[i]=t.k[t.o[r]][f],t.q[i]=r)}++r}return null}function n_(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h;for(L=e.b-e.a,l=e.d-e.c,D=w.Math.sqrt(L*L+l*l),Q=2*Ot(E1(w.Math.round(D/(4*t.Y)))),s=L/(Q-1),h=l/(Q-1),V9(t.L,o1(t.L,A,n))?(P=-3,r=-3):(P=t.p[A],r=t.p[n]),o=e.a-t.Y/2,y=e.c-t.Y/2,$1(t,P),f=0;f<(Q/2|0);f++)t.ub(o,y,t.Y),o+=s,y+=h;for($1(t,r),i=0;i<(Q/2|0);i++)t.ub(o,y,t.Y),o+=s,y+=h;$1(t,t.Q)}function P_(t){for((t.Q&1)!=0&&(t.Q&2)==0&&(t.g=Cn(t.f,t.R.g)),(t.Q&q1)==0&&(t.W=c(Pt,it,6,t.R.g,16,1),t.V=c(Pt,it,6,t.R.i,16,1),t.U<t.R.g&&(EZ(t),(t.Q&q1)==0&&(g2(t),t.P&&h2(t.P,t.f)))),t.g==null&&(t.Q&1)!=0&&(t.Q&2)!=0&&(t.g=Cn(t.f,t.R.g));t.U<t.R.g;)DZ(t),(t.Q&q1)==0&&(g2(t),t.P&&h2(t.P,t.f));(t.Q&q1)==0&&(g2(t),n1t(t),Fa(t))}function r_(t,e,A,n,P){var r,i,f,D,Q,o,L,s;if(o1(t,e,A)==-1||o1(t,A,n)==-1||o1(t,n,P)==-1)return 0;if(o1(t,P,e)>=0)return 4;for(L=(ut(t,7),t.q),s=new ji,xA(s,U1(e)),xA(s,U1(A)),xA(s,U1(n)),xA(s,U1(P)),Q=0;Q<L.j.a.length;Q++)if(x(L.k,Q).length==5){for(o=new ji,i=x(L.j,Q),f=0,D=i.length;f<D;++f)r=i[f],xA(o,U1(r));if(UQ(o,s))return 5}return 0}function i_(t,e,A){var n,P,r,i,f,D,Q,o,L;for(o=c(Pt,it,6,A.r,16,1),o[t[0]]=!0,i=0,f=0;i<=f&&A.p[t[i]]<2;){for(Q=0;Q<A.k[t[i]];Q++)n=A.j[t[i]][Q],P=A.n[t[i]][Q],e[P]&&(o[n]||(t[++f]=n,o[n]=!0),e[P]=!1);++i}for(D=f;D>=0;D--)if(A.D[t[D]]<=8)for(L=0;L<A.e[t[D]];L++)r=A.j[t[D]][L],!o[r]&&A.o[t[D]][L]!=0&&(t[++f]=r,o[r]=!0);return f+1}function f_(t,e){var A,n,P,r,i,f,D,Q;for(r=t,n=e.j[r][0];e.e[r]!=1&&e.p[r]==2&&(Q=n,n=r,r=e.j[r][0]==Q?e.j[r][1]:e.j[r][0],r!=t););for(D=r,i=n,P=2;e.e[i]!=1&&e.p[i]==2&&(Q=D,D=i,i=e.j[i][0]==Q?e.j[i][1]:e.j[i][0],++P,i!=r););for(A=c(B,F,6,P,15,1),A[0]=r,A[1]=n,f=2;f<P;f++)A[f]=e.j[A[f-1]][0]==A[f-2]?e.j[A[f-1]][1]:e.j[A[f-1]][0];return A}function D_(t){var e,A;if(t.indexOf(\"[\")>=0){if(e=t.indexOf(\" NOT[\"),A=t.indexOf(\"]\",e),e>=0&&A>0)return-(A+1);if(e=t.indexOf(\" [\"),A=t.indexOf(\"]\",e),e>=0&&A>0)return A+1;if(e=t.indexOf(\" 'NOT[\"),A=t.indexOf(\"]'\",e),e>=0&&A>0)return-(A+2);if(e=t.indexOf(\" '[\"),A=t.indexOf(\"]'\",e),e>=0&&A>0)return A+2;z1()}return 0}function u_(t,e){var A,n,P,r,i,f,D,Q;if(i=YA[0]*t[0]+YA[1]*t[1]+YA[2]*t[2],i==0){t[0]=0,t[1]=0,t[2]=0;return}for(A=e/i,Q=0,D=0,P=0;P<3;P++)t[P]*=A,t[P]<1?D+=YA[P]:(Q+=(t[P]-1)*YA[P],t[P]=1);if(Q!=0){for(f=0,r=0;r<3;r++)t[r]<1&&(t[r]+=Q/D,t[r]>1&&(f+=(t[r]-1)*YA[r],t[r]=1));if(f!=0)for(n=0;n<3;n++)t[n]<1&&(t[n]+=f/YA[n],t[n]>1&&(t[n]=1))}}function Ys(t,e,A,n){var P,r,i,f,D,Q,o,L;for(P=0;P<t.g;P++)if(t.D[P]==A&&t.t[P]==0&&xt(t,P)>0)for(f=!1,Q=0;Q<t.k[P];Q++){if(t.o[P][Q]==1&&(r=t.j[P][Q],t.D[r]==n)){for(L=!1,D=!1,o=0;o<t.k[r];o++){if(i=t.j[r][o],t.t[i]<0){D=!0;break}i!=P&&t.D[i]==8&&t.o[r][o]==2&&(L=!0)}if(!D&&L){if(t.t[P]=-1,t.U=0,--e,e==0)return 0;f=!0}}if(f)break}return e}function Q_(t,e,A,n,P){var r,i,f,D;if((e.v[A]&3)!=0&&(e.v[A]&4)==0&&A0(V(e.C[A],k8),0)&&(f=w.Math.abs(e.A[A]),f!=0)){for(i=0;i<t.c.g.a.length;i++)for(r=C9(t.c,i),D=0;D<r.g;D++)if(w.Math.abs(r.A[D])==f)return!!(e.k[A]==n.k[P]||gt(V(r.C[D],be),0)||(r.v[D]&b1)>>18!=(e.v[A]&b1)>>18)}return!1}function o_(t,e){var A,n,P,r,i,f,D;if(e.startsWith(\"M  ALS\")&&(n=L1(k1((Mt(7,10,e.length),e.substr(7,3))),f1,Et)-1,n>=0)){for(i=L1(k1((Mt(10,13,e.length),e.substr(10,3))),f1,Et),P=(zt(14,e.length),e.charCodeAt(14)==84),D=c(B,F,6,i,15,1),A=16,r=0;r<i;++r,A+=4)f=k1((Mt(A,A+4,e.length),e.substr(A,A+4-A))),D[r]=zA(f,1);$0(t.j,n,6),gf(t.j,n,D,P)}}function zQ(t,e,A,n){var P,r,i,f,D;f=(e.b-e.a)/10,D=(e.d-e.c)/10,P=new h1,V9(t.L,o1(t.L,A,n))?(r=-3,i=-3):(r=t.p[A],i=t.p[n]),$1(t,r),P.a=e.a,P.c=e.c,P.b=e.a+f*2,P.d=e.c+D*2,t.qb(P),P.a=e.a+f*4,P.c=e.c+D*4,P.b=e.a+f*5,P.d=e.c+D*5,t.qb(P),$1(t,i),P.a=e.a+f*5,P.c=e.c+D*5,P.b=e.a+f*6,P.d=e.c+D*6,t.qb(P),P.a=e.a+f*8,P.c=e.c+D*8,P.b=e.b,P.d=e.d,t.qb(P),$1(t,t.Q)}function _5(t,e,A,n,P){var r,i,f,D,Q,o,L,s;if((t.q&&e<t.g?UA(t.q,e):0)>24||(r=t.e[e],P==null&&(P=c(B,F,6,r,15,1)),!H_(t,e,A,n,P)))return 3;for(D=-1,Q=0;Q<r;Q++)if((P[Q]&1)==1){if(i=t.I[t.n[e][A[Q]]],D!=-1&&D!=i)return 3;D=i}return o=w.Math.abs(P[0]-P[1])==2?1:0,f=P[o]-P[o+1],s=w.Math.abs(f)==3^P[o]<P[o+1],L=r==3||(P[3]&1)==1,s^L^D==129?1:2}function w2(t,e,A,n){var P,r,i,f;if(t.L.r==0)return null;for(i=t.Db(A,n),ut(t.L,(t.G&256)!=0?63:(t.G&512)!=0?95:31),Nk(t),t.U.a.length=0,t.$.a.length=0,t.B=e,qm(t),t.Cb(t.X),t.K=!0,r=0;r<t.L.r;r++)to(t,r,null);return t.K=!1,P=t.R.c*G8(t.L),ym(t,P),G5(t,A,P,n),!A||XG(A,t.v)?i:(f=new iy(t.v,A,P,n),Gu(f,t.R),Yu(f,t.v),rB(f,t.w),i?(Gu(f,i),i):f)}function U_(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y;for(P=c(B,F,6,n,15,1),r=0,i=0;i<e.e.length;i++)for(f=0;f<A.e.length;f++)e.e[i]==A.e[f]&&(P[r++]=e.e[i]);D=n==1?(Q=L8(e,P[0]),o=L8(A,P[0]),Iv(A,e.a[Q]-A.a[o],e.b[Q]-A.b[o]),L=Dp(t,e,P[0]),s=Dp(t,A,P[0]),y=0,ZL(t,e,P[0])==1&&ZL(t,A,P[0])==1&&(y=fA),Tf(A,A.a[o],A.b[o],L-s+y+l1),Z5(t,e,A,1)):Ytt(t,e,A,P,n),ik(t,e,A,D)}function L_(t,e){var A,n,P,r,i,f;if((t.o[e]==1||t.o[e]==2)&&!A8(t.R,e)){i=!1;try{for(r=0;r<2;r++)if(A=q(t.R,r,e),N(t.R,A)==3){for(n=c(B,F,6,2,15,1),P=0,f=0;f<N(t.R,A);f++)Nt(t.R,A,f)!=e&&(n[P++]=Z(t.R,A,f));t.f[n[0]]>t.f[n[1]]^F6(t,A,n[0],n[1])&&(i=!i)}}catch(D){if(D=_1(D),Jt(D,19)){t.i[e]=3;return}else throw et(D)}t.o[e]==1^i?t.i[e]=1:t.i[e]=2}}function s_(t){var e,A,n;for(this.c=new n1,n=0,e=0;e<t.g;e++)n+=xt(t,e);if(n>0)throw et(new ZP(\"molecule needs explicit hydrogen atoms for force field calculations\"));for(this.g=t,this.d=3*t.r,this.e=c(Ut,Tt,6,this.d,15,1),this.i=c(Ut,Tt,6,this.d,15,1),this.f=!1,this.j=20,A=0;A<t.r;A++)this.i[3*A]=t.K[A].a,this.i[3*A+1]=t.K[A].b,this.i[3*A+2]=t.K[A].c}function rR(t){var e,A,n,P,r,i,f,D,Q,o;for(this.a=new Yn,e=0;e<t.r;e++)for(Jr(this.a,new zi(e,e),(r9(),Uc)),A=0;A<t.e[e];A++)for(D=t.j[e][A],f=new zi(e,D),Jr(this.a,f,sc),n=0;n<t.e[D];n++)for(Q=t.j[D][n],i=new zi(e,Q),(!Kr(this.a,i)||K1(D8(this.a,i))===K1(wi))&&Jr(this.a,i,Lc),P=0;P<t.e[Q];P++)o=t.j[Q][P],r=new zi(e,o),Kr(this.a,r)||Jr(this.a,r,wi)}function y_(t){e1(t,V4)&&!JE?(Hi(),f3(V4,new Is(\"/resources/forcefield/mmff94/outofplane.csv\",\"/resources/forcefield/mmff94/torsion.csv\")),JE=!0):e1(t,E4)&&!YE?(Hi(),f3(E4,new Is(rE,\"/resources/forcefield/mmff94/94s/torsion.csv\")),YE=!0):e1(t,Yy)&&!XE&&(Hi(),f3(Yy,new Is(rE,\"/resources/forcefield/mmff94/94s/torsionPlus.csv\")),XE=!0)}function l_(t,e){return!e&&(e={keepAbsoluteCoordinates:!1,mode:3}),e=Object.assign({},e),e.keepAbsoluteCoordinates=!!e.keepAbsoluteCoordinates,\"sortByIDCode\"in e?(e.sortByIDCode=!!e.sortByIDCode,vN(t,e.keepAbsoluteCoordinates,e.sortByIDCode)):(typeof e.mode!==s9&&(e.mode=3),e.mode=Math.trunc(e.mode),$x(t,e.keepAbsoluteCoordinates,e.mode))}function Ff(t,e,A,n){var P,r,i,f;for(this.e=t,this.g=A,this.a=n,i=-1,f=0;f<Ct(this.e,this.a);f++){if(P=Z(this.e,this.a,f),r=Nt(this.e,this.a,f),P==this.g){c1(this.e,r)==386&&(this.j=-1);continue}_9(this.e,r,this.a)&&(this.i&&(t.v[n]|=Q0),this.i=!0),i==e[P]?(this.d=P,this.f=!0,this.c=LA(this.e,r)):i<e[P]?(i=e[P],this.d=this.b,this.b=P):this.d=P}}function h_(t,e){var A,n,P,r,i,f;if(e.startsWith(\"M  RAD\")&&(P=L1(k1((Mt(6,9,e.length),e.substr(6,3))),f1,Et),P>0))for(A=10,f=14,r=1;r<=P;++r,A+=8,f+=8)switch(n=L1(k1((Mt(A,A+3,e.length),e.substr(A,A+3-A))),f1,Et)-1,i=L1(k1((Mt(f,f+3,e.length),e.substr(f,f+3-f))),f1,Et),i){case 1:Je(t.j,n,16);break;case 2:Je(t.j,n,32);break;case 3:Je(t.j,n,48)}}function iR(t){var e,A,n,P,r,i,f,D;for(t.t=new n1,n=1,r=0,A=0;A<t.u.g;A++)M1(t.u,A)!=0&&!Fn(t.u,A)&&(r=w.Math.max(r,M1(t.u,A)));if(r!=0){for(P=c(B,F,6,r+1,15,1),e=0;e<t.u.g;e++)M1(t.u,e)!=0&&!Fn(t.u,e)&&(P[M1(t.u,e)]=e+1);for(f=0;f<t.D.g;f++)D=M1(t.D,f),D!=0&&D<=r&&!Fn(t.D,f)&&P[D]!=0&&(i=P[D]-1,t.I[f]=n,t.B[i]=n++,Ft(t.t,new FD(f,i)))}return t.t.a.length}function Ce(){Ce=v1;var t;for(X2=new RA(1,1),Jo=new RA(1,10),new RA(1,2),vr=new RA(0,0),Rc=new RA(-1,1),LS=m(k(Fi,1),_e,23,0,[vr,X2,new RA(1,2),new RA(1,3),new RA(1,4),new RA(1,5),new RA(1,6),new RA(1,7),new RA(1,8),new RA(1,9),Jo]),Yo=c(Fi,_e,23,32,0,1),t=0;t<Yo.length;t++)Yo[t]=ku(Wt(1,t),0)?me(Wt(1,t)):mP(me(V0(Wt(1,t))))}function fR(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h;if(r=e.e,r==0)throw et(new I8(uE));return P=e.d,n=e.a,P==1?P$(t,n[0],r):(y=t.a,l=t.d,A=l!=P?l>P?1:-1:yQ(y,n,l),A<0?m(k(Fi,1),_e,23,0,[vr,t]):(h=t.e,f=l-P+1,o=P,D=h==r?1:-1,i=c(B,F,6,f,15,1),Q=vp(i,f,y,l,n,P),L=new ye(D,f,i),s=new ye(h,o,Q),Hn(L),Hn(s),m(k(Fi,1),_e,23,0,[L,s])))}function $5(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g;if($R(t,e,A,n),Ed(t.p))return null;if(t.k!=null)for(s=t.k,y=0,l=s.length;y<l;++y)L=s[y],ah(t.p,L);if(t.g)for(T=new Zt(t.g);T.a<T.c.a.length;)h=_t(T),uN(t.p,h);if(t.e!=null)for(i=t.e,D=0,o=i.length;D<o;++D)P=i[D],TU(P.R);if(t.b!=null)for(r=t.b,f=0,Q=r.length;f<Q;++f)P=r[f],TU(P.R);return g=t.p,t.p=new Qu,g}function h8(t,e,A){var n,P,r,i,f;return r=!1,i=t.I[e],A==511?r=$$(t,e):pq(t,e,A)&&(A==257||A==129?(n=qj(t,e,t.F[0][e]),P=qj(t,e,t.F[1][e]),A==i?(n==P||P)&&(f=t.F[0][e],t.F[0][e]=t.F[1][e],t.F[1][e]=f,r=!0):(!n&&P&&(f=t.F[0][e],t.F[0][e]=t.F[1][e],t.F[1][e]=f),t.I[e]=A,r=!0)):(t.I[e]=A,r=!0)),r&&(t.U=(i&127)==(A&127)?t.U&7:0,t.H[e]=0),r}function T_(t){var e,A,n,P,r,i,f,D;if(f=null,A=t.indexOf(\"[\"),n=t.indexOf(\"]\",A),A>=0&&n>0){for(e=c(B,F,6,16,15,1),D=(Mt(A+1,n,t.length),t.substr(A+1,n-(A+1))),P=0,i=!0;i&&P<16;)A=D.indexOf(\",\"),r=null,A==-1?(r=D,i=!1):(r=(Mt(0,A,D.length),D.substr(0,A)),D=(zt(A+1,D.length+1),D.substr(A+1))),e[P++]=zA(r,1);f=c(B,F,6,P,15,1),PA(e,0,f,0,P)}return f}function DR(t,e,A){var n,P,r,i;if(!t.b&&!t.c)aD(A,e);else if(t.c){if(aD(A,e),Kr(t.f,U1(e)))for(i=D8(t.f,U1(e)),P=0;P<i.size();P++)for(n=i.getAtIndex(P),r=0;r<n.length;r++)aD(A,n[r])}else if(t.b&&(aD(A,e),Kr(t.e,U1(e))))for(i=D8(t.e,U1(e)),P=0;P<i.size();P++)for(n=i.getAtIndex(P),r=0;r<n.length;r++)aD(A,n[r]);A.a.length==1?A.b=A.a[0]:A.b=Mu(A.a)}function uR(t){var e,A,n,P;for(BU.call(this),e=0;e!=-1&&(A=t.indexOf('=\"',e),A!=-1);)n=(Mt(e+1,A,t.length),t.substr(e+1,A-(e+1))),e=t.indexOf('\"',A+2),P=e==-1?(zt(A+1,t.length+1),t.substr(A+1)):(Mt(A+1,e,t.length),t.substr(A+1,e-(A+1))),e1(n,\"text\")?this.e=a_(P):e1(n,\"x\")?Lq(this,P):e1(n,\"y\")?Uq(this,P):e1(n,\"size\")?tq(this,P):e1(n,\"style\")&&Rq(this,P)}function c_(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(y=e.length,D=y,zt(0,e.length),e.charCodeAt(0)==45?(L=-1,s=1,--y):(L=1,s=0),r=(Ws(),yS)[10],P=y/r|0,T=y%r,T!=0&&++P,f=c(B,F,6,P,15,1),A=sS[8],i=0,l=s+(T==0?r:T),h=s;h<D;h=l,l=h+r)n=L1((Mt(h,l,e.length),e.substr(h,l-h)),f1,Et),Q=(Lr(),ws(f,f,i,A)),Q+=YK(f,i,n),f[i++]=Q;o=i,t.e=L,t.d=o,t.a=f,Hn(t)}function QR(t){var e;switch(ut(t,31),e=t.J&d1,t.J&GP){case Q0:return null;case O0:return e==1?\"meso\":\"\"+e+\" meso diastereomers\";case 0:return\"unknown chirality\";case ky:return\"both enantiomers\";case v8:return\"this enantiomer\";case 327680:return\"this or other enantiomer\";case Ti:return\"two epimers\";default:return e==1?\"one stereo isomer\":\"\"+e+\" stereo isomers\"}}function oR(t){var e;for(t.U=0,t.D=c(B,F,6,t.N,15,1),t.t=c(B,F,6,t.N,15,1),t.A=c(B,F,6,t.N,15,1),t.K=c(q2,V2,28,t.N,0,1),e=0;e<t.N;e++)t.K[e]=new x0;t.B=c(B,F,6,t.N,15,1),t.v=c(B,F,6,t.N,15,1),t.C=c(XA,Pe,6,t.N,14,1),t.w=null,t.u=null,t.F=j1(B,[D0,F],[7,6],15,[2,t.O],2),t.I=c(B,F,6,t.O,15,1),t.G=c(B,F,6,t.O,15,1),t.H=c(B,F,6,t.O,15,1)}function w_(t,e,A,n,P,r,i){var f,D,Q,o,L;if(N(t.j,A)==3&&(B0(t.j,A)==1||B0(t.j,A)==2)&&N(t.d,r)==3&&(B0(t.d,r)==1||B0(t.d,r)==2)){for(L=e>n,Q=-1,D=0;D<N(t.j,A);D++)if(Q=Z(t.j,A,D),Q!=e&&Q!=n){(Q>n&&Q<e||Q<n&&Q>e)&&(L=!L);break}for(o=P>i,f=0;f<N(t.d,r);f++)if(Q=Z(t.d,r,f),Q!=P&&Q!=i){(Q>i&&Q<P||Q<i&&Q>P)&&(o=!o);break}return L==o==(B0(t.j,A)==B0(t.d,r))}return!0}function a5(t,e){var A,n,P,r,i,f;for(i=(t.U&4)!=0,f=!1,P=!1,r=!1,A=null,n=0;n<t.V.r;n++)if(r0(t.V,n))if(f){if(r!=SQ(A,mt(t.V,n),Rt(t.V,n))){P=!0;break}}else{if(f=!0,!i)break;A=x(t.I,0),r=SQ(A,mt(t.V,n),Rt(t.V,n))}return e?i?P?(Um(t,!0),!0):f?(dF(t,!0),!1):(Um(t,!1),!0):(dF(t,f),!1):i&&(P||!f)}function g_(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T;for(f=0,s=0;s<A.c.length;s++)for(P=A.e[A.c[s]],T=XD(J(t.k,P)),y=0;y<n.c.length;y++)r=n.e[n.c[y]],l=T+XD(J(t.k,r)),Q=w.Math.abs(e.k[P].a-e.k[r].a),Q<l&&(o=w.Math.abs(e.k[P].b-e.k[r].b),o<l&&(L=w.Math.abs(e.k[P].c-e.k[r].c),L<l&&(D=w.Math.sqrt(Q*Q+o*o+L*L),D<l&&(h=(l-D)/l,i=h*h,f+=i))));return 20*f}function d_(t){var e,A,n,P,r;for(t.a=t.d.f,t.b=c(Pt,it,6,t.k.g,16,1),t.c=c(Pt,it,6,t.k.i,16,1),t.g=new n1,e=lb(t);e!=-1;){if(A=t.g.a.length,cF(t,new Y3(e,-1,-1,!1,!1),A),N(t.k,e)!=0)for(fb(t,A,!1);A<t.g.a.length-1;){for(;nz(t,x(t.g,A).a);)fb(t,A,!0);++A}e=lb(t)}for(t.q=c(B,F,6,t.k.g,15,1),n=0,r=new Zt(t.g);r.a<r.c.a.length;)P=_t(r),t.q[P.a]=n++}function IP(t,e,A){var n,P,r;if(A!=null&&(A.length==0?A=null:(n=zA(A,321),(n!=0&&n==t.D[e]||e1(A,\"?\"))&&($0(t,e,n),A=null))),A==null){if(t.u!=null&&t.u[e]!=null)return t.u[e]=null,t.D[e]==1&&(t.U=0),!0}else if(t.u==null&&(t.u=c(_,v9,11,t.N,0,2)),t.u[e]==null||!e1(on((r=t.u[e],c0(),r)),A))return t.u[e]=ln((P=A,c0(),P)),t.D[e]==1&&(t.U=0),!0;return!1}function UR(t,e,A,n,P){var r,i,f,D,Q,o;if(n&&G1(t,e)>1||!n&&G1(t,e)>2)return!1;for(i=0,r=c(Ut,Tt,6,4,15,1),D=0;D<t.s;D++){for(Q=0;Q<2;Q++)if(t.F[Q][D]==e){if(i==2){i=3;break}r[i++]=_0(t,e,t.F[1-Q][D])}if(i==3)break}return i==3?!1:(o=i==1?r[0]+l1:w.Math.abs(r[0]-r[1])>l1?(r[0]+r[1])/2:(r[0]+r[1])/2+l1,f=l1*(A-2)/A,L6(t,e,A,e,n,o-f/2,l1-f,P),t.U=0,!0)}function t6(t){var e,A,n,P,r;if(P=new ig(new S8),r=new kg,t.k!=null)for(n=0;n<t.k.length;n++)for(e=0;e<t.k[n].s;e++)ks(P,t.e[n].R.c*ET(t.k[n],e)),ks(r,QT(P)),P.b.a.length<r.b.a.length&&ks(P,QT(r));return A=P.b.a.length+r.b.a.length,A==0?b_(t):t.p.c*(A%2==0?(hD(P.b.a.length==0?null:x(P.b,0))+hD(r.b.a.length==0?null:x(r.b,0)))/2:hD(P.b.a.length==0?null:x(P.b,0)))}function LR(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l;for(L=!1,s=0,Q=0;Q<A;Q++)t.I[Q]!=16&&(t.H[Q]&d8)==0&&++s;if(s==0){for(o=0;o<A;o++)(t.H[o]&d8)==0&&++s;L=!0}if(s==0){if(e<2)return n;for(l=Ge,r=1;r<e;r++)for(i=0;i<r;i++)y=BT(P[r],P[i]),y>0&&y<l&&(l=y);return l!=Ge?.6*l:n}for(f=0,D=0;D<A;D++)(L||t.I[D]!=16)&&(t.H[D]&d8)==0&&(f+=BT(P[t.F[1][D]],P[t.F[0][D]]));return f/s}function sR(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(o=-1,L=-1,s=-1,r=c(Pt,it,6,N(t.c,e),16,1),D=0;D<N(t.c,e);D++)if(!r[D]&&(P=Z(t.c,e,D),P!=A&&(i=C0(t.c,P),L<i))){for(f=!1,Q=D+1;Q<N(t.c,e);Q++)if(n=Z(t.c,e,Q),n!=A&&C0(t.c,n)==i){if(r[Q]=!0,f)return P;f=!0}f?s=P:(L=i,o=P)}return o==-1&&(t0(t.c,e)==1&&J(t.c,e)<10||mn(t.c,e)||xP(t.c,e,!0))?s:o}function B_(t){var e,A,n,P,r,i,f,D,Q,o,L;for(n=W8(t.f.g),D=2,A=0;A<t.f.g;A++)D=w.Math.max(D,Ct(t.f,A));for(r=(62+2*n+D*(n+1))/63|0,P=c(J4,H2,101,t.f.r,0,1),e=0;e<t.f.r;e++)P[e]=new NU(r),AA(P[e],e);for(L=c(B,F,6,t.f.r,15,1),i=0;i<t.f.i;i++)f=ze(t.f,i),(f==1||f==2)&&(Le(P[q(t.f,0,i)],f),Le(P[q(t.f,1,i)],f));Q=Lm(P,L);do o=Q,UW(t,P,L,n,D),Q=Lm(P,L);while(o!=Q);return L}function yR(t,e,A,n){VQ();var P,r,i,f,D,Q;if(i=0,Q=0,P=0,n==null&&(n=c(Oe,uA,6,3,15,1)),D=w.Math.min(t,w.Math.min(e,A)),f=w.Math.max(t,w.Math.max(e,A)),P=f,r=f-D,r==0)return P=D,i=0,n[0]=i,n[1]=Q,n[2]=P,n;if(f!=0)Q=r/f;else return Q=0,i=0,n[0]=i,n[1]=Q,n[2]=P,n;return t==f?i=(e-A)/r:e==f?i=2+(A-t)/r:i=4+(t-e)/r,i*=60,i<0&&(i+=360),n[0]=i/360,n[1]=Q,n[2]=P,n}function v_(t){var e,A,n,P,r,i,f,D,Q,o;for(Q=kn(t.d),o=Q.j.a.length,n=0;n<o;n++){for(e=x(Q.k,n),i=0;i<e.length;i++)Kr(t.f,U1(e[i]))||Jr(t.f,U1(e[i]),new n1),f=D8(t.f,U1(e[i])),f.add(e);if(Q.e[n])for(r=0;r<e.length;r++)Kr(t.e,U1(e[r]))||Jr(t.e,U1(e[r]),new n1),f=D8(t.e,U1(e[r])),f.add(e)}for(D=Bt(t.d.i/32+.96875),A=0;A<t.d.i;A++)P=new w3(D),DR(t,A,P),xA(t.g,P)}function F_(t,e,A,n,P,r){var i,f,D,Q,o,L,s;for(Q=gk(e)-gk(t),i=Cb(e,Q),D=N0(0,0,0);Q>=0&&(f=XJ(t,i),!(f&&(Q<22?D.l|=1<<Q:Q<44?D.m|=1<<Q-22:D.h|=1<<Q-44,t.l==0&&t.m==0&&t.h==0)));)o=i.m,L=i.h,s=i.l,i.h=L>>>1,i.m=o>>>1|(L&1)<<21,i.l=s>>>1|(o&1)<<21,--Q;return A&&is(D),r&&(n?(Kn=Ai(t),P&&(Kn=Qk(Kn,(ti(),dc)))):Kn=N0(t.l,t.m,t.h)),D}function L1(t,e,A){var n,P,r,i,f;if(t==null)throw et(new _P(y9));for(r=t.length,i=r>0&&(zt(0,t.length),t.charCodeAt(0)==45||(zt(0,t.length),t.charCodeAt(0)==43))?1:0,n=i;n<r;n++)if(AJ((zt(n,t.length),t.charCodeAt(n)))==-1)throw et(new _P(b2+t+'\"'));if(f=parseInt(t,10),P=f<e,isNaN(f))throw et(new _P(b2+t+'\"'));if(P||f>A)throw et(new _P(b2+t+'\"'));return f}function lR(t,e){var A,n,P,r,i,f,D,Q;for(t.q=new dU(t,e|t.f),n=c(B,F,6,t.g,15,1),P=0;P<t.i;P++)TP(t.q,P)!=0&&(t.G[P]|=64,++n[t.F[0][P]],++n[t.F[1][P]]);for(A=0;A<t.g;A++)n[A]==2?t.v[A]|=ue:n[A]==3?t.v[A]|=q1:n[A]>3&&(t.v[A]|=gn);for(Q=0;Q<t.q.j.a.length;Q++)for(i=ph(t.q,Q),D=Qg(t.q,Q),f=i.length,r=0;r<f;r++)t.v[i[r]]|=8,t.G[D[r]]|=128,t.I[D[r]]==386&&(t.I[D[r]]=2)}function k_(t,e){var A,n,P,r;if(e>0&&(e=Ls(t,e,9)),e>0&&(e=Ls(t,e,17)),e>0&&(e=Ls(t,e,35)),e>0&&(e=Ls(t,e,53)),e>0){for(A=0;A<t.g;A++)if(t.t[A]>0){for(P=!1,r=0;r<t.k[A];r++)if(n=t.j[A][r],t.t[n]==0&&rA(t,n)&&xt(t,n)>0){if(t.t[n]=-1,t.U=0,--e,e==0)return 0;P=!0;break}if(P)continue}}return e>0&&(e=Ys(t,e,8,16)),e>0&&(e=Ys(t,e,8,15)),e>0&&(e=Ys(t,e,8,6)),e>0&&(e=Ys(t,e,7,16)),e}function hR(t,e){var A,n,P,r,i,f,D,Q;for(P=0;P<t.g.i;P++)if((ie(t.g,P)&F8)!=0){if(r=ze(t.g,P),r==0)continue;if(A=q(t.g,0,P),n=q(t.g,1,P),t.f==null||e==-1&&t.f[A]==-1&&t.f[n]==-1||e!=-1&&(t.f[A]==e||t.f[n]==e)){if(i=t.G[A],f=t.G[n],D=o1(t.H,i,f),Q=ze(t.H,D),Q==0&&(A8(t.H,D)&&(Q=HW(t,D)),Q==0)||r==3||Q==3)continue;if(PW(t,P)==(r==Q))return!1}}return!0}function m_(t,e,A){var n,P,r,i,f,D;f=E1(vi[A]),i=Y1(E1(t.e),A),D=E1(t.f),r=In(D,f),P=n9(D,f),O(P,0)!=0&&(n=Si(Wt(O(P,0)<0?V0(P):P,1),f)?-1:I1(Wt(O(P,0)<0?V0(P):P,1),f)?1:0,r=at(r,KQ(Ot(r)&1,(O(P,0)==0?0:O(P,0)<0?-1:1)*(5+n),e.b)),w.Math.log10($9(O(r,0)<0?V0(r):r))>=e.a&&(r=In(r,10),i=Y1(i,1))),t.e=em($9(i)),t.d=e.a,t.f=$9(r),t.a=vT(r),t.c=null}function TR(t,e,A,n){var P,r,i,f,D,Q,o;for(Q=0,r=V(n,g1),f=A-1;f>=0;f--)o=z(Wt(Q,32),V(e[f],g1)),O(o,0)>=0?(D=In(o,r),Q=n9(o,r)):(P=b0(o,1),i=n>>>1,D=In(P,i),Q=n9(P,i),Q=at(Wt(Q,1),V(o,1)),(n&1)!=0&&(O(D,Q)<=0?Q=Y1(Q,D):qg(Y1(D,Q),r)?(Q=at(Q,Y1(r,D)),D=Y1(D,1)):(Q=at(Q,Y1(Wt(r,1),D)),D=Y1(D,2)))),t[f]=Ot(V(D,g1));return Ot(Q)}function b_(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h;if(L=Ge,s=_6,l=Ge,h=_6,P=0,t.k!=null)for(f=0;f<t.k.length;f++)for(A=0;A<t.k[f].r;A++)o=W1(t.e[f].R,S7(t.k[f],A).a),y=Z1(t.e[f].R,S7(t.k[f],A).b),L=w.Math.min(L,o),s=w.Math.max(s,o),l=w.Math.min(l,y),h=w.Math.max(h,y),++P;return P<=1?t.d:(r=s-L,i=h-l,D=(r+i)/2,Q=3*P,e=r*i,n=D/(1-Q),w.Math.sqrt(n*n-e/(1-Q))-n)}function j_(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h;for(Q=t.i.N,o=0,r=0;r<A;r++)Q>e[r]&&(Q=e[r],o=r);for(h=c(B,F,6,A,15,1),D=o>0?o-1:A-1,L=o<A-1?o+1:0,i=e[D]<e[L],P=0;P<A;P++)h[P]=e[o],i?--o<0&&(o=A-1):++o==A&&(o=0);for(l=new Zt(t.j);l.a<l.c.a.length;)if(y=_t(l),y.length==A){for(n=!0,f=0;f<A;f++)if(y[f]!=h[f]){n=!1;break}if(n)return}Ft(t.j,h),s=mb(t,h),Ft(t.k,s),ij(t,h,s)}function R_(t,e,A,n,P,r,i){return!(J(t.j,A)==8&&t0(t.j,A)==0&&QQ(t.j,e)&&QQ(t.d,n)&&r!=q1||J(t.j,A)==8&&N(t.j,A)==2&&QQ(t.j,Mq(t.j,e,A))&&r<768||J(t.j,e)==8&&(QQ(t.j,A)||QQ(t.d,P))&&r<512||!i&&(J(t.j,A)!=6||!_q(t.j,e))||J(t.j,A)==8&&J(t.j,e)!=6&&r!=q1||J(t.j,e)==5&&J(t.j,A)==6&&r<768)}function e6(t,e,A){var n,P;return P=Jp(t,e,(A&16)==0),P==null?null:(n=new bn(P[0]),A!=0&&(n.a+=\"#\",(A&1)!=0&&P.length>1&&P[1]!=null&&(n.a+=\"\"+P[1])),A&=-2,A!=0&&(n.a+=\"#\",(A&2)!=0&&P.length>2&&P[2]!=null&&(n.a+=\"\"+P[2])),A&=-3,A!=0&&(n.a+=\"#\",(A&4)!=0&&P.length>3&&P[3]!=null&&(n.a+=\"\"+P[3])),A&=-5,A!=0&&(n.a+=\"#\",(A&8)!=0&&P.length>4&&P[4]!=null&&(n.a+=\"\"+P[4])),n.a)}function cR(t,e,A){var n,P,r,i,f;for(r=0;r<e;r++){for(n=0,f=r+1;f<e;f++)n=at(at(yn(V(t[r],g1),V(t[f],g1)),V(A[r+f],g1)),V(Ot(n),g1)),A[r+f]=Ot(n),n=b0(n,32);A[r+e]=Ot(n)}for(YF(A,A,e<<1),n=0,P=0,i=0;P<e;++P,i++)n=at(at(yn(V(t[P],g1),V(t[P],g1)),V(A[i],g1)),V(Ot(n),g1)),A[i]=Ot(n),n=b0(n,32),++i,n=at(n,V(A[i],g1)),A[i]=Ot(n),n=b0(n,32);return A}function wR(t){var e,A,n,P,r,i,f,D,Q,o;i=Q6(t),D=t.r;do--D;while(D>=0&&i[D]);for(e=0;e<D;e++)if(i[e]){i6(t,e,D),o=i[e],i[e]=i[D],i[D]=o;do--D;while(i[D])}if(t.g=D+1,t.r==t.g){t.i=t.s;return}for(f=c(Pt,it,6,t.s,16,1),r=0;r<t.s;r++)A=t.F[0][r],n=t.F[1][r],(i[A]||i[n])&&(f[r]=!0);Q=t.s;do--Q;while(Q>=0&&f[Q]);for(P=0;P<Q;P++)if(f[P]){d5(t,P,Q),f[P]=!1;do--Q;while(f[Q])}t.i=Q+1}function p_(t,e,A){var n,P,r,i,f,D,Q;for(D=c(B,F,6,t.g,15,1),i=c(B,F,6,t.g,15,1),Q=c(Pt,it,6,t.i.g,16,1),n=q(t.i,0,e),P=q(t.i,1,e),D[0]=n,D[1]=P,i[1]=-1,Q[P]=!0,f=1;f>=1;){if(++i[f],i[f]==N(t.i,D[f])){Q[D[f]]=!1,--f;continue}if(r=Z(t.i,D[f],i[f]),!(Q[r]||A[r])){if(r==n&&f>1){if(j_(t,D,f+1),t.j.a.length>=ue)return;continue}f+1<t.g&&(++f,D[f]=r,Q[r]=!0,i[f]=-1)}}}function Lr(){Lr=v1;var t,e;for(m9=c(Fi,_e,23,32,0,1),tD=c(Fi,_e,23,32,0,1),pc=m(k(B,1),F,6,15,[1,10,100,1e3,fP,Ny,1e6,1e7,1e8,Jf]),t=1,e=0;e<=18;e++)m9[e]=(Ce(),O(t,0)>=0?me(t):mP(me(V0(t)))),tD[e]=ku(Wt(t,e),0)?me(Wt(t,e)):mP(me(V0(Wt(t,e)))),t=yn(t,5);for(;e<tD.length;e++)m9[e]=RP(m9[e-1],m9[1]),tD[e]=RP(tD[e-1],(Ce(),Jo))}function M_(t,e){var A,n,P,r,i,f,D,Q,o,L;if(o=Nd(t.f)!=1?1:hj(e,t.p[1],t.k[0]),L=Nd(t.g)!=1?1:hj(e,t.p[2],t.k[1]),!(o==1&&L==1)){for(i=360/w.Math.max(o,L)|0,A=0,n=0,r=0;r<t.d.length&&t.d[r]<i;r++)n+=t.c[r],++A;if(A!=0){for(Q=c(Yt,t1,6,A,15,1),f=c(Yt,t1,6,A,15,1),D=c(Yt,re,17,A,0,2),P=0;P<A;P++)Q[P]=t.d[P],f[P]=(t.c[P]*100/n|0)<<16>>16,D[P]=t.e[P];t.d=Q,t.c=f,t.e=D}}}function A6(t,e){var A,n,P,r,i,f,D,Q,o,L;if(f=c(B,F,6,t.r,15,1),i=Ur(t,f,!1,e),i<=1)return null;for(D=c(B,F,6,i,15,1),n=0;n<t.g;n++)++D[f[n]];for(o=0,L=D[0],Q=1;Q<i;Q++)L<D[Q]&&(L=D[Q],o=Q);for(A=0;A<t.r;A++)f[A]!=o&&(t.D[A]=-1);for(r=0;r<t.s;r++)(!e&&t.I[r]==16||f[t.F[0][r]]!=o)&&(t.I[r]=512);P=Rf(t),t.U=0;try{Kp(t,!0,!0)}catch(s){if(s=_1(s),!Jt(s,19))throw et(s)}return P}function C_(t){for(var e,A,n,P,r,i,f;;){for(r=null,e=0;e<t.f.r;e++){for(f=0,P=0;P<Ct(t.f,e);P++)t.c[Nt(t.f,e,P)]||++f;f==1&&(i=Q$(t,e),(!r||i.a.length>r.a.length)&&(r=i))}if(!r)break;for(A=new VP(t.f,r.a.length,!1),n=0;n<r.a.length;n++)t.b[r.a[n]]=!0,n<r.a.length-1&&(t.c[r.b[n]]=!0),A.e[n]=r.a[n],A.a[n]=w.Math.cos(C2)*n,A.b[n]=(n&1)==1?0:.5,A.k[n]=128+r.a.length;CP(t.d,A)}}function H_(t,e,A,n,P){var r,i,f,D;if(i=t.e[e],t.p[e]!=0||e<t.g&&i0(t.q,e)||t.k[e]<3||i>4)return!1;for(D=c(Pt,it,6,4,16,1),f=0;f<i;f++){if(r=3.9269908169872414-n[f],w.Math.abs(a6-r%HA)>.0872664675116539||(P[f]=3&Bt(r/HA),D[P[f]]))return!1;if(D[P[f]]=!0,(P[f]&1)==0){if(t.I[t.n[e][A[f]]]!=1)return!1}else if(!_9(t,t.n[e][A[f]],e))return!1}return D[0]&&D[2]}function V_(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y;for(s=c(B,F,6,t.g,15,1),y=aX(t,e,s),i=!1,r=!1,L=new n1,P=0;P<y;P++)(t.v[s[P]]&4)!=0&&(Q=n6(t,s[P],n),(Q==1||Q==2)&&(f=A.v[n[s[P]]]&3,(f==1||f==2)&&(Q==f?i=!0:r=!0)),D=c(B,F,6,2,15,1),D[0]=s[P],D[1]=Q,L.a.push(D));if(!i||!r)for(o=new Zt(L);o.a<o.c.a.length;)Q=_t(o),D=Q[1],(D==1||D==2)&&r&&(D=D==1?2:1),ke(A,n[Q[0]],D,!0)}function KQ(t,e,A){var n;switch(n=0,A.b){case 7:if(e!=0)throw et(new I8(\"Rounding necessary\"));break;case 0:n=e==0?0:e<0?-1:1;break;case 2:n=w.Math.max(e==0?0:e<0?-1:1,0);break;case 3:n=w.Math.min(e==0?0:e<0?-1:1,0);break;case 4:w.Math.abs(e)>=5&&(n=e==0?0:e<0?-1:1);break;case 5:w.Math.abs(e)>5&&(n=e==0?0:e<0?-1:1);break;case 6:w.Math.abs(e)+t>5&&(n=e==0?0:e<0?-1:1)}return n}function E_(t,e){var A,n;if(A=BT(Z0(e,t.f[1]),Z0(e,t.f[0])),t.a.length==2){if(A<1.02*t.a[0])return gK(t,e.o,A);if(A>t.a[1])return _7((A-t.a[1])/A)}else if(n=t.c==10?Lx(w.Math.abs(t.a[0]-A)/w.Math.max(t.a[0],A)):t.c==5?vx(w.Math.abs(t.a[0]-A)/w.Math.max(t.a[0],A)):_7(w.Math.abs(t.a[0]-A)/w.Math.max(t.a[0],A)),w.Math.abs(n)>.009999999776482582)return n;return 0}function Xs(t,e){var A,n,P,r,i;if(e<t.g&&i0(t.q,e)||t.p[e]!=0||gt(V(t.C[e],d9),0)||(n=t.v[e]&gn,(n==0?0:n==ue?2:n==q1?3:4)<3)||(i=t.q&&e<t.g?UA(t.q,e):0,i>7))return!1;for(r=0;r<t.q.j.a.length&&!(e3(t.q,r)==i&&wA(t.q,r,e));)++r;if(r>=ue&&r==t.q.j.a.length)return!1;for(P=0;P<t.k[e];P++)if(A=t.n[e][P],!rf(t.q,r,A)&&ctt(t,e,r,t.j[e][P],A))return!0;return!1}function S_(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g;D=(e.c-e.d)/9,y=(e.b-e.a)/9,Q=e.b+D,l=e.d+y,o=e.b-D,h=e.d-y,L=(e.a+Q)/2,T=(e.c+l)/2,s=(e.a+o)/2,g=(e.c+h)/2,i=new WD(3),f=new WD(4),Ie(i,e.a,e.c),Ie(i,L,T),Ie(i,s,g),Ie(f,s,g),Ie(f,L,T),Ie(f,Q,l),Ie(f,o,h),V9(t.L,o1(t.L,A,n))?(P=-3,r=-3):(P=t.p[A],r=t.p[n],t.L.P!=1&&(r=l5(t,A),P==wu(t.L,A)&&(P=r))),$1(t,P),t.sb(i),$1(t,r),t.sb(f),$1(t,t.Q)}function I_(t){var e,A,n,P,r,i,f,D;ut(t.i,1),f=t.i.g;do--f;while(f>=0&&J(t.i,f)==1);for(e=0;e<f;e++)if(J(t.i,e)==1){i6(t.i,e,f);do--f;while(J(t.i,f)==1)}if(f!=t.i.g-1){for(i=c(Pt,it,6,t.i.i,16,1),r=0;r<t.i.i;r++)A=q(t.i,0,r),n=q(t.i,1,r),(J(t.i,A)==1||J(t.i,n)==1)&&(i[r]=!0);D=t.i.i;do--D;while(D>=0&&i[D]);for(P=0;P<D;P++)if(i[P]){d5(t.i,P,D),i[P]=!1;do--D;while(i[D])}}}function x_(t,e,A){var n,P,r,i,f,D;for(f=new M0,n=iX(t,e),f.a+=\" rb:\",D=f.a.length,r=0;r<n.length;r++)n[r]!=-1&&(f.a.length!=D&&(f.a+=\",\"),f.a+=r);for(f.a+=\" ti:\",D=f.a.length,i=0;i<n.length;i++)n[i]!=-1&&(f.a.length!=D&&(f.a+=\",\"),f.a+=n[i]);for(f.a+=\" (\",D=f.a.length,P=0;P<n.length;P++)n[P]!=-1&&(f.a.length!=D&&(f.a+=\",\"),Hh(f,A.i[P][n[P]]));return G(f,(A9(),\") \"+Q9(e.a,3))),f.a}function Zs(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l;A==0?(L=e.a,y=e.c,s=e.b,l=e.d):(L=e.b,y=e.d,s=e.a,l=e.c),o=x(t.$,n),D=s>L?o.c+o.b:o.c,Q=l>y?o.d+o.a:o.d,P=s-L,r=l-y,w.Math.abs(P)>w.Math.abs(r)?y==l?(i=D,f=y):(i=L+P*(Q-y)/r,s>L==D>i?f=Q:(i=D,f=y+r*(D-L)/P)):L==s?(i=L,f=Q):(f=y+r*(D-L)/P,l>y==Q>f?i=D:(i=L+P*(Q-y)/r,f=Q)),A==0?(e.a=i,e.c=f):(e.b=i,e.d=f)}function n6(t,e,A){var n,P,r,i,f,D,Q,o,L;if(L=t.v[e]&3,L==1||L==2){if(f=!1,t.p[e]==2&&t.k[e]==2&&t.o[e][0]==2&&t.o[e][1]==2&&t.D[e]<=7)for(i=0;i<t.k[e];i++){for(n=t.j[e][i],o=0,Q=c(B,F,6,3,15,1),D=0;D<t.k[n];D++)Q[o]=t.j[n][D],Q[o]!=e&&++o;o==2&&Q[0]<Q[1]^A[Q[0]]<A[Q[1]]&&(f=!f)}else for(i=1;i<t.k[e];i++)for(D=0;D<i;D++)P=t.j[e][i],r=t.j[e][D],P<r^A[P]<A[r]&&(f=!f);f&&(L=L==1?2:1)}return L}function N_(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(t.u=c(Pt,T0,12,t.k.r,0,2),A=1;A<t.k.r;A++)t.u[A]=c(Pt,it,6,A,16,1);for(o=t.q,L=0,s=o.length;L<s;++L)for(Q=o[L],i=1;i<Q.d.length;i++)for(D=0;D<i;D++)JB(t,Q.e[Q.d[i]],Q.e[Q.d[D]]);for(e=0;e<t.k.g;e++)for(r=1;r<Ct(t.k,e);r++)for(f=0;f<r;f++)JB(t,Z(t.k,e,r),Z(t.k,e,f));if(t.e!=null)for(n=1;n<t.k.r;n++)for(P=0;P<n;P++)t.e[n]!=t.e[P]&&(t.u[n][P]=!0)}function G_(t){var e,A,n,P,r,i,f,D;if(!t.k||t.k.r==0)return\"\";for(ut(t.k,15),t.d=new qA(t.k,129),P=t.d.T,t.o=c(Pt,it,6,P+1,16,1),t.n=c(Pt,it,6,P+1,16,1),t.i=j1(B,[D0,F],[7,6],15,[2,32],2),e=0;e<t.k.g;e++)D=fe(t.k,e)-1,D!=-1&&++t.i[D][OA(t.k,e)];for(d_(t),Va(t),t1t(t),n=new M0,A=new M0,r=!0,f=new Zt(t.g);f.a<f.c.a.length;)i=_t(f),i.g==-1&&(r?r=!1:n.a+=\".\"),Ntt(t,i,n,A);return n.a}function gR(t,e){var A,n,P,r;for(Ri(t.V),t.L=c(gr,B9,26,e.g.a.length+e.f.a.length,0,1),t.Y=e.g.a.length,P=0;P<e.g.a.length+e.f.a.length;P++)t.L[P]=P<e.g.a.length?x(e.g,P):x(e.f,P-e.g.a.length),CD(t.V,t.L[P]);for(Be(t.V,e.c||jQ(e)),J1(t),t.M=c(B,F,6,t.V.r,15,1),A=0,n=0;n<t.L.length;n++)for(r=0;r<t.L[n].r;r++)t.M[A++]=n;t.I=new oU,t.U=5,t.eb=w.Math.max(t.eb,5),P1(t.k),N1(t,new x1(t,1,!1))}function O_(t){var e,A,n,P,r,i;if(t.L.L){for($1(t,320),e=0;e<t.L.g;e++)P=l0(t.L,e),O(P,0)!=0&&((t.G&8)!=0||gt(V(P,{l:be,m:896,h:1048448}),0))&&t.ub(W1(t.R,mt(t.L,e))-t.Z/2,Z1(t.R,Rt(t.L,e))-t.Z/2,t.Z);for(r=0;r<t.L.i;r++)i=ie(t.L,r),i!=0&&((t.G&8)!=0||(i&-8388481)!=0)&&(A=q(t.L,0,r),n=q(t.L,1,r),t.ub((W1(t.R,mt(t.L,A))+W1(t.R,mt(t.L,n))-t.Z)/2,(Z1(t.R,Rt(t.L,A))+Z1(t.R,Rt(t.L,n))-t.Z)/2,t.Z))}}function dR(t){t.r&&(a5(t,!1),null.zd(),null.zd(),(t.U&4)!=0&&(null.zd(),null.zd()),(t.U&4)!=0&&null.zd()),(t.U&4)!=0&&t.w==19&&(null.zd(),null.zd(),null.zd(),null.zd(),null.zd(),null.zd()),t.w==18&&(null.zd(),null.zd(),null.zd()),t.g&&t.t!=-1&&(wu(t.V,t.t),null.zd(),null.zd(),null.zd(),null.zd(),null.zd(),null.zd(),null.zd(),null.zd(),null.zd(),null.zd()),null.zd()}function JQ(t,e,A,n,P,r){var i,f,D,Q,o;for(ut(t,1),P&&(KL(P),P.d=null,P.L=!1),D=c(B,F,6,t.r,15,1),n==null?n=c(Pt,it,6,t.r,16,1):xu(n,n.length),D[0]=e,D[1]=A,n[e]=!0,n[A]=!0,f=1,Q=1;f<=Q;){for(o=0;o<t.e[D[f]];o++){if(i=t.j[D[f]][o],i==e&&f!=1)return-1;n[i]||(n[i]=!0,D[++Q]=i)}++f}return P&&(r==null&&(r=c(B,F,6,n.length,15,1)),L9(t,P,n,!1,r),mf(P,r[e],0,0,-1,0)),n[e]=!1,Q}function q_(t){var e,A,n,P,r,i,f,D;for(A=0;A<t.j.i;A++)if(t.e[A])for(P=0;P<2;P++){for(f=q(t.j,P,A),e=!1,i=0;i<N(t.j,f);i++)if(A!=Nt(t.j,f,i)&&t.e[Nt(t.j,f,i)]){e=!0;break}if(!e){for(D=A,n=q(t.j,1-P,A);D!=-1;)for(t.d[f]=!1,t.e[D]=!1,--t.c,w0(t.j,D,8),D=-1,f=n,r=0;r<N(t.j,f);r++)if(t.e[Nt(t.j,f,r)])if(D==-1)D=Nt(t.j,f,r),n=Z(t.j,f,r);else{f=-1,D=-1;break}f!=-1&&(t.d[n]=!1);break}}}function z_(t,e,A){var n,P,r,i,f,D,Q,o;for(r=t.g[e],P=1,D=0;D<r.length;D++)if(n=r[D],t.f[n]&&t.k[n]==2){P=2;break}for(i=c(B,D0,7,32,0,2),Q=0;Q<r.length;Q++)n=r[Q],t.f[n]&&t.k[n]==P&&(i[t.j[n]]=uf(i[t.j[n]],(A[n]<<16)+n));for(o=0;o<32;o++)i[o]!=null&&i[o].sort(pe(u0.prototype.ld,u0,[]));if(ju(i,new qe),b5(i[0],i[1])==0)return!1;for(f=0;f<i[0].length;f++)n=i[0][f]&d1,t.k[n]=0,t.j[n]=-1;return!0}function K_(t){var e,A,n,P,r,i,f,D,Q,o,L;for(n=c(B,F,6,t.O,15,1),e=0;e<t.R.g;e++){for(o=N(t.R,e)+qi(t.R,e),Q=0,r=0;r<Ue(t.R,e);r++)if(r<N(t.R,e)||r>=Ct(t.R,e)){for(L=2*t.f[Z(t.R,e,r)],A=Nt(t.R,e,r),dt(t.R,A)==2&&(eA(t.R,A)||++L),f=0;f<Q&&!(L<n[f]);f++);for(D=Q;D>f;D--)n[D]=n[D-1];n[f]=L,++Q}for(AA(t.e[e],e),a1(t.e[e],t.c,t.f[e]),i=o;i<t.O;i++)a1(t.e[e],t.c+1,0);for(P=0;P<o;P++)a1(t.e[e],t.c+1,n[P])}}function J_(t,e){var A,n,P,r,i,f,D,Q;if(e.startsWith(\"M  SUB\")&&(r=L1(k1((Mt(6,9,e.length),e.substr(6,3))),f1,Et),r>0)){for(A=10,Q=14,i=1;i<=r;++i,A+=8,Q+=8)if(n=L1(k1((Mt(A,A+3,e.length),e.substr(A,A+3-A))),f1,Et)-1,f=L1(k1((Mt(Q,Q+3,e.length),e.substr(Q,Q+3-Q))),f1,Et),f==-2)w1(t.j,n,q1,!0);else if(f>0){for(D=0,P=0;P<t.j.s;P++)(q(t.j,0,P)==n||q(t.j,1,P)==n)&&++D;f>D&&w1(t.j,n,E0,!0)}}}function BR(t,e){var A,n,P,r,i,f;return P=ZF(t),f=ZF(e),P==f?t.e==e.e&&t.a<54&&e.a<54?t.f<e.f?-1:t.f>e.f?1:0:(n=t.e-e.e,A=(t.d>0?t.d:w.Math.floor((t.a-1)*bo)+1)-(e.d>0?e.d:w.Math.floor((e.a-1)*bo)+1),A>n+1?P:A<n-1?-P:(r=(!t.c&&(t.c=jP(E1(t.f))),t.c),i=(!e.c&&(e.c=jP(E1(e.f))),e.c),n<0?r=RP(r,Qi(-n)):n>0&&(i=RP(i,Qi(n))),ys(r,i))):P<f?-1:1}function Y_(t){var e,A,n,P,r,i,f,D,Q,o,L;for(t.b=c(B,F,6,t.i.g,15,1),f=c(B,F,6,t.i.g,15,1),n=c(Pt,it,6,t.i.i,16,1),L=0,A=0;A<t.i.i;A++)if(!n[A]&&t.g[A])for(++L,t.b[q(t.i,0,A)]=L,t.b[q(t.i,1,A)]=L,n[A]=!0,Q=0;Q<2;Q++)for(e=q(t.i,Q,A),t.b[e]=L,i=0,D=0,f[0]=e;i<=D;){for(o=0;o<N(t.i,f[i]);o++)r=Nt(t.i,f[i],o),!n[r]&&t.g[r]&&(n[r]=!0,P=Z(t.i,f[i],o),t.b[P]==0&&(t.b[P]=L,f[++D]=P));++i}t.j=L}function X_(t,e,A,n,P){var r,i;if(r=at(V(e[0],g1),V(n[0],g1)),t[0]=Ot(r),r=G0(r,32),A>=P){for(i=1;i<P;i++)r=at(r,at(V(e[i],g1),V(n[i],g1))),t[i]=Ot(r),r=G0(r,32);for(;i<A;i++)r=at(r,V(e[i],g1)),t[i]=Ot(r),r=G0(r,32)}else{for(i=1;i<A;i++)r=at(r,at(V(e[i],g1),V(n[i],g1))),t[i]=Ot(r),r=G0(r,32);for(;i<P;i++)r=at(r,V(n[i],g1)),t[i]=Ot(r),r=G0(r,32)}O(r,0)!=0&&(t[i]=Ot(r))}function P6(t,e,A,n,P){s8();var r,i,f,D,Q,o,L,s,y,l,h;for(D=0;D<e.length;D++)X8(A,t.k[e[D]]);for(WU(A,1/e.length),Q=0;Q<e.length;Q++)P[Q][0]=t.k[e[Q]].a-A.a,P[Q][1]=t.k[e[Q]].b-A.b,P[Q][2]=t.k[e[Q]].c-A.c;for(l=j1(Ut,[T0,Tt],[15,6],15,[3,3],2),o=0;o<e.length;o++)for(L=0;L<3;L++)for(s=0;s<3;s++)l[L][s]+=P[o][L]*P[o][s];for(h=new yy(l),r=h.e,y=0,f=1;f<3;f++)r[f]<r[y]&&(y=f);i=h.a,n.a=i[0][y],n.b=i[1][y],n.c=i[2][y]}function Z_(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l;if(o=c(Pt,it,6,e.r,16,1),s=JQ(e,t.k[0],t.p[1],o,null,null),P=0,t.k[0]!=t.p[2]&&(P=H5(e,t.k[0],t.p[2])),Q=!1,s>n-P-s&&(s=n-P-s,Q=!0),Q&&P!=0){for(l=t.k[0],i=t.p[1];e.p[l]==2&&e.k[l]==2&&e.D[l]<10;)for(o[l]=!0,L=0;L<2;L++)if(f=e.j[l][L],f!=i){i=l,l=f;break}}for(y=0,D=A[t.p[1]],t.o=c(B,F,6,s,15,1),r=0;r<e.r;r++)A[r]==D&&o[r]^Q&&(t.o[y++]=r);t.n=t.p[Q?2:1]}function vR(t,e){Xg();var A,n,P,r;n=new Js(t);try{for(r=new wh,QA(r,\"$RXN\"+Zf),Ni(r.a,e??\"\"),QA(r,Zf+(\"\"+Zf)),QA(r,Xy+e6(t,!0,27)),QA(r,Zf),QA(r,\"  \"+n.g.a.length+\"  \"+n.f.a.length+Zf),P=CZ(n),A=0;A<n.g.a.length+n.f.a.length;A++)QA(r,\"$MOL\"+Zf),Px(new R6(A<n.g.a.length?x(n.g,A):x(n.f,A-n.g.a.length),P,null),r);this.a=r.a}catch(i){if(i=_1(i),Jt(i,19))z1();else throw et(i)}}function W_(t){var e,A,n,P,r,i,f,D,Q,o;for(r=dP(t,t.r,t.s,Bn),i=r*r/16,n=1;n<t.r;n++)for(P=0;P<n;P++)if(D=t.K[P].a-t.K[n].a,Q=t.K[P].b-t.K[n].b,o=t.K[P].c-t.K[n].c,D*D+Q*Q+o*o<i)throw et(new H1(\"The distance between two atoms is too close.\"));for(ut(t,1),e=0,A=0;A<t.g;A++){if(G1(t,A)>(f=Sn(t,A),f+An(t,A,f,t.D[A])))throw et(new H1(\"atom valence exceeded\"));e+=t.t[A]}if(e!=0)throw et(new H1(\"unbalanced atom charge\"))}function YQ(t,e){var A,n,P,r,i,f,D,Q,o;return A=t.K[e[0]],n=t.K[e[1]],P=t.K[e[2]],r=t.K[e[3]],D=new Ke(n.a-A.a,n.b-A.b,n.c-A.c),Q=new Ke(P.a-n.a,P.b-n.b,P.c-n.c),o=new Ke(r.a-P.a,r.b-P.b,r.c-P.c),i=new Ke(D.b*Q.c-D.c*Q.b,-(D.a*Q.c-D.c*Q.a),D.a*Q.b-D.b*Q.a),f=new Ke(Q.b*o.c-Q.c*o.b,-(Q.a*o.c-Q.c*o.a),Q.a*o.b-Q.b*o.a),-w.Math.atan2(w.Math.sqrt(Q.a*Q.a+Q.b*Q.b+Q.c*Q.c)*(D.a*f.a+D.b*f.b+D.c*f.c),i.a*f.a+i.b*f.b+i.c*f.c)}function XQ(t,e){var A,n,P,r,i,f,D,Q,o;return A=Z0(t,e[0]),n=Z0(t,e[1]),P=Z0(t,e[2]),r=Z0(t,e[3]),D=new Ke(n.a-A.a,n.b-A.b,n.c-A.c),Q=new Ke(P.a-n.a,P.b-n.b,P.c-n.c),o=new Ke(r.a-P.a,r.b-P.b,r.c-P.c),i=new Ke(D.b*Q.c-D.c*Q.b,-(D.a*Q.c-D.c*Q.a),D.a*Q.b-D.b*Q.a),f=new Ke(Q.b*o.c-Q.c*o.b,-(Q.a*o.c-Q.c*o.a),Q.a*o.b-Q.b*o.a),-w.Math.atan2(w.Math.sqrt(Q.a*Q.a+Q.b*Q.b+Q.c*Q.c)*(D.a*f.a+D.b*f.b+D.c*f.c),i.a*f.a+i.b*f.b+i.c*f.c)}function FR(t,e){var A,n,P,r,i,f;for(P=null,r=t.a.a.length+e,f=e*12,n=new n1,i=0;i<f&&t.a.a.length<r&&!(gt(t.n,0)&&(z1(),I1(E1(Date.now()),t.n)));i++)!P&&(P=new Hu(t.d)),aj(t,P)?jR(t,P,t.a,0)&&(P=null):jR(t,P,n,1)&&(P=null);t.a.a.length==0&&n.a.length!=0&&(A=Qf(n,c(HS,sE,97,0,0,1)),ju(A,new Ww),MP(t.a,new JD(new hU(A),0,w.Math.min(e,A.length))),t.e=!0),(t.a.a.length<r||t.a.a.length==t.b)&&(t.e=!0)}function kf(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(s=-1,l=dP(t,t.r,t.s,Bn),y=Ge,n=0;n<t.s;n++)h=t.K[t.F[0][n]].a,g=t.K[t.F[0][n]].b,T=t.K[t.F[1][n]].a,v=t.K[t.F[1][n]].b,o=T-h,L=v-g,P=w.Math.sqrt(o*o+L*L),r=(h+T)/2,i=(g+v)/2,o=e-r,L=A-i,!(w.Math.sqrt(o*o+L*L)>P/2)&&(T==h?Q=w.Math.abs(h-e):(f=(v-g)/(h-T),D=-f*h-g,Q=w.Math.abs((f*e+A+D)/w.Math.sqrt(f*f+1))),Q<l&&Q<y&&(y=Q,s=n));return s}function __(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(P=q(t.i,0,e),r=q(t.i,1,e),D=c(B,F,6,t.i.g,15,1),Q=c(B,F,6,t.i.g,15,1),o=c(B,F,6,t.i.g,15,1),D[0]=P,D[1]=r,Q[P]=1,Q[r]=2,o[P]=-1,o[r]=P,f=1,L=1;f<=L;){for(s=0;s<N(t.i,D[f]);s++){if(i=Z(t.i,D[f],s),f>1&&i==P){for(l=c(B,F,6,Q[D[f]],15,1),n=D[f],y=0;y<l.length;y++)l[y]=n,n=o[n];return l}Q[i]==0&&!A[i]&&(D[++L]=i,Q[i]=Q[D[f]]+1,o[i]=D[f])}++f}return null}function $_(t,e){var A,n,P,r,i,f,D,Q,o,L;for(o=Et,D=-1,L=-1,Q=-1,n=0;n<t.j.i.g;n++)if(B3(t.j,n)&&t.j.k[n]!=0)for(f=0;f<e.length;f++)P=e[f]<t.a?e[f]:e[f]<t.b?e[f]-t.a:-1,r=e[f]<t.a?1:e[f]<t.b?2:0,t.j.k[n]==r&&t.j.j[n]==P&&o>t.j.a[n]+(r==1?Q0:0)&&(o=t.j.a[n]+(r==1?Q0:0),D=P,L=r,Q=e[f]);for(A=0;A<t.j.i.g;A++)B3(t.j,A)&&t.j.k[A]==L&&t.j.j[A]==D&&(t.j.k[A]=0,t.j.j[A]=-1);for(i=0;i<t.j.g.length;i++)t.e[Q][i]=!1}function a_(t){var e,A,n,P,r;if(A=t.indexOf(R0(38)),A==-1)return t;for(P=0,r=new gD;A!=-1;)Ni(r,(Mt(P,A,t.length),t.substr(P,A-P))),zt(A+1,t.length),t.charCodeAt(A+1)==38?(r.a+=\"&\",P=A+2):(e=(zt(A+1,t.length),t.charCodeAt(A+1)),e=e-(e<65?48:e<97?65:97),n=(zt(A+2,t.length),t.charCodeAt(A+2)),n=n-(n<65?48:n<97?65:97),EB(r,16*e+n&d1),P=A+3),A=t.indexOf(R0(38),P);return Ni(r,(zt(P,t.length+1),t.substr(P))),r.a}function t$(t){var e,A,n,P,r,i,f,D,Q,o;e=t.a,A=t.b,n=t.c,n=g0(n,A),n=Y1(n,(r=g0(Wt(A,14),b0(A,18)),r)),e=g0(e,n),e=Y1(e,(i=g0(Wt(n,11),b0(n,21)),i)),A=g0(A,e),A=Y1(A,(f=g0(Wt(e,25),b0(e,7)),f)),n=g0(n,A),n=Y1(n,(D=g0(Wt(A,16),b0(A,16)),D)),e=g0(e,n),e=Y1(e,(Q=g0(Wt(n,4),b0(n,28)),Q)),A=g0(A,e),A=Y1(A,(o=g0(Wt(e,14),b0(e,18)),o)),n=g0(n,A),n=Y1(n,(P=g0(Wt(A,24),b0(A,8)),P)),t.a=e,t.b=A,t.c=n}function e$(t){var e,A,n,P,r,i;for(t.L=!0,r=U2(t,!1);t.U<t.R.g&&r;){for(e=0;e<t.R.g;e++)AA(t.e[e],e),a1(t.e[e],t.c,t.f[e]),i=t.db[e]<<7,(t.db[e]==1||t.db[e]==2)&&t.bb[e]!=0&&(i|=t.bb[e]<<5,i|=t.ab[e]),a1(t.e[e],18,Wt(i,9));for(A=0;A<t.R.i;A++)n=t.o[A]<<7,(t.o[A]==1||t.o[A]==2)&&c1(t.R,A)==1&&t.n[A]!=0&&(n|=t.n[A]<<5,n|=t.k[A]),Le(t.e[q(t.R,0,A)],n),Le(t.e[q(t.R,1,A)],n);if(P=tP(t),t.U==P)break;t.U=P,r=U2(t,!1)}}function qA(t,e){this.R=t,this.Q=e,ut(this.R,7),this.c=W8(this.R.g),(this.Q&q1)==0&&SW(this),this.jb=(e&64)!=0||tQ(this.R),this.b=Gq(this.R)==0,(this.Q&q1)==0&&(this.db=c(_,At,6,this.R.g,15,1),this.fb=c(Pt,it,6,this.R.g,16,1),this.ib=c(Pt,it,6,this.R.g,16,1),this.o=c(_,At,6,this.R.i,15,1),this.q=c(Pt,it,6,this.R.i,16,1),this.p=c(Pt,it,6,this.R.i,16,1)),this.d=!1,o1t(this),(this.Q&q1)==0&&Ma(this),P_(this)}function A$(t,e,A,n,P){var r,i,f,D,Q,o;for(D=null,r=null,o=0;o<t.g[e].length;o++)i=t.g[e][o],t.f[i]&&(t.o[i]==1||t.o[i]==2)&&(t.k[i]==0?r=uf(r,(P[i]<<16)+i):t.k[i]==n&&t.j[i]==A&&(D=uf(D,(P[i]<<16)+i)));if(f=b5(D,r),f==0)return!1;if(f<0)for(Q=0;Q<t.g[e].length;Q++)i=t.g[e][Q],t.f[i]&&(t.o[i]==1||t.o[i]==2)&&(t.k[i]==0?(t.k[i]=n<<24>>24,t.j[i]=A<<24>>24):t.k[i]==n&&t.j[i]==A&&(t.k[i]=0,t.j[i]=-1));return!0}function n$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(f=c(B,F,6,t.f.r,15,1),D=c(B,F,6,t.f.r,15,1),Q=c(B,F,6,t.f.r,15,1),o=c(B,F,6,t.f.r,15,1),f[0]=A,Q[A]=1,o[0]=-1,i=0,L=0;i<=L;){for(s=0;s<Ct(t.f,f[i]);s++){if(P=Z(t.f,f[i],s),l=Nt(t.f,f[i],s),P==e){for(r=Q[f[i]],n=c(B,F,6,r,15,1),n[0]=l,y=1;y<r;y++)n[y]=D[i],i=o[i];return n}Q[P]==0&&(f[++L]=P,D[L]=l,Q[P]=Q[f[i]]+1,o[L]=i)}if(i==L)return null;++i}return null}function P$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h;return y=t.a,l=t.d,h=t.e,l==1?(n=V(y[0],g1),P=V(e,g1),r=In(n,P),Q=n9(n,P),h!=A&&(r=V0(r)),h<0&&(Q=V0(Q)),m(k(Fi,1),_e,23,0,[(Ce(),O(r,0)>=0?me(r):mP(me(V0(r)))),O(Q,0)>=0?me(Q):mP(me(V0(Q)))])):(f=l,D=h==A?1:-1,i=c(B,F,6,f,15,1),o=m(k(B,1),F,6,15,[TR(i,y,l,e)]),L=new ye(D,f,i),s=new ye(h,1,o),Hn(L),Hn(s),m(k(Fi,1),_e,23,0,[L,s]))}function r$(t,e,A){var n,P,r,i,f;return!oi(t.R,e)||(n=q(t.R,0,e),P=q(t.R,1,e),i=new Ff(t.R,t.f,n,P),i.f&&A==1)||(f=new Ff(t.R,t.f,P,n),f.f&&A==1)||i.f&&f.f?!1:(A==3&&(i.f&&(t.V[e]=uj(t,P)),f.f&&(t.V[e]=uj(t,n))),r=t.jb?sY(t,i,f):LJ(i,f),A==1?t.o[e]=r:A==2&&(i.f&&(r==2?Le(t.e[i.b],t.f[P]):Le(t.e[i.d],t.f[P])),f.f&&(r==2?Le(t.e[f.b],t.f[n]):Le(t.e[f.d],t.f[n]))),!0)}function i$(t){t=t||{};var e=0;return t.createSymmetryRank&&(e|=1),t.considerStereoheterotopicity&&(e|=2),t.encodeAtomCustomLabels&&(e|=8),t.encodeAtomSelection&&(e|=16),t.assignParitiesToTetrahedralN&&(e|=32),t.coordsAre3d&&(e|=64),t.createPseudoStereoGroups&&(e|=128),t.distinguishRacemicOrGroups&&(e|=256),t.tieBreakFreeValenceAtoms&&(e|=512),t.encodeAtomCustomLabelsWithoutRanking&&(e|=ue),t.neglectAnyStereoInformation&&(e|=q1),e}function kR(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,h,T,g;for(L=i;L>1;L--){for(h=r[L]-r[L-1],g=c(V1t,e0,176,h,0,1),f=r[L],l=0;l<h;l++){for(T=r[L-1]+l,s=f;s<r[L+1]&&n[s]==T;)++s;for(g[l]=new P0,g[l].c=T,g[l].d=A[T],g[l].b=e[T]?0:_d(t.R,P[T]),g[l].a=c(B,F,6,s-f,15,1),o=f;o<s;o++)g[l].a[o-f]=A[o];g[l].a.sort(pe(u0.prototype.ld,u0,[])),f=s}for(D=new s1,ai(g,0,g.length,D),Q=1,y=0;y<h;y++)A[g[y].c]=Q,y!=h-1&&Uj(g[y],g[y+1])!=0&&++Q}}function f$(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(r=0;r<t.f.s;r++)if(n=q(t.f,0,r),P=q(t.f,1,r),!(LA(t.f,r)||dt(t.f,r)!=1||Ct(t.f,n)==1||Ct(t.f,P)==1)&&!((t.e&4)!=0&&W0(t.f,n)&&W0(t.f,P))){for(L=!1,Q=0;Q<2;Q++)if(i=q(t.f,Q,r),Ct(t.f,i)>2){for(s=!0,D=-1,o=0;o<Ct(t.f,i);o++)f=Z(t.f,i,o),f!=q(t.f,1-Q,r)&&(D==-1?D=A[f]:D!=A[f]&&(s=!1));if(s){L=!0;break}}L||((t.e&8)!=0&&W0(t.f,n)&&W0(t.f,P)?e[r]=1:e[r]=2)}}function g2(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(f=!1,D=0;D<t.hb.a.length;D++){for(i=x(t.hb,D),e=!0,y=-1,Q=!1,L=0;L<i.length;L++){if(A=i[L],t.db[A]==0){e=!1;break}if(t.db[A]!=3){for(o=!0,s=0;s<i.length;s++)if(s!=L&&t.f[A]==t.f[i[s]]){o=!1;break}o&&y<t.f[A]&&(y=t.f[A],Q=t.db[A]==1)}}if(e&&y!=-1){for(n=i,P=0,r=n.length;P<r;++P)A=n[P],(t.db[A]==1||t.db[A]==2)&&(t.eb[A]=Q),t.gb[A]=!1;er(t.hb,i),f=!0,--D}}return f}function mR(t,e,A,n){var P,r,i,f,D,Q,o,L,s;for(ut(e,1),n==null&&(n=c(B,F,6,e.r,15,1)),f=Ae(t,1),D=Ae(t,2),s=c(Pt,it,6,e.r,16,1),Q=c(B,F,6,e.r,15,1),Q[0]=A,s[A]=!0,n[A]=Gn(e,t,A,f,D),i=0,o=0;i<=o;){for(L=0;L<e.e[Q[i]];L++)r=e.j[Q[i]][L],s[r]||(Q[++o]=r,s[r]=!0,n[r]=Gn(e,t,r,f,D));++i}for(P=0;P<e.s;P++)s[e.F[0][P]]&&o9(e,t,P,f,D,n==null?e.F[0][P]:n[e.F[0][P]],n==null?e.F[1][P]:n[e.F[1][P]],!1);Ae(t,1),Ae(t,2),t.U=0}function r6(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(ut(t,7),r=c(Pt,it,6,t.i,16,1),L=c(Pt,it,6,t.i,16,1),l=c(B,F,6,t.g,15,1),i=0,f=1;f<t.k[e];f++)if(n=t.n[e][f],(t.G[n]&64)!=0){for(Q=0;Q<f;Q++)if(P=t.n[e][Q],(t.G[P]&64)!=0&&(L[n]=!0,L[P]=!0,y=B2(t,l,t.j[e][f],t.j[e][Q],A-2,null,L),L[n]=!1,L[P]=!1,y!=-1)){for(D=!1,s=c(B,F,6,y,15,1),hm(t,l,s,y),o=0;o<y;o++)r[s[o]]||(r[s[o]]=!0,D=!0);D&&++i}}return i}function bR(t,e,A,n,P,r){var i,f,D,Q;switch(Q=1,f=!1,P){case 1:Q=257;break;case 3:Q=386;break;case 4:Q=257,f=!0;break;case 6:Q=129;break;default:switch(n){case 1:Q=1;break;case 2:Q=2;break;case 3:Q=4;break;case 4:Q=8;break;case 9:Q=16}}if(i=K0(t.j,e,A,Q),D=0,f&&Ne(t.j,e,1,-1),n>4)switch(n){case 5:D|=3;break;case 6:D|=9;break;case 7:D|=10;break;case 8:Q!=16&&(D|=127)}return r==1&&(D|=256),r==2&&(D|=128),D!=0&&Xe(t.j,i,D,!0),i}function D$(t){var e,A,n,P,r,i,f,D,Q;e=t.a,A=t.b,n=t.c,e=Y1(e,n),e=g0(e,(r=g0(Wt(n,4),b0(n,28)),r)),n=at(n,A),A=Y1(A,e),A=g0(A,(i=g0(Wt(e,6),b0(e,26)),i)),e=at(e,n),n=Y1(n,A),n=g0(n,(f=g0(Wt(A,8),b0(A,24)),f)),A=at(A,e),e=Y1(e,n),e=g0(e,(D=g0(Wt(n,16),b0(n,16)),D)),n=at(n,A),A=Y1(A,e),A=g0(A,(Q=g0(Wt(e,19),b0(e,13)),Q)),e=at(e,n),n=Y1(n,A),n=g0(n,(P=g0(Wt(A,4),b0(A,28)),P)),A=at(A,e),t.a=e,t.b=A,t.c=n}function d2(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;return o=jB(t.a,e,o1(e,A,n)),i=e.a[A],Q=e.a[n],i>Q&&(i=(T=U1(Q),U1(Q=i),T).a),l=f9(m(k(B,1),F,6,15,[1,2,0]),m(k(B,1),F,6,15,[i,Q,o]),t),l>=0?H0(t.b[l][4]):(r=e.D[A],D=e.D[n],r>D&&(r=(h=U1(D),U1(D=r),h).a),P=wB(r,t.a.f),f=wB(D,t.a.f),g=ed(t.a.f,P),v=ed(t.a.f,f),s=td(t.a.f,P),y=td(t.a.f,f),L=r==1||D==1?.05:.085,g+v-L*w.Math.pow(w.Math.abs(s-y),1.4))}function mf(t,e,A,n,P,r){var i;if((A==1||A==151||A==152)&&G1(t,e)>1)return!1;if((A==151||A==152)&&(n=A-149,A=1),i=A!=t.D[e]&&(!t.L||A0(V(t.C[e],1),0)&&(t.w==null||t.w[e]==null)),i)t.C[e]=0,t.w!=null&&t.w[e]!=null&&(t.w[e]=null),t.u!=null&&t.u[e]!=null&&(t.u[e]=null);else if(n==t.B[e]&&P==((t.v[e]&m8)>>>27)-1&&r==(t.v[e]&48))return!1;return i&&(t.D[e]=A,t.v[e]&=960,t.t[e]=0,fQ(t,t.A[e])),t.B[e]=n,tn(t,e,P),Je(t,e,r),t.U=0,!0}function jR(t,e,A,n){var P,r,i,f;if(t.g==null&&(t.g=Fb(t.d)),i=w.Math.max(t.c[n]+2.72,t.c[n]*2),e.e>i)return!1;for(lN(e,t.g),r=A.a.length-1;r>=0;r--)if(f=(te(r,A.a.length),A.a[r]),KF(e,f),OK(e.q,f.q))return f.e>e.e?(te(r,A.a.length),A.a.splice(r,1),A.a.push(e),t.c[n]>e.e&&(t.c[n]=e.e),!0):!1;if(A.a.push(e),t.c[n]>e.e)for(t.c[n]=e.e,P=A.a.length-1;P>=0;P--)f=(te(P,A.a.length),A.a[P]),f.e>i&&cA(A,P);return!0}function An(t,e,A,n){var P,r;return n>=171&&n<=190?0:(r=0,(t.v[e]&48)==32&&(r-=1),((t.v[e]&48)==16||(t.v[e]&48)==48)&&(r-=2),P=t.t[e],P==0&&t.L&&(A0(V(t.C[e],yr),Sf)&&(P=-1),A0(V(t.C[e],yr),Ef)&&(P=1)),n==7||n==8||n==9?r+=P:n==6||n==14||n==32?r-=w.Math.abs(P):n==15||n==33?A-r-P<=3?r+=P:r-=P:n==16||n==34||n==52?A-r-P<=4?r+=P:r-=w.Math.abs(P):n==17||n==35||n==53?A-r-P<=5?r+=P:r-=w.Math.abs(P):r-=P,r)}function u$(t,e){var A,n,P,r,i,f;if((e.startsWith(\"M  RBC\")||e.startsWith(\"M  RBD\"))&&(P=L1(k1((Mt(6,9,e.length),e.substr(6,3))),f1,Et),P>0))for(A=10,f=14,r=1;r<=P;++r,A+=8,f+=8)switch(n=L1(k1((Mt(A,A+3,e.length),e.substr(A,A+3-A))),f1,Et)-1,i=L1(k1((Mt(f,f+3,e.length),e.substr(f,f+3-f))),f1,Et),i){case 3:case-1:w1(t.j,n,112,!0);break;case 1:w1(t.j,n,8,!0);break;case 2:w1(t.j,n,104,!0);break;case 4:w1(t.j,n,56,!0)}}function Q$(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y;for(P=c(B,F,6,t.f.r,15,1),r=c(B,F,6,t.f.r,15,1),i=c(B,F,6,t.f.r,15,1),f=c(B,F,6,t.f.r,15,1),P[0]=e,i[e]=1,f[0]=-1,n=0,D=0;n<=D;){if(n==0||!t.b[P[n]])for(Q=0;Q<Ct(t.f,P[n]);Q++)A=Z(t.f,P[n],Q),s=Nt(t.f,P[n],Q),i[A]==0&&!t.c[s]&&(P[++D]=A,r[D]=s,i[A]=i[P[n]]+1,f[D]=n);if(n==D){for(y=new _3(i[P[n]]),o=n,L=0;L<y.a.length;L++)y.a[L]=P[o],y.b[L]=r[o],o=f[o];return y}++n}return null}function o$(t,e,A,n){var P,r,i,f,D,Q,o;return o=A>n?1:-1,Q=A>n?n:A,D=A>n?A:n,r=gB(t,Q,t.a.length,!0),P=gB(t,Q,t.a.length,!1),r==-1||P==-1||(f=BA(2,D,r,P+1,!0,new iU(t)),i=BA(2,D,r,P+1,!1,new iU(t)),f==-1||i==-1)?H0(t.b[A-1][1])-H0(t.b[n-1][1]):e==0&&$n(t.a[f][0])==0?o*H0(t.a[f][3]):e==1&&$n(t.a[i][0])==1?o*H0(t.a[i][3]):H0(t.b[A-1][1])-H0(t.b[n-1][1])}function U$(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(r=c(B,F,6,n,15,1),s=c(B,F,6,4,15,1),s[0]=Z(t,A,t.j[A][0]==e?1:0),s[1]=A,s[2]=e,s[3]=Z(t,e,t.j[e][0]==A?1:0),D=0,Q=0;Q<t.e[e];Q++)i=t.j[e][Q],i!=A&&(r[D++]=i);L=c(Yt,t1,6,3,15,1),f=c(Yt,t1,6,3,15,1),o=j1(Yt,[re,t1],[17,6],15,[3,2],2),L[0]=60,L[1]=180,L[2]=300,f[0]=33,f[1]=33,f[2]=33,o[0][0]=45,o[0][1]=75,o[1][0]=165,o[1][1]=195,o[2][0]=285,o[2][1]=315,Ft(P,new WL(L,f,o,s,r,1))}function i6(t,e,A){var n,P,r,i,f,D;for(i=t.D[e],t.D[e]=t.D[A],t.D[A]=i,i=t.t[e],t.t[e]=t.t[A],t.t[A]=i,i=t.B[e],t.B[e]=t.B[A],t.B[A]=i,i=t.v[e],t.v[e]=t.v[A],t.v[A]=i,D=t.C[e],t.C[e]=t.C[A],t.C[A]=D,i=t.A[e],t.A[e]=t.A[A],t.A[A]=i,r=t.K[e],t.K[e]=t.K[A],t.K[A]=r,t.w!=null&&(f=t.w[e],t.w[e]=t.w[A],t.w[A]=f),t.u!=null&&(f=t.u[e],t.u[e]=t.u[A],t.u[A]=f),n=0;n<t.s;n++)for(P=0;P<2;P++)t.F[P][n]==e?t.F[P][n]=A:t.F[P][n]==A&&(t.F[P][n]=e);t.U=0}function B2(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,h;if(A==n)return e[0]=A,0;for(t._b(1),o=c(B,F,6,t.r,15,1),Q=c(B,F,6,t.r,15,1),h=c(B,F,6,t.r,15,1),Q[0]=A,o[A]=1,D=0,L=0;D<=L&&o[Q[D]]<=P;){for(l=Q[D],s=0;s<t.e[l];s++)if(i==null||i.length<=t.n[l][s]||!i[t.n[l][s]]){if(f=t.j[l][s],f==n){for(y=o[l],e[y]=f,e[--y]=l;y>0;)e[y-1]=h[e[y]],--y;return o[l]}o[f]==0&&(r==null||r.length<=f||!r[f])&&(Q[++L]=f,o[f]=o[l]+1,h[f]=l)}++D}return-1}function L$(t,e){var A,n,P,r,i,f;for(r=0;r<2;r++){for(A=q(e,r,t.a),f=q(e,1-r,t.a);e.p[A]==2&&e.k[A]==2&&e.D[A]<10;)for(i=0;i<2;i++)if(n=e.j[A][i],n!=f){f=A,A=n;break}t.p[r+1]=A,t.k[r]=f}if(t0(e,t.p[1])==0&&N(e,t.p[1])==3)t.p[0]=-1;else for(P=0;P<N(e,t.p[1]);P++)if(n=Z(e,t.p[1],P),n!=t.p[2]){t.p[0]=n;break}if(t0(e,t.p[2])==0&&N(e,t.p[2])==3)t.p[3]=-1;else for(P=0;P<N(e,t.p[2]);P++)if(n=Z(e,t.p[2],P),n!=t.p[1]){t.p[3]=n;break}}function s$(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;for(f=e1t(e),i=c(Ut,Tt,6,f.length,15,1),n=0;n<f.length;n++){if(T=e.a[n],y=f[n],g=LN(t.e,T),A=pn(t.b,T),l=0,h=0,w.Math.abs(g)<Bo)for(Q=0;Q<e.e[n];Q++)L=e.j[n][Q],f[L]<0&&(y+=f[L]/(2*e.e[L]));if(T==62)for(o=0;o<e.e[n];o++)L=e.j[n][o],f[L]>0&&(y-=f[L]/2);for(D=0;D<e.e[n];D++)L=e.j[n][D],P=o1(e,n,L),s=e.a[L],r=l8(t,e,e.F[0][P],e.F[1][P]),h+=o$(t.e,r,T,s),l+=f[L];i[n]=(1-A*g)*y+g*l+h}return i}function f6(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(L=e.f,s=e.g,P=e.a,g=0,r=q(t.o,0,P),i=q(t.o,1,P),y=0;y<L.c.length;y++)if(A=L.e[L.c[y]],A!=r&&A!=i)for(v=XD(J(t.o,A)),l=0;l<s.c.length;l++)n=s.e[s.c[l]],n!=r&&n!=i&&(h=v+XD(J(t.o,n)),D=w.Math.abs(t.k[A].a-t.k[n].a),D<h&&(Q=w.Math.abs(t.k[A].b-t.k[n].b),Q<h&&(o=w.Math.abs(t.k[A].c-t.k[n].c),o<h&&(f=w.Math.sqrt(D*D+Q*Q+o*o),f<h&&(T=(h-f)/h,g+=T*T)))));return g}function y$(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T;if(L=e[n==0?4:n-1],T=e[n==4?0:n+1],N(t.j,L)==3&&N(t.j,T)==3){for(y=c(B,F,6,t.j.g,15,1),s=c(Pt,it,6,t.j.i,16,1),r=A,i=0,f=r.length;i<f;++i)D=r[i],s[D]=!0;for(P=0;P<t.j.i;P++)t.e[P]||(s[P]=!0);if(l=B2(t.j,y,L,T,14,null,s),l==14){for(h=!0,o=2;o<=12;o++)if((o&3)!=1^Or(t.j,y[o])==5){h=!1;break}if(h)for(Df(t,y[7]),Q=1;Q<=5;Q+=2)u2(t,o1(t.j,y[Q],y[Q+1])),u2(t,o1(t.j,y[Q+7],y[Q+8]))}}}function RR(t,e){var A,n,P,r;if(!e||e.r==0)return!1;if(e.s!=0)for(n=Qn(t.V,24*t.ab),wk(new mu(e),new fu(pB(t.k)),new lA(0,0,ND(t.k),Y9(t.k)),Q0+Bt(n));FX(t,e,.2*n);)OL(e,.5*n,.5*n);if(J1(t),dB(e),VB(e),P=t.V.L,t.V.r==0)Uf(e,t.V),t.a||Be(t.V,P),t.eb=w.Math.max(t.eb,4),P1(t.k),N1(t,new x1(t,1,!0));else{for(r=t.V.r,CD(t.V,e),t.a||Be(t.V,P),A=0;A<t.V.r;A++)vP(t.V,A,A>=r);t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0))}return!0}function pR(t,e,A,n){this.V=t,this.U=e,this._=A,this.k=n,this.S=new n1,this.w=5,this.t=-1,this.u=-1,this.v=null,this.e=-1,this.F=6,this.B=0,this.D=-1,this.C=0,this.A=null,this.b=!0,this.a=!1,this.X=0,this.s=11,this.i=new M0,this.c=331,this.$=1,this.ab=(Re==-1&&(Re=globalThis.devicePixelRatio||1),Re),this.T=Bt(w.Math.round((Re==-1&&(Re=globalThis.devicePixelRatio||1),Re*24))),(this.U&6)!=0&&(this.U|=1),(this.U&12)!=0&&(this.I=new oU),this.eb=4}function MR(t){var e,A,n,P,r,i,f,D,Q,o;if(t.e.a.c==1)return t.i;for(Q=an(t.i),Be(Q,!0),ut(Q,7),P=0;P<Q.i;P++)t.g[P]&&(Q.I[P]=1,Q.U=0,Xe(Q,P,3,!0));for(A=0;A<Q.g;A++)t.b[A]!=0&&n0(t.i,A)<4&&(X5(Q,A),Q.v[A]&=My,Q.U&=7,Ne(Q,A,0,-1));for(f=c(B,F,6,t.j,15,1),D=c(B,F,6,t.j,15,1),n=new bA(Q).f,e=0;e<Q.g;e++)t.b[e]!=0&&(o=t.b[e]-1,D[o]<n[e]&&(D[o]=n[e],f[o]=e));for(r=0;r<t.j;r++)i=\"\"+t.n[r]+\"|\"+t.k[r]+\"|\"+t.o[r],IP(Q,f[r],i);return Q}function CR(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h;for(D=new SA(t.g,t.i),o=new C7,y=0,s=0,i=c(Pt,it,6,t.g,16,1),r=c(B,F,6,t.g,15,1),h=0;h<A&&s<t.g;h++){if(s==0)r[0]=e,i[e]=!0,s=1;else{for(l=s,Q=y;Q<s;Q++)for(P=r[Q],L=0;L<t.k[P];L++)if(f=t.j[P][L],!i[f])switch(n){case 0:i[f]=!0,r[l++]=f;break;case 1:xk(t,P)&&xk(t,f)||(i[f]=!0,r[l++]=f)}y=s,s=l}L9(t,D,i,!0,null),mg(o,Me(new qA(D,8)))}return bg(o,c(ft,Dt,2,o.a.a.length,6,1))}function l$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(i=c(B,F,6,t.j.r,15,1),A=0;A<t.j.r;A++)i[A]=-R1(t.j,A);for(jf(new p9(t.j),null,!0),n=0;n<t.j.r;n++)i[n]+=R1(t.j,n);for(e=0;e<t.j.r;e++)if(i[e]!=0)for(f=-i[e],P=0;P<t.j.s;P++)for(Q=0;Q<2;Q++)f>0&&c1(t.j,P)==16&&q(t.j,1-Q,P)==e&&(L=q(t.j,Q,P),ee(t.j,L)&&(o=(s=J(t.j,L),y=s<(O1(),ll).length?ll[s]:null,y==null?0:y[y.length-1]),r=R1(t.j,L),r<o&&(D=w.Math.min(f,o-r),m0(t.j,L,r+D),f-=D)))}function HR(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h;if(h=Yb(e,t.I),h==null||(l=Yb(A,t.B),l==null))return null;if(h.length==1&&l.length==1)return new FD(h[0],l[0]);if(y=yZ(t,h,l),y.length==1)return new FD(h[0],l[0]);for(o=GG(t.i,y.length),s=-1,r=h,f=0,Q=r.length;f<Q;++f)if(n=r[f],t.J[n]==y[o][0]){s=n;break}for(L=-1,P=l,i=0,D=P.length;i<D;++i)if(n=P[i],t.C[n]==y[o][1]){L=n;break}return t.o=Zb(t,t.D,t.J,s,t.o),t.n=Zb(t,t.u,t.C,L,t.n),new FD(s,L)}function o9(t,e,A,n,P,r,i,f){var D,Q,o,L;return Q=e.s,Q>=e.O&&oQ(e,e.O*2),L=(t.G[A]&768)>>8,o=-1,L==1&&(n==-1?o=Ae(e,L):o=w.Math.min(32,n+((t.G[A]&768)>>8!=1&&(t.G[A]&768)>>8!=2?-1:(t.G[A]&cn)>>10))),L==2&&(P==-1?o=Ae(e,L):o=w.Math.min(32,P+((t.G[A]&768)>>8!=1&&(t.G[A]&768)>>8!=2?-1:(t.G[A]&cn)>>10))),e.F[0][Q]=r,e.F[1][Q]=i,D=f&&t.$b(A)?8:t.I[A],e.I[Q]=D,e.G[Q]=t.G[A],e.H[Q]=e.L?t.H[A]:0,o!=-1&&(e.G[Q]&=-31745,e.G[Q]|=o<<10),++e.s,e.U=0,Q}function Qi(t){Lr();var e,A,n,P;if(e=Bt(t),t<tD.length)return tD[e];if(t<=50)return s2((Ce(),Jo),e);if(t<=1e3)return _r(s2(m9[1],e),e);if(t>1e6)throw et(new I8(\"power of ten too big\"));if(t<=Et)return _r(s2(m9[1],e),e);for(n=s2(m9[1],Et),P=n,A=E1(t-Et),e=Bt(t%Et);O(A,Et)>0;)P=RP(P,n),A=Y1(A,Et);for(P=RP(P,s2(m9[1],e)),P=_r(P,Et),A=E1(t-Et);O(A,Et)>0;)P=_r(P,Et),A=Y1(A,Et);return P=_r(P,e),P}function sr(t){var e,A,n,P,r,i;if(t.j!=0)return t.j;if(t.i&&J(t.e,t.a)!=15&&J(t.e,t.a)!=16){for(i=0;i<Ct(t.e,t.a);i++)if(r=Nt(t.e,t.a,i),_9(t.e,r,t.a))return Z(t.e,t.a,i)==t.b?t.j=c1(t.e,r)==257?3:1:t.j=c1(t.e,r)==257?1:3,t.j}return e=_0(t.e,t.a,t.g),n=_0(t.e,t.a,t.b),n<e&&(n+=k0),Ct(t.e,t.a)==2?(A=n-e,A>3.0915926535897933&&A<3.191592653589793?(t.j=-1,t.j):(t.j=A<l1?4:2,t.j)):(P=_0(t.e,t.a,t.d),P<e&&(P+=k0),t.j=P<n?2:4,t.j)}function h$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y;for(L=j1(B,[D0,F],[7,6],15,[A,(t.U&6)!=0?2:1],2),D=0;D<A;D++)L[D][0]=D;if(o=tZ(t,e,A),(t.U&4)!=0)for(t.Y=0,n=(t.U&4)!=0?x(t.I,0):null,Q=0;Q<A;Q++)L[Q][1]=SQ(n,o[Q].a,o[Q].b)?1:0,L[Q][1]==0&&++t.Y;else if((t.U&2)!=0)for(t.Y=A,P=0;P<t.V.r;P++)J(t.V,P)==0&&L[e[P]][1]==0&&(L[e[P]][1]=1,--t.Y);for(i=o,ju(L,new gg(t,i)),s=c(B,F,6,A,15,1),f=0;f<A;f++)y=L[f][0],s[y]=f;for(r=0;r<t.V.r;r++)e[r]=s[e[r]]}function T$(t){var e,A,n,P,r,i,f,D,Q,o,L,s;if(!t.A){for(t.A=new n1,o=0,L=c(B,F,6,t.R.g,15,1),i=c(B,F,6,t.R.g,15,1),D=c(B,F,6,t.R.i,15,1),e=0;e<t.R.g;e++)if(L[e]==0&&(Gi(t.R,e)||t0(t.R,e)==1)){for(i[0]=e,f=1,Q=0,L[e]=++o,A=c(Pt,it,6,t.R.i,16,1),r=0;r<f;r++)for(s=0;s<N(t.R,i[r]);s++)P=Nt(t.R,i[r],s),(LA(t.R,P)||dt(t.R,P)==2||oi(t.R,P))&&(n=Z(t.R,i[r],s),A[P]||(D[Q++]=P,A[P]=!0),L[n]==0&&(i[f++]=n,L[n]=o));Ft(t.A,new Ok(i,f,D,Q))}}}function c$(t,e){s8();var A,n,P,r,i,f,D,Q,o,L;for(A=0;A<e.g;A++)if(e.e[A]>=3&&(o=e.v[A]&3,(o==1||o==2)&&!(e.p[A]==2&&e.k[A]==2&&e.o[A][0]==2&&e.o[A][1]==2&&e.D[A]<=7))){for(n=c(B,F,6,5,15,1),P=c(B,F,6,4,15,1),f=0;f<e.e[A];f++){for(r=e.j[A][f],i=e.n[A][f],D=0;D<f&&r>n[D];)++D;for(Q=f-1;Q>=D;Q--)n[Q+1]=n[Q],P[Q+1]=P[Q];n[D]=r,P[D]=i}e.e[A]==3&&(n[3]=-1,P[3]=-1),n[4]=A,o==1&&(L=n[1],n[1]=n[0],n[0]=L,L=P[1],P[1]=P[0],P[0]=L),Ft(t,new bB(e,n,P))}}function w$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(l=0;l<e.j.a.length;l++)if(x(e.k,l).length!=6&&t.i[l]){for(L=!0,T=x(e.k,l),o=0;o<T.length;o++)if(!t.e[T[o]]){L=!1;break}if(L){for(f=-1,D=0,h=x(e.j,l),Q=0;Q<h.length;Q++)n=h[Q],y=t.g[n]?NR(t,n,!1):hb(t,n,!1),D<y&&(D=y,f=Q);if(f!=-1){if(s=h[f],A){for(P=h,r=0,i=P.length;r<i;++r)n=P[r],n!=s&&cf(t,n,!0);t.g[s]?NR(t,s,!0):hb(t,s,!0)}return Df(t,s),t.g[s]&&y$(t,h,T,f),!0}}}return!1}function VR(t,e,A,n){var P,r,i,f,D;if(e[A+1]!=40)throw et(new H1(\"SmilesParser: '$' for recursive SMARTS must be followed by '('. position:\"+A));for(f=1,r=A+2;r<e.length&&f>0;)e[r]==40?++f:e[r]==41&&--f,++r;if(f>0)throw et(new H1(\"SmilesParser: Missing closing ')' for recursive SMARTS. '('-position:\"+(A+1)));if(i=new SA(16,16),D=new BQ(t.k),vI(D,t.n.f),p6(D,i,e,A+2,r-1,!0,!0),Be(i,!0),n.a.push(i),e[A-1]==33)for(P=0;P<i.r;P++)w1(i,P,ne,!0);return r-A}function D6(t){var e,A;for(this.j=t.j,this.i=t.i,this.e=c(B,F,6,t.e.length,15,1),this.k=c(B,F,6,t.e.length,15,1),this.a=c(Ut,Tt,6,t.e.length,15,1),this.b=c(Ut,Tt,6,t.e.length,15,1),A=0;A<t.e.length;A++)this.e[A]=t.e[A],this.k[A]=t.k[A],this.a[A]=t.a[A],this.b[A]=t.b[A];if(t.f!=null)for(this.f=c(B,F,6,t.f.length,15,1),e=0;e<t.f.length;e++)this.f[e]=t.f[e];if(t.g!=null)for(this.g=c(B,F,6,t.g.length,15,1),e=0;e<t.g.length;e++)this.g[e]=t.g[e]}function vA(t,e){var A,n,P,r,i,f;if(e.a==e.b&&e.c==e.d){for(i=new Zt(t.$);i.a<i.c.a.length;)if(r=_t(i),W9(r,e.a,e.c))return!1;return!0}for(f=Wm(e),A=!1,e.a>e.b&&(qu(e),A=!0),n=0;n<t.$.a.length;n++)if(r=x(t.$,n),!(r.c>f.c+f.b||r.d>f.d+f.a||f.c>r.c+r.b||f.d>r.d+r.a)){if(t2(t,e.a,e.c,n))return t2(t,e.b,e.d,n)?(A&&qu(e),!1):(Zs(t,e,0,n),P=vA(t,e),A&&qu(e),P);if(t2(t,e.b,e.d,n))return Zs(t,e,1,n),P=vA(t,e),A&&qu(e),P}return A&&qu(e),!0}function g$(t,e){var A,n,P,r,i,f,D;if(t.D[e]!=8||t.t[e]!=0||t.k[e]!=1||t.o[e][0]!=1)return!1;if(A=t.j[e][0],t.D[A]==6){for(i=t.k[A],n=0;n<i;n++)if(P=t.j[A][n],P!=e&&t.D[P]==8&&(r=o1(t,A,P),t.I[r]==2))return!0}else if(t.D[A]==7){if(t.t[A]==1)return!0}else if(t.D[A]==16){for(f=t.k[A],D=0,n=0;n<f;n++)P=t.j[A][n],P!=e&&t.D[P]==8&&(r=o1(t,A,P),t.I[r]==2&&++D);if(D==2)return!0}else if(iZ(t,e))return!0;return!1}function d$(t,e,A){var n,P,r,i,f,D,Q,o;if(t.o[e]=A,t.n=null,P=C9(t.c,e),Bg(t.s,P,t.o[e]),D=8+(t.a?0:1),CA(t.s,5,D)==0)return t.g[e]=new n1,t.q=0,!1;for(t.g[e]=t.s.F,i=t.g[e].a.length-1;i>=0;i--)for(Q=x(t.g[e],i),f=0;f<Q.length;f++)if(Q[f]!=-1&&(n=0,t.a&&P.t[f]==0&&R1(t.o[e],Q[f])!=0&&(o=Sn(t.o[e],Q[f]),n=Cu(t.o[e],Q[f],o)),t.k[e][f]>0&&t.k[e][f]>_i(t.o[e],Q[f])-n)){cA(t.g[e],i);break}for(t.q=1,r=0;r<t.o.length;r++)t.q*=t.g[r]?t.g[r].a.length:0;return!0}function B$(t){t=t||{};var e=0;if(t.maxAVBL){if(!Number.isInteger(t.maxAVBL)||t.maxAVBL<0||t.maxAVBL>d1)throw new Error(\"maxAVBL must be an integer between 0 and 65535\");e|=t.maxAVBL}return(t.inflateToMaxAVBL===!0||t.inflateToMaxAVBL===void 0&&t.inflateToHighResAVBL!==!0)&&(e|=Q0),t.inflateToHighResAVBL&&(e|=O0),t.chiralTextBelowMolecule!==!1&&(e|=0),t.chiralTextAboveMolecule&&(e|=v8),t.chiralTextOnFrameTop&&(e|=B8),t.chiralTextOnFrameBottom&&(e|=b1),e}function v$(t,e,A,n){var P,r,i,f,D,Q,o,L;for(L=c(B,F,6,t.i,15,1),D=c(Pt,it,6,t.i,16,1),i=0;i<t.i;i++)L[i]=t.I[i],e[i]&&(D[i]=!0,t.I[i]=1,t.U=0);for(P=0;P<t.g;P++)if(P!=n&&t.p[P]==0&&D[t.n[n][0]])for(o=0;o<t.k[P];o++)f=t.n[P][o],t.I[f]=1,t.U=0,D[f]=!1;for(Q=0;Q<t.k[A];Q++)f=t.n[A][Q],t.I[f]=1,t.U=0,D[f]=!1;if(jf(new p9(t),D,!1))return t.t[A]=0,t.U=0,t.k[n]!=t.e[n]&&RQ(t,Z(t,n,t.e[n]-1)),ut(t,7),!0;for(r=0;r<t.i;r++)w0(t,r,L[r]);return!1}function bf(t,e,A){var n,P,r,i,f;if(t.a=!1,t.d=e,Rn(t.e[e]&d1)){for(f=_L(t),t.c=t.b=f,n=e-1;n>1&&hO(t.e[n-1]);)--n;for(;t.e[t.d]==44;){for(i=!0,r=e-n,P=0;P<r;P++)if(t.e[n+P]!==t.e[t.d+1+P]){i=!1;break}if(!i)break;t.d+=1+r,f=_L(t),t.c>f?t.c=f:t.b<f&&(t.b=f)}return t.d-e}return t.e[e]==123&&Rn(t.e[e+1]&d1)?(++t.d,t.c=_L(t),t.e[t.d++]!=45||!Rn(t.e[t.d]&d1)||(t.b=_L(t),t.e[t.d++]!=125)?0:t.d-e):(t.c=1,t.b=A,t.a=!0,0)}function ER(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y;if(dt(t,A)!=2&&!(A<t.i&&Ee(t.q,A))||(y=t.G[A]&3,y!=1&&y!=2))return-1;for(D=0;D<2;D++){for(n=t.F[D][A],P=t.F[1-D][A],s=-1,i=!1,o=0;o<t.k[n];o++)r=t.j[n][o],r!=P&&(r==e?i=!0:s=r);if(i){for(L=-1,f=-1,Q=0;Q<t.k[P];Q++)r=t.j[P][Q],r!=n&&(L==-1?L=r:r>L?f=r:(f=L,L=r));return t.k[n]==2?t.k[P]==2?y==2?L:-1:y==2?L:f:t.k[P]==2?y==2^e<s?-1:L:y==2^e<s?f:L}}return-1}function u6(t,e){var A,n,P,r,i,f,D,Q,o,L;if(e.e==0)throw et(new I8(uE));return P=e.e,e.d==1&&e.a[0]==1?e.e>0||t.e==0?t:new ye(-t.e,t.d,t.a):(o=t.e,Q=t.d,n=e.d,Q+n==2?(L=In(V(t.a[0],g1),V(e.a[0],g1)),o!=P&&(L=V0(L)),O(L,0)>=0?me(L):mP(me(V0(L)))):(A=Q!=n?Q>n?1:-1:yQ(t.a,e.a,Q),A==0?o==P?X2:Rc:A==-1?vr:(i=Q-n+1,r=c(B,F,6,i,15,1),f=o==P?1:-1,n==1?TR(r,t.a,Q,e.a[0]):vp(r,i,t.a,Q,e.a,n),D=new ye(f,i,r),Hn(D),D)))}function SR(t){var e,A,n,P,r;for(t.a=j1(B,[D0,F],[7,6],15,[t.d.length,4],2),t.c=j1(B,[D0,F],[7,6],15,[t.d.length,2],2),t.e=c(B,F,6,t.d.length,15,1),e=c(B,F,6,2,15,1),P=0;P<t.d.length;P++){for(r=0;r<2;r++)e[0]=q(t.b,1-r,t.d[P]),e[1]=q(t.b,r,t.d[P]),rL(t.b,e[1])&&O5(t.b,e[0],e,null),t.a[P][1+r]=e[1],t.c[P][r]=e[0];A=Yj(t,t.a[P][1],t.c[P][0]),n=Yj(t,t.a[P][2],t.c[P][1]),t.e[P]=FE[A][n],t.a[P][0]=jj(t,t.a[P][1],t.c[P][0],A),t.a[P][3]=jj(t,t.a[P][2],t.c[P][1],n)}}function F$(t){var e,A,n,P,r,i;for(W_(t),ut(t,31),n=0;n<t.g;n++){if(((t.v[n]&b1)>>18==1||(t.v[n]&b1)>>18==2)&&((t.v[n]&wn)==0||(t.v[n]&3)==3))throw et(new H1(i4));if((t.v[n]&Q0)!=0)throw et(new H1(f4));if(((t.v[n]&3)==1||(t.v[n]&3)==2)&&t.p[n]==0){for(e=c(Ut,Tt,6,t.k[n],15,1),r=0;r<t.k[n];r++)e[r]=_0(t,n,t.j[n][r]);for(P=1;P<t.k[n];P++)if(!_9(t,t.n[n][P],n)){for(i=0;i<P;i++)if(!_9(t,t.n[n][i],n)&&(A=w.Math.abs(Ze(e[P],e[i])),A<.08||A>yM))throw et(new H1(D4))}}}}function k$(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(n=c(B,F,6,t.g,15,1),L=c(Pt,it,6,t.g,16,1),L[A]=!0,L[e]=!0,n[0]=e,i=0,f=1;i<=f;){for(Q=0;Q<t.k[n[i]];Q++)eA(t,t.n[n[i]][Q])&&(r=t.j[n[i]][Q],L[r]||(n[++f]=r,L[r]=!0));++i}for(o=0;o<=f;o++)for(s=0;s<t.k[n[o]];s++)r=t.j[n[o]][s],!L[r]&&!LA(t,t.n[n[o]][s])&&JQ(t,n[o],r,L,null,null);for(L[A]=!1,D=0;D<=f;D++)L[n[D]]=!1;for(P=0;P<L.length;P++)L[P]&&(n[++f]=P);return o8(f+1),pP(n,c(B,F,6,f+1,15,1),0,f+1)}function Ws(){Ws=v1,sS=m(k(B,1),F,6,15,[f1,1162261467,dn,1220703125,362797056,1977326743,dn,387420489,Jf,214358881,429981696,815730721,1475789056,170859375,d9,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,dn,1291467969,1544804416,1838265625,60466176]),yS=m(k(B,1),F,6,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}function m$(t,e){var A,n,P,r,i;if(t.i!=0&&t.k!=null){for(n=t6(t)/t.p.c,nA(e,t.i),UL(e,Bt(1.6*n),!0,!1),r=0;r<t.k.length;r++)if(t.k[r].r!=0){for(P=new yg,A=0;A<t.k[r].r;A++)P.a=Bt(P.a+mt(t.k[r],A)),P.b=Bt(P.b+Rt(t.k[r],A));P.a=P.a/t.k[r].r|0,P.b=P.b/t.k[r].r|0,P.a=Bt(W1(t.e[r].R,P.a)),P.b=Bt(Z1(t.e[r].R,P.b)),i=t.c==0?\"\"+(r+1):t.c==2?r<t.j?\"\"+String.fromCharCode(65+r&d1):\"R\"+(r+1-t.j):t.c==1?r<t.n?\"\"+String.fromCharCode(65+r&d1):\"P\"+(r+1-t.n):\"?\"+(r+1),J3(e,P.a,P.b,i)}}}function b$(t){var e,A,n,P,r,i,f,D,Q,o;for(r=0,A=0;A<t.R.g;A++)t.bb[A]!=0&&(t.bb[A]!=2||(t.Q&256)==0)&&++r;if(r!=0){for(o=c(B,F,6,r,15,1),r=0,n=0;n<t.R.g;n++)t.bb[n]!=0&&(t.bb[n]!=2||(t.Q&256)==0)&&(o[r]=t.bb[n]<<29|t.ab[n]<<24|t.f[n]<<12|n,++r);for(o.sort(pe(u0.prototype.ld,u0,[])),i=0,Q=0,f=o[0]&qn;;)if(++Q,Q==o.length||f!=(o[Q]&qn)){for(P=c(B,F,6,Q-i,15,1),D=i;D<Q;D++)e=o[D]&4095,P[D-i]=e,t.gb[e]=!0;if(Ft(t.hb,P),Q==o.length)break;f=o[Q]&qn,i=Q}}}function IR(t){var e,A,n,P;if(t.length==0||(zt(0,t.length),t.charCodeAt(0)!=62))return null;for(n=1,P=0,e=0;n<t.length;){if(zt(n,t.length),t.charCodeAt(n)==60){if(P!=0)return null;P=n}else if(zt(n,t.length),t.charCodeAt(n)==62){if(e!=0)return null;e=n}++n}if(P!=0&&P<e)return Mt(P+1,e,t.length),t.substr(P+1,e-(P+1));if(n=t.indexOf(\"DT\",1),n==-1)return null;for(A=n+2;t.length>A&&Rn((zt(A,t.length),t.charCodeAt(A)));)++A;return A==n+2?null:(Mt(n,A,t.length),t.substr(n,A-n))}function j$(t,e,A,n,P,r,i,f,D,Q){var o,L,s,y,l,h,T,g,v,d;t!=e&&(o=t9(t,e),!(D[o[0]][o[1]]&&D[o[0]][o[1]].a.length==1)&&(s=f.a[i]-f.a[A]*w.Math.cos(P)-f.a[n]*w.Math.cos(r),v=f.a[A]*w.Math.sin(P),d=f.a[n]*w.Math.sin(r),y=v+d,l=v-d,T=w.Math.sqrt(s*s+l*l),h=w.Math.sqrt(s*s+y*y),g=c(B,F,6,2,15,1),g[0]=Q.F[0][i],g[1]=Q.F[1][i],L=D[o[0]][o[1]],L?(L.a[0]=w.Math.min(L.a[0],T),L.a[1]=w.Math.min(L.a[1],h)):D[o[0]][o[1]]=new fs(o,g,T,h,3)))}function R$(t,e,A,n,P){if(e[A-1]==42)t.d=6,t.c=z(t.c,1);else if(e[A-1]==63)t.d=0;else if((e[A-1]==65||e[A-1]==97)&&P)t.d=6,t.c=z(t.c,1),t.c=z(t.c,e[A-1]==65?4:2),t.r=!0;else switch(String.fromCharCode(e[A-1]).toUpperCase().charCodeAt(0)){case 66:A<n&&e[A]==114?(t.d=35,++A):t.d=5;break;case 67:A<n&&e[A]==108?(t.d=17,++A):t.d=6;break;case 70:t.d=9;break;case 73:t.d=53;break;case 78:t.d=7;break;case 79:t.d=8;break;case 80:t.d=15;break;case 83:t.d=16}return A}function p$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(n=c(Ut,Tt,6,2,15,1),y=OY(t,A),D=0;D<2;D++)if(A[3*D]!=-1){for(r=2-D,l=3-3*D,Q=0,s=0;s<3;s++)i=t.j[A[r]][s],i!=y[1-D]&&t.D[i]!=1&&(A[l]=i,e?n[Q++]=XQ(e,A):n[Q++]=YQ(t,A));return A[l]=-1,bT(n)}for(P=c(Ut,Tt,6,2,15,1),o=0,f=0;f<3;f++)if(h=t.j[A[1]][f],h!=y[0]&&t.D[h]!=1){for(A[0]=h,L=0,s=0;s<3;s++)T=t.j[A[2]][s],T!=y[1]&&t.D[T]!=1&&(A[3]=T,e?P[L++]=XQ(e,A):P[L++]=YQ(t,A));n[o++]=bT(P)}return A[0]=-1,A[3]=-1,bT(n)}function xR(t,e){Xv();var A,n,P,r,i,f,D,Q,o,L,s,y;for(this.e=e,this.a=c(B,F,6,e.length+t.length,15,1),this.b=c(B,F,6,e.length+t.length,15,1),this.d=c(B,F,6,e.length+t.length,15,1),A=0,r=0,P=0,f=e,D=0,Q=f.length;D<Q;++D)i=f[D],n=jv(i.d.length),A+n<=64?(this.b[P]=A,A+=n):(++r,this.b[P]=0,A=0),this.a[P]=n,this.d[P]=r,++P;for(L=t,s=0,y=L.length;s<y;++s)o=L[s],n=jv(o.b.length),A+n<=64?(this.b[P]=A,A+=n):(++r,this.b[P]=0,A=0),this.a[P]=n,this.d[P]=r,++P;this.c=r+1}function M$(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(Q=c(B,F,6,t.k.g,15,1),f=c(B,F,6,t.k.g,15,1),D=c(B,F,6,t.k.g,15,1),o=c(B,F,6,t.k.g,15,1),A=q(t.k,0,e),n=q(t.k,1,e),f[0]=A,f[1]=n,D[0]=-1,D[1]=e,Q[A]=1,Q[n]=2,o[A]=-1,o[n]=A,i=1,L=1;i<=L&&Q[f[i]]<15;){for(l=f[i],s=0;s<N(t.k,l);s++)if(P=Z(t.k,l,s),P!=o[l]){if(r=Nt(t.k,l,s),P==A){for(D[0]=r,y=0;y<=L;y++)t.g[D[s]]||(t.g[D[s]]=!0,++t.c);return}W0(t.k,P)&&Q[P]==0&&(++L,f[L]=P,D[L]=r,Q[P]=Q[l]+1,o[P]=l)}++i}}function _s(t,e){var A,n,P,r,i,f,D,Q,o,L;if(i=t.e,D=e.e,D==0)return t;if(i==0)return e.e==0?e:new ye(-e.e,e.d,e.a);if(r=t.d,f=e.d,r+f==2)return A=V(t.a[0],g1),n=V(e.a[0],g1),i<0&&(A=V0(A)),D<0&&(n=V0(n)),Ce(),ku(Y1(A,n),0)?me(Y1(A,n)):mP(me(V0(Y1(A,n))));if(P=r!=f?r>f?1:-1:yQ(t.a,e.a,r),P==-1)L=-D,o=i==D?jL(e.a,f,t.a,r):VL(e.a,f,t.a,r);else if(L=i,i==D){if(P==0)return Ce(),vr;o=jL(t.a,r,e.a,f)}else o=VL(t.a,r,e.a,f);return Q=new ye(L,o.length,o),Hn(Q),Q}function C$(){var t,e,A,n,P,r,i;if(!ec)try{for(t=o2(\"bondLengthData.txt\"),A=X1(t),e=A==null?0:L1(A,f1,Et),Mo=c(B,F,6,e,15,1),a4=c(Oe,uA,6,e,15,1),tc=c(Oe,uA,6,e,15,1),vE=c(B,F,6,e,15,1),P=0;P<e;P++)if(i=X1(t),i!=null&&(r=c8(i,\"\\\\t\"),r.length==4))try{Mo[P]=L1(r[0],f1,Et),a4[P]=sn(r[1]),tc[P]=sn(r[2]),vE[P]=L1(r[3],f1,Et)}catch(f){if(f=_1(f),Jt(f,42))break;throw et(f)}ec=!0}catch(f){if(f=_1(f),Jt(f,79))n=f,ur(n,(z1(),k9),\"\");else throw et(f)}}function H$(t,e){var A,n;return n={},A=t.H[e],n.single=I1(V(A,1),0),n.double=I1(V(A,2),0),n.triple=I1(V(A,4),0),n.delocalized=I1(V(A,8),0),n.metalLigand=I1(V(A,16),0),n.quadruple=I1(V(A,32),0),n.quintuple=I1(V(A,64),0),n.notRing=I1(V(A,128),0),n.ring=I1(V(A,256),0),n.aromatic=I1(V(A,KA),0),n.nonAromatic=I1(V(A,oP),0),n.ringSize=Ot(V(A,NP))>>17,n.brigdeMin=Ot(V(A,7680))>>9,n.brigdeSpan=Ot(V(A,Ry))>>13,n}function NR(t,e,A){if(t.f[e])return 0;if(J(t.j,e)==7){if(Ct(t.j,e)==3)return 6;if(N(t.j,e)==2)return t.a?0:4}else{if(J(t.j,e)==8)return 10;if(J(t.j,e)==15||J(t.j,e)==33){if(N(t.j,e)==3)return 8}else if(J(t.j,e)==16||J(t.j,e)==34||J(t.j,e)==52){if(N(t.j,e)==2)return 11;if(N(t.j,e)==3)return R1(t.j,e)==1?12:(A&&m0(t.j,e,1),5)}else if(J(t.j,e)==6)return R1(t.j,e)==-1?Ct(t.j,e)==3?16:Ue(t.j,e)==3?15:14:(A&&m0(t.j,e,-1),Ct(t.j,e)!=Ue(t.j,e)?2:3)}return 0}function V$(t){var e,A,n,P,r,i,f;for(f=!1,A=0;A<t.g;A++)((t.v[A]&wn)==0||(t.v[A]&3)==3)&&(t.v[A]&=Cy);for(r=0;r<t.i;r++)(dt(t,r)!=1||(t.G[r]&3)==0||(t.G[r]&3)==3)&&(t.G[r]&=-32513);if(t.M){if((t.J&GP)!=O0){for(i=c(Pt,it,6,t.g,16,1),n=0;n<t.g;n++)(t.v[n]&wn)!=0&&(t.v[n]&3)!=3&&(t.v[n]&b1)>>18==1&&(i[n]=!0);for(P=0;P<t.g;P++)(t.v[P]&wn)!=0&&(t.v[P]&3)!=3&&(Ne(t,P,1,0),f=!0);for(e=0;e<t.g;e++)i[e]&&(ke(t,e,1,!1),Ne(t,e,1,-1),f=!0)}t.M=!1}return Ae(t,1),Ae(t,2),f}function E$(t){var e,A,n;if(t.a==0)return!0;if(t.d.length==1&&t.c.length==1)return(t.e.i==null||t.e.i[t.d[0]]==null||!t.e.i[t.d[0]][t.c[0]])&&(++t.e.b,t.e.f[t.d[0]]=t.e.b,t.e.d[t.c[0]]=t.e.b),!0;if(Tb(t.d,t.e.e)||Tb(t.c,t.e.c)){for(e=w.Math.min(t.d.length,t.c.length),n=0;e!=0&&n<t.d.length;n++)for(A=0;A<t.c.length;A++)if(t.e.d[t.c[A]]==0&&(t.e.i==null||t.e.i[t.d[n]]==null||!t.e.i[t.d[n]][t.c[A]])){--e,++t.e.b,t.e.f[t.d[n]]=t.e.b,t.e.d[t.c[A]]=t.e.b;break}return!0}return!1}function GR(t,e,A,n,P,r,i){eR();var f,D;this.a=e,this.p=c(B,F,6,4,15,1),this.k=c(B,F,6,2,15,1),f=new XT,uk(t,e,this.p,f)!=null?(this.k[0]=f.e[0],this.k[1]=f.e[1]):L$(this,t),this.i=A[this.p[1]],this.j=A[this.p[2]],this.f=r[this.i],this.g=r[this.j],this.b=A[t.F[0][e]]==this.i,i?(this.d=RS,this.c=bS,this.e=jS):(this.d=FG(f.d),this.d==null?(D=new b6(t,this.p),this.d=D.b,this.c=D.a,this.e=D.c):(this.c=BG(f.d),this.e=vG(f.d))),X$(this,t),M_(this,t),Z_(this,t,n,P)}function S$(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l;for(D=n+1;D<t.j.g.length;D++)if(D!=n&&t.e[e][D]&&t.e[A][D])return i=c(B,F,6,2,15,1),i[0]=A,i[1]=e,i;for(l=c(B,F,6,t.b,15,1),o=c(B,F,6,t.b,15,1),Q=c(B,F,6,t.b,15,1),r=0,L=0,Q[0]=e,o[e]=1;r<=L;){for(s=0;s<t.d[Q[r]].length;s++){if(P=t.d[Q[r]][s],P==A){if(r==0)continue;for(f=o[Q[r]]+1,i=c(B,F,6,f,15,1),i[0]=P,i[1]=Q[r],y=2;y<f;y++)i[y]=l[i[y-1]];return i}o[P]==0&&t.c[P]!=-3&&(o[P]=o[Q[r]]+1,Q[++L]=P,l[P]=Q[r])}++r}return null}function I$(t){var e,A,n,P;if(t.g.a.length+t.f.a.length<=1)return!1;for(e=Jb(t),P=c(Ml,e0,36,t.g.a.length+t.f.a.length,0,1),A=0;A<t.g.a.length+t.f.a.length;A++)if(P[A]=vj(A<t.g.a.length?x(t.g,A):x(t.f,A-t.g.a.length),null),P[A]){for(n=0;n<A;n++)if(P[n]&&(P[A].c+P[A].b>=P[n].c&&P[A].c<=P[n].c+P[n].b||P[A].d+P[A].a>=P[n].d&&P[A].d<=P[n].d+P[n].a))return!0;if(A!=0&&P[A-1]&&(P[A].c-P[A-1].c-P[A].b>5*e||P[A].d-P[A-1].d-P[A].a>5*e))return!0}return!1}function Ne(t,e,A,n){var P,r,i;if(A==0)t.v[e]&=Cy,t.v[e]|=A<<18;else{if(n>=32)return;if(n==-1){for(i=-1,r=0;r<t.r;r++)r!=e&&A==(t.v[r]&b1)>>18&&i<((t.v[r]&b1)>>18!=1&&(t.v[r]&b1)>>18!=2?-1:(t.v[r]&VA)>>20)&&(i=(t.v[r]&b1)>>18!=1&&(t.v[r]&b1)>>18!=2?-1:(t.v[r]&VA)>>20);for(P=0;P<t.s;P++)A==(t.G[P]&768)>>8&&i<((t.G[P]&768)>>8!=1&&(t.G[P]&768)>>8!=2?-1:(t.G[P]&cn)>>10)&&(i=(t.G[P]&768)>>8!=1&&(t.G[P]&768)>>8!=2?-1:(t.G[P]&cn)>>10);if(n=i+1,n>=32)return}t.v[e]&=Cy,t.v[e]|=A<<18|n<<20}t.U&=7}function T8(t,e,A,n){var P,r,i;if(A==0)t.G[e]&=-32513,t.G[e]|=A<<8;else{if(n>=32)return;if(n==-1){for(i=-1,r=0;r<t.r;r++)A==(t.v[r]&b1)>>18&&i<((t.v[r]&b1)>>18!=1&&(t.v[r]&b1)>>18!=2?-1:(t.v[r]&VA)>>20)&&(i=(t.v[r]&b1)>>18!=1&&(t.v[r]&b1)>>18!=2?-1:(t.v[r]&VA)>>20);for(P=0;P<t.s;P++)P!=e&&A==(t.G[P]&768)>>8&&i<((t.G[P]&768)>>8!=1&&(t.G[P]&768)>>8!=2?-1:(t.G[P]&cn)>>10)&&(i=(t.G[P]&768)>>8!=1&&(t.G[P]&768)>>8!=2?-1:(t.G[P]&cn)>>10);if(n=i+1,n>=32)return}t.G[e]&=-32513,t.G[e]|=A<<8|n<<10}t.U&=7}function x$(t,e){var A,n,P,r,i,f,D;if(r=e.a,!((t.d>0?t.d:w.Math.floor((t.a-1)*bo)+1)-r<0||r==0)&&(n=$b(t)-r,!(n<=0))){if(t.a<54){m_(t,e,n);return}f=Qi(n),P=fR((!t.c&&(t.c=jP(E1(t.f))),t.c),f),i=t.e-n,P[1].e!=0&&(A=ys(_k(P[1].e<0?P[1].e==0?P[1]:new ye(-P[1].e,P[1].d,P[1].a):P[1]),f),A=KQ(IQ(P[0],0)?1:0,P[1].e*(5+A),e.b),A!=0&&(P[0]=v2(P[0],(Ce(),O(A,0)>=0?me(A):mP(me(V0(A)))))),D=new Fg(P[0]),$b(D)>r&&(P[0]=u6(P[0],(Ce(),Jo)),--i)),t.e=em(i),t.d=r,CT(t,P[0])}}function OR(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;for(T=c(gr,B9,26,A,0,1),i=c(B,F,6,A,15,1),Q=c(B,F,6,A,15,1),r=c(B,F,6,t.r,15,1),P=0;P<t.r;P++)e[P]!=-1&&(r[P]=i[e[P]]++);for(D=0;D<t.s;D++)l=e[t.F[0][D]],h=e[t.F[1][D]],l==h&&l!=-1&&++Q[l];for(g=0;g<A;g++)T[g]=new SA(i[g],Q[g]),SU(t,T[g]);for(n=0;n<t.r;n++)e[n]!=-1&&Gn(t,T[e[n]],n,0,0);for(f=0;f<t.s;f++)l=e[t.F[0][f]],h=e[t.F[1][f]],l==h&&l!=-1&&TQ(t,T[l],f,0,0,r,!1);for(L=T,s=0,y=L.length;s<y;++s)o=L[s],Ae(o,1),Ae(o,2);return T}function N$(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(A=q(t.f,0,e),n=q(t.f,1,e),i=c(B,F,6,t.f.r,15,1),f=c(B,F,6,t.f.r,15,1),D=c(B,F,6,t.f.r,15,1),Q=c(B,F,6,t.f.r,15,1),i[0]=A,i[1]=n,f[1]=e,D[A]=1,D[n]=2,Q[0]=-1,Q[1]=0,r=1,o=1;r<=o;){for(L=0;L<N(t.f,i[r]);L++){if(P=Z(t.f,i[r],L),r>1&&P==A){for(l=new _3(D[i[r]]),f[0]=Nt(t.f,i[r],L),s=r,y=0;y<l.a.length;y++)l.a[y]=i[s],l.b[y]=f[s],s=Q[s];return l}D[P]==0&&Gi(t.f,P)&&(i[++o]=P,f[o]=Nt(t.f,i[r],L),D[P]=D[i[r]]+1,Q[o]=r)}++r}return null}function G$(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(A=0;A<t.k.g;A++)if(W0(t.k,A))for(D=c(B,F,6,t.k.g,15,1),f=c(B,F,6,t.k.g,15,1),Q=c(B,F,6,t.k.g,15,1),f[0]=A,D[A]=1,Q[A]=-1,i=0,o=0;i<=o;){for(P=(D[f[i]]&1)==1?1:2,L=0;L<N(t.k,f[i]);L++)if(n=Nt(t.k,f[i],L),dt(t.k,n)==P&&e[n]&&(r=Z(t.k,f[i],L),D[r]==0)){if(P==1&&W0(t.k,r)){for(s=f[i];s!=-1;)w0(t.k,o1(t.k,r,s),P==1?2:1),P=3-P,r=s,s=Q[s];return _n(t.k,A,!1),_n(t.k,r,!1),t.b-=2,!0}f[++o]=r,Q[r]=f[i],D[r]=D[f[i]]+1}++i}return!1}function qR(t,e,A,n,P,r){var i,f,D,Q,o,L;for(t.j=e,t.d=A,t.n=c(B,F,6,n.length,15,1),t.f=c(B,F,6,P.length,15,1),t.k=Qy(t.j,!1),t.p=Qy(t.j,!0),t.e=Qy(t.d,!1),t.i=Qy(t.d,!0),t.o=Mb(t.j),t.g=Mb(t.d),t.q=Wy,Q=new _R(e,A,t.n,t.f,r),t.a=0;cX(Q);){for(++t.a,t.c=Q.q,f=Q.r,D=tR(Q);D;)xtt(t,D),D=tR(Q);t.b=t.c,t.c<f?(i=new YR(t.j,t.d,t.n,t.f,t.c,r),o=Ett(i),t.c+=i.b-i.g):(L=new vU(t.j,t.d),o=ny(L,w5(L,t.n,t.f))),t.q<o&&(t.q=o,PA(t.n,0,n,0,n.length),PA(t.f,0,P,0,P.length))}return t.q!=Wy}function O$(t,e){var A,n,P,r,i,f,D,Q,o,L;for(r=null,D=null,i=null,ut(t.g,t.N),t.o=c(B,F,6,t.g.g,15,1),n=0;n<t.g.g;n++)t.o[n]=N(t.g,n);if(t.p!=0){for(Q=new SA(t.g.r,t.g.s),L=c(Pt,it,6,t.g.r,16,1),P=0;P<t.g.r;P++)L[P]=!t.D[P];for(L9(t.g,Q,L,!0,null),ut(Q,t.N),jp(t,Q,e),r=t.j,D=t.n,i=t.k,o=0,A=0;A<t.g.g;A++)t.D[A]||(t.o[A]=N(Q,o++))}if(jp(t,t.g,e),t.p!=0){for(o=0,A=0;A<t.g.r;A++)t.D[A]||(t.j[A]=r[o],t.k[A]=i[o++]);for(o=0,f=0;f<t.g.s;f++)!t.D[q(t.g,0,f)]&&!t.D[q(t.g,1,f)]&&(t.n[f]=D[o++])}}function q$(t,e){var A,n,P,r,i,f,D,Q,o;if(A=new LD,!dl)return Ft(A.a,new ae(NV,2)),-999;for(Ft(A.a,new ae(\"Found sub-structure fragments and their contributions:\",2)),Ft(A.a,new ae(\"(yellow atoms carry at least one more substituent)\",2)),Q=0,D=0,r=0,o=new VD(1),P=new _A,i=0;i<gi.a.a.length;i++)l2(new WA(!1),P,Ih(gi,i)),GA(o,e),MA(o,P),CA(o,1,o.c)>0&&(f=jg(gi,i),f<-1?Q+=f:(D+=f,++r),e8(A,Ih(gi,i),1),Ft(A.a,new ae(\"\"+f,3)));return r==0?-1:(n=Q+D/w.Math.sqrt(r),n=n+.0625*(r-40),t.a=A,n)}function zR(t){O1();var e,A,n,P,r;for(Wr.call(this,t),tj(this,Q6(this)),r=(ut(this,7),this.q),this.b=c(jE,F,6,r.j.a.length,15,1),dx(this.b),e=!1,A=!0;!e&&A;)for(e=!0,A=!1,P=0;P<r.j.a.length;P++)this.b[P]==2&&(this.b[P]=za(this,P),this.b[P]!=2&&(A=!0)),this.b[P]==2&&(e=!1);if(!e)throw et(new F7);for(this.a=c(B,F,6,this.r,15,1),n=0;n<this.a.length;n++)if(this.a[n]=-1,this.a[n]=_O(this,n),this.a[n]==0)throw et(new N7(\"Couldn't assign an atom type to atom \"+n+\" (\"+J0[this.D[n]]+\")\"))}function z$(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(r=j1(B,[D0,F],[7,6],15,[2,32],2),i=0;i<2;i++){for(A=c(B,D0,7,32,0,2),s=0,P=0;P<32;P++)if(e[i][P]!=null){for(o=e[i][P].length,A[P]=c(B,F,6,o,15,1),f=0;f<o;f++)A[P][f]=t.f[e[i][P][f]];A[P].sort(pe(u0.prototype.ld,u0,[])),++s}for(L=s;L>0;L--){for(Q=0,D=null,n=0;n<32;n++)if(A[n]!=null){if(D==null||D.length<A[n].length)D=A[n],Q=n;else if(D.length==A[n].length){for(f=D.length-1;f>=0;f--)if(D[f]<A[n][f]){D=A[n],Q=n;break}}}r[i][Q]=L,A[Q]=null}}return r}function K$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l;for(r=0,A=0;A<t.V.r;A++)r0(t.V,A)&&++r;for(y=t.V.r,l=t.V.s,t.gb=zD(t.gb,t.gb.length+r),t.jb=zD(t.jb,t.jb.length+r),i=c(B,F,6,t.V.r,15,1),D=Ae(t.V,1),Q=Ae(t.V,2),n=0;n<y;n++)r0(t.V,n)&&(L=t.V.r,t.gb[L]=t.gb[n],t.jb[L]=t.jb[n],i[n]=L,Gn(t.V,t.V,n,D,Q));for(f=0;f<l;f++)bP(t.V,f)&&TQ(t.V,t.V,f,D,Q,i,!1);for(P=0;P<y;P++)vP(t.V,P,!1);for(e=y;e<t.V.r;e++)tA(t.V,e,0,!1);if(t.I)for(o=t.I.a.length-1;o>=0;o--)s=x(t.I,o),s.g&&!Jt(s,63)&&Ft(t.I,s.Gb())}function J$(t){var e,A,n,P,r,i,f,D;if(t.g!=null)for(i=new Zp(t),t.b=new n1,P=0;P<t.g.length;P++)n=Tq(i,P),n==0?(kj(i,P),f=Cm(t,P,2),e=Cm(t,P,1),A=mm(t,P),f==1&&e==1&&!A&&(az(t,P,i.a+i.f++),Ft(t.b,new Zi(P,1,-1,-1))),f>0?(A&&(ZT(t,P,i.i+i.g++,2),++f),Ft(t.b,new Zi(P,1,-1,-1))):e>0?(A&&ZT(t,P,i.a+i.f++,1),Ft(t.b,new Zi(P,1,-1,-1))):A&&(ZT(t,P,i.a+i.f++,1),Ft(t.b,new Zi(P,1,-1,-1)))):n==1&&(mm(t,P)?(r=Sz(i,P),D=Tz(i,P),Ft(t.b,new Zi(P,2,r,D))):(kj(i,P),Ft(t.b,new Zi(P,1,-1,-1))))}function ZQ(t){Z3(),this.d=t,ut(this.d,15),this.j=new n1,this.k=c(Pt,it,6,(s8(),xl).length,16,1),this.i=c(B,F,6,xl.length,15,1),B1t(this.j,t),this.i[0]=this.j.a.length,this.i[1]=-this.j.a.length,ztt(this.j,t),this.i[1]+=this.j.a.length,this.i[2]=-this.j.a.length,fX(this.j,t),this.i[2]+=this.j.a.length,this.i[4]=-this.j.a.length,c$(this.j,t),this.i[4]+=this.j.a.length,this.i[5]=-this.j.a.length,Oa(this.j,t),this.i[5]+=this.j.a.length,this.i[3]=-this.j.a.length,ltt(this.j,t),this.i[3]+=this.j.a.length}function Y$(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l;for(i=c(B,F,6,A.r,15,1),o=c(B,F,6,A.r,15,1),Q=c(Ut,Tt,6,A.r,15,1),o[0]=e,D=0,L=0;D<=L;){for(l=o[D],s=0;s<A.e[l];s++)f=A.j[l][s],i[f]==0&&f!=e&&(o[++L]=f,i[f]=i[l]+1,i[f]==2?Q[f]=f<e?t[e][f].a[0]:t[f][e].a[0]:i[f]>2&&(Q[f]=Q[l]+pr(n,A.n[l][s]),f<e&&!t[e][f]&&(i[f]==3?t[e][f]=new Cg:(y=c(B,F,6,2,15,1),y[0]=o[1],y[1]=l,t[e][f]=new fs(t9(e,f),y,(r=A.D[e],(r<(k2(),JA).length?JA[r]:2)+(P=A.D[f],P<JA.length?JA[P]:2)),Q[f],0)))));++D}}function c8(t,e){var A,n,P,r,i,f,D,Q;for(A=new RegExp(e,\"g\"),D=c(ft,Dt,2,0,6,1),n=0,Q=t,r=null;;)if(f=A.exec(Q),f==null||Q==\"\"){D[n]=Q;break}else{if(i=f.index,r==null&&i==0&&f[0].length==0){Q=hA(Q,i+f[0].length,Q.length),A.lastIndex=0,r=Q;continue}D[n]=(Mt(0,i,Q.length),Q.substr(0,i)),Q=hA(Q,i+f[0].length,Q.length),A.lastIndex=0,r==Q&&(D[n]=(Mt(0,1,Q.length),Q.substr(0,1)),Q=(zt(1,Q.length+1),Q.substr(1))),r=Q,++n}if(t.length>0){for(P=D.length;P>0&&D[P-1]==\"\";)--P;P<D.length&&(D.length=P)}return D}function $s(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(n=t.e[e],P=c(Ut,Tt,6,n,15,1),y=0;y<n;y++)P[y]=_0(t,e,t.j[e][y]);for(l=1;l<n;l++)for(h=0;h<l;h++)if(r=w.Math.abs(Ze(P[l],P[h])),r<.08||r>yM){for(i=0,f=0,T=0;T<n;T++)T!=l&&T!=h&&(i+=w.Math.abs(Vv(P[l],P[T])),f+=w.Math.abs(Vv(P[h],P[T])));if(Q=i<f?t.n[e][l]:t.n[e][h],dt(t,Q)==1&&(!A||!(t.I[Q]==257||t.I[Q]==129)))return Q}for(g=-1,D=0,s=0;s<n;s++)o=t.j[e][s],L=t.n[e][s],v=GQ(t,L,o),D<v&&(!A||!(t.I[L]==257||t.I[L]==129))&&(D=v,g=L);return g}function X$(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h;if(dt(e,t.a)==1&&(ze(e,t.a)==1||ze(e,t.a)==2)){for(Q=!1,f=0;f<2;f++)for(n=t.p[3*f],A=t.p[1+f],h=t.p[2-f],o=0;o<e.k[A];o++)if(l=e.j[A][o],l!=h&&l!=n){l<n&&(Q=!Q);break}for(ze(e,t.a)==1&&(Q=!Q),P=0,r=0,D=0;D<t.d.length;D++)t.d[D]<180^Q&&(r+=t.c[D],++P);if(P<t.d.length){for(y=c(Yt,t1,6,P,15,1),L=c(Yt,t1,6,P,15,1),s=c(Yt,re,17,P,0,2),P=0,i=0;i<t.d.length;i++)t.d[i]<180^Q&&(y[P]=t.d[i],L[P]=(t.c[i]*100/r|0)<<16>>16,s[P]=t.e[i],++P);t.d=y,t.c=L,t.e=s}}}function Z$(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(i=c(B,F,6,t.s,15,1),P=0;P<e.g;P++){for(y=e.k[P]+(e.j[P].length-e.e[P]),s=0,D=0;D<e.j[P].length;D++)if(D<e.k[P]||D>=e.e[P]){for(l=2*A[e.j[P][D]],r=e.n[P][D],dt(e,r)==2&&(r<e.i&&Ee(e.q,r)||++l),o=0;o<s&&!(l<i[o]);o++);for(L=s;L>o;L--)i[L]=i[L-1];i[o]=l,++s}for(AA(t.b[P],P),a1(t.b[P],t.a,A[P]),Q=y;Q<t.s;Q++)a1(t.b[P],t.a+1,0);for(f=0;f<y;f++)a1(t.b[P],t.a+1,i[f])}for(n=e.g;n<t.b.length;n++)for(AA(t.b[n],n),a1(t.b[n],t.a,e.g+1),f=0;f<t.s;f++)a1(t.b[n],t.a+1,0)}function KR(t){var e,A,n,P,r,i,f,D,Q,o;switch(e=null,o=t.c.length,t.e){case 1:for(e=c(Yt,t1,6,2*o,15,1),n=0;n<o;n++)e[n]=t.c[n],e[o+n]=t.c[n];return e;case 2:for(P=t.a[0]==0?1:0,r=t.a[o-1]==180?o-1:o,Q=r-P,e=c(Yt,t1,6,o+Q,15,1),i=0;i<o;i++)e[i]=t.c[i];for(f=P;f<r;f++)e[e.length-1-f+P]=t.c[f];return e;case 3:for(P=t.a[0]==0?1:0,r=t.a[o-1]==90?o-1:o,Q=r-P,e=c(Yt,t1,6,2*o+2*Q,15,1),D=0;D<o;D++)e[D]=t.c[D],e[o+Q+D]=t.c[D];for(A=P;A<r;A++)e[o+Q-1-A+P]=t.c[A],e[e.length-1-A+P]=t.c[A];return e;default:return t.c}}function MA(t,e){var A,n,P,r,i;if(!e||e.r==0||!e.L){t.g=null;return}for(t.g=e,t.r=!1,ut(t.g,1),t.N=7,n=0;n<t.g.g;n++)gt(V(l0(t.g,n),{l:be,m:0,h:3}),0)&&(t.N=15);for(i=0;i<t.g.i;i++)(ie(t.g,i)&F8)!=0&&(t.N=15);for(t.L&&t.N!=7&&ut(t.H,t.N),t.p=0,t.q=0,t.D=c(Pt,it,6,t.g.g,16,1),P=0;P<t.g.g;P++)t.D[P]=se(t.g,P),t.D[P]&&++t.p;if(t.d=0,t.f=null,t.i=null,t.p!=0){for(r=0;r<t.g.i;r++)(t.D[q(t.g,0,r)]||t.D[q(t.g,1,r)])&&++t.q;for(A=0;A<t.g.r;A++)_n(t.g,A,t.D[A]);t.f=c(B,F,6,t.g.r,15,1),t.d=Ur(t.g,t.f,!0,!1)}}function JR(t,e){Zg();var A,n,P,r,i,f;r=new Js(t);try{if(f=new wh,QA(f,zC+R8),Ni(f.a,e??\"\"),QA(f,R8+(\"\"+R8)),QA(f,Xy+e6(t,!0,11)),QA(f,R8),P=r.g.a.length,n=r.f.a.length,QA(f,TM+P+\" \"+n+R8),i=HZ(r),P>0){for(QA(f,YC+R8),A=0;A<r.g.a.length;A++)QA(f,qv(x(r.g,A),i));QA(f,\"M  V30 END REACTANT\"+R8)}if(n>0){for(QA(f,ZC+R8),A=0;A<r.f.a.length;A++)QA(f,qv(x(r.f,A),i));QA(f,\"M  V30 END PRODUCT\"+R8)}QA(f,hr+R8),this.a=f.a}catch(D){if(D=_1(D),Jt(D,19))z1();else throw et(D)}}function W$(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l;for(D=null,l=kn(t.R),L=0;L<l.j.a.length;L++)if(l.f[L]){for(r=0,s=x(l.j,L),A=s,n=0,P=A.length;n<P;++n)e=A[n],Fs(t,e)&&++r;if(r!=0)if(y=x(l.k,L),D==null&&(D=c(Pt,it,6,t.R.i,16,1)),r==s.length){for(Q=-1,o=Et,i=0;i<s.length;i++)o>t.B[y[i]]&&(o=t.B[y[i]],Q=i);for(;r>0;)D[y[Q]]=!0,Q=wU(Q+2,s.length),r-=2}else{for(f=0;Fs(t,s[f]);)++f;for(;!Fs(t,s[f]);)f=wU(f+1,s.length);for(;r>0;)for(D[y[f]]=!0,f=wU(f+2,s.length),r-=2;!Fs(t,s[f]);)f=wU(f+1,s.length)}}return D}function _$(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(t.b=TA(t.c),r=IE,f=0,Q=r.length;f<Q;++f)n=r[f],Gt(t.b,n);for(s=t.b.Gc(),s.setEditable(!0),xG(t.b,\"\"+Bt(t.e.c)),t.a=TA(t.c),P=xE,i=0,D=P.length;i<D;++i)n=P[i],Gt(t.a,n);for(o=0,A=0;A<pl.length;A++)if(t.e.d==pl[A]){o=A;break}$t(t.a,o),e=m(k(B,1),F,6,15,[8,-2,4,-2,8]),L=m(k(B,1),F,6,15,[8,-2,4,-2,8,-2,8]),fL(t.c,e,L),f0(t.c,le(t.c,\"Text size:\"),1,1),f0(t.c,t.b,3,1),f0(t.c,le(t.c,\"Text style:\"),1,3),f0(t.c,t.a,3,3),t.d=$u(t.c,20,3),Y8(t.d,t.e.e),Fe(t.c,t.d,1,5,3,5)}function $$(t,e){var A,n,P;return n=Qb(t,e),A=ee(t,t.F[0][e])||ee(t,t.F[1][e]),P=A?16:1,t.I[e]==64?(t.I[e]=P,t.U=0,!0):t.I[e]==32?(t.I[e]=n>4?64:P,t.U=0,!0):t.I[e]==4?(t.I[e]=n>3?32:P,t.U=0,!0):t.I[e]==2&&(t.I[e]=386,t.U&=7,(t.G[e]&128)==0)?!0:t.I[e]==386?(n>2?t.I[e]=4:t.I[e]=P,t.U=0,!0):(384&t.I[e])!=0?(t.I[e]=1,t.U&=7,!0):!A&&n<2?!1:t.I[e]==1?(t.I[e]=2,t.U=0,!0):n<1?!1:t.I[e]==16?(t.I[e]=1,t.U=0,!0):!1}function a$(t,e){var A,n;if(e.j==1){if(A=y5(t,e),!(A>=0&&A<34&&(A!=t.b||A==20||A==33)&&(A!=19||(t.a.U&4)!=0)&&(A!=21||(t.a.U&8)!=0)))return;A==20&&A==t.b&&(t.d=++t.d%3),t.k=A,xD(t.n)}else if(e.j==2){if(t.k==-1)return;if(n=y5(t,e),n!=t.k||t.k==19&&(t.a.U&4)==0||t.k==21&&(t.a.U&8)==0){t.k=-1,xD(t.n);return}if(t.k=-1,n==0||n==1||n==17){xD(t.n),BX(t.a,n);return}t.b=n,xD(t.n),t.b==20?uQ(t.a,t.d==0?101:t.d==1?103:102):t.b==33?Vk(t.a,-1,new dg(t,n)):uQ(t.a,n)}else(e.j==6||e.j==5)&&(A=y5(t,e),A==t.k&&(A=-1),A!=t.f&&(t.f=A,xD(t.n)))}function oi(t,e){var A,n,P,r,i,f;return t.I[e]!=1||e<t.i&&Ee(t.q,e)||(t.G[e]&64)!=0&&(t.q&&e<t.i?TP(t.q,e):0)<7||(A=t.F[0][e],!(A<t.g&&i0(t.q,A))||(t.q&&A<t.g?UA(t.q,A):0)<5)||(n=t.F[1][e],!(n<t.g&&i0(t.q,n))||(t.q&&n<t.g?UA(t.q,n):0)<5)?!1:(P=JF(t,A,n),r=JF(t,n,A),(t.q&&A<t.g?UA(t.q,A):0)>5&&(t.q&&n<t.g?UA(t.q,n):0)>5?P+r>2:(i=wb(t,A,n),f=wb(t,n,A),P==2&&f>=1||r==2&&i>=1||i==2&&(r>=1||f>=1)||f==2&&(P>=1||i>=1)))}function ta(t){var e,A,n,P,r,i,f;for(t.L=!0,n=o5(t),t.P&&h2(t.P,t.f)&&(n=o5(t)),U2(t,!1)&&g2(t),i=!0;t.U<t.R.g&&i;){for(P=z$(t,n),e=0;e<t.R.g;e++)AA(t.e[e],e),a1(t.e[e],t.c,t.f[e]),a1(t.e[e],20,0),!t.cb[e]&&t.bb[e]!=0&&Le(t.e[e],at(t.bb[e]<<18,Wt(P[t.bb[e]==1?0:1][t.ab[e]],8))),f=t.db[e],t.eb[e]&&(f==1?f=2:f==2&&(f=1)),Le(t.e[e],f<<4);for(A=0;A<t.R.i;A++)Le(t.e[q(t.R,0,A)],t.o[A]),Le(t.e[q(t.R,1,A)],t.o[A]);if(r=tP(t),t.U==r)break;t.U=r,i=!1,t.P&&h2(t.P,t.f)&&(i=!0,n=o5(t)),U2(t,!1)&&(i=!0,g2(t))}}function ea(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l;for(e=0;e<t.j.g;e++)if(t.d[e])for(i=!1,f=c(B,F,6,t.j.g,15,1),l=c(B,F,6,t.j.g,15,1),D=c(B,F,6,t.j.g,15,1),f[0]=e,l[e]=-1,D[e]=1,P=0,Q=0;P<=Q&&!i;){for(r=f[P],o=0;o<N(t.j,r)&&!i;o++)if(L=(D[r]&1)==1^dt(t.j,Nt(t.j,r,o))>1,n=Z(t.j,r,o),D[n]==0&&L)if(t.d[n]){if((D[r]&1)==1){for(t.d[e]=!1,t.d[n]=!1,t.k+=2,y=r,s=0;s<D[r];s++)A=o1(t.j,n,y),t.e[A]&&(t.e[A]=!1,--t.c),F3(t.j,A,dt(t.j,A)==1?2:dt(t.j,A)-1),n=y,y=l[n];i=!0}}else f[++Q]=n,l[n]=r,D[n]=D[r]+1;++P}}function zA(t,e){O1();var A,n,P,r,i;if((e&256)!=0&&e1(t,\"?\"))return 0;for(n=1;n<=128;n++)if(!e1(t,je)&&P9(t,J0[n]))return n;if((e&2)!=0){for(P=129;P<=144;P++)if(P9(t,J0[P]))return P}if((e&4)!=0){for(r=146;r<=148;r++)if(P9(t,J0[r]))return r}if((e&1)!=0){for(i=151;i<=152;i++)if(P9(t,J0[i]))return i}if((e&32)!=0&&P9(t,J0[153]))return 153;if((e&8)!=0&&P9(t,J0[154]))return 154;if((e&16)!=0&&P9(t,J0[145]))return 145;if((e&128)!=0&&P9(t,J0[159]))return 159;if((e&64)!=0){for(A=171;A<=190;A++)if(P9(t,J0[A]))return A}return 0}function Aa(t,e){var A,n,P,r,i,f,D;if(t.db[e]==1||t.db[e]==2){if(f=!1,t0(t.R,e)==2&&N(t.R,e)==2)try{for(i=0;i<2;i++)if(A=Z(t.R,e,i),N(t.R,A)==3){for(P=c(B,F,6,2,15,1),r=0,D=0;D<N(t.R,A);D++)EA(t.R,A,D)==1&&(P[r++]=Z(t.R,A,D));t.f[P[0]]>t.f[P[1]]^F6(t,A,P[0],P[1])&&(f=!f)}}catch(Q){if(Q=_1(Q),Jt(Q,19)){t.$[e]=3;return}else throw et(Q)}else{try{n=JX(t,e)}catch(Q){if(Q=_1(Q),Jt(Q,19)){t.$[e]=3;return}else throw et(Q)}for(i=1;i<n.length;i++)for(D=0;D<i;D++)t.f[n[i]]<t.f[n[D]]&&(f=!f)}t.db[e]==1^f?t.$[e]=1:t.$[e]=2}}function na(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,h;for(L=-1,o=0;o<t.k[A];o++)t.o[A][o]==2&&(L=t.j[A][o]);for(r=c(B,F,6,n,15,1),h=c(B,F,6,4,15,1),h[0]=L,h[1]=A,h[2]=e,D=0,Q=0;Q<t.e[e];Q++)i=t.j[e][Q],t.D[i]==1&&(D==0&&(h[3]=i),r[D++]=i);y=!(A<t.g&&i0(t.q,A))&&n==1?1:2,l=c(Yt,t1,6,y,15,1),f=c(Yt,t1,6,y,15,1),s=j1(Yt,[re,t1],[17,6],15,[y,2],2),!(A<t.g&&i0(t.q,A))&&n==1?(l[0]=0,f[0]=100,s[0][0]=-15,s[0][1]=15):(l[0]=0,l[1]=180,f[0]=50,f[1]=50,s[0][0]=-15,s[0][1]=15,s[1][0]=165,s[1][1]=195),Ft(P,new WL(l,f,s,h,r,1))}function He(t){var e,A,n,P,r;return t.g!=null?t.g:t.a<32?(t.g=mtt(E1(t.f),Bt(t.e)),t.g):(P=B6((!t.c&&(t.c=jP(E1(t.f))),t.c),0),t.e==0?P:(e=(!t.c&&(t.c=jP(E1(t.f))),t.c).e<0?2:1,A=P.length,n=-t.e+A-e,r=new M0,r.a+=\"\"+P,t.e>0&&n>=-6?n>=0?pD(r,A-Bt(t.e),\".\"):(aF(r,e-1,e-1,\"0.\"),pD(r,e+1,PP(zo,0,-Bt(n)-1))):(A-e>=1&&(pD(r,e,\".\"),++A),pD(r,A,\"E\"),n>0&&pD(r,++A,\"+\"),pD(r,++A,\"\"+ve(E1(n)))),t.g=r.a,t.g))}function Pa(t){var e,A,n,P,r,i,f;if(n=new LD,Ft(n.a,new ae(\"Solubility values are estimated applying an atom-type based increment system.\",2)),Ft(n.a,new ae(xV,2)),Ft(n.a,new ae(k4,2)),Ft(n.a,new ae(\"Base value = -0.530\",2)),A=c(B,F,6,_f.length,15,1),t)for(Li(t),ut(t,7),e=0;e<t.g;e++){f=-1;try{f=Ly(t,e,2144)}catch(D){if(D=_1(D),!Jt(D,19))throw et(D)}for(i=0;i<_f.length;i++)if(A0(Bl[i],f)){++A[i];break}}for(P=new sD(\"#0.000\"),r=0;r<_f.length;r++)A[r]!=0&&e8(n,\"\"+A[r]+\" * \"+xh(P,_f[r])+\"   AtomType: 0x\"+u5(Bl[r]),2);return n}function Q6(t){var e,A,n,P,r,i,f,D;for(f=c(Pt,it,6,t.r,16,1),A=0;A<t.r;A++)f[A]=t.D[A]==1&&t.B[A]==0&&t.t[A]==0&&(t.v[A]&m8)==0&&(t.u==null||t.u[A]==null);for(D=c(Pt,it,6,t.r,16,1),i=0;i<t.s;i++){if(n=t.F[0][i],P=t.F[1][i],dt(t,i)!=1){f[n]=!1,f[P]=!1;continue}D[n]&&(f[n]=!1),D[P]&&(f[P]=!1),f[n]&&ee(t,P)&&t.D[P]!=13&&(f[n]=!1),f[P]&&ee(t,n)&&t.D[n]!=13&&(f[P]=!1),D[n]=!0,D[P]=!0}for(r=0;r<t.s;r++)f[t.F[0][r]]&&f[t.F[1][r]]&&(f[t.F[0][r]]=!1,f[t.F[1][r]]=!1);for(e=0;e<t.r;e++)D[e]||(f[e]=!1);return f}function ra(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;for(g=0;g<t.e.length;g++)if(t.e[g]){for(T=!1,n=x(t.j,g),r=0,f=n.length;r<f;++r)e=n[r],t.a[e]|=Q0,oX(t,e)&&(T=!0);for(o=x(t.k,g),s=0,h=o.length;s<h;++s)D=o[s],t.c[D]|=Q0;if(t.f[g]){for(A=x(t.j,g),P=0,i=A.length;P<i;++P)e=A[P],t.a[e]|=O0;for(Q=x(t.k,g),L=0,l=Q.length;L<l;++L)D=Q[L],t.c[D]|=O0}if(T){for(A=x(t.j,g),P=0,i=A.length;P<i;++P)e=A[P],t.a[e]|=v8;for(Q=x(t.k,g),L=0,l=Q.length;L<l;++L)D=Q[L],t.c[D]|=v8}}for(y=new Zt(t.b);y.a<y.c.a.length;)D=_t(y).a,t.c[D]=0}function ia(t,e,A,n,P){var r,i;return!(J(t.j,A)==6&&w.Math.abs(N(t.j,A)-N(t.d,P))>1||J(t.j,A)==8&&N(t.j,A)==2&&ei(t.j,e,8)>ei(t.d,n,8)||J(t.d,P)==8&&N(t.d,P)==2&&ei(t.j,e,8)<ei(t.d,n,8)||J(t.j,A)==8&&N(t.j,A)==2&&N(t.d,P)==2&&(i=Z(t.j,A,0)==e?0:1,r=Z(t.d,P,0)==n?0:1,js(t.p[A][i][3],t.i[P][r][3])!=0)||J(t.j,A)==7&&ei(t.j,e,7)<ei(t.d,n,7)||J(t.d,P)==7&&ei(t.j,e,7)>ei(t.d,n,7)||z9(t.j,o1(t.j,e,A))==3^z9(t.d,o1(t.d,n,P))==3)}function as(t,e){ni();var A,n,P,r,i,f,D,Q,o,L,s;return A=(YA[0]*((e&QP)>>16)+YA[1]*((e&DP)>>8)+YA[2]*(e&255))/255,i=(YA[0]*((t&QP)>>16)+YA[1]*((t&DP)>>8)+YA[2]*(t&255))/255,P=w.Math.abs(A-i),P>Hf||(f=(VQ(),yR(((e&QP)>>16)/255,((e&DP)>>8)/255,(e&255)/255,null)),D=yR(((t&QP)>>16)/255,((t&DP)>>8)/255,(t&255)/255,null),Q=w.Math.abs(D[0]-f[0]),Q>.5&&(Q=1-Q),s=1-w.Math.max(D[1],f[1]),n=w.Math.abs(i+A-1),o=w.Math.cos(l1*Q*3),L=Hf*w.Math.max(s,w.Math.max(n,o)),P>L)?t:(r=i>A?i+L>1:i-L>0,F5(t,r?A-L:A+L))}function iP(t){var e,A,n,P,r,i,f,D,Q;e=null;try{for(e=new un(new mi((P=A2(t),c0(),P))),D=L1(k1(X1(e)),f1,Et),n=c8(k1(X1(e)),\",\"),Q=j1(zn,[DA,e0],[8,1],5,[D,n.length],2),i=0;(r=X1(e))!=null&&i<D;i++)for(f=c8(k1(r),\",\"),A=0;A<n.length;A++)switch(Xi(n[A],0)){case 105:Q[i][A]=U1(L1(k1(f[A]),f1,Et));break;case 102:Q[i][A]=he(k1(f[A]));break;case 99:Q[i][A]=Fz(Xi(Pf(Pf(k1(f[A]),\"'\"),'\"'),0))}return Q}catch(o){if(o=_1(o),Jt(o,79))z1();else throw et(o)}return j1(zn,[DA,e0],[8,1],5,[1,1],2)}function jf(t,e,A){var n,P,r,i;if(ut(t.j,1),i=new dU(t.j,1),Sa(t,e,i),t.c==0)return!0;if(A)for(P=0;P<t.j.g;P++)t.d[P]&&J(t.j,P)==7&&(t.f[P]||N(t.j,P)==3&&!t.g[P])&&m0(t.j,P,1);for(t.a=!1,WJ(t,A),t.j.L&&q_(t),Ktt(t,i),Bz(t,i),EY(t),A&&Mtt(t),xQ(t);ja(t,i,A);)xQ(t);for(;uW(t,i,A);)xQ(t);for(;w$(t,i,A);)xQ(t);for(;t.c!=0;)for(r=0;r<t.j.i;r++)t.e[r]&&(u2(t,r),xQ(t));for(A&&La(t,A),t.b-t.k>=2&&ea(t),n=0;n<t.j.g;n++)t.d[n]&&xt(t.j,n)!=0&&(A&&(R1(t.j,n)==1&&rA(t.j,n)||R1(t.j,n)==-1&&J(t.j,n)==5)?m0(t.j,n,0):Je(t.j,n,32),++t.k);return t.b==t.k}function YR(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y;for(this.e=t,this.c=e,this.f=A,this.d=n,this.g=P,this.b=P,this.i=r,Q=new cP,f=0;f<t.g;f++)A[f]==0&&(D=t.D[f]+(t.B[f]<<16),s=de(Q,U1(D)),s||(s=new rT(this),We(Q,U1(D),s)),s.d=Ck(f,s.d),s.d.length<=s.c.length&&(s.a=s.d.length));for(i=0;i<e.g;i++)n[i]==0&&(D=e.D[i]+(e.B[i]<<16),s=de(Q,U1(D)),s||(s=new rT(this),We(Q,U1(D),s)),s.c=Ck(i,s.c),s.c.length<=s.d.length&&(s.a=s.c.length));for(this.a=new n1,y=(L=new oD(Q).a.ad().Tb(),new UD(L));y.a.cd();)s=(o=y.a.dd(),o.jd()),E$(s)||Ft(this.a,s)}function XR(t,e){var A,n,P,r,i;r=0,$A(t.d)?(P=v0(t.p),A=v0(t.o),r|=P<<9,r|=A<<13,r&=-128,w0(t.u,e,1)):($A(t.k)&&(r|=1),$A(t.c)&&(r|=2),$A(t.n)&&(r|=4),$A(t.i)&&(r|=32),$A(t.j)&&(r|=64),$A(t.b)&&(r|=8),$A(t.g)&&(r|=16),v0(t.q)!=0&&(v0(t.q)==1?LA(t.u,e)||(r|=128):v0(t.q)==2?LA(t.u,e)||(r|=256):v0(t.q)==3?eA(t.u,e)||(r|=4194560):v0(t.q)==4?eA(t.u,e)||(r|=KA):v0(t.q)==5&&(eA(t.u,e)||(r|=oP))),v0(t.r)!=0&&(i=v0(t.r)+2,i>7&&(i-=7),n=z9(t.u,e),(i<=2||i!=n)&&(r|=i<<17)),$A(t.e)&&(r|=Nf),$A(t.f)&&(r|=F8)),Xe(t.u,e,yi,!1),Xe(t.u,e,r,!0),qs(t.u,e)}function ty(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h;for(P=c(B,F,6,e.r,15,1),D=Ae(t,1),Q=Ae(t,2),n=0;n<e.r;n++)if(e.D[n]!=0||(e.u==null||e.u[n]==null?null:on((y=e.u[n],c0(),y)))!=null)P[n]=Gn(e,t,n,D,Q);else if(P[n]=A,(e.U&8)!=0){for(f=0;f<e.s;f++)for(o=0;o<2;o++)if(e.F[o][f]==n){if(l=e.F[1-o][f],h=e.v[l]&3,L=!1,h==1||h==2){for(r=0;r<e.s;r++)if(r!=f)for(s=0;s<2;s++)e.F[s][r]==l&&e.F[1-s][r]<n&&(L=!L)}L&&ke(e,l,h==1?2:1,(e.v[l]&4)!=0)}}for(i=0;i<e.s;i++)o9(e,t,i,D,Q,P[e.F[0][i]],P[e.F[1][i]],!1);return t.M=t.M&&e.M,t.J=0,t.U=0,P}function ZR(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g;this.g=e,this.b=e.a[A],this.d=e.a[n],this.a=A,this.c=n,P=(i=mk(t.p,this.b),f=mk(t.p,this.d),D=yL(t.p,this.b),Q=yL(t.p,this.d),o=(i-f)/(i+f),.5*(i+f)*(1+(D==68||Q==68?0:.2*(1-w.Math.exp(-12*o*o))))),r=(L=Tv(t.p,this.b),s=Tv(t.p,this.d),y=hv(t.p,this.b),l=hv(t.p,this.d),h=cv(t.p,this.b),T=cv(t.p,this.d),g=P*P,181.16*L*s*y*l/((w.Math.sqrt(y/h)+w.Math.sqrt(l/T))*g*g*g)),this.e=yL(t.p,this.b),this.f=yL(t.p,this.d),(this.e==68&&this.f==65||this.e==65&&this.f==68)&&(P=P*.8,r*=.5),this.i=P,this.j=r}function fa(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h;return o=jB(t.a,e,o1(e,A,n)),r=e.a[A],f=e.a[n],r>f&&(r=(l=U1(f),U1(f=r),l).a),s=f9(m(k(B,1),F,6,15,[1,2,0]),m(k(B,1),F,6,15,[r,f,o]),t),s>=0?H0(t.b[s][3]):(P=e.D[A],i=e.D[n],P>i&&(P=(y=U1(i),U1(i=P),y).a),h=d2(t,e,A,n),Q=f9(m(k(B,1),F,6,15,[0,1]),m(k(B,1),F,6,15,[P,i]),t.a.c),Q>=0?(L=w.Math.pow(eN(t.a.c,Q)/h,6),tN(t.a.c,Q)*L):(D=f9(m(k(B,1),F,6,15,[0,1]),m(k(B,1),F,6,15,[tb(P),tb(i)]),t.a.j),w.Math.pow(10,-(h-yd(t.a.j,D,2))/yd(t.a.j,D,3))))}function Da(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H;return A=t.l&8191,n=t.l>>13|(t.m&15)<<9,P=t.m>>4&8191,r=t.m>>17|(t.h&255)<<5,i=(t.h&1048320)>>8,f=e.l&8191,D=e.l>>13|(e.m&15)<<9,Q=e.m>>4&8191,o=e.m>>17|(e.h&255)<<5,L=(e.h&1048320)>>8,E=A*f,S=n*f,I=P*f,a=r*f,H=i*f,D!=0&&(S+=A*D,I+=n*D,a+=P*D,H+=r*D),Q!=0&&(I+=A*Q,a+=n*Q,H+=P*Q),o!=0&&(a+=A*o,H+=n*o),L!=0&&(H+=A*L),y=E&q0,l=(S&511)<<13,s=y+l,T=E>>22,g=S>>9,v=(I&262143)<<4,d=(a&31)<<17,h=T+g+v+d,j=I>>18,R=a>>5,C=(H&4095)<<8,b=j+R+C,h+=s>>22,s&=q0,b+=h>>22,h&=q0,b&=Pn,N0(s,h,b)}function ua(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(R5(e,t.j),r=0,n=0;n<t.d.r;n++)i=e.a==null?NaN:e.a[n],i>1e3&&GZ(t,e,n)&&++r;if(r==0){for(s=16,P=0;P<t.d.r;P++)s>Ct(t.d,P)&&(e.a==null?NaN:e.a[P])>(o=w.Math.min(4,Ct(t.d,P)),400+o*2e3/5)&&(s=Ct(t.d,P));if(s!=16)for(A=0;A<t.d.r;A++)s==Ct(t.d,A)&&(e.a==null?NaN:e.a[A])>(Q=w.Math.min(4,Ct(t.d,A)),400+Q*2e3/5)&&(f=e.k[A],Ct(t.d,A)==1?(D=Z0(e,Z(t.d,A,0)),n8(f,2*(D.a-f.a),2*(D.b-f.b),2*(D.c-f.c))):(L=Ct(t.d,A)==0?16:8,n8(f,L*Vn(t.f)-L/2,L*Vn(t.f)-L/2,L*Vn(t.f)-L/2)),++r)}return r!=0&&OU(e),r}function WR(t){var e,A,n,P,r,i,f;for(i=c(B,F,6,t.U+1,15,1),A=0;A<t.R.g;A++)fe(t.R,A)==0&&(t.db[A]==1?++i[t.f[A]]:t.db[A]==2&&--i[t.f[A]]);for(P=0;P<t.R.i;P++)dt(t.R,P)==1&&gP(t.R,P)==0&&(t.o[P]==1?(++i[t.f[q(t.R,0,P)]],++i[t.f[q(t.R,1,P)]]):t.o[P]==2&&(--i[t.f[q(t.R,0,P)]],--i[t.f[q(t.R,1,P)]]));for(f=1;f<=t.U;f++)if(i[f]!=0){if(r=i[f]<0,r){for(e=0;e<t.R.g;e++)fe(t.R,e)==0&&(t.db[e]==1?t.db[e]=2:t.db[e]==2&&(t.db[e]=1));for(n=0;n<t.R.i;n++)dt(t.R,n)==1&&gP(t.R,n)==0&&(t.o[n]==1?t.o[n]=2:t.o[n]==2&&(t.o[n]=1))}return r}return!1}function Qa(t,e){var A,n,P,r,i,f,D,Q,o,L;for(t.j=0,P=0;P<e.g.a.length+e.f.a.length;P++)for(D=Nv(t.c,P),A=0;A<D.g;A++)gt(V(D.C[A],ne),0)?D.A[A]=0:t.j<w.Math.abs(D.A[A])&&(t.j=w.Math.abs(D.A[A]));for(L=c(Pt,it,6,t.j+1,16,1),r=0;r<e.g.a.length;r++)for(o=x(e.g,r),A=0;A<o.g;A++)f=w.Math.abs(o.A[A]),f!=0&&(L[f]=!0);for(i=0;i<e.f.a.length;i++)for(Q=x(e.f,i),A=0;A<Q.g;A++)f=w.Math.abs(Q.A[A]),f!=0&&(L[f]?L[f]=!1:Q.A[A]=0);for(n=0;n<e.g.a.length;n++)for(o=x(e.g,n),A=0;A<o.g;A++)f=w.Math.abs(o.A[A]),f!=0&&L[f]&&(o.A[A]=0)}function oa(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(l=null,l=new Gr,GA(l,t.f),i=c(Pt,it,6,t.f.g,16,1),T=e.Tb();T.cd();)if(h=T.dd(),y=null,v=h.b,MA(l,v),CA(l,4,8)!=0&&(y=l.F),y)for(s=new Zt(y);s.a<s.c.a.length;){for(L=_t(s),g=0,n=L,P=0,r=n.length;P<r;++P)A=n[P],i[A]&&++g;if(g<=1){for(D=h.c,t.a?D=!1:t.a=!0,Q=new VP(t.f,L.length,D),o=0;o<L.length;o++)A=L[o],D&&_n(t.f,A,!0),Q.k[o]=256,Q.e[o]=A,Q.a[o]=mt(h.b,o)/h.a,Q.b[o]=Rt(h.b,o)/h.a,i[A]=!0,t.b[A]=!0;for(f=0;f<v.i;f++)t.c[o1(t.f,L[v.F[0][f]],L[v.F[1][f]])]=!0;CP(t.d,Q)}}return i}function _R(t,e,A,n,P){var r,i,f,D,Q;for(this.D=t,this.u=e,this.I=A,this.B=n,this.L=P,JW(this),qb(this),this.k=_W(this),this.j=YX(this.k),this.r=0,Q=(f=new J8(new K8(new br(this.k[0]).a).b),new jr(f));Nr(Q.a.a);)D=(i=H9(Q.a),i.hd()),r=de(this.k[0],D),this.r+=w.Math.min(r[0].length,r[1].length);this.p=this.r==this.D.g&&this.D.g==this.u.g,this.G=c(B,F,6,this.D.g,15,1),this.w=c(B,F,6,this.u.g,15,1),this.H=c(Pt,it,6,Ur(this.D,this.G,!1,!1),16,1),this.A=c(Pt,it,6,Ur(this.u,this.w,!1,!1),16,1),this.q=iR(this),this.g=7,this.K=0}function $R(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T;if(t.o&&Utt(t,e),r=null,t.e!=null)for(f=t.e,Q=0,L=f.length;Q<L;++Q)i=f[Q],w2(i,e,null,0),r=r?pQ(r,i.v):i.v;if(t.b!=null)for(f=t.b,Q=0,L=f.length;Q<L;++Q)i=f[Q],w2(i,e,null,0),r=r?pQ(r,i.v):i.v;if(t.g)for(l=new Zt(t.g);l.a<l.c.a.length;)y=_t(l),h=y.Jb(e),Yu(t.p,h),r=r?pQ(r,h):h;if(!r)return null;if(P=t6(t),T=new iy(r,A,P,n),!(T.c==1&&T.a==0&&T.b==0)){if(Gu(T,t.p),t.e!=null)for(D=t.e,o=0,s=D.length;o<s;++o)i=D[o],ZU(i,T);if(t.b!=null)for(f=t.b,Q=0,L=f.length;Q<L;++Q)i=f[Q],ZU(i,T);return T}return null}function ey(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(D=MS[n],f=1,y=n==4?w.Math.exp(w.Math.log(.01)/D):1,P=t.d.r*t.d.r,s=c(Ut,Tt,6,10,15,1),L=0,o=0;o<D&&!(gt(t.n,0)&&(z1(),I1(E1(Date.now()),t.n)));o++){for(n!=0&&o%10==0&&Rtt(t,e),Q=0;Q<P&&!(gt(t.n,0)&&(z1(),I1(E1(Date.now()),t.n)));Q++)l=null,l=x(t.j,Bt(Vn(t.f)*t.j.a.length)),l.g&&!t.k[l.vd()]&&(i=l.ud(e,f),i&&OU(e));if(R5(e,t.j),s[L++]=e.e,L==10&&(L=0),o>10){for(r=0,T=s,g=0,v=T.length;g<v;++g)h=T[g],r+=h;if(r/=10,e.e>r)break}A.e>e.e&&(e2(A,e),HT(A,e)),f*=y}e.e>A.e&&(e2(e,A),HT(e,A))}function aR(){aR=v1,uS=m(k(Ut,1),Tt,6,15,[5.55,15,15,15,15,15,15,15,15,FA,FA,FA,FA,FA,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,FA,FA,7.1,Qe,Qe,17.78,cr,3.82,6.66,6.66,7.78,11.68,FA,6.66,FA,FA,Qe,Qe,Qe,Qe,Qe,Qe,Qe,Qe,Qe,Qe,FA,FA,11.68,11.68,11.68,Qe,20.3,cr,cr,Yf,Yf,cr,12.22,15.56,Yf,FA,10,cr,Qe,16.66,Yf,15.56,cr,15.56,Yf,cr,12.22,Yf,cr,18.88,cr,cr,12.22,FA,FA,FA,9.38,Qe,6.66,Qe,Qe,10,Qe,Qe,FA,Qe,Qe,4.44,4.44,10,4.44,16.66,Qe,Qe,Qe,Qe,6.66,10,FA,Qe,10,Yf,10,10,10,6.68,5.2,6.68,11.68,10.5])}function Ua(t,e){var A,n,P,r,i,f,D,Q,o,L;if(AO(t.D[e]))return 0;if(t.D[e]==1)return t.k[e]==0?0:ii(t.D[t.j[e][0]])?-1:1;if(L=t.t[e],D=t.e[e]-n0(t,e)+xt(t,e),t.D[e]!=1&&t.D[e]!=15&&(ii(t.D[e])?L+=D:L-=D),t.k[e]==0)return L;for(o=0;o<t.k[e];o++)r=t.j[e][o],A=Z8(t,t.n[e][o])?1:t.o[e][o],ii(t.D[e])?ii(t.D[r])||(L+=A):ii(t.D[r])?L-=A:t.D[e]!=t.D[r]&&(QB(t.D[e]).a<QB(t.D[r]).a?L+=A:L-=A);if(e<t.g&&rN(t.q,e)){for(n=0,P=0,f=0,Q=0;Q<t.k[e];Q++)Z8(t,t.n[e][Q])&&(i=t.D[t.j[e][Q]],i==6?++P:Pi(i)?++f:++n);t.D[e]==6?n>1?--L:f>1&&++L:rA(t,e)?n+P>1&&--L:f+P>1&&++L}return L}function o6(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(l=c(B,F,6,16,15,1),A=c(Ut,Tt,6,16,15,1),r=c(Ut,Tt,6,2,15,1),n=0,o=0;o<2;o++)for(P=t.F[o][e],L=0;L<t.k[P];L++)if(D=t.n[P][L],D!=e){if(n==4)return 0;f=t.j[P][L],l[n]=16,t.p[f]!=0&&(l[n]+=(t.v[f]&gn)!=0?1:4),(t.G[e]&64)!=0&&(t.G[D]&64)!=0&&(s=ts(t.q,e,D),s!=-1&&(l[n]+=dh(t.q,s)?64:6)),A[n++]=pA(t.K[P].a,t.K[P].b,t.K[f].a,t.K[f].b)}for(r[0]=_0(t,t.F[0][e],t.F[1][e]),r[0]<0?(r[1]=r[0]+l1,i=!1):(r[1]=r[0],r[0]=r[1]-l1,i=!0),y=0,Q=0;Q<n;Q++)A[Q]>r[0]&&A[Q]<r[1]?y-=l[Q]:y+=l[Q];return i?-y:y}function tp(t){var e;if(this.e=t.e,t.a!=null)for(this.a=c(Yt,t1,6,t.a.length,15,1),e=0;e<this.a.length;e++)this.a[e]=360-t.a[this.a.length-e-1]<<16>>16;if(t.d!=null)for(this.d=j1(Yt,[re,t1],[17,6],15,[t.d.length,2],2),e=0;e<this.d.length;e++)this.d[e][0]=360-t.d[this.a.length-e-1][1]<<16>>16,this.d[e][1]=360-t.d[this.a.length-e-1][0]<<16>>16;if(t.c!=null)for(this.c=c(Yt,t1,6,t.c.length,15,1),e=0;e<this.c.length;e++)this.c[e]=t.c[this.c.length-e-1];if(t.b!=null)for(this.b=c(_,At,6,t.b.length,15,1),e=0;e<this.b.length;e++)this.b[e]=t.b[this.b.length-e-1]}function La(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h;for(A=0;A<t.j.g;A++)if(ut(t.j,1),J(t.j,A)==7&&R1(t.j,A)==1&&t0(t.j,A)==1&&!HJ(t,A,e))for(f=!1,D=c(B,F,6,t.j.g,15,1),h=c(B,F,6,t.j.g,15,1),Q=c(B,F,6,t.j.g,15,1),D[0]=A,h[A]=-1,Q[A]=1,r=0,o=0;r<=o&&!f;){for(i=D[r],L=0;L<N(t.j,i)&&!f;L++)if(s=(Q[i]&1)==0^dt(t.j,Nt(t.j,i,L))>1,P=Z(t.j,i,L),Q[P]==0&&s)if(J(t.j,P)==7&&t0(t.j,P)==0&&N(t.j,P)==2){if((Q[i]&1)==0){for(m0(t.j,A,0),l=i,y=0;y<Q[i];y++)n=o1(t.j,P,l),F3(t.j,n,dt(t.j,n)==1?2:dt(t.j,n)-1),P=l,l=h[P];f=!0}}else D[++o]=P,h[P]=i,Q[P]=Q[i]+1;++r}}function sa(t,e){if(e<128)t.push((e&127)<<24>>24);else if(e<q1)t.push((e>>6&31|192)<<24>>24),t.push((e&63|128)<<24>>24);else if(e<Q0)t.push((e>>12&15|224)<<24>>24),t.push((e>>6&63|128)<<24>>24),t.push((e&63|128)<<24>>24);else if(e<KA)t.push((e>>18&7|240)<<24>>24),t.push((e>>12&63|128)<<24>>24),t.push((e>>6&63|128)<<24>>24),t.push((e&63|128)<<24>>24);else if(e<wn)t.push((e>>24&3|248)<<24>>24),t.push((e>>18&63|128)<<24>>24),t.push((e>>12&63|128)<<24>>24),t.push((e>>6&63|128)<<24>>24),t.push((e&63|128)<<24>>24);else throw et(new ZP(\"Character out of range: \"+e))}function ya(t,e,A){var n,P,r,i,f;return J(t.R,e)!=6&&J(t.R,e)!=7||(P=Z(t.R,e,0),r=Z(t.R,e,1),t0(t.R,P)!=1||t0(t.R,r)!=1)||N(t.R,P)==1||N(t.R,r)==1||Ct(t.R,P)>3||Ct(t.R,r)>3||(i=new Ff(t.R,t.f,e,P),i.f&&A==1)||(f=new Ff(t.R,t.f,e,r),f.f&&A==1)||i.f&&f.f?!1:(A==3&&(i.f&&i.c&&(t.W[e]=!0),f.f&&f.c&&(t.W[e]=!0)),n=t.jb?LY(t,i,f):UJ(i,f),A==1?t.db[e]=n:A==2&&(i.f&&(n==1?Le(t.e[i.b],t.f[P]):Le(t.e[i.d],t.f[P])),f.f&&(n==2?Le(t.e[f.b],t.f[r]):Le(t.e[f.d],t.f[r]))),!0)}function Ay(t,e,A){var n,P,r,i,f,D,Q,o,L,s;if(Q=t.K[e],i=t.n[A],(ie(t.g,A)&Nf)!=0){if(D=cu(t.H,e),P=cu(t.g,A),r=ie(t.g,A)&127,D!=P&&!(D==1&&(r&1)!=0)&&!(D==2&&(r&2)!=0)&&!(D==4&&(r&4)!=0)&&!(D==32&&(r&32)!=0)&&!(D==64&&(r&64)!=0)&&!(D==16&&(r&16)!=0)&&!(D==8&&(r&8)!=0))return!1;Q&=-128,i&=-128}if((Q&~i)!=0)return!1;if(s=(ie(t.g,A)&NP)>>17,s!=0){if(t.H.L&&s==(ie(t.H,A)&NP)>>17)return!0;if(s<=2)return o=z9(t.H,e),s==1?o>=8&&o<=12:o>=12;for(n=!1,L=kn(t.H),f=0;f<L.j.a.length;f++)if(x(L.k,f).length==s&&rf(L,f,e)){n=!0;break}if(!n)return!1}return!0}function la(t,e,A,n,P,r,i,f,D,Q){var o,L,s,y,l,h,T,g,v,d,b,j,R,C;t!=e&&(o=t9(t,e),!(D[o[0]][o[1]]&&D[o[0]][o[1]].a.length==1)&&(C=.866,L=.5,(Q.G[i]&64)!=0&&(b=Q.q&&i<Q.i?TP(Q.q,i):0,b<6&&(C=0,L=1)),y=f.a[i]-f.a[A]*w.Math.cos(P)-f.a[n]*w.Math.cos(r),j=f.a[A]*w.Math.sin(P),R=f.a[n]*w.Math.sin(r),l=j+R,h=j-R*L,T=R*C,v=w.Math.sqrt(y*y+h*h+T*T),g=w.Math.sqrt(y*y+l*l),d=c(B,F,6,2,15,1),d[0]=Q.F[0][i],d[1]=Q.F[1][i],s=D[o[0]][o[1]],s?(s.a[0]=w.Math.min(s.a[0],v),s.a[1]=w.Math.min(s.a[1],g)):D[o[0]][o[1]]=new fs(o,d,v,g,3)))}function U9(t,e){var A,n,P,r,i,f,D;for(f=(e.U&15)!=0,D=e.U&248,!t.g&&(t.g=new P2),(t.e&2)!=0&&q5(e,!1),t.f=e,ut(t.f,7),t.d=new v7,t.b=c(Pt,it,6,t.f.r,16,1),t.c=c(Pt,it,6,t.f.s,16,1),t.i=c(B,F,6,t.f.r,15,1),A=0;A<t.f.r;A++)t.i[A]=R1(t.f,A);for((t.e&12)!=0&&Ka(t),(t.e&1)==0&&Eo&&oa(t,Eo),g1t(t),fp(t),C_(t),fp(t),r=new Zt(t.d);r.a<r.c.a.length;)n=_t(r),eW(n);for(Ca(t),ftt(t),SJ(t),FO(t),KG(t),JG(t),P=new Zt(t.d);P.a<P.c.a.length;)for(n=_t(P),i=0;i<n.e.length;i++)ge(t.f,n.e[i],n.a[i]),Ve(t.f,n.e[i],n.b[i]),Xn(t.f,n.e[i],0);f&&(TD(t.f,D),hf(t.f)),t.a&&l3(t.f)}function ny(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(L=0,i=c(Pt,it,6,t.a.g,16,1),n=e,P=0,r=n.length;P<r;++P)A=n[P],A!=-1&&(i[A]=!0);for(s=c(Pt,it,6,t.a.i,16,1),T=0;T<t.b.i;T++)if(l=q(t.b,0,T),h=q(t.b,1,T),!(t.b.L&&(se(t.b,l)||se(t.b,h)))){if(f=e[l],D=e[h],gO(t.b,T),f==-1||D==-1){(f!=-1||D!=-1)&&(L+=Y5(t.b,T));continue}if(o=o1(t.a,f,D),o==-1){L+=Y5(t.b,T);continue}s[o]=!0,L+=rF(t.b,T)==rF(t.a,o)?0:1}for(Q=0;Q<t.a.i;Q++)t.a.L&&(se(t.a,q(t.a,0,Q))||se(t.a,q(t.a,1,Q)))||s[Q]||(L+=Y5(t.a,Q));for(y=0;y<t.b.g;y++)B0(t.b,y)!=0&&(L+=CY(t,y,e));return-L}function ha(t){if(!t)return 0;var e=0;return t.noTabus&&(e|=1),t.showAtomNumber&&(e|=2),t.showBondNumber&&(e|=4),t.highlightQueryFeatures&&(e|=8),t.showMapping&&(e|=16),t.suppressChiralText&&(e|=32),t.suppressCIPParity&&(e|=64),t.suppressESR&&(e|=128),t.noCarbonLabelWithCustomLabel&&(e|=g8),t.noAtomCustomLabels&&(e|=Q0),t.showSymmetryAny&&(e|=768),t.showSymmetrySimple&&(e|=256),t.showSymmetryStereoHeterotopicity&&(e|=512),t.noImplicitAtomLabelColors&&(e|=ue),t.noStereoProblem&&(e|=q1),t.noColorOnESRAndCIP&&(e|=E0),t.noImplicitHydrogen&&(e|=be),t.drawBondsInGray&&(e|=On),e}function Ui(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l;for(s=!1,P.a=0,P.b=0,n>0?r=I6:r=x6,l=_0(t.L,e,A),o=0;o<N(t.L,e);o++)i=Nt(t.L,e,o),f=l,q(t.L,0,i)==e?L=q(t.L,1,i):L=q(t.L,0,i),L!=A&&(y=_0(t.L,e,L),f<y&&(f+=k0),D=f-y,n>0?(D<l1&&(s=!0),D>I6&&(D=I6),D<.523598776&&(D=.523598776),D<=r&&(r=D,Q=t.T*w.Math.tan(r-HA)/2,P.a=-(Q*w.Math.sin(f)),P.b=-(Q*w.Math.cos(f)))):(D>=l1&&(s=!0),D<x6&&(D=x6),D>5.759586531&&(D=5.759586531),D>=r&&(r=D,Q=t.T*w.Math.tan(4.712388981-r)/2,P.a=-(Q*w.Math.sin(f)),P.b=-(Q*w.Math.cos(f)))));return s}function Ta(t,e,A){var n,P,r,i,f,D;for(n=c(B,F,6,4,15,1),f=0;f<Ct(t.R,e);f++)n[f]=Z(t.R,e,A[f]);for(Ct(t.R,e)==3&&(n[3]=e),P=j1(Ut,[T0,Tt],[15,6],15,[3,3],2),i=0;i<3;i++)P[i][0]=mt(t.R,n[i+1])-mt(t.R,n[0]),P[i][1]=Rt(t.R,n[i+1])-Rt(t.R,n[0]),P[i][2]=oA(t.R,n[i+1])-oA(t.R,n[0]);return D=c(Ut,Tt,6,3,15,1),D[0]=P[0][1]*P[1][2]-P[0][2]*P[1][1],D[1]=P[0][2]*P[1][0]-P[0][0]*P[1][2],D[2]=P[0][0]*P[1][1]-P[0][1]*P[1][0],r=(P[2][0]*D[0]+P[2][1]*D[1]+P[2][2]*D[2])/(w.Math.sqrt(P[2][0]*P[2][0]+P[2][1]*P[2][1]+P[2][2]*P[2][2])*w.Math.sqrt(D[0]*D[0]+D[1]*D[1]+D[2]*D[2])),r>0?1:2}function ep(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(ut(t,7),ut(e,7),this.c=t,this.d=new Ci,n=0;n<t.i;n++)tr(this.d,new M5(t,n));for(A=0;A<e.i;A++)o=new M5(e,A),D=(f=u9(this.d,o),f<0?-1:f),D==-1?(o.i=(Dr(),ml),tr(this.d,o)):JZ(I9(this.d,D),o);for(i=this.d.d.a.length-1;i>=0;i--)o=I9(this.d,i),o.i!=(Dr(),jl)?I9(this.d,i).i==Io&&QU(this.d,i):o.i=bl;for(this.b=c(B,F,6,t.g,15,1),r=0;r<t.g;r++)for(Q=0;Q<e.g;Q++)if(w.Math.abs(e.A[Q])==w.Math.abs(t.A[r])){P=(s=Sn(t,r),s+An(t,r,s,t.D[r])-G1(t,r)-(L=Sn(e,Q),L+An(e,Q,L,e.D[Q])-G1(e,Q))),this.b[r]=P>0?P:0;break}this.e=new Gr}function Ap(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,h;for(f=0;f<A;f++)if(n[f]!=-1&&t.e[f]>3&&(t.v[f]&wn)!=0){for(h=0,s=-1,L=-1,o=0;o<t.e[f];o++)P[t.n[f][o]]!=-1?++h:t.o[f][o]==1&&q9(t,t.n[f][o])&&t.F[0][t.n[f][o]]==f&&(s=t.n[f][o],L=t.j[f][o]);if(s!=-1&&h>=3){for(r=pA(t.K[f].a,t.K[f].b,t.K[L].a,t.K[L].b),y=10,l=-1,Q=0;Q<t.e[f];Q++)t.o[f][Q]==1&&(!q9(t,t.n[f][Q])||t.F[0][t.n[f][Q]]==f)&&P[t.n[f][Q]]!=-1&&(i=w.Math.abs(Ze(r,_0(t,f,t.j[f][Q]))),y>i&&(y=i,l=t.n[f][Q]));l!=-1&&(D=P[l],w0(e,D,t.I[l]==257?129:257),t.F[0][l]!=f&&(mD(e,1,D,n[t.F[0][l]]),mD(e,0,D,n[f])))}}}function np(t){var e,A,n,P;for(_D.call(this),e=0;e!=-1&&(A=t.indexOf('=\"',e),A!=-1);)if(n=(Mt(e+1,A,t.length),t.substr(e+1,A-(e+1))),e=t.indexOf('\"',A+2),P=e==-1?(zt(A+1,t.length+1),t.substr(A+1)):(Mt(A+1,e,t.length),t.substr(A+1,e-(A+1))),e1(n,\"x1\"))try{this.i[0].a=sn(P)}catch(r){if(r=_1(r),!Jt(r,42))throw et(r)}else if(e1(n,\"y1\"))try{this.i[0].b=sn(P)}catch(r){if(r=_1(r),!Jt(r,42))throw et(r)}else if(e1(n,\"x2\"))try{this.i[1].a=sn(P)}catch(r){if(r=_1(r),!Jt(r,42))throw et(r)}else if(e1(n,\"y2\"))try{this.i[1].b=sn(P)}catch(r){if(r=_1(r),!Jt(r,42))throw et(r)}}function U6(t,e,A){var n,P,r,i,f,D;if(e.l==0&&e.m==0&&e.h==0)throw et(new I8(\"divide by zero\"));if(t.l==0&&t.m==0&&t.h==0)return A&&(Kn=N0(0,0,0)),N0(0,0,0);if(e.h==B8&&e.m==0&&e.l==0)return ZK(t,A);if(D=!1,e.h>>19!=0&&(e=Ai(e),D=!D),i=NZ(e),r=!1,P=!1,n=!1,t.h==B8&&t.m==0&&t.l==0)if(P=!0,r=!0,i==-1)t=_g((ti(),gc)),n=!0,D=!D;else return f=p5(t,i),D&&is(f),A&&(Kn=N0(0,0,0)),f;else t.h>>19!=0&&(r=!0,t=Ai(t),n=!0,D=!D);return i!=-1?Kz(t,i,D,r,A):$T(t,e)<0?(A&&(r?Kn=Ai(t):Kn=N0(t.l,t.m,t.h)),N0(0,0,0)):F_(n?t:N0(t.l,t.m,t.h),e,D,r,P,A)}function v2(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;if(i=t.e,D=e.e,i==0)return e;if(D==0)return t;if(r=t.d,f=e.d,r+f==2)return A=V(t.a[0],g1),n=V(e.a[0],g1),i==D?(o=at(A,n),l=Ot(o),y=Ot(b0(o,32)),y==0?new RA(i,l):new ye(i,2,m(k(B,1),F,6,15,[l,y]))):(Ce(),ku(i<0?Y1(n,A):Y1(A,n),0)?me(i<0?Y1(n,A):Y1(A,n)):mP(me(V0(i<0?Y1(n,A):Y1(A,n)))));if(i==D)s=i,L=r>=f?VL(t.a,r,e.a,f):VL(e.a,f,t.a,r);else{if(P=r!=f?r>f?1:-1:yQ(t.a,e.a,r),P==0)return Ce(),vr;P==1?(s=i,L=jL(t.a,r,e.a,f)):(s=D,L=jL(e.a,f,t.a,r))}return Q=new ye(s,L.length,L),Hn(Q),Q}function WQ(t,e){var A,n,P,r,i,f,D,Q,o,L,s;if(t.D.d.a.length==t.t)return null;L=c(B,F,6,t.v.length,15,1),n=c(B,F,6,t.u.length,15,1),P=0;do{if(P++==64)return null;if(e&&t.D.d.a.length==0){for(o=0;o<t.u.length;o++)n[o]=sz(t.u[o]);for(A=Pr(t.i,n),Q=0;Q<t.v.length;Q++)L[Q]=A.a[Q]}else if(t.b){for(D=P/64,o=0;o<t.u.length;o++)n[o]=JK(t.u[o],Vn(t.c),D);for(A=Pr(t.i,n),Q=0;Q<t.v.length;Q++)L[Q]=gJ(A,Q,Vn(t.c),D)}else{for(f=0;f<t.u.length;f++)n[f]=kQ(t.c,t.u[f].b.length);for(i=0;i<t.v.length;i++)L[i]=kQ(t.c,t.v[i].d.length)}s=Xu(t,L,n)}while(r=u9(t.D,s),(r<0?-1:r)!=-1);return s}function Py(t,e,A){var n,P,r,i,f;if(e==A||t.a[e]!=t.a[A]||t.o[e]!=0&&(t.o[e]==3||t.o[A]==3||t.p[e]^t.o[e]!==t.o[A]||t.k[e]!==t.k[A]||t.j[e]!==t.j[A])||(n=o1(t.i,e,A),n!=-1&&(dt(t.i,n)==1&&t.c[n]!=0||dt(t.i,n)==2&&t.c[n]==1)))return!1;if(t0(t.i,e)==1&&!mn(t.i,e)){for(P=-1,f=0;f<N(t.i,e);f++)if(Z(t.i,e,f)!=A&&EA(t.i,e,f)==2){P=Nt(t.i,e,f);break}for(r=-1,i=0;i<N(t.i,A);i++)if(Z(t.i,A,i)!=e&&EA(t.i,A,i)==2){r=Nt(t.i,A,i);break}if(P!=-1&&t.c[P]!=0&&t.d[P]^t.c[P]===t.c[r])return!1}return!0}function ca(t){var e,A,n,P,r,i,f;r=ie(t.u,t.a),n=c1(t.u,t.a)==8||Z8(t.u,t.a)?6:dt(t.u,t.a),((r&1)!=0||n==1)&&yA(t.k,!0),((r&2)!=0||n==2)&&yA(t.c,!0),((r&4)!=0||n==3)&&yA(t.n,!0),((r&32)!=0||n==4)&&yA(t.i,!0),((r&64)!=0||n==5)&&yA(t.j,!0),((r&8)!=0||n==6)&&yA(t.b,!0),((r&16)!=0||n==0)&&yA(t.g,!0),(r&Nf)!=0&&yA(t.e,!0),(r&F8)!=0&&yA(t.f,!0),f=r&384,e=r&oo,f==128?$t(t.q,1):e==KA?$t(t.q,4):f==256?$t(t.q,e==0?2:3):$t(t.q,e==0?0:5),i=(r&NP)>>17,$t(t.r,i==0?0:i<=2?i+5:i-2),(r&d8)!=0?(yA(t.d,!0),P=(r&7680)>>9,A=(r&Ry)>>13,$t(t.p,P),gT(t,P),$t(t.o,A)):$t(t.o,0),Aj(t)}function Pp(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(Mk.call(this,t),this.f=P,this.g=A,this.i=c(Yt,re,17,A.length,0,2),this.d=c(Yt,re,17,A.length,0,2),this.e=c(Ut,T0,15,A.length,0,2),f=c(Yt,DA,38,A.length,0,3),i=0;i<A.length;i++)s=A[i].d,this.i[i]=TL(s,s.length),D=A[i].c,this.d[i]=TL(D,D.length),this.e[i]=c(Ut,Tt,6,this.i[i].length,15,1),f[i]=A[i].e;for(this.a=c(B,F,6,A.length,15,1),o=c(Pt,it,6,e.length,16,1),r=0;r<A.length;r++)l1t(this,A[r],r,o,n,f[r]);for(Q=0;Q<e.length;Q++)if(!o[Q])for(L=0;L<e[Q].c.length;L++)wD(this,e[Q].e[e[Q].c[L]],Z0(e[Q].b[n[Q]],e[Q].c[L]));this.c=new n1}function ry(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,h,T;for(r=c(B,D0,7,t.j.a.length,0,2),Q=0;Q<t.j.a.length;Q++)for(r[Q]=c(B,F,6,x(t.j,Q).length,15,1),o=0;o<x(t.j,Q).length;o++)r[Q][o]=-1;for(h=c(B,F,6,t.i.i,15,1),y=0;y<t.k.a.length;y++)if(l=x(t.k,y),l.length==3||l.length>=5&&l.length<=7)for(D=0;D<l.length;D++)f=l[D],N(t.i,q(t.i,0,f))==3&&N(t.i,q(t.i,1,f))==3&&(h[f]>0?(r[h[f]>>>16][h[f]&32767]=y,r[y][D]=h[f]>>>16):h[f]=(y<<16)+g8+D);for(i=c(Pt,it,6,t.j.a.length,16,1),T=0,L=-1;T>L;)for(L=T,s=0;s<t.j.a.length;s++)i[s]||P1t(t,s,r,i,e,A,n,P)&&(i[s]=!0,++T)}function wa(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C;if(A<2)return A;for(j=c(Pt,T0,12,A,0,2),l=1;l<A;l++)j[l]=c(Pt,it,6,l,16,1);for(i=Qn(t.V,24*t.ab),P=1;P<t.V.r;P++)for(r=0;r<P;r++)D=mt(t.V,r)-mt(t.V,P),Q=Rt(t.V,r)-Rt(t.V,P),f=w.Math.sqrt(D*D+Q*Q),f<wo*i&&(L=e[P],s=e[r],L!=s&&(L>s?j[L][s]=!0:j[s][L]=!0));for(C=c(B,F,6,A,15,1),o=0;o<A;o++)C[o]=o;for(b=0,y=1;y<A;y++)for(g=0;g<y;g++)if(j[y][g]&&(h=C[y],T=C[g],h!=T))for(++b,R=w.Math.min(h,T),d=w.Math.max(h,T),v=0;v<A;v++)C[v]==d?C[v]=R:C[v]>d&&--C[v];for(n=0;n<t.V.r;n++)e[n]=C[e[n]];return A-b}function _Q(t,e,A){var n,P,r,i,f,D,Q,o,L;return t==null?null:(D=t,o=null,Q=null,L=null,f=null,n=t.indexOf(R0(35)),n==-1?D=t:(D=(Mt(0,n,t.length),t.substr(0,n)),P=t.indexOf(R0(35),n+1),P==-1?o=(zt(n+1,t.length+1),t.substr(n+1)):(o=(Mt(n+1,P,t.length),t.substr(n+1,P-(n+1))),r=t.indexOf(R0(35),P+1),r==-1?Q=(zt(P+1,t.length+1),t.substr(P+1)):(Q=(Mt(P+1,r,t.length),t.substr(P+1,r-(P+1))),i=t.indexOf(R0(35),r+1),i==-1?L=(zt(r+1,t.length+1),t.substr(r+1)):(L=(Mt(r+1,i,t.length),t.substr(r+1,i-(r+1))),f=(zt(i+1,t.length+1),t.substr(i+1)))))),Op(D,o,Q,L,f,e,A))}function L6(t,e,A,n,P,r,i,f){var D,Q,o,L,s,y,l,h,T,g;for(e!=n&&(T=t.K[e].a-t.K[n].a,g=t.K[e].b-t.K[n].b,f=w.Math.sqrt(T*T+g*g)),D=e,o=DQ(t,e)!=3,h=1;h<A;h++){for(s=t.K[D].a+f*w.Math.sin(r),y=t.K[D].b+f*w.Math.cos(r),l=-1,L=0;L<t.r;L++)if(w.Math.abs(s-t.K[L].a)<4&&w.Math.abs(y-t.K[L].b)<4){l=L;break}l==-1&&(l=a0(t,s,y,0),t.K[l].a=s,t.K[l].b=y,t.K[l].c=0),Q=km(t,D,l),Q==-1&&(Q=K0(t,D,l,ee(t,D)||ee(t,l)?16:1),P&&(o&&DQ(t,t.F[0][Q])<4&&DQ(t,t.F[1][Q])<3&&(t.I[Q]=2),o=!o)),D=l,r+=i}Q=km(t,D,n),Q==-1&&(Q=K0(t,D,n,ee(t,D)||ee(t,n)?16:1)),P&&o&&DQ(t,t.F[0][Q])<4&&DQ(t,t.F[1][Q])<4&&(t.I[Q]=2)}function rp(t){var e,A,n,P,r,i,f,D,Q,o;Om();var L,s;for(ut(t,7),this.a=c(Oe,uA,6,t.s,15,1),this.b=c(Oe,uA,6,t.s,15,1),L=0;L<t.s;L++)s=(e=t.F[0][L],A=t.F[1][L],n=t.D[e],P=t.D[A],r=t.k[e],i=t.k[A],xJ(dt(t,L),L<t.i&&Ee(t.q,L),L<t.i&&(q8(t.q,L)||t.I[L]==8),n,P,fk(t,e),fk(t,A),r,i,!1)),s==-1?(this.a[L]=(f=J(t,t.F[0][L]),D=J(t,t.F[1][L]),(f<(k2(),Xf).length?Xf[f]:f<JA.length?ho*JA[f]:Gy)+(D<Xf.length?Xf[D]:D<JA.length?ho*JA[D]:Gy)),this.b[L]=(Q=J(t,t.F[0][L]),o=J(t,t.F[1][L]),(Q<Xf.length?o4:.125)+(o<Xf.length?o4:.125))):(this.a[L]=s==-1?2.000499963760376:a4[s],this.b[L]=s==-1?1:tc[s])}function iy(t,e,A,n){var P,r,i,f;TU(this),e?(n&ky)==0?W9(e,t.c,t.d)&&W9(e,t.c+t.b,t.d+t.a)||((t.b>e.b||t.a>e.a)&&(r=e.b/t.b,f=e.a/t.a,this.c=w.Math.min(r,f)),t.c*this.c<e.c?this.a=e.c-t.c*this.c:(t.c+t.b)*this.c>e.c+e.b&&(this.a=e.c+e.b-(t.c+t.b)*this.c),t.d*this.c<e.d?this.b=e.d-t.d*this.c:(t.d+t.a)*this.c>e.d+e.a&&(this.b=e.d+e.a-(t.d+t.a)*this.c)):(r=e.b/t.b,f=e.a/t.a,i=n&d1,i==0?i=24:(n&O0)!=0&&(i/=256),P=i/A,this.c=w.Math.min(P,w.Math.min(r,f)),this.a=e.c+e.b/2-this.c*(t.c+t.b/2),this.b=e.d+e.a/2-this.c*(t.d+t.a/2)):(n&Q0)!=0&&(i=(n&d1)!=0?n&d1:24,this.c=i/A)}function s6(t,e){var A,n,P,r,i,f,D,Q,o,L,s;if(L=I2,e!=-1){for(A=c(Ut,Tt,6,9,15,1),i=0;i<Ue(t.V,e);i++)A[i]=_0(t.V,e,Z(t.V,e,i));if(Ue(t.V,e)==1)A[0]<-2.6179938779914944?L=fA:A[0]<Qo?L=I2:A[0]<F4?L=fA:A[0]<0?L=I2:A[0]<C2?L=K6:A[0]<HA?L=go:A[0]<2.6179938779914944?L=K6:L=go;else{for(f=Ue(t.V,e)-1;f>0;f--)for(D=0;D<f;D++)A[D]>A[D+1]&&(s=A[D],A[D]=A[D+1],A[D+1]=s);for(A[Ue(t.V,e)]=A[0]+k0,o=0,Q=0,r=0;r<Ue(t.V,e);r++)n=A[r+1]-A[r],Q<n&&(Q=n,o=r);L=(A[o]+A[o+1])/2}}P=Qn(t.V,24*t.ab),t.ib=(e==-1?t.hb:mt(t.V,e))+P*w.Math.sin(L),t.lb=(e==-1?t.kb:Rt(t.V,e))+P*w.Math.cos(L)}function ga(t,e){var A,n,P,r,i,f,D,Q,o;for(si(t),Q=new SA(t.R.g,t.R.i),Be(Q,t.R.L),i=0;i<t.R.g;i++)Gn(t.R,Q,t.B[i],0,0),Ne(Q,i,t.bb[t.B[i]],t.ab[t.B[i]]);for(f=0;f<t.R.i;f++)TQ(t.R,Q,t.C[f],0,0,t.H,!1),!(Q.I[f]==257||Q.I[f]==129)&&Q.F[0][f]>Q.F[1][f]&&(o=Q.F[0][f],mD(Q,0,f,Q.F[1][f]),Q.F[1][f]=o,Q.U=0),T8(Q,f,t.n[t.C[f]],t.k[t.C[f]]);if(e)for(r=0;r<t.R.g;r++)for(A=t.B[r],D=N(t.R,A);D<Ct(t.R,A);D++)P=Gn(t.R,Q,Z(t.R,A,D),0,0),o9(t.R,Q,Nt(t.R,A,D),0,0,t.H[A],P,!1);for(n=0;n<Q.s;n++)A=Q.F[0][n],t.eb[t.B[A]]&&(Q.I[n]==257?(Q.I[n]=129,Q.U=0):Q.I[n]==129&&(Q.I[n]=257,Q.U=0));return SU(t.R,Q),Q.U&=-9,Q}function $Q(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,h;if(Q=c(B,F,6,2,15,1),D=c(Ut,Tt,6,2,15,1),Q[0]=t.F[0][e],Q[1]=t.F[1][e],G1(t,Q[0])>3||G1(t,Q[1])>3)return!1;for(i=0,r=c(Ut,Tt,6,4,15,1),s=0;s<t.s;s++)if(s!=e){for(y=0;y<2;y++){for(l=0;l<2;l++)if(t.F[y][s]==Q[l]){if(i==4){i=5;break}r[i++]=_0(t,Q[l],t.F[1-y][s])}if(i==5)break}if(i==5)break}if(i==5)return!1;for(D[0]=_0(t,Q[0],Q[1]),D[0]<0?(D[1]=D[0]+l1,f=0):(D[1]=D[0],D[0]=D[1]-l1,f=1),h=0,L=0;L<i;L++)r[L]>D[0]&&r[L]<D[1]?--h:++h;return f=h>0?1-f:f,o=l1*(A-2)/A,L6(t,Q[f],A-1,Q[1-f],n,D[h>0?0:1]+l1-o,l1-o,P),t.U=0,!0}function y6(t,e){var A;Jt(e,137)?a$(t,e):Jt(e,159)&&(A=e.b,e.j==1&&(A==-9&&t.b>=17?j0(t,t.b-17):A==-10&&t.b<17?j0(t,t.b+17):A==-11&&t.b%17>0?j0(t,t.b-1):A==-12&&t.b%17<16?j0(t,t.b+1):A==122?j0(t,18):A==32?j0(t,2):A==48?j0(t,4):A==116?j0(t,21):A==49?j0(t,5):A==50?j0(t,22):A==109?j0(t,19):A==51?j0(t,7):A==52?j0(t,24):A==53?j0(t,8):A==54?j0(t,25):A==55?j0(t,9):A==97?j0(t,26):A==45?j0(t,27):A==43?j0(t,10):A==117?j0(t,6):A==100?j0(t,23):A==99?j0(t,11):A==110?j0(t,12):A==112?j0(t,29):A==111?j0(t,13):A==115?j0(t,30):A==102?j0(t,14):A==108?j0(t,31):A==98?j0(t,15):A==105?j0(t,32):A==104?j0(t,16):A==46&&j0(t,33)))}function $1(t,e){if(!t.K&&(e==-10&&(t.C=-999,e=t.Q),e!=-2&&e!=-7&&t.N!=0&&(e=-4),e!=t.C&&!(t.C==-8&&e!=-9)))switch(e==-8&&(t.O=t.C),e==-9&&(e=t.O),t.C=e,e){case 0:t.Bb(t.F==0?qn:t.F);break;case-6:t.Bb(t.F);break;case-4:t.Bb(t.N);break;case-2:t.Bb(t.t);break;case-3:t.Bb(t.u);break;case-7:t.Bb(t.H);break;case-8:t.Bb(t.I);break;case-5:t.Bb(t.P);break;case 64:t.Bb(-14655233);break;case 128:t.Bb(GP);break;case 256:t.Bb(-4194049);break;case 192:t.Bb(-16711936);break;case 320:t.Bb(-24576);break;case 384:t.Bb(-16744448);break;case 448:t.Bb(-6291456);break;case 1:t.Bb(Ty);break;default:t.Bb(qn)}}function da(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(o=new gh,L=0;L<t.i.g;L++)if(t0(t.i,L)<2||N(t.i,L)>2)for(i=1;i<N(t.i,L);i++)for(e=Z(t.i,L,i),f=0;f<i;f++)A=Z(t.i,L,f),Py(t,e,A)&&(D=_p(t,e,A),D&&OF(D,t.f)&&We(o.a,D,(Er(),Ro))==null);for(s=0;s<t.i.i;s++)t.c[s]!=0&&(dt(t.i,s)!=2||t.c[s]!=2)||(e=q(t.i,0,s),A=q(t.i,1,s),Py(t,e,A)&&(D=_p(t,e,A),D&&OF(D,t.f)&&We(o.a,D,(Er(),Ro))==null));for(t.g=c(B,D0,7,o.a.c,0,2),t.e=c(Pt,it,6,t.i.g,16,1),r=0,Q=(P=new J8(new K8(new br(o.a).a).b),new jr(P));Nr(Q.a.a);)for(D=(n=H9(Q.a),n.hd()),t.g[r++]=D.b,i=0;i<D.b.length;i++)t.e[D.b[i]]=!0}function Ba(t,e){var A,n,P,r,i,f,D,Q,o,L,s;if(dt(t,e)!=1||e<t.i&&Ee(t.q,e)||(t.q&&e<t.i?TP(t.q,e):0)==3)return!1;for(A=c(B,F,6,2,15,1),f=0;f<2;f++)if(A[f]=t.F[f][e],(t.v[A[f]]&O0)!=0||n0(t,A[f])<=1)return!1;if(rL(t,A[0])||rL(t,A[1])){for(L=c(B,F,6,1,15,1),L[0]=e,n=c(B,D0,7,2,0,2),D=0;D<2;D++)if(rL(t,A[D])&&(n[D]=c(B,F,6,2,15,1),n[D][0]=A[1-D],n[D][1]=A[D],!O5(t,A[1-D],n[D],L)))return!1;if(e!=L[0])return!1;for(Q=0;Q<2;Q++)n[Q]!=null&&(A[Q]=n[Q][1])}for(i=0;i<2;i++){if(r=t.k[A[i]],r==1)return!1;for(s=0,o=0;o<r;o++)P=t.j[A[i]][o],(t.v[P]&O0)!=0||++s;if(s<2)return!1}return!0}function ip(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(D=c(B,F,6,32,15,1),Q=0,n=0;n<t.R.g;n++)(t._[n]==1||t._[n]==2)&&t.bb[n]==e&&(f=t.ab[n],D[f]<t.f[n]&&(D[f]==0&&++Q,D[f]=t.f[n]));for(r=0;r<t.R.i;r++)(t.j[r]==1||t.j[r]==2)&&t.n[r]==e&&c1(t.R,r)==1&&(f=t.k[r],l=w.Math.max(t.f[q(t.R,0,r)],t.f[q(t.R,1,r)]),D[f]<l&&(D[f]==0&&++Q,D[f]=l));for(i=c(_,At,6,32,15,1),o=0;o<Q;o++){for(s=-1,y=0,L=0;L<32;L++)y<D[L]&&(y=D[L],s=L);D[s]=0,i[s]=o<<24>>24}for(A=0;A<t.R.g;A++)(t._[A]==1||t._[A]==2)&&t.bb[A]==e&&(t.ab[A]=i[t.ab[A]]);for(P=0;P<t.R.i;P++)(t.j[P]==1||t.j[P]==2)&&t.n[P]==e&&c1(t.R,P)==1&&(t.k[P]=i[t.k[P]])}function va(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(ut(t.k,7),L=!1,s=c(B,F,6,2,15,1),y=c(B,F,6,2,15,1),o=c(B,F,6,2,15,1),n=0;n<t.k.i;n++)if(!A8(t.k,n)&&c1(t.k,n)==2){for(i=0;i<2;i++){for(s[i]=-1,o[i]=-1,e=q(t.k,i,n),Q=0;Q<N(t.k,e);Q++)P=Nt(t.k,e,Q),P!=n&&(s[i]==-1&&(c1(t.k,P)==257||c1(t.k,P)==129)?(s[i]=Z(t.k,e,Q),y[i]=P):o[i]=Z(t.k,e,Q));if(s[i]==-1)break}if(s[0]!=-1&&s[1]!=-1){for(D=c1(t.k,y[0])==c1(t.k,y[1]),f=0;f<2;f++)s[f]==q(t.k,0,y[f])&&(D=!D);for(r=0;r<2;r++)o[r]!=-1&&o[r]<s[r]&&(D=!D);Q8(t.k,n,D?2:1,!1),L=!0}}for(A=0;A<t.k.i;A++)(c1(t.k,A)==257||c1(t.k,A)==129)&&w0(t.k,A,1);return L}function fp(t){for(var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;;){for(v=0,y=0,T=null,g=null,i=1;i<t.d.a.length;i++)for(n=x(t.d,i),f=0;f<i;f++){for(P=x(t.d,f),e=0,A=0,l=0,h=0,o=0;o<n.e.length;o++)for(s=0;s<P.e.length;s++)n.e[o]==P.e[s]&&(++A,e=n.e[o],l<n.k[o]&&(l=n.k[o]),h<P.k[s]&&(h=P.k[s]));if(A>0&&(r=A==1&&ZL(t,n,e)==1&&ZL(t,P,e)==1?0:1,l>h?D=(r<<24)+(l<<16)+(h<<8)+A:D=(r<<24)+(h<<16)+(l<<8)+A,v<D)){for(v=D,y=A,l=0,h=0,L=0;L<n.e.length;L++)l<n.k[L]&&(l=n.k[L]);for(Q=0;Q<P.e.length;Q++)h<P.k[Q]&&(h=P.k[Q]);l>h?(T=n,g=P):(T=P,g=n)}}if(v==0)break;y==T.e.length?er(t.d,T):y==g.e.length?er(t.d,g):U_(t,T,g,y)}}function fy(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;if(t.d>1){for(Q=c(Ut,Tt,6,t.d,15,1),o=c(Ut,Tt,6,t.d,15,1),L=c(Ut,Tt,6,t.d,15,1),D=c(Ut,Tt,6,t.d,15,1),i=0;i<t.d;i++)L[i]=Jf,D[i]=-1e9;for(n=0;n<e.k.length;n++)Q[t.e[n]]+=e.k[n].a,o[t.e[n]]+=e.k[n].b,L[t.e[n]]>e.k[n].c&&(L[t.e[n]]=e.k[n].c),D[t.e[n]]<e.k[n].c&&(D[t.e[n]]=e.k[n].c);for(f=0;f<t.d;f++)Q[f]/=t.f[f],o[f]/=t.f[f];for(s=c(Ut,Tt,6,t.d,15,1),y=c(Ut,Tt,6,t.d,15,1),l=c(Ut,Tt,6,t.d,15,1),r=1;r<t.d;r++)s[r]=Q[0]-Q[r],y[r]=o[0]-o[r],l[r]=l[r-1]+D[r-1]-L[r]+3;for(A=0;A<e.k.length;A++)t.e[A]!=0&&(P=e.k[A],P.a+=s[t.e[A]],P.b+=y[t.e[A]],P.c+=l[t.e[A]])}}function Rf(t){var e,A,n,P,r,i,f,D;for(i=0;i<t.s;i++)t.I[i]==512&&(A=t.F[0][i],n=t.F[1][i],t.D[A]==-1^t.D[n]==-1&&t.t[A]!=0&&t.t[n]!=0&&t.t[A]<0^t.t[n]<0&&(t.t[A]<0?(++t.t[A],--t.t[n]):(--t.t[A],++t.t[n])));for(D=c(B,F,6,t.r,15,1),P=0,e=0;e<t.r;e++){if(t.D[e]==-1){D[e]=-1;continue}P<e&&(t.D[P]=t.D[e],t.t[P]=t.t[e],t.B[P]=t.B[e],t.v[P]=t.v[e],t.C[P]=t.C[e],t.A[P]=t.A[e],HD(t.K[P],t.K[e]),t.w!=null&&(t.w[P]=t.w[e]),t.u!=null&&(t.u[P]=t.u[e])),D[e]=P,++P}for(t.r=P,f=0,r=0;r<t.s;r++)t.I[r]!=512&&(t.I[f]=t.I[r],t.G[f]=t.G[r],t.H[f]=t.H[r],t.F[0][f]=D[t.F[0][r]],t.F[1][f]=D[t.F[1][r]],++f);return t.s=f,D}function xt(t,e){var A,n,P,r,i,f,D,Q;if(t.L&&A0(V(t.C[e],q1),0)||!Ds(t,e))return 0;if(ut(t,1),t.L){if(gt(V(t.C[e],1),0)||t.w!=null&&t.w[e]!=null&&t.w[e].length>1)return 0;for(P=0;P<t.e[e];P++)if(rr(t.H[t.n[e][P]]&127)>1)return 0}if(t.D[e]==0||e1(\"*\",t.u==null||t.u[e]==null?null:on((i=t.u[e],c0(),i))))return t.e[e]==0?1:0;for(D=0,r=0;r<t.e[e];r++)(!t.L||A0(V(t.C[t.j[e][r]],ne),0))&&(D+=t.o[e][r]);if(t.L){for(A=1,n=0;n<t.k[e];n++)t.I[t.n[e][n]]==8&&++A;D+=A>>1}if(D-=An(t,e,D,t.D[e]),f=((t.v[e]&m8)>>>27)-1,f==-1)for(Q=nQ(t.D[e]),f=Q[0],n=1;f<D&&n<Q.length;n++)f=Q[n];return w.Math.max(0,f-D)}function Dp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d;for(P=c(Ut,Tt,6,Ct(t.f,A)+1,15,1),i=c(B,F,6,Ct(t.f,A)+1,15,1),f=c(B,F,6,Ct(t.f,A)+1,15,1),T=L8(e,A),r=0,Q=0;Q<Ct(t.f,A);Q++)i[r]=Z(t.f,A,Q),f[r]=Nt(t.f,A,Q),L=L8(e,i[r]),L!=-1&&(P[r++]=hn(e.a[T],e.b[T],e.a[L],e.b[L]));if(r==1)return P[0]+l1;for(o=r-1;o>0;o--)for(s=0;s<o;s++)P[s]>P[s+1]&&(g=P[s],P[s]=P[s+1],P[s+1]=g,v=i[s],i[s]=i[s+1],i[s+1]=v,d=f[s],f[s]=f[s+1],f[s+1]=d);for(P[r]=P[0]+k0,i[r]=i[0],f[r]=f[0],y=-100,l=0,D=0;D<r;D++)n=P[D+1]-P[D],r>2&&LA(t.f,f[D])&&LA(t.f,f[D+1])&&(h=IZ(t,i[D],A,i[D+1]),h!=0&&(n-=100-h)),y<n&&(y=n,l=D);return(P[l]+P[l+1])/2}function Fa(t){var e,A,n;for(e=0;e<t.R.g;e++)t.db[e]==3&&!E9(t.R,e)&&hP(t.R,e),(fe(t.R,e)==1||fe(t.R,e)==2)&&t.db[e]==3&&hP(t.R,e),E9(t.R,e)&&t.db[e]!=3&&!nK(t,e)&&hP(t.R,e);for(n=0;n<t.R.s;n++)q9(t.R,n)&&!LW(t,n)&&hP(t.R,q(t.R,0,n));for(A=0;A<t.R.i;A++)dt(t.R,A)==2&&(Zh(t.R,A)&&(t.o[A]==1||t.o[A]==2)&&(t.o[A]=3,w0(t.R,A,386)),t.o[A]==3&&!t.p[A]&&c1(t.R,A)!=386&&(hP(t.R,q(t.R,0,A)),hP(t.R,q(t.R,1,A)))),c1(t.R,A)==1&&t.o[A]==3&&!E9(t.R,q(t.R,0,A))&&!E9(t.R,q(t.R,1,A))&&(hP(t.R,q(t.R,0,A)),hP(t.R,q(t.R,1,A))),(gP(t.R,A)==1||gP(t.R,A)==2)&&(c1(t.R,A)!=1||t.o[A]!=1&&t.o[A]!=2)&&(hP(t.R,q(t.R,0,A)),hP(t.R,q(t.R,1,A)))}function ka(t){var e,A,n,P,r,i,f,D,Q;for(A=0;A<t.R.g;A++)AA(t.e[A],A),a1(t.e[A],2*t.c+4,Wt(t.f[A],t.c+4));for(D=1;D<=t.U;D++){for(P=!1,n=0;n<t.R.g;n++)t.f[n]==D&&(P=P|oy(t,n,2));if(P){if(f=t.U,t.U=tP(t),t.U!=f)return!0;for(e=0;e<t.R.g;e++)AA(t.e[e],e),a1(t.e[e],2*t.c+4,Wt(t.f[e],t.c+4))}}for(Q=c(S1t,H2,175,t.R.i,0,1),i=0;i<Q.length;i++)Q[i]=new oF(t.f[q(t.R,0,i)],t.f[q(t.R,1,i)],i);for(ai(Q,0,Q.length,null),r=0;r<Q.length;r++)if(aQ(t,Q[r].a,2)){for(;r+1<Q.length&&xF(Q[r],Q[r+1])==0;)aQ(t,Q[++r].a,2);if(f=t.U,t.U=tP(t),t.U!=f)return!0;for(e=0;e<t.R.g;e++)AA(t.e[e],e),a1(t.e[e],2*t.c+4,Wt(t.f[e],t.c+4))}return!1}function ma(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b;for(L=t.e[e]-A,b=-1,v=NaN,l=0;l<L;l++)if(_9(t,t.n[e][l],e)){b=l,v=_0(t,e,t.j[e][l]);break}if(d=b==-1?0:1,i=null,d<L){for(i=c(Ut,Tt,6,L-d,15,1),Q=0,h=0;h<L;h++)h!=b&&(i[Q++]=_0(t,e,t.j[e][h]));i.sort(pe(ki.prototype.ld,ki,[]))}if(f=k0/w.Math.max(A,3),g=0,i!=null)if(i.length==1&&A==1)g=i[0];else{for(D=0,h=0;h<i.length;h++)P=h==0?i[i.length-1]-k0:i[h-1],r=i[h],D<r-P&&(D=r-P,g=P);f=D/(A+1)}for(y=0;y<A;y++)g+=f,s=g,d!=0&&(o=Ze(s,v),w.Math.abs(o)<f/2&&(o<0?s=v-f/2:s=v+f/2)),T=t.j[e][L+y],ge(t,T,t.K[e].a+n*w.Math.sin(s)),Ve(t,T,t.K[e].b+n*w.Math.cos(s))}function up(t){var e,A;if(t.L)for(ut(t,7),e=0;e<t.g;e++)(t.v[e]&gn)!=0&&(A0(V(t.C[e],120),8)&&(t.C[e]=V(t.C[e],-9)),t.C[e]=V(t.C[e],-4294967297)),e<t.g&&i0(t.q,e)?t.C[e]=V(t.C[e],{l:4194297,m:q0,h:1048571}):gt(V(t.C[e],2),0)&&(t.C[e]=V(t.C[e],-5)),(gt(V(t.C[e],lr),0)||gt(V(t.C[e],l9),0)&&A0(V(t.C[e],w8),0))&&A0(V(t.C[e],120),8)&&(t.C[e]=V(t.C[e],-9)),t.t[e]!=0&&(t.C[e]=V(t.C[e],-234881025)),G1(t,e)==(A=Sn(t,e),A+An(t,e,A,t.D[e]))&&(t.C[e]=V(t.C[e],-4063233),t.C[e]=V(t.C[e],-0xf8000000001),t.C[e]=V(t.C[e],-1921),t.C[e]=V(t.C[e],-114689)),gt(V(t.C[e],ne),0)&&t.A[e]!=0&&fQ(t,t.A[e])}function Qp(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(ut(t,7),D=new SA(t.g,t.i),f=j1(_,[_y,v9],[65,11],0,[t.g,8],2),n=c(B,F,6,t.g,15,1),P=c(Pt,it,6,t.g,16,1),r=c(Pt,it,6,t.i,16,1),h=0;h<t.g;h++){for(h!=0&&(xu(P,P.length),xu(r,r.length)),f[h][0]=c(_,At,6,2,15,1),f[h][0][0]=t.D[h]<<24>>24,f[h][0][1]=t.B[h]<<24>>24,n[0]=h,P[h]=!0,y=0,s=1,t.v[h]|=512,T=1;T<=7&&s<t.g;T++){for(l=s,Q=y;Q<s;Q++)for(A=n[Q],o=0;o<t.k[A];o++)i=t.j[A][o],P[i]||(P[i]=!0,n[l++]=i),r[t.n[A][o]]=!0;if(l==s)break;for(y=s,s=l,wp(t,D,r,!0,null),e=0;e<D.r;e++)D.t[e]=0,D.U=0,Je(D,e,0);f[h][T]=ln((L=Me(new qA(D,16)),c0(),L))}t.v[h]&=-513}return f}function ba(t){var e,A,n,P,r,i,f,D,Q;for(f=null,D=k1(Ki(t.D));D.length!=0;){if(A=D.indexOf(R0(44)),A==-1?(i=k1(D),D=\"\"):(i=k1((Mt(0,A,D.length),D.substr(0,A))),D=k1((zt(A+1,D.length+1),D.substr(A+1)))),e1(i,\"X\")){D.length!=0&&(D=\",\"),D=(y1(D),D+(y1(\"F,Cl,Br,I\"),\"F,Cl,Br,I\"));continue}if(e=(O1(),zA(i,321)),e!=0)if(e==1)ED(t.v,\"'H' cannot be part of an atom list and is removed.\");else if(f==null)f=c(B,F,6,1,15,1),f[0]=e;else{for(n=!1,r=0;r<f.length;r++)if(e==f[r]){n=!0;break}if(!n){for(Q=c(B,F,6,f.length+1,15,1),P=0;P<f.length;P++)Q[P]=f[P];Q[f.length]=e,f=Q}}}return f?.sort(pe(u0.prototype.ld,u0,[])),f}function F2(t,e,A){var n,P,r,i,f,D,Q,o,L;for(r=0,Q=0;Q<A;){if(++r,P=t[e+Q],(P&192)==128)throw et(new ZP(O4));if((P&128)==0)++Q;else if((P&224)==192)Q+=2;else if((P&240)==224)Q+=3;else if((P&248)==240)Q+=4;else throw et(new ZP(O4));if(Q>A)throw et(new XP(O4))}for(i=c(Fr,Pe,6,r,15,1),L=0,f=0,D=0;D<A;){for(P=t[e+D++],(P&128)==0?(f=1,P&=127):(P&224)==192?(f=2,P&=31):(P&240)==224?(f=3,P&=15):(P&248)==240?(f=4,P&=7):(P&252)==248&&(f=5,P&=3);--f>0;){if(n=t[e+D++],(n&192)!=128)throw et(new ZP(\"Invalid UTF8 sequence at \"+(e+D-1)+\", byte=\"+(o=n>>>0,o.toString(16))));P=P<<6|n&63}L+=MJ(P,i,L)}return i}function op(t){var e,A,n,P,r,i,f,D,Q,o;for(e=null,Q=null,i=0;i<t.f.i;i++)if(c1(t.f,i)==16){for(A=q(t.f,0,i),P=-1,f=0;f<t.d.a.length&&(P=L8(x(t.d,f),A),P==-1);f++);for(n=q(t.f,1,i),r=-1,D=0;D<t.d.a.length&&(r=L8(x(t.d,D),n),r==-1);D++);f!=D&&(f>D&&(o=f,f=D,D=o,o=P,P=r,r=o),Q==null&&(Q=c(mE,DA,473,t.d.a.length,0,2)),Q[D]==null&&(Q[D]=c(mE,{473:1,4:1,5:1,8:1},106,D,0,1)),Q[D][f]?(Q[D][f].c[0]+=Uu(Q[D][f].b[0],P),Q[D][f].d[0]+=Lu(Q[D][f].b[0],P),Q[D][f].c[1]+=Uu(Q[D][f].b[1],r),Q[D][f].d[1]+=Lu(Q[D][f].b[1],r),++Q[D][f].a[0],++Q[D][f].a[1]):(Q[D][f]=new qQ(x(t.d,f),x(t.d,D),P,r),!e&&(e=new n1),e.a.push(Q[D][f])))}return e}function ja(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(v=c(B,F,6,t.j.i,15,1),h=0;h<e.j.a.length;h++){for(g=x(e.k,h),L=!0,D=0;D<g.length;D++)if(!t.e[g[D]]){L=!1;break}if(L)for(f=0;f<g.length;f++)++v[g[f]]}for(P=t.c,l=0;l<e.j.a.length;l++)for(i=!1,T=x(e.j,l),g=x(e.k,l),f=0;f<g.length&&!i;f++)if(v[g[f]]>1&&(r=Nh(f,g.length),v[g[r]]==1)){for(Q=!1,y=Nh(r,g.length);v[g[y]]==1;)(!cf(t,T[y],!1)||g.length!=6&&J(t.j,T[y])!=6)&&(Q=!0),y=Nh(y,g.length);if(!Q&&(n=y>r?y-r:y+g.length-r,n>2&&(n&1)==1)){for(s=1;s<n;s+=2)o=r+s<g.length?r+s:r+s-g.length,A&&(cf(t,T[o],!0),cf(t,T[o==T.length-1?0:o+1],!0)),u2(t,g[o]);i=!0}}return P!=t.c}function Ra(t,e){var A,n,P,r,i,f,D,Q,o;return t==null?null:(f=t,Q=null,D=null,o=null,i=null,A=t.indexOf(R0(35)),A==-1?f=t:(f=(Mt(0,A,t.length),t.substr(0,A)),n=t.indexOf(R0(35),A+1),n==-1?Q=(zt(A+1,t.length+1),t.substr(A+1)):(Q=(Mt(A+1,n,t.length),t.substr(A+1,n-(A+1))),P=t.indexOf(R0(35),n+1),P==-1?D=(zt(n+1,t.length+1),t.substr(n+1)):(D=(Mt(n+1,P,t.length),t.substr(n+1,P-(n+1))),r=t.indexOf(R0(35),P+1),r==-1?o=(zt(P+1,t.length+1),t.substr(P+1)):(o=(Mt(P+1,r,t.length),t.substr(P+1,r-(P+1))),i=(zt(r+1,t.length+1),t.substr(r+1)))))),Op(f,(e&1)!=0?Q:null,(e&2)!=0?D:null,(e&4)!=0?o:null,(e&8)!=0?i:null,!1,null))}function Up(t){var e,A,n,P,r,i,f,D,Q;GA(t.o,t.k),Be(t.d,!0),MA(t.o,t.d);try{if(CA(t.o,4,4)>0&&(t.n=t.d,D=new Wu(t.g),D.a.length!=0))return n=(te(0,D.a.length),D.a[0]),aN(n,n.a.length*32),n.a.length==1?n.b=n.a[0]:n.b=Mu(n.a),i=new n1,i.a.push(n),i}catch(o){if(o=_1(o),Jt(o,19))e=o,ur(e,(z1(),k9),\"\");else throw et(o)}for(Q=0;aP(t.g.a)!=0;)if(D=new Wu(t.g),kD(D,t.a),n=x(D,D.a.length-1),r3(t.g,n),A=Hs(t.d,n),MA(t.o,A),CA(t.o,4,8)>0){if(xA(t.j,n),Oz(t,n),PT(n)!=t.d.i)for(f=AW(t,n,t.d),r=new Zt(f);r.a<r.c.a.length;)P=_t(r),!du(t.i,P)&&!du(t.j,P)&&xA(t.g,P);Q<aP(t.g.a)&&(Q=aP(t.g.a))}else xA(t.i,n);return aP(t.j.a)==0?null:XX(t.j)}function Lp(t,e,A){var n,P,r,i,f,D,Q;if(e&&e.g&&++t.B,e&&t.r>e.b&&(t.r=e.b),t.F)return Pm(t);if(t.D.d.a.length==t.s)return null;if(e&&e.b>3){if(n=A?Pr(t.i,e.d):null,i=A?n.c:null,r=A?i.a.length:0,$W(t,e),A)for(f=r;f<i.a.length;f++)WI(de(A.a,P3(e.c)),x_(t.C,(te(f,i.a.length),i.a[f]),n));e.g||(e.b<6?tr(t.w,e):(!t.e||t.e.b>e.b)&&(t.e=e)),++t.g}for(D=t.r+3,Q=Bk(t,D,e);Q&&(P=eK(Q,Pr(t.i,Q.d).c),!(P<D));){if(P<6&&tr(t.A,new Ng(Q,P)),++t.g,sm(t.D,Q),t.D.d.a.length==t.s)return null;D=t.r+3,Q=Bk(t,D,Q)}if(!Q){if(t.w.d.a.length!=0){for(t.F=!0;t.w.d.a.length!=0&&I9(t.w,t.w.d.a.length-1).b>t.r+3;)QU(t.w,t.w.d.a.length-1);Q=Pm(t)}return Q}return sm(t.D,Q),Q}function pa(t,e){var A,n,P,r,i,f,D,Q;A=(Q=t.n.Cc(),Q.getBackgroundRGB()),P=(ni(),(YA[0]*((A&QP)>>16)+YA[1]*((A&DP)>>8)+YA[2]*(A&255))/255<.5),n=P?S5(A,Hf):A&qn|Bt(w.Math.round(ho*((A&QP)>>16)))<<16|Bt(w.Math.round(ho*((A&DP)>>8)))<<8|Bt(w.Math.round(ho*(A&255))),i=P?S5(A,.5):A&qn|Bt(w.Math.round(zf*((A&QP)>>16)))<<16|Bt(w.Math.round(zf*((A&DP)>>8)))<<8|Bt(w.Math.round(zf*(A&255))),D=_U(t.i),f=aU(t.i),rs(e,t.i,0,0,D,f,p8,p8,D/t.j,f/t.j),r=IF(20),rs(e,t.c,0,t.d*84,84,84,r[0],r[1],vn,vn),(t.a.U&4)==0&&HQ(t,e,19,-1,!0),(t.a.U&8)==0&&HQ(t,e,21,-1,!0),HQ(t,e,t.b,i,!1),t.f!=-1&&t.f!=t.k&&HQ(t,e,t.f,n,!1),t.k!=-1&&HQ(t,e,t.k,7167924,!1)}function sp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y;if(!t.b)return!1;for(i=null,s=null,D=new xL(null,null),P=1,D.a[1]=t.b,L=D;L.a[P];)Q=P,f=s,s=L,L=L.a[P],n=t.a.Rb(e,L.c),P=n<0?0:1,n==0&&(!A.c||$8(L.d,A.d))&&(i=L),!(L&&L.b)&&!WP(L.a[P])&&(WP(L.a[1-P])?s=s.a[Q]=rQ(L,P):WP(L.a[1-P])||(y=s.a[1-Q],y&&(!WP(y.a[1-Q])&&!WP(y.a[Q])?(s.b=!1,y.b=!0,L.b=!0):(r=f.a[1]==s?1:0,WP(y.a[Q])?f.a[r]=Fv(s,Q):WP(y.a[1-Q])&&(f.a[r]=rQ(s,Q)),L.b=f.a[r].b=!0,f.a[r].a[0].b=!1,f.a[r].a[1].b=!1))));return i&&(A.b=!0,A.d=i.d,L!=i&&(o=new xL(L.c,L.d),ZY(t,D,i,o),s==i&&(s=o)),s.a[s.a[1]==L?1:0]=L.a[L.a[0]?0:1],--t.c),t.b=D.a[1],t.b&&(t.b.b=!1),A.b}function l6(t,e,A){Hi();var n,P,r,i,f;s_.call(this,t),this.a=new n1,this.b=new zR(t),ut(this.g,7),f=Ku(gl,e),r=r8(A.c,pC)?hD(A.c.a.get(pC)):100,n=r8(A.c,MC)?hD(A.c.a.get(MC)):1,P=r8(A.c,CC)&&SP(A.c.a.get(CC),\"distance\"),i=new rR(this.b),(!r8(A.c,HC)||pi(A.c.a.get(HC)))&&MP(this.a,RY(f,this.b)),(!r8(A.c,VC)||pi(A.c.a.get(VC)))&&MP(this.a,fq(f,this.b)),(!r8(A.c,EC)||pi(A.c.a.get(EC)))&&MP(this.a,FZ(f,this.b,i,r,P,n)),(!r8(A.c,SC)||pi(A.c.a.get(SC)))&&MP(this.a,hX(f,this.b)),(!r8(A.c,IC)||pi(A.c.a.get(IC)))&&MP(this.a,kW(f,this.b)),(!r8(A.c,xC)||pi(A.c.a.get(xC)))&&MP(this.a,t_(f,this.b)),(!r8(A.c,NC)||pi(A.c.a.get(NC)))&&MP(this.a,VX(f,this.b,i,r))}function Ma(t){var e,A,n,P,r;for(r=t.U,P=Cn(t.f,t.R.g),t.R.L||(GW(t),cm(t,r,P)),t.bb=c(_,At,6,t.R.g,15,1),t.ab=c(_,At,6,t.R.g,15,1),A=0;A<t.R.g;A++)t.bb[A]=fe(t.R,A)<<24>>24,t.ab[A]=OA(t.R,A)<<24>>24;for(t.n=c(_,At,6,t.R.i,15,1),t.k=c(_,At,6,t.R.i,15,1),n=0;n<t.R.i;n++)t.n[n]=gP(t.R,n)<<24>>24,t.k[n]=ef(t.R,n)<<24>>24;for(e$(t),t.Z=!1,t.M=c(Pt,it,6,t.R.g,16,1),e=0;e<t.R.g;e++)t.db[e]!=0&&(t.M[e]=!0,t.Z=!0);jJ(t),t.P=null,t.cb=c(Pt,it,6,t.R.g,16,1),t.Z&&(t.P=new gm(t.R,P,t.M,t.db,t.o,t.bb,t.ab,t.ib,t.q,t.cb),J$(t.P)),t.eb=c(Pt,it,6,t.R.g,16,1),t.gb=c(Pt,it,6,t.R.g,16,1),t.hb=new n1,t.P&&h2(t.P,t.f),b$(t),cm(t,r,P),ta(t),t.P&&(t.K=Lz(t.P)),gtt(t)}function Ca(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(D=new Zt(t.d);D.a<D.c.a.length;)for(f=_t(D),Q=0;Q<f.f.length;Q++)if(n=f.f[Q],dt(t.f,n)==2&&(!A8(t.f,n)&&(ze(t.f,n)==3||ze(t.f,n)==0)&&hh(t.f,n),!LA(t.f,n)&&N(t.f,q(t.f,0,n))>1&&N(t.f,q(t.f,1,n))>1&&(ze(t.f,n)==1||ze(t.f,n)==2))){for(s=c(B,F,6,2,15,1),P=c(B,F,6,2,15,1),o=0;o<2;o++)for(s[o]=t.f.N,P[o]=q(t.f,o,n),L=0;L<Ct(t.f,P[o]);L++)r=Z(t.f,P[o],L),r!=q(t.f,1-o,n)&&s[o]>r&&(s[o]=r);i=hn(f.a[f.g[P[0]]],f.b[f.g[P[0]]],f.a[f.g[P[1]]],f.b[f.g[P[1]]]),e=hn(f.a[f.g[s[0]]],f.b[f.g[s[0]]],f.a[f.g[P[0]]],f.b[f.g[P[0]]]),A=hn(f.a[f.g[P[1]]],f.b[f.g[P[1]]],f.a[f.g[s[1]]],f.b[f.g[s[1]]]),EL(i,e)<0^EL(i,A)<0^ze(t.f,n)==2&&Vp(f,n)}}function Ha(t,e,A){var n,P,r,i,f,D,Q,o,L;return r=fR(t,e),i=r[0],D=r[1],D.e==0?new ID(i,2):(Q=t.e*e.e,IT(e)<54?(f=(L=D.d>1?Xr(D.a[0],D.a[1]):Xr(D.a[0],0),D.e>0?L:V0(L)),P=(o=e.d>1?Xr(e.a[0],e.a[1]):Xr(e.a[0],0),e.e>0?o:V0(o)),n=Si(Wt(O(f,0)<0?V0(f):f,1),O(P,0)<0?V0(P):P)?-1:I1(Wt(O(f,0)<0?V0(f):f,1),O(P,0)<0?V0(P):P)?1:0,n=KQ(IQ(i,0)?1:0,Q*(5+n),A)):(n=ys(_k(D.e<0?D.e==0?D:new ye(-D.e,D.d,D.a):D),e.e<0?e.e==0?e:new ye(-e.e,e.d,e.a):e),n=KQ(IQ(i,0)?1:0,Q*(5+n),A)),n!=0?IT(i)<54?Pq((o=i.d>1?Xr(i.a[0],i.a[1]):Xr(i.a[0],0),at(i.e>0?o:V0(o),n))):(i=v2(i,(Ce(),O(n,0)>=0?me(n):mP(me(V0(n))))),new ID(i,2)):new ID(i,2))}function yp(t){var e,A,n,P,r,i,f,D,Q;switch(e=null,t.e){case 1:for(e=c(Yt,t1,6,2*t.a.length,15,1),n=0;n<t.a.length;n++)e[n]=t.a[n],e[t.a.length+n]=180+t.a[n]<<16>>16;return e;case 2:for(P=t.a[0]==0?1:0,r=t.a[t.a.length-1]==180?t.a.length-1:t.a.length,Q=r-P,e=c(Yt,t1,6,t.a.length+Q,15,1),i=0;i<t.a.length;i++)e[i]=t.a[i];for(f=P;f<r;f++)e[e.length-1-f+P]=360-t.a[f]<<16>>16;return e;case 3:for(P=t.a[0]==0?1:0,r=t.a[t.a.length-1]==90?t.a.length-1:t.a.length,Q=r-P,e=c(Yt,t1,6,2*t.a.length+2*Q,15,1),D=0;D<t.a.length;D++)e[D]=t.a[D],e[t.a.length+Q+D]=180+t.a[D]<<16>>16;for(A=P;A<r;A++)e[t.a.length+Q-1-A+P]=180-t.a[A]<<16>>16,e[e.length-1-A+P]=360-t.a[A]<<16>>16;return e;default:return t.a}}function Va(t){var e,A,n,P,r,i,f,D,Q,o,L;for(L=new Zt(t.g);L.a<L.c.a.length;){for(Q=_t(L),A=0,r=0;r<N(t.k,Q.a);r++)t.c[Nt(t.k,Q.a,r)]||++A;if(A!=0){for(Q.c=c(B,F,6,A,15,1),A=0,i=0;i<N(t.k,Q.a);i++)t.c[Nt(t.k,Q.a,i)]||(D=Z(t.k,Q.a,i),Q.c[A++]=t.q[D]<<16|D);for(Q.c.sort(pe(u0.prototype.ld,u0,[])),P=0;P<Q.c.length;P++)Q.c[P]=d1&Q.c[P]}}for(n=c(Pt,it,6,t.k.i,16,1),t.e=c(B,F,6,t.k.i,15,1),o=new Zt(t.g);o.a<o.c.a.length;)if(Q=_t(o),Q.c!=null){for(Q.d=c(Pt,it,6,Q.c.length,16,1),P=0;P<Q.c.length;P++)for(f=0;f<N(t.k,Q.a);f++)if(Q.c[P]==Z(t.k,Q.a,f))if(e=Nt(t.k,Q.a,f),t.c[e])n[t.e[e]]=!1;else{for(t.c[e]=!0,Q.d[P]=!0,t.e[e]=1;n[t.e[e]];)++t.e[e];n[t.e[e]]=!0}}}function lp(){if(g5(),!vl)try{$f=c(I1t,T0,102,4,0,1),dr=c(Y4,T0,20,4,0,1),Br=c(Y4,T0,20,4,0,1),dr[0]=fi(\"/resources/toxpredictor/m1.txt\"),dr[1]=fi(\"/resources/toxpredictor/t1.txt\"),dr[2]=fi(\"/resources/toxpredictor/i1.txt\"),dr[3]=fi(\"/resources/toxpredictor/r1.txt\"),Br[0]=fi(\"/resources/toxpredictor/m2.txt\"),Br[1]=fi(\"/resources/toxpredictor/t2.txt\"),Br[2]=fi(\"/resources/toxpredictor/i2.txt\"),Br[3]=fi(\"/resources/toxpredictor/r2.txt\"),$f[0]=ps(\"/resources/toxpredictor/m3.txt\"),$f[1]=ps(\"/resources/toxpredictor/t3.txt\"),$f[2]=ps(\"/resources/toxpredictor/i3.txt\"),$f[3]=ps(\"/resources/toxpredictor/r3.txt\"),vl=!0}catch(t){if(t=_1(t),Jt(t,19))z1();else throw et(t)}}function Ea(t,e){var A,n,P,r,i,f,D;if(D=new LD,!vl)return Ft(D.a,new ae(\"Toxicity predictor not properly initialized.\",2)),D;if(i=Me(new bA(t)),$f[e].cc(i)!=-1)return e8(D,\"This molecule is known to be \"+HE[e]+\":\",2),Ft(D.a,new ae(i,1)),D;for(f=new VD(1),A=!1,n=new _A,r=0;r<dr[e].a.length;r++)l2(new WA(!1),n,x(dr[e],r)),GA(f,t),MA(f,n),CA(f,1,f.c)>0&&(A||e8(D,\"High-risk fragments indicating \"+So[e]+\":\",2),A=!0,e8(D,x(dr[e],r),1));for(A=!1,P=0;P<Br[e].a.length;P++)l2(new WA(!1),n,x(Br[e],P)),GA(f,t),MA(f,n),CA(f,1,f.c)>0&&(A||e8(D,\"Medium-risk fragments indicating \"+So[e]+\":\",2),A=!0,e8(D,x(Br[e],P),1));return D.a.a.length==0&&e8(D,\"No indication for \"+So[e]+\" found.\",2),D}function hp(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l;for(l=m(k(Ut,1),Tt,6,15,[0,0,0]),Q=m(k(Ut,1),Tt,6,15,[0,0,0]),f=m(k(B,1),F,6,15,[e.D[A],e.D[n],e.D[P]]),D=1.75,o=0;o<3;o++)switch(f[o]){case 1:l[o]=1.395;break;case 6:l[o]=2.494,Q[o]=1.016;break;case 7:l[o]=2.711,Q[o]=1.113;break;case 8:l[o]=3.045,Q[o]=1.337;break;case 9:l[o]=2.847;break;case 14:l[o]=2.35,Q[o]=.811;break;case 15:l[o]=2.35,Q[o]=1.068;break;case 16:l[o]=2.98,Q[o]=1.249;break;case 17:l[o]=2.909,Q[o]=1.078;break;case 35:l[o]=3.017;break;case 53:l[o]=3.086}return L=d2(t.a.d,e,A,n),s=d2(t.a.d,e,n,P),i=(L-s)*(L-s)/((L+s)*(L+s)),y=bC*r,T2(e,A,n,P,4)?D*=.85:T2(e,A,n,P,3)&&(D*=.05),D*l[0]*Q[1]*l[2]/((L+s)*y*y*w.Math.exp(2*i))}function Sa(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;if(e!=null)t.e=e;else for(t.e=c(Pt,it,6,t.j.i,16,1),s=0;s<t.j.i;s++)c1(t.j,s)==8&&(t.e[s]=!0,w0(t.j,s,1));for(y=0;y<t.j.i;y++)t.e[y]&&++t.c;for(t.d=c(Pt,it,6,t.j.g,16,1),t.f=c(Pt,it,6,t.j.g,16,1),f=0;f<t.j.g;f++){for(l=0,h=0;h<N(t.j,f);h++)t.e[Nt(t.j,f,h)]&&++l;l>0&&(t.d[f]=!0,++t.b,l==3&&(t.f[f]=!0))}for(t.i=c(Pt,it,6,A.j.a.length,16,1),g=0;g<A.j.a.length;g++)for(t.i[g]=!0,Q=x(A.k,g),o=0,L=Q.length;o<L;++o)if(D=Q[o],!t.e[D]){t.i[g]=!1;break}for(t.g=c(Pt,it,6,t.j.g,16,1),T=0;T<A.j.a.length;T++)if(t.i[T]&&x(A.k,T).length!=6)for(P=x(A.j,T),r=0,i=P.length;r<i;++r)n=P[r],x(A.k,T).length==5&&(t.g[n]=!0);t.k=0}function Dy(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,h,T,g,v;for(y=0;y<e.k[A];y++)if(f=e.j[A][y],!r[f]&&(o=e.n[A][y],g=dt(e,o),n&&g>=2||!n&&g<=2)){for(r[f]=!0,i.add(U1(o)),l=0;l<e.k[f];l++)if(D=e.j[f][l],!r[D]&&(L=e.n[f][l],v=dt(e,L),e.p[f]+2==g+v&&(n&&v<=2||!n&&v>=2))){if(r[D]=!0,i.add(U1(L)),t.f[D]&&(J(t.i,D)==5||J(t.i,D)==6||J(t.i,D)==7||J(t.i,D)==8||J(t.i,D)==16||J(t.i,D)==34||J(t.i,D)==52)&&(!n||cQ(e,D))){for(s=new hs(t,e),h=0;h<i.a.length;h++)Q=(te(h,i.a.length),i.a[h]).a,T=h<2?n^(h&1)==0:P^(h&1)==0,T?mL(s,Q,dt(e,Q)==1?2:3):mL(s,Q,dt(e,Q)==2?1:2),t.g[Q]=!0;Yi(t.e,s)&&cL(t.d,s)}else Dy(t,e,D,n,P,r,i);cA(i,i.a.length-1),r[D]=!1}cA(i,i.a.length-1),r[f]=!1}return!1}function Ae(t,e){var A,n,P,r,i,f,D,Q,o;if(e==0)return 0;for(f=null,n=0;n<t.r;n++)(t.v[n]&b1)>>18==e&&(f==null&&(f=c(Pt,it,6,32,16,1)),f[(t.v[n]&b1)>>18!=1&&(t.v[n]&b1)>>18!=2?-1:(t.v[n]&VA)>>20]=!0);for(r=0;r<t.s;r++)(t.G[r]&768)>>8==e&&(f==null&&(f=c(Pt,it,6,32,16,1)),f[(t.G[r]&768)>>8!=1&&(t.G[r]&768)>>8!=2?-1:(t.G[r]&cn)>>10]=!0);if(o=0,f!=null){for(Q=c(B,F,6,32,15,1),D=0;D<32;D++)f[D]&&(Q[D]=o++);for(A=0;A<t.r;A++)(t.v[A]&b1)>>18==e&&(i=Q[(t.v[A]&b1)>>18!=1&&(t.v[A]&b1)>>18!=2?-1:(t.v[A]&VA)>>20],t.v[A]&=-32505857,t.v[A]|=i<<20);for(P=0;P<t.s;P++)(t.G[P]&768)>>8==e&&(i=Q[(t.G[P]&768)>>8!=1&&(t.G[P]&768)>>8!=2?-1:(t.G[P]&cn)>>10],t.G[P]&=-31745,t.G[P]|=i<<10)}return o}function L9(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(ut(t,n?7:1),e.w=null,t.L&&Be(e,!0),D=A.length,P==null&&(P=c(B,F,6,D,15,1)),e.r=0,r=0;r<D;r++)if(A[r]){if(P[r]=Gn(t,e,r,0,0),t.D[r]==1&&(s=G1(t,r),s>1)){for(L=0;L<t.e[r];L++)if(!A[t.j[r][L]]){tn(e,P[r],s);break}}}else P[r]=-1;for(o=c(B,F,6,t.s,15,1),zr(o,o.length,-1),e.s=0,Q=0;Q<t.s;Q++)i=t.F[0][Q],f=t.F[1][Q],i<D&&f<D&&(A[i]&&A[f]?o[Q]=o9(t,e,Q,0,0,P==null?t.F[0][Q]:P[t.F[0][Q]],P==null?t.F[1][Q]:P[t.F[1][Q]],n):t.t[i]!=0&&t.t[f]!=0&&t.t[i]<0^t.t[f]<0&&(A[i]&&(e.t[P[i]]+=t.t[i]<0?1:-1),A[f]&&(e.t[P[f]]+=t.t[f]<0?1:-1)));dL(t,e),t.d&&(e.U=0),e.U=0,Ae(e,1),Ae(e,2),e.r!=D&&Be(e,!0),Ap(t,e,D,P,o),Eb(t,e,D,P),n&&jf(new p9(e),null,!1)}function Ia(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;if(D=!1,t0(t.k,e)!=0&&N(t.k,e)==2&&EA(t.k,e,0)==2&&EA(t.k,e,1)==2){for(i=0;i<N(t.k,e);i++)if(n=Z(t.k,e,i),n!=A&&N(t.k,n)==2){D=!0;break}for(r=0;r<N(t.k,e);r++){for(n=Z(t.k,e,r),l=0,y=c(B,F,6,3,15,1),o=0;o<N(t.k,n);o++)y[l]=Z(t.k,n,o),y[l]!=e&&++l;l==2&&t.q[y[0]]<t.q[y[1]]^y[0]<y[1]&&(D=!D)}}else{for(L=c(B,F,6,4,15,1),s=c(B,F,6,4,15,1),f=0,A!=-1&&(L[f]=A,s[f++]=8*t.q[A]),(xt(t.k,e)!=0||N(t.k,e)==3)&&(L[f]=Et,s[f++]=8*t.q[e]),r=0;r<N(t.k,e);r++)n=Z(t.k,e,r),n!=A&&(L[f]=n,s[f++]=hY(t,e,r));D=UK(L,s)}return Q=B0(t.k,e)==1^D,xi(t.k,e)&&(P=fx(t.d,e),t.n[P]||(t.n[P]=!0,t.o[P]=Q),t.o[P]&&(Q=!Q)),Q?\"@@\":\"@\"}function xa(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y;for(ut(t.H,t.N),o=t.H.g,t.J=c(B,F,6,o,15,1),t.I=c(XA,Pe,6,o,14,1),i=0;i<o;i++)t.I[i]=g0(V(z(Wp(t.H,i),l0(t.H,i)),A4),dM),t.J[i]=J(t.H,i),(e&1)!=0&&(t.J[i]+=R1(t.H,i)+16<<8),(e&2)!=0&&(t.J[i]+=we(t.H,i)<<16);for(t.M=c(XA,Pe,6,o,14,1),s=kn(t.H),Q=0;Q<s.j.a.length;Q++)for(y=x(s.k,Q).length,n=x(s.j,Q),P=0,r=n.length;P<r;++P)f=n[P],y==3?t.M[f]=z(t.M[f],h9):y==4?t.M[f]=z(t.M[f],T9):y==5?t.M[f]=z(t.M[f],c9):y==6?t.M[f]=z(t.M[f],w9):y==7&&(t.M[f]=z(t.M[f],g9));for(A=0;A<o;A++)y=Or(t.H,A),y==0?t.M[A]=z(t.M[A],w8):y>7&&(t.M[A]=z(t.M[A],Vf));for(L=t.H.i,t.K=c(B,F,6,L,15,1),D=0;D<L;D++)t.K[D]=(mj(t.H,D)|ie(t.H,D))&6422527^6291840}function uy(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;if(Ln(t.i,0),n=zA(e,t.c),n!=0){if(J1(t),L=n==1^J(t.V,t.t)==1,mf(t.V,t.t,n,0,-1,0)){L&&(t.t=-1,N1(t,new x1(t,4,!0))),t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0));return}t.eb=w.Math.max(t.eb,0),P1(t.k)}if(t.j!=null&&t.j.length!=0&&(e=t.j),y=(ly(),o=(!Tl&&JY(),de(Tl,Pf(e.toLowerCase(),\"-\"))),o==null?null:tf(new WA(!1),o)),y){for(J1(t),D=new _A,mR(D,t.V,t.t,null),s=Qn(D,t.ab*24),i=D.r,A=0;A<D.r;A++)D.v[A]|=O0;for(ty(D,y,0),U9(new a8(4),D),P=mt(t.V,t.t)-s*D.K[0].a,r=Rt(t.V,t.t)-s*D.K[0].b,f=t.V.r,ty(t.V,y,t.t),l=t.V.r-f,Q=0;Q<l;Q++)ge(t.V,f+Q,s*D.K[i+Q].a+P),Ve(t.V,f+Q,s*D.K[i+Q].b+r);hf(t.V),t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0))}}function Tp(t,e,A){if(R1(t.j,e)!=0)return 0;if(t.a){if(J(t.j,e)==5)return G1(t.j,e)!=2?0:(A&&m0(t.j,e,1),1);if(J(t.j,e)==7)return G1(t.j,e)!=2?0:(A&&m0(t.j,e,-1),nf(t,e)?6:3);if(J(t.j,e)==8)return G1(t.j,e)!=1?0:(A&&m0(t.j,e,-1),nf(t,e)?7:4);if(J(t.j,e)==16)return G1(t.j,e)!=1?0:(A&&m0(t.j,e,-1),nf(t,e)?5:2);if(J(t.j,e)==34)return G1(t.j,e)!=1?0:(A&&m0(t.j,e,-1),nf(t,e)?4:1)}else{if(J(t.j,e)==5)return G1(t.j,e)>2?0:(A&&m0(t.j,e,1),1);if(J(t.j,e)==7)return G1(t.j,e)>2?0:(A&&m0(t.j,e,-1),nf(t,e)?5:3);if(J(t.j,e)==8)return G1(t.j,e)>1?0:(A&&m0(t.j,e,-1),nf(t,e)?7:4);if(J(t.j,e)==16)return G1(t.j,e)>1?0:(A&&m0(t.j,e,-1),nf(t,e)?5:2)}return 0}function cp(t){var e,A;if(t.s==null&&!t.t)return null;if(t.t)return A=MQ(t.t),A?(fy(t,A),++t.p,_w(A,\"SO#\"+ ++t.a),A):null;if(t.j)return null;for(t.b.c==0&&Pr(t,c(B,F,6,t.q.length,15,1)),t.A=Lp(t.B,t.A,t.c);t.A&&!(gt(t.v,0)&&(z1(),I1(E1(Date.now()),t.v)));){if(e=Pr(t,t.A.d),t.A.c||(VG(t.A,DK(e,t.A.i,\"#\"+ ++t.a)),t.i&&FN(t.c,t.A)),t.A.b==0&&(gp(t,t.A,t.A.c),t.A.b!=0&&Btt(t,t.A),t.i&&(bJ(Oi(t.c,t.A),e,t.A.c),Oi(t.c,t.A))),t.A.b>t.B.r+3){if(t.A=Lp(t.B,t.A,t.c),t.A||t.p!=0)continue;if(t.C&&(t.t=new ZQ(t.k),uU(t.t,t.v),z5(t.t,t.o,-1),A=MQ(t.t),A))return fy(t,A),++t.p,_w(A,\"SO#\"+ ++t.a),A;t.A=t.B.e,t.j=!0}if(t.A)return fy(t,t.A.c),t.A.g=!0,++t.p,t.i&&Oi(t.c,t.A),t.A.c}return null}function Na(t,e,A,n){var P,r,i,f,D,Q;if(P=i9(e,t.d),m0(e,P,t.e),tA(e,P,t.o,!1),tn(e,P,t.a),gt(t.c,0)&&(gt(V(t.c,2),0)?(t.c=V(t.c,-3),e.v[P]|=O0):e.v[P]&=py,w1(e,P,t.c,!0)),t.b){for(Q=c(B,F,6,t.b.d.a.length,15,1),D=0;D<t.b.d.a.length;D++)Q[D]=I9(t.b,D).a;ST(e,P,Q),t.b.d.a.length=0}else if(String.fromCharCode(A).toLowerCase().charCodeAt(0)==A&&ev(A)){if(t.d!=5&&t.d!=6&&t.d!=7&&t.d!=8&&t.d!=15&&t.d!=16&&t.d!=33&&t.d!=34)throw et(new H1(\"SmilesParser: atomicNo \"+t.d+\" must not be aromatic. Position:\"+(n-1)));e.v[P]|=O0}else e.v[P]&=py;if(t.f)for(f=new Zt(t.f);f.a<f.c.a.length;)i=_t(f),t.r=!0,$0(i,0,0),Be(e,!0),ty(e,i,P);return t.g!=-1&&t.d!=1&&(r=c(_,At,6,1,15,1),r[0]=t.g<<24>>24,mX(e,P,r)),P}function Ga(t,e){var A,n,P,r,i,f,D,Q,o,L,s;if(e==2||e==5)Ft(t.F,Af(t.G,t.G.length)),t.b&&Ft(t.a,aL(t.C,t.C.length));else if(e==4)s=yj(Af(t.G,t.G.length)),mU(t.O,s)||(Yi(t.O,s),Ft(t.F,Af(t.G,t.G.length)),t.b&&Ft(t.a,aL(t.C,t.C.length)));else if(e==3){if(s=yj(Af(t.G,t.G.length)),!mU(t.O,s)){for(L=!1,Q=(f=new J8(new K8(new br(t.O.a).a).b),new jr(f));Nr(Q.a.a);){for(D=(i=H9(Q.a),i.hd()),o=0,n=s,P=0,r=n.length;P<r;++P){for(A=n[P];o<D.length&&D[o]<A;)++o;if(o<D.length&&A==D[o]){L=!0;break}}if(L)break}L||(Yi(t.O,s),Ft(t.F,Af(t.G,t.G.length)),t.b&&Ft(t.a,aL(t.C,t.C.length)))}}else e==6&&(s=KZ(t,Af(t.G,t.G.length)),mU(t.O,s)||(Yi(t.O,s),Ft(t.F,Af(t.G,t.G.length)),t.b&&Ft(t.a,aL(t.C,t.C.length))))}function Gn(t,e,A,n,P){var r,i,f;return r=e.r,r>=e.N&&EQ(e,e.N*2),f=(t.v[A]&b1)>>18,i=-1,f==1?n==-1?i=Ae(e,f):i=w.Math.min(31,n+((t.v[A]&b1)>>18!=1&&(t.v[A]&b1)>>18!=2?-1:(t.v[A]&VA)>>20)):f==2&&(P==-1?i=Ae(e,f):i=w.Math.min(31,P+((t.v[A]&b1)>>18!=1&&(t.v[A]&b1)>>18!=2?-1:(t.v[A]&VA)>>20))),e.D[r]=t.D[A],e.t[r]=t.t[A],e.B[r]=t.B[A],e.v[r]=t.v[A],e.C[r]=e.L?t.C[A]:0,HD(e.K[r],t.K[A]),e.A[r]=t.A[A],e.w!=null&&(e.w[r]=null),t.w!=null&&t.w[A]!=null&&e.L&&(e.w==null&&(e.w=c(B,D0,7,e.D.length,0,2)),e.w[r]=Cn(t.w[A],t.w[A].length)),e.u!=null&&(e.u[r]=null),t.u!=null&&t.u[A]!=null&&(e.u==null&&(e.u=c(_,v9,11,e.D.length,0,2)),e.u[r]=UO(t.u[A],t.u[A].length)),i!=-1&&(e.v[r]&=-32505857,e.v[r]|=i<<20),++e.r,e.U=0,r}function Oa(t,e){s8();var A,n,P,r,i,f,D,Q,o,L,s;for(r=0;r<e.g;r++)if(e.p[r]==2&&e.k[r]==2&&e.o[r][0]==2&&e.o[r][1]==2&&e.D[r]<=7&&(o=e.v[r]&3,o==1||o==2)){for(n=c(B,F,6,4,15,1),s=c(B,F,6,2,15,1),f=0;f<e.k[r];f++){for(A=e.j[r][f],Q=Et,D=0;D<e.k[A];D++)i=e.j[A][D],i!=r&&Q>i&&(Q=i);n[3*f]=Q,n[1+f]=A,s[f]=r}if(n[0]==Et||n[3]==Et){z1(),\"\"+Me(new bA(e));break}Ft(t,new nT(e,n,s,(e.v[r]&gn)!=0,o==1))}for(P=0;P<e.i;P++)if(o=e.G[P]&3,(o==1||o==2)&&dt(e,P)!=2){for(n=c(B,F,6,4,15,1),s=c(B,F,6,2,15,1),f=0;f<2;f++){for(A=e.F[f][P],L=e.F[1-f][P],Q=Et,D=0;D<e.k[A];D++)i=e.j[A][D],i!=L&&Q>i&&(Q=i);n[3*f]=Q,n[1+f]=A,s[f]=e.F[1-f][P]}Ft(t,new nT(e,n,s,(e.G[P]&64)!=0,o==2))}}function qa(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l;for(f=Ss(t),i=c(Pt,it,6,f+1,16,1),l=new Zt(t.g);l.a<l.c.a.length;)for(s=_t(l),A=0;A<s.r;A++)if(P=w.Math.abs(s.A[A]),P!=0){if(i[P])throw et(new H1(\"Duplicate mapping no in reactants: \"+P));i[P]=!0}for(r=c(Pt,it,6,f+1,16,1),L=new Zt(t.f);L.a<L.c.a.length;)for(Q=_t(L),A=0;A<Q.r;A++)if(P=w.Math.abs(Q.A[A]),P!=0){if(r[P])throw et(new H1(\"Duplicate mapping no in products: \"+P));r[P]=!0}for(D=c(B,F,6,f+1,15,1),n=0,e=1;e<=f;e++)i[e]&&r[e]&&(D[e]=++n);if(n!=f){for(y=new Zt(t.g);y.a<y.c.a.length;)for(s=_t(y),A=0;A<s.r;A++)tA(s,A,D[w.Math.abs(s.A[A])],s.A[A]<0);for(o=new Zt(t.f);o.a<o.c.a.length;)for(Q=_t(o),A=0;A<Q.r;A++)tA(Q,A,D[w.Math.abs(Q.A[A])],Q.A[A]<0)}}function za(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;if(g=(ut(t,7),t.q),!g.e[e])return 1;if(x(g.k,e).length==6){for(n=x(g.j,e),P=0,r=n.length;P<r;++P)if(A=n[P],G1(t,A)+xt(t,A)!=t.e[A]+xt(t,A)+1)return 1;for(D=x(g.k,e),Q=0,o=D.length;Q<o;++Q)if(f=D[Q],L=m(k(B,1),F,6,15,[-1,-1]),dt(t,f)==1){for(y=0;y<=1;y++)for(i=t.F[y][f],s=0;s<t.e[i];s++)if(l=t.j[i][s],!wA(g,e,l)&&dt(t,o1(t,i,l))==2){L[y]=l;break}if(L[0]>-1&&L[1]>-1)for(T=0;T<g.j.a.length;T++){if(wA(g,T,L[0])&&wA(g,T,L[1])&&t.b[T]==2)return 2;if(wA(g,T,L[0])&&wA(g,T,L[1])&&t.b[T]!=0)return 1}}}if(x(g.k,e).length==5)for(h=1,n=x(g.j,e),P=0,r=n.length;P<r;++P){if(A=n[P],G1(t,A)+xt(t,A)==t.e[A]+xt(t,A)&&h>0){--h;continue}if(G1(t,A)+xt(t,A)!=t.e[A]+xt(t,A)+1)return 1}return 0}function h6(t){var e,A,n,P,r,i,f,D,Q,o,L;for(e=0;e<t.R.g;e++)if(t.db[e]==1||t.db[e]==2){if(D=!1,UT(t.R,e))for(f=0;f<N(t.R,e);f++){for(P=Z(t.R,e,f),L=0,o=c(B,F,6,3,15,1),Q=0;Q<N(t.R,P);Q++)o[L]=Z(t.R,P,Q),o[L]!=e&&++L;L==2&&t.f[o[0]]>t.f[o[1]]^o[0]<o[1]&&(D=!D)}else for(f=1;f<N(t.R,e);f++)for(Q=0;Q<f;Q++)r=Z(t.R,e,f),i=Z(t.R,e,Q),t.f[r]>t.f[i]&&(D=!D),r<i&&(D=!D);ke(t.R,e,t.db[e]==1^D?1:2,t.fb[e])}else ke(t.R,e,t.db[e],t.fb[e]);for(A=0;A<t.R.i;A++)if(t.o[A]==1||t.o[A]==2){for(D=!1,f=0;f<2;f++)if(n=q(t.R,f,A),N(t.R,n)==3){for(o=c(B,F,6,2,15,1),L=0,Q=0;Q<3;Q++)Z(t.R,n,Q)!=q(t.R,1-f,A)&&(o[L++]=Z(t.R,n,Q));t.f[o[0]]>t.f[o[1]]&&(D=!D),o[0]<o[1]&&(D=!D)}Q8(t.R,A,t.o[A]==1^D?1:2,t.p[A])}else Q8(t.R,A,t.o[A],t.p[A])}function wp(t,e,A,n,P){var r,i,f,D,Q,o,L,s;for(ut(t,n?7:1),e.w=null,t.L&&Be(e,!0),P==null&&(P=c(B,F,6,t.r,15,1)),e.r=0,r=0;r<t.r;r++)for(P[r]=-1,o=0;o<t.k[r];o++)if(A[t.n[r][o]]){if(P[r]=Gn(t,e,r,0,0),t.D[r]==1&&(s=G1(t,r),s>1)){for(L=0;L<t.e[r];L++)if(!A[t.n[r][L]]){tn(e,P[r],s);break}}break}for(Q=c(B,F,6,t.s,15,1),e.s=0,D=0;D<t.s;D++)A[D]?Q[D]=o9(t,e,D,0,0,P==null?t.F[0][D]:P[t.F[0][D]],P==null?t.F[1][D]:P[t.F[1][D]],n):(Q[D]=-1,i=t.F[0][D],f=t.F[1][D],P[i]==-1^P[f]==-1&&t.t[i]!=0&&t.t[f]!=0&&t.t[i]<0^t.t[f]<0&&(P[i]!=-1&&(e.t[P[i]]+=t.t[i]<0?1:-1),P[f]!=-1&&(e.t[P[f]]+=t.t[f]<0?1:-1)));return dL(t,e),t.d&&(e.U=0),e.U=0,Ae(e,1),Ae(e,2),e.r!=t.r&&Be(e,!0),Ap(t,e,t.r,P,Q),Eb(t,e,t.r,P),n&&jf(new p9(e),null,!1),P}function Ka(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;for(f=0,A=0;A<t.f.r;A++)W0(t.f,A)&&++f;if(!(f<2)){for(L=0,Q=0,o=0;o<t.f.s;o++)n=q(t.f,0,o),P=q(t.f,1,o),W0(t.f,n)&&W0(t.f,P)&&(t.c[o]=!0,t.b[n]=!0,t.b[P]=!0,Q+=ET(t.f,o),++L);for(L!=0&&Q!=0?Q/=L:Q=G8(t.f),r=0;r<t.f.r;r++)W0(t.f,r)&&!t.b[r]&&--f;if(!(f<2)){for(d=c(B,F,6,t.f.r,15,1),s=Ur(t.f,d,!0,!0),v=c(B,F,6,s,15,1),i=0;i<t.f.r;i++)d[i]!=-1&&++v[d[i]];for(g=c(oc,e0,48,s,0,1),l=0;l<s;l++)g[l]=new VP(t.f,v[l],!0);for(D=c(B,F,6,s,15,1),e=0;e<t.f.r;e++)h=d[e],h!=-1&&(g[h].k[D[h]]=ue,g[h].e[D[h]]=e,g[h].a[D[h]]=mt(t.f,e)/Q,g[h].b[D[h]]=Rt(t.f,e)/Q,++D[h]);for(b=-1,j=0,T=0;T<s;T++)j<v[T]&&(j=v[T],b=T);for(CP(t.d,g[b]),y=0;y<s;y++)y!=b&&CP(t.d,g[y])}}}function Ja(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(n=0;n<t.e[e];n++)switch(o=t.j[e][n],t.D[o]){case 6:return 5;case 7:switch(M6(t,o)){case 8:case 39:case 62:case 67:case 68:return 23;case 34:case 54:case 55:case 56:case 58:case 81:return 36;case 9:return 27;default:return 28}case 8:switch(M6(t,o)){case 49:return 50;case 51:return 52;case 70:return 31;case 6:for(P=!1,r=!1,i=!1,f=!1,D=0;D<t.e[o];D++){if(L=t.j[o][D],t.D[L]==6)for(Q=0;Q<t.e[L];Q++)s=t.j[L][Q],s!=o&&(A=o1(t,L,s),(t.D[s]==6||t.D[s]==7)&&(dt(t,A)==2||A<t.i&&Ee(t.q,A))&&(P=!0),t.D[s]==8&&dt(t,A)==2&&(r=!0));t.D[L]==15&&(i=!0),t.D[L]==16&&(f=!0)}if(r||i)return 24;if(P)return 29;if(f)return 33;default:return 21}case 14:return 5;case 16:case 15:return 71}return 0}function Ya(t){var e,A,n,P,r,i,f,D,Q,o,L;if(t.n==null){if(t.b)for(n=t.j+1,t.p=c(B,DA,29,t.o.length,0,3),r=0;r<t.o.length;r++){for(t.p[r]=c(B,D0,7,t.g[r].a.length,0,2),f=0;f<t.g[r].a.length;f++)t.p[r][f]=gX(t,r,x(t.g[r],f),n);for(n+=t.o[r].g,P=C9(t.c,r),e=0;e<P.g;e++)gt(V(P.C[e],ne),0)||--n}if(t.n=j1(gr,[DA,B9],[78,26],0,[t.q,t.c.f.a.length],2),t.d=j1(ft,[DA,Dt],[13,2],6,[t.q,t.c.f.a.length],2),t.e=c(Pt,it,6,t.q,16,1),L=new ou,o=new M0,i=0,A=0,t.q!=0){D=c(B,F,6,t.o.length,15,1);do{for(Q=o.a.length,0<Q?o.a=hA(o.a,0,0):0>Q&&(o.a+=z8(c(Fr,Pe,6,-Q,15,1))),r=0;r<t.c.f.a.length;r++)t.n[i][r]=F1t(t,t.g,D,r),t.d[i][r]=Me(new bA(t.n[i][r])),G(o,t.d[i][r]);t.e[i]=Gs(L,o.a)==-1,(!t.t||!t.e[i])&&++A,++i}while(iK(t,D)&&A<t.i)}}}function gp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(t.i&&(Oi(t.c,e).a=null),D=0,f=null,T=A.o,n=1;n<T.r;n++)for(v=XD(T.D[n]),P=0;P<n;P++)t.u[n][P]||(h=v+XD(T.D[P]),o=w.Math.abs(A.k[n].a-A.k[P].a),o<h&&(L=w.Math.abs(A.k[n].b-A.k[P].b),L<h&&(s=w.Math.abs(A.k[n].c-A.k[P].c),s<h&&(Q=w.Math.sqrt(o*o+L*L+s*s),Q<h&&(g=(h-Q)/h,i=20*g*g,D+=i,t.i&&(fO(Oi(t.c,e),\"a1:\"+n+\" f1:\"+t.g[n]+\" a2:\"+P+\" f2:\"+t.g[P]+LE+(A9(),Q9(Q,5))+\" min:\"+Q9(h,5)),Oi(t.c,e).a==null&&(r=c(B,F,6,2,15,1),r[0]=n,r[1]=P,pI(Oi(t.c,e),r))),f==null&&(f=c(Ut,T0,15,t.q.length,0,2)),y=t.g[n],l=t.g[P],y<l?(f[l]==null&&(f[l]=c(Ut,Tt,6,l,15,1)),f[l][y]+=i):(f[y]==null&&(f[y]=c(Ut,Tt,6,y,15,1)),f[y][l]+=i))))));return Mv(e,D,f),D!=0}function Xa(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;if(Q=k1(X1(e)),Q.length==0||(t.e=Q),X1(e),n=X1(e),!A&&n.startsWith(Xy)&&(P=(zt(13,n.length+1),n.substr(13)),_Q(P,!0,t)))return!0;if(l=X1(e),i=new Du,l!=null&&l.startsWith(\"M  V30 COUNTS\")){if(y=k1((zt(13,l.length+1),l.substr(13))),o=c8(y,\" \"),s=L1(o[0],f1,Et),L=L1(o[1],f1,Et),s>0){if(l=X1(e),e1(YC,l))for(r=0;r<s;r++){f=new _A,D=new su,D.a+=XC;do l=X1(e),D.a+=\"\"+l,D.a+=nn;while(l!=null&&!l.startsWith(t4));IU(i,f,new un(new Sr(D.a))),Ft(t.g,f),t.d=-1}l=X1(e)}if(L>0&&(l=X1(e),e1(ZC,l))){for(r=0;r<L;r++){f=new _A,D=new su,D.a+=XC;do l=X1(e),D.a+=\"\"+l,D.a+=nn;while(l!=null&&!l.startsWith(t4));IU(i,f,new un(new Sr(D.a))),Ft(t.f,f),t.d=-1}l=X1(e)}return!0}return!1}function dp(t){var e,A,n,P,r,i,f;return i=\"\",t.length==0?new b3(I4,x4):(f=k1(t),f.startsWith(\"at \")&&(f=(zt(3,f.length+1),f.substr(3))),f=f.replace(/\\[.*?\\]/g,\"\"),P=f.indexOf(\"(\"),P==-1?(P=f.indexOf(\"@\"),P==-1?(i=f,f=\"\"):(i=k1((zt(P+1,f.length+1),f.substr(P+1))),f=k1((Mt(0,P,f.length),f.substr(0,P))))):(e=f.indexOf(\")\",P),i=(Mt(P+1,e,f.length),f.substr(P+1,e-(P+1))),f=k1((Mt(0,P,f.length),f.substr(0,P)))),P=f.indexOf(R0(46)),P!=-1&&(f=(zt(P+1,f.length+1),f.substr(P+1))),(f.length==0||e1(f,\"Anonymous function\"))&&(f=I4),r=i.lastIndexOf(R0(58)),A=yG(i,R0(58),r-1),n=x4,r!=-1&&A!=-1&&(n=(Mt(0,A,i.length),i.substr(0,A)),Kg((Mt(A+1,r,i.length),i.substr(A+1,r-(A+1)))),Kg((zt(r+1,i.length+1),i.substr(r+1)))),new b3(f,n))}function Bp(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(l=!1,n=0;n<t.L.i;n++)Q=null,Ru(t.L,n)?(L=t3(t.L,n),o=H3(t.L,n),Q=L==o?\"[\"+L+\"]\":\"[\"+L+\":\"+o+\"]\"):(ie(t.L,n)&oo)!=0?Q=(ie(t.L,n)&oo)==KA?\"a\":(ie(t.L,n)&384)==256?\"!ar\":\"!a\":(ie(t.L,n)&384)!=0&&(Q=(ie(t.L,n)&384)==256?\"r\":\"!r\"),s=(ie(t.L,n)&NP)>>17,s!=0&&(y=s==1?\"8-11\":s==2?\">11\":\"\"+s,Q=(Q==null?\"\":Q.endsWith(\"r\")?Q:Q+\"r\")+y),Q!=null&&(e=q(t.L,0,n),A=q(t.L,1,n),l||(t.Cb((t.X*2+1)/3|0),l=!0),h=(W1(t.R,mt(t.L,e))+W1(t.R,mt(t.L,A)))/2,T=(Z1(t.R,Rt(t.L,e))+Z1(t.R,Rt(t.L,A)))/2,r=W1(t.R,mt(t.L,A))-W1(t.R,mt(t.L,e)),i=Z1(t.R,Rt(t.L,A))-Z1(t.R,Rt(t.L,e)),P=w.Math.sqrt(r*r+i*i),D=.6*t.vb(Q),f=.55*t.wb(),P!=0&&(r>0?EP(t,h+D*i/P,T-f*r/P,Q,!0):EP(t,h-D*i/P,T+f*r/P,Q,!0)));l&&t.Cb(t.X)}function Li(t){var e,A,n,P,r,i,f,D,Q,o,L;for(ut(t,1),iz(t),Q=!1,A=0;A<t.g;A++)if(t.D[A]==7&&t.t[A]==0){if(L=G1(t,A),L==4){for(o=0;o<t.k[A];o++)if(f=t.j[A][o],t.o[A][o]==1&&t.D[f]==8&&t.k[f]==1&&t.t[f]==0){Q=!0,++t.t[A],--t.t[f];break}}else if(L==5)for(o=0;o<t.k[A];o++){if(f=t.j[A][o],D=t.n[A][o],t.o[A][o]==2&&t.D[f]==8){Q=!0,++t.t[A],--t.t[f],t.I[D]=1;break}if(t.o[A][o]==3&&t.D[f]==7){Q=!0,++t.t[A],--t.t[f],t.I[D]=2;break}}}for(i=!1,r=0;r<t.i;r++)for(o=0;o<2;o++)if(rA(t,t.F[o][r])){e=t.F[1-o][r],P=t.D[e],(P==3||P==11||P==19||P==37||P==55||P==87||(n=t.D[e],n==4||n==12||n==20||n==38||n==56||n==88))&&(dt(t,r)==1?(++t.t[e],--t.t[t.F[o][r]],t.I[r]=512,i=!0):t.I[r]==16&&(t.I[r]=512,i=!0));break}return i&&(Rf(t),Q=!0),Q&&(t.U=0),Q}function T6(t,e){var A,n,P,r,i,f;if(t.L.r!=0){for(ut(t.L,(t.G&256)!=0?63:(t.G&512)!=0?95:31),t.B=e,qm(t),P=Za(t.L),r=!1,t.p=c(B,F,6,t.L.r,15,1),A=0;A<t.L.r;A++)t.p[A]=wu(t.L,A),t.p[A]!=0&&(r=!0),r0(t.L,A)&&(t.p[A]=128),Ud(t.L,A)&&(t.G&q1)==0&&(t.p[A]=256);for($1(t,-10),aW(t),SX(t),O_(t),UX(t),t.Cb(t.X),t.Ab(t.Y),$1(t,t.Q),Nk(t),t.U.a.length=0,t.$.a.length=0,(t.G&1)!=0&&(zp(t,P),lk(t),Bp(t)),i=0;i<t.L.r;i++)gQ(t,i)?($1(t,-3),to(t,i,P),$1(t,t.Q)):t.p[i]!=0?($1(t,t.p[i]),to(t,i,P),$1(t,t.Q)):!r&&t.L.P!=1&&J(t.L,i)!=1&&J(t.L,i)!=6&&(t.G&ue)==0&&IA(t.L,i)==null&&J(t.L,i)<yl.length&&yl[J(t.L,i)]!=0?(f=yl[J(t.L,i)],dq(t,(n=t.M!=0?t.M:t.D!=0?t.D:-1,as(f,n))),to(t,i,P),$1(t,t.Q)):to(t,i,P);(t.G&1)==0&&(lk(t),Bp(t),zp(t,P))}}function vp(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C;for(T=c(B,F,6,n+1,15,1),g=c(B,F,6,r+1,15,1),v=r,D=D9(P[r-1]),D!=0?(i5(g,P,0,D),i5(T,A,0,D)):(PA(A,0,T,0,n),PA(P,0,g,0,r)),Q=g[v-1],L=e-1,s=n;L>=0;){if(o=0,T[s]==Q)o=-1;else if(d=at(Wt(V(T[s],g1),32),V(T[s-1],g1)),R=NW(d,Q),o=Ot(R),j=Ot(G0(R,32)),o!=0){l=0,C=0,b=!1,++o;do{if(--o,b)break;l=yn(V(o,g1),V(g[v-2],g1)),C=at(Wt(j,32),V(T[s-2],g1)),h=at(V(j,g1),V(Q,g1)),D9(Ot(b0(h,32)))<32?b=!0:j=Ot(h)}while(I1(g0(l,QE),g0(C,QE)))}if(o!=0&&(i=SZ(T,s-v,g,v,o),i!=0))for(--o,f=0,y=0;y<v;y++)f=at(f,at(V(T[s-v+y],g1),V(g[y],g1))),T[s-v+y]=Ot(f),f=b0(f,32);t[L]=o,--s,--L}return D!=0?(Sb(g,v,T,0,D),g):(PA(T,0,g,0,r),T)}function Za(t){var e,A,n,P,r,i,f;for(ut(t,15),i=c(B,F,6,3,15,1),A=0;A<t.g;A++)(t.v[A]&wn)!=0&&(f=(t.v[A]&b1)>>18,f!=0&&(i[f]=w.Math.max(i[f],(t.v[A]&b1)>>18!=1&&(t.v[A]&b1)>>18!=2?-1:(t.v[A]&VA)>>20)));for(P=0;P<t.i;P++)((t.G[P]&3)==1||(t.G[P]&3)==2)&&t.I[P]==1&&(f=(t.G[P]&768)>>8,f!=0&&(i[f]=w.Math.max(i[f],(t.G[P]&768)>>8!=1&&(t.G[P]&768)>>8!=2?-1:(t.G[P]&cn)>>10)));for(r=c(B,D0,7,3,0,2),r[1]=c(B,F,6,1+i[1],15,1),r[2]=c(B,F,6,1+i[2],15,1),e=0;e<t.g;e++)(t.v[e]&wn)!=0&&(f=(t.v[e]&b1)>>18,f!=0&&++r[f][(t.v[e]&b1)>>18!=1&&(t.v[e]&b1)>>18!=2?-1:(t.v[e]&VA)>>20]);for(n=0;n<t.i;n++)((t.G[n]&3)==1||(t.G[n]&3)==2)&&t.I[n]==1&&(f=(t.G[n]&768)>>8,f!=0&&++r[f][(t.G[n]&768)>>8!=1&&(t.G[n]&768)>>8!=2?-1:(t.G[n]&cn)>>10]);return r}function Wa(t,e){var A,n,P,r;for(t.b&&Mi(t.b),t.c&&Mi(t.c),P=0,n=X1(e);n!=null&&n.startsWith(so);){for(n=k1((zt(7,n.length+1),n.substr(7)));n.endsWith(\"-\");){if(A=X1(e),!A.startsWith(so))return!1;n=k1(Su(hA(n,0,n.length-1),(zt(7,A.length+1),A.substr(7))))}if(n.startsWith(\"BEGIN\"))if(r=k1((zt(6,n.length+1),n.substr(6))),r.startsWith(\"CTAB\"))P=1;else if(r.startsWith(\"ATOM\"))P=2;else if(r.startsWith(\"BOND\"))P=3;else if(r.startsWith(\"SGROUP\"))P=4;else if(r.startsWith(\"COLLECTION\"))P=5;else return!1;else if(n.startsWith(\"END\"))P=0;else if(P==1)nY(t,n);else if(P==2)s1t(t,n);else if(P==3)stt(t,n);else if(P==4)wtt(t,n);else if(P==5)_a(t,n);else return!1;n=X1(e)}for(;n!=null&&!(n.startsWith(hr)||e1(n,Lo));)n=X1(e);return!0}function _a(t,e){var A,n,P,r,i,f;if(f=mz(e),f!=null){if(i=DW(e,f),e.startsWith(\"MDLV30/STEABS\"))if(e1(f,E2))for(r=0;r<i.length;r++)Ne(t.j,YD(t,i[r]),0,-1);else for(P=0;P<i.length;P++)T8(t.j,gL(t,i[P]),0,-1);else if(e.startsWith(\"MDLV30/STERAC\"))if(n=L1(hA(e,13,De(e,13)),f1,Et),e1(f,E2))for(r=0;r<i.length;r++)Ne(t.j,YD(t,i[r]),1,n-1);else for(P=0;P<i.length;P++)T8(t.j,gL(t,i[P]),1,n-1);else if(e.startsWith(\"MDLV30/STEREL\"))if(n=L1(hA(e,13,De(e,13)),f1,Et),e1(f,E2))for(r=0;r<i.length;r++)Ne(t.j,YD(t,i[r]),2,n-1);else for(P=0;P<i.length;P++)T8(t.j,gL(t,i[P]),2,n-1);else if(e.startsWith(\"MDLV30/HILITE\"))if(e1(f,E2))for(P=0;P<i.length;P++)RD(t.j,YD(t,i[P]),448);else for(P=0;P<i.length;P++)A=gL(t,i[P]),RD(t.j,q(t.j,0,A),448),RD(t.j,q(t.j,1,A),448)}}function $a(t){var e,A,n,P,r,i,f,D,Q;if(!t.i)return!1;Ln(t.g,0),Ln(t.b,0),t.f=null,Q=!1,A=-1,n=null,t.c=t.d==null?null:c(ft,Dt,2,t.d.length,6,1),t.e=-1;do{try{if(D=X1(t.i),D==null)return Ln(t.g,0),!1}catch(o){if(o=_1(o),Jt(o,79))return Ln(t.g,0),!1;throw et(o)}if(Q)G(t.b,D),Ye(t.b,10);else if(D.startsWith(\">\"))Q=!0,G(t.g,hr),Ye(t.g,10),G(t.b,D),Ye(t.b,10);else{G(t.g,D),Ye(t.g,10),D.startsWith(hr)&&(Q=!0);continue}if(t.d!=null)if(D.length==0)A=-1;else if(A==-1){if(n=IR(D),n!=null){for(A=-1,e=0;e<t.d.length;e++)if(e1(n,t.d[e])){A=e;break}if(t.e==-1){for(r=pE,i=0,f=r.length;i<f;++i)if(P=r[i],e1(n,P)){t.e=A;break}}}}else t.c[A]==null?t.c[A]=D:t.c[A]=Su(Su(t.c[A],nn),D)}while(!D.startsWith(Lo));return!0}function aa(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(A=0;A<t.r;A++)y=Sn(t,A),y+An(t,A,y,t.D[A])-G1(t,A)<=0&&!(t.t[A]==0&&(t.D[A]==5||(P=t.D[A],P==7||P==15||P==33)||(n=t.D[A],n==8||n==16||n==34||n==52||n==84)))&&(t.C[A]=V(t.C[A],-6145));if(t.T)return!1;for(i=!1,e=0;e<t.g;e++)if(f=t.e[e]-t.k[e],f>0)for(A0(V(t.C[e],q1),0)&&(o=A0(V(t.C[e],uP),896)?3:A0(V(t.C[e],uP),384)?2:A0(V(t.C[e],128),128)?1:0,D=(y=Sn(t,e),y+An(t,e,y,t.D[e])-G1(t,e)),t.t[e]==0&&A0(V(t.C[e],yr),0)&&t.D[e]!=6&&++D,L=f,L>3-o&&(L=3-o),L>D+f-o&&(L=D+f-o),L>0&&(s=o==0?0:Wt(V(t.C[e],uP),L),s=z(s,(L==3?7:f==2?3:1)<<7),t.C[e]=V(t.C[e],-1921),t.C[e]=z(t.C[e],V(uP,s)))),Q=t.k[e];Q<t.e[e];Q++)r=t.n[e][Q],t.I[r]==1&&(t.D[t.j[e][Q]]=-1,t.I[r]=512,i=!0);return i&&Rf(t),i}function Fp(t,e){var A,n,P,r,i,f,D,Q,o,L;if((e&~t.U)!=0&&((t.U&1)==0&&(wR(t),Gp(t),t.U|=1,t.L&&!tQ(t)&&aa(t)&&(wR(t),Gp(t),t.U|=1)),(e&~t.U)!=0)){if((t.U&-7)!=0){for(n=0;n<t.g;n++)t.v[n]&=-15369;for(r=0;r<t.i;r++)t.G[r]&=-705;if((e&4)==0){lR(t,1),t.U|=2;return}for(lR(t,7),P=0;P<t.g;P++)for(o=0;o<t.k[P];o++)if(D=t.n[P][o],!(D<t.i&&Ee(t.q,D)))for(f=t.j[P][o],L=0;L<t.k[f];L++)t.n[f][L]!=D&&t.o[f][L]>1&&(t.D[t.j[f][L]]==6?t.v[P]|=E0:!eA(t,t.n[f][L])&&rA(t,t.j[f][L])&&(t.v[P]|=be));for(;;){for(Q=!1,A=0;A<t.g;A++)if(t.p[A]>0&&(t.v[A]&be)!=0&&!i0(t.q,A)){for(o=0;o<t.k[A];o++)if(t.o[A][o]>1)for(f=t.j[A][o],D=t.n[A][o],L=0;L<t.k[f];L++)t.n[f][L]!=D&&(i=t.j[f][L],(t.v[i]&be)==0&&(t.v[i]|=be,Q=!0))}if(!Q)break}}t.U|=6}}function kp(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;for(ut(t,7),Q=0,P=0;P<t.i;P++)dt(t,P)==1&&!(P<t.i&&Ee(t.q,P))&&n0(t,t.F[0][P])>1&&n0(t,t.F[1][P])>1&&(t.G[P]&64)==0&&!((t.G[P]&128)!=0&&(t.q&&P<t.i?TP(t.q,P):0)<=5)&&(e[P]=!0,++Q);for(i=c(B,F,6,2,15,1),y=c(B,F,6,2,15,1),r=null,n=0;n<t.i;n++)if(e[n]&&(r==null||!r[n])){for(A=0,L=0;L<2;L++)for(i[L]=t.F[L][n],y[L]=t.F[1-L][n],h=y[L];t.p[i[L]]==2&&n0(t,i[L])==2&&t.D[i[L]]<10;){for(s=0;s<2;s++)if(f=t.j[i[L]][s],f!=y[L]){D=t.n[i[L]][s],e[D]&&dt(t,D)==1&&(e[D]=!1,--Q),y[L]=i[L],i[L]=f,++A;break}if(i[L]==h){A=0;break}}A!=0&&(e[n]=!1,--Q,n0(t,i[0])>1&&n0(t,i[1])>1&&(T=V5(t,y[0],i[0]),g=V5(t,y[1],i[1]),o=T<g?0:1,l=o1(t,y[o],i[o]),r==null&&(r=c(Pt,it,6,t.i,16,1)),r[l]=!0,e[l]=!0,++Q))}return Q}function aQ(t,e,A){var n,P,r,i,f,D,Q,o;if(t.o[e]!=0)return!1;if(t.R.L){for(Q=0;Q<2;Q++)for(n=q(t.R,Q,e),o=0;o<Ct(t.R,n);o++)if(se(t.R,Z(t.R,n,o)))return!1}return dt(t.R,e)==1?r$(t,e,A):dt(t.R,e)!=2||eA(t.R,e)||(r=q(t.R,0,e),i=q(t.R,1,e),N(t.R,r)==1||N(t.R,i)==1)||N(t.R,r)>3||N(t.R,i)>3||t0(t.R,r)==2||t0(t.R,i)==2||(f=new Ff(t.R,t.f,i,r),f.f&&A==1)||(D=new Ff(t.R,t.f,r,i),D.f&&A==1)||f.f&&D.f?!1:(A==3&&(f.f&&f.c&&(t.V[e]=!0),D.f&&D.c&&(t.V[e]=!0)),P=Zh(t.R,e)?3:t.jb?htt(t,f,D):Yz(f,D),A==1?t.o[e]=P:A==2&&(f.f&&(P==1?Le(t.e[f.b],t.f[r]):P==2&&Le(t.e[f.d],t.f[r])),D.f&&(P==1?Le(t.e[D.b],t.f[i]):P==2&&Le(t.e[D.d],t.f[i]))),!0)}function ttt(t){var e,A,n,P,r,i,f,D,Q,o,L;for(A=0,L=new Zt(t.g);L.a<L.c.a.length;)if(Q=_t(L),ut(Q,1),Q.L)for(e=0;e<Q.g;e++)if(gt(V(Q.C[e],ne),0)){if(w.Math.abs(Q.A[e])!=0)return!1}else++A;else A+=Q.g;for(D=new Zt(t.f);D.a<D.c.a.length;)if(i=_t(D),ut(i,1),i.L)for(e=0;e<i.g;e++)if(gt(V(i.C[e],ne),0)){if(w.Math.abs(i.A[e])!=0)return!1}else--A;else A-=i.g;if(A!=0)return!1;for(r=Ss(t),n=c(Pt,it,6,r+1,16,1),o=new Zt(t.g);o.a<o.c.a.length;)for(Q=_t(o),e=0;e<Q.g;e++)if(!Q.L||A0(V(Q.C[e],ne),0)){if(P=w.Math.abs(Q.A[e]),n[P])return!1;n[P]=!0}for(f=new Zt(t.f);f.a<f.c.a.length;)for(i=_t(f),ut(i,1),e=0;e<i.g;e++)if(!i.L||A0(V(i.C[e],ne),0)){if(P=w.Math.abs(i.A[e]),P>=r||!n[P])return!1;n[P]=!1}return!0}function ett(t,e,A,n){var P,r,i,f,D,Q,o,L;for(f=t.e[n],D=f+1;D<t.A&&t.f[t.s[D]]==n;)++D;for(o=f;o<D;o++)A[o]=-1;for(i=f;;){if(L=t.u[i]==-1?t.H.g:Ue(t.H,t.G[t.u[i]]),++A[i],A[i]==L){if(A[i]=-1,i==f)break;--i,t.t[i]||(e[t.G[t.s[i]]]=!1,t.G[t.s[i]]=-1);continue}if(t.u[i]==-1)e[A[i]]||sy(t,A[i],t.s[i])&&(t.G[t.s[i]]=A[i],e[A[i]]=!0,++i);else{if(Z(t.H,t.G[t.u[i]],A[i])>=t.H.g)continue;r=Z(t.H,t.G[t.u[i]],A[i]),t.t[i]?r==t.G[t.s[i]]&&Ay(t,Nt(t.H,t.G[t.u[i]],A[i]),t.v[i])&&++i:e[r]||sy(t,r,t.s[i])&&Ay(t,Nt(t.H,t.G[t.u[i]],A[i]),t.v[i])&&(e[r]=!0,t.G[t.s[i]]=r,++i)}if(i==D){if(Mp(t,n)&&hR(t,n)&&AR(t,e,n)){for(Q=f;Q<D;Q++)t.t[Q]||(P=t.s[Q],e[t.G[P]]=!1,t.G[P]=-1);return!0}--i,t.t[i]||(e[t.G[t.s[i]]]=!1,t.G[t.s[i]]=-1)}}return!1}function Att(t){var e,A,n,P,r,i,f;if(i=Ki(t.o),A=null,i.length!=0&&(n=i.indexOf(R0(64)),n!=-1&&(A=(Mt(0,n,i.length),i.substr(0,n)),i=(zt(n+1,i.length+1),i.substr(n+1)))),i.length!=0&&(e=zA(i,t.d.c),e!=0||e1(i,\"?\"))){if(P=0,Ki(t.p).length!=0)try{if(P=L1(Ki(t.p),f1,Et),P<(O1(),j8)[e]-18||P>j8[e]+12){ED(t.c,\"Your mass is out of range!\");return}}catch(D){if(D=_1(D),Jt(D,42)){ED(t.c,\"Your mass is not a number!\");return}else throw et(D)}if(f=-1,Ki(t.q).length!=0)try{if(f=L1(Ki(t.q),f1,Et),f<0||f>15){ED(t.c,\"Your valence is out of range!\");return}}catch(D){if(D=_1(D),Jt(D,42)){ED(t.c,\"Your valence is not a number!\");return}else throw et(D)}r=v0(t.b)==1?32:v0(t.b)==2?48:v0(t.b)==3?16:0,RG(t.d,e,P,f,r,A),t.a!=-1&&(mf(t.e,t.a,e,P,f,r),IP(t.e,t.a,A)),t.f=!0,N9(t.c)}}function c6(){c6=v1,EE=m(k(ft,1),Dt,2,6,[\"\",\"r0\",\"r\",\"r3\",\"r3-4\",\"r3-5\",\"r3-6\",\"r3-7\",\"r4\",\"r4-5\",\"r4-6\",\"r4-7\",\"r>3\",\"r5\",\"r5-6\",\"r5-7\",\"r>4\",\"r6\",\"r6-7\",\"r>5\",\"r7\",\"r>6\",\"r>7\",\"r0|>7\"]),VE=m(k(ft,1),Dt,2,6,[b8,XV,\"is in any ring\",\"3 members\",\"3-4 members\",\"3-5 members\",\"3-6 members\",\"3-7 members\",\"4 members\",\"4-5 members\",\"4-6 members\",\"4-7 members\",\"> 3 members\",\"5 members\",\"5-6 members\",\"5-7 members\",\"> 4 members\",\"6 members\",\"6-7 members\",\"> 5 members\",\"7 members\",\"> 6 members\",\"> 7 members\",\"no ring or >7 members\"]),di=m(k(XA,1),Pe,6,14,[0,w8,lM,h9,25769803776,60129542144,128849018880,266287972352,T9,51539607552,120259084288,257698037760,532575944704,c9,103079215104,240518168576,515396075520,w9,206158430208,481036337152,g9,412316860416,Vf,279172874240])}function ntt(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;if(A&&t.eb==6)for(T=c(B,F,6,t.L.length,15,1),r=0;r<t.V.r;r++)s=t.M[r],_n(t.L[s],T[s],!r0(t.V,r)),++T[s];for(f=c(Ml,e0,36,t.L.length,0,1),y=0;y<t.L.length;y++)t.eb==6&&(U9(new a8(A?4:0),t.L[y]),hf(t.L[y])),D=new mu(t.L[y]),wk(D,e,null,Q0|t.T),f[y]=D.v;for(v=1.8000000715255737*t.T,i=Qn(t.V,24*t.ab),n=(t.U&4)==0?0:t.eb==5?SV*ND(t.k):FT(x(t.I,0))*t.T/i,g=.5*v,l=0;l<=t.L.length&&((t.U&4)!=0&&l==t.Y&&(G3(x(t.I,0),g-v/2,Y9(t.k)/2,g-v/2+n,Y9(t.k)/2),g+=n),l!=t.L.length);l++)Q=g-f[l].c,o=.5*(Y9(t.k)-f[l].a)-f[l].d,OL(t.L[l],Q,o),g+=v+f[l].b;for($5(t.G,e,new lA(0,0,ND(t.k),Y9(t.k)),Q0|t.T),h=c(B,F,6,t.L.length,15,1),P=0;P<t.V.r;P++)L=t.M[P],ge(t.V,P,mt(t.L[L],h[L])),Ve(t.V,P,Rt(t.L[L],h[L])),++h[L];hf(t.V)}function Ptt(t,e){var A,n,P,r,i,f,D,Q,o,L,s;for(f=new n1,ut(e,1),Q=c(Pt,it,6,e.g,16,1),A=0;A<e.g;A++)if(t.f[A]&&(J(t.i,A)==7||J(t.i,A)==8||J(t.i,A)==16||J(t.i,A)==34||J(t.i,A)==52)){for(Q[A]=!0,D=0;D<e.k[A];D++)if(n=e.j[A][D],r=e.n[A][D],L=e.o[A][D],e.p[n]!=0&&e.p[A]<L){for(Q[n]=!0,Ft(f,U1(r)),o=0;o<e.k[n];o++)P=e.j[n][o],Q[P]||(Q[P]=!0,i=e.n[n][o],s=e.o[n][o],e.p[n]+2==L+s&&(Ft(f,U1(i)),L>=s&&(e.p[P]<s?cQ(e,P)&&Dy(t,e,P,!0,!1,Q,f):Dy(t,e,P,!0,!0,Q,f)),s>=L&&cQ(e,A)&&Dy(t,e,P,!1,!1,Q,f),t.f[P]&&(J(t.i,P)==5||J(t.i,P)==6||J(t.i,P)==7||J(t.i,P)==8||J(t.i,P)==16||J(t.i,P)==34||J(t.i,P)==52)&&e.p[P]<s&&(L<=2&&s>=2&&cQ(e,A)&&Vm(t,e,r,i),L>=2&&s<=2&&cQ(e,P)&&Vm(t,e,i,r)),cA(f,f.a.length-1)),Q[P]=!1);cA(f,f.a.length-1),Q[n]=!1}Q[A]=!1}}function rtt(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a;for(d=-1,C=0,R=0,S=0,T=0,g=0,v=0,I=0,a=0,C=0,o=0;o<t.d;o++)C+=n[o]*n[o];if(C=w.Math.sqrt(C),C>r)for(L=0;L<t.d;L++)n[L]*=r/C;for(R=0,s=0;s<t.d;s++)R+=n[s]*t.e[s];if(R>=0)return d;for(S=0,y=0;y<t.d;y++)E=w.Math.abs(n[y])/w.Math.max(w.Math.abs(e[y]),1),E>S&&(S=E);for(v=1e-7/S,T=1,h=0;h<1e3;){if(T<v){d=1;break}for(l=0;l<t.d;l++)P[l]=e[l]+T*n[l];if(t.k=ls(t,P),t.k-A<=Bo*T*R)return 0;h==0?I=-R/(2*(t.k-A-R)):(b=t.k-A-T*R,j=a-A-g*R,i=(b/(T*T)-j/(g*g))/(T-g),f=(-g*b/(T*T)+T*j/(g*g))/(T-g),i==0?I=-R/(2*f):(D=f*f-3*i*R,D<0?I=.5*T:f<=0?I=(-f+w.Math.sqrt(D))/(3*i):I=-R/(f+w.Math.sqrt(D))),I>.5*T&&(I=.5*T)),g=T,a=t.k,T=w.Math.max(I,.1*T),++h}for(Q=0;Q<t.d;Q++)P[Q]=e[Q];return d}function itt(t){var e,A,n,P,r,i,f,D,Q,o,L;for(t._=c(_,At,6,t.R.g,15,1),e=0;e<t.R.g;e++)if(t.db[e]==1||t.db[e]==2){if(D=t.eb[e],UT(t.R,e))for(f=0;f<N(t.R,e);f++){for(P=Z(t.R,e,f),L=0,o=c(B,F,6,3,15,1),Q=0;Q<N(t.R,P);Q++)o[L]=Z(t.R,P,Q),o[L]!=e&&++L;L==2&&t.f[o[0]]>t.f[o[1]]^t.H[o[0]]<t.H[o[1]]&&(D=!D)}else for(f=1;f<N(t.R,e);f++)for(Q=0;Q<f;Q++)r=Z(t.R,e,f),i=Z(t.R,e,Q),t.f[r]>t.f[i]&&(D=!D),t.H[r]<t.H[i]&&(D=!D);t._[e]=t.db[e]==1^D?1:2}else t._[e]=t.db[e];for(t.j=c(_,At,6,t.R.i,15,1),A=0;A<t.R.i;A++)if(t.o[A]==1||t.o[A]==2){for(D=!1,f=0;f<2;f++)if(n=q(t.R,f,A),N(t.R,n)==3){for(o=c(B,F,6,2,15,1),L=0,Q=0;Q<3;Q++)Z(t.R,n,Q)!=q(t.R,1-f,A)&&(o[L++]=Z(t.R,n,Q));t.f[o[0]]>t.f[o[1]]&&(D=!D),t.H[o[0]]<t.H[o[1]]&&(D=!D)}t.j[A]=t.o[A]==1^D?1:2}else t.j[A]=t.o[A]}function ftt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b;for(e=B_(t),r=c(_,At,6,t.f.s,15,1),f$(t,r,e),P=0;P<t.f.s;P++)r[P]==2&&(Gi(t.f,q(t.f,0,P))||Gi(t.f,q(t.f,1,P)))&&(r[P]=3);for(y=0;y<t.d.a.length;y++){for(L=x(t.d,y),D=Rj(L),g=L.c,T=new D6(L),h=-1,s=0;s<224&&D.a.length!=0;s++){if(Q=kQ(t.g,D.a.length),f=(te(Q,D.a.length),D.a[Q]),i=n$(t,f[0],f[1]),A=c(B,F,6,i.length,15,1),n=0,s<32)for(l=1;l<i.length-1;l++)r[i[l]]==3&&(A[n++]=i[l]);else if(s<96)for(l=1;l<i.length-1;l++)r[i[l]]>=2&&(A[n++]=i[l]);else for(l=1;l<i.length-1;l++)r[i[l]]>=1&&(A[n++]=i[l]);if(n!=0){if(d=A[0],n>1)do d=A[kQ(t.g,n)];while(d==h);d!=h&&(h=d,Vp(L,d),D=Rj(L),g>L.c&&(g=L.c,T=new D6(L)))}}Zr(t.d,y,T),L=T,o=1;do{for(v=9999,l=0;l<L.e.length;l++)b=e[L.e[l]],b==o?ptt(L,l):b>o&&b<v&&(v=b);o=v}while(v!=9999)}}function mp(t,e,A,n,P){var r,i;if(P.d=!0,P.c=!0,e[A]==35){for(++A,t.r=!0,P.a=0,P.b=1;A<n&&Rn(e[A]&d1);)P.a=10*P.a+e[A]-48,++P.b,++A;if(P.a==0||P.a>=(O1(),J0).length)throw et(new H1(\"SmilesParser: Atomic number out of range. position:\"+(A-1)));return!0}if(e[A]>=65&&e[A]<=90){if(P.b=e[A+1]>=97&&e[A+1]<=122?2:1,P.a=(O1(),zA(z8(F2(e,A,(i=P.b,c0(),i))),321)),P.b==2&&P.a==0&&(P.b=1,P.a=zA(z8(F2(e,A,(r=P.b,r))),321)),P.d=!1,P.a==0)throw et(new H1(\"SmilesParser: Unknown atom label. position:\"+(A-1)));return!0}return e[A]==97&&e[A+1]==115||e[A]==115&&e[A+1]==101?(P.b=2,P.a=(O1(),zA(z8(F2(e,A,(r=P.b,c0(),r))),321)),P.c=!1,!0):e[A]==99||e[A]==110||e[A]==111||e[A]==112||e[A]==115?(P.b=1,P.a=(O1(),zA(z8(F2(e,A,(r=P.b,c0(),r))),321)),P.c=!1,!0):!1}function Dtt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(A=-1,Q=!1,y=Ge,e=Pr(t.i,t.c),h=0;h<t.d.length;h++)t.d[h]<t.v[h].d.length-1&&(s=Gh(e,h,t.d[h])/Gh(e,h,t.d[h]+1),y>s&&(y=s,A=h));for(T=0;T<t.c.length;T++)t.c[T]<t.u[T].b.length-1&&(s=Fh(t.u[T],t.c[T])/Fh(t.u[T],t.c[T]+1),y>s&&(y=s,A=T,Q=!0));if(A==-1){t.a=null;return}for(r=1,f=0;f<t.d.length;f++)(Q||f!=A)&&(r*=t.d[f]+1);for(D=0;D<t.c.length;D++)(!Q||D!=A)&&(r*=t.c[D]+1);for(t.a=c(pS,H2,168,r,0,1),Q?++t.c[A]:++t.d[A],i=0;i<r;i++){for(l=i,v=c(B,F,6,t.d.length,15,1),L=0;L<t.d.length;L++)(Q||L!=A)&&(g=t.d[L]+1,g!=1&&(v[L]=l%g,l=l/g|0));for(P=c(B,F,6,t.c.length,15,1),o=0;o<t.c.length;o++)(!Q||o!=A)&&(n=t.c[o]+1,n!=1&&(P[o]=l%n,l=l/n|0));Q?P[A]=t.c[A]:v[A]=t.d[A],t.a[i]=Xu(t,v,P)}ju(t.a,new Zw),t.b=-1}function bp(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C;if(!((t.G[e]&3)==0||(t.G[e]&3)==3||!oi(t,e))){for(j=-1,d=-1,b=-1,v=-1,P=0,L=0;L<2;L++)for(n=t.F[L][e],l=0;l<t.e[n];l++)f=t.n[n][l],f!=e&&dt(t,f)==1&&(i=t.j[n][l],R=GQ(t,f,i),P<R&&(P=R,d=i,j=f,b=n,v=t.F[1-L][e]));if(d!=-1){for(s=0;s<2;s++)for(l=0;l<t.e[t.F[s][e]];l++)f=t.n[t.F[s][e]][l],f!=e&&dt(t,f)==1&&(t.I[f]=1);for(t.F[1][j]!=d&&(t.F[0][j]=t.F[1][j],t.F[1][j]=d),D=Et,y=0;y<t.k[b];y++)i=t.j[b][y],t.n[b][y]!=e&&D>i&&(D=i);for(T=c(B,F,6,2,15,1),g=0,o=0;o<t.k[v];o++)t.n[v][o]!=e&&(T[g++]=t.j[v][o]);r=pA(t.K[b].a,t.K[b].b,t.K[v].a,t.K[v].b),A=0,g==2?(T[0]>T[1]&&(C=T[0],T[0]=T[1],T[1]=C),Q=Ze(r,_0(t,v,T[0])),h=Ze(r,_0(t,v,T[1])),A=Q-h):A=Ze(r,_0(t,v,T[0])),A<0^(t.G[e]&3)==2^D==d?t.I[j]=257:t.I[j]=129}}}function utt(t){var e,A,n;if(null.zd()||null.zd())a5(t,!0);else if(null.zd())t.r&&nF();else if(null.zd())MN(t,null.zd());else if(null.zd())Wv(t);else if(!null.zd())if(null.zd())bQ(t),SL(t,w.Math.max(t.eb,1));else if(null.zd())D5(t,!0,!0);else if(null.zd())D5(t,!1,!0);else if(null.zd())D5(t,!0,!1);else if(null.zd())YJ(t);else if(null.zd())No=!No,No&&bQ(t);else if(null.zd())J5(t,!0);else if(null.zd())J5(t,!1);else if(null.zd())eZ(t);else if(null.zd())E3(t._,tE,eE);else if(null.zd())if(null.zd(),e=L1(null.zd(),f1,Et),A=L1(null.zd(),f1,Et),r0(t.V,e))for(n=0;n<t.V.g;n++)r0(t.V,n)&&RD(t.V,n,A);else RD(t.V,e,A);else null.zd()?(t.H=6,t.eb=w.Math.max(t.eb,1),P1(t.k)):null.zd()?(t.H=256,t.eb=w.Math.max(t.eb,1),P1(t.k)):null.zd()&&qG(t,t.w==19?16:0)}function Qtt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h;if(P=new LD,Ft(P.a,new ae(\"cLogP Values are estimated applying an atom-type based increment system.\",2)),Ft(P.a,new ae(xV,2)),Ft(P.a,new ae(k4,2)),t){for(Li(t),ut(t,7),f=0,n=new cP,D=new sD(\"#0.000\"),e=0;e<t.g;e++)try{A=Ly(t,e,6241),h=de(n,dQ(A)),h?We(n,dQ(A),U1(h.a+1)):We(n,dQ(A),U1(1))}catch(T){if(T=_1(T),Jt(T,19))++f;else throw et(T)}for(f!=0&&Ft(P.a,new ae(\"Warning: \"+f+\" atom type(s) could not be determined.\",2)),l=(i=new J8(new K8(new br(n).a).b),new jr(i));Nr(l.a.a);)y=(r=H9(l.a),r.hd()),o=u9(Wf,y),(o<0?-1:o)!=-1?e8(P,(s=y,t8(e9(n,s))+\" * \"+xh(D,yc[Q=u9(Wf,y),Q<0?-1:Q])+\" AtomType: 0x\"+u5(y.a)),2):e8(P,\"Warning: For atom type 0x\"+u5(y.a)+\" (\"+(L=y,t8(e9(n,L)))+\" times found) is no increment available.\",2)}return P}function jp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(h=e.g,t.j=c(XA,Pe,6,e.g,14,1),t.k=c(B,F,6,e.g,15,1),f=0;f<h;f++)t.j[f]=g0(V(z(Wp(e,f),e.C[f]),A4),dM),t.k[f]=e.D[f],(A&1)!=0&&(t.k[f]+=e.t[f]+16<<8),(A&2)!=0&&(t.k[f]+=e.B[f]<<16);for(t.B=c(XA,Pe,6,e.g,14,1),g=(ut(e,7),e.q),l=0;l<g.j.a.length;l++){for(y=!1,Q=x(g.k,l),o=0,L=Q.length;o<L;++o)if(s=Q[o],(e.H[s]&d8)!=0){y=!0;break}if(!y)for(v=x(g.k,l).length,P=x(g.j,l),r=0,i=P.length;r<i;++r)n=P[r],v==3?t.B[n]=z(t.B[n],h9):v==4?t.B[n]=z(t.B[n],T9):v==5?t.B[n]=z(t.B[n],c9):v==6?t.B[n]=z(t.B[n],w9):v==7&&(t.B[n]=z(t.B[n],g9))}for(T=e.i,t.n=c(B,F,6,e.i,15,1),D=0;D<T;D++)t.n[D]=(mj(e,D)|e.H[D])&6291967^6291840,(A&4)!=0?(t.n[D]&2)!=0&&(t.n[D]|=8):(A&8)!=0&&(t.n[D]&2)!=0&&D<e.i&&Ee(e.q,D)&&(t.n[D]|=8)}function ott(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;if(f=-1,P=xs(t,e),i=P==-1?es(t,e):-1,A!=0){for(y=-1,o=0;o<t.V.g;o++)o!=P&&fe(t.V,o)==A&&(!bP(t.V,e)||!r0(t.V,o))&&(D=OA(t.V,o),y<D&&(y=D));for(L=0;L<t.V.i;L++)L!=i&&gP(t.V,L)==A&&(!bP(t.V,e)||!bP(t.V,L))&&(D=ef(t.V,L),y<D&&(y=D));if((P==-1?gP(t.V,i):fe(t.V,P))!=A)f=w.Math.min(y+1,31);else if(f=P==-1?ef(t.V,i):OA(t.V,P),bP(t.V,e)){for(l=!0,s=0;s<t.V.g;s++)if(s!=P&&r0(t.V,s)&&fe(t.V,s)==A&&OA(t.V,s)!=f){l=!1;break}for(Q=0;Q<t.V.i;Q++)if(Q!=i&&bP(t.V,Q)&&gP(t.V,Q)==A&&ef(t.V,Q)!=f){l=!1;break}l&&(f<=y?(++f,f==32&&(f=0)):f=0)}else f<=y?(++f,f==32&&(f=0)):f=0}if(bP(t.V,e))for(Q=0;Q<t.V.i;Q++)bP(t.V,Q)&&q9(t.V,Q)&&(n=xs(t,Q),r=es(t,Q),n!=-1?Ne(t.V,n,A,f):r!=-1&&T8(t.V,r,A,f));else P!=-1?Ne(t.V,P,A,f):i!=-1&&T8(t.V,i,A,f)}function Utt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;for(P=c(Ml,e0,36,t.k.length,0,1),j=0,b=0,y=0;y<t.k.length;y++)w2(t.e[y],e,null,Q0),P[y]=t.e[y].v,j+=P[y].b,b=w.Math.max(b,P[y].a);for(f=c(Ml,e0,36,t.a.length,0,1),d=0,v=0,l=0;l<t.a.length;l++)w2(t.b[l],e,null,65552),f[l]=t.b[l].v,d=w.Math.max(d,f[l].b),v+=f[l].a+12;if(n=w.Math.max(48,d+24),b=w.Math.max(b,24+2*v),A=-1,!t.g)t.g=new oU,Ft(t.g,new _D),A=0;else{for(h=0;h<t.g.a.length;h++)if(Jt(x(t.g,h),63)){A=h;break}A==-1&&(A=t.g.a.length,Ft(t.g,new _D))}for(g=18,s=0;s<t.k.length;s++){if(s==t.n){for(G3(x(t.g,A),g-18,b/2,g-18+n,b/2),r=g+-6,i=.5*(b-12)-v,T=0;T<t.a.length;T++)Q=r+.5*(d-f[T].b)-f[T].c,L=i-f[T].d,ZU(t.b[T],new i3(Q,L)),i+=12+f[T].a;g+=n}D=g-P[s].c,o=.5*(b-P[s].a)-P[s].d,ZU(t.e[s],new i3(D,o)),g+=36+P[s].b}t.o=!1}function Ltt(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(ut(t.g,t.N),D=w.Math.max(t.g.g,t.g.i)+16,t.s=c(B,F,6,D,15,1),t.u=c(B,F,6,D,15,1),t.v=c(B,F,6,D,15,1),t.t=c(Pt,it,6,D+1,16,1),i=c(Pt,it,6,t.g.g,16,1),f=c(Pt,it,6,t.g.i,16,1),n=0,A=0;A<t.g.g;A++)if(!t.D[A]&&!i[A])for(t.s[n]=A,t.v[n]=-1,t.u[n]=-1,Q=n;n<=Q;){for(o=0;o<Ue(t.g,t.s[n]);o++)Q=v5(t,n,Q,o,i,f,-1);for(;t.t[++n];);}if(t.w=n,t.p!=0){for(Q=t.w-1,r=0;r<t.d;r++)for(n=0;n<=Q;){for(L=0;L<Ue(t.g,t.s[n]);L++)Q=v5(t,n,Q,L,i,f,r);for(;t.t[++n];);}for(e=0;e<t.g.g;e++)if(t.D[e]&&!i[e])for(t.s[n]=e,t.v[n]=-1,t.u[n]=-1,Q=n;n<=Q;){for(L=0;L<Ue(t.g,t.s[n]);L++)Z(t.g,t.s[n],L)<t.g.g&&(Q=v5(t,n,Q,L,i,f,t.f[e]));for(;t.t[++n];);}for(t.e=c(B,F,6,t.d,15,1),s=0;s<t.d;s++)t.e[s]=-1;for(o=t.w;o<n;o++)P=t.f[t.s[o]],t.e[P]==-1&&(t.e[P]=o)}t.A=n}function stt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d;for(l=0,h=(D=De(e,l),D==-1?e.length:D),r=L1((Mt(l,h,e.length),e.substr(l,h-l)),f1,Et),l=gA(e,h),h=(Q=De(e,l),Q==-1?e.length:Q),i=L1((Mt(l,h,e.length),e.substr(l,h-l)),f1,Et),l=gA(e,h),h=(o=De(e,l),o==-1?e.length:o),A=YD(t,L1((Mt(l,h,e.length),e.substr(l,h-l)),f1,Et)),l=gA(e,h),h=(L=De(e,l),L==-1?e.length:L),n=YD(t,L1((Mt(l,h,e.length),e.substr(l,h-l)),f1,Et)),g=0,v=0;(l=gA(e,h))!=-1;)if(h=(f=De(e,l),f==-1?e.length:f),T=(Mt(l,h,e.length),e.substr(l,h-l)),y=T.indexOf(R0(61)),s=(Mt(0,y,T.length),T.substr(0,y)),d=L1((zt(y+1,T.length+1),T.substr(y+1)),f1,Et),e1(s,\"CFG\"))switch(d){case 1:g=1;break;case 2:g=i==2?3:4;break;case 3:g=6}else e1(s,\"TOPO\")&&(v=d);P=bR(t,A,n,i,g,v),P+1!=r&&(!t.c&&(t.c=new cP),We(t.c,U1(r),U1(P)))}function ytt(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;if(Q=k1(X1(e)),Q.length==0||(t.e=Q),X1(e),n=X1(e),!A&&n.startsWith(Xy)&&(P=(zt(13,n.length+1),n.substr(13)),_Q(P,!0,t)))return!0;for(l=X1(e),y=L1(k1((Mt(0,3,l.length),l.substr(0,3))),f1,Et),L=L1(k1((Mt(3,6,l.length),l.substr(3,3))),f1,Et),f=new Du,i=0;i<y;i++){if(l=X1(e),l==null||!l.startsWith(\"$MOL\"))throw et(new H1(KC));s=new _A,D=new su;do l=X1(e),D.a+=\"\"+l,D.a+=nn;while(l!=null&&!l.startsWith(hr));if(l==null)throw et(new H1(JC));IU(f,s,new un(new Sr(D.a))),Ft(t.g,s),t.d=-1}for(r=0;r<L;r++){if(l=X1(e),l==null||!l.startsWith(\"$MOL\"))throw et(new H1(KC));o=new _A,D=new su;do l=X1(e),D.a+=\"\"+l,D.a+=nn;while(l!=null&&!l.startsWith(hr));if(l==null)throw et(new H1(JC));IU(f,o,new un(new Sr(D.a))),Ft(t.f,o),t.d=-1}return!0}function ltt(t,e){s8();var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I;for(Bm(),l=c(Pt,it,6,e.s,16,1),kp(e,l),i=0;i<e.i;i++)if(l[i]&&(E=c(B,F,6,4,15,1),S=new XT,I=uk(e,i,E,S),I!=null&&!rW(E,t)&&(C=(j=y2(LP,I),j?yp(j):null),Q=(R=y2(LP,I),R?KR(R):null),g=(b=y2(LP,I),b?Ep(b):null),C==null&&(T=new b6(e,E),C=T.b,Q=T.a,g=T.c),C!=null))){if(n=null,d=0,(e.G[i]&64)==0){for(y=j1(Pt,[T0,it],[12,6],16,[2,e.r],2),D=c(B,F,6,2,15,1),L=0;L<2;L++)D[L]=JQ(e,S.e[L],S.b[L],y[L],null,null);for(d=D[0]<D[1]?0:1,n=c(B,F,6,D[d],15,1),s=0,A=0;A<e.r;A++)y[d][A]&&(n[s++]=A)}Ft(t,new WL(C,Q,g,E,n,d))}for(r=0;r<e.i;r++)if(e.I[r]==1&&(e.G[r]&64)==0){for(L=0;L<2;L++)if(f=e.F[L][r],h=n0(e,f),o=e.e[f]-h,h==1&&o!=0){v=e.F[1-L][r],P=e.D[f],P>6&&e.p[v]==1?na(e,f,v,o,t):e.p[v]!=2&&e.e[v]>1&&U$(e,f,v,o,t);break}}}function htt(t,e,A){var n,P,r,i,f,D,Q;return r=c(Ut,Tt,6,3,15,1),r[0]=mt(t.R,A.a)-mt(t.R,e.a),r[1]=Rt(t.R,A.a)-Rt(t.R,e.a),r[2]=oA(t.R,A.a)-oA(t.R,e.a),D=c(Ut,Tt,6,3,15,1),D[0]=mt(t.R,e.b)-mt(t.R,e.a),D[1]=Rt(t.R,e.b)-Rt(t.R,e.a),D[2]=oA(t.R,e.b)-oA(t.R,e.a),Q=c(Ut,Tt,6,3,15,1),Q[0]=mt(t.R,A.b)-mt(t.R,A.a),Q[1]=Rt(t.R,A.b)-Rt(t.R,A.a),Q[2]=oA(t.R,A.b)-oA(t.R,A.a),i=c(Ut,Tt,6,3,15,1),i[0]=r[1]*D[2]-r[2]*D[1],i[1]=r[2]*D[0]-r[0]*D[2],i[2]=r[0]*D[1]-r[1]*D[0],f=c(Ut,Tt,6,3,15,1),f[0]=r[1]*i[2]-r[2]*i[1],f[1]=r[2]*i[0]-r[0]*i[2],f[2]=r[0]*i[1]-r[1]*i[0],n=(D[0]*f[0]+D[1]*f[1]+D[2]*f[2])/(w.Math.sqrt(D[0]*D[0]+D[1]*D[1]+D[2]*D[2])*w.Math.sqrt(f[0]*f[0]+f[1]*f[1]+f[2]*f[2])),P=(Q[0]*f[0]+Q[1]*f[1]+Q[2]*f[2])/(w.Math.sqrt(Q[0]*Q[0]+Q[1]*Q[1]+Q[2]*Q[2])*w.Math.sqrt(f[0]*f[0]+f[1]*f[1]+f[2]*f[2])),n<0^P<0?1:2}function Rp(t,e,A,n){var P,r,i,f,D;D=n.a.length,t.f[e]!=0&&Ye(n,t.f[e]==1?47:92),t.j==1&&(P=ie(t.k,e)&127,P!=0&&((P&1)!=0&&t.f[e]==0&&(n.a+=\"-\"),(P&2)!=0&&(n.a.length!=D&&(n.a+=\",\"),n.a+=\"=\"),(P&4)!=0&&(n.a.length!=D&&(n.a+=\",\"),n.a+=\"#\"),(P&32)!=0&&(n.a.length!=D&&(n.a+=\",\"),n.a+=\"$\"),(P&64)!=0&&(n.a.length!=D&&(n.a+=\",\"),n.a+=\"$\"),(P&8)!=0&&(n.a.length!=D&&(n.a+=\",\"),n.a+=\":\"),(P&16)!=0&&(n.a.length!=D&&(n.a+=\",\"),G(n,ee(t.k,A)?\"<-\":\"->\")))),D==n.a.length&&(!eA(t.k,e)||(t.j&4)!=0)&&(r=c1(t.k,e)&127,r==1?mn(t.k,q(t.k,0,e))&&mn(t.k,q(t.k,1,e))&&(t.j&4)==0&&t.f[e]==0&&(n.a+=\"-\"):r==2?n.a+=\"=\":r==4?n.a+=\"#\":r==32||r==64?n.a+=\"$\":r==8?n.a+=\":\":r==16&&G(n,ee(t.k,A)?\"<-\":\"->\")),t.j==1&&(i=D==n.a.length?\"\":\";\",f=ie(t.k,e)&384,f==256?n.a+=i+\"@\":f==128&&(n.a+=i+\"!@\"))}function Ttt(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T;if(t.R.g==0){t.s=\"\";return}for(L=t.jb&t.b,T=t.jb?16:8,U3(t,!0),Ye(t.u,L?35:33),qt(t,t.jb?1:0,1),qt(t,e?1:0,1),qt(t,T>>1,4),l=0,D=1;D<t.R.g;D++)l=Nj(t,t.B[D],t.F[D]==-1?-1:t.B[t.F[D]],l,A);if(L)for(Q=0;Q<t.R.g;Q++)for(n=t.B[Q],y=N(t.R,n);y<Ct(t.R,n);y++)l=Nj(t,Z(t.R,n,y),n,l,A);if(t.R.g>1&&l==0){t.s=\"\";return}for(i=1<<T,s=l/((i>>1)-1),h=l+.5*s,o=1;o<t.R.g;o++)oj(t,t.B[o],t.F[o]==-1?-1:t.B[t.F[o]],h,s,T,A);if(L)for(f=0;f<t.R.g;f++)for(n=t.B[f],y=N(t.R,n);y<Ct(t.R,n);y++)oj(t,Z(t.R,n,y),n,h,s,T,A);e&&(r=t.jb?1.5:(O1(),O1(),Bn),P=LR(t.R,L?t.R.r:t.R.g,L?t.R.s:t.R.i,r,A),qt(t,w.Math.min(i-1,w.Math.max(0,Bt(.5+w.Math.log10(P/.1)/w.Math.log10(2e3)*(i-1)))),T),qt(t,KT(A[t.B[0]].a/P,i),T),qt(t,KT(A[t.B[0]].b/P,i),T),t.jb&&qt(t,KT(A[t.B[0]].c/P,i),T)),t.s=qL(t)}function w6(t,e){var A,n,P,r,i,f,D,Q,o,L;for(P=au(e,0);P>0&&e[P-1]==45;)P=au(e,P+1);for(r=P==-1?-1:au(e,P+1);r>0&&e[r-1]==45;)r=au(e,r+1);if(r==-1)throw et(new H1(\"Missing one or both separators ('>').\"));if(au(e,r+1)!=-1)throw et(new H1(\"Found more than 2 separators ('>').\"));for(L=new U8,o=0,n=0;n<e.length;){for(;n<e.length&&e[n]==46;)++n;if(n==e.length)break;for(Q=n,D=-1,i=0,A=n;A<e.length;A++){if(e[A]==40){++i;continue}if(e[A]==41){if(--i<0)throw et(new H1(\"Found closing bracket without matching opening one.\"));continue}if(i==0&&(e[A]==46&&(t.o||A+1<e.length&&e[A+1]==46)||e[A]==62&&(A==0||e[A-1]!=45))){D=A;break}}if(D==-1&&(D=e.length),Q<D){if(f=new _A,p6(t,f,e,Q,D,!0,!0),t.q==1&&t.p)return w6(new BQ(t.j|2),e);o==0?(Ft(L.g,f),L.d=-1):o==1?Ft(L.a,f):(Ft(L.f,f),L.d=-1)}for(n=D;n<e.length&&e[n]==62;)++n,++o}return L}function g6(){g6=v1;var t,e,A;for(new ff(1,0),new ff(10,0),new ff(0,0),oS=c(US,_e,31,11,0,1),zo=c(Fr,Pe,6,100,15,1),mc=m(k(Ut,1),Tt,6,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,0x878678326eac9]),bc=c(B,F,6,mc.length,15,1),vi=m(k(Ut,1),Tt,6,15,[1,10,100,1e3,fP,Ny,1e6,1e7,1e8,Jf,1e10,1e11,1e12,1e13,1e14,1e15,1e16]),Vl=c(B,F,6,vi.length,15,1),Ko=c(US,_e,31,11,0,1),t=0;t<Ko.length;t++)oS[t]=new ff(t,0),Ko[t]=new ff(0,t),zo[t]=48;for(;t<zo.length;t++)zo[t]=48;for(A=0;A<bc.length;A++)bc[A]=Vs(mc[A]);for(e=0;e<Vl.length;e++)Vl[e]=Vs(vi[e]);Lr()}function pp(t){var e,A,n,P,r,i;if(r='<svg id=\"'+df(t.g!=null?t.g:\"mol\"+J2)+S0+'xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"'+t.n+'px\" height=\"'+t.f+'px\" viewBox=\"0 0 '+t.n+\" \"+t.f+`\">\n`,i=t.i?\"<style> #\"+df(t.g!=null?t.g:\"mol\"+J2)+\" { pointer-events:none; } #\"+df(t.g!=null?t.g:\"mol\"+J2)+` .event  { pointer-events:all; } line { stroke-linecap:round; } polygon { stroke-linejoin:round; } </style>\n`:'<g style=\"font-size:'+t.k+'px; fill-opacity:1; stroke-opacity:1; fill:black; stroke:black; font-weight:normal; text-rendering:optimizeLegibility; font-family:sans-serif; stroke-linejoin:round; stroke-linecap:round; stroke-dashoffset:0;\">',r+=\"  \",r+=i,t.i){for(P=new Zt(t.b);P.a<P.c.a.length;)n=_t(P),J9(t,n);for(A=new Zt(t.a);A.a<A.c.a.length;)e=_t(A),J9(t,e)}return t.i||J9(t,\"</g>\"),r+t.c.a+\"</svg>\"}function ctt(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,h,T,g,v;if(s=c(Pt,it,6,t.i,16,1),s[P]=!0,y=c(B,F,6,11,15,1),l=B2(t,y,n,e,10,null,s),l==-1)return!1;for(i=1;!wA(t.q,A,y[i]);)++i;if(r=l-i,f=y[i],v=e3(t.q,A),v==6&&r==2&&i==3&&W3(t,y[1])>=3){for(g=ph(t.q,A),L=0;L<6;L++)if(e==g[L]){if(T=LT(t.q,A,f==g[LT(t.q,A,L+2)]?L-2:L+2),h=g[T],o=t.v[h]&gn,(o==0?0:o==ue?2:o==q1?3:4)>=3&&Gj(t,y[1],h,2,null)==2)return!0;break}}if(D=t.p[f]==1||f<t.g&&i0(t.q,f)||xP(t,f,!1),Q=!D&&t.D[f]==7&&t.t[f]!=1,r==1)return!D&&!Q&&v<=4&&i<=3;switch(v){case 4:if(!D&&!Q&&i<=4)return!0;break;case 5:if(Q){if(i<=3)return!0}else if(!D&&i<=4)return!0;break;case 6:if(r==2){if(D){if(i<=4)return!0}else if(!Q&&i<=3)return!0}else if(r==3){if(D){if(i<=6)return!0}else if(i<=4)return!0}break;case 7:if(r==3&&i<=3)return!0}return!1}function Mp(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h;for(i=0,D=0;D<t.g.g;D++)if((t.f==null||t.f[D]==e)&&gt(V(l0(t.g,D),be),0)){if(s=t.G[D],L=B0(t.g,D),l=B0(t.H,s),L==0||L==3)continue;if(l==0||l==3)return!1;if(fe(t.g,D)==1){++i;continue}if(fe(t.H,s)==1)return!1;if(fe(t.g,D)==2){++i;continue}if(fe(t.H,s)==2||K5(t,D)==(L==l))return!1}if(i!=0){for(P=c(B,F,6,i,15,1),r=0,Q=0;Q<t.g.g;Q++)(t.f==null||t.f[Q]==e)&&gt(V(l0(t.g,Q),be),0)&&(L=B0(t.g,Q),L!=0&&L!=3&&(P[r++]=OA(t.g,Q)<<24|fe(t.g,Q)<<22|Q));for(P.sort(pe(u0.prototype.ld,u0,[])),r=0;r<P.length;)for(o=P[r]&q0,y=t.G[o],A=P[r]&-4194304,n=K5(t,o)^B0(t.g,o)==B0(t.H,y),++r;r<P.length&&(P[r]&-4194304)==A;r++)if(f=P[r]&q0,s=t.G[f],fe(t.H,s)!=fe(t.H,y)||OA(t.H,s)!=OA(t.H,y)||(h=K5(t,f)^B0(t.g,f)==B0(t.H,s),h!=n))return!1}return!0}function wtt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d;if(s=0,y=(r=De(e,s),r==-1?e.length:r),d=(Mt(s,y,e.length),e.substr(s,y-s)),e1(\"DEFAULT\",d)&&(s=gA(e,y),y=(i=De(e,s),i==-1?e.length:i),d=(Mt(s,y,e.length),e.substr(s,y-s)),d.startsWith(\"CLASS\")&&(s=gA(e,y),y=(f=De(e,s),f==-1?e.length:f),d=(Mt(s,y,e.length),e.substr(s,y-s)),e1(\"-\",d)&&(s=gA(e,y),y=(D=De(e,s),D==-1?e.length:D),d=(Mt(s,y,e.length),e.substr(s,y-s))))),L1(d,f1,Et),s=gA(e,y),y=(Q=De(e,s),Q==-1?e.length:Q),v=(Mt(s,y,e.length),e.substr(s,y-s)),!!e1(\"DAT\",v)){for(s=gA(e,y),y=(P=De(e,s),P==-1?e.length:P),L1((Mt(s,y,e.length),e.substr(s,y-s)),f1,Et),g=new cP,s=gA(e,y);s!=-1;)s=dW(g,e,s);n=(h=E2,t8(e9(g,h))),L=(T=\"FIELDNAME\",t8(e9(g,T))),o=(l=\"FIELDDATA\",t8(e9(g,l))),!(!e1(Iy,L)||n==null||o==null)&&(A=c8(n,\" \"),A.length==2&&IP(t.j,L1(A[1],f1,Et)-1,o))}}function Cp(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K;if(d=t.f.k,P=x(t.e,A),K=P.a,L=e[t.a],T=xt(d,K)>0&&d.k[K]==d.e[K],h=bq(t.f.a,t.f.t[K]),!T&&!h)return i=d.j[K][2],d.D[i]==1&&(i=t.f.t[i],(A==0?i>K:t.f.t[d.j[K][1]]>i)&&(n=!n)),n;if(T&&(r=d.j[K][A],i=t.f.t[r],i>K&&(n=!n,d.D[r]==1&&(n=!n))),h){for(b=d.e[K],y=c(B,F,6,b-1,15,1),l=c(B,F,6,b-1,15,1),j=0,g=0,C=0;g<b;g++)i=d.j[K][g],i!=L&&(y[C]=i,Q=o1(d,K,i),I=Ku(t.f.s,t.f.t[K]+\"_\"+t.f.t[i]),l[C++]=I==null?-1:Q,I!=null&&++j);if(T)y[0]<K&&(n=!n);else switch(j){case 1:if(xt(d,K)>0)break;v=l[0]>=0,s=y[v?0:1],R=y[v?1:0],R>K?s>K&&d.D[R]!=1&&(n=!n):s<K&&(n=!n);break;case 2:f=Kv(t,l[0],K),D=Kv(t,l[1],K),a=Ku(t.f.s,K+\"_\"+t.f.t[f]),H=Ku(t.f.s,K+\"_\"+t.f.t[D]),o=t.b,A==0?(E=a[1]<o?a[1]:a[0],S=H[1]<o?H[1]:H[0]):(E=a[0]<o?a[1]:a[0],S=H[0]<o?H[1]:H[0]),E<S!=f<D&&(n=!n)}}return n}function gtt(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(r=0,o=0,i=0,f=0,D=0,Q=0,L=0,s=!1,e=c(Pt,it,6,32,16,1),A=0;A<t.R.g;A++)t.db[A]!=0&&(++r,t.db[A]==3?++o:t.bb[A]==0?(++i,t.P&&yD(t.P,A)&&++f):t.bb[A]==2?t.ab[A]==0&&++Q:t.bb[A]==1&&(P=t.ab[A],e[P]||(++L,e[P]=!0),t.ab[A]==0&&++D,t.P&&yD(t.P,A)&&(s=!0)));for(n=0;n<t.R.i;n++)t.o[n]!=0&&c1(t.R,n)==1&&(++r,t.o[n]==3?++o:t.n[n]==0?(++i,t.P&&yD(t.P,q(t.R,0,n))&&yD(t.P,q(t.R,1,n))&&++f):t.n[n]==2?t.k[n]==0&&++Q:t.n[n]==1&&(P=t.k[n],e[P]||(++L,e[P]=!0),t.k[n]==0&&++D,t.P&&yD(t.P,q(t.R,0,n))&&yD(t.P,q(t.R,1,n))&&(s=!0)));if(r==0){t.R.J=Q0;return}if(o!=0){t.R.J=0;return}if(t.K){Ah(t.R,O0+(1<<L));return}D+f==r&&!s?t.R.J=ky:i==r?t.R.J=v8:Q==r?t.R.J=327680:i==r-1&&D==1?t.R.J=Ti:Ah(t.R,458752+(1<<L))}function dtt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C;if(t.k[e]!=2||t.o[e][0]!=2||t.o[e][1]!=2||t.k[t.j[e][0]]<2||t.k[t.j[e][1]]<2||t.p[t.j[e][0]]!=1||t.p[t.j[e][1]]!=1){ke(t,e,0,!1);return}for(j=-1,b=-1,d=-1,T=-1,r=0,L=0;L<2;L++)for(n=t.j[e][L],l=0;l<t.e[n];l++)i=t.j[n][l],i!=e&&(f=t.n[n][l],R=GQ(t,f,i),r<R&&(r=R,b=i,j=f,d=n,T=t.j[e][1-L]));if(b!=-1){for(s=0;s<2;s++)for(n=t.j[e][s],l=0;l<t.e[n];l++)i=t.j[n][l],f=t.n[n][l],i!=e&&t.F[0][f]==n&&(t.I[f]=1);for(t.F[1][j]!=b&&(t.F[0][j]=t.F[1][j],t.F[1][j]=b),D=Et,y=0;y<t.k[d];y++)i=t.j[d][y],i!=e&&D>i&&(D=i);for(g=c(B,F,6,2,15,1),v=0,o=0;o<t.k[T];o++)i=t.j[T][o],i!=e&&(g[v++]=i);A=pA(t.K[e].a,t.K[e].b,t.K[T].a,t.K[T].b),P=0,v==2?(g[0]>g[1]&&(C=g[0],g[0]=g[1],g[1]=C),Q=Ze(A,_0(t,T,g[0])),h=Ze(A,_0(t,T,g[1])),P=Q-h):P=Ze(A,_0(t,T,g[0])),P<0^(t.v[e]&3)==1^D==b?t.I[j]=257:t.I[j]=129}}function Btt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C;if(gt(t.v,0)&&(z1(),I1(E1(Date.now()),t.v)))return!1;for(y=e.a,v=0,i=1;i<y.length;i++)if(y[i]!=null)for(D=0;D<i;D++)y[i][D]!=0&&Oh(t.B,i,D).length!=2&&(v+=y[i][D]);if(v>6)return!1;for(P=null,s=null,Q=null,A=Ge,l=e.b,r=1;r<y.length;r++)if(y[r]!=null){for(f=0;f<r;f++)if(y[r][f]>1&&Oh(t.B,r,f).length==2){for(g=Oh(t.B,r,f),b=c(B,F,6,2,15,1),L=0;L<2;L++)d=t.s[g[L]],b[L]=Cd(e.c,d.a);for(C=c(B,F,6,2,15,1),h=-1;h<=1;h+=2)for(C[0]=h*8,T=-1;T<=1;T+=2){for(C[1]=T*8,n=y[r][f],j=1;j<=3;j++){for(P?e2(P,e.c):P=new BD(e.c),o=0;o<2;o++)yb(P,t.s[g[o]],b[o]+j*C[o]<<16>>16);if(R=g_(t,P,t.q[r],t.q[f]),R<n-1){if(n=R,s?e2(s,P):s=new BD(P),n<1)break}else break}n<y[r][f]&&n<A&&(A=n,Q?e2(Q,s):Q=new BD(s))}}}return Q?(gp(t,e,Q),e.b>=l?(Mv(e,l,y),!1):(e2(e.c,Q),!0)):!1}function vtt(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H;if(t.e.length==1)return 0;for(S=P+w.Math.sqrt(n),o=c(Ut,Tt,6,36,15,1),l=0;l<t.e.length;l++)r=hn(e,A,t.a[l],t.b[l]),f=bN(Ot(E1(w.Math.round(r*36/k0)))),L=e-t.a[l],s=A-t.b[l],a=L*L+s*s,o[f]<a&&(o[f]=a);for(j=-1,b=-1,h=0;h<36;h++)o[h]=w.Math.sqrt(o[h]),j<o[h]&&(j=o[h],b=h);for(I=b-18<0?b-18+36:b-18>=36?b-18-36:b-18,T=0;T<=18;T++)o[I+T<0?I+T+36:I+T>=36?I+T-36:I+T]+=.01*T,o[I-T<0?I-T+36:I-T>=36?I-T-36:I-T]+=.01*T;for(H=c(Ut,Tt,6,9,15,1),D=c(Ut,Tt,6,9,15,1),g=1;g<9;g++)H[g]=w.Math.sin(g*jC),D[g]=w.Math.cos(g*jC);for(C=Ge,R=-1,i=0;i<36;i++)if(!(o[i]>=C)){for(d=o[i],y=1;y<9;y++){for(v=-1;v<=1&&(E=i+v*y<0?i+v*y+36:i+v*y>=36?i+v*y-36:i+v*y,!(!(o[E]*D[y]<=d)&&(Q=D[y]*w.Math.min(o[E],S/H[y]),d<Q&&(d=Q,C<=d))));v+=2);if(C<=d)break}C>d&&(C=d,R=i)}return k0*R/36}function Hp(t){for(var e,A,n,P,r;t.t.a.length!=0;)if(n=cA(t.t,0),t.I[n.b]==0&&t.B[n.a]==0)return n;for(;t.g>=0;){for(;t.g>=2&&t.c<t.j[t.g].length;){if(A=t.j[t.g][t.c],e=de(t.k[t.g],A),J(t.D,e[0][0])==6&&(n=HR(t,e[0],e[1]),n))return n;++t.c}for(;t.g>=2&&t.d<t.j[t.g].length;){if(A=t.j[t.g][t.d],e=de(t.k[t.g],A),J(t.D,e[0][0])!=6&&(n=HR(t,e[0],e[1]),n))return n;++t.d}for(;t.p&&t.g==0&&t.e<t.j[0].length;)if(A=t.j[0][t.e++],e=de(t.k[t.g],A),e[0].length==1&&e[1].length==1&&(n=jb(t,e[0][0],e[1][0]),n))return n;for(;t.g==0&&t.f<t.j[t.g].length;)if(A=t.j[t.g][t.f++],e=de(t.k[t.g],A),e[0].length>=e[1].length&&Ij(e[0],t.I,t.G,t.H,t.J)||e[1].length>=e[0].length&&Ij(e[1],t.B,t.w,t.A,t.C)){for(r=0,P=0;r<e[0].length&&t.I[e[0][r]]!=0;)++r;for(;P<e[1].length&&t.B[e[1][P]]!=0;)++P;if(r<e[0].length&&P<e[1].length&&(n=jb(t,e[0][r],e[1][P]),n))return n}--t.g,t.c=0,t.d=0,t.e=0,t.f=0}return null}function xP(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h;if(t.D[e]!=7||t.k[e]==4)return!1;if(e<t.g&&i0(t.q,e)||t.p[e]!=0||gt(V(t.C[e],d9),0))return!0;if(t.t[e]==1)return!1;for(D=0;D<t.k[e];D++)if(z9(t,t.n[e][D])==3)return!1;for(i=0,Q=0;Q<t.k[e];Q++)t.o[e][Q]==1&&(n=t.D[t.j[e][Q]],(n==8||n==9||n==17)&&++i);if(i==0){for(f=0;f<t.k[e];f++)if(P=t.j[e][f],t.p[P]!=0){if(P<t.g&&i0(t.q,P)){if((t.q&&P<t.g?UA(t.q,P):0)>=5){for(h=0,s=0;s<t.k[P];s++)l=t.j[P][s],l!=e&&n0(t,l)>=3&&++h;if(y=n0(t,e),h==2&&y>=2||h==1&&y==3)continue}return!A||!Xs(t,e)}for(L=0;L<t.k[P];L++)if(t.o[P][L]==2||eA(t,t.n[P][L]))return!A||!Xs(t,e)}}if(i<2)for(f=0;f<t.k[e];f++){for(P=t.j[e][f],o=!1,r=!1,L=0;L<t.k[P];L++)t.j[P][L]!=e&&(t.o[P][L]!=1&&(t.D[t.j[P][L]]==7||t.D[t.j[P][L]]==8||t.D[t.j[P][L]]==16)&&(o=!0),t.o[P][L]==1&&t.D[t.j[P][L]]==7&&(r=!0));if(o&&(!r||i==0))return!A||!Xs(t,e)}return!1}function Ftt(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R;for(n=c(Ut,Tt,6,2,15,1),Q=0;Q<2;Q++)t.c[Q]/=t.a[Q],t.d[Q]/=t.a[Q],n[Q]=vtt(t.b[Q],t.c[Q],t.d[Q],t.b[1-Q].e.length,e);for(Tf(t.b[0],t.c[0],t.d[0],HA-n[0]),Tf(t.b[1],t.c[1],t.d[1],4.71238898038469-n[1]),R=Ge,j=_6,i=t.d[0]-t.d[1],o=0;o<t.b[1].b.length;o++)t.b[1].b[o]+=i,R>t.b[1].b[o]&&(R=t.b[1].b[o]),j<t.b[1].b[o]&&(j=t.b[1].b[o]);for(d=j-R+2*e,P=Bt(w.Math.ceil(d)),R+=(d-P)/2-e,g=c(Ut,Tt,6,P,15,1),L=0;L<P;L++)g[L]=t.c[1]+e;for(s=0;s<t.b[1].b.length;s++)for(b=t.b[1].b[s]-R,v=Bt(b-e),f=w.Math.min(Bt(b+e),P-1),T=v;T<=f;T++)g[T]>t.b[1].a[s]&&(g[T]=t.b[1].a[s]);for(y=0;y<P;y++)g[y]-=e;for(r=t.c[0]-t.c[1],l=0;l<t.b[0].a.length;l++)h=Bt(t.b[0].b[l]-R),h>=0&&h<g.length&&r<t.b[0].a[l]-g[h]&&(r=t.b[0].a[l]-g[h]);for(D=0;D<t.b[1].a.length;D++)t.b[1].a[D]+=r;A&&(Tf(t.b[0],t.c[0],t.d[0],n[0]-HA),Tf(t.b[1],t.c[0],t.d[0],n[0]-HA))}function Vp(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R;if(t.d==null&&(t.d=c(B,D0,7,t.j.s,0,2)),t.d[e]==null){for(y=c(B,F,6,t.e.length,15,1),d=c(Pt,it,6,t.j.r,16,1),P=q(t.j,0,e),r=q(t.j,1,e),y[0]=P,d[P]=!0,o=0,l=0;o<=l;){for(T=0;T<Ct(t.j,y[o]);T++)i=Z(t.j,y[o],T),!d[i]&&i!=r&&(y[++l]=i,d[i]=!0);if(o==l)break;++o}if(s=l+1>(t.e.length/2|0),t.i){for(D=!1,f=!1,T=0;T<t.e.length;T++)n=t.e[T],W0(t.j,n)&&n!=P&&n!=r&&(d[t.e[T]]?D=!0:f=!0);D!=f&&(s=D)}for(Q=2,t.d[e]=c(B,F,6,s?t.e.length-l:l+2,15,1),g=0;g<t.e.length;g++)t.e[g]==P?t.d[e][s?0:1]=g:t.e[g]==r?t.d[e][s?1:0]=g:s^d[t.e[g]]&&(t.d[e][Q++]=g)}for(j=t.a[t.d[e][0]],R=t.b[t.d[e][0]],b=hn(j,R,t.a[t.d[e][1]],t.b[t.d[e][1]]),h=2;h<t.d[e].length;h++)v=t.d[e][h],L=w.Math.sqrt((t.a[v]-j)*(t.a[v]-j)+(t.b[v]-R)*(t.b[v]-R)),A=2*b-hn(j,R,t.a[v],t.b[v]),t.a[v]=j+L*w.Math.sin(A),t.b[v]=R+L*w.Math.cos(A)}function Ep(t){var e,A,n,P,r,i,f,D,Q,o;switch(e=null,o=t.d.length,t.e){case 1:for(e=j1(Yt,[re,t1],[17,6],15,[2*o,2],2),n=0;n<o;n++)e[n][0]=t.d[n][0],e[n][1]=t.d[n][1],e[o+n][0]=180+t.d[n][0]<<16>>16,e[o+n][1]=180+t.d[n][1]<<16>>16;return e;case 2:for(P=t.a[0]==0?1:0,r=t.a[o-1]==180?o-1:o,Q=r-P,e=j1(Yt,[re,t1],[17,6],15,[o+Q,2],2),i=0;i<o;i++)e[i][0]=t.d[i][0],e[i][1]=t.d[i][1];for(f=P;f<r;f++)e[e.length-1-f+P][0]=360-t.d[f][1]<<16>>16,e[e.length-1-f+P][1]=360-t.d[f][0]<<16>>16;return e;case 3:for(P=t.a[0]==0?1:0,r=t.a[o-1]==90?o-1:o,Q=r-P,e=j1(Yt,[re,t1],[17,6],15,[2*o+2*Q,2],2),D=0;D<o;D++)e[D][0]=t.d[D][0],e[D][1]=t.d[D][1],e[o+Q+D][0]=180+t.d[D][0]<<16>>16,e[o+Q+D][1]=180+t.d[D][1]<<16>>16;for(A=P;A<r;A++)e[o+Q-1-A+P][0]=180-t.d[A][1]<<16>>16,e[o+Q-1-A+P][1]=180-t.d[A][0]<<16>>16,e[e.length-1-A+P][0]=360-t.d[A][1]<<16>>16,e[e.length-1-A+P][1]=360-t.d[A][0]<<16>>16;return e;default:return t.d}}function Sp(t,e,A,n){var P,r,i,f,D,Q;if(i=en(t.V,e,A),f=-1,n&&t.X==8&&i!=-1&&(!ZW(t,t.e,i)||M1(t.V,t.e)!=0&&M1(t.V,t.e)==M1(t.V,i)&&!Fn(t.V,t.e)||uz(t,t.e,i))&&(i=-1),i!=-1&&(t.w==101||t.w==103||t.w==102?(f=NQ(t.V,i),i=-1):t.w==19&&i>=t.V.g&&(i=-1)),f==-1&&i==-1&&t.w!=22&&t.w!=19&&t.w!=3&&t.w!=10&&t.w!=27&&t.w!=16&&t.w!=11&&t.w!=12&&t.w!=13&&t.w!=28&&t.w!=29&&t.w!=30&&t.w!=14&&t.w!=31&&t.w!=15&&t.w!=32&&t.w!=33&&(f=kf(t.V,e,A)),f!=-1&&(t.w==101||t.w==103||t.w==102)&&!(q9(t.V,f)&&(xs(t,f)!=-1||es(t,f)!=-1))&&(f=-1),P=t.v,!n&&t.I&&(P=null,i==-1&&f==-1&&(t.w==2||t.w==4||t.w==21))){for(Q=new Zt(t.I);Q.a<Q.c.a.length;)if(D=_t(Q),(t.w==2||t.w==4&&!Jt(D,63)||t.w==21&&Jt(D,95))&&D.Eb(e,A)){P=D,t.v&&t.v!=D&&t.v.Fb();break}}return r=t.t!=i||t.u!=f||t.v!=P||!!P,t.t!=i&&(t.t!=-1&&t.i.a.length!=0?uy(t,t.i.a):(t.t=i,Ln(t.i,0),N1(t,new x1(t,4,!0)))),t.u!=f&&(t.u=f,N1(t,new x1(t,8,!0))),t.v=P,r}function Qy(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b;for(ut(t,7),o=new SA(t.g,t.i),Q=j1(_,[DA,_y],[208,65],0,[t.g,8],2),n=c(B,F,6,t.g,15,1),P=c(B,F,6,t.g,15,1),r=c(Pt,it,6,t.g,16,1),d=0;d<t.g;d++)if(Q[d]=j1(_,[_y,v9],[65,11],0,[t.k[d],8],2),!(e&&t.D[d]!=6))for(D=0;D<t.k[d];D++){for(L=t.j[d][D],xu(r,r.length),g=1,T=2,t.v[L]|=512,b=0;b<8&&T<t.g;b++){if(b==0)n[0]=L,r[L]=!0,n[1]=d,r[d]=!0;else{for(v=T,y=g;y<T;y++)for(A=n[y],l=0;l<t.k[A];l++)f=t.j[A][l],!r[f]&&(!e||t.D[f]==6)&&(r[f]=!0,n[v++]=f);if(v==T){if(!e)for(s=b;s<8;s++)Q[d][D][s]=Q[d][D][s-1];break}g=T,T=v}if(b==0)Q[d][D][b]=c(_,At,6,2,15,1),Q[d][D][b][0]=t.D[d]<<24>>24,Q[d][D][b][1]=t.B[d]<<24>>24;else{for(L9(t,o,r,!0,P),m0(o,P[L],0),Je(o,P[L],0),A=0;A<t.g;A++)P[A]!=-1&&t.k[A]>o.k[P[A]]&&w1(o,P[A],E0,!0);if(e)for(i=0;i<o.i;i++)o.I[i]=1,o.U=0;Q[d][D][b]=ln((h=Me(new qA(o,16)),c0(),h))}}t.v[L]&=-513}return Q}function ktt(t,e){var A,n,P,r,i;for(i=e,A=n=P=at(at(-559038737,i),13),p1.a=A,p1.b=n,p1.c=P,r=0;i>12;)p1.a=at(p1.a,t[r]),p1.a=at(p1.a,Wt(t[r+1],8)),p1.a=at(p1.a,Wt(t[r+2],16)),p1.a=at(p1.a,Wt(t[r+3],24)),p1.b=at(p1.b,t[r+4]),p1.b=at(p1.b,Wt(t[r+5],8)),p1.b=at(p1.b,Wt(t[r+6],16)),p1.b=at(p1.b,Wt(t[r+7],24)),p1.c=at(p1.c,t[r+8]),p1.c=at(p1.c,Wt(t[r+9],8)),p1.c=at(p1.c,Wt(t[r+10],16)),p1.c=at(p1.c,Wt(t[r+11],24)),D$(p1),i-=12,r+=12;switch(i){case 12:p1.c=at(p1.c,Wt(t[r+11],24));case 11:p1.c=at(p1.c,Wt(t[r+10],16));case 10:p1.c=at(p1.c,Wt(t[r+9],8));case 9:p1.c=at(p1.c,t[8]);case 8:p1.b=at(p1.b,Wt(t[r+7],24));case 7:p1.b=at(p1.b,Wt(t[r+6],16));case 6:p1.b=at(p1.b,Wt(t[r+5],8));case 5:p1.b=at(p1.b,t[4]);case 4:p1.a=at(p1.a,Wt(t[r+3],24));case 3:p1.a=at(p1.a,Wt(t[r+2],16));case 2:p1.a=at(p1.a,Wt(t[r+1],8));case 1:p1.a=at(p1.a,t[r]);break;case 0:return Ot(p1.c)}return t$(p1),Ot(p1.c)}function mtt(t,e){Ws();var A,n,P,r,i,f,D,Q,o,L,s,y,l,h;if(D=O(t,0)<0,D&&(t=V0(t)),O(t,0)==0)switch(e){case 0:return\"0\";case 1:return\"0.0\";case 2:return\"0.00\";case 3:return\"0.000\";case 4:return Sy;case 5:return\"0.00000\";case 6:return\"0.000000\";default:return y=new M0,e<0?y.a+=\"0E+\":y.a+=\"0E\",y.a+=e==f1?\"2147483648\":\"\"+-e,y.a}o=18,L=c(Fr,Pe,6,o+1,15,1),A=o,h=t;do Q=h,h=In(h,10),L[--A]=Ot(at(48,Y1(Q,yn(h,10))))&d1;while(O(h,0)!=0);if(P=Y1(Y1(Y1(o,A),e),1),e==0)return D&&(L[--A]=45),PP(L,A,o-A);if(e>0&&O(P,-6)>=0){if(O(P,0)>=0){for(r=A+Ot(P),f=o-1;f>=r;f--)L[f+1]=L[f];return L[++r]=46,D&&(L[--A]=45),PP(L,A,o-A+1)}for(i=2;Si(i,at(V0(P),1));i++)L[--A]=48;return L[--A]=46,L[--A]=48,D&&(L[--A]=45),PP(L,A,o-A)}return l=A+1,n=o,s=new Vr,D&&(s.a+=\"-\"),n-l>=1?(Ye(s,L[A]),s.a+=\".\",s.a+=PP(L,A+1,o-A-1)):s.a+=PP(L,A,o-A),s.a+=\"E\",O(P,0)>0&&(s.a+=\"+\"),s.a+=\"\"+ve(P),s.a}function btt(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;if(e==0||(e&A)!=0){mQ(t);return}for(T=-1,g=0,r=1<<t.e.length-2,P=1<<t.e.length-1,f=1,i=2,Q=0;Q<t.e.length;Q++)(A&(P|f))==0&&(e&(P|f))!=0&&(e&r)==0&&(l=0,(A&r)!=0&&(l+=4),(e&P)!=0&&(l+=2),(e&f)!=0&&(l+=1),g<l&&(g=l,T=Q)),r=P,P=f,f=i,i=1<<(Q+2<t.e.length?Q+2:Q+2-t.e.length);if(T==-1){mQ(t);return}for(s=0,s|=1<<T,y=2;y<t.e.length-1;){if(L=T+y<t.e.length?T+y:T+y-t.e.length,P=1<<(L==0?t.e.length-1:L-1),(A&P)!=0){++y;continue}if(f=1<<L,(e&P)!=0){if((A&f)!=0){mQ(t);return}s|=f,y+=2;continue}if(i=1<<(L+1<t.e.length?L+1:L+1-t.e.length),(e&f)!=0&&(A&i)!=0){s|=f,y+=3;continue}++y}if(s==0){mQ(t);return}for(n=l1-l1*(t.e.length-2)/t.e.length,o=1;o<t.e.length;o++)t.a[o]=t.a[o-1]+w.Math.sin(n*(o-1)),t.b[o]=t.b[o-1]+w.Math.cos(n*(o-1));for(f=1,h=2*w.Math.sin(n/2),D=0;D<t.e.length;D++)(s&f)!=0&&(t.a[D]+=h*w.Math.cos(n*(D-.5)),t.b[D]-=h*w.Math.sin(n*(D-.5))),f<<=1}function Ip(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h;for(t.v=A0(t.w,0)?0:(z1(),at(E1(Date.now()),t.w)),MI(t.r,t.v),t.t=null,ut(e,1),P=0;P<e.g;P++)if(G1(e,P)>(h=Sn(e,P),h+An(e,P,h,e.D[P])))return!1;if(oW(e),e.T=!0,i=null,o=null,f=null,L=null,(e.U&8)!=0){for(i=c(B,F,6,e.g,15,1),f=c(Pt,it,6,e.g,16,1),r=0;r<e.g;r++)i[r]=e.v[r]&3,f[r]=(e.v[r]&4)!=0;for(o=c(B,F,6,e.i,15,1),L=c(Pt,it,6,e.i,16,1),Q=0;Q<e.i;Q++)o[Q]=e.G[Q]&3,L[Q]=(e.G[Q]&4)!=0}if(ut(e,63),i!=null){for(r=0;r<e.g;r++)ke(e,r,i[r],f[r]);for(Q=0;Q<e.i;Q++)Q8(e,Q,o[Q],L[Q])}for(t.k=e,t.a=0,t.p=0,t.A=null,t.s=null,t.e=c(B,F,6,e.r,15,1),t.d=Ur(e,t.e,!1,!0),t.f=c(B,F,6,t.d,15,1),n=0;n<e.r;n++)++t.f[t.e[n]];if(y=c(Pt,it,6,e.s,16,1),s=kp(e,y),s==0)return!0;if(!wY(t,y))return!1;for(t.s=c(X8t,e0,178,s,0,1),l=0,D=0;D<e.i;D++)y[D]&&(t.s[l++]=new GR(e,D,t.g,t.e,t.f[t.e[e.F[0][D]]],t.q,A));return ju(t.s,new Yw),t.i&&(t.c=new H7),N_(t),!0}function jtt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a;for(yJ(),D=new eu,jX(D,e),T=D.j,L=D.d,ut(T,1),ut(L,1),b=new Gr,h=new Gr,GA(b,T),GA(h,L),t.c=f1,i=null,r=null,P=0,S=0,t.a=new M0,A=new _A,R=Rl,C=0,E=R.length;C<E&&(j=R[C],S++!=t.b);++C)if(MA(b,j.g),wI(b,j.i),CA(b,6,8)!=0&&(MA(h,j.f),CA(h,2,8)!=0&&b.F.a.length<=512)){for(f=-1e4,l=x(h.F,0),d=new Zt(b.F);d.a<d.c.a.length&&(v=_t(d),!(S++>=t.b));)Uf(T,A),Q=XW(j,A,v),a=jZ(j,T.g,v,L.g,l),ut(A,1),n=c(B,F,6,A.g,15,1),y=c(B,F,6,L.g,15,1),qR(D,A,L,n,y,a)&&(I=D.q-j.e,f<I&&(f=I),t.c<I&&(t.c=I,i=vX(n,y,Q,T.g),r=y,P=D.b));o=D.a<=1?\"\":YV+D.a+\")\",G(t.a,j.d+(j.b?\"_S\":j.j.length==0?\"_L\":j.n.a.length==0?\"_I\":\"_U\")+(A9(),Q9(f,5))+o+nn)}return g=c(B,F,6,T.g,15,1),s=c(B,F,6,L.g,15,1),qR(D,T,L,g,s,null)&&(I=D.q,t.c<=I&&(t.c=I,i=g,r=s,P=D.b),o=D.a<=1?\"\":YV+D.a+\")\",G(t.a,(A9(),\"no rule:\"+Q9(I,5)+o+nn))),t.c==f1?!1:(IW(D,e,i,r,P),!0)}function Rtt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I;for(r=!1,E=kn(t.d),v=0;v<E.j.a.length;v++)if(C=x(E.j,v),C.length==6&&!E.f[v]){for(y=!0,b=x(E.k,v),j=0,R=b.length;j<R;++j)if(d=b[j],dt(t.d,d)!=1||Z8(t.d,d)){y=!1;break}if(y){for(i=new x0,h=new x0,D=j1(Ut,[T0,Tt],[15,6],15,[6,3],2),P6(e,C,i,h,D),Q=c(Ut,Tt,6,C.length,15,1),S=0,L=0;L<C.length;L++)Q[L]=-(h.a*D[L][0]+h.b*D[L][1]+h.c*D[L][2]),Q[L]<0^(L&1)==1&&++S;if(S!=0&&S!=6){for(o=0;o<C.length;o++)if(Q[o]<0^(o&1)==1^S>=3){if(T=c(B,F,6,2,15,1),T[0]=C[o==0?5:o-1],T[1]=C[o==5?0:o+1],g=e.k[C[o]],n=ri(hq(_8(e.k[C[o]],i),h)),A=.6+w.Math.asin(w.Math.abs(Q[o])/w.Math.sqrt((i.a-g.a)*(i.a-g.a)+(i.b-g.b)*(i.b-g.b)+(i.c-g.c)*(i.c-g.c))),I=Q[o]<0?A:-A,P=OO(new pu(g),i),s=!1,N(t.d,C[o])>2){for(l=0;l<N(t.d,C[o]);l++)if(f=Z(t.d,C[o],l),f!=T[0]&&f!=T[1]&&LA(t.d,Nt(t.d,C[o],l))){s=!0;break}}s||BW(e,C[o],T,P,n,I)}r=!0}}}return r&&(OU(e),R5(e,t.j)),r}function ptt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;for(l=t.a[e],v=t.b[e],r=c(ci,e0,43,4,0,1),o=0,L=0;L<t.f.length&&!(o>=4);L++)if(!(e==t.g[q(t.j,0,t.f[L])]||e==t.g[q(t.j,1,t.f[L])])){if(h=t.a[t.g[q(t.j,0,t.f[L])]],d=t.b[t.g[q(t.j,0,t.f[L])]],T=t.a[t.g[q(t.j,1,t.f[L])]],b=t.b[t.g[q(t.j,1,t.f[L])]],f=w.Math.sqrt((h-l)*(h-l)+(d-v)*(d-v)),D=w.Math.sqrt((T-l)*(T-l)+(b-v)*(b-v)),P=w.Math.sqrt((T-h)*(T-h)+(b-d)*(b-d)),f<P&&D<P){h==T?(i=w.Math.abs(l-h),i<.5&&(r[o++]=new $P(hn(h,v,l,v),(.5-i)/2))):d==b?(i=w.Math.abs(v-d),i<.5&&(r[o++]=new $P(hn(l,d,l,v),(.5-i)/2))):(s=(b-d)/(T-h),y=-1/s,A=d-s*h,n=v-y*l,g=(n-A)/(s-y),j=s*g+A,i=w.Math.sqrt((g-l)*(g-l)+(j-v)*(j-v)),i<.5&&(r[o++]=new $P(hn(g,j,l,v),(.5-i)/2)));continue}if(f<.5){r[o++]=new $P(hn(h,d,l,v),(.5-f)/2);continue}if(D<.5){r[o++]=new $P(hn(T,b,l,v),(.5-D)/2);continue}}o>0&&(Q=L2(r,o),t.a[e]+=Q.b*w.Math.sin(Q.a),t.b[e]+=Q.b*w.Math.cos(Q.a))}function xp(t){var e,A,n,P,r,i,f,D,Q;for(A=m(k(B,1),F,6,15,[8,-2,8,-2,8]),Q=m(k(B,1),F,6,15,[8,-2,4,-2,12,-2,4,-2,12,-2,4,-2,12,-2,8]),fL(t.c,A,Q),t.o=$u(t.c,1,1),YP(t.o,t),f0(t.c,le(t.c,\"Atom Label:\"),1,1),f0(t.c,t.o,3,1),Fe(t.c,le(t.c,\"(examples: 'D', 'Li', 'Cys', 'R12', 'R3@C')\"),1,3,3,3),t.p=$u(t.c,1,1),YP(t.p,t),f0(t.c,le(t.c,\"Atom Mass:\"),1,5),f0(t.c,t.p,3,5),Fe(t.c,le(t.c,\"(empty for natural abundance)\"),1,7,3,7),t.q=$u(t.c,1,1),YP(t.q,t),f0(t.c,le(t.c,\"Abnormal Valence:\"),1,9),f0(t.c,t.q,3,9),Fe(t.c,le(t.c,\"(empty for default valence)\"),1,11,3,11),t.a==-1?(n=(O1(),J0)[t.k],Y8(t.o,t.n==null?n:t.n+\"@\"+n),t.g!=0&&Y8(t.p,\"\"+t.g),t.j!=-1&&Y8(t.q,\"\"+t.j)):(n=Vi(t.e,t.a),e=eP(t.e,t.a),Y8(t.o,e==null?n:e+\"@\"+n),we(t.e,t.a)!=0&&Y8(t.p,\"\"+we(t.e,t.a)),G9(t.e,t.a)!=-1&&Y8(t.q,\"\"+G9(t.e,t.a))),t.b=TA(t.c),r=SE,i=0,f=r.length;i<f;++i)P=r[i],Gt(t.b,P);D=t.a==-1?t.i:jA(t.e,t.a),$t(t.b,D==32?1:D==48?2:D==16?3:0),f0(t.c,le(t.c,\"Radical State:\"),1,13),f0(t.c,t.b,3,13)}function Mtt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;for(e=0;e<t.j.g;e++){for(i=0,f=!1,Q=0,s=0;s<N(t.j,e)&&!f;s++)if(P=Nt(t.j,e,s),t.e[P]){for(++i,n=Z(t.j,e,s),rA(t.j,n)&&++Q,h=0;h<N(t.j,n);h++)if(T=Z(t.j,n,h),g=Nt(t.j,n,h),T!=e&&t.e[g]){f=!0;break}}if(i>=2&&!f&&i==Q){if(r=c(B,F,6,i,15,1),o=yf(t.j,e),o==0)if(J(t.j,e)==7&&R1(t.j,e)==0)o=1,m0(t.j,e,1);else if(J(t.j,e)>14)o=2;else continue;for(l=0,y=0;y<N(t.j,e);y++)P=Nt(t.j,e,y),t.e[P]&&(n=Z(t.j,e,y),r[l++]=(A=J(t.j,n),((A==8?14+(N(t.j,n)==1?1:0):A==7?12+(N(t.j,n)==1?1:0):A==16?10+(N(t.j,n)==1?1:0):A==34?8+(N(t.j,n)==1?1:0):A==15?6+(N(t.j,n)==1?1:0):A==33?4+(N(t.j,n)==1?1:0):A==6?2+(N(t.j,n)==1?0:1):N(t.j,n)==1?0:1)<<16)+y));for(r.sort(pe(u0.prototype.ld,u0,[])),t.b-=1+i,t.d[e]=!1,D=w.Math.min(i-1,o),L=0;L<r.length;L++)n=Z(t.j,e,r[L]&d1),P=Nt(t.j,e,r[L]&d1),t.d[n]=!1,t.e[P]=!1,--t.c,L<r.length-D?yf(t.j,n)!=0&&m0(t.j,n,-1):(yf(t.j,n)==0&&m0(t.j,n,1),w0(t.j,P,2))}}}function Ctt(t,e,A){var n,P,r,i,f,D,Q,o,L,s;for(s=m(k(B,2),D0,7,0,[m(k(B,1),F,6,15,[2,1,2,1]),m(k(B,1),F,6,15,[1,2,2,1]),m(k(B,1),F,6,15,[1,1,2,2]),m(k(B,1),F,6,15,[2,1,1,2]),m(k(B,1),F,6,15,[2,2,1,1]),m(k(B,1),F,6,15,[1,2,1,2])]),n=c(Ut,Tt,6,Ct(t.R,e),15,1),i=0;i<Ct(t.R,e);i++)n[i]=_0(t.R,Z(t.R,e,A[i]),e);if(Q=_5(t.R,e,A,n,null)<<24>>24,Q!=3)return Q;for(o=0,L=0,f=0;f<Ct(t.R,e);f++)P=Nt(t.R,e,A[f]),q(t.R,0,P)==e&&(c1(t.R,P)==129&&(L!=0&&hP(t.R,e),o=f,L=1),c1(t.R,P)==257&&(L!=0&&hP(t.R,e),o=f,L=2));if(L==0)return 3;for(r=1;r<Ct(t.R,e);r++)n[r]<n[0]&&(n[r]+=k0);if(Ct(t.R,e)==3){switch(o){case 0:(n[1]<n[2]&&n[2]-n[1]<l1||n[1]>n[2]&&n[1]-n[2]>l1)&&(L=3-L);break;case 1:n[2]-n[0]>l1&&(L=3-L);break;case 2:n[1]-n[0]<l1&&(L=3-L)}return L==1?2:1}return D=0,n[1]<=n[2]&&n[2]<=n[3]?D=0:n[1]<=n[3]&&n[3]<=n[2]?D=1:n[2]<=n[1]&&n[1]<=n[3]?D=2:n[2]<=n[3]&&n[3]<=n[1]?D=3:n[3]<=n[1]&&n[1]<=n[2]?D=4:n[3]<=n[2]&&n[2]<=n[1]&&(D=5),s[D][o]==L?2:1}function Htt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d;if(t.g.a.length==0||t.f.a.length==0||(s=Ss(t),s==0))return null;for(L=c(B,D0,7,t.f.a.length,0,2),r=0;r<t.f.a.length;r++)for(h=x(t.f,r),ut(h,15),L[r]=c(B,F,6,s+1,15,1),bU(L[r],-1),e=0;e<h.r;e++){if(o=w.Math.abs(h.A[e]),o!=0&&L[r][o]!=-1)return null;L[r][o]=e}for(i=c(Pt,it,6,s+1,16,1),P=0;P<t.g.a.length;P++)for(d=x(t.g,P),ut(d,15),g=0;g<d.r;g++)if(o=w.Math.abs(d.A[g]),o!=0&&!i[o]){for(f=0;f<t.f.a.length;f++)if(y=L[f][o],y!=-1){if(h=x(t.f,f),d.k[g]!=h.k[y]){i[o]=!0;break}if((d.v[g]&3)!=(h.v[y]&3)){i[o]=!0;break}for(D=0;D<d.k[g];D++)if(A=M1(d,d.j[g][D]),A==0)i[o]=!0;else{for(v=d.n[g][D],n=!1,Q=0;Q<h.k[y];Q++){if(T=M1(h,h.j[y][Q]),T==0){i[o]=!0;break}if(T==A){if(n=!0,l=h.n[y][Q],(v<d.i&&(q8(d.q,v)||d.I[v]==8))^(l<h.i&&(q8(h.q,l)||h.I[l]==8))||!(v<d.i&&(q8(d.q,v)||d.I[v]==8))&&(dt(d,v)!=dt(h,l)||(d.G[v]&3)!=(h.G[l]&3))){i[o]=!0,i[A]=!0;break}break}}n||(i[o]=!0)}}}return i}function Vtt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(this.r=!0,this.b=!1,this.t=!0,this.a=!1,this.i=Et,this.c=t,this.o=c(gr,B9,26,t.g.a.length,0,1),n=0;n<t.g.a.length;n++)Be(x(t.g,n),!0),ut(x(t.g,n),15);for(P=0;P<t.f.a.length;P++)ut(x(t.f,P),15);for(Qa(this,t),this.k=c(B,D0,7,t.g.a.length,0,2),r=0;r<t.g.a.length;r++)for(L=x(t.g,r),this.k[r]=c(B,F,6,L.g,15,1),i=0;i<L.g;i++)if(Q=w.Math.abs(L.A[i]),Q!=0)for(f=0;f<t.f.a.length;f++)for(o=x(t.f,f),D=0;D<o.g;D++)w.Math.abs(o.A[D])==Q&&(e=(y=Sn(L,i),y+An(L,i,y,L.D[i])-G1(L,i)-(s=Sn(o,D),s+An(o,D,s,o.D[D])-G1(o,D))),this.k[r][i]=w.Math.max(e,0));for(this.f=c(Pt,T0,12,t.f.a.length,0,2),A=0;A<t.f.a.length;A++)for(o=x(t.f,A),this.f[A]=c(Pt,it,6,o.g,16,1),i=0;i<o.g;i++)if(Q=w.Math.abs(o.A[i]),Q!=0)for(f=0;f<t.g.a.length;f++)for(L=x(t.g,f),D=0;D<L.g;D++)w.Math.abs(L.A[D])==Q&&(bs(Gb(o,i),Gb(L,D))!=0||bs(kb(o,i),kb(L,D))!=0)&&(this.f[A][i]=!0);this.s=new Gr,this.g=c(Y4,T0,20,this.o.length,0,1)}function Ett(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C;if(g=new vU(t.e,t.c),h=w5(g,t.f,t.d),t.a.a.length==0)return ny(g,h);for(v=1,b=new Zt(t.a);b.a<b.c.a.length;)d=_t(b),v*=Hz(d);if(v>4e6)return z1(),-v;for(e=0,i=c(B,F,6,t.a.a.length,15,1),y=c(B,F,6,t.a.a.length,15,1),D=0;D<t.a.a.length;D++)d=x(t.a,D),y[D]=(d.b=new n1,R=c(B,F,6,d.a,15,1),C=c(Pt,it,6,w.Math.max(d.d.length,d.c.length),16,1),Im(d,0,C,R),d.b.a.length),i[D]=e,e+=d.a;for(r=Wy,P=null,n=null,l=c(B,F,6,t.a.a.length,15,1),s=t.a.a.length!=0;s;){if(j=!1,t.i!=null){for(Q=0;Q<t.a.a.length;Q++)if(WX(x(t.a,Q),l[Q],t.i)){j=!0;break}}if(!j){for(Q=0;Q<t.a.a.length;Q++)TX(x(t.a,Q),l[Q],h);if(T=ny(g,h),r<T)for(r=T,P=c(B,F,6,e,15,1),n=c(B,F,6,e,15,1),A=0,o=0;o<t.a.a.length;o++)d=x(t.a,o),oJ(d,l[o],P,A),QJ(d,l[o],n,A),A+=d.a}for(s=!1,f=0;f<l.length;f++){if(++l[f],l[f]<y[f]){s=!0;break}l[f]=0}}if(r!=Wy)for(L=t.b,f=0;f<e;f++)++L,t.f[P[f]]=L,t.d[n[f]]=L;return r}function Np(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;for(s=new n1,g=new n1,n=new n1,r=new Zt(t.d);r.a<r.c.a.length;){for(P=_t(r),i=0,n.a.length=0,f=0;f<P.e.length;f++)e=P.e[f],A=t.i[e],A!=0&&(Ft(n,new Q3(P,f,A)),i+=A);if(i!=0)for(kD(n,new Pu),Q=new Zt(n);Q.a<Q.c.a.length&&(D=_t(Q),!(i*D.b>0&&(A=w.Math.abs(i)>=w.Math.abs(D.b)?D.b:i,i-=A,Ft(A<0?s:g,new Q3(P,D.a,A)),i==0))););}if(s.a.length==0||g.a.length==0)return null;for(kD(g,new Au),kD(s,new nu),h=new Zt(g);h.a<h.c.a.length;)for(y=_t(h),L=new Zt(s);L.a<L.c.a.length;)if(o=_t(L),y.b==-o.b)return t.i[lD(y.c,y.a)]-=y.b,t.i[lD(o.c,o.a)]-=o.b,new qQ(y.c,o.c,y.a,o.a);for(T=new Zt(g);T.a<T.c.a.length;)for(y=_t(T),L=new Zt(s);L.a<L.c.a.length;)if(o=_t(L),y.b>-o.b)return t.i[lD(y.c,y.a)]+=o.b,t.i[lD(o.c,o.a)]-=o.b,new qQ(y.c,o.c,y.a,o.a);for(l=new Zt(g);l.a<l.c.a.length;)for(y=_t(l),L=new Zt(s);L.a<L.c.a.length;)if(o=_t(L),y.b<-o.b)return t.i[lD(y.c,y.a)]-=y.b,t.i[lD(o.c,o.a)]+=y.b,new qQ(y.c,o.c,y.a,o.a);return null}function CA(t,e,A){var n,P,r,i,f,D,Q;if(t.P=!1,t.F=new n1,t.a=new n1,Mi(t.O.a),!t.H||!t.g||t.g.g-t.p>t.H.g||t.g.i-t.q>t.H.i||t.g.g==0)return 0;for(e==6&&(t.N=63),sq(t,A),n=c(Pt,it,6,t.H.g,16,1),t.G=c(B,F,6,t.g.g,15,1),bU(t.G,-1),f=c(B,F,6,t.A,15,1),zr(f,f.length,-1),r=0;!t.P;){if(t.w!=0){if(Q=t.u[r]==-1?t.H.g:Ue(t.H,t.G[t.u[r]]),++f[r],f[r]==Q){if(f[r]=-1,r==0)break;--r,t.t[r]||(n[t.G[t.s[r]]]=!1);continue}if(t.u[r]==-1)n[f[r]]||sy(t,f[r],t.s[r])&&(t.G[t.s[r]]=f[r],n[f[r]]=!0,++r);else{if(Z(t.H,t.G[t.u[r]],f[r])>=t.H.g)continue;P=Z(t.H,t.G[t.u[r]],f[r]),t.t[r]?P==t.G[t.s[r]]&&Ay(t,Nt(t.H,t.G[t.u[r]],f[r]),t.v[r])&&++r:n[P]||sy(t,P,t.s[r])&&Ay(t,Nt(t.H,t.G[t.u[r]],f[r]),t.v[r])&&(n[P]=!0,t.G[t.s[r]]=P,++r)}}if(r==t.w){if(Mp(t,-1)&&hR(t,-1)&&AR(t,n,-1)){for(D=!1,i=0;i<t.d;i++)if(ett(t,n,f,i)){D=!0;break}if(e==1&&!D||!D&&(Ga(t,e),e==2))return 1}if(r==0)break;--r,t.t[r]||(n[t.G[t.s[r]]]=!1)}}return RW(t),t.F.a.length}function Stt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht;for(W=kn(t.e),$=x(W.k,e).length,tt=x(W.j,e),X=x(W.k,e),S=!0,g=1;g<$;g++)if(pr(t.b,X[g])!=pr(t.b,X[0])){S=!1;break}if(S){for(r=($-2)*S2/$,v=0;v<$;v++)f5(t,tt[v],X[v],X[v==0?$-1:v-1],r);return}for(H=c(Oe,uA,6,$,15,1),P=0,d=0;d<$;d++)H[d]=t0(t.e,tt[d])==0?1.9106119386631804:t0(t.e,tt[d])==1?2.094499897810209:S2,P+=H[d];for(n=(($-2)*S2-P)/$,b=0;b<$;b++)H[b]+=n;for(o=c(Oe,uA,6,$,15,1),j=1;j<$;j++)o[j]=o[j-1]+S2-H[j];for(f=c(Oe,uA,6,$,15,1),i=0;i<100;i++){for(st=0,ht=0,v=0;v<$;v++)st+=pr(t.b,X[v])*w.Math.sin(o[v]),ht+=pr(t.b,X[v])*w.Math.cos(o[v]);for(y=pA(0,0,st,ht),h=w.Math.sqrt(st*st+ht*ht),a=-1,I=0,R=0;R<$;R++)C=R==0?$-1:R-1,E=R+1==$?0:R+1,D=Ze(o[R],o[C]),Q=Ze(o[E],o[R]),K=Ze(H[R],H[E]),f[R]=2*D-2*Q+2*K,l=w.Math.cos(o[R]-u4-y),s=h*l-CM*f[R],w.Math.abs(s)>w.Math.abs(I)&&(I=s,a=R);L=w.Math.exp(-5*i/100),o[a]+=L*I}for(T=0;T<$;T++)C=T==0?$-1:T-1,A=o[C]+S2-o[T],A>k0&&(A-=k0),f5(t,tt[T],X[C],X[T],A)}function Gp(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y;for(t.k=c(B,F,6,t.r,15,1),t.e=c(B,F,6,t.r,15,1),t.j=c(B,D0,7,t.r,0,2),t.n=c(B,D0,7,t.r,0,2),t.o=c(B,D0,7,t.r,0,2),t.p=c(B,F,6,t.g,15,1),o=c(B,F,6,t.r,15,1),i=0;i<t.s;i++)++o[t.F[0][i]],++o[t.F[1][i]];for(n=0;n<t.r;n++)t.j[n]=c(B,F,6,o[n],15,1),t.n[n]=c(B,F,6,o[n],15,1),t.o[n]=c(B,F,6,o[n],15,1);for(s=!1,Q=0;Q<t.i;Q++){if(y=dt(t,Q),y==0){s=!0;continue}for(L=0;L<2;L++)A=t.F[L][Q],e=t.e[A],t.o[A][e]=y,t.j[A][e]=t.F[1-L][Q],t.n[A][e]=Q,++t.e[A],++t.k[A],A<t.g&&y>1&&(t.p[A]+=y-1)}for(D=0;D<t.i;D++)if(t.I[D]==8)for(L=0;L<2;L++)A=t.F[L][D],A<t.g&&t.p[A]==0&&(t.p[A]=1);for(f=t.i;f<t.s;f++){if(y=dt(t,f),y==0){s=!0;continue}for(L=0;L<2;L++)A=t.F[L][f],e=t.e[A],t.o[A][e]=y,t.j[A][e]=t.F[1-L][f],t.n[A][e]=f,++t.e[A],t.F[1-L][f]<t.g&&++t.k[A]}if(s){for(e=c(B,F,6,t.r,15,1),P=0;P<t.r;P++)e[P]=t.e[P];for(r=0;r<t.s;r++)if(y=dt(t,r),y==0)for(L=0;L<2;L++)A=t.F[L][r],t.o[A][e[A]]=y,t.j[A][e[A]]=t.F[1-L][r],t.n[A][e[A]]=r,++e[A]}}function Itt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h;t.b|=e;try{for(l=o2(\"torsionID.txt\"),n=(e&1)==0?null:o2(\"torsionAngle.txt\"),s=(e&1)==0?null:o2(\"torsionRange.txt\"),f=(e&1)==0?null:o2(\"torsionFrequency.txt\"),r=(e&2)==0?null:o2(\"torsionBins.txt\"),h=X1(l);h!=null;){if(y=de(t.c,h),y||(y=new t7(h.endsWith(\"<\")||h.endsWith(\">\")?0:h.endsWith(\"-\")||h.endsWith(\"+\")?1:h.endsWith(\"=\")?3:2),We(t.c,h,y)),n)for(A=c8(X1(n),\",\"),y.a=c(Yt,t1,6,A.length,15,1),Q=0;Q<A.length;Q++)y.a[Q]=L1(A[Q],Fy,32767)<<16>>16;if(s)for(L=c8(X1(s),\",\"),y.d=j1(Yt,[re,t1],[17,6],15,[L.length,2],2),Q=0;Q<L.length;Q++)o=L[Q].indexOf(R0(45),1),y.d[Q][0]=L1(hA(L[Q],0,o),Fy,32767)<<16>>16,y.d[Q][1]=L1(GD(L[Q],o+1),Fy,32767)<<16>>16;if(f)for(D=c8(X1(f),\",\"),y.c=c(Yt,t1,6,D.length,15,1),Q=0;Q<D.length;Q++)y.c[Q]=L1(D[Q],-128,127)<<24>>24;if(r)for(P=c8(X1(r),\",\"),y.b=c(_,At,6,P.length,15,1),Q=0;Q<P.length;Q++)y.b[Q]=L1(P[Q],-128,127)<<24>>24;h=X1(l)}}catch(T){if(T=_1(T),Jt(T,79))i=T,ur(i,(z1(),k9),\"\");else throw et(T)}}function si(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;if(t.R.g!=0&&!t.G){for(t.I=0,j=0,A=1;A<t.R.g;A++)t.f[A]>t.f[j]&&(j=A);for(n=c(Pt,it,6,t.R.g,16,1),i=c(Pt,it,6,t.R.i,16,1),t.H=c(B,F,6,t.R.g,15,1),t.B=c(B,F,6,t.R.g,15,1),t.F=c(B,F,6,t.R.g,15,1),t.C=c(B,F,6,t.R.i,15,1),t.B[0]=j,t.H[j]=0,n[j]=!0,P=1,D=0,Q=1,o=0;D<t.R.g;)if(D<Q){for(;;){for(l=0,h=0,s=-1,e=t.B[D],T=0;T<Ue(t.R,e);T++)(T<N(t.R,e)||T>=Ct(t.R,e))&&(f=Z(t.R,e,T),!n[f]&&t.f[f]>s&&(l=f,h=Nt(t.R,e,T),s=t.f[f]));if(s==-1)break;t.H[l]=Q,t.F[Q]=D,t.B[Q++]=l,t.C[o++]=h,n[l]=!0,i[h]=!0}++D}else{for(y=0,s=-1,e=0;e<t.R.g;e++)!n[e]&&t.f[e]>s&&(y=e,s=t.f[e]);++P,t.H[y]=Q,t.F[Q]=-1,t.B[Q++]=y,n[y]=!0}for(t.D=c(B,F,6,2*(t.R.i-o),15,1);;){for(v=t.R.N,d=t.R.N,b=-1,r=0;r<t.R.i;r++)i[r]||(t.H[q(t.R,0,r)]<t.H[q(t.R,1,r)]?(g=t.H[q(t.R,0,r)],L=t.H[q(t.R,1,r)]):(g=t.H[q(t.R,1,r)],L=t.H[q(t.R,0,r)]),(g<v||g==v&&L<d)&&(v=g,d=L,b=r));if(b==-1)break;i[b]=!0,t.C[o++]=b,t.D[2*t.I]=v,t.D[2*t.I+1]=d,++t.I}t.G=!0}}function Op(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R;if(t==null||t.length==0||(R=t.indexOf(R0(33)),R==-1))return null;for(l=!1,L=R!=0?0:t.length==1?-1:1,d=0,D=0,i?Sv(i):i=new U8;L!=-1;)L>R&&(l=!0),Q=t.indexOf(R0(32),L),R>L&&(Q>R||Q==-1)&&(Q=R),o=Q==-1?(zt(L,t.length+1),t.substr(L)):(Mt(L,Q,t.length),t.substr(L,Q-L)),L=Q==-1||Q==t.length-1?-1:Q+1,v=null,e!=null&&e.length!=0&&(Q=e.indexOf(R0(32),d),Q==-1?v=(zt(d,e.length+1),e.substr(d)):(v=(Mt(d,Q,e.length),e.substr(d,Q-d)),d=Q+1)),f=null,A!=null&&A.length!=0&&(Q=A.indexOf(R0(32),D),Q==-1?f=(zt(D,A.length+1),A.substr(D)):(f=(Mt(D,Q,A.length),A.substr(D,Q-D)),D=Q+1)),j=new WA(r),b=o==null?null:Bs(j,ln((T=o,c0(),T)),f==null?null:ln((g=f,g)),0),v!=null&&SY(j,ln((h=v,c0(),h))),l?(Ft(i.f,b),i.d=-1):(Ft(i.g,b),i.d=-1);if(n!=null&&n.length!=0&&kI(i,new Ib(n)),P!=null&&P.length!=0){for(j=new WA(r),s=0,y=P.indexOf(R0(43));y!=-1;)Lh(i,tf(j,(Mt(s,y,P.length),P.substr(s,y-s)))),s=y+1,y=P.indexOf(R0(43),s);Lh(i,tf(j,(zt(s,P.length+1),P.substr(s))))}return i}function xtt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E;for(Q=c(B,F,6,t.j.g,15,1),g=c(B,F,6,t.d.g,15,1),o=c(B,F,6,t.j.g,15,1),d=c(B,F,6,t.d.g,15,1),Q[0]=e.b,o[e.b]=e.b,g[0]=e.a,d[e.a]=e.a,t.n[e.b]==0&&(++t.c,t.n[e.b]=t.c,t.f[e.a]=t.c),f=0,L=0;f<=L;){for(R=Q[f],b=g[f],T=j1(B,[D0,F],[7,6],15,[N(t.j,R),N(t.d,b)],2),y=0;y<N(t.j,R);y++)if(j=Z(t.j,R,y),t.n[j]==0)for(r=iF(t.j,Nt(t.j,R,y)),h=0;h<N(t.d,b);h++)v=Z(t.d,b,h),t.f[v]==0&&J(t.j,j)==J(t.d,v)&&(i=Nt(t.d,b,h),E=kZ(t,R,j,b,v),r==iF(t.d,i)||E!=0?ia(t,R,j,b,v)&&(D=Pj(t,R,j,b,v),C=w.Math.max(E,D),C!=0&&(l=w_(t,o[R],R,j,d[b],b,v),R_(t,R,j,b,v,C,l)&&(T[y][h]=C,l&&(T[y][h]+=64),LB(o[R],R,j,t.o)==LB(d[b],b,v,t.g)&&(T[y][h]+=128),kF(t.j,j)==kF(t.d,v)&&(T[y][h]+=1)))):Pj(t,R,j,b,v)==q1&&(T[y][h]=768));for(;;){for(A=0,P=-1,n=-1,s=0;s<T.length;s++)if(j=Z(t.j,R,s),t.n[j]==0)for(h=0;h<T[s].length;h++)v=Z(t.d,b,h),t.f[v]==0&&A<T[s][h]&&(A=T[s][h],P=j,n=v);if(A==0)break;++L,Q[L]=P,o[P]=Q[f],g[L]=n,d[n]=g[f],++t.c,t.n[P]=t.c,t.f[n]=t.c}++f}return L+1}function qp(){qp=v1,po=m(k(Yt,1),t1,6,15,[-1,-1,-1,0,0,1,2,3,4,5,-1,0,0,0,6,7,8,9,-1,0,0,10,10,10,10,10,10,10,10,10,10,1,11,11,12,13,-1,0,0,10,10,10,10,10,10,10,10,10,10,0,0,0,11,14,-1,0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,10,10,10,10,10,10,10,10,1,1,1,1,-1,-1,-1,-1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]),K4=m(k(Yt,1),t1,6,15,[-1,-1,-1,0,0,0,2,5,5,5,-1,0,0,0,0,9,9,9,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1])}function Ntt(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g;P=e.a,y=e.g,Q=gt(V(l0(t.k,P),1),0),r=IA(t.k,P),L=r!=null?mZ(t,P,r,n):Q?\"*\":Vi(t.k,P),!Q&&r==null&&mn(t.k,P)&&(t.j&4)==0&&(t0(t.k,P)!=0||G9(t.k,P)==-1&&jA(t.k,P)==0)&&(L=L.toLowerCase()),e.f&&(A.a+=\"(\"),y!=-1&&Rp(t,o1(t.k,e.a,e.g),e.g,A),i=R1(t.k,P),i==0&&(t.j&1)!=0&&(f=V(l0(t.k,P),yr),O(f,Sf)==0?i=-1:O(f,Ef)==0&&(i=1)),o=we(t.k,P),s=(t.j&2)!=0?M1(t.k,P):0,l=(t.j&1)!=0?u1t(t,P,n):null,g=!Q&&!_G(J(t.k,P))||r!=null||(B0(t.k,P)==1||B0(t.k,P)==2)&&(T=fe(t.k,P)-1,!(T!=-1&&t.i[T][OA(t.k,P)]<=1))&&(J(t.k,P)!=7||R1(t.k,P)>0)||mn(t.k,P)&&t0(t.k,P)==0&&(t.j&4)==0||i!=0||o!=0||s!=0||G9(t.k,P)!=-1||jA(t.k,P)!=0||l!=null,g&&(A.a+=\"[\"),o!=0&&(A.a+=o),A.a+=\"\"+L,(B0(t.k,P)==1||B0(t.k,P)==2)&&(h=fe(t.k,P)-1,!(h!=-1&&t.i[h][OA(t.k,P)]<=1))&&(J(t.k,P)!=7||R1(t.k,P)>0)&&G(A,Ia(t,P,y)),(t.j&1)==0&&g&&(D=_d(t.k,P),D==1?A.a+=\"H\":D>1&&(A.a+=\"H\"+D)),i!=0&&(A.a+=String.fromCharCode(i>0?43:45),w.Math.abs(i)>1&&Hh(A,w.Math.abs(i))),l!=null&&(A.a+=\"\"+l),s!=0&&(A.a+=\":\",A.a+=s),g&&(A.a+=\"]\"),QX(t,e,A),e.e&&(A.a+=\")\")}function Gtt(t,e,A,n){var P,r,i,f,D,Q;if(i=1,O(t,0)==0)return n||A==1?\"0\":\"0.\"+HP(A-1);if(O(t,0)!=0){for(;A0(n9(t,10),0);)t=In(t,10),++e;for(i=0,f=t;O(f,0)!=0;f=In(f,10))++i}return r=new M0,O(t,0)<0&&(r.a+=\"-\"),D=w.Math.max(0,A-i),P=\"\"+ve(O(t,0)<0?V0(t):t),e==0?(r.a+=P,!n&&D!=0&&(r.a+=\".\",G(r,HP(D)))):e>0?(Q=n?e>4:e-D>4,Q?(i==1?(r.a+=P,A>1&&(r.a+=\".\",n?r.a+=\"0\":G(r,HP(D)))):(G(r,(Mt(0,1,P.length),P.substr(0,1))),r.a+=\".\",G(r,(zt(1,P.length+1),P.substr(1))),!n&&D!=0&&G(r,HP(D))),r.a+=\"e\",r.a+=\"\"+(e+i-1)):(r.a+=P,G(r,HP(e)),!n&&D>e&&(r.a+=\".\",G(r,HP(D-e))))):-e<i?(G(r,(Mt(0,i+e,P.length),P.substr(0,i+e))),r.a+=\".\",G(r,(zt(i+e,P.length+1),P.substr(i+e))),!n&&D!=0&&G(r,HP(D))):-e==i?(r.a+=\"0.\",r.a+=P,!n&&D!=0&&G(r,HP(D))):e+i<-2?(i==1?(r.a+=P,A>1&&(r.a+=\".\",n?r.a+=\"0\":G(r,HP(D)))):(Ye(r,(zt(0,P.length),P.charCodeAt(0))),r.a+=\".\",G(r,(zt(1,P.length+1),P.substr(1))),!n&&D!=0&&G(r,HP(D))),r.a+=\"e-\",r.a+=\"\"+(1-e-i)):(r.a+=\"0.\",G(r,HP(-e-i)),r.a+=P,!n&&D!=0&&G(r,HP(D))),r.a}function Ott(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;if(r=en(t.V,e,A),i=kf(t.V,e,A),t.w==2){if(t.V.L){if(r!=-1)NF(t,r);else if(i!=-1)Jv(t,i);else if(t.v){if(!t.Z){for(s=0;s<t.V.r;s++)vP(t.V,s,!1);for(P=new Zt(t.I);P.a<P.c.a.length;)n=_t(P),n.g=!1}t.v.g=!0,t.eb=w.Math.max(t.eb,1),P1(t.k)}}else if(g=-1,r!=-1?g=r:i!=-1&&(g=q(t.V,0,i)),g!=-1||t.v){if(!t.Z){for(s=0;s<t.V.r;s++)vP(t.V,s,!1);if(t.I)for(Q=new Zt(t.I);Q.a<Q.c.a.length;)D=_t(Q),D.g=!1}if(g!=-1)if((t.U&1)!=0)for(o=t.M[g],s=0;s<t.V.r;s++)t.M[s]==o&&vP(t.V,s,!0);else for(L=xm(t.V,g,!1),s=0;s<L.length;s++)vP(t.V,L[s],!0);else t.v.g=!0;t.eb=w.Math.max(t.eb,1),P1(t.k)}}else if(t.w==18&&(o=-2,(t.U&1)!=0&&(o=$J(t)),o!=-1)){for(T=Et,h=f1,y=0;y<t.V.r;y++)(o==-2||t.M[y]==o)&&(T>mt(t.V,y)&&(T=mt(t.V,y)),h<mt(t.V,y)&&(h=mt(t.V,y)));if(h>T){for(f=(h+T)/2,l=0;l<t.V.r;l++)(o==-2||t.M[l]==o)&&ge(t.V,l,2*f-mt(t.V,l));for(s=0;s<t.V.s;s++)if(o==-2||t.M[q(t.V,0,s)]==o)switch(c1(t.V,s)){case 257:w0(t.V,s,129);break;case 129:w0(t.V,s,257)}}t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0))}}function zp(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;for(o=t.Q,L=t.F,(t.G&On)!=0&&(t.Q=-6,t.F=Ty,$1(t,1)),t.o=c(lc,e0,56,t.L.r,0,1),D=0;D<t.L.s;D++)(c1(t.L,D)==2||c1(t.L,D)==386||c1(t.L,D)==8)&&tM(t,D);for(Q=0;Q<t.L.s;Q++)c1(t.L,Q)!=2&&c1(t.L,Q)!=386&&c1(t.L,Q)!=8&&tM(t,Q);if((t.G&64)==0)for(f=0;f<t.L.s;f++)bu(t.L,f)!=0&&(P=null,bu(t.L,f)==1||bu(t.L,f)==2?(dt(t.L,f)==2||gP(t.L,f)==0||e[gP(t.L,f)][ef(t.L,f)]>1)&&(bu(t.L,f)==1?P=dt(t.L,f)==2?\"E\":pU(t.L,f)?\"p\":\"P\":P=dt(t.L,f)==2?\"Z\":pU(t.L,f)?\"m\":\"M\"):P=\"?\",P!=null&&(t.Cb((t.X*2+1)/3|0),$1(t,V9(t.L,f)?-3:t.L.P==1||(t.G&E0)!=0?t.Q:448),A=q(t.L,0,f),n=q(t.L,1,f),y=(W1(t.R,mt(t.L,A))+W1(t.R,mt(t.L,n)))/2,l=(Z1(t.R,Rt(t.L,A))+Z1(t.R,Rt(t.L,n)))/2,r=(W1(t.R,mt(t.L,A))-W1(t.R,mt(t.L,n)))/3,i=(Z1(t.R,Rt(t.L,A))-Z1(t.R,Rt(t.L,n)))/3,EP(t,y+i,l-r,P,!0),$1(t,t.Q),t.Cb(t.X)));if((t.G&4)!=0){for(t.Cb((t.X*2+1)/3|0),$1(t,384),f=0;f<t.L.s;f++)A=q(t.L,0,f),n=q(t.L,1,f),s=Z8(t.L,f)?\"d\":eA(t.L,f)?\"a\":\"\",y=(W1(t.R,mt(t.L,A))+W1(t.R,mt(t.L,n)))/2,l=(Z1(t.R,Rt(t.L,A))+Z1(t.R,Rt(t.L,n)))/2,EP(t,y,l,s+(\"\"+f),!0);$1(t,t.Q),t.Cb(t.X)}(t.G&On)!=0&&(t.Q=o,t.F=L)}function Kp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R;for(ut(t,1),A&&(e=!0),D=0;D<t.s;D++)if(Q=dt(t,D),Q==1||Q==2){if(t.t[t.F[0][D]]>0&&t.t[t.F[1][D]]<0)r=t.F[0][D],i=t.F[1][D];else if(t.t[t.F[0][D]]<0&&t.t[t.F[1][D]]>0)r=t.F[1][D],i=t.F[0][D];else continue;if(ee(t,r)||ee(t,i)||t.D[r]<9&&G1(t,r)>3||t.D[i]<9&&G1(t,i)>3)continue;L=xt(t,r)!=0,t.t[r]-=1,t.t[i]+=1,L||(v=t.I[D],Q==1?t.I[D]=2:t.I[D]=4,(v==129||v==257)&&(R=t.F[0][D],g=$s(t,R,!1),t.F[0][g]!=R&&(t.F[1][g]=t.F[0][g],t.F[0][g]=R))),t.U=0}for(d=0,h=0,y=0,P=0;P<t.r;P++)d+=t.t[P],t.t[P]<0&&!MF(t,P)&&(++h,rA(t,P)&&(y-=t.t[P]));if(!e&&d!=0)throw et(new H1(\"molecule's overall charges are not balanced\"));for(ut(t,1),b=0,j=A?d+y:y,f=0;f<t.r;f++)t.t[f]>0&&!xq(t,f)&&rA(t,f)&&(o=w.Math.min(xt(t,f),t.t[f]),o!=0&&j>=o&&(d-=o,b-=o,j-=o,t.t[f]-=o,t.U&=1));if(T=A?d:b,T<0){for(l=c(B,F,6,h,15,1),h=0,r=0;r<t.r;r++)t.t[r]<0&&!MF(t,r)&&(l[h++]=(t.D[r]<<22)+r);for(l.sort(pe(u0.prototype.ld,u0,[])),s=l.length-1;T<0&&s>=l.length-h;s--)n=l[s]&q0,rA(t,n)&&(o=w.Math.min(-T,-t.t[n]),d+=o,T+=o,t.t[n]+=o,t.U&=1)}return d}function Jp(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;for(o=c(ft,Dt,2,t.g.a.length+t.f.a.length,6,1),l=c(ft,Dt,2,t.g.a.length+t.f.a.length,6,1),r=c(ft,Dt,2,t.g.a.length+t.f.a.length,6,1),D=0;D<t.g.a.length+t.f.a.length;D++){if(g=D<t.g.a.length?x(t.g,D):x(t.f,D-t.g.a.length),g.L&&D<t.g.a.length)for(n=0;n<g.r;n++)w1(g,n,k8,!1);if(P=new bA(g),o[D]=Me(P),o[D]==null)return null;l[D]=cB(P),r[D]=zu(P,e)}for(L=new M0,i=new M0,h=new M0,Q=0;Q<t.g.a.length;Q++){if(s=Q,A)for(T=\"\",s=-1,y=0;y<t.g.a.length;y++)a9(T,o[y])<0&&(T=o[y],s=y);Q>0&&(L.a+=\" \",h.a+=\" \",i.a+=\" \"),L.a+=\"\"+o[s],h.a+=\"\"+l[s],i.a+=\"\"+r[s],o[s]=\"\"}for(L.a+=\"!\",t.f.a.length!=0&&t.g.a.length!=0&&(h.a+=\" \",i.a+=\" \"),f=t.g.a.length;f<t.g.a.length+t.f.a.length;f++){if(s=f,A)for(T=\"\",s=-1,y=t.g.a.length;y<t.g.a.length+t.f.a.length;y++)a9(T,o[y])<0&&(T=o[y],s=y);f>t.g.a.length&&(L.a+=\" \",h.a+=\" \",i.a+=\" \"),L.a+=\"\"+o[s],h.a+=\"\"+l[s],i.a+=\"\"+r[s],o[s]=\"\"}return v=c(ft,Dt,2,5,6,1),v[0]=L.a,h.a.length>t.g.a.length+t.f.a.length-1&&(v[1]=h.a),i.a.length>t.g.a.length+t.f.a.length-1&&(v[2]=i.a),t.b&&(v[3]=Tm(t.b)),t.a.a.length!=0&&(v[4]=BY(t,e)),v}function Yp(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;for(this.i=t,this.v=t.s,this.u=t.q,this.C=new xR(this.u,this.v),r=0,o=this.v,y=0,T=o.length;y<T;++y)D=o[y],r=w.Math.max(r,w.Math.max(1+D.i,1+D.j));for(e=c(B,F,6,r,15,1),L=this.v,l=0,g=L.length;l<g;++l)D=L[l],++e[D.i],++e[D.j];for(this.j=c(B,D0,7,e.length,0,2),this.k=c(B,D0,7,e.length,0,2),f=0;f<e.length;f++)this.j[f]=c(B,F,6,e[f],15,1),this.k[f]=c(B,F,6,e[f],15,1);for(zr(e,e.length,0),i=0;i<this.v.length;i++)n=ag(this.v[i],0),P=ag(this.v[i],1),this.j[n][e[n]]=P,this.j[P][e[P]]=n,this.k[n][e[n]]=i,this.k[P][e[P]]=i,++e[n],++e[P];for(this.o=c(B,F,6,r,15,1),this.n=c(B,F,6,r,15,1),this.q=c(B,F,6,r,15,1),this.p=c(Pt,it,6,r,16,1),this.f=c(B,DA,29,r,0,3),A=1;A<r;A++)for(this.f[A]=c(B,D0,7,A,0,2),P=0;P<A;P++)this.f[A][P]=A_(this,A,P);for(this.t=1,Q=this.v,s=0,h=Q.length;s<h;++s)D=Q[s],this.t*=D.d.length;for(d=this.u,b=0,j=d.length;b<j;++b)v=d[b],this.t*=v.b.length;this.t<=0&&(this.t=Et),this.D=new dd,this.w=new zh((y1(new Xw),new mw)),this.A=new Ci,this.g=0,this.B=0,this.r=3,this.F=!1,this.s=w.Math.min(fP,this.t)}function qtt(t,e){var A,n;return n={},A=t.C[e],n.aromatic=I1(V(A,2),0),n.notAromatic=I1(V(A,4),0),n.notChain=I1(V(A,8),0),n.not2RingBonds=I1(V(A,16),0),n.not3RingBonds=I1(V(A,32),0),n.not4RingBonds=I1(V(A,64),0),n.noMoreNeighbours=I1(V(A,q1),0),n.moreNeighbours=I1(V(A,E0),0),n.matchStereo=I1(V(A,be),0),n.not0PiElectrons=I1(V(A,On),0),n.not1PiElectron=I1(V(A,g8),0),n.not2PiElectrons=I1(V(A,Q0),0),n.not0Hydrogen=I1(V(A,128),0),n.not1Hydrogen=I1(V(A,256),0),n.not2Hydrogen=I1(V(A,512),0),n.not3Hydrogen=I1(V(A,ue),0),n.not0Neighbours=I1(V(A,O0),0),n.not1Neighbour=I1(V(A,v8),0),n.not2Neighbours=I1(V(A,B8),0),n.not3Neighbours=I1(V(A,F8),0),n.not4Neighbours=I1(V(A,KA),0),n.notChargeNeg=I1(V(A,Uo),0),n.notCharge0=I1(V(A,wn),0),n.noChargePos=I1(V(A,134217728),0),n.ringSize0=I1(V(A,w8),0),n.ringSize3=I1(V(A,h9),0),n.ringSize4=I1(V(A,T9),0),n.ringSize5=I1(V(A,c9),0),n.ringSize6=I1(V(A,w9),0),n.ringSize7=I1(V(A,g9),0),n.ringSizeLarge=I1(V(A,Vf),0),n}function ztt(t,e){s8();var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;for(g=c(Pt,it,6,e.i,16,1),j=(ut(e,7),e.q),T=c(Pt,it,6,j.j.a.length,16,1),ry(j,T,c(Pt,it,6,j.j.a.length,16,1),c(B,F,6,j.j.a.length,15,1),!0),b=0;b<j.j.a.length;b++)if(T[b])for(h=0;h<x(j.k,b).length;h++)g[x(j.k,b)[h]]=!0;for(P=c(B,F,6,2,15,1),i=0;i<e.i;i++)if(D=e.F[0][i],Q=e.F[1][i],P[0]=e.D[D],P[1]=e.D[Q],g[i]=g[i]|(i<e.i&&Ee(e.q,i)||dt(e,i)==2&&P[0]<=8&&P[1]<=8&&e.p[D]==1&&e.p[Q]==1&&e.e[D]>1&&e.e[Q]>1),!g[i]&&dt(e,i)==1){for(l=0;l<2;l++)if((P[l]==7||P[l]==8)&&P[1-l]==6){for(o=e.F[1-l][i],d=0;d<e.k[o];d++)if(e.o[o][d]==2&&(L=e.j[o][d],e.D[L]==7||e.D[L]==8||e.D[L]==16)){g[i]=!0;break}}}for(v=c(Pt,it,6,e.g,16,1),f=0;f<e.i;f++)g[f]&&(v[e.F[0][f]]=!0,v[e.F[1][f]]=!0);for(y=c(B,F,6,e.r,15,1),r=0;r<e.i;r++)if(g[r]){for(y[0]=e.F[0][r],s=i_(y,g,e),n=c(B,F,6,s,15,1),l=0;l<s;l++)n[l]=y[l];Ft(t,new L5(n,e))}for(A=0;A<e.g;A++)if(!v[A]&&(e.D[A]==5&&e.t[A]==0&&e.e[A]<=3||e.D[A]<=8&&e.p[A]==1&&e.e[A]>1||xP(e,A,!0)&&e.p[A]!=2&&e.e[A]>1)){for(n=c(B,F,6,1+e.e[A],15,1),l=0;l<e.e[A];l++)n[l]=e.j[A][l];n[e.e[A]]=A,Ft(t,new L5(n,e))}}function Ktt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H;for(d=c(Pt,it,6,t.j.g,16,1),S=0;S<e.j.a.length;S++)if(I=x(e.k,S).length,(I==3||I==5||I==6||I==7)&&t.i[S])for(n=x(e.j,S),P=0,r=n.length;P<r;++P)A=n[P],d[A]=!0;for(s=c(B,F,6,t.j.g,15,1),l=c(Pt,it,6,t.j.g,16,1),Q=0;Q<t.j.i;Q++)i=q(t.j,0,Q),f=q(t.j,1,Q),!d[i]&&!d[f]&&(t.e[Q]&&(++s[i],++s[f]),c1(t.j,Q)==16&&(l[i]=!0,l[f]=!0));for(E=c(B,F,6,t.j.g,15,1),y=c(B,F,6,t.j.g,15,1),H=0;H<t.j.g;H++)if(s[H]==1)for(y[0]=H,L=0,h=0;L<=h;){for(T=0;T<N(t.j,y[L]);T++)if(t.e[Nt(t.j,y[L],T)]&&(o=Z(t.j,y[L],T),(L==0||o!=y[L-1])&&s[o]!=0)){if(y[++h]=o,(s[o]&1)!=0){for(j=1;j<h;j+=2)E[y[j]]=-1;h=0}break}++L}for(D=c(Pt,it,6,t.j.g,16,1),a=0;a<t.j.g;a++)if(!D[a]&&s[a]!=0){for(y[0]=a,D[a]=!0,L=0,h=0;L<=h;){for(T=0;T<N(t.j,y[L]);T++)t.e[Nt(t.j,y[L],T)]&&(o=Z(t.j,y[L],T),D[o]||(y[++h]=o,D[o]=!0));++L}if((h&1)==0){for(g=0;g<=h;g++)E[y[g]]==0&&(E[y[g]]=Tp(t,y[g],!1));for(b=!0,v=0;v<=h;v++)if(E[y[v]]<=0&&!cf(t,y[v],!1)){b=!1;break}if(b){for(C=0,R=-1,T=0;T<=h;T++)C<E[y[T]]&&(C=E[y[T]],R=y[T]);C>0&&(Tp(t,R,!0),Df(t,R))}}}}function Xp(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h;P=new h1,D=new h1,o=new ce,Q=new ce,i=q(t.L,0,A),f=q(t.L,1,A),n&&(s=e.a,e.a=e.b,e.b=s,s=e.c,e.c=e.d,e.d=s,y=i,i=f,f=y),vA(t,e)&&(LA(t.L,A)?(P.a=e.a,P.c=e.c,P.b=e.b,P.d=e.d,L=n?-o6(t.L,A):o6(t.L,A),L==0&&(L=1),Lf(t,e.b-e.a,e.d-e.c,o),L>0?(D.a=e.a+o.a,D.c=e.c+o.b,D.b=e.b+o.a,D.d=e.d+o.b,(Ui(t,i,f,1,Q)||N(t.L,i)>1)&&(D.a+=Q.a+o.b,D.c+=Q.b-o.a)):(D.a=e.a-o.a,D.c=e.c-o.b,D.b=e.b-o.a,D.d=e.d-o.b,(Ui(t,i,f,-1,Q)||N(t.L,i)>1)&&(D.a+=Q.a+o.b,D.c+=Q.b-o.a)),c1(t.L,A)==386&&hL(P,D),vA(t,P)&&xn(t,P,i,f),c1(t.L,A)==8?vA(t,D)&&zQ(t,D,i,f):vA(t,D)&&xn(t,D,i,f)):(Lf(t,e.b-e.a,e.d-e.c,o),l=o.a/2,h=o.b/2,r=!1,P.a=e.a+l,P.c=e.c+h,P.b=e.b+l,P.d=e.d+h,N(t.L,i)>1&&(Ui(t,i,f,1,Q)?(P.a+=Q.a,P.c+=Q.b,N(t.L,i)==2&&(Q.a!=0||Q.b!=0)&&(P.a+=o.b,P.c-=o.a)):t.o[i]=new Eh(P.a,P.c)),D.a=e.a-l,D.c=e.c-h,D.b=e.b-l,D.d=e.d-h,N(t.L,i)>1&&(Ui(t,i,f,0,Q)?(D.a+=Q.a,D.c+=Q.b,N(t.L,i)==2&&(Q.a!=0||Q.b!=0)&&(D.a+=o.b,D.c-=o.a)):(t.o[i]=new Eh(D.a,D.c),r=!0)),c1(t.L,A)==386&&hL(P,D),c1(t.L,A)==8?r?(zQ(t,P,i,f),xn(t,D,i,f)):(xn(t,P,i,f),zQ(t,D,i,f)):(xn(t,P,i,f),xn(t,D,i,f))))}function Jtt(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;this.i=t,this.g=7,this.j=new n1,this.k=new n1,this.b=new n1,this.a=c(B,F,6,this.i.g,15,1),this.c=c(B,F,6,this.i.i,15,1),this.i._b(1),s=c(Pt,it,6,this.i.g,16,1),y=c(Pt,it,6,this.i.i,16,1);do for(i=!1,A=0;A<this.i.g;A++)if(!s[A]){for(T=0,L=0;L<N(this.i,A);L++)s[Z(this.i,A,L)]||++T;if(T<2){for(s[A]=!0,o=0;o<N(this.i,A);o++)y[Nt(this.i,A,o)]=!0;i=!0}}while(i);for(v=0;v<this.i.g&&s[v];)++v;if(v!=this.i.g){for(D=c(B,F,6,this.i.g,15,1),D[0]=v,h=c(B,F,6,this.i.g,15,1),h[0]=-1,f=c(B,F,6,this.i.g,15,1),f[v]=1,r=0,Q=0,l=1;r<=Q;){for(o=0;o<N(this.i,D[r]);o++)if(P=Z(this.i,D[r],o),P!=h[D[r]]){if(f[P]!=0){p_(this,Nt(this.i,D[r],o),s);continue}s[P]||(f[P]=l,h[P]=D[r],D[++Q]=P)}if(++r,r>Q){for(A=0;A<this.i.g;A++)if(f[A]==0&&!s[A]){f[A]=++l,D[++Q]=A,h[A]=-1;break}}}if((e&4)!=0&&(this.e=c(Pt,it,6,this.j.a.length,16,1),this.f=c(Pt,it,6,this.j.a.length,16,1),this.d=c(B,F,6,this.j.a.length,15,1),ry(this,this.e,this.f,this.d,(e&8)!=0),ra(this)),(e&2)!=0)for(n=0;n<this.i.i;n++)!y[n]&&dt(this.i,n)!=0&&(g=__(this,n,s),g!=null&&ij(this,g,mb(this,g)))}}function Ytt(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$;for(d=c(B,F,6,P,15,1),b=c(B,F,6,P,15,1),h=0;h<P;h++)d[h]=L8(e,n[h]),b[h]=L8(A,n[h]);for(a=0,K=0,H=0,tt=0,T=0;T<P;T++)a+=e.a[d[T]],K+=e.b[d[T]],H+=A.a[b[T]],tt+=A.b[b[T]];for(a/=P,K/=P,H/=P,tt/=P,Iv(A,a-H,K-tt),Q=c(ci,e0,43,P,0,1),L=c(ci,e0,43,P,0,1),r=c(ci,e0,43,P,0,1),i=c(ci,e0,43,P,0,1),g=0;g<P;g++)Q[g]=new iQ(a,K,e.a[d[g]],e.b[d[g]]),L[g]=new iQ(a,K,A.a[b[g]],A.b[b[g]]),r[g]=new $P(Q[g].a-L[g].a,Q[g].b*L[g].b),i[g]=new $P(Q[g].a+L[g].a,Q[g].b*L[g].b);for(R=L2(r,P),C=L2(i,P),W=0,$=0,v=0;v<P;v++)for(j=0;j<Ct(t.f,n[v]);j++)f=Z(t.f,n[v],j),ar(e,f)&&!ar(A,f)&&++W,!ar(e,f)&&ar(A,f)&&++$;for(o=c(ci,e0,43,W,0,1),s=c(ci,e0,43,$,0,1),y=c(ci,e0,43,$,0,1),W=0,$=0,l=0;l<P;l++)for(j=0;j<Ct(t.f,n[l]);j++)f=Z(t.f,n[l],j),ar(e,f)&&!ar(A,f)&&(D=L8(e,f),o[W]=new iQ(e.a[d[l]],e.b[d[l]],e.a[D],e.b[D]),++W),!ar(e,f)&&ar(A,f)&&(D=L8(A,f),X=new iQ(A.a[b[l]],A.b[b[l]],A.a[D],A.b[D]),s[$]=new $P(R.a+X.a,X.b),y[$]=new $P(C.a-X.a,X.b),++$);return E=L2(o,W),S=L2(s,$),I=L2(y,$),w.Math.abs(EL(E.a,S.a))>w.Math.abs(EL(E.a,I.a))?Tf(A,a,K,R.a):(DX(A,a,K),Tf(A,a,K,C.a)),Z5(t,e,A,P)}function Xtt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S;for(ut(t,7),E=0,y=c(Pt,it,6,t.g,16,1),S=c(B,F,6,t.g,15,1),r=0;r<t.i;r++)A=t.F[0][r],n=t.F[1][r],i=t.t[A],f=t.t[n],i!=0&&f!=0&&i<0^f<0&&(y[A]=!0,y[n]=!0),S[A]+=dt(t,r),S[n]+=dt(t,r);for(D=0;D<t.g;D++)if(E+=t.t[D],t.t[D]==1){if(t.D[D]==7&&!y[D]){if(S[D]<=3)E-=1,t.t[D]=0,t.U=0,t.k[D]!=t.e[D]&&(RQ(t,Z(t,D,t.e[D]-1)),ut(t,7));else if(D<t.g&&i0(t.q,D)){for(g=c(Pt,it,6,t.g,16,1),v=c(Pt,it,6,t.i,16,1),Oj(t,D,!0,g,v),o=0;o<t.g;o++)if(g[o]&&t.D[o]==7&&t.t[o]==0&&S[o]==2&&v$(t,v,D,o)){E-=1;break}}}}else if(t.t[D]<0&&(t.D[D]==6||t.D[D]==7||t.D[D]==8||t.D[D]==16))if(y[D]){for(j=c(B,F,6,16,15,1),j[0]=D,C=1,R=0;R<C;){for(P=0;P<t.s;P++)if(e=-1,t.F[0][P]==j[R]?e=t.F[1][P]:t.F[1][P]==j[R]&&(e=t.F[0][P]),e!=-1&&t.t[e]!=0){for(L=!1,h=0;h<C;h++)if(e==j[h]){L=!0;break}L||(C==j.length&&(Q=c(B,F,6,2*j.length,15,1),PA(j,0,Q,0,j.length),j=Q),j[C++]=e)}++R}for(s=0,T=0;T<C;T++)s+=t.t[j[T]];if(s<0){for(d=-1,b=99,l=0;l<C;l++)t.t[j[l]]<0&&b>ej(t.D[j[l]])&&(b=ej(t.D[j[l]]),d=j[l]);d!=-1&&(E-=t.t[d],t.t[d]=0,t.U=0)}}else E-=t.t[D],t.t[D]=0,t.U=0;return E>0&&(E=k_(t,E)),E}function d6(){d6=v1,yl=m(k(B,1),F,6,15,[0,yi,14286847,13402367,12779264,16758197,9474192,3166456,16715021,9494608,11789301,11230450,9109248,12560038,1578e4,16744448,16777008,2093087,8442339,9388244,4062976,15132390,12567239,10921643,9083335,10255047,14706227,15765664,5296208,13140019,8224944,12750735,6721423,12419299,16752896,10889513,6076625,7351984,DP,9764863,9756896,7586505,5551541,3907230,2396047,687500,27013,12632256,16767375,10909043,6717568,10380213,13924864,9699476,4366e3,5707663,51456,7394559,16777159,14286791,13107143,10747847,9437127,6422471,4587463,3211207,2097095,65436,58997,54354,48952,43812,5096191,5089023,2200790,2522539,2516630,1528967,13684960,16765219,12105936,10900557,5724513,10375093,11230208,7688005,4358806,4325478,32e3,7384058,47871,41471,36863,33023,27647,5528818,7888099,9064419,10565332,11739092,11739066,11734438,12389767,13041766,13369433,13697103,14221381,14680120,15073326,15400998,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13158600,1334015,56540,15075850,15132160,56540,15075850,15461355,8553170,1016335,1016335,1334015,15132160,3289770,14456450,16422400,16422400,11819700,3289770,1016335])}function oy(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h;if(t.db[e]!=0||J(t.R,e)!=5&&J(t.R,e)!=6&&J(t.R,e)!=7&&J(t.R,e)!=14&&J(t.R,e)!=15&&J(t.R,e)!=16||(t.Q&E0)!=0&&J(t.R,e)>=14)return!1;if(t0(t.R,e)!=0){if(UT(t.R,e))return ya(t,e,A);if(J(t.R,e)!=15&&J(t.R,e)!=16)return!1}if(N(t.R,e)<3||Ct(t.R,e)>4||R1(t.R,e)>0&&J(t.R,e)==6||J(t.R,e)==5&&Ct(t.R,e)!=4)return!1;if(t.R.L){if(se(t.R,e))return!1;for(f=0;f<Ct(t.R,e);f++)if(se(t.R,Z(t.R,e,f)))return!1}if(J(t.R,e)==7&&!t.S[e])return!1;for(l=c(B,F,6,4,15,1),h=c(B,F,6,4,15,1),o=c(Pt,it,6,4,16,1),D=0;D<Ct(t.R,e);D++){for(r=-1,P=0,Q=0;Q<Ct(t.R,e);Q++)o[Q]||r<t.f[Z(t.R,e,Q)]&&(r=t.f[Z(t.R,e,Q)],P=Q);l[D]=P,h[D]=r,o[P]=!0}if(Ct(t.R,e)==4&&h[0]==h[1]&&h[2]==h[3]||Ct(t.R,e)==4&&(h[0]==h[2]||h[1]==h[3])||Ct(t.R,e)==3&&h[0]==h[2])return!1;for(L=0,s=0,y=!1,i=1;i<Ct(t.R,e);i++)if(h[i-1]==h[i]){if(A==1||h[i]==0)return!1;L=Z(t.R,e,l[i-1]),s=Z(t.R,e,l[i]),A==3&&LA(t.R,Nt(t.R,e,l[i]))&&(t.W[e]=!0),y=!0}return A!=1&&!y?!1:(n=t.jb?Ta(t,e,l):Ctt(t,e,l),A==1?t.db[e]=n:A==2&&(n==1?Le(t.e[L],t.f[e]):n==2&&Le(t.e[s],t.f[e])),!0)}function Uy(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T;if(X5(t,e),!((t.v[e]&3)==0||(t.v[e]&3)==3)){if(t.p[e]==2&&t.k[e]==2){dtt(t,e);return}if(t.k[e]<3||t.k[e]>4){ke(t,e,0,!1);return}for(A=t.e[e],l=!1,i=0;i<A;i++)if(dt(t,t.n[e][i])==1){l=!0;break}if(l){for(h=dY(t,e),n=c(Ut,Tt,6,A,15,1),f=0;f<A;f++)n[f]=_0(t,t.j[e][h[f]],e);for(D=0;D<A;D++)t.F[0][t.n[e][D]]==e&&dt(t,t.n[e][D])==1&&(t.I[t.n[e][D]]=1);if(!((t.q&&e<t.g?UA(t.q,e):0)<=24&&lZ(t,e,h,n))&&(s=$s(t,e,!0),s!=-1)){for(t.F[0][s]!=e&&(t.F[1][s]=t.F[0][s],t.F[0][s]=e),y=-1,Q=0;Q<A;Q++)if(s==t.n[e][h[Q]]){y=Q;break}for(T=m(k(B,2),D0,7,0,[m(k(B,1),F,6,15,[2,1,2,1]),m(k(B,1),F,6,15,[1,2,2,1]),m(k(B,1),F,6,15,[1,1,2,2]),m(k(B,1),F,6,15,[2,1,1,2]),m(k(B,1),F,6,15,[2,2,1,1]),m(k(B,1),F,6,15,[1,2,1,2])]),r=1;r<A;r++)n[r]<n[0]&&(n[r]+=k0);if(A==3){switch(o=!1,y){case 0:o=n[1]<n[2]&&n[2]-n[1]<l1||n[1]>n[2]&&n[1]-n[2]>l1;break;case 1:o=n[2]-n[0]>l1;break;case 2:o=n[1]-n[0]<l1}P=(t.v[e]&3)==1^o?257:129}else L=0,n[1]<=n[2]&&n[2]<=n[3]?L=0:n[1]<=n[3]&&n[3]<=n[2]?L=1:n[2]<=n[1]&&n[1]<=n[3]?L=2:n[2]<=n[3]&&n[3]<=n[1]?L=3:n[3]<=n[1]&&n[1]<=n[2]?L=4:n[3]<=n[2]&&n[2]<=n[1]&&(L=5),P=(t.v[e]&3)==1^T[L][y]==1?129:257;t.I[s]=P}}}}function Ly(t,e,A){qp();var n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(ut(t,7),y=c(XA,Pe,6,t.k[e],14,1),s=0,D=0;D<t.k[e];D++)if(P=t.j[e][D],t.D[P]!=1){if(i=0,(A&32)!=0&&(r=t.o[e][D],A==32190?O(r,3)<0&&Z8(t,t.n[e][D])&&t.p[e]==1&&(r=0):O(r,3)<0&&eA(t,t.n[e][D])&&(r=0),i=z(i,Wt(r,4))),(A&128)!=0){if(po[t.D[P]]==-1)throw et(new H1(X6+t.D[P]));i=at(i,po[t.D[P]])}else if((A&64)!=0){if(K4[t.D[P]]==-1)throw et(new H1(X6+t.D[P]));i=at(i,K4[t.D[P]])}for((A&256)!=0&&(l=t.k[P]-1,l>3&&(l=3),(A&512)==0&&l>1&&(l=1),i=z(i,l<<6)),(A&ue)!=0&&(t.v[P]&8)!=0&&(i=z(i,256)),(A&q1)!=0&&P<t.g&&i0(t.q,P)&&(i=z(i,512)),(A&On)!=0&&(t.v[P]&be)!=0&&(i=z(i,ue)),o=0;O(i,y[o])<0;)++o;for(L=D;L>o;L--)y[L]=y[L-1];y[o]=i,++s}for(s>4&&(s=4),n=0,Q=0;Q<s;Q++)n=Wt(n,11),n=z(n,y[Q]);if(n=Wt(n,15),po[t.D[e]]==-1)throw et(new H1(X6+t.D[e]));if(n=z(n,po[t.D[e]]),(A&2)!=0?(T=t.q&&e<t.g?UA(t.q,e):0,T>9&&(T=9),T>2&&(T-=2),n=z(n,T<<4)):(A&1)!=0&&(t.v[e]&8)!=0&&(n=z(n,64)),(A&4)!=0&&e<t.g&&i0(t.q,e)&&(n=z(n,ue)),(A&8)!=0&&(t.v[e]&E0)!=0&&(n=z(n,q1)),(A&16)!=0&&(t.v[e]&be)!=0&&(n=z(n,E0)),(A&E0)!=0&&(OX(t,e)&&(n=z(n,be)),Q1t(t,e))){for(f=0;f<t.g;f++)if(g$(t,f)){n=z(n,On);break}}return(A&be)!=0&&(h=r6(t,e,10),n=z(n,Wt(h,7))),n}function B6(t,e){Ws();var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K;if(E=t.e,l=t.d,P=t.a,E==0)switch(e){case 0:return\"0\";case 1:return\"0.0\";case 2:return\"0.00\";case 3:return\"0.000\";case 4:return Sy;case 5:return\"0.00000\";case 6:return\"0.000000\";default:return R=new M0,e<0?R.a+=\"0E+\":R.a+=\"0E\",R.a+=-e,R.a}if(d=l*10+1+7,b=c(Fr,Pe,6,d+1,15,1),A=d,l==1)if(f=P[0],f<0){K=V(f,g1);do h=K,K=In(K,10),b[--A]=48+Ot(Y1(h,yn(K,10)))&d1;while(O(K,0)!=0)}else{K=f;do h=K,K=K/10|0,b[--A]=48+(h-K*10)&d1;while(K!=0)}else{I=c(B,F,6,l,15,1),H=l,PA(P,0,I,0,H);t:for(;;){for(C=0,Q=H-1;Q>=0;Q--)a=at(Wt(C,32),V(I[Q],g1)),g=HY(a),I[Q]=Ot(g),C=Ot(G0(g,32));v=Ot(C),T=A;do b[--A]=48+v%10&d1;while((v=v/10|0)!=0&&A!=0);for(n=9-T+A,D=0;D<n&&A>0;D++)b[--A]=48;for(L=H-1;I[L]==0;L--)if(L==0)break t;H=L+1}for(;b[A]==48;)++A}if(y=E<0,i=d-A-e-1,e==0)return y&&(b[--A]=45),PP(b,A,d-A);if(e>0&&i>=-6){if(i>=0){for(o=A+i,s=d-1;s>=o;s--)b[s+1]=b[s];return b[++o]=46,y&&(b[--A]=45),PP(b,A,d-A+1)}for(L=2;L<-i+1;L++)b[--A]=48;return b[--A]=46,b[--A]=48,y&&(b[--A]=45),PP(b,A,d-A)}return S=A+1,r=d,j=new Vr,y&&(j.a+=\"-\"),r-S>=1?(Ye(j,b[A]),j.a+=\".\",j.a+=PP(b,A+1,d-A-1)):j.a+=PP(b,A,d-A),j.a+=\"E\",i>0&&(j.a+=\"+\"),j.a+=\"\"+i,j.a}function sy(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y;if(f=N(t.H,e),n=t.o[A],n>f)return!1;if(Q=l0(t.H,e),r=l0(t.g,A),P=IA(t.g,A),D=IA(t.H,e),gt(V(r,1),0)){if(P!=null){if(gt(V(Q,1),0)){if(D==null||!Em(P,D))return!1}else if(D!=null){if(HK(D,P))return!1}else if(TF(J(t.H,e),P))return!1}}else{if(gt(V(Q,1),0))return!1;if(P!=null){if(D!=null){if(!Em(D,P))return!1}else if(!TF(J(t.H,e),P))return!1}else if(D!=null||t.J[e]!=t.k[A])return!1}if(gt(z(Q,r),0)){if(gt(V(r,q1),0)){if(t.H.L&&A0(V(Q,q1),0))return!1;if(n!=f)return!1}if(gt(V(r,E0),0)&&n>=f&&A0(V(Q,E0),0))return!1}if(gt(V(t.I[e],Wn(t.j[A])),0)||gt(V(t.B[A],Wn(t.M[e])),0))return!1;if(i=V(r,l9),t.H.L){if(o=V(r,l9),O(o,0)!=0&&(O(i,0)==0||gt(V(i,Wn(o)),0)))return!1}else if(O(i,0)!=0&&A0(V(i,t.M[e]),0))return!1;return R1(t.g,A)!=0&&R1(t.g,A)!=R1(t.H,e)||we(t.g,A)!=0&&we(t.g,A)!=we(t.H,e)||jA(t.g,A)!=0&&jA(t.g,A)!=jA(t.H,e)||(L=V(r,M2),O(L,0)!=0&&Ua(t.H,e)!=Ot(G0(L,47))-7)?!1:(s=V(r,lr),O(s,0)!=0?(s=G0(s,22),t.H.L?(y=Ot(G0(V(l0(t.H,e),lr),22)),Ot(s)==y):Or(t.H,e)==Ot(s)):!0)}function Ztt(t,e){var A,n,P,r,i,f,D,Q;if(A=0,i=0,r=e.length,f=null,Q=new Vr,i<r&&(zt(i,e.length),e.charCodeAt(i)==43)&&(++i,++A,i<r&&(zt(i,e.length),e.charCodeAt(i)==43||(zt(i,e.length),e.charCodeAt(i)==45))))throw et(new _P(b2+e+'\"'));for(;i<r&&(zt(i,e.length),e.charCodeAt(i)!=46)&&(zt(i,e.length),e.charCodeAt(i)!=101)&&(zt(i,e.length),e.charCodeAt(i)!=69);)++i;if(Q.a+=\"\"+(Mt(A,i,(e??y9).length),(e??y9).substr(A,i-A)),i<r&&(zt(i,e.length),e.charCodeAt(i)==46)){for(++i,A=i;i<r&&(zt(i,e.length),e.charCodeAt(i)!=101)&&(zt(i,e.length),e.charCodeAt(i)!=69);)++i;t.e=i-A,Q.a+=\"\"+(Mt(A,i,(e??y9).length),(e??y9).substr(A,i-A))}else t.e=0;if(i<r&&(zt(i,e.length),e.charCodeAt(i)==101||(zt(i,e.length),e.charCodeAt(i)==69))&&(++i,A=i,i<r&&(zt(i,e.length),e.charCodeAt(i)==43)&&(++i,i<r&&(zt(i,e.length),e.charCodeAt(i)!=45)&&++A),f=(Mt(A,r,e.length),e.substr(A,r-A)),t.e=t.e-L1(f,f1,Et),t.e!=Bt(t.e)))throw et(new _P(\"Scale out of range.\"));if(D=Q.a,D.length<16){if(t.f=(jc==null&&(jc=new RegExp(\"^[+-]?\\\\d*$\",\"i\")),jc.test(D)?parseInt(D,10):NaN),isNaN(t.f))throw et(new _P(b2+e+'\"'));t.a=Vs(t.f)}else CT(t,new id(D));for(t.d=Q.a.length,P=0;P<Q.a.length&&(n=Xi(Q.a,P),!(n!=45&&n!=48));++P)--t.d;t.d==0&&(t.d=1)}function Zp(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(this.j=t,n=0;n<t.i.g;n++)t.f[n]&&(t.o[n]==1||t.o[n]==2)&&(t.k[n]==1?this.a<=t.j[n]&&(this.a=1+t.j[n]):t.k[n]==2&&this.i<=t.j[n]&&(this.i=1+t.j[n]));for(this.b=this.a+this.i,this.e=j1(Pt,[T0,it],[12,6],16,[this.b+1,t.g.length+1],2),P=0;P<t.i.g;P++)t.f[P]&&(t.o[P]==1||t.o[P]==2)&&!t.e[P]&&(this.e[PF(this,P)][t.g.length]=!0);for(D=0;D<t.g.length;D++)for(T=0;T<t.g[D].length;T++)A=t.g[D][T],t.f[A]&&(t.o[A]==1||t.o[A]==2)&&(this.e[PF(this,A)][D]=!0);for(this.d=c(B,D0,7,this.b,0,2),Q=0;Q<t.g.length;Q++)for(y=1;y<this.b;y++)if(this.e[y][Q])for(l=0;l<y;l++)this.e[l][Q]&&(this.d[y]=uf(this.d[y],l),this.d[l]=uf(this.d[l],y));for(this.c=c(B,F,6,this.b+1,15,1),s=0;s<this.b;s++)this.e[s][t.g.length]?this.c[s]=-1:this.c[s]=-2;for(o=0;o<t.g.length;o++)if(this.e[this.b][o])for(L=0;L<this.b;L++)this.e[L][o]&&this.c[L]!=o&&(this.c[L]==-2?this.c[L]=o:this.c[L]=-3);for(e=0;e<this.b;e++)if(this.c[e]>=-1&&(r=c(B,F,6,this.b,15,1),nZ(this,r,e)))for(L=0;L<this.b;L++)r[L]!=0&&(this.c[L]=-3);for(f=0;f<t.g.length-1;f++)for(y=1;y<this.b;y++)if(this.e[y][f]&&this.c[y]!=-3){for(l=0;l<y;l++)if(this.e[l][f]&&this.c[l]!=-3&&(i=S$(this,y,l,f),i!=null)){for(h=0;h<i.length;h++)this.c[i[h]]=-3;$_(this,i);break}}}function Wtt(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt;for(t.e=c(Ut,Tt,6,t.d,15,1),n=c(Ut,Tt,6,t.d,15,1),Q=c(Ut,Tt,6,t.d,15,1),E=c(Ut,Tt,6,t.d,15,1),wt=c(Ut,Tt,6,t.d,15,1),v=c(Ut,Tt,6,t.d*t.d,15,1),L=0;L<t.d;L++)E[L]=t.i[L];for(f=ls(t,t.i),cj(t),I=0,s=0;s<t.d;s++)v[s*t.d+s]=1,wt[s]=-t.e[s],I+=t.i[s]*t.i[s];for(C=100*w.Math.max(w.Math.sqrt(I),t.d),K=(z1(),E1(Date.now())),b=1;b<=e&&!t.f;b++){if(S=rtt(t,t.i,f,wt,E,C),S<0)return 2;for(f=t.k,$=0,y=0;y<t.d;y++)wt[y]=E[y]-t.i[y],t.i[y]=E[y],X=w.Math.abs(wt[y])/w.Math.max(w.Math.abs(t.i[y]),1),X>$&&($=X),n[y]=t.e[y];if($<12e-8)return 0;for(D=cj(t),$=0,W=w.Math.max(t.k*D,1),l=0;l<t.d;l++)ht=w.Math.abs(t.e[l])*w.Math.max(w.Math.abs(t.i[l]),1),$=w.Math.max($,ht),n[l]=t.e[l]-n[l];if($/=W,$<A)return 0;for(P=0,i=0,a=0,H=0,h=0;h<t.d;h++){for(d=h*t.d,Q[h]=0,j=0;j<t.d;j++)Q[h]+=v[d+j]*n[j];P+=n[h]*wt[h],i+=n[h]*Q[h],a+=n[h]*n[h],H+=wt[h]*wt[h]}if(P>w.Math.sqrt(3e-8*a*H)){for(P=1/P,r=1/i,T=0;T<t.d;T++)n[T]=P*wt[T]-r*Q[T];for(g=0;g<t.d;g++)for(d=g*t.d,j=g;j<t.d;j++)v[d+j]+=P*wt[g]*wt[j]-r*Q[g]*Q[j]+i*n[g]*n[j],v[j*t.d+g]=v[d+j]}for(o=0;o<t.d;o++)for(d=o*t.d,wt[o]=0,j=0;j<t.d;j++)wt[o]-=v[d+j]*t.e[j];if(tt=E1(Date.now()),st=Y1(tt,K),ku(st,t.j)){for(R=new Zt(t.c);R.a<R.c.a.length;)_t(R),null.zd();K=tt}}return 1}function _tt(t){var e,A,n,P,r,i,f,D,Q,o,L,s;for(e=0;t.a.length!=0;){if(t.a.length==1){if(t.e==1||t.e==0)break;if(t.e==2&&(t.a[0]==0||t.a[0]==180))break;if(t.e==3&&(t.a[0]==0||t.a[0]==90))break}for(s=t.a[0]!=0&&(t.e==2||t.e==3)?-1:0,L=-1,o=Et,i=s;i<t.a.length;i++)D=i+1,A=i>=0?t.a[i]:-t.a[0],n=D<t.a.length?t.a[D]:t.e==1?t.a[0]+180:t.e==2?360-t.a[t.a[i]==180?i-1:i]:t.e==3?180-t.a[t.a[i]==90?i-1:i]:t.a[0]+360,o>n-A&&(o=n-A,L=i);if(o>15)break;r=L,f=r+1,r==-1?(e+=t.c[0],t.a[0]=0,t.c[0]=t.c[0]*2<<16>>16,t.d[0][0]=-t.d[0][1]):f<t.a.length?(Q=PQ(t,r,f,t.a[f]),Bf(t,Q,r,f,t.d[r][0],t.d[f][1])):t.e==1?(f=0,Q=PQ(t,r,f,t.a[f]+180),Q<=180?Bf(t,Q,r,f,t.d[r][0],t.d[f][1]+180):Bf(t,Q-180,f,r,t.d[f][0],t.d[r][1]-180)):t.e==2?(f=t.a[r]==180?r-1:r,t.a[r]<180?(e+=t.c[r],t.a[r]=180,t.c[r]=t.c[r]*2<<16>>16,t.d[r][1]=360-t.d[r][0]<<16>>16):(z1(),Q=PQ(t,r,f,t.a[f]),Bf(t,Q,f,r,t.d[f][0],t.d[r][1]))):t.e==3?(f=t.a[r]==90?r-1:r,t.a[r]<90?(e+=t.c[r],t.a[r]=90,t.c[r]=t.c[r]*2<<16>>16,t.d[r][1]=180-t.d[r][0]<<16>>16):(z1(),Q=PQ(t,r,f,t.a[f]),Bf(t,Q,f,r,t.d[f][0],t.d[r][1]))):(f=0,Q=PQ(t,r,f,t.a[f]+360),Q<=360?Bf(t,Q,r,f,t.d[r][0],t.d[f][1]+360):Bf(t,Q-360,f,r,t.d[f][0],t.d[r][1]-360))}if(e!=0)for(P=0;P<t.c.length;P++)t.c[P]=Bt(w.Math.round(100*t.c[P]/(100+e)))<<16>>16}function Wp(t,e){var A,n,P,r,i,f,D,Q;if(D=0,t.L){switch(e<t.g&&Wh(t.q,e)?D=z(D,e4):e<t.g&&i0(t.q,e)&&(D=z(D,2)),Q=(P=t.v[e]&gn,P==0?0:P==ue?2:P==q1?3:4),Q!=0&&(D=z(D,8),Q>2&&(D=z(D,16)),Q>3&&(D=z(D,32))),A=t.t[e],A<0?D=z(D,Sf):A>0&&(D=z(D,Ef)),i=t.k[e],i){case 0:break;case 1:D=z(D,O0);break;case 2:D=z(D,Ti);break;case 3:D=z(D,NP);break;default:D=z(D,If)}switch(n=wT(t,e),n){case 0:break;case 1:D=z(D,p2);break;case 2:D=z(D,By);break;case 3:D=z(D,vy);break;default:D=z(D,uo)}f=t.p[e],f>0&&(D=z(D,On)),f>1&&(D=z(D,g8))}else{switch(e<t.g&&Wh(t.q,e)?D=z(D,e4):e<t.g&&i0(t.q,e)?D=z(D,2):D=z(D,4),(t.v[e]&wn)!=0?D=z(D,Ao):D=z(D,no),Q=(P=t.v[e]&gn,P==0?0:P==ue?2:P==q1?3:4),Q==0?D=z(D,112):Q==2?D=z(D,104):Q==3?D=z(D,88):D=z(D,56),A=t.t[e],A==0?D=z(D,ro):A<0?D=z(D,Sf):D=z(D,Ef),r=t.e[e]-n0(t,e)+xt(t,e),r){case 0:D=z(D,1792);break;case 1:D=z(D,1664);break;case 2:D=z(D,1408);break;default:D=z(D,896)}switch(i=t.k[e],i){case 0:D=z(D,3932160);break;case 1:D=z(D,io);break;case 2:D=z(D,j2);break;case 3:D=z(D,R2);break;default:D=z(D,If)}switch(n=wT(t,e),n){case 0:D=z(D,cy);break;case 1:D=z(D,wy);break;case 2:D=z(D,gy);break;case 3:D=z(D,dy);break;default:D=z(D,uo)}switch(f=t.p[e],f){case 0:D=z(D,98304);break;case 1:D=z(D,81920);break;default:D=z(D,49152)}}return D}function _p(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;for(D=c(B,F,6,t.i.g,15,1),g=c(B,F,6,t.i.g,15,1),l=c(Pt,it,6,t.i.g,16,1),Q=c(Pt,it,6,t.i.g,16,1),v=new Md(t.i.g),D[0]=e,g[e]=A,g[A]=-2,v.a[e]=!0,v.a[A]=!0,r=0,o=0;r<=o;){if(i=D[r],g[i]==i){for(L=0;L<N(t.i,i);L++)if(n=Z(t.i,i,L),!v.a[n]){if(EA(t.i,i,L)==2&&J(t.i,n)<10)D[++o]=n,g[n]=n,Q[n]=Q[i]||t0(t.i,n)==2,l[n]=Q[i]&&!l[i],v.a[n]=!0;else if(Q[i]&&l[i]){if(d=gj(t,n,g[i],v.a),d==-1)return null;D[++o]=n,g[n]=d,g[d]=-2,Q[n]=!1,v.a[n]=!0,v.a[d]=!0}else if(LA(t.i,Nt(t.i,i,L))&&(D[++o]=n,g[n]=n,Q[n]=!1,v.a[n]=!0,(J(t.i,n)==6&&t0(t.i,n)==0||J(t.i,n)==7&&R1(t.i,n)==1||J(t.i,n)==14||J(t.i,n)==15&&N(t.i,n)>2||J(t.i,n)==16&&N(t.i,n)>2)&&N(t.i,n)>2)){for(f=!1,h=1;h<N(t.i,n);h++)if(b=Z(t.i,n,h),!v.a[b])for(T=0;T<h;T++)j=Z(t.i,n,T),v.a[j]||Py(t,b,j)&&(D[++o]=b,g[b]=j,g[j]=-2,Q[b]=!1,v.a[b]=!0,v.a[j]=!0,f=!0);if(!f)return null}}}else{for(P=c(Pt,it,6,N(t.i,i),16,1),s=0;s<N(t.i,i);s++)if(n=Z(t.i,i,s),v.a[n])P[s]=g[n]==n;else for(h=0;h<N(t.i,n);h++)if(Z(t.i,n,h)==g[i]){P[s]=!0;break}for(y=0;y<N(t.i,i);y++)if(P[y])if(n=Z(t.i,i,y),v.a[n]){if(o1(t.i,n,g[i])==-1)return null}else D[++o]=n,g[n]=n,l[n]=!1,Q[n]=!0,v.a[n]=!0;for(L=0;L<N(t.i,i);L++)if(!P[L]&&(n=Z(t.i,i,L),!v.a[n])){if(d=gj(t,n,g[i],v.a),d==-1)return null;D[++o]=n,g[n]=d,g[d]=-2,Q[n]=!1,v.a[n]=!0,v.a[d]=!0}}++r}return v}function $tt(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h;switch(s=t.X,t.X=0,s){case 1:if(l=en(t.V,t.ib,t.lb),l!=-1&&Ue(t.V,l)==8)return;J1(t),t.e==-1&&(t.e=a0(t.V,t.hb,t.kb,0)),l==-1&&(l=a0(t.V,t.ib,t.lb,0)),t.e!=-1&&l!=-1&&(P=ee(t.V,t.e)||ee(t.V,l)?16:1,t.w==6&&(P=257),t.w==23&&(P=129),rj(t.V,t.e,l,P)),t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0));break;case 2:if(J1(t),t.q>0&&(t.e==-1&&(t.e=a0(t.V,t.hb,t.kb,0)),t.n[0]==-1&&(t.n[0]=a0(t.V,t.o[0],t.p[0],0)),t.n[0]!=-1&&QL(t.V,t.e,t.n[0])),t.q>1)for(f=1;f<t.q;f++)t.n[f]==-1&&(t.n[f]=a0(t.V,t.o[f],t.p[f],0)),t.n[f]!=-1&&QL(t.V,t.n[f-1],t.n[f]);t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0));break;case 3:case 4:case 7:t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0));break;case 10:t.eb=w.Math.max(t.eb,3),P1(t.k);break;case 5:case 6:for(y=!1,i=0;i<t.V.r;i++)if(t.P[i]!=r0(t.V,i)){y=!0;break}P1(t.k),y&&N1(t,new x1(t,2,!0));break;case 8:if(L=!1,n=t.t,n!=-1&&t.V.L&&se(t.V,n)&&(n=-1),Q=M1(t.V,t.e),n==-1){if(J1(t),Q!=0){for(L=!0,h=!1,e=0;e<t.V.g;e++)M1(t.V,e)==Q&&(h=h|Fn(t.V,e),tA(t.V,e,0,!1));No&&!h&&bQ(t)}}else{if(J1(t),L=!0,h=!1,t.e==n)for(D=M1(t.V,t.e),e=0;e<t.V.g;e++)M1(t.V,e)==D&&(h=h|Fn(t.V,e),tA(t.V,e,0,!1));else{for(o=M1(t.V,n),A=0;A<t.V.g;A++)(M1(t.V,A)==Q||M1(t.V,A)==o)&&tA(t.V,A,0,!1);for(r=1,e=0;e<t.V.g;e++)M1(t.V,e)==r&&(++r,e=-1);tA(t.V,t.e,r,!1),tA(t.V,n,r,!1)}No&&!h&&bQ(t)}L&&SL(t,w.Math.max(t.eb,1)),P1(t.k)}}function att(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b;if(d=pA(t.hb,t.kb,t.ib,t.lb),g=t.ib-t.hb,v=t.lb-t.kb,L=t.q,s=0,l=0,y=0,h=0,L>0&&(s=Ot(E1(w.Math.round(t.o[0]))),l=Ot(E1(w.Math.round(t.p[0])))),L>1&&(y=Ot(E1(w.Math.round(t.o[1]))),h=Ot(E1(w.Math.round(t.p[1])))),D=0,t.e==-1||Ue(t.V,t.e)==0)D=fA*$9(E1(w.Math.round(d*3/l1)));else if(Ue(t.V,t.e)==1)A=_0(t.V,Z(t.V,t.e,0),t.e),n=A-fA,P=A+fA,D=w.Math.abs(Ze(d,n))<w.Math.abs(Ze(d,P))?n:P;else{for(r=c(Ut,Tt,6,Ue(t.V,t.e),15,1),o=0;o<Ue(t.V,t.e);o++)r[o]=_0(t.V,t.e,Z(t.V,t.e,o));for(r.sort(pe(ki.prototype.ld,ki,[])),Q=0;Q<r.length;Q++){if(T=Q==0?r[r.length-1]-k0:r[Q-1],T<d&&d<r[Q]){D=(r[Q]+T)/2;break}if(T<d-k0&&d-k0<r[Q]){D=(r[Q]+T)/2;break}}}if(e=Qn(t.V,24*t.ab),t.q=w.Math.abs(Ze(d,D))>fA?0:Bt(w.Math.sqrt(g*g+v*v)/e),t.q>0){for((t.o==null||t.o.length<t.q)&&(t.o=c(Ut,Tt,6,t.q,15,1),t.p=c(Ut,Tt,6,t.q,15,1)),i=c(Ut,Tt,6,2,15,1),f=c(Ut,Tt,6,2,15,1),b=Ze(d,D)<0?D-fA:D+fA,i[0]=e*w.Math.sin(D),f[0]=e*w.Math.cos(D),i[1]=e*w.Math.sin(b),f[1]=e*w.Math.cos(b),o=0;o<t.q;o++)t.o[o]=(o==0?t.hb:t.o[o-1])+i[o&1],t.p[o]=(o==0?t.kb:t.p[o-1])+f[o&1];for(t.n=c(B,F,6,t.q,15,1),Q=0;Q<t.q;Q++)t.n[Q]=en(t.V,t.o[Q],t.p[Q]),t.n[Q]!=-1&&(t.o[Q]=mt(t.V,t.n[Q]),t.p[Q]=Rt(t.V,t.n[Q]))}return L!=t.q||t.q!=0&&(s!=Ot(E1(w.Math.round(t.o[0])))||l!=Ot(E1(w.Math.round(t.p[0]))))||t.q>1&&(y!=Ot(E1(w.Math.round(t.o[1])))||h!=Ot(E1(w.Math.round(t.p[1]))))}function t1t(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt;for(st=new n1,g=new Zt(t.g);g.a<g.c.a.length;)if(T=_t(g),T.g!=-1&&(d=o1(t.k,T.a,T.g),!oi(t.k,d)&&!A8(t.k,d)&&(ze(t.k,d)==1||ze(t.k,d)==2))){if(W=x(t.g,t.q[T.g]),A=c(B,F,6,N(t.k,T.a)+N(t.k,W.a)-2,15,1),E=0,$=!1,W.g!=-1)A[E++]=W.b;else{for(b=-1,ht=-1,j=Et,I=0;I<N(t.k,W.a);I++)L=Z(t.k,W.a,I),L!=T.a&&(b==-1?(b=I,j=t.q[L]):j<t.q[L]?ht=I:(ht=b,b=I));ht==-1?(K=Z(t.k,W.a,b),tt=Nt(t.k,W.a,b),A[E++]=tt|(wQ(t,W.a,K)?dn:0)):(s=Z(t.k,W.a,b),l=Nt(t.k,W.a,b),y=Z(t.k,W.a,ht),h=Nt(t.k,W.a,ht),A[E++]=l|(wQ(t,W.a,s)?dn:0),A[E++]=h|(wQ(t,W.a,y)?0:dn))}if(N(t.k,W.a)==3&&W.g!=-1){for(I=0;I<N(t.k,W.a);I++)if(L=Z(t.k,W.a,I),L!=W.g&&L!=T.a){n=Nt(t.k,W.a,I),A[E++]=n|(wQ(t,W.a,L)?dn:0),L<W.g&&($=!$);break}}for(ze(t.k,d)==2&&($=!$),S=0;S<N(t.k,T.a);S++)if(D=Z(t.k,T.a,S),D!=T.g){if(C=$,N(t.k,T.a)==3){for(H=0;H<N(t.k,T.a);H++)if(L=Z(t.k,T.a,H),L!=T.g&&L!=D){L<D&&(C=!C);break}}pU(t.k,d)&&(R=ix(t.d,d),t.n[R]||(t.n[R]=!0,t.o[R]=C),t.o[R]&&(C=!C)),Q=o1(t.k,T.a,D),A[E++]=Q|(C^wQ(t,T.a,D)?0:dn)}st.a.push(A)}for(t.f=c(B,F,6,t.k.i,15,1),st.a.length!=0&&mT(t,cA(st,0),!1);st.a.length!=0;){for(wt=st.a.length,S=st.a.length-1;S>=0;S--){for(A=(te(S,st.a.length),st.a[S]),X=0,a=!1,o=!1,r=A,i=0,f=r.length;i<f;++i)P=r[i],e=P&1073741823,t.f[e]!=0&&(v=(P&dn)!=0^t.f[e]==2,X==0?a=v:a!=v&&(o=!0),++X);X!=0&&(A=cA(st,S),o||mT(t,A,a))}wt==st.a.length&&mT(t,cA(st,0),!1)}}function $p(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S;for(this.d=t,S=_Q(e,!1,null),(S.g.a.length!=1||S.f.a.length!=1)&&z1(),S.c||jQ(S)||z1(),this.g=x(S.g,0),this.f=x(S.f,0),ut(this.g,1),ut(this.f,63),Q=new Ci,this.c=c(B,F,6,this.g.g+1,15,1),this.c[0]=-1,n=0;n<this.g.g;n++)M1(this.g,n)!=0&&(this.c[M1(this.g,n)]=n);for(UZ(this,this.c),R=c(Pt,it,6,this.g.i,16,1),g=0;g<this.f.i;g++)h=q(this.f,0,g),T=q(this.f,1,g),s=M1(this.f,h),y=M1(this.f,T),s!=0&&y!=0&&(P=this.c[s],r=this.c[y],v=cu(this.f,g),j=o1(this.g,P,r),j==-1?tr(Q,new os(P,r,s,y,v)):((ie(this.g,j)&31)==0&&(C=cu(this.g,j),C!=v&&tr(Q,new os(P,r,s,y,v))),R[j]=!0));for(D=0;D<this.g.i;D++)R[D]||(P=q(this.g,0,D),r=q(this.g,1,D),!se(this.g,P)&&!se(this.g,r)&&(s=M1(this.g,P),y=M1(this.g,r),(s!=0||y!=0)&&tr(Q,new os(P,r,s,y,-1))));for(this.k=Mx(Q,c(q1t,{487:1,4:1,5:1,10:1,8:1},149,0,0,1)),o=0,i=0;i<this.g.g;i++)M1(this.g,i)==0&&!se(this.g,i)&&++o;for(this.j=c(B,F,6,o,15,1),o=0,f=0;f<this.g.g;f++)M1(this.g,f)==0&&!se(this.g,f)&&(this.j[o++]=f);for(this.n=new n1,L=c(Pt,it,6,this.f.g,16,1),A=0;A<this.f.g;A++)M1(this.f,A)==0&&!se(this.f,A)&&!L[A]&&Ft(this.n,new lj(this.f,A,L));for(this.b=this.j.length==0&&this.n.a.length==0,this.a=c(B,F,6,0,15,1),l=0;l<this.f.g;l++)d=B0(this.f,l),(d==1||d==2)&&(b=this.c[M1(this.f,l)],b!=-1&&(E=B0(this.g,b),XY(this,l,this.c)==(E==d)&&(this.a=Cn(this.a,this.a.length+1),this.a[this.a.length-1]=b)));this.e=nX(this)}function v6(){v6=v1,CE=m(k(ft,1),Dt,2,6,[\"[N](-*)(-*)-*\",\"[N](-*)=*\",\"[N]#*\",\"[N](-*)(=*)=* as in nitro\",\"[N](=*)#* middle atom of azide\",\"[N]1(-*)-*-*-1 3-membered ring\",\"[NH](-*)-*\",\"[NH]1-*-*-1 3-membered ring\",\"[NH]=*\",\"[NH2]-*\",\"[N+](-*)(-*)(-*)-*\",\"[N+](-*)(-*)=*\",\"[N+](-*)#* N in isocyano\",\"[NH+](-*)(-*)-*\",\"[NH+](-*)=*\",\"[NH2+](-*)-*\",\"[NH2+]=*\",\"[NH3+]-*\",\"[n](:*):*\",\"[n](:*)(:*):*\",\"[n](-*)(:*):*\",\"[n](=*)(:*):* as in pyridine-N-oxid\",\"[nH](:*):*\",\"[n+](:*)(:*):*\",\"[n+](-*)(:*):*\",\"[nH+](:*):*\",\"[O](-*)-*\",\"[O]1-*-*-1 3-membered ring\",\"[O]=*\",\"[OH]-*\",\"[O-]-*\",\"[o](:*):*\",\"[S](-*)-*\",\"[S]=*\",\"[S](-*)(-*)=*\",\"[S](-*)(-*)(=*)=*\",\"[SH]-*\",\"[s](:*):*\",\"[s](=*)(:*):*\",\"[P](-*)(-*)-*\",\"[P](-*)=*\",\"[P](-*)(-*)(-*)=*\",\"[PH](-*)(-*)=*\"]),qP=m(k(Oe,1),uA,6,15,[3.240000009536743,12.359999656677246,23.790000915527344,11.680000305175781,13.600000381469727,GV,12.029999732971191,21.940000534057617,23.850000381469727,26.020000457763672,0,GV,4.360000133514404,4.440000057220459,13.970000267028809,16.610000610351562,25.59000015258789,27.639999389648438,12.890000343322754,4.409999847412109,4.929999828338623,8.390000343322754,15.789999961853027,4.099999904632568,3.880000114440918,14.140000343322754,9.229999542236328,12.529999732971191,17.06999969482422,20.229999542236328,23.059999465942383,13.140000343322754,25.299999237060547,32.09000015258789,19.209999084472656,8.380000114440918,38.79999923706055,28.239999771118164,21.700000762939453,13.59000015258789,34.13999938964844,9.8100004196167,23.469999313354492])}function ap(){ap=v1,bE=m(k(ft,1),Dt,2,6,[\"gkvt@@@@LddTTTrbTRTRTRRRRRRRRRRRRRrVRrIh\\\\IAaQxlY@gRHdJCJcRXlv_CfJx|A\\\\hRHejiLaQjTje^kSjtFcIhvXmVKMjt{lN{Kavy\\\\^wGjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjh@@vo@HBC@PhLN@bPhtFKCcpDbILaRhtzCIbsX\\\\nOO`JDbqDjSKdJeJmQjtz}Ahr[LVkMnpz\\\\nwGj{PBhBdBlBBBjBfBnBaBiBeBmBcBkBgBoB`bhbdblbbbjbfbnbabibebmbcbkbgbob`RhRdRlRbRjRfRnRaRiReRmRcRkRgRoR`rhrdrlrbrjrfrnrarirermrcrkrgror`JhJdJlJbJjJfJnJaJiJeJmJcJkJgJoJ`jhjdjljbjjjfjnjajijej` !BnkjyVwsVr|iQn|Q|goTZWPIJwbudnRkVYBez]siZymNJZUqNFBqZWxS~iCXVU]SeRjwrtSPAjkvXLpBAZauDPzq]PfMlecrMnkv|@\\\\SFD`m|mWiEoCXp`SIe_J[l|[XCbloTV`[Gc@FJGopyyoOlFQfUy^w\\\\Bgz|\",\"gcrt@@@@LdbbbbTRbRbRbRRRRRRRRRRRRVRrVQIA`HtRGAaIxZAHfShTjCIbqylQGKgqdBaXeQJeruBiPitZmFoPZLFSYbvZlVGMnsZ]vWSmr{]UUUUUUUUUUUUUUUUUUUUUUUUUUUUUT@@[G`DAA`HTFG@QHTZCEaqxBQDfPiTZ]AdqYlNWGgpEBQXbUIerEReVhuZ]^`tYMfKUfwX]NW[jkPBhBdBlBbBjBfBnBaBiBeBmBcBkBgBoB`bhbdblbbbjbfbnbabibebmbcbkbgbob`RhRdRlRbRjRfRnRaRiReRmRcRkRgRoR`rhrdrlrbrjrfrnrarirermrcrkrgror`JhJdJlJbJjJfJnJaJiJeJmJcJkJgJoJ`jhjdjljbjjjfjnjajij` !B^cR]`]Fm]QkfljE\\\\p?UVfgOmFXsQe_gXPyXis_wF|vUUX_XbxpzU]HUFgYViwFo~@uemc@}~T?IEPioYVwr]JnM~[ZEC\\\\g}~o_pUfdo~irsklTLiyVJshnw^iVAsZ`_~}PYkckURH{FYMImFaRaccUlCZSHMfP\",\"dml@@Dje^VGiyZjjjh@vtHSBinFU@ !BPTCTy[skMzUPF`AJbBixEZHS[Il\",\"dml@@DjYVvGiyZjjjh@vtHSBinFU@ !BwLo~BJ~UquhXBinZ\\\\ykA@F_eMrT\",\"dml@@LdfbbQX^fUZjjj`C[PaLJfxYT !BzxIHVc{OiJVRpprePho~]}y?wLl\",\"deL@@DjUYkfEijjjj@MeBDpj[ad !B?aA?MVr[AvkKzm_jKvVbD{sk\",\"dil@@LddTQRl[NX^Fjjjj@MiBDpj[a@ !BPfL@?ox@M~T@?ox@?`C~@@\",\"daL@@DjYtKJqjynjjjj@MaBDpj[` !B`bL@_gx@@Gy~@Gx@_`@\"])}function e1t(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S;i=c(Ut,Tt,6,t.r,15,1);t:for(r=0;r<i.length;r++){switch(S=t.a[r],i[r]=0,S){case 32:case 72:for(Q=0;Q<t.e[r];Q++){for(g=t.j[r][Q],b=t.a[g],h=0,T=0,L=0;L<t.e[g];L++)v=t.j[g][L],t.D[v]==7&&t.e[v]+xt(t,v)==2&&!(v<t.g&&i0(t.q,v))&&++h,(t.D[v]==8||t.D[v]==16)&&t.e[v]+xt(t,v)==1&&++T;if(t.D[g]==16&&T==2&&h==1&&(h=0),t.D[g]==6&&T>0){i[r]=T==1?-1:-(T-1)/T;continue t}if(b==45&&T==3){i[r]=-.3333333333333333;continue t}if(b==25&&T>0){i[r]=T==1?0:-(T-1)/T;continue t}if(b==18&&T>0){i[r]=h+T==2?0:-(h+T-2)/T;continue t}if(b==73&&T>0){i[r]=T==1?0:-(T-1)/T;continue t}if(b==77&&T>0){i[r]=-1/T;continue t}}break;case 76:for(C=0,E=(ut(t,7),t.q),R=0;R<E.j.a.length;R++)if(wA(E,R,r)){C=R;break}if(C<E.j.a.length){for(l=0,A=x(E.j,C),n=0,P=A.length;n<P;++n)e=A[n],e>-1&&t.a[e]==76&&++l;if(l>0){i[r]=-1/l;continue t}}break;case 55:case 56:case 81:for(i[r]=t.t[r],y=1,j=0,f=c(Pt,it,6,t.r,16,1),f[r]=!0;y>j;)for(j=y,o=0;o<t.r;o++)if(f[o]){for(L=0;L<t.e[o];L++)if(g=t.j[o][L],b=t.a[g],!(b!=57&&b!=80))for(s=0;s<t.e[g];s++)v=t.j[g][s],d=t.a[v],!(d!=55&&d!=56&&d!=81)&&(f[v]||(f[v]=!0,i[r]+=t.t[v],++y))}i[r]/=y;continue t;case 61:for(D=0;D<t.e[r];D++)if(g=t.j[r][D],t.a[g]==42){i[r]=1;continue t}continue t;case 34:case 49:case 51:case 54:case 58:case 92:case 93:case 94:case 97:i[r]=1;continue t;case 87:case 95:case 96:case 98:case 99:i[r]=2;continue t;case 88:i[r]=3;continue t;case 35:case 62:case 89:case 90:case 91:i[r]=-1;continue t}i[r]=0}return i}function A1t(t,e,A){var n,P,r,i;for(t.u=e,t.a=A,n=Bt(w.Math.round((Re==-1&&(Re=globalThis.devicePixelRatio||1),Re*8))),P=m(k(B,1),F,6,15,[n,-1,-2,-2,n]),i=m(k(B,1),F,6,15,[n,-2,n,-2,-2,-2,-2,-2,-2,-2,n,-2,n,-2,n,-2,n,-2,2*n,-2,n/2|0,-2,n/2|0,-2,2*n]),fL(t.s,P,i),Fe(t.s,le(t.s,\"Desired Bond type(s):\"),1,1,3,1),t.k=Un(t.s,\"Single\"),Fe(t.s,t.k,1,3,3,3),t.c=Un(t.s,\"Double\"),Fe(t.s,t.c,1,4,3,4),t.n=Un(t.s,\"Triple\"),Fe(t.s,t.n,1,5,3,5),t.i=Un(t.s,\"Quadruple\"),Fe(t.s,t.i,1,6,3,6),t.j=Un(t.s,\"Quintuple\"),Fe(t.s,t.j,1,7,3,7),t.b=Un(t.s,\"Delocalized\"),Fe(t.s,t.b,1,8,3,8),t.g=Un(t.s,\"Coordinate (0-order)\"),Fe(t.s,t.g,1,9,3,9),t.q=TA(t.s),Gt(t.q,\"any ring state\"),Gt(t.q,XV),Gt(t.q,\"is any ring bond\"),Gt(t.q,\"is non-aromatic ring bond\"),Gt(t.q,\"is aromatic bond\"),Gt(t.q,\"is any non-aromatic bond\"),YP(t.q,t),Fe(t.s,t.q,1,11,3,11),t.r=TA(t.s),Gt(t.r,\"any ring size\"),Gt(t.r,\"is in 3-membered ring\"),Gt(t.r,\"is in 4-membered ring\"),Gt(t.r,\"is in 5-membered ring\"),Gt(t.r,\"is in 6-membered ring\"),Gt(t.r,\"is in 7-membered ring\"),Gt(t.r,\"smallest ring 8 to 11\"),Gt(t.r,\"smallest ring >= 12\"),Fe(t.s,t.r,1,13,3,13),t.e=Un(t.s,\"Match formal bond order\"),yA(t.e,(e.H[A]&Nf)!=0),YP(t.e,t),Fe(t.s,t.e,1,15,3,15),t.f=Un(t.s,\"Match Stereo Configuration\"),yA(t.f,(e.H[A]&F8)!=0),YP(t.f,t),Fe(t.s,t.f,1,17,3,17),t.d=Un(t.s,\"Is atom bridge between\"),YP(t.d,t),Fe(t.s,t.d,1,19,3,19),t.p=TA(t.s),r=0;r<16;r++)Gt(t.p,\"\"+r);f0(t.s,t.p,2,21),f0(t.s,le(t.s,\" and\"),3,21),YP(t.p,t),t.o=TA(t.s),gT(t,0),f0(t.s,t.o,2,23),f0(t.s,le(t.s,\" atoms\"),3,23),ut(t.u,7),ca(t)}function n1t(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E;for(v=c(Pt,it,6,t.R.g,16,1),d=c(Pt,it,6,t.R.i,16,1),e=0,j=!1,(t.Q&128)!=0&&(t.Y=c(B,F,6,t.R.g,15,1),t.X=c(B,F,6,t.R.i,15,1)),n=0;n<t.R.g;n++)t.W[n]&&(t.fb[n]||oy(t,n,1)&&(t.fb[n]=!0,v[n]=!0,++e));for(r=0;r<t.R.i;r++)t.V[r]&&(t.p[r]||aQ(t,r,1)&&(t.p[r]=!0,d[r]=!0,++e));if(e==1){for(A=0;A<t.R.g;A++)if(v[A]){t.db[A]=0;break}for(P=0;P<t.R.i;P++)if(d[P]){t.o[P]=0;break}}else if(e>1)for(T$(t),t.T=0,f=new Zt(t.A);f.a<f.c.a.length;){for(i=_t(f),b=0,R=0,o=0,Q=0,L=-1,D=-1,l=0;l<i.a.length;l++)v[i.a[l]]&&(++b,(t.db[i.a[l]]==1||t.db[i.a[l]]==2)&&(++R,j=!0,L<t.f[i.a[l]]&&(L=t.f[i.a[l]],o=i.a[l])));for(h=0;h<i.b.length;h++)d[i.b[h]]&&(++b,C=t.f[q(t.R,0,i.b[h])],E=t.f[q(t.R,1,i.b[h])],s=C>E?(C<<16)+E:(E<<16)+C,(t.o[i.b[h]]==1||t.o[i.b[h]]==2)&&(++R,j=!0,D<s&&(D=s,Q=i.b[h])));if(b!=0)if(b==1){for(T=0;T<i.a.length;T++)v[i.a[T]]&&(t.db[i.a[T]]=0);for(y=0;y<i.b.length;y++)d[i.b[y]]&&(t.o[i.b[y]]=0)}else if(R==1){for(T=0;T<i.a.length;T++)v[i.a[T]]&&(t.db[i.a[T]]=3);for(y=0;y<i.b.length;y++)d[i.b[y]]&&(t.o[i.b[y]]=3)}else{if((t.Q&128)!=0){for(++t.T,T=0;T<i.a.length;T++)v[i.a[T]]&&(t.Y[i.a[T]]=t.T);for(y=0;y<i.b.length;y++)d[i.b[y]]&&(t.X[i.b[y]]=t.T)}if(g=!1,L!=-1?t.db[o]==2&&(g=!0):t.o[Q]==2&&(g=!0),g){for(T=0;T<i.a.length;T++)if(v[i.a[T]])switch(t.db[i.a[T]]){case 1:t.db[i.a[T]]=2;break;case 2:t.db[i.a[T]]=1}for(y=0;y<i.b.length;y++)if(d[i.b[y]])switch(t.o[i.b[y]]){case 1:t.o[i.b[y]]=2;break;case 2:t.o[i.b[y]]=1}}}}return j}function P1t(t,e,A,n,P,r,i,f){var D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt;for(tt=x(t.j,e),L=tt,s=0,y=L.length;s<y;++s)if(o=L[s],!wZ(t,o))return!0;for(X=x(t.k,e),W=X.length,h=0,Q=0,rt=!1,C=0;C<W;C++)h<<=1,Q<<=1,dt(t.i,X[C])>1||c1(t.i,X[C])==8?h|=1:f&&Os(t,X[C])?(h|=1,Q|=1):(D=A[e][C],D!=-1&&(n[D]?P[D]&&(h|=1,r[D]||(Q|=1)):rt=!0));switch(j=!1,W){case 3:for(T=m(k(B,1),F,6,15,[2,1,4]),j=!0,b=0;b<3;b++)(h&T[b])==T[b]&&(J(t.i,tt[b])==6&&R1(t.i,tt[b])==1||J(t.i,tt[b])==5&&R1(t.i,tt[b])==0)&&(P[e]=!0,i[e]=b,(Q&T[b])==0&&(j=!1));break;case 5:for(g=m(k(B,1),F,6,15,[10,5,18,9,20]),j=!0,K=0;K<5;K++)if((h&g[K])==g[K])switch(J(t.i,tt[K])){case 6:R1(t.i,tt[K])==-1&&(P[e]=!0,i[e]=K,(Q&g[K])==0&&(j=!1));break;case 7:R1(t.i,tt[K])<=0&&(P[e]=!0,i[e]=K);break;case 8:P[e]=!0,i[e]=K;break;case 16:case 34:case 52:N(t.i,tt[K])==2&&(P[e]=!0,i[e]=K)}break;case 6:j=!0,(h&21)==21&&(P[e]=!0,(Q&21)==0&&(j=!1)),(h&42)==42&&(P[e]=!0,(Q&42)==0&&(j=!1));break;case 7:for(v=m(k(B,1),F,6,15,[42,21,74,37,82,41,84]),j=!0,d=0;d<7;d++)if((h&v[d])==v[d]){if(J(t.i,tt[d])==6&&(R1(t.i,tt[d])==1||f&&fK(t,tt[d]))||J(t.i,tt[d])==5&&R1(t.i,tt[d])==0)P[e]=!0,i[e]=d,(Q&v[d])==0&&(j=!1);else for(R=0;R<2;R++)if(st=(d+6+R)%7,$=X[st],ht=A[e][st],ht!=-1&&!P[ht]&&x(t.k,ht).length==5){for(wt=x(t.k,ht),E=0;wt[E]!=$;)++E;for(S=!1,H=0,I=1;I<=4;I++){if(l=wt[(E+I)%5],a=dt(t.i,l)>1||c1(t.i,l)==8||f&&Os(t,l),a&&S){H=0;break}S=a,S&&++H}if(H==2){P[e]=!0,P[ht]=!0,r[e]=!0,r[ht]=!0,Ft(t.b,U1($));break}}}}return P[e]&&!j&&(r[e]=!0),P[e]?!0:!rt}function r1t(t){var e,A,n,P,r,i,f,D,Q,o,L;for(ut(t,1),P=c(B,F,6,191,15,1),A=0;A<t.r;A++)switch(t.D[A]){case 171:P[1]+=5,P[6]+=3,P[7]+=1,P[8]+=1;break;case 172:P[1]+=12,P[6]+=6,P[7]+=4,P[8]+=1;break;case 173:P[1]+=6,P[6]+=4,P[7]+=2,P[8]+=2;break;case 174:P[1]+=5,P[6]+=4,P[7]+=1,P[8]+=3;break;case 175:P[1]+=5,P[6]+=3,P[7]+=1,P[8]+=1,P[16]+=1;break;case 176:P[1]+=8,P[6]+=5,P[7]+=2,P[8]+=2;break;case 177:P[1]+=7,P[6]+=5,P[7]+=1,P[8]+=3;break;case 178:P[1]+=3,P[6]+=2,P[7]+=1,P[8]+=1;break;case 179:P[1]+=7,P[6]+=6,P[7]+=3,P[8]+=1;break;case 181:case 180:P[1]+=11,P[6]+=6,P[7]+=1,P[8]+=1;break;case 182:P[1]+=12,P[6]+=6,P[7]+=2,P[8]+=1;break;case 183:P[1]+=9,P[6]+=5,P[7]+=1,P[8]+=1,P[16]+=1;break;case 184:P[1]+=9,P[6]+=9,P[7]+=1,P[8]+=1;break;case 185:P[1]+=7,P[6]+=5,P[7]+=1,P[8]+=1;break;case 186:P[1]+=5,P[6]+=3,P[7]+=1,P[8]+=2;break;case 187:P[1]+=7,P[6]+=4,P[7]+=1,P[8]+=2;break;case 188:P[1]+=10,P[6]+=11,P[7]+=2,P[8]+=1;break;case 189:P[1]+=9,P[6]+=9,P[7]+=1,P[8]+=2;break;case 190:P[1]+=9,P[6]+=5,P[7]+=1,P[8]+=1;break;case 1:switch(t.B[A]){case 0:case 1:++P[1];break;case 2:++P[151];break;case 3:++P[152]}break;default:++P[t.D[A]]}for(n=0;n<t.r;n++)t.D[n]>=171&&t.D[n]<=190?P[1]+=2-G1(t,n):P[1]+=xt(t,n);for(f=0,Q=1;Q<=190;Q++)P[Q]!=0&&++f;for(this.b=c(B,F,6,f,15,1),this.c=c(B,F,6,f,15,1),f=0,D=0;D<z2.length;D++)P[z2[D]]!=0&&(this.b[f]=P[z2[D]],this.c[f]=z2[D],++f,P[z2[D]]=0);for(;;){for(L=\"zzz\",o=-1,i=1;i<=190;i++)P[i]>0&&a9(L,(O1(),J0)[i])>0&&(L=(O1(),J0)[i],o=i);if(o==-1)break;this.b[f]=P[o],this.c[f]=o,++f,P[o]=0}for(this.a=0,this.d=0,e=0;e<t.g;e++)t.D[e]!=1&&t.B[e]!=0&&(i=t.D[e],r=t.B[e],this.a+=vk(i,r)-X4[i],this.d+=vk(i,r)-Z4[i])}function i1t(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1,Q1,Lt,pt,o0,V1,y0;for(y0=A[4],Kt=A[3]==-1?3:4,l=c(B,F,6,e.r,15,1),St=c(Pt,it,6,e.s,16,1),g=0;g<Kt;g++)St[n[g]]=!0;for(y=Vj(e,l,St,!1),h=c(B,F,6,y,15,1),Q=l,o=0,L=Q.length;o<L;++o)s=Q[o],++h[s];for(Qt=0,C=c(Pt,it,6,y,16,1),v=0;v<Kt;v++)s=l[A[v]],C[s]||(C[s]=!0,++Qt);for(bt=c(B,F,6,Qt,15,1),yt=c(B,F,6,Qt,15,1),A1=c(B,F,6,Qt,15,1),R=0,D=0;D<y;D++)if(C[D]){for(bt[R]=D,yt[R]=h[D],d=0;d<Kt;d++)D==l[A[d]]&&++A1[R];++R}if(E=c(Pt,it,6,e.r,16,1),D1=0,V1=2,Qt==Kt)for(Xt=-1,d=0;d<Kt-2;d++){for(Lt=-1,pt=Et,I=0;I<Qt;I++)I!=Xt&&yt[I]<pt&&(Lt=I,pt=yt[I]);for(P=0;P<e.r;P++)l[P]==bt[Lt]&&(E[P]=!0,++D1);Xt=Lt}else for(d=0;d<bt.length;d++){if(A1[d]==1&&Kt==3){for(S=2*yt[d]<e.r,S||(V1=1),P=0;P<e.r;P++)P!=y0&&l[P]==bt[d]==S&&(E[P]=!0,++D1);break}if(A1[d]==2&&Kt==4){for(S=2*yt[d]<e.r,P=0;P<e.r;P++)P!=y0&&l[P]==bt[d]==S&&(E[P]=!0,++D1);break}}if(D1==0){for(d=0;d<bt.length;d++)if(A1[d]==1){for(P=0;P<e.r;P++)l[P]==bt[d]&&(E[P]=!0,++D1);break}for(S1=Kt-2-(D1==0?0:1),b=0;b<S1;b++)for(I=0;I<Kt;I++)if(!E[A[I]]){E[A[I]]=!0,++D1;break}}for(R=0,t.a=c(B,F,6,D1,15,1),j=0;j<E.length;j++)E[j]&&(t.a[R++]=j);for(o0=0,Q1=0,t.c=c(B,F,6,V1,15,1),t.b=c(B,F,6,Kt-V1,15,1),T=0;T<Kt;T++)if(E[A[T]]){if(Q1>=t.b.length){for(z1(),\"\"+new Jh(e).a.a,H=A,W=0,wt=H.length;W<wt;++W);for(K=n,$=0,rt=K.length;$<rt;++$);for(tt=l,st=0,ct=tt.length;st<ct;++st);for(a=C,X=0,ht=a.length;X<ht;++X);for(r=E,i=0,f=r.length;i<f;++i);}t.b[Q1++]=A[T]}else t.c[o0++]=A[T]}function f1t(t,e){var A;switch(t.D[e]){case 7:if(e<t.g&&i0(t.q,e)){if(t.t[e]==0)if(t.e[e]-n0(t,e)+xt(t,e)==0){if(n0(t,e)==2)return 18;for(A=0;A<n0(t,e);A++)if(!eA(t,t.n[e][A]))return 20;return 19}else return 22;else if(t.t[e]==1)if(t.e[e]-n0(t,e)+xt(t,e)==0){for(A=0;A<n0(t,e);A++)if(!eA(t,t.n[e][A]))return R1(t,t.j[e][A])<0?21:24;return 23}else return 25}else if(t.t[e]==0)switch(t.e[e]-n0(t,e)+xt(t,e)){case 0:switch(t.p[e]){case 0:return(t.q&&e<t.g?UA(t.q,e):0)==3?5:0;case 1:return 1;case 2:return 2}break;case 1:switch(t.p[e]){case 0:return(t.q&&e<t.g?UA(t.q,e):0)==3?7:6;case 1:return 8}break;case 2:return 9}else if(t.t[e]==1)switch(t.e[e]-n0(t,e)+xt(t,e)){case 0:switch(t.p[e]){case 0:return 10;case 1:return SF(t,e)?3:11;case 2:return t.o[e][0]==2?SF(t,e)?4:qP.length+1:12}break;case 1:switch(t.p[e]){case 0:return 13;case 1:return 14}break;case 2:return t.p[e]==0?15:16;case 3:return 17}return qP.length+1;case 8:if(e<t.g&&i0(t.q,e)){if(t.t[e]==0)return 31}else{if(t.t[e]==0)return t.p[e]>0?28:n0(t,e)==1?29:(t.q&&e<t.g?UA(t.q,e):0)==3?27:26;if(t.t[e]==-1)return n0(t,e)==1&&R1(t,t.j[e][0])>0?28:30}return qP.length+1;case 15:if(t.t[e]==0){if(t.e[e]-n0(t,e)+xt(t,e)==0){if(n0(t,e)==3&&t.p[e]==0)return 39;if(n0(t,e)==2&&t.p[e]==1)return 40;if(n0(t,e)==4&&t.p[e]==1)return 41}else if(t.e[e]-n0(t,e)+xt(t,e)==1&&n0(t,e)==3&&t.p[e]==1)return 42}return qP.length+1;case 16:if(t.t[e]==0){if(e<t.g&&i0(t.q,e))return n0(t,e)==2?37:38;if(t.e[e]-n0(t,e)+xt(t,e)==0){if(n0(t,e)==2&&t.p[e]==0)return 32;if(n0(t,e)==1&&t.p[e]==1)return 33;if(n0(t,e)==3&&t.p[e]==1)return 34;if(n0(t,e)==4&&t.p[e]==2)return 35}else if(t.e[e]-n0(t,e)+xt(t,e)==1&&n0(t,e)==1)return 36}return qP.length+1}return qP.length}function D1t(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt;for(ut(t.k,1),t.g=c(Pt,it,6,t.k.i,16,1),t.c=0,L=0;L<t.k.i;L++)c1(t.k,L)==8&&(w0(t.k,L,1),t.g[L]=!0,++t.c);for(d=c(Pt,it,6,t.k.g,16,1),Qt=new dU(t.k,3),v=c(Pt,it,6,Qt.j.a.length,16,1),ct=0;ct<Qt.j.a.length;ct++){for(St=x(Qt.j,ct),v[ct]=!0,C=St,I=0,K=C.length;I<K;++I)if(j=C[I],!W0(t.k,j)){v[ct]=!1;break}if(v[ct]){for(E=St,a=0,tt=E.length;a<tt;++a)j=E[a],d[j]=!0;for(A1=x(Qt.k,ct),R=A1,S=0,H=R.length;S<H;++S)j=R[S],t.g[j]||(t.g[j]=!0,++t.c)}}for(s=0;s<t.k.i;s++)!t.g[s]&&(Qt.c[s]&d1)!=0&&W0(t.k,q(t.k,0,s))&&W0(t.k,q(t.k,1,s))&&M$(t,s);for(y=0;y<t.k.i;y++)t.g[y]||(r=q(t.k,0,y),i=q(t.k,1,y),!d[r]&&!d[i]&&W0(t.k,r)&&W0(t.k,i)&&(t.g[y]=!0,++t.c));for(ut(t.k,7),(t.q==2||t.q==1&&t.p)&&OZ(t),g=c(Pt,it,6,t.k.i,16,1),t.k.i>=0&&PA(t.g,0,g,0,t.k.i),Xt=0;Xt<Qt.j.a.length;Xt++)if(v[Xt]){for(St=x(Qt.j,Xt),W=St,$=0,st=W.length;$<st;++$)if(X=W[$],!OW(t,X))for(W0(t.k,X)&&(_n(t.k,X,!1),--t.b),j=0;j<N(t.k,X);j++)h=Nt(t.k,X,j),t.g[h]&&(t.g[h]=!1,--t.c)}for(C5(t),rt=0;rt<Qt.j.a.length;rt++)if(v[rt]&&x(Qt.k,rt).length==6){for(A1=x(Qt.k,rt),b=!0,D=A1,Q=0,o=D.length;Q<o;++Q)if(f=D[Q],!t.g[f]){b=!1;break}b&&(CQ(t,A1[0]),CQ(t,A1[2]),CQ(t,A1[4]),C5(t))}for(wt=5;wt>=4;wt--)do for(ht=!1,f=0;f<t.k.i;f++)if(t.g[f]){for(n=0,T=0;T<2;T++)for(l=q(t.k,T,f),j=0;j<N(t.k,l);j++)t.g[Nt(t.k,l,j)]&&++n;if(n==wt){CQ(t,f),C5(t),ht=!0;break}}while(ht);for(;t.b>=2&&G$(t,g););if(e){if(t.b!=0)for(P=0;P<t.k.g;P++)W0(t.k,P)&&(_n(t.k,P,!1),w1(t.k,P,2,!0),--t.b,A=!0);if(t.c!=0)for(f=0;f<t.k.i;f++)t.g[f]&&(t.g[f]=!1,w0(t.k,f,8),--t.c,A=!0)}else for(P=0;P<t.k.g;P++)W0(t.k,P)&&xt(t.k,P)!=0&&(_n(t.k,P,!1),Je(t.k,P,32),--t.b);if(t.q==0||t.q==1&&!A){if(t.b!=0)throw et(new H1(RM));if(t.c!=0)throw et(new H1(RM))}}function k2(){k2=v1,JA=m(k(Oe,1),uA,6,15,[1,To,U4,2.119999885559082,1.9800000190734863,1.909999966621399,1.7699999809265137,qy,1.5,L4,1.5800000429153442,2.5,2.509999990463257,2.25,2.190000057220459,s4,1.8899999856948853,OM,1.8300000429153442,2.7300000190734863,2.619999885559082,2.5799999237060547,qM,zM,zy,zy,y4,KM,KM,2.380000114440918,2.390000104904175,l4,h4,1.8799999952316284,OM,JM,2.25,3.2100000381469727,2.8399999141693115,2.75,2.5199999809265137,2.559999942779541,zy,y4,qM,y4,2.1500000953674316,YM,XM,2.430000066757202,zM,ZM,1.9900000095367432,2.0399999618530273,2.059999942779541,3.4800000190734863,3.0299999713897705,2.9800000190734863,WM,_M,2.950000047683716,_M,2.9000000953674316,$M,T4,aM,$M,tC,T4,aM,eC,2.740000009536743,2.630000114440918,YM,2.569999933242798,XM,2.4800000190734863,2.4100000858306885,h4,l4,zy,ZM,2.5999999046325684,2.5399999618530273,2.5,2.5,2.5,2.5,2.5,eC,2.930000066757202,WM,2.7100000381469727,2.819999933242798,tC,T4,AC,3.4000000953674316,AC,2.700000047683716]),Xf=m(k(Oe,1),uA,6,15,[.25,c4,.46000000834465027,nC,1.0199999809265137,co,.75,.7099999785423279,.6299999952316284,.6399999856948853,.9599999785423279,PC,rC,1.2599999904632568,w4,iC,1.0299999713897705,.9900000095367432,fC,DC,uC,1.4800000190734863,g4,QC,oC,1.190000057220459,w4,iC,1.100000023841858,To,To,UC,Ky,Ky,w4,1.1399999856948853,Ky,LC,d4,B4,1.5399999618530273,sC,1.3799999952316284,yC,1.25,1.25,To,rC,lC,L4,lo,lo,g4,nC,1.350000023841858,l4,DC,Gy,B4,hC,1.7400000095367432,TC,cC,Jy,wC,Jy,gC,qy,v4,1.6399999856948853,wo,dC,1.5199999809265137,L4,BC,1.309999942779541,vC,oC,1.2300000190734863,UC,1.4199999570846558,1.5,lC,1.5099999904632568,FC,sC,FC,2.2300000190734863,2.009999990463257,JM,1.75,wC,wo,uC,cC,qy,qy,Jy,Jy,v4,gC,TC,hC,1.6100000143051147,kC,1.4900000095367432,U4,1.409999966621399,QC,vC,yC,Ky,BC,g4,U4,dC,1.75,v4,kC])}function u1t(t,e,A){var n,P,r,i,f,D,Q,o;switch(f=A.a.length,0<f?A.a=hA(A.a,0,0):0>f&&(A.a+=z8(c(Fr,Pe,6,-f,15,1))),D=l0(t.k,e),P=Ot(G0(V(D,yr),3)),P){case 20971520:A.a+=\"+0\";break;case 25165824:R1(t.k,e)==0&&(A.a+=\"-\");break;case 12582912:R1(t.k,e)==0&&(A.a+=\"+\")}return n=V(D,my),O(n,2)==0?A.a+=\";a\":O(n,4)==0&&(A.a+=\";A\"),r=V(D,uP),O(r,0)!=0&&(O(r,1792)==0?A.a+=\";H0\":O(r,1664)==0?A.a+=\";H1\":O(r,1408)==0?A.a+=\";H2\":O(r,896)==0?A.a+=\";H3\":O(r,128)==0?A.a+=\";!H0\":O(r,384)==0?A.a+=\";!H0;!H1\":O(r,1536)==0?A.a+=\";!H2;!H3\":O(r,ue)==0&&(A.a+=\";!H3\")),o=V(D,120),O(o,8)==0?A.a+=\";!R0\":O(o,16)==0?A.a+=\";!R1\":O(o,32)==0?A.a+=\";!R2\":O(o,64)==0?A.a+=\";!R3\":O(o,112)==0?A.a+=\";R0\":O(o,104)==0?A.a+=\";R1\":O(o,88)==0?A.a+=\";R2\":O(o,56)==0&&(A.a+=\";R3\"),Q=V(D,l9),O(Q,w8)==0?A.a+=\";!r\"+ve(Q):O(Q,lM)==0?A.a+=\";r\"+ve(Q):O(Q,0)!=0&&(gt(V(Q,Vf),0)?(A0(V(Q,w8),0)&&(A.a+=\";!r0\"+ve(Q)),A0(V(Q,h9),0)&&(A.a+=\";!r3\"+ve(Q)),A0(V(Q,T9),0)&&(A.a+=\";!r4\"+ve(Q)),A0(V(Q,c9),0)&&(A.a+=\";!r5\"+ve(Q)),A0(V(Q,w9),0)&&(A.a+=\";!r6\"+ve(Q)),A0(V(Q,g9),0)&&(A.a+=\";!r7\"+ve(Q))):(A.a+=\";\",gt(V(Q,w8),0)&&(A.a+=\"r0,\"+ve(Q)),gt(V(Q,h9),0)&&(A.a+=\"r3,\"+ve(Q)),gt(V(Q,T9),0)&&(A.a+=\"r4,\"+ve(Q)),gt(V(Q,c9),0)&&(A.a+=\"r5,\"+ve(Q)),gt(V(Q,w9),0)&&(A.a+=\"r6,\"+ve(Q)),gt(V(Q,g9),0)&&(A.a+=\"r7,\"+ve(Q)),Ln(A,A.a.length-1))),O(Q,0)==0&&(Q=G0(V(D,lr),22),O(Q,0)!=0&&(A.a+=\";r\"+ve(Q))),i=V(D,hi),O(i,io)==0&&(A.a+=\";D1\"),O(i,j2)==0&&(A.a+=\";D2\"),O(i,R2)==0&&(A.a+=\";D3\"),O(i,fo)==0&&(A.a+=\";!D3;!D4\"),O(i,KA)==0&&(A.a+=\";!D4\"),O(i,Ti)==0&&(A.a+=\";!D0;!D1\"),O(i,NP)==0&&(A.a+=\";!D0;!D1;!D2\"),O(i,If)==0&&(A.a+=\";!D0;!D1;!D2;!D3\"),gt(V(D,q1),0)&&G(A,\";D\"+N(t.k,e)),gt(V(D,E0),0)&&G(A,\";!D\"+N(t.k,e)),A.a.length==0?null:A.a}function Q1t(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C;if(t.D[e]!=7||t.t[e]!=0||t.k[e]+t.p[e]>3)return!1;if(e<t.g&&i0(t.q,e)){if(t.p[e]!=1||r6(t,e,7)!=1)return!1;for(b=(ut(t,7),t.q),v=0;v<b.j.a.length;v++)if(wA(b,v,e)){if(x(b.k,v).length==5||x(b.k,v).length==6){for(j=x(b.j,v),T=-1,D=0;D<j.length;D++)if(j[D]==e){T=D;break}for(P=0,g=null,h=null,j.length==5&&(g=c(B,F,6,2,15,1),g[0]=j[T-1<0?T+4:T-1],g[1]=j[T-4<0?T+1:T-4],h=c(B,F,6,2,15,1),h[0]=j[T-2<0?T+3:T-2],h[1]=j[T-3<0?T+2:T-3]),j.length==6&&(g=c(B,F,6,3,15,1),g[0]=j[T-1<0?T+5:T-1],g[1]=j[T-3<0?T+3:T-3],g[2]=j[T-5<0?T+1:T-5],h=c(B,F,6,2,15,1),h[0]=j[T-2<0?T+4:T-2],h[1]=j[T-4<0?T+2:T-4]),Q=0;Q<j.length;Q++)e!=j[Q]&&t.D[j[Q]]==7&&t.p[j[Q]]==1&&--P;for(o=0;o<g.length;o++){for(r=-1,i=-1,l=0;l<t.k[g[o]];l++)if(!eA(t,t.n[g[o]][l])){r=t.j[g[o]][l],i=t.n[g[o]][l];break}if(r!=-1){if(t.D[r]==7&&t.p[r]==0&&t.k[r]+t.p[r]<=3&&!B5(t,r,!1)){++P;continue}if(t.D[r]==8&&t.k[r]==1){P+=2;continue}if(i<t.i&&Ee(t.q,i)){for(R=0;R<b.j.a.length;R++)if(b.e[R]&&wA(b,R,r)){for(d=x(b.j,R),y=0;y<d.length;y++)if(t.D[d[y]]==7&&t.p[d[y]]==1){--P;break}break}}}}for(L=0;L<h.length;L++){for(r=-1,y=0;y<t.k[h[L]];y++)eA(t,t.n[h[L]][y])||(r=t.j[h[L]][y]);t.D[h[L]]==6?r!=-1&&of(t,r)!=0&&--P:t.D[h[L]]==7&&t.p[h[L]]==0&&(r==-1||!(r<t.g&&i0(t.q,r))&&of(t,r)==0)&&++P}return P>0}break}return!1}if(t.p[e]>1)return!1;if(t.p[e]==1){for(s=-1,C=0,D=0;D<t.k[e];D++){if(n=t.j[e][D],t.o[e][D]==2){if(t.D[n]!=6)return!1;s=n;continue}if(t.D[n]==8)return!1;if(t.D[n]==7){--C,B5(t,n,!1)&&--C;continue}n<t.g&&i0(t.q,n)&&--C}if(s==-1)return!1;for(A=0,Q=0;Q<t.k[s];Q++)if(t.o[s][Q]==1){if(n=t.j[s][Q],of(t,n)!=0)return!1;n<t.g&&i0(t.q,n)&&++A,t.D[n]==7&&!B5(t,n,!0)&&++C,(t.D[n]==8||t.D[n]==16)&&--C}return A==2&&--C,C>=0}for(f=0;f<t.k[e];f++)if(n=t.j[e][f],n<t.g&&i0(t.q,n)||t.D[n]!=6||of(t,n)!=0||t.p[n]!=0&&aJ(t,n))return!1;return!0}function F6(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st;if(J(t.R,A)!=J(t.R,n))return J(t.R,A)>J(t.R,n);if(we(t.R,A)!=we(t.R,n))return K=hu(t.R,A)?(O1(),j8)[J(t.R,A)]:we(t.R,A),tt=hu(t.R,n)?(O1(),j8)[J(t.R,n)]:we(t.R,n),K>tt;for(R=t.R.g,v=c(B,F,6,R,15,1),b=c(B,F,6,R,15,1),j=c(B,F,6,R,15,1),d=c(Pt,it,6,R,16,1),D=c(Pt,it,6,t.R.r,16,1),v[0]=e,v[1]=A,v[2]=n,b[0]=-1,b[1]=0,b[2]=0,D[e]=!0,D[A]=!0,D[n]=!0,s=1,C=2,H=c(B,F,6,64,15,1),H[1]=1,H[2]=3,l=2;s<=C;){for(;s<H[l];){if(y=v[s],!d[s]){for(h=0,T=0,S=0;S<N(t.R,y);S++){if(o=Z(t.R,y,S),C+EA(t.R,y,S)+1>=R&&(R+=t.R.g,v=HL(v,R),b=HL(b,R),j=HL(j,R),d=(st=c(Pt,it,6,R,16,1),PA(d,0,st,0,d.length),st)),Z8(t.R,Nt(t.R,y,S)))++h,T+=J(t.R,o);else if(o!=e)for(a=1;a<EA(t.R,y,S);a++)++C,v[C]=o,b[C]=s,d[C]=!0;if(W=b[s],o!=v[W]){if(f=!1,D[o])for(X=b[W];X!=-1;){if(o==v[X]){f=!0;break}X=b[X]}f?(++C,v[C]=o,b[C]=s,d[C]=!0):(++C,v[C]=o,b[C]=s,D[o]=!0)}}h!=0&&(++C,j[C]=(T<<2)/h|0,b[C]=s,d[C]=!0)}if(++s,s==fP)throw et(new H1(\"Emergency break in while loop.\"))}for(H.length==l+1&&(H=HL(H,H.length+64)),H[l+1]=C+1,E=H[l];E<H[l+1];E++)j[E]==0&&(j[E]=(J(t.R,v[E])==151||J(t.R,v[E])==152?1:J(t.R,v[E]))<<2),j[E]+=j[b[E]]<<16;if(kR(t,d,j,b,v,H,l),j[1]!=j[2])return j[1]>j[2];l>1&&Kj(j,b,H,l),++l}for(L=c(B,F,6,t.R.g,15,1),I=!1,r=0;r<t.R.g;r++)if(D[r]&&!hu(t.R,r)){I=!0;break}if(I){for(i=0;i<t.R.g;i++)L[i]=hu(t.R,i)?(O1(),j8)[J(t.R,i)]:we(t.R,i);if(n5(t,d,j,b,v,L,H,l))return j[1]>j[2]}for(zr(L,L.length,0),g=!1,Q=0;Q<t.R.i;Q++)(D[q(t.R,0,Q)]||D[q(t.R,1,Q)])&&(t.i[Q]==1?(L[q(t.R,0,Q)]=1,L[q(t.R,1,Q)]=1,g=!0):t.i[Q]==2&&(L[q(t.R,0,Q)]=2,L[q(t.R,1,Q)]=2,g=!0));if(g&&n5(t,d,j,b,v,L,H,l))return j[1]>j[2];for(zr(L,L.length,0),$=!1,P=0;P<t.R.g;P++)D[P]&&(t.$[P]==2?(L[P]=1,$=!0):t.$[P]==1&&(L[P]=2,$=!0));if($&&n5(t,d,j,b,v,L,H,l))return j[1]>j[2];throw t.d=!0,et(new H1(\"no distinction applying CIP rules\"))}function k6(){k6=v1,af=m(k(B,2),D0,7,0,[m(k(B,1),F,6,15,[-1432180054,-1434146134,-1441453406,-1471067516,-1589095916,-2060839854,1420461386,1454022954,1454024874]),m(k(B,1),F,6,15,[-1431677611,-1431764987,-1432092655,-1433403327,-1438646015,-1459616762,-1543499750,-1879031702,1431634346,1073809066,1073814186,1073834666,1431677610]),m(k(B,1),F,6,15,[-1431737686,-1453057622,-1542187926,-1542188954,-1459351471,-1459351487,C4,1094713345,1077936134,-1879048186,-1543503866,-1543503846,-1459617766,H4,x2,x2]),m(k(B,1),F,6,15,[-1431737686,-1453057622,-1542187926,-1542188954,-1459351471,-1459351487,C4,1094713345,1077952518,-1879031802,-1543154682,-1543487462,-1459601382,H4,x2,x2]),m(k(B,1),F,6,15,[fl,fl,-1431741782,-1437330070,-1459351462,-1459351482,C4,-1858076671,-1874853882,-1879048186,-1543503866,-1543503846,-1459617766,H4,x2,x2]),m(k(B,1),F,6,15,[fl,-1432005270,-1454374890,-1543503871,-1879048191,1073741825,1073741846,1073743210,-1795073366,1079421610,1147841194,-1783977302,Dl,Dl,-1498764630]),m(k(B,1),F,6,15,[fl,-1432005270,-1454374890,-1543438335,-1878982655,1075138561,1073807382,1073808746,-1795073366,1079421610,1147841194,-1783977302,Dl,Dl,-1498764630]),m(k(B,1),F,6,15,[1431655786,Tr,Kf,Tr,Kf,Tr,Kf,Tr,Kf,Tr,Kf,Tr,1145324650]),m(k(B,1),F,6,15,[1431655786,Tr,Kf,Tr,Kf,Tr,1073758314,1073758250,1074091114,1073758250,1073758314,Tr,1145324650]),m(k(B,1),F,6,15,[-1432003926,-1437248086,1767548266,1437248090,1437248086,1433053846,1433037477,-1431672155,-1432004955,1433037477,1433037462,1437248086,1437248090,1767548266,-1437248086,-1432003926]),null]),NE=m(k(B,1),F,6,15,[1,7,7,5,8,7,8,7,8,7,2,14,2,14,0,0,0,0,8,8,0,0]),GE=m(k(B,1),F,6,15,[4,20,10,29,18,18,18,18,18,18,16,11,16,11,4,5,4,5,16,16,16,16,0,0,0,0,12,2]),OE=m(k(ft,1),Dt,2,6,[\"chain.png\",\"eraser.png\",\"hand.png\",\"handPlus.png\",\"fist.png\",\"lasso.png\",\"lassoPlus.png\",\"rect.png\",\"rectPlus.png\",\"zoom.png\",\"invisible.png\",null,null,\"pointingHand.png\"])}function o1t(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d;if(L=!1,t.R.L){for(Q=0;Q<t.R.i;Q++)if(ie(t.R,Q)!=0){L=!0;break}}for(t.O=2,A=0;A<t.R.g;A++)t.O=w.Math.max(t.O,N(t.R,A)+qi(t.R,A));for(D=w.Math.max(2,L?(62+t.c+t.O*(t.c+23))/63|0:(62+t.c+t.O*(t.c+5))/63|0),t.f=c(B,F,6,t.R.r,15,1),t.e=c(J4,H2,101,t.R.g,0,1),n=0;n<t.R.g;n++)t.e[n]=new NU(D);for(f=!1,P=0;P<t.R.g;P++)AA(t.e[P],P),gt(V(l0(t.R,P),1),0)||IA(t.R,P)!=null?a1(t.e[P],8,6):a1(t.e[P],8,J(t.R,P)),a1(t.e[P],8,we(t.R,P)),a1(t.e[P],2,t0(t.R,P)),a1(t.e[P],4,N(t.R,P)+qi(t.R,P)),gt(V(l0(t.R,P),1),0)?a1(t.e[P],4,8):a1(t.e[P],4,8+R1(t.R,P)),a1(t.e[P],5,w.Math.min(31,Or(t.R,P))),a1(t.e[P],4,MZ(t,P)+1),a1(t.e[P],2,jA(t.R,P)>>4),t.R.L&&(a1(t.e[P],51,l0(t.R,P)),IA(t.R,P)!=null&&(f=!0));if(t.U=tP(t),t.U<t.R.g){for(e=0;e<t.R.g;e++){for(AA(t.e[e],e),a1(t.e[e],t.c,t.f[e]),s=c(B,F,6,N(t.R,e),15,1),l=0;l<N(t.R,e);l++)s[l]=t.f[Z(t.R,e,l)]<<5,s[l]|=w.Math.min(31,z9(t.R,Nt(t.R,e,l)));for(s.sort(pe(u0.prototype.ld,u0,[])),h=t.O;h>s.length;h--)a1(t.e[e],t.c+5,0);for(y=s.length-1;y>=0;y--)a1(t.e[e],t.c+5,s[y])}t.U=tP(t)}if(f&&t.U<t.R.g){for(e=0;e<t.R.g;e++){for(AA(t.e[e],e),a1(t.e[e],t.c,t.f[e]),i=IA(t.R,e),v=i==null?0:w.Math.min(12,i.length),l=12;l>v;l--)a1(t.e[e],8,0);for(y=v-1;y>=0;y--)a1(t.e[e],8,i[y])}t.U=tP(t)}if(L&&t.U<t.R.g){for(e=0;e<t.R.g;e++){for(AA(t.e[e],e),a1(t.e[e],t.c,t.f[e]),o=c(XA,Pe,6,N(t.R,e)+qi(t.R,e),14,1),T=0,l=0;l<Ue(t.R,e);l++)(l<N(t.R,e)||l>=Ct(t.R,e))&&(o[T]=t.f[Z(t.R,e,l)],o[T]=Wt(o[T],23),o[T]=z(o[T],ie(t.R,Nt(t.R,e,l))),++T);for(o.sort(pe(th.prototype.md,th,[])),h=t.O;h>o.length;h--)a1(t.e[e],t.c+23,0);for(y=o.length-1;y>=0;y--)a1(t.e[e],t.c+23,o[y])}t.U=tP(t)}if((t.Q&8)!=0&&t.U<t.R.g){for(g=new ou,r=0;r<t.R.g;r++)eP(t.R,r)!=null&&Gs(g,eP(t.R,r));for(e=0;e<t.R.g;e++)d=eP(t.R,e)==null?0:1+c5(g,eP(t.R,e)),AA(t.e[e],e),a1(t.e[e],t.c,t.f[e]),a1(t.e[e],t.c,d);t.U=tP(t)}if((t.Q&16)!=0&&t.U<t.R.g){for(e=0;e<t.R.g;e++)AA(t.e[e],e),a1(t.e[e],t.c,t.f[e]),a1(t.e[e],1,r0(t.R,e)?1:0);t.U=tP(t)}(t.Q&512)!=0&&t.R.L&&nW(t)}function U1t(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v;if(e.j==1){if(t.t!=-1&&t.i.a.length!=0&&uy(t,t.i.a),Ln(t.i,0),e.e){dR(t);return}if(e.b==1){if(e.c==2)return;t.W=!0,or(t),k1t(t,e)}}if(e.j==2){if(e.e){dR(t);return}e.b==1&&(t.W=!1,or(t),$tt(t))}if(e.j==3&&e.b==1&&e.c==2){Ott(t,e.g,e.i);return}if(e.j==4&&(oB(t._),or(t)),e.j==6&&(t.W=!1,g=e.g,v=e.i,Sp(t,g,v,!1)&&P1(t.k),or(t)),e.j==7){switch(t.W=!0,t.ib=e.g,t.lb=e.i,s=Sp(t,t.ib,t.lb,!0),t.X){case 2:att(t)&&(s=!0);break;case 1:(t.ib-t.hb)*(t.ib-t.hb)+(t.lb-t.kb)*(t.lb-t.kb)<100&&s6(t,t.e),s=!0;break;case 3:ge(t.V,t.e,t.gb[t.e]+t.ib-t.hb),Ve(t.V,t.e,t.jb[t.e]+t.lb-t.kb),t.f!=-1&&(ge(t.V,t.f,t.gb[t.f]+t.ib-t.hb),Ve(t.V,t.f,t.jb[t.f]+t.lb-t.kb)),t.eb=w.Math.max(t.eb,2),P1(t.k);break;case 9:K$(t),t.X=4;case 4:if(t.I)for(r=new Zt(t.I);r.a<r.c.a.length;)P=_t(r),P.g&&P.Ob(t.ib,t.lb);for(f=0;f<t.V.r;f++)r0(t.V,f)&&(ge(t.V,f,t.gb[f]+t.ib-t.hb),Ve(t.V,f,t.jb[f]+t.lb-t.kb));t.eb=w.Math.max(t.eb,2),P1(t.k);break;case 11:Ft(t.I,t.v.Gb()),t.X=10;case 10:t.v.Ob(t.ib,t.lb),t.eb=w.Math.max(t.eb,2),P1(t.k);break;case 7:for(y=!1,n=0;n<t.V.r&&!y;n++)y=r0(t.V,n);if(l=!1,t.I)for(D=0;D<t.I.a.length&&!l;D++)l=x(t.I,D).g;if(o=w.Math.abs(t.lb-t.kb)<20?1:w.Math.exp((t.lb-t.kb)/100),A=w.Math.abs(t.ib-t.hb)<20?0:(t.ib-t.hb)/50,h=y||l,t.I&&(!h||l)){for(D=0;D<t.I.a.length;D++)(!h||x(t.I,D).g)&&x(t.I,D).Pb(o,A);t.eb=w.Math.max(t.eb,2),P1(t.k)}(!h||y)&&(sb(t.V,o,A,h),t.eb=w.Math.max(t.eb,2),P1(t.k));break;case 5:case 6:if(T=null,t.X==5){if(w.Math.abs(t.ib-I7(t.R,t.R.a-1))<3&&w.Math.abs(t.lb-x7(t.R,t.R.a-1))<3)break;_I(t.R),Ie(t.R,t.ib,t.lb),Ie(t.R,t.hb,t.kb),T=t.R}else T=new lA(w.Math.min(t.hb,t.ib),w.Math.min(t.kb,t.lb),w.Math.abs(t.ib-t.hb),w.Math.abs(t.lb-t.kb));if(t.I)for(D=0;D<t.I.a.length;D++)L=x(t.I,D),Q=EK(L,T),(!t.O||!t.Q[D])&&Q!=L.g&&(L.g=Q,t.eb=w.Math.max(t.eb,1));for(i=0;i<t.V.r;i++)Q=T.Hb(Bt(mt(t.V,i)),Bt(Rt(t.V,i))),(!t.O||!t.P[i])&&Q!=r0(t.V,i)&&(vP(t.V,i,Q),t.eb=w.Math.max(t.eb,1));s=!0;break;case 8:s=!0}s&&P1(t.k)}}function L1t(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S;if(o=m(k(Ut,2),T0,15,0,[m(k(Ut,1),Tt,6,15,[20]),null,null,m(k(Ut,1),Tt,6,15,[0,10]),null,null,m(k(Ut,1),Tt,6,15,[-4,12]),m(k(Ut,1),Tt,6,15,[0,0,-7.5]),null,null,null,null,m(k(Ut,1),Tt,6,15,[8.571428571428571,-8.571428571428571]),null,null,null,m(k(Ut,1),Tt,6,15,[-2.4])]),L=m(k(B,2),D0,7,0,[m(k(B,1),F,6,15,[146]),m(k(B,1),F,6,15,[627]),null,m(k(B,1),F,6,15,[2457,1170]),null,m(k(B,1),F,6,15,[2451,8643,2519]),m(k(B,1),F,6,15,[9362,14798]),m(k(B,1),F,6,15,[34377,-2147448999,26214]),null,m(k(B,1),F,6,15,[37449,137313,95703,34371,37815,54891,132867,-2147309741,54857,55129,-2147449005,-2147449065]),null,m(k(B,1),F,6,15,[530697,531819,899169,137289,694617,-2146951863,-2146952797,-2146939175,-2146929547,-2146929564,-2146625111,-2146931799,-2146940503,-2146931935]),m(k(B,1),F,6,15,[1007293,610915]),m(k(B,1),F,6,15,[542985,137283,2122017,530691,2206773,-2144711351,219209,2840841,137555,-2146871031,-2147264167,613705,-2145360543,-2146625271,694611,2454837,-2145356703,-2147345133,-2146928951,-2146931805,-2144641719,-2146951869,-2146625237,-2146624183,2841963,1074905,-2146625117,2799955,-2144723645,138583,859225,-2145264843,-2145216253,-2146624149,-2144700727,-2146928917,-2143905527,-2144045771,-2146789097,2288547,544407,2104323,-2146911977,-2144479405,3633737,-2146870089,-2146952169]),null,m(k(B,1),F,6,15,[8487297,2172633,2116611,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8829813]),m(k(B,1),F,6,15,[14071213])]),v=1<<e.e.length,i=0,D=0,e.e.length>7)for(y=0;y<e.e.length;y++)f=qW(t,A,n,y),f==1?i+=v:f==2&&(D+=v),i>>>=1,D>>>=1;if(j=e.e.length-9,e.e.length>=9&&e.e.length<=25&&L[j]!=null)for(S=0;S<L[j].length;S++)for(g=(f1&L[j][S])==0,Q=Et&L[j][S],h=!1;!h;h=!h){if(h){if(g)break;for(d=0,P=1;P!=v;P<<=1)d<<=1,(Q&P)!=0&&(d|=1);Q=d}for(R=0;R<e.e.length;R++){if((Q&i)==0&&(~Q&D)==0){for(r=0,s=bC*(o[j]==null?0:o[j][S]),b=0,C=Q,T=!0,l=0;l<e.e.length;l++)T&&++b,(C&1)==0&&(T=!T),C>>>=1;for(E=b>(e.e.length/2|0),y=1;y<e.e.length;y++)e.a[y]=e.a[y-1]+w.Math.sin(r),e.b[y]=e.b[y-1]+w.Math.cos(r),(Q&1)==0&&(E=!E),r+=s+(E?fA:go),Q>>>=1;return}(Q&1)!=0&&(Q|=v),Q>>>=1}}btt(e,i,D)}function s1t(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X;for(h=0,T=(f=De(e,h),f==-1?e.length:f),n=L1((Mt(h,T,e.length),e.substr(h,T-h)),f1,Et),h=gA(e,T),T=(D=De(e,h),D==-1?e.length:D),d=(Mt(h,T,e.length),e.substr(h,T-h)),a=null,P=!1,v=D_(e),v!=0&&(a=T_(e),v<0&&(P=!0),T=w.Math.abs(v)),h=gA(e,T),T=(Q=De(e,h),Q==-1?e.length:Q),K=sn((Mt(h,T,e.length),e.substr(h,T-h))),h=gA(e,T),T=(o=De(e,h),o==-1?e.length:o),tt=sn((Mt(h,T,e.length),e.substr(h,T-h))),h=gA(e,T),T=(L=De(e,h),L==-1?e.length:L),X=sn((Mt(h,T,e.length),e.substr(h,T-h))),h=gA(e,T),T=(s=De(e,h),s==-1?e.length:s),j=L1((Mt(h,T,e.length),e.substr(h,T-h)),f1,Et),A=a0(t.j,K,-tt,-X),A+1!=n&&(!t.b&&(t.b=new cP),We(t.b,U1(n),U1(A))),a!=null&&($0(t.j,A,6),gf(t.j,A,a,P)),j!=0&&tA(t.j,A,j,!1),e1(d,\"A\")||e1(d,\"*\")?w1(t.j,A,1,!0):e1(d,\"Q\")?(b=c(B,F,6,1,15,1),b[0]=6,gf(t.j,A,b,!0)):$0(t.j,A,zA(d,67));(h=gA(e,T))!=-1;)if(T=(i=De(e,h),i==-1?e.length:i),S=(Mt(h,T,e.length),e.substr(h,T-h)),l=S.indexOf(R0(61)),y=(Mt(0,l,S.length),S.substr(0,l)),e1(y,\"CHG\"))H=L1((zt(l+1,S.length+1),S.substr(l+1)),f1,Et),m0(t.j,A,H);else if(e1(y,\"RAD\"))switch(H=L1((zt(l+1,S.length+1),S.substr(l+1)),f1,Et),H){case 1:Je(t.j,A,16);break;case 2:Je(t.j,A,32);break;case 3:Je(t.j,A,48)}else if(!e1(y,\"CFG\"))if(e1(y,\"MASS\"))H=L1((zt(l+1,S.length+1),S.substr(l+1)),f1,Et),O9(t.j,A,H);else if(e1(y,\"VAL\"))H=L1((zt(l+1,S.length+1),S.substr(l+1)),f1,Et),tn(t.j,A,H==-1?0:H==0?-1:H);else if(e1(y,\"HCOUNT\"))switch(H=L1((zt(l+1,S.length+1),S.substr(l+1)),f1,Et),H){case 0:break;case-1:w1(t.j,A,1792,!0);break;case 1:w1(t.j,A,128,!0);break;case 2:w1(t.j,A,384,!0);break;default:w1(t.j,A,896,!0)}else if(e1(y,\"SUBST\")){if(H=L1((zt(l+1,S.length+1),S.substr(l+1)),f1,Et),H==-1)w1(t.j,A,q1,!0);else if(H>0){for(I=0,r=0;r<t.j.s;r++)(q(t.j,0,r)==A||q(t.j,1,r)==A)&&++I;H>I&&w1(t.j,A,E0,!0)}}else if(e1(y,\"RBCNT\"))switch(H=L1((zt(l+1,S.length+1),S.substr(l+1)),f1,Et),H){case 3:case-1:w1(t.j,A,112,!0);break;case 1:w1(t.j,A,8,!0);break;case 2:w1(t.j,A,104,!0);break;case 4:w1(t.j,A,56,!0)}else e1(y,\"RGROUPS\")&&(C=tJ(),R=(g=fN(C.a,e),new h7(g)),VK(R)&&(E=\"R\"+(R.b.a[2]||null),IP(t.j,A,E)))}function y1t(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T;for(o=l0(t.A,t.a),gt(V(o,1),0)?(yA(t.b,!0),tL(t.w,m4)):tL(t.w,$V),Y8(t.D,IA(t.A,t.a)==null?\"\":s5(t.A,t.a)),e=V(o,my),gt(V(e,Po),0)?$t(t.g,2):O(e,2)==0?$t(t.g,1):O(e,4)==0?$t(t.g,3):$t(t.g,0),y=V(o,120),O(y,112)==0?$t(t.s,1):O(y,96)==0?$t(t.s,2):O(y,8)==0?$t(t.s,3):O(y,104)==0?$t(t.s,4):O(y,88)==0?$t(t.s,5):O(y,56)==0?$t(t.s,6):$t(t.s,0),h=Ot(G0(V(o,lr),22)),$t(t.t,h==0?0:h-2),s=V(o,l9),f=-1,i=0;i<di.length;i++)if(A0(s,di[i])){f=i;break}f!=-1?$t(t.r,f):(n=new bn(\"Custom:\"),gt(V(s,w8),0)&&(n.a+=\" 0\"),gt(V(s,h9),0)&&(n.a+=\" 3\"),gt(V(s,T9),0)&&(n.a+=\" 4\"),gt(V(s,c9),0)&&(n.a+=\" 5\"),gt(V(s,w9),0)&&(n.a+=\" 6\"),gt(V(s,g9),0)&&(n.a+=\" 7\"),gt(V(s,Vf),0)&&(n.a+=\" >=8\"),t.C=s,Gt(t.r,n.a),$t(t.r,di.length)),D=V(o,hi),O(D,io)==0?$t(t.n,1):O(D,j2)==0?$t(t.n,2):O(D,R2)==0?$t(t.n,3):O(D,fo)==0?$t(t.n,4):O(D,KA)==0?$t(t.n,5):O(D,O0)==0?$t(t.n,6):O(D,Ti)==0?$t(t.n,7):O(D,NP)==0?$t(t.n,8):O(D,If)==0?$t(t.n,9):O(D,3276800)==0?$t(t.n,10):O(D,2228224)==0?$t(t.n,11):O(D,2490368)==0?$t(t.n,12):$t(t.n,0),P=V(o,xf),O(P,cy)==0?$t(t.j,1):O(P,wy)==0?$t(t.j,2):O(P,gy)==0?$t(t.j,3):O(P,dy)==0?$t(t.j,4):O(P,N6)==0?$t(t.j,5):O(P,G6)==0?$t(t.j,6):O(P,Do)==0?$t(t.j,7):O(P,p2)==0?$t(t.j,8):O(P,By)==0?$t(t.j,9):O(P,vy)==0?$t(t.j,10):O(P,uo)==0?$t(t.j,11):O(P,O6)==0?$t(t.j,12):O(P,q6)==0?$t(t.j,13):O(P,z6)==0?$t(t.j,14):$t(t.j,0),A=V(o,yr),O(A,ro)==0?$t(t.i,1):O(A,Sf)==0?$t(t.i,2):O(A,Ef)==0?$t(t.i,3):$t(t.i,0),r=V(o,uP),O(r,1792)==0?$t(t.k,1):O(r,1664)==0?$t(t.k,2):O(r,1408)==0?$t(t.k,3):O(r,128)==0?$t(t.k,4):O(r,384)==0?$t(t.k,5):O(r,896)==0?$t(t.k,6):O(r,1536)==0?$t(t.k,7):O(r,ue)==0?$t(t.k,8):O(r,1152)==0?$t(t.k,9):$t(t.k,0),Q=V(o,li),O(Q,98304)==0?$t(t.p,1):O(Q,81920)==0?$t(t.p,2):O(Q,49152)==0?$t(t.p,3):O(Q,On)==0?$t(t.p,4):$t(t.p,0),L=G0(V(o,M2),47),$t(t.o,Ot(L)),gt(V(o,q1),0)&&yA(t.c,!0),gt(V(o,E0),0)&&yA(t.f,!0),T=V(o,Z6),A0(T,Ao)?$t(t.u,1):A0(T,no)?$t(t.u,2):$t(t.u,0),gt(V(o,be),0)&&yA(t.e,!0),gt(V(o,ne),0)&&yA(t.d,!0),t.q&&(l=V(o,k8),O(l,dn)==0?$t(t.q,1):O(l,ko)==0?$t(t.q,2):O(l,k8)==0?$t(t.q,3):$t(t.q,0))}function tM(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;if(d=new h1,A=new h1,i=new h1,T=new ce,h=new ce,P=q(t.L,0,e),r=q(t.L,1,e),t.zb(e,W1(t.R,mt(t.L,P)),Z1(t.R,Rt(t.L,P)),W1(t.R,mt(t.L,r)),Z1(t.R,Rt(t.L,r))),!r0(t.L,P)&&!r0(t.L,r)&&gt(V(z(l0(t.L,P),l0(t.L,r)),ne),0)&&$1(t,-8),t.o[P]?(d.a=t.o[P].a,d.c=t.o[P].b):(d.a=W1(t.R,mt(t.L,P)),d.c=Z1(t.R,Rt(t.L,P))),t.o[r]?(d.b=t.o[r].a,d.d=t.o[r].b):(d.b=W1(t.R,mt(t.L,r)),d.d=Z1(t.R,Rt(t.L,r))),(ie(t.L,e)&d8)!=0){vA(t,d)&&t.rb(d),$1(t,-9);return}switch(f=c1(t.L,e)==8?0:c1(t.L,e)==16?1:dt(t.L,e),f){case 1:if(D=c1(t.L,e),(t.G&128)!=0&&(D==257||D==129)&&(v=q(t.L,0,e),y=fe(t.L,v),y!=0)){for(s=OA(t.L,v),L=0,n=0;n<t.L.g;n++)fe(t.L,n)==y&&OA(t.L,n)==s&&++L;L==1&&(D=1)}switch(D){case 1:vA(t,d)&&xn(t,d,P,r);break;case 257:W5(t,d,P,r);break;case 129:for(b=d.b-d.a,j=d.d-d.c,V9(t.L,o1(t.L,P,r))?(Q=-3,o=-3):(Q=t.p[P],o=l5(t,P),Q==wu(t.L,P)&&(Q=o)),l=2;l<17;l+=2)A.a=d.a+l*b/17-l*j/128,A.c=d.c+l*j/17+l*b/128,A.b=d.a+l*b/17+l*j/128,A.d=d.c+l*j/17-l*b/128,vA(t,A)&&($1(t,l<9?Q:o),t.qb(A),$1(t,t.Q));break;case 16:vA(t,d)&&n_(t,d,P,r)}break;case 0:case 2:if((t.s[P]||t0(t.L,P)==2)&&(t.s[r]||t0(t.L,r)==2)&&!LA(t.L,e)&&f==2){if(!vA(t,d))break;Lf(t,d.b-d.a,d.d-d.c,T),b=T.a/2,j=T.b/2,A.a=d.a+b,A.c=d.c+j,A.b=d.b+b,A.d=d.d+j,i.a=d.a-b,i.c=d.c-j,i.b=d.b-b,i.d=d.d-j,c1(t.L,e)==386&&hL(A,i),xn(t,A,P,r),f==2?xn(t,i,P,r):zQ(t,i,P,r)}else(t.s[r]||t0(t.L,r)==2)&&f==2?Xp(t,d,e,!1):(t.s[P]||t0(t.L,P)==2)&&f==2?Xp(t,d,e,!0):(g=o6(t.L,e),g==0&&(g=1),A.a=d.a,A.c=d.c,A.b=d.b,A.d=d.d,Lf(t,d.b-d.a,d.d-d.c,T),g>0?(i.a=d.a+T.a,i.c=d.c+T.b,i.b=d.b+T.a,i.d=d.d+T.b,(Ui(t,P,r,1,h)||N(t.L,P)>1)&&(i.a+=h.a+T.b,i.c+=h.b-T.a),(Ui(t,r,P,-1,h)||N(t.L,r)>1)&&(i.b+=h.a-T.b,i.d+=h.b+T.a)):(i.a=d.a-T.a,i.c=d.c-T.b,i.b=d.b-T.a,i.d=d.d-T.b,(Ui(t,P,r,-1,h)||N(t.L,P)>1)&&(i.a+=h.a+T.b,i.c+=h.b-T.a),(Ui(t,r,P,1,h)||N(t.L,r)>1)&&(i.b+=h.a-T.b,i.d+=h.b+T.a)),c1(t.L,e)==386&&hL(A,i),vA(t,A)&&xn(t,A,P,r),f==2?vA(t,i)&&xn(t,i,P,r):vA(t,i)&&zQ(t,i,P,r));break;case 3:vA(t,d)&&(xn(t,d,P,r),Lf(t,d.b-d.a,d.d-d.c,T),Ar(t,d,P,r,T.a,T.b,A),Ar(t,d,P,r,-T.a,-T.b,A));break;case 4:vA(t,d)&&(Lf(t,d.b-d.a,d.d-d.c,T),Ar(t,d,P,r,1.5*T.a,1.5*T.b,A),Ar(t,d,P,r,.5*T.a,.5*T.b,A),Ar(t,d,P,r,-.5*T.a,-.5*T.b,A),Ar(t,d,P,r,-1.5*T.a,-1.5*T.b,A));break;case 5:vA(t,d)&&(xn(t,d,P,r),Lf(t,d.b-d.a,d.d-d.c,T),Ar(t,d,P,r,2*T.a,2*T.b,A),Ar(t,d,P,r,T.a,T.b,A),Ar(t,d,P,r,-T.a,-T.b,A),Ar(t,d,P,r,-2*T.a,-2*T.b,A))}t.C==-8&&$1(t,-9)}function l1t(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1,Q1,Lt,pt,o0,V1,y0,m1;if(H=e.i,K=e.j,C=e.f,E=e.g,!n[H]&&!n[K])for(ht=C.c.length>E.c.length?C:E,wt=C.c.length>E.c.length?H:K,n[wt]=!0,I=P==null?0:P[wt],$=0;$<ht.d.length;$++)D=ht.e[ht.d[$]],wD(t,D,Z0(ht.b[I],ht.d[$]));if(n[H]?(a=K,R=E,s=e.b?1:0):(a=H,R=C,s=e.b?0:1),L=e.a,bt=q(t.o,s,L),St=q(t.o,1-s,L),S=P==null?0:P[a],b=R.f[bt],d=R.f[St],tt=Z0(R.b[S],R.d[b]),Qt=t.k[bt],X=ri(_8(tt,Z0(R.b[S],R.d[d]))),m1=ri(_8(Qt,t.k[St])),i=_b(X,m1),j=c(q2,V2,28,R.d.length,0,1),i<.0010000000474974513)for($=0;$<R.d.length;$++)D=R.e[R.d[$]],D!=bt&&D!=St&&(j[$]=i>HA?_8(tt,Z0(R.b[S],R.d[$])):_8(Z0(R.b[S],R.d[$]),tt));else for(i<3.1405926535422957?yt=new Ke(m1.b*X.c-m1.c*X.b,-(m1.a*X.c-m1.c*X.a),m1.a*X.b-m1.b*X.a):w.Math.abs(m1.a)>=w.Math.abs(m1.b)&&w.Math.abs(m1.a)>=w.Math.abs(m1.c)?yt=new Ke(-(m1.b+m1.c)/m1.a,1,1):w.Math.abs(m1.b)>=w.Math.abs(m1.a)&&w.Math.abs(m1.b)>=w.Math.abs(m1.c)?yt=new Ke(1,-(m1.a+m1.c)/m1.b,1):yt=new Ke(1,1,-(m1.a+m1.b)/m1.c),rt=c2(ri(yt),i),$=0;$<R.d.length;$++)D=R.e[R.d[$]],D!=bt&&D!=St&&(j[$]=f2(_8(Z0(R.b[S],R.d[$]),tt),rt));for(n[a]=!0,st=0;st<N(t.o,bt);st++)h=Z(t.o,bt,st),h!=St&&(v=R.f[h],YI(t,h,new Ke(j[v].a+Qt.a,j[v].b+Qt.b,j[v].c+Qt.c)));for(Kt=kL(t,e.p),T=-1,Q=0,o=0,Q1=0;Q1<t.i[A].length;Q1++){for(T=t.i[A][Q1],rt=c2(m1,l1*T/180-Kt),$=0;$<R.d.length;$++)D=R.e[R.d[$]],D!=bt&&D!=St&&(wD(t,D,j[$]),X8(f2(t.k[D],rt),Qt));if(y=f6(t,e),y0=y,pt=0,y<o4)A1=y/q4,t.e[A][Q1]=t.d[A][Q1]*(1-A1*A1);else{for(l=t.i[A][Q1],V1=Ge,ct=0;ct<2;ct++)if(T=r[Q1][ct],T!=l){for(rt=c2(m1,l1*T/180-Kt),W=0;W<R.d.length;W++)D=R.e[R.d[W]],D!=bt&&D!=St&&(wD(t,D,j[W]),X8(f2(t.k[D],rt),Qt));Xt=f6(t,e),Xt<y*zf&&Xt<V1&&(t.i[A][Q1]=r[Q1][ct],A1=Xt/.16000000476837162,t.e[A][Q1]=t.d[A][Q1]*(1-A1*A1),y0=Xt,pt=ct+1,V1=Xt)}V1==Ge&&y<q4&&(A1=y/q4,t.e[A][Q1]=t.d[A][Q1]*(1-A1*A1))}t.e[A][t.a[A]]<t.e[A][Q1]&&(t.a[A]=Q1,Q=pt,o=y0)}for(o0=0,Lt=0;Lt<t.i[A].length;Lt++)t.e[A][Lt]>0&&(o0+=t.e[A][Lt]);if(t.e[A][t.a[A]]<=0)for(t.e[A][t.a[A]]=1,f=Q==1?-8:Q==2?8:Vn(t.f)<.5?-8:8,S1=1;S1<=4;S1++){for(T=t.i[A][t.a[A]]+f*S1<<16>>16,rt=c2(m1,l1*T/180-Kt),W=0;W<R.d.length;W++)D=R.e[R.d[W]],D!=bt&&D!=St&&(wD(t,D,j[W]),X8(f2(t.k[D],rt),Qt));if(g=f6(t,e),o-g<.05)break;t.i[A][t.a[A]]=T}else for(D1=0;D1<t.i[A].length;D1++)t.e[A][D1]/=o0;if(T!=t.i[A][t.a[A]])for(rt=c2(m1,l1*t.i[A][t.a[A]]/180-Kt),W=0;W<R.d.length;W++)D=R.e[R.d[W]],D!=bt&&D!=St&&(wD(t,D,j[W]),X8(f2(t.k[D],rt),Qt));bm(t,L,t.i[A][t.a[A]])}function eM(){eM=v1,Z4=m(k(Ut,1),Tt,6,15,[0,1.00794,4.0026,6.941,9.0122,10.811,12.011,14.007,15.999,18.998,20.18,22.99,24.305,26.982,28.086,30.974,32.066,35.453,39.948,39.098,40.078,44.956,47.867,50.942,51.996,54.938,55.845,58.933,58.693,63.546,65.39,69.723,72.61,74.922,78.96,79.904,83.8,85.468,87.62,88.906,91.224,92.906,95.94,98.906,101.07,102.91,106.42,107.87,112.41,114.82,118.71,121.76,127.6,126.9,131.29,132.91,137.33,138.91,140.12,140.91,144.24,146.92,150.36,151.96,157.25,158.93,162.5,164.93,167.26,168.93,173.04,174.97,178.49,180.95,183.84,186.21,190.23,192.22,195.08,196.97,200.59,204.38,207.2,208.98,209.98,209.99,222.02,223.02,226.03,227.03,232.04,231.04,238.03,237.05,239.05,241.06,244.06,249.08,252.08,252.08,257.1,258.1,259.1,262.11,267.12,268.13,271.13,270.13,277.15,276.15,Hy,Hy,283.17,285.18,Vy,Vy,293.2,Ey,Ey,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.0141,3.016,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71.0787,156.18828,114.10364,115.0877,103.1447,128.13052,129.11458,57.05182,137.14158,113.15934,113.15934,128.17428,131.19846,147.17646,97.11658,87.0777,101.10458,186.2134,163.17546,99.13246]),X4=m(k(Ut,1),Tt,6,15,[0,1.007825,4.0026,7.016003,9.012182,11.009305,12,14.003074,15.994915,18.998403,19.992435,22.989767,23.985042,26.98153,27.976927,30.973762,31.97207,34.968852,39.962384,38.963707,39.962591,44.95591,47.947947,50.943962,51.940509,54.938047,55.934939,58.933198,57.935346,62.939598,63.929145,68.92558,73.921177,74.921594,79.91652,78.918336,83.911507,84.911794,87.905619,88.905849,89.904703,92.906377,97.905406,89.92381,101.904348,102.9055,105.903478,106.905092,113.903357,114.90388,119.9022,120.903821,129.906229,126.904473,131.904144,132.905429,137.905232,138.906346,139.905433,140.907647,141.907719,135.92398,151.919729,152.921225,157.924099,158.925342,163.929171,164.930319,165.93029,168.934212,173.938859,174.94077,179.946545,180.947992,183.950928,186.955744,191.961467,192.962917,194.964766,196.966543,201.970617,204.974401,207.976627,208.980374,193.98818,195.99573,199.9957,201.00411,206.0038,210.00923,232.038054,216.01896,238.050784,229.03623,232.041169,237.05005,238.05302,242.06194,240.06228,243.06947,243.07446,248.08275,251.08887,253.09515,257.10295,257.10777,271.13,270.13,277.15,276.15,Hy,Hy,283.17,285.18,Vy,Vy,291.2,Ey,Ey,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.014,3.01605,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),z2=m(k(B,1),F,6,15,[6,1,7,8])}function h1t(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1,Q1,Lt,pt,o0,V1,y0,m1,F1,h0,Y0,ZA,p0,B1,oe,$e,kA;for(K=0,Q=0,st=0,Kt=c(Pt,it,6,e.r,16,1),Lt=c(Pt,it,6,e.r,16,1),Q1=c(Pt,it,6,e.r,16,1),r=0;r<e.r;r++)A[r]==n&&(Q1[r]=!0,Kt[r]=!0,++Q,++K);for(i=0;i<e.r;i++)if(Q1[i])for(St=0;St<e.k[i];St++)C=e.j[i][St],Kt[C]||(Kt[C]=!0,++Q,++st);for(f=0;f<e.r;f++)if(Kt[f]&&!Q1[f]&&!Lt[f])for(St=0;St<e.e[f];St++)C=e.j[f][St],Kt[C]||(Lt[C]=!0,Kt[C]=!0,++Q);for(y=0,s=0;s<e.s;s++)Kt[e.F[0][s]]&&Kt[e.F[1][s]]&&++y;for(wt=new SA(Q,y),L9(e,wt,Kt,!1,null),Be(wt,!0),tt=c(B,F,6,K,15,1),ct=c(B,F,6,Q,15,1),ht=c(B,F,6,K+st,15,1),h0=c(B,F,6,e.r,15,1),H=0,rt=0,$=0,D=0;D<e.r;D++)Kt[D]&&(xP(e,D,!0)&&w1(wt,rt,d9,!0),Q1[D]||(wt.v[rt]|=O0),(Q1[D]||!Lt[D])&&(ht[$]=rt,h0[D]=$,++$),Q1[D]&&(tt[H]=rt,++H),ct[rt]=D,wt.D[rt]==1&&(wt.B[rt]=2,wt.U&=wt.D[rt]==1?0:7),++rt);if(R=null,V1=null,T=null,o0=null,D1=!1,oe=!!t.a&&nG(t.a)&&Q<=32,oe){for(T=new qA(wt,512),P=0;P<wt.g;P++)if(T.db[P]==3){oe=!1;break}for(L=0;L<wt.i;L++)if(T.o[L]==3){oe=!1;break}oe&&h6(T)}if(t.a&&!oe&&++t.a.d,wt.U|=8,oe&&(D1=WR(T),o0=Me(T),h=Rv(t.a,o0),h)){for(Xt=(si(T),T.H),R=new n1,S=h.a,I=0,a=S.length;I<a;++I){for(E=S[I],pt=0;pt<wt.r;pt++)l=E[Xt[pt]],ge(wt,pt,l.a),Ve(wt,pt,l.b),Xn(wt,pt,D1?-l.c:l.c);Ft(R,new Hu(wt))}V1=h.c}if(!R){for(p0=new ZQ(wt),uU(p0,t.d),z5(p0,t.c,16),R=new n1,o=MQ(p0),R.a.push(o),j=MQ(p0);j;)R.a.push(j),j=MQ(p0);for(F1=Ge,d=new Zt(R);d.a<d.c.a.length;)g=_t(d),F1=w.Math.min(F1,g.e);for(B1=2*F1,A1=R.a.length-1;A1>=0;A1--)(te(A1,R.a.length),R.a[A1]).e>B1&&cA(R,A1);for(V1=c(Ut,Tt,6,R.a.length,15,1),y0=0,S1=0,Qt=0;Qt<R.a.length;Qt++)g=(te(Qt,R.a.length),R.a[Qt]),V1[Qt]=w.Math.pow(10,(F1-g.e)/13.600000000000001),y0+=V1[Qt];for(bt=0;bt<R.a.length;bt++)V1[bt]/=y0;if(t.b){for($e=0,m1=Ge,b=new Zt(R);b.a<b.c.a.length;)g=_t(b),X=WY(Qs(g,g.o)),g.n=X,isNaN(X)||(m1=w.Math.min(m1,X),++$e),OG(g,wt);for(W=m1+2.72,v=new Zt(R);v.a<v.c.a.length;)g=_t(v),!isNaN(g.n)&&g.n>W&&(g.n=NaN,--$e);if($e!=0){for(Y0=c(Ut,Tt,6,$e,15,1),ZA=0,S1=0,yt=R.a.length-1;yt>=0;yt--)g=(te(yt,R.a.length),R.a[yt]),isNaN(g.n)?cA(R,yt):(Y0[S1]=w.Math.pow(10,(m1-g.n)/1.36),ZA+=Y0[S1],++S1);for(V1=c(Ut,Tt,6,$e,15,1),St=0;St<$e;St++)V1[St]=Y0[St]/ZA}}if(oe){for(Xt=(si(T),T.H),E=j1(q2,[DA,V2],[127,28],0,[R.a.length,Xt.length],2),St=0;St<E.length;St++)for(pt=0;pt<Xt.length;pt++)kA=Z0((te(St,R.a.length),R.a[St]),pt),E[St][Xt[pt]]=new Ke(kA.a,kA.b,D1?-kA.c:kA.c);pv(t.a,o0,new Sg(E,V1))}}return new wF(tt,ct,ht,h0,Qf(R,c(HS,sE,97,0,0,1)),V1)}function AM(t,e){zs();var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X;switch(C=xt(t,e),tt=t.K[e].a,X=t.K[e].b,C){case 1:{if(S=t.k[e],S==0?(o=JL(t,!0),y=0):(o=tt-mt(t,t.j[e][0]),y=X-Rt(t,t.j[e][0])),S==1)d=a0(t,tt+ic*o+Qc*y,X-Qc*o+ic*y,0);else if(S==2)o=tt-.5*(mt(t,t.j[e][0])+mt(t,t.j[e][1])),y=X-.5*(Rt(t,t.j[e][0])+Rt(t,t.j[e][1])),d=a0(t,tt+o,X+y,0);else if(S==3){for(a=t.j[e][0],g=1;g<3;g++)f=t.n[e][g],(t.I[f]==129||t.I[f]==257)&&(a=t.j[e][g]);if(A=w.Math.abs(Ze(pA(t.K[e].a,t.K[e].b,mt(t,t.j[e][0]),Rt(t,t.j[e][0])),pA(t.K[e].a,t.K[e].b,mt(t,t.j[e][1]),Rt(t,t.j[e][1])))),n=w.Math.abs(Ze(pA(t.K[e].a,t.K[e].b,mt(t,t.j[e][0]),Rt(t,t.j[e][0])),pA(t.K[e].a,t.K[e].b,mt(t,t.j[e][2]),Rt(t,t.j[e][2])))),P=w.Math.abs(Ze(pA(t.K[e].a,t.K[e].b,mt(t,t.j[e][1]),Rt(t,t.j[e][1])),pA(t.K[e].a,t.K[e].b,mt(t,t.j[e][2]),Rt(t,t.j[e][2])))),I=!0,A>n&&A>P?n+P<l1&&(I=!1,o=tt-.5*(mt(t,t.j[e][0])+mt(t,t.j[e][1])),y=X-.5*(Rt(t,t.j[e][0])+Rt(t,t.j[e][1]))):n>A&&n>P?A+P<l1&&(I=!1,o=tt-.5*(mt(t,t.j[e][0])+mt(t,t.j[e][2])),y=X-.5*(Rt(t,t.j[e][0])+Rt(t,t.j[e][2]))):A+n<l1&&(I=!1,o=tt-.5*(mt(t,t.j[e][1])+mt(t,t.j[e][2])),y=X-.5*(Rt(t,t.j[e][1])+Rt(t,t.j[e][2]))),I){for(H=t.j[e][0],Q=Ge,T=0;T<3;T++)r=t.j[e][T],r!=a&&(D=w.Math.pow(t.K[e].a-t.K[r].a,2)+w.Math.pow(t.K[e].b-t.K[r].b,2),D<Q&&(H=r,Q=D,z1()));d=a0(t,(t.K[a].a+t.K[H].a)/2,(t.K[a].b+t.K[H].b)/2,0)}else d=a0(t,tt+o,X+y,0)}else d=a0(t,tt+o,X+y,0);$0(t,d,1),K0(t,e,d,1)}break;case 2:if(E=t.k[e],E==1)o=tt-mt(t,t.j[e][0]),y=X-Rt(t,t.j[e][0]),d=a0(t,tt+(Ho*o-Vo*y)*.7,X+(Vo*o+Ho*y)*.7,0),$0(t,d,1),K0(t,e,d,1),d=a0(t,tt+(Pc*o-Dc*y)*.7,X+(Dc*o+Pc*y)*.7,0),$0(t,d,1),K0(t,e,d,1);else if(E==2)L=tt-mt(t,t.j[e][0]),l=X-Rt(t,t.j[e][0]),s=tt-mt(t,t.j[e][1]),h=X-Rt(t,t.j[e][1]),j=w.Math.sqrt(L*L+l*l)*.7,R=w.Math.sqrt(s*s+h*h)*.7,o=L+s,y=l+h,b=w.Math.sqrt(o*o+y*y),i=(j+R)/2,o=o/b*i,y=y/b*i,K=NQ(t,e),d=a0(t,tt+nc*o-fc*y,X+fc*o+nc*y,0),$0(t,d,1),K>-1?K0(t,e,d,1):K0(t,e,d,257),d=a0(t,tt+rc*o-uc*y,X+uc*o+rc*y,0),$0(t,d,1),K0(t,e,d,1);else for(v=0;v<C;v++)d=a0(t,tt,X,0),$0(t,d,1),K0(t,e,d,1);break;case 3:t.j[e][0]>0?(o=(tt-mt(t,t.j[e][0]))*.7,y=(X-Rt(t,t.j[e][0]))*.7,d=a0(t,tt+o,X+y,0),$0(t,d,1),K0(t,e,d,1),d=a0(t,tt-y,X+o,0),$0(t,d,1),K0(t,e,d,1),d=a0(t,tt+y,X-o,0),$0(t,d,1),K0(t,e,d,1)):(o=JL(t,!0),y=JL(t,!0),d=a0(t,tt+o,X+y,0),$0(t,d,1),K0(t,e,d,1),d=a0(t,tt-y*Ho,X+o*Vo,0),$0(t,d,1),K0(t,e,d,1),d=a0(t,tt-y*Ho,X-o*Vo,0),$0(t,d,1),K0(t,e,d,1));break;default:{for(v=0;v<C;v++)d=a0(t,tt,X,0),$0(t,d,1),K0(t,e,d,1);break}}}function T1t(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct;if((t.fb!=ND(t.k)||t.N!=Y9(t.k))&&(t.fb=ND(t.k),t.N=Y9(t.k),t.eb<3&&(t.eb=3)),P=k3(e),f=xB(e),nA(e,P),K3(e,0,0,t.fb,t.N),(t.U&4)!=0&&t.I.a.length==0&&(y=.5*t.fb,l=.5*t.N,r=.03999999910593033*t.fb,A=new _D,G3(A,y-r,l,y+r,l),A.j=!0,Ft(t.I,A)),o=!1,t.eb!=0){switch((t.U&1)!=0&&t.eb!=5&&rm(t),t.G=(t.U&4)!=0?new zj(new qT(t.L,t.Y),t.I):(t.U&2)!=0?new Qv(t.L,t.Y,t.I):(t.U&1)!=0?new kB(t.L,t.I):new HF(t.V,t.I),UY(t.G,f,P),hI(t.G,t.T),cI(t.G,(t.U&1)==0?0:(L=nl,L.startsWith(Pl)||L.startsWith(rl)||L.startsWith(il)?S5(P,co):(ni(),P&qn|Bt(w.Math.round(co*((P&QP)>>16)))<<16|Bt(w.Math.round(co*((P&DP)>>8)))<<8|Bt(w.Math.round(co*(P&255)))))),Nq(t.G,t.$),TI(t.G,t.H|8|(t.w==19?80:0)),t.eb){case 6:case 4:case 5:sK(t,e);break;case 3:j=$5(t.G,e,new lA(0,0,t.fb,t.N),0),j&&(t.U&1)!=0&&ah(j,t.V);break;case 2:R=$R(t.G,e,new lA(0,0,t.fb,t.N),0),o=!!R&&!(R.c==1&&R.a==0&&R.b==0)}t.eb=0}switch(t.G&&m$(t.G,e),o||rZ(t,e),t.G&&(eX(t.G,e),rz(t.G,e)),t.t!=-1&&t.i.a.length!=0&&(S=Bt(mt(t.V,t.t)),X=Bt(Rt(t.V,t.t)),T=t.i.a,C=Jz(t,T),nA(e,C==1?f:C==2?-16776961:Ty),C==1?T=(O1(),J0)[zA(T,t.c)]:C==2&&(T=hA(t.j,0,T.length)),i=3*(rt=e.Lc(),rt.getFontSize())/2|0,UL(e,i,!1,!1),V3(e,S,X,T),C==4&&(nA(e,GP),J3(e,S+As(e,T).b/2,X+i,\"<unknown>\")),C==2&&(nA(e,Ty),V3(e,S+As(e,T).b,X,GD(t.j,T.length)))),nA(e,f),t.X){case 1:switch(I=Bt(t.hb),W=Bt(t.kb),t.t==-1||t.t==t.e?(a=Bt(t.ib),$=Bt(t.lb)):(a=Bt(mt(t.V,t.t)),$=Bt(Rt(t.V,t.t))),t.w){case 5:Z9(e,I,W,a,$);break;case 6:H=(W-$)/9|0,st=(a-I)/9|0,h=new WD(3),Ie(h,I,W),Ie(h,a+H,$+st),Ie(h,a-H,$-st),nL(e,new uD(h));break;case 23:for(H=a-I,st=$-W,Q=2;Q<17;Q+=2)K=I+(Q*H/17|0)-(Q*st/128|0),ht=W+(Q*st/17|0)+(Q*H/128|0),tt=I+(Q*H/17|0)+(Q*st/128|0),wt=W+(Q*st/17|0)-(Q*H/128|0),Z9(e,K,ht,tt,wt)}break;case 2:if(t.q>0&&Z9(e,Bt(t.hb),Bt(t.kb),Bt(t.o[0]),Bt(t.p[0])),t.q>1)for(Q=1;Q<t.q;Q++)Z9(e,Bt(t.o[Q-1]),Bt(t.p[Q-1]),Bt(t.o[Q]),Bt(t.p[Q]));break;case 5:nA(e,(v=(d=KD(e),d!=0?d:Al),F5(v,(s=nl,s.startsWith(Pl)||s.startsWith(rl)||s.startsWith(il)?AE:nE)))),dG(e,new uD(t.R)),nA(e,f);break;case 6:S=t.hb<t.ib?Bt(t.hb):Bt(t.ib),X=t.kb<t.lb?Bt(t.kb):Bt(t.lb),E=Bt(w.Math.abs(t.ib-t.hb)),D=Bt(w.Math.abs(t.lb-t.kb)),nA(e,(b=(g=KD(e),g!=0?g:Al),F5(b,(L=nl,L.startsWith(Pl)||L.startsWith(rl)||L.startsWith(il)?AE:nE)))),ct=e.Lc(),ct.drawRectangle(S,X,E,D),nA(e,f);break;case 8:I=Bt(t.hb),W=Bt(t.kb),t.t==-1||t.t==t.e?(a=Bt(t.ib),$=Bt(t.lb)):(a=Bt(mt(t.V,t.t)),$=Bt(Rt(t.V,t.t))),nA(e,(n=k3(e),as(-8388608,n))),Z9(e,I,W,a,$),nA(e,f)}}function nM(t,e,A){var n,P,r,i,f,D;for(r=0,$A(t.b)?(r=z(r,1),gf(t.A,e,A,!0)):gf(t.A,e,A,!1),v0(t.g)==2?UN(t.A,e)||(r=z(r,e4)):mn(t.A,e)||(v0(t.g)==1?r=z(r,2):v0(t.g)==3&&(r=z(r,4))),f=0,P=0;P<N(t.A,e);P++)gt(V(l0(t.A,Z(t.A,e,P)),ne),0)&&LA(t.A,Nt(t.A,e,P))&&++f;switch(v0(t.s)){case 1:f==0&&(r=z(r,112));break;case 2:f<=2&&(r=z(r,96));break;case 3:r=z(r,8);break;case 4:f<3&&(r=z(r,104));break;case 5:f<4&&(r=z(r,88));break;case 6:r=z(r,56)}switch(v0(t.t)!=0&&(r=z(r,Wt(v0(t.t)+2,22))),D=v0(t.r),D==di.length?r=z(r,t.C):D!=0&&(r=z(r,di[D])),v0(t.i)){case 1:r=z(r,ro);break;case 2:r=z(r,Sf);break;case 3:r=z(r,Ef)}switch(i=ax(t.A,e),v0(t.n)){case 1:i==1?r=z(r,q1):i<1&&(r=z(r,io));break;case 2:i==2?r=z(r,q1):i<2&&(r=z(r,j2));break;case 3:i==3?r=z(r,q1):i<3&&(r=z(r,R2));break;case 4:i==2?r=z(r,q1):i<2&&(r=z(r,fo));break;case 5:i==3?r=z(r,q1):i<3&&(r=z(r,KA));break;case 6:i==0&&(r=z(r,E0));break;case 7:i==1?r=z(r,E0):i<1&&(r=z(r,Ti));break;case 8:i==2?r=z(r,E0):i<2&&(r=z(r,NP));break;case 9:i==3?r=z(r,E0):i<3&&(r=z(r,If));break;case 10:i==0?r=z(r,3276800):r=z(r,fo);break;case 11:i==0?r=z(r,2228224):r=z(r,KA);break;case 12:i<=1?r=z(r,2490368):i<=3&&(r=z(r,KA))}switch(n=wT(t.A,e),v0(t.j)){case 1:n==0&&(r=z(r,cy));break;case 2:n<=1&&(r=z(r,wy));break;case 3:n<=2&&(r=z(r,gy));break;case 4:n<=3&&(r=z(r,dy));break;case 5:n<2&&(r=z(r,N6));break;case 6:n<3&&(r=z(r,G6));break;case 7:n<4&&(r=z(r,Do));break;case 8:n==0&&(r=z(r,p2));break;case 9:n<2&&(r=z(r,By));break;case 10:n<3&&(r=z(r,vy));break;case 11:n<4&&(r=z(r,uo));break;case 12:n<2&&(r=z(r,O6));break;case 13:n<3&&(r=z(r,q6));break;case 14:n<3&&(r=z(r,z6))}switch(v0(t.k)){case 1:r=z(r,1792);break;case 2:r=z(r,1664);break;case 3:r=z(r,1408);break;case 4:r=z(r,128);break;case 5:r=z(r,384);break;case 6:r=z(r,896);break;case 7:r=z(r,1536);break;case 8:r=z(r,ue);break;case 9:r=z(r,1152)}switch(v0(t.p)){case 1:r=z(r,98304);break;case 2:r=z(r,81920);break;case 3:r=z(r,49152);break;case 4:r=z(r,On)}switch(v0(t.o)!=0&&(r=z(r,Wt(v0(t.o),47))),$A(t.c)&&(_i(t.A,e)>0||R1(t.A,e)==0&&(J(t.A,e)==5||R3(t.A,e)||$3(t.A,e)))&&(r=z(r,q1)),$A(t.f)&&(_i(t.A,e)>0||R1(t.A,e)==0&&(J(t.A,e)==5||R3(t.A,e)||$3(t.A,e)))&&(r=z(r,E0)),v0(t.u)){case 1:r=z(r,Ao);break;case 2:r=z(r,no)}if($A(t.e)&&(r=z(r,be)),$A(t.d)&&(r=z(r,ne)),t.q)switch(v0(t.q)){case 1:r=z(r,dn);break;case 2:r=z(r,ko);break;case 3:r=z(r,k8)}w1(t.A,e,-1,!1),w1(t.A,e,r,!0)}function c1t(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$;for(o=e.a[A],L=e.a[n],s=e.a[P],y=e.a[r],X=YZ(t.a,e,A,n,P,r),W=X>10?X/10|0:X,$=X>10?X-W*10:0,E=-1,S=0,C=0,I=0,j=W,K=5;(S<K&&(E==-1||K==4)||S==4&&W==5&&$>0)&&(K==5&&S==4&&(K=4,S=0,j=$),S==1?(C=1,I=3):S==2?(C=3,I=1):(C=S,I=S),g=t.a.g.a[o-1][w.Math.min(C+1,4)],v=L,d=s,b=t.a.g.a[y-1][w.Math.min(I+1,4)],v>d?(d=(H=U1(v),U1(v=d),H).a,b=(a=U1(g),U1(g=b),a).a):v==d&&g>b&&(b=(a=U1(g),U1(g=b),a).a),E=f9(m(k(B,1),F,6,15,[2,3,1,4,0]),m(k(B,1),F,6,15,[v,d,g,b,j]),t),!(E!=-1&&K==4));)++S;if(E>=0)return new gF(t,E);for(T=o1(e,n,P),f=m(k(Ut,1),Tt,6,15,[0,0]),D=m(k(Ut,1),Tt,6,15,[0,0]),Q=m(k(Ut,1),Tt,6,15,[0,0]),l=m(k(B,1),F,6,15,[e.D[n],e.D[P]]),i=(pn(t.a.b,L)-1)*(pn(t.a.b,s)-1),R=0;R<2;R++)switch(l[R]){case 6:f[R]=2,D[R]=2.12;break;case 7:f[R]=2,D[R]=1.5;break;case 8:f[R]=2,D[R]=.2,Q[R]=2;break;case 14:f[R]=1.25,D[R]=1.22;break;case 15:f[R]=1.25,D[R]=2.4;break;case 16:f[R]=1.25,D[R]=.49,Q[R]=8}return ZD(t.a.b,L)||ZD(t.a.b,s)?new Zn(0,0):sL(t.a.b,L)&&sL(t.a.b,s)&&T<e.i&&Ee(e.q,T)?(h=u8(t.a.b,L)==3&&u8(t.a.b,s)==4||u8(t.a.b,L)==4&&u8(t.a.b,s)==3?3:6,tt=X9(t.a.b,L)==0&&X9(t.a.b,s)==0?.5:.3,new Zn(h*tt*w.Math.sqrt(f[0]*f[1]),0)):dt(e,T)==2?(tt=NA(t.a.b,L)==2&&NA(t.a.b,s)==2?1:.4,new Zn(6*tt*w.Math.sqrt(f[0]*f[1]),0)):pn(t.a.b,L)==4&&pn(t.a.b,s)==4?new Zn(0,w.Math.sqrt(D[0]*D[1])/i):pn(t.a.b,L)==4&&pn(t.a.b,s)!=4?pn(t.a.b,s)==3&&(u8(t.a.b,s)==4||u8(t.a.b,s)==34||NA(t.a.b,s)>0)||pn(t.a.b,s)==2&&(u8(t.a.b,s)==3||NA(t.a.b,s)>0)?new xU:new Zn(0,w.Math.sqrt(D[0]*D[1])/i):pn(t.a.b,s)==4&&pn(t.a.b,L)!=4?pn(t.a.b,L)==3&&(u8(t.a.b,L)==4||u8(t.a.b,L)==34||NA(t.a.b,L)>0)||pn(t.a.b,L)==2&&(u8(t.a.b,L)==3||NA(t.a.b,L)>0)?new xU:new Zn(0,w.Math.sqrt(D[0]*D[1])/i):dt(e,T)==1&&NA(t.a.b,L)>0&&NA(t.a.b,s)>0||NA(t.a.b,L)>0&&X9(t.a.b,s)>0||X9(t.a.b,L)>0&&NA(t.a.b,s)>0?X9(t.a.b,L)>0&&X9(t.a.b,s)>0?new xU:X9(t.a.b,L)>0&&NA(t.a.b,s)>0?(tt=0,NA(t.a.b,L)==1?tt=.5:nP(l[0])==2&&nP(l[1])==2?tt=.3:(nP(l[0])!=2||nP(l[1])!=2)&&(tt=.15),new Zn(6*tt*w.Math.sqrt(f[0]*f[1]),0)):X9(t.a.b,s)>0&&NA(t.a.b,L)>0?(tt=0,NA(t.a.b,s)==1?tt=.5:nP(l[0])==2&&nP(l[1])==2?tt=.3:(nP(l[0])!=2||nP(l[1])!=2)&&(tt=.15),new Zn(6*tt*w.Math.sqrt(f[0]*f[1]),0)):(NA(t.a.b,L)==1||NA(t.a.b,s)==1)&&(l[0]!=6||l[1]!=6)?new Zn(2.4000000000000004*w.Math.sqrt(f[0]*f[1]),0):new Zn(.8999999999999999*w.Math.sqrt(f[0]*f[1]),0):(l[0]==8||l[0]==16)&&(l[1]==8||l[1]==16)?new Zn(-w.Math.sqrt(Q[0]*Q[1]),0):new Zn(0,w.Math.sqrt(D[0]*D[1])/i)}function w1t(t,e){var A,n,P,r,i,f,D,Q,o,L;if(!t.W){if(Q=e.b,e.j==1)if(Q==-3)t.Z=!0,or(t);else if(Q==-2)t.d=!0,or(t);else if(Q==-1)or(t);else if(e.a)Q==122?(Ov(t),t.eb=w.Math.max(t.eb,2),P1(t.k),N1(t,new x1(t,1,!0))):Q==99?a5(t,!0):Q==118&&((t.U&4)!=0&&t.r&&nF(),Wv(t));else if(Q==-4)t.w!=19&&(J1(t),pW(t)||LQ(t.V)&&(t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0))));else if(Q==-6||t.t==-1&&Q==63){E3(t._,tE,eE);return}else if(Q==-8)t.i.a.length!=0&&(uy(t,t.i.a),Ln(t.i,0));else if(t.u!=-1)Q==113&&t.V.L?Jv(t,t.u):Q==118?$Q(t.V,t.u,3,!1,Qn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0))):Q>=52&&Q<=55?$Q(t.V,t.u,Q-48,!1,Qn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0))):Q==97||Q==98?$Q(t.V,t.u,6,!0,Qn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0))):(P=Q==48?(J1(t),h8(t.V,t.u,16)):Q==49?(J1(t),h8(t.V,t.u,1)):Q==50?(J1(t),h8(t.V,t.u,2)):Q==51?(J1(t),h8(t.V,t.u,4)):Q==117?(J1(t),h8(t.V,t.u,257)):Q==100?(J1(t),h8(t.V,t.u,129)):Q==99?(J1(t),h8(t.V,t.u,386)):Q==109&&(J1(t),h8(t.V,t.u,16)),P&&(t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0))));else if(t.t!=-1)if(D=t.i.a.length==0,D?t.K=Q:(t.K==108&&(Ln(t.i,0),Ye(t.i,76)),t.K=-1),D&&Q==108)G(t.i,\"Cl\"),t.eb=w.Math.max(t.eb,1),P1(t.k);else if(D&&(Q==43||Q==45))J1(t),pT(t.V,t.t,Q==43)&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));else if(D&&Q==46)J1(t),L=jA(t.V,t.t)==32?0:32,Je(t.V,t.t,L),t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0));else if(D&&Q==58)J1(t),L=jA(t.V,t.t)==48?16:jA(t.V,t.t)==16?0:48,Je(t.V,t.t,L),t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0));else if(D&&Q==113&&t.V.L)NF(t,t.t);else if(D&&t.V.L&&(Q==120||Q==88))o=m(k(B,1),F,6,15,[9,17,35,53]),ST(t.V,t.t,o),t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0));else if(D&&Q==63)J1(t),mf(t.V,t.t,0,0,-1,0)&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));else if(D&&Q>48&&Q<=57){if(_i(t.V,t.t)>0){for(J1(t),r=Q-47,A=t.t,i=t.V.r-t.V.g,f=1;f<r&&(s6(t,A),n=a0(t.V,t.ib,t.lb,0),n!=-1);f++)QL(t.V,A,n),A=n-i,ut(t.V,1);t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0))}}else!D&&Q==-7?(Ln(t.i,0),t.eb=w.Math.max(t.eb,1),P1(t.k)):!D&&Q==-5?(Ln(t.i,t.i.a.length-1),t.eb=w.Math.max(t.eb,1),P1(t.k)):Q>=65&&Q<=90||Q>=97&&Q<=122||Q>=48&&Q<=57||Q==45?(Ye(t.i,Q&d1),t.eb=w.Math.max(t.eb,1),P1(t.k)):(Q==10||Q==13)&&uy(t,t.i.a);else Q==104||Q==118?(t.U&7)==0&&J5(t,Q==104):t.db&&y6(t.db,e);e.j==2&&(Q==-3?(t.Z=!1,or(t)):Q==-2?(t.d=!1,or(t)):Q==-1?or(t):t.db&&y6(t.db,e))}}function g1t(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st;for(n=0;n<t.f.g;n++)if(Ct(t.f,n)>4){for(s=new VP(t.f,1+Ct(t.f,n),!1),s.a[Ct(t.f,n)]=0,s.b[Ct(t.f,n)]=0,s.k[Ct(t.f,n)]=32,s.e[Ct(t.f,n)]=n,t.b[n]=!0,l=0;l<Ct(t.f,n);l++)Q=Z(t.f,n,l),s.a[l]=w.Math.sin(fA*l-I2),s.b[l]=w.Math.cos(fA*l-I2),s.k[l]=32,s.e[l]=Q,t.b[Q]=!0,t.c[Nt(t.f,n,l)]=!0;CP(t.d,s)}for(tt=kn(t.f),K=0;K<tt.j.a.length;K++){if(X=x(tt.k,K).length,a=x(tt.j,K),W=!1,(t.e&12)!=0){for(W=!0,l=0;l<X;l++)if(!W0(t.f,a[l])){W=!1;break}}if(!W){for(g=!1,h=0;h<X;h++)if(Or(t.f,a[h])==X){g=!0;break}if(g)for(H=x(tt.k,K),Xm(t,a,H),l=0;l<X;l++)t.b[a[l]]=!0,t.c[H[l]]=!0}}for(f=0;f<t.f.i;f++)if(LA(t.f,f)&&!t.c[f])for(st=N$(t,f),a=st.a,H=st.b,Xm(t,a,H),l=0;l<st.a.length;l++)t.b[a[l]]=!0,t.c[H[l]]=!0;for(D=0;D<t.f.s;D++)if(!t.c[D]&&dt(t.f,D)==3&&(P=q(t.f,0,D),r=q(t.f,1,D),R=Ct(t.f,P)+Ct(t.f,r),R>2)){for(s=new VP(t.f,R,!1),o=0,h=0;h<Ct(t.f,P);h++)Q=Z(t.f,P,h),Q!=r&&(s.e[o++]=Q,t.b[Q]=!0,t.c[Nt(t.f,P,h)]=!0);for(s.e[o++]=P,s.e[o++]=r,T=0;T<Ct(t.f,r);T++)Q=Z(t.f,r,T),Q!=P&&(s.e[o++]=Q,t.b[Q]=!0,t.c[Nt(t.f,r,T)]=!0);for(l=0;l<R;l++)s.a[l]=l,s.b[l]=0,s.k[l]=1;t.b[P]=!0,t.b[r]=!0,t.c[D]=!0,CP(t.d,s)}for(i=0;i<t.f.s;i++)if(!t.c[i]&&dt(t.f,i)==2){for(e=c(B,F,6,t.f.r,15,1),l=0;l<2;l++)if(e[0]=q(t.f,l,i),e[1]=q(t.f,1-l,i),t0(t.f,e[0])==1&&t0(t.f,e[1])==2&&Ct(t.f,e[1])==2){t.b[e[0]]=!0,t.b[e[1]]=!0,t.c[i]=!0,j=1;do{if(C=Z(t.f,e[j],0)==e[j-1]?1:0,e[j+1]=Z(t.f,e[j],C),t0(t.f,e[j+1])==2&&Ct(t.f,e[j+1])>2)break;t.b[e[j+1]]=!0,t.c[Nt(t.f,e[j],C)]=!0,++j}while(t0(t.f,e[j])==2&&Ct(t.f,e[j])==2);for(R=Ct(t.f,e[0])+Ct(t.f,e[j])+j-1,s=new VP(t.f,R,!1),d=0;d<=j;d++)s.a[d]=d,s.b[d]=0,s.k[d]=64,s.e[d]=e[d];for(L=j+1,y=!1,b=0;b<Ct(t.f,e[0]);b++)Q=Z(t.f,e[0],b),Q!=e[1]&&(s.a[L]=-.5,s.b[L]=y?w.Math.sin(fA):-w.Math.sin(fA),s.k[L]=64,s.e[L]=Q,++L,y=!0);for(y=!1,v=0;v<Ct(t.f,e[j]);v++)Q=Z(t.f,e[j],v),Q!=e[j-1]&&(s.a[L]=j+.5,s.b[L]=y?-w.Math.sin(fA):w.Math.sin(fA),s.k[L]=64,s.e[L]=Q,++L,y=!0);CP(t.d,s)}}for(A=0;A<t.f.r;A++)if(Ct(t.f,A)==4){for(E=c(B,F,6,4,15,1),S=c(B,F,6,4,15,1),I=0,h=0;h<4;h++)E[I]=Z(t.f,A,h),S[I]=Nt(t.f,A,h),Ct(t.f,E[I])==1&&!t.c[S[I]]&&++I;if(I==2){for(s=new VP(t.f,3,!1),l=0;l<2;l++)t.b[E[l]]=!0,t.c[S[l]]=!0,s.e[l]=E[l],s.k[l]=32;s.a[0]=-.5,s.b[0]=.866,s.a[1]=.5,s.b[1]=.866,s.a[2]=0,s.b[2]=0,s.k[2]=32,s.e[2]=A,CP(t.d,s)}if(I==3){for(T=0;T<2;T++)dt(t.f,S[T])==1&&($=E[T],E[T]=E[2],E[2]=$,$=S[T],S[T]=S[2],S[2]=$);for(s=new VP(t.f,4,!1),l=0;l<3;l++)t.b[E[l]]=!0,t.c[S[l]]=!0,s.e[l]=E[l],s.k[l]=32;s.a[0]=-1,s.b[0]=0,s.a[1]=1,s.b[1]=0,s.a[2]=0,s.b[2]=1,s.a[3]=0,s.b[3]=0,s.k[3]=32,s.e[3]=A,CP(t.d,s)}}}function d1t(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt;if(Ri(t.c),t.d=null,ut(e,63),dt(e,A)!=1||A<e.i&&Ee(e.q,A)||J(e,e.F[0][A])==1||J(e,e.F[1][A])==1||(tt=(e.G[A]&128)!=0,tt&&(e.q&&A<e.i?TP(e.q,A):0)<6))return!1;for(P=c(Pt,it,6,e.g,16,1),t.a=0,C=0;C<2;C++){for(t.b[C]=e.F[C][A],t.e[C]=e.F[1-C][A];t0(e,t.b[C])==2&&n0(e,t.b[C])==2&&J(e,t.b[C])<10;)for(X=0;X<N(e,t.b[C]);X++)if(i=Z(e,t.b[C],X),i!=t.e[C]&&e.D[i]!=1){if(e.k[i]==1||t.a==16)return!1;P[t.b[C]]=!0,t.e[C]=t.b[C],t.b[C]=i,++t.a;break}if(W=n0(e,t.b[C]),W>4||W==1)return!1;P[t.b[C]]=!0}for(E=0;E<2;E++)for(X=0;X<N(e,t.b[E]);X++)i=Z(e,t.b[E],X),e.D[i]!=1&&(P[i]=!0);for(t.g=c(B,F,6,e.g,15,1),L9(e,t.c,P,!0,t.g),S=0;S<t.g.length;S++)t.g[S]!=-1&&(t.i[t.g[S]]=S);if(Be(t.c,!0),tt&&(r=o1(t.c,t.g[t.b[0]],t.g[t.b[1]]),r!=-1)){for(Xe(t.c,r,256,!0),Xt=(ut(e,7),e.q),ct=0;ct<Xt.j.a.length;ct++)if(rf(Xt,ct,A)){for(I=0;I<2;I++)for(X=0;X<N(e,t.b[I]);X++)if(i=Z(e,t.b[I],X),i!=t.e[I]&&wA(Xt,ct,i)&&e.D[i]!=1){Xe(t.c,o1(t.c,t.g[t.b[I]],t.g[i]),256,!0);break}}}for(a=0;a<2;a++){for(xP(e,t.b[a],!0)&&w1(t.c,t.g[t.b[a]],d9,!0),D=!1,X=0;X<N(e,t.b[a]);X++)i=Z(e,t.b[a],X),i!=t.e[a]&&e.D[i]!=1&&(g=o1(t.c,t.g[t.b[a]],t.g[i]),c1(t.c,g)==8?D=!0:e.D[i]==6&&!mn(e,t.b[a])&&(T=i<e.g&&i0(e.q,i)?2:4,w1(t.c,t.g[i],T,!0)),f=Nt(e,t.b[a],X),St=e.q&&f<e.i?TP(e.q,f):0,(St==3||St==4)&&Xe(t.c,g,St<<17,!0),(f<e.i&&Ee(e.q,f)||EA(e,t.b[a],X)==2)&&(W=n0(e,i),j=W==3,!j&&W==2&&(e.v[i]&gn)==0&&(j=ER(e,t.b[1-a],f)!=-1),j?w1(t.c,t.g[i],R2,!0):f<e.i&&Ee(e.q,f)&&w1(t.c,t.g[i],j2,!0)),EA(e,t.b[a],X)==1&&(n0(e,i)==4?w1(t.c,t.g[i],If,!0):e.D[i]==6&&w1(t.c,t.g[i],KA,!0)));D||(mn(e,t.b[a])?w1(t.c,t.g[t.b[a]],2,!0):w1(t.c,t.g[t.b[a]],4,!0))}for(ut(t.c,191),R=0;R<2;R++)if(v=t.g[t.b[R]],B0(t.c,v)==3){if(B0(e,t.b[R])==3)return!1;$=lF(t.c,v),w0(t.c,$,257),q(t.c,0,$)!=v&&(mD(t.c,1,$,q(t.c,0,$)),mD(t.c,0,$,v)),ut(t.c,191)}if(s=t.g[t.b[0]],y=t.g[t.b[1]],wt=t.g[t.e[0]],rt=t.g[t.e[1]],Q=fe(t.c,s),o=fe(t.c,y),O8(t.c,s)&&O8(t.c,y)&&(Q!=0||o!=0)&&(Q!=o||OA(t.c,s)!=OA(t.c,y)))return!1;if(L=!1,O8(t.c,s)&&Q!=0&&(Ne(t.c,s,0,-1),L=!0),O8(t.c,y)&&o!=0&&(Ne(t.c,y,0,-1),L=!0),L&&ut(t.c,191),st=C0(t.c,s),ht=C0(t.c,y),st<ht&&(bt=t.b[0],t.b[0]=t.b[1],t.b[1]=bt,bt=t.e[0],t.e[0]=t.e[1],t.e[1]=bt,bt=s,s=y,y=bt,bt=wt,wt=rt,rt=bt),K=!1,(O8(t.c,s)||O8(t.c,y))&&(O8(t.c,s)?K=Mh(t.c,s)==1:O8(t.c,y)&&(K=Mh(t.c,y)==1),K)){for(n=0;n<t.c.r;n++)ge(t.c,n,-mt(t.c,n));ut(t.c,191)}return l=sR(t,s,wt),h=sR(t,y,rt),t.f[0]=l==-1?-1:t.i[l],t.f[1]=h==-1?-1:t.i[h],H=Pk(t.c),H==null?!1:(d=PR(t,s,wt),b=PR(t,y,rt),d==0&&b==0&&(t.c.J&GP)==O0?Qt=2:Qt=kE[d][b],A1=Qt==0?K?\"<\":\">\":Qt==1?K?\"-\":\"+\":Qt==3?\"=\":\"\",t.d=H+A1,!0)}function B1t(t,e){var A,n,P;s8();var r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1;for(d=new rp(e),T=new PM(e,d),D1=c(CS,DA,477,e.r,0,2),wt=1;wt<e.r;wt++)D1[wt]=c(CS,{4:1,5:1,8:1,478:1,477:1},84,wt,0,1);for(h=0;h<e.s;h++)Q=t9(e.F[0][h],e.F[1][h]),OQ(D1,Q,Q,d.a[h],10);for(s=0;s<e.g;s++)for(rt=1;rt<e.e[s];rt++)for(E=e.j[s][rt],a=e.n[s][rt],g=d.a[a],Qt=0;Qt<rt;Qt++)S=e.j[s][Qt],H=e.n[s][Qt],r=rt<Qt?T.a[s][Qt][rt]:T.a[s][rt][Qt],v=d.a[H],tt=w.Math.sqrt(g*g+v*v-2*g*v*w.Math.cos(r)),yt=c(B,F,6,1,15,1),yt[0]=s,OQ(D1,t9(E,S),yt,tt,5);for(l=0;l<e.s;l++)if(!(l<e.i&&Ee(e.q,l)||(e.G[l]&64)!=0&&(e.q&&l<e.i?TP(e.q,l):0)<=5)){for(Q=c(B,F,6,2,15,1),rt=0;rt<2;rt++)Q[rt]=e.F[rt][l];if(e.e[Q[0]]>1&&e.e[Q[1]]>1){if(dt(e,l)==3){for(tt=d.a[l],S1=c(B,F,6,2,15,1),ct=0;ct<2;ct++)for(Qt=0;Qt<e.e[Q[ct]];Qt++)if(I=e.n[Q[ct]][Qt],I!=l){tt+=d.a[I],S1[ct]=e.j[Q[ct]][Qt];break}yt=c(B,F,6,2,15,1),yt[0]=Q[0],yt[1]=Q[1],OQ(D1,t9(S1[0],S1[1]),yt,tt,3)}else if(dt(e,l)==2&&e.p[Q[0]]==1&&e.p[Q[1]]==1&&(e.G[l]&3)!=3){for(C=c(B,D0,7,2,0,2),I=c(B,D0,7,2,0,2),R=c(Ut,T0,15,2,0,2),ct=0;ct<2;ct++){for(C[ct]=c(B,F,6,e.e[Q[ct]]-1,15,1),I[ct]=c(B,F,6,e.e[Q[ct]]-1,15,1),R[ct]=c(Ut,Tt,6,e.e[Q[ct]]-1,15,1),X=-1,Qt=0;Qt<e.e[Q[ct]];Qt++)if(e.j[Q[ct]][Qt]==Q[1-ct]){X=Qt;break}for(K=0,bt=0;bt<e.e[Q[ct]];bt++)bt!=X&&(C[ct][K]=e.j[Q[ct]][bt],I[ct][K]=e.n[Q[ct]][bt],R[ct][K]=Nu(T,Q[ct],X,bt),++K)}for(Xt=0;Xt<C[0].length;Xt++)for(Qt=0;Qt<C[1].length;Qt++)St=(e.G[l]&3)==1,C[0].length==2&&C[0][Xt]>C[0][1-Xt]&&(St=!St),C[1].length==2&&C[1][Qt]>C[1][1-Qt]&&(St=!St),A=d.a[l]-d.a[I[0][Xt]]*w.Math.cos(R[0][Xt])-d.a[I[1][Qt]]*w.Math.cos(R[1][Qt]),n=d.a[I[0][Xt]]*w.Math.sin(R[0][Xt]),St?n+=d.a[I[1][Qt]]*w.Math.sin(R[1][Qt]):n-=d.a[I[1][Qt]]*w.Math.sin(R[1][Qt]),P=c(B,F,6,2,15,1),P[0]=e.F[0][l],P[1]=e.F[1][l],OQ(D1,t9(C[0][Xt],C[1][Qt]),P,w.Math.sqrt(A*A+n*n),3)}else if(dt(e,l)!=0){for(Kt=c(B,F,6,2,15,1),ct=0;ct<2;ct++)for(Qt=0;Qt<e.e[Q[ct]];Qt++)if(e.j[Q[ct]][Qt]==Q[1-ct]){Kt[ct]=Qt;break}for(Xt=0;Xt<e.e[Q[0]];Xt++)if(Xt!=Kt[0])for(Qt=0;Qt<e.e[Q[1]];Qt++)Qt!=Kt[1]&&(e.p[Q[0]]==0&&e.p[Q[1]]==0?la(e.j[Q[0]][Xt],e.j[Q[1]][Qt],e.n[Q[0]][Xt],e.n[Q[1]][Qt],Nu(T,Q[0],Kt[0],Xt),Nu(T,Q[1],Kt[1],Qt),l,d,D1,e):j$(e.j[Q[0]][Xt],e.j[Q[1]][Qt],e.n[Q[0]][Xt],e.n[Q[1]][Qt],Nu(T,Q[0],Kt[0],Xt),Nu(T,Q[1],Kt[1],Qt),l,d,D1,e))}}}for(y=0;y<e.g;y++)if(e.p[y]==2&&e.k[y]==2&&e.o[y][0]==2&&e.o[y][1]==2){for(o=e.j[y][0],L=e.j[y][1],rt=0;rt<e.e[o];rt++)if(b=e.j[o][rt],b!=y)for(Qt=0;Qt<e.e[L];Qt++)j=e.j[L][Qt],j!=y&&(i=zm(T,o,y,b),f=zm(T,L,y,j),g=pr(d,e.n[o][rt]),v=pr(d,e.n[L][Qt]),W=pr(d,e.n[y][0])+pr(d,e.n[y][1])-g*w.Math.cos(i)-v*w.Math.cos(f),$=g*w.Math.sin(i),st=v*w.Math.sin(f),yt=c(B,F,6,2,15,1),yt[0]=o,yt[1]=L,OQ(D1,t9(b,j),yt,w.Math.sqrt(W*W+$*$+st*st),3))}for(D=0;D<e.r;D++)Y$(D1,D,e,d);for(pY(D1,e),ht=1;ht<e.r;ht++)for(A1=0;A1<ht;A1++)D1[ht][A1].a!=null&&t.a.push(D1[ht][A1])}function m6(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W;K=null,Q=null;try{if(t.f=null,t.j&&(Ri(t.j),Be(t.j,!1)),d=T=X1(e),d==null||(T=X1(e))==null||(T=X1(e))==null||(t.k=T.includes(\"From CSD data. Using bond type 'Any'\"),t.e=T.includes(\"From CSD data.\"),(T=X1(e))==null))return!1;t.g=!1,t.d=t.a;try{b=L1(k1((Mt(0,3,T.length),T.substr(0,3))),f1,Et),j=L1(k1((Mt(3,6,T.length),T.substr(3,3))),f1,Et),R=qr(k1((Mt(6,9,T.length),T.substr(6,3)))),t.d=t.d|qr(k1((Mt(12,15,T.length),T.substr(12,3))))==1,t.g=T.length>=39&&T.startsWith(\"V3000\",34)}catch($){if($=_1($),Jt($,19))return!1;throw et($)}if(t.g)return E=Wa(t,e),iu(t.j,d),E;if(!t.j&&(t.j=new SA(b,j)),iu(t.j,d),t.d||(t.j.M=!0),b==0){for(;T!=null&&!(e1(T,hr)||e1(T,Lo)||e1((zt(1,T.length+1),T.substr(1)),\"$\"));)T=X1(e);return!0}for(y=0;y<b;y++){if((T=X1(e))==null)return!1;A=(tt=sn(k1((Mt(0,10,T.length),T.substr(0,10)))),X=sn(k1((Mt(10,20,T.length),T.substr(10,10)))),W=sn(k1((Mt(20,30,T.length),T.substr(20,10)))),a0(t.j,tt,-X,-W)),pX(t,A,T),v=qr(k1((Mt(34,36,T.length),T.substr(34,2)))),v!=0&&O9(t.j,A,(O1(),j8)[J(t.j,A)]+v),i=qr(k1((Mt(36,39,T.length),T.substr(36,3)))),i!=0&&(i==4?Je(t.j,A,32):m0(t.j,A,4-i)),g=T.length<63?0:qr(k1((Mt(60,63,T.length),T.substr(60,3)))),tA(t.j,A,g,!1),FW(t,A,T),H=T.length<51?0:qr(k1((Mt(48,51,T.length),T.substr(48,3)))),H!=0&&(K==null&&(K=c(B,F,6,b,15,1)),K[A]=H)}for(l=0;l<j;l++){if((T=X1(e))==null)return!1;n=L1(k1((Mt(0,3,T.length),T.substr(0,3))),f1,Et)-1,P=L1(k1((Mt(3,6,T.length),T.substr(3,3))),f1,Et)-1,r=L1(k1((Mt(6,9,T.length),T.substr(6,3))),f1,Et),I=T.length<12?0:qr(k1((Mt(9,12,T.length),T.substr(9,3)))),a=T.length<18?0:qr(k1((Mt(15,18,T.length),T.substr(15,3)))),r==8&&(t.k||ee(t.j,n)||ee(t.j,P))&&(r=9),bR(t,n,P,r,I,a)}for(s=0;s<R;s++)if((T=X1(e))==null)return!1;if((T=X1(e))==null)return(t.i&1)!=0&&(t.f=Tu(t.j)),Db(t,K),t.d||ut(t.j,15),!0;for(;T!=null&&!(e1(T,hr)||e1(T,Lo));)lW(t,T),hW(t,T),h_(t,T),u$(t,T),o_(t,T),J_(t,T),VW(t,T),(T.startsWith(\"M  SAL\")&&T.length>=17||T.startsWith(\"M  SDT\")&&T.length>=12||T.startsWith(\"M  SED\")&&T.length>=12)&&(!Q&&(Q=new cP),S=(Mt(7,10,T.length),T.substr(7,3)),f=(h=S,t8(e9(Q,h))),f||(f=new tu,We(Q,S,f)),T.startsWith(\"M  SAL\")&&T.startsWith(\"  1\",10)?f.a=L1(k1((Mt(13,17,T.length),T.substr(13,4))),f1,Et):T.startsWith(\"M  SDT\")?f.b=(zt(11,T.length+1),T.substr(11)).startsWith(Iy):T.startsWith(\"M  SED\")&&(f.c=k1((zt(11,T.length+1),T.substr(11))))),T=X1(e)}catch($){if($=_1($),Jt($,19))return o=$,ur(o,(z1(),k9),\"\"),!1;throw et($)}if(Q)for(D=(C=new oD(Q).a.ad().Tb(),new UD(C));D.a.cd();)f=(L=D.a.dd(),L.jd()),f.b&&f.a!=0&&f.c!=null&&IP(t.j,f.a-1,f.c);return t.e&&(e_(t),l$(t)),(t.i&1)!=0&&(t.f=Tu(t.j)),Db(t,K),ut(t.j,15),!0}function PM(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C;for(this.b=e,this.e=t,this.a=c(Oe,DA,480,this.e.g,0,3),P=0;P<this.e.g;P++)for(this.a[P]=c(Oe,{480:1,4:1,9:1,5:1,8:1},46,Ct(this.e,P),0,2),D=1;D<Ct(this.e,P);D++)this.a[P][D]=c(Oe,uA,6,D,15,1);for(this.c=c(B,F,6,this.e.g,15,1),this.d=c(Oe,uA,6,this.e.g,15,1),this.f=c(B,F,6,this.e.i,15,1),R=kn(this.e),s=c(Pt,it,6,R.j.a.length,16,1),ry(R,s,c(Pt,it,6,R.j.a.length,16,1),c(B,F,6,R.j.a.length,15,1),!0),f=3;f<=7;f++)for(g=0;g<R.j.a.length;g++)C=x(R.k,g).length,C==f&&(s[g]?Stt(this,g):C<=4&&$Z(this,g));for(L=c(Pt,it,6,this.e.g,16,1),T=0;T<R.j.a.length;T++)if(s[T])for(d=x(R.j,T),b=0,j=d.length;b<j;++b)v=d[b],L[v]=!0;for(r=m(k(B,1),F,6,15,[0,0,1,3,6,10,15,21]),n=0;n<this.e.g;n++){if(i=Ct(this.e,n),i>4){for(D=1;D<i;D++)for(l=0;l<D;l++)this.a[n][D][l]=u4;this.c[n]=r[i];continue}if(this.c[n]!=r[i])if(MU(this.e,n)&&(L[n]||Or(this.e,n)<=4&&t0(this.e,n)>0)){if(i>2){if(this.c[n]==1)J(this.e,n)<=14?A=(HM-this.d[n])/2:A=VM+(VM-this.d[n])*.18000000715255737;else if(A=HM-this.d[n],i>3){if(this.c[n]==2){for(y=c(Pt,it,6,Ct(this.e,n),16,1),Q=1;Q<i;Q++)for(h=0;h<Q;h++)this.a[n][Q][h]!=0&&(y[Q]=!y[Q],y[h]=!y[h]);for(o=0;o<i;o++)if(y[o]){for(h=o+1;h<i;h++)if(y[h]){this.a[n][h][o]=A;break}break}}A=u4}for(D=1;D<i;D++)for(l=0;l<D;l++)this.a[n][D][l]==0&&(this.a[n][D][l]=A)}}else if(MU(this.e,n)&&Or(this.e,n)<=4)switch(ZX(this,n)){case 771:s0(this,n,0,3,2.0653998851776123),s0(this,n,0,0,1.9814722631346626);break;case 1028:s0(this,n,0,4,1.9797999858856201),s0(this,n,0,0,1.94691481878138);break;case 393987:s0(this,n,0,3,EM),s0(this,n,0,6,EM),s0(this,n,3,3,1.7229016938441077);break;case 459779:s0(this,n,0,3,Q4),s0(this,n,0,4,Q4),s0(this,n,0,7,Q4),s0(this,n,3,4,1.9322539839360076);break;case 525316:s0(this,n,0,4,SM),s0(this,n,0,8,SM),s0(this,n,4,4,1.99944913298566);case 394758:s0(this,n,0,6,2.526099920272827);break;case 460550:s0(this,n,0,6,IM),s0(this,n,0,7,IM);break;case 526087:s0(this,n,0,7,xM),s0(this,n,0,8,xM);break;case 526344:s0(this,n,0,8,2.186300039291382);break;case 50529027:s0(this,n,3,3,2.4189000129699707);break;case 67371779:s0(this,n,3,4,2.2298998832702637);break;case 67372036:s0(this,n,4,4,2.094399929046631);break;case 101057283:s0(this,n,3,6,1.839926051241747),s0(this,n,3,3,2.9061476191098734);break;case 117834755:s0(this,n,3,4,2.812249087174905),s0(this,n,3,7,1.7910569124592968),s0(this,n,4,6,2.1224948975613245);break;case 134677507:s0(this,n,3,4,2.642428360523752),s0(this,n,3,8,2.027723514585844),s0(this,n,4,7,2.251474717631936);break;case 117900035:s0(this,n,3,7,2.109753935530918),s0(this,n,3,3,3.1052897491356646);break;case 117900292:s0(this,n,4,7,2.090729910747413),s0(this,n,4,4,2.551671293386306);break;case 134743044:s0(this,n,4,8,2.139250042271712),s0(this,n,4,4,2.3520055858942612)}else for(A=J(this.e,n)>10?NM:t0(this.e,n)==2?S2:xP(this.e,n,!0)?GM:t0(this.e,n)==0?NM:GM,D=1;D<i;D++)for(l=0;l<D;l++)this.a[n][D][l]=A}}function v1t(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;for(t.A=e,t.a=A,L=Bt(w.Math.round((Re==-1&&(Re=globalThis.devicePixelRatio||1),Re*8))),s=m(k(B,1),F,6,15,[L,L/2|0,L*3/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L/2|0,L*3/2|0,L/4|0,L/2|0,L/2|0,L/4|0]),y=m(k(B,1),F,6,15,[L*3/2|0,L/2|0]),l=m(k(B,1),F,6,15,[L,-2,L,-2,L]),j=c(B,F,6,1+2*s.length+(n?2*y.length:0),15,1),T=0,i=s,D=0,o=i.length;D<o;++D)P=i[D],j[T++]=P,j[T++]=-2;if(n)for(r=y,f=0,Q=r.length;f<Q;++f)P=r[f],j[T++]=P,j[T++]=-2;for(j[T++]=L,fL(t.v,l,j),t.b=Un(t.v,\"Any atomic number\"),YP(t.b,t),Fe(t.v,t.b,1,1,3,1),t.w=le(t.v,m4),t.D=$u(t.v,16,1),f0(t.v,t.w,1,3),f0(t.v,t.D,3,3),t.g=TA(t.v),Gt(t.g,b8),Gt(t.g,\"is aromatic\"),Gt(t.g,\"is hetero-aromatic\"),Gt(t.g,\"is not aromatic\"),f0(t.v,le(t.v,\"Aromaticity:\"),1,5),f0(t.v,t.g,3,5),t.s=TA(t.v),Gt(t.s,b8),Gt(t.s,\"0 (not in a ring)\"),Gt(t.s,\"0 or 2 (0 or 1 ring)\"),Gt(t.s,\">=2 (any ring count)\"),Gt(t.s,\"2 (in 1 ring)\"),Gt(t.s,\"3 (bridge head; 2 rings)\"),Gt(t.s,\">3 (in more than 2 rings)\"),f0(t.v,le(t.v,\"Ring bonds:\"),1,7),f0(t.v,t.s,3,7),t.t=TA(t.v),Gt(t.t,b8),Gt(t.t,\"3 members\"),Gt(t.t,\"4 members\"),Gt(t.t,\"5 members\"),Gt(t.t,\"6 members\"),Gt(t.t,\"7 members\"),f0(t.v,le(t.v,\"Smallest ring size:\"),1,9),f0(t.v,t.t,3,9),t.r=TA(t.v),v=VE,d=0,b=v.length;d<b;++d)g=v[d],Gt(t.r,g);for(f0(t.v,le(t.v,\"Any ring size:\"),1,11),f0(t.v,t.r,3,11),t.i=TA(t.v),Gt(t.i,b8),Gt(t.i,\"not charged\"),Gt(t.i,\"has negative charge\"),Gt(t.i,\"has positive charge\"),f0(t.v,le(t.v,\"Charge:\"),1,13),f0(t.v,t.i,3,13),t.n=TA(t.v),Gt(t.n,b8),Gt(t.n,ay),Gt(t.n,tl),Gt(t.n,\"exactly 3\"),Gt(t.n,b4),Gt(t.n,ZV),Gt(t.n,el),Gt(t.n,j4),Gt(t.n,R4),Gt(t.n,WV),Gt(t.n,p4),Gt(t.n,\"1,2, or 3\"),Gt(t.n,\"2 or 3\"),f0(t.v,le(t.v,\"Non-H neighbours:\"),1,15),f0(t.v,t.n,3,15),t.j=TA(t.v),Gt(t.j,b8),Gt(t.j,\"exactly 0\"),Gt(t.j,ay),Gt(t.j,tl),Gt(t.j,\"exactly 3\"),Gt(t.j,_V),Gt(t.j,b4),Gt(t.j,ZV),Gt(t.j,el),Gt(t.j,j4),Gt(t.j,R4),Gt(t.j,WV),Gt(t.j,p4),Gt(t.j,\"1,2, or 3\"),Gt(t.j,\"2 or 3\"),f0(t.v,le(t.v,\"Electroneg. neighbours:\"),1,17),f0(t.v,t.j,3,17),t.k=TA(t.v),Gt(t.k,b8),Gt(t.k,\"none\"),Gt(t.k,ay),Gt(t.k,tl),Gt(t.k,el),Gt(t.k,j4),Gt(t.k,R4),Gt(t.k,_V),Gt(t.k,b4),Gt(t.k,p4),f0(t.v,le(t.v,\"Hydrogen count:\"),1,19),f0(t.v,t.k,3,19),t.p=TA(t.v),Gt(t.p,b8),Gt(t.p,\"none\"),Gt(t.p,ay),Gt(t.p,tl),Gt(t.p,el),f0(t.v,le(t.v,\"Pi-electron count:\"),1,21),f0(t.v,t.p,3,21),t.o=TA(t.v),Gt(t.o,b8),h=1;h<15;h++)Gt(t.o,\"\"+(h-7));f0(t.v,le(t.v,\"Oxidation state:\"),1,23),f0(t.v,t.o,3,23),t.c=Un(t.v,\"prohibit further substitution\"),YP(t.c,t),Fe(t.v,t.c,1,25,3,25),t.f=Un(t.v,\"require further substitution\"),YP(t.f,t),Fe(t.v,t.f,1,27,3,27),t.u=TA(t.v),Gt(t.u,b8),Gt(t.u,\"is a stereo center\"),Gt(t.u,\"is not a stereo center\"),f0(t.v,le(t.v,\"Stereo center:\"),1,29),f0(t.v,t.u,3,29),t.e=Un(t.v,\"match stereo center\"),Fe(t.v,t.e,1,31,3,31),t.d=Un(t.v,\"is part of exclude group\"),Fe(t.v,t.d,1,33,3,33),n&&(Fe(t.v,le(t.v,\"Stereo center hint for product:\"),1,35,3,35),t.q=TA(t.v),Gt(t.q,\"Copy from generic product\"),Gt(t.q,\"Keep reactant configuration\"),Gt(t.q,\"Invert reactant configuration\"),Gt(t.q,\"Racemise configuration\"),Fe(t.v,t.q,1,37,3,37)),ut(t.A,31),y1t(t)}function rM(){var t,e,A,n;for(this.b=c(gE,e0,18,120,0,1),this.c=new Yn,this.d=new Yn,_4=m(k(gE,1),e0,18,0,[new It(1,\"Hydrogen\",\"H\",2.2),new It(2,\"Helium\",\"He\",0),new It(3,\"Lithium\",\"Li\",.98),new It(4,\"Beryllium\",\"Be\",1.57),new It(5,\"Boron\",\"B\",2.04),new It(6,\"Carbon\",\"C\",2.55),new It(7,\"Nitrogen\",\"N\",3.04),new It(8,\"Oxygen\",\"O\",3.44),new It(9,\"Fluorine\",\"F\",3.98),new It(10,\"Neon\",\"Ne\",0),new It(11,\"Sodium\",\"Na\",.93),new It(12,\"Magnesium\",\"Mg\",1.31),new It(13,\"Aluminum\",\"Al\",1.61),new It(14,\"Silicon\",\"Si\",1.9),new It(15,\"Phosphorus\",\"P\",2.19),new It(16,\"Sulfur\",\"S\",2.58),new It(17,\"Chlorine\",\"Cl\",3.16),new It(18,\"Argon\",\"Ar\",0),new It(19,\"Potassium\",\"K\",1),new It(20,\"Calcium\",\"Ca\",1.36),new It(21,\"Scandium\",\"Sc\",1.54),new It(22,\"Titanium\",\"Ti\",1.63),new It(23,\"Vanadium\",\"V\",1.66),new It(24,\"Chromium\",\"Cr\",1.55),new It(25,\"Manganese\",\"Mn\",1.83),new It(26,\"Iron\",\"Fe\",1.88),new It(27,\"Cobalt\",\"Co\",1.91),new It(28,\"Nickel\",\"Ni\",1.9),new It(29,\"Copper\",\"Cu\",1.65),new It(30,\"Zinc\",\"Zn\",1.81),new It(31,\"Gallium\",\"Ga\",2.01),new It(32,\"Germanium\",\"Ge\",0),new It(33,\"Arsenic\",\"As\",2.18),new It(34,\"Selenium\",\"Se\",2.55),new It(35,\"Bromine\",\"Br\",0),new It(36,\"Krypton\",\"Kr\",2.96),new It(37,\"Rubidium\",\"Rb\",0),new It(38,\"Strontium\",\"Sr\",.82),new It(39,\"Yttrium\",\"Y\",.95),new It(40,\"Zirconium\",\"Zr\",1.22),new It(41,\"Niobium\",\"Nb\",1.33),new It(42,\"Molybdenum\",\"Mo\",1.6),new It(43,\"Technetium\",\"Tc\",2.16),new It(44,\"Ruthenium\",\"Ru\",1.9),new It(45,\"Rhodium\",\"Rh\",2.2),new It(46,\"Palladium\",\"Pd\",2.28),new It(47,\"Silver\",\"Ag\",2.2),new It(48,\"Cadmium\",\"Cd\",1.93),new It(49,\"Indium\",\"In\",1.69),new It(50,\"Tin\",\"Sn\",1.78),new It(51,\"Antimony\",\"Sb\",1.96),new It(52,\"Tellurium\",\"Te\",0),new It(53,\"Iodine\",\"I\",2.05),new It(54,\"Xenon\",\"Xe\",2.1),new It(55,\"Cesium\",\"Cs\",2.66),new It(56,\"Barium\",\"Ba\",2.6),new It(57,\"Lanthanum\",\"La\",.79),new It(58,\"Cerium\",\"Ce\",.89),new It(59,\"Praesodymium\",\"Pr\",1.1),new It(60,\"Neodymium\",\"Nd\",1.12),new It(61,\"Promethium\",\"Pm\",1.13),new It(62,\"Samarium\",\"Sm\",1.14),new It(63,\"Europium\",\"Eu\",0),new It(64,\"Gadolinium\",\"Gd\",1.17),new It(65,\"Terbium\",\"Tb\",0),new It(66,\"Dyprosium\",\"Dy\",1.2),new It(67,\"Holmium\",\"Ho\",0),new It(68,\"Erbium\",\"Er\",1.22),new It(69,\"Thulium\",\"Tm\",1.23),new It(70,\"Ytterbium\",\"Yb\",1.24),new It(71,\"Lutetium\",\"Lu\",1.25),new It(72,\"Hafnium\",\"Hf\",0),new It(73,\"Tantalium\",\"Ta\",1.27),new It(74,\"Wolfram\",\"W\",1.3),new It(75,\"Rhenium\",\"Re\",1.5),new It(76,\"Osmium\",\"Os\",2.36),new It(77,\"Iridium\",\"Ir\",1.9),new It(78,\"Platinum\",\"Pt\",2.2),new It(79,\"Gold\",\"Au\",2.2),new It(80,\"Mercury\",\"Hg\",2.28),new It(81,\"Thallium\",\"Tl\",2.54),new It(82,\"Lead\",\"Pb\",2),new It(83,\"Bismuth\",\"Bi\",1.62),new It(84,\"Polonium\",\"Po\",2.33),new It(85,\"Astatine\",\"At\",2.02),new It(86,\"Radon\",\"Rn\",2),new It(87,\"Francium\",\"Fr\",2.2),new It(88,\"Radium\",\"Ra\",0),new It(89,\"Actinium\",\"Ac\",.7),new It(90,\"Thorium\",\"Th\",.89),new It(91,\"Protactinium\",\"Pa\",1.1),new It(92,\"Uranium\",\"U\",1.3),new It(93,\"Neptunium\",\"Np\",1.5),new It(94,\"Plutonium\",\"Pu\",1.38),new It(95,\"Americium\",\"Am\",1.36),new It(96,\"Curium\",\"Cm\",1.28),new It(97,\"Berkelium\",\"Bk\",1.3),new It(98,\"Californium\",\"Cf\",1.3),new It(99,\"Einsteinium\",\"E\",1.3),new It(100,\"Fermium\",\"Fm\",1.3),new It(101,\"Mendelevium\",\"Mv\",1.3)]),e=_4,A=0,n=e.length;A<n;++A)t=e[A],this.b[t.c]=t,qD(this.c,t.b,t),qD(this.d,t.d.toLowerCase(),t);this.a=c(Pt,it,6,_4.length,16,1),this.a[3]=!0,this.a[11]=!0,this.a[19]=!0,this.a[37]=!0,this.a[55]=!0,this.a[87]=!0}function F1t(t,e,A,n){var P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1,Q1,Lt,pt,o0,V1,y0,m1,F1,h0,Y0,ZA,p0,B1,oe,$e,kA,kr,M8,sP,yP,rn,mr,Jn,fn;for(E=Ch(t.c,n),B1=new _A,h=0,T=0,Jn=null,ht=0;ht<t.o.length;ht++){for(S=C9(t.c,ht),ut(t.o[ht],1),m1=x(e[ht],A[ht]),y0=c(B,F,6,t.o[ht].g,15,1),d=c(Pt,it,6,t.o[ht].g,16,1),b=c(Pt,it,6,t.o[ht].i,16,1),Qt=0;Qt<S.g;Qt++)if(m1[Qt]!=-1)if(w.Math.abs(S.A[Qt])==0){for(j=m1[Qt],d[j]=!0,pt=0;pt<N(t.o[ht],j);pt++)b[Nt(t.o[ht],j,pt)]=!0;for(Lt=Ct(t.o[ht],j);Lt<Ue(t.o[ht],j);Lt++)b[Nt(t.o[ht],j,Lt)]=!0}else y0[m1[Qt]]=w.Math.abs(S.A[Qt]);for(bt=0;bt<S.i;bt++)if(L=S.F[0][bt],s=S.F[1][bt],w.Math.abs(S.A[L])!=0&&w.Math.abs(S.A[s])!=0&&(f=m1[L],D=m1[s],f!=-1&&D!=-1)){for(Lt=0;Lt<t.o[ht].i;Lt++)if(q(t.o[ht],0,Lt)==f&&q(t.o[ht],1,Lt)==D||q(t.o[ht],0,Lt)==D&&q(t.o[ht],1,Lt)==f){b[Lt]=!0;break}}for(Y0=c(B,F,6,t.o[ht].g,15,1),yt=0;yt<t.o[ht].g;yt++)if(!d[yt]&&(Y0[yt]=Gn(t.o[ht],B1,yt,h,T),t.b&&tA(B1,Y0[yt],t.p[ht][A[ht]][yt],!1),y0[yt]!=0)){for(tA(B1,Y0[yt],y0[yt],!1),Lt=0;Lt<E.g;Lt++)if(w.Math.abs(E.A[Lt])==y0[yt]){if(m0(B1,Y0[yt],E.t[Lt]),Je(B1,Y0[yt],E.v[Lt]&48),t.f[n][Lt])if(p0=B0(t.o[ht],yt),$e=V(E.C[Lt],k8),O($e,0)==0)ke(B1,Y0[yt],3,!1);else if(O($e,k8)==0)!Jn&&(Jn=new n1),Ft(Jn,U1(Y0[yt]));else if(p0==1||p0==2){for(rt=O($e,ko)==0,o0=0;o0<N(t.o[ht],yt);o0++)if(y=Z(t.o[ht],yt,o0),d[y])for(V1=0;V1<N(t.o[ht],yt);V1++)ZA=Z(t.o[ht],yt,V1),!d[ZA]&&ZA>y&&(rt=!rt);rt&&(p0=p0==1?2:1),ke(B1,Y0[yt],p0,!1)}else ke(B1,Y0[yt],0,!1);break}}for(Kt=0;Kt<t.o[ht].i;Kt++)b[Kt]||TQ(t.o[ht],B1,Kt,h,T,Y0,!0);h=Ae(B1,1),T=Ae(B1,2)}for(h0=c(B,F,6,E.g,15,1),S1=0;S1<E.g;S1++)if(y0=w.Math.abs(E.A[S1]),y0==0)h0[S1]=Gn(E,B1,S1,h,T);else for(Lt=0;Lt<B1.r;Lt++)if(w.Math.abs(B1.A[Lt])==y0){h0[S1]=Lt;break}if(t.r)for(Qt=0;Qt<E.g;Qt++)_n(B1,h0[Qt],!0),ge(B1,h0[Qt],E.K[Qt].a),Ve(B1,h0[Qt],E.K[Qt].b);for(I=0;I<E.i;I++)if((E.H[I]&d8)==0&&(oe=o9(E,B1,I,h,T,h0[E.F[0][I]],h0[E.F[1][I]],!1),kA=E.H[I]&31,kA!=0))for(C=!1,Xe(B1,oe,31,!1),a=M1(E,E.F[0][I]),H=M1(E,E.F[1][I]),st=0;!C&&st<t.c.g.a.length;st++)for(S=C9(t.c,st),X=0;!C&&X<S.i;X++)K=S.F[0][X],tt=S.F[1][X],W=w.Math.abs(S.A[K]),$=w.Math.abs(S.A[tt]),W!=0&&$!=0&&(W==a&&$==H||W==H&&$==a)&&(C=!0,fn=S.H[X]&31,fn!=0&&(m1=x(e[st],A[st]),M8=m1[K],sP=m1[tt],yP=o1(t.o[st],M8,sP),mr=c1(t.o[st],yP),rn=dt(t.o[st],yP),fn&=7,kA&=7,fn==3&&kA==6?(B1.I[oe]=rn<=1?2:4,B1.U=0):fn==6&&kA==3?(B1.I[oe]=rn==3?2:1,B1.U=0):(B1.I[oe]=mr,B1.U=0)));for(ut(B1,1),g=!1,D1=0;D1<E.g;D1++)w.Math.abs(E.A[D1])==0?(p0=n6(E,D1,h0),ke(B1,h0[D1],p0,!1)):t.f[n][D1]&&Q_(t,E,D1,B1,h0[D1])&&(p0=n6(E,D1,h0),ke(B1,h0[D1],p0,!1),(p0==1||p0==2)&&(v=(E.v[D1]&b1)>>18,l=(E.v[D1]&b1)>>18!=1&&(E.v[D1]&b1)>>18!=2?-1:(E.v[D1]&VA)>>20,v==1?l+=h:v==2&&(l+=T),Ne(B1,h0[D1],v,l),g=!0));for(g&&(h=Ae(B1,1),T=Ae(B1,2)),kr=c(Pt,it,6,E.r,16,1),Q1=0;Q1<E.g;Q1++)t.f[n][Q1]&&!kr[Q1]&&(E.v[Q1]&4)!=0&&A0(V(E.C[Q1],k8),0)&&E.k[Q1]==B1.k[h0[Q1]]&&V_(E,Q1,B1,h0);for(wt=c(Pt,it,6,B1.r,16,1),Xt=h0,St=0,A1=Xt.length;St<A1;++St)ct=Xt[St],wt[ct]=!0;for(R=!0;R;)for(R=!1,o=0;o<B1.s;o++)f=B1.F[0][o],D=B1.F[1][o],wt[f]&&!wt[D]?(wt[D]=!0,R=!0):wt[D]&&!wt[f]&&(wt[f]=!0,R=!0);for(i=0;i<B1.r;i++)vP(B1,i,!wt[i]);if(LQ(B1),!t.b)for(Q=0;Q<B1.r;Q++)B1.A[Q]=0;if(jf(new p9(B1),null,!1),B1.U|=8,F1=2|(t.r?8:0),U9(new a8(F1),B1),Jn)for(ut(B1,15),r=new Zt(Jn);r.a<r.c.a.length;)P=_t(r).a,(B1.v[P]&wn)!=0&&(ke(B1,P,1,!1),Ne(B1,P,1,h++));return B1}function k1t(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l;switch(t.hb=e.g,t.kb=e.i,t.w){case 18:if(y=t.hb,l=t.kb,t.e=en(t.V,t.hb,t.kb),t.e!=-1&&(t.hb=mt(t.V,t.e),t.kb=Rt(t.V,t.e)),Nb(t.V,y,l),t.I)for(f=new Zt(t.I);f.a<f.c.a.length;)i=_t(f),i.Qb(y,l);J1(t),t.X=7;break;case 2:if(t.X=0,t.e=en(t.V,t.hb,t.kb),t.e!=-1&&(t.f=-1,t.hb=mt(t.V,t.e),t.kb=Rt(t.V,t.e),r0(t.V,t.e)?t.X=t.Z?9:4:t.X=3),t.X==0&&(P=kf(t.V,t.hb,t.kb),P!=-1&&(t.e=q(t.V,0,P),t.f=q(t.V,1,P),bP(t.V,P)?t.X=t.Z?9:4:t.X=3)),t.X==0&&t.v&&(t.v.g?t.X=t.Z?9:4:t.X=t.Z&&!Jt(t.v,63)?11:10),t.X!=0){for(t.gb=c(Ut,Tt,6,t.V.r,15,1),t.jb=c(Ut,Tt,6,t.V.r,15,1),D=0;D<t.V.r;D++)t.gb[D]=mt(t.V,D),t.jb[D]=Rt(t.V,D);if(t.I)for(f=new Zt(t.I);f.a<f.c.a.length;)i=_t(f),oY(i,t.hb,t.kb);J1(t);break}if(e.a?t.X=6:(t.R=new QF,Ie(t.R,t.hb,t.kb),Ie(t.R,t.hb,t.kb),t.X=5),t.P=c(Pt,it,6,t.V.r,16,1),t.I&&(t.Q=c(Pt,it,6,t.I.a.length,16,1)),t.O=e.f,t.O){for(Q=0;Q<t.V.r;Q++)t.P[Q]=r0(t.V,Q);if(t.I)for(D=0;D<t.I.a.length;D++)t.Q[D]=x(t.I,D).g}else{for(L=!1,Q=0;Q<t.V.r;Q++)r0(t.V,Q)&&(vP(t.V,Q,!1),L=!0);if(t.I)for(D=0;D<t.I.a.length;D++)x(t.I,D).g&&(x(t.I,D).g=!1,L=!0);L&&(t.eb=1,P1(t.k))}break;case 4:J1(t),kX(t,t.hb,t.kb);break;case 3:s=en(t.V,t.hb,t.kb),s!=-1&&(J1(t),iL(t.V,s,!E9(t.V,s)),t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0)));break;case 101:case 103:case 102:t.u!=-1&&eO(t,t.u)&&(J1(t),ott(t,t.u,t.w==101?0:t.w==103?1:2),t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0)));break;case 5:case 6:case 23:if(t.e=en(t.V,t.hb,t.kb),t.e==-1){if(n=kf(t.V,t.hb,t.kb),n!=-1){J1(t),r=511,t.w==6?r=257:t.w==23&&(r=129),h8(t.V,n,r)&&(t.eb=w.Math.max(t.eb,1),P1(t.k),N1(t,new x1(t,1,!0)));break}}else{if(Ue(t.V,t.e)==8)return;t.hb=mt(t.V,t.e),t.kb=Rt(t.V,t.e)}t.X=1,s6(t,t.e),P1(t.k);break;case 22:if(t.e=en(t.V,t.hb,t.kb),t.e!=-1){if(Ue(t.V,t.e)==8)return;t.hb=mt(t.V,t.e),t.kb=Rt(t.V,t.e)}t.X=2,t.q=0;break;case 7:J1(t),wf(t.V,t.hb,t.kb,3,!1,Qn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));break;case 24:J1(t),wf(t.V,t.hb,t.kb,4,!1,Qn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));break;case 8:J1(t),wf(t.V,t.hb,t.kb,5,!1,Qn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));break;case 25:J1(t),wf(t.V,t.hb,t.kb,6,!1,Qn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));break;case 9:J1(t),wf(t.V,t.hb,t.kb,7,!1,Qn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));break;case 26:J1(t),wf(t.V,t.hb,t.kb,6,!0,Qn(t.V,24*t.ab))&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));break;case 10:J1(t),Pv(t.V,t.hb,t.kb,!0)&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));break;case 27:J1(t),Pv(t.V,t.hb,t.kb,!1)&&(t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0)));break;case 16:y8(t,1);break;case 11:y8(t,6);break;case 12:y8(t,7);break;case 13:y8(t,8);break;case 28:y8(t,14);break;case 29:y8(t,15);break;case 30:y8(t,16);break;case 14:y8(t,9);break;case 31:y8(t,17);break;case 15:y8(t,35);break;case 32:y8(t,53);break;case 33:e.d||e.a?(A=en(t.V,t.hb,t.kb),A!=-1&&Vk(t,A,new nU)):(J1(t),U5(t.V,t.hb,t.kb,t.F,t.B,t.D,t.C,t.A)&&(t.t=-1,t.eb=w.Math.max(t.eb,3),P1(t.k),N1(t,new x1(t,1,!0))));break;case 19:t.e=en(t.V,t.hb,t.kb),t.e!=-1&&t.e<t.V.g&&(!t.V.L||!se(t.V,t.e))&&(t.hb=mt(t.V,t.e),t.kb=Rt(t.V,t.e),t.X=8);break;case 21:o=null,t.v?Jt(t.v,95)&&(o=t.v):(o=new BU,ld(o,t.hb,t.kb),Ft(t.I,o)),iG(t,o,new n7(t))}}function yy(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct;for(this.c=t.length,this.d=t[0].length,H=w.Math.min(this.c,this.d),this.e=c(Ut,Tt,6,w.Math.min(this.c+1,this.d),15,1),this.a=j1(Ut,[T0,Tt],[15,6],15,[this.c,H],2),this.b=j1(Ut,[T0,Tt],[15,6],15,[this.d,this.d],2),P=c(Ut,Tt,6,this.d,15,1),ct=c(Ut,Tt,6,this.c,15,1),I=w.Math.min(this.c-1,this.d),a=w.Math.max(0,w.Math.min(this.d-2,this.c)),j=0;j<w.Math.max(I,a);j++){if(j<I){for(this.e[j]=0,L=j;L<this.c;L++)this.e[j]=Q2(this.e[j],t[L][j]);if(this.e[j]!=0){for(t[j][j]<0&&(this.e[j]=-this.e[j]),o=j;o<this.c;o++)t[o][j]/=this.e[j];t[j][j]+=1}this.e[j]=-this.e[j]}for(T=j+1;T<this.d;T++){if(j<I&this.e[j]!=0){for(rt=0,L=j;L<this.c;L++)rt+=t[L][j]*t[L][T];for(rt=-rt/t[j][j],o=j;o<this.c;o++)t[o][T]+=rt*t[o][j]}P[T]=t[j][T]}if(!0&j<I)for(o=j;o<this.c;o++)this.a[o][j]=t[o][j];if(j<a){for(P[j]=0,L=j+1;L<this.d;L++)P[j]=Q2(P[j],P[L]);if(P[j]!=0){for(P[j+1]<0&&(P[j]=-P[j]),s=j+1;s<this.d;s++)P[s]/=P[j];P[j+1]+=1}if(P[j]=-P[j],j+1<this.c&P[j]!=0){for(s=j+1;s<this.c;s++)ct[s]=0;for(g=j+1;g<this.d;g++)for(y=j+1;y<this.c;y++)ct[y]+=P[g]*t[y][g];for(v=j+1;v<this.d;v++)for(rt=-P[v]/P[j+1],y=j+1;y<this.c;y++)t[y][v]+=rt*ct[y]}for(o=j+1;o<this.d;o++)this.b[o][j]=P[o]}}for(K=w.Math.min(this.d,this.c+1),I<this.d&&(this.e[I]=t[I][I]),this.c<K&&(this.e[K-1]=0),a+1<K&&(P[a]=t[a][K-1]),P[K-1]=0,d=I;d<H;d++){for(o=0;o<this.c;o++)this.a[o][d]=0;this.a[d][d]=1}for(R=I-1;R>=0;R--)if(this.e[R]!=0){for(h=R+1;h<H;h++){for(rt=0,L=R;L<this.c;L++)rt+=this.a[L][R]*this.a[L][h];for(rt=-rt/this.a[R][R],s=R;s<this.c;s++)this.a[s][h]+=rt*this.a[s][R]}for(y=R;y<this.c;y++)this.a[y][R]=-this.a[y][R];for(this.a[R][R]=1+this.a[R][R],o=0;o<R-1;o++)this.a[o][R]=0}else{for(o=0;o<this.c;o++)this.a[o][R]=0;this.a[R][R]=1}for(C=this.d-1;C>=0;C--){if(C<a&P[C]!=0)for(h=C+1;h<H;h++){for(rt=0,L=C+1;L<this.d;L++)rt+=this.b[L][C]*this.b[L][h];for(rt=-rt/this.b[C+1][C],s=C+1;s<this.d;s++)this.b[s][h]+=rt*this.b[s][C]}for(o=0;o<this.d;o++)this.b[o][C]=0;this.b[C][C]=1}for(tt=K-1,l=0,f=w.Math.pow(2,-52);K>0;){for(b=K-2;b>=-1&&b!=-1;b--)if(w.Math.abs(P[b])<=f*(w.Math.abs(this.e[b])+w.Math.abs(this.e[b+1]))){P[b]=0;break}if(b==K-2)E=4;else{for(S=K-1;S>=b&&S!=b;S--)if(rt=(S!=K?w.Math.abs(P[S]):0)+(S!=b+1?w.Math.abs(P[S-1]):0),w.Math.abs(this.e[S])<=f*rt){this.e[S]=0;break}S==b?E=3:S==K-1?E=1:(E=2,b=S)}switch(++b,E){case 1:for(D=P[K-2],P[K-2]=0,h=K-2;h>=b;h--)for(rt=Q2(this.e[h],D),n=this.e[h]/rt,st=D/rt,this.e[h]=rt,h!=b&&(D=-st*P[h-1],P[h-1]=n*P[h-1]),o=0;o<this.d;o++)rt=n*this.b[o][h]+st*this.b[o][K-1],this.b[o][K-1]=-st*this.b[o][h]+n*this.b[o][K-1],this.b[o][h]=rt;break;case 2:for(D=P[b-1],P[b-1]=0,h=b;h<K;h++)for(rt=Q2(this.e[h],D),n=this.e[h]/rt,st=D/rt,this.e[h]=rt,D=-st*P[h],P[h]=n*P[h],o=0;o<this.c;o++)rt=n*this.a[o][h]+st*this.a[o][b-1],this.a[o][b-1]=-st*this.a[o][h]+n*this.a[o][b-1],this.a[o][h]=rt;break;case 3:{for(X=w.Math.max(w.Math.max(w.Math.max(w.Math.max(w.Math.abs(this.e[K-1]),w.Math.abs(this.e[K-2])),w.Math.abs(P[K-2])),w.Math.abs(this.e[b])),w.Math.abs(P[b])),ht=this.e[K-1]/X,wt=this.e[K-2]/X,i=P[K-2]/X,$=this.e[b]/X,r=P[b]/X,e=((wt+ht)*(wt-ht)+i*i)/2,A=ht*i*(ht*i),W=0,e!=0|A!=0&&(W=w.Math.sqrt(e*e+A),e<0&&(W=-W),W=A/(e+W)),D=($+ht)*($-ht)+W,Q=$*r,h=b;h<K-1;h++){for(rt=Q2(D,Q),n=D/rt,st=Q/rt,h!=b&&(P[h-1]=rt),D=n*this.e[h]+st*P[h],P[h]=n*P[h]-st*this.e[h],Q=st*this.e[h+1],this.e[h+1]=n*this.e[h+1],L=0;L<this.d;L++)rt=n*this.b[L][h]+st*this.b[L][h+1],this.b[L][h+1]=-st*this.b[L][h]+n*this.b[L][h+1],this.b[L][h]=rt;if(rt=Q2(D,Q),n=D/rt,st=Q/rt,this.e[h]=rt,D=n*P[h]+st*this.e[h+1],this.e[h+1]=-st*P[h]+n*this.e[h+1],Q=st*P[h+1],P[h+1]=n*P[h+1],h<this.c-1)for(o=0;o<this.c;o++)rt=n*this.a[o][h]+st*this.a[o][h+1],this.a[o][h+1]=-st*this.a[o][h]+n*this.a[o][h+1],this.a[o][h]=rt}P[K-2]=D,l=l+1}break;case 4:{if(this.e[b]<=0)for(this.e[b]=this.e[b]<0?-this.e[b]:0,o=0;o<=tt;o++)this.b[o][b]=-this.b[o][b];for(;b<tt&&!(this.e[b]>=this.e[b+1]);){if(rt=this.e[b],this.e[b]=this.e[b+1],this.e[b+1]=rt,b<this.d-1)for(o=0;o<this.d;o++)rt=this.b[o][b+1],this.b[o][b+1]=this.b[o][b],this.b[o][b]=rt;if(b<this.c-1)for(o=0;o<this.c;o++)rt=this.a[o][b+1],this.a[o][b+1]=this.a[o][b],this.a[o][b]=rt;++b}l=0,--K}}}}function ly(){ly=v1,W4=m(k(ft,2),DA,13,0,[m(k(ft,1),Dt,2,6,[\"Acyl\",\"gCaHA`AIf`@\"]),m(k(ft,1),Dt,2,6,[\"Alloc\",\"gNph@l@ILzuR@@\"]),m(k(ft,1),Dt,2,6,[\"Allyl\",\"Al\"]),m(k(ft,1),Dt,2,6,[\"Benzyl;Bn\",\"daD@`F@DjUZxHH@@\"]),m(k(ft,1),Dt,2,6,[\"Boc\",\"daxD`@S@AIgijj@@\"]),m(k(ft,1),Dt,2,6,[\"BOM;BzOM\",\"deTH`@H@Re[TYj`@@@\"]),m(k(ft,1),Dt,2,6,[\"Bs\",\"dmtDpAdLS`aPAIe]jf`@e`@@\"]),m(k(ft,1),Dt,2,6,[\"Bt\",\"dew@`@aJ@DiY]paej`@@@\"]),m(k(ft,1),Dt,2,6,[\"Btm\",\"did@P@BJ@Die_ahH@@@\"]),m(k(ft,1),Dt,2,6,[\"Butyl;nButyl\",\"gJPHB@IRuP@\"]),m(k(ft,1),Dt,2,6,[\"Benzoyl;Bz\",\"didH`@p@RYm^Eh@@@@\"]),m(k(ft,1),Dt,2,6,[\"Bzh\",\"dg|@`N@LdbRbtJUB]aAP@@@@\"]),m(k(ft,1),Dt,2,6,[\"Cbz\",\"dmtD`@S@AIgYVUZh@@@@\"]),m(k(ft,1),Dt,2,6,[\"cButyl\",\"gKPHL@IThuT@@\"]),m(k(ft,1),Dt,2,6,[\"cHeptyl\",\"daD@`L@DjWVzjj`@\"]),m(k(ft,1),Dt,2,6,[\"cHexyl\",\"gOpHL@IToWUU@@\"]),m(k(ft,1),Dt,2,6,[\"cOctyl\",\"did@`L@DjWWajjj@@\"]),m(k(ft,1),Dt,2,6,[\"cPentyl\",\"gFpHL@ITimUP@\"]),m(k(ft,1),Dt,2,6,[\"cPropyl\",\"gBPHL@Qxjh@\"]),m(k(ft,1),Dt,2,6,[\"COOH\",\"gC`h@l@ILt@@ !Bb@K~@Hc}\"]),m(k(ft,1),Dt,2,6,[\"DEAE\",\"daz@`@x@RiUjj`@\"]),m(k(ft,1),Dt,2,6,[\"DEIPS\",\"diD@P@\\\\B@DjfVjj`@\"]),m(k(ft,1),Dt,2,6,[\"DMIPS\",\"gNpD@xD@RjZjh@\"]),m(k(ft,1),Dt,2,6,[\"DMPM\",\"dcLD`@kPCIEMDdcttDDT@@\"]),m(k(ft,1),Dt,2,6,[\"DMPS\",\"deT@P@\\\\B@LddTjPsU@@@@\"]),m(k(ft,1),Dt,2,6,[\"DMTr\",\"fak@b@@Mt@ISZ{SMjo{NQKfm@AU@@@E@@@@\"]),m(k(ft,1),Dt,2,6,[\"DNP\",\"dkmB`hdDt~@HeNfS{HihheCAUhBHX@@\"]),m(k(ft,1),Dt,2,6,[\"DNS;Dan\",\"fhi`a@KPP@HH@YIHYheEhYKQgKP@@QP@@@\"]),m(k(ft,1),Dt,2,6,[\"DPIPS\",\"fdyAA@H@\\\\B@FRRIQSQIHzp_Qjh@h@@@@@\"]),m(k(ft,1),Dt,2,6,[\"DPTBS\",\"fleAA@H@\\\\B@FRRIQSRIIWNbEMU@EP@@@@@\"]),m(k(ft,1),Dt,2,6,[\"DTBMS\",\"dmT@P@\\\\B@Djffjjjh@@\"]),m(k(ft,1),Dt,2,6,[\"Ethyl\",\"eMBD@ch@\"]),m(k(ft,1),Dt,2,6,[\"Fmoc\",\"fde@b@@Hp@IL{LrjxeVCzKUT@@@P@@@\"]),m(k(ft,1),Dt,2,6,[\"iAmyl\",\"gGPHJ@YIDZj@@\"]),m(k(ft,1),Dt,2,6,[\"iButyl\",\"gJPHB@ITuP@\"]),m(k(ft,1),Dt,2,6,[\"Im\",\"gFtHAj@IRnKSP@\"]),m(k(ft,1),Dt,2,6,[\"iPropyl\",\"gC`HL@Qz`@\"]),m(k(ft,1),Dt,2,6,[\"MDIPS\",\"diD@P@\\\\B@DjfZjj`@\"]),m(k(ft,1),Dt,2,6,[\"MDPS\",\"foA@A@@NA@CIIEEBdeeVLzj@@@@@@\"]),m(k(ft,1),Dt,2,6,[\"Methyl\",\"eFBH@c@@\"]),m(k(ft,1),Dt,2,6,[\"MEM\",\"gNphAR@IRoUT@@\"]),m(k(ft,1),Dt,2,6,[\"Mes\",\"deT@`J@DjY{[`bB`@@\"]),m(k(ft,1),Dt,2,6,[\"MMTr\",\"ffcAB@@Z@Dim]ifuWYrI\\\\uh@Jh@@@@@@\"]),m(k(ft,1),Dt,2,6,[\"MOM\",\"gCaHA`AJZ`@\"]),m(k(ft,1),Dt,2,6,[\"MPM;PMB\",\"deTH`@d@Rfuunh@J@@\"]),m(k(ft,1),Dt,2,6,[\"Ms\",\"gJPdH`DD@cuh@\"]),m(k(ft,1),Dt,2,6,[\"MTM\",\"gC`D@DX@Rfh@\"]),m(k(ft,1),Dt,2,6,[\"mTolyl\",\"daD@`N@DjWjXHB@@\"]),m(k(ft,1),Dt,2,6,[\"N3\",\"gClHaE`@RnReX@\"]),m(k(ft,1),Dt,2,6,[\"nAmyl;Amyl\",\"gGPHJ@IRmU@@\"]),m(k(ft,1),Dt,2,6,[\"neoAm\",\"gGPHJ@IUMU@@\"]),m(k(ft,1),Dt,2,6,[\"NO2,Nitro\",\"gChhhE`BRnRYh@\"]),m(k(ft,1),Dt,2,6,[\"Np\",\"deVDaHAI@HeNR[e_aZ@B@@\"]),m(k(ft,1),Dt,2,6,[\"nPropyl;Propyl\",\"gC`HL@IST@@\"]),m(k(ft,1),Dt,2,6,[\"oTolyl\",\"daD@`J@DjYvxH`@@\"]),m(k(ft,1),Dt,2,6,[\"Phenyl\",\"gOpHL@IToVD@@@\"]),m(k(ft,1),Dt,2,6,[\"Pht\",\"dcLL`@RU@Dfyed]ZBA`@@\"]),m(k(ft,1),Dt,2,6,[\"Piv;Pv\",\"gNqHA`AIffj`@\"]),m(k(ft,1),Dt,2,6,[\"PMBM\",\"dcLD`@T`AJUm]FZh@J@@\"]),m(k(ft,1),Dt,2,6,[\"PNB\",\"dcNLaHAEt@bTyInUvxV`@f@@\"]),m(k(ft,1),Dt,2,6,[\"Poc\",\"didD`@S@AIgexVjj`@\"]),m(k(ft,1),Dt,2,6,[\"PPi\",\"diDFsHSB[`|J|A@Lxn{lddqdZih@@\"]),m(k(ft,1),Dt,2,6,[\"pTolyl\",\"daD@`N@DjWzXHB@@\"]),m(k(ft,1),Dt,2,6,[\"sAmyl\",\"gGPHL@YIDZj@@\"]),m(k(ft,1),Dt,2,6,[\"sButyl\",\"gJPHL@ITuP@\"]),m(k(ft,1),Dt,2,6,[\"SEM\",\"diDHPFApD@rRQUJjj`@\"]),m(k(ft,1),Dt,2,6,[\"SES\",\"dedDpHP@``AgCIICeHmUT@@\"]),m(k(ft,1),Dt,2,6,[\"SO3H\",\"gJQdHl@``D^m@@\"]),m(k(ft,1),Dt,2,6,[\"tAmyl\",\"gGPHB@IUMU@@\"]),m(k(ft,1),Dt,2,6,[\"TBDMS;TBS\",\"dax@P@\\\\B@Djfjjh@@\"]),m(k(ft,1),Dt,2,6,[\"TBDPS\",\"fdy@A@@NA@CIIEEEIde]XOhuPAT@@@@@\"]),m(k(ft,1),Dt,2,6,[\"TBMPS\",\"dg\\\\HPHApH@rRQJJPjg]UAT@@@\"]),m(k(ft,1),Dt,2,6,[\"tButyl,tBu\",\"gJPHB@Q}T@@\"]),m(k(ft,1),Dt,2,6,[\"TDS\",\"ded@P@\\\\B@LddTeeUUP@@\"]),m(k(ft,1),Dt,2,6,[\"Tf\",\"daxDhHP@``BiAiCiCIICHmU@@\"]),m(k(ft,1),Dt,2,6,[\"TFA\",\"gNqBJIARFdF@YEHYUL@@\"]),m(k(ft,1),Dt,2,6,[\"Thexyl\",\"gNpHB@IUMUT@@\"]),m(k(ft,1),Dt,2,6,[\"THF\",\"gFqH@PAJYujj@@\"]),m(k(ft,1),Dt,2,6,[\"THP\",\"gOqH@PAJYZzjh@\"]),m(k(ft,1),Dt,2,6,[\"TIPS\",\"dmT@P@\\\\B@DjfYjjjh@@\"]),m(k(ft,1),Dt,2,6,[\"TMS\",\"gJPD@xD@czh@\"]),m(k(ft,1),Dt,2,6,[\"Tosyl;Ts\",\"dmtDPHP@``CIICLeaeZ@B@@\"]),m(k(ft,1),Dt,2,6,[\"Troc\",\"diDDHJxHaHcH`PCHiBeJjf@@\"]),m(k(ft,1),Dt,2,6,[\"Trt\",\"fbm@B@A@FRQIRKQPiIZdoIcdHJ`@@@@@@\"]),m(k(ft,1),Dt,2,6,[\"Xyl\",\"did@`J@DjYynBHH@@\"])])}function b6(t,e){var A,n,P,r;A=e[1],n=e[2],P=t.k[A]-1,r=t.k[n]-1,P>3||r>3?(this.b=c(Yt,t1,6,4,15,1),this.b[0]=45,this.b[1]=135,this.b[2]=225,this.b[2]=315,this.c=j1(Yt,[re,t1],[17,6],15,[4,2],2),this.c[0][0]=30,this.c[0][1]=60,this.c[1][0]=120,this.c[1][1]=150,this.c[2][0]=210,this.c[2][1]=240,this.c[2][0]=300,this.c[2][1]=330,this.a=c(Yt,t1,6,4,15,1),this.a[0]=25,this.a[1]=25,this.a[2]=25,this.a[3]=25):(t.p[A]==0||t.D[A]>9)&&(t.p[n]==0||t.D[n]>9)?P==3&&r==3||P==3&&r==2||P==3&&r==1||P==2&&r==3||P==1&&r==3||P==2&&r==2&&(e[0]!=-1||e[3]!=-1)?(this.b=c(Yt,t1,6,3,15,1),this.b[0]=60,this.b[1]=180,this.b[2]=300,this.c=j1(Yt,[re,t1],[17,6],15,[3,2],2),this.c[0][0]=45,this.c[0][1]=75,this.c[1][0]=165,this.c[1][1]=195,this.c[2][0]=285,this.c[2][1]=315,this.a=c(Yt,t1,6,3,15,1),this.a[0]=33,this.a[1]=33,this.a[2]=33):P==1&&r==2&&e[3]==-1||P==2&&r==1&&e[0]==-1?(this.b=c(Yt,t1,6,3,15,1),this.b[0]=60,this.b[1]=180,this.b[2]=300,this.c=j1(Yt,[re,t1],[17,6],15,[3,2],2),this.c[0][0]=45,this.c[0][1]=75,this.c[1][0]=165,this.c[1][1]=195,this.c[2][0]=285,this.c[2][1]=315,this.a=c(Yt,t1,6,3,15,1),this.a[0]=40,this.a[1]=20,this.a[2]=40):(P==1&&r==1||P==1&&r==2&&e[3]!=-1||P==2&&r==1&&e[0]!=-1||P==2&&r==2&&e[0]==-1&&e[3]==-1)&&(this.b=c(Yt,t1,6,3,15,1),this.b[0]=60,this.b[1]=180,this.b[2]=300,this.c=j1(Yt,[re,t1],[17,6],15,[3,2],2),this.c[0][0]=45,this.c[0][1]=75,this.c[1][0]=165,this.c[1][1]=195,this.c[2][0]=285,this.c[2][1]=315,this.a=c(Yt,t1,6,3,15,1),this.a[0]=25,this.a[1]=50,this.a[2]=25):(t.p[A]==0||t.D[A]>9)&&t.p[n]==1||(t.p[n]==0||t.D[n]>9)&&t.p[A]==1?P==3||r==3?(this.b=c(Yt,t1,6,6,15,1),this.b[0]=0,this.b[1]=60,this.b[2]=120,this.b[3]=180,this.b[4]=240,this.b[5]=300,this.c=j1(Yt,[re,t1],[17,6],15,[6,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=45,this.c[1][1]=75,this.c[2][0]=105,this.c[2][1]=135,this.c[3][0]=165,this.c[3][1]=195,this.c[4][0]=225,this.c[4][1]=255,this.c[5][0]=285,this.c[5][1]=315,this.a=c(Yt,t1,6,6,15,1),this.a[0]=16,this.a[1]=16,this.a[2]=16,this.a[3]=16,this.a[4]=16,this.a[5]=16):P==1&&r==1?(this.b=c(Yt,t1,6,2,15,1),this.b[0]=120,this.b[1]=240,this.c=j1(Yt,[re,t1],[17,6],15,[2,2],2),this.c[0][0]=105,this.c[0][1]=135,this.c[1][0]=225,this.c[1][1]=255,this.a=c(Yt,t1,6,2,15,1),this.a[0]=50,this.a[1]=50):t.p[A]==1&&P==2&&r==1||t.p[n]==1&&r==2&&P==1?(this.b=c(Yt,t1,6,2,15,1),this.b[0]=90,this.b[1]=270,this.c=j1(Yt,[re,t1],[17,6],15,[2,2],2),this.c[0][0]=75,this.c[0][1]=105,this.c[1][0]=255,this.c[1][1]=285,this.a=c(Yt,t1,6,2,15,1),this.a[0]=50,this.a[1]=50):t.p[A]==1&&P==1&&r==2&&e[3]==-1||t.p[n]==1&&r==1&&P==2&&e[0]==-1?(this.b=c(Yt,t1,6,3,15,1),this.b[0]=0,this.b[1]=120,this.b[2]=240,this.c=j1(Yt,[re,t1],[17,6],15,[3,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=105,this.c[1][1]=135,this.c[2][0]=225,this.c[2][1]=255,this.a=c(Yt,t1,6,3,15,1),this.a[0]=60,this.a[1]=20,this.a[2]=20):t.p[A]==1&&P==1&&r==2&&e[3]!=-1||t.p[n]==1&&r==1&&P==2&&e[0]!=-1?(this.b=c(Yt,t1,6,3,15,1),this.b[0]=0,this.b[1]=120,this.b[2]=240,this.c=j1(Yt,[re,t1],[17,6],15,[3,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=105,this.c[1][1]=135,this.c[2][0]=225,this.c[2][1]=255,this.a=c(Yt,t1,6,3,15,1),this.a[0]=20,this.a[1]=40,this.a[2]=40):P==2&&r==2&&(e[0]==-1||e[3]==-1?(this.b=c(Yt,t1,6,2,15,1),this.b[0]=0,this.b[1]=180,this.c=j1(Yt,[re,t1],[17,6],15,[2,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=165,this.c[1][1]=195,this.a=c(Yt,t1,6,2,15,1),this.a[0]=50,this.a[1]=50):(this.b=c(Yt,t1,6,2,15,1),this.b[0]=90,this.b[1]=270,this.c=j1(Yt,[re,t1],[17,6],15,[2,2],2),this.c[0][0]=75,this.c[0][1]=105,this.c[1][0]=255,this.c[1][1]=285,this.a=c(Yt,t1,6,2,15,1),this.a[0]=50,this.a[1]=50)):t.p[A]==1&&t.p[n]==1?P==1&&r==1?(this.b=c(Yt,t1,6,2,15,1),this.b[0]=0,this.b[1]=180,this.c=j1(Yt,[re,t1],[17,6],15,[2,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=165,this.c[1][1]=195,this.a=c(Yt,t1,6,2,15,1),this.a[0]=10,this.a[1]=90):(this.b=c(Yt,t1,6,6,15,1),this.b[0]=0,this.b[1]=50,this.b[2]=130,this.b[3]=180,this.b[4]=230,this.b[5]=310,this.c=j1(Yt,[re,t1],[17,6],15,[6,2],2),this.c[0][0]=-15,this.c[0][1]=15,this.c[1][0]=35,this.c[1][1]=65,this.c[2][0]=115,this.c[2][1]=145,this.c[3][0]=165,this.c[3][1]=195,this.c[4][0]=215,this.c[4][1]=245,this.c[5][0]=295,this.c[5][1]=325,this.a=c(Yt,t1,6,6,15,1),this.a[0]=40,this.a[1]=5,this.a[2]=5,this.a[3]=40,this.a[4]=5,this.a[5]=5):(this.b=c(Yt,t1,6,1,15,1),this.b[0]=180,this.c=j1(Yt,[re,t1],[17,6],15,[1,2],2),this.c[0][0]=165,this.c[0][1]=195,this.a=c(Yt,t1,6,1,15,1),this.a[0]=100)}function iM(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct;for(I=(z1(),nn),G(t.b,\"M  V30 BEGIN CTAB\"+I),G(t.b,TM+e.r+\" \"+e.s+\" 0 0 0\"+I),G(t.b,\"M  V30 BEGIN ATOM\"+I),D=0;D<e.r;D++){if(G(t.b,so+(D+1)),(e.w==null?null:e.w[D])!=null){for(s=e.w==null?null:e.w[D],a=gt(V(e.C[D],1),0),G(t.b,a?\" NOT[\":\" [\"),R=0;R<s.length;R++)switch(R>0&&G(t.b,\",\"),C=(O1(),J0)[s[R]],C.length){case 2:case 3:case 1:G(t.b,C);break;default:G(t.b,\"?\")}G(t.b,\"]\")}else gt(V(e.C[D],1),0)?G(t.b,\" A\"):e.D[D]>=129&&e.D[D]<=144||e.D[D]==154?G(t.b,\" R#\"):G(t.b,\" \"+(O1(),J0)[e.D[D]]);if(A?(G(t.b,\" \"+Bt(fP*t.c*e.K[D].a)/fP),G(t.b,\" \"+Bt(fP*t.c*-e.K[D].b)/fP),G(t.b,\" \"+Bt(fP*t.c*-e.K[D].c)/fP)):G(t.b,\" 0 0 0\"),G(t.b,\" \"+w.Math.abs(e.A[D])),e.t[D]!=0&&G(t.b,\" CHG=\"+e.t[D]),(e.v[D]&48)!=0)switch(G(t.b,\" RAD=\"),e.v[D]&48){case 16:G(t.b,\"1\");break;case 32:G(t.b,\"2\");break;case 48:G(t.b,\"3\")}((e.v[D]&3)==1||(e.v[D]&3)==2)&&(G(t.b,\" CFG=\"),(e.v[D]&3)==1?G(t.b,\"1\"):G(t.b,\"2\")),e.B[D]!=0&&G(t.b,\" MASS=\"+e.B[D]),ct=((e.v[D]&m8)>>>27)-1,ct!=-1&&G(t.b,\" VAL=\"+(ct==0?\"-1\":U1(ct))),y=e.D[D],(y>=129&&y<=144||y==154)&&G(t.b,\" RGROUPS=(1 \"+(y==154?0:y>=142?y-141:y-125)+\")\"),j=V(uP,e.C[D]),O(j,384)==0?G(t.b,\" HCOUNT=2\"):O(j,128)==0?G(t.b,\" HCOUNT=1\"):O(j,1792)==0?G(t.b,\" HCOUNT=-1\"):O(j,1664)==0&&G(t.b,\" HCOUNT=1\"),ht=V(e.C[D],6144),O(ht,0)!=0&&(gt(V(ht,E0),0)?G(t.b,\" SUBST=\"+(e.e[D]+1)):G(t.b,\" SUBST=-1\")),W=V(e.C[D],120),O(W,0)!=0&&(O(W,112)==0?G(t.b,\" RBCNT=-1\"):O(W,8)==0||O(W,104)==0?G(t.b,\" RBCNT=2\"):O(W,88)==0?G(t.b,\" RBCNT=3\"):O(W,56)==0&&G(t.b,\" RBCNT=4\")),G(t.b,I)}for(G(t.b,\"M  V30 END ATOM\"+I),G(t.b,\"M  V30 BEGIN BOND\"+I),h=0;h<e.s;h++){switch(G(t.b,so+(h+1)),e.I[h]){case 1:tt=1,st=0;break;case 2:tt=2,st=0;break;case 4:tt=3,st=0;break;case 129:tt=1,st=3;break;case 257:tt=1,st=1;break;case 386:tt=2,st=2;break;case 8:tt=4,st=0;break;case 16:tt=9,st=0;break;default:tt=1,st=0}g=e.H[h]&31,g!=0&&(g==8?tt=4:g==3?tt=5:g==9?tt=6:g==10?tt=7:tt=8),G(t.b,\" \"+tt+\" \"+(e.F[0][h]+1)+\" \"+(e.F[1][h]+1)),st!=0&&G(t.b,\" CFG=\"+st),$=e.H[h]&384,wt=$==0?0:$==256?1:2,wt!=0&&G(t.b,\" TOPO=\"+wt),G(t.b,I)}for(G(t.b,\"M  V30 END BOND\"+I),d=!1,Q=0;Q<e.r;Q++)if((e.u==null||e.u[Q]==null?null:on((E=e.u[Q],c0(),E)))!=null){d=!0;break}if(d){for(G(t.b,\"M  V30 BEGIN SGROUP\"+I),v=0,o=0;o<e.r;o++)(e.u==null||e.u[o]==null?null:on((S=e.u[o],c0(),S)))!=null&&(++v,G(t.b,so+v+\" DAT \"+v+\" ATOMS=(1 \"+(o+1)+') FIELDNAME=\"'+Iy+'\" -'+I),G(t.b,'M  V30 FIELDDISP=\"'),FF(t,A?t.c*e.K[o].a:0),FF(t,A?t.c*e.K[o].b:0),G(t.b,'    DA    ALL  1       5\" FIELDDATA=\"'+(e.u==null||e.u[o]==null?null:on((E=e.u[o],c0(),E)))+'\"'+I));G(t.b,\"M  V30 END SGROUP\"+I)}for(X=!1,n=0,H=c(B,F,6,32,15,1),r=c(B,F,6,32,15,1),L=0;L<e.g;L++)((e.v[L]&3)==1||(e.v[L]&3)==2)&&(X=!0,rt=(e.v[L]&b1)>>18,rt==1?++r[(e.v[L]&b1)>>18!=1&&(e.v[L]&b1)>>18!=2?-1:(e.v[L]&VA)>>20]:rt==2?++H[(e.v[L]&b1)>>18!=1&&(e.v[L]&b1)>>18!=2?-1:(e.v[L]&VA)>>20]:++n);for(P=0,K=c(B,F,6,32,15,1),i=c(B,F,6,32,15,1),T=0;T<e.i;T++)dt(e,T)!=2&&((e.G[T]&3)==1||(e.G[T]&3)==2)&&(X=!0,rt=(e.G[T]&768)>>8,rt==1?++i[(e.G[T]&768)>>8!=1&&(e.G[T]&768)>>8!=2?-1:(e.G[T]&cn)>>10]:rt==2?++K[(e.G[T]&768)>>8!=1&&(e.G[T]&768)>>8!=2?-1:(e.G[T]&cn)>>10]:++P);if(X){if(G(t.b,\"M  V30 BEGIN COLLECTION\"+I),n!=0){for(G(t.b,\"M  V30 MDLV30/STEABS ATOMS=(\"+n),f=0;f<e.g;f++)((e.v[f]&3)==1||(e.v[f]&3)==2)&&(e.v[f]&b1)>>18==0&&G(t.b,\" \"+(f+1));G(t.b,\")\"+I)}if(P!=0){for(G(t.b,\"M  V30 MDLV30/STEABS BONDS=(\"+P),l=0;l<e.i;l++)dt(e,l)!=2&&((e.G[l]&3)==1||(e.G[l]&3)==2)&&(e.G[l]&768)>>8==0&&G(t.b,\" \"+(l+1));G(t.b,\")\"+I)}for(b=0;b<32;b++){if(H[b]!=0){for(G(t.b,cM+(b+1)+\" ATOMS=(\"+H[b]),f=0;f<e.g;f++)((e.v[f]&3)==1||(e.v[f]&3)==2)&&(e.v[f]&b1)>>18==2&&((e.v[f]&b1)>>18!=1&&(e.v[f]&b1)>>18!=2?-1:(e.v[f]&VA)>>20)==b&&G(t.b,\" \"+(f+1));G(t.b,\")\"+I)}if(r[b]!=0){for(G(t.b,wM+(b+1)+\" ATOMS=(\"+r[b]),f=0;f<e.g;f++)((e.v[f]&3)==1||(e.v[f]&3)==2)&&(e.v[f]&b1)>>18==1&&((e.v[f]&b1)>>18!=1&&(e.v[f]&b1)>>18!=2?-1:(e.v[f]&VA)>>20)==b&&G(t.b,\" \"+(f+1));G(t.b,\")\"+I)}if(K[b]!=0){for(G(t.b,cM+(b+1)+\" BONDS=(\"+K[b]),l=0;l<e.i;l++)dt(e,l)!=2&&((e.G[l]&3)==1||(e.G[l]&3)==2)&&(e.G[l]&768)>>8==2&&((e.G[l]&768)>>8!=1&&(e.G[l]&768)>>8!=2?-1:(e.G[l]&cn)>>10)==b&&G(t.b,\" \"+(l+1));G(t.b,\")\"+I)}if(i[b]!=0){for(G(t.b,wM+(b+1)+\" BONDS=(\"+i[b]),l=0;l<e.i;l++)dt(e,l)!=2&&((e.G[l]&3)==1||(e.G[l]&3)==2)&&(e.G[l]&768)>>8==1&&((e.G[l]&768)>>8!=1&&(e.G[l]&768)>>8!=2?-1:(e.G[l]&cn)>>10)==b&&G(t.b,\" \"+(l+1));G(t.b,\")\"+I)}}G(t.b,\"M  V30 END COLLECTION\"+I)}G(t.b,t4+I)}function j6(t,e,A,n,P,r){var i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R;if(e[A-1]==36){if(t.r=!0,t.q=new n1,A+=VR(t,e,A-1,t.q)-1,e[A++]!=93){if(!r)throw et(new H1(\"SmilesParser: A positive recursive SMARTS followed by another one or by atom query features is not supported. Position:\"+(A-1)));(t.k&128)==0&&(A=$Y(e,A))}return A}if(e[A-1]==42)t.d=6,t.c=z(t.c,1);else if(e[A-1]==63)t.d=0;else if(Q=e[A-1]==33,Q&&(t.r=!0,t.c=z(t.c,1),++A),e[A-1]==82&&P&&(Rn(e[A]&d1)||t.j&&e[A]==123))t.d=6,t.c=z(t.c,1),--A,Q&&--A;else{if(o=new U7,!mp(t,e,A-1,n,o))throw et(new H1(\"SmilesParser: Unexpected character in atom definition:'\"+String.fromCharCode(e[A-1]&d1)+FM+(A-1)));if(t.d=o.a,A+=o.b-1,(t.k&3)!=2&&(t.g=9),P&&(e[A]==44||Q)){for(y=o.d,s=o.c,d=A-o.b;d<n;){if(!mp(t,e,d,n,o)){if(!Q)throw et(new H1(\"SmilesParser: Unexpected character in atom list:'\"+String.fromCharCode(e[d]&d1)+kM+d));break}if(o.a==1){if(!Q)throw et(new H1(\"SmilesParser: Hydrogen is not supported in positive atom lists:'\"+oO((SD(d<=n,d+\" > \"+n),R=e.length,Ek(d,d,R),pP(e,c(_,At,6,n-d,15,1),d,n)))+kM+d))}else fG(t,o.a),y=y|o.d,s=s|o.c;if(d+=o.b,Q&&e[d]!=59&&e[d]!=38||!Q&&e[d]!=44||Q&&e[d+1]!=33)break;++d,e[d]==33&&++d}t.b&&t.b.d.a.length>1&&(t.g=-1,s?y||(t.c=z(t.c,4)):t.c=z(t.c,2)),A=d}}for(h=new aw(e),g=c(B,F,6,1,15,1),v=!0;v;){if(e[A]==64){if(++A,e[A]==83&&e[A+1]==80||e[A]==84&&e[A+1]==66||e[A]==79&&e[A+1]==72){for(A+=2;Rn(e[A]&d1);)++A;continue}e[A]==64?(t.i=!0,++A):(e[A]==84&&e[A+1]==72||e[A]==65&&e[A+1]==76)&&(A+=2,t.i=e[A]==50,++A),t.p=!0;continue}if(e[A]==58){for(++A;Rn(e[A]&d1);)t.o=10*t.o+e[A]-48,++A;continue}if(e[A]==91)throw et(new H1(\"SmilesParser: nested square brackets found. Position:\"+A));if(e[A]==93){++A,v=!1;continue}if(t.e=gb(e,A,g),g[0]!=0){A+=g[0],t.e==0&&(t.c=z(t.c,ro));continue}if(D=e[A]==33,D&&++A,e[A]==72){++A,A+=bf(h,A,1),i=0,h.c<=0&&h.b>=0&&(i=z(i,128)),h.c<=1&&h.b>=1&&(i=z(i,256)),h.c<=2&&h.b>=2&&(i=z(i,512)),h.c<=3&&h.b>=3&&(i=z(i,ue)),D?(t.c=z(t.c,i),t.g=-1):h.b==h.c?t.g=h.c:(t.c=z(t.c,V(uP,Wn(i))),t.g=-1);continue}if(e[A]==68||e[A]==100){++A,A+=bf(h,A,1),i=0,h.c<=0&&h.b>=0&&(i=z(i,O0)),h.c<=1&&h.b>=1&&(i=z(i,v8)),h.c<=2&&h.b>=2&&(i=z(i,B8)),h.c<=3&&h.b>=3&&(i=z(i,F8)),h.c<=4&&h.b>=4&&(i=z(i,KA)),O(i,0)!=0&&(D?t.c=z(t.c,i):gt(V(t.c,hi),0)?t.c=V(t.c,Wn(i)):(i=g0(i,hi),t.c=z(t.c,i)));continue}if(e[A]==122&&t.j){++A,A+=bf(h,A,4),i=0,h.c<=0&&h.b>=0&&(i=z(i,p2)),h.c<=1&&h.b>=1&&(i=z(i,mM)),h.c<=2&&h.b>=2&&(i=z(i,bM)),h.c<=3&&h.b>=3&&(i=z(i,jM)),h.c<=4&&h.b>=4&&(i=z(i,Do)),O(i,0)!=0&&(D?t.c=z(t.c,i):gt(V(t.c,xf),0)?t.c=V(t.c,Wn(i)):(i=g0(i,xf),t.c=z(t.c,i)));continue}if(e[A]==88){if(++A,A+=bf(h,A,1),j=(O1(),wr)[t.d],j==null)continue;b=j[0],L=gb(e,A,g),g[0]!=0&&(Pi(t.d)?b+=L:t.d==6?b-=w.Math.abs(L):b-=L),i=0,b-h.c<=0&&b-h.b>=0&&(i=z(i,On)),b-h.c<=1&&b-h.b>=1&&(i=z(i,g8)),b-h.c<=2&&b-h.b>=2&&(i=z(i,Q0)),O(i,0)!=0&&(D?t.c=z(t.c,i):gt(V(t.c,li),0)?t.c=V(t.c,Wn(i)):(i=g0(i,li),t.c=z(t.c,i)));continue}if(e[A]==65||e[A]==97){t.c=z(t.c,D^e[A]==65?4:2),++A;continue}if(e[A]==82){++A,A+=bf(h,A,3),i=0,h.c<=0&&h.b>=0&&(i=z(i,8)),h.c<=1&&h.b>=1&&(i=z(i,16)),h.c<=2&&h.b>=2&&(i=z(i,32)),h.c<=3&&h.b>=3&&(i=z(i,64)),h.b>3&&Zu(t.n,(D?\"!R\":\"R\")+h.b),O(i,0)!=0&&(D?t.c=z(t.c,i):gt(V(t.c,120),0)?t.c=V(t.c,Wn(i)):(i=g0(i,120),t.c=z(t.c,i)));continue}if(e[A]==114){if(++A,A+=bf(h,A,1),h.a){D?t.c=z(t.c,384):t.c=z(t.c,8);continue}T=h.c,h.b>h.c&&Zu(t.n,(D?\"!r\":\"r\")+(\"{\"+h.c+\"-\"+h.b+\"}\")),!D&&T>=3&&T<=7?t.c=z(t.c,T<<22):h.b>h.c||Zu(t.n,(D?\"!r\":\"r\")+T);continue}if(e[A]==118){++A,A+=bf(h,A,1),b=h.c,h.b>h.c&&Zu(t.n,(D?\"!v\":\"v\")+(\"{\"+h.c+\"-\"+h.b+\"}\")),!D&&b<=14?t.a=b:h.b>h.c||Zu(t.n,(D?\"!v\":\"v\")+b);continue}if(e[A]==94){if(++A,f=e[A++]-48,f<1||f>3)throw et(new H1(\"SmilesParser: Unsupported hybridization. Position:\"+A));l=f==1?Q0:f==2?g8:On,D||(l=V(li,Wn(l))),t.c=z(t.c,l);continue}if(e[A]==36){if(!D)throw et(new H1(\"SmilesParser: non-negated recursive SMARTS relating to preceding atom are not supported yet. Position:\"+A));!t.f&&(t.f=new n1),t.r=!0,A+=VR(t,e,A,t.f);continue}if(P&&(e[A]==59||e[A]==38)){t.r=!0,++A;continue}if(P&&e[A]==44&&sW(e,A,g)){t.r=!0,A+=g[0]+1;continue}if(P&&e[A]==44&&(t.k&128)!=0){t.r=!0,A+=1;break}throw e[A]==44?et(new H1(\"SmilesParser: alternative atom definitions not supported. (Tip: enumerate SMARTS): '\"+String.fromCharCode(e[A]&d1)+r4+A)):et(new H1(\"SmilesParser: unexpected character inside brackets: '\"+String.fromCharCode(e[A]&d1)+r4+A))}return A}function m1t(t){var e,A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1,Q1,Lt,pt,o0,V1,y0,m1;if(U3(t,!1),qt(t,9,4),pt=w.Math.max(W8(t.R.g),W8(t.R.i)),qt(t,pt,4),pt==0){qt(t,t.R.L?1:0,1),qt(t,0,1),t.J=qL(t);return}for(o0=y0=V1=K=0,D=0;D<t.R.g;D++)if(A0(V(l0(t.R,D),1),0)){switch(J(t.R,D)){case 6:break;case 7:++o0;break;case 8:++y0;break;default:++V1}R1(t.R,D)!=0&&++K}for(qt(t,t.R.g,pt),qt(t,t.R.i,pt),qt(t,o0,pt),qt(t,y0,pt),qt(t,V1,pt),qt(t,K,pt),Q=0;Q<t.R.g;Q++)J(t.R,t.B[Q])==7&&A0(V(l0(t.R,t.B[Q]),1),0)&&qt(t,Q,pt);for(s=0;s<t.R.g;s++)J(t.R,t.B[s])==8&&A0(V(l0(t.R,t.B[s]),1),0)&&qt(t,s,pt);for(y=0;y<t.R.g;y++)J(t.R,t.B[y])!=6&&J(t.R,t.B[y])!=7&&J(t.R,t.B[y])!=8&&A0(V(l0(t.R,t.B[y]),1),0)&&(qt(t,y,pt),qt(t,J(t.R,t.B[y]),8));for(l=0;l<t.R.g;l++)R1(t.R,t.B[l])!=0&&A0(V(l0(t.R,t.B[l]),1),0)&&(qt(t,l,pt),qt(t,8+R1(t.R,t.B[l]),4));for(Q1=0,j=0,h=1;h<t.R.g;h++)t.F[h]==-1?st=0:(st=1+t.F[h]-j,j=t.F[h]),Q1<st&&(Q1=st);for($=W8(Q1),qt(t,$,4),j=0,T=1;T<t.R.g;T++)t.F[T]==-1?st=0:(st=1+t.F[T]-j,j=t.F[T]),qt(t,st,$);for(St=0;St<2*t.I;St++)qt(t,t.D[St],pt);for(C=0;C<t.R.i;C++)H=(ie(t.R,t.C[C])&d8)!=0||c1(t.R,t.C[C])==16?1:Z8(t.R,t.C[C])?0:w.Math.min(3,dt(t.R,t.C[C])),qt(t,H,2);if(A=0,(t.Q&q1)==0)for(g=0;g<t.R.g;g++)t._[t.B[g]]!=0&&t._[t.B[g]]!=3&&++A;if(qt(t,A,pt),(t.Q&q1)==0)for(g=0;g<t.R.g;g++)t._[t.B[g]]!=0&&t._[t.B[g]]!=3&&(qt(t,g,pt),t.bb[t.B[g]]==0?qt(t,t._[t.B[g]],3):(m1=t._[t.B[g]]==1?t.bb[t.B[g]]==1?4:6:t.bb[t.B[g]]==1?5:7,qt(t,m1,3),qt(t,t.ab[t.B[g]],3)));if(e=0,(t.Q&q1)==0)for(E=0;E<t.R.i;E++)t.j[t.C[E]]!=0&&t.j[t.C[E]]!=3&&(!A8(t.R,t.C[E])||c1(t.R,t.C[E])==1)&&++e;if(qt(t,e,pt),(t.Q&q1)==0)for(E=0;E<t.R.i;E++)t.j[t.C[E]]!=0&&t.j[t.C[E]]!=3&&(!A8(t.R,t.C[E])||c1(t.R,t.C[E])==1)&&(qt(t,E,pt),c1(t.R,t.C[E])==1?t.n[t.C[E]]==0?qt(t,t.j[t.C[E]],3):(m1=t.j[t.C[E]]==1?t.n[t.C[E]]==1?4:6:t.n[t.C[E]]==1?5:7,qt(t,m1,3),qt(t,t.k[t.C[E]],3)):qt(t,t.j[t.C[E]],2));for(qt(t,t.R.L?1:0,1),W=0,v=0;v<t.R.g;v++)we(t.R,t.B[v])!=0&&++W;if(W!=0)for(rP(t,1),qt(t,W,pt),g=0;g<t.R.g;g++)we(t.R,t.B[g])!=0&&(qt(t,g,pt),qt(t,we(t.R,t.B[g]),8));if(t.w=0,t.R.L){for(dA(t,0,pt,q1,1,-1),dA(t,3,pt,E0,1,-1),dA(t,4,pt,120,4,3),dA(t,5,pt,my,2,1),dA(t,6,pt,1,1,-1),dA(t,7,pt,uP,4,7),W=0,g=0;g<t.R.g;g++)IA(t.R,t.B[g])!=null&&++W;if(W>0){for(rP(t,8),qt(t,W,pt),d=0;d<t.R.g;d++)if(b=IA(t.R,t.B[d]),b!=null)for(qt(t,d,pt),qt(t,b.length,4),P=b,r=0,i=P.length;r<i;++r)n=P[r],qt(t,n,8)}Di(t,9,pt,384,2,7),Di(t,10,pt,31,5,0),dA(t,11,pt,be,1,-1),Di(t,12,pt,d8,8,9),dA(t,13,pt,li,3,14),dA(t,14,pt,hi,5,17),dA(t,16,pt,lr,3,22)}for(W=0,o=0;o<t.R.g;o++)t.a!=null&&t.a[t.B[o]]!=-1&&++W;if(W!=0)for(rP(t,17),qt(t,W,pt),g=0;g<t.R.g;g++)t.a!=null&&t.a[t.B[g]]!=-1&&(qt(t,g,pt),qt(t,t.a[t.B[g]],4));if(rt=0,wt=0,ht=0,(t.Q&8)!=0||(t.Q&ue)!=0){for(W=0,D1=0,g=0;g<t.R.g;g++)if(bt=eP(t.R,t.B[g]),bt!=null){if(S1=xT(bt),bt.length>15||S1>127){rt<bt.length&&(rt=w.Math.min(63,bt.length)),wt<S1&&(wt=S1),++ht;continue}++W,D1=w.Math.max(D1,bt.length)}if(W!=0){for(yt=W8(D1),rP(t,18),qt(t,W,pt),qt(t,yt,4),d=0;d<t.R.g;d++)if(bt=eP(t.R,t.B[d]),bt!=null&&bt.length<=15&&xT(bt)<=127)for(qt(t,d,pt),qt(t,bt.length,yt),Xt=0;Xt<bt.length;Xt++)qt(t,(zt(Xt,bt.length),bt.charCodeAt(Xt)),7)}}for(t.R.L&&(dA(t,19,pt,yr,3,25),Di(t,20,pt,NP,3,17)),W=0,L=0;L<t.R.g;L++)jA(t.R,t.B[L])!=0&&++W;if(W!=0)for(rP(t,21),qt(t,W,pt),f=0;f<t.R.g;f++)jA(t.R,t.B[f])!=0&&(qt(t,f,pt),qt(t,jA(t.R,t.B[f])>>4,2));if(t.R.L&&(dA(t,22,pt,d9,1,-1),Di(t,23,pt,F8,1,-1),Di(t,24,pt,oo,2,21)),(t.Q&16)!=0){for(f=0;f<t.R.g;f++)if(r0(t.R,t.B[f])){for(rP(t,25),n=0;n<t.R.g;n++)qt(t,r0(t.R,t.B[n])?1:0,1);break}}if(A1=W$(t),A1!=null){for(W=0,E=0;E<t.R.i;E++)A1[t.C[E]]&&++W;for(rP(t,26),qt(t,W,pt),S=0;S<t.R.i;S++)A1[t.C[S]]&&qt(t,S,pt)}for(t.R.L&&dA(t,27,pt,ne,1,-1),W=0,I=0;I<t.R.i;I++)c1(t.R,t.C[I])==16&&++W;if(W!=0)for(rP(t,28),qt(t,W,pt),E=0;E<t.R.i;E++)c1(t.R,t.C[E])==16&&qt(t,E,pt);for(t.R.L&&(dA(t,29,pt,k8,2,30),dA(t,30,pt,l9,7,32),dA(t,32,pt,Z6,2,44),dA(t,33,pt,xf,5,39),dA(t,34,pt,Po,1,-1),Di(t,35,pt,Nf,1,-1),Di(t,36,pt,96,2,5)),W=0,a=0;a<t.R.i;a++)(c1(t.R,t.C[a])==32||c1(t.R,t.C[a])==64)&&++W;if(W!=0)for(rP(t,37),qt(t,W,pt),R=0;R<t.R.i;R++)(c1(t.R,t.C[R])==32||c1(t.R,t.C[R])==64)&&(qt(t,R,pt),qt(t,c1(t.R,t.C[R])==32?0:1,1));if(t.b&&(t.Q&16)!=0){for(W=0,tt=0,g=0;g<t.R.g;g++){for(X=0,Qt=N(t.R,t.B[g]);Qt<Ct(t.R,t.B[g]);Qt++)r0(t.R,Z(t.R,t.B[g],Qt))&&(ct=Qt-N(t.R,t.B[g]),X|=1<<ct,tt=w.Math.max(tt,ct+1));X!=0&&++W}if(W!=0)for(rP(t,38),qt(t,W,pt),qt(t,tt,3),f=0;f<t.R.g;f++){for(X=0,Qt=N(t.R,t.B[f]);Qt<Ct(t.R,t.B[f]);Qt++)r0(t.R,Z(t.R,t.B[f],Qt))&&(ct=Qt-N(t.R,t.B[f]),X|=1<<ct);X!=0&&(qt(t,f,pt),qt(t,X,tt))}}if(t.R.L&&dA(t,39,pt,M2,4,47),ht!=0){for(yt=W8(rt),Lt=W8(wt),rP(t,40),qt(t,ht,pt),qt(t,yt,6),qt(t,Lt,16),f=0;f<t.R.g;f++)if(bt=eP(t.R,t.B[f]),bt!=null&&(bt.length>15||xT(bt)>127))for(qt(t,f,pt),Kt=w.Math.min(63,bt.length),qt(t,Kt,yt),Xt=0;Xt<Kt;Xt++)qt(t,(zt(Xt,bt.length),bt.charCodeAt(Xt)),Lt)}qt(t,0,1),t.J=qL(t)}function R6(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1,Q1,Lt,pt,o0,V1;for(this.b=new mh((rt=Sy,rt)),bt=(z1(),nn),ut(t,15),st=!0,P=0;P<t.g;P++)if((t.v[P]&3)!=0&&(t.v[P]&3)!=3&&(t.v[P]&b1)>>18!=1){st=!1;break}if(Xt=-1,st){for(H=c(B,F,6,32,15,1),St=0,r=0;r<t.g;r++)if((t.v[r]&3)!=0&&(t.v[r]&3)!=3&&(t.v[r]&b1)>>18==1){tt=(t.v[r]&b1)>>18!=1&&(t.v[r]&b1)>>18!=2?-1:(t.v[r]&VA)>>20,++H[tt],St<H[tt]&&(St=H[tt],Xt=tt);break}}for(this.a=A||new M0,Qt=t.Q!=null?t.Q:\"\",G(this.a,Qt+bt),G(this.a,hM+(tQ(t)?\"3D\":\"2D\")+bt+bt),d0(this,t.r),d0(this,t.s),G(this.a,\"  0  0\"),d0(this,st?0:1),G(this.a,\"  0  0  0  0  0999 V2000\"+bt),X=t.r==1,Q=1;Q<t.r;Q++)if(t.K[Q].a!=t.K[0].a||t.K[Q].b!=t.K[0].b||t.K[Q].c!=t.K[0].c){X=!0;break}if(K=1,X)if(e!=0)K=e;else if(d=dP(t,t.r,t.s,(O1(),Bn)),d!=0)(d<1||d>3)&&(K=1.5/d);else{for(A1=Ge,r=1;r<t.r;r++)for(D=0;D<r;D++)S=t.K[D].a-t.K[r].a,I=t.K[D].b-t.K[r].b,a=t.K[D].c-t.K[r].c,E=S*S+I*I+a*a,A1>E&&(A1=E);K=3/A1}for(o=0;o<t.r;o++)X?(eQ(this,K*t.K[o].a),eQ(this,K*-t.K[o].b),eQ(this,K*-t.K[o].c)):G(this.a,\"    0.0000    0.0000    0.0000\"),(t.w==null?null:t.w[o])!=null?G(this.a,\" L  \"):gt(V(t.C[o],1),0)?G(this.a,\" A  \"):t.D[o]>=129&&t.D[o]<=144||t.D[o]==154?G(this.a,\" R# \"):(T=(O1(),J0)[t.D[o]],G(this.a,\" \"+T),T.length==1?G(this.a,\"  \"):T.length==2&&G(this.a,\" \")),G(this.a,\" 0  0  0\"),W=V(uP,t.C[o]),O(W,0)==0?G(this.a,\"  0\"):O(W,384)==0?G(this.a,\"  3\"):O(W,128)==0?G(this.a,\"  2\"):O(W,1792)==0?G(this.a,\"  1\"):O(W,1664)==0&&G(this.a,\"  2\"),G(this.a,gt(V(t.C[o],be),0)?\"  1\":\"  0\"),V1=((t.v[o]&m8)>>>27)-1,V1==-1?G(this.a,\"  0\"):V1==0?G(this.a,\" 15\"):d0(this,V1),G(this.a,\"  0  0  0\"),d0(this,w.Math.abs(t.A[o])),G(this.a,\"  0  0\"+bt);for(b=0;b<t.s;b++){switch(t.I[b]){case 1:Kt=1,Lt=0;break;case 2:Kt=2,Lt=0;break;case 4:Kt=3,Lt=0;break;case 129:Kt=1,Lt=6;break;case 257:Kt=1,Lt=1;break;case 386:Kt=2,Lt=3;break;case 8:Kt=4,Lt=0;break;case 16:Kt=8,Lt=0;break;default:Kt=1,Lt=0}st&&(Lt==1||Lt==6)&&(r=t.F[0][b],(t.v[r]&b1)>>18==2?Lt=0:(t.v[r]&b1)>>18==1&&((t.v[r]&b1)>>18!=1&&(t.v[r]&b1)>>18!=2?-1:(t.v[r]&VA)>>20)!=Xt&&(Lt=4)),j=t.H[b]&31,j!=0&&(j==8?Kt=4:j==3?Kt=5:j==9?Kt=6:j==10?Kt=7:Kt=8),D1=t.H[b]&384,o0=D1==0?0:D1==256?1:2,d0(this,1+t.F[0][b]),d0(this,1+t.F[1][b]),d0(this,Kt),d0(this,Lt),G(this.a,\"  0\"),d0(this,o0),G(this.a,\"  0\"+bt)}for(yt=0,L=0;L<t.r;L++)t.t[L]!=0&&++yt;if(yt!=0)for(C=0,r=0;r<t.r;r++)t.t[r]!=0&&(C==0&&(G(this.a,\"M  CHG\"),d0(this,w.Math.min(8,yt))),G(this.a,\" \"),d0(this,r+1),R=t.t[r],R<0?(G(this.a,\"  -\"),R=-R):G(this.a,\"   \"),Ye(this.a,48+R&d1),--yt,(++C==8||yt==0)&&(C=0,G(this.a,bt)));for(yt=0,s=0;s<t.r;s++)t.B[s]==0||++yt;if(yt!=0)for(C=0,r=0;r<t.r;r++)t.B[r]!=0&&(C==0&&(G(this.a,\"M  ISO\"),d0(this,w.Math.min(8,yt))),G(this.a,\" \"),d0(this,r+1),G(this.a,\" \"),d0(this,t.B[r]),--yt,(++C==8||yt==0)&&(C=0,G(this.a,bt)));for(yt=0,y=0;y<t.r;y++)(t.v[y]&48)!=0&&++yt;if(yt!=0){for(C=0,r=0;r<t.r;r++)if((t.v[r]&48)!=0){switch(C==0&&(G(this.a,\"M  RAD\"),d0(this,w.Math.min(8,yt))),G(this.a,\" \"),d0(this,r+1),t.v[r]&48){case 16:G(this.a,\"   1\");break;case 32:G(this.a,\"   2\");break;case 48:G(this.a,\"   3\")}--yt,(++C==8||yt==0)&&(C=0,G(this.a,bt))}}for(yt=0,l=0;l<t.r;l++)(t.D[l]>=129&&t.D[l]<=144||t.D[l]==154)&&++yt;if(yt!=0)for(C=0,r=0;r<t.r;r++)v=t.D[r],(v>=129&&v<=144||v==154)&&(C==0&&(G(this.a,\"M  RGP\"),d0(this,w.Math.min(8,yt))),G(this.a,\" \"),d0(this,r+1),G(this.a,\" \"),d0(this,v==154?0:v>=142?v-141:v-125),--yt,(++C==8||yt==0)&&(C=0,G(this.a,bt)));if(t.L){for(yt=0,r=0;r<t.r;r++)gt(V(t.C[r],120),0)&&++yt;if(yt!=0)for(C=0,D=0;D<t.r;D++)S1=V(t.C[D],120),O(S1,0)!=0&&(C==0&&(G(this.a,\"M  RBC\"),d0(this,w.Math.min(8,yt))),G(this.a,\" \"),d0(this,D+1),O(S1,112)==0?G(this.a,\"  -1\"):O(S1,8)==0?G(this.a,\"   1\"):O(S1,104)==0?G(this.a,\"   2\"):O(S1,88)==0?G(this.a,\"   3\"):O(S1,56)==0&&G(this.a,\"   4\"),--yt,(++C==8||yt==0)&&(C=0,G(this.a,bt)));for(h=0;h<t.r;h++)if(g=t.w==null?null:t.w[h],g!=null){for(G(this.a,\"M  ALS \"),d0(this,h+1),d0(this,g.length),G(this.a,gt(V(t.C[h],1),0)?\" T \":\" F \"),$=0;$<g.length;$++)switch(ht=(O1(),J0)[g[$]],ht.length){case 1:G(this.a,ht+\"   \");break;case 2:G(this.a,ht+\"  \");break;case 3:G(this.a,ht+\" \");break;default:G(this.a,\"   ?\")}G(this.a,bt)}for(yt=0,i=0;i<t.r;i++)gt(V(t.C[i],6144),0)&&++yt;if(yt!=0)for(C=0,D=0;D<t.r;D++)pt=V(t.C[D],6144),O(pt,0)!=0&&(C==0&&(G(this.a,\"M  SUB\"),d0(this,w.Math.min(8,yt))),G(this.a,\" \"),d0(this,D+1),gt(V(pt,E0),0)?G(this.a,\"   \"+(t.e[D]+1)):G(this.a,\"  -2\"),--yt,(++C==8||yt==0)&&(C=0,G(this.a,bt)))}for(yt=0,f=0;f<t.r;f++)(t.u==null||t.u[f]==null?null:on((ct=t.u[f],c0(),ct)))!=null&&++yt;if(yt!=0)for(Q1=0,n=0;n<t.r;n++)ht=t.u==null||t.u[n]==null?null:on((wt=t.u[n],c0(),wt)),ht!=null&&(++Q1,G(this.a,\"M  STY  1 \"),d0(this,Q1),G(this.a,\" DAT\"),G(this.a,bt),G(this.a,\"M  SLB  1 \"),d0(this,Q1),G(this.a,\" \"),d0(this,Q1),G(this.a,bt),G(this.a,\"M  SAL \"),d0(this,Q1),G(this.a,\"  1 \"),d0(this,n+1),G(this.a,bt),G(this.a,\"M  SDT \"),d0(this,Q1),G(this.a,\" \"),G(this.a,Iy),G(this.a,bt),G(this.a,\"M  SDD \"),d0(this,Q1),G(this.a,\" \"),eQ(this,t.K[n].a),eQ(this,t.K[n].b),G(this.a,\"    DA    ALL  1       5\"),G(this.a,bt),G(this.a,\"M  SED \"),d0(this,Q1),G(this.a,\" \"),G(this.a,ht),G(this.a,bt));G(this.a,hr+bt)}function p6(t,e,A,n,P,r,i){var f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1,Q1,Lt,pt,o0,V1,y0,m1,F1,h0;for(t.k=e,Ri(t.k),t.s=new Yn,t.a=new vd,t.r&&Ln(t.r,0),t.b=0,t.p=!1,Q=t.q!=0,bt=null,l=c(B,F,6,32,15,1),l[0]=-1,yt=c(B,F,6,16,15,1),D1=c(B,F,6,16,15,1),S1=c(B,F,6,16,15,1),Kt=c(B,F,6,16,15,1),X=0;X<16;X++)yt[X]=-1;for(s=0,S=-1,Q1=!1,ht=!1,H=!1,d=0,g=1,T=0;A[n]<=32;)++n;for(;n<P;){if(Lt=A[n++]&d1,ev(Lt)||Lt==42||Lt==63||Lt==33&&Q&&Q1||Lt==35&&Q&&Q1||Lt==36&&Q&&Q1){if(y=new jk(t,t.j|t.q),Q1)if((t.j&128)!=0){if(R=new eg(n-1),n=j6(y,A,n,P,!0,!0),A[n-1]!=93){for(;A[n-1]!=93;)n=j6(y,A,n+1,P,!0,!0),++R.a;t.f.add(R)}}else n=j6(y,A,n,P,Q,!1);else n=R$(y,A,n,P,Q);if(Q1=!1,y.q&&x(y.q,0)){S=l[d],l[d]=e.r,CD(e,y.q?x(y.q,0):null),S!=-1&&g!=512&&(h=K0(t.k,S,S,g),T!=0&&(t.p=!0,Xe(t.k,h,T,!0),qs(t.k,h))),g=1,T=0;continue}if(y.d==-1&&Lt!=63)throw et(new H1(\"SmilesParser: unknown element label found. Position:\"+(n-1)));y.r&&(t.p=!0),L=Na(y,t.k,Lt,n),W0(t.k,L)&&++t.b,S=l[d],S!=-1&&g!=512&&(h=K0(t.k,S,L,g),T!=0&&(t.p=!0,Xe(t.k,h,T,!0),qs(t.k,h))),g=1,T=0,l[d]=L,s!=0&&(O9(t.k,L,s),s=0),i&&(A1=bt?de(bt,U1(S)):null,A1&&AQ(A1,L,(wt=n,y.d==1&&we(t.k,L)==0,wt)),y.p&&(!bt&&(bt=new cP),K=y.g==9?0:y.g,We(bt,U1(L),new Ab(t,L,n-2,S,K,y.i))));continue}if(Lt==46){l[d]=-1,g=512;continue}if(Lt==45||Lt==61||Lt==35||Lt==36||Lt==58||Lt==47||Lt==92||Lt==60||Lt==126||Lt==33||Lt==64){if(Q1)throw et(new H1(\"SmilesParser: unexpected bond symbol inside square brackets: '\"+String.fromCharCode(Lt)+r4+(n-1)));for(C=0;Lt==45||Lt==61||Lt==35||Lt==36||Lt==58||Lt==47||Lt==92||Lt==60||Lt==126||Lt==33||Lt==64;){if(Lt==33)if(Lt=A[n++]&d1,Lt==64)T|=128;else if(Lt==45&&A[n]==62||Lt==60&&A[n]==45)C|=16,++n;else if(Lt==45)C|=1;else if(Lt==61)C|=2;else if(Lt==35)C|=4;else if(Lt==36)C|=32;else if(Lt==58)C|=8;else throw et(new H1(\"SmilesParser: bond symbol '\"+String.fromCharCode(Lt)+\"' not allowed after '!'. Position:\"+(n-1)));else if(Lt==64?T|=256:Lt==61?g=2:Lt==35?g=4:Lt==36?g=32:Lt==58?g=8:Lt==126?T|=15:Lt==47?i&&(g=257):Lt==92?i&&(g=129):(Lt==45&&A[n]==62||Lt==60&&A[n]==45)&&(g=16,++n),A[n]==44)for(T|=(g==16?62:Lt)==61?2:(g==16?62:Lt)==35?4:(g==16?62:Lt)==36?32:(g==16?62:Lt)==58?8:(g==16?62:Lt)==62?16:(g==16?62:Lt)==126?127:1;A[n]==44;)A[n+1]==60&&A[n+2]==45||A[n+1]==45&&A[n+2]==62?(T|=16,n+=3):(T|=(A[n+1]&d1)==61?2:(A[n+1]&d1)==35?4:(A[n+1]&d1)==36?32:(A[n+1]&d1)==58?8:(A[n+1]&d1)==62?16:(A[n+1]&d1)==126?127:1,n+=2);if(A[n]==59){++n,Lt=A[n++]&d1;continue}C!=0&&(T|=127&~C);break}continue}if(Lt<=32){n=P;continue}if(Rn(Lt)){if(ct=Lt-48,Q1){for(;n<P&&Rn(A[n]&d1);)ct=10*ct+A[n]-48,++n;s=ct}else{if(v=ht?n-3:n-2,a=A[v]==45||A[v]==47||A[v]==92||A[v]==61||A[v]==35||A[v]==36||A[v]==58||A[v]==62||A[v]==126,ht&&n<P&&Rn(A[n]&d1)&&(ct=10*ct+A[n]-48,ht=!1,++n),ct>=yt.length){if(ct>=100)throw et(new H1(\"SmilesParser: ringClosureAtom number out of range: \"+ct));for(Xt=yt.length,rt=yt.length;rt<=ct;)rt=w.Math.min(100,rt+16);for(yt=(o8(rt),pP(yt,c(B,F,6,rt,15,1),0,rt)),D1=(o8(rt),pP(D1,c(B,F,6,rt,15,1),0,rt)),S1=(o8(rt),pP(S1,c(B,F,6,rt,15,1),0,rt)),Kt=(o8(rt),pP(Kt,c(B,F,6,rt,15,1),0,rt)),W=Xt;W<rt;W++)yt[W]=-1}if(yt[ct]==-1)yt[ct]=l[d],D1[ct]=n-1,S1[ct]=a?g:-1,Kt[ct]=a?T:0;else{if(yt[ct]==l[d])throw et(new H1(\"SmilesParser: ring closure to same atom\"));i&&bt&&(A1=de(bt,U1(yt[ct])),A1&&AQ(A1,l[d],D1[ct]),A1=de(bt,U1(l[d])),A1&&AQ(A1,yt[ct],n-1)),S1[ct]!=-1?g=S1[ct]:g==257?g=129:g==129&&(g=257),f=yt[ct],D=l[d],h=(h0=K0(t.k,f,D,g),qD(t.s,f+\"_\"+D,m(k(B,1),F,6,15,[D1[ct],n-1])),qD(t.s,D+\"_\"+f,m(k(B,1),F,6,15,[D1[ct],n-1])),av(t.a,f),av(t.a,D),h0),Kt[ct]!=0&&(T=Kt[ct]),T!=0&&(t.p=!0,Xe(t.k,h,Kt[ct],!0),qs(t.k,h)),yt[ct]=-1}g=1,T=0}continue}if(Lt==43)throw et(new H1(\"SmilesParser: '+' found outside brackets. Position:\"+(n-1)));if(Lt==40){if(l[d]==-1){H=!0;continue}++d,l.length==d&&(l=Cn(l,l.length+32)),l[d]=l[d-1];continue}if(Lt==41){if(d==0){if(!H)throw et(new H1(\"SmilesParser: Closing ')' without opening counterpart. Position:\"+(n-1)));l[0]=-1,H=!1;continue}--d;continue}if(Lt==91){Q1=!0;continue}if(Lt==93)throw et(new H1(\"SmilesParser: closing bracket at unexpected position:\"+(n-1)));if(Lt==37){ht=!0;continue}throw et(new H1(\"SmilesParser: unexpected character outside brackets: '\"+String.fromCharCode(Lt)+FM+(n-1)))}if(g!=1)throw et(new H1(\"SmilesParser: dangling open bond; position:\"+n));for($=0;$<yt.length;$++)if(yt[$]!=-1)throw et(new H1(\"SmilesParser: dangling ring closure: \"+$+\"; position:\"+n));for(I=Tu(t.k),t.k.T=!0,ut(t.k,1),o=0;o<t.k.r;o++)if(eP(t.k,o)!=null)if(E=o3(t.k,o)[0],t.p||t.q==2){if(E!=9)if(t.i)for(tt=0;tt<E;tt++)K0(t.k,o,i9(t.k,1),1);else E==0&&w1(t.k,o,1792,!0),E==1&&w1(t.k,o,1664,!0),E==2&&w1(t.k,o,1408,!0),E==3&&w1(t.k,o,896,!0)}else{if(E==9&&(E=0),!ee(t.k,o)&&(!W0(t.k,o)||J(t.k,o)==6&&R1(t.k,o)==0)){for(F1=nQ(J(t.k,o)),b=!1,pt=G1(t.k,o),pt-=Cu(t.k,o,pt),pt+=E,W0(t.k,o)&&++pt,V1=F1,y0=0,m1=V1.length;y0<m1;++y0)if(o0=V1[y0],pt<=o0){b=!0,o0==pt+2?Je(t.k,o,48):o0==pt+1?Je(t.k,o,32):(o0!=pt||o0!=F1[0])&&tn(t.k,o,pt);break}b||tn(t.k,o,pt)}if(t.i||!Ds(t.k,o))for(tt=0;tt<E;tt++)K0(t.k,o,i9(t.k,1),1)}else!t.i&&(t.p||t.q==2)&&(E=qh(t.k,o),E>=1&&w1(t.k,o,128,!0),E>=2&&w1(t.k,o,256,!0),E>=3&&w1(t.k,o,512,!0),E>=4&&w1(t.k,o,ue,!0));if(!t.i&&(t.p||t.q==2)&&q5(t.k,!1),ut(t.k,1),fW(t),D1t(t,Q,t.p),t.k.u=null,t.k.T=!1,i&&(va(t),bt)){for(Qt=(St=new oD(bt).a.ad().Tb(),new UD(St));Qt.a.cd();)A1=(j=Qt.a.dd(),j.jd()),ke(t.k,I[A1.a],bW(A1,I),!1);TD(t.k,0)}TD(t.k,0),r&&(st=new a8(t.d),gt(t.n,0)&&Z7(st,t.n),U9(st,t.k),i&&Yh(t.k)),(t.p||t.q==2)&&(Be(t.k,!0),up(t.k),Ej(t.k))}function fM(){fM=v1,xo=m(k(ft,2),DA,13,0,[m(k(ft,1),Dt,2,6,[\"e\",\"daXJ@@PjyITuiX@`!dahJ@@SJYIMMfPB#IaLJfxP IaAhl[`#!BDpAl@AL@[@Be}aL@[@@ !B|Osp?QZR?O_}}zGze`@##\"]),m(k(ft,1),Dt,2,6,[\"g\",\"gBa`@lde@XS@!gCA`@mDPOdku`#qbq qJt#!B[G|S_qgq !BjW}q]cga##\"]),m(k(ft,1),Dt,2,6,[\"o\",\"gGQHDDqIUjdB!gGQHHDqAeMjhB#qbqk qfQ]#!B@AL@[@@S@Fp@Dp !BFQ{~_q|ZGvUSYp##\"]),m(k(ft,1),Dt,2,6,[\"r\",\"gOQdEjHbAFQRBrtAaJ!gNQdEbHbABCTKPFDH#qbMwX qbM~X#!BNDm`ra?UjW~YBYX@ !Ba[zw?_x@?g~H?XO~##\"]),m(k(ft,1),Dt,2,6,[\"s\",\"gOp`ATigujj`H!gOp`ATiVKjj`H#qnyS` qY~eP#!BTLtk^sE?BOs|]pc} !BbOvw?_y??g~H?[_}##\"]),m(k(ft,1),Dt,2,6,[\"t\",\"gOP`@dcUZdB!gNp`@tiTMjj@`#q{ir` qkLrx#!Be`Bzr_wp?OC}|Osp !B?g~w@k_}m?vw@n[a##\"]),m(k(ft,1),Dt,2,6,[\"u\",\"daXB`Hrn@HrPEILt`D!daXB`DJn@HRUMjV@H#IxVaLJ` IylJhPP#!B[G}l@OKyDpAl@AL@[@@ !B@Fp@DpAl@AN]?`Al@AL##\"]),m(k(ft,1),Dt,2,6,[\"Sakurai\",\"gOQH@wAINvZ@pdcFe@x@!gOQH@wAIgJi@pdcFe@x@#qreKx qrLkx#!BDpAl@IknDw|S@Fp@ !Bb@JH?_x@b@JH?Ven##\"]),m(k(ft,1),Dt,2,6,[\"Mitsunobu\",\"gFP`ATfRhdPp`}KEYg]d@!gFP`ATfRhd`pekL{l`#qrLk qZLn#!B@hc}b@C~@h`YM` !B@hc}b@C~@h`YM`##\"]),m(k(ft,1),Dt,2,6,[\"Aldol-Addition\",\"gOQ@AdTAcS@[Q^crJTLES`DJsL?vH!gGQ@@dsuRAcJg@HUaX#qYEbp qYub#!BxOyBzLKg`dG~xG~{ !Bb@K~@Hc}FBIA@@##\"]),m(k(ft,1),Dt,2,6,[\"Aldol-Condensation\",\"gOQ@AdTAcS@[Q^crJTLES`DJsL?vH!gFQ@@`rrpdlHHpipBEXf@#qYEbp q^aU#!B{ZRRqA?AQfyA@L_C !B}QFw@h`B_tnH_P##\"]),m(k(ft,1),Dt,2,6,[\"Acetal-Aldol-Addition\",\"dmdB@@serQS@sJjfd@p`Xir\\\\@`j\\\\@aUJXK@!daxL@@[df[ZjT@qQdxACdxABjTqf@#qB@`OuX qBtM{#!B_]]}rHKWw?y}uy[~GJbBu{wWqG| !BfJK~TIa]fJJghg{`pP@##\"]),m(k(ft,1),Dt,2,6,[\"Acetal-Aldol-Condensation\",\"dmdB@@serQS@sJjfd@p`Xir\\\\@`j\\\\@aUJXK@!gNp`CTjUiV@qQS`DJg@HUVXV@#qB@`OuX qqj{`#!B?[_}b@Jw_?{}m~[~[N@Bm?vwkN| !BfsK~yzPrw}m?rzQM##\"]),m(k(ft,1),Dt,2,6,[\"Acetal-Aldol-Condensation-Cyclization\",\"dkLB@@ZURYUvUjljh@paHpr\\\\@`!didD@@yIfUXXHL@CFNS`D@#IXljNPY@@@ IXljIyA#!BbOw~_x`Bm?vH?[_}b@JH?_y?b@Jw?Xc} !BbOvH?Oy??`BH?Xa}?`C~_p##\"]),m(k(ft,1),Dt,2,6,[\"Enolester-Cleavage\",\"gOQ`@fdscT`_Qp!gOQ`@cdTASS@P#q}Kr` q}cNP#!B@k]}mpC~@k]}mqdY !Bb@K~@Hc}BfzH@hc}##\"]),m(k(ft,1),Dt,2,6,[\"propargylEnone\",\"gCa@@dmXFD@!gCa@@dkHD#qNT qLV#!BbOw~_?y? !B@AL@[@@S##\"]),m(k(ft,1),Dt,2,6,[\"Arndt-Eistert\",\"daiDaJYBBHj^{HhAYMpAaA@!daiD`FzLBHPVsZl@p`@#IyHHZ[@ IzDGBi`#!B?`Bw?H`Bn]{~\\\\g?~@Ox !B@rzH?_y?b@JH?_n~bOt##\"]),m(k(ft,1),Dt,2,6,[\"Curtius\",\"gO]IcVaDF[s{HhCIe@`!gN]HMWADHJfm`XP@#q~Jk` qytUX#!B@O{|b@Jw\\\\o{~_?x@ !Bj]y??g?~?[^G_hc}##\"]),m(k(ft,1),Dt,2,6,[\"diazomethanHomologation\",\"gFU@lQioIIs\\\\AyH!gFU@CPdimXD#qbM^ qbqk#!B?X`BbFZN?`C~_p !B@AL@[@@Su[x@Dp##\"]),m(k(ft,1),Dt,2,6,[KV,\"deD@@LdbEdSTu@FqHWSDda`JFChXIa`?tdKi@!deD@@Ldb`\\\\SUM@FqHPsDda`JF@XXIa`?tdHY@#qTEApX qQECf@#!BQzK~}ubbW`BEgcb]?a@gg[zO !BQzK~}ubbW`Ag{VVAQzJ~c?xP##\"]),m(k(ft,1),Dt,2,6,[KV,\"deD@@LdbEdSTu@FqHWSDda`JFChXIa`?tdKi@!gC`@DiZDE@#qPDA@p qQf#!BmpK~_x`Bm?tAs[]}?`BH_[_| !B_vp@[G|S##\"]),m(k(ft,1),Dt,2,6,[\"yne-Metathesis\",\"daX@@LdPLWWPAlRXwQIHXLa`ZFChXO}IL[`!daX@@LdPLWWPAlRXwQIHXLa`ZFChXO}IL[`#qT@q@ qt@Q@#!BZmoi@Fjo|SFe|IkGiU@ !BZmoi@Fjo|SFe|IkGiU@##\"]),m(k(ft,1),Dt,2,6,[\"ene-yne-Metathesis\",\"dcd@@LdPLPLWSSPAlrXwKlVRFCHXFa`zFAXXMa`?udqnWP!dcT@@LdbbplTsTt@[MeMr{Ela`jFAhXNa`VFCXXO}[J[et#qe@N@S@ qeHP@s@#!B?g?~@Oy?^gG}bOvw?H`E@PJw@hc}mp !B?`BH?[_}mpJH@oy??`AuC`Jw@hc}mp##\"]),m(k(ft,1),Dt,2,6,[\"Alkyne-Cyclisation\",\"gG`@DcO|CFAFC`@!gFp@DiTt@@CFAFC`@#qi\\\\V qiSt#!B_y[qA`Biu^zV@@ !B?g~w@k_}m?vw@`##\"]),m(k(ft,1),Dt,2,6,[\"Elimination-Claisen\",\"gNp`AldTQji@~a`!gGQ@@djmRA@#qtHUX qtSi#!Bm?vH?[\\\\B?g~H@hc} !B@AL@[@@S@Fp@Dp##\"]),m(k(ft,1),Dt,2,6,[\"imineFormationAzaCope\",\"daZH@LAIMUjd@pRL@!daZH@HAAn]jd@p`@#IGfaLJ` IFDzfK@#!BDpAl@IkqDpAl@AL@[@@ !BFaFw@h`BbOw~@H`BbOt##\"]),m(k(ft,1),Dt,2,6,[\"didehydroCopeWithAromatisation\",\"gNp@Di]ejDcjcr|wK`!gOp@DjWkB@@H#qrLkx q\\\\oQp#!B?g~H?K_}bGvH?H`B !Bm?w~@Hc}mpJw@ox@##\"]),m(k(ft,1),Dt,2,6,[\"symAldolNitrogenRing\",\"dovJ@GBfttf\\\\v\\\\qjViPCADGbDodnGp!doNJ@JCSmtefWTCaYjje@H#IlZXi]]yL~C IqMVCzaIim?#!BQtl_riY?Qtl_rfuvNCQ`uZd@NCQ`uVVu}?sA]P !B?`BH@ox@bGvH@k\\\\Bb@JH_Xa}b@K~_rYltUr|W@##\"]),m(k(ft,1),Dt,2,6,[\"Diels-Alder\",\"gFP@LdPLjA@!gFp@DiTujhB#qiZf qMSf#!B?_C}}?spIPFV@@ !B?g~w@k_}m?vw@`##\"]),m(k(ft,1),Dt,2,6,[\"Claisen-RA\",\"gGQ@@eKtRA@!gGQ@@djqRA@#qMsT qM\\\\V#!B_qL@Dw}l@Fp@Dp !B@AL@[@@S@Fp@Dp##\"]),m(k(ft,1),Dt,2,6,[\"Cope\",\"gGQ@DeZmRAbhcApIF@P@!gGQ@HeZmRAbhc@HIFC`@#qkNT qi\\\\V#!B_vp@[@@S@Fp@Dp !B_vp@[@@S@Fp@Dp##\"]),m(k(ft,1),Dt,2,6,[\"OxyCope\",\"gNq@@dr}SHFD@!gNq@@djkUHD#qynZ` qykbp#!B?g~w?Xc}mpJH@hc} !B@Fp@DpAl@AL@[@@S##\"]),m(k(ft,1),Dt,2,6,[\"Vinylcyclopropane\",\"gKP@DklVj@`!gKP@Di\\\\Vj@`#qaVh qTqh#!Bm?vH?PC~?K\\\\ !B?g|_Fa}eTv\\\\##\"]),m(k(ft,1),Dt,2,6,[\"Furan-CH2-OH-Rearrangement\",\"gOp`@tiguif`H!gOp`@tfWMZZ`H#qZna@ qZtM@#!BTLtk^sE?BOs|]pc} !BBOuPtdy?UGm@V]Ho##\"]),m(k(ft,1),Dt,2,6,[\"rearrangement1032\",\"gOp`ATieMji`H!gOp`ATeekZj`H#qaSnx qa]~P#!BTLtk^pc|LW?|]pc} !BBOpH?UCRSg}T^tAY##\"]),m(k(ft,1),Dt,2,6,[\"Pinacol-Rearrangement\",\"gNp`ATffjj@pPh!gOP`@tfXZhCAA`#qb^ix qb^oH#!B@k^H@k_}@k_~@Hc} !BbOvH@oy??`BH?PFf##\"]),m(k(ft,1),Dt,2,6,[\"1,3-WaterEliminationWith12Shift\",\"gJQ@@dmU@_SP!gKa@@`vtA}A@#qiTp qjap#!BbOvH@ox@bOt !BJdE?[@Al@AL##\"]),m(k(ft,1),Dt,2,6,[\"Epoxydation\",\"gB``ADcdCB@!gC``AhtUPGtt@#qqb qtQ#!BjW}Y\\\\YX@ !B?g~w?^Va##\"]),m(k(ft,1),Dt,2,6,[\"oxydativePropargylAmine13Shift\",\"gKi@HDEZpLHOQP!gJY@BDeVXB#qMr` qNTh#!BqiXTy{U?mW| !B@Fp@DpAl@AL##\"]),m(k(ft,1),Dt,2,6,[\"Baeyer-Villiger\",\"gFQ`@[dTAZ`LHP!gFQ`@jdrMPGtl@#qrak qrlK#!B_?{}mwvHs^FVP@ !BbOvH@oy?bOuQzP##\"]),m(k(ft,1),Dt,2,6,[JV,\"gGa@@dYs@XHFJIBDQbUeHPbLRl@!gFQ@@eNUPFJIBDQbUeHPbLRls@`#qbq] qfQk#!B@AOIDW}l@tD@Dp !B_qL@Dw}l_qNcDP##\"]),m(k(ft,1),Dt,2,6,[JV,\"gBa@@d\\\\`XP@!gJQ@@eOU@XpdHQFIVY`P#qbq qfQ@#!B@AOIDW}l !B_qL@Dw}l_qL##\"]),m(k(ft,1),Dt,2,6,[\"Hantzsch Thiazol\",\"daZHPDp@chaIMefh@ppDzTD~hYmC^bhbcPp]dQbUg~pp!gKXHL@aJWFe`H#qNPe@ qNj`#!BvuK[KUxv_yS[k_zhvuH !BTqa`FbpX?`@##\"]),m(k(ft,1),Dt,2,6,[\"Oxadiazole\",\"gOX`BEdTASW@XQ@!gOu@HPeKNMKTA@#qrDMX qpULX#!BmpK~@K_}Mlx@?`C~ !BZ?`C}v|m_rYR[z?\\\\##\"]),m(k(ft,1),Dt,2,6,[\"Imidazole\",\"dmeHPNg@qJqLbTtATijZ@LLJnuDmhWtSDXUFC`?rIoTAP!gOt@ATieuej`H#qDPpM_@ q~ZM`#!BqvKGg_yOqvKGg_xphrGkLcz@_sD !BTMHkACD@BOw|B@QT##\"]),m(k(ft,1),Dt,2,6,[\"1,2,3-Triazole\",\"gB`HAbIGXFDWiM@!gF|@ADeKXmT`P#QIp Q@v#!B_vpU?g}l !BTv]`YRqg?g|XK@##\"]),m(k(ft,1),Dt,2,6,[\"1,2,4-Triazole\",\"deFD@NALbbfASUW@FD]YJZLUCAVJ}?nES@!gO|@ABeKNLuRA@#qDB@FM q@LuP#!BY?r~@F_]jDJW`j`}Iaxx[UC] !BTv]@IPqgog|hCBT_##\"])])}function O1(){O1=v1,J0=m(k(ft,1),Dt,2,6,[\"?\",\"H\",\"He\",\"Li\",\"Be\",\"B\",\"C\",\"N\",\"O\",\"F\",\"Ne\",\"Na\",\"Mg\",\"Al\",\"Si\",\"P\",\"S\",\"Cl\",\"Ar\",\"K\",\"Ca\",\"Sc\",\"Ti\",\"V\",\"Cr\",\"Mn\",\"Fe\",\"Co\",\"Ni\",\"Cu\",\"Zn\",\"Ga\",\"Ge\",\"As\",\"Se\",\"Br\",\"Kr\",\"Rb\",\"Sr\",\"Y\",\"Zr\",\"Nb\",\"Mo\",\"Tc\",\"Ru\",\"Rh\",\"Pd\",\"Ag\",\"Cd\",\"In\",\"Sn\",\"Sb\",\"Te\",\"I\",\"Xe\",\"Cs\",\"Ba\",\"La\",\"Ce\",\"Pr\",\"Nd\",\"Pm\",\"Sm\",\"Eu\",\"Gd\",\"Tb\",\"Dy\",\"Ho\",\"Er\",\"Tm\",\"Yb\",\"Lu\",\"Hf\",\"Ta\",\"W\",\"Re\",\"Os\",\"Ir\",\"Pt\",\"Au\",\"Hg\",\"Tl\",\"Pb\",\"Bi\",\"Po\",\"At\",\"Rn\",\"Fr\",\"Ra\",\"Ac\",\"Th\",\"Pa\",\"U\",\"Np\",\"Pu\",\"Am\",\"Cm\",\"Bk\",\"Cf\",\"Es\",\"Fm\",\"Md\",\"No\",\"Lr\",\"Rf\",\"Db\",\"Sg\",\"Bh\",\"Hs\",\"Mt\",\"Ds\",\"Rg\",\"Cn\",\"Nh\",\"Fl\",\"Mc\",\"Lv\",\"Ts\",\"Og\",je,je,je,je,je,je,je,je,je,je,\"R4\",\"R5\",\"R6\",\"R7\",\"R8\",\"R9\",\"R10\",\"R11\",\"R12\",\"R13\",\"R14\",\"R15\",\"R16\",\"R1\",\"R2\",\"R3\",\"A\",\"A1\",\"A2\",\"A3\",je,je,\"D\",\"T\",\"X\",\"R\",\"H2\",\"H+\",\"Nnn\",\"HYD\",\"Pol\",je,je,je,je,je,je,je,je,je,je,je,\"Ala\",\"Arg\",\"Asn\",\"Asp\",\"Cys\",\"Gln\",\"Glu\",\"Gly\",\"His\",\"Ile\",\"Leu\",\"Lys\",\"Met\",\"Phe\",\"Pro\",\"Ser\",\"Thr\",\"Trp\",\"Tyr\",\"Val\"]),j8=m(k(Yt,1),t1,6,15,[0,1,4,7,9,11,12,14,16,19,20,23,24,27,28,31,32,35,40,39,40,45,48,51,52,55,56,59,58,63,64,69,74,75,80,79,84,85,88,89,90,93,98,0,102,103,106,107,114,115,120,121,130,127,132,133,138,139,140,141,142,0,152,153,158,159,164,165,166,169,174,175,180,181,184,187,192,193,195,197,202,205,208,209,209,210,222,223,226,227,232,231,238,237,244,243,247,247,251,252,257,258,259,262,267,268,271,270,277,276,281,281,283,285,289,289,293,294,294,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,156,114,115,103,128,129,57,137,113,113,128,131,147,97,87,101,186,163,99]),BE=m(k(_,1),At,6,15,[6]),dE=m(k(_,1),At,6,15,[2]),wr=m(k(_,2),v9,11,0,[null,m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[0]),m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[4]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[0]),m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[4]),m(k(_,1),At,6,15,[3,5]),m(k(_,1),At,6,15,[2,4,6]),m(k(_,1),At,6,15,[1,3,5,7]),m(k(_,1),At,6,15,[0]),m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),null,null,null,null,null,null,null,null,null,null,m(k(_,1),At,6,15,[2,3]),m(k(_,1),At,6,15,[2,4]),m(k(_,1),At,6,15,[3,5]),m(k(_,1),At,6,15,[2,4,6]),m(k(_,1),At,6,15,[1,3,5,7]),m(k(_,1),At,6,15,[0,2]),m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),null,null,null,null,null,null,null,null,null,null,m(k(_,1),At,6,15,[1,2,3]),m(k(_,1),At,6,15,[2,4]),m(k(_,1),At,6,15,[3,5]),m(k(_,1),At,6,15,[2,4,6]),m(k(_,1),At,6,15,[1,3,5,7]),m(k(_,1),At,6,15,[0,2,4,6]),m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[2])]),ll=m(k(_,2),v9,11,0,[null,m(k(_,1),At,6,15,[1]),null,m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),null,null,m(k(_,1),At,6,15,[-3]),m(k(_,1),At,6,15,[-2]),m(k(_,1),At,6,15,[-1]),null,m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),null,m(k(_,1),At,6,15,[-3]),m(k(_,1),At,6,15,[-2]),m(k(_,1),At,6,15,[-1]),null,m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[2,3,4]),m(k(_,1),At,6,15,[2,3,4,5]),m(k(_,1),At,6,15,[2,3,6]),m(k(_,1),At,6,15,[2,3,4,7]),m(k(_,1),At,6,15,[2,3]),m(k(_,1),At,6,15,[2,3]),m(k(_,1),At,6,15,[2,3]),m(k(_,1),At,6,15,[1,2]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[2,4]),m(k(_,1),At,6,15,[-3,3,5]),m(k(_,1),At,6,15,[-2]),m(k(_,1),At,6,15,[-1]),null,m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[4]),m(k(_,1),At,6,15,[3,5]),m(k(_,1),At,6,15,[6]),m(k(_,1),At,6,15,[4,6,7]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[2,4]),m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[2,4]),m(k(_,1),At,6,15,[-3,3,5]),m(k(_,1),At,6,15,[-2,4,6]),m(k(_,1),At,6,15,[-1]),null,m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3,4]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[2,3]),m(k(_,1),At,6,15,[2,3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[2,3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[4]),m(k(_,1),At,6,15,[5]),m(k(_,1),At,6,15,[6]),m(k(_,1),At,6,15,[4,6,7]),m(k(_,1),At,6,15,[3,4]),m(k(_,1),At,6,15,[3,4]),m(k(_,1),At,6,15,[2,4]),m(k(_,1),At,6,15,[1,3]),m(k(_,1),At,6,15,[1,2]),m(k(_,1),At,6,15,[1,3]),m(k(_,1),At,6,15,[2,4]),m(k(_,1),At,6,15,[3,5]),m(k(_,1),At,6,15,[-2,2,4]),m(k(_,1),At,6,15,[-1,1]),null,m(k(_,1),At,6,15,[1]),m(k(_,1),At,6,15,[2]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[4]),m(k(_,1),At,6,15,[4,5]),m(k(_,1),At,6,15,[3,4,5,6]),m(k(_,1),At,6,15,[3,4,5,6]),m(k(_,1),At,6,15,[3,4,5,6]),m(k(_,1),At,6,15,[3,4,5,6]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3,4]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[3]),m(k(_,1),At,6,15,[2,3]),m(k(_,1),At,6,15,[2,3]),m(k(_,1),At,6,15,[3])])}function to(t,e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt;if(t.K||t.yb(e,Vi(t.L,e),W1(t.R,mt(t.L,e)),Z1(t.R,Rt(t.L,e))),ht=null,R1(t.L,e)!=0&&(A1=w.Math.abs(R1(t.L,e))==1?\"\":\"\"+w.Math.abs(R1(t.L,e)),ht=R1(t.L,e)<0?A1+\"-\":A1+\"+\"),H=null,wt=l0(t.L,e),O(wt,0)!=0&&(gt(V(wt,Ao),0)&&(H=H==null?\"*\":H+\",*\"),gt(V(wt,no),0)&&(H=H==null?\"!*\":H+\",!*\"),gt(V(wt,Po),0)?H=H==null?\"ha\":H+\",ha\":gt(V(wt,2),0)?H=H==null?\"a\":H+\",a\":gt(V(wt,4),0)&&(H=H==null?\"!a\":H+\",!a\"),gt(V(wt,E0),0)&&(H=H==null?\"s\":H+\",s\"),gt(V(wt,uP),0)&&(R=V(wt,uP),O(R,1792)==0?H=H==null?\"h0\":H+\",h0\":O(R,1664)==0?H=H==null?\"h1\":H+\",h1\":O(R,1408)==0?H=H==null?\"h2\":H+\",h2\":O(R,128)==0?H=H==null?\"h>0\":H+\",h>0\":O(R,384)==0?H=H==null?\"h>1\":H+\",h>1\":O(R,896)==0?H=H==null?\"h>2\":H+\",h>2\":O(R,ue)==0?H=H==null?\"h<3\":H+\",h<3\":O(R,1536)==0?H=H==null?\"h<2\":H+\",h<2\":O(R,1152)==0&&(H=H==null?\"h1-2\":H+\",h1-2\")),gt(V(wt,yr),0)&&(D=V(wt,yr),O(D,ro)==0?H=H==null?\"c0\":H+\",c0\":O(D,Ef)==0?H=H==null?\"c+\":H+\",c+\":O(D,Sf)==0&&(H=H==null?\"c-\":H+\",c-\")),gt(V(wt,li),0)&&(st=V(wt,li),O(st,98304)==0?H=H==null?\"pi0\":H+\",pi0\":O(st,81920)==0?H=H==null?\"pi1\":H+\",pi1\":O(st,49152)==0?H=H==null?\"pi2\":H+\",pi2\":O(st,On)==0&&(H=H==null?\"pi>0\":H+\",pi>0\")),gt(V(wt,hi),0)&&($=V(wt,hi),O($,io)==0?H=H==null?\"n1\":H+\",n1\":O($,j2)==0?H=H==null?\"n2\":H+\",n2\":O($,R2)==0?H=H==null?\"n3\":H+\",n3\":O($,fo)==0?H=H==null?\"n<3\":H+\",n<3\":O($,KA)==0?H=H==null?\"n<4\":H+\",n<4\":O($,Ti)==0?H=H==null?\"n>1\":H+\",n>1\":O($,NP)==0?H=H==null?\"n>2\":H+\",n>2\":O($,If)==0?H=H==null?\"n>3\":H+\",n>3\":O($,3276800)==0?H=H==null?\"n1-2\":H+\",n1-2\":O($,2228224)==0?H=H==null?\"n1-3\":H+\",n1-3\":O($,2490368)==0&&(H=H==null?\"n2-3\":H+\",n2-3\")),gt(V(wt,xf),0)&&(l=V(wt,xf),O(l,cy)==0?H=H==null?\"e0\":H+\",e0\":O(l,wy)==0?H=H==null?\"e1\":H+\",e1\":O(l,gy)==0?H=H==null?\"e2\":H+\",e2\":O(l,dy)==0?H=H==null?\"e3\":H+\",e3\":O(l,N6)==0?H=H==null?\"e<2\":H+\",e<2\":O(l,G6)==0?H=H==null?\"e<3\":H+\",e<3\":O(l,Do)==0?H=H==null?\"e<4\":H+\",e<4\":O(l,p2)==0?H=H==null?\"e>0\":H+\",e>0\":O(l,By)==0?H=H==null?\"e>1\":H+\",e>1\":O(l,vy)==0?H=H==null?\"e>2\":H+\",e>2\":O(l,uo)==0?H=H==null?\"e>3\":H+\",e>3\":O(l,O6)==0?H=H==null?\"e1-2\":H+\",e1-2\":O(l,q6)==0?H=H==null?\"e1-3\":H+\",e1-3\":O(l,z6)==0&&(H=H==null?\"e2-3\":H+\",e2-3\")),gt(V(wt,120),0)&&(rt=V(wt,120),O(rt,112)==0?H=H==null?\"!r\":H+\",!r\":O(rt,8)==0?H=H==null?\"r\":H+\",r\":O(rt,96)==0?H=H==null?\"rb<3\":H+\",rb<3\":O(rt,104)==0?H=H==null?\"rb2\":H+\",rb2\":O(rt,88)==0?H=H==null?\"rb3\":H+\",rb3\":O(rt,56)==0&&(H=H==null?\"rb4\":H+\",rb4\")),gt(V(wt,lr),0)&&(H=H==null?\"r\"+ve(G0(V(wt,lr),22)):H+\",\"+(\"r\"+ve(G0(V(wt,lr),22)))),gt(V(wt,l9),0)&&(H=AL(H,WW(wt))),gt(V(wt,M2),0)&&(H=H==null?\"ox\"+ve(Y1(G0(V(wt,M2),47),7)):H+\",\"+(\"ox\"+ve(Y1(G0(V(wt,M2),47),7)))),gt(V(wt,d9),0)&&(H=H==null?\"f\":H+\",f\")),we(t.L,e)!=0&&(H=AL(H,\"\"+we(t.L,e))),St=0,jA(t.L,e)!=0)switch(jA(t.L,e)){case 16:ht=ht==null?\"|\":ht+\",|\";break;case 32:St=1;break;case 48:St=2}if(L=null,(t.G&64)==0){if(E9(t.L,e))L=\"?\";else if(qU(t.L,e)!=0&&(fe(t.L,e)==0||A==null||A[fe(t.L,e)][OA(t.L,e)]>1))if(N(t.L,e)==2)switch(qU(t.L,e)){case 2:L=xi(t.L,e)?\"p\":\"P\";break;case 1:L=xi(t.L,e)?\"m\":\"M\";break;default:L=\"*\"}else switch(qU(t.L,e)){case 1:L=xi(t.L,e)?\"r\":\"R\";break;case 2:L=xi(t.L,e)?\"s\":\"S\";break;default:L=\"*\"}}if((t.G&768)!=0&&(L=AL(L,\"\"+C0(t.L,e))),X=null,(t.G&16)!=0&&M1(t.L,e)!=0&&(X=\"\"+M1(t.L,e)),T=null,NQ(t.L,e)!=-1&&(h=A5(t,e),h!=-1&&(T=h==0?\"abs\":((h&255)==1?\"&\":\"or\")+(1+(h>>8)))),C=0,(t.G&be)==0&&(t.L.L?gt(V(l0(t.L,e),q1),0)&&(C=xt(t.L,e)):(J(t.L,e)!=6||we(t.L,e)!=0||!t.q[e]||jA(t.L,e)!=0)&&(C=xt(t.L,e))),a=!1,I=!1,r=(t.G&Q0)!=0?null:eP(t.L,e),r!=null&&r.startsWith(\"]\")&&(a=H==null,I=!0,H=AL((zt(1,r.length+1),r.substr(1)),H),r=null),r!=null?C=0:IA(t.L,e)!=null?(P=gt(V(l0(t.L,e),1),0)?\"[!\":\"[\",r=P+s5(t.L,e)+\"]\",r.length>5&&(r=P+IA(t.L,e).length+\"]\")):gt(V(l0(t.L,e),1),0)?r=\"?\":(J(t.L,e)!=6||ht!=null||H!=null&&(!a||(t.G&g8)==0)||C>0||!t.q[e])&&(r=Vi(t.L,e)),gt(V(l0(t.L,e),q1),0)&&C==0&&(H=H==null?\"!s\":H+\",!s\"),tt=0,!r0(t.L,e)&se(t.L,e)&&$1(t,-8),r!=null?(tt=t.vb(r),EP(t,W1(t.R,mt(t.L,e)),Z1(t.R,Rt(t.L,e)),r,!0),t.s[e]=!0):AK(t,e)&&xz(t,W1(t.R,mt(t.L,e)),Z1(t.R,Rt(t.L,e)),e),ht!=null&&(t.Cb((t.X*2+1)/3|0),Qt=W1(t.R,mt(t.L,e))+((tt+t.vb(ht))/2+1),yt=Z1(t.R,Rt(t.L,e))-((t.wb()*4-4)/8|0),EP(t,Qt,yt,ht,!0),t.Cb(t.X)),(t.G&2)!=0&&(H=\"\"+e),H!=null&&(I?t.Cb((t.X*5+1)/6|0):t.Cb((t.X*2+1)/3|0),Qt=W1(t.R,mt(t.L,e))-(tt+t.vb(H))/2,yt=Z1(t.R,Rt(t.L,e))-((t.wb()*4-4)/8|0),EP(t,Qt,yt,H,!0),t.Cb(t.X)),L!=null&&(t.Cb((t.X*2+1)/3|0),Qt=W1(t.R,mt(t.L,e))-(tt+t.vb(L))/2,yt=Z1(t.R,Rt(t.L,e))+((t.wb()*4+4)/8|0),Xt=t.C,t.L.P!=1&&(t.G&E0)==0&&$1(t,448),EP(t,Qt,yt,L,!1),$1(t,Xt),t.Cb(t.X)),X!=null&&(t.Cb((t.X*2+1)/3|0),Qt=W1(t.R,mt(t.L,e))+((tt+t.vb(X))/2+1),yt=Z1(t.R,Rt(t.L,e))+((t.wb()*4+4)/8|0),Xt=t.C,$1(t,Fn(t.L,e)?384:448),EP(t,Qt,yt,X,!0),$1(t,Xt),t.Cb(t.X)),T!=null&&(n=sZ(t,e),t.Cb((t.X*2+1)/3|0),Qt=W1(t.R,mt(t.L,e))+.7*t.wb()*w.Math.sin(n),yt=Z1(t.R,Rt(t.L,e))+.7*t.wb()*w.Math.cos(n),Xt=t.C,!t.K&&t.L.P!=1&&$1(t,l5(t,e)),EP(t,Qt,yt,T,!1),$1(t,Xt),t.Cb(t.X)),C==0&&St==0){t.C==-8&&$1(t,-9);return}for(b=c(Ut,Tt,6,4,15,1),S=0;S<Ue(t.L,e);S++)for(f=Nt(t.L,e,S),K=0;K<2;K++)q(t.L,K,f)==e&&(ct=_0(t.L,q(t.L,K,f),q(t.L,1-K,f)),ct<Qo?(b[0]-=ct+HA,b[3]+=ct+l1):ct<0?(b[2]+=ct+HA,b[3]-=ct):ct<HA?(b[1]+=ct,b[2]+=HA-ct):(b[0]+=ct-HA,b[1]+=l1-ct));if(N(t.L,e)==0?rA(t.L,e)?b[3]-=.2:b[1]-=.2:b[1]-=.1,(ht!=null||X!=null)&&(b[1]+=10),(H!=null||L!=null)&&(b[3]+=10),v=\"\",C!=0&&(j=t.vb(\"H\"),d=0,g=t.wb(),C>1&&(v=\"\"+C,t.Cb((t.X*2+1)/3|0),d=t.vb(v)),b[1]<.6||b[3]<.6?(o=Z1(t.R,Rt(t.L,e)),b[1]<=b[3]?(b[1]+=10,Q=W1(t.R,mt(t.L,e))+(tt+j)/2):(b[3]+=10,Q=W1(t.R,mt(t.L,e))-(tt+j)/2-d)):(Q=W1(t.R,mt(t.L,e)),b[0]<b[2]?(b[0]+=10,o=Z1(t.R,Rt(t.L,e))-g):(b[2]+=10,o=Z1(t.R,Rt(t.L,e))+g)),d>0&&(Qt=Q+(j+d)/2,yt=o+((t.wb()*4+4)/8|0),EP(t,Qt,yt,v,!0),t.Cb(t.X)),EP(t,Q,o,\"H\",!0)),i=0,St!=0){for(W=50,s=0,E=0;E<4;E++)y=E>1?E-2:E+2,b[E]<W?(i=E,W=b[E],s=b[y]):b[E]==W&&b[y]>s&&(i=E,s=b[y]);switch(i){case 0:Q=W1(t.R,mt(t.L,e)),o=Z1(t.R,Rt(t.L,e))-t.V-tt/2;break;case 1:Q=W1(t.R,mt(t.L,e))+t.V+tt/2,o=Z1(t.R,Rt(t.L,e));break;case 2:Q=W1(t.R,mt(t.L,e)),o=Z1(t.R,Rt(t.L,e))+t.V+tt/2;break;default:Q=W1(t.R,mt(t.L,e))-t.V-tt/2,o=Z1(t.R,Rt(t.L,e))}if(St==1)Ft(t.$,new lA(Q-t.V,o-t.V,2*t.V,2*t.V)),t.K||Ft(t.U,new Vu(Q,o,gQ(t,e)?-3:t.p[e]));else{switch(i){case 2:case 0:bt=2*t.V,Kt=0,Q-=t.V;break;case 1:bt=0,Kt=2*t.V,o-=t.V;break;default:bt=0,Kt=2*t.V,o-=t.V}Ft(t.$,new lA(Q-t.V,o-t.V,2*t.V,2*t.V)),t.K||Ft(t.U,new Vu(Q,o,gQ(t,e)?-3:t.p[e])),Ft(t.$,new lA(Q+bt-t.V,o+Kt-t.V,2*t.V,2*t.V)),t.K||Ft(t.U,new Vu(Q+bt,o+Kt,gQ(t,e)?-3:t.p[e]))}}t.C==-8&&$1(t,-9)}function M6(t,e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1,Q1,Lt,pt,o0,V1,y0,m1,F1,h0,Y0,ZA,p0,B1,oe,$e,kA,kr,M8,sP,yP,rn,mr,Jn,fn,b9,eD,lt,r1,C8,AD,nD,PD;if(e<t.g&&i0(t.q,e)){if(lf(t,e,5)){if(h=new ML(t.r),v=new ML(t.r),l=!1,I=!1,a=!1,t.D[e]==6||t.D[e]==7){for(C=0;C<t.e[e];C++)if(lt=t.j[e][C],!!lf(t,lt,5))for(Rs(t,e,lt)&&(t.D[lt]==8||t.D[lt]==16||t.D[lt]==7&&t.e[lt]+xt(t,lt)==3&&!i2(t,lt))&&Ft(h,U1(lt)),h0=0;h0<t.e[lt];h0++)r1=t.j[lt][h0],r1!=e&&lf(t,r1,5)&&Rs(t,e,r1)&&(t.D[r1]==8||t.D[r1]==16||t.D[r1]==7&&t.e[r1]+xt(t,r1)==3&&!i2(t,r1))&&Ft(v,U1(r1));for(y=new Zt(h);y.a<y.c.a.length;)if(s=_t(y).a,t.D[s]==8||t.D[s]==16){I=!0;break}for(g=new Zt(v);g.a<g.c.a.length;)if(T=_t(g).a,t.D[T]==8||t.D[T]==16){a=!0;break}for(R=0;R<h.a.length;R++)for(F1=R;F1<v.a.length;F1++)if(Rs(t,(te(R,h.a.length),h.a[R]).a,(te(F1,v.a.length),v.a[F1]).a)){l=!0;break}}switch(t.D[e]){case 6:if(v.a.length==0){for($e=0,ZA=0,B1=0,oe=0,R=0;R<t.e[e];R++)lt=t.j[e][R],t.D[lt]==7&&t.e[lt]+xt(t,lt)==3&&(++$e,t.t[lt]>0&&!i2(t,lt)&&++ZA,lf(t,lt,5)&&++B1,lf(t,lt,6)&&++oe);if(($e==2&&B1>0||$e==3&&B1==2)&&ZA>0&&oe==0)return 80}if(!(h.a.length==0^v.a.length==0)){for(PD=!0,nD=!0,R=0;R<t.e[e];R++)lt=t.j[e][R],(t.D[lt]!=6||!RJ(t,lt))&&(PD=!1),Rs(t,e,lt)&&!(lt<t.g&&i0(t.q,lt))&&(nD=!1);if(h.a.length==0&&v.a.length==0&&!PD&&nD||h.a.length!=0&&h.a.length!=0&&(!l||!I&&!a))return 78}if(h.a.length!=0&&(v.a.length==0||I))return 63;if(v.a.length!=0&&(h.a.length==0||a))return 64;break;case 7:if(i2(t,e))return 82;if(h.a.length==0&&v.a.length==0)return t.e[e]+xt(t,e)==3?39:76;if(t.e[e]+xt(t,e)==3&&h.a.length==0^v.a.length==0)return 81;if(h.a.length!=0&&(v.a.length==0||I))return 65;if(v.a.length!=0&&(h.a.length==0||a))return 66;if(h.a.length!=0&&v.a.length!=0)return 79;break;case 8:return 59;case 16:return 44}}if(lf(t,e,6))switch(t.D[e]){case 6:return 37;case 7:return i2(t,e)?69:t.e[e]+xt(t,e)==3?58:38}}switch(t.D[e]){case 3:if(t.k[e]==0)return 92;break;case 6:if(t.e[e]+xt(t,e)==4)return(t.q&&e<t.g?UA(t.q,e):0)==3?22:(t.q&&e<t.g?UA(t.q,e):0)==4?20:1;if(t.e[e]+xt(t,e)==3){for(kA=0,kr=0,sP=0,Jn=0,b=0,C=0;C<t.e[e];C++)lt=t.j[e][C],dt(t,o1(t,e,lt))==2&&(b=t.D[lt]),t.e[lt]+xt(t,lt)==1?(t.D[lt]==8&&++sP,t.D[lt]==16&&++Jn):t.D[lt]==7&&(t.e[lt]+xt(t,lt)==3?++kr:t.e[lt]+xt(t,lt)==2&&dt(t,o1(t,e,lt))==2&&++kA);return kr>=2&&kA==0&&b==7?57:sP==2||Jn==2?41:(t.q&&e<t.g?UA(t.q,e):0)==4&&b==6?30:b==7||b==8||b==15||b==16?3:2}if(t.e[e]+xt(t,e)==2)return 4;if(t.e[e]+xt(t,e)==1)return 60;break;case 7:for(b9=0,V1=!1,E=0;E<t.e[e];E++)if(lt=t.j[e][E],t.D[lt]==8&&t.e[lt]+xt(t,lt)==1&&++b9,G1(t,e)+xt(t,e)>=3&&(t.D[lt]==15||t.D[lt]==16)){for(mr=0,F1=0;F1<t.e[lt];F1++)r1=t.j[lt][F1],t.D[r1]==8&&t.e[r1]+xt(t,r1)==1&&++mr;V1||(V1=mr>=2)}if(t.e[e]+xt(t,e)==4)return i2(t,e)?68:34;if(t.e[e]+xt(t,e)==3){if(G1(t,e)+xt(t,e)>=4){for(j=!1,R=0;R<t.e[e];R++)if(lt=t.j[e][R],dt(t,o1(t,e,lt))==2&&(j=t.D[lt]==7||t.D[lt]==6,t.D[lt]==6))for(F1=0;j&&F1<t.e[lt];F1++)r1=t.j[lt][F1],r1!=e&&(j=!(t.D[r1]==7&&t.e[r1]+xt(t,r1)==3));if(b9==1)return 67;if(b9>=2)return 45;if(j)return 54}if(G1(t,e)+xt(t,e)>=3){for(ht=!1,st=!1,wt=!1,rt=!1,Qt=!1,A1=!1,A=0,n=0,P=0,r=0,f=0,o=0,R=0;R<t.e[e];R++)if(lt=t.j[e][R],t.D[lt]==6){for(Qt=!0,lt<t.g&&i0(t.q,lt)&&(t.q&&lt<t.g?UA(t.q,lt):0)==6&&(A1=!0),P=0,r=0,f=0,o=0,ZA=0,S=0,F1=0;F1<t.e[lt];F1++){if(r1=t.j[lt][F1],d=o1(t,lt,r1),dt(t,d)==2&&(t.D[r1]==8||t.D[r1]==16)&&(ht=!0),(dt(t,d)==2||d<t.i&&Ee(t.q,d)&&(t.D[r1]==6||t.D[r1]==7&&cz(t,r1)==1))&&(A=t.D[r1]),dt(t,d)==3&&(n=t.D[r1]),t.D[r1]==7&&t.e[r1]+xt(t,r1)==3){for(t.t[r1]==1&&++ZA,lf(t,lt,6)&&++S,Q=0,Y0=0;Y0<t.e[r1];Y0++)C8=t.j[r1][Y0],t.D[C8]==8&&++Q;Q<2&&++r}t.D[r1]==7&&t.e[r1]+xt(t,r1)==2&&(dt(t,d)==2||d<t.i&&Ee(t.q,d))&&++P,r1<t.g&&i0(t.q,r1)&&(t.D[r1]==8&&++f,t.D[r1]==16&&++o)}A==7&&(r==2&&P==0&&ZA>0&&S==0&&t.e[lt]+xt(t,lt)<4&&(st=!0),r==3&&(wt=!0))}else if(t.D[lt]==7){for(i=0,D=0,L=0,F1=0;F1<t.e[lt];F1++)if(r1=t.j[lt][F1],d=o1(t,lt,r1),dt(t,d)==2){if(t.D[r1]==6){for(Y0=0;Y0<t.e[r1];Y0++)C8=t.j[r1][Y0],C8!=e&&(t.D[C8]==7?++i:t.D[C8]==8?++D:t.D[C8]==16&&++L);i==0&&D==0&&L==0&&!A1&&(rt=!0)}t.D[r1]==7&&!A1&&(rt=!0)}}if(Qt){if(n==7&&(V1=!0),st)return 55;if(wt)return 56;if(!ht&&!V1&&(f==0&&o==0&&A1||A==6||A==7||A==15||n==6))return 40}if(!V1&&(ht||rt))return 10}}if(t.e[e]+xt(t,e)==2){if(G1(t,e)+xt(t,e)==4){for(W=!1,R=0;!W&&R<t.e[e];R++)lt=t.j[e][R],W=dt(t,o1(t,e,lt))==3;return W?61:53}if(G1(t,e)+xt(t,e)==3){for(yt=!1,X=!1,R=0;R<t.e[e];R++)lt=t.j[e][R],dt(t,o1(t,e,lt))==2&&(yt=t.D[lt]==8&&b9==1,X=t.D[lt]==6||t.D[lt]==7);if(yt&&!X)return 46;if(X)return 9}if(G1(t,e)+xt(t,e)>=2){for(Xt=!1,R=0;R<t.e[e];R++)if(lt=t.j[e][R],t.D[lt]==16){for(eD=0,F1=0;F1<t.e[lt];F1++)r1=t.j[lt][F1],t.D[r1]==8&&t.e[r1]+xt(t,r1)==1&&++eD;Xt=eD==1}if(Xt)return 48;if(!V1)return 62}}if(V1)return 43;if(t.e[e]+xt(t,e)==1){for(St=!1,$=!1,R=0;!St&&!$&&R<t.e[e];R++)if(lt=t.j[e][R],St=dt(t,o1(t,e,lt))==3,t.D[lt]==7&&t.e[lt]+xt(t,lt)==2)for(F1=0;!$&&F1<t.e[lt];F1++)r1=t.j[lt][F1],$=t.D[r1]==7&&t.e[r1]+xt(t,r1)==2||t.D[r1]==6&&t.e[r1]+xt(t,r1)==3;if(St)return 42;if($)return 47}return 8;case 8:if(t.e[e]+xt(t,e)==3)return 49;if(t.e[e]+xt(t,e)==2){if(G1(t,e)+xt(t,e)==3)return 51;for(p0=0,R=0;R<t.e[e];R++)lt=t.j[e][R],t.D[lt]==1&&++p0;return p0+xt(t,e)==2?70:6}if(t.k[e]<=1){for(M8=0,rn=0,fn=0,Q1=t.e[e]-t.k[e]+xt(t,e)>0,K=!1,H=!1,D1=!1,Kt=!1,Lt=!1,ct=!1,bt=!1,m1=!1,o0=!1,y0=!1,pt=!1,R=0;R<t.e[e]&&!(Q1||K||H||D1||Kt||Lt||ct||bt||m1||o0||y0||pt);R++){if(lt=t.j[e][R],t.D[lt]==6||t.D[lt]==7||t.D[lt]==16)for(F1=0;F1<t.e[lt];F1++)r1=t.j[lt][F1],t.D[r1]==7&&t.e[r1]+xt(t,r1)==2&&++M8,t.D[r1]==8&&t.e[r1]+xt(t,r1)==1&&++rn,t.D[r1]==16&&t.e[r1]+xt(t,r1)==1&&++fn;Q1=t.D[lt]==1,t.D[lt]==6&&(K=rn==2,H=dt(t,o1(t,e,lt))==2,D1=dt(t,o1(t,e,lt))==1&&rn==1),t.D[lt]==7&&(Kt=dt(t,o1(t,e,lt))==2,dt(t,o1(t,e,lt))==1&&rn==1&&(Lt=t.e[lt]+xt(t,lt)==2||G1(t,lt)+xt(t,lt)==3,ct=G1(t,lt)+xt(t,lt)==4),bt=rn>=2),t.D[lt]==16&&(m1=fn==1,o0=dt(t,o1(t,e,lt))==1||dt(t,o1(t,e,lt))==2&&rn+M8>1,y0=dt(t,o1(t,e,lt))==2&&rn+M8==1),pt=t.D[lt]==15||t.D[lt]==17}if(D1||Lt||Q1)return 35;if(K||bt||ct||m1||o0||pt)return 32;if(H||Kt||y0)return 7}break;case 9:if(t.k[e]==1)return 11;if(t.k[e]==0)return 89;break;case 11:if(t.k[e]==0)return 93;break;case 12:if(t.k[e]==0)return 99;break;case 14:return 19;case 15:if(t.e[e]+xt(t,e)==4)return 25;if(t.e[e]+xt(t,e)==3)return 26;if(t.e[e]+xt(t,e)==2)return 75;break;case 16:if(t.e[e]+xt(t,e)==3||t.e[e]+xt(t,e)==4){for(yP=0,fn=0,tt=!1,R=0;R<t.e[e];R++)lt=t.j[e][R],t.D[lt]==6&&dt(t,o1(t,e,lt))==2&&(tt=!0),(t.k[lt]==1&&t.D[lt]==8||t.e[lt]+xt(t,lt)==2&&t.D[lt]==7)&&++yP,t.k[lt]==1&&t.D[lt]==16&&++fn;return t.e[e]+xt(t,e)==3&&yP==2&&tt||t.e[e]+xt(t,e)==4?18:yP>0&&fn>0||yP==2&&!tt?73:17}if(t.e[e]+xt(t,e)==2){for(S1=!1,R=0;R<t.e[e];R++)lt=t.j[e][R],t.D[lt]==8&&dt(t,o1(t,e,lt))==2&&(S1=!0);return S1?74:15}if(t.e[e]+xt(t,e)==1){for(AD=0,tt=!1,R=0;R<t.e[e];R++){for(lt=t.j[e][R],F1=0;F1<t.e[lt];F1++)r1=t.j[lt][F1],t.D[r1]==16&&t.e[r1]+xt(t,r1)==1&&++AD;t.D[lt]==6&&dt(t,o1(t,e,lt))==2&&(tt=!0)}return tt&&AD!=2?16:72}break;case 17:if(t.k[e]==4){for(sP=0,R=0;R<t.e[e];R++)lt=t.j[e][R],t.D[lt]==8&&++sP;if(sP==4)return 77}if(t.k[e]==1)return 12;if(t.k[e]==0)return 90;break;case 19:if(t.k[e]==0)return 94;break;case 20:if(t.k[e]==0)return 96;break;case 26:if(t.k[e]==0){if(t.t[e]==2)return 87;if(t.t[e]==3)return 88}break;case 29:if(t.k[e]==0){if(t.t[e]==1)return 97;if(t.t[e]==2)return 98}break;case 30:if(t.k[e]==0)return 95;break;case 35:if(t.k[e]==1)return 13;if(t.k[e]==0)return 91;break;case 53:if(t.k[e]==1)return 14}return 0}function C6(){C6=v1,Bl=m(k(XA,1),Pe,6,14,[524290,524292,524297,524301,589826,589827,589828,589829,589832,589833,589837,589838,688130,688131,688132,688137,688141,819202,819203,819204,819205,819208,819209,1114114,1114115,1114116,1114120,1212420,1343492,1343496,1638402,1638403,17367042,17367043,17367044,17367045,17367048,17367049,17367053,17367054,17465346,1074266116,1208483842,1208483844,1208549378,1208549379,1208549380,1208549384,1208549388,1409810434,1409875970,1409875971,1409875972,1409875976,1409974274,1409974280,1409974284,1678311426,1678311427,1678311428,1678311432,1678311436,1678409730,1678409731,1678409732,1678540802,1678540803,1678540804,1678540808,2282291202,2282291203,2282389506,2282389507,2282520578,2282520579,2483617794,2483617795,2483716098,2483716099,2752675842,3356033026,3557359618,3557457922,3557588994,34510798850,34510798851,34510798852,34510798856,34712125442,34712125443,34712125444,34712125448,34712223746,34712223747,34712223748,34980560898,34980560899,34980659202,35568287746,35568287747,35568287748,35568287752,35568386050,35568386051,35568386052,35568517122,35568517123,35568517124,35568517128,35568812034,35568812035,35568910338,35568910339,35568910350,35569336322,35585064962,35585064963,35585064964,35585064968,35769548802,35769614338,35769712642,35769843714,35786391554,WC,_C,$C,aC,tH,eH,AH,nH,PH,rH,iH,fH,DH,3437652377603,uH,QH,4674334294019,oH,UH,4674602827778,LH,sH,yH,lH,5086651154435,hH,5086651252739,TH,5086651252744,cH,5086919589896,wH,5086919819266,gH,dH,BH,5636675633154,{l:589826,m:73760,h:4},{l:589827,m:73760,h:4},{l:688130,m:73760,h:4},{l:819202,m:73760,h:4},{l:65538,m:73764,h:4},{l:65539,m:73764,h:4},{l:589826,m:172064,h:4},{l:589827,m:172064,h:4},{l:688130,m:172064,h:4},{l:819202,m:172064,h:4},{l:819203,m:172064,h:4},{l:65538,m:172068,h:4},{l:65539,m:172068,h:4},{l:589826,m:172112,h:4},{l:589827,m:172112,h:4},{l:688130,m:172112,h:4},{l:819202,m:172112,h:4},{l:65538,m:172116,h:4},{l:163842,m:172116,h:4},{l:589826,m:303136,h:4},{l:688130,m:303136,h:4},{l:819202,m:303136,h:4},{l:65538,m:303140,h:4},{l:589826,m:303184,h:4},{l:688130,m:303184,h:4},{l:819202,m:303184,h:4},{l:65538,m:303188,h:4},vH,FH,kH,mH,bH,jH,RH,{l:688130,m:590224,h:4},{l:819202,m:590224,h:4},pH,MH,CH,HH,VH,EH,SH,IH,{l:688135,m:590416,h:4},xH,{l:1212430,m:590416,h:4},{l:65538,m:598052,h:4},{l:65538,m:598100,h:4},{l:65539,m:598100,h:4},{l:163842,m:598100,h:4},{l:163843,m:598100,h:4},NH,GH,OH,{l:688131,m:598304,h:4},qH,zH,KH,JH,YH,{l:589826,m:688672,h:4},XH,ZH,WH,_H,{l:589827,m:590112,h:336},$H,aH,tV,eV,AV,nV,PV,rV,iV,{l:688130,m:819536,h:400},fV,DV,uV,{l:589831,m:590112,h:592},QV,oV,UV,LV,sV,yV,{l:819207,m:819600,h:592},lV,hV,TV,{l:589832,m:1212816,h:592},{l:688136,m:1212816,h:592},cV,wV,gV,dV,BV,{l:589826,m:819488,h:8480},vV,FV,kV,mV,{l:819208,m:1213008,h:8480},bV,jV,{l:688130,m:590160,h:8484},{l:589826,m:598304,h:8484},RV,{l:819202,m:598304,h:8484}]),_f=m(k(Oe,1),uA,6,15,[-.1899999976158142,1.2699999809265137,-.7009999752044678,2.690999984741211,-.22699999809265137,CM,.10599999874830246,-.47600001096725464,-.44699999690055847,-.19099999964237213,-.3330000042915344,.0860000029206276,.24699999392032623,-.06199999898672104,.01600000075995922,.3869999945163727,.23499999940395355,-.4320000112056732,-.902999997138977,.38999998569488525,.5809999704360962,4.52400016784668,-.6349999904632568,-.2800000011920929,.7699999809265137,-.05000000074505806,1.0870000123977661,.19200000166893005,.19599999487400055,-.5199999809265137,.5419999957084656,.3630000054836273,.7919999957084656,.5920000076293945,.9639999866485596,HV,-.6850000023841858,-.3149999976158142,-.4129999876022339,-.5950000286102295,.2199999988079071,-1.4320000410079956,-2.253999948501587,.4399999976158142,-.27000001072883606,-.13300000131130219,-.26899999380111694,.2669999897480011,.5720000267028809,-.5680000185966492,.17399999499320984,-.1850000023841858,-.23499999940395355,OV,qV,-.34200000762939453,-.3479999899864197,-.43700000643730164,-.8040000200271606,-.41200000047683716,-.2150000035762787,-.625,-.8309999704360962,.4970000088214874,-.4309999942779541,-1.3309999704360962,.5070000290870667,-.6320000290870667,-.5989999771118164,-.15600000321865082,-.3529999852180481,-.164000004529953,-.4410000145435333,-.4970000088214874,-1.059999942779541,.11500000208616257,-.22499999403953552,-.15399999916553497,-.03099999949336052,-1.5740000009536743,-1.093000054359436,IV,-.44999998807907104,-.5559999942779541,qV,2.384000062942505,1.75,-1.6660000085830688,-1.065999984741211,1.3270000219345093,.8029999732971191,-1.5049999952316284,-2.5369999408721924,OV,.14900000393390656,.5210000276565552,2.9049999713897705,-.25200000405311584,.8600000143051147,.3610000014305115,.40299999713897705,.004999999888241291,1.1460000276565552,.9359999895095825,-.30000001192092896,.20900000631809235,-.5830000042915344,-.024000000208616257,-.009999999776482582,.6110000014305115,.4860000014305115,.8619999885559082,-.03500000014901161,-.5960000157356262,1.1610000133514404,1.6469999551773071,.843999981880188,.125,.1420000046491623,-.17100000381469727,.44200000166893005,.08799999952316284,3.065999984741211,1.6519999504089355,zV,-.017999999225139618,.023000000044703484,.0729999989271164,.2540000081062317,.5540000200271606,.5950000286102295,-.4059999883174896,-.6370000243186951,-.17399999499320984,-.10100000351667404,-.5429999828338623,-2.4059998989105225,-3.2920000553131104,-.05299999937415123,-.19300000369548798,d4,-1.2610000371932983,-.656000018119812,-.7300000190734863,-.9380000233650208,.12800000607967377,1.1540000438690186,.24199999868869781,-.5289999842643738,-.27799999713897705,-.8019999861717224,.9120000004768372,-1.38100004196167,.46299999952316284,1.0740000009536743,-.628000020980835,-.9620000123977661,-1.8320000171661377,-1.4989999532699585,-2.115999937057495,-2.2070000171661377,-1.3170000314712524,2.500999927520752,-.8489999771118164,EV,-.621999979019165,2.121999979019165,-2.2260000705718994,.9129999876022339,-2.259000062942505,-1.25,1.3940000534057617,-1.4019999504089355,2.072999954223633,-2.9570000171661377,.29100000858306885,-3.4760000705718994,-2.7269999980926514,-3.131999969482422,-2.119999885559082,-.7250000238418579,-.296999990940094,.08299999684095383,.34700000286102295,-1.4249999523162842,-1.659999966621399,-1.281999945640564,-1.2649999856948853,.718999981880188,.1379999965429306,1.3020000457763672,.859000027179718,1.3589999675750732,.6589999794960022,-.9399999976158142,.8999999761581421,.3190000057220459,-2.571000099182129,1.1089999675750732,.972000002861023,1.652999997138977,2.6019999980926514,.7289999723434448,1.065999984741211,1.0670000314712524,-.3109999895095825,.03099999949336052,zV,-.6809999942779541,-1.2580000162124634,fC,-3.0959999561309814,-.2280000001192093,1.9329999685287476,.11900000274181366,2.1080000400543213,.11299999803304672,1.628000020980835,1.3079999685287476,3.3359999656677246,.7540000081062317,-.4650000035762787,-.3970000147819519,.07699999958276749,-.4790000021457672,-.15299999713897705,.14100000262260437,2.134999990463257,.23399999737739563,.460999995470047,.6700000166893005,-.3610000014305115,-1.0390000343322754,-.4830000102519989,.13699999451637268,-.7680000066757202,-.5109999775886536,3.4240000247955322,-.8550000190734863,-.5849999785423279,-1.5670000314712524,3.3429999351501465,1.840000033378601,.3889999985694885,1.121999979019165,B4,1.3350000381469727,.3659999966621399,-.5569999814033508,.4320000112056732,.20399999618530273,.8820000290870667,.4659999907016754,-.4580000042915344,.40400001406669617,.6570000052452087,1.1150000095367432,1.9759999513626099,1.7860000133514404,-.035999998450279236,-1.0499999523162842,1.0449999570846558,.04399999976158142,1.0329999923706055,-1.0800000429153442,2.5390000343322754,2.234999895095825,h4,3.121000051498413,3.931999921798706,2.75])}function DM(t,e,A,n,P){var r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I,a,H,K,tt,X,W,$,st,ht,wt,rt,ct,Xt,St,A1,Qt,bt,yt,Kt,S1,D1,Q1,Lt,pt,o0,V1,y0,m1,F1,h0,Y0,ZA,p0,B1,oe,$e,kA,kr,M8,sP,yP,rn,mr,Jn,fn,b9,eD,lt,r1,C8,AD,nD,PD,Sc,Ic,xc,Nc,Gc,Oc,qc,zc,Nl,Gl,Kc,Jc,Yc,Xc,Zc,Wc,Dn,_c,$c,ac,tw,ew,Aw,nw,Pw,rw,iw,fw,zP,Dw,H8,Z2,W2,SS,Ol,IS,xS,NS,GS,i1,uw,OS,qS,zS,j9,KS,KP,_2,ql,Wo,JS,lP,zl,YS,_o,XS,$o,ZS,ao;if(KL(e),e.d=null,!(A==null||0>=A.length)){if(t.g=e,zl=8,n!=null&&(P<0||P>=n.length)&&(n=null),uL(t,A,0),f=nt(t,4),C=nt(t,4),f>8&&(zl=f,f=C),f==0){Be(t.g,nt(t,1)==1);return}for(D=nt(t,f),Q=nt(t,C),GS=nt(t,f),zS=nt(t,f),OS=nt(t,f),ht=nt(t,f),y=0;y<D;y++)i9(t.g,6);for($e=0;$e<GS;$e++)$0(t.g,nt(t,f),7);for(kA=0;kA<zS;kA++)$0(t.g,nt(t,f),8);for(lt=0;lt<OS;lt++)$0(t.g,nt(t,f),nt(t,8));for(Oc=0;Oc<ht;Oc++)m0(t.g,nt(t,f),nt(t,4)-8);for(wt=1+Q-D,yt=nt(t,4),R=0,ge(t.g,0,0),Ve(t.g,0,0),Xn(t.g,0,0),Kt=n!=null&&n[P]>=39,lP=0,_o=0,$o=0,ao=0,St=!1,A1=!1,Kt&&(n.length>2*D-2&&n[2*D-2]==39||n.length>3*D-3&&n[3*D-3]==39?(A1=!0,St=n.length==3*D-3+9,zP=St?3*D-3:2*D-2,j=86*(n[zP+1]-40)+n[zP+2]-40,lP=w.Math.pow(10,j/2e3-1),zP+=2,YS=86*(n[zP+1]-40)+n[zP+2]-40,_o=w.Math.pow(10,YS/1500-1),zP+=2,XS=86*(n[zP+1]-40)+n[zP+2]-40,$o=w.Math.pow(10,XS/1500-1),St&&(zP+=2,ZS=86*(n[zP+1]-40)+n[zP+2]-40,ao=w.Math.pow(10,ZS/1500-1))):St=n.length==3*D-3),t.ac()&&St&&(n=null,Kt=!1),Dn=1;Dn<D;Dn++){if(Q1=nt(t,yt),Q1==0){Kt&&(ge(t.g,Dn,t.g.K[0].a+8*(n[Dn*2-2]-83)),Ve(t.g,Dn,t.g.K[0].b+8*(n[Dn*2-1]-83)),St&&Xn(t.g,Dn,t.g.K[0].c+8*(n[2*D-3+Dn]-83))),++wt;continue}R+=Q1-1,Kt&&(ge(t.g,Dn,mt(t.g,R)+n[Dn*2-2]-83),Ve(t.g,Dn,Rt(t.g,R)+n[Dn*2-1]-83),St&&Xn(t.g,Dn,oA(t.g,R)+(n[2*D-3+Dn]-83))),K0(t.g,R,Dn,1)}for(nw=0;nw<wt;nw++)K0(t.g,nt(t,f),nt(t,f),1);for(Dw=c(Pt,it,6,Q,16,1),K=0;K<Q;K++)switch(tt=nt(t,2),tt){case 0:Dw[K]=!0;break;case 2:w0(t.g,K,2);break;case 3:w0(t.g,K,4)}for(i=nt(t,f),Pw=0;Pw<i;Pw++)if(s=nt(t,f),zl==8)j9=nt(t,2),j9==3?(Ne(t.g,s,1,0),ke(t.g,s,1,!1)):ke(t.g,s,j9,!1);else switch(j9=nt(t,3),j9){case 4:ke(t.g,s,1,!1),Ne(t.g,s,1,nt(t,3));break;case 5:ke(t.g,s,2,!1),Ne(t.g,s,1,nt(t,3));break;case 6:ke(t.g,s,1,!1),Ne(t.g,s,2,nt(t,3));break;case 7:ke(t.g,s,2,!1),Ne(t.g,s,2,nt(t,3));break;default:ke(t.g,s,j9,!1)}for(zl==8&&nt(t,1)==0&&(t.g.M=!0),r=nt(t,C),rw=0;rw<r;rw++)if(S=nt(t,C),c1(t.g,S)==1)switch(j9=nt(t,3),j9){case 4:Q8(t.g,S,1,!1),T8(t.g,S,1,nt(t,3));break;case 5:Q8(t.g,S,2,!1),T8(t.g,S,1,nt(t,3));break;case 6:Q8(t.g,S,1,!1),T8(t.g,S,2,nt(t,3));break;case 7:Q8(t.g,S,2,!1),T8(t.g,S,2,nt(t,3));break;default:Q8(t.g,S,j9,!1)}else Q8(t.g,S,nt(t,2),!1);for(Be(t.g,nt(t,1)==1),L=null,Wo=null,uw=0;nt(t,1)==1;)switch(bt=uw+nt(t,4),bt){case 0:for(i1=nt(t,f),iw=0;iw<i1;iw++)s=nt(t,f),w1(t.g,s,q1,!0);break;case 1:for(i1=nt(t,f),fw=0;fw<i1;fw++)s=nt(t,f),IS=nt(t,8),O9(t.g,s,IS);break;case 2:for(i1=nt(t,C),kr=0;kr<i1;kr++)nt(t,C);break;case 3:for(i1=nt(t,f),M8=0;M8<i1;M8++)s=nt(t,f),w1(t.g,s,E0,!0);break;case 4:for(i1=nt(t,f),sP=0;sP<i1;sP++)s=nt(t,f),ql=Wt(nt(t,4),3),w1(t.g,s,ql,!0);break;case 5:for(i1=nt(t,f),yP=0;yP<i1;yP++)s=nt(t,f),o=Wt(nt(t,2),1),w1(t.g,s,o,!0);break;case 6:for(i1=nt(t,f),rn=0;rn<i1;rn++)s=nt(t,f),w1(t.g,s,1,!0);break;case 7:for(i1=nt(t,f),mr=0;mr<i1;mr++)s=nt(t,f),p0=Wt(nt(t,4),7),w1(t.g,s,p0,!0);break;case 8:for(i1=nt(t,f),Jn=0;Jn<i1;Jn++){for(s=nt(t,f),v=nt(t,4),T=c(B,F,6,v,15,1),H8=0;H8<v;H8++)g=nt(t,8),T[H8]=g;ST(t.g,s,T)}break;case 9:for(i1=nt(t,C),fn=0;fn<i1;fn++)S=nt(t,C),ql=nt(t,2)<<7,Xe(t.g,S,ql,!0);break;case 10:for(i1=nt(t,C),b9=0;b9<i1;b9++)S=nt(t,C),W=nt(t,5),Xe(t.g,S,W,!0);break;case 11:for(i1=nt(t,f),eD=0;eD<i1;eD++)s=nt(t,f),w1(t.g,s,be,!0);break;case 12:for(i1=nt(t,C),r1=0;r1<i1;r1++)S=nt(t,C),$=nt(t,8)<<9,Xe(t.g,S,$,!0);break;case 13:for(i1=nt(t,f),C8=0;C8<i1;C8++)s=nt(t,f),KS=Wt(nt(t,3),14),w1(t.g,s,KS,!0);break;case 14:for(i1=nt(t,f),AD=0;AD<i1;AD++)s=nt(t,f),NS=Wt(nt(t,5),17),w1(t.g,s,NS,!0);break;case 15:case 31:uw+=16;break;case 16:for(i1=nt(t,f),nD=0;nD<i1;nD++)s=nt(t,f),_2=Wt(nt(t,3),22),w1(t.g,s,_2,!0);break;case 17:for(i1=nt(t,f),PD=0;PD<i1;PD++)s=nt(t,f),tn(t.g,s,nt(t,4));break;case 18:for(i1=nt(t,f),Ol=nt(t,4),Sc=0;Sc<i1;Sc++){for(s=nt(t,f),Qt=nt(t,Ol),Z2=c(_,At,6,Qt,15,1),H8=0;H8<Qt;H8++)Z2[H8]=nt(t,7)<<24>>24;IP(t.g,s,on((W2=Z2,c0(),W2)))}break;case 19:for(i1=nt(t,f),Ic=0;Ic<i1;Ic++)s=nt(t,f),st=Wt(nt(t,3),25),w1(t.g,s,st,!0);break;case 20:for(i1=nt(t,C),xc=0;xc<i1;xc++)S=nt(t,C),_2=nt(t,3)<<17,Xe(t.g,S,_2,!0);break;case 21:for(i1=nt(t,f),Nc=0;Nc<i1;Nc++)s=nt(t,f),Je(t.g,s,nt(t,2)<<4);break;case 22:for(i1=nt(t,f),Gc=0;Gc<i1;Gc++)s=nt(t,f),w1(t.g,s,d9,!0);break;case 23:for(i1=nt(t,C),qc=0;qc<i1;qc++)S=nt(t,C),Xe(t.g,S,F8,!0);break;case 24:for(i1=nt(t,C),zc=0;zc<i1;zc++)S=nt(t,C),o=nt(t,2)<<21,Xe(t.g,S,o,!0);break;case 25:for(Nl=0;Nl<D;Nl++)nt(t,1)==1&&vP(t.g,Nl,!0);break;case 26:for(i1=nt(t,C),L=c(B,F,6,i1,15,1),Gl=0;Gl<i1;Gl++)L[Gl]=nt(t,C);break;case 27:for(i1=nt(t,f),Kc=0;Kc<i1;Kc++)s=nt(t,f),w1(t.g,s,ne,!0);break;case 28:for(i1=nt(t,C),Jc=0;Jc<i1;Jc++)w0(t.g,nt(t,C),16);break;case 29:for(i1=nt(t,f),Yc=0;Yc<i1;Yc++)s=nt(t,f),ZA=Wt(nt(t,2),30),w1(t.g,s,ZA,!0);break;case 30:for(i1=nt(t,f),Xc=0;Xc<i1;Xc++)s=nt(t,f),_2=Wt(nt(t,7),32),w1(t.g,s,_2,!0);break;case 32:for(i1=nt(t,f),Zc=0;Zc<i1;Zc++)s=nt(t,f),JS=Wt(nt(t,2),44),w1(t.g,s,JS,!0);break;case 33:for(i1=nt(t,f),Wc=0;Wc<i1;Wc++)s=nt(t,f),y0=Wt(nt(t,5),39),w1(t.g,s,y0,!0);break;case 34:for(i1=nt(t,f),_c=0;_c<i1;_c++)s=nt(t,f),w1(t.g,s,Po,!0);break;case 35:for(i1=nt(t,C),$c=0;$c<i1;$c++)S=nt(t,C),Xe(t.g,S,Nf,!0);break;case 36:for(i1=nt(t,C),ac=0;ac<i1;ac++)S=nt(t,C),X=nt(t,2)<<5,Xe(t.g,S,X,!0);break;case 37:for(i1=nt(t,C),tw=0;tw<i1;tw++)S=nt(t,C),X=nt(t,1)==0?32:64,w0(t.g,S,X);break;case 38:for(i1=nt(t,f),rt=nt(t,3),Wo=c(B,F,6,D,15,1),ew=0;ew<i1;ew++)s=nt(t,f),ct=nt(t,rt),Wo[s]=ct;break;case 39:for(i1=nt(t,f),Aw=0;Aw<i1;Aw++)s=nt(t,f),qS=Wt(nt(t,4),47),w1(t.g,s,qS,!0);break;case 40:for(i1=nt(t,f),Ol=nt(t,6),xS=nt(t,16),oe=0;oe<i1;oe++){for(s=nt(t,f),Qt=nt(t,Ol),Z2=new M0,H8=0;H8<Qt;H8++)Ye(Z2,nt(t,xS)&d1);IP(t.g,s,Z2.a)}}if(jf(new p9(t.g),Dw,!1),L!=null)for(I=L,a=0,H=I.length;a<H;++a)S=I[a],w0(t.g,S,c1(t.g,S)==2?4:2);if(n==null&&!t.i&&A.length>t.e+1&&(A[t.e+1]==32||A[t.e+1]==9)&&(n=A,P=t.e+2),n!=null)try{if(n[P]==33||n[P]==35){for(uL(t,n,P+1),St=nt(t,1)==1,A1=nt(t,1)==1,KP=2*nt(t,4),E=1<<KP,h0=0,S=0,l=1;l<D;l++)S<Q&&q(t.g,1,S)==l?(h0=q(t.g,0,S++),F1=1):(h0=0,F1=8),S1=F1*(nt(t,KP)+1-(E>>1)),D1=F1*(nt(t,KP)+1-(E>>1)),ge(t.g,l,mt(t.g,h0)+S1),Ve(t.g,l,Rt(t.g,h0)+D1),St&&Xn(t.g,l,oA(t.g,h0)+F1*(nt(t,KP)+1-(E>>1)));if(n[P]==35){for(B1=0,Y0=c(B,F,6,D,15,1),h=0;h<D;h++)B1+=Y0[h]=xt(t.g,h);for(s=0;s<D;s++)for(oe=0;oe<Y0[s];oe++)p0=i9(t.g,1),K0(t.g,s,p0,1),ge(t.g,p0,mt(t.g,s)+(nt(t,KP)+1-(E>>1))),Ve(t.g,p0,Rt(t.g,s)+(nt(t,KP)+1-(E>>1))),St&&Xn(t.g,p0,oA(t.g,s)+(nt(t,KP)+1-(E>>1))),Wo!=null&&(Wo[s]&1<<oe)!=0&&vP(t.g,p0,!0);D+=B1,Q+=B1}if(b=St?1.5:(O1(),O1(),Bn),d=dP(t.g,D,Q,b),A1)for(lP=qO(nt(t,KP),E),_o=lP*yT(nt(t,KP),E),$o=lP*yT(nt(t,KP),E),St&&(ao=lP*yT(nt(t,KP),E)),F1=lP/d,s=0;s<D;s++)ge(t.g,s,_o+F1*mt(t.g,s)),Ve(t.g,s,$o+F1*Rt(t.g,s)),St&&Xn(t.g,s,ao+F1*oA(t.g,s));else for(lP=1.5,F1=lP/d,s=0;s<D;s++)ge(t.g,s,F1*mt(t.g,s)),Ve(t.g,s,F1*Rt(t.g,s)),St&&Xn(t.g,s,F1*oA(t.g,s))}else if(St&&!A1&&lP==0&&(lP=1.5),lP!=0&&t.g.s!=0){for(d=0,S=0;S<t.g.s;S++)Lt=mt(t.g,q(t.g,0,S))-mt(t.g,q(t.g,1,S)),pt=Rt(t.g,q(t.g,0,S))-Rt(t.g,q(t.g,1,S)),o0=St?oA(t.g,q(t.g,0,S))-oA(t.g,q(t.g,1,S)):0,d+=w.Math.sqrt(Lt*Lt+pt*pt+o0*o0);for(d/=t.g.s,m1=lP/d,s=0;s<t.g.r;s++)ge(t.g,s,mt(t.g,s)*m1+_o),Ve(t.g,s,Rt(t.g,s)*m1+$o),St&&Xn(t.g,s,oA(t.g,s)*m1+ao)}}catch(V8){if(V8=_1(V8),Jt(V8,19))V1=V8,ur(V1,(z1(),k9),\"\"),\"\"+V1+on((SS=A,c0(),SS))+on((W2=n,W2)),n=null,St=!1;else throw et(V8)}if(Xt=n!=null&&!St,vW(t),Xt||t.ac())for(ut(t.g,7),S=0;S<t.g.i;S++)dt(t.g,S)==2&&!A8(t.g,S)&&ze(t.g,S)==0&&hh(t.g,S);if(TD(t.g,0),!Xt&&t.ac())try{t.bc(t.g),Xt=!0}catch(V8){if(V8=_1(V8),Jt(V8,19))V1=V8,ur(V1,(z1(),k9),\"\"),\"\"+V1+on((W2=A,c0(),W2));else throw et(V8)}Xt?(hf(t.g),Yh(t.g)):St||TD(t.g,0)}}function pf(){pf=v1,F9=m(k(ft,1),Dt,2,6,[\"QM@HzAmdqjF@\",\"RF@Q``\",\"qC`@ISTAlQE`\",\"`J@H\",\"QM@HzAmdqbF@\",\"qC`@ISTAlQEhqPp@\",\"sJP@DiZhAmQEb\",\"RF@QPvR@\",\"QM@HzA@\",\"qC`@ISTAlQEhpPp@\",\"qC`@Qz`MbHl\",\"sJP@DiZhAmQEcFZF@\",\"RFPDXH\",\"qC`@IVtAlQE`\",\"QM@HvAmdqfF@\",\"sGP@DiVj`FsDVM@\",\"`L@H\",\"sJP@DizhAmQEcFBF@\",\"sJP@DjvhAmQEb\",\"sFp@DiTt@@AlqEcP\",\"sGP@LdbMU@MfHlZ\",\"QMHAIhD\",\"QM@HzAy@\",\"sJP@DkVhAmQEb\",\"sNp@DiUjj@[\\\\QXu`\",\"sJP@DiZhAmQEcFBF@\",\"sGP@DjVj`FsDVM@\",\"RFPDTH\",\"RG@DXOH@\",\"sGP@Divj`FsDVMcAC@\",\"sGP@Dj}j`FsDVM@\",\"qC`@Qz`MbHmFRF@\",\"sNp@LdbJjj@[\\\\QXu`\",\"QMHAIhGe@\",\"QM@HzAyd`\",\"QM`AIhD\",\"qC`@ISTA@\",\"sGP@DkUj`FsDVM@\",\"qC`@IVtAlQEhqPp@\",\"sNp@DiUjj@[\\\\QXuqea`@\",\"KAx@@IRjuUPAlHPfES\\\\\",\"QM`BN`P\",\"sJP@DjZhAmQEcFJF@\",\"Hid@@DjU^nBBH@FtaBXUMp`\",\"sNp@Diujj@[\\\\QXuq`a`@\",\"sJP@DjvhAmQEcFZF@\",\"sJP@DjZhAmQEcFFF@\",\"sOp@DjWkB@@FwDVM\\\\YhX@\",\"sNp@Dj}Zj@[\\\\QXu`\",\"sNp@DiWjj@[\\\\QXuq`a`@\",\"sOp@DjWkB@@D\",\"KAx@@ITouUPAlHPfES\\\\\",\"KAx@@YIDTjjh@vDHSBin@\",\"sNp@DkUZj@[\\\\QXu`\",\"RFPDXOH@\",\"QM`BN`^L`\",\"qC`@ISTAy@\",\"sGP@LdbMU@MfHl[FVF@\",\"qCb@AIZ`H\",\"KAx@@IRjuUPAlHPfES]FFa`@\",\"KAx@@ITnuUPAlHPfES\\\\\",\"HiD@@DiUVjj`AmHPfES\\\\H\",\"sNp@DjUjj@[\\\\QXu`\",\"sJP@DkVhAmQEcFJF@\",\"sGP@DjVj`FsDVMcCC@\",\"qC`@Qz`MbHmFBF@\",\"sJP@DkfhAmQEb\",\"qC`@IVtAlQEhsPp@\",\"sGP@Djuj`FsDVM@\",\"sGP@Dj}j`FsDVMcMC@\",\"sJP@DiZhA@\",\"KAx@@ISjuUPAlHPfES]F@a`@\",\"sJP@DjZhAmQEcFRF@\",\"KAx@@IRnuUPAlHPfES]F@a`@\",\"HiD@@DjWvjj`AmHPfES\\\\H\",\"QMHAIhGd@\",\"sNp@DiUjj@[\\\\QXuq`a`@\",\"KAx@@IVjmUPAlHPfES\\\\\",\"sGP@DjVj`FsDVMcMC@\",\"QM`AIhGe@\",\"HiD@@LdbJRjjh@[RDIaTwB\",\"qCp@AIZ`H\",\"sGP@LdbMU@MfHl[FFF@\",\"QMDARVA@\",\"sNp@LdbJjj@[\\\\QXuqba`@\",\"sNp@LdbJjj@[\\\\QXuqca`@\",\"sGP@Dkej`FsDVM@\",\"qCb@AIZ`OI@\",\"HaD@@DjUZxHH@AlHPfES]FLa`@\",\"sGP@DkYj`FsDVM@\",\"qCb@AIV`H\",\"sNp@LdbJjj@[\\\\QXuqea`@\",\"sGP@DkUj`FsDVMcEC@\",\"sFp@DiTt@@Axa@\",\"Hmt@@DjU_ZxHHj@AmhPfES\\\\Lj\",\"QM`BN`^P\",\"qCb@AIZ`OH`\",\"sFp@DiTt@@AxaP\",\"sGP@Djuj`FsDVMcEC@\",\"sGP@Djuj`FsDVMcIC@\",\"sGP@DkUj`FsDVMcKC@\",\"sJP@DkfhAmQEcFRF@\",\"sGP@DjVj`FsDVMcIC@\",\"HaD@@DjUZxHH@AlHPfES]FFa`@\",\"qC`@IRtDVqDV@\",\"sNp@Dj}Zj@[\\\\QXuqfa`@\",\"KAx@@ITnuUPAlHPfES]FFa`@\",\"HiD@@DkUUjj`AmHPfES\\\\H\",\"sJQ@@dkU@H\",\"qC`@Qz`H\",\"KAx@@IUkmUPAlHPfES\\\\\",\"KAx@@ITouUPAlHPfES]FJa`@\",\"sJP@H~j@[TQX`\",\"sGP@DjZj`FsDVM@\",\"sJP@DkVhAmQEcFFF@\",\"sJX@@eKU@H\",\"sJP@DizhAy@\",\"QMHAIhGbP\",\"KAx@@ITouUPAlHPfES]FNa`@\",\"HaD@@DjUZxHD@AlHPfES\\\\\",\"HaD@@DjUZxHH@A@\",\"sNp@LdbJjj@[\\\\QXuqaa`@\",\"Hed@@LdbRQUUUP@vTHSBinFP\",\"KAx@@ITouUPAlHPfES]FLa`@\",\"sNp@DkUZj@[\\\\QXuqba`@\",\"KAx@@ITjuUPAlHPfES]FNa`@\",\"KAx@@YIDTjjh@vDHSBincGPp@\",\"HaD@@DjYvxH`@AlHPfES]FLa`@\",\"RF@QP`\",\"qCb@AIj`H\",\"sNp@DjUjj@[\\\\QXuqaa`@\",\"sNp@DkVZj@[\\\\QXu`\",\"KAx@@YIDUJjh@vDHSBin@\",\"sGP@DkYj`FsDVMcIC@\",\"sGP@DjVj`FsDVMcAC@\",\"sGP@DiVj`D\",\"sJP@DkVhAmQEcFZF@\",\"sNp@LdbLjj@[\\\\QXu`\",\"QM@HvAmdqbF@\",\"HaD@@DjWjXHB@AlHPfES\\\\\",\"sNp@DjwZj@[\\\\QXuqba`@\",\"sNp@LdbJjj@[\\\\QXuqda`@\",\"sFp@DiTt@@Axa`\",\"HiD@@Djuujj`AmHPfES\\\\H\",\"sNp@DkUZj@[\\\\QXuqca`@\",\"sJP@DiZhAy@\",\"KAx@@YIDTjjh@vDHSBincCPp@\",\"KAx@@IWNmUPAlHPfES\\\\\",\"KAx@@IVkMUPAlHPfES\\\\\",\"sJQ@@dju@H\",\"qCb@AIZ`OH@\",\"qC`@ISTAxa@\",\"sNp@DjyZj@[\\\\QXu`\",\"Hid@@DjUfaBB`@FtaBXUMp`\",\"HiD@@DiUVjj`AmHPfES\\\\LXBF@\",\"KAx@@IUjmUPAlHPfES\\\\\",\"HiD@@DjWvjj`AmHPfES\\\\LXjF@\",\"sJP@DjVhAmQEb\",\"qCb@AIV`OH`\",\"HiD@@LdbJRjjh@[RDIaTwCFDa`@\",\"KAx@@YIDTjjh@vDHSBinc@Pp@\",\"sNp@DjUjj@[\\\\QXuqda`@\",\"qC`@Qz`OED\",\"sJP@DkfhAmQEcFZF@\",\"KAx@@YIDbjjh@vDHSBincDPp@\",\"sGP@Djyj`FsDVMcMC@\",\"KAx@@IVrmUPAlHPfES\\\\\",\"qCp@AIZ`OI@\",\"sJX@@dkU@H\",\"sJQ@@dkU@OH`\",\"sNp@Di]ZjBBvxbqk@\",\"Hkl@@DjU_Uk``bj`@[VDIaTwCJzX\",\"sGP@DjZj`FsDVMcEC@\",\"Hid@@DjU^nBBH@FtaBXUMpqcHX@\",\"sNp@DkeZj@[\\\\QXu`\",\"sNp@DjYjj@[\\\\QXuqca`@\",\"sGQ@@djuT@`\",\"HiD@@LdbJTjjh@[RDIaTwB\",\"sOp@DjWkB@@Gd`\",\"HeT@@LdbbRKBDQD@CYPaLJfxY@\",\"qCr@XIKTA@\",\"HiD@@DjW^jj`AmHPfES\\\\LXJF@\",\"HeT@@DjU]k``b`@[JDIaTwCH\",\"sGP@Djuj`FsDVMcCC@\",\"`IH`B\",\"sOp@DjWkB@@GdX\",\"sJQ@@eKU@H\",\"KAx@@YIDUJjh@vDHSBincBPp@\",\"sJX@@eKU@OH@\",\"KAx@@YIDTjjh@vDHSBincAPp@\",\"sOq@@drm\\\\@@@`\",\"KAx@@IUkMUPAlHPfES\\\\\",\"qCp@AIj`H\",\"Hed@@DjUUjjj@FraBXUMpr\",\"sGX@@eJuT@`\",\"sGP@DkUj`FsDVMcCC@\",\"HiD@@Dj}Ujj`AmHPfES\\\\LXrF@\",\"KAx@@ITouUPAlHPfES]FHa`@\",\"Hed@@DjWujjj@FraBXUMpsFIa`@\",\"sGP@DiUj``mfHlZ\",\"sFp@DiTvjhAlqEcP\",\"Hid@@DjU^nBBH@FtaBXUMpq`XX@\",\"sJP@DkVdAmQEb\",\"qCp@AIZ`OH`\",\"QMhDRVA@\",\"qC`@ISJAlQE`\",\"qCp@BOTAyhl\",\"sJX@@eOU@ODB\",\"sFp@DiTt@@AyaB\",\"sGP@DkUj`FsDVMcMC@\",\"Hid@@DjYUaBH`@FtaBXUMpqcHX@\",\"qC`@Qz`OH@\",\"HiD@@DjUVjj`AmHPfES\\\\LXZF@\",\"sJP@H~j@[TQXqda`@\",\"sJX@@eKU@OI@\",\"sNp@Djejj@[\\\\QXu`\",\"sJQ@@dsU@H\",\"sJQ@@dkU@OI`\",\"KAx@@YIMDVjh@vDHSBin@\",\"Hid@@DjU^nBBD@FtaBXUMp`\",\"sNp@DkgZj@[\\\\QXuqca`@\",\"qC`@IRtDVqDVcEC@\",\"Hed@@LdbRQeUUP@vTHSBinFP\",\"sNp@DiUjj@P\",\"qC`@IRtDT\",\"sNp@DkYZj@[\\\\QXuqca`@\",\"KAx@@IUkmUPAlHPfES]FDa`@\",\"KAx@@IVjmUPAlHPfES]FNa`@\",\"sOx@@drm\\\\@@@`\",\"KAx@@ITjuUPAlHPfES]FBa`@\",\"QMDARVAyH\",\"sJP`@dfvhA@\",\"HeT@@DjU_k``b`@[JDIaTwCLXfF@\",\"KAx@@IToUUPAlHPfES]FJa`@\",\"sGP@DkYj`FsDVMcEC@\",\"qCb@AIZ`ODH\",\"`I@`B\",\"KAx@@IUzmUPAlHPfES]FFa`@\",\"sNp@DkfZj@[\\\\QXu`\",\"KAx@@ITnuUPAlHPfES]F@a`@\",\"HiD@@LddURjjh@[RDIaTwB\",\"sNp@Dj~Zj@[\\\\QXuqfa`@\",\"Hed@@Dj{uZjj@FraBXUMpr\",\"KAx@@ITsUUPAlHPfES\\\\\",\"Hid@@LdbRQk``b@AmHPfES\\\\LXrF@\",\"sOp@DjWkB@@GdH\",\"sJQ@@dkU@OH@\",\"Hid@@DjU^nBBH@FtaBXUMpqahX@\",\"sGP@DiYj``mfHlZ\",\"KAx@@IToUUPAlHPfES]FLa`@\",\"qCp@AJZ`ODH\",\"Hmt@@DjU]ZxHHj@AmhPfES\\\\Lj\",\"sGP@DkUjPFsDVM@\",\"qC`@IVtA@\",\"Hed@@LdbJReUUP@vTHSBinFP\",\"sNp@DjuZj@[\\\\QXuqea`@\",\"KAx@@IUkmUPAlHPfES]FNa`@\",\"HiD@@DkVUjj`AmHPfES\\\\H\",\"Hed@@DkUeZjj@FraBXUMpr\",\"sNp@DkVZj@[\\\\QXuqea`@\",\"sJP@DiVhHKZbKFLLL@\",\"HiD@@Djuyjj`AmHPfES\\\\H\",\"sNp@DjUjj@[\\\\QXuq`a`@\",\"HeT@@DjYUXPbH`@[JDIaTwCH\",\"HiD@@DjwUjj`AmHPfES\\\\LXRF@\",\"sNq@@djmUPB\",\"KAx@@YIEEZjh@vDHSBincCPp@\",\"sGP@Di^V`dmfHlZ\",\"Hid@@DjYUaBHP@FtaBXUMp`\",\"sNp@DjYjj@[\\\\QXuqba`@\",\"sGP@Dkej`FsDVMcKC@\",\"HeT@@DjU^k``b`@[JDIaTwCH\",\"qC`@Qv`MbHmFBF@\",\"sGQ@@djmT@`\",\"qCr@XIKTAyH\",\"qC`@IVtAlQEhpPp@\",\"Hid@@LdbbQxXF@@AmHPfES\\\\LXjF@\",\"sGP@DkYj`FsDVMcCC@\",\"KAx@@IVsMUPAlHPfES\\\\\",\"qCp@AIj`ODl\",\"HiD@@DkeUjj`AmHPfES\\\\H\",\"deT@@DjU[k``b`@vTHSBinFP\",\"sJP@DkVdAmQEcFRF@\",\"HiD@@LdbJTjjh@[RDIaTwCFDa`@\",\"HiD@@DkYyjj`AmHPfES\\\\H\",\"sJP@DjZhAyH\",\"KAx@@IVkMUPAlHPfES]FDa`@\",\"sJX@@dkU@OI@\",\"Hed@@LdbRQUUUP@vTHSBinFXpLL@\",\"Hed@@DjuUZjj@FraBXUMpr\",\"sGP@Djfj`FsDVMcKC@\",\"sNp@DkVZj@[\\\\QXuqba`@\",\"sNp@DjyZj@[\\\\QXuqfa`@\",\"qCb@AIj`OH@\",\"sNp@DjUZj@[\\\\QXu`\",\"KAx@@IWOMUPAlHPfES\\\\\",\"Hid@@DjU^nBBH@D\",\"Hed@@DjuvZjj@FraBXUMpr\",\"sJP@DiVhHKZbKFLtL@\",\"dmt@@DjU_ZxHHj@C[PaLJfxYVLKC@\",\"sNp@DjuZj@[\\\\QXuqca`@\",\"sJP@DkfhAmQEcFJF@\",\"sNp@LdbJZj@[\\\\QXu`\",\"HeT@@DjU_k``b`@[JDIaTwCLXFF@\",\"KAx@@IVlmUPAlHPfES]FNa`@\",\"HeT@@LdbbRKBDQD@CYPaLJfxYcEPp@\",\"Hid@@DjUZnBBH@FtaBXUMpqcHX@\",\"qCa@CIKTA@\",\"HiD@@Dj~]jj`AmHPfES\\\\LXFF@\",\"sKP@Di\\\\Zj@[TQX`\",\"sGP@Djfj`FsDVMcEC@\",\"HiD@@DkgYjj`AmHPfES\\\\H\",\"sNp@DjuZj@[\\\\QXuqaa`@\",\"KAx@@YIMDVjh@vDHSBincDPp@\",\"sJP@DjVhHKZbKFLTL@\",\"Hid@@LdbRQk``b@AmHPfES\\\\LXZF@\",\"HiD@@Dj}Ujj`AmHPfES\\\\LXzF@\",\"HeT@@DjU_k``bP@[JDIaTwCH\",\"sNp@DkUZi@[\\\\QXu`\",\"HiD@@DjYfjj`AmHPfES\\\\H\",\"sGP@DjZj`FsDVMcAC@\",\"Hmt@@DjU_jxHHj@AmhPfES\\\\Lj\",\"Hid@@LdbRQk``R@AmHPfES\\\\H\",\"KAx@@YIDUJjh@vDHSBincDPp@\",\"qCr@XIKTAyD\",\"sOq@@drm\\\\@@@|`@\",\"Hed@@DjW^jjj@FraBXUMpsFBa`@\",\"HeT@@DjY]zXFB@@[JDIaTwCH\",\"Hkl@@DjU_Vk``bj`@[VDIaTwCJzX\",\"Hid@@DjY}nBHH@FtaBXUMpqcHX@\",\"sGX@@eKuT@|d@\",\"sGP@Dj^Y`FsDVM@\",\"HcL@@DjU_ZnBBJh@FqaBXUMprn`\",\"sJP@DkVdAmQEcFJF@\",\"sOq@@drm\\\\@@@|b@\",\"sNp@DjyZj@[\\\\QXuqaa`@\",\"HaD@@DjUZxHH@AyD@\",\"qC`@Qv`H\",\"dmt@@DjU_ZxHHj@C[PaLJfxYVLYC@\",\"sGP@Dkej`FsDVMcMC@\",\"Hed@@DjUUjjj@FraBXUMpsFHa`@\",\"HeT@@LdbbRkBDQD@CYPaLJfxY@\",\"KAx@@IU{MUPAlHPfES]FLa`@\",\"RG@DTH\",\"sJY@DDeVhA@\",\"KAx@@YIDUJjh@vDHSBinc@Pp@\",\"sJX@@dkU@OI`\",\"sJQ@@dju@OI`\",\"HeT@@LdbbRKBDQD@CYPaLJfxYcFPp@\",\"sFp@DiTvjhAlqEcXpPp@\",\"HaD@@DjUZxHH@AyG@\",\"sNx@@eJ}UPB\",\"sNp@LddUjj@[\\\\QXuqca`@\",\"HaDH@@RVU[j@@@D\",\"sNp@DkgZi@[\\\\QXu`\",\"sGY@LDeVj`D\",\"sNp@LdbJfZBZvxbqk@\",\"sJP`@dfvhAyL\",\"sGX@AddQjhAxe`\",\"Hmt@@DjU_ZxHHj@AmhPfES\\\\LkFIa`@\",\"qCh@CIKTA@\",\"sNp@LdbLjj@[\\\\QXuq`a`@\",\"sOq@@drm\\\\@@@|a@\",\"KAx@@IUzmUPAlHPfES]FJa`@\",\"sNx@AddQUUPB\",\"sGP@Di]jP`mfHlZ\",\"sJP`@TeZhA@\",\"KAx@@IRjmUPHKXPaLJfx\",\"HeT@@LdbRTM\\\\DDT@CYPaLJfxY@\",\"HaF@@@Rfu[j@@@D\",\"Hid@@DjYUaBH`@FtaBXUMpqchX@\",\"KAx@@IUjmTpAlHPfES\\\\\",\"Hid@@DjU^nBBD@FtaBXUMpqcHX@\",\"sGP@DiUj``mfHl[FFF@\",\"KAx@@IUvmUPAlHPfES]FLa`@\",\"Hed@@LdbQTUUUP@vTHSBinFXqDL@\",\"sJP@DkVhA@\",\"sOx@@drm\\\\@@@|b@\",\"KAx@@IUkMUPAlHPfES]FDa`@\",\"HeT@@LdbRQU\\\\DDT@CYPaLJfxY@\",\"HiD@@Dj}Yjj`AmHPfES\\\\LXrF@\",\"HiD@@Dj{ujj`AmHPfES\\\\LXFF@\",\"KAx@@IWNmUPAlHPfES]FFa`@\",\"KAx@@IRkMUPHKXPaLJfx\",\"sJP@DjYdAmQEcFZF@\",\"sJY@LDeZhAyL\",\"HaDH@@RVU[f@@@D\",\"sJP`@deVhAyB\",\"HaD@@DjWjZjj`AlHPfES\\\\\",\"sGP@DkYj`FsDVMcMC@\",\"sNp@DkgZj@[\\\\QXuqea`@\",\"sJQ@@dlu@H\",\"HeT@@DjU]k``b`@[JDIaTwCLXrF@\",\"sJX@@dkU@OH`\",\"RFDDQFCr`\",\"sJP@DiYXIKZbKFLLL@\",\"KAx@@YIHjjjh@vDHSBincGPp@\",\"Hk\\\\@@DjU^ukmLHH@@@AmXPfES\\\\Lki`\",\"sGQ@@djmT@|b@\",\"Hid@@DjUfaBB`@FtaBXUMpqahX@\",\"sNx@@eRmUPB\",\"Hmt@@LdbRVak``ah@FvaBXUMprh\",\"qCr@XIJtA@\",\"KAx@@IWMmUPAlHPfES]FNa`@\",\"HeT@@DjYYZPbJ@@[JDIaTwCH\",\"sNp@DkfZj@[\\\\QXuqea`@\",\"Hid@@DjU^nBAHAEVtaBXUMp`\",\"dmt@@DjUgZDHJJ@C[PaLJfxYT\",\"sGP@DkejPFsDVM@\",\"sNx@@eJmUPB\",\"qCb@AIf`H\",\"HcL@@DjU_VnBBJh@FqaBXUMprnqcXX@\",\"Hid@@DjUZnBBH@FtaBXUMpqahX@\",\"sNp@LdbQZjBBvxbqkcGC@\",\"sOx@@drm\\\\@@@|c@\",\"sJP@H~j@^R@\",\"KAx@@YIDcFjhDElHPfES\\\\\",\"Hid@@DjUZnBAH@FtaBXUMp`\",\"sNp@LddUji@[\\\\QXu`\",\"sGP@DjfjPFsDVM@\",\"HeT@@DjYUXPbD`@[JDIaTwCH\",\"KAx@@IUoMUPAlHPfES]FDa`@\",\"sFp@DiTt@@AyaD\",\"Hed@@DjuuZjj@FraBXUMpsFIa`@\",\"HeT@@DjUghP`h`@[JDIaTwCLXfF@\",\"sOp@DjWkjj`FwDVM\\\\YhX@\",\"sGP@Djfj`FsDVMcIC@\",\"KAx@@IRkmUPHKXPaLJfzL]C@\",\"sNx@@djmUPB\",\"QM`AIdD\",\"sOp@DjWkB@@Gbe@\",\"sNp@DjyZj@[\\\\QXuqca`@\",\"QM@HuAmd`\",\"sNp@LddUjj@[\\\\QXuqea`@\",\"daD@@DjUZxHD@CXPaLJfzLYC@\",\"qCb@AIZPH\",\"HiD@@LdbJTjjh@[RDIaTwCF@a`@\",\"Hmt@@DjU_ZxHHi@AmhPfES\\\\Lj\",\"HaDH@@RYWih@H@D\",\"HiD@@LdbJTjjh@[RDIaTwCFHa`@\",\"sGX@@djuT@|a@\",\"sNp@DkfZj@[\\\\QXuqaa`@\",\"Hid@@DjU^nBBH@GdL\",\"KAx@@IVkMUPAlHPfES]FJa`@\",\"qCr@XIKTAy@\",\"HmT@@Dj{uVjjh@[ZDIaTwCJqaXX@\",\"dmt@@DjYWVDHbJ@C[PaLJfxYT\",\"Hif@@@RUe^Fh@@@P\",\"HaDH@@Rfu[j@@@GdH\",\"KAx@@IVsMUPAlHPfES]FDa`@\",\"sKP@Di\\\\Zj@[TQXq`a`@\",\"sJX@@eMU@OH@\",\"HeT@@DjU^k``b`@[JDIaTwCLXFF@\",\"Hmt@@LdbbRJXPbHh@FvaBXUMprh\",\"sJP@DjvhAmQEcFBF@\",\"dmt@@LdbbRNXPbHh@MmBDpj[aeXplL@\",\"sJP`@dfvhAyD\",\"sGP@Di^V`dmfHl[FVF@\",\"KAx@@IVsmUPAlHPfES]FBa`@\",\"sOq@@drm\\\\@@@|PP\",\"sJY@BDeZhA@\",\"HeT@@LdbRbmBDED@CYPaLJfxY@\",\"Hed@@Djy[Zjj@FraBXUMpr\",\"HeT@@DjU]k``b`@[JDIaTwCLXFF@\",\"Hid@@DjUfaBB`@D\",\"qCa@CIJtA@\",\"QMPARVA@\",\"Hid@@DjUfaBB`@FtaBXUMpqcHX@\",\"sJY@BDfZhA@\",\"HeT@@DjUghP`hP@[JDIaTwCH\",\"Hed@@Dj{uZjj@FraBXUMpsFIa`@\",\"dmt@@DjYUvDHbJ@C[PaLJfxYVLUC@\",\"sNp`@dfuZj@P\",\"sJQ@@dmU@OH@\",\"sJX@@dmU@H\",\"HeT@@DjU]k``b`@[JDIaTwCLXZF@\",\"HiD@@LdfbJZjh@[RDIaTwCFAa`@\",\"sOx@@drm\\\\@@@|a@\",\"deT@@DjUfhP`h`@vTHSBinFP\",\"dmt@@DjU]ZxHHj@C[PaLJfxYVLKC@\",\"sOp@DjWkjj`FwDVM\\\\XHX@\",\"HcL@@LdbbRNSBDQEP@McBDpj[ae]cFpp@\",\"HiD@@Dj}Yji`AmHPfES\\\\H\",\"HaDH@@RYe[hB@@D\",\"Hid@@DjU^njjj@FtaBXUMpq`XX@\",\"deT@@LdbbRKBDQB@FraBXUMpr\",\"QMPARZA@\",\"sOq@@drm\\\\@@@|QX\",\"HaD@@DjYvxH`@A@\",\"HcL@@LdbbRNcBDQEP@McBDpj[ae]@\",\"QMhDRZA@\",\"RG@DXLHmP\",\"QM`BN`XQYd\",\"RG@DTLHmP\",\"QMHAIXFEVd\",\"QMDARVAaH\",\"RFPDXLHmP\",\"RF@Q`vRbdLEC@\",\"RF@QpvR@\",\"QO@HyjAmd`\",\"`II@B\",\"`II@CFspqJp\",\"`II@CF[@hM@prB`\",\"`H@[T[|B`XN@PdM@p|@bHrBcDk@\",\"RG@DXMj}F@\",\"QM`BN`[L~b@\",\"RG@DTMj}D@\",\"QMHAIXFt~j@\",\"QMDARVA}L@\",\"RFPDXMj}D@\",\"sKP@Di\\\\YZ@[TQXqaa`@\",\"eF`BHD\"])}function uM(){uM=v1,ME=m(k(XA,1),Pe,6,14,[524290,524292,589826,589827,589828,589829,589832,589833,589837,589838,598019,598020,598024,606211,688130,688131,688132,688137,688142,696324,819202,819203,819204,819205,819214,827396,1048580,1114114,1114115,1114116,1114120,1212420,1220611,1343492,1343496,1638402,1638403,17367042,17367043,17367044,17367045,17367048,17367049,17367053,17367054,17375236,17465346,17465348,17465353,17473540,1208483842,1208483848,1208483912,1208549378,1208549379,1208549380,1208549384,1208549388,1208549442,1208549443,1208549444,1208549448,1208557571,1208565763,1208565827,1409875970,1409875971,1409875972,1409875976,1409876034,1409876035,1409876036,1409876040,1409884163,1409974274,1409974280,1409974338,1678245892,1678311426,1678311427,1678311428,1678311432,1678311490,1678311491,1678311492,1678311496,1678409730,1678409731,1678409732,1678409794,1678540802,1678540808,1678540810,1678540866,2282291202,2282291203,2282291266,2282291267,2282389506,2282389507,2282389570,2282389571,2282389572,2282520578,2282520579,2282520642,2282520643,2282537027,2483617794,2483617795,2483617858,2483617859,2483617860,2483617864,2483716098,2483716099,2483716162,2483716163,2484150275,2484248579,2752675842,3356033026,3356139523,3557359618,3557457922,3557588994,34510798914,34510798915,34510798916,34510798920,34510807107,34510815299,34712125506,34712125507,34712125508,34712125512,34712223810,34712223811,34712223812,34712223816,34980560962,34980560963,34980659266,34980659267,34980659268,35568287746,35568287747,35568287748,35568287752,35568287756,35568287810,35568287811,35568287812,35568287816,35568287820,35568386050,35568386051,35568386052,35568386114,35568386120,35568517122,35568517123,35568517124,35568517128,35568517186,35568517187,35568517188,35568517192,35568812034,35568812035,35568812098,35568812099,35568910338,35568910339,35568910403,35569336322,35569434626,35585064962,35585064963,35585064964,35585064968,35585065026,35585065027,35585065028,35585065032,35769614338,35769614340,35769614402,35769712642,35770138626,35770236930,35786391554,35786391555,2475109646403,WC,_C,2475109711938,2475109711939,2475109720067,2475109720131,2475109728259,2475109728323,$C,aC,2887426572354,2887426572355,tH,eH,2887627898946,AH,2887627997250,nH,PH,3437182386242,3437182386243,rH,3437383712771,3437383712834,iH,fH,DH,uH,4674132967490,4674132967491,4674132975619,QH,4674334294082,4674334294083,4674334302211,4674334302275,oH,4674334392386,UH,4674602729538,4674602827842,LH,4674602958914,sH,yH,5086449827906,5086449827907,5086449827912,lH,5086651154498,5086651162627,hH,TH,5086651252802,5086651252808,5086651260931,cH,5086919589954,wH,5086919688258,5086919819330,5636205641794,gH,5636406968386,dH,5636407066690,5636675403842,BH,5636675502146,{l:589890,m:73760,h:4},{l:589891,m:73760,h:4},{l:598083,m:73760,h:4},{l:688194,m:73760,h:4},{l:688195,m:73760,h:4},{l:696387,m:73760,h:4},{l:819266,m:73760,h:4},{l:65602,m:73764,h:4},{l:65603,m:73764,h:4},{l:589890,m:172064,h:4},{l:589891,m:172064,h:4},{l:598083,m:172064,h:4},{l:688194,m:172064,h:4},{l:688195,m:172064,h:4},{l:696387,m:172064,h:4},{l:819266,m:172064,h:4},{l:65602,m:172068,h:4},{l:65603,m:172068,h:4},{l:589890,m:172112,h:4},{l:589891,m:172112,h:4},{l:688194,m:172112,h:4},{l:819266,m:172112,h:4},{l:65602,m:172116,h:4},{l:65608,m:172116,h:4},{l:163906,m:172116,h:4},{l:589890,m:303136,h:4},{l:688194,m:303136,h:4},{l:819266,m:303136,h:4},{l:65602,m:303140,h:4},{l:589890,m:303184,h:4},{l:688194,m:303184,h:4},{l:819266,m:303184,h:4},{l:65602,m:303188,h:4},{l:65602,m:303252,h:4},vH,FH,{l:589890,m:590112,h:4},{l:589891,m:590112,h:4},kH,mH,{l:589890,m:590160,h:4},{l:589891,m:590160,h:4},bH,{l:688194,m:590160,h:4},jH,RH,{l:589890,m:590224,h:4},{l:589891,m:590224,h:4},{l:688131,m:590224,h:4},{l:688194,m:590224,h:4},pH,MH,{l:589890,m:590368,h:4},CH,{l:688194,m:590368,h:4},{l:696323,m:590368,h:4},HH,VH,{l:819266,m:590368,h:4},EH,SH,{l:589890,m:590416,h:4},{l:589891,m:590416,h:4},{l:589896,m:590416,h:4},IH,{l:688136,m:590416,h:4},{l:688194,m:590416,h:4},{l:696323,m:590416,h:4},xH,{l:819266,m:590416,h:4},{l:688130,m:590480,h:4},{l:688194,m:590480,h:4},{l:65602,m:598052,h:4},{l:65603,m:598052,h:4},{l:65602,m:598100,h:4},{l:65603,m:598100,h:4},{l:73795,m:598100,h:4},{l:163906,m:598100,h:4},{l:163907,m:598100,h:4},{l:65602,m:598164,h:4},{l:163906,m:598164,h:4},NH,GH,{l:589890,m:598304,h:4},{l:589891,m:598304,h:4},OH,{l:688194,m:598304,h:4},qH,{l:1114178,m:598304,h:4},zH,{l:1212424,m:598304,h:4},{l:1212482,m:598304,h:4},KH,JH,{l:589890,m:688416,h:4},YH,{l:589890,m:688464,h:4},{l:589890,m:688528,h:4},XH,ZH,{l:688130,m:688784,h:4},{l:65602,m:696356,h:4},{l:65602,m:696404,h:4},{l:163906,m:696404,h:4},{l:589826,m:696608,h:4},{l:1114178,m:696608,h:4},{l:1212418,m:696608,h:4},{l:589826,m:696612,h:4},{l:524355,m:590112,h:288},{l:589825,m:590112,h:288},WH,{l:589890,m:590112,h:288},{l:598019,m:590112,h:288},{l:598083,m:590112,h:288},_H,{l:589890,m:590112,h:336},{l:598019,m:590112,h:336},{l:598083,m:590112,h:336},$H,{l:589890,m:688416,h:336},aH,{l:589890,m:688464,h:336},tV,eV,{l:589827,m:590112,h:400},{l:589890,m:590112,h:400},{l:589891,m:590112,h:400},AV,nV,PV,rV,{l:589890,m:819488,h:400},iV,fV,DV,uV,{l:589827,m:819488,h:544},QV,oV,UV,{l:688199,m:688464,h:592},LV,sV,yV,{l:688202,m:819600,h:592},lV,{l:589896,m:1212704,h:592},hV,TV,{l:688200,m:1212752,h:592},cV,{l:688135,m:688464,h:656},{l:688135,m:819536,h:656},{l:589891,m:65936,h:8228},wV,{l:589890,m:590112,h:8480},{l:598019,m:590112,h:8480},gV,{l:589890,m:688416,h:8480},dV,{l:589890,m:688464,h:8480},BV,vV,FV,kV,{l:589896,m:1213008,h:8480},mV,{l:688200,m:1213008,h:8480},{l:688135,m:1343824,h:8480},bV,{l:589890,m:590112,h:8484},jV,{l:589890,m:590160,h:8484},{l:1212424,m:590416,h:8484},{l:1212488,m:590416,h:8484},RV,{l:688194,m:598304,h:8484},{l:589826,m:590112,h:8528},{l:589890,m:590112,h:8528}]),yc=m(k(Oe,1),uA,6,15,[.6966999769210815,0,.4885999858379364,-.47269999980926514,-.07490000128746033,pV,.273499995470047,.5699999928474426,.7009999752044678,.9534000158309937,-3.6435000896453857,-2.150899887084961,.4975000023841858,-2.19950008392334,-.2809000015258789,-.8259999752044678,-.1784999966621399,-1.620300054550171,-1.0959999561309814,-.3619999885559082,.13950000703334808,-.29750001430511475,-1.2907999753952026,1.0161999464035034,MV,-2.5383999347686768,Zy,.4291999936103821,-.5824000239372253,-.1834000051021576,.1306000053882599,-.5015000104904175,pV,-.5257999897003174,.4244000017642975,-.16099999845027924,-.2777999937534332,.5110999941825867,-.435699999332428,-.10409999638795853,.3424000144004822,-.061500001698732376,.6035000085830688,.7226999998092651,.43459999561309814,-1.6821000576019287,-.3310000002384186,-.49799999594688416,CV,-.3650999963283539,.45969998836517334,.3384000062942505,.6632999777793884,.4544000029563904,.15970000624656677,.633899986743927,.35040000081062317,.04490000009536743,.34200000762939453,.26109999418258667,.40459999442100525,.5218999981880188,-1.065000057220459,-1.2314000129699707,-1.802299976348877,-.36320000886917114,-.4108000099658966,.30570000410079956,-.14560000598430634,-.27129998803138733,-.5192999839782715,.45260000228881836,.5539000034332275,.8374000191688538,-.7070000171661377,-.48809999227523804,-.4099999964237213,0,.14790000021457672,.3447999954223633,.42980000376701355,.5579000115394592,-.1264999955892563,-.042500000447034836,.07670000195503235,.6635000109672546,-.38119998574256897,-.8367999792098999,1.0286999940872192,-.10209999978542328,.3587000072002411,-.5945000052452087,.16920000314712524,-.121799997985363,.32829999923706055,.22390000522136688,.20430000126361847,.05900000035762787,-.48350000381469727,.6165000200271606,-.4011000096797943,.5577999949455261,-.21639999747276306,-.017500000074505806,.29809999465942383,.10999999940395355,.27149999141693115,-.2994999885559082,-.46700000762939453,.1565999984741211,.046799998730421066,-.13210000097751617,1.3686000108718872,0,-.4115999937057495,1.0185999870300293,-.3935000002384186,.5223000049591064,.3684999942779541,.25769999623298645,1.5192999839782715,.2705000042915344,.3790999948978424,.012000000104308128,-.33970001339912415,.14830000698566437,.2766000032424927,.35929998755455017,.7714999914169312,.3149999976158142,-1.618499994277954,.18889999389648438,-.2651999890804291,-.09650000184774399,.420199990272522,.18709999322891235,-.3684000074863434,-.07779999822378159,.8942999839782715,.3693999946117401,.28790000081062317,.4489000141620636,-.26010000705718994,.4771000146865845,.1923000067472458,.43810001015663147,.16949999332427979,.45249998569488525,.3352000117301941,.1582999974489212,.4036000072956085,-.04800000041723251,.5023000240325928,-.26489999890327454,.76910001039505,-.35519999265670776,1.0300999879837036,-.11410000175237656,-.5932000279426575,.17489999532699585,.13130000233650208,-.18039999902248383,.399399995803833,.22910000383853912,.31690001487731934,.35989999771118164,-.0038999998942017555,-.2955999970436096,.4408999979496002,-.16089999675750732,.3774999976158142,-.13459999859333038,.2838999927043915,.5128999948501587,.1265999972820282,.4293999969959259,.28060001134872437,.49070000648498535,HV,.219200000166893,.15649999678134918,.6934999823570251,.3617999851703644,.6735000014305115,.5777999758720398,-.5636000037193298,.5569000244140625,.30379998683929443,-.32760000228881836,-.6991999745368958,.010300000198185444,-.4659000039100647,VV,Zy,.18410000205039978,.707099974155426,.12269999831914902,.7949000000953674,-.6592000126838684,-1.3148000240325928,-.4066999852657318,-.1316000074148178,-.4925000071525574,-.09290000051259995,-.4352000057697296,-.2206999957561493,-.9959999918937683,-.723800003528595,-.5468999743461609,-1.2939000129699707,-.01360000018030405,.065700002014637,.7189000248908997,.05700000002980232,.661899983882904,-.6381000280380249,-.8072999715805054,.23549999296665192,.30480000376701355,-.019899999722838402,-.07519999891519547,.44609999656677246,.1559000015258789,1.1167999505996704,-1.8039000034332275,.23649999499320984,-.22059999406337738,.4480000138282776,-1.1339999437332153,-.5652999877929688,-.40529999136924744,-.13609999418258667,.2198999971151352,.053599998354911804,-.020999999716877937,.6984999775886536,.9642999768257141,-.41519999504089355,-1.0369000434875488,-.18299999833106995,.5882999897003174,-.29179999232292175,-.5293999910354614,-.6541000008583069,.9473000168800354,-.19059999287128448,-.8483999967575073,-.3456999957561493,.9541000127792358,1.4230999946594238,-.7924000024795532,EV,SV,-.2596000134944916,.8381999731063843,-.4415999948978424,-.37040001153945923,-.7487000226974487,-.10790000110864639,-.29919999837875366,-.3276999890804291,.025100000202655792,-.9187999963760376,.10939999669790268,.8230999708175659,-3.233299970626831,.03500000014901161,VV,IV,.2791000008583069,.3206000030040741,.5662000179290771,-.3783999979496002,.4032000005245209,-1.794800043106079,-.15539999306201935,.3785000145435333,.05339999869465828,-.16529999673366547,-.09870000183582306,-.10050000250339508,-.6460999846458435,.8034999966621399,-.24050000309944153,-.12380000203847885,-.35760000348091125,.09610000252723694,-.6401000022888184,.2029000073671341,.23589999973773956,.4950999915599823,.19210000336170197,-.37450000643730164,.34630000591278076,.289900004863739,-.15330000221729279,-.4169999957084656,.37700000405311584,.6998000144958496,.593999981880188,.5911999940872192,-.5570999979972839,.023800000548362732,-.2475000023841858,.030700000002980232,-.38749998807907104,-.7437000274658203,.5144000053405762,.00570000009611249,.765500009059906,.1720000058412552,-2.5624001026153564,-.30660000443458557,.36469998955726624,.17270000278949738,-.03290000185370445,-.18930000066757202,.07020000368356705,-1.2453999519348145,.14959999918937683,MV,.4146000146865845,-.2667999863624573,-.11060000211000443,.03620000183582306,-.3188999891281128,-.7278000116348267,-.08940000087022781,-.22769999504089355,-.2393999993801117,1.011199951171875,-.2962000072002411,.7775999903678894,.2944999933242798,-.22339999675750732,.27639999985694885,.8011000156402588,-.17440000176429749,.15809999406337738,-1.7552000284194946,-.384799987077713,.5993000268936157,.5267999768257141,-.04170000180602074,.4733000099658966,-.3400999903678894,-.14499999582767487,.7088000178337097,-.13179999589920044,.04259999841451645,-.5027999877929688,.3831999897956848,-.011800000444054604,-.4357999861240387,.3749000132083893,-.12030000239610672,-.5648000240325928,-.1972000002861023,-.8769000172615051,-.3675000071525574,-.2003999948501587,-.6069999933242798,-.18569999933242798,.3467999994754791,-.36239999532699585,.5357999801635742,-.3700999915599823,.13359999656677246,.9545000195503235,.11389999836683273,-.16990000009536743,Zy,.2890999913215637,.2612999975681305,-.03440000116825104,-1.9498000144958496,-2.024899959564209,-.6004999876022339,-.6258000135421753,-1.2348999977111816,.328000009059906,-.54339998960495,-.7712000012397766,-.9057000279426575,-.16680000722408295,-.9904999732971191,-.03720000013709068,-1.1638000011444092,.12620000541210175,-.5248000025749207,-.15379999577999115,-.36820000410079956,.3249000012874603,.06499999761581421,.051100000739097595,-.46070000529289246,.22310000658035278,.28220000863075256,.1396999955177307,-.49380001425743103,.39480000734329224,-.4074999988079071,-.6410999894142151,-.009100000374019146,-.13330000638961792,-.5192000269889832,-.16609999537467957,Zy,-.07069999724626541,.4805999994277954,.38280001282691956,.22290000319480896,.6159999966621399,.33709999918937683,.188400000333786,.13809999823570251,CV,.2833000123500824,-.1225999966263771,-3.9189000129699707,-.459199994802475,-.3434999883174896,-.6654000282287598,-.5055999755859375,-.863099992275238,.15360000729560852,-.6427000164985657,-.08839999884366989,-.0471000000834465,.11060000211000443,.382099986076355,-.23919999599456787,-.4050999879837036,.08910000324249268,-.6972000002861023,-.4699000120162964,.09220000356435776,.08060000091791153,-.6773999929428101,-.062199998646974564,-.9300000071525574,.13369999825954437])}function QM(){QM=v1,hl=m(k(Ht,2),DA,16,0,[null,m(k(Ht,1),Vt,3,0,[new u(0,1.007825032),new u(1,2.014101778),new u(2,3.016049268),new u(3,4.027834627),new u(4,5.039542911),new u(5,6.044942608)]),m(k(Ht,1),Vt,3,0,[new u(1,3.01602931),new u(2,4.00260325),new u(3,5.012223628),new u(4,6.018888072),new u(5,7.028030527),new u(6,8.033921838),new u(7,9.043820323),new u(8,10.052399713)]),m(k(Ht,1),Vt,3,0,[new u(1,4.027182329),new u(2,5.012537796),new u(3,6.015122281),new u(4,7.016004049),new u(5,8.02248667),new u(6,9.026789122),new u(7,10.035480884),new u(8,11.043796166),new u(9,12.05378)]),m(k(Ht,1),Vt,3,0,[new u(1,5.04079),new u(2,6.019725804),new u(3,7.016929246),new u(4,8.005305094),new u(5,9.012182135),new u(6,10.01353372),new u(7,11.021657653),new u(8,12.026920631),new u(9,13.036133834),new u(10,14.042815522)]),m(k(Ht,1),Vt,3,0,[new u(2,7.029917389),new u(3,8.024606713),new u(4,9.013328806),new u(5,10.012937027),new u(6,11.009305466),new u(7,12.014352109),new u(8,13.017780267),new u(9,14.025404064),new u(10,15.031097291),new u(11,16.039808836),new u(12,17.046931399),new u(13,18.05617),new u(14,19.06373)]),m(k(Ht,1),Vt,3,0,[new u(2,8.037675026),new u(3,9.031040087),new u(4,10.01685311),new u(5,11.011433818),new u(6,12),new u(7,13.003354838),new u(8,14.003241988),new u(9,15.010599258),new u(10,16.014701243),new u(11,17.022583712),new u(12,18.026757058),new u(13,19.035248094),new u(14,20.040322395),new u(15,21.04934),new u(16,22.05645)]),m(k(Ht,1),Vt,3,0,[new u(3,10.042618),new u(4,11.026796226),new u(5,12.018613202),new u(6,13.005738584),new u(7,14.003074005),new u(8,15.000108898),new u(9,16.006101417),new u(10,17.008449673),new u(11,18.014081827),new u(12,19.017026896),new u(13,20.023367295),new u(14,21.027087574),new u(15,22.034440259),new u(16,23.04051),new u(17,24.0505)]),m(k(Ht,1),Vt,3,0,[new u(4,12.034404776),new u(5,13.0248104),new u(6,14.008595285),new u(7,15.003065386),new u(8,15.994914622),new u(9,16.999131501),new u(10,17.999160419),new u(11,19.00357873),new u(12,20.00407615),new u(13,21.008654631),new u(14,22.009967157),new u(15,23.015691325),new u(16,24.020369922),new u(17,25.02914),new u(18,26.03775)]),m(k(Ht,1),Vt,3,0,[new u(5,14.03608),new u(6,15.018010856),new u(7,16.01146573),new u(8,17.002095238),new u(9,18.000937667),new u(10,18.998403205),new u(11,19.999981324),new u(12,20.999948921),new u(13,22.00299925),new u(14,23.003574385),new u(15,24.008099371),new u(16,25.012094963),new u(17,26.019633157),new u(18,27.026892316),new u(19,28.03567),new u(20,29.04326)]),m(k(Ht,1),Vt,3,0,[new u(6,16.025756907),new u(7,17.017697565),new u(8,18.005697066),new u(9,19.001879839),new u(10,19.992440176),new u(11,20.993846744),new u(12,21.99138551),new u(13,22.994467337),new u(14,23.993615074),new u(15,24.997789899),new u(16,26.000461498),new u(17,27.0076152),new u(18,28.012108072),new u(19,29.019345902),new u(20,30.023872),new u(21,31.03311),new u(22,32.03991)]),m(k(Ht,1),Vt,3,0,[new u(7,18.02718),new u(8,19.01387945),new u(9,20.00734826),new u(10,20.997655099),new u(11,21.994436782),new u(12,22.989769675),new u(13,23.990963332),new u(14,24.989954352),new u(15,25.992589898),new u(16,26.994008702),new u(17,27.99889041),new u(18,29.002811301),new u(19,30.009226487),new u(20,31.013595108),new u(21,32.019649792),new u(22,33.027386),new u(23,34.0349),new u(24,35.04418)]),m(k(Ht,1),Vt,3,0,[new u(8,20.018862744),new u(9,21.011714174),new u(10,21.999574055),new u(11,22.99412485),new u(12,23.985041898),new u(13,24.985837023),new u(14,25.98259304),new u(15,26.984340742),new u(16,27.983876703),new u(17,28.988554743),new u(18,29.990464529),new u(19,30.996548459),new u(20,31.999145889),new u(21,33.005586975),new u(22,34.00907244),new u(23,35.018669),new u(24,36.02245),new u(25,37.03124)]),m(k(Ht,1),Vt,3,0,[new u(8,21.02804),new u(9,22.01952),new u(10,23.0072649),new u(11,23.999940911),new u(12,24.990428555),new u(13,25.986891659),new u(14,26.981538441),new u(15,27.981910184),new u(16,28.980444848),new u(17,29.982960304),new u(18,30.983946023),new u(19,31.988124379),new u(20,32.990869587),new u(21,33.996927255),new u(22,34.99993765),new u(23,36.006351501),new u(24,37.01031),new u(25,38.0169),new u(26,39.0219)]),m(k(Ht,1),Vt,3,0,[new u(8,22.03453),new u(9,23.02552),new u(10,24.011545711),new u(11,25.00410664),new u(12,25.992329935),new u(13,26.986704764),new u(14,27.976926533),new u(15,28.976494719),new u(16,29.973770218),new u(17,30.975363275),new u(18,31.974148129),new u(19,32.97800052),new u(20,33.978575745),new u(21,34.984584158),new u(22,35.986687363),new u(23,36.99299599),new u(24,37.99598),new u(25,39.0023),new u(26,40.0058),new u(27,41.0127),new u(28,42.0161)]),m(k(Ht,1),Vt,3,0,[new u(9,24.03435),new u(10,25.02026),new u(11,26.01178),new u(12,26.999191645),new u(13,27.99231233),new u(14,28.981801376),new u(15,29.978313807),new u(16,30.973761512),new u(17,31.973907163),new u(18,32.971725281),new u(19,33.973636381),new u(20,34.973314249),new u(21,35.978259824),new u(22,36.979608338),new u(23,37.98447),new u(24,38.98642),new u(25,39.99105),new u(26,40.9948),new u(27,42.00009),new u(28,43.00331),new u(29,44.00988),new u(30,45.01514),new u(31,46.02383)]),m(k(Ht,1),Vt,3,0,[new u(10,26.02788),new u(11,27.018795),new u(12,28.004372661),new u(13,28.996608805),new u(14,29.984902954),new u(15,30.979554421),new u(16,31.97207069),new u(17,32.971458497),new u(18,33.967866831),new u(19,34.96903214),new u(20,35.96708088),new u(21,36.971125716),new u(22,37.971163443),new u(23,38.975135275),new u(24,39.97547),new u(25,40.98003),new u(26,41.98149),new u(27,42.9866),new u(28,43.98832),new u(29,44.99482),new u(30,45.99957),new u(31,47.00762),new u(32,48.01299),new u(33,49.02201)]),m(k(Ht,1),Vt,3,0,[new u(11,28.02851),new u(12,29.01411),new u(13,30.00477),new u(14,30.992416014),new u(15,31.985688908),new u(16,32.977451798),new u(17,33.973761967),new u(18,34.968852707),new u(19,35.968306945),new u(20,36.9659026),new u(21,37.96801055),new u(22,38.968007677),new u(23,39.970415555),new u(24,40.970650212),new u(25,41.973174994),new u(26,42.974203385),new u(27,43.978538712),new u(28,44.9797),new u(29,45.98412),new u(30,46.98795),new u(31,47.99485),new u(32,48.99989),new u(33,50.00773),new u(34,51.01353)]),m(k(Ht,1),Vt,3,0,[new u(12,30.02156),new u(13,31.012126),new u(14,31.99766066),new u(15,32.989928719),new u(16,33.980270118),new u(17,34.975256726),new u(18,35.967546282),new u(19,36.966775912),new u(20,37.962732161),new u(21,38.964313413),new u(22,39.962383123),new u(23,40.964500828),new u(24,41.963046386),new u(25,42.965670701),new u(26,43.965365269),new u(27,44.968094979),new u(28,45.968093467),new u(29,46.972186238),new u(30,47.97507),new u(31,48.98218),new u(32,49.98594),new u(33,50.99324),new u(34,51.99817),new u(35,53.006227)]),m(k(Ht,1),Vt,3,0,[new u(13,32.02192),new u(14,33.00726),new u(15,33.99841),new u(16,34.988011615),new u(17,35.981293405),new u(18,36.973376915),new u(19,37.969080107),new u(20,38.963706861),new u(21,39.963998672),new u(22,40.961825972),new u(23,41.962403059),new u(24,42.960715746),new u(25,43.961556146),new u(26,44.960699658),new u(27,45.961976203),new u(28,46.961677807),new u(29,47.965512946),new u(30,48.967450084),new u(31,49.972782832),new u(32,50.97638),new u(33,51.98261),new u(34,52.98712),new u(35,53.99399),new u(36,54.999388)]),m(k(Ht,1),Vt,3,0,[new u(14,34.01412),new u(15,35.004765),new u(16,35.993087234),new u(17,36.985871505),new u(18,37.976318637),new u(19,38.970717729),new u(20,39.962591155),new u(21,40.962278349),new u(22,41.958618337),new u(23,42.958766833),new u(24,43.955481094),new u(25,44.956185938),new u(26,45.953692759),new u(27,46.954546459),new u(28,47.952533512),new u(29,48.955673302),new u(30,49.957518286),new u(31,50.961474238),new u(32,51.9651),new u(33,52.97005),new u(34,53.97468),new u(35,54.98055),new u(36,55.98579),new u(37,56.992356)]),m(k(Ht,1),Vt,3,0,[new u(15,36.01492),new u(16,37.00305),new u(17,37.9947),new u(18,38.984790009),new u(19,39.977964014),new u(20,40.969251316),new u(21,41.965516761),new u(22,42.96115098),new u(23,43.959403048),new u(24,44.955910243),new u(25,45.95517025),new u(26,46.952408027),new u(27,47.952234991),new u(28,48.950024065),new u(29,49.952187008),new u(30,50.9536027),new u(31,51.95665),new u(32,52.95817),new u(33,53.963),new u(34,54.9694),new u(35,55.97266),new u(36,56.97704),new u(37,57.98307),new u(38,58.988041)]),m(k(Ht,1),Vt,3,0,[new u(16,38.00977),new u(17,39.001323),new u(18,39.990498907),new u(19,40.983131),new u(20,41.973031622),new u(21,42.968523342),new u(22,43.959690235),new u(23,44.958124349),new u(24,45.952629491),new u(25,46.951763792),new u(26,47.947947053),new u(27,48.947870789),new u(28,49.944792069),new u(29,50.946616017),new u(30,51.946898175),new u(31,52.949731709),new u(32,53.95087),new u(33,54.95512),new u(34,55.95799),new u(35,56.9643),new u(36,57.96611),new u(37,58.97196),new u(38,59.97564),new u(39,60.982018)]),m(k(Ht,1),Vt,3,0,[new u(17,40.01109),new u(18,40.99974),new u(19,41.99123),new u(20,42.98065),new u(21,43.9744),new u(22,44.965782286),new u(23,45.960199491),new u(24,46.954906918),new u(25,47.95225448),new u(26,48.948516914),new u(27,49.947162792),new u(28,50.943963675),new u(29,51.944779658),new u(30,52.944342517),new u(31,53.946444381),new u(32,54.947238194),new u(33,55.95036),new u(34,56.95236),new u(35,57.95665),new u(36,58.9593),new u(37,59.9645),new u(38,60.96741),new u(39,61.97314),new u(40,62.97675)]),m(k(Ht,1),Vt,3,0,[new u(18,42.00643),new u(19,42.997707),new u(20,43.98547),new u(21,44.97916),new u(22,45.968361649),new u(23,46.962906512),new u(24,47.954035861),new u(25,48.951341135),new u(26,49.946049607),new u(27,50.944771767),new u(28,51.940511904),new u(29,52.940653781),new u(30,53.938884921),new u(31,54.940844164),new u(32,55.940645238),new u(33,56.9437538),new u(34,57.94425),new u(35,58.94863),new u(36,59.94973),new u(37,60.95409),new u(38,61.9558),new u(39,62.96186),new u(40,63.9642),new u(41,64.97037)]),m(k(Ht,1),Vt,3,0,[new u(19,44.00687),new u(20,44.99451),new u(21,45.98672),new u(22,46.9761),new u(23,47.96887),new u(24,48.959623415),new u(25,49.95424396),new u(26,50.948215487),new u(27,51.945570079),new u(28,52.941294702),new u(29,53.940363247),new u(30,54.938049636),new u(31,55.938909366),new u(32,56.938287458),new u(33,57.939986451),new u(34,58.940447166),new u(35,59.943193998),new u(36,60.94446),new u(37,61.94797),new u(38,62.94981),new u(39,63.95373),new u(40,64.9561),new u(41,65.96082),new u(42,66.96382)]),m(k(Ht,1),Vt,3,0,[new u(19,45.01456),new u(20,46.00081),new u(21,46.99289),new u(22,47.98056),new u(23,48.97361),new u(24,49.962993316),new u(25,50.956824936),new u(26,51.948116526),new u(27,52.945312282),new u(28,53.939614836),new u(29,54.938298029),new u(30,55.934942133),new u(31,56.935398707),new u(32,57.933280458),new u(33,58.934880493),new u(34,59.934076943),new u(35,60.936749461),new u(36,61.936770495),new u(37,62.940118442),new u(38,63.94087),new u(39,64.94494),new u(40,65.94598),new u(41,66.95),new u(42,67.95251),new u(43,68.9577)]),m(k(Ht,1),Vt,3,0,[new u(21,48.00176),new u(22,48.98972),new u(23,49.98154),new u(24,50.97072),new u(25,51.96359),new u(26,52.954224985),new u(27,53.948464147),new u(28,54.942003149),new u(29,55.939843937),new u(30,56.936296235),new u(31,57.935757571),new u(32,58.933200194),new u(33,59.933822196),new u(34,60.932479381),new u(35,61.934054212),new u(36,62.933615218),new u(37,63.935813523),new u(38,64.936484581),new u(39,65.939825412),new u(40,66.94061),new u(41,67.94436),new u(42,68.9452),new u(43,69.94981),new u(44,70.95173),new u(45,71.95641)]),m(k(Ht,1),Vt,3,0,[new u(22,49.99593),new u(23,50.98772),new u(24,51.97568),new u(25,52.96846),new u(26,53.957910508),new u(27,54.951336329),new u(28,55.942136339),new u(29,56.939800489),new u(30,57.935347922),new u(31,58.934351553),new u(32,59.930790633),new u(33,60.931060442),new u(34,61.928348763),new u(35,62.929672948),new u(36,63.927969574),new u(37,64.930088013),new u(38,65.929115232),new u(39,66.931569638),new u(40,67.931844932),new u(41,68.935181837),new u(42,69.93614),new u(43,70.94),new u(44,71.9413),new u(45,72.94608),new u(46,73.94791),new u(47,74.95297),new u(48,75.95533),new u(49,76.96083),new u(50,77.9638)]),m(k(Ht,1),Vt,3,0,[new u(23,51.99718),new u(24,52.98555),new u(25,53.97671),new u(26,54.96605),new u(27,55.95856),new u(28,56.949215695),new u(29,57.944540734),new u(30,58.939504114),new u(31,59.937368123),new u(32,60.933462181),new u(33,61.932587299),new u(34,62.929601079),new u(35,63.929767865),new u(36,64.927793707),new u(37,65.928873041),new u(38,66.927750294),new u(39,67.929637875),new u(40,68.929425281),new u(41,69.932409287),new u(42,70.932619818),new u(43,71.93552),new u(44,72.93649),new u(45,73.9402),new u(46,74.9417),new u(47,75.94599),new u(48,76.94795),new u(49,77.95281),new u(50,78.95528),new u(51,79.96189)]),m(k(Ht,1),Vt,3,0,[new u(24,53.99295),new u(25,54.98398),new u(26,55.97238),new u(27,56.96491),new u(28,57.954596465),new u(29,58.949267074),new u(30,59.941832031),new u(31,60.939513907),new u(32,61.934334132),new u(33,62.933215563),new u(34,63.929146578),new u(35,64.929245079),new u(36,65.926036763),new u(37,66.927130859),new u(38,67.924847566),new u(39,68.926553538),new u(40,69.92532487),new u(41,70.927727195),new u(42,71.926861122),new u(43,72.929779469),new u(44,73.929458261),new u(45,74.932937379),new u(46,75.933394207),new u(47,76.937085857),new u(48,77.938569576),new u(49,78.942095175),new u(50,79.944414722),new u(51,80.95048),new u(52,81.95484)]),m(k(Ht,1),Vt,3,0,[new u(25,55.99491),new u(26,56.98293),new u(27,57.97425),new u(28,58.96337),new u(29,59.95706),new u(30,60.94917),new u(31,61.944179608),new u(32,62.939141527),new u(33,63.936838307),new u(34,64.932739322),new u(35,65.931592355),new u(36,66.928204915),new u(37,67.927983497),new u(38,68.925580912),new u(39,69.926027741),new u(40,70.92470501),new u(41,71.92636935),new u(42,72.925169832),new u(43,73.926940999),new u(44,74.926500645),new u(45,75.928928262),new u(46,76.929281189),new u(47,77.93165595),new u(48,78.932916371),new u(49,79.936588154),new u(50,80.937752955),new u(51,81.94316),new u(52,82.94687),new u(53,83.95234)]),m(k(Ht,1),Vt,3,0,[new u(26,57.99101),new u(27,58.98175),new u(28,59.97019),new u(29,60.96379),new u(30,61.95465),new u(31,62.94964),new u(32,63.941572638),new u(33,64.939440762),new u(34,65.933846798),new u(35,66.932738415),new u(36,67.928097266),new u(37,68.927972002),new u(38,69.924250365),new u(39,70.924953991),new u(40,71.922076184),new u(41,72.923459361),new u(42,73.921178213),new u(43,74.922859494),new u(44,75.921402716),new u(45,76.923548462),new u(46,77.922852886),new u(47,78.92540156),new u(48,79.925444764),new u(49,80.928821065),new u(50,81.929550326),new u(51,82.93451),new u(52,83.93731),new u(53,84.94269),new u(54,85.94627)]),m(k(Ht,1),Vt,3,0,[new u(27,59.99313),new u(28,60.98062),new u(29,61.9732),new u(30,62.96369),new u(31,63.957572),new u(32,64.949484),new u(33,65.944099147),new u(34,66.939190417),new u(35,67.936792976),new u(36,68.932280154),new u(37,69.930927811),new u(38,70.927114724),new u(39,71.926752647),new u(40,72.923825288),new u(41,73.923929076),new u(42,74.921596417),new u(43,75.922393933),new u(44,76.920647703),new u(45,77.921828577),new u(46,78.920948498),new u(47,79.922578162),new u(48,80.922132884),new u(49,81.924504668),new u(50,82.924980625),new u(51,83.92906),new u(52,84.93181),new u(53,85.93623),new u(54,86.93958),new u(55,87.94456),new u(56,88.94923)]),m(k(Ht,1),Vt,3,0,[new u(31,64.96466),new u(32,65.95521),new u(33,66.95009),new u(34,67.94187),new u(35,68.939562155),new u(36,69.933504),new u(37,70.931868378),new u(38,71.927112313),new u(39,72.9267668),new u(40,73.922476561),new u(41,74.922523571),new u(42,75.919214107),new u(43,76.91991461),new u(44,77.917309522),new u(45,78.918499802),new u(46,79.916521828),new u(47,80.917992931),new u(48,81.9167),new u(49,82.919119072),new u(50,83.918464523),new u(51,84.922244678),new u(52,85.924271165),new u(53,86.928520749),new u(54,87.931423982),new u(55,88.93602),new u(56,89.93942),new u(57,90.94537),new u(58,91.94933)]),m(k(Ht,1),Vt,3,0,[new u(32,66.96479),new u(33,67.958248),new u(34,68.950178),new u(35,69.944208),new u(36,70.939246),new u(37,71.936496876),new u(38,72.931794889),new u(39,73.929891152),new u(40,74.92577641),new u(41,75.924541974),new u(42,76.921380123),new u(43,77.92114613),new u(44,78.918337647),new u(45,79.918529952),new u(46,80.91629106),new u(47,81.916804666),new u(48,82.915180219),new u(49,83.916503685),new u(50,84.915608027),new u(51,85.918797162),new u(52,86.920710713),new u(53,87.924065908),new u(54,88.92638726),new u(55,89.930634988),new u(56,90.9339653),new u(57,91.939255258),new u(58,92.9431),new u(59,93.94868)]),m(k(Ht,1),Vt,3,0,[new u(33,68.96532),new u(34,69.95601),new u(35,70.95051),new u(36,71.94190754),new u(37,72.938931115),new u(38,73.933258225),new u(39,74.931033794),new u(40,75.925948304),new u(41,76.92466788),new u(42,77.920386271),new u(43,78.920082992),new u(44,79.91637804),new u(45,80.916592419),new u(46,81.913484601),new u(47,82.914135952),new u(48,83.911506627),new u(49,84.912526954),new u(50,85.910610313),new u(51,86.913354251),new u(52,87.914446951),new u(53,88.917632505),new u(54,89.919523803),new u(55,90.923442418),new u(56,91.926152752),new u(57,92.931265246),new u(58,93.934362),new u(59,94.93984),new u(60,95.94307),new u(61,96.94856)]),m(k(Ht,1),Vt,3,0,[new u(34,70.96532),new u(35,71.95908),new u(36,72.950366),new u(37,73.944470376),new u(38,74.938569199),new u(39,75.935071448),new u(40,76.930406599),new u(41,77.928141485),new u(42,78.923996719),new u(43,79.922519322),new u(44,80.918994165),new u(45,81.918207691),new u(46,82.915111951),new u(47,83.914384676),new u(48,84.911789341),new u(49,85.91116708),new u(50,86.909183465),new u(51,87.911318556),new u(52,88.912279939),new u(53,89.914808941),new u(54,90.91653416),new u(55,91.919725442),new u(56,92.922032765),new u(57,93.926407326),new u(58,94.92931926),new u(59,95.934283962),new u(60,96.937342863),new u(61,97.941703557),new u(62,98.945420616),new u(63,99.94987),new u(64,100.953195994),new u(65,101.95921)]),m(k(Ht,1),Vt,3,0,[new u(35,72.96597),new u(36,73.95631),new u(37,74.94992),new u(38,75.94161),new u(39,76.937761511),new u(40,77.932179362),new u(41,78.929707076),new u(42,79.924524588),new u(43,80.923213095),new u(44,81.918401258),new u(45,82.917555029),new u(46,83.913424778),new u(47,84.912932689),new u(48,85.909262351),new u(49,86.908879316),new u(50,87.905614339),new u(51,88.907452906),new u(52,89.907737596),new u(53,90.910209845),new u(54,91.911029895),new u(55,92.91402241),new u(56,93.915359856),new u(57,94.919358213),new u(58,95.921680473),new u(59,96.926148757),new u(60,97.928471177),new u(61,98.933315038),new u(62,99.935351729),new u(63,100.940517434),new u(64,101.943018795),new u(65,102.94895),new u(66,103.95233)]),m(k(Ht,1),Vt,3,0,[new u(38,76.94962),new u(39,77.9435),new u(40,78.937350712),new u(41,79.931982402),new u(42,80.929128719),new u(43,81.926792071),new u(44,82.922352572),new u(45,83.920387768),new u(46,84.916427076),new u(47,85.914887724),new u(48,86.910877833),new u(49,87.909503361),new u(50,88.905847902),new u(51,89.907151443),new u(52,90.907303415),new u(53,91.908946832),new u(54,92.909581582),new u(55,93.911594008),new u(56,94.912823709),new u(57,95.915897787),new u(58,96.918131017),new u(59,97.922219525),new u(60,98.924634736),new u(61,99.927756402),new u(62,100.930313395),new u(63,101.933555501),new u(64,102.93694),new u(65,103.94145),new u(66,104.94509),new u(67,105.95022)]),m(k(Ht,1),Vt,3,0,[new u(39,78.94916),new u(40,79.94055),new u(41,80.936815296),new u(42,81.931086249),new u(43,82.92865213),new u(44,83.92325),new u(45,84.92146522),new u(46,85.916472851),new u(47,86.914816578),new u(48,87.910226179),new u(49,88.908888916),new u(50,89.904703679),new u(51,90.905644968),new u(52,91.905040106),new u(53,92.906475627),new u(54,93.906315765),new u(55,94.908042739),new u(56,95.908275675),new u(57,96.910950716),new u(58,97.912746366),new u(59,98.916511084),new u(60,99.917761704),new u(61,100.921139958),new u(62,101.922981089),new u(63,102.926597062),new u(64,103.92878),new u(65,104.93305),new u(66,105.93591),new u(67,106.94086),new u(68,107.94428)]),m(k(Ht,1),Vt,3,0,[new u(40,80.94905),new u(41,81.94313),new u(42,82.936703713),new u(43,83.93357),new u(44,84.927906486),new u(45,85.925037588),new u(46,86.920361435),new u(47,87.91833144),new u(48,88.913495503),new u(49,89.911264109),new u(50,90.906990538),new u(51,91.907193214),new u(52,92.906377543),new u(53,93.907283457),new u(54,94.906835178),new u(55,95.908100076),new u(56,96.908097144),new u(57,97.91033069),new u(58,98.911617864),new u(59,99.914181434),new u(60,100.915251567),new u(61,101.918037417),new u(62,102.919141297),new u(63,103.922459464),new u(64,104.923934023),new u(65,105.92819),new u(66,106.93031),new u(67,107.93501),new u(68,108.93763),new u(69,109.94268)]),m(k(Ht,1),Vt,3,0,[new u(41,82.94874),new u(42,83.94009),new u(43,84.93659),new u(44,85.930695167),new u(45,86.92732683),new u(46,87.921952728),new u(47,88.919480562),new u(48,89.913936161),new u(49,90.911750754),new u(50,91.90681048),new u(51,92.906812213),new u(52,93.905087578),new u(53,94.905841487),new u(54,95.904678904),new u(55,96.906021033),new u(56,97.905407846),new u(57,98.907711598),new u(58,99.907477149),new u(59,100.910346543),new u(60,101.910297162),new u(61,102.913204596),new u(62,103.913758387),new u(63,104.916972087),new u(64,105.918134284),new u(65,106.921694724),new u(66,107.923973837),new u(67,108.92781),new u(68,109.92973),new u(69,110.93451),new u(70,111.93684),new u(71,112.94203)]),m(k(Ht,1),Vt,3,0,[new u(42,84.94894),new u(43,85.94288),new u(44,86.93653),new u(45,87.93283),new u(46,88.92754288),new u(47,89.92355583),new u(48,90.9184282),new u(49,91.915259655),new u(50,92.910248473),new u(51,93.909656309),new u(52,94.907656454),new u(53,95.907870803),new u(54,96.906364843),new u(55,97.907215692),new u(56,98.906254554),new u(57,99.907657594),new u(58,100.90731438),new u(59,101.909212938),new u(60,102.909178805),new u(61,103.911444898),new u(62,104.911658043),new u(63,105.914355408),new u(64,106.915081691),new u(65,107.918479973),new u(66,108.919980998),new u(67,109.92339),new u(68,110.92505),new u(69,111.92924),new u(70,112.93133),new u(71,113.93588),new u(72,114.93828)]),m(k(Ht,1),Vt,3,0,[new u(43,86.94918),new u(44,87.94042),new u(45,88.93611),new u(46,89.92978),new u(47,90.926377434),new u(48,91.92012),new u(49,92.917051523),new u(50,93.911359569),new u(51,94.910412729),new u(52,95.907597681),new u(53,96.907554546),new u(54,97.905287111),new u(55,98.905939307),new u(56,99.904219664),new u(57,100.905582219),new u(58,101.904349503),new u(59,102.906323677),new u(60,103.905430145),new u(61,104.907750341),new u(62,105.907326913),new u(63,106.909907207),new u(64,107.910192211),new u(65,108.913201565),new u(66,109.913966185),new u(67,110.91756),new u(68,111.918821673),new u(69,112.92254),new u(70,113.923891981),new u(71,114.92831),new u(72,115.93016),new u(73,116.93479),new u(74,117.93703)]),m(k(Ht,1),Vt,3,0,[new u(44,88.94938),new u(45,89.94287),new u(46,90.93655),new u(47,91.93198),new u(48,92.92574),new u(49,93.921698),new u(50,94.915898541),new u(51,95.914518212),new u(52,96.911336643),new u(53,97.910716431),new u(54,98.908132101),new u(55,99.90811663),new u(56,100.906163526),new u(57,101.906842845),new u(58,102.905504182),new u(59,103.906655315),new u(60,104.905692444),new u(61,105.907284615),new u(62,106.90675054),new u(63,107.908730768),new u(64,108.908735621),new u(65,109.910949525),new u(66,110.91166),new u(67,111.913969253),new u(68,112.91542),new u(69,113.91734336),new u(70,114.920124676),new u(71,115.922746643),new u(72,116.92535),new u(73,117.92943),new u(74,118.93136),new u(75,119.93578),new u(76,120.93808)]),m(k(Ht,1),Vt,3,0,[new u(45,90.94948),new u(46,91.94042),new u(47,92.93591),new u(48,93.92877),new u(49,94.92469),new u(50,95.91822194),new u(51,96.916478921),new u(52,97.912720751),new u(53,98.911767757),new u(54,99.908504596),new u(55,100.908289144),new u(56,101.905607716),new u(57,102.906087204),new u(58,103.904034912),new u(59,104.905084046),new u(60,105.903483087),new u(61,106.905128453),new u(62,107.903894451),new u(63,108.905953535),new u(64,109.905152385),new u(65,110.907643952),new u(66,111.907313277),new u(67,112.910151346),new u(68,113.910365322),new u(69,114.91368341),new u(70,115.914158288),new u(71,116.91784),new u(72,117.918983915),new u(73,118.92268),new u(74,119.92403),new u(75,120.92818),new u(76,121.9298),new u(77,122.93426)]),m(k(Ht,1),Vt,3,0,[new u(47,93.94278),new u(48,94.93548),new u(49,95.93068),new u(50,96.924),new u(51,97.921759995),new u(52,98.917597103),new u(53,99.916069387),new u(54,100.912802135),new u(55,101.911999996),new u(56,102.908972453),new u(57,103.908628228),new u(58,104.906528234),new u(59,105.906666431),new u(60,106.90509302),new u(61,107.905953705),new u(62,108.904755514),new u(63,109.90611046),new u(64,110.905294679),new u(65,111.907004132),new u(66,112.906565708),new u(67,113.908807907),new u(68,114.908762282),new u(69,115.911359558),new u(70,116.911684187),new u(71,117.914582383),new u(72,118.915666045),new u(73,119.918788609),new u(74,120.919851074),new u(75,121.92332),new u(76,122.9249),new u(77,123.92853),new u(78,124.93054),new u(79,125.9345),new u(80,126.93688)]),m(k(Ht,1),Vt,3,0,[new u(48,95.93977),new u(49,96.93494),new u(50,97.927579),new u(51,98.92501),new u(52,99.920230232),new u(53,100.918681442),new u(54,101.914777255),new u(55,102.913418952),new u(56,103.909848091),new u(57,104.909467818),new u(58,105.906458007),new u(59,106.906614232),new u(60,107.904183403),new u(61,108.904985569),new u(62,109.903005578),new u(63,110.904181628),new u(64,111.902757226),new u(65,112.904400947),new u(66,113.903358121),new u(67,114.905430553),new u(68,115.904755434),new u(69,116.907218242),new u(70,117.906914144),new u(71,118.909922582),new u(72,119.909851352),new u(73,120.91298039),new u(74,121.9135),new u(75,122.917003675),new u(76,123.917648302),new u(77,124.92124717),new u(78,125.922353996),new u(79,126.926434822),new u(80,127.927760617),new u(81,128.93226),new u(82,129.93398)]),m(k(Ht,1),Vt,3,0,[new u(49,97.94224),new u(50,98.93461),new u(51,99.931149033),new u(52,100.92656),new u(53,101.924707541),new u(54,102.919913896),new u(55,103.918338416),new u(56,104.914673434),new u(57,105.913461134),new u(58,106.910292195),new u(59,107.909719683),new u(60,108.907154078),new u(61,109.907168783),new u(62,110.905110677),new u(63,111.905533338),new u(64,112.904061223),new u(65,113.904916758),new u(66,114.903878328),new u(67,115.905259995),new u(68,116.904515731),new u(69,117.906354623),new u(70,118.905846334),new u(71,119.907961505),new u(72,120.907848847),new u(73,121.910277103),new u(74,122.910438951),new u(75,123.913175916),new u(76,124.913601387),new u(77,125.916464532),new u(78,126.917344048),new u(79,127.920170658),new u(80,128.921657958),new u(81,129.924854941),new u(82,130.926767408),new u(83,131.932919005),new u(84,132.93834),new u(85,133.94466)]),m(k(Ht,1),Vt,3,0,[new u(50,99.938954),new u(51,100.93606),new u(52,101.93049),new u(53,102.92813),new u(54,103.923185469),new u(55,104.921390409),new u(56,105.916880472),new u(57,106.915666702),new u(58,107.911965339),new u(59,108.911286879),new u(60,109.907852688),new u(61,110.907735404),new u(62,111.90482081),new u(63,112.905173373),new u(64,113.902781816),new u(65,114.903345973),new u(66,115.901744149),new u(67,116.902953765),new u(68,117.901606328),new u(69,118.90330888),new u(70,119.902196571),new u(71,120.904236867),new u(72,121.903440138),new u(73,122.905721901),new u(74,123.90527463),new u(75,124.907784924),new u(76,125.907653953),new u(77,126.91035098),new u(78,127.910534953),new u(79,128.913439976),new u(80,129.913852185),new u(81,130.916919144),new u(82,131.917744455),new u(83,132.923814085),new u(84,133.928463576),new u(85,134.93473),new u(86,135.93934),new u(87,136.94579)]),m(k(Ht,1),Vt,3,0,[new u(52,102.94012),new u(53,103.936287),new u(54,104.931528593),new u(55,105.928183134),new u(56,106.92415),new u(57,107.92216),new u(58,108.918136092),new u(59,109.917533911),new u(60,110.912534147),new u(61,111.91239464),new u(62,112.909377941),new u(63,113.909095876),new u(64,114.906598812),new u(65,115.906797235),new u(66,116.90483959),new u(67,117.905531885),new u(68,118.90394646),new u(69,119.905074315),new u(70,120.903818044),new u(71,121.905175415),new u(72,122.904215696),new u(73,123.905937525),new u(74,124.905247804),new u(75,125.907248153),new u(76,126.906914564),new u(77,127.90916733),new u(78,128.909150092),new u(79,129.911546459),new u(80,130.911946487),new u(81,131.914413247),new u(82,132.915236466),new u(83,133.920551554),new u(84,134.925167962),new u(85,135.93066),new u(86,136.93531),new u(87,137.94096),new u(88,138.94571)]),m(k(Ht,1),Vt,3,0,[new u(54,105.937702),new u(55,106.935036),new u(56,107.929486838),new u(57,108.927456483),new u(58,109.922407164),new u(59,110.921120589),new u(60,111.917061617),new u(61,112.915452551),new u(62,113.912498025),new u(63,114.911578627),new u(64,115.908420253),new u(65,116.90863418),new u(66,117.905825187),new u(67,118.90640811),new u(68,119.904019891),new u(69,120.904929815),new u(70,121.903047064),new u(71,122.904272951),new u(72,123.902819466),new u(73,124.904424718),new u(74,125.903305543),new u(75,126.90521729),new u(76,127.904461383),new u(77,128.906595593),new u(78,129.906222753),new u(79,130.90852188),new u(80,131.908523782),new u(81,132.910939068),new u(82,133.911540546),new u(83,134.916450782),new u(84,135.920103155),new u(85,136.925324769),new u(86,137.92922),new u(87,138.93473),new u(88,139.9387),new u(89,140.94439),new u(90,141.9485)]),m(k(Ht,1),Vt,3,0,[new u(55,107.943291),new u(56,108.938191658),new u(57,109.934634181),new u(58,110.930276),new u(59,111.92797),new u(60,112.923644245),new u(61,113.92185),new u(62,114.918272),new u(63,115.916735014),new u(64,116.913647692),new u(65,117.91337523),new u(66,118.910180837),new u(67,119.910047843),new u(68,120.907366063),new u(69,121.907592451),new u(70,122.905597944),new u(71,123.906211423),new u(72,124.90462415),new u(73,125.905619387),new u(74,126.90446842),new u(75,127.905805254),new u(76,128.904987487),new u(77,129.906674018),new u(78,130.906124168),new u(79,131.907994525),new u(80,132.907806465),new u(81,133.909876552),new u(82,134.91005031),new u(83,135.914655105),new u(84,136.917872653),new u(85,137.922383666),new u(86,138.926093402),new u(87,139.93121),new u(88,140.93483),new u(89,141.94018),new u(90,142.94407),new u(91,143.94961)]),m(k(Ht,1),Vt,3,0,[new u(56,109.944476),new u(57,110.941632),new u(58,111.93566535),new u(59,112.933382836),new u(60,113.928145),new u(61,114.926979032),new u(62,115.921394197),new u(63,116.920564355),new u(64,117.91657092),new u(65,118.915554295),new u(66,119.91215199),new u(67,120.911386497),new u(68,121.908548396),new u(69,122.908470748),new u(70,123.905895774),new u(71,124.906398236),new u(72,125.904268868),new u(73,126.905179581),new u(74,127.903530436),new u(75,128.904779458),new u(76,129.903507903),new u(77,130.90508192),new u(78,131.904154457),new u(79,132.90590566),new u(80,133.905394504),new u(81,134.907207499),new u(82,135.907219526),new u(83,136.911562939),new u(84,137.913988549),new u(85,138.918786859),new u(86,139.921635665),new u(87,140.926646282),new u(88,141.929702981),new u(89,142.93489),new u(90,143.93823),new u(91,144.94367),new u(92,145.9473),new u(93,146.95301)]),m(k(Ht,1),Vt,3,0,[new u(57,111.950331),new u(58,112.944535512),new u(59,113.940841319),new u(60,114.935939),new u(61,115.932914152),new u(62,116.928639484),new u(63,117.926554883),new u(64,118.922370879),new u(65,119.920678219),new u(66,120.917183637),new u(67,121.916121946),new u(68,122.912990168),new u(69,123.912245731),new u(70,124.909724871),new u(71,125.909447953),new u(72,126.9074176),new u(73,127.907747919),new u(74,128.906063369),new u(75,129.906706163),new u(76,130.905460232),new u(77,131.906429799),new u(78,132.90544687),new u(79,133.906713419),new u(80,134.905971903),new u(81,135.907305741),new u(82,136.907083505),new u(83,137.911010537),new u(84,138.913357921),new u(85,139.917277075),new u(86,140.920043984),new u(87,141.924292317),new u(88,142.927330292),new u(89,143.932027373),new u(90,144.935388226),new u(91,145.940162028),new u(92,146.943864435),new u(93,147.948899539),new u(94,148.95272),new u(95,149.95797),new u(96,150.962)]),m(k(Ht,1),Vt,3,0,[new u(58,113.950941),new u(59,114.94771),new u(60,115.94168),new u(61,116.937700229),new u(62,117.93344),new u(63,118.931051927),new u(64,119.926045941),new u(65,120.924485908),new u(66,121.92026),new u(67,122.91885),new u(68,123.915088437),new u(69,124.914620234),new u(70,125.911244146),new u(71,126.911121328),new u(72,127.90830887),new u(73,128.908673749),new u(74,129.906310478),new u(75,130.906930798),new u(76,131.905056152),new u(77,132.906002368),new u(78,133.904503347),new u(79,134.905682749),new u(80,135.904570109),new u(81,136.905821414),new u(82,137.905241273),new u(83,138.908835384),new u(84,139.910599485),new u(85,140.914406439),new u(86,141.916448175),new u(87,142.920617184),new u(88,143.922940468),new u(89,144.926923807),new u(90,145.930106645),new u(91,146.933992519),new u(92,147.937682377),new u(93,148.94246),new u(94,149.94562),new u(95,150.9507),new u(96,151.95416),new u(97,152.95961)]),m(k(Ht,1),Vt,3,0,[new u(60,116.95001),new u(61,117.94657),new u(62,118.94099),new u(63,119.93807),new u(64,120.93301),new u(65,121.93071),new u(66,122.92624),new u(67,123.92453),new u(68,124.92067),new u(69,125.91937),new u(70,126.91616),new u(71,127.91544794),new u(72,128.912667334),new u(73,129.91232),new u(74,130.910108489),new u(75,131.910110399),new u(76,132.908396372),new u(77,133.908489607),new u(78,134.906971003),new u(79,135.907651181),new u(80,136.906465656),new u(81,137.907106826),new u(82,138.90634816),new u(83,139.909472552),new u(84,140.910957016),new u(85,141.914074489),new u(86,142.916058646),new u(87,143.919591666),new u(88,144.92163837),new u(89,145.925700146),new u(90,146.927819639),new u(91,147.932191197),new u(92,148.93437),new u(93,149.93857),new u(94,150.94156),new u(95,151.94611),new u(96,152.94945),new u(97,153.9544),new u(98,154.95813)]),m(k(Ht,1),Vt,3,0,[new u(61,118.95276),new u(62,119.94664),new u(63,120.94367),new u(64,121.93801),new u(65,122.93551),new u(66,123.93052),new u(67,124.92854),new u(68,125.9241),new u(69,126.92275),new u(70,127.91887),new u(71,128.918679183),new u(72,129.914339361),new u(73,130.914424137),new u(74,131.91149),new u(75,132.91155),new u(76,133.909026379),new u(77,134.909145555),new u(78,135.907143574),new u(79,136.907777634),new u(80,137.905985574),new u(81,138.906646605),new u(82,139.905434035),new u(83,140.908271103),new u(84,141.909239733),new u(85,142.912381158),new u(86,143.913642686),new u(87,144.917227871),new u(88,145.918689722),new u(89,146.922510962),new u(90,147.924394738),new u(91,148.928289207),new u(92,149.930226399),new u(93,150.93404),new u(94,151.93638),new u(95,152.94058),new u(96,153.94332),new u(97,154.94804),new u(98,155.95126),new u(99,156.95634)]),m(k(Ht,1),Vt,3,0,[new u(62,120.955364),new u(63,121.95165),new u(64,122.94596),new u(65,123.94296),new u(66,124.93783),new u(67,125.93531),new u(68,126.93083),new u(69,127.9288),new u(70,128.92486),new u(71,129.92338),new u(72,130.920060245),new u(73,131.91912),new u(74,132.9162),new u(75,133.915672),new u(76,134.91313914),new u(77,135.912646935),new u(78,136.910678351),new u(79,137.910748891),new u(80,138.908932181),new u(81,139.909071204),new u(82,140.907647726),new u(83,141.910039865),new u(84,142.910812233),new u(85,143.913300595),new u(86,144.914506897),new u(87,145.917588016),new u(88,146.918979001),new u(89,147.922183237),new u(90,148.923791056),new u(91,149.926995031),new u(92,150.928227869),new u(93,151.9316),new u(94,152.93365),new u(95,153.93739),new u(96,154.93999),new u(97,155.94412),new u(98,156.94717),new u(99,157.95178),new u(100,158.95523)]),m(k(Ht,1),Vt,3,0,[new u(66,125.94307),new u(67,126.9405),new u(68,127.93539),new u(69,128.932385),new u(70,129.92878),new u(71,130.927102697),new u(72,131.92312),new u(73,132.92221),new u(74,133.918645),new u(75,134.91824),new u(76,135.915020542),new u(77,136.91463973),new u(78,137.91291745),new u(79,138.91192415),new u(80,139.909309824),new u(81,140.9096048),new u(82,141.907718643),new u(83,142.909809626),new u(84,143.910082629),new u(85,144.912568847),new u(86,145.913112139),new u(87,146.916095794),new u(88,147.916888516),new u(89,148.92014419),new u(90,149.920886563),new u(91,150.923824739),new u(92,151.924682428),new u(93,152.927694534),new u(94,153.929483295),new u(95,154.932629551),new u(96,155.9352),new u(97,156.93927),new u(98,157.94187),new u(99,158.94639),new u(100,159.94939),new u(101,160.95433)]),m(k(Ht,1),Vt,3,0,[new u(67,127.94826),new u(68,128.94316),new u(69,129.94045),new u(70,130.9358),new u(71,131.93375),new u(72,132.92972),new u(73,133.92849),new u(74,134.924617),new u(75,135.923447865),new u(76,136.920713),new u(77,137.920432261),new u(78,138.916759814),new u(79,139.915801649),new u(80,140.913606636),new u(81,141.912950738),new u(82,142.910927571),new u(83,143.912585768),new u(84,144.912743879),new u(85,145.914692165),new u(86,146.915133898),new u(87,147.917467786),new u(88,148.918329195),new u(89,149.920979477),new u(90,150.921202693),new u(91,151.923490557),new u(92,152.924113189),new u(93,153.926547019),new u(94,154.928097047),new u(95,155.931060357),new u(96,156.9332),new u(97,157.93669),new u(98,158.93913),new u(99,159.94299),new u(100,160.94586),new u(101,161.95029),new u(102,162.95352)]),m(k(Ht,1),Vt,3,0,[new u(68,129.94863),new u(69,130.94589),new u(70,131.94082),new u(71,132.93873),new u(72,133.93402),new u(73,134.93235),new u(74,135.9283),new u(75,136.927046709),new u(76,137.92354),new u(77,138.922302),new u(78,139.918991),new u(79,140.918468512),new u(80,141.915193274),new u(81,142.914623555),new u(82,143.91199473),new u(83,144.913405611),new u(84,145.91303676),new u(85,146.914893275),new u(86,147.914817914),new u(87,148.917179521),new u(88,149.917271454),new u(89,150.919928351),new u(90,151.919728244),new u(91,152.922093907),new u(92,153.922205303),new u(93,154.92463594),new u(94,155.925526236),new u(95,156.928354506),new u(96,157.929987938),new u(97,158.9332),new u(98,159.93514),new u(99,160.93883),new u(100,161.94122),new u(101,162.94536),new u(102,163.94828),new u(103,164.95298)]),m(k(Ht,1),Vt,3,0,[new u(69,131.95416),new u(70,132.9489),new u(71,133.94632),new u(72,134.94172),new u(73,135.9395),new u(74,136.93521),new u(75,137.93345),new u(76,138.92882915),new u(77,139.928083921),new u(78,140.924885867),new u(79,141.923400033),new u(80,142.920286634),new u(81,143.918774116),new u(82,144.916261285),new u(83,145.917199714),new u(84,146.916741206),new u(85,147.918153775),new u(86,148.917925922),new u(87,149.919698294),new u(88,150.919846022),new u(89,151.921740399),new u(90,152.921226219),new u(91,153.922975386),new u(92,154.922889429),new u(93,155.924750855),new u(94,156.925419435),new u(95,157.927841923),new u(96,158.9290845),new u(97,159.931460406),new u(98,160.93368),new u(99,161.93704),new u(100,162.93921),new u(101,163.94299),new u(102,164.94572),new u(103,165.94997),new u(104,166.95305)]),m(k(Ht,1),Vt,3,0,[new u(72,135.94707),new u(73,136.94465),new u(74,137.93997),new u(75,138.93808),new u(76,139.933236934),new u(77,140.93221),new u(78,141.927908919),new u(79,142.926738636),new u(80,143.923390357),new u(81,144.921687498),new u(82,145.918305344),new u(83,146.919089446),new u(84,147.918109771),new u(85,148.919336427),new u(86,149.918655455),new u(87,150.920344273),new u(88,151.919787882),new u(89,152.921746283),new u(90,153.920862271),new u(91,154.922618801),new u(92,155.922119552),new u(93,156.923956686),new u(94,157.924100533),new u(95,158.926385075),new u(96,159.927050616),new u(97,160.929665688),new u(98,161.930981211),new u(99,162.93399),new u(100,163.93586),new u(101,164.93938),new u(102,165.9416),new u(103,166.94557),new u(104,167.94836),new u(105,168.95287)]),m(k(Ht,1),Vt,3,0,[new u(73,137.95287),new u(74,138.94803),new u(75,139.945367985),new u(76,140.94116),new u(77,141.939073781),new u(78,142.93475),new u(79,143.93253),new u(80,144.92888),new u(81,145.927180629),new u(82,146.924037176),new u(83,147.924298636),new u(84,148.92324163),new u(85,149.923654158),new u(86,150.923098169),new u(87,151.924071324),new u(88,152.923430858),new u(89,153.924686236),new u(90,154.923500411),new u(91,155.924743749),new u(92,156.924021155),new u(93,157.92541026),new u(94,158.925343135),new u(95,159.927164021),new u(96,160.927566289),new u(97,161.929484803),new u(98,162.930643942),new u(99,163.933347253),new u(100,164.93488),new u(101,165.93805),new u(102,166.94005),new u(103,167.94364),new u(104,168.94622),new u(105,169.95025),new u(106,170.9533)]),m(k(Ht,1),Vt,3,0,[new u(74,139.95379),new u(75,140.95119),new u(76,141.946695946),new u(77,142.94383),new u(78,143.93907),new u(79,144.936717),new u(80,145.932720118),new u(81,146.930878496),new u(82,147.927177882),new u(83,148.927333981),new u(84,149.925579728),new u(85,150.92617963),new u(86,151.924713874),new u(87,152.925760865),new u(88,153.924422046),new u(89,154.92574895),new u(90,155.924278273),new u(91,156.925461256),new u(92,157.924404637),new u(93,158.92573566),new u(94,159.925193718),new u(95,160.926929595),new u(96,161.926794731),new u(97,162.928727532),new u(98,163.929171165),new u(99,164.931699828),new u(100,165.932803241),new u(101,166.935649025),new u(102,167.93723),new u(103,168.940303648),new u(104,169.94267),new u(105,170.94648),new u(106,171.94911),new u(107,172.95344)]),m(k(Ht,1),Vt,3,0,[new u(75,141.95986),new u(76,142.95469),new u(77,143.95164),new u(78,144.94688),new u(79,145.9441),new u(80,146.93984),new u(81,147.937269),new u(82,148.933789944),new u(83,149.932760914),new u(84,150.931680791),new u(85,151.931740598),new u(86,152.930194506),new u(87,153.930596268),new u(88,154.929079084),new u(89,155.929001869),new u(90,156.928188059),new u(91,157.92894573),new u(92,158.927708537),new u(93,159.928725679),new u(94,160.927851662),new u(95,161.92909242),new u(96,162.928730286),new u(97,163.930230577),new u(98,164.930319169),new u(99,165.932281267),new u(100,166.933126195),new u(101,167.935496424),new u(102,168.936868306),new u(103,169.939614951),new u(104,170.941461227),new u(105,171.94482),new u(106,172.94729),new u(107,173.95115),new u(108,174.95405)]),m(k(Ht,1),Vt,3,0,[new u(76,143.96059),new u(77,144.95746),new u(78,145.95212),new u(79,146.94931),new u(80,147.94444),new u(81,148.942780527),new u(82,149.937171034),new u(83,150.93746),new u(84,151.935078452),new u(85,152.935093125),new u(86,153.932777294),new u(87,154.933204273),new u(88,155.931015001),new u(89,156.931945517),new u(90,157.929912),new u(91,158.930680718),new u(92,159.929078924),new u(93,160.930001348),new u(94,161.928774923),new u(95,162.930029273),new u(96,163.929196996),new u(97,164.9307228),new u(98,165.93028997),new u(99,166.932045448),new u(100,167.932367781),new u(101,168.934588082),new u(102,169.935460334),new u(103,170.938025885),new u(104,171.939352149),new u(105,172.9424),new u(106,173.94434),new u(107,174.94793),new u(108,175.95029),new u(109,176.95437)]),m(k(Ht,1),Vt,3,0,[new u(77,145.966495),new u(78,146.961081),new u(79,147.95755),new u(80,148.95265),new u(81,149.94967),new u(82,150.944842),new u(83,151.9443),new u(84,152.942027631),new u(85,153.940832325),new u(86,154.939191562),new u(87,155.939006895),new u(88,156.936756069),new u(89,157.936996),new u(90,158.934808966),new u(91,159.935090772),new u(92,160.933398042),new u(93,161.933970147),new u(94,162.932647648),new u(95,163.933450972),new u(96,164.932432463),new u(97,165.933553133),new u(98,166.932848844),new u(99,167.934170375),new u(100,168.934211117),new u(101,169.935797877),new u(102,170.936425817),new u(103,171.938396118),new u(104,172.939600336),new u(105,173.942164618),new u(106,174.943832897),new u(107,175.946991412),new u(108,176.94904),new u(109,177.95264),new u(110,178.95534)]),m(k(Ht,1),Vt,3,0,[new u(78,147.96676),new u(79,148.96348),new u(80,149.95799),new u(81,150.954657965),new u(82,151.950167),new u(83,152.94921),new u(84,153.945651145),new u(85,154.945792),new u(86,155.942847109),new u(87,156.94265865),new u(88,157.939857897),new u(89,158.940153735),new u(90,159.93756),new u(91,160.937357719),new u(92,161.93575),new u(93,162.936265492),new u(94,163.93452),new u(95,164.935397592),new u(96,165.933879623),new u(97,166.934946862),new u(98,167.933894465),new u(99,168.93518712),new u(100,169.934758652),new u(101,170.936322297),new u(102,171.936377696),new u(103,172.938206756),new u(104,173.938858101),new u(105,174.941272494),new u(106,175.942568409),new u(107,176.945257126),new u(108,177.946643396),new u(109,178.95017),new u(110,179.95233),new u(111,180.95615)]),m(k(Ht,1),Vt,3,0,[new u(79,149.972668),new u(80,150.967147),new u(81,151.96361),new u(82,152.95869),new u(83,153.9571),new u(84,154.953641324),new u(85,155.952907),new u(86,156.950101536),new u(87,157.948577981),new u(88,158.946615113),new u(89,159.945383),new u(90,160.943047504),new u(91,161.943222),new u(92,162.941203796),new u(93,163.941215),new u(94,164.939605886),new u(95,165.939762646),new u(96,166.938307056),new u(97,167.938698576),new u(98,168.937648757),new u(99,169.93847219),new u(100,170.937909903),new u(101,171.939082239),new u(102,172.938926901),new u(103,173.940333522),new u(104,174.940767904),new u(105,175.942682399),new u(106,176.943754987),new u(107,177.945951366),new u(108,178.947324216),new u(109,179.949879968),new u(110,180.95197),new u(111,181.95521),new u(112,182.95757),new u(113,183.96117)]),m(k(Ht,1),Vt,3,0,[new u(82,153.96425),new u(83,154.96276),new u(84,155.959247),new u(85,156.958127),new u(86,157.95405528),new u(87,158.954003),new u(88,159.950713588),new u(89,160.950330852),new u(90,161.947202977),new u(91,162.947057),new u(92,163.944422),new u(93,164.94454),new u(94,165.94225),new u(95,166.9426),new u(96,167.94063),new u(97,168.941158567),new u(98,169.93965),new u(99,170.94049),new u(100,171.93945798),new u(101,172.94065),new u(102,173.940040159),new u(103,174.941502991),new u(104,175.941401828),new u(105,176.943220013),new u(106,177.943697732),new u(107,178.945815073),new u(108,179.94654876),new u(109,180.949099124),new u(110,181.950552893),new u(111,182.953531012),new u(112,183.95544788),new u(113,184.95878),new u(114,185.96092)]),m(k(Ht,1),Vt,3,0,[new u(83,155.971689),new u(84,156.968145),new u(85,157.966368),new u(86,158.96232309),new u(87,159.961358),new u(88,160.958372992),new u(89,161.956556553),new u(90,162.95431665),new u(91,163.95357),new u(92,164.950817),new u(93,165.95047),new u(94,166.948639),new u(95,167.947787),new u(96,168.94592),new u(97,169.94609),new u(98,170.94446),new u(99,171.944739818),new u(100,172.94459),new u(101,173.944167937),new u(102,174.94365),new u(103,175.944740551),new u(104,176.944471766),new u(105,177.945750349),new u(106,178.945934113),new u(107,179.947465655),new u(108,180.947996346),new u(109,181.950152414),new u(110,182.951373188),new u(111,183.954009331),new u(112,184.955559086),new u(113,185.9585501),new u(114,186.96041),new u(115,187.96371)]),m(k(Ht,1),Vt,3,0,[new u(84,157.973939),new u(85,158.97228),new u(86,159.968369),new u(87,160.967089),new u(88,161.962750303),new u(89,162.962532),new u(90,163.95898381),new u(91,164.958335962),new u(92,165.955019896),new u(93,166.954672),new u(94,167.951863),new u(95,168.951759),new u(96,169.948473988),new u(97,170.94946),new u(98,171.948228837),new u(99,172.948884),new u(100,173.94616),new u(101,174.94677),new u(102,175.94559),new u(103,176.94662),new u(104,177.945848364),new u(105,178.947071733),new u(106,179.946705734),new u(107,180.948198054),new u(108,181.948205519),new u(109,182.950224458),new u(110,183.950932553),new u(111,184.953420586),new u(112,185.954362204),new u(113,186.957158365),new u(114,187.958486954),new u(115,188.96191222),new u(116,189.963179541)]),m(k(Ht,1),Vt,3,0,[new u(85,159.981485),new u(86,160.977661),new u(87,161.975707),new u(88,162.971375872),new u(89,163.970319),new u(90,164.967050268),new u(91,165.965211372),new u(92,166.962564),new u(93,167.961609),new u(94,168.95883),new u(95,169.958163),new u(96,170.955547),new u(97,171.955285),new u(98,172.953062),new u(99,173.952114),new u(100,174.951393),new u(101,175.95157),new u(102,176.95027),new u(103,177.950851081),new u(104,178.949981038),new u(105,179.95078768),new u(106,180.950064596),new u(107,181.951211444),new u(108,182.950821349),new u(109,183.952524289),new u(110,184.952955747),new u(111,185.954986529),new u(112,186.955750787),new u(113,187.958112287),new u(114,188.959228359),new u(115,189.961816139),new u(116,190.963123592),new u(117,191.96596)]),m(k(Ht,1),Vt,3,0,[new u(86,161.983819),new u(87,162.982048),new u(88,163.977927),new u(89,164.976475),new u(90,165.971934911),new u(91,166.971554),new u(92,167.967832911),new u(93,168.967076205),new u(94,169.963569716),new u(95,170.96304),new u(96,171.960078),new u(97,172.959791),new u(98,173.956307704),new u(99,174.95708),new u(100,175.953757941),new u(101,176.955045),new u(102,177.953348225),new u(103,178.953951),new u(104,179.952308241),new u(105,180.953274494),new u(106,181.952186222),new u(107,182.95311),new u(108,183.952490808),new u(109,184.954043023),new u(110,185.953838355),new u(111,186.955747928),new u(112,187.955835993),new u(113,188.958144866),new u(114,189.95844521),new u(115,190.960927951),new u(116,191.961479047),new u(117,192.964148083),new u(118,193.965179314),new u(119,194.968123889),new u(120,195.96962255)]),m(k(Ht,1),Vt,3,0,[new u(88,164.98758),new u(89,165.985506),new u(90,166.980951577),new u(91,167.979966),new u(92,168.976390868),new u(93,169.974441697),new u(94,170.971779),new u(95,171.970643),new u(96,172.967707),new u(97,173.966804),new u(98,174.964279),new u(99,175.963511),new u(100,176.96117),new u(101,177.960084944),new u(102,178.95915),new u(103,179.958555615),new u(104,180.957642156),new u(105,181.958127689),new u(106,182.956814),new u(107,183.957388318),new u(108,184.95659),new u(109,185.957951104),new u(110,186.95736083),new u(111,187.958851962),new u(112,188.958716473),new u(113,189.960592299),new u(114,190.960591191),new u(115,191.962602198),new u(116,192.9629237),new u(117,193.96507561),new u(118,194.9659768),new u(119,195.968379906),new u(120,196.969636496),new u(121,197.97228),new u(122,198.973787159)]),m(k(Ht,1),Vt,3,0,[new u(90,167.988035),new u(91,168.986421),new u(92,169.981734918),new u(93,170.981251),new u(94,171.977376138),new u(95,172.976499642),new u(96,173.972811276),new u(97,174.972276),new u(98,175.969),new u(99,176.968453),new u(100,177.964894223),new u(101,178.965475),new u(102,179.962023729),new u(103,180.963177),new u(104,181.961267637),new u(105,182.961729),new u(106,183.959851685),new u(107,184.960753782),new u(108,185.959432346),new u(109,186.960697),new u(110,187.959395697),new u(111,188.9608319),new u(112,189.959930073),new u(113,190.961684653),new u(114,191.961035158),new u(115,192.962984504),new u(116,193.962663581),new u(117,194.964774449),new u(118,195.964934884),new u(119,196.967323401),new u(120,197.967876009),new u(121,198.970576213),new u(122,199.971423885),new u(123,200.974496467),new u(124,201.97574)]),m(k(Ht,1),Vt,3,0,[new u(92,170.991183),new u(93,171.990109),new u(94,172.986398138),new u(95,173.984325861),new u(96,174.981552),new u(97,175.980269),new u(98,176.977215),new u(99,177.975975),new u(100,178.973412),new u(101,179.972396),new u(102,180.969948),new u(103,181.968621416),new u(104,182.96762),new u(105,183.966776046),new u(106,184.965806956),new u(107,185.965997671),new u(108,186.964562),new u(109,187.965321662),new u(110,188.9642243),new u(111,189.964698757),new u(112,190.963649239),new u(113,191.964810107),new u(114,192.964131745),new u(115,193.96533889),new u(116,194.965017928),new u(117,195.966551315),new u(118,196.966551609),new u(119,197.968225244),new u(120,198.968748016),new u(121,199.970717886),new u(122,200.971640839),new u(123,201.973788431),new u(124,202.975137256),new u(125,203.977705),new u(126,204.97961)]),m(k(Ht,1),Vt,3,0,[new u(95,174.991411),new u(96,175.987413248),new u(97,176.986336874),new u(98,177.982476325),new u(99,178.981783),new u(100,179.978322),new u(101,180.977806),new u(102,181.97393546),new u(103,182.974561),new u(104,183.970705219),new u(105,184.971983),new u(106,185.969460021),new u(107,186.969785),new u(108,187.967511693),new u(109,188.968733187),new u(110,189.966958568),new u(111,190.96706311),new u(112,191.965921572),new u(113,192.966644169),new u(114,193.965381832),new u(115,194.966638981),new u(116,195.965814846),new u(117,196.967195333),new u(118,197.96675183),new u(119,198.968262489),new u(120,199.968308726),new u(121,200.970285275),new u(122,201.970625604),new u(123,202.972857096),new u(124,203.97347564),new u(125,204.976056104),new u(126,205.977498672),new u(127,206.982577025),new u(128,207.98594)]),m(k(Ht,1),Vt,3,0,[new u(96,176.996881),new u(97,177.994637),new u(98,178.991466),new u(99,179.990194),new u(100,180.986904),new u(101,181.98561),new u(102,182.982697),new u(103,183.98176),new u(104,184.9791),new u(105,185.977549881),new u(106,186.97617),new u(107,187.97592),new u(108,188.974290451),new u(109,189.974473379),new u(110,190.972261952),new u(111,191.972770785),new u(112,192.970548),new u(113,193.971053),new u(114,194.96965),new u(115,195.970515),new u(116,196.9695362),new u(117,197.970466294),new u(118,198.969813837),new u(119,199.970945394),new u(120,200.97080377),new u(121,201.972090569),new u(122,202.972329088),new u(123,203.973848646),new u(124,204.97441227),new u(125,205.976095321),new u(126,206.977407908),new u(127,207.982004653),new u(128,208.985349125),new u(129,209.990065574)]),m(k(Ht,1),Vt,3,0,[new u(99,180.996714),new u(100,181.992676101),new u(101,182.99193),new u(102,183.988198),new u(103,184.98758),new u(104,185.983485388),new u(105,186.98403),new u(106,187.979869108),new u(107,188.98088),new u(108,189.978180008),new u(109,190.9782),new u(110,191.975719811),new u(111,192.97608),new u(112,193.974648056),new u(113,194.975920279),new u(114,195.97271),new u(115,196.97338),new u(116,197.97198),new u(117,198.972909384),new u(118,199.97181556),new u(119,200.972846589),new u(120,201.972143786),new u(121,202.973375491),new u(122,203.973028761),new u(123,204.974467112),new u(124,205.974449002),new u(125,206.975880605),new u(126,207.97663585),new u(127,208.981074801),new u(128,209.984173129),new u(129,210.988731474),new u(130,211.991887495),new u(131,212.9965),new u(132,213.999798147)]),m(k(Ht,1),Vt,3,0,[new u(102,184.997708),new u(103,185.99648),new u(104,186.993458),new u(105,187.992173),new u(106,188.989505),new u(107,189.987520007),new u(108,190.986053),new u(109,191.985368),new u(110,192.983662229),new u(111,193.983430186),new u(112,194.98112697),new u(113,195.981236107),new u(114,196.978934287),new u(115,197.979024396),new u(116,198.977576953),new u(117,199.978141983),new u(118,200.976970721),new u(119,201.977674504),new u(120,202.976868118),new u(121,203.977805161),new u(122,204.977374688),new u(123,205.978482854),new u(124,206.978455217),new u(125,207.979726699),new u(126,208.980383241),new u(127,209.984104944),new u(128,210.987258139),new u(129,211.991271542),new u(130,212.994374836),new u(131,213.998698664),new u(132,215.001832349),new u(133,216.006199)]),m(k(Ht,1),Vt,3,0,[new u(106,189.994293888),new u(107,190.994653),new u(108,191.99033039),new u(109,192.991102),new u(110,193.988284107),new u(111,194.988045),new u(112,195.985469432),new u(113,196.985567),new u(114,197.984024384),new u(115,198.985044507),new u(116,199.981735),new u(117,200.982209),new u(118,201.980704),new u(119,202.981412863),new u(120,203.980307113),new u(121,204.981165396),new u(122,205.980465241),new u(123,206.981578228),new u(124,207.981231059),new u(125,208.982415788),new u(126,209.982857396),new u(127,210.986636869),new u(128,211.988851755),new u(129,212.992842522),new u(130,213.995185949),new u(131,214.999414609),new u(132,216.001905198),new u(133,217.006253),new u(134,218.008965773)]),m(k(Ht,1),Vt,3,0,[new u(108,193.000188),new u(109,193.997973),new u(110,194.996554),new u(111,195.995702),new u(112,196.993891293),new u(113,197.99343368),new u(114,198.991008569),new u(115,199.990920883),new u(116,200.988486908),new u(117,201.988448629),new u(118,202.986847216),new u(119,203.987261559),new u(120,204.986036352),new u(121,205.986599242),new u(122,206.985775861),new u(123,207.986582508),new u(124,208.986158678),new u(125,209.987131308),new u(126,210.987480806),new u(127,211.990734657),new u(128,212.99292115),new u(129,213.996356412),new u(130,214.998641245),new u(131,216.002408839),new u(132,217.004709619),new u(133,218.008681458),new u(134,219.011296478),new u(135,220.015301),new u(136,221.01814),new u(137,222.02233),new u(138,223.02534)]),m(k(Ht,1),Vt,3,0,[new u(110,196.001117268),new u(111,197.001661),new u(112,197.998779978),new u(113,198.998309),new u(114,199.995634148),new u(115,200.995535),new u(116,201.993899382),new u(117,202.994765192),new u(118,203.991365),new u(119,204.991668),new u(120,205.99016),new u(121,206.990726826),new u(122,207.989631237),new u(123,208.990376634),new u(124,209.989679862),new u(125,210.99058541),new u(126,211.990688899),new u(127,212.993868354),new u(128,213.995346275),new u(129,214.998729195),new u(130,216.000258153),new u(131,217.003914555),new u(132,218.005586315),new u(133,219.009474831),new u(134,220.011384149),new u(135,221.015455),new u(136,222.017570472),new u(137,223.02179),new u(138,224.02409),new u(139,225.02844),new u(140,226.03089),new u(141,227.035407),new u(142,228.038084)]),m(k(Ht,1),Vt,3,0,[new u(113,200.006499),new u(114,201.00458692),new u(115,202.00396885),new u(116,203.001423829),new u(117,204.001221209),new u(118,204.998663961),new u(119,205.998486886),new u(120,206.996859385),new u(121,207.997133849),new u(122,208.995915421),new u(123,209.996398327),new u(124,210.995529332),new u(125,211.996194988),new u(126,212.996174845),new u(127,213.99895474),new u(128,215.000326029),new u(129,216.003187873),new u(130,217.004616452),new u(131,218.007563326),new u(132,219.009240843),new u(133,220.012312978),new u(134,221.014245654),new u(135,222.017543957),new u(136,223.019730712),new u(137,224.023235513),new u(138,225.025606914),new u(139,226.029343423),new u(140,227.031833167),new u(141,228.034776087),new u(142,229.038426),new u(143,230.04251),new u(144,231.045407),new u(145,232.049654)]),m(k(Ht,1),Vt,3,0,[new u(115,203.00921),new u(116,204.006434513),new u(117,205.006187),new u(118,206.004463814),new u(119,207.005176607),new u(120,208.001776),new u(121,209.001944),new u(122,210.000446),new u(123,211.000893996),new u(124,211.999783492),new u(125,213.000345847),new u(126,214.000091141),new u(127,215.002704195),new u(128,216.003518402),new u(129,217.00630601),new u(130,218.007123948),new u(131,219.010068787),new u(132,220.011014669),new u(133,221.013907762),new u(134,222.01536182),new u(135,223.01849714),new u(136,224.020202004),new u(137,225.023604463),new u(138,226.025402555),new u(139,227.029170677),new u(140,228.031064101),new u(141,229.034820309),new u(142,230.037084774),new u(143,231.04122),new u(144,232.043693),new u(145,233.047995),new u(146,234.050547)]),m(k(Ht,1),Vt,3,0,[new u(118,207.012469754),new u(119,208.012112949),new u(120,209.009568736),new u(121,210.009256802),new u(122,211.007648196),new u(123,212.007811441),new u(124,213.006573689),new u(125,214.006893072),new u(126,215.006450832),new u(127,216.008721268),new u(128,217.009332676),new u(129,218.011625045),new u(130,219.012404918),new u(131,220.014752105),new u(132,221.015575746),new u(133,222.017828852),new u(134,223.01912603),new u(135,224.021708435),new u(136,225.023220576),new u(137,226.026089848),new u(138,227.027746979),new u(139,228.031014825),new u(140,229.032930871),new u(141,230.036025144),new u(142,231.038551503),new u(143,232.042022474),new u(144,233.04455),new u(145,234.04842),new u(146,235.051102),new u(147,236.055178)]),m(k(Ht,1),Vt,3,0,[new u(120,210.015711883),new u(121,211.016306912),new u(122,212.012916),new u(123,213.012962),new u(124,214.011451),new u(125,215.011726597),new u(126,216.011050963),new u(127,217.013066169),new u(128,218.013267744),new u(129,219.015521253),new u(130,220.015733126),new u(131,221.018171499),new u(132,222.018454131),new u(133,223.020795153),new u(134,224.02145925),new u(135,225.023941441),new u(136,226.024890681),new u(137,227.027698859),new u(138,228.028731348),new u(139,229.03175534),new u(140,230.033126574),new u(141,231.03629706),new u(142,232.03805036),new u(143,233.041576923),new u(144,234.043595497),new u(145,235.04750442),new u(146,236.04971),new u(147,237.053894),new u(148,238.056243)]),m(k(Ht,1),Vt,3,0,[new u(122,213.021183209),new u(123,214.02073923),new u(124,215.019097612),new u(125,216.019109649),new u(126,217.018288571),new u(127,218.020007906),new u(128,219.019880348),new u(129,220.021876493),new u(130,221.021863742),new u(131,222.023726),new u(132,223.023963748),new u(133,224.025614854),new u(134,225.026115172),new u(135,226.02793275),new u(136,227.028793151),new u(137,228.031036942),new u(138,229.032088601),new u(139,230.034532562),new u(140,231.035878898),new u(141,232.03858172),new u(142,233.040240235),new u(143,234.043302325),new u(144,235.045436759),new u(145,236.048675176),new u(146,237.05113943),new u(147,238.054497046),new u(148,239.05713),new u(149,240.06098)]),m(k(Ht,1),Vt,3,0,[new u(126,218.023487),new u(127,219.024915423),new u(128,220.024712),new u(129,221.026351),new u(130,222.02607),new u(131,223.027722956),new u(132,224.027590139),new u(133,225.029384369),new u(134,226.02933975),new u(135,227.031140069),new u(136,228.031366357),new u(137,229.033496137),new u(138,230.033927392),new u(139,231.036289158),new u(140,232.03714628),new u(141,233.039628196),new u(142,234.040945606),new u(143,235.043923062),new u(144,236.045561897),new u(145,237.048723955),new u(146,238.050782583),new u(147,239.054287777),new u(148,240.056585734),new u(149,241.06033),new u(150,242.062925)]),m(k(Ht,1),Vt,3,0,[new u(132,225.033899689),new u(133,226.035129),new u(134,227.034958261),new u(135,228.03618),new u(136,229.036246866),new u(137,230.037812591),new u(138,231.038233161),new u(139,232.040099),new u(140,233.04073235),new u(141,234.042888556),new u(142,235.044055876),new u(143,236.046559724),new u(144,237.048167253),new u(145,238.050940464),new u(146,239.052931399),new u(147,240.056168828),new u(148,241.058246266),new u(149,242.061635),new u(150,243.064273),new u(151,244.06785)]),m(k(Ht,1),Vt,3,0,[new u(134,228.038727686),new u(135,229.040138934),new u(136,230.039645603),new u(137,231.041258),new u(138,232.041179445),new u(139,233.04298757),new u(140,234.043304681),new u(141,235.0452815),new u(142,236.046048088),new u(143,237.048403774),new u(144,238.0495534),new u(145,239.052156519),new u(146,240.05380746),new u(147,241.056845291),new u(148,242.058736847),new u(149,243.061997013),new u(150,244.06419765),new u(151,245.067738657),new u(152,246.070198429),new u(153,247.07407)]),m(k(Ht,1),Vt,3,0,[new u(136,231.04556),new u(137,232.04659),new u(138,233.046472),new u(139,234.047794),new u(140,235.048029),new u(141,236.049569),new u(142,237.049970748),new u(143,238.051977839),new u(144,239.053018481),new u(145,240.055287826),new u(146,241.056822944),new u(147,242.059543039),new u(148,243.061372686),new u(149,244.064279429),new u(150,245.066445398),new u(151,246.069768438),new u(152,247.072086),new u(153,248.075745),new u(154,249.07848)]),m(k(Ht,1),Vt,3,0,[new u(137,233.0508),new u(138,234.05024),new u(139,235.051591),new u(140,236.051405),new u(141,237.052891),new u(142,238.053016298),new u(143,239.054951),new u(144,240.055519046),new u(145,241.057646736),new u(146,242.058829326),new u(147,243.061382249),new u(148,244.062746349),new u(149,245.065485586),new u(150,246.067217551),new u(151,247.070346811),new u(152,248.072342247),new u(153,249.075947062),new u(154,250.078350687),new u(155,251.082277873),new u(156,252.08487)]),m(k(Ht,1),Vt,3,0,[new u(138,235.05658),new u(139,236.05733),new u(140,237.057127),new u(141,238.058266),new u(142,239.058362),new u(143,240.059749),new u(144,241.060223),new u(145,242.06205),new u(146,243.06300157),new u(147,244.065167882),new u(148,245.066355386),new u(149,246.068666836),new u(150,247.070298533),new u(151,248.07308),new u(152,249.074979937),new u(153,250.078310529),new u(154,251.08075344),new u(155,252.084303),new u(156,253.08688),new u(157,254.0906)]),m(k(Ht,1),Vt,3,0,[new u(139,237.06207),new u(140,238.06141),new u(141,239.062579),new u(142,240.062295),new u(143,241.063716),new u(144,242.063688713),new u(145,243.065421),new u(146,244.06599039),new u(147,245.068039),new u(148,246.068798807),new u(149,247.070992043),new u(150,248.07217808),new u(151,249.074846818),new u(152,250.076399951),new u(153,251.079580056),new u(154,252.081619582),new u(155,253.085126791),new u(156,254.087316198),new u(157,255.091039),new u(158,256.09344)]),m(k(Ht,1),Vt,3,0,[new u(141,240.06892),new u(142,241.068662),new u(143,242.069699),new u(144,243.069631),new u(145,244.070969),new u(146,245.071317),new u(147,246.072965),new u(148,247.07365),new u(149,248.075458),new u(150,249.076405),new u(151,250.078654),new u(152,251.079983592),new u(153,252.082972247),new u(154,253.084817974),new u(155,254.088016026),new u(156,255.090266386),new u(157,256.093592),new u(158,257.095979)]),m(k(Ht,1),Vt,3,0,[new u(142,242.07343),new u(143,243.07451),new u(144,244.074077),new u(145,245.075375),new u(146,246.075281634),new u(147,247.076819),new u(148,248.077184411),new u(149,249.079024),new u(150,250.079514759),new u(151,251.081566467),new u(152,252.082460071),new u(153,253.085176259),new u(154,254.086847795),new u(155,255.089955466),new u(156,256.091766522),new u(157,257.095098635),new u(158,258.097069),new u(159,259.100588)]),m(k(Ht,1),Vt,3,0,[new u(144,245.081017),new u(145,246.081933),new u(146,247.081804),new u(147,248.082909),new u(148,249.083002),new u(149,250.084488),new u(150,251.084919),new u(151,252.08663),new u(152,253.08728),new u(153,254.089725),new u(154,255.091075196),new u(155,256.094052757),new u(156,257.095534643),new u(157,258.098425321),new u(158,259.100503),new u(159,260.103645)]),m(k(Ht,1),Vt,3,0,[new u(147,249.087823),new u(148,250.087493),new u(149,251.08896),new u(150,252.088965909),new u(151,253.090649),new u(152,254.090948746),new u(153,255.093232449),new u(154,256.094275879),new u(155,257.096852778),new u(156,258.0982),new u(157,259.101024),new u(158,260.102636),new u(159,261.105743),new u(160,262.10752)]),m(k(Ht,1),Vt,3,0,[new u(148,251.09436),new u(149,252.09533),new u(150,253.095258),new u(151,254.096587),new u(152,255.096769),new u(153,256.098763),new u(154,257.099606),new u(155,258.101883),new u(156,259.10299),new u(157,260.105572),new u(158,261.106941),new u(159,262.109692),new u(160,263.111394)]),m(k(Ht,1),Vt,3,0,[new u(149,253.100679),new u(150,254.100166),new u(151,255.101492),new u(152,256.101179573),new u(153,257.103072),new u(154,258.103568),new u(155,259.105628),new u(156,260.106434),new u(157,261.108752),new u(158,262.109918),new u(159,263.11254),new u(160,264.113978)]),m(k(Ht,1),Vt,3,0,[new u(150,255.107398),new u(151,256.10811),new u(152,257.107858),new u(153,258.109438),new u(154,259.109721),new u(155,260.111427),new u(156,261.112106),new u(157,262.114153),new u(158,263.115078),new u(159,264.117473),new u(160,265.118659)]),m(k(Ht,1),Vt,3,0,[new u(152,258.113151),new u(153,259.114652),new u(154,260.114435447),new u(155,261.116199),new u(156,262.116477),new u(157,263.118313),new u(158,264.118924),new u(159,265.121066),new u(160,266.121928)]),m(k(Ht,1),Vt,3,0,[new u(153,260.121803),new u(154,261.1218),new u(155,262.123009),new u(156,263.123146),new u(157,264.12473),new u(158,265.125198),new u(159,266.127009),new u(160,267.12774)]),m(k(Ht,1),Vt,3,0,[new u(155,263.12871),new u(156,264.128408258),new u(157,265.130001),new u(158,266.130042),new u(159,267.131774),new u(160,268.132156),new u(161,269.134114)]),m(k(Ht,1),Vt,3,0,[new u(156,265.136567),new u(157,266.13794),new u(158,267.137526),new u(159,268.138816),new u(160,269.139106),new u(161,270.140723),new u(162,271.141229)])])}function H6(t,e){return e1(e,M4)?new fU(xv(t,168,1428,\"%5968%UDy0ClA8tJ9QPLT6UDy08FA8tJVQPLQK%858%BQPLQdUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLSW%362%D4BwYC+AYGAvgHBgE%303%D/AAAB/wAAAQ%159%FA8tC1QPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTl%330%D5BgcB+AcGBPkHBhX5BwdN+QYHefgHB2/5Bwc8+AYGFfgGBgj5BgcF+AYGAvkHBgE%245%/wAAAf8AAAL/AAAG/wAAEP8AACP/AAA7/wAAP/8AAD3/AAAg/wAABw%154%UDy0RFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5%325%PkFCAT4BgZE+QcHo/gHB+X5Bwb/+QcH//kHB//4Bwf9+QYH1vgHB5X5BwZD+QcGDvkHBwb5BgYD+QcGAQ%228%D/AAAS/wAARP8AAIL/AAC4/wAA2/8AAPf/AAD//wAA//8AAPj/AAB+/wAADw%148%BQPLRnUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%314%D5BwYC+AYHK/kHBrb4Bwf4+AcH//gHB//5Bwf/+AcG//kHBv/5Bwf/+AYH//gHB/75Bwf3+AYHs/kHBkH5BgcR+QYGB/kFBgL6BgYB%197%P8AAAH/AAAI/wAAKP8AAIj/AADh/wAA9/8AAP3/AAD//wAA//8AAP//AAD6/wAAzv8AAGH/AAAq/wAAEw%143%FA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%304%+QYHAfoIBwX4BgZu+QcH6fkGB//5Bgf/+QYH//kHB//5Bwf/+QcG//kHBv/4Bwb/+AcH//gHB//5Bgf/+AcH//kHBvT5Bwas+QYGO/kGBgr5BgUG+gUFAQ%175%P8AAAE%5%/wAACv8AAFX/AACy/wAA8P8AAP//AAD//wAA//8AAP//AAD//wAA//8AANP/AACD/wAARf8AACz/AAAZ/wAACQ%132%BQPLQJUDy0qlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%304%+QcGBPkGB374Bwf5+AcH//kHB//5Bwf/+QcH//kHBv/4Bwf/+AcH//gHB//5Bwf/+QcG//gHB//5Bwf/+QcG//gGB//4Bwb/+QYG8PkGBoD5BgYg+gYFCvoFBQQ%165%/wAAAf8AAA7/AABV/wAAzf8AAPv/AAD//wAA//8AAP//AAD//wAA//8AAPz/AADo/wAAkf8AAEr/AAAz/wAAH/8AAA//AAAG/wAAAQ%127%FA8tBNQPLTDUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%304%+QYGUvgHBvn4Bwf/+AcH//kHB//5Bwf/+QcH//kHB//4Bgf/+QcH//gHB//4Bwb/+AcH//gHB//4Bgf/+QcG//gGB//5Bwf/+QYG//kGBv76BgbL+gYFTfoFBQ76BQUH+gUEAQ%148%D/AAAG/wAAWf8AAMb/AAD9/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA7P8AAJ3/AABW/wAANP8AACL/AAAS/wAAB/8AAAI%133%UDy0I1A8tNtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%293%PkHBwH4BwYD+AYHwfgHB//4Bwb/+QYH//gGBv/4Bwf/+QYH//kGB//5Bwf/+AcH//gHB//5Bwb/+AcH//kGB//4Bwf/+AYG//kHB//4Bwb/+AYG//kHB//5BQb/+QYF8/oFBX76BQUd+wQFCfsEBAI%133%/wAABv8AADj/AAC5/wAA/P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPP/AAC6/wAAXv8AADn/AAAm/wAAE/8AAAj/AAAC/wAAAQ%132%BQPLQ7UDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%293%PgGBgH4BggD+QcGqPgHB//4Bwf/+AcH//gHB//4Bwf/+AcG//gHB//4Bgf/+QYG//gGBv/5Bgb/+AcH//kHB//4Bgb/+QcH//gHB//5Bwf/+QcH//kHBv/5Bgb/+gYG//oFBfz6BQW++wQFMfoFBAz7BAQE%112%/wAAAQ%4%D/AAAf/wAAo/8AAPD/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA0P8AAHL/AABB/wAAKf8AABb/AAAJ/wAAA/8AAAE%138%FA8tFNQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%293%PgGBwH4BwcE+AcHJ/gHB8j4Bgf/+AcH//kHBv/4Bwf/+QcH//gHB//5Bgb/+AcG//gHB//4Bwf/+AYH//gHB//4Bwb/+QcH//kGB//5Bwf/+AYH//kHBv/5Bgb/+QYG//oFBv/6BQX/+gQF3foEBVL7BAQR+wMEBvwDAwE%101%/wAAEP8AAGj/AADm/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOj/AACX/wAASP8AADD/AAAb/wAADP8AAAT/AAAB%144%UDy0blA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0LlA8tAI%287%D5BgcC+QcGC/gGBir5Bwea+QcH9vkHB//4Bwb/+QYG//gHB//4Bwf/+QYG//gGB//4Bwf/+AcH//gGBv/4Bwf/+QYH//kGB//4Bgf/+QcH//gHBv/5Bgb/+QUG//kGBf/6BQX/+gUF//oEBfD7BAR0/AQEFPsDAwj8BAMC%80%/wAAAf8AAAL/AAA1/wAAyv8AAPr/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD8/wAAwv8AAGD/AAA5/wAAI/8AABD/AAAG/wAAAg%143%FA8tAFQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0yFA8tJpQPLR4UDy0UFA8tCI%261%+AYHA/gGBw35BwYa+AYHWPkHBr75Bwf4+AcH//kHB//4Bwf/+AYH//gHB//5Bwf/+QcH//gHB//4Bwb/+QcG//kHBv/4Bwf/+QcG//gHBv/5Bgb/+QYG//oGBv/6BQX/+gUF//sEBf/7BAT+/AQEkvwDAx38AwMK/QMDAg%74%/wAAFP8AAIP/AADy/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO7/AACX/wAAR/8AAC7/AAAX/wAACf8AAAI%149%UDy0B1A8tKpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0v1A8tI1QPLRSUDy0Fw%239%PkHBwL4BwcI+AYGFPgHByf5Bgdh+AYHzPkHB/v5Bwf/+QcG//kHBv/4Bwb/+QcG//kHB//5Bwf/+QYG//gHBv/4Bwf/+QcH//gGB//5Bwb/+QYG//oGBv/6BgX/+gQF//oFBP/7BAT/+wQE/fwEBK/8BAMk/AMDDPwCAgM%53%/wAAAf8AAAP/AAA5/wAA0v8AAP3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD+/wAA3P8AAGz/AAA8/wAAIv8AAA//AAAF/wAAAQ%148%BQPLQTUDy0xlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNdQPLSTUDy0TlA8tAw%223%D4BgYB+QcHBPkHBgv4BwcV+AYGK/gHB3H4BwfM+AcH/vgHB//4Bgf/+QYG//gHB//4Bwb/+AYH//gHBv/5Bwf/+QcH//gHB//4Bwb/+QYG//kGBv/6Bgb/+gUF//sEBf/7BAT/+wQE//wEBP78AwS7/AMDLP0DAgz9AgID%37%P8AAAE%5%/wAAEP8AAIL/AADx/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC5/wAAVv8AADH/AAAa/wAACf8AAAI%154%FA8tCBQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLS3UDy0aVA8tBg%218%PkHBwH5BwcF+QYHDPgHBxn5Bwct+QYHd/kHBt/5Bwb8+AcG//gHB//4Bwf/+QcG//gGBv/4Bwf/+AcG//gHB//5Bgb/+QcH//kGBv/6BgX/+gYF//oFBf/7BAX/+wUE//sEBP/7AwT//AMDy/0DAzP8AwIO/QIDB%32%P8AAAP/AAAr/wAAx/8AAP3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA9v8AAJz/AABG/wAAK/8AABP/AAAG/wAAAQ%154%UDy0NVA8tONQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS2UDy0XlA8tAg%213%+QYGAfgHBgX4BwcN+QcHGPgHBzf4BgeF+QcH4/gGBv/4Bwb/+AcH//gHB//5Bwf/+QcG//gHB//5Bwb/+QYG//kGBv/5Bgb/+QYF//oFBf/7BQX/+gUE//sEBP/8BAP//AMD//wDAtD9AgI3/QICDv0CAgQ%21%/wAAAv8AAG7/AADo/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADq/wAAgf8AAD7/AAAk/wAADv8AAAQ%159%BQPLRJUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLSSUDy0L%213%D5BwcB+QYHBfgGBg/5Bgcb+AcGOfgHB6D5Bwfv+QcH//kGBv/5Bwb/+AcH//gGB//5Bwf/+QYG//kGBv/5Bgb/+gUG//oGBf/6BAX/+gQF//sEBP/7BAP/+wMD//wDA//9AwPW/QMCOf0CAg/9AQIE%5%P4BAQH/AQEd/wEApv8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANz/AABo/wAAOP8AAB7/AAAL/wAAAw%159%FA8tGZQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLxQPLRB%213%PgHBwL5BgcH+AcHEPkHBh/5BgZN+AYHsfgGB/v4Bwf/+AYG//gHBv/4Bgf/+QYH//kGBv/5Bgb/+gYG//oFBf/6BQX/+gQF//sEBP/7BAP//AQE//wDA//8AwP//QID0/0CAjP9AgEP/QEBAv4BAUf+AQDX/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAx/8AAFz/AAAz/wAAGP8AAAj/AAAB%160%UDy0elA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zFA8tEQ%207%D5BgcB+QcHAvgHBwj4BwYT+AYGIfgHB2j5BgfW+QcH/PkHBv/5Bwf/+AYH//gHBv/5Bgb/+QUF//oFBv/7BQX/+gUF//sFBP/7BAT//AME//wDA//8AwL//AMD//wCAsv+AgI8/QEBfP4BAfb+AQH//wEA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPv/AAC6/wAAUP8AAC7/AAAV/wAABv8AAAE%159%BQPLSYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTAUDy0Mw%207%PkHBwH4BwcD+QcHCvgHBhb5Bwcy+QYHh/kHB/H4Bwf/+AcH//kGBv/5Bgb/+QYG//oFBv/6BQX/+gUF//oFBP/7BAT/+wQD//sDA//8AwP//QMD//0DAv79AgLp/gIC+/4CAf/+AQH//wAB//8AAP//AAD//wAA//8AAP//AAD//wAA+f8AAKL/AABJ/wAAKf8AABH/AAAF%165%FA8tJdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tJZQPLQO%208%+AYGAfkHBwT4BgYO+QYGGfgHB0n5Bwe7+QcH+vkHBv/5Bgb/+gYF//kGBv/6BgX/+wUF//oEBf/7BAT/+wME//wDA//8AwP//AMD//wCAv/9AgL//QIC//4BAf/+AQH//gAA//8AAf//AAD//wAA//8AAP//AAD1/wAAmf8AAEP/AAAm/wAADv8AAAQ%170%FA8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0VQ%212%D4BwcC+AcHB/kHBxL5BgYm+QcHb/kGB+n5Bwf++QYG//kFBv/5BgX/+wUF//sFBf/7BAT/+wME//wDA//8AwT//AMD//0DAv/9AgL//QIC//4CAf/+AgH//gAB//4AAP//AAD//wAA//8AAPT/AACF/wAAQP8AACL/AAAN/wAAAw%175%FA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tK1QPLQP%208%+AcHAfkHBwT4BwcL+QcHF/gHBj/5Bgau+QYG+/oFBv/6BQX/+gUF//sFBf/7BQT/+wQE//sEBP/8AwP//AMD//wCA//9AgL//gEC//4CAf/+AQH//gEA//4BAf//AAD//wAA6/8AAHz/AAA7/wAAH/8AAAv/AAAC%181%FA8tHVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0Mw%212%D5BwYB+QcHBvgHBhH5Bwci+QYHbPoGBuX5Bgb++gUG//oFBf/7BAT/+wUE//sEBP/8AwT//AMD//0CAv/9AgL//QIC//4BAf/+AgL//gEB//8AAP/+AADs/wAAcv8AADr/AAAd/wAACv8AAAI%191%BQPLSNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tFs%213%+AcHAfgHBwP4BwcK+QYGFfkGBkD5BQWz+gUF/PoFBf/7BAT/+wQE//sEBP/7BAP//AME//wDA//8AgL//QIC//0CAv/9AgL//gEB//8BAPf/AAB5/wAAPP8AABz/AAAI/wAAAQ%202%UDy0f1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRt%218%D5BwYB+AYGBfkGBhH6BQYk+gUFqfsEBf77BAX/+wUF//sEBP/7BAP//AMD//wDA//9AwL//QMD//0BAv/+AQL//gEB//4BAf/+AAG//wAANP8AABH/AAAD%213%FA8tGhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0iw%218%+AcGAfkGBgn6BgaD+QUF8foFBf/7BQX/+wUE//sEBP/7BAT//AMD//wDBP/9AwP//QMC//4CAv/+AQL//gIB//4BAf//AAD8/wAAjf8AABr/AAAI/wAAAQ%212%BQPLRSUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHM%213%+AcHEfkGB5X6BgX7+gYF//oFBf/6BAX/+wUE//sEBP/7AwT//AMD//wDA//8AwL//AMD//0CAv/+AgL//gIB//4BAf/+AQD//wAA9/8AAGH/AAAU/wAABg%218%UDy0OlA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRf%202%D5BwcZ+AYHvfkGB/75Bgb/+gYG//oFBf/6BQX/+gQE//sEBP/7BAT//AQE//wDA//9AwP//AMD//0CAv/9AgL//gIB//4BAf/+AAD//wAA//8AAOT/AABE/wAAEf8AAAQ%218%FA8tCJQPLTfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0O%187%9wcIAfkHByz5BgfN+QcH//kGBv/5Bgb/+QYG//oFBf/6BQX/+gUE//sEBP/7BAT//AQE//wEA//9AwP//QID//0CAv/9AgL//QIC//4BAf//AQH//gAB//8AAf//AADB/wAAKP8AAAz/AAAC%218%BQPLQXUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy031A8tAw%175%D4BwcB+AcGPPgHB9/4Bwb/+AcH//kHBv/5Bgb/+gYG//kGBf/6BQX/+gUE//oFBP/7BAX/+wQE//wDA/38AwP//AMD//0CA//9AgL//QIB//4CAv/+AQH//wEB//8AAP//AAD+/wAAn/8AAB3/AAAI/wAAAQ%218%UDy0ClA8tLFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKM%165%+AcGAfgGBwP5BwdU+AcH7fgGB//5Bgf/+AcH//kHB//5Bgb/+QYG//kFBv/6BQX/+wUF//oFBP/7BAT/+wQE5fwDBIr8AwPM/AMD//0DA//9AgL//QIC//0BAv/+AQH//gEA//8BAP//AAD//wAA9f8AAGb/AAAV/wAABQ%223%FA8tAFQPLSXUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQ7%160%+QcGAvkHB2D5Bgfx+AYH//kGBv/4Bwf/+QYH//kHBv/4Bgb/+QYG//oGBv/6Bgb/+gUF//sEBP/7BATp+wQEbPwDBD78AwM6/AMDuP0DA/79AgL//gIC//0CAf/+AQL//gEB//8AAP//AAD//wAA//8AAOX/AAA8/wAAEP8AAAQ%229%UDy0cVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%10%BQPLQRUDy0MVA8tFJQPLRvUDy0lVA8tMdQPLTwUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTI%149%PgGBgH4BwYE+AYGcvgHB/r4Bwb/+QcG//kHB//5Bwb/+AcG//gHB//4Bwb/+QYG//kGBv/6BgX/+gUF//oEBev7BARy+wQENvsEBBz8AwQU/AMDKP0DA6b8AgL//QIC//4CAv/+AgH//gAB//4AAP//AAD//wAA//8AAP//AAC8/wAAJv8AAAz/AAAB%229%FA8tFNQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%48%UDy0LFA8tGFQPLSgUDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Pw%138%+QcHAfkGBgT4Bgd5+QcG/PkHB//5Bwb/+AYH//gGB//5Bwf/+AcH//kGBv/5Bwf/+QYG//oGBv/5Bgb/+gUF8/oFBX/6BQU6+wQEGvwEBAj7AwQD/AMDDP0DAx39AgKV/QIC+f4CAv/9AQH//gEB//8AAf//AAD//wAA//8AAP//AAD7/wAAe/8AABj/AAAH/wAAAQ%228%BQPLQ7UDy051A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%69%FA8tClQPLSAUDy0z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rg%132%D4BgcB+QcGA/gGB3/5Bgf8+QcH//kHB//4Bwf/+QYH//gGBv/5Bgf/+AcG//gHBv/5Bwb/+AYG//kGBv/5Bgb8+gYGlfoFBT37BQQe+wUECfsEBAE%5%/AMDAvwCAwr8AwIb/QICi/4CAvn+AgH//gEB//4BAP/+AAD//wAA//8AAP//AAD//wAA7v8AAEz/AAAS/wAAAw%234%UDy0IlA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%85%FA8tCdQPLSEUDy05lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tBU%122%PkHBgH5BQcG+QcHfPgHB/75Bgb/+AYH//kGB//4Bwf/+QcG//gHB//5Bwf/+QcH//gHBv/5Bgf/+AcG//kGB/75Bgax+gUGRPkFBSL6BQQK+wQFAg%15%PwDAwL8AgIJ/QMCGP4CAYD+AQL2/gEB//4BAP//AQH//wAB//8AAP//AAD//wAA//8AAML/AAAp/wAADP8AAAI%234%FA8tBRQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0CFA8tFpQPLTQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tF4%117%+QcGAfkHBwP5Bwd8+QcG+/gHB//4Bwf/+QcH//kGB//5Bwf/+AcH//kHBv/5Bwf/+AcH//kHB//5Bwf/+QcH//kGBtD6BgZR+gYGKPoFBg36BQUC%26%D9AwMB/QIDCP0CAhf9AgJ5/gIB9/4BAf//AQH//wAA//8AAP//AAD//wAA//8AAPv/AAB7/wAAF/8AAAc%239%BQPLQJUDy0rVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%112%UDy0UVA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ8%117%+QcGBPkHBm34Bwf7+QYH//gGB//4Bwf/+AcH//kHB//5Bwf/+AcH//kHB//4Bwb/+AcH//gHB//4Bgf/+AcG5/gGB2D5BgYv+gUFEvoFBgM%37%/QICAf0CAgj+AgEW/gEBgP4BAfn+AQH//wAB//8AAP//AAD//wAA//8AAP//AADt/wAARP8AABH/AAAD%245%FA8tI5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%122%BQPLRoUDy08FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMw%111%D5BwcB+QcHXPgHB/T4Bwb/+QcG//kHB//5Bwf/+AcH//kHBv/5Bwf/+QcG//kHBv/4Bgb/+QcH//kHBv/5Bgf7+AcHhPkGBjj5BgYX+QYGBQ%47%P0DAgH9AgII/QECGP4BAYP+AQD7/wEA//4AAP//AAD//wAA//8AAP//AAD//wAAsv8AACP/AAAK/wAAAQ%244%BQPLRmUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%128%UDy0HFA8tMBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO4%106%PkJBQH5BgdD+AcG7/gHBv/5Bgf/+QcG//gHB//4Bgf/+AcG//kHB//5Bwf/+AcH//gHB//4Bwf/+QcG//gGB/75Bwen+QcHPvkHBh75BgYI+QYGAQ%52%D+AgIB/QEBCf4BARj+AQGX/gEB/v8AAf//AAD//wAA//8AAP//AAD//wAA9/8AAGL/AAAV/wAABg%250%UDy0RFA8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2%133%FA8tARQPLSVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%101%+QcGAfkHByv4Bgfg+QcG//kHB//4Bwb/+QYG//kHB//4Bgb/+QcG//gHBv/5Bwf/+AcH//gGBv/5Bwf/+QcG//kHB9D4BwZP+QcGJ/gHBgv5BwcC%64%/QICAf0BAgn+AQEc/gEBo/8AAP//AAD//wAA//8AAP//AAD//wAA//8AANv/AAAx/wAADv8AAAI%250%FA8tCtQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTd%144%UDy0i1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%95%D6BwcB+AcHFPgGB8j4Bwf/+AcG//gHB//4Bgf/+QcG//kHB//4Bwb/+QcG//kHB//4Bwf/+AYH//gHB//4Bgf/+QcH7vgHBmr5BwYw+AYHEfgHBgM%74%P4CAQH+AQEK/gEBJP8BALz/AAD//wAA//8AAP//AAD//wAA//8AAP3/AACQ/wAAHP8AAAc%255%BQPLQRUDy0wlA8tP9QPLT/UDy0/1A8tP9QPLSb%149%FA8tItQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%90%PkHBwH4BgcJ+AYHp/kHBv/4Bgf/+QYG//gHB//4Bgb/+AcH//kHBv/4Bwf/+QYH//kHB//4Bwf/+QYH//kHB//4Bgf7+QcHjPkGBzn5BwcY+QYGBQ%84%D9AQEC/gEBC/4AASv/AQDT/wAA//8AAP//AAD//wAA//8AAP//AADq/wAAQ/8AABL/AAAD%256%UDy0B1A8tIlQPLT8UDy0+1A8tKFQPLQK%154%BQPLSnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPs%95%D5Bwdk+QcH+fgGB//4Bwf/+QcH//kHBv/4Bgf/+QcG//kHBv/4Bwf/+QcH//gHB//4Bwf/+AcH//kGB//5BwbA+QcHR/gHByL5BgcJ+AcHAQ%90%/gEBA/8BAAz/AABD/wAA5v8AAP//AAD//wAA//8AAP//AAD//wAAt/8AACP/AAAK/wAAAQ%436%BQPLQLUDy03lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN0%85%+AcGAfkGBy35Bgbw+QcH//kHB//5Bwf/+QYH//gGB//5Bgf/+AcG//kHB//4Bwb/+AcH//gGB//4Bgf/+QcH//kHBuf5Bwdb+AcGK/gHBg75BwcC%101%P4AAAT/AQEO/wAAZP8AAPn/AAD//wAA//8AAP//AAD//wAA9v8AAGP/AAAW/wAAB%443%UDy0UFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL%80%D4BwYB+AcHC/gHBrb4Bwf/+QcH//gHB//5Bwf/+QcG//gGB//4Bgf/+QcH//gHB//4Bwf/+AYH//kHB//4Bwb/+AYH9/kHB4H4Bwc2+QcHFfgHBgU%111%D+AQEF/wAAEv8AAIb/AAD7/wAA//8AAP//AAD//wAA//8AAMb/AAAp/wAADf8AAAE%442%FA8tNJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHk%85%+AcGWfkHBvz5Bwb/+QYG//kHBv/4Bwb/+QYG//gHBv/4Bgf/+AcH//gHB//5Bgf/+QcH//gHB//4Bwf/+AcHu/gHBkT5BwYf+AYHB/gGBwE%111%D/AAAB/wEAB/8AAB3/AAC8/wAA//8AAP//AAD//wAA//8AAP//AABu/wAAFv8AAAU%442%FA8tHZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tCo%74%PgHBwH5BwcV+AcH4PgHB//4Bgf/+QcH//kGB//5Bwb/+QcH//kHB//5Bwb/+QcH//gHB//5Bwb/+QYH//gHB//5Bwfh+QcHV/gHByn4BwcN+AcHAg%122%/wEAAf8AAAn/AAAu/wAA2/8AAP//AAD//wAA//8AAP//AADW/wAAMP8AAA3/AAAC%437%FA8tDFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01%80%PgHBwL5BgZ2+AYG/fgGB//5Bwf/+AYH//gHB//4Bwf/+AcG//gHB//4Bwf/+AcG//kHB//4Bwf/+AcH//gHB/j4BwaB+QcHNfkGBxT5BwcD%133%P8AAAP/AAAN/wAAWf8AAPT/AAD//wAA//8AAP//AAD4/wAAcf8AABn/AAAF%442%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ag%79%PgHBw/4BwbO+QYH//kHBv/5Bwb/+AYH//kHBv/5Bwf/+QcG//gGB//4Bgb/+QYH//gHB//5Bgf/+QYH//gHB7r5BwdD+QcGHvkHBgf5BwcB%138%D/AAAE/wAAEf8AAJP/AAD//wAA//8AAP//AAD//wAAyP8AACn/AAAN/wAAAQ%436%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0Cg%79%PkHBkb4Bgf9+QcH//gGBv/5Bwb/+AYH//gHB//4Bwb/+AcG//kHB//4Bwf/+AcG//kHBv/4Bwb/+QcG4/kHB1j4BwYp+AcGDfkGBwE%143%D/AAAB/wAAB/8AAB7/AADO/wAA//8AAP//AAD//wAA/v8AAGT/AAAX/wAABQ%436%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRs%85%PkHB6H4Bgb/+QYH//kHBv/4Bwf/+QYH//kHBv/4Bwb/+AYH//kHBv/4Bgb/+QYH//gHBv/4Bwf5+QYGifkGBzj5BwYV+QcHB%155%/wAAAf8AAAv/AABW/wAA9v8AAP//AAD//wAA//8AAMH/AAAp/wAACv8AAAE%426%FA8tBdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNRQPLQE%80%+QcHGPgGB+j4Bgb/+AcH//gHB//4Bgf/+AcG//kGBv/5Bwb/+QYH//kGBv/5Bwf/+AcH//gGB//5Bwbw+AcHWPgGByT5BwYJ%165%P8AAAT/AAAP/wAAnv8AAP//AAD//wAA//8AAO7/AABN/wAAFP8AAAM%426%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tDU%79%D5BgcB+AcHQ/gGBvj4Bwf/+AcH//gHB//5Bwb/+QcH//kHB//5Bwf/+QcH//kHB//4Bwf/+QcH//kHBv/5Bwfs+QcGS/kHBhn5BwcE%170%D/AAAH/wAAJf8AANj/AAD//wAA//8AAP7/AACL/wAAHv8AAAc%426%FA8tKNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0dw%84%D4BwcC+QcHZ/kHB/v5Bwf/+AcH//gGBv/4Bwb/+AcH//kHBv/5Bwf/+AYH//kHB//4Bgf/+QcG//gHB//5Bwfs+AYHR/gGBhb5BgYD%170%D/AAAC/wAADP8AAGf/AAD8/wAA//8AAP//AADR/wAALf8AAA7/AAAC%416%UDy0FlA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSq%90%D4BgYC+AcHe/gHB/35Bwf/+QYH//kHBv/4Bgb/+QcH//kHBv/5Bgf/+AcG//kGB//4Bwb/+AcH//gGB//4Bwfs+AcGR/kHBhb5BwcD%176%/wAABP8AABL/AACz/wAA//8AAP//AAD8/wAAVP8AABX/AAAD%416%UDy0kVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMNQPLQJ%90%D5BwcD+AcHgPkGB/35Bwf/+QcH//gHB//4Bgb/+QcG//gGB//5Bwf/+QcH//gGBv/5Bwb/+QYH//kHB//4Bwbs+QcHR/kHBxX4BwcD%176%/wAAAf8AAAj/AAAy/wAA4/8AAP//AAD//wAAjf8AAB//AAAG%410%BQPLQ0UDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00lA8tAs%95%D5BgcE+AYHePkGBvz5Bwf/+AcH//kGB//5Bwb/+QcH//gHB//4Bgf/+QcH//kGBv/4Bwf/+QYH//gGB//5Bwbm+QYHQPgGBxX4BwYD%181%P8AAAP/AAAO/wAAfP8AAP3/AAD//wAAvP8AACr/AAAL%405%FA8tBBQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTDUDy0EQ%100%D4BwcD+AcHXfgGB/r4Bwb/+QcH//kGB//4Bwf/+QcH//kHB//5Bwf/+AYH//gHB//4Bwb/+AcH//kHB//4BwfQ+QYHOPkHBhL5BwYC%186%D/AAAF/wAAF/8AALz/AAD//wAA1v8AADb/AAAP/wAAAQ%394%UDy0ClA8tMJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLVQPLQK%106%D4BgcC+QYGNfkGB/b4Bwf/+QcH//gHBv/4Bwb/+QcH//gGB//5Bwf/+QcH//gGB//4Bwf/+AYG//kGB//4Bwem+AcGLfgHBw75BgYB%186%D/AAAB/wAACf8AADr/AADp/wAA3v8AADz/AAAS/wAAAg%388%BQPLQKUDy0uVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0hVA8tAI%111%D4BwcC+AYGEPgHB9P5Bgf/+AcG//gHBv/4Bwf/+AcG//gHB//5Bgf/+AcH//gGB//5Bwb/+QcH//kHB/34BwZt+AcHJvkHBgn4BwcB%192%/wAAA/8AAA7/AAB2/wAA0v8AADH/AAAR/wAAAg%383%FA8tBxQPLTKUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLRL%128%9wgHA/kGB275Bwf/+QYG//kHBv/4Bgf/+AcH//kHB//5Bwf/+QcH//gHB//4Bwb/+AcH//kHB9H5BwdF+QcHG/gHBgU%202%P8AAAb/AAAT/wAAOv8AABz/AAAK/wAAAQ%378%UDy0PlA8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0s1A8tBc%133%+QYHBPkGBxv5BwfO+AYG//gHB//5Bwf/+QcH//kGB//4Bwf/+QcG//kHB//5Bwf/+AcH+fkHB4T5Bwcx+AcHD/kHBwI%202%P8AAAH/AAAG/wAACv8AAAr/AAAE%373%FA8tA9QPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOJQPLRS%144%+QcGAfgHBgr5BwZS+QYH8/kHBv/5Bwf/+QcH//gHBv/5Bwb/+QYH//gGB//4Bwf/+AcHs/gHB0H4Bwcd+QYHBw%212%D/AAAB/wAAAf8AAAH/AAAB%368%UDy0W1A8tOdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0ilA8tAs%154%PkHBgT5BgYO+QYHYvgHB+n5Bgb/+AYH//gHBv/4Bgb/+AYG//kHB/n5Bwa5+AcHSvkHBif5BgcN+QcHAQ%591%FA8tFFQPLTSUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tJZQPLQb%165%PkHBwH5BwcG+QcGEvkHBkj5Bweq+QcG5fgHB/v4Bwbx+AYHzfgGB4b5BwdE+AcHJ/gGBxD4BgcD%592%UDy0blA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLSNUDy0Gw%186%+AcHBfkGBxH4Bwce+QcGOPgHBkz5BwdL+AcHPPkHBy/5Bwce+QYHDfgGBwM%597%UDy0mFA8tP9QPLT/UDy0/1A8tP9QPLTeUDy0clA8tA4%202%PkHBwP5BwcJ+QYHEPgGBxb4BgcY+AcGFfgHBg75BwYH+QcHAg%602%UDy0PlA8tOtQPLTtUDy0nlA8tERQPLQB%10133%FA8tEFQPLTPUDy0/1A8tOhQPLR3%128%UDy0Z1A8tOhQPLT/UDy01lA8tEQ%709%UDy0LFA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0ag%116%BQPLRiUDy0/1A8tP9QPLT/UDy0/1A8tPhQPLQ0%704%UDy0kFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy06FA9tAM%106%FI+tQFQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSY%704%UDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFg%106%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSe%704%UDy0c1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL0%106%FA8tLNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR3%704%UDy0D1A8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQo%96%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLQZ%709%FA8tJpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSU%96%UDy0h1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKg%714%FA8tDRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0D%85%BQPLQHUDy061A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tE%720%BQPLTIUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0a%85%BQPLRbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00Q%724%BQPLRjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00g%84%BQPLTJUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0aw%724%BQPLQIUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDg%74%FA8tDFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTwUDy0Dg%730%UDy0ilA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKY%74%FA8tJxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSa%736%UDy0JFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLQV%64%UDy0DVA8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQt%741%FA8tLlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR9%64%UDy0blA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMM%746%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUj+1AQ%58%UDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFs%746%FE+tAFQPLTlUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0U%53%BQPLRAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06FA8tAc%751%BQPLR6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0tQ%52%BQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0h%757%BQPLQTUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tBk%42%FA8tApQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Hg%762%UDy0olA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDI%42%FA8tCpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSv%768%UDy0O1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07lA8tAk%42%FJAtQFQPLTnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQ/%506%BRPrQBUDy0IVE9tAM%111%BQPLQsUDy0kFA8tJ5QPLR/UDy0GQ%111%FA8tJhQPLT/UDy0/1A8tP9QPLT+UDy0Xw%52%BQPLRVUDy0/lA8tP9QPLT/UDy0/1A8tJs%111%BQPLQUUDy0eFA8tJ5QPLSYUDy0N%357%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tJ1QPLQD%101%FA8tEFQPLT4UDy0/1A8tP9QPLT/UDy0/FA8tKhQPLRB%106%BQPLRQUDy0mFA8tI9QPLQ2%64%UDy0MFA8tI9QPLSYUDy0Ww%106%UDy0PVA8tKdQPLT4UDy0/1A8tP9QPLT/UDy0+FA8tEQ%335%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLSdUT20Aw%95%FA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01lA8tGtQPLQR%288%UDy0DlA8tGpQPLTRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNY%319%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0nVE9tAM%90%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0mlA8tC8%266%FA8tCxQPLSTUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%303%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ1RPbQD%85%FA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTDUDy0XFA8tAc%234%FA8tAdQPLRUUDy0wFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOg%287%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSdUDy0Aw%79%FA8tGFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLSIUDy0Hg%212%BQPLQYUDy0glA8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGc%271%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0nVE9tAM%79%BQPLRZUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tK9QPLRH%192%UDy0PVA8tK9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0Yg%260%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ1RPbQD%80%Uj61AVA8tEVQPLSzUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0qw%74%UDy0EFA8tEBQPLRkUDy0ZFA8tEJQPLQT%74%BQPLSbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0tVA8tE9SP7UB%250%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSdUT20Aw%90%UDy0HFA8tIZQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGI%58%FA8tEpQPLS6UDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xFA8tFY%58%FA8tFtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tI5QPLQk%250%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0nVA8tAM%95%BQPLQHUDy0W1A8tMRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKE%47%BQPLQYUDy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTAUDy0Hw%47%FA8tJhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMlQPLReUDy0CQ%244%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ1RPbQD%106%BQPLQwUDy0mlA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ0%42%FA8tCFQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07VA8tD%43%FA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLSdUDy0Mg%244%BQPLQBUDy0I1A8tHFQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSdUT20Aw%111%FA8tA1QPLRuUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tDY%37%UDy0EVA8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOdQPLQf%37%FA8tDBQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTaUDy0cFA8tBQ%245%UDy0HVA8tGxQPLTHUDy091A8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0mFI+tQE%122%FA8tD9QPLSrUDy0/FA8tP9QPLTuUDy0Xw%42%UDy0r1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/%42%BQPLRVUDy051A8tP9QPLT9UDy0rVA8tEc%261%UT20A1A8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tDhQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLRiUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BQ%138%UDy0ClA8tC1RPrUB%42%BQPLRAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0V%43%UkC1AVA8tCpQPLQO%352%UDy0UlA8tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI8%287%BQPLStUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0x%400%FA8tANQPLRwUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rVE9tAM%282%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tBM%389%UDy0BFA8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTNUDy0Ew%287%FA8tDVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tEo%383%BQPLQTUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLQj%293%FA8tF9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGU%378%FA8tDJQPLTcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tDQ%298%FA8tGRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGY%373%UDy0UlA8tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0Yg%303%FA8tFRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGU%362%FA8tANQPLRwUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR/%309%FA8tClQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDo%357%UDy0BFA8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ5RPbQD%309%FJAtQFQPLTpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tAo%351%BQPLQUUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zVA8tBE%261%UDy0E1A8tDJQPLQJ%42%BQPLSPUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0og%42%UDy0CFA8tDJQPLQZ%293%FA8tDJQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTrUDy0F%251%Uj+1AVA8tEdQPLS0UDy0/VA8tP9QPLTyUDy0Yw%36%BQPLQfUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0Kw%36%BQPLRfUDy07lA8tP9QPLT/UDy0tFA8tFBSP7UB%272%UDy0YVA8tO5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5QPLQy%245%FA8tBRQPLR0UDy031A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tD0%37%UDy0fVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSO%37%FA8tDBQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0d1A8tBU%250%FA8tANQPLR/UDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tGE%239%BQPLQ3UDy0oFA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ0%37%UT60AVA8tLdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMFQPLQJ%37%FA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSkUDy0O%235%UDy0EVA8tJ5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0fw%228%BQPLQMUDy0Y1A8tMpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKE%42%FA8tAlQPLSyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vlA8tAs%42%FA8tJhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNJQPLRmUDy0D%213%BQPLQ0UDy0zVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSdUDy0Aw%218%UDy0JFA8tI5QPLTtUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFs%53%UDy0dlA8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLR7UT20Aw%47%FA8tFBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tJNQPLQo%85%FA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tGJQPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM9QPLQJUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVQPLQFUDy0BVA8tAVRPrUB%96%UD20A1A8tE9QPLS7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0mw%63%FA8tA9QPLRyUDy0vlA8tPlQPLT/UDy0/1A8tPxQPLTFUDy0fVA8tBQ%63%BQPLSYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vVA8tFhQPbQD%64%UT60AVA8tJhQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT6UDy0+lA8tPpQPLT0UDy0q1A8tFpQPLQP%90%BQPLRiUDy05lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tKpQPLQ9%90%BRPbQBUDy0Bg%90%UDy0O1A8tKdQPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0ag%63%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%101%FA8tGFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOVQPLSCUDy0G%213%BQPLQTUDy0elA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHs%63%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%117%FA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS+UDy0VFE+tQE%234%FE+tAFQPLRMUDy0uVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOo%69%UT20A1A8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%133%FA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0klA8tCw%266%FA8tCRQPLSMUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%74%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%149%FA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00FA8tGRQPLQM%288%UDy0CFA8tGNQPLTJUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNY%79%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%165%FA8tDlQPLT1UDy0/1A8tP9QPLT/UDy0+FA8tKJQPLQ5%106%BQPLRbUDy0oVA8tJ1QPLQ9%64%UDy0NlA8tJNQPLShUDy0Yg%106%UDy0NVA8tKBQPLT4UDy0/1A8tP9QPLT/UDy0+FA8tEQ%85%UT20A1A8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%186%BQPLQkUDy0jlA8tJ5QPLR4UDy0FQ%111%FA8tJtQPLT/UDy0/1A8tP9QPLT/UDy0Yw%52%BQPLRVUDy0/lA8tP9QPLT/UDy0/1A8tKs%111%BQPLQPUDy0c1A8tJ1QPLSQUDy0L%96%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%336%UDy0PFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy08lA8tAk%42%FJAtQFQPLTnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRH%234%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%352%UDy0p1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDI%42%FA8tCpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS3%240%UT20A1A8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%362%BQPLQWUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tBk%42%FA8tApQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Hg%239%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%378%BQPLR5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0t%53%BQPLSoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ig%244%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%389%FE+tAFQPLTlUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0T%53%BQPLQ/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tAc%245%UT20A1A8tJ1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%405%FA8tFBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTfUj+1AQ%58%UDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFw%250%FE9tANQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%421%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR0%64%UDy0bFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMM%255%BRPbQDUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT6UDy0sVA8tGBQPLQU%432%UDy0JlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLQV%64%UDy0DVA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQv%256%UT20A1A8tJ1QPLT6UDy0sVA8tGBQPLQU%448%UDy0jFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKQ%74%FA8tJRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSb%261%FE9tANQPLQT%458%BQPLQIUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDg%74%FA8tC9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0EQ%724%BQPLRjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00Q%84%BQPLTEUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0bQ%724%BQPLTQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Zg%84%BQPLRbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01g%719%FA8tDVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTtUDy0D%85%BQPLQHUDy061A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tEE%714%FA8tKFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLST%96%UDy0hlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tK0%709%UDy0EFA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQo%96%UDy0HFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLQZ%704%UDy0c1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLw%106%FA8tLJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSB%704%UDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tFQ%106%FA8tEVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSe%704%UDy0jlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy05lA9tAM%106%FI+tQFQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSY%704%UDy0JFA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0Yw%116%BQPLRZUDy0/1A8tP9QPLT/UDy0/1A8tPhQPLQ0%709%FA8tDlQPLTIUDy0/lA8tOhQPLRn%128%UDy0YVA8tOVQPLT/UDy0z1A8tEE%7914%FA8tAJQPLQNUDy0RVA8tG9QPLSFUDy0vFA8tMFQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tMFQPLS3UDy0g1A8tG1QPLRFUDy0DVA8tAI%762%FA8tBlQPLRaUDy0nFA8tNdQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tNZQPLSdUDy0W1A8tBk%730%FA8tBpQPLRtUDy0vFA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLS8UDy0bVA8tBo%485%UDy0P1A8tJZQPLTWUDy0+VA8tPlQPLTWUDy0llA8tD8%170%FA8tAJQPLREUDy0rFA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLSrUDy0Q1A8tAI%458%FA8tBpQPLSTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSTUDy0Gg%148%BQPLQCUDy0SlA8tMdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMdQPLRKUDy0Ag%442%UDy0GlA8tKdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p1A8tBo%138%FA8tD9QPLTJUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03VA8tLFQPLSUUDy0XVA8tFlQPLQjUDy0HFA8tBxQPLQcUDy0HFA8tBxQPLQcUDy0JFA8tFhQPLRdUDy0lFA8tLBQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yVA8tD4%437%UDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJM%127%BQPLQWUDy0plA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0nFA8tFVQPLQXUDy0Ag%84%BQPLQCUDy0FlA8tFRQPLScUDy031A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSlUDy0Fw%420%BQPLQ/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQ/%117%FA8tExQPLTmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0j1A8tDFQPLQE%128%UDy0BFA8tDFQPLSPUDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05lA8tEw%415%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSW%106%BQPLQEUDy0j1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0z1A8tFpQPLQJ%160%UDy0CVA8tFlQPLTPUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLSPUDy0Aw%404%BQPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTW%101%FA8tA1QPLTBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM9QPLRRUDy0Ag%180%BQPLQCUDy0UVA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wVA8tA0%399%BQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5%96%UDy0EFA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTwUDy0a1A8tAQ%202%FA8tAVQPLRsUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMNQPLQQ%394%BQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5%90%BQPLQOUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLlQPLQf%224%UDy0HVA8tLlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTHUDy0Dg%388%BQPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTW%85%FA8tA9QPLTFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0ew%244%BQPLR7UDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xVA8tA8%383%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSW%80%UDy0AlA8tKxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLRN%256%UDy0TVA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKtQPLQC%378%BQPLQ/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQ/%80%UDy0cVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tEs%266%FA8tEtQPLT3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRx%384%UDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJM%79%BQPLQsUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT3UDy0Sg%276%BQPLRKUDy091A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0LQ%378%UDy0GlA8tKdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p1A8tBo%74%FA8tANQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRc%288%UDy0XFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wlA8tAM%378%FA8tBpQPLSTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSTUDy0Gg%79%FA8tE9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJpQPLUB%288%UDy1AVA8tJpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tE8%389%UDy0P1A8tJZQPLTWUDy0+VA8tPlQPLTWUDy0llA8tD8%85%UDy0A1A8tNFQPLT/UDy0/1A8tP9QPLT/UDy03VA8tA0%298%FA8tA1QPLTdUDy0/1A8tP9QPLT/UDy0/1A8tNFQPLQD%277%FE9tAJQPLSlUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%149%UDy0SlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0W%309%BQPLRYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRK%282%BQPLQFUDy0plA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%149%UDy0qVA8tP9QPLT/UDy0/1A8tP9QPLTSUDy0BQ%308%BQPLQFUDy00lA8tP9QPLT/UDy0/1A8tP9QPLSp%288%UDy0BVA8tKZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLQLUDy081A8tP9QPLT/UDy0/1A8tP9QPLRe%320%UDy0XlA8tP9QPLT/UDy0/1A8tP9QPLT0UDy0Cw%287%FA8tAVQPLSmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLRNUDy0/1A8tP9QPLT/UDy0/1A8tO9QPLQM%320%UDy0DFA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0Tg%292%BQPLQFUDy0plA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLSHUDy0/1A8tP9QPLT/UDy0/1A8tLM%330%FA8tLFQPLT/UDy0/1A8tP9QPLT/UDy0hw%298%UDy0BVA8tLpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLS+UDy0/1A8tP9QPLT/UDy0/1A8tH%331%FA8tG9QPLT/UDy0/1A8tP9QPLT/UDy0vg%298%UDy0fFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLTVUDy0/1A8tP9QPLT/UDy0/1A8tEQ%330%FA8tEVQPLT/UDy0/1A8tP9QPLT/UDy01w%292%BQPLQIUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tCQ%330%FA8tCRQPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLQOUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tCQ%330%FA8tCRQPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLQEUDy06FA8tP9QPLT/UDy0/1A8tP5QPLS6UDy0/1A8tP9QPLT/UDy0/1A8tP8%143%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tCQ%330%FA8tCRQPLT/UDy0/1A8tP9QPLT/UDy0/w%271%FNAtQJQPLRlUDy01VA8tNVQPLRlUDy0N1A8tOhQPLT+UDy0+FA8tHxQPLQFUDy0plA8tP9QPLT/UDy0/1A8tP8%143%BQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tCU%330%FA8tCRQPLT/UDy0/1A8tP9QPLT/UDy0/g%271%FA8tGVQPLT+UDy0/1A8tP9QPLT+UDy0ZVA8tARQPLQOUDy0C%11%UDy0BVA8tKZQPLT/UDy0/1A8tP8%143%BQPLTGUDy0/1A8tP9QPLT/UDy0/1A8tFs%330%FA8tFRQPLT/UDy0/1A8tP9QPLT/UDy0y%272%FA8tNVQPLT/UDy0/1A8tP9QPLT/UDy01Q%31%FA8tAVQPLSmUDy0/1A8tP8%143%BQPLSsUDy0/1A8tP9QPLT/UDy0/1A8tI0%213%UDy0BQ%111%FA8tIBQPLT/UDy0/1A8tP9QPLT/UDy0sw%271%FA8tNVQPLT/UDy0/1A8tP9QPLT/UDy01Q%36%BQPLQFUDy0plA8tP8%143%BQPLRvUDy0/1A8tP9QPLT/UDy0/1A8tNxQPLQC%208%UDy0n1A8tFNQPLQB%101%FA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0f%256%FA9tAhQPLQOUT20BFA8tGVQPLT+UDy0/1A8tP9QPLT+UDy0ZQ%42%UD20BVA8tKU%143%BQPLQtUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLQ9%208%UDy0sFA8tP9QPLSTUDy0Cg%90%UDy0HFA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0P%251%UDy0fFA8tPhQPLT+UDy06FA8tDdQPLRlUDy01VA8tNVQPLRlUDy0Ag%47%FE9tAI%143%BQPLQDUDy01lA8tP9QPLT/UDy0/1A8tP9QPLSx%208%UDy0sFA8tP9QPLT/UDy0y1A8tCM%85%UDy0d1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0B%245%BQPLQ1UDy0/lA8tP9QPLT/UDy0/1A8tOhRPbQE%224%UDy0b1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0T%203%UDy0sFA8tP9QPLT/UDy0/1A8tPNQPLRY%74%BQPLQLUDy06FA8tP9QPLT/UDy0/1A8tP9QPLSb%250%BQPLSGUDy0/1A8tP9QPLT/UDy0/1A8tP5QPLQO%224%UDy0CVA8tOZQPLT/UDy0/1A8tP9QPLT/UDy02FA8tAw%197%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0mFA8tAo%63%BQPLR1UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLQv%250%BQPLRaUDy0/1A8tP9QPLT/UDy0/1A8tPhQPLQI%229%FA8tG9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKdQPLQD%192%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNBQPLQk%53%FA8tCBQPLTzUDy0/1A8tP9QPLT/UDy0/1A8tLI%239%BQPLQ1UDy0hlA8tFpQPLQIUDy0zFA8tP9QPLT/UDy0/lA8tHw%234%FA8tAVQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRz%192%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0XFA8tQE%37%UDy0BlA8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tD%235%FA8tHxQPLT+UDy0/1A8tP9QPLTMUDy0CFA8tFpQPLSGUDy0NQ%244%BQPLQyUDy081A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0d%187%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJxQPLQJ%32%UDy0ilA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0n%235%UDy0CFA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0Wg%266%UDy0a1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHU%181%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTUUDy0Jw%20%BQPLQqUDy09lA8tP9QPLT/UDy0/1A8tP9QPLTlUDy0FQ%234%UDy0DlA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0hg%266%UDy0BFA8tKBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLR3%176%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tGFQPLQB%16%UDy0LlA8tNRQPLT/UDy0/1A8tPxQPLRJ%240%UDy0BFA8tOhQPLT/UDy0/1A8tP9QPLT+UDy0NQ%271%FA8tANQPLSuUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0kFA8tAc%165%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLShUDy0EQ%15%FA8tBBQPLShUDy0/1A8tHw%170%FE9tAI%47%BTQLUCUDy0ZVA8tNVQPLTVUDy0ZVA8tDdQPLToUDy0/lA8tPhQPLR8%282%BQPLQRUDy0zFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLJQPLQV%160%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tDs%15%BQPLQDUDy0PFA8tAM%170%FA8tKVQPLQF%42%BQPLRlUDy0/lA8tP9QPLT/UDy0/lA8tGVQPLQEUDy0DlA8tAg%293%UDy0ElA8tLtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0Lw%4%BQPLQRUDy0M1A8tGpQPLRzUDy0qVA8tKpQPLSqUDy0qlA8tJBQPLRsUDy0UlA8tCk%85%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLR1%197%FA8tP9QPLSmUDy0BQ%36%BQPLTVUDy0/1A8tP9QPLT/UDy0/1A8tNU%314%FA8tARQPLSbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tMlQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLTnUDy0oVA8tFJQPLQF%64%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0tVA8tAk%186%FA8tP9QPLT/UDy0plA8tAU%31%BQPLTVUDy0/1A8tP9QPLT/UDy0/1A8tNU%319%BQPLQCUDy0ilA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTkUDy0eFA8tAY%53%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL9QPLQi%181%FA8tP9QPLT/UDy0/1A8tKZQPLQF%10%BQPLQIUDy0DlA8tARQPLRlUDy0/lA8tP9QPLT/UDy0/lA8tGU%330%FA8tGZQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNlQPLQ2%48%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0Qg%175%FA8tP9QPLT/UDy0/1A8tP9QPLSmUDy0BVA8tHxQPLT4UDy0/lA8tOhQPLQ3UDy0ZVA8tNVQPLTVUDy0ZVA8tAI%325%UDy0E1A8tMxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0ZQ%42%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0ig%175%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ulA8tP5QPLT/UDy0/1A8tP9QPLToUDy0B%341%BQPLQDUDy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08VA8tHlQPLRyUDy0clA8tHtQPLSwUDy01FA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tDo%37%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tMZQPLQs%181%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Dg%340%BQPLRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMpQPLQc%21%FA8tBhQPLRTUDy0vFA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLRVUDy0alA8tJNQPLSZUDy0T%11%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTcUDy0Ug%191%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0C%341%BQPLTLUDy0/1A8tP9QPLT/UDy0/1A8tPlQPLSIUDy0SVA8tOlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTpUDy0Qw%31%FA8tDxQPLTUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%10%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FA8tIJQPLQI%197%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLR8%341%FA8tAZQPLTxUDy0/1A8tP9QPLT/UDy0/lA8tFw%10%FA8tBdQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tHI%31%BQPLQTUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%10%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0YQ%207%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLpQPLQF%341%FA8tBJQPLT2UDy0/1A8tP9QPLT/UDy0+lA8tB8%15%BQPLQCUDy0g1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLSKUDy0Bw%26%UDy0qVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%10%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tAw%202%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSmUDy0BQ%340%BQPLToUDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQh%21%FA8tExQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0slA8tAc%15%BQPLRzUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%10%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIM%202%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0plA8tAU%335%BQPLSUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0hFA8tBc%15%BQPLQmUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLNQPLQJUDy0SVA8tMdQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLTGUDy0lVA8tIlQPLR9UDy0H%11%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLQ1%197%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKZQPLQF%330%BQPLQcUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLS8UDy0fFA8tEJQPLQoUDy0FlA8tKxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIc%37%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTCUDy0AQ%191%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSmUD20BQ%330%UDy0V1A8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0+lA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xlA8tAY%37%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLTUUDy0VVA8tDdQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0d%192%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0pVE9tAI%330%FA8tFJQPLTpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSkUDy0Dw%42%UDy0sFA8tP9QPLT/UDy091A8tHRQPLQM%10%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tBs%122%FA8tD9QPLSWUDy01lA8tPlQPLT5UDy01lA8tJZQPLQ/%442%BQPLQaUDy0sFA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05VA8tFxQPLQC%48%UDy0sFA8tPtQPLSfUDy0Gg%20%BQPLQeUDy08VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLVQPLQD%106%BQPLQaUDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0k1A8tBo%442%FA8tDNQPLSWUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Uw%58%UDy0glA8tDY%37%UDy0dFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRi%101%FA8tBpQPLSnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKdQPLQa%448%UDy0C1A8tD9QPLR9UDy0rVA8tOBQPLTnUDy0/1A8tP9QPLT/UDy0/1A8tPVQPLTgUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tB%102%UDy0A1A8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0F%96%FA8tJNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLST%474%BQPLQFUDy0HFA8tBxQPLQcUDy0HFA8tBI%5%UDy0AVA8tJJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKJQPLQB%101%FA8tE1QPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p%91%UDy0P1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Pw%511%FA8tAlQPLTIUDy0/1A8tP9QPLT/UDy0/1A8tP5QPLQ7%106%BQPLSzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tEE%85%UDy0llA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lg%516%BQPLQoUDy09FA8tP9QPLT/UDy0/1A8tP9QPLS/UDy0AQ%100%BQPLQrUDy091A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNhQPLQL%80%UDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01g%522%UDy0dlA8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Pw%106%UDy0klA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSR%80%UDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+Q%522%UDy0CVA8tN1QPLT/UDy0/1A8tP9QPLT/UDy0sg%106%UDy0DlA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0HQ%74%UDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+Q%527%FA8tGVQPLT/UDy0/1A8tP9QPLT/UDy0+1A8tB8%106%FA8tG9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMZQPLQ5%80%UDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01g%527%FA8tAxQPLTuUDy0/1A8tP9QPLT/UDy0/1A8tG0%106%FA8tAFQPLTQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTwUDy0ZFA8tAY%85%UDy0llA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lg%532%BQPLSXUDy0/1A8tP9QPLT/UDy0/1A8tLQ%111%BQPLQ0UDy0/VA8tP9QPLT/UDy0+VA8tIxQPLQS%96%UDy0P1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Pw%532%BQPLRIUDy0/1A8tP9QPLT/UDy0/1A8tPFQPLQB%106%BQPLUBUDy0qVA8tP5QPLS+UDy0Jw%111%FA8tJNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLST%538%BQPLQRUDy09lA8tP9QPLT/UDy0/1A8tP5QPLQu%112%UDy0GVA8tFo%122%FA8tBpQPLSnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKdQPLQa%544%UDy02FA8tP9QPLT/UDy0/1A8tP9QPLRM%250%BQPLQaUDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0k1A8tBo%549%UDy0sVA8tP9QPLT/UDy0/1A8tP9QPLRz%261%FA8tD9QPLSWUDy01lA8tPlQPLT5UDy01lA8tJZQPLQ/%560%UDy0qlA8tP9QPLT/UDy0/1A8tP9QPLRz%864%UDy0eVA8tP9QPLT/UDy0/1A8tP9QPLRz%14133%FA8tAZQPLRgUDy0r1A8tLdQPLR8UDy0Fw%308%BQPLQGUDy0MVA8tDhQPLQO%528%UDy0BlA8tK1QPLT+UDy0/1A8tP9QPLT/UDy07VA8tH9QPLQT%288%UDy0AVA8tExQPLTZUDy0/lA8tP5QPLTtUDy0a1A8tAE%517%UDy0YFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0f1A8tBM%266%FA8tAFQPLRBUDy0vlA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tFo%517%UDy0r1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLRgUDy0B%245%BQPLQDUDy0TlA8tL5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM9QPLQC%512%UDy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy021A8tGBQPLQE%224%UDy0AVA8tEFQPLS+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLQF%512%UDy0fFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0YFA8tAM%202%FA8tAFQPLRBUDy0vlA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOBQPLQD%512%UDy0ElA8tNdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL5QPLRBUDy0AQ%186%UDy0MlA8tL5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tH4%522%FA8tBtQPLSkUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0vlA8tEFQPLQB%165%FA8tCRQPLSfUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0qFA8tAk%533%UDy0JFA8tJ9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLS+UDy0Mg%148%BQPLQkUDy0n1A8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tK1QPLQ+UDy0Ag%548%BQPLQkUDy0rVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tJ9QPLQk%128%UDy0JFA8tJ9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLS+UDy0QVA8tAE%565%UDy0AVA8tEFQPLS+UDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0n1A8tCQ%106%FA8tCRQPLSfUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0vlA8tEFQPLQB%586%BQPLQBUDy0QVA8tL5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSRUDy0F%85%BQPLQkUDy0n1A8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM1QPLRBUDy0AQ%607%FA8tAFQPLRCUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tIFQPLQT%64%UDy0JFA8tJ9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0YFA8tAQ%629%UDy0BFA8tGBQPLTbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0f1A8tBM%42%FA8tCRQPLSfUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy021A8tGBQPLQE%650%BQPLQEUDy0YFA8tNtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLRgUDy0B%21%BQPLQTUDy0kVA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLRgUDy0B%672%FA8tARQPLR+UDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy021A8tGBQPLQEUDy0E1A8tH9QPLTsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0f1A8tBE%693%UDy0E1A8tH9QPLTsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTdUDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tH9QPLQT%714%BQPLQTUDy0f1A8tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLR/UDy0Ew%735%FA8tBRQPLSfUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0n1A8tBQ%757%UDy0JFA8tJ9QPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tJ9QPLQk%730%D/AAAD/wAAKP8AAE3/AABg/wAAYf8AAE3/AAAm/wAAAw%4%BQPLQnUDy0olA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSfUDy0J%16%FA8tARQPLR6UDy0fVA8tH1QPLR9UDy0Jg%682%/wAAC/8AAHH/AADZ/wAA/f8AAP//AAD//wAA//8AAP//AAD9/wAA2/8AAHX/AAAN/wAAAlA8tEFQPLS+UDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0vlA8tDI%26%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%676%D/AAAs/wAA1f8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADe/wAAPQ%4%BQPLQBUDy0QVA8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tL5QPLRBUDy0AQ%31%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%671%P8AACH/AADm/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA9P8AAEM%10%FA8tAdQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wVA8tAE%42%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%666%/wAAAf8AALP/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD8/wAA+/8AAP7/AAD//wAA//8AAP//AAD//wAA//8AAOj/AAAZ%5%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%47%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%666%/wAAMP8AAPz/AAD//wAA//8AAP//AAD//wAA7P8AAGj/AAAa/wAAEv8AAEn/AADP/wAA//8AAP//AAD//wAA//8AAP//AACR%5%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%15%FA8tGhQPLRYUDy0E%16%FA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0Tw%15%FA8tAZQPLQ/UDy0hlA8tAU%629%/wAAiP8AAP//AAD//wAA//8AAP//AAD0/wAANQ%20%D/AAAR/wAA0v8AAP//AAD//wAA//8AAP//AADr/wAACFA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%10%UDy0B1A8tOdQPLT/UDy08lA8tK5QPLRaUDy0ElA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0T1A8tAdQPLRCUDy0lVA8tONQPLT+UDy0/lA8tDs%623%D/AAAB/wAAx/8AAP//AAD//wAA//8AAP//AACI%32%/wAATP8AAP7/AAD//wAA//8AAP//AAD+/wAAMlA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%10%UDy0QVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy081A8tLRQPLT9UDy0/1A8tP9QPLT/UDy0wVA8tOVQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tIo%623%D/AAAF/wAA7/8AAP//AAD//wAA//8AAP3/AAAw%32%/wAAC/8AAPf/AAD//wAA//8AAP//AAD//wAAUFA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%10%UDy0kVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNdQPLQD%618%D/AAAS/wAA+/8AAP//AAD//wAA//8AAPr/AAAM%32%/wAABP8AAPD/AAD//wAA//8AAP//AAD//wAAVVA8tAhQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%4%BQPLQBUDy0e1A8tOFQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tLdQPLQP%618%D/AAAM/wAAdP8AAHb/AAB2/wAAdv8AAHP/AAAC%32%/wAAIv8AAPz/AAD//wAA//8AAP//AAD//wAAQFA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%15%FA8tAVQPLQ9UDy0kFA8tN9QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08lA8tLBQPLReUDy0FVA8tAE%687%D/AAAB/wAAlP8AAP//AAD//wAA//8AAP//AAD5/wAAGFA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%31%FA8tARQPLQ6UDy0uFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOJQPLRVUDy0Dw%708%D/AABh/wAA/P8AAP//AAD//wAA//8AAP//AAC2/wAAAVA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%36%BQPLQVUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLRH%704%/wAAAv8AAHj/AAD7/wAA//8AAP//AAD//wAA//8AAPT/AAAx%5%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%31%FA8tAJQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTiUDy0Fw%692%D/AAAG/wAAmv8AAP7/AAD//wAA//8AAP//AAD//wAA9v8AAFE%10%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%31%FA8tGVQPLT+UDy0/1A8tP9QPLT/UDy03FA8tKpQPLT/UDy0/1A8tP9QPLT/UDy0rVA8tAI%682%P8AAAH/AACc/wAA//8AAP//AAD//wAA//8AAP//AADn/wAAQw%15%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%26%UDy0KVA8tPFQPLT/UDy0/1A8tP9QPLT5UDy0PVA8tBBQPLTaUDy0/1A8tP9QPLT/UDy0/lA8tGc%682%P8AAE//AAD+/wAA//8AAP//AAD//wAA//8AALz/AAAe%21%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%20%BQPLQIUDy0yFA8tP9QPLT/UDy0/1A8tP9QPLS%11%BQPLQ7UDy0+FA8tP9QPLT/UDy0/1A8tPJQPLQq%672%/wAAAv8AAMf/AAD//wAA//8AAP//AAD+/wAAkf8AAAY%26%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%20%BQPLQdUDy001A8tP9QPLT/UDy0/1A8tMNQPLQG%16%UDy0fVA8tP9QPLT/UDy0/1A8tPBQPLRL%672%/wAAHP8AAPv/AAD//wAA//8AAP//AAC6/wAAAw%31%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%26%UDy0DlA8tJ1QPLT+UDy07lA8tCQ%21%UDy0BlA8tMBQPLT/UDy0zFA8tCk%677%/wAAQf8AAP//AAD//wAA//8AAP//AABv%37%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%31%FA8tAFQPLReUDy0W%32%FA8tCJQPLSKUDy0Cw%682%/wAASv8AAPH/AADx/wAA8f8AAPH/AABU%37%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAAf8AAAT/AAAE/wAABP8AAAT/AAAC%37%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAA/8AAAX/AAAF/wAABf8AAAX/AAAE%37%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAqP8AAPT/AAD0/wAA9P8AAPT/AADh/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAr/8AAP//AAD//wAA//8AAP//AADr/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAr/8AAP//AAD//wAA//8AAP//AADr/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAr/8AAP//AAD//wAA//8AAP//AADr/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAr/8AAP//AAD//wAA//8AAP//AADr/wAAB%32%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%778%/wAAWP8AAH//AAB//wAAf/8AAH//AAB2/wAAAg%31%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tAVQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vw%847%FA8tARQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rw%852%BQPLSfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Y%853%BQPLQbUDy011A8tP9QPLT/UDy0/1A8tP5QPLStUDy0Bg%858%UDy0ElA8tHxQPLS3UDy0r1A8tGBQPLQG%19749%FA8tCxQPLTgUDy0/FA8tHk%869%UDy0K1A8tOlQPLT/UDy0/1A8tP9QPLSE%858%BQPLQqUDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0dw%847%FA8tClQPLToUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHU%837%UDy0KFA8tOdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSB%826%BQPLQnUDy05lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0e%816%FA8tCZQPLTlUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tH%806%UDy0JVA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLR1UDy0AQ%788%BQPLQkUDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0uVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0bw%783%FA8tCNQPLTjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPBQPLQ2UDy0CFA8tKVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGtQPLQB%768%UDy0IlA8tONQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08VA8tDc%10%FA8tAZQPLSqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRz%762%BQPLQhUDy04lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTxUDy0O%21%BQPLQFUDy0rFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0bg%751%FA8tCBQPLTcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLQ5%32%UDy0AlA8tLZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGY%741%UDy0H1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08lA8tDo%42%FA8tANQPLStUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLR1%730%BQPLQfUDy031A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0Ow%52%BQPLQDUDy0rlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UDy0Yw%719%FA8tB5QPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLQ9%64%UDy0ClA8tKpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGI%709%UDy0HVA8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tD4%74%FA8tAtQPLSvUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRk%698%BQPLQcUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0Pw%84%BQPLQFUDy0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Yg%79%FE9tXVQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA7tH0%474%FA8tBxQPLTbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLR%97%UDy0ClA8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tF0%74%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%469%UDy0G1A8tNpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tEE%106%FA8tAVQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLRc%69%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%218%Es8tBFQPbNQUD2zUFA9s1BQPbNQUD2zUE47tTQ%207%BQPLQaUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0Qw%116%BQPLQEUDy0uFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0WQ%63%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%218%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%202%FA8tBpQPLTYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLRE%128%UDy0BVA8tMlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+Q%63%FA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%218%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%197%UDy0GVA8tNdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tEY%133%UDy0SFA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0w%64%FE9tXVQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA8tMtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPFQPbSgUD20oFA9tKBQPbSgUD20oFA9tKBQPbSgUD20oFA7tH0%218%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%191%BQPLQYUDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0Rw%132%BQPLRHUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTPUDy0Gw%111%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%266%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%186%FA8tBdQPLTVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLRI%133%FA8tD9QPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLQc%117%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%69%gACAAk0zswo%186%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%181%UDy0FlA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tEo%133%UDy0PlA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lA8tB0%122%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%47%BVQLUYUDu0cFA7s71QPLToUDy0/VA8tP9QPLT5UDy00FA9tI9SPbMy%26%BgQL8ITz20pFA7tLBQO7SwUDu0sFA7tLBQO7SwUTy0q1VAqgw%26%FUrqgZQPLSmUDu0sFA7tLBQO7SwUDu0sFA7tLBQPLSpTjuxDUlJtgdSO7Y4Uju2OFA7tGNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLtSO7Y4Uju2OE47tTQ%159%BQPLQWUDy01FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0Sw%132%BQPLRBUDy081A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0GQ%127%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%37%QEC/BFA7s3lQPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1r0w5sxs%21%UD20bVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tX8%26%FE8tW5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLV8%5%FBAtyBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%155%FA8tBVQPLTTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLRM%133%FA8tEFQPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLQa%133%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%31%BJSbYHUDu0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtOPrU+%18%D/AVA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJVPbYV%16%VUCqDFA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM9AQL8E%5%FBAtyBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%150%UDy0FFA8tNJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tE0%133%UDy0OlA8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tC%139%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%31%BRPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUj2zMg%15%FM+syVQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7SS%16%UDy1f1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+04+tjE%10%FBAtyBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%144%BQPLQTUDy00VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0Tw%132%BQPLQ5UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0IQ%143%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%26%FA8tV1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7O9UT20flA7s3lQPLSmUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UTy01GYzzAU%15%BRPbV1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5Uzy0Ig%4%BNQLMUUDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/Tzy0h%16%FE6uRZQO7SwUDu0sFE7tMFQPLT/UDy0/1A8tP9QPLT/UDy0/1E8tORQO7SwUDu0sFA8s6U%143%BQPLSIUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLRQ%133%FA8tDhQPLTxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLQi%149%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%ZjPMBU88tOdQPLT/UDy0/1A8tP9QPLT/UDy0/FE8tFU%21%Uz6zJVA8tN5QPLT/UDy0/1A8tP9QPLT/UDy0/088tGo%15%BVVaoDUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLT/UDyzpQ%4%BQPLWQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTVSUm2Bw%31%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%159%BQPLSGUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLRX%128%UDy0N1A8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tCM%154%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%UT20WFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0j%32%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM8%21%TTuyK1A8tPlQPLT/UDy0/1A8tP9QPLT/UDy0/lA9s1BQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP1PPLU3%37%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%159%BQPLQQUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0VQ%116%BQPLQ2UDy08FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTjUDy0J%160%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%UDu0sFA8tP9QPLT/UDy0/1A8tP9QPLT/UkC2H%37%BQPLTDUDy0/1A8tP9QPLT/UDy0/1A8tP9TObMo%21%FA7tH1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIw%42%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%143%D/AAAK/wAAC%11%UDy0EVA8tMxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tFQ%106%FA8tDVQPLTvUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tORQPLQf%165%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%UDy06FA8tP9QPLT/UDy0/1A8tP9RPLTU%42%BQPLV/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbVg%21%GYzzAVQPLTQUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD2021U5qgk%42%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%133%/wAABv8AAKb/AAD//wAA+/8AAIM%10%FA8tBFQPLTNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLRT%96%UDy0OVA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05FA8tC%171%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BSQLYcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTPTz21ZE89tWRPPbVkTz21ZE89tWRPPbVkTz21ZE89tWRQPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSV%26%BOPrYxUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+Tj61Pg%47%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%127%D/AAAF/wAAtf8AAP//AAD//wAA//8AAP//AACI%10%BQPLQSUDy0z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0UQ%84%BQPLQ5UDy07lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0Iw%175%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BQPLQzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7Sw%32%UD21hlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSV%53%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%122%P8AAAX/AAC5/wAA//8AAP//AAD//wAA//8AAP//AAD//wAAhg%10%UDy0E1A8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tEs%74%FA8tDFQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOFQPLQn%181%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BPPLREUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLX%33%YEC/CFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlLPLQR%53%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%117%/wAABf8AAK3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAIQ%10%FA8tBRQPLTRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLRP%64%UDy0MFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy051A8tCg%186%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BSPbRLUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTM%32%UD20bVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLR7%53%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%111%D/AAAF/wAAq/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AACD%10%BQPLQUUDy00lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UDy0Tg%52%BQPLQzUDy07VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0KQ%191%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BSPbY7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTLTzy0hE88tIRPPLSETzy0hE88tIRPPLSETzy0hE88tIRPPLSETzy0hE88tIRPPLSETzy0hE88tIRQPLRm%26%BNPrIhUDy09FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5TTuyKw%47%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%106%P8AAAT/AACq/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAgQ%10%UDy0FVA8tNNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tEw%42%FA8tDRQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOlQPLQq%197%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BRPrQpUDy0/1A8tP9QPLT/UDy0/1A8tP9RPLWh%104%/wFRPLS+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21ylVVqgM%42%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%101%/wAABP8AAKj/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAH8%10%FA8tBZQPLTUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLRL%32%UDy0LVA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06VA8tCY%202%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%15%BVK6oGTzy091A8tP9QPLT/UDy0/1A8tP9QPLTC%101%FA9tGlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9s3Y%42%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%95%D/AAAE/wAAp/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB+%10%BQPLQXUDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0SQ%20%BQPLQyUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTqUDy0Jw%207%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%Tzy0xFA8tP9QPLT/UDy0/1A8tP9PPLT3Rka5Cw%36%BTPLQiTz21ZE89tWRPPbVkTz21ZE89tWRRPLMv%16%Ujq1H1A8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/087tWdQPLT8UDy0/1A8tP9QPLT/UDy0/088tPdTObMo%37%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%90%P8AAAP/AACl/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAf%11%UDy0F1A8tNZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tEg%10%FA8tC9QPLTpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLQo%213%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%UT21dVA8tP9QPLT/UDy0/1A8tP9QPLT/Tz21cQ%34%/wFQO7O9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbM2%16%UDy0u1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20sQ%4%BRO7ObUDy0/1A8tP9QPLT/UDy0/1A8tP9QPbTGgACAAg%31%FI7tjhQPLT/UDy0/1A8tP9QPLT/UDy0/1A7s6w%85%/wAAA/8AAKT/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHo%10%FA8tBhQPLTXUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLRHUDy0L1A8tOlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06FA8tC0%218%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%21%Szy0EVA8tPVQPLT/UDy0/1A8tP9QPLT/UDy09lE8tUw%21%TjuxDVE8taFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMU%15%BQPLRmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UT60KQ%4%BOO7EaUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UTyzcg%31%FA9szZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNI%79%D/AAAD/wAAo/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB4%10%BQPLQZUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTnUDy0Lw%223%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%26%FE9tH5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7POTzy0mlA8tZBQPLStUDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lI9szI%10%E8+sB1QPLTxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSZ%16%UD21hlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lM+syU%26%FM5syhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLO2UD20gk88tIQ%63%D/AACM/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAdw%10%UDy0GlA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOdQPLQw%229%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%26%FVVqgNQPLTFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTu0Xw%15%E88tLdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRVQLUY%16%VUS7D1A9tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMIAAP8B%21%GYzzAVQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%64%D/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAHU%10%FA8tBpQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tDI%234%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%31%BQQK8QUDy0wlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQO7VW%16%UTy0YlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tIE%26%FA7tHBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbRt%26%BRPLSYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%64%D/AADW/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABz%10%BQPLQbUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTuUDy0Lw%239%E87tHRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%37%YEC/CFA9tIJQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDu0sFA6tiM%15%BMObMbUDy08FA8tP9QPLT/UDy0/1A8tP9QPLT/UDyz6VVAqgw%26%FUrqgZQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0Uzy0Ig%20%BVRLsPUDy0zFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP%64%D/AAAu/wAA6/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAcQ%10%UDy0HFA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9QPLQ0%330%BON7EXUD20aVE9tLFPPLTXUD207FA8tPBQPLTeTzy0t1A8tXxQOrYj%176%SUm2B1E8tWtQO7O9Tzy051A8tPRQPLPpUDy00E88s5E%69%/wAAL/8AAOv/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAG8%10%FA8tBxQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy071A8tC8%682%P8AADD/AADs/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABu%10%BQPLQdUDy03lA8tP9QPLT/UDy0/1A8tP9QPLTwUDy0Ng%692%D/AAAx/wAA7f8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAb%11%UDy0HlA8tN9QPLT/UDy0/1A8tOxQPLQ3%704%/wAAMv8AAO7/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAGo%10%FA8tB9QPLSzUDy0v1A8tC0%714%P8AADP/AADu/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AABp%746%D/AAA0/wAA7/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD+/wAAZ%747%/wAANf8AAPD/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA8v8AAB%747%P8AADb/AADw/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AACU%751%D/AAA4/wAA8f8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAxQ%762%/wAAOf8AAPH/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADW/wAAFw%767%P8AADr/AADy/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANf/AAAY%778%D/AAA7/wAA8/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2P8AABg%789%/wAAPP8AAPP/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADZ/wAAGQ%799%P8AAD3/AAD0/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANr/AAAa%810%D/AAA//wAA9P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA2/8AABs%821%/wAAQP8AAOT/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAC8/wAAGw%24986%UDy0GFA8tI5QPLTHUDy0tVA8tFFQPLQB%858%BQPLQWUDy021A8tP9QPLT/UDy0/1A8tP1QPLRz%858%BQPLSFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0K%853%BQPLS3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy071A8tD0%847%BQPLShUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLQ9%842%BQPLQ9UDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0Pg%842%UDy0aVA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy081A8tD4%842%FA8tIxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLQ/%842%BQPLSLUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0Pw%431%FA8tANQPLRvUDy0cFA8tAM%229%UDy0D1A8tH9QPLRY%144%UDy0i1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tE%422%UDy0BFA8tK1QPLT/UDy0/1A8tLBQPLQG%218%BQPLQXUDy011A8tP9QPLT/UDy0Uw%143%FA8tIpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLR%411%BQPLQDUDy0pFA8tP9QPLT/UDy0/1A8tP9QPLSqUDy0BQ%207%FA8tBJQPLTQUDy0/1A8tP9QPLT/UDy0xQ%148%BQPLSJUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0QQ%399%FA8tAFQPLScUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0o1A8tAI%197%UDy0EFA8tMxQPLT/UDy0/1A8tP9QPLT/UDy0/lA8tAI%149%UDy0iFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tEI%394%FA8tJRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ0%191%BQPLQMUDy0x1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tAQ%154%FA8tIhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLRC%384%UDy0jFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSWUDy0AQ%175%FA8tApQPLTBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tAI%159%BQPLSHUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTkUDy0HQ%372%BQPLSDUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0jQ%170%UDy0CFA8tLpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zQ%170%UDy0hlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy021A8tB0%362%FA8tHpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIQ%159%BQPLQGUDy0s1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%175%FA8tIVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNtQPLQe%352%UDy0clA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR7%149%FA8tARQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSZ%186%BQPLSLUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTcUDy0Hg%340%BQPLRqUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTPUDy0yVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0cg%138%UDy0AlA8tKRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKFQPLQC%186%BQPLQKUDy0ulA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03FA8tB4%330%FA8tGRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNFQPLQSUDy0EVA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGk%127%BQPLQBUDy0nVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p1A8tAQ%197%UDy0CVA8tLpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLQf%320%UDy0W1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01FA8tBg%10%FA8tBVQPLTUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRi%117%FA8tAFQPLSVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSuUDy0BQ%207%FA8tAlQPLS5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTdUDy0Hw%308%BQPLRbUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTcUDy0Fg%20%BQPLQYUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0Wg%111%FA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLdQPLQD%218%BQPLQJUDy0uFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03VA8tC%299%FA8tFdQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLQb%32%UDy0GlA8tN5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tFQ%101%UDy0h1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0u1A8tAc%229%UDy0CVA8tLhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN5QPLQg%288%UDy0S1A8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lA8tBw%42%FA8tCBQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLRN%90%BQPLR7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS8UDy0Cg%239%FA8tAhQPLS3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0I%277%BQPLRHUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0I%53%BQPLQiUDy05VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0RQ%79%FA8tHlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMVQPLQL%250%BQPLQIUDy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy031A8tCE%266%FA8tEVQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOZQPLQl%64%UDy0JFA8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tEI%69%UDy0c1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yFA8tA4%261%UDy0CFA8tLZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLQh%256%UDy0QFA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05VA8tCY%74%FA8tCtQPLTqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%58%BQPLRqUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTJUDy0D%272%FA8tAhQPLS2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTfUDy0Ig%244%BQPLQ8UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTpUDy0Lg%84%BQPLQtUDy06FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTzUDy0Nw%47%FA8tGRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNFQPLQR%282%BQPLQHUDy0tVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy031A8tAk%234%FA8tDRQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9QPLQx%96%UDy0L1A8tO5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FA8tDU%37%UDy0YFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy001A8tBc%293%UDy0B1A8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLpQPLQJ%224%UDy0MVA8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FA8tDQ%106%FA8tDdQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLQ0%26%BQPLRdUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTVUDy0Fg%303%FA8tAdQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS6UDy0CQ%212%BQPLQvUDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0Ow%116%BQPLQ4UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0L%16%FA8tFlQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLQb%314%BQPLQeUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0u1A8tAo%202%FA8tCpQPLTpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLR%129%UDy0O1A8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05lA8tCo%5%UDy0TVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lA8tBs%325%UDy0HlA8tNtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLtQPLQK%192%UDy0JFA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tEY%138%FA8tERQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOdQPLRtUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLThUDy0IQ%335%FA8tB1QPLTbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS8UDy0Cg%180%BQPLQfUDy04lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0Tg%148%BQPLRHUDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOZQPLQm%346%BQPLQdUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vFA8tAo%170%FA8tANQPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLRV%160%UDy0TFA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06VA8tCk%357%UDy0HVA8tNpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL1QPLQK%165%FA8tFZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tFw%170%FA8tFRQPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0Lg%367%FA8tBxQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS9UDy0Cw%159%FA8tJRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Z%181%BQPLRcUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPBQPLQ0%378%BQPLQcUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vlA8tAs%154%FA8tJpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRs%192%UDy0ZFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy081A8tDo%389%UDy0HFA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL9QPLQL%149%FA8tJpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHM%202%FA8tGtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0Q%400%FA8tBtQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/UDy0Cw%143%FA8tGxQPLT/UDy0/1A8tP9QPLT/UDy0fg%212%BQPLR0UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLRG%410%BQPLQbUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wFA8tAw%138%FA8tBNQPLTvUDy0/1A8tP9QPLSG%224%UDy0fVA8tP9QPLT/UDy0+lA8tE0%421%UDy0GlA8tNhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQM%138%BQPLRBUDy0tFA8tGg%234%FA8tHNQPLS0UDy0Tg%431%FA8tBtQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSh%842%BQPLQ+UDy081A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0jg%842%UDy0PVA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI4%842%FA8tD1QPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSP%842%BQPLQ8UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0k%843%UDy0PFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJE%842%FA8tDtQPLTxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSHUDy0BQ%836%BQPLQ7UDy08VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0jg%842%UDy0OlA8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tBk%842%FA8tDpQPLTxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tD8%847%BQPLQ5UDy07lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tB4%853%UDy0L1A8tPJQPLT/UDy0/1A8tP9QPLT/UDy0nQ%863%FA8tDxQPLTHUDy0+FA8tOlQPLSKUDy0Cg%868%BQPLQCUDy0CVA8tAY%22101%UDy0SFA8tNpQPLTsUDy0Xg%442%UDy0MlA8tLdQPLT/UDy0mFA8tCo%405%UDy04FA8tP9QPLT/UDy0/1A8tJFQPLQH%426%BQPLRGUDy0/FA8tP9QPLT/UDy0/1A8tO5QPLQO%400%UDy07FA8tP9QPLT/UDy0/1A8tP9QPLTVUDy0Kw%415%FA8tEZQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR6%400%UDy0XlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy071A8tFw%405%UDy0R1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR8%405%FA8tJFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLRi%400%UDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRE%405%FA8tAZQPLS9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0lVE9tAM%389%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tItQPLQB%410%BQPLQYUDy03VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMNQPLQV%384%UDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0i1A8tAE%421%UDy0N1A8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTkUDy0Mw%378%UDy0a1A8tP9QPLT/UDy0/1A8tP9QPLSLUDy0AQ%431%FA8tGJQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tF8%378%FA8tDhQPLSyUDy0vVA8tERQPLQB%37%FA8tBdQPLSxUDy051A8tOVQPLRd%378%BQPLSVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLSRUDy0BQ%426%UDy0F1A8tN1QPLT/UDy0/1A8tP9QPLT/UDy0Uw%372%BRPbQDUDy0w1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vVA8tBc%415%BQPLQXUDy03VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0q%379%UDy0FVA8tORQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN5QPLQ1%405%FA8tBdQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0r%384%FA8tDNQPLT3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0Y%395%UDy0F1A8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0cw%388%BQPLRfUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tJRQPLQE%378%BQPLQXUDy03VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSF%400%UDy0kVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTCUDy0Fg%367%FA8tAFQPLTSUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIU%405%UDy0BVA8tL1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy041A8tDQ%362%FA8tC9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0hQ%42%UDy0AlA8tAhQPLQIUDy0AQ%351%FA8tBdQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLRf%357%FA8tC1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSF%42%BQPLQgUDy0qVA8tP9QPLT/UDy0sFA8tAw%351%BQPLQ1UDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0kVA8tAU%351%BQPLS9UDy0/1A8tP9QPLT/UDy0/1A8tIU%42%FA8tCBQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tLw%357%UDy0YFA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL5QPLQX%346%BQPLQMUDy0oVA8tP5QPLT0UDy0cg%42%UDy0IFA8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLQT%357%FA8tJRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDy0N%405%BQPLQhUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPFQPLQS%357%FA8tARQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tF8%394%FA8tCFQPLTcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJ4%367%BQPLQWUDy041A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLSTUDy0Bg%378%UDy0IFA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0x1A8tAo%373%UDy0NFA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wVA8tBc%367%BQPLQgUDy03VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTIUDy0CQ%383%FA8tF9QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOJQPLQ1%357%FA8tB9QPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMhQPLQJ%42%BQPLQ1UDy0R1A8tBQ%335%BQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0Xw%346%UDy0AlA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yFA8tAg%37%UDy0A1A8tK1QPLT9UDy0/1A8tPhQPLR%331%BQPLQFUDy0vlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJFQPLQF%336%UDy0QVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTIUDy0C%37%BQPLQDUDy0rFA8tP9QPLT/UDy0/1A8tP9QPLT5UDy0F%331%UDy0F1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/UDy0Fg%330%UDy0WlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMhQPLQJ%37%FA8tARQPLSsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0WQ%335%FA8tDRQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tDM%325%UDy0B1A8tPVQPLT/UDy0/1A8tP9QPLT/UDy0x1A8tAk%37%UDy0BFA8tKxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0S%341%BQPLRfUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLRdUj+1AQ%319%FA8tD1QPLTpUDy0/1A8tP9QPLS3UDy0Cg%36%BQPLQEUDy0q1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT%353%UDy0k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0kVA8tAc%319%BQPLQLUDy0HVA8tB0%42%FA8tARQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQJ%352%UDy0BlA8tMFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQY%368%UDy0BFA8tKtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0v1A8tAk%362%FA8tBdQPLTiUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLThUDy0NQ%356%BQPLQEUDy0rFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/UDy0Cg%42%UDy0LlA8tH1QPLQgUDy0Ag%308%BQPLQ1UDy091A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tF8%346%FA8tANQPLSsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL5QPLQK%37%FA8tARQPLSMUDy0/lA8tP9QPLT/UDy0mFA8tAI%309%UDy0X1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSRUDy0BQ%330%UDy0A1A8tKxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vlA8tAs%37%UDy0BFA8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGo%314%FA8tJFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0v1A8tBU%325%UDy0rVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS+UDy0Cw%36%BQPLQDUDy0tFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKQ%314%FA8tAVQPLS/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOFQPLQy%314%BQPLQ1UDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL9QPLQK%37%FA8tANQPLS1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tHo%319%BQPLQWUDy04FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0XFE+tAE%303%BQPLR8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0v1A8tAo%37%UDy0AlA8tLVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07VA8tA8%325%UDy0M1A8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI9QPLQJ%298%BQPLRGUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTAUDy0CQ%36%BQPLQCUDy0tVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTsUDy0Kw%335%FA8tF1QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS+UDy0GQ%298%UDy0klA8tP9QPLT/UDy0/1A8tMBQPLQJ%37%FA8tAJQPLS2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLQs%341%FI/tQFQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FA8tDY%298%FA8tFRQPLSdUDy0X1A8tAg%37%UDy0AlA8tLVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06lA8tC0%42%FA8tClQPLSSUDy0dFA8tB8%287%BQPLQHUDy0wFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLRf%346%BQPLQDUDy0tVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTpUDy0Lg%42%UDy0aVA8tP9QPLT/UDy0/1A8tNpQPLQe%288%UDy0GFA8tOFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0kVA8tAQ%330%FA8tANQPLS1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOlQPLQu%42%BQPLRpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS/%293%FA8tDVQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQU%320%UDy0BFA8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06VA8tC8%42%FA8tGpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%298%BQPLRfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTiUDy0MQ%308%BQPLQEUDy0tFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTpUDy0Lw%42%UDy0alA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTJ%304%UDy0kVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tFtRPbQB%298%BQPLSmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOlQPLQu%42%BQPLRqUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLQp%304%UDy0BVA8tL9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSE%293%FA8tE5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06lA8tC4%42%FA8tGtQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGU%314%FA8tBVQPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8%293%FA8tHxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTrUDy0LQ%42%UDy0a1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ZQ%324%BQPLQyUDy091A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTo%293%FA8tGlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLQs%42%BQPLRrUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRm%336%UDy0XFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%293%FA8tAtQPLTbUDy0/1A8tP9QPLT/UDy07FA8tCs%42%FA8tGtQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGY%341%UT60AVA8tI9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tEE%303%BQPLQVUDy0q1A8tNxQPLSzUDy0L%43%UDy0a1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Zg%351%FA8tAlQPLS+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0QQ%372%BQPLRqUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLRn%362%BQPLQZUDy04FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%373%FA8tGpQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tGc%373%UDy0NlA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tEE%373%UDy0alA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0Zw%383%FA8tF9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0QQ%372%BQPLRpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLRn%394%BQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%373%FA8tGlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tGY%399%BQPLQEUDy0wFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tEE%373%UDy0SFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0Zg%410%UDy0FFA8tOJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0QQ%378%UDy0p1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRm%421%FA8tDFQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLRB%384%UDy0pVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGU%431%BQPLRbUDy0/1A8tP9QPLT/UDy09FA8tEE%389%UDy0OVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0ZQ%436%BRPbQBUDy0hFA8tPxQPLToUDy0QQ%399%FA8tFFQPLT+UDy0/1A8tOVQPLRE%32549%FA8tAlQPLQ2UDy0K%421%BQPLQOUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0Cg%282%UDy0E1A8tNpQPLT/UDy0/lA8tK1QPLQj%405%FA8tDFQPLTsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tCE%277%UDy0ZlA8tP9QPLT/UDy0/1A8tP9QPLT7UDy0g1A8tAs%394%FA8tKNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIc%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLRbUT20Ag%383%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0ylA8tDM%378%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSjUDy0H%368%FA8tKlQPLT/UDy0/1A8tP9QPLT0UDy0QFA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy0QVA8tEFQPLRBUDy03lA8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07VA8tHpQPLQG%357%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpQPLQ8UDy001A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTbUDy0UFJAtQE%346%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUBUD20A1A8tG9QPLToUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMJQPLQq%341%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%10%BQPLQWUDy0jVA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0j1A8tBY%330%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%21%FA8tCpQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOlQPLRwUT20Ag%319%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%26%BRPrQBUDy0UFA8tNhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy01VA8tD0%314%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%37%FA8tAdQPLR5UDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLSvUDy0J%304%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%48%UDy0HFA8tKJQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tIVQPLQS%293%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%58%BQPLQzUDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTjUDy0X%288%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%64%UT60AVA8tFxQPLTcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM1QPLQ5%277%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%74%BQPLQNUDy0g1A8tPlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTI%277%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%80%Uj+1AVA8tGFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTxUDy0Bw%271%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%74%BQPLQnUDy0sVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS0%277%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%64%UDy0C1A8tIlQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tJ5QPLQN%277%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%53%FE9tAJQPLRfUDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTGUDy0Lg%287%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%48%UDy0N1A8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04VA8tGBRPrUB%293%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%37%FA8tB5QPLSdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLR+UDy0Dw%303%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%26%BQPLQGUDy0f1A8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0p1A8tB8%314%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%21%FA8tFZQPLTfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM1QPLRC%325%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUB%10%BQPLQvUDy0vFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0a1A9tAM%330%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPpSPrUBUDy0GFA8tJRQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tIhQPLQT%341%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tPtQPLR3UDy061A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLS8UDy0Jw%351%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy00lA8tE0%362%FA8tKlQPLT/UDy0/1A8tP9QPLTx%128%UDy001A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLR1UDy0Bw%367%FA8tKlQPLT/UDy0/1A8tP9QPLT3UDy0d1A8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR4UDy0eFA8tHhQPLR3UDy06FA8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0nlA8tBg%378%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI0%277%UDy0aFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tMJQPLQx%389%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tI0%277%UDy0XlA8tP9QPLT/UDy0/1A8tP9QPLTiUDy0WQ%399%FA8tJhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIc%277%UDy0DFA8tL5QPLT/UDy091A8tH9QPLQO%405%FA8tCZQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lA8tCE%282%FE9tAJQPLQQUDy0Cw%420%BQPLQHUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUDy0I1A8tCNQPLQjUT20Ag%33967%FA8tBhQPLQd%874%BQPLQYUDy0n1A8tPxQPLT/UDy0xlA8tC4%853%UT20AlA8tHZQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tP1QPLSTUDy0G%837%BQPLRNUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06lA8tHRRPbQC%816%UDy0KlA8tLFQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTXUDy0QQ%420%BQPLQlUDy0TFA8tCU%362%FA8tBRQPLSKUDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tLJQPLQn%394%BQPLQjUDy0d1A8tMpQPLT+UDy0/1A8tPhQPLRM%346%BRPbQDUDy0a1A8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0wVA8tDJQPLQaUDy0n1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0iFA8tBQ%362%FNAtQFQPLQgUDy0elA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTlUDy0Gw%335%FA8tDtQPLTOUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNlQPLRZ%21%FA8tDFQPLTEUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOVQPLRgUj+1AQ%340%BQPLQ2UDy0hFA8tNNQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wlE9tAM%319%BQPLQmUDy0plA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0gFA8tA0%31%BSP7UBUDy0WVA8tOJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0z1A8tDg%319%BQPLQ0UDy0hlA8tNxQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIc%309%UDy0CFA8tH9QPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tKtQPLQb%53%FA8tA9QPLSAUDy091A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLSnUDy0Iw%287%FA8tAZQPLQuUDy0ilA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tPpQPLQ+%293%FE9tANQPLRUUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTIUDy0Ow%74%UDy0HlA8tKtQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tH9QPLQG%261%FA9tANQPLRFUDy0lVA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLS+UDy0bVA8tBhRPbQCUDy0wlA8tP9QPLT/UDy0/1A8tP9QPLTeUDy0Cw%282%UDy0NVA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07FA8tGI%95%BQPLQ8UDy0y1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0VVE9tAE%234%FE9tAJQPLRGUDy0llA8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLSxUDy0V1A8tA8%21%UDy0HVA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0qlI/tQE%266%FA8tBVQPLSbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLSLUDy0E%107%UDy0B1A8tGdQPLTqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMRQPLQy%213%FA8tAxQPLRLUDy0mFA8tOdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLSyUDy0WVA8tA4%42%FA8tFZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGY%255%BQPLQHUDy0c1A8tO1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0tFA8tC%128%BQPLQSUDy0jFA8tPhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0k1A8tBc%186%FA8tAZQPLRUUDy0pVA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5QPLSnUDy0XVA8tAw%63%BQPLSfUDy0/1A8tP9QPLT/UDy0/1A8tPFQPLQo%240%UT60AVA8tElQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNVQPLRD%149%FA8tCFQPLS2UDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLRzUDy0BQ%175%FA8tK9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO1QPLSgUDy0RVA8tAg%79%BQPLQOUDy00lA8tP9QPLT/UDy0/1A8tP9QPLTTUDy0Bw%228%BQPLQeUDy0ulA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0a1A8tAk%165%UDy0UFA8tNRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02lA8tEg%165%UDy0HFA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOxQPLShUDy0R1A8tAg%101%UDy0NVA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0kQ%228%BQPLTNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tJRQPLQU%181%FA8tApQPLRsUDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLQY%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOJQPLSLUDy0TVA8tAQ%122%FA8tG9QPLT/UDy0/1A8tP9QPLT/UDy0/FA8tE4%223%BQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS9UDy0Jw%202%UDy0FVA8tJZQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLS3UDy0NlA9tAM%143%BQPLS0UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLQV%218%BQPLT2UDy0/1A8tP9QPLT/UDy03FA8tFhSP7UB%218%BQPLQzUDy0xFA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%154%BQPLQZUDy05lA8tP9QPLT/UDy0/1A8tP9QPLS8UDy0BQ%212%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%160%UDy0QlA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0dw%212%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%165%FA8tIlQPLT/UDy0/1A8tP9QPLT/UDy0+FA8tDc%207%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%165%FA8tAlQPLTGUDy0/1A8tP9QPLT/UDy0/1A8tOJQPLQQ%202%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%170%BQPLQlUDy09FA8tP9QPLT/UDy0/1A8tP9QPLSj%202%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%176%UDy0WlA8tP5QPLT/UDy0/1A8tP9QPLT+UDy0YQ%196%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%181%FA8tKRQPLT/UDy0/1A8tP9QPLT/UDy09FA8tCI%191%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%181%FA8tA9QPLTbUDy0/1A8tP9QPLT/UDy0/1A8tMxQPLQM%186%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%186%BQPLQxUDy091A8tP9QPLT/UDy0/1A8tP9QPLSI%186%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%192%UDy0dlA8tP9QPLT/UDy0/1A8tP9QPLT9UDy0SQ%180%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%192%UDy0BVA8tLZQPLT/UDy0/1A8tP9QPLT/UDy07VA8tBs%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%197%FA8tBlQPLTrUDy0/1A8tP9QPLT/UDy0/1A8tJ4%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%202%BQPLSrUDy0/1A8tP9QPLT/UDy0/1A8tLg%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%197%FA8tFJQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tF4%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%192%UDy0HlA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0rVA9tAM%175%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%186%BSPrUBUDy0vlA8tP9QPLT/UDy0/1A8tP9QPLTmUDy0Ew%180%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%186%BQPLSBUDy0/1A8tP9QPLT/UDy0/1A8tPhQPLR%187%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%181%FA8tDpQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tIk%191%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%176%UDy0FlA8tN5QPLT/UDy0/1A8tP9QPLT/UDy0xFA8tAU%191%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%176%UDy0plA8tP9QPLT/UDy0/1A8tP9QPLTtUDy0HQ%196%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%170%BQPLRnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRa%202%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%165%FA8tChQPLT5UDy0/1A8tP9QPLT/UDy0/1A8tJk%207%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%160%UDy0BVA8tNBQPLT/UDy0/1A8tP9QPLT/UDy02FA8tAo%207%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR2%160%UDy0l1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0MQ%212%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLR3%154%BQPLRNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLR1%218%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLT3UDy0rlA8tFlQPLQQ%133%FA8tB9QPLTnUDy0/1A8tP9QPLT/UDy0/1A8tLJSP7UB%218%BQPLT2UDy0/1A8tP9QPLT/UDy0bg%234%UDy0PVA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0IlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0q1A8tFtQPLQO%112%UD20A1A8tLpQPLT/UDy0/1A8tP9QPLT/UDy05lA8tBI%223%BQPLT2UDy0/1A8tP9QPLT/UDy08VA8tHRQPLQI%213%FA9tANQPLRRUDy03VA8tP9QPLT/UDy0/1A8tP9QPLRb%160%UDy0CVA8tPBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0ulA8tGhQPLQa%96%UDy0fVA8tP9QPLT/UDy0/1A8tP9QPLT+UDy0RQ%228%BQPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeUDy0T%203%UDy0KVA8tLlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRY%165%FA8tElQPLTdUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0wVA8tGpQPLQa%74%BQPLQ2UDy0/FA8tP9QPLT/UDy0/1A8tP9QPLSE%234%BQPLTEUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLJQPLQq%181%FA8tBFQPLSVUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOtQPLQV%176%UDy0NFA8tIRQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0u1A8tGxQPLQY%53%FA8tAxQPLTgUDy0/1A8tP9QPLT/UDy0/1A8tMhQPLQE%234%BQPLQWUDy0mlA8tPlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy0lFA8tA8%159%BQPLQGUDy0alA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0u1A8tCk%191%BRPbQCUDy0MFA8tIpQPLTTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy01FA8tHhQPLQp%32%UT20AlA8tK1QPLT/UDy0/1A8tP9QPLT/UDy07FA8tCY%250%FA8tDZQPLS6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO1QPLRpUDy0Bw%143%FA8tEVQPLTUUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLRMUT20AQ%218%UDy0I1A8tHRQPLTNUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy001A8tHhQPLQo%16%UDy0X1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Xw%260%BQPbQDUDy0TlA8tN9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yVA8tEU%127%BQPLQgUDy0sVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTxUDy0dVA8tAY%245%UDy0JVA8tHJQPLTQUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zVA8tIRQPLRZUDy08FA8tP9QPLT/UDy0/1A8tP9QPLSd%277%FA8tAhQPLR2UDy08VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLStUDy0IQ%106%UDy0DlA8tIlQPLT3UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tJ1QPLQe%272%UDy0I1A8tHhQPLS2UDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNxQPLQL%288%UDy0HlA8tJ5QPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tIlQPLQN%85%FE9tAJQPLRhUDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTGUDy0Og%298%UDy0FlA8tGVQPLS7UDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tDI%303%BQPLQ8UDy0xVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTiUDy0XFA9tAQ%69%UDy0OlA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05lA8tFdSPrUB%320%UDy0FlA8tGNQPLTAUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0bQ%314%UD20A1A8tFdQPLTnUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMFQPLQ7%53%FA8tBhQPLSoUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQPLSLUDy0CQ%346%UDy0FlA8tFtQPLSnUDy09lA8tP9QPLT/UDy0/1A8tP9QPLS4UT20Ag%324%BQPLQKUDy0i1A8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDy0qFA8tBg%31%BQPLQJUDy0dFA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0qVA8tCQ%373%UDy0DVA8tFRQPLSpUDy0w1A8tKtQPLQa%341%FA8tCRQPLSoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLRzUDy0CQ%15%FA8tFdQPLTbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tM1QPLRD%768%UDy0RFA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02lA8tFZQPLQxUDy0u1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTrUDy0a1A9tAM%778%FA9tANQPLRtUDy07FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09lA8tJVQPLQO%800%UDy0DlA8tJZQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSxUDy0L%821%BQPLQrUDy0vlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy031A8tEtRPrUB%837%FA8tE5QPLTgUDy0/1A8tP9QPLT/UDy0/1A8tO5QPLR1UDy0Bw%852%BQPLQGUDy0dlA8tOhQPLT4UDy0p1A8tBU%874%FA8tARQPLQI%13829%FE9tANQPbQD%880%UDy0ZlA8tOVQPLTrUDy0u1A8tH5QPLRAUDy0EQ%847%FA8tAZQPLSMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tM1QPLSaUDy0V1A8tCE%821%UDy0FlA8tLpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTjUDy0pFA8tHBQPLQxUDy0Cw%788%BQPLQxUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08lA8tMFQPLSDUDy0T1A8tA4%383%BQPLQvUDy0VlA8tBM%362%FA8tFhQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLTUUDy0llA8tGRQPLQmUT20AQ%346%UDy0JFA8tKlQPLT9UDy0/1A8tPNQPLRtUD20Aw%340%BQPLQIUDy0ilA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tL5QPLQeUT20AlA8tDpQPLR6UDy0rVA8tOZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy05FA8tLJQPLR0UDy0QlA8tAs%314%FA8tAZQPLSBUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy00VA8tEU%330%FA8tBpQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lFA8tAo%26%FA9tARQPLQpUDy0XVA8tJxQPLTPUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPhQPLTEUDy0kFA8tCk%287%BRPbQBUDy0WFA8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSrUDy0IQ%314%UDy0N1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPlQPLRiUT20AQ%58%UDy0EVA8tEpQPLSDUDy0u1A8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5QPLQl%277%FA8tDRQPLTHUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8tIJQPLQR%293%FI+tQFQPLRgUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy041A8tDY%90%FA8tAZQPLQ3UDy0alA8tKhQPLTnUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSb%266%BQPLQZUDy0nVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT4UDy011A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTiUDy0Yw%282%UDy0ClA8tJJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTDUDy0Gg%122%UDy0HlA8tFlQPLSMUDy0zFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UDy0Fg%250%UDy0BlA8tHZQPLTsUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tLRQPLQgUT20AlA8tF1QPLTgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMpQPLQx%266%BQPLQdUDy0vVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJdQPLQH%149%FA8tAdQPLRFUDy0hFA8tMxQPLT/UDy0/1A8tP9QPLT/UDy0hw%239%FE9tAJQPLRMUDy021A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTRUDy0Qw%20%BQPLQMUDy0g1A8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0olA8tBw%250%FA8tDpQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7UDy0ZVI/tQE%170%FA8tB1QPLT3UDy0/1A8tP9QPLT/UDy09FA8tBU%229%UDy0LlA8tLtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FA8tGpQPLQK%37%FA8tCVQPLSuUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVQPLR4UDy0Dg%234%UDy0YlA8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQPLQ2%186%BQPLSXUDy0/1A8tP9QPLT/UDy0/1A8tIk%218%FA8tBFQPLSQUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLSUUDy0F%21%BQPLQ8UDy0vlA8tMlQPLRuUDy0BQ%10%UDy0P1A8tNFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02lA8tF%219%FE9tAJQPLSTUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vFA8tBY%191%BQPLQeUDy0/1A8tP9QPLT/UDy0/1A8tPJQPLQU%202%BQPLQFUDy0alA8tOlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0vFA8tDI%26%FA8tA5QPLTzUDy0/1A8tP9QPLT/UDy021A8tEU%10%FE9tANQPLRpUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLTBUDy0Kw%202%UDy0FlA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSPUDy0BQ%202%UDy0rlA8tP9QPLT/UDy0/1A8tP9QPLR2%192%Uj+1AVA8tD9QPLTNUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNpQPLRW%37%FA8tD9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS3UDy0Jw%10%UDy0F1A8tJBQPLT7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tJdQPLQV%186%BQPLQ0UDy04lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tFw%213%UDy0M1A8tP5QPLT/UDy0/1A8tP9QPLTlUDy0C%181%BQPLQmUDy0p1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT2UDy0dFA8tAs%42%FA8tAZQPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tI9QPLQL%10%BQPLQpUDy0u1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTnUDy0b1E9tAI%170%FA8tF5QPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTmUDy0Lw%223%FA8tLBQPLT/UDy0/1A8tP9QPLT/UDy0bg%170%UDy0ClA8tIpQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tKhQPLQY%58%BQPLQrUDy0wVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0ZVE+tAE%10%FA8tEtQPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNNQPLRG%154%BRPbQCUDy0kVA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMBQPLQS%229%FA8tDJQPLT9UDy0/1A8tP9QPLT/UDy041A8tAc%154%FE9tAJQPLRVUDy05VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTFUDy0OQ%74%Uj61AVA8tF1QPLTfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNRQPLQ9%10%BQPLQMUDy0dlA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0tVA8tB8%138%FA8tBBQPLTAUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0kVA9tAQ%239%BQPLSzUDy0/1A8tP9QPLT/UDy0/1A8tG8%149%UDy0I1A8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04VA8tGBRPrQB%90%BQPLQMUDy0elA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy0olA8tC%11%FA8tBtQPLSdUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLSIUD20Aw%127%FA8tI1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLRf%250%BQPLRCUDy0/1A8tP9QPLT/UDy0/1A8tOJQPLQI%144%UDy0r1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLSJUDy0Dg%111%FA8tBxQPLSuUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLSEUDy0Bg%10%UDy0LlA8tMVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Sw%127%FA8tLFQPLT/UDy0/1A8tP9QPLT/UDy05VA8tDQ%255%BRPrQBUDy0y1A8tP9QPLT/UDy0/1A8tP9QPLRQ%144%UDy09VA8tP9QPLT/UDy0/1A8tP9QPLT+UDy0sVA8tB8%133%UDy0QFA8tMdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tFFSP7UB%10%BQPLRgUDy03lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTwUDy0F%267%UDy0S1A8tP9QPLT/UDy0/1A8tP9QPLTPUT61AQ%138%UDy09VA8tP9QPLT/UDy0/1A8tN1QPLRC%149%FA9tARQPLRlUDy05VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTAUDy0NQ%10%UDy0D1A8tH5QPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%272%UT20A1A8tMxQPLT/UDy0/1A8tP9QPLT/UDy0Ug%138%UDy09VA8tP9QPLT/UDy0/1A8tKQ%165%UDy0EVA8tJBQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VA8tEw%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%277%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy0zQ%138%UDy09VA8tP9QPLT/UDy0/1A8tKQ%10%FA8tC9QPLTTUDy06VA8tK1QPLQL%138%BQPLQlUDy0tlA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLw%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%277%FE9tAJQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tFI%133%UDy09VA8tP9QPLT/UDy0/1A8tKQ%10%FA8tNNQPLT/UDy0/1A8tP9QPLR1%149%FA8tEtQPLTOUDy0/1A8tP9QPLT/UDy0/1A8tLM%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%282%BQPLRpUDy0/1A8tP9QPLT/UDy0/1A8tMM%133%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%154%BQPLQJUDy0cFA8tPFQPLT/UDy06lA8tDc%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%282%BQPLQIUDy04lA8tP9QPLT/UDy0/1A8tP9QPLQ3%128%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%165%FA8tAhQPLQ6UD20Aw%15%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%288%UDy0ZlA8tP9QPLT/UDy0/1A8tP9QPLSz%128%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%288%UDy0CVA8tOJQPLT/UDy0/1A8tP9QPLT/UDy0Ng%122%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FA8tGhQPLT/UDy0/1A8tP9QPLT/UDy0tQ%122%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FA8tAdQPLTsUDy0/1A8tP9QPLT/UDy0/VA8tDU%117%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%298%BQPLSDUDy0/1A8tP9QPLT/UDy0/1A8tJ8%117%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%298%BQPLQUUDy08lA8tP9QPLT/UDy0/1A8tPpQPLQg%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%304%UDy0hFA8tP9QPLT/UDy0/1A8tP9QPLSX%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%304%UDy0GFA8tP5QPLT/UDy0/1A8tP9QPLTI%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%304%UDy0X1A8tP9QPLT/UDy0/1A8tP9QPLS8%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%298%BRPbQCUDy0zFA8tP9QPLT/UDy0/1A8tP9QPLRT%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%298%BQPLRKUDy0/1A8tP9QPLT/UDy0/1A8tM9SP7UB%112%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FE9tAJQPLTLUDy0/1A8tP9QPLT/UDy0/1A8tFE%117%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FA8tExQPLT/UDy0/1A8tP9QPLT/UDy00FE9tAM%117%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%293%FA8tMpQPLT/UDy0/1A8tP9QPLT/UDy0Zg%122%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%288%UDy0OlA8tP9QPLT/UDy0/1A8tP9QPLTjUDy0Bw%122%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%288%UDy0sFA8tP9QPLT/UDy0/1A8tP9QPLRv%128%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%197%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%282%BQPLQyUDy0/lA8tP9QPLT/UDy0/1A8tOVQPLQI%128%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0DlA8tP9QPLT/UDy0/1A8tP9QPLSH%160%UDy0BlA8tGVQPLSaUDy0blI/tQE%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%282%BQPLStUDy0/1A8tP9QPLT/UDy0/1A8tGw%133%UDy09VA8tP9QPLT/UDy0/1A8tKQ%5%UDy0CVA8tPNQPLT/UDy0/1A8tP9QPLSI%154%BQPLRMUDy04FA8tP9QPLT/UDy0/1A8tHE%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%277%FA8tDJQPLT/UDy0/1A8tP9QPLT/UDy05lA8tAo%133%UDy09VA8tP9QPLT/UDy0/1A8tKQ%10%FA8tJ9QPLT/UDy0/1A8tP5QPLQ4%144%UDy0K1A8tL1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMM%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTp%277%FA8tK5QPLT/UDy0/1A8tP9QPLT/UDy0ig%138%UDy09VA8tP9QPLT/UDy0/1A8tKQ%10%FA8tAdQPLRnUDy0iFA8tDg%138%FA8tA1QPLSVUDy09lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJQ%10%FA8tAZQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLTrUT61AQ%266%UDy0HFA8tPZQPLT/UDy0/1A8tP9QPLT0UDy0FQ%138%UDy09VA8tP9QPLT/UDy0/1A8tK9SP7UB%154%BRPbQCUDy0a1A8tOxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0sVA8tB0%10%FA8tBNQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tLFQPLT/UDy0/1A8tP9QPLT/UDy0mlA8tAw%261%UDy0k1A8tP9QPLT/UDy0/1A8tP9QPLSI%144%UDy09VA8tP9QPLT/UDy0/1A8tP9QPLS1UDy0Lw%143%FA8tENQPLTYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNtQPLRY%10%BQPLQEUDy0YVA8tOtQPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tJtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMNQPLQi%250%BQPLQdUDy0+FA8tP9QPLT/UDy0/1A8tPRQPLQX%144%UDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tI1QPLQL%122%BQPLQjUDy0p1A8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT1UDy0dFA8tAk%10%FA8tD1QPLTDUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0X%128%FA8tDpQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLThUDy0QQ%244%BQPLSRUDy0/1A8tP9QPLT/UDy0/1A8tIg%149%UDy0h1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUDy0ZFA9tAQ%101%UDy0CVA8tIpQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tJ5QPLQY%10%BQPLQaUDy0qlA8tPpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDy0Iw%132%BQPLQvUDy02FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tGs%234%FA8tBxQPLT4UDy0/1A8tP9QPLT/UDy0+1A8tBk%149%UD20BFA8tFhQPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNJQPLQ/%85%FE9tAJQPLRhUDy05lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTCUDy0Ow%10%UDy0ClA8tHZQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tKVQPLQi%144%UDy0E1A8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLSdUDy0Bg%223%FA8tIhQPLT/UDy0/1A8tP9QPLT/UDy0pQ%164%BQPLQMUDy0e1A8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDy0olA8tB8%69%UDy0OlA8tMRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04lA8tF9QPbQD%5%FI/tQFQPLRYUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTMUDy0Qg%159%FA8tARQPLSFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yVA8tCc%213%UDy0DlA8tOtQPLT/UDy0/1A8tP9QPLT9UDy0KQ%175%FA8tBhQPLSmUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNQPLSDUDy0Cg%52%BQPLSDUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLSKUDy0Dg%10%UDy0M1A8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy061A8tGpRPbQC%176%UDy0VFA8tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOVQPLRI%208%UDy0dlA8tP9QPLT/UDy0/1A8tP9QPLSj%192%UDy0QlA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05VA8tFhQPbQE%37%FA8tBtQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT8UDy0sFA8tCE%10%FA8tBNQPLSUUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPdQPLSTUDy0D%192%FA8tChQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT3UDy0cw%196%BQPLQNUDy061A8tP9QPLT/UDy0/1A8tP1QPLQr%197%FA8tAZQPLRdUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS8UDy0O%32%FA8tChQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMpQPLRG%10%BQPLQGUDy0bFA8tPJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0sFA8tCk%207%BQPLQPUDy0uFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lA8tKZQPLQJ%186%BQPLR4UDy0/1A8tP9QPLT/UDy0/1A8tKU%213%UDy0DlA8tIZQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tJ5QPLQX%21%FE9tAJQPLS7UDy0/1A8tP9QPLTvUDy0alA8tAc%10%FA8tE9QPLTWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN9QPLRL%224%UD20A1A8tIhQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTPUDy0I%176%FA8tAxQPLTqUDy0/1A8tP9QPLT/UDy0/1A8tDw%223%BQPLQoUDy0rlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0eFA8tAg%15%BQPLQMUDy0VVA8tGVQPLQR%10%BQPLQgUDy0s1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0dFA8tAU%239%BQPLRWUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy06VA8tEM%159%BRPbQCUDy0H1A8tIhQPLT/UDy0/1A8tP9QPLT/UDy0w%240%FA8tEpQPLTRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNdQPLRMUT20AQ%26%UDy0DlA8tIpQPLT6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FA8tJ5QPLQS%256%UDy0LVA8tOFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLRw%133%FA8tAZQPLQ6UDy0eFA8tKtQPLTnUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Qg%244%BQPLQHUDy0clA8tPBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0s1A8tC4%10%FA8tAVQPLRhUDy07VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTEUDy0Mg%271%FA8tA5QPLSxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0o1A8tAY%101%UDy0FVA8tFFQPLSJUDy0yVA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT%262%FA8tBFQPLSaUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLSNUDy0RVA8tM5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy05VA8tFRRPbQC%282%BRPbQCUDy0f1A8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNBQPLQZ%69%FA8tAVQPLQrUDy0YFA8tJ9QPLTdUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLRB%272%UDy0L1A8tLhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJQPLR+UDy0CQ%303%FA8tE5QPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTtUDy0Pw%42%UDy0C1A8tD9QPLR+UDy0u1A8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UDy041A8tHxRPrQB%282%BQPLRUUDy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0pVA8tCU%319%BQPLQnUDy03FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1A8tG4%15%BQPLQiUDy0U1A8tJBQPLTCUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLTPUDy0lFA8tFVQPLQk%304%UDy0CFA8tHxQPLT0UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMxQPLQ/Uj+1AQ%330%UDy0C1A8tLRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSrUDy0oVA8tOBQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06lA8tL5QPLSAUDy0QVA8tA4%335%BQPLQWUDy0pVA8tPxQPLT/UDy0/1A8tP9QPLToUDy0XlA8tAQ%346%FE+tQFQPLSCUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtQPLTgUDy0oVA8tG5QPLQuUDy0Bg%367%FA8tDdQPLS1UDy0yVA8tJBQPLQQ%368%UDy0UlA8tO9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy091A8tMxQPLSMUDy0V1A8tBY%794%FA8tC1QPLTXUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLTqUDy0rVA8tHpQPLQ9UDy0C%821%BQPLQSUDy0tFA8tP9QPLT/UDy0/1A8tNFQPLSdUDy0X1A8tCxRPbQC%848%UT20A1A8tDpQPLRBUDy0Fg%31375%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%789%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%277%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%341%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%853%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%41162%BOO7cnUT21T1E8tW5QPLV8UDyzg087tHRRPLRiTzyzTUw5sxs%357%UECvEFE+tkJRO7RfUDyzb1E9tH5PPLSEUTy0e088tGpRPbVPUz6zJQAA/wE%415%BPPLREUTy1oVA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDu0n1I7tjg%325%Tz22KlA8tY1QPbTbUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9PPLSnUTu0UkBAvwQ%63%BQPbVTUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy01Q%282%UTy1SFA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTJUD2zQw%303%FM+syVQPLS8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOBRPLVrVVWqAw%52%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%272%EZGuQtQPLOiUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/k88s5RNM7MK%288%UDuzbE88tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xU0+siE%47%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%267%Uj24GVA8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTMVUS7Dw%276%BQPLRzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tONNPLMe%42%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%261%BROrkWTzy011A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yE47sQ0%266%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTWVSuqBg%36%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%256%EBAvwRQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s6U%261%YEC/CFA7tN9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0yFA8tLhRPLS+UDy0z1A8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzu0d%37%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%256%FA8s4NQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UDyzs088s2FQPLNATju3J049sS5QO7ZJUDyzg1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QOrNG%256%Tzu1Z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy0q1I7tjg%26%IAAgAJROrM5UTy1nlA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FVAqgw%31%BQPbM2UTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUDy0j%251%UzmzKFA8tPpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tblNPLMe%37%FVVqgNQPLRzUDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTW%256%Tzy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbNl%53%E87tD1QPLTwUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tV0%325%UDy0qlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0j%59%UT21T1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uju2O%245%BmM8wFUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKY%63%BOO7ROUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A7tKM%319%BQOrYjUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbSkAAD/AQ%63%FE9tItQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lQ%244%BMObMbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tUw%69%UD21ylA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tdE%31%BJSbYHTUCzFE1AsxRNQLMUTUCzFE1AsxRNQLMUVTm4Eg%244%BQPLODUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQQK8Q%69%Ek3tg5QPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy01w%244%BSPbMyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9szY%69%UTy0e1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO0%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%245%BQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tGk%79%BQPLSZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1UrqgY%239%BSO7Y4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087s1c%69%UTqzOU89tKRPPbSkTz20pE89tKRPPbSkTz20pFE8tZ4%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FI6tR9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09k47sQ0%79%BRPLVMUDy08FA8tPBQPLTwUDy08FA8tPBQPLTwUDy08FM5syg%239%BRPLUmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMKAAIAC%138%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%E88tVpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0qQ%372%BNM7MKUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLWvUkC2H%133%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tYlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%379%UDy0xVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8ta9QPLVdVUC1G%117%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FE8tK5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTqzOQ%378%Tzu1Z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLSmTzu0dFE+tkJVObgS%90%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tMlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TjuxDQ%378%VSuqBlA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FE8tK5QO7N5Tz60OmYzzAU%63%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7%389%FE6tCxQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNRPLWhUDyzQ%53%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTt%394%BRPrQpUDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tcBOPrYx%42%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTj%400%VSuqBk88tGpQPLTjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5TzyzYQ%36%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tONQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTt%410%CAAIACUD2zQ088tJpQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tFU%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7%432%Uj24GVA9tVNQPbWGUDy0uFA8s+lQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJROrkW%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/STe2Dg%452%BSQLYcTzyzTVE7tIVQPLS/UDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLSE%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%E88tKdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz60Og%474%VUS7D1A8tGZQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTc%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FA8tX9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20aQ%484%BVK6oGUTy0mFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj24GQ%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rQ%84%BRPrZCUDy09FA8tPRQPLT0UDy09FA8tPRQPLT0UDy09FE7tFI%359%D/AU88tMRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTqzOQ%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%240%FU5uBJQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FVEuw8%79%BPPbVxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDM%239%BRPbVPUT20WFE9tFhRPbRYUT20WFE9tFhRPbRYTzu0PQ%79%E88tVpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj20Sw%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%245%BPPLPHUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tXE%79%BQO7O9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1VEuw8%239%BQO7POUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0z%80%E4+tjFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1T%21%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%245%BQPbRtUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5RNq4T%69%E47tydQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDyz2%245%BQPLSqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VU5uBI%74%FI9tjtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj22Ow%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%245%BRNq4TUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbSxVVWqAw%58%gACAAlA8tLtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20gg%244%BQPLV/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tHo%74%FE8tHtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTq5Fg%20%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%251%UDy1jVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1nmYzzAU%47%BVVaoDUTy0mFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TTuyKw%244%BOPbEuUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdSO7Y4%64%TTyzHlA8tO1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTa%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%251%UTauE1A8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tdFPPrQ6%37%FA8tDNRO7TBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7Os%256%UDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UT2zZYAAgAI%47%BQPLNAUDy041A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLSE%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%256%FA8tVlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02k88s5FPO7R0UD21YFE8tW5QPbSPUDy0zVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVNPLMe%256%UD20XFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPbWGUTy1TE45sSRVPbYVUECvEFJAthxRPLM8UDyzb1A8tMJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdMObMb%26%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%261%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tWc%266%FE8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tHs%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%261%BAQL8EUDy0rVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1f%272%FI6tR9QPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy0tFVVqgM%31%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%267%ZjPMBVA8tJxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxPPbR6%282%BTPLQiUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbSxVTmqCQ%36%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%277%BPPLNhUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lE6szk%293%VT22FU89tKRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FE7s2gAAP8B%42%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%283%UTq5FlA8tY1QPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNpRPLVrTTOzCg%308%BQPbNDUD20tVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQPLWNVUC1G%53%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD207%293%BGRrkLUTuzW1A8s6JQPLTcUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VE7tMFPPLSEUD2zQ4AAgAI%330%E47sRpQPbRtUDu0o1A8tNZQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08VA8tcBQPLWNTju0TmYzzAU%421%ZjPMBVBAtyBROrQsTj2xLk08sx5GRrkL%378%BVVaoDVTm4Ek0+siFRPLMvUT60KU47sRpGRrkL%40704%UDy0w1A8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhRPbNl%74%BQPLS4UDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06%293%BQPLTDUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToTzy051A8tN1QPLTLUDy0uFA9tYZSPbRLVUCqD%315%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbTsSzy0EQ%68%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy071E8tIhVPbYV%304%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDu0kg%68%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLTnUDyzQ%299%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+007sis%63%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FE8tUw%293%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tLw%63%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPFTObMo%288%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7RS%58%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLWy%288%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7TfYEC/C%53%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1E8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhQPLScUTy0rlA8tNpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTyzLw%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1f%53%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%53%BPPrUtUTy0vlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20gg%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VJAthw%47%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%59%QEC/BFE8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0wg%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKY%47%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%E49sS5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08g%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLM8%42%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BQO7TfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1UrqgY%277%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5QPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7POgACAAg%36%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BQPLS7UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1VAtRg%277%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRQO7SjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Zg%36%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BRPbSxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E2rhM%277%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPROO7EaUDy081A8tP9QPLT/UDy0/1A8tP9QPLT/UDy061BArx%32%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BQPLTFUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/oAAgAI%277%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%5%UDuzeVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tZ%32%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%ElJtgdQPLT1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy06w%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%5%SUm2B1A8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPtPPbYq%26%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20tQ%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%10%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS6%26%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%59%UTyzPFA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1e%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%15%BQPLS6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT21Tw%20%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09EBAvwRAQL8EQEC/BEBAvwRAQL8EQEC/BEBAvwRgQL8IUj24GVE8tUhQO7SfUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9UDq2Iw%282%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%15%BPPbYqUDy0+1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03UlJtgc%15%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSt%288%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%21%UDy1kFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tHo%15%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZPPbYq%288%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%21%UECvEFA8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPRMObMb%10%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tGY%293%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%26%FA8tGZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbSk%10%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1fw%298%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%26%IAAgAJQO7POUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz60Og%4%BQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5PPLNe%304%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%31%BPO7Q9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zIAAgAJQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUTy0iEs8tBE%309%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%37%Tzy0p1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tWRQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VA8tXxQPLV8UDy1fFA8tXxQPLV8UDy1fFA8tXxQPLV8UDy1fFE8tHtPPLRqTz2zVE07sis%325%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%37%Tz6wHVA8tPVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%42%FA7tH1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%42%GBAvwhQO7TfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%47%BQPbVTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%53%UTy0vlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%53%Tz61LVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%58%E88s5RQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%58%FU5uBJQPLTtUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%63%BPPLRqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%63%BVVaoDUDy00lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%69%UDyzQFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FE8tKtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FI6tR9QPLT2UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%292%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%39872%EBAvwRQOrUwUTy0VVE8s3JRPbR+Tzy0hFA7s3lRO7NoUDqzRkw5sxs%389%UECvEFE+tkJRO7RfUDyzb1E9tH5PPLSEUTy0e088tGpRPbVPUz6zJQAA/wE%378%FU5qglPPLVaUDyzs1A8tPNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTeTzyzkVI6sjU%357%Tz22KlA8tY1QPbTbUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9PPLSnUTu0UkBAvwQ%351%BmM8wFUTyzclA8tOhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7TBTzu0PQ%335%FM+syVQPLS8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOBRPLVrVVWqAw%335%FI9szJQPLTTUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/lE7s5tNM7MK%320%UDuzbE88tPdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0xU0+siE%325%UDy1WVA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLXRUjq1Hw%308%BQPLRzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tONNPLMe%314%BPPLNhUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04E0+siE%298%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTWVSuqBg%303%FE8tUxQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tNtLPLQR%288%YEC/CFA7tN9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUDy0yFA8tLhRPLS+UDy0z1A8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzu0d%299%UDq2I1A8tPFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLThUDy0jFE9tU9QPbM2Tju3J1E9sj9QPLVdUDy0qVA8tPRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS4%288%Tzu1Z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy0q1I7tjg%26%IAAgAJROrM5UTy1nlA8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FVAqgw%290%P8BUTu0wVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07k89tWQAAP8B%37%FVEuw9PPLSaUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzu1Zw%282%Tzy0t1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbNl%53%E87tD1QPLTwUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tV0%287%BQPbRcUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTaTDmzGw%58%TzyzUVA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy07lBArx%272%BmM8wFUDy0+FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tKY%63%BOO7ROUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A7tKM%282%FVVqgNQPLTdUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOBSQLYc%69%FE8tFVQPLT+UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s4M%271%BMObMbUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tUw%69%UD21ylA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tdE%282%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/047tEE%79%BPPLSaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpVK6oG%266%BSPbMyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9szY%69%UTy0e1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO0%282%FE9tLFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1ng%84%BQQK8QUDy06lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbVT%266%BSO7Y4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087s1c%69%UTqzOU89tKRPPbSkTz20pE89tKRPPbSkTz20pFE8tZ4%277%VTmqCVA8tPZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz22Kg%90%Tzyzh1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLWh%266%BRPLUmUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMKAAIAC%384%UTu1RVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLTE%96%TjmxJFA8tP5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTm%266%BNM7MKUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLWvUkC2H%379%Tz20elA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7N5%101%FA8tNVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TjuxGg%266%UDy0xVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8ta9QPLVdVUC1G%363%UDyzpVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbND%101%FA8s6JQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz20Rw%266%Tzu1Z1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPLSmTzu0dFE+tkJVObgS%336%Tzy0xFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9LPLQR%101%FA8s29QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT2zZQ%266%VSuqBlA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04FE8tK5QO7N5Tz60OmYzzAU%309%UDy02lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPw%106%FA8tVlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20fg%271%FE6tCxQPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPNRPLWhUDyzQ%299%UTy05FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO0%106%FA7tklQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1iQ%276%BRPrQpUDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tcBOPrYx%288%UDyz6VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tOQ%106%FE8szxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TzyzkQ%282%VSuqBk88tGpQPLTjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5TzyzYQ%282%UDy14lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPI%106%FE8tUhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20iw%292%CAAIACUD2zQ088tJpQPLTeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tFU%277%UDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP5VVaoD%101%FA8tVlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDyzg%315%Uj24GVA9tVNQPbWGUDy0uFA8s+lQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPJROrkW%272%UDy0u1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9NPLMe%101%FA8tHNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0Zg%340%BSQLYcTzyzTVE7tIVQPLS/UDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLSE%272%Tzy0mlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbNU%101%FA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDqzRg%362%VUS7D1A8tGZQPLTaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTc%272%Tzy0alA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%101%FA8tOFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTq5Fg%372%BVK6oGUTy0mFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj24GQ%266%Uj2zMlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLXigACAAg%90%Tz60OlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTe%386%D/AU88tMRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTqzOQ%268%D/AVA8tOZQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TzuzSg%90%UDu0o1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLOU%266%BRPbVPUT20WFE9tFhRPbRYUT20WFE9tFhRPbRYTzu0PQ%79%E88tVpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj20Sw%271%E88s5RQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0zFVVqgM%79%BOPbEuUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLN%267%BQO7POUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0z%80%E4+tjFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1T%272%FE8sy9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tHQ%74%FVVqgNQPLTMUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s9g%271%BQPLSqUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+VU5uBI%74%FI9tjtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uj22Ow%276%BQPbW5UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpPPLNN%64%gACAAlA7tKNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088s2E%271%BQPLV/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tHo%74%FE8tHtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTq5Fg%276%BOO7U0UDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UTuzWw%52%BOO7ENUDyzpVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy01FVVqgM%271%BOPbEuUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdSO7Y4%64%TTyzHlA8tO1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTa%288%UDu0klA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tLVSOrI1%32%VTmqCVE7s1tQPLTjUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT9Uju2O%283%UDy01VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT0UT2zZYAAgAI%47%BQPLNAUDy041A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLSE%288%TTOzClA8tNJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03VA8s6JRPLSIUTy0e088s5FRPbSxUDy09FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLO%289%UD20XFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tN1QPbWGUTy1TE45sSRVPbYVUECvEFJAthxRPLM8UDyzb1A8tMJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdMObMb%293%E0+siFQPLPpUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tK0AAP8B%293%FE8tL5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tHs%303%BNO7IrUDyz6VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy0tFUrqgY%298%FI6tR9QPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy0tFVVqgM%309%TT6yIVE8tdFQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbWXZjPMBQ%308%BTPLQiUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbSxVTmqCQ%319%FU5qglRPbSLUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy051A9tVM%325%VT22FU89tKRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08FE7s2gAAP8B%336%Tju3J1A9tKBQPLT4UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOZRPLV4TjuxDQ%340%BQPbNDUD20tVA8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQPLWNVUC1G%357%BQQK8QTzyzYU89tKRQPLTcUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VA8tMxQPLWQUDqzRlVVqgM%362%E47sRpQPbRtUDu0o1A8tNZQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08VA8tcBQPLWNTju0TmYzzAU%389%ZjPMBVI6tR9NO7IrTj62MU47tydON7EX%410%BVVaoDVTm4Ek0+siFRPLMvUT60KU47sRpGRrkL%39354%BOO7cnUT21T1E8tW5QPLV8UDyzg087tHRRPLRiTzyzTUw5sxs%831%BPPLREUTy1oVA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTgUDu0n1I7tjg%69%TzyzkVA8tOhQPLToUDy06FA8tOhQPLToUDy06FE8tJg%255%BQPLTDUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA9tLU%293%UTy1SFA8tM9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTJUD2zQw%58%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%282%EZGuQtQPLOiUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/k88s5RNM7MK%48%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%277%Uj24GVA8tNBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTMVUS7Dw%42%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%271%BROrkWTzy011A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yE47sQ0%37%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%266%EBAvwRQPLTCUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s6U%37%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMg%266%FA8s4NQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UDyzs088s2FQPLNATju3J049sS5QO7ZJUDyzg1A8tOBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QOrNG%32%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1E8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFA9s3Y%261%UzmzKFA8tPpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tblNPLMe%37%FVVqgNQPLRzUDy0+VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTW%32%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%363%UDy0qlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0j%59%UT21T1A8tPxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Uju2O%27%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BQOrYjUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPbSkAAD/AQ%63%FE9tItQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0lQ%26%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BQPLODUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQQK8Q%69%Ek3tg5QPLTyUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tzy01w%26%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BQPLTZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tGk%79%BQPLSZUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1UrqgY%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FI6tR9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09k47sQ0%79%BRPLVMUDy08FA8tPBQPLTwUDy08FA8tPBQPLTwUDy08FM5syg%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%E88tVpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0qQ%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FA8tYlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%155%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FE8tK5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTqzOQ%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRQPLRz%261%FA8tMlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TjuxDQ%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tNxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tOVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTt%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tOpQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTj%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tONQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTt%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSM%261%FA8tNlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT7%160%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xPPLNe%261%FA8tMNQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/STe2Dg%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%E88tKdQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/Tz60Og%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FA8tX9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20aQ%154%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FE9tU9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rQ%84%BRPrZCUDy09FA8tPRQPLT0UDy09FA8tPRQPLT0UDy09FE7tFI%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%352%FU5uBJQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+FVEuw8%79%BPPbVxUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tDM%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BPPLPHUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/089tXE%79%BQO7O9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1VEuw8%21%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BQPbRtUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO5RNq4T%69%E47tydQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDyz2%27%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%357%BRNq4TUDy09VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbSxVVWqAw%58%gACAAlA8tLtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD20gg%26%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%363%UDy1jVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1nmYzzAU%47%BVVaoDUTy0mFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/TTuyKw%26%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%363%UTauE1A8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tdFPPrQ6%37%FA8tDNRO7TBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7Os%32%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%368%FA8tVlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy02k88s5FPO7R0UD21YFE8tW5QPbSPUDy0zVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPVNPLMe%32%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%373%BQPLSWUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tWc%37%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%373%BAQL8EUDy0rVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy1f%43%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%379%ZjPMBVA8tJxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxPPbR6%48%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%389%BPPLNhUDy071A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03lE6szk%53%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%395%UTq5FlA8tY1QPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNpRPLVrTTOzCg%58%UD20oFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tag%255%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%405%BGRrkLUTuzW1A8s6JQPLTcUDy0/FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy09VE7tMFPPLSEUD2zQ4AAgAI%837%ZjPMBVBAtyBROrQsTj2xLk08sx5GRrkL%40650%BQPLTDUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tONQPLPYUDy0v1E7s5tRPLRiVUC1G%443%UDy0w1A8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tN0%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/U88tLRROrM5%432%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT+UTy0mFUrqgY%421%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tLVVVaoD%416%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLR7%416%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT5UTy1Jg%410%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+1E8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYTzy0mlA9tahQPLTNUDy0/VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1ng%410%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%59%UkC2HFA8tKlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09mBAvwg%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%67%/wFQPbS1UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/047tEE%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BOO7RBUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088s2E%31%BVQKoMTUCzFE1AsxRNQLMUTUCzFE1AsxRNQLMUTjuxDQ%20%BAQL8EUD2zQ1A9s3ZPPLOHUTq0L%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BVPbYVUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%16%E88s2FRPLTkUDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BOO7EaUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/047tE4%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%5%BVK6oGUDyzpVA8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BRO7RSUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FE6uRY%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%5%BRPLWhUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%FVAqgxRPLXRUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDuzr%37%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21qFE9tFhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%53%BGRrkLUD21U1A8tNVQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTxUzy0Ig%36%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0rVA8teJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/VE8tNRRPLTUUTy01FE8tNRRPLTUUTy01FE8tNRRPLTUUDy01VA8tONQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tPdQOrNG%42%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20W%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDyz6VE8szw%47%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxRPLXRUDy0ulA9tLVQPLTJUTy1T%283%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS4VUC1G%53%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTyUDu0cEk3tg4%309%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPLTkTzyzTQ%52%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPFNO7Ir%320%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tIyAAIAC%42%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/088tGo%325%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLOlVVWqAw%36%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+U0zswo%325%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7s6xQO7OsUDuzrFA7tLBRO7TBUD207FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20iw%36%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0yQ%330%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%61%D/AVA9s0NQPLTSUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/087tD0%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UT20sQ%330%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%BJN7YOUDy01lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tMI%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%75%Tz2zVFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9TPLQi%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%75%UECvEFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PPLNe%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%80%FA8tPlQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLV8%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%75%YEC/CFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RPbR+%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%75%Tju0QVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPbRp%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%69%CAAIACUDuzvVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9ROrM5%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy09%64%FI9uBlRPLSuUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPBAQL8E%26%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+lA8s4BQPLOAUDyzgFA8s4BQPLOAUDyzgFA8s4BQPLOAUDyzgFA8s4NQPbSTUDy1wFA8tPtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E9tIs%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08k47sRo%31%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDu0Yw%36%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLSd%42%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0+087tIGAAIAC%42%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPpQPLSmTz22Kg%52%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%287%BQPLPYUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLT1UDy041A8tMVPPbWXUD20XEs8tBE%63%BQPbSgUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UD21q%331%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%41055%BLPLQRUD21U1A8s4BQPLSdUDy0qlA8s6VPPLORUTy0e1E7tUVNM7MK%448%UDy0w1A8tOhQPLToUDy06FA8tOhQPLToUDy06FA8tN0%74%Ek3tg5QPLToUDy06FA8tOhQPLToUDy06FA8tOhQPLToUD20tQ%218%Tj61PlA7tLBQPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT6UDu0sFI7tjg%437%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%208%FE6uRZQPbWoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QO7SwVTm4Eg%426%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%203%Uzy0IlA8tN1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04VI9szI%421%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%197%BRNq4TUDy04VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOpQOrYj%416%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%197%BQO7SfUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTZYEC/C%411%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%192%FE8tSZQPLT9UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLS7UTu0hVE9tH5PPLSnUDy08lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTy1e%411%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%192%FE7tI5QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy03FA8tDM%21%VT22FVA8tbJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy08UZGuQs%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%192%FA7tN9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLToUkC2H%32%FVVqgNQPLS6UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E9tU8%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%UkC2HFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9PO7NX%42%BNPLMeUDy0+lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tJk%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%UT20WFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8teKAAIAC%48%Tzy0tFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tL4%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%Tz20elA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tZ4%53%UDyzgFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNU%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%UTu0jlA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E8tXg%53%UDy0c1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tOM%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%187%UDu0n1A8tPxQPLT8UDy0/FA8tPxQPLT8UDy0/E87tWc%53%UD20k1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tNY%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%FBArxBQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%277%CAAIACUDy02VA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tLU%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPxQPLS4UDy0uFA8tLhQPLS4UDy0uFA8tLhQPLS4UDy0uFA8tLhQPLS4UDy0uFA8tLhQPLS4UDy0uFA8tLxQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%277%BPPLNeUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8s4%406%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%272%E8+tS1QPLTzUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E6tCw%405%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%267%Tju1NFA8tOtQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDu0s%411%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%261%BRPLVMUDy09FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLPpUj24GQ%410%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%256%FA9tG1QPLT8UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tO9QOrUw%416%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%251%Tzy0d1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy04VE6tCw%421%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP1QPLTIUDy0yFA8tMhQPLTIUDy0yFA8tMhQPLTIUDy0yFA8tMhQPLTIUDy0yFA8tMhQPLTIUDy0yFA8tMhQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%245%BRPbVPUDy0/lA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLS7TjexFw%426%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%240%FU5qglQPLThUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/FA7tH2AAIAC%432%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%240%FA9tG1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLTvUD2zQw%442%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%240%FA8tMJQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPZQPLQz%448%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%Rka5C1A8tP1QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tZ%454%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%Uz6zJVA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A9tVM%453%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UTyzPFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E6szk%453%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%Uz6zJVA8tIxQPLSMUDy0jFA8tIxQPLSMUDy0jEw5sxs%453%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%731%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%731%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UD2zdlE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJiAAIAC%69%E87tD1RPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYTzu0PQ%20%BPO7Q9UTy0mFE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mE87tD0%21%Tzu0PVE8tJhRPLSYUTy0mFE8tJhRPLSYUTy0mFE8tJhPO7Q9%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%192%UDyz2FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tPQ%74%EBAvwRQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0y%235%UDy0yFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9AQL8E%69%FE7s2hQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UTuza%21%BRO7NoUDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1E7s2g%21%UTuzaFA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9RO7No%20656%\")):e1(e,PE)?new fU(xv(t,84,252,\"%2549%P8AAO7/AAD/%432%/wAA3P8AAP//AAD//wAA/w%420%D/AACt/wAA//8AAP//AAD//wAA//8AAP8%163%D/%250%D/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%158%D/%4%/w%239%P8AAPz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%152%D/%4%/wAAAP8%229%/wAA6/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%147%D/%4%/wAAAP8AAAD/%218%D/AAC9/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%142%D/%4%/wAAAP8AAAD/%4%/w%207%P8AAI//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%136%D/%4%/wAAAP8AAAD/%4%/wAAAP8%202%P8AAPz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%131%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%192%/wAA7P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%126%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%180%D/AADN/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%120%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%170%P8AAJ7/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%115%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%165%P8AAP7/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%110%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%154%/wAA7v8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%104%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%143%D/AADc/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%133%P8AAK3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%94%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%127%P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%128%/wAA/P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8%83%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%127%D/AADr/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%127%P8AAL3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA/w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%133%P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA6w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%133%/wAA/P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP7/AACt%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%132%D/AADs/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA3%89%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%133%P8AAM3/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPw%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8%138%P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA3%105%D/%4%/wAAAP8AAAD/%4%/w%138%/wAA/v8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPs%115%D/%4%/wAAAP8AAAD/%138%D/AADu/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAzQ%120%D/%4%/wAAAP8%138%P8AANz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAPs%131%D/%4%/w%138%/wAArf8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvg%136%D/%144%/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAO4%287%D/AAD8/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAAvQ%287%P8AAOv/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOs%293%/wAAvf8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD+%304%/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAOs%303%D/AAD8/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD8%309%P8AAOz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AANw%309%/wAAzf8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD7%320%/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAM0%319%D/AAD+/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD7%325%P8AAO7/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL4%325%/wAA3P8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADu%336%/wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAL0%335%D/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADr%341%P8AAPz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA/g%346%/wAA6/8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AADr%352%/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA/%357%D/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP//AADc%357%P8AAPz/AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP8%325%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP8%15%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%79%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%144%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP8%10%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%58%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%122%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA//8AAP//AADNUDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%111%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP//AAD//wAA//8AAP//AAD//wAA7g%10%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%106%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT//wAA//8AAP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%5%P8AABH/AAD//wAA//8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT//wAA7%27%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%5%P8AABH/AAD//wAA//8AAP//AAD//wAA/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%10%D/AAAD/wAA//8AAP//AAD//wAA/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%208%/wAAA/8AAP//AAD/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%181%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%144%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%53%UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%116%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%53%UDy0/1A8tP9QPLT/UDy0/1A8tP8%31%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%106%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%15%FA8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%53%UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%63%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%79%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP8%37%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%90%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP8%37%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%20%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%26%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%20%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%101%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%5%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%111%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%10%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP8%10%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%127%FA8tP9QPLT/UDy0/1A8tP9QPLT/%122%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%79%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%6208%D/AP8A/wD/%433%P8A/wD/AP8A/wD/AP8A/w%422%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%163%D/%252%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%158%D/%4%/w%240%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%152%D/%4%/wAAAP8%230%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%147%D/%4%/wAAAP8AAAD/%220%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%142%D/%4%/wAAAP8AAAD/%4%/w%208%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%136%D/%4%/wAAAP8AAAD/%4%/wAAAP8%203%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%131%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%193%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%126%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%182%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%120%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%171%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%115%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%166%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%110%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%155%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%104%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%145%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%134%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%94%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%128%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%129%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%83%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%129%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%128%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%134%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%134%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%134%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%134%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8%139%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%104%D/%4%/wAAAP8AAAD/%4%/w%139%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%115%D/%4%/wAAAP8AAAD/%140%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%120%D/%4%/wAAAP8%139%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%131%D/%4%/w%139%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%136%D/%145%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%289%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%288%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%294%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%305%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%305%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%310%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%310%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%321%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%321%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%326%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%326%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%337%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%63%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%241%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%64%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%224%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%68%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%214%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%69%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%214%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%79%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%4%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%204%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%80%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/%198%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%90%UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%193%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%96%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/%188%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%106%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/%188%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/%117%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%10%UDy0/1A8tP9QPLT/UDy0/1A8tP8%187%D/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%127%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%187%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%143%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%182%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%154%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%193%/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8%159%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%203%P8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/w%159%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%150%D/AP8A/wD/AP8A/wD/AP8%165%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/%156%/wD/AP8A/w%164%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%15%FA8tP9QPLT/UDy0/1A8tP8%330%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%15%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP8%330%FA8tP9QPLT/UDy0/1A8tP9QPLT/%26%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP8%325%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%32%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%325%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%330%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%330%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%336%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%36%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%341%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%21%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%335%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%335%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%336%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%5%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%335%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%351%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%6242%//8AAP//%434%D//wAA//8AAP//AAD//w%423%P//AAD//wAA//8AAP//AAD//wAA//8%163%D/%253%P//AAD//wAA//8AAP//AAD//wAA//8AAP//%158%D/%4%/w%242%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%152%D/%4%/wAAAP8%231%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%147%D/%4%/wAAAP8AAAD/%221%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%142%D/%4%/wAAAP8AAAD/%4%/w%210%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%136%D/%4%/wAAAP8AAAD/%4%/wAAAP8%205%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%131%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%194%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%126%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%183%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%120%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%173%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%115%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%168%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%110%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%156%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%104%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%146%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%136%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%94%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%130%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%130%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%83%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%130%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%130%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%136%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%72%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/wAAAP8%135%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%78%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%4%/w%135%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%88%D/%4%/wAAAP8AAAD/%4%/wAAAP8AAAD/%136%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%99%D/%4%/wAAAP8AAAD/%4%/wAAAP8%141%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%104%D/%4%/wAAAP8AAAD/%4%/w%140%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%115%D/%4%/wAAAP8AAAD/%141%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%120%D/%4%/wAAAP8%141%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%131%D/%4%/w%140%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%136%D/%146%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%290%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%290%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%295%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%306%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%306%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%312%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%311%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%322%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%322%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%328%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%327%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%338%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%338%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%344%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%348%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%354%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%359%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%360%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%364%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%48%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%63%FA8tP9QPLT/UDy0/1A8tP9QPLT/%21%FA8tP9QPLT/UDy0/w%151%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%42%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%53%FA8tP9QPLT/UDy0/1A8tP9QPLT/%10%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%151%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//%42%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%47%FA8tP9QPLT/UDy0/1A8tP9QPLT/%5%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%146%//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%47%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/%5%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%140%D//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%53%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%135%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//w%58%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%135%P//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8%63%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%167%D//wAA//8AAP//AAD//wAA//8AAP//AAD//w%68%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%178%//8AAP//AAD//wAA//8%79%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%189%P//AAD//w%84%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%52%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%26%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%47%BQPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/%282%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/%288%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%26%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%31%FA8tP9QPLT/UDy0/1A8tP9QPLT/%288%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%37%FA8tP9QPLT/UDy0/1A8tP9QPLT/%293%FA8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP8%42%FA8tP9QPLT/UDy0/1A8tP9QPLT/%298%BQPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%47%FA8tP9QPLT/UDy0/1A8tP9QPLT/%304%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/%53%FA8tP9QPLT/UDy0/1A8tP9QPLT/%320%UDy0/1A8tP9QPLT/UDy0/1A8tP9QPLT/UDy0/w%3754%\")):null}var hy=\"object\",nn=`\n`,m2=\"boolean\",s9=\"number\",Mf=\"string\",Et=2147483647,b2='For input string: \"',y9=\"null\",T0={4:1,9:1,5:1,8:1},oM=\"__noinit__\",e0={4:1,5:1,8:1},Tn={4:1,19:1,33:1,27:1},Dt={4:1,9:1,14:1,5:1,10:1,8:1,13:1},Q0=65536,d1=65535,fP=1e4,eo=\"fromIndex: \",UM=\" > toIndex: \",V6=\", toIndex: \",LM=\", length: \",E6=\"Index: \",S6=\", Size: \",Tt={15:1,4:1,5:1},Cf={4:1},F={7:1,4:1,5:1},yi=16777215,DP=65280,Hf=.30000001192092896,l9=545460846592,w8=4294967296,h9=8589934592,T9=17179869184,c9=34359738368,w9=68719476736,g9=137438953472,Vf=274877906944,it={12:1,4:1,5:1},ne=536870912,be=8192,I6=2.617993878,x6=3.665191429,k0=6.283185307179586,l1=3.141592653589793,HA=1.5707963267948966,On=16384,Ty=-8355712,E0=4096,Ao={l:0,m:0,h:1},no={l:0,m:0,h:2},Po={l:0,m:0,h:4},uP=1920,ue=1024,yr=234881024,ro=167772160,Ef=100663296,Sf=201326592,li=114688,hi=4063232,io=3801088,j2=3538944,R2=3014656,fo=3145728,KA=2097152,Ti=393216,NP=917504,If=1966080,xf=0xf8000000000,cy=0xf0000000000,wy=0xe8000000000,gy=0xd8000000000,dy=0xb8000000000,N6=0xe0000000000,G6=0xc0000000000,Do=8796093022208,p2=549755813888,By=1649267441664,vy=3848290697216,uo=8246337208320,O6=0xc8000000000,q6=9345848836096,z6=0x98000000000,lr=29360128,M2={l:0,m:0,h:120},d9=268435456,q1=2048,g8=32768,Qo=-1.5707963267948966,d8=130560,oo=6291456,K6=-2.0943951023931953,fA=1.0471975511965976,C2=.5235987755982988,b1=786432,B8=524288,v8=262144,qn=-16777216,GP=-65536,QP=16711680,Fy=-32768,J6='<DrawingObject type=\"',Y6=\"></DrawingObject>\",t1={4:1,5:1,17:1},Pe={4:1,5:1},X6=\"unsupported atomicNo:\",sM=2.8415926535897933,D0={29:1,4:1,9:1,5:1,8:1},H2={4:1,5:1,10:1,8:1},At={11:1,4:1,5:1},DA={4:1,9:1,5:1,8:1,30:1},O0=131072,ky=196608,my={l:6,m:0,h:4},F8=1048576,k8=3221225472,Z6={l:0,m:0,h:3},Nf=8388608,by={35:1,41:1,37:1},_e={4:1,9:1,5:1,10:1,8:1},W6={35:1,41:1,74:1,37:1,70:1},jy={4:1,5:1,35:1,41:1,74:1,20:1,37:1,70:1,125:1},Ge=17976931348623157e292,_6=-17976931348623157e292,B9={89:1,77:1,78:1,4:1,9:1,5:1,8:1},je=\"??\",v9={65:1,4:1,9:1,5:1,8:1},m8=2013265920,VA=32505856,cn=31744,Ry=122880,V2={127:1,4:1,9:1,5:1,10:1,8:1},Uo=33554432,wn=67108864,py=-131073,My=-33554433,Cy=-33292289,$6=-3.141592653589793,q0=4194303,gn=3072,uA={46:1,4:1,5:1},a6=.7853981633974483,yM=3.061592653589793,dn=1073741824,lM=541165879296,Vt={16:1,4:1,5:1,8:1},Hy=281.17,Vy=289.19,Ey=294.21,Sy=\"0.0000\",hM=\"OCL MolfileCreator  \",Iy=\"NOSEARCH_OCL_CUSTOM_LABEL\",hr=\"M  END\",f1=-2147483648,E2=\"ATOMS\",Lo=\"$$$$\",so=\"M  V30 \",TM=\"M  V30 COUNTS \",cM=\"M  V30 MDLV30/STEREL\",wM=\"M  V30 MDLV30/STERAC\",t4=\"M  V30 END CTAB\",gM=34028234663852886e22,e4={l:2,m:0,h:4},oP=4194304,A4={l:4179966,m:4063288,h:7},dM={l:4194302,m:4193343,h:127},S0='\" ',n4='stroke=\"',P4='stroke-width=\"',xy='\" />',BM='class=\"event\" ',vM='opacity=\"0\" />',FM=\"' position:\",kM=\"'. Position:\",mM=1099511627776,bM=2199023255552,jM=4398046511104,r4=\"', position:\",RM=\"Assignment of aromatic double bonds failed\",yo=2147483646,pM={102:1,4:1},i4=\"Members of ESR groups must only be stereo centers with known configuration.\",f4=\"Over- or under-specified stereo feature or more than one racemic type bond\",D4=\"Ambiguous configuration at stereo center because of 2 parallel bonds\",MM={114:1,90:1,26:1,4:1},Ny=1e5,lo=1.399999976158142,S2=3.1415927410125732,u4=1.5707963705062866,CM=.029999999329447746,HM=6.2831854820251465,VM=1.9106119871139526,EM=2.2639999389648438,Q4=2.16759991645813,SM=2.0662999153137207,IM=2.3561999797821045,xM=2.2844998836517334,NM=1.9106120066311025,GM=2.094395160675049,ho=.6000000238418579,Gy=1.7999999523162842,o4=.05000000074505806,re={4:1,9:1,5:1,8:1,38:1},Oy=.2617993950843811,I2=2.0943951023931953,To=1.2000000476837158,U4=1.4299999475479126,qy=1.659999966621399,L4=1.4600000381469727,s4=1.899999976158142,OM=1.8200000524520874,qM=2.4600000381469727,zM=2.4200000762939453,zy=2.450000047683716,y4=2.440000057220459,KM=2.4000000953674316,l4=2.319999933242798,h4=2.2899999618530273,JM=1.8600000143051147,YM=2.5299999713897705,XM=2.490000009536743,ZM=2.4700000286102295,WM=2.880000114440918,_M=2.9200000762939453,$M=2.869999885559082,T4=2.8299999237060547,aM=2.7899999618530273,tC=2.809999942779541,eC=2.799999952316284,AC=3.049999952316284,c4=.3199999928474426,nC=1.3300000429153442,co=.8500000238418579,PC=1.600000023841858,rC=1.3899999856948853,w4=1.159999966621399,iC=1.1100000143051147,fC=1.0700000524520874,DC=1.9600000381469727,uC=1.7100000381469727,g4=1.3600000143051147,QC=1.340000033378601,oC=1.2200000286102295,UC=1.2400000095367432,Ky=1.2100000381469727,LC=2.0999999046325684,d4=1.850000023841858,B4=1.6299999952316284,sC=1.4700000286102295,yC=1.2799999713897705,lC=1.440000057220459,hC=1.7599999904632568,TC=1.7300000190734863,cC=1.7200000286102295,Jy=1.6799999475479126,wC=1.690000057220459,gC=1.6699999570846558,v4=1.649999976158142,wo=1.7000000476837158,dC=1.6200000047683716,BC=1.3700000047683716,vC=1.2899999618530273,FC=1.4500000476837158,kC=1.5700000524520874,F4=-.5235987755982988,go=-1.0471975511965976,mC=-.7853981633974483,bC=.017453292519943295,jC=.17453292519943295,Bo=1e-4,Gf={150:1},Of=57.29577951308232,RC=.021922173386725217,vo=1e-8,OP=2.5120960256267386,Fo=1e-5,Yy=\"MMFF94s+\",pC=\"nonbonded cutoff\",MC=\"dielectric constant\",CC=\"dielectric model\",HC=\"angle bend\",VC=\"bond stretch\",EC=\"electrostatic\",SC=\"out of plane\",IC=\"stretch bend\",xC=\"torsion angle\",NC=\"van der waals\",GC=.07000000000000006,OC=.1200000000000001,qC=-7.840000000000001,Xy=\"OCL_RXN_V1.0:\",zC=\"$RXN V3000\",KC=\"'$MOL' tag not found\",JC=\"'M  END' not found\",YC=\"M  V30 BEGIN REACTANT\",XC=`\nActelion Java MolfileCreator 2.0\n\n  0  0  0  0  0  0              0 V3000\n`,ZC=\"M  V30 BEGIN PRODUCT\",WC=2475109711874,_C=2475109711875,$C=2887426572290,aC=2887426572291,tH=2887627898882,eH=2887627898883,AH=2887627997186,nH=3437182386178,PH=3437182386179,rH=3437383712770,iH=3437383811074,fH=3437652148226,DH=3437652377602,uH=4674132967426,QH=4674334294018,oH=4674334392322,UH=4674602729474,LH=4674602958850,sH=5086449827842,yH=5086449827848,lH=5086651154434,hH=5086651252738,TH=5086651252743,cH=5086919589890,wH=5086919688194,gH=5636406968322,dH=5636407066626,BH=5636675502082,vH={l:589826,m:590112,h:4},FH={l:589827,m:590112,h:4},kH={l:589826,m:590160,h:4},mH={l:589827,m:590160,h:4},bH={l:688130,m:590160,h:4},jH={l:589826,m:590224,h:4},RH={l:589827,m:590224,h:4},pH={l:819203,m:590224,h:4},MH={l:589826,m:590368,h:4},CH={l:688130,m:590368,h:4},HH={l:819202,m:590368,h:4},VH={l:819208,m:590368,h:4},EH={l:589826,m:590416,h:4},SH={l:589832,m:590416,h:4},IH={l:688130,m:590416,h:4},xH={l:819202,m:590416,h:4},NH={l:589826,m:598304,h:4},GH={l:589827,m:598304,h:4},OH={l:688130,m:598304,h:4},qH={l:1114114,m:598304,h:4},zH={l:1212418,m:598304,h:4},KH={l:589826,m:598308,h:4},JH={l:589826,m:688416,h:4},YH={l:589826,m:688464,h:4},XH={l:589826,m:688720,h:4},ZH={l:688130,m:688720,h:4},WH={l:589826,m:590112,h:288},_H={l:589826,m:590112,h:336},$H={l:589826,m:688416,h:336},aH={l:589826,m:688464,h:336},tV={l:688130,m:688464,h:336},eV={l:589826,m:590112,h:400},AV={l:589826,m:688416,h:400},nV={l:589826,m:688464,h:400},PV={l:688130,m:688464,h:400},rV={l:589826,m:819488,h:400},iV={l:589826,m:819536,h:400},fV={l:589826,m:819600,h:400},DV={l:688130,m:819600,h:400},uV={l:819202,m:819600,h:400},QV={l:589831,m:688416,h:592},oV={l:589831,m:688464,h:592},UV={l:688135,m:688464,h:592},LV={l:589831,m:819536,h:592},sV={l:688135,m:819536,h:592},yV={l:688135,m:819600,h:592},lV={l:589832,m:1212704,h:592},hV={l:589832,m:1212752,h:592},TV={l:688136,m:1212752,h:592},cV={l:589831,m:688464,h:656},wV={l:589826,m:590112,h:8480},gV={l:589826,m:688416,h:8480},dV={l:589826,m:688464,h:8480},BV={l:688130,m:688464,h:8480},vV={l:819202,m:819600,h:8480},FV={l:688135,m:1212752,h:8480},kV={l:589832,m:1213008,h:8480},mV={l:688136,m:1213008,h:8480},bV={l:589826,m:590112,h:8484},jV={l:589826,m:590160,h:8484},RV={l:688130,m:598304,h:8484},pV=.6262000203132629,MV=-1.3825000524520874,Zy=.33169999718666077,CV=-1.4915000200271606,HV=.3540000021457672,VV=.38179999589920044,EV=-.6019999980926514,SV=.07999999821186066,IV=-.7379999756813049,xV=\"Atom-types are 64-bit numbers describing atoms and their near surrounding.\",k4=\"Recognized atom types and their contributions are:\",NV=\"Druglikeness predictor not properly initialized.\",GV=3.009999990463257,OV=-.17000000178813934,qV=-.1809999942779541,zV=-.2029999941587448,ko=2147483648,KV=\"ene-Metathesis\",JV=\"Halogenation ring closure\",YV=\" (rootPairSets:\",Wy=-1e10,_y={208:1,4:1,9:1,5:1,8:1,30:1},$y=-99999,b8=\"any\",XV=\"is not in a ring\",m4=\"Excluded atoms:\",ay=\"exactly 1\",tl=\"exactly 2\",b4=\"less than 3\",ZV=\"less than 4\",el=\"at least 1\",j4=\"at least 2\",R4=\"at least 3\",WV=\"at least 4\",p4=\"1 or 2\",_V=\"less than 2\",$V=\"Allowed atoms:\",qf={138:1},aV=\"Atom Properties\",Al=-8346432,tE=\"/html/editor/editor.html\",eE=\"Structure Editor Help\",nl=\"Dummy look and feel\",Pl=\"Substance Graphite\",rl=\"Radiance Graphite\",il=\"Radiance Night\",AE=.6499999761581421,nE=.3499999940395355,zf=.800000011920929,M4=\"editorButtons.png\",PE=\"esrButtons.png\",C4=-1774190527,H4=-1438646166,x2=-1433403286,fl=-1431655766,Dl=-1448432982,Tr=1073741866,Kf=1073741930,V4=\"MMFF94\",E4=\"MMFF94s\",rE=\"/resources/forcefield/mmff94/94s/outofplane.csv\",iE=\"cleaveRings\",ul={152:1,4:1,5:1,8:1},mo=\"undefined\",fE=.08726646502812703,DE=\"overlapping\",S4=.003921568859368563,I4=\"anonymous\",x4=\"Unknown\",Pn=1048575,UP=17592186044416,Jf=1e9,N2=-17592186044416,FA=5.56,Qe=11.12,cr=13.34,Yf=14.44,bo=.3010299956639812,uE=\"BigInteger divide by zero\",g1=4294967295,QE={l:0,m:0,h:524288},Ql={32:1,115:1},N4={107:1,111:1},G2={35:1,41:1,37:1,87:1},ol=16777619,oE={35:1,37:1,87:1},Ul=15525485,UE=5960464477539063e-23,G4=16777216,Ll={4:1,32:1,55:1,83:1},O4=\"Invalid UTF8 sequence\",q4=.20000000298023224,LE=\" distance:\",sE={4:1,5:1,10:1,8:1,475:1},O2={50:1},U,jo,sl,b1t=-1;w.goog=w.goog||{},w.goog.global=w.goog.global||w,jo={},p(1,null,{},u1),U.mb=function(e){return zg(this,e)},U.nb=function(){return this.wd},U.ob=function(){return jD(this)},U.pb=function(){var e;return yu(Us(this))+\"@\"+(e=fr(this)>>>0,e.toString(16))},U.equals=function(t){return this.mb(t)},U.hashCode=function(){return this.ob()},U.toString=function(){return this.pb()};var yE,lE,hE;yE={4:1,315:1,32:1};var Ro;p(211,1,{},RT),U.Tc=function(e){var A;return A=new RT,A.f=4,e>1?A.c=uv(this,e-1):A.c=this,A},U.Uc=function(){return zU(this),this.b},U.Vc=function(){return yu(this)},U.Wc=function(){return zU(this),this.j},U.Xc=function(){return(this.f&4)!=0},U.Yc=function(){return(this.f&1)!=0},U.pb=function(){return((this.f&2)!=0?\"interface \":(this.f&1)!=0?\"\":\"class \")+(zU(this),this.n)},U.f=0,U.i=0;var j1t=1;p(121,1,{4:1,121:1});var z4;lE={4:1,32:1,316:1,121:1},p(27,1,{4:1,27:1}),U.fc=function(e){return new Error(e)},U.gc=function(){return this.backingJsObject},U.hc=function(){var e,A,n;for(n=(this.i==null&&(this.i=c(wE,T0,27,0,0,1)),this.i),A=c(zn,e0,1,n.length,5,1),e=0;e<n.length;e++)A[e]=n[e].backingJsObject;return A},U.ic=function(){return this.e},U.jc=function(){return this.f},U.kc=function(){pN(this,MO(this.fc(_B(this,this.f))))},U.pb=function(){return _B(this,this.jc())},U.backingJsObject=oM,U.j=!0,p(19,27,{4:1,19:1,27:1},H1),p(33,19,Tn),p(64,33,Tn,lh,XP),p(128,33,Tn,Ps),p(71,128,Tn,Rr,X7,Y7),U.fc=function(e){return new TypeError(e)},hE={4:1,210:1,32:1,2:1},p(236,64,Tn,kh),p(527,1,{}),p(458,1,{},vw);var TE=0;p(459,1,{});var zn=M(1),cE=M(0),R1t=M(315),irt=M(211),frt=M(121),p1t=M(316),wE=M(27),Drt=M(19),urt=M(33),Qrt=M(64),ort=M(128),Urt=M(71),ft=M(2),Lrt=M(236),srt=M(458),yrt=M(459);p(204,1,Cf,yy),U.c=0,U.d=0;var lrt=M(204);p(122,1,{122:1}),U.xb=function(){pk(this)},U.yb=function(e,A,n,P){},U.zb=function(e,A,n,P,r){},U.Db=function(e,A){return cb(this,e,A)},U.r=0,U.t=0,U.u=0,U.A=0,U.C=0,U.D=0,U.F=0,U.G=0,U.H=0,U.I=0,U.J=0,U.K=!1,U.M=0,U.N=0,U.O=0,U.P=0,U.Q=0,U.S=0,U.T=0,U.V=0,U.W=0,U.X=0,U.Y=0,U.Z=0;var yl,M1t=.15,C1t=.06,H1t=.6,hrt=M(122);p(144,1,{144:1},Vu),U.a=0,U.b=0,U.c=0;var Trt=M(144);p(69,1,{},h1),U.a=0,U.b=0,U.c=0,U.d=0;var crt=M(69);p(197,1,{197:1}),U.Jb=function(e){var A,n;if(this.i==null)return null;for(A=new lA(this.i[0].a,this.i[0].b,0,0),n=1;n<this.i.length;n++)A.c>this.i[n].a?(A.b+=A.c-this.i[n].a,A.c=this.i[n].a):A.b<this.i[n].a-A.c&&(A.b=this.i[n].a-A.c),A.d>this.i[n].b?(A.a+=A.d-this.i[n].b,A.d=this.i[n].b):A.a<this.i[n].b-A.d&&(A.a=this.i[n].b-A.d);return A},U.Nb=function(e){pF(this,e)},U.pb=function(){var e;return e=new gD,Ni(e,J6+this.Lb()+'\"'+this.Kb()+Y6),e.a},U.Ob=function(e,A){bk(this,e,A)},U.Pb=function(e,A){$m(this,e,A)},U.Qb=function(e,A){nj(this,e,A)},U.g=!1,U.j=!1,U.k=0,U.n=0;var wrt=M(197);p(91,1,{},p9),U.a=!1,U.b=0,U.c=0,U.k=0;var grt=M(91),po,K4;p(34,1,{},bA,qA),U.b=!1,U.c=0,U.d=!1,U.r=!1,U.t=0,U.v=0,U.w=0,U.G=!1,U.I=0,U.K=!1,U.L=!1,U.O=0,U.Q=0,U.T=0,U.U=0,U.Z=!1,U.jb=!1;var drt=M(34);p(273,1,{},s1),U.Rb=function(e,A){return Uj(e,A)},U.mb=function(e){return this===e};var Brt=M(273);p(176,1,{176:1},P0),U.b=0,U.c=0,U.d=0;var V1t=M(176);p(274,1,{},z0),U.Rb=function(e,A){return KB(e,A)},U.mb=function(e){return this===e};var vrt=M(274);p(177,1,{177:1},I0),U.a=0,U.b=0,U.c=0;var E1t=M(177);p(101,1,{101:1,32:1},NU),U.Sb=function(e){return ds(this,e)},U.a=0,U.b=0,U.c=0;var J4=M(101);p(175,1,{175:1,32:1},oF),U.Sb=function(e){return xF(this,e)},U.a=0,U.b=0,U.c=0;var S1t=M(175);p(212,1,{212:1},Ok);var Frt=M(212);p(272,1,{},gm);var krt=M(272);p(373,1,{},Zp),U.a=0,U.b=0,U.f=0,U.g=0,U.i=0;var mrt=M(373);p(374,1,{},qe),U.Rb=function(e,A){return b5(e,A)},U.mb=function(e){return this===e};var brt=M(374);p(28,1,{28:1,4:1,32:1},x0,Ke,pu),U.Sb=function(e){return mK(this,e)},U.mb=function(e){return Ts(this,e)},U.pb=function(){var e;return e=new sD(\"0.00\"),\"[\"+Bu(e,this.a)+\", \"+Bu(e,this.b)+\", \"+Bu(e,this.c)+\"]\"},U.a=0,U.b=0,U.c=0;var q2=M(28);p(82,1,{},Qu,i3,iy),U.pb=function(){return\"DepictorTransformation Offset: \"+this.a+\",\"+this.b+\" Scaling: \"+this.c},U.a=0,U.b=0,U.c=0;var jrt=M(82);p(41,1,by),U.Ub=function(){return new x8(this)},U.Vb=function(){return new vh(this.Ub())},U.add=function(e){throw et(new cD(\"Add not supported on this collection\"))},U.addAll=function(e){return TT(this,e)},U.clear=function(){var e;for(e=this.Tb();e.cd();)e.dd(),e.ed()},U.contains=function(e){return lm(this,e,!1)},U.containsAll=function(e){return UQ(this,e)},U.isEmpty=function(){return this.size()==0},U.remove=function(e){return lm(this,e,!0)},U.removeAll=function(e){return us(this,e)},U.retainAll=function(e){return qk(this,e)},U.toArray=function(){return this.Wb(c(zn,e0,1,this.size(),5,1))},U.Wb=function(e){return YT(this,e)},U.pb=function(){return Rb(this)};var Rrt=M(41);p(74,41,W6),U.Ub=function(){return new x8(this)},U.addAtIndex=function(e,A){throw et(new cD(\"Add not supported on this list\"))},U.add=function(e){return this.addAtIndex(this.size(),e),!0},U.addAllAtIndex=function(e,A){var n,P,r;for(y1(A),n=!1,r=A.Tb();r.cd();)P=r.dd(),this.addAtIndex(e++,P),n=!0;return n},U.clear=function(){this.Yb(0,this.size())},U.mb=function(e){var A,n,P,r,i;if(e===this)return!0;if(!Jt(e,70)||(i=e,this.size()!=i.size()))return!1;for(r=i.Tb(),n=this.Tb();n.cd();)if(A=n.dd(),P=r.dd(),!(K1(A)===K1(P)||A!=null&&SP(A,P)))return!1;return!0},U.ob=function(){return dz(this)},U.indexOf=function(e){return nk(this,e)},U.Tb=function(){return new fh(this)},U.lastIndexOf=function(e){var A;for(A=this.size()-1;A>-1;--A)if($8(e,this.getAtIndex(A)))return A;return-1},U.Xb=function(e){return new X3(this,e)},U.removeAtIndex=function(e){throw et(new cD(\"Remove not supported on this list\"))},U.Yb=function(e,A){var n,P;for(P=this.Xb(e),n=e;n<A;++n)P.dd(),P.ed()},U.setAtIndex=function(e,A){throw et(new cD(\"Set not supported on this list\"))},U.subList=function(e,A){return new JD(this,e,A)};var prt=M(74);p(20,74,jy,n1,ML,Wu),U.addAtIndex=function(e,A){f8(this,e,A)},U.add=function(e){return Ft(this,e)},U.addAllAtIndex=function(e,A){return zk(this,e,A)},U.addAll=function(e){return MP(this,e)},U.clear=function(){this.a.length=0},U.contains=function(e){return $r(this,e,0)!=-1},U.getAtIndex=function(e){return x(this,e)},U.indexOf=function(e){return $r(this,e,0)},U.isEmpty=function(){return this.a.length==0},U.Tb=function(){return new Zt(this)},U.lastIndexOf=function(e){return Vd(this,e)},U.removeAtIndex=function(e){return cA(this,e)},U.remove=function(e){return er(this,e)},U.Yb=function(e,A){gv(this,e,A)},U.setAtIndex=function(e,A){return Zr(this,e,A)},U.size=function(){return this.a.length},U.toArray=function(){return s3(this.a)},U.Wb=function(e){return Qf(this,e)};var Y4=M(20);p(103,20,jy,oU,cs,Ib),U.pb=function(){return Tm(this)};var Mrt=M(103);p(109,1,{109:1},Zi),U.a=0,U.b=0,U.c=0,U.d=0;var Crt=M(109);p(117,1,{},Ff),U.a=0,U.b=0,U.c=!1,U.d=0,U.f=!1,U.g=0,U.i=!1,U.j=0;var Hrt=M(117);p(18,1,{18:1},It),U.pb=function(){return this.d},U.a=0,U.c=0;var gE=M(18);p(161,1,{},HF,zj,Qv,kB),U.c=0,U.d=0,U.f=0,U.i=0,U.j=0,U.n=0,U.o=!1;var Vrt=M(161);p(371,1,{},S8),U.Rb=function(e,A){return y1(e),e>(y1(A),A)?-1:(y1(e),e<(y1(A),A)?1:0)},U.mb=function(e){return this===e};var Ert=M(371);p(90,1,{90:1,4:1},D3),U.Zb=function(e){dL(this,e)},U.$b=function(e){return this.I[e]==8},U.r=0,U.s=0,U.J=0,U.L=!1,U.M=!1,U.N=0,U.O=0,U.P=0,U.T=!1,U.U=0,U.V=0,U.W=0;var dE,J0,wr,ll,BE,j8,Bn=24,Srt=M(90);p(114,90,{114:1,90:1,4:1}),U._b=function(e){Fp(this,e)},U.$b=function(e){return Z8(this,e)},U.f=0,U.g=0,U.i=0;var Irt=M(114);p(340,1,{},JP),U.ac=function(){return!1},U.bc=function(e){throw et(new H1(\"Unexpected request to invent coordinates. Check source code logic!\"))},U.d=0,U.e=0,U.f=0,U.i=!1;var xrt=M(340);p(52,340,{},WA),U.ac=function(){return this.b},U.bc=function(e){var A;A=new a8(this.a),A.g=new $i(78187493520),U9(A,e)},U.a=2,U.b=!1;var Nrt=M(52);p(112,1,{},tg,dD),U.j=0;var Grt=M(112);p(3,1,{3:1},u),U.a=0,U.b=0;var Ht=M(3),hl;p(245,1,{245:1,32:1},Md),U.Sb=function(e){return AY(this,e)};var Ort=M(245);p(155,1,{155:1}),U.mb=function(e){var A;if(e===this)return!0;if(!Jt(e,155))return!1;for(A=0;A<this.b.length;A++)if(this.b[A]!=e.b[A])return!1;return!0},U.a=0,U.d=0;var X4,z2,Z4,qrt=M(155);p(113,1,{},Jh,R6);var zrt=M(113);p(126,1,{},Du,o7),U.a=!1,U.d=!1,U.e=!1,U.g=!1,U.i=0,U.k=!1;var Krt=M(126);p(230,1,{230:1},tu),U.a=0,U.b=!1;var Jrt=M(230);p(151,1,{},M7,Qd),U.c=1;var Yrt=M(151),W4,Tl=null;p(411,1,{},rM),U.pb=function(){return\"\"};var _4,$4,Xrt=M(411);p(153,1,{},dU),U.g=0;var Zrt=M(153);p(58,1,{},Gr,VD),U.c=0,U.d=0,U.p=0,U.q=0,U.r=!1,U.w=0,U.A=0,U.L=!1,U.N=0,U.P=!1;var Wrt=M(58);p(220,1,{220:1},AU),U.a=0,U.b=0,U.c=0,U.d=0;var _rt=M(220);p(182,1,{},CU);var F9,K2,$rt=M(182);p(264,122,{122:1},vb),U.qb=function(e){var A;A='<line x1=\"'+he(He(iA(new xe(e.a),(Qr(),Te))))+S0+'y1=\"'+he(He(iA(new xe(e.c),Te)))+S0+'x2=\"'+he(He(iA(new xe(e.b),Te)))+S0+'y2=\"'+he(He(iA(new xe(e.d),Te)))+S0+n4+this.d+S0+P4+this.j+xy,J9(this,A)},U.rb=function(e){var A,n;A=he(He(iA(new xe(3*this.j),(Qr(),Te)))),n='<line stroke-dasharray=\"'+A+\",\"+A+S0+'x1=\"'+he(He(iA(new xe(e.a),Te)))+S0+'y1=\"'+he(He(iA(new xe(e.c),Te)))+S0+'x2=\"'+he(He(iA(new xe(e.b),Te)))+S0+'y2=\"'+he(He(iA(new xe(e.d),Te)))+S0+n4+this.d+S0+\"stroke-width:\"+this.j+xy,J9(this,n)},U.sb=function(e){var A,n;for(n=new bn('<polygon points=\"'),A=0;A<e.a;A++)rd(n,E1(w.Math.round(e.b[A]))),n.a+=\",\",rd(n,E1(w.Math.round(e.c[A]))),n.a+=\" \";G(n,'\" fill=\"'+this.d+S0+n4+this.d+S0+P4+this.j+xy),J9(this,n.a)},U.tb=function(e,A,n){var P,r,i,f;i=(P=(f=Hb(this.e,e),new d3(f)).b,P),r='<text x=\"'+he(He(iA(new xe(A-i/2),(Qr(),Te))))+S0+'y=\"'+he(He(iA(new xe(n+this.k/3),Te)))+S0+'stroke=\"none\" font-size=\"'+this.e.b+S0+'fill=\"'+df(this.d)+'\">'+df(e)+\"</text>\",J9(this,r)},U.ub=function(e,A,n){var P;P='<circle cx=\"'+he(He(iA(new xe(e+n/2),(Qr(),Te))))+S0+'cy=\"'+he(He(iA(new xe(A+n/2),Te)))+S0+'r=\"'+he(He(iA(new xe(n/2),Te)))+S0+'fill=\"'+this.d+xy,J9(this,P)},U.vb=function(e){var A;return(A=Hb(this.e,e),new d3(A)).b},U.wb=function(){return this.k},U.yb=function(e,A,n,P){var r,i;r=M1(this.L,e),i='<circle id=\"'+df(this.g!=null?this.g:\"mol\"+J2)+\":Atom:\"+e+S0+BM+(r==0?\"\":'data-atom-map-no=\"'+r+S0)+'cx=\"'+he(He(iA(new xe(n),(Qr(),Te))))+S0+'cy=\"'+he(He(iA(new xe(P),Te)))+S0+'r=\"8'+S0+vM,Ft(this.a,i)},U.zb=function(e,A,n,P,r){var i;i='<line id=\"'+df(this.g!=null?this.g:\"mol\"+J2)+\":Bond:\"+e+S0+BM+'x1=\"'+he(He(iA(new xe(A),(Qr(),Te))))+S0+'y1=\"'+he(He(iA(new xe(n),Te)))+S0+'x2=\"'+he(He(iA(new xe(P),Te)))+S0+'y2=\"'+he(He(iA(new xe(r),Te)))+S0+P4+8+S0+vM,Ft(this.b,i)},U.Ab=function(e){this.j=$9(E1(w.Math.round(100*w.Math.max(e,1))))/100},U.Bb=function(e){this.d=\"rgb(\"+((e&QP)>>16)+\",\"+((e&DP)>>8)+\",\"+(e&255)+\")\"},U.Cb=function(e){this.k!=e&&(this.k=e,this.e=new c3(e))},U.Db=function(e,A){return this.n=Ot(E1(w.Math.round(e.b))),this.f=Ot(E1(w.Math.round(e.a))),cb(this,e,A)},U.pb=function(){return pp(this)},U.f=0,U.i=!1,U.j=0,U.k=0,U.n=0;var J2=0,art=M(264);p(186,1,{186:1},Y3),U.a=0,U.b=0,U.e=!1,U.f=!1,U.g=0;var t9t=M(186);p(291,1,{},jk),U.a=0,U.c=0,U.d=0,U.e=0,U.g=0,U.i=!1,U.j=!1,U.k=0,U.o=0,U.p=!1,U.r=!1;var e9t=M(291);p(384,1,{},U7),U.a=0,U.b=0,U.c=!1,U.d=!1;var A9t=M(384);p(385,1,{},aw),U.pb=function(){return\"{\"+this.c+\"-\"+this.b+\"}\"},U.a=!1,U.b=0,U.c=0,U.d=0;var n9t=M(385);p(132,1,{},p7,BQ),U.b=0,U.c=0,U.d=0,U.e=!1,U.i=!1,U.j=0,U.n=0,U.o=!1,U.p=!1,U.q=0;var P9t=M(132);p(221,1,{221:1,32:1},eg),U.Sb=function(e){return _h(e.b,this.b)},U.a=0,U.b=0;var r9t=M(221);p(222,1,{222:1},Ab),U.a=0,U.b=0,U.c=!1,U.d=!1;var i9t=M(222);p(184,1,{184:1},u3),U.pb=function(){return\"[\"+(this.a==yo?\"h\":this.a==Et?\"lp\":Vi(this.c.f.k,this.a))+this.b+\"]\"},U.a=0,U.b=0;var f9t=M(184);p(102,1,pM,ou),U.cc=function(e){return c5(this,e)};var I1t=M(102);p(26,114,MM,_A,SA,Wr),U.Zb=function(e){SU(this,e)},U._b=function(e){ut(this,e)},U.c=!1;var gr=M(26);p(246,1,{},m5),U.j=0;var x1t=Ny,D9t=M(246);p(170,1,{170:1,32:1},hs),U.Sb=function(e){return bs(this.a,e.a)};var u9t=M(170);p(95,197,{197:1,95:1},BU,uR),U.Eb=function(e,A){return this.a=!!this.b&&W9(this.b,e,A),this.a},U.Fb=function(){this.a=!1},U.Gb=function(){var e;return e=new BU,Ad(e,this.e,this.c,this.d),ld(e,this.i[0].a,this.i[0].b),e.g=this.g,e},U.Hb=function(e,A){return!!this.b&&W9(this.b,e,A)},U.Ib=function(e,A){var n,P,r,i;for(P=A?A.c*this.c:this.c,UL(e,Bt(w.Math.round(P)),(this.d&1)!=0,(this.d&2)!=0),nA(e,this.g?GP:(i=e.Lc(),i.isDarkBackground()?-1:qn)),r=aT(this),this.b=Q5(this,e,r),A&&Yu(A,this.b),n=0;n<r.a.length;n++)V3(e,this.b.c,this.b.d+1+P*5/6+P*lo*n,(te(n,r.a.length),r.a[n]))},U.Jb=function(e){var A;return A=aT(this),Q5(this,e,A)},U.Kb=function(){var e;return e=new M0,G(e,' text=\"'+bZ(this.e)+'\"'),G(e,' x=\"'+this.i[0].a+'\"'),G(e,' y=\"'+this.i[0].b+'\"'),this.c!=9&&G(e,' size=\"'+He(new mB(this.c,new hB))+'\"'),this.d!=0&&G(e,' style=\"'+this.d+'\"'),e.a},U.Lb=function(){return\"text\"},U.Mb=function(e){var A,n;A=(n=aT(this),Q5(this,e,n)),nA(e,KD(e)),K3(e,A.c,A.d,A.b,A.a)},U.Nb=function(e){pF(this,e),this.c*=e},U.Pb=function(e,A){$m(this,e,A),this.c=this.f*e},U.Qb=function(e,A){nj(this,e,A),this.f=this.c},U.a=!1,U.c=0,U.d=0,U.f=0;var Q9t=M(95);p(290,102,pM,qB),U.cc=function(e){var A;return A=c5(this,e),A==-1?-1:x(this.a,A).a};var o9t=M(290);p(267,1,{},$w);var U9t=M(267);p(388,1,{},PM);var L9t=M(388);p(387,1,{},rp);var vE,Mo,a4,tc,Co,ec=!1,s9t=M(387);p(67,1,{67:1,32:1},BD),U.Sb=function(e){return KF(this,e),Ym(this.q,e.q)},U.n=0;var y9t=M(67);p(376,1,{},Yg),U.a=0,U.b=0;var cl,LP,l9t=M(376);p(261,1,{261:1,32:1},lg),U.Sb=function(e){return Ym(this,e)},U.pb=function(){var e,A;for(A=new M0,e=0;e<this.b.length;e++)A.a+=e==0?\"Torsions: \":\", \",G(A,(A9(),Q9(this.b[e],3)+\"(\"+Bt(w.Math.round(this.a[e]+.5))+\")\"));return A.a};var h9t=M(261);p(259,1,{},ov,fv);var FE,wl,T9t=M(259);p(255,1,{},XT),U.a=0;var kE,c9t=M(255);p(198,1,{198:1},t7,tp),U.e=0;var w9t=M(198);p(256,1,{},b6);var g9t=M(256),Xf,JA,Ac=0,nc=0,Pc=0,rc=0,ic=0,Ho=0,fc=0,Dc=0,uc=0,Qc=0,Vo=0;p(76,1,{},a8),U.a=!1,U.e=0;var Eo,d9t=M(76);p(336,20,jy,v7),U.add=function(e){return CP(this,e)};var B9t=M(336);p(338,1,{},Au),U.Rb=function(e,A){var n;return YO((n=e,n))},U.mb=function(e){return this===e};var v9t=M(338);p(339,1,{},nu),U.Rb=function(e,A){var n;return XO((n=e,n))},U.mb=function(e){return this===e};var F9t=M(339);p(337,1,{},Pu),U.Rb=function(e,A){var n,P;return n=w.Math.abs(e.b),P=w.Math.abs(A.b),n<P?-1:n>P?1:0},U.mb=function(e){return this===e};var k9t=M(337);p(106,1,{106:1},Mj,qQ);var mE=M(106);p(43,1,{43:1},$P,iQ),U.a=0,U.b=0;var ci=M(43);p(252,1,{},_3);var m9t=M(252);p(201,1,{201:1},Q3),U.a=0,U.b=0;var b9t=M(201);p(372,20,jy,ub);var bE,j9t=M(372);p(48,1,{48:1},VP,D6),U.c=0,U.i=!1;var oc=M(48);p(251,1,{251:1},Gg),U.a=0,U.c=!1;var R9t=M(251);p(282,1,{}),U.d=0,U.f=!1,U.j=0,U.k=0;var p9t=M(282);p(366,1,Gf,im),U.dc=function(e,A,n,P){var r,i,f;return P&&(J(this.f,this.a)==1||J(this.f,this.c)==1)?0:(f=Jm(new F0(e,this.b,this.a),new F0(e,this.b,this.c)),r=f*Of-this.g,i=this.d?143.9325*this.e*(1+w.Math.cos(f)):RC*this.e*r*r*(1+-.006981317*r),i)},U.ec=function(e,A){var n,P,r,i,f,D,Q,o,L,s;Q=Nn(new F0(e,this.b,this.a)),o=Nn(new F0(e,this.b,this.c)),f=Mn(new F0(e,this.b,this.a)),D=Mn(new F0(e,this.b,this.c)),P=(Q.a*o.a+Q.b*o.b+Q.c*o.c)/(w.Math.sqrt(Q.a*Q.a+Q.b*Q.b+Q.c*Q.c)*w.Math.sqrt(o.a*o.a+o.b*o.b+o.c*o.c)),s=1-P*P,L=vo,s>0&&(L=w.Math.sqrt(s)),n=Of*w.Math.acos(P)-this.g,i=OP*this.e*n*(1+-.0104719755*n),this.d&&(i=-143.9325*this.e*L),r=m(k(Ut,1),Tt,6,15,[1/f*(o.a-P*Q.a),1/f*(o.b-P*Q.b),1/f*(o.c-P*Q.c),1/D*(Q.a-P*o.a),1/D*(Q.b-P*o.b),1/D*(Q.c-P*o.c)]),A[3*this.a]+=i*r[0]/-L,A[3*this.a+1]+=i*r[1]/-L,A[3*this.a+2]+=i*r[2]/-L,A[3*this.b]+=i*(-r[0]-r[3])/-L,A[3*this.b+1]+=i*(-r[1]-r[4])/-L,A[3*this.b+2]+=i*(-r[2]-r[5])/-L,A[3*this.c]+=i*r[3]/-L,A[3*this.c+1]+=i*r[4]/-L,A[3*this.c+2]+=i*r[5]/-L},U.a=0,U.b=0,U.c=0,U.d=!1,U.e=0,U.g=0;var M9t=M(366);p(188,33,{188:1,4:1,19:1,33:1,27:1},N7);var C9t=M(188);p(342,33,Tn,F7);var H9t=M(342);p(242,1,Gf,zB),U.dc=function(e,A,n,P){var r,i,f;return P&&(J(this.d,this.a)==1||J(this.d,this.b)==1)?0:(i=rk(new Wi(e,this.a),new Wi(e,this.b)),r=(i-this.e)*(i-this.e),f=71.96625*this.c*r*(1+-2*(i-this.e)+2.3333333333333335*r),f)},U.ec=function(e,A){var n,P,r,i;if(P=rk(new Wi(e,this.a),new Wi(e,this.b)),r=P-this.e,n=143.9325*this.c*r*(1+-3*r+4.666666666666667*r*r),P>0)for(i=0;i<3;i++)A[3*this.a+i]+=n*(e[3*this.a+i]-e[3*this.b+i])/P,A[3*this.b+i]-=n*(e[3*this.a+i]-e[3*this.b+i])/P},U.a=0,U.b=0,U.c=0,U.e=0;var V9t=M(242);p(367,1,Gf,CF),U.dc=function(e,A,n,P){var r,i,f;return P&&(J(this.e,this.a)==1||J(this.e,this.b)==1)?0:(i=Mn(new F0(e,this.a,this.b)),r=i+.05,this.d&&(r*=r),f=332.0716*this.c/r*(this.f==(r9(),wi)?.75:1),f)},U.ec=function(e,A){var n,P,r,i,f;for(i=Mn(new F0(e,this.a,this.b)),n=i+.05,n*=this.d?n*n:n,P=-332.0716*(this.d?2:1)*this.c/n*(this.f==(r9(),wi)?.75:1),f=0;f<3;f++)r=.02,i>0&&(r=P*(e[3*this.a+f]-e[3*this.b+f])/i),A[3*this.a+f]+=r,A[3*this.b+f]-=r},U.a=0,U.b=0,U.c=0,U.d=!1;var E9t=M(367);p(180,282,{},iB,l6);var gl,S9t=M(180);p(283,26,MM,zR);var I9t=M(283);p(196,1,Gf,ns),U.dc=function(e,A,n,P){var r,i,f,D,Q,o;return P&&(J(this.f,this.a)==1||J(this.f,this.b)==1||J(this.f,this.c)==1)?0:(D=Nn(new F0(e,this.d,this.a)),Q=Nn(new F0(e,this.d,this.b)),o=Nn(new F0(e,this.d,this.c)),f=Nn(new BP(D.b*Q.c-D.c*Q.b,D.c*Q.a-D.a*Q.c,D.a*Q.b-D.b*Q.a)),r=Of*w.Math.asin(f.a*o.a+f.b*o.b+f.c*o.c),i=RC*this.e*r*r,i)},U.ec=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S,I;for(y=new F0(e,this.d,this.a),l=new F0(e,this.d,this.b),h=new F0(e,this.d,this.c),D=w.Math.sqrt(y.a*y.a+y.b*y.b+y.c*y.c),Q=w.Math.sqrt(l.a*l.a+l.b*l.b+l.c*l.c),o=w.Math.sqrt(h.a*h.a+h.b*h.b+h.c*h.c),y=Nn(y),l=Nn(l),h=Nn(h),s=Nn(DT(new BP(-y.a,-y.b,-y.c),l)),T=h.a*s.a+h.b*s.b+h.c*s.c,r=1-T*T,P=w.Math.max(r>0?w.Math.sqrt(r):0,vo),n=Of*w.Math.asin(T),i=y.a*l.a+y.b*l.b+y.c*l.c,v=w.Math.max(1-i*i,vo),g=w.Math.max(v>0?w.Math.sqrt(v):0,vo),f=OP*this.e*n,d=new BP(h.b*l.c-h.c*l.b,h.c*l.a-h.a*l.c,h.a*l.b-h.b*l.a),b=new BP(y.b*h.c-y.c*h.b,y.c*h.a-y.a*h.c,y.a*h.b-y.b*h.a),j=new BP(l.b*y.c-l.c*y.b,l.c*y.a-l.a*y.c,l.a*y.b-l.b*y.a),R=P*g,C=T/(P*v),E=m(k(Ut,1),Tt,6,15,[(d.a/R-(y.a-l.a*i)*C)/D,(d.b/R-(y.b-l.b*i)*C)/D,(d.c/R-(y.c-l.c*i)*C)/D]),S=m(k(Ut,1),Tt,6,15,[(b.a/R-(l.a-y.a*i)*C)/Q,(b.b/R-(l.b-y.b*i)*C)/Q,(b.c/R-(l.c-y.c*i)*C)/Q]),I=m(k(Ut,1),Tt,6,15,[(j.a/R-h.a*T/P)/o,(j.b/R-h.b*T/P)/o,(j.c/R-h.c*T/P)/o]),L=0;L<3;L++)A[3*this.a+L]+=f*E[L],A[3*this.d+L]+=-f*(E[L]+S[L]+I[L]),A[3*this.b+L]+=f*S[L],A[3*this.c+L]+=f*I[L]},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0;var x9t=M(196);p(55,1,{4:1,32:1,55:1}),U.Sb=function(e){return this.b-e.b},U.compareTo=function(e){return this.b-e.b},U.equals=function(e){return this===e},U.mb=function(t){return this.equals(t)},U.hashCode=function(){return jD(this)},U.ob=function(){return this.hashCode()},U.name=function(){return this.a!=null?this.a:\"\"+this.b},U.ordinal=function(){return this.b},U.toString=function(){return this.a!=null?this.a:\"\"+this.b},U.pb=function(){return this.toString()},U.b=0;var N9t=M(55),jE=Yr(null,uG);p(284,1,{},rR);var G9t=M(284);p(108,55,{108:1,4:1,32:1,55:1},vD);var wi,Uc,Lc,sc,Y2,N1t=Yr(108,jO);p(99,1,{99:1,32:1},zi),U.Sb=function(e){return $z(this,e)},U.mb=function(e){var A;return e===this?!0:Jt(e,99)?(A=e,this.a==A.a&&this.b==A.b):!1},U.ob=function(){return this.a^this.b},U.pb=function(){return this.a+\",\"+this.b},U.a=0,U.b=0;var O9t=M(99);p(368,1,Gf,ob),U.dc=function(e,A,n,P){var r,i,f,D,Q;return P&&(J(this.f,this.a)==1||J(this.f,this.c)==1)?0:(r=Mn(new F0(e,this.b,this.a)),i=Mn(new F0(e,this.b,this.c)),Q=Jm(new F0(e,this.b,this.a),new F0(e,this.b,this.c)),D=OP*(Q*Of-this.j),f=D*(r-this.g)*this.d+D*(i-this.i)*this.e,f)},U.ec=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g;L=Mn(new F0(e,this.b,this.a)),s=Mn(new F0(e,this.b,this.c)),l=Nn(new F0(e,this.b,this.a)),h=Nn(new F0(e,this.b,this.c)),P=l.a*h.a+l.b*h.b+l.c*h.c,g=1-P*P,T=w.Math.max(g>0?w.Math.sqrt(g):0,vo),n=Of*w.Math.acos(P)-this.j,y=Of*(this.d*(L-this.g)+this.e*(s-this.i)),r=1/L*(h.a-P*l.a),i=1/L*(h.b-P*l.b),f=1/L*(h.c-P*l.c),D=1/s*(l.a-P*h.a),Q=1/s*(l.b-P*h.b),o=1/s*(l.c-P*h.c),A[3*this.a]+=OP*(l.a*this.d*n+r/-T*y),A[3*this.a+1]+=OP*(l.b*this.d*n+i/-T*y),A[3*this.a+2]+=OP*(l.c*this.d*n+f/-T*y),A[3*this.b]+=OP*((-l.a*this.d-h.a*this.e)*n+(-r-D)/-T*y),A[3*this.b+1]+=OP*((-l.b*this.d-h.b*this.e)*n+(-i-Q)/-T*y),A[3*this.b+2]+=OP*((-l.c*this.d-h.c*this.e)*n+(-f-o)/-T*y),A[3*this.c]+=OP*(h.a*this.e*n+D/-T*y),A[3*this.c+1]+=OP*(h.b*this.e*n+Q/-T*y),A[3*this.c+2]+=OP*(h.c*this.e*n+o/-T*y)},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0,U.g=0,U.i=0,U.j=0;var q9t=M(368);p(157,1,{157:1},Is);var z9t=M(157);p(369,1,Gf,Xk),U.dc=function(e,A,n,P){var r,i,f,D,Q,o,L,s,y,l;return Q=new F0(e,this.a,this.b),o=new F0(e,this.c,this.b),L=new F0(e,this.b,this.c),s=new F0(e,this.d,this.c),y=new BP(Q.b*o.c-Q.c*o.b,Q.c*o.a-Q.a*o.c,Q.a*o.b-Q.b*o.a),l=new BP(L.b*s.c-L.c*s.b,L.c*s.a-L.a*s.c,L.a*s.b-L.b*s.a),f=(y.a*l.a+y.b*l.b+y.c*l.c)/(w.Math.sqrt(y.a*y.a+y.b*y.b+y.c*y.c)*w.Math.sqrt(l.a*l.a+l.b*l.b+l.c*l.c)),r=2*f*f-1,i=f*(2*r-1),D=.5*(this.e*(1+f)+this.f*(1-r)+this.g*(1+i)),D},U.ec=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y;f=m(k(RE,1),e0,22,0,[new F0(e,this.b,this.a),new F0(e,this.b,this.c),new F0(e,this.c,this.b),new F0(e,this.c,this.d)]),y=m(k(RE,1),e0,22,0,[DT(f[0],f[1]),DT(f[2],f[3])]),P=m(k(Ut,1),Tt,6,15,[Mn(y[0]),Mn(y[1])]),!(w.Math.abs(P[0])<Fo||w.Math.abs(P[1])<Fo)&&(y[0]=Nn(y[0]),y[1]=Nn(y[1]),n=y[0].a*y[1].a+y[0].b*y[1].b+y[0].c*y[1].c,L=1-n*n,o=L>0?w.Math.sqrt(L):0,D=2*o*n,Q=3*o-4*o*L,i=.5*(-this.e*o+2*this.f*D-3*this.g*Q),s=-i*(w.Math.abs(o)<Fo?1/n:1/o),r=m(k(Ut,1),Tt,6,15,[1/P[0]*(y[1].a-n*y[0].a),1/P[0]*(y[1].b-n*y[0].b),1/P[0]*(y[1].c-n*y[0].c),1/P[1]*(y[0].a-n*y[1].a),1/P[1]*(y[0].b-n*y[1].b),1/P[1]*(y[0].c-n*y[1].c)]),A[3*this.a]+=s*(r[2]*f[1].b-r[1]*f[1].c),A[3*this.a+1]+=s*(r[0]*f[1].c-r[2]*f[1].a),A[3*this.a+2]+=s*(r[1]*f[1].a-r[0]*f[1].b),A[3*this.b]+=s*(r[1]*(f[1].c-f[0].c)+r[2]*(f[0].b-f[1].b)+r[4]*-f[3].c+r[5]*f[3].b),A[3*this.b+1]+=s*(r[0]*(f[0].c-f[1].c)+r[2]*(f[1].a-f[0].a)+r[3]*f[3].c+r[5]*-f[3].a),A[3*this.b+2]+=s*(r[0]*(f[1].b-f[0].b)+r[1]*(f[0].a-f[1].a)+r[3]*-f[3].b+r[4]*f[3].a),A[3*this.c]+=s*(r[1]*f[0].c+r[2]*-f[0].b+r[4]*(f[3].c-f[2].c)+r[5]*(f[2].b-f[3].b)),A[3*this.c+1]+=s*(r[0]*-f[0].c+r[2]*f[0].a+r[3]*(f[2].c-f[3].c)+r[5]*(f[3].a-f[2].a)),A[3*this.c+2]+=s*(r[0]*f[0].b+r[1]*-f[0].a+r[3]*(f[3].b-f[2].b)+r[4]*(f[2].a-f[3].a)),A[3*this.d]+=s*(r[4]*f[2].c-r[5]*f[2].b),A[3*this.d+1]+=s*(r[5]*f[2].a-r[3]*f[2].c),A[3*this.d+2]+=s*(r[3]*f[2].b-r[4]*f[2].a))},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0,U.f=0,U.g=0;var K9t=M(369);p(370,1,Gf,ZR),U.dc=function(e,A,n,P){var r,i,f,D,Q,o,L,s,y,l;return P&&(J(this.g,this.a)==1||J(this.g,this.c)==1)?0:(Q=Mn(new F0(e,this.a,this.c)),o=Q*Q,L=o*o*o*Q,r=1.07*this.i/(Q+GC*this.i),i=r*r,f=i*i*i*r,y=this.i*this.i,l=y*y*y*this.i,D=1.12*l/(L+OC*l)-2,s=f*D*this.j,s)},U.ec=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l;for(r=Mn(new F0(e,this.a,this.c)),f=r/this.i,D=f*f,Q=D*D*D,o=Q*f,L=o+OC,s=1.07/(f+1.07-1),y=s*s,l=y*y*y*s,n=this.j/this.i*l*(qC*Q/(L*L)+(qC/L+14)/(f+GC)),i=0;i<3;i++)P=.01*this.i,r>0&&(P=n*(e[3*this.a+i]-e[3*this.c+i])/r),A[3*this.a+i]+=P,A[3*this.c+i]-=P},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0,U.f=0,U.i=0,U.j=0;var J9t=M(370);p(22,1,{22:1},BP,N3,C3,Wi,F0),U.mb=function(e){var A;return e===this?!0:Jt(e,22)?(A=e,w.Math.abs(this.a-A.a)<.01&&w.Math.abs(this.b-A.b)<.01&&w.Math.abs(this.c-A.c)<.01):!1},U.ob=function(){return Bt(this.a)+Bt(this.b)+Bt(this.c)},U.a=0,U.b=0,U.c=0;var RE=M(22);p(391,1,{},AF),U.lc=function(e,A){return $n(this.b[e][A])},U.mc=function(){return this.b.length};var Y9t=M(391);p(383,1,{},Lv),U.lc=function(e,A){return this.a[e][A]},U.mc=function(){return this.a.length};var X9t=M(383);p(398,1,{},sv),U.lc=function(e,A){return $n(this.a[e][A])},U.mc=function(){return this.a.length};var Z9t=M(398);p(394,1,{},eF),U.lc=function(e,A){return $n(this.b[e][A])},U.mc=function(){return this.b.length};var W9t=M(394);p(392,1,{},Dm);var _9t=M(392);p(200,1,{},iU),U.lc=function(e,A){return $n(this.a.a[e][A])},U.mc=function(){return this.a.a.length};var $9t=M(200);p(399,1,{},bv),U.lc=function(e,A){return $n(this.a[e][A])},U.mc=function(){return this.a.length};var a9t=M(399);p(401,1,{},Uv);var tit=M(401);p(400,1,{},yv),U.lc=function(e,A){return $n(this.a[e][A])},U.mc=function(){return this.a.length};var eit=M(400);p(402,1,{},vF),U.lc=function(e,A){return $n(this.a[e][A])},U.mc=function(){return this.a.length};var Ait=M(402);p(393,1,{},nd),U.lc=function(e,A){return $n(this.b[e][A])},U.mc=function(){return this.b.length};var nit=M(393);p(395,1,{},tF),U.lc=function(e,A){return $n(this.b[e][A])},U.mc=function(){return this.b.length};var Pit=M(395);p(396,1,{},Pd),U.lc=function(e,A){return $n(this.b[e][A])},U.mc=function(){return this.b.length};var rit=M(396);p(51,1,{},xU,Zn,gF),U.pb=function(){return this.a+\",\"+this.b+\",\"+this.c},U.a=0,U.b=0,U.c=0;var iit=M(51);p(397,1,{},Gv),U.lc=function(e,A){return $n(this.a[e][A])},U.mc=function(){return this.a.length};var fit=M(397);p(439,1,{});var Dit=M(439);p(287,1,{},vR),U.a=null;var Zf,uit=M(287);p(288,1,{},JR),U.a=null;var R8,Qit=M(288);p(289,439,{},uF),U.a=!1,U.e=0;var pE,oit=M(289);p(217,1,{},G7),U.b=!1,U.c=!1;var Uit=M(217);p(285,1,{},ru),U.Rb=function(e,A){return Oq(e,A)},U.mb=function(e){return this===e};var Lit=M(285);p(218,1,{},MT);var ME,yc,Wf,sit=M(218);p(280,1,{},om);var gi,dl=!1,yit=M(280);p(281,1,{},$j);var lit=M(281);p(241,1,{241:1},hg),U.b=0;var hit=M(241);p(45,1,{45:1},ae),U.b=0;var Tit=M(45);p(131,1,{},LD);var cit=M(131),CE,qP;p(286,1,{});var wit=M(286),Bl,_f;p(292,1,{},lp);var HE,So,dr,vl=!1,Br,$f,git=M(292);p(49,1,Cf,U8,Js,Kh,qT),U.c=!1,U.d=0;var dit=M(49);p(63,197,{197:1,63:1,4:1},_D,np),U.Eb=function(e,A){return this.a=Zj(this,e,A),this.a!=0},U.Fb=function(){this.a=0},U.Gb=function(){var e;return e=new _D,e.i[0].a=this.i[0].a,e.i[0].b=this.i[0].b,e.i[1].a=this.i[1].a,e.i[1].b=this.i[1].b,e.g=this.g,e},U.Hb=function(e,A){return Zj(this,e,A)!=0},U.Ib=function(e,A){var n,P,r,i,f,D,Q;nA(e,this.g?as(QP,k3(e)):xB(e)),i=A?W1(A,this.i[0].a):this.i[0].a,D=A?Z1(A,this.i[0].b):this.i[0].b,f=A?W1(A,this.i[1].a):this.i[1].a,Q=A?Z1(A,this.i[1].b):this.i[1].b,n=f-i,P=Q-D,PL(e,w.Math.max(1,.019999999552965164*w.Math.sqrt(n*n+P*P))),Z9(e,i,D,f,Q),r=new WD(4),Ie(r,f+n/40,Q+P/40),Ie(r,f-n/5+P/10,Q-P/5-n/10),Ie(r,f-n/20,Q-P/20),Ie(r,f-n/5-P/10,Q-P/5+n/10),nL(e,new uD(r))},U.Jb=function(e){var A,n,P,r,i,f;return f=FT(this),i=w.Math.max(f/8,3),A=pA(this.i[0].a,this.i[0].b,this.i[1].a,this.i[1].b),P=w.Math.abs(i*w.Math.cos(A)),r=w.Math.abs(i*w.Math.sin(A)),n=new iD,this.i[0].a<this.i[1].a?(n.c=this.i[0].a-P,n.b=this.i[1].a-this.i[0].a+2*P):(n.c=this.i[1].a-P,n.b=this.i[0].a-this.i[1].a+2*P),this.i[0].b<this.i[1].b?(n.d=this.i[0].b-r,n.a=this.i[1].b-this.i[0].b+2*r):(n.d=this.i[1].b-r,n.a=this.i[0].b-this.i[1].b+2*r),n},U.Kb=function(){var e;return e=new M0,G(e,' x1=\"'+this.i[0].a+'\"'),G(e,' y1=\"'+this.i[0].b+'\"'),G(e,' x2=\"'+this.i[1].a+'\"'),G(e,' y2=\"'+this.i[1].b+'\"'),e.a},U.Lb=function(){return\"arrow\"},U.Mb=function(e){var A,n,P,r,i,f;switch(nA(e,KD(e)),this.a){case 1:lL(e,this.i[0].a-8,this.i[0].b-8,16);break;case 2:lL(e,this.i[1].a-8,this.i[1].b-8,16);break;case 3:i=FT(this),r=w.Math.max(i/8,3),A=pA(this.i[0].a,this.i[0].b,this.i[1].a,this.i[1].b),n=r*w.Math.cos(A),P=-r*w.Math.sin(A),f=new WD(4),Ie(f,this.i[0].a+n,this.i[0].b+P),Ie(f,this.i[1].a+n,this.i[1].b+P),Ie(f,this.i[1].a-n,this.i[1].b-P),Ie(f,this.i[0].a-n,this.i[0].b-P),nL(e,new uD(f))}},U.Ob=function(e,A){switch(this.a){case 1:this.i[0].a=this.o[0]+e-this.k,this.i[0].b=this.p[0]+A-this.n;break;case 2:this.i[1].a=this.o[1]+e-this.k,this.i[1].b=this.p[1]+A-this.n;break;default:bk(this,e,A)}},U.a=0;var Bit=M(63);p(219,1,{},O7),U.a=!1,U.b=!1,U.i=0,U.j=0,U.q=0,U.r=!1,U.t=!1;var vit=M(219);p(293,1,{},ep);var Fit=M(293);p(185,1,{185:1,32:1},M5),U.Sb=function(e){return Jq(this,e)},U.mb=function(e){return this.d==e.d&&this.e==e.e},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0,U.f=0,U.g=0;var kit=M(185);p(98,55,{98:1,4:1,32:1,55:1},Ei);var Fl,kl,ml,Io,bl,jl,G1t=Yr(98,RO);p(203,1,{203:1},$p),U.b=!1,U.e=0;var O1t=M(203);p(149,1,{149:1,32:1},os),U.Sb=function(e){return _z(this,e)},U.a=0,U.b=0,U.c=0,U.d=0,U.e=0;var q1t=M(149);p(307,1,{},V7),U.b=0,U.c=0;var xo,Rl,mit=M(307);p(206,1,{},vU);var bit=M(206);p(422,1,{},YR),U.b=0,U.g=0;var jit=M(422);p(205,1,{205:1},rT),U.a=0;var Rit=M(205);p(124,1,{124:1,32:1},FD),U.Sb=function(e){return this.b<e.b?-1:this.b>e.b?1:this.a<e.a?-1:this.a>e.a?1:0},U.a=0,U.b=0;var pit=M(124);p(421,1,{},Fd);var Mit=M(421);p(173,1,{173:1},nh),U.b=0,U.c=0,U.d=!1;var z1t=M(173);p(420,1,{},_R),U.a=0,U.c=0,U.d=0,U.e=0,U.f=0,U.g=0,U.n=0,U.o=0,U.p=!1,U.q=0,U.r=0,U.s=0,U.K=0;var Cit=M(420);p(418,1,{},lj);var Hit=M(418);p(417,1,{},eu),U.a=0,U.b=0,U.c=0,U.q=0;var Vit=M(417);p(300,1,qf,dm),U.nc=function(e){qZ(this,e)},U.a=0,U.B=!1,U.C=0;var VE,EE,di,Eit=M(300);p(386,1,{},Tg),U.oc=function(){EI(this.a,this.b)};var Sit=M(386);p(302,1,qf,pm),U.nc=function(e){pZ(this,e)},U.a=0,U.t=0,U.v=!1;var Iit=M(302);p(412,1,{},cg),U.oc=function(){SI(this.a,this.b)};var xit=M(412);p(225,1,qf,fm,Bb),U.nc=function(e){_J(this,e)},U.a=0,U.f=!1,U.g=0,U.i=0,U.j=0,U.k=0;var SE,Nit=M(225);p(413,1,{},wg),U.oc=function(){II(this.a,this.b)};var Git=M(413);p(346,1,{});var Oit=M(346);p(165,346,{}),U.j=0;var qit=M(165);p(24,165,{24:1},x1),U.a=!1;var zit=M(24);p(294,1,qf,pR),U.nc=function(e){var A;Jt(e,140)?utt((A=this,A)):Jt(e,159)?w1t(this,e):Jt(e,137)&&U1t(this,e)},U.a=!1,U.b=!1,U.c=0,U.d=!1,U.e=0,U.f=0,U.g=!1,U.q=0,U.s=0,U.t=0,U.u=0,U.w=0,U.B=0,U.C=0,U.D=0,U.F=0,U.H=0,U.J=0,U.K=0,U.N=0,U.O=!1,U.T=0,U.U=0,U.W=!1,U.X=0,U.Y=0,U.Z=!1,U.$=0,U.ab=0,U.eb=0,U.fb=0,U.hb=0,U.ib=0,U.kb=0,U.lb=0;var No=!0,Kit=M(294);p(301,1,{},e7);var Jit=M(301);p(303,1,{},A7);var Yit=M(303);p(304,1,{},Kd),U.b=0;var Xit=M(304);p(305,1,{},nU),U.oc=function(){};var Zit=M(305);p(306,1,{},n7),U.oc=function(){NB(this.a)};var Wit=M(306);p(309,1,{},Jd);var _it=M(309);p(310,1,{268:1},Yd),U.pc=function(){Zq(this.a,this.c,this.b)},U.c=0;var $it=M(310);p(311,1,{},gg),U.Rb=function(e,A){return MK(this.a,this.b,e,A)},U.mb=function(e){return this===e};var ait=M(311);p(312,1,qf,Hj),U.nc=function(e){y6(this,e)},U.b=0,U.d=0,U.e=0,U.f=0,U.j=0,U.k=0,U.o=0;var p8=0,vn=0,tft=M(312);p(314,1,{},dg),U.oc=function(){GI(this.a,this.b)},U.b=0;var eft=M(314);p(308,1,qf,Ev),U.nc=function(e){EX(this,e)};var IE,pl,xE,Aft=M(308);p(419,1,{},P7),U.oc=function(){Ux(this.a)};var nft=M(419);p(140,165,{140:1},JU),U.a=0;var Pft=M(140),NE,GE,af,OE;p(105,122,{122:1,105:1},mu),U.qb=function(e){Z9(this.B,e.a,e.c,e.b,e.d)},U.rb=function(e){bO(this.B,e.a,e.c,e.b,e.d)},U.sb=function(e){nL(this.B,new uD(e))},U.tb=function(e,A,n){J3(this.B,A,n,e)},U.ub=function(e,A,n){lL(this.B,e,A,n)},U.vb=function(e){return As(this.B,e).b},U.wb=function(){return this.b},U.xb=function(){pk(this),this.a=1},U.Ab=function(e){this.a=e,PL(this.B,this.a)},U.Bb=function(e){nA(this.B,e)},U.Cb=function(e){this.b=e,this.B&&UL(this.B,e,!1,!1)},U.a=0,U.b=0;var qE=M(105);p(226,1,{});var rft=M(226);p(159,165,{159:1},OB),U.a=!1,U.b=0;var ift=M(159);p(137,165,{137:1},NT),U.pb=function(){return zE[this.j]+\" x:\"+this.g+\" y:\"+this.i+\" button:\"+this.b+\" clicks:\"+this.c+(this.f?\" shift\":\"\")+(this.d?\" ctrl\":\"\")+(this.a?\" alt\":\"\")+\" isPopup:\"+(this.e?\"y\":\"n\")},U.a=!1,U.b=0,U.c=0,U.d=!1,U.e=!1,U.f=!1,U.g=0,U.i=0;var zE,fft=M(137);p(56,1,{56:1},ce,Eh),U.pb=function(){return\"x:\"+this.a+\" y:\"+this.b},U.a=0,U.b=0;var lc=M(56);p(119,1,{427:1},QF,WD),U.Hb=function(e,A){var n,P,r;for(r=!1,P=this.a-1,n=0;n<this.a;n++)this.c[n]>A!=this.c[P]>A&&e<(this.b[P]-this.b[n])*(A-this.c[n])/(this.c[P]-this.c[n])+this.b[n]&&(r=!r),P=n;return r},U.a=0;var Dft=M(119);p(36,1,{36:1,427:1},iD,lA),U.Hb=function(e,A){return W9(this,e,A)},U.pb=function(){return\"x:\"+this.c+\" y:\"+this.d+\" w:\"+this.b+\" h:\"+this.a},U.a=0,U.b=0,U.c=0,U.d=0;var Ml=M(36),Re=-1,KE,hc;p(424,1,{},cd),U.getCanMolecule=function(e){var A;return A=ga(this.a,e),new sA(A)},U.getEncodedCoordinates=function(e){return zu(this.a,e)},U.getEncodedMapping=function(){return cB(this.a)},U.getFinalRank=function(){return this.a.f},U.getGraphAtoms=function(){return yx(this.a)},U.getGraphIndexes=function(){return lx(this.a)},U.getIDCode=function(){return Me(this.a)},U.getSymmetryRank=function(e){return KU(this.a,e)},U.getSymmetryRanks=function(){return this.a.g},U.hasCIPParityDistinctionProblem=function(){return this.a.d},U.invalidateCoordinates=function(){this.a.s=null},U.normalizeEnantiomer=function(){return WR(this.a)},U.setParities=function(){h6(this.a)};var uft=M(424);p(428,1,{},Tw);var K1t=2,J1t=0,Y1t=1,X1t=4,Z1t=3,Qft=M(428);p(429,1,{},gd),U.getConformerCount=function(){return this.a.p},U.getNextConformerAsMolecule=function(e){var A,n;return A=e?e.a:null,n=HG(this.a,A),n?n==A?e:new sA(n):null},U.getOneConformerAsMolecule=function(e){var A;return A=NG(this.a,e.a),A?e:null},U.getPotentialConformerCount=function(){return Kx(this.a)},U.rc=function(e,A,n,P){return wW(this.a,e.a,A,n,P)},U.initializeConformers=function(e,A){A===void 0&&(A={});var n=A.strategy;n===void 0&&(n=3);var P=A.maxTorsionSets;P===void 0&&(P=Ny);var r=A.use60degreeSteps;return r===void 0&&(r=!1),this.rc(e,n,P,r)};var W1t=4,_1t=3,$1t=1,a1t=2,oft=M(429);p(430,1,{},cw);var Uft=M(430);p(431,1,{},Og),U.assessDruglikeness=function(e){var A;return q$(this.a,(A=e.a,!Hl&&(Hl=new $l),A))},U.getDetail=function(){var e;return e=this.a.a,!e&&CO(),hQ(e)},U.getDruglikenessString=function(e){return QZ(e.a)};var t0t=-999,Lft=M(431);p(432,1,{},Dv),U._minimise=function(e,A,n){return Fj(this.a,e,A)},U.getTotalEnergy=function(){return hx(this.a)},U.size=function(){return this.a.b.r};var e0t=V4,A0t=E4,n0t=Yy,JE=!1,YE=!1,XE=!1,sft=M(432);p(433,1,{},Wd),U.getAllCommonSubstructures=function(){var e,A,n,P,r;if(A=GY(this.a),!A)return null;for(n=c(Cl,ul,39,A.b,0,1),e=0,r=vQ(A,0);r.b!=r.d.c;)P=BL(r),n[e++]=new sA(P);return n},U.getMCS=function(){var e;return e=Iz(this.a),e?new sA(e):null},U.getScore=function(){return Cq(this.a)},U.set=function(e,A){WK(this.a,e.a,A.a)};var yft=M(433);p(39,1,{39:1},Zd,LL,sA),U.addAtom=function(e){return i9(this.a,e)},U.addBond=function(e,A){return QL(this.a,e,A)},U.addFragment=function(e,A,n){mR(this.a,e.a,A,n)},U.sc=function(){kO(this.a)},U.tc=function(e){AM(this.a,e)},U.addImplicitHydrogens=function(e){e===void 0?this.sc():this.tc(e)},U.uc=function(){HU(),N5(this.a,1)},U.vc=function(e){N5(this.a,e)},U.addMissingChirality=function(e){e===void 0?this.uc():this.vc(e)},U.addMolecule=function(e){return CD(this.a,e.a)},U.addOrChangeAtom=function(e,A,n,P,r,i,f){return U5(this.a,e,A,n,P,r,i,f)},U.addOrChangeBond=function(e,A,n){return rj(this.a,e,A,n)},U.addRing=function(e,A,n,P,r){return wf(this.a,e,A,n,P,r)},U.addRingToAtom=function(e,A,n,P){return UR(this.a,e,A,n,P)},U.addRingToBond=function(e,A,n,P){return $Q(this.a,e,A,n,P)},U.addSubstituent=function(e,A){return ty(this.a,e.a,A)},U.calculateTorsion=function(e){return YQ(this.a,e)},U.canonizeCharge=function(e){return Kp(this.a,e,!1)},U.center=function(){Wz(this.a)},U.changeAtom=function(e,A,n,P,r){return mf(this.a,e,A,n,P,r)},U.changeAtomCharge=function(e,A){return pT(this.a,e,A)},U.changeBond=function(e,A){return h8(this.a,e,A)},U.clear=function(){Ri(this.a)},U.convertStereoBondsToSingleBonds=function(e){X5(this.a,e)},U.copyAtom=function(e,A,n,P){return Gn(this.a,e.a,A,n,P)},U.copyBond=function(e,A,n,P,r,i){return TQ(this.a,e.a,A,n,P,r,i)},U.copyMolecule=function(e){Uf(this.a,e.a)},U.copyMoleculeByAtoms=function(e,A,n,P){L9(this.a,e.a,A,n,P)},U.copyMoleculeByBonds=function(e,A,n,P){return wp(this.a,e.a,A,n,P)},U.copyMoleculeProperties=function(e){SU(this.a,e.a)},U.deleteAtom=function(e){RQ(this.a,e)},U.deleteAtomOrBond=function(e,A){return xb(this.a,e,A)},U.deleteAtoms=function(e){return cK(this.a,e)},U.deleteBond=function(e){DN(this.a,e)},U.deleteBondAndSurrounding=function(e){h5(this.a,e)},U.deleteMarkedAtomsAndBonds=function(){return ui(this.a)},U.deleteMolecule=function(){Ri(this.a)},U.deleteSelectedAtoms=function(){return LQ(this.a)},U.ensureHelperArrays=function(e){ut(this.a,e)},U.findAlleneCenterAtom=function(e){return Ob(this.a,e)},U.findAlleneEndAtom=function(e,A){return ak(this.a,e,A)},U.findAtom=function(e,A){return en(this.a,e,A)},U.findBINAPChiralityBond=function(e){return gs(this.a,e)},U.findBond=function(e,A){return kf(this.a,e,A)},U.findRingSystem=function(e,A,n,P){Oj(this.a,e,A,n,P)},U.getAbsoluteAtomParity=function(e){return Mh(this.a,e)},U.getAbsoluteBondParity=function(e){return Rx(this.a,e)},U.getAllAtoms=function(){return this.a.r},U.getAllBonds=function(){return this.a.s},U.getAllConnAtoms=function(e){return Ct(this.a,e)},U.getAllConnAtomsPlusMetalBonds=function(e){return Ue(this.a,e)},U.getAllHydrogens=function(e){return $d(this.a,e)},U.getAromaticRingCount=function(){return Hq(this.a)},U.getAtomAbnormalValence=function(e){return G9(this.a,e)},U.getAtomCIPParity=function(e){return qU(this.a,e)},U.getAtomCharge=function(e){return R1(this.a,e)},U.getAtomColor=function(e){return wu(this.a,e)},U.getAtomCustomLabel=function(e){return eP(this.a,e)},U.getAtomESRGroup=function(e){return OA(this.a,e)},U.getAtomESRType=function(e){return fe(this.a,e)},U.getAtomLabel=function(e){return Vi(this.a,e)},U.getAtomList=function(e){return IA(this.a,e)},U.getAtomListString=function(e){return s5(this.a,e)},U.getAtomMapNo=function(e){return M1(this.a,e)},U.getAtomMass=function(e){return we(this.a,e)},U.getAtomParity=function(e){return B0(this.a,e)},U.getAtomPi=function(e){return t0(this.a,e)},U.getAtomPreferredStereoBond=function(e){return lF(this.a,e)},U.getAtomQueryFeaturesObject=function(e){return qtt(this.a,e)},U.getAtomRadical=function(e){return jA(this.a,e)},U.getAtomRingBondCount=function(e){return W3(this.a,e)},U.getAtomRingCount=function(e,A){return r6(this.a,e,A)},U.getAtomRingSize=function(e){return Or(this.a,e)},U.getAtomX=function(e){return mt(this.a,e)},U.getAtomY=function(e){return Rt(this.a,e)},U.getAtomZ=function(e){return oA(this.a,e)},U.getAtomicNo=function(e){return J(this.a,e)},U.getAtoms=function(){return this.a.g},U.getAverageBondLength=function(e){return JL(this.a,e)},U.getAverageTopologicalAtomDistance=function(){return ZZ(this.a)},U.getBond=function(e,A){return o1(this.a,e,A)},U.getBondAngle=function(e,A){return _0(this.a,e,A)},U.getBondAtom=function(e,A){return q(this.a,e,A)},U.getBondBridgeMaxSize=function(e){return H3(this.a,e)},U.getBondBridgeMinSize=function(e){return t3(this.a,e)},U.getBondCIPParity=function(e){return bu(this.a,e)},U.getBondESRGroup=function(e){return ef(this.a,e)},U.getBondESRType=function(e){return gP(this.a,e)},U.getBondLength=function(e){return ET(this.a,e)},U.getBondOrder=function(e){return dt(this.a,e)},U.getBondParity=function(e){return ze(this.a,e)},U.getBondPreferredStereoBond=function(e){return jY(this.a,e)},U.getBondQueryFeatures=function(e){return ie(this.a,e)},U.getBondQueryFeaturesObject=function(e){return H$(this.a,e)},U.getBondRingSize=function(e){return z9(this.a,e)},U.getBondType=function(e){return c1(this.a,e)},U.getBondTypeSimple=function(e){return cu(this.a,e)},U.getBonds=function(){return this.a.i},U.getBounds=function(){var e;return e=vj(this.a,tS),e?pG(e.c,e.d,e.b,e.a):null},U.getCanonizedIDCode=function(e){var A;return A=new qA(this.a,e),Me(A)},U.getCenterOfGravity=function(){var e;return e=Rz(this.a),e?$h(e.a,e.b,e.c):$h(0,0,0)},U.getChiralText=function(){return QR(this.a)},U.getChirality=function(){return this.a.J},U.getCompactCopy=function(){return new sA(an(this.a))},U.getConnAtom=function(e,A){return Z(this.a,e,A)},U.getConnAtoms=function(e){return N(this.a,e)},U.getConnBond=function(e,A){return Nt(this.a,e,A)},U.getConnBondOrder=function(e,A){return EA(this.a,e,A)},U.getCoordinates=function(e){return $h(mt(this.a,e),Rt(this.a,e),oA(this.a,e))},U.getDefaultMaxValenceUncharged=function(e){return Iq(this.a,e)},U.getDiastereotopicAtomIDs=function(){return AX(this.a)},U.getElectronValenceCorrection=function(e,A){return Cu(this.a,e,A)},U.getExcludedNeighbourCount=function(e){return XL(this.a,e)},U.getExplicitHydrogens=function(e){return qh(this.a,e)},U.getFinalRanks=function(e){var A;return A=new qA(this.a,e),A.f},U.getFisherProjectionParity=function(e,A,n,P){return _5(this.a,e,A,n,P)},U.getFragmentAtoms=function(e,A){return xm(this.a,e,A)},U.getFragmentNumbers=function(e,A,n){return Ur(this.a,e,A,n)},U.getFragments=function(){var e,A,n;for(e=mq(this.a),n=c(Cl,ul,39,e.length,0,1),A=0;A<e.length;A++)n[A]=new sA(e[A]);return n},U.getFreeValence=function(e){return _i(this.a,e)},U.getHandleHydrogenMap=function(){return Tu(this.a)},U.getHelperArrayStatus=function(){return this.a.U},U.getHoseCodes=function(e){e=e||{};var A=(typeof e.maxSphereSize===mo?5:e.maxSphereSize)|0,n=(typeof e.type===mo?0:e.type)|0;return BK(this.a,A,n)},U.getIDCode=function(){var e;return e=Pk(this.a),e==null&&(e=Me(new bA(this.a))),e},U.getIDCodeAndCoordinates=function(){return{idCode:this.getIDCode(),coordinates:this.getIDCoordinates()}},U.getIDCoordinates=function(){var e;return e=yz(this.a),e==null&&(e=a7(new bA(this.a))),e},U.getImplicitHigherValence=function(e,A){return sf(this.a,e,A)},U.getImplicitHydrogens=function(e){return xt(this.a,e)},U.getIndex=function(){return $N(this.a)},U.getLowestFreeValence=function(e){return yf(this.a,e)},U.getMaxAtoms=function(){return this.a.N},U.getMaxBonds=function(){return this.a.O},U.getMaxValence=function(e){return p3(this.a,e)},U.getMaxValenceUncharged=function(e){return Sn(this.a,e)},U.getMetalBondedConnAtoms=function(e){return qi(this.a,e)},U.getMolecularFormula=function(){return new Mg(this.a)},U.getMoleculeColor=function(){return this.a.P},U.getMolweight=function(){return bY(this.a)},U.getName=function(){return this.a.Q},U.getNonHydrogenNeighbourCount=function(e){return n0(this.a,e)},U.getNumberOfHydrogens=function(){return tK(this.a)},U.getOccupiedValence=function(e){return G1(this.a,e)},U.getPath=function(e,A,n,P,r){return B2(this.a,e,A,n,P,null,r)},U.getPathBonds=function(e,A,n){hm(this.a,e,A,n)},U.getPathLength=function(e,A){return H5(this.a,e,A)},U.getRingSet=function(){return new r7(kn(this.a))},U.getRotatableBondCount=function(){return nR(this.a)},U.getStereoBond=function(e){return NQ(this.a,e)},U.getStereoCenterCount=function(){return WF(this.a)},U.wc=function(){return this.a},U.getStereoProblem=function(e){return Ud(this.a,e)},U.getSubstituent=function(e,A,n,P,r){return JQ(this.a,e,A,n,P.a,r)},U.getSubstituentSize=function(e,A){return V5(this.a,e,A)},U.getSymmetryRank=function(e){return C0(this.a,e)},U.getZNeighbour=function(e,A){return ER(this.a,e,A)},U.invalidateHelperArrays=function(e){HI(this.a,e)},U.xc=function(e,A){var n;n=new a8(e),A>=0&&Z7(n,A),U9(n,this.a),hf(this.a)},U.inventCoordinates=function(e){e=e||{};var A=0;e.skipDefaultTemplates&&(A|=1),e.keepHydrogens!==!0&&(A|=2),e.keepMarkedAtomCoordinates&&(A|=4),e.preferMarkedAtomCoordinates&&(A|=8);var n=e.seed||0;this.xc(A,n)},U.is3D=function(){return tQ(this.a)},U.isAlkaliMetal=function(e){return Aq(this.a,e)},U.isAllylicAtom=function(e){return nN(this.a,e)},U.isAmideTypeBond=function(e){return qX(this.a,e)},U.isAromaticAtom=function(e){return mn(this.a,e)},U.isAromaticBond=function(e){return eA(this.a,e)},U.isAtomConfigurationUnknown=function(e){return E9(this.a,e)},U.isAtomMarkedForDeletion=function(e){return Vx(this.a,e)},U.isAtomParityPseudo=function(e){return xi(this.a,e)},U.isAtomStereoCenter=function(e){return O8(this.a,e)},U.isAutoMappedAtom=function(e){return Fn(this.a,e)},U.isBINAPChiralityBond=function(e){return oi(this.a,e)},U.isBondBackgroundHilited=function(e){return Xh(this.a,e)},U.isBondBridge=function(e){return Ru(this.a,e)},U.isBondForegroundHilited=function(e){return V9(this.a,e)},U.isBondMarkedForDeletion=function(e){return Gx(this.a,e)},U.isBondParityPseudo=function(e){return pU(this.a,e)},U.isBondParityUnknownOrNone=function(e){return Zh(this.a,e)},U.isChalcogene=function(e){return $3(this.a,e)},U.isDelocalizedBond=function(e){return Z8(this.a,e)},U.isEarthAlkaliMetal=function(e){return nq(this.a,e)},U.isElectronegative=function(e){return rA(this.a,e)},U.isElectropositive=function(e){return KY(this.a,e)},U.isFlatNitrogen=function(e){return xP(this.a,e,!0)},U.isFragment=function(){return this.a.L},U.isHalogene=function(e){return xO(this.a,e)},U.isMarkedAtom=function(e){return W0(this.a,e)},U.isMetalAtom=function(e){return ee(this.a,e)},U.isNaturalAbundance=function(e){return hu(this.a,e)},U.isNitrogenFamily=function(e){return R3(this.a,e)},U.isOrganicAtom=function(e){return Lj(this.a,e)},U.isPseudoRotatableBond=function(e){return Sj(this.a,e)},U.isPurelyOrganic=function(){return MX(this.a)},U.isRingAtom=function(e){return Gi(this.a,e)},U.isRingBond=function(e){return LA(this.a,e)},U.isSelectedAtom=function(e){return r0(this.a,e)},U.isSelectedBond=function(e){return bP(this.a,e)},U.isSimpleHydrogen=function(e){return lz(this.a,e)},U.isSmallRingAtom=function(e){return MU(this.a,e)},U.isSmallRingBond=function(e){return A8(this.a,e)},U.isStabilizedAtom=function(e){return PN(this.a,e)},U.isStereoBond=function(e){return q9(this.a,e)},U.markAtomForDeletion=function(e){B7(this.a,e)},U.markBondForDeletion=function(e){JI(this.a,e)},U.normalizeAmbiguousBonds=function(){return Li(this.a)},U.removeAtomColors=function(){dB(this.a)},U.removeAtomCustomLabels=function(){this.a.u=null},U.removeAtomMarkers=function(){l3(this.a)},U.removeAtomSelection=function(){sG(this.a)},U.removeBondHiliting=function(){VB(this.a)},U.removeExplicitHydrogens=function(){q5(this.a,!0)},U.removeQueryFeatures=function(){return pj(this.a)},U.renumberESRGroups=function(e){return Ae(this.a,e)},U.rotate=function(e){jG(new $w(e),this.a)},U.scaleCoords=function(e){wv(this.a,e)},U.setAllAtoms=function(e){XI(this.a,e)},U.setAllBonds=function(e){ZI(this.a,e)},U.setAssignParitiesToNitrogen=function(e){Fx(this.a,e)},U.setAtomAbnormalValence=function(e,A){tn(this.a,e,A)},U.setAtomCIPParity=function(e,A){eB(this.a,e,A)},U.setAtomCharge=function(e,A){m0(this.a,e,A)},U.setAtomColor=function(e,A){RD(this.a,e,A)},U.setAtomConfigurationUnknown=function(e,A){iL(this.a,e,A)},U.setAtomCustomLabel=function(e,A){IP(this.a,e,A)},U.setAtomESR=function(e,A,n){Ne(this.a,e,A,n)},U.setAtomList=function(e,A,n){gf(this.a,e,A,n)},U.setAtomMapNo=function(e,A,n){tA(this.a,e,A,n)},U.setAtomMarker=function(e,A){_n(this.a,e,A)},U.setAtomMass=function(e,A){O9(this.a,e,A)},U.setAtomParity=function(e,A,n){ke(this.a,e,A,n)},U.setAtomQueryFeature=function(e,A,n){w1(this.a,e,A,n)},U.setAtomRadical=function(e,A){Je(this.a,e,A)},U.setAtomSelection=function(e,A){vP(this.a,e,A)},U.setAtomX=function(e,A){ge(this.a,e,A)},U.setAtomY=function(e,A){Ve(this.a,e,A)},U.setAtomZ=function(e,A){Xn(this.a,e,A)},U.setAtomicNo=function(e,A){$0(this.a,e,A)},U.setBondAtom=function(e,A,n){mD(this.a,e,A,n)},U.setBondBackgroundHiliting=function(e,A){UG(this.a,e,A)},U.setBondCIPParity=function(e,A){Gd(this.a,e,A)},U.setBondESR=function(e,A,n){T8(this.a,e,A,n)},U.setBondForegroundHiliting=function(e,A){LG(this.a,e,A)},U.setBondOrder=function(e,A){F3(this.a,e,A)},U.setBondParity=function(e,A,n){Q8(this.a,e,A,n)},U.setBondParityUnknownOrNone=function(e){hh(this.a,e)},U.setBondQueryFeature=function(e,A,n){Xe(this.a,e,A,n)},U.setBondType=function(e,A){w0(this.a,e,A)},U.setChirality=function(e){Ah(this.a,e)},U.setCoordinates=function(e,A){ge(this.a,e,A.x),Ve(this.a,e,A.y),Xn(this.a,e,A.z)},U.setFragment=function(e){Be(this.a,e)},U.setHelperValidity=function(e){gI(this.a,e)},U.setHydrogenProtection=function(e){dI(this.a,e)},U.setMaxAtoms=function(e){EQ(this.a,e)},U.setMaxBonds=function(e){oQ(this.a,e)},U.setMoleculeColor=function(e){BI(this.a,e)},U.setName=function(e){iu(this.a,e)},U.setParitiesValid=function(e){TD(this.a,e)},U.setStereoBondFromAtomParity=function(e){Uy(this.a,e)},U.setStereoBondFromBondParity=function(e){bp(this.a,e)},U.setStereoBondsFromParity=function(){hf(this.a)},U.setToRacemate=function(){this.a.M=!0},U.setUnknownParitiesToExplicitlyUnknown=function(){Yh(this.a)},U.shareSameFragment=function(e,A){return H5(this.a,e,A)!=-1},U.stripIsotopInfo=function(){return zK(this.a)},U.stripSmallFragments=function(e){return A6(this.a,e)},U.stripStereoInformation=function(){Ms(this.a)},U.suggestBondType=function(e,A){return JN(this.a,e,A)},U.supportsImplicitHydrogen=function(e){return Ds(this.a,e)},U.swapAtoms=function(e,A){i6(this.a,e,A)},U.swapBonds=function(e,A){d5(this.a,e,A)},U.toIsomericSmiles=function(e){e=e||{};var A=e.createSmarts===!0,n=e.includeMapping===!0,P=e.kekulizedOutput===!0;return this.yc(A,n,P)},U.yc=function(e,A,n){return bF(this,e,A,n)},U.toMolfile=function(){var e;return e=new Jh(this.a),e.a.a},U.toMolfileV3=function(){var e;return e=new Qd(this.a),e.b.a},U.toSVG=function(e,A,n,P,r,i,f){var D,Q,o,L,s,y,l,h,T,g,v,d;for(o=!0,s=0;s<this.a.r-1;s++)if(mt(this.a,s)!=mt(this.a,s+1)||Rt(this.a,s)!=Rt(this.a,s+1)){o=!1;break}return y=o?an(this.a):this.a,o&&U9(new a8(0),y),ut(y,95),d=B$(f),L=ha(f),Q=new vb(y,L,i),Q.J=n,w2(Q,null,new lA(0,0,e,A),d),D=Q.v,T6(Q,null),v=pp(Q),P?(h=Ot(E1(w.Math.round(D.b+r*2))),l=Ot(E1(w.Math.round(D.a+r*2))),T=Ot(E1(w.Math.round(D.c-r))),g=Ot(E1(w.Math.round(D.d-r))),z3(v,'width=\"\\\\d+px\" height=\"\\\\d+px\" viewBox=\"0 0 \\\\d+ \\\\d+\"','width=\"'+h+'px\" height=\"'+l+'px\" viewBox=\"'+T+\" \"+g+\" \"+h+\" \"+l+'\"')):v},U.toSmarts=function(){return Eu(new dD(this.a,1))},U.toSmiles=function(){return bF(this,!1,!1,!0)},U.translate=function(e){nO(this.a,e.x,e.y,e.z)},U.translateCoords=function(e,A){OL(this.a,e,A)},U.validate=function(){F$(this.a)},U.zoomAndRotate=function(e,A,n){sb(this.a,e,A,n)},U.zoomAndRotateInit=function(e,A){Nb(this.a,e,A)};var P0t=32,r0t=2,i0t=4,f0t=6,D0t=64,u0t=128,Q0t=1,o0t=256,U0t=8,L0t=ue,s0t=16,y0t=q1,l0t=512,h0t=fE,T0t=24,c0t=fE,ZE,w0t=D4,g0t=i4,d0t=f4,B0t=0,v0t=3,F0t=1,k0t=2,m0t=64,b0t=384,j0t=448,R0t=192,p0t=256,M0t=0,C0t=320,H0t=128,WE,V0t=1,E0t=2,S0t=4,I0t=0,x0t=3,N0t=1,G0t=my,O0t=2,q0t=1,z0t=2,K0t=yr,J0t=3,Y0t=25,X0t={l:4186111,m:4193407,h:127},Z0t=5,W0t=39,_0t=xf,$0t=ne,a0t=d9,tet=Po,eet=uP,Aet=4,net=7,Pet=no,ret=Ao,iet=be,fet=E0,Det={l:4194302,m:4193343,h:7},uet=5,Qet=17,oet=hi,Uet=l9,Let=7,set=32,yet=q1,het=46,Tet=p2,cet=128,wet=O0,get=On,det=mM,Bet=256,vet=v8,Fet=g8,ket=bM,met=512,bet=B8,jet=Q0,Ret=16,pet=jM,Met=ue,Cet=F8,Het=32,Vet=Do,Eet=KA,Iet=64,xet=4,Net=8,Get=wn,Oet=Uo,qet=134217728,zet=3,Ket=14,Jet=li,Yet=w8,Xet=h9,Zet=T9,Wet=c9,_et=w9,$et=g9,aet=Vf,tAt=120,eAt=4,AAt=3,nAt=2,PAt=k8,rAt=ko,iAt=k8,fAt=dn,DAt=30,uAt=A4,QAt=lr,oAt=3,UAt=22,LAt=Z6,sAt=2,yAt=44,lAt=48,hAt=32,TAt=0,cAt=16,wAt=4,gAt=48,_E,dAt=1,BAt=0,vAt=3,FAt=2,kAt=1,mAt=0,bAt=3,jAt=2,RAt=yi,pAt=oo,MAt=2,CAt=21,HAt=KA,VAt=31,EAt=5,SAt=0,IAt=d8,xAt=8,NAt=7680,GAt=4,OAt=9,qAt=9,zAt=Ry,KAt=4,JAt=13,YAt=8,XAt=8388480,ZAt=2,WAt=Nf,_At=F8,$At=16,aAt=6291840,tnt=23,ent=oP,Ant=128,nnt=32,Pnt=64,rnt=96,int=2,fnt=5,Dnt=256,unt=NP,Qnt=3,ont=17,Unt=384,Lnt=2,snt=7,ynt=6291967,lnt=1,hnt=4,Tnt=386,cnt=512,wnt=8,gnt=2,dnt=129,Bnt=511,vnt=127,Fnt=384,knt=16,mnt=32,bnt=64,jnt=1,Rnt=4,pnt=257,Mnt=458752,Cnt=Ti,Hnt=d1,Vnt=v8,Ent=O0,Snt=Q0,Int=ky,xnt=0,Nnt=327680,$E,Gnt=24,Ont=321,qnt=6,znt=5,Knt=32,Jnt=0,Ynt=1,Xnt=2,Znt=255,Wnt=16,_nt=128,$nt=1,ant=8,tPt=4,ePt=2,APt=32,nPt=64,PPt=248,rPt=31,iPt=1,fPt=0,DPt=15,uPt=7,QPt=3,oPt=63,UPt=95,LPt=190,sPt=16,yPt=0,lPt=1,hPt=16,TPt=256,cPt=128,wPt=8,gPt=32,dPt=4,BPt=511,vPt=64,FPt=1,kPt=2,aE,tS,Cl=M(39);p(434,286,{},Ag),AP(U,{acceptorCount:{get:function(){return zq(this)}}}),AP(U,{donorCount:{get:function(){return bz(this)}}}),AP(U,{logP:{get:function(){return eJ(this)}}}),AP(U,{logPString:{get:function(){return hQ(Qtt((new MT,this.a)))}}}),AP(U,{logS:{get:function(){return IX((C6(),this.a))}}}),AP(U,{logSString:{get:function(){return hQ(Pa((C6(),this.a)))}}}),AP(U,{polarSurfaceArea:{get:function(){return gq((v6(),this.a))}}}),AP(U,{polarSurfaceAreaString:{get:function(){return hQ(QW((v6(),this.a)))}}}),AP(U,{rotatableBondCount:{get:function(){return nR(this.a)}}}),AP(U,{stereoCenterCount:{get:function(){return WF(this.a)}}});var lft=M(434);p(68,1,{},P8,uB),U.addCatalyst=function(e){Lh(this.a,e.a)},U.addCatalystAt=function(e,A){ox(this.a,e.a,A)},U.addProduct=function(e){Ug(this.a,e.a)},U.addProductAt=function(e,A){Wx(this.a,e.a,A)},U.addReactant=function(e){Lg(this.a,e.a)},U.addReactantAt=function(e,A){_x(this.a,e.a,A)},U.clear=function(){Sv(this.a)},U.clone=function(){return new P8(new Js(this.a))},U.getAverageBondLength=function(){return Jb(this.a)},U.getCatalyst=function(e){return new sA(px(this.a,e))},U.getCatalysts=function(){return this.a.a.a.length},U.getHighestMapNo=function(){return Ss(this.a)},U.getMergedCopy=function(){return new P8(oZ(this.a))},U.getMolecule=function(e){return new sA(Nv(this.a,e))},U.getMolecules=function(){return YN(this.a)},U.getName=function(){return AN(this.a)},U.getProduct=function(e){return new sA(Ch(this.a,e))},U.getProducts=function(){return this.a.f.a.length},U.getReactant=function(e){return new sA(C9(this.a,e))},U.getReactants=function(){return this.a.g.a.length},U.getReactionCenterMapNos=function(){return Htt(this.a)},U.isEmpty=function(){return hZ(this.a)},U.isFragment=function(){return kx(this.a)},U.isPerfectlyMapped=function(){return ttt(this.a)},U.isReactionLayoutRequired=function(){return I$(this.a)},U.removeCatalysts=function(){bi(this.a.a.a,0)},U.setFragment=function(e){BJ(this.a,e)},U.setName=function(e){mI(this.a,e)},U.toRxn=function(e){var A;return A=new vR(this.a,e),A.a?A.a.a:null},U.toRxnV3=function(e){var A;return A=new JR(this.a,e),A.a?A.a.a:null},U.toSmiles=function(){return cW(this.a)},U.validateMapping=function(){qa(this.a)};var hft=M(68);p(435,1,{},ww);var mPt=\"+\",bPt=15,jPt=8,RPt=2,pPt=3,MPt=4,CPt=1,HPt=0,VPt=\" \",EPt=\"#\",SPt=\"!\",IPt=16,Tft=M(435);p(436,1,{},sg),U.getProducts=function(){var e,A,n,P;if(P=GK(this.a),P.length==0)return j1(Cl,[DA,ul],[152,39],0,[0,0],2);for(n=j1(Cl,[DA,ul],[152,39],0,[P.length,P[0].length],2),e=0;e<P.length;e++)for(A=0;A<P[0].length;A++)n[e][A]=new sA(P[e][A]);return n},U.setReactant=function(e,A){return d$(this.a,e,A.a)};var cft=M(436);p(437,1,{},gw);var Go=!1,wft=M(437);p(266,1,{},r7),U.determineAromaticity=function(e,A,n,P){ry(this.a,e,A,n,P)},U.getAtomIndex=function(e,A){return qF(this.a,e,A)},U.getAtomRingSize=function(e){return UA(this.a,e)},U.getBondIndex=function(e,A){return $q(this.a,e,A)},U.getBondRingSize=function(e){return TP(this.a,e)},U.getHeteroPosition=function(e){return Dx(this.a,e)},U.getRingAtoms=function(e){return ph(this.a,e)},U.getRingBonds=function(e){return Qg(this.a,e)},U.getRingSize=function(e){return e3(this.a,e)},U.getSharedRing=function(e,A){return ts(this.a,e,A)},U.getSize=function(){return this.a.j.a.length},U.isAromatic=function(e){return dh(this.a,e)},U.isAtomMember=function(e,A){return wA(this.a,e,A)},U.isBondMember=function(e,A){return rf(this.a,e,A)},U.isDelocalized=function(e){return ux(this.a,e)},U.qualifiesAsAmideTypeBond=function(e){return Os(this.a,e)},U.validateMemberIndex=function(e,A){return LT(this.a,e,A)};var xPt=7,NPt=3,GPt=7,OPt=5,qPt=1,gft=M(266);p(438,1,{},zd),U.getField=function(e){var A,n;for(n=AG(this.a),A=0;A<n.length;A++)if(e1(n[A],e))return IB(this.a,A);return null},U.getFieldData=function(e){return IB(this.a,e)},U.getFieldNames=function(e){return zN(this.a,e)},U.getMolecule=function(){return new sA(_Y(this.a))},U.getNextFieldData=function(){var e;return e=this.a.b.a,e},U.getNextMolFile=function(){var e;return e=this.a.g.a,e},U.next=function(){return $a(this.a)};var dft=M(438);p(440,1,{},CB),U.findFragmentInMolecule=function(e){var A;return A=BZ(e),CA(this.b,A,this.a)},U.getMatchList=function(){return yK(this.b.F)},U.isFragmentInMolecule=function(){return Rg(this.b)},U.setFragment=function(e){MA(this.b,e.a)},U.setMol=function(e,A){GA(this.b,A.a),MA(this.b,e.a)},U.setMolecule=function(e){GA(this.b,e.a)},U.a=0;var Bft=M(440);p(441,1,{},m7),U.createIndex=function(e){return ms(this.a,e.a)},U.isFragmentInMolecule=function(){return zX(this.a)},U.setFragment=function(e,A){DO(this.a,e.a,A)},U.setMolecule=function(e,A){uO(this.a,e.a,A)};var vft=M(441);p(442,1,{},sh),U.getSmartsWarning=function(){return lO(this.a)},U.zc=function(e,A,n,P,r,i){var f;switch(f=0,e){case\"smarts\":f=2;break;case\"guess\":f=1}n&&(f|=8),A&&(f|=4),P&&(f|=16),r&&(f|=32),i&&(f|=64),this.a=new BQ(f)},U.Ac=function(e,A,n,P){var r;return KN(this.a,e.a,ln((r=A,_u(),r)),n,P),e},U.parseMolecule=function(e,A){A=A||{};var n=A.molecule||new Zd,P=!A.noCoordinates,r=!A.noStereo;return this.Ac(n,e,P,r)},U.parseReaction=function(e){return new P8(dO(this.a,e))},U.setRandomSeed=function(e){FI(this.a,e)};var Fft=M(442);p(443,1,{},pg),U.assessRisk=function(e,A){var n;return xW(e.a,(n=A,!Hl&&(Hl=new $l),n))},U.getDetail=function(e,A){return hQ(Ea(e.a,A))};var zPt=3,KPt=2,eS,JPt=1,YPt=0,XPt=2,ZPt=0,WPt=3,_Pt=1,kft=M(443);p(444,1,{},wd),U.applyTransformation=function(e,A){qz(this.a,e.a,A)},U.setMolecule=function(e,A){return TZ(this.a,e.a)};var mft=M(444);p(445,1,{},dw);var bft=M(445);p(265,155,{155:1},Mg),AP(U,{absoluteWeight:{get:function(){return cq(this)}}}),AP(U,{formula:{get:function(){return vK(this)}}}),AP(U,{relativeWeight:{get:function(){return wq(this)}}});var jft=M(265);p(446,1,{},fj),U.addPastedOrDropped=function(e,A,n){RR(this.a,e.a)},U.clearAll=function(){ab(this.a)},U.fireKeyEvent=function(e,A,n,P,r,i){var f;f=new OB(e,A,i,this.a),uT(this.d,f)},U.fireMouseEvent=function(e,A,n,P,r,i,f,D,Q){var o;o=new NT(e,A,n,P,r,i,f,D,Q,this.a),uT(this.e,o)},U.getGenericEditorArea=function(){return this.a},U.Bc=function(){return this.c},U.getMode=function(){return this.a.U},U.getMolecule=function(){return new sA(this.a.V)},U.getReaction=function(){return new P8(OT(this.a))},U.moleculeChanged=function(){zO(this.a)},U.repaint=function(){P1(this)},U.setMolecule=function(e){bK(this.a,e.a)},U.setReaction=function(e){gR(this.a,e.a)},U.toolChanged=function(e){uQ(this.a,e)},U.b=!1;var $Pt=4,aPt=8,t8t=1,e8t=2,AS,nS,PS,rS,A8t=-2,n8t=-5,P8t=-1,r8t=-4,i8t=-8,f8t=-7,D8t=1,u8t=2,Q8t=-6,o8t=-3,U8t=8,L8t=2,s8t=1,y8t=4,l8t=3,h8t=7,T8t=4,c8t=5,w8t=6,g8t=1,d8t=2,B8t=-1,v8t=-2,F8t=0,k8t=1,m8t=4,b8t=2,j8t=3,R8t=10,p8t=5,M8t=6,C8t=13,H8t=11,V8t=7,E8t=8,S8t=12,I8t=9,Rft=M(446);p(295,1,qf,i7),U.nc=function(e){mG(this.a,e.j,e.a)};var pft=M(295);p(298,1,{268:1},f7),U.pc=function(){qN(this.a)};var Mft=M(298);p(448,1,{},wm),U.fireMouseEvent=function(e,A,n,P,r,i,f,D,Q){var o;o=new NT(e,A,n,P,r,i,f,D,Q,this.b),uT(this.d,o)},U.getHeight=function(){return this.b.e},U.Cc=function(){return this.c},U.getWidth=function(){return this.b.o},U.setDimensions=function(e,A){WB(this,e,A)},U.a=!1;var Cft=M(448);p(313,1,{268:1},D7),U.pc=function(){GF(this.a)};var Hft=M(313);p(447,1,{},ZB),U.build16x16CursorImage=function(e){var A;return A=Yv(this,16,16),_X(A,e),A.a},U.createDialog=function(e,A){return OD(this,e,A)},U.createImage=function(e,A){return Yv(this,e,A)},U.createNativeDialog=function(e){return HB(this,e)},U.createPopupMenu=function(e){return null},U.Dc=function(){return this.a},U.grabFocus=function(){oB(this)},U.openChemistryFile=function(e){return null},U.runLater=function(e){vL(this,e)},U.Ec=function(e){e.pc()},U.setCursor=function(e){BB(this,e)},U.setEditorArea=function(e){},U.showHelpDialog=function(e,A){E3(this,e,A)},U.showMessage=function(e){};var Vft=M(447);p(174,1,{}),U.Fc=function(e,A){oq(this,new JU(this,e,A))},U.Gc=function(){return this.b};var Eft=M(174);p(470,174,{},q7);var Sft=M(470);p(297,1,{},u7),U.Hc=function(){return this.a};var Ift=M(297);p(471,174,{},z7);var xft=M(471);p(299,1,{},Q7),U.Ic=function(){this.a&&this.a.nc(new JU(this,1,0))},U.Jc=function(){this.a&&this.a.nc(new JU(this,0,0))},U.Kc=function(){return this.b};var Nft=M(299);p(160,1,{},fu),U.Lc=function(){return this.a};var Gft=M(160);p(224,1,{},fU),U.qc=function(){var e=this.Mc();return e},U.Mc=function(){return this.a};var Oft=M(224);p(296,226,{},b7);var qft=M(296);p(469,174,{},K7);var zft=M(469);p(223,226,{},yh);var Kft=M(223);p(139,1,{},uD),U.getSize=function(){return this.a.a},U.getX=function(e){return I7(this.a,e)},U.getY=function(e){return x7(this.a,e)};var Jft=M(139);p(472,174,{},J7);var Yft=M(472);p(216,1,{},$l);var Hl=null,Xft=M(216),Tc=null,p1;p(410,1,{},Td),U.a=0,U.b=0,U.c=0;var Zft=M(410);p(262,1,Cf,al),U.Rb=function(e,A){return js(e,A)},U.mb=function(e){return this===e};var Wft=M(262),YA,Bi;p(130,1,Cf,fD),U.Rb=function(e,A){return bs(e,A)},U.mb=function(e){return this===e};var _ft=M(130);p(94,1,{},Ci,zh);var $ft=M(94);p(390,94,Cf,dd);var aft=M(390);p(158,1,{158:1,32:1},w3,Nm),U.Sb=function(e){return NK(this,e)},U.mb=function(e){return Hm(this,e)},U.ob=function(){return this.b==-1&&(this.a.length==1?this.b=this.a[0]:this.b=Mu(this.a)),this.b},U.pb=function(){var e,A,n;for(n=new M0,A=new sD(\"0\"),e=0;e<this.a.length;e++)G(n,xh(A,this.a[e])),e<this.a.length-1&&(n.a+=\" \");return n.a},U.b=0;var tDt=M(158);p(352,128,Tn);var eDt=M(352);p(166,352,{166:1,4:1,19:1,33:1,27:1},dv),U.jc=function(){return sX(this),this.c},U.Nc=function(){return K1(this.b)===K1(cc)?null:this.b};var cc,ADt=M(166);p(423,1,{});var nDt=M(423),Oo=0,iS=0,qo=-1;p(404,423,{},Bw);var wc,PDt=M(404),Kn,gc,fS,dc,Bc;p(57,1,{},FP,NL),U.a=0;var rDt=M(57);p(244,1,{},c3),U.b=0;var DS=null,uS,iDt=M(244);p(163,1,{163:1}),U.mb=function(e){return Sk(this,e)},U.ob=function(){var e;return e=this.Oc()+this.Pc(),Bt(e)*37};var fDt=M(163);p(171,163,{171:1,163:1},yg),U.mb=function(e){var A;return Jt(e,171)?(A=e,this.a==A.a&&this.b==A.b):Sk(this,e)},U.Oc=function(){return this.a},U.Pc=function(){return this.b},U.a=0,U.b=0;var DDt=M(171);p(162,163,{163:1,162:1,4:1},Fw,Hg),U.Oc=function(){return this.a},U.Pc=function(){return this.b},U.a=0,U.b=0;var x8t=M(162);p(467,1,{});var uDt=M(467);p(253,467,{253:1}),U.mb=function(e){var A;return e===this?!0:Jt(e,172)?(A=e,this.c==A.c&&this.d==A.d&&this.b==A.b&&this.a==A.a):!1},U.ob=function(){var e;return e=vs(this.c),e=at(e,yn(vs(this.d),37)),e=at(e,yn(vs(this.b),43)),e=at(e,yn(vs(this.a),47)),Ot(e)^Ot(G0(e,32))};var QDt=M(253);p(172,253,{253:1,172:1},d3),U.a=0,U.b=0,U.c=0,U.d=0;var oDt=M(172);p(463,1,{}),U.Qc=function(){var e;return e=c(Fr,Pe,6,1,15,1),this.Rc(e)==-1?-1:e[0]},U.Rc=function(e){return this.Sc(e,0,e.length)};var UDt=M(463);p(53,463,{},un),U.Qc=function(){return IL(this)},U.Sc=function(e,A,n){return this.b.Sc(e,A,n)},U.a=0;var LDt=M(53);p(426,1,{});var sDt=M(426);p(425,426,{});var yDt=M(425);p(462,1,{});var lDt=M(462);p(104,463,{},mi),U.Qc=function(){return IG(this.a)},U.Rc=function(e){return Fk(this,e,0,e.length)},U.Sc=function(e,A,n){return Fk(this,e,A,n)};var hDt=M(104);p(271,425,{},kw);var TDt=M(271);p(88,463,{},Sr),U.Qc=function(){return this.a==this.b.length?-1:Xi(this.b,this.a++)},U.Sc=function(e,A,n){var P;return this.a>=this.b.length?-1:(P=w.Math.min(this.b.length-this.a,n),rq(this.b,this.a,this.a+P,e,A),this.a+=P,P)},U.a=0;var cDt=M(88);p(464,1,{});var wDt=M(464);p(243,464,{},wh),U.pb=function(){return this.a.a};var gDt=M(243);p(129,1,{210:1}),U.pb=function(){return this.a};var dDt=M(129);p(85,33,Tn,I8);var BDt=M(85);p(260,64,Tn,E7,ng);var vDt=M(260);p(141,1,{4:1,141:1,32:1},Ph),U.Sb=function(e){return this.a-e.a},U.mb=function(e){return Jt(e,141)&&e.a==this.a},U.ob=function(){return this.a},U.pb=function(){return String.fromCharCode(this.a)},U.a=0;var N8t=M(141),vc;p(62,33,Tn,Th,ZP);var FDt=M(62);p(167,33,Tn,j7,lU);var kDt=M(167);p(142,121,{4:1,32:1,142:1,121:1},rh),U.Sb=function(e){return _h(this.a,e.a)},U.Zc=function(){return this.a},U.mb=function(e){return Jt(e,142)&&e.a==this.a},U.ob=function(){return this.a},U.$c=function(){return this.a},U.pb=function(){return\"\"+this.a},U.a=0;var G8t=M(142),Fc;p(143,121,{4:1,32:1,143:1,121:1},ih),U.Sb=function(e){return kG(this.a,e.a)},U.Zc=function(){return $9(this.a)},U.mb=function(e){return Jt(e,143)&&A0(e.a,this.a)},U.ob=function(){return EN(this.a)},U.$c=function(){return Ot(this.a)},U.pb=function(){return\"\"+ve(this.a)},U.a=0;var O8t=M(143),kc;p(530,1,{}),p(408,33,Tn,W7);var mDt=M(408);p(42,62,{4:1,19:1,42:1,33:1,27:1},_P);var bDt=M(42);p(116,1,{4:1,116:1},b3),U.mb=function(e){var A;return Jt(e,116)?(A=e,this.c==A.c&&this.d==A.d&&this.a==A.a&&this.b==A.b):!1},U.ob=function(){return QK(m(k(zn,1),e0,1,5,[U1(this.c),this.a,this.d,this.b]))},U.pb=function(){return this.a+\".\"+this.d+\"(\"+(this.b!=null?this.b:\"Unknown Source\")+(this.c>=0?\":\"+this.c:\"\")+\")\"},U.c=0;var QS=M(116);p(80,129,{210:1},gD,su);var jDt=M(80);p(25,129,{210:1},M0,Vr,bn);var RDt=M(25);p(532,1,{});var k9;p(40,33,Tn,mA,cD);var pDt=M(40);p(31,121,{4:1,32:1,121:1,31:1},xe,y3,mB,ff,Fg,ID),U.Sb=function(e){return BR(this,e)},U.Zc=function(){return he(He(this))},U.mb=function(e){var A;return this===e?!0:Jt(e,31)?(A=e,this.e==A.e&&BR(this,A)==0):!1},U.ob=function(){var e;return this.b!=0?this.b:this.a<54?(e=E1(this.f),this.b=Ot(V(e,-1)),this.b=33*this.b+Ot(V(G0(e,32),-1)),this.b=17*this.b+Bt(this.e),this.b):(this.b=17*Jk(this.c)+Bt(this.e),this.b)},U.$c=function(){return this.e<=-32||this.e>(this.d>0?this.d:w.Math.floor((this.a-1)*bo)+1)?0:TB(this.e==0||this.a==0&&this.f!=-1?(!this.c&&(this.c=jP(E1(this.f))),this.c):this.e<0?RP((!this.c&&(this.c=jP(E1(this.f))),this.c),Qi(-this.e)):u6((!this.c&&(this.c=jP(E1(this.f))),this.c),Qi(this.e)))},U.pb=function(){return He(this)},U.a=0,U.b=0,U.d=0,U.e=0,U.f=0;var oS,zo,mc,bc,vi,Vl,Ko,jc,US=M(31);p(23,121,{4:1,32:1,121:1,23:1},RA,lv,ye,Mm,id),U.Sb=function(e){return ys(this,e)},U.Zc=function(){return he(B6(this,0))},U.mb=function(e){return VT(this,e)},U.ob=function(){return Jk(this)},U.$c=function(){return TB(this)},U.pb=function(){return B6(this,0)},U.b=-2,U.c=0,U.d=0,U.e=0;var Rc,X2,LS,Jo,Yo,vr,Fi=M(23),sS,yS;p(100,1,{4:1,100:1},hB,$D),U.mb=function(e){return Jt(e,100)&&e.a==this.a&&e.b==this.b},U.ob=function(){return this.a<<3|this.b.b},U.pb=function(){return\"precision=\"+this.a+\" roundingMode=\"+this.b},U.a=0;var MDt=M(100),m9,tD,pc;p(75,55,{4:1,32:1,55:1,75:1},Ir);var lS,hS,TS,cS,Te,El,wS,gS,q8t=Yr(75,Sq);p(115,1,Ql),U.Sb=function(e){return aG(this.a,e.a)},U.mb=function(e){var A;return e===this?!0:Jt(e,115)?(A=e,e1(this.a,A.a)):!1},U.ob=function(){return jT(this.a)},U.pb=function(){return this.a};var CDt=M(115);p(466,1,{});var HDt=M(466);p(110,466,{},sD,mh),U.a=0;var VDt=M(110);p(107,1,N4),U.getOrDefault=function(e,A){var n;return n=this.get(e),n==null&&!this.containsKey(e)?A:n},U.putIfAbsent=function(e,A){var n;return n=this.get(e),n??this.put(e,A)},U.replace=function(e,A){return this.containsKey(e)?this.put(e,A):null},U.clear=function(){this.ad().clear()},U._c=function(e){return ib(this,e)},U.containsKey=function(e){return!!t5(this,e,!1)},U.containsValue=function(e){var A,n,P;for(n=this.ad().Tb();n.cd();)if(A=n.dd(),P=A.jd(),K1(e)===K1(P)||e!=null&&SP(e,P))return!0;return!1},U.mb=function(e){var A,n,P;if(e===this)return!0;if(!Jt(e,111)||(P=e,this.size()!=P.size()))return!1;for(n=P.ad().Tb();n.cd();)if(A=n.dd(),!this._c(A))return!1;return!0},U.get=function(e){return t8(t5(this,e,!1))},U.ob=function(){return Ak(this.ad())},U.isEmpty=function(){return this.size()==0},U.keySet=function(){return new Dh(this)},U.put=function(e,A){throw et(new cD(\"Put not supported on this map\"))},U.putAll=function(e){var A,n;for(y1(e),n=e.ad().Tb();n.cd();)A=n.dd(),this.put(A.hd(),A.jd())},U.remove=function(e){return t8(t5(this,e,!0))},U.size=function(){return this.ad().size()},U.pb=function(){var e,A,n;for(n=new pL(\", \",\"{\",\"}\"),A=this.ad().Tb();A.cd();)e=A.dd(),$v(n,iv(this,e.hd())+\"=\"+iv(this,e.jd()));return n.a?n.e.length==0?n.a.a:n.a.a+(\"\"+n.e):n.c},U.values=function(){return new oD(this)};var EDt=M(107);p(187,107,N4),U.clear=function(){i8(this)},U.containsKey=function(e){return Kr(this,e)},U.containsValue=function(e){return PB(this,e)},U.ad=function(){return new QD(this)},U.get=function(e){return D8(this,e)},U.put=function(e,A){return Jr(this,e,A)},U.remove=function(e){return RL(this,e)},U.size=function(){return aP(this)},U.b=0;var SDt=M(187);p(460,41,G2),U.Ub=function(){return new x8(this)},U.mb=function(e){var A;return e===this?!0:!Jt(e,87)||(A=e,A.size()!=this.size())?!1:UQ(this,A)},U.ob=function(){return Ak(this)},U.removeAll=function(e){var A,n,P,r;if(y1(e),r=this.size(),r<e.size())for(A=this.Tb();A.cd();)n=A.dd(),e.contains(n)&&A.ed();else for(P=e.Tb();P.cd();)n=P.dd(),this.remove(n);return r!=this.size()};var IDt=M(460);p(145,460,G2,QD),U.clear=function(){i8(this.a)},U.contains=function(e){return rv(this,e)},U.Tb=function(){return new _F(this.a)},U.remove=function(e){var A;return rv(this,e)?(A=e.hd(),RL(this.a,A),!0):!1},U.size=function(){return aP(this.a)};var xDt=M(145);p(341,1,{},_F),U.bd=function(e){jn(this,e)},U.dd=function(){var e;return fB(this.f.b,this.d),MD(this.b),this.c=this.a,e=this.a.dd(),this.b=kT(this),e},U.cd=function(){return this.b},U.ed=function(){x9(!!this.c),fB(this.f.b,this.d),this.c.ed(),this.c=null,this.b=kT(this),this.d=this.f.b},U.b=!1,U.d=0;var NDt=M(341);p(231,1,{},fh),U.bd=function(e){jn(this,e)},U.cd=function(){return Nr(this)},U.dd=function(){return Cv(this)},U.ed=function(){O3(this)},U.b=0,U.c=-1;var GDt=M(231);p(232,231,{},X3),U.ed=function(){O3(this)},U.fd=function(e){this.a.addAtIndex(this.b,e),++this.b,this.c=-1},U.gd=function(e){x9(this.c!=-1),this.a.setAtIndex(this.c,e)};var ODt=M(232);p(133,74,W6,JD),U.addAtIndex=function(e,A){Ju(e,this.b),this.c.addAtIndex(this.a+e,A),++this.b},U.getAtIndex=function(e){return te(e,this.b),this.c.getAtIndex(this.a+e)},U.removeAtIndex=function(e){var A;return te(e,this.b),A=this.c.removeAtIndex(this.a+e),--this.b,A},U.setAtIndex=function(e,A){return te(e,this.b),this.c.setAtIndex(this.a+e,A)},U.size=function(){return this.b},U.a=0,U.b=0;var qDt=M(133);p(233,460,G2,Dh),U.clear=function(){this.a.clear()},U.contains=function(e){return this.a.containsKey(e)},U.Tb=function(){var e;return e=this.a.ad().Tb(),new uh(e)},U.remove=function(e){return this.a.containsKey(e)?(this.a.remove(e),!0):!1},U.size=function(){return this.a.size()};var zDt=M(233);p(234,1,{},uh),U.bd=function(e){jn(this,e)},U.cd=function(){return this.a.cd()},U.dd=function(){var e;return e=this.a.dd(),e.hd()},U.ed=function(){this.a.ed()};var KDt=M(234);p(135,41,by,oD),U.clear=function(){this.a.clear()},U.contains=function(e){return this.a.containsValue(e)},U.Tb=function(){var e;return e=this.a.ad().Tb(),new UD(e)},U.size=function(){return this.a.size()};var JDt=M(135);p(136,1,{},UD),U.bd=function(e){jn(this,e)},U.cd=function(){return this.a.cd()},U.dd=function(){var e;return e=this.a.dd(),e.jd()},U.ed=function(){this.a.ed()};var YDt=M(136),XDt=XN();p(164,1,{164:1,86:1}),U.mb=function(e){var A;return Jt(e,86)?(A=e,$8(this.c,A.hd())&&$8(this.d,A.jd())):!1},U.hd=function(){return this.c},U.jd=function(){return this.d},U.ob=function(){return EU(this.c)^EU(this.d)},U.kd=function(e){return Sd(this,e)},U.pb=function(){return this.c+\"=\"+this.d};var ZDt=M(164);p(146,164,{164:1,146:1,86:1},RU);var WDt=M(146);p(465,1,{86:1}),U.mb=function(e){var A;return Jt(e,86)?(A=e,$8(this.b.value[0],A.hd())&&$8(GL(this),A.jd())):!1},U.ob=function(){return EU(this.b.value[0])^EU(GL(this))},U.pb=function(){return this.b.value[0]+\"=\"+GL(this)};var _Dt=M(465);p(238,107,{107:1,238:1,111:1,476:1,474:1}),U._c=function(e){return Zv(this,e)},U.containsKey=function(e){return YU(this,e)},U.ad=function(){return new Qh(this)},U.get=function(e){return de(this,e)},U.keySet=function(){return new br(this)};var $Dt=M(238);p(239,460,G2,Qh),U.contains=function(e){return Jt(e,86)&&Zv(this.b,e)},U.Tb=function(){return new J8(this.b)},U.remove=function(e){var A;return Jt(e,86)?(A=e,fF(this.b,A)):!1},U.size=function(){return this.b.c};var aDt=M(239);p(92,460,G2,br),U.Ub=function(){return new bh(this)},U.clear=function(){Mi(this.a)},U.contains=function(e){return YU(this.a,e)},U.Tb=function(){var e;return e=new J8(new K8(this.a).b),new jr(e)},U.remove=function(e){return YU(this.a,e)?(S3(this.a,e),!0):!1},U.size=function(){return this.a.c};var t2t=M(92);p(93,1,{},jr),U.bd=function(e){jn(this,e)},U.cd=function(){return Nr(this.a.a)},U.dd=function(){var e;return e=H9(this.a),e.hd()},U.ed=function(){AB(this.a)};var e2t=M(93);p(468,41,by),U.add=function(e){return $O(ks(this,e)),!0},U.addAll=function(e){return y1(e),SD(e!=this,\"Can't add a queue to itself\"),TT(this,e)},U.clear=function(){for(;QT(this)!=null;);};var A2t=M(468);p(461,74,W6),U.addAtIndex=function(e,A){var n;n=this.Xb(e),n.fd(A)},U.addAllAtIndex=function(e,A){var n,P,r,i;for(y1(A),i=!1,r=this.Xb(e),P=A.Tb();P.cd();)n=P.dd(),r.fd(n),i=!0;return i},U.getAtIndex=function(e){return JT(this,e)},U.Tb=function(){return vQ(this,0)},U.removeAtIndex=function(e){return rb(this,e)},U.setAtIndex=function(e,A){var n,P;n=this.Xb(e);try{return P=n.dd(),n.gd(A),P}catch(r){throw r=_1(r),Jt(r,147)?et(new XP(\"Can't set element \"+e)):et(r)}};var n2t=M(461);p(409,41,{5:1,35:1,41:1,37:1},Bd),U.add=function(e){return cL(this,e),!0},U.clear=function(){this.b!=this.c&&(this.a=c(zn,e0,1,8,5,1),this.b=0,this.c=0)},U.contains=function(e){return ok(new DL(this),e)},U.isEmpty=function(){return $7(this)},U.Tb=function(){return new DL(this)},U.remove=function(e){return iO(new DL(this),e)},U.size=function(){return this.c-this.b&this.a.length-1},U.Ub=function(){return new x8(this)},U.Wb=function(e){var A;return A=this.c-this.b&this.a.length-1,e.length<A&&(e=lu(new Array(A),e)),EF(this,e,A),e.length>A&&(e[A]=null),e},U.b=0,U.c=0;var P2t=M(409);p(202,1,{},DL),U.bd=function(e){jn(this,e)},U.cd=function(){return this.a!=this.b},U.dd=function(){return Kk(this)},U.ed=function(){VF(this)},U.a=0,U.b=0,U.c=-1;var r2t=M(202);p(21,1,{},Zt),U.bd=function(e){jn(this,e)},U.cd=function(){return this.a<this.c.a.length},U.dd=function(){return _t(this)},U.ed=function(){x9(this.b!=-1),cA(this.c,this.a=this.b),this.b=-1},U.a=0,U.b=-1;var i2t=M(21);p(275,w.Function,{},ki),U.ld=function(e,A){return ir(e,A)},p(482,w.Function,{},th),U.md=function(e,A){return O(e,A)<0?-1:O(e,A)>0?1:0},p(181,74,{4:1,35:1,41:1,74:1,37:1,70:1,125:1},hU),U.contains=function(e){return nk(this,e)!=-1},U.getAtIndex=function(e){return te(e,this.a.length),this.a[e]},U.setAtIndex=function(e,A){var n;return n=(te(e,this.a.length),this.a[e]),this.a[e]=A,n},U.size=function(){return this.a.length},U.toArray=function(){return jm(this,c(zn,e0,1,this.a.length,5,1))},U.Wb=function(e){return jm(this,e)};var f2t=M(181);p(47,w.Function,{},u0),U.ld=function(e,A){return e-A},p(183,1,{183:1},vd),U.mb=function(e){var A,n,P;if(this===e)return!0;if(!Jt(e,183)||(P=e,n=FL(this.a),n!=FL(P.a)))return!1;for(A=0;A<=n;A++)if((this.a[A]|0)!=(P.a[A]|0))return!1;return!0},U.ob=function(){var e,A,n,P;for(n=FL(this.a),e=-2128831035^n,A=0;A<=n;A++)P=this.a[A]|0,e=e*ol&-1^P&255,e=e*ol&-1^P>>>8&255,e=e*ol&-1^P>>>16&255,e=e*ol&-1^P>>>24;return e},U.pb=function(){var e,A;if(qq(this)==0)return\"{}\";for(A=new bn(\"{\"),e=Pb(this,0),A.a+=e;(e=Pb(this,e+1))!=-1;)A.a+=\", \",A.a+=e;return A.a+=\"}\",A.a};var D2t=M(183);p(190,1,{35:1,37:1},DU),U.Ub=function(){return new x8(this)},U.Vb=function(){return new vh(this.Ub())},U.add=function(e){throw et(new mA)},U.addAll=function(e){throw et(new mA)},U.clear=function(){throw et(new mA)},U.contains=function(e){return this.b.contains(e)},U.containsAll=function(e){return this.b.containsAll(e)},U.isEmpty=function(){return this.b.isEmpty()},U.Tb=function(){return new L7(this.b.Tb())},U.remove=function(e){throw et(new mA)},U.removeAll=function(e){throw et(new mA)},U.retainAll=function(e){throw et(new mA)},U.size=function(){return this.b.size()},U.toArray=function(){return this.b.toArray()},U.pb=function(){return n2(this.b)};var u2t=M(190);p(350,1,{},L7),U.bd=function(e){jn(this,e)},U.cd=function(){return this.a.cd()},U.dd=function(){return this.a.dd()},U.ed=function(){Ix()};var Q2t=M(350);p(191,190,{35:1,37:1,70:1},GU),U.Ub=function(){return new x8(this)},U.addAtIndex=function(e,A){throw et(new mA)},U.addAllAtIndex=function(e,A){throw et(new mA)},U.mb=function(e){return SP(this.a,e)},U.getAtIndex=function(e){return this.a.getAtIndex(e)},U.ob=function(){return fr(this.a)},U.indexOf=function(e){return this.a.indexOf(e)},U.isEmpty=function(){return this.a.isEmpty()},U.lastIndexOf=function(e){return this.a.lastIndexOf(e)},U.removeAtIndex=function(e){throw et(new mA)},U.setAtIndex=function(e,A){throw et(new mA)},U.subList=function(e,A){return new GU(this.a.subList(e,A))};var o2t=M(191);p(347,1,{111:1},s7),U.getOrDefault=function(e,A){var n;return n=this.c.get(e),n==null&&!this.c.containsKey(e)?A:n},U.putIfAbsent=function(e,A){var n;return n=this.c.get(e),n??Sh()},U.replace=function(e,A){return this.c.containsKey(e)?Sh():null},U.clear=function(){throw et(new mA)},U.containsKey=function(e){return this.c.containsKey(e)},U.containsValue=function(e){return this.c.containsValue(e)},U.ad=function(){return!this.a&&(this.a=new rg(this.c.ad())),this.a},U.mb=function(e){return SP(this.c,e)},U.get=function(e){return this.c.get(e)},U.ob=function(){return fr(this.c)},U.isEmpty=function(){return this.c.isEmpty()},U.keySet=function(){return!this.b&&(this.b=new cU(this.c.keySet())),this.b},U.put=function(e,A){return Sh()},U.putAll=function(e){throw et(new mA)},U.remove=function(e){throw et(new mA)},U.size=function(){return this.c.size()},U.pb=function(){return n2(this.c)},U.values=function(){return!this.d&&(this.d=new DU(this.c.values())),this.d};var U2t=M(347);p(192,190,oE,cU),U.Ub=function(){return new x8(this)},U.mb=function(e){return SP(this.b,e)},U.ob=function(){return fr(this.b)};var L2t=M(192);p(348,192,oE,rg),U.contains=function(e){return this.b.contains(e)},U.containsAll=function(e){return this.b.containsAll(e)},U.Tb=function(){var e;return e=this.b.Tb(),new y7(e)},U.toArray=function(){var e;return e=this.b.toArray(),$G(e,e.length),e};var s2t=M(348);p(351,1,{},y7),U.bd=function(e){jn(this,e)},U.dd=function(){return new oh(this.a.dd())},U.cd=function(){return this.a.cd()},U.ed=function(){throw et(new mA)};var y2t=M(351);p(235,1,{86:1},oh),U.mb=function(e){return this.a.mb(e)},U.hd=function(){return this.a.hd()},U.jd=function(){return this.a.jd()},U.ob=function(){return this.a.ob()},U.kd=function(e){throw et(new mA)},U.pb=function(){return n2(this.a)};var l2t=M(235);p(349,191,{35:1,37:1,70:1,125:1},Pg);var h2t=M(349);p(269,1,Cf,mw),U.Rb=function(e,A){return ir(e.b,A.b)},U.mb=function(e){return this===e};var T2t=M(269),Sl;p(379,1,Cf,bw),U.Rb=function(e,A){return y1(e),Zk(e,(y1(A),A))},U.mb=function(e){return this===e};var c2t=M(379);p(263,33,Tn,ch);var w2t=M(263);p(59,187,{4:1,5:1,107:1,111:1},Yn,Tk);var g2t=M(59);p(72,460,{4:1,5:1,35:1,41:1,37:1,72:1,87:1},ji,UU),U.add=function(e){return xA(this,e)},U.clear=function(){i8(this.a)},U.contains=function(e){return du(this,e)},U.isEmpty=function(){return aP(this.a)==0},U.Tb=function(){var e;return e=new Dh(this.a).a.ad().Tb(),new uh(e)},U.remove=function(e){return r3(this,e)},U.size=function(){return aP(this.a)};var d2t=M(72);p(382,1,{35:1},Od),U.Tb=function(){return new iT(this)},U.c=0;var B2t=M(382);p(250,1,{},iT),U.bd=function(e){jn(this,e)},U.dd=function(){return this.d=this.a[this.c++],this.d},U.cd=function(){var e;return this.c<this.a.length?!0:(e=this.b.next(),e.done?!1:(this.a=e.value[1],this.c=0,!0))},U.ed=function(){j5(this.e,this.d.hd()),this.c!=0&&--this.c},U.c=0,U.d=null;var v2t=M(250);p(380,1,{35:1},qd),U.Tb=function(){return new tT(this)},U.c=0,U.d=0;var F2t=M(380);p(249,1,{},tT),U.bd=function(e){jn(this,e)},U.dd=function(){return this.c=this.a,this.a=this.b.next(),new ad(this.d,this.c,this.d.d)},U.cd=function(){return!this.a.done},U.ed=function(){sk(this.d,this.c.value[0])};var k2t=M(249);p(381,465,{86:1},ad),U.hd=function(){return this.b.value[0]},U.jd=function(){return GL(this)},U.kd=function(e){return $k(this.a,this.b.value[0],e)},U.c=0;var m2t=M(381);p(343,461,{4:1,5:1,35:1,41:1,74:1,37:1,70:1},Bv),U.add=function(e){return zv(this,e,this.c.b,this.c),!0},U.clear=function(){Av(this)},U.Xb=function(e){return vQ(this,e)},U.size=function(){return this.b},U.b=0;var b2t=M(343);p(344,1,{},tB),U.bd=function(e){jn(this,e)},U.fd=function(e){zv(this.d,e,this.b.b,this.b),++this.a,this.c=null},U.cd=function(){return this.b!=this.d.c},U.dd=function(){return BL(this)},U.ed=function(){jF(this)},U.gd=function(e){x9(!!this.c),this.c.c=e},U.a=0,U.c=null;var j2t=M(344);p(189,1,{},PU);var R2t=M(189);p(317,1,{},jw),U.nd=function(e){return Id(this,e)},U.od=function(e){return e.hd()};var p2t=M(317);p(318,1,{},Rw),U.nd=function(e){return xd(this,e)},U.od=function(e){return e.jd()};var M2t=M(318);p(147,33,{4:1,19:1,33:1,27:1,147:1},R7);var C2t=M(147);p(148,468,by,kg,ig),U.addAll=function(e){var A,n,P;for(y1(e),bd(e!=this),P=this.b.a.length,n=e.Tb();n.cd();)A=n.dd(),Ft(this.b,y1(A));return P!=this.b.a.length?(sQ(this,0),!0):!1},U.clear=function(){bi(this.b.a,0)},U.contains=function(e){return(e==null?-1:$r(this.b,e,0))!=-1},U.Tb=function(){return new l7(this)},U.remove=function(e){var A;return A=e==null?-1:$r(this.b,e,0),A<0?!1:(lT(this,A),!0)},U.removeAll=function(e){return us(this.b,e)?(sQ(this,0),!0):!1},U.retainAll=function(e){return qk(this.b,e)?(sQ(this,0),!0):!1},U.size=function(){return this.b.a.length},U.Ub=function(){return new x8(this)},U.toArray=function(){return s3(this.b.a)},U.Wb=function(e){return Qf(this.b,e)};var H2t=M(148);p(403,1,{},l7),U.bd=function(e){jn(this,e)},U.cd=function(){return this.a<this.c.b.a.length},U.dd=function(){return MD(this.a<this.c.b.a.length),this.b=this.a++,x(this.c.b,this.b)},U.ed=function(){x9(this.b!=-1),lT(this.c,this.a=this.b),this.b=-1},U.a=0,U.b=-1;var V2t=M(403);p(66,1,{},P2,$i),U.a=0,U.b=0;var Mc,Cc,z8t=0,E2t=M(66);p(60,1,{},x8);var S2t=M(60);p(193,60,{},bh);var I2t=M(193);p(154,1,{},Ld,pL),U.pb=function(){return this.a?this.e.length==0?this.a.a:this.a.a+(\"\"+this.e):this.c};var x2t=M(154);p(44,238,{4:1,5:1,107:1,238:1,111:1,476:1,474:1,44:1},cP,Ji),U.clear=function(){Mi(this)},U.ad=function(){return new K8(this)},U.put=function(e,A){return We(this,e,A)},U.remove=function(e){return S3(this,e)},U.size=function(){return this.c},U.c=0;var dS=M(44);p(73,1,{},J8),U.bd=function(e){jn(this,e)},U.dd=function(){return H9(this)},U.cd=function(){return Nr(this.a)},U.ed=function(){AB(this)};var N2t=M(73);p(81,239,G2,K8),U.clear=function(){Mi(this.a)};var G2t=M(81);p(123,146,{164:1,146:1,86:1,123:1},xL),U.b=!1;var K8t=M(123);p(195,1,{},rU),U.pb=function(){return\"State: mv=\"+this.c+\" value=\"+this.d+\" done=\"+this.a+\" found=\"+this.b},U.a=!1,U.b=!1,U.c=!1;var O2t=M(195);p(83,55,Ll,vu),U.pd=function(){return!1},U.qd=function(){return!1};var Hc,BS,vS,FS,J8t=Yr(83,pO);p(362,83,Ll,fd),U.qd=function(){return!0};var q2t=Yr(362,null);p(363,83,Ll,sd),U.pd=function(){return!0},U.qd=function(){return!0};var z2t=Yr(363,null);p(364,83,Ll,Dd),U.pd=function(){return!0};var K2t=Yr(364,null);p(134,460,{4:1,5:1,35:1,41:1,37:1,87:1},gh,gU),U.Ub=function(){return new bh(this)},U.add=function(e){return Yi(this,e)},U.clear=function(){Mi(this.a)},U.contains=function(e){return mU(this,e)},U.Tb=function(){var e;return e=new J8(new K8(new br(this.a).a).b),new jr(e)},U.remove=function(e){return S3(this.a,e)!=null},U.size=function(){return this.a.c};var J2t=M(134);p(375,74,{4:1,5:1,35:1,41:1,74:1,37:1,70:1,125:1},C7),U.addAtIndex=function(e,A){Iu(e,this.a.a.length+1),f8(this.a,e,A)},U.add=function(e){return mg(this,e)},U.addAllAtIndex=function(e,A){return Iu(e,this.a.a.length+1),zk(this.a,e,A)},U.addAll=function(e){return MP(this.a,e)},U.clear=function(){bi(this.a.a,0)},U.contains=function(e){return $r(this.a,e,0)!=-1},U.containsAll=function(e){return UQ(this.a,e)},U.getAtIndex=function(e){return Iu(e,this.a.a.length),x(this.a,e)},U.indexOf=function(e){return $r(this.a,e,0)},U.isEmpty=function(){return this.a.a.length==0},U.Tb=function(){return new Zt(this.a)},U.lastIndexOf=function(e){return Vd(this.a,e)},U.removeAtIndex=function(e){return Iu(e,this.a.a.length),cA(this.a,e)},U.removeAll=function(e){return us(this.a,e)},U.Yb=function(e,A){gv(this.a,e,A)},U.setAtIndex=function(e,A){return Iu(e,this.a.a.length),Zr(this.a,e,A)},U.size=function(){return this.a.a.length},U.subList=function(e,A){return new JD(this.a,e,A)},U.toArray=function(){return s3(this.a.a)},U.Wb=function(e){return bg(this,e)},U.pb=function(){return Rb(this.a)};var Y2t=M(375);p(358,107,N4),U.containsKey=function(e){return q3(this,e)},U.containsValue=function(e){if(e==null)throw et(new Rr);return PB(this.e,e)},U.ad=function(){return new QD(this.e)},U.get=function(e){return vv(this,e)},U.put=function(e,A){return sF(this,e,A)},U.putIfAbsent=function(e,A){return q3(this,e)?this.get(e):this.put(e,A)},U.remove=function(e){if(e==null)throw et(new Rr);return RL(this.e,e)},U.replace=function(e,A){if(A==null)throw et(new Rr);return q3(this,e)?this.put(e,A):null};var X2t=M(358);p(270,1,{},Kw),U.nd=function(e){return y1(e),new wP(this,e)},U.od=function(e){return e};var Z2t=M(270);p(61,1,{},wP),U.nd=function(e){return y1(e),new wP(this,e)},U.od=function(e){return A3(this.a,this.b,e)};var W2t=M(61);p(406,1,{},h7),U.b=null,U.c=!1;var _2t=M(406);p(405,1,{},T7);var $2t=M(405);p(407,62,Tn,BF);var a2t=M(407);p(96,55,{4:1,32:1,55:1,96:1},jU);var kS,Xo,Vc,Il=Yr(96,TO);p(169,1,{},Ou);var tut=M(169);p(321,1,{},pw),U.rd=function(e,A){e.add(A)};var eut=M(321);p(323,1,{},Mw),U.qc=function(){return new n1};var Aut=M(323);p(324,1,{},Cw),U.nd=function(e){return y1(e),new wP(this,e)},U.od=function(e){return oL(e)};var nut=M(324);p(325,1,{},Hw),U.nd=function(e){return y1(e),new wP(this,e)},U.od=function(e){return Jt(e,125)?new Pg(e):new GU(e)};var Put=M(325);p(326,1,{},Vw),U.qc=function(){return new Yn};var rut=M(326);p(327,1,{},Ew),U.nd=function(e){return y1(e),new wP(this,e)},U.od=function(e){return new s7(e)};var iut=M(327);p(229,1,{},eh),U.nd=function(e){return y1(e),new wP(this,e)},U.od=function(e){return oL(e)};var fut=M(229);p(330,1,{},Sw),U.qc=function(){return new ji};var Dut=M(330);p(331,1,{},Iw),U.rd=function(e,A){xA(e,A)};var uut=M(331);p(334,1,{},xw),U.nd=function(e){return y1(e),new wP(this,e)},U.od=function(e){return oL(e)};var Qut=M(334);p(335,1,{},Nw),U.nd=function(e){return y1(e),new wP(this,e)},U.od=function(e){return new cU(e)};var out=M(335);p(320,1,{},Eg),U.rd=function(e,A){oN(this.a,this.b,e,A)};var Uut=M(320);p(322,1,{},Gw);var Lut=M(322);p(328,1,{},DB),U.rd=function(e,A){xY(this.a,this.c,this.b,e,A)},U.b=!1;var sut=M(328);p(329,1,{},Ow);var yut=M(329);p(332,1,{},qw);var lut=M(332);p(333,1,{},zw),U.nd=function(e){return y1(e),new wP(this,e)},U.od=function(e){return e};var hut=M(333);p(353,1,{}),U.b=!1;var Tut=M(353);p(194,353,{},vh);var cut=M(194);p(354,1,{},Jw);var wut=M(354);p(355,1,{},c7);var gut=M(355);p(356,1,{},Ig);var dut=M(356);p(227,115,Ql);var But=M(227);p(228,227,Ql,jh);var vut=M(228);p(319,227,Ql,Wg);var Fut=M(319);p(345,462,{},hd),U.a=0,U.b=0;var mS=null,kut=M(345);p(416,1,{},g7);var mut=M(416);p(415,1,{},xg);var but=M(415);p(414,1,{},d7);var jut=M(414);p(215,67,{67:1,32:1,215:1},Pp),U.b=0;var Rut=M(215);p(254,1,{254:1},Rd);var put=M(254);p(213,1,{},ud),U.a=0,U.d=0,U.i=!1,U.j=!1,U.o=0,U.p=0,U.v=0,U.w=0,U.C=!1;var Mut=M(213);p(277,1,{},Yw),U.Rb=function(e,A){return _h(A.o.length,e.o.length)},U.mb=function(e){return this===e};var Cut=M(277);p(278,1,{},H7);var Hut=M(278);p(179,1,{179:1},wF);var Y8t=M(179);p(359,358,{4:1,107:1,111:1},pd),U.get=function(e){return Rv(this,e)},U.put=function(e,A){return pv(this,e,A)},U.clear=function(){i8(new QD(this.e).a)},U.a=0,U.b=0,U.c=0,U.d=0;var Zo,Vut=M(359);p(237,1,{32:1,237:1},Sg),U.Sb=function(e){return YG(this,e)},U.b=0;var Eut=M(237);p(276,1,{},UB),U.b=!1,U.c=0,U.d=0;var Sut=M(276);p(178,1,{178:1},GR),U.a=0,U.b=!1,U.i=0,U.j=0,U.n=0;var bS,jS,RS,X8t=M(178);p(168,1,{32:1,168:1},GB),U.Sb=function(e){return Hk(this,e)},U.mb=function(e){return Hk(this,e)==0},U.pb=function(){var e,A,n,P,r,i,f,D;for(D=new M0,n=this.i,r=0,f=n.length;r<f;++r)e=n[r],D.a+=e,D.a+=\",\";for(this.i.length!=0&&Ln(D,D.a.length-1),D.a+=\";\",A=this.d,P=0,i=A.length;P<i;++P)e=A[P],D.a+=e,D.a+=\",\";return this.d.length!=0&&Ln(D,D.a.length-1),D.a},U.b=0,U.e=0,U.g=!1;var pS=M(168);p(257,1,{257:1},Gk),U.a=0;var Iut=M(257);p(389,1,{},xR),U.c=0;var Ec,xut=M(389);p(240,1,{}),U.g=0,U.r=0,U.s=0,U.t=0,U.B=0,U.F=!1;var Nut=M(240);p(360,1,{},Xw);var Gut=M(360);p(118,240,{118:1},zL),U.sd=function(e){return WQ(this,this.b)},U.b=!1;var Out=M(118);p(214,118,{118:1},v3),U.sd=function(e){var A,n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d;if(!e)return WQ(this,this.a);if(e.b==0)return WQ(this,this.b);for(P=KX(this,e),n=e.i,A=e.d,L=c(Pt,it,6,P.length,16,1),i=0;i<64;i++){for((L[0]||this.v[0].d.length==1)&&(P[0]=0),o=1,D=1;D<this.v.length;D++)L[o]||this.v[D].d.length==1?P[o]=P[o-1]:P[o]+=P[o-1],++o;for(h=this.u,T=0,g=h.length;T<g;++T)l=h[T],L[o]||l.b.length==1?P[o]=P[o-1]:P[o]+=P[o-1],++o;if(P[P.length-1]==0)return WQ(this,this.b);for(y=Vn(this.c)*P[P.length-1],f=0;f<P.length;f++)if(y<P[f]){if(v=Cn(n,n.length),r=Cn(A,A.length),f<this.v.length){for(s=1;s<this.v[f].d.length;s++)if(++v[f],v[f]==this.v[f].d.length&&(v[f]=0),d=Xu(this,v,r),Q=u9(this.D,d),(Q<0?-1:Q)==-1)return d}else for(f-=this.v.length,s=1;s<this.u[f].b.length;s++)if(++r[f],r[f]==this.u[f].b.length&&(r[f]=0),d=Xu(this,v,r),Q=u9(this.D,d),(Q<0?-1:Q)==-1)return d;L[f]=!0;break}}return WQ(this,this.b)},U.a=!1;var qut=M(214);p(279,240,{},Dj),U.sd=function(e){return this.a==null||(this.b+1==this.a.length&&Dtt(this),this.a==null)?null:(++this.b,this.a[this.b])},U.b=0;var zut=M(279);p(365,1,{},Zw),U.Rb=function(e,A){return ir(A.e,e.e)},U.mb=function(e){return this===e};var Kut=M(365);p(258,1,{32:1,258:1},Ng),U.Sb=function(e){return this.a<e.a?-1:this.a>e.a?1:0},U.a=0;var Jut=M(258);p(50,1,O2),U.g=!1;var xl,Yut=M(50);p(248,50,O2,nT),U.td=function(e,A){var n,P,r,i,f;if(f=XQ(e,this.f)<0?1:0,A!=null)for(P=this.f,r=0,i=P.length;r<i;++r)n=P[r],A[n]+=f/4;return f},U.ud=function(e,A){var n,P,r,i,f,D,Q;if(D=XQ(e,this.f),D==0||this.b==D>0)return!1;for(Q=_8(Z0(e,this.f[2]),Z0(e,this.f[1])),ri(Q),f=w.Math.abs(D)<HA?-2*D:2*(l1-D),this.a&&(f=-f),P=this.c,r=0,i=P.length;r<i;++r)n=P[r],vf(e,n,Z0(e,this.f[1]),Q,f);return!0},U.vd=function(){return 5},U.pb=function(){var e;return e=new bn(\"binap rule (\"+(this.b?\"positive\":\"negative\")+\" torsion):\"),r2(this,e),e.a},U.a=!1,U.b=!1;var Xut=M(248);p(156,1,{},ZQ),U.b=0,U.e=!1,U.n=0;var MS,Zut=M(156);p(361,1,{},Ww),U.Rb=function(e,A){return Z3(),ir(e.e,A.e)},U.mb=function(e){return this===e};var Wut=M(361);p(84,50,{50:1,84:1},Cg,hk,fs,cT),U.td=function(e,A){var n;return n=E_(this,e),A!=null&&n>0&&(A[this.f[0]]+=n/2,A[this.f[1]]+=n/2),n},U.ud=function(e,A){var n,P,r,i,f,D,Q;if(r=Mr(e,this.f[1])-Mr(e,this.f[0]),i=Cr(e,this.f[1])-Cr(e,this.f[0]),f=Hr(e,this.f[1])-Hr(e,this.f[0]),n=w.Math.sqrt(r*r+i*i+f*f),P=0,this.a.length==2?n<this.a[0]?P=(n-this.a[0])/n:n>this.a[1]&&(P=(n-this.a[1])/n):n<this.a[0]?P=(n-this.a[0])/n:n>this.a[0]&&(P=(n-this.a[0])/n),w.Math.abs(P)<.001)return!1;if(D=A*P,Q=e.o,this.c==10){if(Ct(Q,this.f[0])==1&&Ct(Q,this.f[1])!=1)return n8(Z0(e,this.f[0]),r*D,i*D,f*D),!0;if(Ct(Q,this.f[0])!=1&&Ct(Q,this.f[1])==1)return n8(Z0(e,this.f[1]),-r*D,-i*D,-f*D),!0}return D/=2,E5(e,this.f[0],this.b,r*D,i*D,f*D),E5(e,this.f[1],this.b,-r*D,-i*D,-f*D),!0},U.vd=function(){return 0},U.pb=function(){var e,A;if(A=new bn(\"distance rule:\"),r2(this,A),this.a.length==1?G(A,(A9(),LE+Q9(this.a[0],5))):G(A,(A9(),\" min:\"+Q9(this.a[0],5)+\" max:\"+Q9(this.a[1],5))),this.b!=null)for(G(A,\" not:\"+this.b[0]),e=1;e<this.b.length;e++)G(A,\",\"+this.b[e]);return A.a},U.c=0;var CS=M(84);p(247,50,O2,L5),U.td=function(e,A){var n,P,r,i,f,D,Q;for(n=new x0,f=new x0,P=j1(Ut,[T0,Tt],[15,6],15,[this.f.length,3],2),P6(e,this.f,n,f,P),Q=0,i=0;i<this.f.length;i++)r=-(f.a*P[i][0]+f.b*P[i][1]+f.c*P[i][2]),D=20*r*r,A!=null&&(A[this.f[i]]+=D),Q+=D;return Q},U.ud=function(e,A){var n,P,r,i,f;for(n=new x0,f=new x0,P=j1(Ut,[T0,Tt],[15,6],15,[this.a.length,3],2),P6(e,this.a,n,f,P),i=0;i<this.f.length;i++)r=-(f.a*(Mr(e,this.f[i])-n.a)+f.b*(Cr(e,this.f[i])-n.b)+f.c*(Hr(e,this.f[i])-n.c)),E5(e,this.f[i],this.f,.5*r*A*f.a,.5*r*A*f.b,.5*r*A*f.c);return!0},U.vd=function(){return 1},U.pb=function(){var e;return e=new bn(\"plane rule:\"),r2(this,e),e.a};var _ut=M(247);p(97,67,{67:1,32:1,97:1},Hu,Xd),U.b=!1,U.c=0,U.e=0;var HS=M(97);p(377,50,O2,fg),U.td=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E,S;for(i=c(Ut,Tt,6,3,15,1),L=0;L<this.f.length;L++)i[0]+=Mr(e,this.f[L]),i[1]+=Cr(e,this.f[L]),i[2]+=Hr(e,this.f[L]);for(g=0;g<3;g++)i[g]/=this.f.length;for(n=j1(Ut,[T0,Tt],[15,6],15,[this.f.length,3],2),s=0;s<this.f.length;s++)n[s][0]=Mr(e,this.f[s])-i[0],n[s][1]=Cr(e,this.f[s])-i[1],n[s][2]=Hr(e,this.f[s])-i[2];for(R=j1(Ut,[T0,Tt],[15,6],15,[3,3],2),y=0;y<this.f.length;y++)for(T=0;T<3;T++)for(v=0;v<3;v++)R[T][v]+=n[y][T]*n[y][v];for(E=new yy(R),P=E.e,b=0,l=1;l<3;l++)P[l]>P[b]&&(b=l);for(r=E.a,j=c(Ut,Tt,6,3,15,1),h=0;h<3;h++)j[h]=r[h][b];for(S=0,o=0;o<this.f.length;o++)d=j[0]*n[o][0]+j[1]*n[o][1]+j[2]*n[o][2],f=d*j[0]-n[o][0],D=d*j[1]-n[o][1],Q=d*j[2]-n[o][2],C=10*f*f+D*D+Q*Q,A!=null&&(A[this.f[o]]+=C),S+=C;return S},U.ud=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j,R,C,E;for(i=c(Ut,Tt,6,3,15,1),D=0;D<this.f.length;D++)i[0]+=Mr(e,this.f[D]),i[1]+=Cr(e,this.f[D]),i[2]+=Hr(e,this.f[D]);for(v=0;v<3;v++)i[v]/=this.f.length;for(n=j1(Ut,[T0,Tt],[15,6],15,[this.f.length,3],2),Q=0;Q<this.f.length;Q++)n[Q][0]=Mr(e,this.f[Q])-i[0],n[Q][1]=Cr(e,this.f[Q])-i[1],n[Q][2]=Hr(e,this.f[Q])-i[2];for(C=j1(Ut,[T0,Tt],[15,6],15,[3,3],2),o=0;o<this.f.length;o++)for(g=0;g<3;g++)for(d=0;d<3;d++)C[g][d]+=n[o][g]*n[o][d];for(E=new yy(C),P=E.e,j=0,L=1;L<3;L++)P[L]>P[j]&&(j=L);for(r=E.a,R=c(Ut,Tt,6,3,15,1),s=0;s<3;s++)R[s]=r[s][j];for(b=c(Ut,Tt,6,this.f.length,15,1),y=0;y<this.f.length;y++)b[y]=R[0]*n[y][0]+R[1]*n[y][1]+R[2]*n[y][2];if(A==1){for(h=!1,T=b[0]<b[1],l=2;l<this.f.length;l++)if(T!=b[l-1]<b[l]){h=!0;break}if(h)return!1}for(f=0;f<this.f.length;f++)n8(Z0(e,this.f[f]),A*(b[f]*R[0]-n[f][0]),A*(b[f]*R[1]-n[f][1]),A*(b[f]*R[2]-n[f][2]));return!0},U.vd=function(){return 2},U.pb=function(){var e;return e=new bn(\"line rule:\"),r2(this,e),e.a};var $ut=M(377);p(378,50,O2,bB),U.td=function(e,A){var n,P,r,i,f;if(i=0,P=Xj(this,e),f=0,this.f[3]==-1?D2(e,P,this.f[4],this.f[2])||++f:(D2(e,P,this.f[4],this.f[2])||++f,D2(e,P,this.f[4],this.f[3])&&++f),f!=0)for(n=0;n<this.f.length;n++)this.f[n]!=-1&&(r=.68*f,A!=null&&(A[this.f[n]]+=r),i+=r);return i},U.ud=function(e,A){var n,P,r,i,f,D,Q;if(D=Xj(this,e),f=this.f[3]==-1&&!D2(e,D,this.f[4],this.f[2])||this.f[3]!=-1&&!D2(e,D,this.f[4],this.f[2])&&D2(e,D,this.f[4],this.f[3]),!f)return!1;for(Q=PY(this,e),P=this.a,r=0,i=P.length;r<i;++r)n=P[r],vf(e,n,Z0(e,this.f[4]),Q,l1);return!0},U.vd=function(){return 4},U.pb=function(){var e,A,n,P,r;for(r=new bn(\"stereo rule:\"),r2(this,r),r.a+=\" rotatable:\",A=this.a,n=0,P=A.length;n<P;++n)e=A[n],r.a+=e+\" \";return r.a};var aut=M(378);p(199,50,O2,WL),U.td=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h;if(n=kL(e,this.f),isNaN(n))return 0;if(n<0&&(n+=k0),l=180*n/l1,f=db(this,n),f==-1)for(z1(),L=this.e,s=0,y=L.length;s<y;++s);if(Q=Vb(this,n,f),Q==0)return 0;for(P=w.Math.abs(l-this.e[f]),P>180&&(P=360-P),P>60&&(P=60),D=e.o,o=3*Q*P*P/3600,h=0,i=0;i<Ct(D,this.f[1]);i++)Z(D,this.f[1],i)!=this.f[2]&&(A!=null&&(A[Z(D,this.f[1],i)]+=o),h+=o);for(r=0;r<Ct(D,this.f[2]);r++)Z(D,this.f[2],r)!=this.f[1]&&(A!=null&&(A[Z(D,this.f[2],r)]+=o),h+=o);return h},U.ud=function(e,A){var n,P,r,i,f,D,Q,o,L,s,y,l,h,T,g,v,d,b,j;if(Q=kL(e,this.f),isNaN(Q)||(Q<0&&(Q+=k0),y=db(this,Q),b=Vb(this,Q,y),b==0)||(f=l1*this.e[y]/180-Q,w.Math.abs(f)>l1&&(f=f<0?k0+f:f-k0),w.Math.abs(f)<.0031415926535897933))return!1;if(j=_8(Z0(e,this.f[2]),Z0(e,this.f[1])),ri(j),f*=A*b,g=e.o,this.a!=null)for(v=this.d==0?-f:f,P=this.a,r=0,i=P.length;r<i;++r)n=P[r],vf(e,n,Z0(e,this.f[1]),j,v);else for(D=o1(g,this.f[1],this.f[2]),l=D!=-1&&(g.q&&D<g.i?TP(g.q,D):0)<=5,s=1;s<=2;s++)for(o=(s==1?-2:2)*W3(g,this.f[s]),h=0;h<Ct(g,this.f[s]);h++)if(L=Z(g,this.f[s],h),L!=this.f[3-s]&&(nm(e,L,this.f[s],j,f/o),!l))for(T=0;T<g.k[L];T++)d=g.j[L][T],d!=L&&g.e[d]!=1&&nm(e,d,this.f[s],j,f/(4*o));return!0},U.vd=function(){return 3},U.pb=function(){var e,A;for(A=new bn(\"torsion rule:\"),r2(this,A),A.a+=\" torsions:\",e=0;e<this.e.length;e++)e!=0&&(A.a+=\",\"),G(A,this.e[e]+\"(\"+this.b[e]+\")\");return A.a},U.d=0;var tQt=M(199),B=K9(\"I\"),Pt=K9(\"Z\"),Ut=K9(\"D\"),Oe=K9(\"F\"),Yt=K9(\"S\"),_=K9(\"B\"),XA=K9(\"J\"),Fr=K9(\"C\");U=L0(\"OCL.Canonizer\",cd),U=L0(\"OCL.CanonizerUtil\",Tw),U.BACKBONE=K1t,U.NORMAL=J1t,U.NOSTEREO=Y1t,U.NOSTEREO_TAUTOMER=X1t,U.TAUTOMER=Z1t,U.getIDCode=zJ,U=L0(\"OCL.ConformerGenerator\",gd),U.STRATEGY_ADAPTIVE_RANDOM=W1t,U.STRATEGY_LIKELY_RANDOM=_1t,U.STRATEGY_LIKELY_SYSTEMATIC=$1t,U.STRATEGY_PURE_RANDOM=a1t,U=L0(\"OCL.DrugScoreCalculator\",cw),U.calculate=RN,U=L0(\"OCL.DruglikenessPredictor\",Og),U.DRUGLIKENESS_UNKNOWN=t0t,U=L0(\"OCL.ForceFieldMMFF94\",Dv),U.MMFF94=e0t,U.MMFF94S=A0t,U.MMFF94SPLUS=n0t,M3(),U=L0(\"OCL.GenericEditorArea\",fj),U.EDITOR_EVENT_HIGHLIGHT_ATOM_CHANGED=$Pt,U.EDITOR_EVENT_HIGHLIGHT_BOND_CHANGED=aPt,U.EDITOR_EVENT_MOLECULE_CHANGED=t8t,U.EDITOR_EVENT_SELECTION_CHANGED=e8t,U.HOTSPOT_16=AS,U.HOTSPOT_32=nS,U.IMAGE_DATA_16=PS,U.IMAGE_NAME_32=rS,U.KEY_ALT=A8t,U.KEY_BACK_SPACE=n8t,U.KEY_CTRL=P8t,U.KEY_DELETE=r8t,U.KEY_ENTER=i8t,U.KEY_ESCAPE=f8t,U.KEY_EVENT_PRESSED=D8t,U.KEY_EVENT_RELEASED=u8t,U.KEY_HELP=Q8t,U.KEY_SHIFT=o8t,U.MODE_DRAWING_OBJECTS=U8t,U.MODE_MARKUSH_STRUCTURE=L8t,U.MODE_MULTIPLE_FRAGMENTS=s8t,U.MODE_REACTION=y8t,U.MOUSE_EVENT_CLICKED=l8t,U.MOUSE_EVENT_DRAGGED=h8t,U.MOUSE_EVENT_ENTERED=T8t,U.MOUSE_EVENT_EXITED=c8t,U.MOUSE_EVENT_MOVED=w8t,U.MOUSE_EVENT_PRESSED=g8t,U.MOUSE_EVENT_RELEASED=d8t,U.TableLayoutFill=B8t,U.TableLayoutPreferred=v8t,U.cChainCursor=F8t,U.cDeleteCursor=k8t,U.cFistCursor=m8t,U.cHandCursor=b8t,U.cHandPlusCursor=j8t,U.cInvisibleCursor=R8t,U.cLassoCursor=p8t,U.cLassoPlusCursor=M8t,U.cPointedHandCursor=C8t,U.cPointerCursor=H8t,U.cSelectRectCursor=V8t,U.cSelectRectPlusCursor=E8t,U.cTextCursor=S8t,U.cZoomCursor=I8t,U=L0(\"OCL.GenericEditorToolbar\",wm),U=L0(\"OCL.GenericUIHelper\",ZB),U=L0(\"OCL.MCS\",Wd),aA(),U=L0(\"OCL.Molecule\",LL),U.CANONIZER_ASSIGN_PARITIES_TO_TETRAHEDRAL_N=P0t,U.CANONIZER_CONSIDER_DIASTEREOTOPICITY=r0t,U.CANONIZER_CONSIDER_ENANTIOTOPICITY=i0t,U.CANONIZER_CONSIDER_STEREOHETEROTOPICITY=f0t,U.CANONIZER_COORDS_ARE_3D=D0t,U.CANONIZER_CREATE_PSEUDO_STEREO_GROUPS=u0t,U.CANONIZER_CREATE_SYMMETRY_RANK=Q0t,U.CANONIZER_DISTINGUISH_RACEMIC_OR_GROUPS=o0t,U.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS=U0t,U.CANONIZER_ENCODE_ATOM_CUSTOM_LABELS_WITHOUT_RANKING=L0t,U.CANONIZER_ENCODE_ATOM_SELECTION=s0t,U.CANONIZER_NEGLECT_ANY_STEREO_INFORMATION=y0t,U.CANONIZER_TIE_BREAK_FREE_VALENCE_ATOMS=l0t,U.FISCHER_PROJECTION_LIMIT=h0t,U.FISCHER_PROJECTION_RING_LIMIT=T0t,U.STEREO_ANGLE_LIMIT=c0t,U.VALIDATION_ERRORS_STEREO=ZE,U.VALIDATION_ERROR_AMBIGUOUS_CONFIGURATION=w0t,U.VALIDATION_ERROR_ESR_CENTER_UNKNOWN=g0t,U.VALIDATION_ERROR_OVER_UNDER_SPECIFIED=d0t,U.cAtomCIPParityNone=B0t,U.cAtomCIPParityProblem=v0t,U.cAtomCIPParityRorM=F0t,U.cAtomCIPParitySorP=k0t,U.cAtomColorBlue=m0t,U.cAtomColorDarkGreen=b0t,U.cAtomColorDarkRed=j0t,U.cAtomColorGreen=R0t,U.cAtomColorMagenta=p0t,U.cAtomColorNone=M0t,U.cAtomColorOrange=C0t,U.cAtomColorRed=H0t,U.cAtomLabel=WE,U.cAtomParity1=V0t,U.cAtomParity2=E0t,U.cAtomParityIsPseudo=S0t,U.cAtomParityNone=I0t,U.cAtomParityUnknown=x0t,U.cAtomQFAny=N0t,U.cAtomQFAromState=G0t,U.cAtomQFAromStateBits=O0t,U.cAtomQFAromStateShift=q0t,U.cAtomQFAromatic=z0t,U.cAtomQFCharge=K0t,U.cAtomQFChargeBits=J0t,U.cAtomQFChargeShift=Y0t,U.cAtomQFDepictedFeatures=X0t,U.cAtomQFENeighbourBits=Z0t,U.cAtomQFENeighbourShift=W0t,U.cAtomQFENeighbours=_0t,U.cAtomQFExcludeGroup=$0t,U.cAtomQFFlatNitrogen=a0t,U.cAtomQFHeteroAromatic=tet,U.cAtomQFHydrogen=eet,U.cAtomQFHydrogenBits=Aet,U.cAtomQFHydrogenShift=net,U.cAtomQFIsNotStereo=Pet,U.cAtomQFIsStereo=ret,U.cAtomQFMatchStereo=iet,U.cAtomQFMoreNeighbours=fet,U.cAtomQFNarrowing=Det,U.cAtomQFNeighbourBits=uet,U.cAtomQFNeighbourShift=Qet,U.cAtomQFNeighbours=oet,U.cAtomQFNewRingSize=Uet,U.cAtomQFNewRingSizeBits=Let,U.cAtomQFNewRingSizeShift=set,U.cAtomQFNoMoreNeighbours=yet,U.cAtomQFNoOfBits=het,U.cAtomQFNot0ENeighbours=Tet,U.cAtomQFNot0Hydrogen=cet,U.cAtomQFNot0Neighbours=wet,U.cAtomQFNot0PiElectrons=get,U.cAtomQFNot1ENeighbour=det,U.cAtomQFNot1Hydrogen=Bet,U.cAtomQFNot1Neighbour=vet,U.cAtomQFNot1PiElectron=Fet,U.cAtomQFNot2ENeighbours=ket,U.cAtomQFNot2Hydrogen=met,U.cAtomQFNot2Neighbours=bet,U.cAtomQFNot2PiElectrons=jet,U.cAtomQFNot2RingBonds=Ret,U.cAtomQFNot3ENeighbours=pet,U.cAtomQFNot3Hydrogen=Met,U.cAtomQFNot3Neighbours=Cet,U.cAtomQFNot3RingBonds=Het,U.cAtomQFNot4ENeighbours=Vet,U.cAtomQFNot4Neighbours=Eet,U.cAtomQFNot4RingBonds=Iet,U.cAtomQFNotAromatic=xet,U.cAtomQFNotChain=Net,U.cAtomQFNotCharge0=Get,U.cAtomQFNotChargeNeg=Oet,U.cAtomQFNotChargePos=qet,U.cAtomQFPiElectronBits=zet,U.cAtomQFPiElectronShift=Ket,U.cAtomQFPiElectrons=Jet,U.cAtomQFRingSize0=Yet,U.cAtomQFRingSize3=Xet,U.cAtomQFRingSize4=Zet,U.cAtomQFRingSize5=Wet,U.cAtomQFRingSize6=_et,U.cAtomQFRingSize7=$et,U.cAtomQFRingSizeLarge=aet,U.cAtomQFRingState=tAt,U.cAtomQFRingStateBits=eAt,U.cAtomQFRingStateShift=AAt,U.cAtomQFRxnParityBits=nAt,U.cAtomQFRxnParityHint=PAt,U.cAtomQFRxnParityInvert=rAt,U.cAtomQFRxnParityRacemize=iAt,U.cAtomQFRxnParityRetain=fAt,U.cAtomQFRxnParityShift=DAt,U.cAtomQFSimpleFeatures=uAt,U.cAtomQFSmallRingSize=QAt,U.cAtomQFSmallRingSizeBits=oAt,U.cAtomQFSmallRingSizeShift=UAt,U.cAtomQFStereoState=LAt,U.cAtomQFStereoStateBits=sAt,U.cAtomQFStereoStateShift=yAt,U.cAtomRadicalState=lAt,U.cAtomRadicalStateD=hAt,U.cAtomRadicalStateNone=TAt,U.cAtomRadicalStateS=cAt,U.cAtomRadicalStateShift=wAt,U.cAtomRadicalStateT=gAt,U.cAtomValence=_E,U.cBondCIPParityEorP=dAt,U.cBondCIPParityNone=BAt,U.cBondCIPParityProblem=vAt,U.cBondCIPParityZorM=FAt,U.cBondParityEor1=kAt,U.cBondParityNone=mAt,U.cBondParityUnknown=bAt,U.cBondParityZor2=jAt,U.cBondQFAllFeatures=RAt,U.cBondQFAromState=pAt,U.cBondQFAromStateBits=MAt,U.cBondQFAromStateShift=CAt,U.cBondQFAromatic=HAt,U.cBondQFBondTypes=VAt,U.cBondQFBondTypesBits=EAt,U.cBondQFBondTypesShift=SAt,U.cBondQFBridge=IAt,U.cBondQFBridgeBits=xAt,U.cBondQFBridgeMin=NAt,U.cBondQFBridgeMinBits=GAt,U.cBondQFBridgeMinShift=OAt,U.cBondQFBridgeShift=qAt,U.cBondQFBridgeSpan=zAt,U.cBondQFBridgeSpanBits=KAt,U.cBondQFBridgeSpanShift=JAt,U.cBondQFDelocalized=YAt,U.cBondQFDepictedFeatures=XAt,U.cBondQFDouble=ZAt,U.cBondQFMatchFormalOrder=WAt,U.cBondQFMatchStereo=_At,U.cBondQFMetalLigand=$At,U.cBondQFNarrowing=aAt,U.cBondQFNoOfBits=tnt,U.cBondQFNotAromatic=ent,U.cBondQFNotRing=Ant,U.cBondQFQuadruple=nnt,U.cBondQFQuintuple=Pnt,U.cBondQFRareBondTypes=rnt,U.cBondQFRareBondTypesBits=int,U.cBondQFRareBondTypesShift=fnt,U.cBondQFRing=Dnt,U.cBondQFRingSize=unt,U.cBondQFRingSizeBits=Qnt,U.cBondQFRingSizeShift=ont,U.cBondQFRingState=Unt,U.cBondQFRingStateBits=Lnt,U.cBondQFRingStateShift=snt,U.cBondQFSimpleFeatures=ynt,U.cBondQFSingle=lnt,U.cBondQFTriple=hnt,U.cBondTypeCross=Tnt,U.cBondTypeDeleted=cnt,U.cBondTypeDelocalized=wnt,U.cBondTypeDouble=gnt,U.cBondTypeDown=dnt,U.cBondTypeIncreaseOrder=Bnt,U.cBondTypeMaskSimple=vnt,U.cBondTypeMaskStereo=Fnt,U.cBondTypeMetalLigand=knt,U.cBondTypeQuadruple=mnt,U.cBondTypeQuintuple=bnt,U.cBondTypeSingle=jnt,U.cBondTypeTriple=Rnt,U.cBondTypeUp=pnt,U.cChiralityDiastereomers=Mnt,U.cChiralityEpimers=Cnt,U.cChiralityIsomerCountMask=Hnt,U.cChiralityKnownEnantiomer=Vnt,U.cChiralityMeso=Ent,U.cChiralityNotChiral=Snt,U.cChiralityRacemic=Int,U.cChiralityUnknown=xnt,U.cChiralityUnknownEnantiomer=Nnt,U.cCommonOxidationState=$E,U.cDefaultAVBL=Gnt,U.cDefaultAllowedPseudoAtoms=Ont,U.cDefaultAtomValence=qnt,U.cESRGroupBits=znt,U.cESRMaxGroups=Knt,U.cESRTypeAbs=Jnt,U.cESRTypeAnd=Ynt,U.cESRTypeOr=Xnt,U.cHelperAll=Znt,U.cHelperBitCIP=Wnt,U.cHelperBitIncludeNitrogenParities=_nt,U.cHelperBitNeighbours=$nt,U.cHelperBitParities=ant,U.cHelperBitRings=tPt,U.cHelperBitRingsSimple=ePt,U.cHelperBitSymmetrySimple=APt,U.cHelperBitSymmetryStereoHeterotopicity=nPt,U.cHelperBitsStereo=PPt,U.cHelperCIP=rPt,U.cHelperNeighbours=iPt,U.cHelperNone=fPt,U.cHelperParities=DPt,U.cHelperRings=uPt,U.cHelperRingsSimple=QPt,U.cHelperSymmetrySimple=oPt,U.cHelperSymmetryStereoHeterotopicity=UPt,U.cMaxAtomicNo=LPt,U.cMaxConnAtoms=sPt,U.cMoleculeColorDefault=yPt,U.cMoleculeColorNeutral=lPt,U.cPseudoAtomA=hPt,U.cPseudoAtomAttachmentPoint=TPt,U.cPseudoAtomPolymer=cPt,U.cPseudoAtomR=wPt,U.cPseudoAtomX=gPt,U.cPseudoAtomsAGroups=dPt,U.cPseudoAtomsAll=BPt,U.cPseudoAtomsAminoAcids=vPt,U.cPseudoAtomsHydrogenIsotops=FPt,U.cPseudoAtomsRGroups=kPt,U.cRoundedMass=aE,U.fromIDCode=NJ,U.fromMolfile=WN,U.fromMolfileWithAtomMap=$K,U.fromSmiles=KO,U.getAngle=HN,U.getAngleDif=Xx,U.getAtomicNoFromLabel=Zx,U.getDefaultAverageBondLength=hN,U.isAtomicNoElectronegative=bx,U.isAtomicNoElectropositive=mx,U.setDefaultAverageBondLength=nx,U=L0(\"OCL.MoleculeProperties\",Ag),U=L0(\"OCL.Reaction\",uB),U.create=qx,U.fromMolecules=TK,U.fromRxn=iq,U.fromSmiles=SO,U=L0(\"OCL.ReactionEncoder\",ww),U.CATALYST_DELIMITER=mPt,U.INCLUDE_ALL=bPt,U.INCLUDE_CATALYSTS=jPt,U.INCLUDE_COORDS=RPt,U.INCLUDE_DEFAULT=pPt,U.INCLUDE_DRAWING_OBJECTS=MPt,U.INCLUDE_MAPPING=CPt,U.INCLUDE_RXN_CODE_ONLY=HPt,U.MOLECULE_DELIMITER=VPt,U.OBJECT_DELIMITER=EPt,U.PRODUCT_IDENTIFIER=SPt,U.RETAIN_REACTANT_AND_PRODUCT_ORDER=IPt,U.decode=LZ,U.encode=l_,U=L0(\"OCL.Reactor\",sg),U=L0(\"OCL.Resources\",gw),U._register=Ax,U=L0(\"OCL.RingCollection\"),U.MAX_SMALL_RING_SIZE=xPt,U.MODE_SMALL_AND_LARGE_RINGS=NPt,U.MODE_SMALL_AND_LARGE_RINGS_AND_AROMATICITY=GPt,U.MODE_SMALL_RINGS_AND_AROMATICITY=OPt,U.MODE_SMALL_RINGS_ONLY=qPt,U=L0(\"OCL.SDFileParser\",zd),U=L0(\"OCL.SSSearcher\",CB),U=L0(\"OCL.SSSearcherWithIndex\",m7),U.bitCount=$I,U.getHexStringFromIndex=qI,U.getIndexFromHexString=zI,U.getKeyIDCode=tx,U.getSimilarityAngleCosine=Tx,U.getSimilarityTanimoto=cx,U=L0(\"OCL.SmilesParser\",sh),Vh(),U=L0(\"OCL.ToxicityPredictor\",pg),U.RISK_HIGH=zPt,U.RISK_LOW=KPt,U.RISK_NAMES=eS,U.RISK_NO=JPt,U.RISK_UNKNOWN=YPt,U.TYPE_IRRITANT=XPt,U.TYPE_MUTAGENIC=ZPt,U.TYPE_REPRODUCTIVE_EFFECTIVE=WPt,U.TYPE_TUMORIGENIC=_Pt,U=L0(\"OCL.Transformer\",wd),U=L0(\"OCL.Util\",dw),U.getHoseCodesFromDiastereotopicID=iJ,U=L0(\"java.io.Serializable\"),U.$isInstance=GJ,Er(),U=L0(\"java.lang.Boolean\"),U.$isInstance=ZN,U=L0(\"java.lang.CharSequence\"),U.$isInstance=Cz,U=L0(\"java.lang.Cloneable\"),U.$isInstance=kz,U=L0(\"java.lang.Comparable\"),U.$isInstance=rJ,U=L0(\"java.lang.Double\"),U.$isInstance=cN,U=L0(\"java.lang.Number\"),U.$isInstance=aO,U=L0(\"java.lang.String\"),U.$isInstance=wN,U=L0(\"java.lang.Throwable\"),U.of=LK,U=L0(\"java.util.List\"),U.copyOf=DJ,U=L0(\"java.util.Map\"),U.copyOf=WG,U=L0(\"java.util.Set\"),U.copyOf=VJ,U=L0(\"javaemul.internal.HashCodes\",vw),U.getIdentityHashCode=KJ,U.getNextHash=KI,U.getObjectIdentityHashCode=jD,U=L0(\"javaemul.internal.JsUtils\"),U.toDoubleFromUnsignedInt=aI;var VS=HO,Z8t=FY;Eq(yI),ez(\"permProps\",[[]]),C1(\"moduleStartup\",\"moduleEvalEnd\"),Z8t(kt.__errFn,kt.__moduleName,kt.__moduleBase,kt.__softPermutationId,kt.__computePropValue),C1(\"moduleStartup\",\"end\"),vt&&vt.permProps&&kt.__moduleStartupDone(vt.permProps);let ES=w.OCL;return ES.version=\"9.25.0\",ES}var Art=typeof window<\"u\"&&typeof window.document<\"u\",E8;E8={document:{compatMode:\"CSS1Compat\"}},E8.setTimeout=globalThis.setTimeout?globalThis.setTimeout.bind(globalThis):rD,E8.clearTimeout=globalThis.clearTimeout?globalThis.clearTimeout.bind(globalThis):rD,E8.setInterval=globalThis.setInterval?globalThis.setInterval.bind(globalThis):rD,E8.clearInterval=globalThis.clearInterval?globalThis.clearInterval.bind(globalThis):rD,E8.Error=globalThis.Error,E8.Map=globalThis.Map,E8.Math=globalThis.Math,E8.RegExp=globalThis.RegExp,E8.TypeError=globalThis.TypeError;var nrt=ert(E8),X0=nrt;function sI(w){let Y=w.Resources._register.bind(w.Resources);if(delete w.Resources._register,w.Resources.register=function(kt){typeof kt==\"string\"&&(kt=JSON.parse(kt));let C1=new TextEncoder;if(typeof kt!=\"object\"||kt===null)throw new TypeError(\"resources must be an object\");let jt={};for(let[T1,u1]of Object.entries(kt)){if(typeof u1!=\"string\")throw new TypeError(`resource ${T1} must be a string`);jt[T1]=C1.encode(u1)}Y(jt)},w.Resources.registerFromUrl=async function(kt=Prt()){let jt=await(await fetch(kt)).json(),T1=new TextEncoder,u1=Object.fromEntries(Object.entries(jt).map(([h1,s1])=>[h1,T1.encode(s1)]));Y(u1)},typeof process<\"u\"){let ot=function(){let kt=process.getBuiltinModule(\"node:path\"),C1=kt.join(import.meta.dirname,\"resources.json\");return import.meta.filename.endsWith(\"register_resources.js\")&&(C1=kt.join(import.meta.dirname,\"../dist/resources.json\")),C1};var vt=ot;w.Resources.registerFromNodejs=function(C1=ot()){let T1=process.getBuiltinModule(\"node:fs\").readFileSync(C1,\"ascii\");w.Resources.register(T1)}}else w.Resources.registerFromNodejs=function(){throw new Error(\"Resources.registerFromNodejs can only be called from Node.js\")}}function Prt(){return new URL(\"resources.json\",import.meta.url).href}hw(X0);LI(X0);sI(X0);var Aot=X0,not=X0.CanvasEditor,Pot=X0.registerCustomElement,rot=X0.Canonizer,iot=X0.CanonizerUtil,fot=X0.ConformerGenerator,Dot=X0.DrugScoreCalculator,uot=X0.DruglikenessPredictor,Qot=X0.ForceFieldMMFF94,oot=X0.MCS,Uot=X0.Molecule,Lot=X0.MoleculeProperties,sot=X0.Reaction,yot=X0.ReactionEncoder,lot=X0.Reactor,hot=X0.Resources,Tot=X0.RingCollection,cot=X0.SDFileParser,wot=X0.SSSearcher,got=X0.SSSearcherWithIndex,dot=X0.SmilesParser,Bot=X0.ToxicityPredictor,vot=X0.Transformer,Fot=X0.Util,kot=X0.version;export{rot as Canonizer,iot as CanonizerUtil,not as CanvasEditor,fot as ConformerGenerator,Dot as DrugScoreCalculator,uot as DruglikenessPredictor,Qot as ForceFieldMMFF94,oot as MCS,Uot as Molecule,Lot as MoleculeProperties,sot as Reaction,yot as ReactionEncoder,lot as Reactor,hot as Resources,Tot as RingCollection,cot as SDFileParser,wot as SSSearcher,got as SSSearcherWithIndex,dot as SmilesParser,Bot as ToxicityPredictor,vot as Transformer,Fot as Util,Aot as default,Pot as registerCustomElement,kot as version};\n/**\n * openchemlib - Manipulate molecules\n * @version v9.25.0\n * @date 2026-08-14T08:23:36.230Z\n * @link https://github.com/cheminfo/openchemlib-js\n * @license BSD-3-Clause\n*/\n","// Generated by CoffeeScript 1.8.0\n(function() {\n  var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min, nlargest, nsmallest, updateItem, _siftdown, _siftup;\n\n  floor = Math.floor, min = Math.min;\n\n\n  /*\n  Default comparison function to be used\n   */\n\n  defaultCmp = function(x, y) {\n    if (x < y) {\n      return -1;\n    }\n    if (x > y) {\n      return 1;\n    }\n    return 0;\n  };\n\n\n  /*\n  Insert item x in list a, and keep it sorted assuming a is sorted.\n  \n  If x is already in a, insert it to the right of the rightmost x.\n  \n  Optional args lo (default 0) and hi (default a.length) bound the slice\n  of a to be searched.\n   */\n\n  insort = function(a, x, lo, hi, cmp) {\n    var mid;\n    if (lo == null) {\n      lo = 0;\n    }\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    if (lo < 0) {\n      throw new Error('lo must be non-negative');\n    }\n    if (hi == null) {\n      hi = a.length;\n    }\n    while (lo < hi) {\n      mid = floor((lo + hi) / 2);\n      if (cmp(x, a[mid]) < 0) {\n        hi = mid;\n      } else {\n        lo = mid + 1;\n      }\n    }\n    return ([].splice.apply(a, [lo, lo - lo].concat(x)), x);\n  };\n\n\n  /*\n  Push item onto heap, maintaining the heap invariant.\n   */\n\n  heappush = function(array, item, cmp) {\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    array.push(item);\n    return _siftdown(array, 0, array.length - 1, cmp);\n  };\n\n\n  /*\n  Pop the smallest item off the heap, maintaining the heap invariant.\n   */\n\n  heappop = function(array, cmp) {\n    var lastelt, returnitem;\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    lastelt = array.pop();\n    if (array.length) {\n      returnitem = array[0];\n      array[0] = lastelt;\n      _siftup(array, 0, cmp);\n    } else {\n      returnitem = lastelt;\n    }\n    return returnitem;\n  };\n\n\n  /*\n  Pop and return the current smallest value, and add the new item.\n  \n  This is more efficient than heappop() followed by heappush(), and can be\n  more appropriate when using a fixed size heap. Note that the value\n  returned may be larger than item! That constrains reasonable use of\n  this routine unless written as part of a conditional replacement:\n      if item > array[0]\n        item = heapreplace(array, item)\n   */\n\n  heapreplace = function(array, item, cmp) {\n    var returnitem;\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    returnitem = array[0];\n    array[0] = item;\n    _siftup(array, 0, cmp);\n    return returnitem;\n  };\n\n\n  /*\n  Fast version of a heappush followed by a heappop.\n   */\n\n  heappushpop = function(array, item, cmp) {\n    var _ref;\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    if (array.length && cmp(array[0], item) < 0) {\n      _ref = [array[0], item], item = _ref[0], array[0] = _ref[1];\n      _siftup(array, 0, cmp);\n    }\n    return item;\n  };\n\n\n  /*\n  Transform list into a heap, in-place, in O(array.length) time.\n   */\n\n  heapify = function(array, cmp) {\n    var i, _i, _j, _len, _ref, _ref1, _results, _results1;\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    _ref1 = (function() {\n      _results1 = [];\n      for (var _j = 0, _ref = floor(array.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--){ _results1.push(_j); }\n      return _results1;\n    }).apply(this).reverse();\n    _results = [];\n    for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n      i = _ref1[_i];\n      _results.push(_siftup(array, i, cmp));\n    }\n    return _results;\n  };\n\n\n  /*\n  Update the position of the given item in the heap.\n  This function should be called every time the item is being modified.\n   */\n\n  updateItem = function(array, item, cmp) {\n    var pos;\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    pos = array.indexOf(item);\n    if (pos === -1) {\n      return;\n    }\n    _siftdown(array, 0, pos, cmp);\n    return _siftup(array, pos, cmp);\n  };\n\n\n  /*\n  Find the n largest elements in a dataset.\n   */\n\n  nlargest = function(array, n, cmp) {\n    var elem, result, _i, _len, _ref;\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    result = array.slice(0, n);\n    if (!result.length) {\n      return result;\n    }\n    heapify(result, cmp);\n    _ref = array.slice(n);\n    for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n      elem = _ref[_i];\n      heappushpop(result, elem, cmp);\n    }\n    return result.sort(cmp).reverse();\n  };\n\n\n  /*\n  Find the n smallest elements in a dataset.\n   */\n\n  nsmallest = function(array, n, cmp) {\n    var elem, i, los, result, _i, _j, _len, _ref, _ref1, _results;\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    if (n * 10 <= array.length) {\n      result = array.slice(0, n).sort(cmp);\n      if (!result.length) {\n        return result;\n      }\n      los = result[result.length - 1];\n      _ref = array.slice(n);\n      for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n        elem = _ref[_i];\n        if (cmp(elem, los) < 0) {\n          insort(result, elem, 0, null, cmp);\n          result.pop();\n          los = result[result.length - 1];\n        }\n      }\n      return result;\n    }\n    heapify(array, cmp);\n    _results = [];\n    for (i = _j = 0, _ref1 = min(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; i = 0 <= _ref1 ? ++_j : --_j) {\n      _results.push(heappop(array, cmp));\n    }\n    return _results;\n  };\n\n  _siftdown = function(array, startpos, pos, cmp) {\n    var newitem, parent, parentpos;\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    newitem = array[pos];\n    while (pos > startpos) {\n      parentpos = (pos - 1) >> 1;\n      parent = array[parentpos];\n      if (cmp(newitem, parent) < 0) {\n        array[pos] = parent;\n        pos = parentpos;\n        continue;\n      }\n      break;\n    }\n    return array[pos] = newitem;\n  };\n\n  _siftup = function(array, pos, cmp) {\n    var childpos, endpos, newitem, rightpos, startpos;\n    if (cmp == null) {\n      cmp = defaultCmp;\n    }\n    endpos = array.length;\n    startpos = pos;\n    newitem = array[pos];\n    childpos = 2 * pos + 1;\n    while (childpos < endpos) {\n      rightpos = childpos + 1;\n      if (rightpos < endpos && !(cmp(array[childpos], array[rightpos]) < 0)) {\n        childpos = rightpos;\n      }\n      array[pos] = array[childpos];\n      pos = childpos;\n      childpos = 2 * pos + 1;\n    }\n    array[pos] = newitem;\n    return _siftdown(array, startpos, pos, cmp);\n  };\n\n  Heap = (function() {\n    Heap.push = heappush;\n\n    Heap.pop = heappop;\n\n    Heap.replace = heapreplace;\n\n    Heap.pushpop = heappushpop;\n\n    Heap.heapify = heapify;\n\n    Heap.updateItem = updateItem;\n\n    Heap.nlargest = nlargest;\n\n    Heap.nsmallest = nsmallest;\n\n    function Heap(cmp) {\n      this.cmp = cmp != null ? cmp : defaultCmp;\n      this.nodes = [];\n    }\n\n    Heap.prototype.push = function(x) {\n      return heappush(this.nodes, x, this.cmp);\n    };\n\n    Heap.prototype.pop = function() {\n      return heappop(this.nodes, this.cmp);\n    };\n\n    Heap.prototype.peek = function() {\n      return this.nodes[0];\n    };\n\n    Heap.prototype.contains = function(x) {\n      return this.nodes.indexOf(x) !== -1;\n    };\n\n    Heap.prototype.replace = function(x) {\n      return heapreplace(this.nodes, x, this.cmp);\n    };\n\n    Heap.prototype.pushpop = function(x) {\n      return heappushpop(this.nodes, x, this.cmp);\n    };\n\n    Heap.prototype.heapify = function() {\n      return heapify(this.nodes, this.cmp);\n    };\n\n    Heap.prototype.updateItem = function(x) {\n      return updateItem(this.nodes, x, this.cmp);\n    };\n\n    Heap.prototype.clear = function() {\n      return this.nodes = [];\n    };\n\n    Heap.prototype.empty = function() {\n      return this.nodes.length === 0;\n    };\n\n    Heap.prototype.size = function() {\n      return this.nodes.length;\n    };\n\n    Heap.prototype.clone = function() {\n      var heap;\n      heap = new Heap();\n      heap.nodes = this.nodes.slice(0);\n      return heap;\n    };\n\n    Heap.prototype.toArray = function() {\n      return this.nodes.slice(0);\n    };\n\n    Heap.prototype.insert = Heap.prototype.push;\n\n    Heap.prototype.top = Heap.prototype.peek;\n\n    Heap.prototype.front = Heap.prototype.peek;\n\n    Heap.prototype.has = Heap.prototype.contains;\n\n    Heap.prototype.copy = Heap.prototype.clone;\n\n    return Heap;\n\n  })();\n\n  (function(root, factory) {\n    if (typeof define === 'function' && define.amd) {\n      return define([], factory);\n    } else if (typeof exports === 'object') {\n      return module.exports = factory();\n    } else {\n      return root.Heap = factory();\n    }\n  })(this, function() {\n    return Heap;\n  });\n\n}).call(this);\n","export const GAUSSIAN_EXP_FACTOR = -4 * Math.LN2;\n/**\n * A pseudo-Voigt is a gaussian plus a lorentzian. Beyond 3.74 fwhm from the\n * centre the gaussian part is down to 1.4e-17 — too small to change a shape of\n * height one — while the lorentzian part is still 1.8e-2 and fades much more\n * slowly. Past that distance the gaussian is skipped: the `Math.exp` it costs\n * cannot change the result, and most points of a wide window lie out there.\n *\n * The limit is stored squared, so the test is `(x / fwhm)² > 14`, which saves a\n * square root. The same value works for every mixing ratio `mu`, except `mu = 1`\n * where the shape is a pure gaussian: with no lorentzian part left, skipping\n * would return zero instead of a very small number, so that case is never\n * skipped.\n */\nexport const GAUSSIAN_CUTOFF = 14;\nexport const ROOT_PI_OVER_LN2 = Math.sqrt(Math.PI / Math.LN2);\nexport const ROOT_LN2 = Math.sqrt(Math.LN2);\nexport const ROOT_THREE = Math.sqrt(3);\nexport const ROOT_2LN2 = Math.sqrt(2 * Math.LN2);\nexport const ROOT_2LN2_MINUS_ONE = Math.sqrt(2 * Math.LN2) - 1;\n//# sourceMappingURL=constants.js.map","import { GAUSSIAN_EXP_FACTOR, ROOT_2LN2, ROOT_LN2, ROOT_PI_OVER_LN2, } from \"../../../util/constants.js\";\nimport erfinv from \"../../../util/erfinv.js\";\nexport class Gaussian {\n    kind = 'gaussian';\n    /**\n     * Full width at half maximum.\n     * @default 500\n     */\n    fwhm;\n    constructor(options = {}) {\n        const { fwhm = 500, sd } = options;\n        this.fwhm = sd ? gaussianWidthToFWHM(2 * sd) : fwhm;\n    }\n    fwhmToWidth(fwhm = this.fwhm) {\n        return gaussianFwhmToWidth(fwhm);\n    }\n    widthToFWHM(width) {\n        return gaussianWidthToFWHM(width);\n    }\n    fct(x) {\n        return gaussianFct(x, this.fwhm);\n    }\n    getArea(height = calculateGaussianHeight({ fwhm: this.fwhm })) {\n        return getGaussianArea({ fwhm: this.fwhm, height });\n    }\n    getFactor(area) {\n        return getGaussianFactor(area);\n    }\n    getData(options = {}) {\n        return getGaussianData(this, options);\n    }\n    calculateHeight(area = 1) {\n        return calculateGaussianHeight({ fwhm: this.fwhm, area });\n    }\n    getParameters() {\n        return ['fwhm'];\n    }\n    /**\n     * Descriptor of this shape, so `JSON.stringify` round-trips through `getShape1D`.\n     * @returns the shape descriptor.\n     */\n    toJSON() {\n        return { kind: this.kind, fwhm: this.fwhm };\n    }\n    derivative(x) {\n        const { fct, dx, dFwhm } = gaussianDerivative(x, this.fwhm);\n        return { fct, dx, parameters: [dFwhm] };\n    }\n}\n/**\n * Calculate the peak height for a given area and fwhm.\n * @param options - fwhm, area, and optional sd.\n * @returns the peak height.\n */\nexport function calculateGaussianHeight(options) {\n    const { area = 1, sd } = options;\n    let { fwhm = 500 } = options;\n    if (sd)\n        fwhm = gaussianWidthToFWHM(2 * sd);\n    return (2 * area) / ROOT_PI_OVER_LN2 / fwhm;\n}\n/**\n * Evaluate the gaussian function centered at x=0.\n * @param x - position at which to evaluate.\n * @param fwhm - full width at half maximum.\n * @returns the intensity at x.\n */\nexport function gaussianFct(x, fwhm) {\n    return Math.exp(GAUSSIAN_EXP_FACTOR * (x / fwhm) ** 2);\n}\n/**\n * Analytical value and partial derivatives of the gaussian function centered at x=0.\n * @param x - position at which to evaluate.\n * @param fwhm - full width at half maximum.\n * @returns the value `fct` and its partial derivatives with respect to `x` (`dx`) and `fwhm` (`dFwhm`).\n */\nexport function gaussianDerivative(x, fwhm) {\n    const fct = gaussianFct(x, fwhm);\n    const dx = ((2 * GAUSSIAN_EXP_FACTOR * x) / (fwhm * fwhm)) * fct;\n    const dFwhm = ((-2 * GAUSSIAN_EXP_FACTOR * x * x) / (fwhm * fwhm * fwhm)) * fct;\n    return { fct, dx, dFwhm };\n}\n/**\n * Convert inflection-point width to full width at half maximum.\n * @param width - width between inflection points.\n * @returns full width at half maximum.\n */\nexport function gaussianWidthToFWHM(width) {\n    return width * ROOT_2LN2;\n}\n/**\n * Convert full width at half maximum to inflection-point width.\n * @param fwhm - full width at half maximum.\n * @returns width between inflection points.\n */\nexport function gaussianFwhmToWidth(fwhm) {\n    return fwhm / ROOT_2LN2;\n}\n/**\n * Calculate the area under a gaussian peak.\n * @param options - fwhm, height, and optional sd.\n * @returns the area.\n */\nexport function getGaussianArea(options) {\n    const { sd, height = 1 } = options;\n    let { fwhm = 500 } = options;\n    if (sd)\n        fwhm = gaussianWidthToFWHM(2 * sd);\n    return (height * ROOT_PI_OVER_LN2 * fwhm) / 2;\n}\n/**\n * Calculate the width factor corresponding to a given area coverage fraction.\n * @param area - target area fraction (0–1). Defaults to `0.9999`.\n * @returns the factor by which to multiply fwhm to cover the given area.\n */\nexport function getGaussianFactor(area = 0.9999) {\n    if (area >= 1) {\n        throw new Error('area should be (0 - 1)');\n    }\n    return erfinv(area) / ROOT_LN2;\n}\n/**\n * Generate an intensity array for a gaussian shape.\n * @param shape - gaussian shape parameters (fwhm, sd).\n * @param options - sampling options (length, factor, height).\n * @returns Float64Array of intensity values.\n */\nexport function getGaussianData(shape = {}, options = {}) {\n    const { sd } = shape;\n    let { fwhm = 500 } = shape;\n    if (sd)\n        fwhm = gaussianWidthToFWHM(2 * sd);\n    const { factor = getGaussianFactor(), height = calculateGaussianHeight({ fwhm }), } = options;\n    let { length } = options;\n    if (!length) {\n        length = Math.min(Math.ceil(fwhm * factor), 2 ** 25 - 1);\n        if (length % 2 === 0)\n            length++;\n    }\n    const center = (length - 1) / 2;\n    const data = new Float64Array(length);\n    for (let i = 0; i <= center; i++) {\n        const value = gaussianFct(i - center, fwhm) * height;\n        data[i] = value;\n        data[length - 1 - i] = value;\n    }\n    return data;\n}\n//# sourceMappingURL=Gaussian.js.map","// https://en.wikipedia.org/wiki/Error_function#Inverse_functions\n// This code yields to a good approximation\n// If needed a better implementation using polynomial can be found on https://en.wikipedia.org/wiki/Error_function#Inverse_functions\n/**\n * Approximate inverse error function.\n * @param x - value in the range (-1, 1).\n * @returns erfinv(x).\n * @see https://en.wikipedia.org/wiki/Error_function#Inverse_functions\n */\nexport default function erfinv(x) {\n    const a = 0.147;\n    if (x === 0)\n        return 0;\n    const ln1MinusXSqrd = Math.log(1 - x * x);\n    const lnEtcBy2Plus2 = ln1MinusXSqrd / 2 + 2 / (Math.PI * a);\n    const firstSqrt = Math.sqrt(lnEtcBy2Plus2 ** 2 - ln1MinusXSqrd / a);\n    const secondSqrt = Math.sqrt(firstSqrt - lnEtcBy2Plus2);\n    return secondSqrt * (x > 0 ? 1 : -1);\n}\n//# sourceMappingURL=erfinv.js.map","import { ROOT_THREE } from \"../../../util/constants.js\";\nexport class Lorentzian {\n    kind = 'lorentzian';\n    /**\n     * Full width at half maximum.\n     * @default 500\n     */\n    fwhm;\n    constructor(options = {}) {\n        const { fwhm = 500 } = options;\n        this.fwhm = fwhm;\n    }\n    fwhmToWidth(fwhm = this.fwhm) {\n        return lorentzianFwhmToWidth(fwhm);\n    }\n    widthToFWHM(width) {\n        return lorentzianWidthToFWHM(width);\n    }\n    fct(x) {\n        return lorentzianFct(x, this.fwhm);\n    }\n    getArea(height = 1) {\n        return getLorentzianArea({ fwhm: this.fwhm, height });\n    }\n    getFactor(area) {\n        return getLorentzianFactor(area);\n    }\n    getData(options = {}) {\n        return getLorentzianData(this, options);\n    }\n    calculateHeight(area = 1) {\n        return calculateLorentzianHeight({ fwhm: this.fwhm, area });\n    }\n    getParameters() {\n        return ['fwhm'];\n    }\n    /**\n     * Descriptor of this shape, so `JSON.stringify` round-trips through `getShape1D`.\n     * @returns the shape descriptor.\n     */\n    toJSON() {\n        return { kind: this.kind, fwhm: this.fwhm };\n    }\n    derivative(x) {\n        const { fct, dx, dFwhm } = lorentzianDerivative(x, this.fwhm);\n        return { fct, dx, parameters: [dFwhm] };\n    }\n}\nexport const calculateLorentzianHeight = ({ fwhm = 1, area = 1 }) => {\n    return (2 * area) / Math.PI / fwhm;\n};\nexport const getLorentzianArea = (options) => {\n    const { fwhm = 500, height = 1 } = options;\n    return (height * Math.PI * fwhm) / 2;\n};\nexport const lorentzianFct = (x, fwhm) => {\n    return fwhm ** 2 / (4 * x ** 2 + fwhm ** 2);\n};\n/**\n * Analytical value and partial derivatives of the lorentzian function centered at x=0.\n * @param x - position at which to evaluate.\n * @param fwhm - full width at half maximum.\n * @returns the value `fct` and its partial derivatives with respect to `x` (`dx`) and `fwhm` (`dFwhm`).\n */\nexport function lorentzianDerivative(x, fwhm) {\n    const denominator = 4 * x * x + fwhm * fwhm;\n    const fct = (fwhm * fwhm) / denominator;\n    const dx = (-8 * x * fwhm * fwhm) / (denominator * denominator);\n    const dFwhm = (8 * fwhm * x * x) / (denominator * denominator);\n    return { fct, dx, dFwhm };\n}\nexport const lorentzianWidthToFWHM = (width) => {\n    return width * ROOT_THREE;\n};\nexport const lorentzianFwhmToWidth = (fwhm) => {\n    return fwhm / ROOT_THREE;\n};\nconst lorentzianQuantile = (p) => Math.tan(Math.PI * (p - 0.5));\nexport const getLorentzianFactor = (area = 0.9999) => {\n    if (area >= 1) {\n        throw new Error('area should be (0 - 1)');\n    }\n    const halfResidual = (1 - area) * 0.5;\n    return ((lorentzianQuantile(1 - halfResidual) - lorentzianQuantile(halfResidual)) /\n        2);\n};\nexport const getLorentzianData = (shape = {}, options = {}) => {\n    const { fwhm = 500 } = shape;\n    const { factor = getLorentzianFactor(), height = calculateLorentzianHeight({ fwhm, area: 1 }), } = options;\n    let { length } = options;\n    if (!length) {\n        length = Math.min(Math.ceil(fwhm * factor), 2 ** 25 - 1);\n        if (length % 2 === 0)\n            length++;\n    }\n    const center = (length - 1) / 2;\n    const data = new Float64Array(length);\n    for (let i = 0; i <= center; i++) {\n        const value = lorentzianFct(i - center, fwhm) * height;\n        data[i] = value;\n        data[length - 1 - i] = value;\n    }\n    return data;\n};\n//# sourceMappingURL=Lorentzian.js.map","import { calculateLorentzianHeight, getLorentzianFactor, lorentzianFwhmToWidth, lorentzianWidthToFWHM, } from \"../lorentzian/Lorentzian.js\";\nexport class LorentzianDispersive {\n    kind = 'lorentzianDispersive';\n    /**\n     * Full width at half maximum.\n     * @default 500\n     */\n    fwhm;\n    constructor(options = {}) {\n        const { fwhm = 500 } = options;\n        this.fwhm = fwhm;\n    }\n    fwhmToWidth(fwhm = this.fwhm) {\n        return lorentzianFwhmToWidth(fwhm);\n    }\n    widthToFWHM(width) {\n        return lorentzianWidthToFWHM(width);\n    }\n    fct(x) {\n        return lorentzianDispersiveFct(x, this.fwhm);\n    }\n    getArea() {\n        return 0;\n    }\n    getFactor(area) {\n        return getLorentzianFactor(area);\n    }\n    getData(options = {}) {\n        return getLorentzianDispersiveData(this, options);\n    }\n    calculateHeight(area = 1) {\n        return calculateLorentzianHeight({ fwhm: this.fwhm, area });\n    }\n    getParameters() {\n        return ['fwhm'];\n    }\n    /**\n     * Descriptor of this shape, so `JSON.stringify` round-trips through `getShape1D`.\n     * @returns the shape descriptor.\n     */\n    toJSON() {\n        return { kind: this.kind, fwhm: this.fwhm };\n    }\n    derivative(x) {\n        const { fct, dx, dFwhm } = lorentzianDispersiveDerivative(x, this.fwhm);\n        return { fct, dx, parameters: [dFwhm] };\n    }\n}\nexport const lorentzianDispersiveFct = (x, fwhm) => {\n    return (2 * fwhm * x) / (4 * x ** 2 + fwhm ** 2);\n};\n/**\n * Analytical value and partial derivatives of the dispersive lorentzian function centered at x=0.\n * @param x - position at which to evaluate.\n * @param fwhm - full width at half maximum.\n * @returns the value `fct` and its partial derivatives with respect to `x` (`dx`) and `fwhm` (`dFwhm`).\n */\nexport function lorentzianDispersiveDerivative(x, fwhm) {\n    const denominator = 4 * x * x + fwhm * fwhm;\n    const fct = (2 * fwhm * x) / denominator;\n    const dx = (2 * fwhm * (fwhm * fwhm - 4 * x * x)) / (denominator * denominator);\n    const dFwhm = (2 * x * (4 * x * x - fwhm * fwhm)) / (denominator * denominator);\n    return { fct, dx, dFwhm };\n}\nexport const getLorentzianDispersiveData = (shape = {}, options = {}) => {\n    const { fwhm = 500 } = shape;\n    const { factor = getLorentzianFactor(), height = calculateLorentzianHeight({ fwhm, area: 1 }), } = options;\n    let { length } = options;\n    if (!length) {\n        length = Math.min(Math.ceil(fwhm * factor), 2 ** 25 - 1);\n        if (length % 2 === 0)\n            length++;\n    }\n    const center = (length - 1) / 2;\n    const data = new Float64Array(length);\n    for (let i = 0; i <= center; i++) {\n        const value = lorentzianDispersiveFct(i - center, fwhm) * height;\n        data[i] = value;\n        data[length - 1 - i] = -value;\n    }\n    return data;\n};\n//# sourceMappingURL=LorentzianDispersive.js.map","import { getGaussianFactor } from \"../gaussian/Gaussian.js\";\nimport { getLorentzianFactor } from \"../lorentzian/Lorentzian.js\";\n/**\n * Find the k factor for a pseudo-Voigt distribution such that the\n * cumulative probability pPseudoVoigt(k, mu) equals `pTarget`.\n *\n * Uses a simple bisection search (with exponential bracketing) to\n * invert the pseudo-Voigt cumulative function. Special cases:\n * - mu === 1 -> reduces to the gaussian case\n * - mu === 0 -> reduces to the lorentzian case\n * @param pTarget - Target cumulative probability in (0,1)\n * @param mu - Gaussian fraction in [0,1]\n * @param tol - Convergence tolerance\n * @param maxIter - Maximum number of bisection iterations\n * @returns the factor k such that pPseudoVoigt(k, mu) ~= pTarget\n */\nexport function pseudoVoigtFindFactor(pTarget, mu, tol = 1e-9, maxIter = 200) {\n    if (pTarget <= 0 || pTarget >= 1) {\n        throw new RangeError('pTarget must be in (0,1)');\n    }\n    if (mu === 1) {\n        return getGaussianFactor(pTarget);\n    }\n    else if (mu === 0) {\n        return getLorentzianFactor(pTarget);\n    }\n    // bisection\n    let lo = 0;\n    let hi = 10;\n    let it = 0;\n    while (pPseudoVoigt(hi, mu) < pTarget && it++ < 200)\n        hi *= 2;\n    for (let i = 0; i < maxIter; i++) {\n        const mid = 0.5 * (lo + hi);\n        const val = pPseudoVoigt(mid, mu);\n        if (Math.abs(val - pTarget) < tol)\n            return mid;\n        if (val < pTarget) {\n            lo = mid;\n        }\n        else {\n            hi = mid;\n        }\n    }\n    return 0.5 * (lo + hi);\n}\nfunction erf(x) {\n    const sign = x < 0 ? -1 : 1;\n    x = Math.abs(x);\n    const a1 = 0.254829592;\n    const a2 = -0.284496736;\n    const a3 = 1.421413741;\n    const a4 = -1.453152027;\n    const a5 = 1.061405429;\n    const p = 0.3275911;\n    const t = 1 / (1 + p * x);\n    const y = 1 - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t * Math.exp(-x * x);\n    return sign * y;\n}\nconst sqrtLn2 = Math.sqrt(Math.log(2));\nfunction pGaussian(k) {\n    return erf(k * sqrtLn2);\n}\nfunction pLorentz(k) {\n    return (2 / Math.PI) * Math.atan(k);\n}\nfunction pPseudoVoigt(k, mu) {\n    return (1 - mu) * pLorentz(k) + mu * pGaussian(k);\n}\n//# sourceMappingURL=computeFactor.js.map","import { GAUSSIAN_CUTOFF, GAUSSIAN_EXP_FACTOR, ROOT_2LN2_MINUS_ONE, ROOT_PI_OVER_LN2, } from \"../../../util/constants.js\";\nimport { gaussianFct } from \"../gaussian/Gaussian.js\";\nimport { lorentzianFct } from \"../lorentzian/Lorentzian.js\";\nimport { pseudoVoigtFindFactor } from \"./computeFactor.js\";\nexport class PseudoVoigt {\n    kind = 'pseudoVoigt';\n    fwhm;\n    /**\n     * Ratio of gaussian contribution in the shape\n     * @default 0.5\n     */\n    mu;\n    constructor(options = {}) {\n        const { fwhm = 500, mu = 0.5 } = options;\n        this.mu = mu;\n        this.fwhm = fwhm;\n    }\n    fwhmToWidth(fwhm = this.fwhm, mu = this.mu) {\n        return pseudoVoigtFwhmToWidth(fwhm, mu);\n    }\n    widthToFWHM(width, mu = this.mu) {\n        return pseudoVoigtWidthToFWHM(width, mu);\n    }\n    fct(x) {\n        return pseudoVoigtFct(x, this.fwhm, this.mu);\n    }\n    getArea(height = 1) {\n        return getPseudoVoigtArea({ fwhm: this.fwhm, height, mu: this.mu });\n    }\n    getFactor(area) {\n        return getPseudoVoigtFactor(area, this.mu);\n    }\n    getData(options = {}) {\n        const { length, factor, height = calculatePseudoVoigtHeight({\n            fwhm: this.fwhm,\n            mu: this.mu,\n            area: 1,\n        }), } = options;\n        return getPseudoVoigtData(this, { factor, length, height });\n    }\n    calculateHeight(area = 1) {\n        return calculatePseudoVoigtHeight({ fwhm: this.fwhm, mu: this.mu, area });\n    }\n    getParameters() {\n        return ['fwhm', 'mu'];\n    }\n    /**\n     * Descriptor of this shape, so `JSON.stringify` round-trips through `getShape1D`.\n     * @returns the shape descriptor.\n     */\n    toJSON() {\n        return { kind: this.kind, fwhm: this.fwhm, mu: this.mu };\n    }\n    derivative(x) {\n        const { fct, dx, dFwhm, dMu } = pseudoVoigtDerivative(x, this.fwhm, this.mu);\n        return { fct, dx, parameters: [dFwhm, dMu] };\n    }\n}\nexport const calculatePseudoVoigtHeight = (options = {}) => {\n    const { fwhm = 1, mu = 0.5, area = 1 } = options;\n    return (2 * area) / (fwhm * (mu * ROOT_PI_OVER_LN2 + (1 - mu) * Math.PI));\n};\nexport const pseudoVoigtFct = (x, fwhm, mu) => {\n    // at mu = 1 the shape *is* the gaussian: there is no lorentzian half left to\n    // carry the tail, so the gaussian is evaluated however far out it is asked for\n    if (mu === 1)\n        return gaussianFct(x, fwhm);\n    const lorentzian = (1 - mu) * lorentzianFct(x, fwhm);\n    const z = x / fwhm;\n    if (z * z > GAUSSIAN_CUTOFF)\n        return lorentzian;\n    return lorentzian + mu * gaussianFct(x, fwhm);\n};\n/**\n * Analytical value and partial derivatives of the pseudo-Voigt function centered at x=0.\n * @param x - position at which to evaluate.\n * @param fwhm - full width at half maximum.\n * @param mu - ratio of gaussian contribution in the shape.\n * @returns the value `fct` and its partial derivatives with respect to `x` (`dx`), `fwhm` (`dFwhm`) and `mu` (`dMu`).\n */\nexport function pseudoVoigtDerivative(x, fwhm, mu) {\n    // gaussian and lorentzian derivative math is inlined (rather than calling\n    // gaussianDerivative / lorentzianDerivative) to allocate a single object on\n    // this hot path; the sub-calls would allocate three.\n    //\n    // Past {@link GAUSSIAN_CUTOFF} the gaussian half has underflowed, so it is\n    // dropped here under the same condition as in `pseudoVoigtFct` — including its\n    // mu = 1 exemption, so the two stay consistent — which also settles what the\n    // derivatives are out there: `dx` and `dFwhm` keep only their lorentzian\n    // halves, and `dMu` becomes `-lorentz`, the value the shape loses by trading\n    // its lorentzian half for a gaussian one that contributes nothing.\n    const z = x / fwhm;\n    const e = mu !== 1 && z * z > GAUSSIAN_CUTOFF\n        ? 0\n        : Math.exp(GAUSSIAN_EXP_FACTOR * z * z);\n    const denominator = 4 * x * x + fwhm * fwhm;\n    const lorentz = (fwhm * fwhm) / denominator;\n    const dEdt = ((2 * GAUSSIAN_EXP_FACTOR * x) / (fwhm * fwhm)) * e;\n    const dLdt = (-8 * x * fwhm * fwhm) / (denominator * denominator);\n    const dEdfwhm = ((-2 * GAUSSIAN_EXP_FACTOR * x * x) / (fwhm * fwhm * fwhm)) * e;\n    const dLdfwhm = (8 * fwhm * x * x) / (denominator * denominator);\n    return {\n        fct: (1 - mu) * lorentz + mu * e,\n        dx: (1 - mu) * dLdt + mu * dEdt,\n        dFwhm: (1 - mu) * dLdfwhm + mu * dEdfwhm,\n        dMu: e - lorentz,\n    };\n}\nexport const pseudoVoigtWidthToFWHM = (width, mu = 0.5) => {\n    return width * (mu * ROOT_2LN2_MINUS_ONE + 1);\n};\nexport const pseudoVoigtFwhmToWidth = (fwhm, mu = 0.5) => {\n    return fwhm / (mu * ROOT_2LN2_MINUS_ONE + 1);\n};\nexport const getPseudoVoigtArea = (options) => {\n    const { fwhm = 500, height = 1, mu = 0.5 } = options;\n    return (fwhm * height * (mu * ROOT_PI_OVER_LN2 + (1 - mu) * Math.PI)) / 2;\n};\nexport const getPseudoVoigtFactor = (area = 0.9999, mu = 0.5) => {\n    return pseudoVoigtFindFactor(area, mu);\n};\nexport const getPseudoVoigtData = (shape = {}, options = {}) => {\n    const { fwhm = 500, mu = 0.5 } = shape;\n    const { factor = getPseudoVoigtFactor(0.999, mu) } = options;\n    let { length, height = calculatePseudoVoigtHeight({ fwhm, mu, area: 1 }) } = options;\n    if (!height) {\n        height =\n            1 /\n                ((mu / Math.sqrt(-GAUSSIAN_EXP_FACTOR / Math.PI)) * fwhm +\n                    ((1 - mu) * fwhm * Math.PI) / 2);\n    }\n    if (!length) {\n        length = Math.min(Math.ceil(fwhm * factor), 2 ** 25 - 1);\n        if (length % 2 === 0)\n            length++;\n    }\n    const center = (length - 1) / 2;\n    const data = new Float64Array(length);\n    for (let i = 0; i <= center; i++) {\n        const value = pseudoVoigtFct(i - center, fwhm, mu) * height;\n        data[i] = value;\n        data[length - 1 - i] = value;\n    }\n    return data;\n};\n//# sourceMappingURL=PseudoVoigt.js.map","import { GAUSSIAN_CUTOFF, GAUSSIAN_EXP_FACTOR, } from \"../../../util/constants.js\";\nimport { calculatePseudoVoigtHeight, getPseudoVoigtArea, getPseudoVoigtData, getPseudoVoigtFactor, pseudoVoigtFct, pseudoVoigtFwhmToWidth, pseudoVoigtWidthToFWHM, } from \"../pseudoVoigt/PseudoVoigt.js\";\n/**\n * TCH-style pseudo-Voigt where gaussian and lorentzian widths are independent.\n * The effective fwhm and mixing parameter mu are derived from fwhmG and fwhmL\n * via the Thompson–Cox–Hastings approximation.\n */\nexport class PseudoVoigtTCH {\n    kind = 'pseudoVoigtTCH';\n    _fwhmG;\n    _fwhmL;\n    _fwhm;\n    _mu;\n    _lorentzianWidthFraction;\n    constructor(options = {}) {\n        const { fwhmG, fwhmL, fwhm, mu = 0.5 } = options;\n        this._mu = mu;\n        this._fwhm = 0;\n        this._fwhmG = 0;\n        this._fwhmL = 0;\n        this._lorentzianWidthFraction = lorentzianWidthFraction(1 - mu);\n        if (fwhmG !== undefined && fwhmL !== undefined) {\n            this._fwhmG = fwhmG;\n            this.fwhmL = fwhmL;\n        }\n        else if (fwhm !== undefined) {\n            this.fwhm = fwhm;\n        }\n    }\n    set fwhmG(value) {\n        const effectiveFwhm = computeEffectiveWidth(value, this._fwhmL);\n        const lorentzianFraction = this._fwhmL / effectiveFwhm;\n        this._fwhm = effectiveFwhm;\n        this._mu =\n            1 -\n                (1.36603 * lorentzianFraction -\n                    0.47719 * lorentzianFraction * lorentzianFraction +\n                    0.11116 * lorentzianFraction * lorentzianFraction * lorentzianFraction);\n        this._fwhmG = value;\n        this._lorentzianWidthFraction = lorentzianFraction;\n    }\n    get fwhmG() {\n        return this._fwhmG;\n    }\n    set fwhmL(value) {\n        const effectiveFwhm = computeEffectiveWidth(this._fwhmG, value);\n        const lorentzianFraction = value / effectiveFwhm;\n        this._fwhm = effectiveFwhm;\n        this._mu =\n            1 -\n                (1.36603 * lorentzianFraction -\n                    0.47719 * lorentzianFraction * lorentzianFraction +\n                    0.11116 * lorentzianFraction * lorentzianFraction * lorentzianFraction);\n        this._fwhmL = value;\n        this._lorentzianWidthFraction = lorentzianFraction;\n    }\n    get fwhmL() {\n        return this._fwhmL;\n    }\n    set mu(value) {\n        const lorentzianFraction = lorentzianWidthFraction(1 - value);\n        this._lorentzianWidthFraction = lorentzianFraction;\n        this._fwhmL = this._fwhm * lorentzianFraction;\n        this._fwhmG = this._fwhm * gaussianWidthFraction(lorentzianFraction);\n        this._mu = value;\n    }\n    get mu() {\n        return this._mu;\n    }\n    set fwhm(value) {\n        const lorentzianFraction = this._lorentzianWidthFraction || lorentzianWidthFraction(1 - this._mu);\n        this._fwhmL = value * lorentzianFraction;\n        this._fwhmG = value * gaussianWidthFraction(lorentzianFraction);\n        this._fwhm = value;\n    }\n    get fwhm() {\n        return this._fwhm;\n    }\n    fwhmToWidth(fwhm = this._fwhm, mu = this._mu) {\n        return pseudoVoigtFwhmToWidth(fwhm, mu);\n    }\n    widthToFWHM(width, mu = this._mu) {\n        return pseudoVoigtWidthToFWHM(width, mu);\n    }\n    fct(x) {\n        return pseudoVoigtFct(x, this._fwhm, this._mu);\n    }\n    getArea(height = 1) {\n        return getPseudoVoigtArea({ fwhm: this._fwhm, height, mu: this._mu });\n    }\n    getFactor(area) {\n        return getPseudoVoigtFactor(area, this._mu);\n    }\n    getData(options = {}) {\n        const { length, factor, height = calculatePseudoVoigtHeight({\n            fwhm: this._fwhm,\n            mu: this._mu,\n            area: 1,\n        }), } = options;\n        return getPseudoVoigtData(this, { factor, length, height });\n    }\n    calculateHeight(area = 1) {\n        return calculatePseudoVoigtHeight({\n            fwhm: this._fwhm,\n            mu: this._mu,\n            area,\n        });\n    }\n    getParameters() {\n        return ['fwhmG', 'fwhmL'];\n    }\n    /**\n     * Descriptor of this shape, so `JSON.stringify` round-trips through `getShape1D`.\n     * The component widths are emitted rather than `fwhm`/`mu`, because they are\n     * the state this shape is defined by: `getParameters` reports them and\n     * `derivative` differentiates with respect to them. The effective width and\n     * the mixing ratio are re-derived from them exactly.\n     * @returns the shape descriptor.\n     */\n    toJSON() {\n        return { kind: this.kind, fwhmG: this._fwhmG, fwhmL: this._fwhmL };\n    }\n    derivative(x) {\n        const { fct, dx, dFwhmG, dFwhmL } = pseudoVoigtTCHDerivative(x, this._fwhmG, this._fwhmL);\n        return { fct, dx, parameters: [dFwhmG, dFwhmL] };\n    }\n}\n/**\n * Analytical value and partial derivatives of the TCH pseudo-Voigt function centered at x=0.\n * The effective fwhm `F` and mixing `mu` are functions of `fwhmG` and `fwhmL`, so the\n * derivatives chain `∂fct/∂F` and `∂fct/∂mu` through `∂F/∂·` and `∂mu/∂·`.\n * @param x - position at which to evaluate.\n * @param fwhmG - full width at half maximum of the gaussian component.\n * @param fwhmL - full width at half maximum of the lorentzian component.\n * @returns the value `fct` and its partial derivatives with respect to `x` (`dx`), `fwhmG` (`dFwhmG`) and `fwhmL` (`dFwhmL`).\n */\nexport function pseudoVoigtTCHDerivative(x, fwhmG, fwhmL) {\n    const effectiveFwhm = computeEffectiveWidth(fwhmG, fwhmL);\n    const w = effectiveFwhm ** 5; // the polynomial under the 1/5 power\n    // ∂w/∂fwhmG and ∂w/∂fwhmL (derivatives of the TCH width polynomial).\n    const dwDfwhmG = 5 * fwhmG ** 4 +\n        10.77076 * fwhmG ** 3 * fwhmL +\n        7.28529 * fwhmG ** 2 * fwhmL ** 2 +\n        8.94326 * fwhmG * fwhmL ** 3 +\n        0.07842 * fwhmL ** 4;\n    const dwDfwhmL = 2.69269 * fwhmG ** 4 +\n        4.85686 * fwhmG ** 3 * fwhmL +\n        13.41489 * fwhmG ** 2 * fwhmL ** 2 +\n        0.31368 * fwhmG * fwhmL ** 3 +\n        5 * fwhmL ** 4;\n    // F = w^0.2  =>  ∂F/∂· = 0.2 * F / w * ∂w/∂·\n    const dFwhmDfwhmG = (0.2 * effectiveFwhm * dwDfwhmG) / w;\n    const dFwhmDfwhmL = (0.2 * effectiveFwhm * dwDfwhmL) / w;\n    // lorentzian width fraction L = fwhmL / F\n    const lorentzianFraction = fwhmL / effectiveFwhm;\n    const dLorentzianFractionDfwhmG = (-fwhmL / (effectiveFwhm * effectiveFwhm)) * dFwhmDfwhmG;\n    const dLorentzianFractionDfwhmL = 1 / effectiveFwhm - (fwhmL / (effectiveFwhm * effectiveFwhm)) * dFwhmDfwhmL;\n    // mu = 1 - (1.36603 L - 0.47719 L^2 + 0.11116 L^3)\n    const dPolyDfraction = 1.36603 -\n        0.95438 * lorentzianFraction +\n        0.33348 * lorentzianFraction * lorentzianFraction;\n    const dMuDfwhmG = -dPolyDfraction * dLorentzianFractionDfwhmG;\n    const dMuDfwhmL = -dPolyDfraction * dLorentzianFractionDfwhmL;\n    const mu = 1 -\n        (1.36603 * lorentzianFraction -\n            0.47719 * lorentzianFraction * lorentzianFraction +\n            0.11116 * lorentzianFraction * lorentzianFraction * lorentzianFraction);\n    // pseudoVoigt value and its ∂/∂x, ∂/∂F (dFwhm), ∂/∂mu (dMu) at the effective\n    // fwhm, inlined to allocate a single object on this hot path.\n    //\n    // Past {@link GAUSSIAN_CUTOFF} the gaussian half has underflowed and is\n    // dropped under the same condition as in `pseudoVoigtFct` — which this shape's\n    // own `fct` delegates to, so the value and its derivatives stay consistent out\n    // there. `fwhmL = 0` gives `mu = 1`, the pure gaussian that is never dropped.\n    const z = x / effectiveFwhm;\n    const e = mu !== 1 && z * z > GAUSSIAN_CUTOFF\n        ? 0\n        : Math.exp(GAUSSIAN_EXP_FACTOR * z * z);\n    const denominator2 = 4 * x * x + effectiveFwhm * effectiveFwhm;\n    const lorentz = (effectiveFwhm * effectiveFwhm) / denominator2;\n    const dEdt = ((2 * GAUSSIAN_EXP_FACTOR * x) / (effectiveFwhm * effectiveFwhm)) * e;\n    const dLdt = (-8 * x * effectiveFwhm * effectiveFwhm) / (denominator2 * denominator2);\n    const dEdfwhm = ((-2 * GAUSSIAN_EXP_FACTOR * x * x) /\n        (effectiveFwhm * effectiveFwhm * effectiveFwhm)) *\n        e;\n    const dLdfwhm = (8 * effectiveFwhm * x * x) / (denominator2 * denominator2);\n    const dFwhm = (1 - mu) * dLdfwhm + mu * dEdfwhm;\n    const dMu = e - lorentz;\n    return {\n        fct: (1 - mu) * lorentz + mu * e,\n        dx: (1 - mu) * dLdt + mu * dEdt,\n        dFwhmG: dFwhm * dFwhmDfwhmG + dMu * dMuDfwhmG,\n        dFwhmL: dFwhm * dFwhmDfwhmL + dMu * dMuDfwhmL,\n    };\n}\n/**\n * Compute the effective FWHM from gaussian and lorentzian component widths\n * using the Thompson–Cox–Hastings approximation.\n * @param fwhmG - gaussian component FWHM.\n * @param fwhmL - lorentzian component FWHM.\n * @returns effective combined FWHM.\n */\nfunction computeEffectiveWidth(fwhmG, fwhmL) {\n    return ((fwhmG ** 5 +\n        2.69269 * fwhmG ** 4 * fwhmL +\n        2.42843 * fwhmG ** 3 * fwhmL ** 2 +\n        4.47163 * fwhmG ** 2 * fwhmL ** 3 +\n        0.07842 * fwhmG * fwhmL ** 4 +\n        fwhmL ** 5) **\n        0.2);\n}\n/**\n * Solve for the lorentzian width fraction fwhmL/fwhm given lorentzianFraction = 1 - mu,\n * using Newton's method on: 1.36603·x - 0.47719·x² + 0.11116·x³ = lorentzianFraction.\n * @param lorentzianFraction - TCH lorentzian mixing parameter (= 1 - mu).\n * @returns the lorentzian width fraction fwhmL/fwhm.\n */\nfunction lorentzianWidthFraction(lorentzianFraction) {\n    let fraction = lorentzianFraction;\n    for (let i = 0; i < 6; i++) {\n        const f = 1.36603 * fraction -\n            0.47719 * fraction * fraction +\n            0.11116 * fraction * fraction * fraction -\n            lorentzianFraction;\n        const df = 1.36603 - 2 * 0.47719 * fraction + 3 * 0.11116 * fraction * fraction;\n        fraction -= f / df;\n    }\n    return fraction;\n}\n/**\n * Solve for the gaussian width fraction fwhmG/fwhm that pairs with a given\n * lorentzian width fraction fwhmL/fwhm. Writing fwhmG = g·fwhm and\n * fwhmL = q·fwhm in {@link computeEffectiveWidth} makes fwhm cancel, so `g` is\n * the root of the TCH width polynomial evaluated at 1. Solving it — rather than\n * taking `1 - q` — is what keeps `computeEffectiveWidth(fwhmG, fwhmL)` equal to\n * `fwhm`, and therefore keeps `fct` and `derivative` describing one same curve.\n * @param lorentzianFraction - the lorentzian width fraction fwhmL/fwhm.\n * @returns the gaussian width fraction fwhmG/fwhm.\n */\nfunction gaussianWidthFraction(lorentzianFraction) {\n    const q = lorentzianFraction;\n    let g = 1 - q;\n    for (let i = 0; i < 8; i++) {\n        const f = g ** 5 +\n            2.69269 * g ** 4 * q +\n            2.42843 * g ** 3 * q ** 2 +\n            4.47163 * g ** 2 * q ** 3 +\n            0.07842 * g * q ** 4 +\n            q ** 5 -\n            1;\n        const df = 5 * g ** 4 +\n            10.77076 * g ** 3 * q +\n            7.28529 * g ** 2 * q ** 2 +\n            8.94326 * g * q ** 3 +\n            0.07842 * q ** 4;\n        if (df === 0)\n            break;\n        g -= f / df;\n    }\n    return g;\n}\n//# sourceMappingURL=PseudoVoigtTCH.js.map","import { ROOT_THREE } from \"../../../util/constants.js\";\n/**\n * This shape is a linear combination of rational function (n|n+2), for n = 0 (lorentzian function) and n = 2\n * the parameter that combines those two functions is `gamma` and it is called the kurtosis parameter, it is an\n * implementation of generalized lorentzian shape published by Stanislav Sykora in the SMASH 2010. DOI:10.3247/SL3nmr10.006\n * {@link https://www.ebyte.it/stan/Talk_ML_UserMeeting_SMASH_2010_GeneralizedLorentzian.html}\n */\nexport class GeneralizedLorentzian {\n    kind = 'generalizedLorentzian';\n    /**\n     * Full width at half maximum.\n     * @default 500\n     */\n    fwhm;\n    /**\n     * kurtosis parameter of the shape, between -1 to 2\n     * @default 1\n     */\n    gamma;\n    constructor(options = {}) {\n        const { fwhm = 500, gamma = 0.5 } = options;\n        this.fwhm = fwhm;\n        this.gamma = gamma;\n    }\n    fwhmToWidth(fwhm = this.fwhm) {\n        return generalizedLorentzianFwhmToWidth(fwhm);\n    }\n    widthToFWHM(width) {\n        return generalizedLorentzianWidthToFWHM(width);\n    }\n    fct(x) {\n        return generalizedLorentzianFct(x, this.fwhm, this.gamma);\n    }\n    getArea(height = 1) {\n        return getGeneralizedLorentzianArea({\n            fwhm: this.fwhm,\n            height,\n            gamma: this.gamma,\n        });\n    }\n    getFactor(area) {\n        return getGeneralizedLorentzianFactor(area);\n    }\n    getData(options = {}) {\n        return getGeneralizedLorentzianData(this, options);\n    }\n    calculateHeight(area = 1) {\n        const { gamma, fwhm } = this;\n        return calculateGeneralizedLorentzianHeight({ fwhm, area, gamma });\n    }\n    getParameters() {\n        return ['fwhm', 'gamma'];\n    }\n    /**\n     * Descriptor of this shape, so `JSON.stringify` round-trips through `getShape1D`.\n     * @returns the shape descriptor.\n     */\n    toJSON() {\n        return { kind: this.kind, fwhm: this.fwhm, gamma: this.gamma };\n    }\n    derivative(x) {\n        const { fct, dx, dFwhm, dGamma } = generalizedLorentzianDerivative(x, this.fwhm, this.gamma);\n        return { fct, dx, parameters: [dFwhm, dGamma] };\n    }\n}\nexport const calculateGeneralizedLorentzianHeight = ({ fwhm = 1, gamma = 1, area = 1, }) => {\n    return (area / fwhm / (3.14159 - 0.420894 * gamma)) * 2;\n};\n/**\n * Calculate the area under a generalized Lorentzian peak (integral from Mathematica).\n * @param options - shape parameters including fwhm, height, and gamma.\n * @returns the area under the peak.\n */\nexport const getGeneralizedLorentzianArea = (options) => {\n    const { fwhm = 500, height = 1, gamma = 1 } = options;\n    return (height * fwhm * (3.14159 - 0.420894 * gamma)) / 2;\n};\nexport const generalizedLorentzianFct = (x, fwhm, gamma) => {\n    const u = ((2 * x) / fwhm) ** 2;\n    return (1 - gamma) / (1 + u) + (gamma * (1 + u / 2)) / (1 + u + u ** 2);\n};\n/**\n * Analytical value and partial derivatives of the generalized lorentzian function centered at x=0.\n * @param x - position at which to evaluate.\n * @param fwhm - full width at half maximum.\n * @param gamma - kurtosis parameter of the shape.\n * @returns the value `fct` and its partial derivatives with respect to `x` (`dx`), `fwhm` (`dFwhm`) and `gamma` (`dGamma`).\n */\nexport function generalizedLorentzianDerivative(x, fwhm, gamma) {\n    const u = ((2 * x) / fwhm) ** 2;\n    const lorentzian = 1 / (1 + u); // A\n    const rational = (1 + u / 2) / (1 + u + u * u); // B\n    const fct = (1 - gamma) * lorentzian + gamma * rational;\n    // dA/du and dB/du\n    const dLorentzianDu = -1 / ((1 + u) * (1 + u));\n    const denominator = 1 + u + u * u;\n    const dRationalDu = -(0.5 + 2 * u + 0.5 * u * u) / (denominator * denominator);\n    const dFctDu = (1 - gamma) * dLorentzianDu + gamma * dRationalDu;\n    const duDx = (8 * x) / (fwhm * fwhm);\n    const duDfwhm = (-8 * x * x) / (fwhm * fwhm * fwhm);\n    const dx = dFctDu * duDx;\n    const dFwhm = dFctDu * duDfwhm;\n    const dGamma = rational - lorentzian; // B - A\n    return { fct, dx, dFwhm, dGamma };\n}\nexport const generalizedLorentzianWidthToFWHM = (width) => {\n    return width * ROOT_THREE;\n};\nexport const generalizedLorentzianFwhmToWidth = (fwhm) => {\n    return fwhm / ROOT_THREE;\n};\nconst generalizedLorentzianQuantile = (p) => Math.tan(Math.PI * (p - 0.5));\nexport const getGeneralizedLorentzianFactor = (area = 0.9999) => {\n    if (area >= 1) {\n        throw new Error('area should be (0 - 1)');\n    }\n    const halfResidual = (1 - area) * 0.5;\n    return ((generalizedLorentzianQuantile(1 - halfResidual) -\n        generalizedLorentzianQuantile(halfResidual)) /\n        2);\n};\nexport const getGeneralizedLorentzianData = (shape = {}, options = {}) => {\n    const { fwhm = 500, gamma = 1 } = shape;\n    const { factor = getGeneralizedLorentzianFactor(), height = calculateGeneralizedLorentzianHeight({ fwhm, area: 1, gamma }), } = options;\n    let { length } = options;\n    if (!length) {\n        length = Math.min(Math.ceil(fwhm * factor), 2 ** 25 - 1);\n        if (length % 2 === 0)\n            length++;\n    }\n    const center = (length - 1) / 2;\n    const data = new Float64Array(length);\n    for (let i = 0; i <= center; i++) {\n        const value = generalizedLorentzianFct(i - center, fwhm, gamma) * height;\n        data[i] = value;\n        data[length - 1 - i] = value;\n    }\n    return data;\n};\n//# sourceMappingURL=GeneralizedLorentzian.js.map","import { ROOT_PI_OVER_LN2 } from \"../../../util/constants.js\";\nimport { gaussianDerivative, gaussianFct, gaussianFwhmToWidth, gaussianWidthToFWHM, getGaussianFactor, } from \"../gaussian/Gaussian.js\";\nexport class SplitGaussian {\n    kind = 'splitGaussian';\n    /**\n     * Full width at half maximum of the lower-x half (x <= 0).\n     * @default 500\n     */\n    fwhmLow;\n    /**\n     * Full width at half maximum of the higher-x half (x > 0).\n     * @default 500\n     */\n    fwhmHigh;\n    constructor(options = {}) {\n        const { fwhmLow = 500, fwhmHigh = 500 } = options;\n        this.fwhmLow = fwhmLow;\n        this.fwhmHigh = fwhmHigh;\n    }\n    /**\n     * Full width at half maximum of the peak. The half-maximum crossings are at\n     * `-fwhmLow / 2` and `fwhmHigh / 2`, so the width between them is the mean of\n     * both halves.\n     * @returns the full width at half maximum.\n     */\n    get fwhm() {\n        return (this.fwhmLow + this.fwhmHigh) / 2;\n    }\n    /**\n     * Set the full width at half maximum. Both halves are scaled by the same\n     * ratio, so their mean becomes `value` while the asymmetry between them is\n     * preserved. A peak with no width has no ratio to preserve, so both halves\n     * take `value` and the peak stays symmetric.\n     * @param value - the new full width at half maximum.\n     */\n    set fwhm(value) {\n        const { fwhm } = this;\n        if (fwhm === 0) {\n            this.fwhmLow = value;\n            this.fwhmHigh = value;\n            return;\n        }\n        const ratio = value / fwhm;\n        this.fwhmLow *= ratio;\n        this.fwhmHigh *= ratio;\n    }\n    /**\n     * Convert a full width at half maximum to the width between the inflection\n     * points. For this peak's own fwhm the result is exactly `σlow + σhigh`.\n     * @param fwhm - full width at half maximum. Defaults to the peak's fwhm.\n     * @returns the width between the inflection points.\n     */\n    fwhmToWidth(fwhm = this.fwhm) {\n        return gaussianFwhmToWidth(fwhm);\n    }\n    /**\n     * Convert a width between the inflection points back to a full width at half\n     * maximum. A single width does not encode the asymmetry, so it cannot recover\n     * `fwhmLow` and `fwhmHigh` individually.\n     * @param width - width between the inflection points.\n     * @returns the corresponding full width at half maximum.\n     */\n    widthToFWHM(width) {\n        return gaussianWidthToFWHM(width);\n    }\n    fct(x) {\n        return splitGaussianFct(x, this.fwhmLow, this.fwhmHigh);\n    }\n    getArea(height = calculateSplitGaussianHeight({\n        fwhmLow: this.fwhmLow,\n        fwhmHigh: this.fwhmHigh,\n    })) {\n        return getSplitGaussianArea({\n            fwhmLow: this.fwhmLow,\n            fwhmHigh: this.fwhmHigh,\n            height,\n        });\n    }\n    getFactor(area) {\n        return getGaussianFactor(area);\n    }\n    getData(options = {}) {\n        return getSplitGaussianData(this, options);\n    }\n    calculateHeight(area = 1) {\n        return calculateSplitGaussianHeight({\n            fwhmLow: this.fwhmLow,\n            fwhmHigh: this.fwhmHigh,\n            area,\n        });\n    }\n    getParameters() {\n        return ['fwhmLow', 'fwhmHigh'];\n    }\n    /**\n     * Descriptor of this shape, so `JSON.stringify` round-trips through `getShape1D`.\n     * @returns the shape descriptor.\n     */\n    toJSON() {\n        return {\n            kind: this.kind,\n            fwhmLow: this.fwhmLow,\n            fwhmHigh: this.fwhmHigh,\n        };\n    }\n    derivative(x) {\n        const { fct, dx, dFwhmLow, dFwhmHigh } = splitGaussianDerivative(x, this.fwhmLow, this.fwhmHigh);\n        return { fct, dx, parameters: [dFwhmLow, dFwhmHigh] };\n    }\n}\n/**\n * Calculate the peak height for a given area and both half-widths.\n * @param options - fwhmLow, fwhmHigh and area.\n * @returns the peak height.\n */\nexport function calculateSplitGaussianHeight(options) {\n    const { fwhmLow = 500, fwhmHigh = 500, area = 1 } = options;\n    return (4 * area) / ROOT_PI_OVER_LN2 / (fwhmLow + fwhmHigh);\n}\n/**\n * Evaluate the split (asymmetric) gaussian function centered at x=0.\n * The lower-x half (x <= 0) uses `fwhmLow`, the higher-x half (x > 0) uses `fwhmHigh`.\n * @param x - position at which to evaluate.\n * @param fwhmLow - full width at half maximum of the lower-x half.\n * @param fwhmHigh - full width at half maximum of the higher-x half.\n * @returns the intensity at x.\n */\nexport function splitGaussianFct(x, fwhmLow, fwhmHigh) {\n    return x <= 0 ? gaussianFct(x, fwhmLow) : gaussianFct(x, fwhmHigh);\n}\n/**\n * Analytical value and partial derivatives of the split gaussian function centered at x=0.\n * Each half's fwhm only affects its own side, so the off-side derivative is 0.\n * @param x - position at which to evaluate.\n * @param fwhmLow - full width at half maximum of the lower-x half.\n * @param fwhmHigh - full width at half maximum of the higher-x half.\n * @returns the value `fct` and its partial derivatives with respect to `x` (`dx`), `fwhmLow` (`dFwhmLow`) and `fwhmHigh` (`dFwhmHigh`).\n */\nexport function splitGaussianDerivative(x, fwhmLow, fwhmHigh) {\n    if (x <= 0) {\n        const { fct, dx, dFwhm } = gaussianDerivative(x, fwhmLow);\n        return { fct, dx, dFwhmLow: dFwhm, dFwhmHigh: 0 };\n    }\n    const { fct, dx, dFwhm } = gaussianDerivative(x, fwhmHigh);\n    return { fct, dx, dFwhmLow: 0, dFwhmHigh: dFwhm };\n}\n/**\n * Calculate the area under a split gaussian peak.\n * @param options - fwhmLow, fwhmHigh and height.\n * @returns the area.\n */\nexport function getSplitGaussianArea(options) {\n    const { fwhmLow = 500, fwhmHigh = 500, height = 1 } = options;\n    return (height * ROOT_PI_OVER_LN2 * (fwhmLow + fwhmHigh)) / 4;\n}\n/**\n * Generate an intensity array for a split gaussian shape.\n * @param shape - split gaussian shape parameters (fwhmLow, fwhmHigh).\n * @param options - sampling options (length, factor, height).\n * @returns Float64Array of intensity values.\n */\nexport function getSplitGaussianData(shape = {}, options = {}) {\n    const { fwhmLow = 500, fwhmHigh = 500 } = shape;\n    const { factor = getGaussianFactor(), height = calculateSplitGaussianHeight({ fwhmLow, fwhmHigh }), } = options;\n    let { length } = options;\n    if (!length) {\n        length = Math.min(Math.ceil(Math.max(fwhmLow, fwhmHigh) * factor), 2 ** 25 - 1);\n        if (length % 2 === 0)\n            length++;\n    }\n    const center = (length - 1) / 2;\n    const data = new Float64Array(length);\n    for (let i = 0; i < length; i++) {\n        data[i] = splitGaussianFct(i - center, fwhmLow, fwhmHigh) * height;\n    }\n    return data;\n}\n//# sourceMappingURL=SplitGaussian.js.map","import { Gaussian } from \"./gaussian/Gaussian.js\";\nimport { GeneralizedLorentzian } from \"./generalizedLorentzian/GeneralizedLorentzian.js\";\nimport { Lorentzian } from \"./lorentzian/Lorentzian.js\";\nimport { LorentzianDispersive } from \"./lorentzianDispersive/LorentzianDispersive.js\";\nimport { PseudoVoigt } from \"./pseudoVoigt/PseudoVoigt.js\";\nimport { PseudoVoigtTCH } from \"./pseudoVoigtTCH/PseudoVoigtTCH.js\";\nimport { SplitGaussian } from \"./splitGaussian/SplitGaussian.js\";\nexport function getShape1D(shape) {\n    const { kind } = shape;\n    switch (kind) {\n        case 'gaussian':\n            return new Gaussian(shape);\n        case 'lorentzian':\n            return new Lorentzian(shape);\n        case 'pseudoVoigt':\n            return new PseudoVoigt(shape);\n        case 'pseudoVoigtTCH':\n            return new PseudoVoigtTCH(shape);\n        case 'lorentzianDispersive':\n            return new LorentzianDispersive(shape);\n        case 'generalizedLorentzian':\n            return new GeneralizedLorentzian(shape);\n        case 'splitGaussian':\n            return new SplitGaussian(shape);\n        default:\n            throw new Error(`Unknown distribution ${kind}`);\n    }\n}\n//# sourceMappingURL=getShape1D.js.map","module.exports = function(haystack, needle, comparator, low, high) {\n  var mid, cmp;\n\n  if(low === undefined)\n    low = 0;\n\n  else {\n    low = low|0;\n    if(low < 0 || low >= haystack.length)\n      throw new RangeError(\"invalid lower bound\");\n  }\n\n  if(high === undefined)\n    high = haystack.length - 1;\n\n  else {\n    high = high|0;\n    if(high < low || high >= haystack.length)\n      throw new RangeError(\"invalid upper bound\");\n  }\n\n  while(low <= high) {\n    // The naive `low + high >>> 1` could fail for array lengths > 2**31\n    // because `>>>` converts its operands to int32. `low + (high - low >>> 1)`\n    // works for array lengths <= 2**32-1 which is also Javascript's max array\n    // length.\n    mid = low + ((high - low) >>> 1);\n    cmp = +comparator(haystack[mid], needle, mid, haystack);\n\n    // Too low.\n    if(cmp < 0.0)\n      low  = mid + 1;\n\n    // Too high.\n    else if(cmp > 0.0)\n      high = mid - 1;\n\n    // Key found.\n    else\n      return mid;\n  }\n\n  // Key not found.\n  return ~low;\n}\n","'use strict';\n\nfunction assertNumber(number) {\n\tif (typeof number !== 'number') {\n\t\tthrow new TypeError('Expected a number');\n\t}\n}\n\nexports.ascending = (left, right) => {\n\tassertNumber(left);\n\tassertNumber(right);\n\n\tif (Number.isNaN(left)) {\n\t\treturn -1;\n\t}\n\n\tif (Number.isNaN(right)) {\n\t\treturn 1;\n\t}\n\n\treturn left - right;\n};\n\nexports.descending = (left, right) => {\n\tassertNumber(left);\n\tassertNumber(right);\n\n\tif (Number.isNaN(left)) {\n\t\treturn 1;\n\t}\n\n\tif (Number.isNaN(right)) {\n\t\treturn -1;\n\t}\n\n\treturn right - left;\n};\n","import binarySearch from 'binary-search';\nimport { ascending } from 'num-sort';\n\nexport const largestPrime = 0x7fffffff;\n\nconst primeNumbers = [\n  // chunk #0\n  largestPrime, // 2^31-1\n\n  // chunk #1\n  5,\n  11,\n  23,\n  47,\n  97,\n  197,\n  397,\n  797,\n  1597,\n  3203,\n  6421,\n  12853,\n  25717,\n  51437,\n  102877,\n  205759,\n  411527,\n  823117,\n  1646237,\n  3292489,\n  6584983,\n  13169977,\n  26339969,\n  52679969,\n  105359939,\n  210719881,\n  421439783,\n  842879579,\n  1685759167,\n\n  // chunk #2\n  433,\n  877,\n  1759,\n  3527,\n  7057,\n  14143,\n  28289,\n  56591,\n  113189,\n  226379,\n  452759,\n  905551,\n  1811107,\n  3622219,\n  7244441,\n  14488931,\n  28977863,\n  57955739,\n  115911563,\n  231823147,\n  463646329,\n  927292699,\n  1854585413,\n\n  // chunk #3\n  953,\n  1907,\n  3821,\n  7643,\n  15287,\n  30577,\n  61169,\n  122347,\n  244703,\n  489407,\n  978821,\n  1957651,\n  3915341,\n  7830701,\n  15661423,\n  31322867,\n  62645741,\n  125291483,\n  250582987,\n  501165979,\n  1002331963,\n  2004663929,\n\n  // chunk #4\n  1039,\n  2081,\n  4177,\n  8363,\n  16729,\n  33461,\n  66923,\n  133853,\n  267713,\n  535481,\n  1070981,\n  2141977,\n  4283963,\n  8567929,\n  17135863,\n  34271747,\n  68543509,\n  137087021,\n  274174111,\n  548348231,\n  1096696463,\n\n  // chunk #5\n  31,\n  67,\n  137,\n  277,\n  557,\n  1117,\n  2237,\n  4481,\n  8963,\n  17929,\n  35863,\n  71741,\n  143483,\n  286973,\n  573953,\n  1147921,\n  2295859,\n  4591721,\n  9183457,\n  18366923,\n  36733847,\n  73467739,\n  146935499,\n  293871013,\n  587742049,\n  1175484103,\n\n  // chunk #6\n  599,\n  1201,\n  2411,\n  4831,\n  9677,\n  19373,\n  38747,\n  77509,\n  155027,\n  310081,\n  620171,\n  1240361,\n  2480729,\n  4961459,\n  9922933,\n  19845871,\n  39691759,\n  79383533,\n  158767069,\n  317534141,\n  635068283,\n  1270136683,\n\n  // chunk #7\n  311,\n  631,\n  1277,\n  2557,\n  5119,\n  10243,\n  20507,\n  41017,\n  82037,\n  164089,\n  328213,\n  656429,\n  1312867,\n  2625761,\n  5251529,\n  10503061,\n  21006137,\n  42012281,\n  84024581,\n  168049163,\n  336098327,\n  672196673,\n  1344393353,\n\n  // chunk #8\n  3,\n  7,\n  17,\n  37,\n  79,\n  163,\n  331,\n  673,\n  1361,\n  2729,\n  5471,\n  10949,\n  21911,\n  43853,\n  87719,\n  175447,\n  350899,\n  701819,\n  1403641,\n  2807303,\n  5614657,\n  11229331,\n  22458671,\n  44917381,\n  89834777,\n  179669557,\n  359339171,\n  718678369,\n  1437356741,\n\n  // chunk #9\n  43,\n  89,\n  179,\n  359,\n  719,\n  1439,\n  2879,\n  5779,\n  11579,\n  23159,\n  46327,\n  92657,\n  185323,\n  370661,\n  741337,\n  1482707,\n  2965421,\n  5930887,\n  11861791,\n  23723597,\n  47447201,\n  94894427,\n  189788857,\n  379577741,\n  759155483,\n  1518310967,\n\n  // chunk #10\n  379,\n  761,\n  1523,\n  3049,\n  6101,\n  12203,\n  24407,\n  48817,\n  97649,\n  195311,\n  390647,\n  781301,\n  1562611,\n  3125257,\n  6250537,\n  12501169,\n  25002389,\n  50004791,\n  100009607,\n  200019221,\n  400038451,\n  800076929,\n  1600153859,\n\n  // chunk #11\n  13,\n  29,\n  59,\n  127,\n  257,\n  521,\n  1049,\n  2099,\n  4201,\n  8419,\n  16843,\n  33703,\n  67409,\n  134837,\n  269683,\n  539389,\n  1078787,\n  2157587,\n  4315183,\n  8630387,\n  17260781,\n  34521589,\n  69043189,\n  138086407,\n  276172823,\n  552345671,\n  1104691373,\n\n  // chunk #12\n  19,\n  41,\n  83,\n  167,\n  337,\n  677,\n  1361,\n  2729,\n  5471,\n  10949,\n  21911,\n  43853,\n  87719,\n  175447,\n  350899,\n  701819,\n  1403641,\n  2807303,\n  5614657,\n  11229331,\n  22458671,\n  44917381,\n  89834777,\n  179669557,\n  359339171,\n  718678369,\n  1437356741,\n\n  // chunk #13\n  53,\n  107,\n  223,\n  449,\n  907,\n  1823,\n  3659,\n  7321,\n  14653,\n  29311,\n  58631,\n  117269,\n  234539,\n  469099,\n  938207,\n  1876417,\n  3752839,\n  7505681,\n  15011389,\n  30022781,\n  60045577,\n  120091177,\n  240182359,\n  480364727,\n  960729461,\n  1921458943\n];\n\nprimeNumbers.sort(ascending);\n\nexport function nextPrime(value) {\n  let index = binarySearch(primeNumbers, value, ascending);\n  if (index < 0) {\n    index = ~index;\n  }\n  return primeNumbers[index];\n}\n","import { largestPrime, nextPrime } from './primeFinder';\n\nconst FREE = 0;\nconst FULL = 1;\nconst REMOVED = 2;\n\nconst defaultInitialCapacity = 150;\nconst defaultMinLoadFactor = 1 / 6;\nconst defaultMaxLoadFactor = 2 / 3;\n\nexport default class HashTable {\n  constructor(options = {}) {\n    if (options instanceof HashTable) {\n      this.table = options.table.slice();\n      this.values = options.values.slice();\n      this.state = options.state.slice();\n      this.minLoadFactor = options.minLoadFactor;\n      this.maxLoadFactor = options.maxLoadFactor;\n      this.distinct = options.distinct;\n      this.freeEntries = options.freeEntries;\n      this.lowWaterMark = options.lowWaterMark;\n      this.highWaterMark = options.maxLoadFactor;\n      return;\n    }\n\n    const initialCapacity =\n      options.initialCapacity === undefined\n        ? defaultInitialCapacity\n        : options.initialCapacity;\n    if (initialCapacity < 0) {\n      throw new RangeError(\n        `initial capacity must not be less than zero: ${initialCapacity}`\n      );\n    }\n\n    const minLoadFactor =\n      options.minLoadFactor === undefined\n        ? defaultMinLoadFactor\n        : options.minLoadFactor;\n    const maxLoadFactor =\n      options.maxLoadFactor === undefined\n        ? defaultMaxLoadFactor\n        : options.maxLoadFactor;\n    if (minLoadFactor < 0 || minLoadFactor >= 1) {\n      throw new RangeError(`invalid minLoadFactor: ${minLoadFactor}`);\n    }\n    if (maxLoadFactor <= 0 || maxLoadFactor >= 1) {\n      throw new RangeError(`invalid maxLoadFactor: ${maxLoadFactor}`);\n    }\n    if (minLoadFactor >= maxLoadFactor) {\n      throw new RangeError(\n        `minLoadFactor (${minLoadFactor}) must be smaller than maxLoadFactor (${maxLoadFactor})`\n      );\n    }\n\n    let capacity = initialCapacity;\n    // User wants to put at least capacity elements. We need to choose the size based on the maxLoadFactor to\n    // avoid the need to rehash before this capacity is reached.\n    // actualCapacity * maxLoadFactor >= capacity\n    capacity = (capacity / maxLoadFactor) | 0;\n    capacity = nextPrime(capacity);\n    if (capacity === 0) capacity = 1;\n\n    this.table = newArray(capacity);\n    this.values = newArray(capacity);\n    this.state = newArray(capacity);\n\n    this.minLoadFactor = minLoadFactor;\n    if (capacity === largestPrime) {\n      this.maxLoadFactor = 1;\n    } else {\n      this.maxLoadFactor = maxLoadFactor;\n    }\n\n    this.distinct = 0;\n    this.freeEntries = capacity;\n\n    this.lowWaterMark = 0;\n    this.highWaterMark = chooseHighWaterMark(capacity, this.maxLoadFactor);\n  }\n\n  clone() {\n    return new HashTable(this);\n  }\n\n  get size() {\n    return this.distinct;\n  }\n\n  get(key) {\n    const i = this.indexOfKey(key);\n    if (i < 0) return 0;\n    return this.values[i];\n  }\n\n  set(key, value) {\n    let i = this.indexOfInsertion(key);\n    if (i < 0) {\n      i = -i - 1;\n      this.values[i] = value;\n      return false;\n    }\n\n    if (this.distinct > this.highWaterMark) {\n      const newCapacity = chooseGrowCapacity(\n        this.distinct + 1,\n        this.minLoadFactor,\n        this.maxLoadFactor\n      );\n      this.rehash(newCapacity);\n      return this.set(key, value);\n    }\n\n    this.table[i] = key;\n    this.values[i] = value;\n    if (this.state[i] === FREE) this.freeEntries--;\n    this.state[i] = FULL;\n    this.distinct++;\n\n    if (this.freeEntries < 1) {\n      const newCapacity = chooseGrowCapacity(\n        this.distinct + 1,\n        this.minLoadFactor,\n        this.maxLoadFactor\n      );\n      this.rehash(newCapacity);\n    }\n\n    return true;\n  }\n\n  remove(key, noRehash) {\n    const i = this.indexOfKey(key);\n    if (i < 0) return false;\n\n    this.state[i] = REMOVED;\n    this.distinct--;\n\n    if (!noRehash) this.maybeShrinkCapacity();\n\n    return true;\n  }\n\n  delete(key, noRehash) {\n    const i = this.indexOfKey(key);\n    if (i < 0) return false;\n\n    this.state[i] = FREE;\n    this.distinct--;\n\n    if (!noRehash) this.maybeShrinkCapacity();\n\n    return true;\n  }\n\n  maybeShrinkCapacity() {\n    if (this.distinct < this.lowWaterMark) {\n      const newCapacity = chooseShrinkCapacity(\n        this.distinct,\n        this.minLoadFactor,\n        this.maxLoadFactor\n      );\n      this.rehash(newCapacity);\n    }\n  }\n\n  containsKey(key) {\n    return this.indexOfKey(key) >= 0;\n  }\n\n  indexOfKey(key) {\n    const table = this.table;\n    const state = this.state;\n    const length = this.table.length;\n\n    const hash = key & 0x7fffffff;\n    let i = hash % length;\n    let decrement = hash % (length - 2);\n    if (decrement === 0) decrement = 1;\n\n    while (state[i] !== FREE && (state[i] === REMOVED || table[i] !== key)) {\n      i -= decrement;\n      if (i < 0) i += length;\n    }\n\n    if (state[i] === FREE) return -1;\n    return i;\n  }\n\n  containsValue(value) {\n    return this.indexOfValue(value) >= 0;\n  }\n\n  indexOfValue(value) {\n    const values = this.values;\n    const state = this.state;\n\n    for (var i = 0; i < state.length; i++) {\n      if (state[i] === FULL && values[i] === value) {\n        return i;\n      }\n    }\n\n    return -1;\n  }\n\n  indexOfInsertion(key) {\n    const table = this.table;\n    const state = this.state;\n    const length = table.length;\n\n    const hash = key & 0x7fffffff;\n    let i = hash % length;\n    let decrement = hash % (length - 2);\n    if (decrement === 0) decrement = 1;\n\n    while (state[i] === FULL && table[i] !== key) {\n      i -= decrement;\n      if (i < 0) i += length;\n    }\n\n    if (state[i] === REMOVED) {\n      const j = i;\n      while (state[i] !== FREE && (state[i] === REMOVED || table[i] !== key)) {\n        i -= decrement;\n        if (i < 0) i += length;\n      }\n      if (state[i] === FREE) i = j;\n    }\n\n    if (state[i] === FULL) {\n      return -i - 1;\n    }\n\n    return i;\n  }\n\n  ensureCapacity(minCapacity) {\n    if (this.table.length < minCapacity) {\n      const newCapacity = nextPrime(minCapacity);\n      this.rehash(newCapacity);\n    }\n  }\n\n  rehash(newCapacity) {\n    const oldCapacity = this.table.length;\n\n    if (newCapacity <= this.distinct) throw new Error('Unexpected');\n\n    const oldTable = this.table;\n    const oldValues = this.values;\n    const oldState = this.state;\n\n    const newTable = newArray(newCapacity);\n    const newValues = newArray(newCapacity);\n    const newState = newArray(newCapacity);\n\n    this.lowWaterMark = chooseLowWaterMark(newCapacity, this.minLoadFactor);\n    this.highWaterMark = chooseHighWaterMark(newCapacity, this.maxLoadFactor);\n\n    this.table = newTable;\n    this.values = newValues;\n    this.state = newState;\n    this.freeEntries = newCapacity - this.distinct;\n\n    for (var i = 0; i < oldCapacity; i++) {\n      if (oldState[i] === FULL) {\n        var element = oldTable[i];\n        var index = this.indexOfInsertion(element);\n        newTable[index] = element;\n        newValues[index] = oldValues[i];\n        newState[index] = FULL;\n      }\n    }\n  }\n\n  forEachKey(callback) {\n    for (var i = 0; i < this.state.length; i++) {\n      if (this.state[i] === FULL) {\n        if (!callback(this.table[i])) return false;\n      }\n    }\n    return true;\n  }\n\n  forEachValue(callback) {\n    for (var i = 0; i < this.state.length; i++) {\n      if (this.state[i] === FULL) {\n        if (!callback(this.values[i])) return false;\n      }\n    }\n    return true;\n  }\n\n  forEachPair(callback) {\n    for (var i = 0; i < this.state.length; i++) {\n      if (this.state[i] === FULL) {\n        if (!callback(this.table[i], this.values[i])) return false;\n      }\n    }\n    return true;\n  }\n}\n\nfunction chooseLowWaterMark(capacity, minLoad) {\n  return (capacity * minLoad) | 0;\n}\n\nfunction chooseHighWaterMark(capacity, maxLoad) {\n  return Math.min(capacity - 2, (capacity * maxLoad) | 0);\n}\n\nfunction chooseGrowCapacity(size, minLoad, maxLoad) {\n  return nextPrime(\n    Math.max(size + 1, ((4 * size) / (3 * minLoad + maxLoad)) | 0)\n  );\n}\n\nfunction chooseShrinkCapacity(size, minLoad, maxLoad) {\n  return nextPrime(\n    Math.max(size + 1, ((4 * size) / (minLoad + 3 * maxLoad)) | 0)\n  );\n}\n\nfunction newArray(size) {\n  return Array(size).fill(0);\n}\n","import HashTable from 'ml-hash-table';\nimport { cooToCsr } from './utils/cooToCsr.js';\nimport { mmulLowDensity } from './utils/mmulLowDensity.js';\nimport { mmulMediumDensity } from './utils/mmulMediumDensity.js';\nimport { mmulSmall } from './utils/mmulSmall.js';\n/** @typedef {(row: number, column: number, value: number) => void} WithEachNonZeroCallback */\n/** @typedef {(row: number, column: number, value: number) => number | false} ForEachNonZeroCallback */\nexport class SparseMatrix {\n    constructor(rows, columns, options = {}) {\n        if (rows instanceof SparseMatrix) {\n            // clone\n            const other = rows;\n            this._init(other.rows, other.columns, other.elements.clone(), other.threshold);\n            return;\n        }\n        if (Array.isArray(rows)) {\n            const matrix = rows;\n            const nbRows = matrix.length;\n            options = columns || {};\n            columns = matrix[0].length;\n            this._init(nbRows, columns, new HashTable(options), options.threshold);\n            for (let i = 0; i < nbRows; i++) {\n                for (let j = 0; j < columns; j++) {\n                    let value = matrix[i][j];\n                    if (this.threshold && Math.abs(value) < this.threshold)\n                        value = 0;\n                    if (value !== 0) {\n                        this.elements.set(i * columns + j, matrix[i][j]);\n                    }\n                }\n            }\n            this.elements.maybeShrinkCapacity();\n        }\n        else {\n            this._init(rows, columns, new HashTable(options), options.threshold);\n        }\n    }\n    _init(rows, columns, elements, threshold) {\n        this.rows = rows;\n        this.columns = columns;\n        this.elements = elements;\n        this.threshold = threshold || 0;\n    }\n    static eye(rows = 1, columns = rows) {\n        const min = Math.min(rows, columns);\n        const matrix = new SparseMatrix(rows, columns, { initialCapacity: min });\n        for (let i = 0; i < min; i++) {\n            matrix.set(i, i, 1);\n        }\n        return matrix;\n    }\n    clone() {\n        return new SparseMatrix(this);\n    }\n    /**\n     * @returns {number[][]}\n     */\n    to2DArray() {\n        const copy = new Array(this.rows);\n        for (let i = 0; i < this.rows; i++) {\n            copy[i] = new Array(this.columns);\n            for (let j = 0; j < this.columns; j++) {\n                copy[i][j] = this.get(i, j);\n            }\n        }\n        return copy;\n    }\n    isSquare() {\n        return this.rows === this.columns;\n    }\n    isSymmetric() {\n        if (!this.isSquare())\n            return false;\n        let symmetric = true;\n        this.forEachNonZero((i, j, v) => {\n            if (this.get(j, i) !== v) {\n                symmetric = false;\n                return false;\n            }\n            return v;\n        });\n        return symmetric;\n    }\n    /**\n     * Search for the wither band in the main diagonals\n     * @returns {number}\n     */\n    bandWidth() {\n        let min = this.columns;\n        let max = -1;\n        this.forEachNonZero((i, j, v) => {\n            let diff = i - j;\n            min = Math.min(min, diff);\n            max = Math.max(max, diff);\n            return v;\n        });\n        return max - min;\n    }\n    /**\n     * Test if a matrix is consider banded using a threshold\n     * @param {number} width\n     * @returns {boolean}\n     */\n    isBanded(width) {\n        let bandWidth = this.bandWidth();\n        return bandWidth <= width;\n    }\n    /**\n     * @returns {number}\n     */\n    get cardinality() {\n        return this.elements.size;\n    }\n    /**\n     * @returns {number}\n     */\n    get size() {\n        return this.rows * this.columns;\n    }\n    /**\n     * @param {number} row\n     * @param {number} column\n     * @returns {number}\n     */\n    get(row, column) {\n        return this.elements.get(row * this.columns + column);\n    }\n    /**\n     * @param {number} row\n     * @param {number} column\n     * @param {number} value\n     * @returns {this}\n     */\n    set(row, column, value) {\n        if (this.threshold && Math.abs(value) < this.threshold)\n            value = 0;\n        if (value === 0) {\n            this.elements.remove(row * this.columns + column);\n        }\n        else {\n            this.elements.set(row * this.columns + column, value);\n        }\n        return this;\n    }\n    /**\n     * Matrix multiplication, does not modify the current instance.\n     * @param {SparseMatrix} other\n     * @returns {SparseMatrix} returns a new matrix instance.\n     * @throws {Error} If the number of columns of this matrix does not match the number of rows of the other matrix.\n     */\n    mmul(other) {\n        if (this.columns !== other.rows) {\n            throw new RangeError('Number of columns of left matrix are not equal to number of rows of right matrix.');\n        }\n        if (this.cardinality < 42 && other.cardinality < 42) {\n            return mmulSmall(this, other);\n        }\n        else if (other.rows > 100 && other.cardinality < 100) {\n            return mmulLowDensity(this, other);\n        }\n        return mmulMediumDensity(this, other);\n    }\n    /**\n     * @param {SparseMatrix} other\n     * @returns {SparseMatrix}\n     */\n    kroneckerProduct(other) {\n        const m = this.rows;\n        const n = this.columns;\n        const p = other.rows;\n        const q = other.columns;\n        const result = new SparseMatrix(m * p, n * q, {\n            initialCapacity: this.cardinality * other.cardinality + 10,\n        });\n        const { columns: otherCols, rows: otherRows, values: otherValues, } = other.getNonZeros();\n        const { columns: thisCols, rows: thisRows, values: thisValues, } = this.getNonZeros();\n        const nbThisActive = thisCols.length;\n        const nbOtherActive = otherCols.length;\n        for (let t = 0; t < nbThisActive; t++) {\n            const pi = p * thisRows[t];\n            const qj = q * thisCols[t];\n            for (let o = 0; o < nbOtherActive; o++) {\n                result.set(pi + otherRows[o], qj + otherCols[o], otherValues[o] * thisValues[t]);\n            }\n        }\n        return result;\n    }\n    /**\n     * Calls `callback` for each value in the matrix that is not zero.\n     * Unlike `forEachNonZero`, the callback's return value has no effect.\n     * @param {WithEachNonZeroCallback} callback\n     * @param {boolean} [sort]\n     * @returns {void}\n     */\n    withEachNonZero(callback, sort = false) {\n        const { state, table, values } = this.elements;\n        const nbStates = state.length;\n        const activeIndex = new Float64Array(this.cardinality);\n        for (let i = 0, j = 0; i < nbStates; i++) {\n            if (state[i] === 1)\n                activeIndex[j++] = i;\n        }\n        if (sort) {\n            activeIndex.sort((a, b) => table[a] - table[b]);\n        }\n        const columns = this.columns;\n        for (const i of activeIndex) {\n            const key = table[i];\n            callback((key / columns) | 0, key % columns, values[i]);\n        }\n    }\n    /**\n     * Calls `callback` for each value in the matrix that is not zero.\n     * The callback can return:\n     * - `false` to stop the iteration immediately\n     * - the same value to keep it unchanged\n     * - 0 to remove the value\n     * - something else to change the value\n     * @param {ForEachNonZeroCallback} callback\n     * @returns {this}\n     */\n    forEachNonZero(callback) {\n        this.elements.forEachPair((key, value) => {\n            const i = (key / this.columns) | 0;\n            const j = key % this.columns;\n            let r = callback(i, j, value);\n            if (r === false)\n                return false; // stop iteration\n            if (this.threshold && Math.abs(r) < this.threshold)\n                r = 0;\n            if (r !== value) {\n                if (r === 0) {\n                    this.elements.remove(key, true);\n                }\n                else {\n                    this.elements.set(key, r);\n                }\n            }\n            return true;\n        });\n        this.elements.maybeShrinkCapacity();\n        return this;\n    }\n    /**\n     * Returns the non-zero elements of the matrix in coordinates (COO) or CSR format.\n     *\n     * **COO (Coordinate) format:**\n     * Stores the non-zero elements as three arrays: `rows`, `columns`, and `values`, where each index corresponds to a non-zero entry at (row, column) with the given value.\n     *\n     * **CSR (Compressed Sparse Row) format:**\n     * Stores the matrix using three arrays:\n     *   - `rows`: Row pointer array of length `numRows + 1`, where each entry indicates the start of a row in the `columns` and `values` arrays.\n     *   - `columns`: Column indices of non-zero elements.\n     *   - `values`: Non-zero values.\n     * This format is efficient for row slicing and matrix-vector multiplication.\n     *\n     * @param {Object} [options={}] - Options for output format and sorting.\n     * @param {boolean} [options.csr] - If true, returns the result in CSR format. Otherwise, returns COO format.\n     * @param {boolean} [options.sort] - If true, sorts the non-zero elements by their indices.\n     * @returns {Object} If `csr` is not specified, returns an object with Float64Array `rows`, `columns`, and `values` (COO format).\n     *                   If `csr` is true, returns `{ rows, columns, values }` in CSR format.\n     */\n    getNonZeros(options = {}) {\n        const cardinality = this.cardinality;\n        const rows = new Float64Array(cardinality);\n        const columns = new Float64Array(cardinality);\n        const values = new Float64Array(cardinality);\n        const { csr, sort } = options;\n        let idx = 0;\n        this.withEachNonZero((i, j, value) => {\n            rows[idx] = i;\n            columns[idx] = j;\n            values[idx] = value;\n            idx++;\n        }, sort || csr);\n        return csr\n            ? cooToCsr({ rows, columns, values }, this.rows)\n            : { rows, columns, values };\n    }\n    /**\n     * @param {number} newThreshold\n     * @returns {this}\n     */\n    setThreshold(newThreshold) {\n        if (newThreshold !== 0 && newThreshold !== this.threshold) {\n            this.threshold = newThreshold;\n            this.forEachNonZero((i, j, v) => v);\n        }\n        return this;\n    }\n    /**\n     * @returns {SparseMatrix} - New transposed sparse matrix\n     */\n    transpose() {\n        let trans = new SparseMatrix(this.columns, this.rows, {\n            initialCapacity: this.cardinality,\n        });\n        this.withEachNonZero((i, j, value) => {\n            trans.set(j, i, value);\n        });\n        return trans;\n    }\n    /**\n     * @returns {boolean}\n     */\n    isEmpty() {\n        return this.rows === 0 || this.columns === 0;\n    }\n    // The following was generated by `makeMathMethods.mjs`\n    //#region Math methods.\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    add(value) {\n        if (typeof value === 'number')\n            return this.addS(value);\n        return this.addM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    addS(value) {\n        this.forEachNonZero((i, j, v) => v + value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    addM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) + v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static add(matrix, value) {\n        return new SparseMatrix(matrix).addS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    sub(value) {\n        if (typeof value === 'number')\n            return this.subS(value);\n        return this.subM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    subS(value) {\n        this.forEachNonZero((i, j, v) => v - value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    subM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) - v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static sub(matrix, value) {\n        return new SparseMatrix(matrix).subS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    subtract(value) {\n        if (typeof value === 'number')\n            return this.subtractS(value);\n        return this.subtractM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    subtractS(value) {\n        this.forEachNonZero((i, j, v) => v - value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    subtractM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) - v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static subtract(matrix, value) {\n        return new SparseMatrix(matrix).subtractS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    mul(value) {\n        if (typeof value === 'number')\n            return this.mulS(value);\n        return this.mulM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    mulS(value) {\n        this.forEachNonZero((i, j, v) => v * value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    mulM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) * v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static mul(matrix, value) {\n        return new SparseMatrix(matrix).mulS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    multiply(value) {\n        if (typeof value === 'number')\n            return this.multiplyS(value);\n        return this.multiplyM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    multiplyS(value) {\n        this.forEachNonZero((i, j, v) => v * value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    multiplyM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) * v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static multiply(matrix, value) {\n        return new SparseMatrix(matrix).multiplyS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    div(value) {\n        if (typeof value === 'number')\n            return this.divS(value);\n        return this.divM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    divS(value) {\n        this.forEachNonZero((i, j, v) => v / value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    divM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) / v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static div(matrix, value) {\n        return new SparseMatrix(matrix).divS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    divide(value) {\n        if (typeof value === 'number')\n            return this.divideS(value);\n        return this.divideM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    divideS(value) {\n        this.forEachNonZero((i, j, v) => v / value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    divideM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) / v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static divide(matrix, value) {\n        return new SparseMatrix(matrix).divideS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    mod(value) {\n        if (typeof value === 'number')\n            return this.modS(value);\n        return this.modM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    modS(value) {\n        this.forEachNonZero((i, j, v) => v % value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    modM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) % v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static mod(matrix, value) {\n        return new SparseMatrix(matrix).modS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    modulus(value) {\n        if (typeof value === 'number')\n            return this.modulusS(value);\n        return this.modulusM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    modulusS(value) {\n        this.forEachNonZero((i, j, v) => v % value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    modulusM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) % v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static modulus(matrix, value) {\n        return new SparseMatrix(matrix).modulusS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    and(value) {\n        if (typeof value === 'number')\n            return this.andS(value);\n        return this.andM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    andS(value) {\n        this.forEachNonZero((i, j, v) => v & value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    andM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) & v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static and(matrix, value) {\n        return new SparseMatrix(matrix).andS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    or(value) {\n        if (typeof value === 'number')\n            return this.orS(value);\n        return this.orM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    orS(value) {\n        this.forEachNonZero((i, j, v) => v | value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    orM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) | v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static or(matrix, value) {\n        return new SparseMatrix(matrix).orS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    xor(value) {\n        if (typeof value === 'number')\n            return this.xorS(value);\n        return this.xorM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    xorS(value) {\n        this.forEachNonZero((i, j, v) => v ^ value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    xorM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) ^ v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static xor(matrix, value) {\n        return new SparseMatrix(matrix).xorS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    leftShift(value) {\n        if (typeof value === 'number')\n            return this.leftShiftS(value);\n        return this.leftShiftM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    leftShiftS(value) {\n        this.forEachNonZero((i, j, v) => v << value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    leftShiftM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) << v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static leftShift(matrix, value) {\n        return new SparseMatrix(matrix).leftShiftS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    signPropagatingRightShift(value) {\n        if (typeof value === 'number') {\n            return this.signPropagatingRightShiftS(value);\n        }\n        return this.signPropagatingRightShiftM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    signPropagatingRightShiftS(value) {\n        this.forEachNonZero((i, j, v) => v >> value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    signPropagatingRightShiftM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) >> v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static signPropagatingRightShift(matrix, value) {\n        return new SparseMatrix(matrix).signPropagatingRightShiftS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    rightShift(value) {\n        if (typeof value === 'number')\n            return this.rightShiftS(value);\n        return this.rightShiftM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    rightShiftS(value) {\n        this.forEachNonZero((i, j, v) => v >>> value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    rightShiftM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) >>> v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static rightShift(matrix, value) {\n        return new SparseMatrix(matrix).rightShiftS(value);\n    }\n    /**\n     * @param {number|SparseMatrix} value\n     * @returns {this}\n     */\n    zeroFillRightShift(value) {\n        if (typeof value === 'number')\n            return this.zeroFillRightShiftS(value);\n        return this.zeroFillRightShiftM(value);\n    }\n    /**\n     * @param {number} value\n     * @returns {this}\n     */\n    zeroFillRightShiftS(value) {\n        this.forEachNonZero((i, j, v) => v >>> value);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {this}\n     */\n    zeroFillRightShiftM(matrix) {\n        matrix.forEachNonZero((i, j, v) => {\n            this.set(i, j, this.get(i, j) >>> v);\n            return v;\n        });\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @param {number} value\n     * @returns {SparseMatrix}\n     */\n    static zeroFillRightShift(matrix, value) {\n        return new SparseMatrix(matrix).zeroFillRightShiftS(value);\n    }\n    /**\n     * @returns {this}\n     */\n    not() {\n        this.forEachNonZero((i, j, v) => ~v);\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static not(matrix) {\n        return new SparseMatrix(matrix).not();\n    }\n    /**\n     * @returns {this}\n     */\n    abs() {\n        this.forEachNonZero((i, j, v) => Math.abs(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static abs(matrix) {\n        return new SparseMatrix(matrix).abs();\n    }\n    /**\n     * @returns {this}\n     */\n    acos() {\n        this.forEachNonZero((i, j, v) => Math.acos(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static acos(matrix) {\n        return new SparseMatrix(matrix).acos();\n    }\n    /**\n     * @returns {this}\n     */\n    acosh() {\n        this.forEachNonZero((i, j, v) => Math.acosh(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static acosh(matrix) {\n        return new SparseMatrix(matrix).acosh();\n    }\n    /**\n     * @returns {this}\n     */\n    asin() {\n        this.forEachNonZero((i, j, v) => Math.asin(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static asin(matrix) {\n        return new SparseMatrix(matrix).asin();\n    }\n    /**\n     * @returns {this}\n     */\n    asinh() {\n        this.forEachNonZero((i, j, v) => Math.asinh(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static asinh(matrix) {\n        return new SparseMatrix(matrix).asinh();\n    }\n    /**\n     * @returns {this}\n     */\n    atan() {\n        this.forEachNonZero((i, j, v) => Math.atan(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static atan(matrix) {\n        return new SparseMatrix(matrix).atan();\n    }\n    /**\n     * @returns {this}\n     */\n    atanh() {\n        this.forEachNonZero((i, j, v) => Math.atanh(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static atanh(matrix) {\n        return new SparseMatrix(matrix).atanh();\n    }\n    /**\n     * @returns {this}\n     */\n    cbrt() {\n        this.forEachNonZero((i, j, v) => Math.cbrt(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static cbrt(matrix) {\n        return new SparseMatrix(matrix).cbrt();\n    }\n    /**\n     * @returns {this}\n     */\n    ceil() {\n        this.forEachNonZero((i, j, v) => Math.ceil(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static ceil(matrix) {\n        return new SparseMatrix(matrix).ceil();\n    }\n    /**\n     * @returns {this}\n     */\n    clz32() {\n        this.forEachNonZero((i, j, v) => Math.clz32(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static clz32(matrix) {\n        return new SparseMatrix(matrix).clz32();\n    }\n    /**\n     * @returns {this}\n     */\n    cos() {\n        this.forEachNonZero((i, j, v) => Math.cos(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static cos(matrix) {\n        return new SparseMatrix(matrix).cos();\n    }\n    /**\n     * @returns {this}\n     */\n    cosh() {\n        this.forEachNonZero((i, j, v) => Math.cosh(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static cosh(matrix) {\n        return new SparseMatrix(matrix).cosh();\n    }\n    /**\n     * @returns {this}\n     */\n    exp() {\n        this.forEachNonZero((i, j, v) => Math.exp(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static exp(matrix) {\n        return new SparseMatrix(matrix).exp();\n    }\n    /**\n     * @returns {this}\n     */\n    expm1() {\n        this.forEachNonZero((i, j, v) => Math.expm1(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static expm1(matrix) {\n        return new SparseMatrix(matrix).expm1();\n    }\n    /**\n     * @returns {this}\n     */\n    floor() {\n        this.forEachNonZero((i, j, v) => Math.floor(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static floor(matrix) {\n        return new SparseMatrix(matrix).floor();\n    }\n    /**\n     * @returns {this}\n     */\n    fround() {\n        this.forEachNonZero((i, j, v) => Math.fround(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static fround(matrix) {\n        return new SparseMatrix(matrix).fround();\n    }\n    /**\n     * @returns {this}\n     */\n    log() {\n        this.forEachNonZero((i, j, v) => Math.log(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static log(matrix) {\n        return new SparseMatrix(matrix).log();\n    }\n    /**\n     * @returns {this}\n     */\n    log1p() {\n        this.forEachNonZero((i, j, v) => Math.log1p(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static log1p(matrix) {\n        return new SparseMatrix(matrix).log1p();\n    }\n    /**\n     * @returns {this}\n     */\n    log10() {\n        this.forEachNonZero((i, j, v) => Math.log10(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static log10(matrix) {\n        return new SparseMatrix(matrix).log10();\n    }\n    /**\n     * @returns {this}\n     */\n    log2() {\n        this.forEachNonZero((i, j, v) => Math.log2(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static log2(matrix) {\n        return new SparseMatrix(matrix).log2();\n    }\n    /**\n     * @returns {this}\n     */\n    round() {\n        this.forEachNonZero((i, j, v) => Math.round(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static round(matrix) {\n        return new SparseMatrix(matrix).round();\n    }\n    /**\n     * @returns {this}\n     */\n    sign() {\n        this.forEachNonZero((i, j, v) => Math.sign(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static sign(matrix) {\n        return new SparseMatrix(matrix).sign();\n    }\n    /**\n     * @returns {this}\n     */\n    sin() {\n        this.forEachNonZero((i, j, v) => Math.sin(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static sin(matrix) {\n        return new SparseMatrix(matrix).sin();\n    }\n    /**\n     * @returns {this}\n     */\n    sinh() {\n        this.forEachNonZero((i, j, v) => Math.sinh(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static sinh(matrix) {\n        return new SparseMatrix(matrix).sinh();\n    }\n    /**\n     * @returns {this}\n     */\n    sqrt() {\n        this.forEachNonZero((i, j, v) => Math.sqrt(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static sqrt(matrix) {\n        return new SparseMatrix(matrix).sqrt();\n    }\n    /**\n     * @returns {this}\n     */\n    tan() {\n        this.forEachNonZero((i, j, v) => Math.tan(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static tan(matrix) {\n        return new SparseMatrix(matrix).tan();\n    }\n    /**\n     * @returns {this}\n     */\n    tanh() {\n        this.forEachNonZero((i, j, v) => Math.tanh(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static tanh(matrix) {\n        return new SparseMatrix(matrix).tanh();\n    }\n    /**\n     * @returns {this}\n     */\n    trunc() {\n        this.forEachNonZero((i, j, v) => Math.trunc(v));\n        return this;\n    }\n    /**\n     * @param {SparseMatrix} matrix\n     * @returns {SparseMatrix}\n     */\n    static trunc(matrix) {\n        return new SparseMatrix(matrix).trunc();\n    }\n}\nSparseMatrix.prototype.klass = 'Matrix';\nSparseMatrix.identity = SparseMatrix.eye;\nSparseMatrix.prototype.tensorProduct = SparseMatrix.prototype.kroneckerProduct;\n//# sourceMappingURL=index.js.map","import { SparseMatrix } from '../index.js';\n/**\n * Multiplies two very small sparse matrices (both with cardinalities < 42).\n *\n * @private\n * @param {SparseMatrix} left - The left-hand side matrix.\n * @param {SparseMatrix} right - The right-hand side matrix to multiply with.\n * @returns {SparseMatrix} The resulting matrix after multiplication.\n */\nexport function mmulSmall(left, right) {\n    const { columns: otherCols, rows: otherRows, values: otherValues, } = right.getNonZeros();\n    const nbOtherActive = otherCols.length;\n    const m = left.rows;\n    const p = right.columns;\n    const output = new SparseMatrix(m, p);\n    left.withEachNonZero((i, j, v1) => {\n        for (let o = 0; o < nbOtherActive; o++) {\n            if (j === otherRows[o]) {\n                const l = otherCols[o];\n                output.set(i, l, output.get(i, l) + otherValues[o] * v1);\n            }\n        }\n    });\n    return output;\n}\n//# sourceMappingURL=mmulSmall.js.map","import { SparseMatrix } from '../index.js';\n/**\n * Multiplies two sparse matrices, optimized for cases where the right-hand side matrix\n * has low density (number of rows > 100 and cardinality < 100).\n *\n * @private\n * @param {SparseMatrix} left - The left-hand side matrix.\n * @param {SparseMatrix} right - The right-hand side matrix to multiply with.\n * @returns {SparseMatrix} The resulting matrix after multiplication.\n */\nexport function mmulLowDensity(left, right) {\n    const { columns: otherCols, rows: otherRows, values: otherValues, } = right.getNonZeros();\n    const { columns: thisCols, rows: thisRows, values: thisValues, } = left.getNonZeros();\n    const m = left.rows;\n    const p = right.columns;\n    const output = new SparseMatrix(m, p);\n    const nbOtherActive = otherCols.length;\n    const nbThisActive = thisCols.length;\n    for (let t = 0; t < nbThisActive; t++) {\n        const i = thisRows[t];\n        const j = thisCols[t];\n        for (let o = 0; o < nbOtherActive; o++) {\n            if (j === otherRows[o]) {\n                const l = otherCols[o];\n                output.set(i, l, output.get(i, l) + otherValues[o] * thisValues[t]);\n            }\n        }\n    }\n    return output;\n}\n//# sourceMappingURL=mmulLowDensity.js.map","import { SparseMatrix } from '../index.js';\n/**\n * Multiplies two sparse matrices where the right-hand side matrix is of medium density.\n * Uses CSR format for the right-hand side for efficient multiplication.\n *\n * @private\n * @param {SparseMatrix} left - The left-hand side matrix.\n * @param {SparseMatrix} right - The right-hand side matrix to multiply with (in CSR format).\n * @returns {SparseMatrix} The resulting matrix after multiplication.\n */\nexport function mmulMediumDensity(left, right) {\n    const m = left.rows;\n    const p = right.columns;\n    const result = new SparseMatrix(m, p);\n    const { columns: thisCols, rows: thisRows, values: thisValues, } = left.getNonZeros();\n    const { columns: otherCols, rows: otherRows, values: otherValues, } = right.getNonZeros({ csr: true });\n    const nbThisActive = thisCols.length;\n    for (let t = 0; t < nbThisActive; t++) {\n        const i = thisRows[t];\n        const j = thisCols[t];\n        const oStart = otherRows[j];\n        const oEnd = otherRows[j + 1];\n        for (let k = oStart; k < oEnd; k++) {\n            const l = otherCols[k];\n            result.set(i, l, result.get(i, l) + otherValues[k] * thisValues[t]);\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=mmulMediumDensity.js.map","/**\n * Converts a matrix from Coordinate (COO) format to Compressed Sparse Row (CSR) format.\n * @param {Object} cooMatrix - The matrix in COO format with properties: values, columns, rows.\n * @param {number} nbRows - The number of rows in the matrix.\n * @returns {{rows: Float64Array, columns: Float64Array, values: Float64Array}} The matrix in CSR format.\n */\nexport function cooToCsr(cooMatrix, nbRows) {\n    const { values, columns, rows } = cooMatrix;\n    const csrRowPtr = new Float64Array(nbRows + 1);\n    // Count non-zeros per row\n    const numberOfNonZeros = rows.length;\n    for (let i = 0; i < numberOfNonZeros; i++) {\n        csrRowPtr[rows[i] + 1]++;\n    }\n    // Compute cumulative sum\n    for (let i = 1; i <= nbRows; i++) {\n        csrRowPtr[i] += csrRowPtr[i - 1];\n    }\n    return { rows: csrRowPtr, columns, values };\n}\n//# sourceMappingURL=cooToCsr.js.map","import { matrixCuthillMckee } from 'ml-spectra-processing';\n/**\n * Updates the system matrix with new weights and computes the weighted right-hand side vector.\n * @param matrix - The lower triangular non-zeros matrix in triplet format.\n * @param y - The original data vector.\n * @param weights - The weights vector.\n * @returns A tuple of the updated matrix and the weighted right-hand side vector.\n */\nexport function updateSystem(matrix, y, weights) {\n    const nbPoints = y.length;\n    const l = nbPoints - 1;\n    const newMatrix = new Array(matrix.length);\n    const newVector = new Float64Array(nbPoints);\n    for (let i = 0; i < l; i++) {\n        const w = weights[i];\n        const diag = i * 2;\n        const next = diag + 1;\n        newMatrix[diag] = matrix[diag].slice();\n        newMatrix[next] = matrix[next].slice();\n        if (w === 0) {\n            newVector[i] = 0;\n        }\n        else {\n            newVector[i] = y[i] * w;\n            newMatrix[diag][2] += w;\n        }\n    }\n    newVector[l] = y[l] * weights[l];\n    newMatrix[l * 2] = matrix[l * 2].slice();\n    newMatrix[l * 2][2] += weights[l];\n    return [newMatrix, newVector];\n}\n/**\n * Constructs the delta matrix and applies Cuthill-McKee permutation.\n * @param nbPoints - Number of data points.\n * @param lambda - Smoothing parameter.\n * @returns An object containing the lower triangular non-zeros matrix and the permutation array.\n */\nexport function getDeltaMatrix(nbPoints, lambda) {\n    const matrix = [];\n    const last = nbPoints - 1;\n    for (let i = 0; i < last; i++) {\n        matrix.push([i, i, lambda * 2], [i + 1, i, -1 * lambda]);\n    }\n    matrix[0][2] = lambda;\n    matrix.push([last, last, lambda]);\n    return {\n        lowerTriangularNonZeros: matrix,\n        permutationEncodedArray: matrixCuthillMckee(matrix, nbPoints),\n    };\n}\n//# sourceMappingURL=utils.js.map","import { matrixCholeskySolver, xAbsoluteSum, xBinning, xFindClosestIndex, xNoiseSanPlot, xSubtract, xyInterpolateLinear, } from 'ml-spectra-processing';\nimport { getDeltaMatrix, updateSystem } from \"./utils.js\";\n/**\n * Fit the baseline drift by iteratively changing weights of sum square error between the fitted baseline and original signals,\n * for further information about the parameters you can get the {@link https://github.com/zmzhang/airPLS/blob/main/airPLS_manuscript.pdf paper of airPLS}.\n * @param x - X axis data useful when control points or zones are submitted.\n * @param y - Original data.\n * @param options - Options object.\n * @returns An object containing the corrected data, baseline, iteration count, and error.\n */\nexport default function airPLS(x, y, options = {}) {\n    const { xWork, yWork, optionsWork, shouldDownsample } = getDownSampleData(x, y, options);\n    const { weights, controlPoints } = getControlPoints(xWork, yWork, optionsWork);\n    const { maxIterations = 100, lambda = 10, tolerance = 0.001 } = optionsWork;\n    let baseline = [];\n    let iteration;\n    let sumNegDifferences = Number.MAX_SAFE_INTEGER;\n    const corrected = Float64Array.from(yWork);\n    const stopCriterion = getStopCriterion(yWork, tolerance);\n    const { length } = yWork;\n    const { lowerTriangularNonZeros, permutationEncodedArray } = getDeltaMatrix(length, lambda);\n    let threshold = 1;\n    const l = length - 1;\n    let prevNegSum = Number.MAX_SAFE_INTEGER;\n    for (iteration = 0; iteration < maxIterations && Math.abs(sumNegDifferences) > stopCriterion; iteration++) {\n        const [leftHandSide, rightHandSide] = updateSystem(lowerTriangularNonZeros, yWork, weights);\n        const cho = matrixCholeskySolver(leftHandSide, length, permutationEncodedArray);\n        if (cho === null) {\n            throw new Error('Cholesky decomposition failed');\n        }\n        baseline = cho(rightHandSide);\n        sumNegDifferences = applyCorrection(yWork, baseline, corrected);\n        if (iteration === 1) {\n            const { positive } = xNoiseSanPlot(corrected);\n            threshold = positive;\n        }\n        else {\n            const absChange = Math.abs(prevNegSum / sumNegDifferences);\n            if (absChange < 1.01 && absChange > 0.99) {\n                break;\n            }\n        }\n        prevNegSum = sumNegDifferences + 0;\n        for (let i = 1; i < l; i++) {\n            const diff = Math.abs(corrected[i]);\n            if (controlPoints[i] < 1 && diff > threshold * 2) {\n                weights[i] = 0;\n            }\n            else {\n                weights[i] = Math.exp(-((diff / threshold) ** 2));\n            }\n        }\n        weights[0] = 1;\n        weights[l] = 1;\n    }\n    // Interpolate results back to original resolution if downsampling was applied\n    let finalBaseline = baseline;\n    let finalCorrected = corrected;\n    if (shouldDownsample) {\n        finalBaseline = xyInterpolateLinear({ x: xWork, y: baseline }, x);\n        finalCorrected = xSubtract(y, finalBaseline);\n    }\n    return {\n        corrected: finalCorrected,\n        baseline: finalBaseline,\n        iteration,\n        error: sumNegDifferences,\n    };\n}\nfunction applyCorrection(y, baseline, corrected) {\n    let sumNegDifferences = 0;\n    for (let i = 0; i < y.length; i++) {\n        const diff = y[i] - baseline[i];\n        if (diff < 0)\n            sumNegDifferences += diff;\n        corrected[i] = diff;\n    }\n    return sumNegDifferences;\n}\nfunction getDownSampleData(x, y, options = {}) {\n    const { autoDownsample = false, maxResolution = 5000, controlPoints, } = options;\n    const shouldDownsample = autoDownsample && y.length > maxResolution;\n    if (!shouldDownsample) {\n        return { xWork: x, yWork: y, optionsWork: options, shouldDownsample };\n    }\n    const binSize = getDownsampleFactor(y.length, maxResolution);\n    const xWork = xBinning(x, {\n        binSize,\n        keepFirstAndLast: true,\n    });\n    const yWork = xBinning(y, {\n        binSize,\n        keepFirstAndLast: true,\n    });\n    let optionsWork = options;\n    // Downsample controlPoints if provided, to match downsampled x and y\n    if (controlPoints) {\n        const downsampledControlPoints = new Int8Array(xWork.length);\n        for (let i = 0; i < x.length; i++) {\n            if (controlPoints[i] > 0) {\n                const closestIndex = xFindClosestIndex(xWork, x[i]);\n                downsampledControlPoints[closestIndex] = 1;\n            }\n        }\n        optionsWork = {\n            ...options,\n            controlPoints: downsampledControlPoints,\n        };\n    }\n    return { xWork, yWork, optionsWork, shouldDownsample };\n}\nfunction getStopCriterion(y, tolerance) {\n    const sum = xAbsoluteSum(y);\n    return tolerance * sum;\n}\nfunction getControlPoints(x, y, options = {}) {\n    const { length } = x;\n    const { controlPoints = Int8Array.from({ length }).fill(0) } = options;\n    const { zones = [], weights = Float64Array.from({ length }).fill(1) } = options;\n    if (x.length !== y.length) {\n        throw new RangeError('Y should match the length with X');\n    }\n    else if (controlPoints.length !== x.length) {\n        throw new RangeError('controlPoints should match the length with X');\n    }\n    else if (weights.length !== x.length) {\n        throw new RangeError('weights should match the length with X');\n    }\n    for (const range of zones) {\n        let indexFrom = xFindClosestIndex(x, range.from);\n        let indexTo = xFindClosestIndex(x, range.to);\n        if (indexFrom > indexTo)\n            [indexFrom, indexTo] = [indexTo, indexFrom];\n        for (let i = indexFrom; i < indexTo; i++) {\n            controlPoints[i] = 1;\n        }\n    }\n    return {\n        weights,\n        controlPoints,\n    };\n}\n/**\n * Calculate the downsampling factor to reduce data to target resolution.\n * @param originalLength - Original data length.\n * @param targetResolution - Target number of points.\n * @returns Downsampling factor.\n */\nfunction getDownsampleFactor(originalLength, targetResolution) {\n    return Math.max(1, Math.ceil(originalLength / targetResolution));\n}\n//# sourceMappingURL=index.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xGetFromToIndex } from \"./xGetFromToIndex.js\";\nexport function xAbsoluteSum(array, options = {}) {\n    xCheck(array);\n    const { fromIndex, toIndex } = xGetFromToIndex(array, options);\n    let sum = 0;\n    for (let i = fromIndex; i <= toIndex; i++) {\n        sum += Math.abs(array[i]);\n    }\n    return sum;\n}\n//# sourceMappingURL=xAbsoluteSum.js.map","import { xyCheck } from \"./xyCheck.js\";\n/**\n * Interpolate y values at target x positions using linear interpolation.\n * This is useful for upsampling or resampling data to specific x positions.\n * Both the input data and target x values must be sorted in ascending order.\n * Uses a two-pointer approach with O(n + m) complexity.\n * @param data - object that contains property x (an ordered increasing array) and y (an array).\n * @param xTarget - target x positions where y values should be interpolated.\n * @returns interpolated y values at target x positions.\n */\nexport function xyInterpolateLinear(data, xTarget) {\n    xyCheck(data);\n    const { x, y } = data;\n    if (x.length === 0) {\n        return new Float64Array(0);\n    }\n    const result = new Float64Array(xTarget.length);\n    let sparseIndex = 0;\n    for (let i = 0; i < xTarget.length; i++) {\n        const targetX = xTarget[i];\n        // Move sparse index forward while we can\n        while (sparseIndex < x.length - 1 && x[sparseIndex + 1] < targetX) {\n            sparseIndex++;\n        }\n        // Handle edge cases\n        if (sparseIndex === 0 && targetX <= x[0]) {\n            // Before first point\n            if (x.length === 1) {\n                result[i] = y[0];\n            }\n            else {\n                // Extrapolate using first two points\n                const t = (targetX - x[0]) / (x[1] - x[0]);\n                result[i] = y[0] * (1 - t) + y[1] * t;\n            }\n        }\n        else if (sparseIndex >= x.length - 1) {\n            // After last point\n            result[i] = y[x.length - 1];\n        }\n        else {\n            // Normal interpolation between two points\n            const leftIdx = sparseIndex;\n            const rightIdx = sparseIndex + 1;\n            const t = (targetX - x[leftIdx]) / (x[rightIdx] - x[leftIdx]);\n            result[i] = y[leftIdx] * (1 - t) + y[rightIdx] * t;\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=xyInterpolateLinear.js.map","import { isAnyArray } from 'is-any-array';\n/**\n * Check that x and y are arrays with the same length.\n * @param x - first array\n * @param y - second array\n * @throws if x or y are not the same length, or if they are not arrays\n */\nexport function checkArrayLength(x, y) {\n    if (!isAnyArray(x) || !isAnyArray(y)) {\n        throw new TypeError('x and y must be arrays');\n    }\n    if (x.length !== y.length) {\n        throw new RangeError('x and y arrays must have the same length');\n    }\n}\n//# sourceMappingURL=checkArrayLength.js.map","import { isAnyArray } from 'is-any-array';\nimport { checkArrayLength } from './checkArrayLength';\nexport class BaseRegression {\n    constructor() {\n        if (new.target === BaseRegression) {\n            throw new Error('BaseRegression must be subclassed');\n        }\n    }\n    predict(x) {\n        if (typeof x === 'number') {\n            return this._predict(x);\n        }\n        else if (isAnyArray(x)) {\n            const y = [];\n            for (const xVal of x) {\n                y.push(this._predict(xVal));\n            }\n            return y;\n        }\n        else {\n            throw new TypeError('x must be a number or array');\n        }\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _predict(x) {\n        throw new Error('_predict must be implemented');\n    }\n    train() {\n        // Do nothing for this package\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    toString(precision) {\n        return '';\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    toLaTeX(precision) {\n        return '';\n    }\n    /**\n     * Return the correlation coefficient of determination (r) and chi-square.\n     * @param x - explanatory variable\n     * @param y - response variable\n     * @return - Object with further statistics.\n     */\n    score(x, y) {\n        checkArrayLength(x, y);\n        const n = x.length;\n        const y2 = new Array(n);\n        for (let i = 0; i < n; i++) {\n            y2[i] = this._predict(x[i]);\n        }\n        let xSum = 0;\n        let ySum = 0;\n        let chi2 = 0;\n        let rmsd = 0;\n        let xSquared = 0;\n        let ySquared = 0;\n        let xY = 0;\n        for (let i = 0; i < n; i++) {\n            xSum += y2[i];\n            ySum += y[i];\n            xSquared += y2[i] * y2[i];\n            ySquared += y[i] * y[i];\n            xY += y2[i] * y[i];\n            if (y[i] !== 0) {\n                chi2 += ((y[i] - y2[i]) * (y[i] - y2[i])) / y[i];\n            }\n            rmsd += (y[i] - y2[i]) * (y[i] - y2[i]);\n        }\n        const r = (n * xY - xSum * ySum) /\n            Math.sqrt((n * xSquared - xSum * xSum) * (n * ySquared - ySum * ySum));\n        return {\n            r,\n            r2: r * r,\n            chi2,\n            rmsd: Math.sqrt(rmsd / n),\n        };\n    }\n}\n//# sourceMappingURL=BaseRegression.js.map","/**\n * Cast `number` to string. Optionally `digits` specifies significant figures.\n * @param number\n * @param figures\n * @returns - A string representation of `number`.\n */\nexport function maybeToPrecision(number, figures) {\n    if (number < 0) {\n        number = 0 - number;\n        if (typeof figures === 'number') {\n            return `- ${number.toPrecision(figures)}`;\n        }\n        else {\n            return `- ${number.toString()}`;\n        }\n    }\n    else if (typeof figures === 'number') {\n        return number.toPrecision(figures);\n    }\n    else {\n        return number.toString();\n    }\n}\n//# sourceMappingURL=maybeToPrecision.js.map","import { Matrix, MatrixTransposeView, solve } from 'ml-matrix';\nimport { BaseRegression, checkArrayLength, maybeToPrecision, } from 'ml-regression-base';\nexport class PolynomialRegression extends BaseRegression {\n    degree;\n    powers;\n    coefficients;\n    /**\n     * Build a polynomial regression model from the given data set.\n     * @param x - independent or explanatory variable\n     * @param y - dependent or response variable\n     * @param degree - degree of the polynomial regression, or array of powers to be used. When degree is an array, intercept at zero is forced to false/ignored.\n     * @param options - regression options\n     * @example `new PolynomialRegression(x, y, 2)`, in this case, you can pass the option `interceptAtZero`, if you need it.\n     * @example `new PolynomialRegression(x, y, [1, 3, 5])`\n     * Each of the degrees corresponds to a column, so if you have them switched, just do:\n     * @example `new PolynomialRegression(x, y, [3, 1, 5])`\n     */\n    constructor(x, y, degree, options = {}) {\n        super();\n        // @ts-expect-error internal use only\n        if (x === true) {\n            // @ts-expect-error internal use only\n            this.degree = y.degree;\n            // @ts-expect-error internal use only\n            this.powers = y.powers;\n            // @ts-expect-error internal use only\n            this.coefficients = y.coefficients;\n        }\n        else {\n            checkArrayLength(x, y);\n            const result = regress(x, y, degree, options);\n            this.degree = result.degree;\n            this.powers = result.powers;\n            this.coefficients = result.coefficients;\n        }\n    }\n    _predict(x) {\n        const { coefficients, powers } = this;\n        let y = 0;\n        for (let k = 0; k < powers.length; k++) {\n            const coefficient = coefficients[k] ?? 0;\n            const power = powers[k] ?? 0;\n            y += coefficient * x ** power;\n        }\n        return y;\n    }\n    toJSON() {\n        return {\n            name: 'polynomialRegression',\n            degree: this.degree,\n            powers: this.powers,\n            coefficients: this.coefficients,\n        };\n    }\n    toString(precision) {\n        return this._toFormula(precision, false);\n    }\n    toLaTeX(precision) {\n        return this._toFormula(precision, true);\n    }\n    _toFormula(precision, isLaTeX) {\n        let sup = '^';\n        let closeSup = '';\n        let times = ' * ';\n        if (isLaTeX) {\n            sup = '^{';\n            closeSup = '}';\n            times = '';\n        }\n        let fn = '';\n        let str = '';\n        for (let k = 0; k < this.coefficients.length; k++) {\n            str = '';\n            const coefficient = this.coefficients[k] ?? 0;\n            const power = this.powers[k] ?? 0;\n            if (coefficient !== 0) {\n                if (power === 0) {\n                    str = maybeToPrecision(coefficient, precision);\n                }\n                else if (power === 1) {\n                    str = `${maybeToPrecision(coefficient, precision) + times}x`;\n                }\n                else {\n                    str = `${maybeToPrecision(coefficient, precision) + times}x${sup}${power}${closeSup}`;\n                }\n                if (coefficient > 0 && k !== this.coefficients.length - 1) {\n                    str = ` + ${str}`;\n                }\n                else if (k !== this.coefficients.length - 1) {\n                    str = ` ${str}`;\n                }\n            }\n            fn = str + fn;\n        }\n        if (fn.startsWith('+')) {\n            fn = fn.slice(1);\n        }\n        return `f(x) = ${fn}`;\n    }\n    static load(json) {\n        if (json.name !== 'polynomialRegression') {\n            throw new TypeError('not a polynomial regression model');\n        }\n        // @ts-expect-error internal use only\n        return new PolynomialRegression(true, json);\n    }\n}\n/**\n * Perform a polynomial regression on the given data set.\n * This is an internal function.\n * @param x - independent or explanatory variable\n * @param y - dependent or response variable\n * @param degree - degree of the polynomial regression\n * @param options - regression options\n * @returns degree, powers and coefficients of the fitted polynomial\n */\nfunction regress(x, y, degree, options = {}) {\n    const n = x.length;\n    let { interceptAtZero = false } = options;\n    let powers = [];\n    if (Array.isArray(degree)) {\n        powers = degree;\n        interceptAtZero = false;\n    }\n    else if (typeof degree === 'number') {\n        if (interceptAtZero) {\n            powers = new Array(degree);\n            for (let k = 0; k < degree; k++) {\n                powers[k] = k + 1;\n            }\n        }\n        else {\n            powers = new Array(degree + 1);\n            for (let k = 0; k <= degree; k++) {\n                powers[k] = k;\n            }\n        }\n    }\n    const nCoefficients = powers.length;\n    const F = new Matrix(n, nCoefficients);\n    const Y = new Matrix([Array.from(y)]);\n    for (let k = 0; k < nCoefficients; k++) {\n        const power = powers[k] ?? 0;\n        for (let i = 0; i < n; i++) {\n            if (power === 0) {\n                F.set(i, k, 1);\n            }\n            else {\n                F.set(i, k, (x[i] ?? 0) ** power);\n            }\n        }\n    }\n    const FT = new MatrixTransposeView(F);\n    const A = FT.mmul(F);\n    const B = FT.mmul(new MatrixTransposeView(Y));\n    return {\n        coefficients: solve(A, B).to1DArray(),\n        degree: Math.max(...powers),\n        powers,\n    };\n}\n//# sourceMappingURL=index.js.map","import { xMean } from 'ml-spectra-processing';\n/**\n * Center the mean\n * @param data\n */\nexport function centerMean(data) {\n    const { y } = data;\n    const mean = xMean(y);\n    for (let i = 0; i < y.length; i++) {\n        y[i] -= mean;\n    }\n    return { data };\n}\n//# sourceMappingURL=centerMean.js.map","import { xMedian } from 'ml-spectra-processing';\n/**\n * Center the median\n * @param data\n */\nexport function centerMedian(data) {\n    const { y } = data;\n    const median = xMedian(y);\n    for (let i = 0; i < y.length; i++) {\n        y[i] -= median;\n    }\n    return { data };\n}\n//# sourceMappingURL=centerMedian.js.map","import { xGetFromToIndex } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n * @param options\n */\nexport function fromTo(data, options = {}) {\n    const { fromIndex, toIndex } = xGetFromToIndex(data.x, options);\n    return {\n        data: {\n            x: data.x.subarray(fromIndex, toIndex + 1),\n            y: data.y.subarray(fromIndex, toIndex + 1),\n        },\n    };\n}\n//# sourceMappingURL=fromTo.js.map","import { xNormed } from 'ml-spectra-processing';\n/**\n * Norm the Y values\n * @param data\n * @param options\n */\nexport function normed(data, options = {}) {\n    xNormed(data.y, { ...options, output: data.y });\n    return { data };\n}\n//# sourceMappingURL=normed.js.map","import { xStandardDeviation } from 'ml-spectra-processing';\n/**\n * Center the mean\n * @param data\n */\nexport function divideBySD(data) {\n    const { y } = data;\n    const sd = xStandardDeviation(y);\n    for (let i = 0; i < y.length; i++) {\n        y[i] /= sd;\n    }\n    return { data };\n}\n//# sourceMappingURL=divideBySD.js.map","import { xRescale } from 'ml-spectra-processing';\n/**\n * Center the mean\n * @param data\n * @param options\n */\nexport function rescale(data, options = {}) {\n    xRescale(data.y, { ...options, output: data.y });\n    return { data };\n}\n//# sourceMappingURL=rescale.js.map","import { getOutputArray } from \"./getOutputArray.js\";\nimport { xCheck } from \"./xCheck.js\";\nimport { xMaxValue } from \"./xMaxValue.js\";\nimport { xMinValue } from \"./xMinValue.js\";\n/**\n * Function used to rescale data\n * @param input - input for the rescale\n * @param options - options\n * @returns rescaled data\n */\nexport function xRescale(input, options = {}) {\n    xCheck(input);\n    const output = getOutputArray(options.output, input.length);\n    const currentMin = xMinValue(input);\n    const currentMax = xMaxValue(input);\n    if (currentMin === currentMax) {\n        throw new RangeError('minimum and maximum input values are equal. Cannot rescale a constant array');\n    }\n    const { min = 0, max = 1 } = options;\n    if (min >= max) {\n        throw new RangeError('min option must be smaller than max option');\n    }\n    const factor = (max - min) / (currentMax - currentMin);\n    for (let i = 0; i < input.length; i++) {\n        output[i] = (input[i] - currentMin) * factor + min;\n    }\n    return output;\n}\n//# sourceMappingURL=xRescale.js.map","import { xParetoNormalization } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n */\nexport function paretoNormalization(data) {\n    return {\n        data: {\n            x: data.x,\n            y: xParetoNormalization(data.y),\n        },\n    };\n}\n//# sourceMappingURL=paretoNormalization.js.map","import { baselineCorrectionRegression } from 'ml-baseline-correction-regression';\nimport { xSequentialFillFromTo } from 'ml-spectra-processing/x';\n\n/**\n * Iterative polynomial fitting [1]\n *\n * Implementation based on ml-baseline-correction-regression\n *\n * References:\n * [1] Gan, F.; Ruan, G.; Mo, J.\n * Baseline Correction by Improved Iterative Polynomial Fitting with Automatic Threshold.\n *  Chemometrics and Intelligent Laboratory Systems 2006, 82 (1), 59–65.\n * https://doi.org/10.1016/j.chemolab.2005.08.009.\n * @export\n * @param {Array<number>} ys\n * @param {object} [options] - Options object\n * @param {Array<number>} [options.x] Optional, Independent axis variable. If not specified, we use a linear grid\n * @param {Object} [options.regression]\n * @param {number} [options.regression.maxIterations = 100] - Maximum number of allowed iterations\n * @param {Object} [options.regression]\n * @param {function} [options.regression.Regression = PolynomialRegression] - Regression class with a predict method\n * @param {Object} [options.regression.regressionOptions] - Options for regressionFunction\n * @param {number} [options.regression.tolerance = 0.001] - Convergence error tolerance\n * @returns {BaselineOutput}\n */\nexport function iterativePolynomialBaseline(ys, options = {}) {\n  const numberPoints = ys.length;\n  let { x, regressionOptions } = options;\n  if (!x) {\n    x = xSequentialFillFromTo({\n      from: 0,\n      to: numberPoints - 1,\n      size: numberPoints,\n    });\n  }\n\n  let output = baselineCorrectionRegression(x, ys, regressionOptions);\n\n  return { baseline: output.baseline, correctedSpectrum: output.corrected };\n}\n","import { PolynomialRegression } from 'ml-regression-polynomial';\n\n/**\n * Iterative regression-based baseline correction\n * @param {Array<number>} x - Independent axis variable\n * @param {Array<number>} y - Dependent axis variable\n * @param {object} [options] - Options object\n * @param {number} [options.maxIterations = 100] - Maximum number of allowed iterations\n * @param {function} [options.Regression = PolynomialRegression] - Regression class with a predict method\n * @param {*} [options.regressionOptions] - Options for regressionFunction\n * @param {number} [options.tolerance = 0.001] - Convergence error tolerance\n * @return {{corrected: Array<number>, delta: number, iteration: number, baseline: Array<number>}}\n */\nexport function baselineCorrectionRegression(x, y, options = {}) {\n  let {\n    maxIterations = 100,\n    Regression = PolynomialRegression,\n    regressionOptions,\n    tolerance = 0.001,\n  } = options;\n\n  if (!regressionOptions && Regression === PolynomialRegression) {\n    regressionOptions = 3;\n  }\n\n  let baseline = y.slice();\n  let fitting = y.slice();\n  let oldFitting = y;\n  let iteration = 0;\n  let delta;\n  let regression;\n  while (iteration < maxIterations) {\n    // Calculate the fitting result\n    regression = new Regression(x, baseline, regressionOptions);\n\n    delta = 0;\n    for (let i = 0; i < baseline.length; i++) {\n      fitting[i] = regression.predict(x[i]);\n      if (baseline[i] > fitting[i]) {\n        baseline[i] = fitting[i];\n      }\n\n      delta += Math.abs((fitting[i] - oldFitting[i]) / oldFitting[i]);\n    }\n\n    // Stop criterion\n    if (delta < tolerance) {\n      break;\n    } else {\n      oldFitting = fitting.slice();\n      iteration++;\n    }\n  }\n\n  // removes baseline\n  let corrected = new Array(baseline.length);\n  for (let j = 0; j < baseline.length; j++) {\n    corrected[j] = y[j] - baseline[j];\n  }\n\n  return {\n    corrected,\n    delta,\n    iteration,\n    baseline,\n    regression,\n  };\n}\n","import { xRollingAverage } from 'ml-spectra-processing';\n\n/**\n\n *\n * @export\n * @param {Array<number>} ys\n * @param {Object} [options={}]\n * @param {number} [options.window] rolling window size, defaults to 10% of the length of the spectrum\n * @param {string} [options.padding.size=window-1] none, value, circular, duplicate\n * @param {string} [options.padding.algorithm='duplicate'] none, value, circular, duplicate\n * @param {number} [options.padding.value=0] value to use for padding (if algorithm='value')\n * @returns {BaselineOutput}\n */\nexport function rollingAverageBaseline(ys, options = {}) {\n  let window = Math.max(Math.round(ys.length * 0.1), 2);\n  let defaults = {\n    window,\n    padding: {\n      size: window - 1,\n      algorithm: 'duplicate',\n      value: 0,\n    },\n  };\n  let actualOptions = { ...defaults, ...options };\n  let baseline = xRollingAverage(ys, actualOptions);\n  let corrected = new Float64Array(ys.length);\n  for (let i = 0; i < corrected.length; i++) {\n    corrected[i] = ys[i] - baseline[i];\n  }\n\n  return { baseline, correctedSpectrum: corrected };\n}\n","import { xMean } from \"./xMean.js\";\nimport { xRolling } from \"./xRolling.js\";\n/**\n * This function calculates a rolling average\n * @param array - array\n * @param options - option\n */\nexport function xRollingAverage(array, options = {}) {\n    return xRolling(array, xMean, options);\n}\n//# sourceMappingURL=xRollingAverage.js.map","import { rollingBall } from 'ml-rolling-ball-baseline';\n\n/**\n * Rolling ball baseline correction algorithm.\n * From the abstract of (1):\n * \"This algorithm behaves equivalently to traditional polynomial backgrounds in simple spectra,\n * [...] and is considerably more robust for multiple overlapping peaks, rapidly varying background [...]\n *\n * The baseline is the trace one gets by rolling a ball below a spectrum. Algorithm has three steps:\n * Finding the minima in each window, find maxima among minima and then smooth over them by averaging.\n *\n * Algorithm described in (1), but in the implementation here the window width does not change.\n *\n * Reference:\n * (1) Kneen, M. A.; Annegarn, H. J.\n *     Algorithm for Fitting XRF, SEM and PIXE X-Ray Spectra Backgrounds.\n *     Nuclear Instruments and Methods in Physics Research Section B: Beam Interactions with Materials and Atoms 1996, 109–110, 209–213.\n *     https://doi.org/10.1016/0168-583X(95)00908-6.\n * (2) Kristian Hovde Liland, Bjørn-Helge Mevik, Roberto Canteri: baseline.\n *     https://cran.r-project.org/web/packages/baseline/index.html\n *\n * @export\n * @param {Array<number>} ys\n * @param {Object} [options={}]\n * @param {Number} [options.windowM] - width of local window for minimization/maximization, defaults to 4% of the spectrum length\n * @param {Number} [options.windowS] - width of local window for smoothing, defaults to 8% of the specturm length\n * @returns {BaselineOutput}\n */\nexport function rollingBallBaseline(ys, options = {}) {\n  const baseline = rollingBall(ys, options);\n  let corrected = new Float64Array(ys.length);\n  for (let i = 0; i < corrected.length; i++) {\n    corrected[i] = ys[i] - baseline[i];\n  }\n\n  return { baseline, correctedSpectrum: corrected };\n}\n","import { isAnyArray } from 'is-any-array';\nimport { xMaxValue, xMean, xMinValue } from 'ml-spectra-processing';\n/**\n * Rolling ball baseline correction algorithm.\n * From the abstract of (1):\n * \"This algorithm behaves equivalently to traditional polynomial backgrounds in simple spectra,\n * [...] and is considerably more robust for multiple overlapping peaks, rapidly varying background [...]\n *\n * The baseline is the trace one gets by rolling a ball below a spectrum. Algorithm has three steps:\n * Finding the minima in each window, find maxima among minima and then smooth over them by averaging.\n *\n * Reference:\n * (1) Kneen, M. A.; Annegarn, H. J.\n *     Algorithm for Fitting XRF, SEM and PIXE X-Ray Spectra Backgrounds.\n *     Nuclear Instruments and Methods in Physics Research Section B: Beam Interactions with Materials and Atoms 1996, 109–110, 209–213.\n *     https://doi.org/10.1016/0168-583X(95)00908-6.\n * (2) Kristian Hovde Liland, Bjørn-Helge Mevik, Roberto Canteri: baseline.\n *     https://cran.r-project.org/web/packages/baseline/index.html\n * @param spectrum - Input spectrum.\n * @param options - Rolling ball options.\n * @returns The computed baseline.\n */\nexport function rollingBall(spectrum, options = {}) {\n    if (!isAnyArray(spectrum)) {\n        throw new Error('Spectrum must be an array');\n    }\n    if (spectrum.length === 0) {\n        throw new TypeError('Spectrum must not be empty');\n    }\n    const numberPoints = spectrum.length;\n    const maxima = new Float64Array(numberPoints);\n    const minima = new Float64Array(numberPoints);\n    const baseline = new Float64Array(numberPoints);\n    // windowM 4 percent of spectrum length\n    // windowS 8 percent of spectrum length\n    const { windowM = Math.round(numberPoints * 0.04), windowS = Math.round(numberPoints * 0.08), } = options;\n    // fi(1) in original paper\n    for (let i = 0; i < spectrum.length; i++) {\n        const windowLeft = Math.max(0, i - windowM);\n        const windowRight = Math.min(i + windowM + 1, spectrum.length);\n        minima[i] = xMinValue(spectrum, {\n            fromIndex: windowLeft,\n            toIndex: windowRight,\n        });\n    }\n    // fi in original paper\n    for (let i = 0; i < minima.length; i++) {\n        const windowLeft = Math.max(0, i - windowM);\n        const windowRight = Math.min(i + windowM + 1, minima.length);\n        maxima[i] = xMaxValue(minima, {\n            fromIndex: windowLeft,\n            toIndex: windowRight,\n        });\n    }\n    for (let i = 0; i < minima.length; i++) {\n        const windowLeft = Math.max(0, i - windowS);\n        const windowRight = Math.min(i + windowS + 1, maxima.length);\n        baseline[i] = xMean(maxima.subarray(windowLeft, windowRight));\n    }\n    return baseline;\n}\n//# sourceMappingURL=rollingBall.js.map","import { xRollingMedian } from 'ml-spectra-processing';\n\n/**\n\n *\n * @export\n * @param {Array<number>} ys\n * @param {Object} [options={}]\n * @param {number} [options.window] rolling window size, defaults to 10% of the length of the spectrum\n * @param {string} [options.padding.size=window-1] none, value, circular, duplicate\n * @param {string} [options.padding.algorithm='duplicate'] none, value, circular, duplicate\n * @param {number} [options.padding.value=0] value to use for padding (if algorithm='value')\n * @returns {BaselineOutput}\n */\nexport function rollingMedianBaseline(ys, options = {}) {\n  let window = Math.max(Math.round(ys.length * 0.1), 2);\n  let defaults = {\n    window,\n    padding: {\n      size: window - 1,\n      algorithm: 'duplicate',\n      value: 0,\n    },\n  };\n  let actualOptions = { ...defaults, ...options };\n  let baseline = xRollingMedian(ys, actualOptions);\n  let corrected = new Float64Array(ys.length);\n  for (let i = 0; i < corrected.length; i++) {\n    corrected[i] = ys[i] - baseline[i];\n  }\n\n  return { baseline, correctedSpectrum: corrected };\n}\n","import { xMedian } from \"./xMedian.js\";\nimport { xRolling } from \"./xRolling.js\";\n/**\n * This function calculates a rolling average\n * @param array - array\n * @param options - options\n */\nexport function xRollingMedian(array, options = {}) {\n    return xRolling(array, xMedian, options);\n}\n//# sourceMappingURL=xRollingMedian.js.map","//@ts-expect-error no type definition for baselines\nimport { airPLSBaseline as baselineFct } from 'baselines';\n/**\n * @param data\n */\nexport function airPLSBaseline(data) {\n    data.y = baselineFct(data.y).correctedSpectrum;\n    return { data };\n}\n//# sourceMappingURL=airPLSBaseline.js.map","import airpls from 'ml-airpls';\nimport { xSequentialFillFromTo } from 'ml-spectra-processing/x';\n/**\n * Adaptive iteratively reweighted penalized least squares [1]\n *\n * This function calls ml-airpls\n *\n * References:\n * [1] Zhang, Z.-M.; Chen, S.; Liang, Y.-Z.\n * Baseline Correction Using Adaptive Iteratively Reweighted Penalized Least Squares.\n * Analyst 2010, 135 (5), 1138–1146. https://doi.org/10.1039/B922045C.\n * @export\n * @param {Array<number>} ys\n * @param {object} [options] - Options object\n * @param {Array<number>} [options.x] Optional, Independent axis variable. If not specified, we use a linear grid\n * @param {object} [options.regression] - Options for the regression\n * @param {number} [options.regression.maxIterations = 100] - Maximum number of allowed iterations\n * @param {function} [options.regression.§Regression = PolynomialRegression] - Regression class with a predict method\n * @param {*} [options.regression.regressionOptions] - Options for regressionFunction\n * @param {number} [options.regression.tolerance = 0.001] - Convergence error tolerance\n * @returns {BaselineOutput}\n */\nexport function airPLSBaseline(ys, options = {}) {\n  const numberPoints = ys.length;\n  let { x, regressionOptions } = options;\n  if (!x) {\n    x = xSequentialFillFromTo({\n      from: 0,\n      to: numberPoints - 1,\n      size: numberPoints,\n    });\n  }\n  let output = airpls(x, ys, regressionOptions);\n\n  return { baseline: output.baseline, correctedSpectrum: output.corrected };\n}\n","//@ts-expect-error no type definition for baselines\nimport { iterativePolynomialBaseline as baselineFct } from 'baselines';\n/**\n * @param data\n */\nexport function iterativePolynomialBaseline(data) {\n    data.y = baselineFct(data.y).correctedSpectrum;\n    return { data };\n}\n//# sourceMappingURL=iterativePolynomialBaseline.js.map","//@ts-expect-error no type definition for baselines\nimport { rollingAverageBaseline as baselineFct } from 'baselines';\n/**\n * @param data\n */\nexport function rollingAverageBaseline(data) {\n    data.y = baselineFct(data.y).correctedSpectrum;\n    return { data };\n}\n//# sourceMappingURL=rollingAverageBaseline.js.map","//@ts-expect-error no type definition for baselines\nimport { rollingBallBaseline as baselineFct } from 'baselines';\n/**\n * @param data\n */\nexport function rollingBallBaseline(data) {\n    data.y = baselineFct(data.y).correctedSpectrum;\n    return { data };\n}\n//# sourceMappingURL=rollingBallBaseline.js.map","//@ts-expect-error no type definition for baselines\nimport { rollingMedianBaseline as baselineFct } from 'baselines';\n/**\n * @param data\n */\nexport function rollingMedianBaseline(data) {\n    data.y = baselineFct(data.y).correctedSpectrum;\n    return { data };\n}\n//# sourceMappingURL=rollingMedianBaseline.js.map","/**\n * The spacing of an x axis over a window, which every derivative divides by.\n */\n/**\n * The mean spacing of `h` over the window centred on `center`.\n *\n * The sum of consecutive differences telescopes, so only the two ends of the\n * window are read instead of every point.\n * @param h - The x values.\n * @param center - Index the window is centred on.\n * @param half - Half the window size.\n * @returns The mean spacing.\n */\nexport function meanGap(h, center, half) {\n    const lo = Math.max(center - half, 0);\n    const hi = Math.min(center + half - 1, h.length - 2);\n    return (h[hi + 1] - h[lo]) / (hi - lo + 1);\n}\n/**\n * A spacing raised to a derivative order.\n *\n * Orders 1 and 2 are spelled out because `x ** 1` is far slower than `x`.\n * @param spacing - The mean spacing.\n * @param derivative - The order.\n * @returns The divisor for that order.\n */\nexport function raise(spacing, derivative) {\n    if (derivative === 1)\n        return spacing;\n    if (derivative === 2)\n        return spacing * spacing;\n    return spacing ** derivative;\n}\n//# sourceMappingURL=spacing.js.map","/**\n * The argument checks `sgg` and `sggDerivatives` share.\n */\nimport { isAnyArray } from 'is-any-array';\n/**\n * Throw unless the arguments describe a filter that can be applied.\n * @param ys - Array of y values.\n * @param xs - Array of x values, or a constant spacing.\n * @param windowSize - Number of points in the window.\n * @param polynomial - Polynomial grade.\n * @param derivatives - Every derivative order asked for.\n */\nexport function checkArguments(ys, xs, windowSize, polynomial, derivatives) {\n    if (windowSize % 2 === 0 || windowSize < 5 || !Number.isInteger(windowSize)) {\n        throw new RangeError('Invalid window size (should be odd and at least 5 integer number)');\n    }\n    if (!isAnyArray(ys)) {\n        throw new TypeError('Y values must be an array');\n    }\n    if (xs === undefined) {\n        throw new TypeError('X must be defined');\n    }\n    if (windowSize > ys.length) {\n        throw new RangeError(`Window size is higher than the data length ${windowSize}>${ys.length}`);\n    }\n    for (const derivative of derivatives) {\n        if (derivative < 0 || !Number.isInteger(derivative)) {\n            throw new RangeError('Derivative should be a positive integer');\n        }\n    }\n    if (polynomial < 1 || !Number.isInteger(polynomial)) {\n        throw new RangeError('Polynomial should be a positive integer');\n    }\n    if (polynomial >= 6) {\n        // eslint-disable-next-line no-console\n        console.warn('You should not use polynomial grade higher than 5 if you are' +\n            ' not sure that your data arises from such a model. Possible polynomial oscillation problems');\n    }\n}\n//# sourceMappingURL=validate.js.map","/**\n * The Savitzky-Golay weight matrix, and a bounded cache of recent ones.\n *\n * The matrix depends only on the window size, the polynomial order and the\n * derivative, never on the data, so it is a constant across a run of spectra.\n * Building one costs thousands of recursive `gramPoly` calls.\n */\n/**\n * How many weight matrices are kept.\n *\n * Two at least: a derivative pair asks for the same window twice, so one slot\n * would always be overwritten before it was read back.\n *\n * Bounds the cache at `KEPT_WEIGHTS * windowSize ** 2 * 8` bytes: 2.5 kB at\n * windowSize 9, 319 kB at windowSize 101.\n */\nconst KEPT_WEIGHTS = 4;\n/** The shape each kept matrix was built for, three numbers per slot. */\nconst keptShapes = new Int32Array(KEPT_WEIGHTS * 3).fill(-1);\n/** The matrices themselves, in the same slots. */\nconst keptWeights = new Array(KEPT_WEIGHTS);\n/** The slot the next matrix built will land in, oldest first. */\nlet nextSlot = 0;\n/**\n * The weight matrix for a window, built once per shape rather than once per\n * call.\n *\n * Slots are compared on the three numbers, not on a key built from them, so\n * there is no string allocation per call. The caller must not mutate the\n * result.\n * @param windowSize - Number of points in the window.\n * @param polynomial - Polynomial grade.\n * @param derivative - Derivative order.\n * @returns The weight vectors, one per position in the window.\n */\nexport function cachedWeights(windowSize, polynomial, derivative) {\n    for (let slot = 0; slot < KEPT_WEIGHTS; slot++) {\n        const at = slot * 3;\n        if (keptShapes[at] === windowSize &&\n            keptShapes[at + 1] === polynomial &&\n            keptShapes[at + 2] === derivative) {\n            const known = keptWeights[slot];\n            if (known !== undefined)\n                return known;\n        }\n    }\n    const built = fullWeights(windowSize, polynomial, derivative);\n    const at = nextSlot * 3;\n    keptShapes[at] = windowSize;\n    keptShapes[at + 1] = polynomial;\n    keptShapes[at + 2] = derivative;\n    keptWeights[nextSlot] = built;\n    nextSlot = (nextSlot + 1) % KEPT_WEIGHTS;\n    return built;\n}\nfunction gramPoly(i, m, k, s) {\n    let Grampoly = 0;\n    if (k > 0) {\n        Grampoly =\n            ((4 * k - 2) / (k * (2 * m - k + 1))) *\n                (i * gramPoly(i, m, k - 1, s) + s * gramPoly(i, m, k - 1, s - 1)) -\n                (((k - 1) * (2 * m + k)) / (k * (2 * m - k + 1))) *\n                    gramPoly(i, m, k - 2, s);\n    }\n    else if (k === 0 && s === 0) {\n        Grampoly = 1;\n    }\n    else {\n        Grampoly = 0;\n    }\n    return Grampoly;\n}\nfunction genFact(a, b) {\n    let gf = 1;\n    if (a >= b) {\n        for (let j = a - b + 1; j <= a; j++) {\n            gf *= j;\n        }\n    }\n    return gf;\n}\nfunction weight(i, t, m, n, s) {\n    let sum = 0;\n    for (let k = 0; k <= n; k++) {\n        sum +=\n            (2 * k + 1) *\n                (genFact(2 * m, k) / genFact(2 * m + k + 1, k + 1)) *\n                gramPoly(i, m, k, 0) *\n                gramPoly(t, m, k, s);\n    }\n    return sum;\n}\n/**\n * Compute the full weights matrix for every position inside the window.\n * @param m - Number of points.\n * @param n - Polynomial grade.\n * @param s - Derivative.\n * @returns Array of Float64Array weight vectors, one per position in the window.\n */\nfunction fullWeights(m, n, s) {\n    const weights = new Array(m);\n    const np = Math.floor(m / 2);\n    for (let t = -np; t <= np; t++) {\n        weights[t + np] = new Float64Array(m);\n        for (let j = -np; j <= np; j++) {\n            weights[t + np][j + np] = weight(j, t, np, n, s);\n        }\n    }\n    return weights;\n}\n//# sourceMappingURL=weights.js.map","/**\n * The Savitzky-Golay filter, for one derivative order.\n */\nimport { isAnyArray } from 'is-any-array';\nimport { meanGap, raise } from \"./spacing.js\";\nimport { checkArguments } from \"./validate.js\";\nimport { cachedWeights } from \"./weights.js\";\n/**\n * Apply Savitzky Golay algorithm.\n * @param ys - Array of y values.\n * @param xs - Array of X or deltaX.\n * @param options - Options controlling window size, derivative and polynomial order.\n * @returns Array containing the new ys (same length).\n */\nexport function sgg(ys, xs, options = {}) {\n    const { windowSize = 9, derivative = 0, polynomial = 3 } = options;\n    checkArguments(ys, xs, windowSize, polynomial, [derivative]);\n    const half = Math.floor(windowSize / 2);\n    const np = ys.length;\n    const ans = new Float64Array(np);\n    const weights = cachedWeights(windowSize, polynomial, derivative);\n    let hs = 0;\n    let constantH = true;\n    if (isAnyArray(xs)) {\n        constantH = false;\n    }\n    else {\n        hs = raise(xs, derivative);\n    }\n    //For the borders\n    for (let i = 0; i < half; i++) {\n        const wg1 = weights[half - i - 1];\n        const wg2 = weights[half + i + 1];\n        let d1 = 0;\n        let d2 = 0;\n        for (let l = 0; l < windowSize; l++) {\n            d1 += wg1[l] * ys[l];\n            d2 += wg2[l] * ys[np - windowSize + l];\n        }\n        if (constantH) {\n            ans[half - i - 1] = d1 / hs;\n            ans[np - half + i] = d2 / hs;\n        }\n        else {\n            hs = raise(meanGap(xs, half - i - 1, half), derivative);\n            ans[half - i - 1] = d1 / hs;\n            hs = raise(meanGap(xs, np - half + i, half), derivative);\n            ans[np - half + i] = d2 / hs;\n        }\n    }\n    //For the internal points\n    const wg = weights[half];\n    for (let i = windowSize; i <= np; i++) {\n        let d = 0;\n        for (let l = 0; l < windowSize; l++)\n            d += wg[l] * ys[l + i - windowSize];\n        if (!constantH) {\n            hs = raise(meanGap(xs, i - half - 1, half), derivative);\n        }\n        ans[i - half - 1] = d / hs;\n    }\n    return ans;\n}\n//# sourceMappingURL=sgg.js.map","import { sgg } from 'ml-savitzky-golay-generalized';\n/**\n * Calculate the first derivative using Savitzky–Golay filter.\n * @param data\n * @param options\n */\nexport function firstDerivative(data, options = {}) {\n    const { x, y } = data;\n    return { data: { x, y: sgg(y, x, { ...options, derivative: 1 }) } };\n}\n//# sourceMappingURL=firstDerivative.js.map","import { sgg } from 'ml-savitzky-golay-generalized';\n/**\n * Calculate the second derivative using Savitzky–Golay filter.\n * @param data\n * @param options\n */\nexport function secondDerivative(data, options = {}) {\n    const { x, y } = data;\n    return { data: { x, y: sgg(y, x, { ...options, derivative: 2 }) } };\n}\n//# sourceMappingURL=secondDerivative.js.map","import { sgg } from 'ml-savitzky-golay-generalized';\n/**\n * Calculate the third derivative using Savitzky–Golay filter.\n * @param data\n * @param options\n */\nexport function thirdDerivative(data, options = {}) {\n    const { x, y } = data;\n    return { data: { x, y: sgg(y, x, { ...options, derivative: 3 }) } };\n}\n//# sourceMappingURL=thirdDerivative.js.map","import { sgg } from 'ml-savitzky-golay-generalized';\n/**\n * Apply the Savitzky Golay Generalized Filter\n * @param data\n * @param options\n */\nexport function savitzkyGolay(data, options = {}) {\n    const { x, y } = data;\n    return { data: { x, y: sgg(y, x, options) } };\n}\n//# sourceMappingURL=savitzkyGolay.js.map","import { xyEnsureGrowingX } from 'ml-spectra-processing';\n/**\n * Ensure X values are strictly monotonic increasing\n * https://www-groups.mcs.st-andrews.ac.uk/~john/analysis/Lectures/L8.html\n * @param data\n */\nexport function ensureGrowing(data) {\n    return { data: xyEnsureGrowingX(data) };\n}\n//# sourceMappingURL=ensureGrowing.js.map","import { xyGrowingX } from 'ml-spectra-processing';\n/**\n * Ensure X values are strictly monotonic increasing\n * https://www-groups.mcs.st-andrews.ac.uk/~john/analysis/Lectures/L8.html\n * @param data\n */\nexport function reverseIfNeeded(data) {\n    return { data: xyGrowingX(data) };\n}\n//# sourceMappingURL=reverseIfNeeded.js.map","import { xyEquallySpaced } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n * @param options\n */\nexport function equallySpaced(data, options = {}) {\n    return { data: xyEquallySpaced(data, options) };\n}\n//# sourceMappingURL=equallySpaced.js.map","import { xyFilterX } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n * @param options\n */\nexport function filterX(data, options = {}) {\n    return {\n        data: xyFilterX(data, options),\n    };\n}\n//# sourceMappingURL=filterX.js.map","import { xAdd, xMaxValue } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n * @param options\n */\nexport function setMaxX(data, options = {}) {\n    const { max = 1 } = options;\n    const existingMax = xMaxValue(data.x);\n    if (existingMax === max) {\n        return { data };\n    }\n    return {\n        data: {\n            x: xAdd(data.x, max - existingMax),\n            y: data.y,\n        },\n    };\n}\n//# sourceMappingURL=setMaxX.js.map","import { xAdd, xMinValue } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n * @param options\n */\nexport function setMinX(data, options = {}) {\n    const { min = 0 } = options;\n    const existingMin = xMinValue(data.x);\n    if (existingMin === min) {\n        return { data };\n    }\n    return {\n        data: {\n            x: xAdd(data.x, min - existingMin),\n            y: data.y,\n        },\n    };\n}\n//# sourceMappingURL=setMinX.js.map","/**\n * Compute the `[left, right]` intervals around each peak by locating\n * consecutive extrema (minima / maxima) of the first derivative.\n * @param y - Spectrum y values.\n * @param x - Spectrum x values.\n * @param dY - First derivative of `y`.\n * @param dX - Sign of the x step (positive for increasing x, negative otherwise).\n * @returns `intervalL` / `intervalR` arrays defining each peak's inflection-point bounds.\n */\nexport function getMinMaxIntervalsDy(y, x, dY, dX) {\n    let lastMax = null;\n    let lastMin = null;\n    const intervalL = [];\n    const intervalR = [];\n    for (let i = 1; i < y.length - 1; ++i) {\n        if ((dY[i] < dY[i - 1] && dY[i] <= dY[i + 1]) ||\n            (dY[i] <= dY[i - 1] && dY[i] < dY[i + 1])) {\n            lastMin = {\n                x: x[i],\n                index: i,\n            };\n            if (dX > 0 && lastMax !== null) {\n                intervalL.push(lastMax);\n                intervalR.push(lastMin);\n            }\n        }\n        // Maximum in first derivative\n        if ((dY[i] >= dY[i - 1] && dY[i] > dY[i + 1]) ||\n            (dY[i] > dY[i - 1] && dY[i] >= dY[i + 1])) {\n            lastMax = {\n                x: x[i],\n                index: i,\n            };\n            if (dX < 0 && lastMin !== null) {\n                intervalL.push(lastMax);\n                intervalR.push(lastMin);\n            }\n        }\n    }\n    return { intervalL, intervalR };\n}\n//# sourceMappingURL=getMinMaxIntervals.js.map","/**\n * Find the `minData` index closest to the center of one interval,\n * above the intensity threshold and bounded by the half-width.\n * @param options - Interval, candidate indices and spectrum data.\n * @returns The picked candidate (`possible`) and the last visited index (`lastIndex`).\n */\nexport function tryMatchOneIntervalWithMinData(options) {\n    const { x, lastK, minData, yThreshold, intervalWidth, intervalCenter, yData, } = options;\n    let minDistance = Number.POSITIVE_INFINITY;\n    let possible = -1;\n    let newLastIndex = lastK;\n    for (let k = newLastIndex + 1; k < minData.length; k++) {\n        const centerIndex = minData[k];\n        if (yData[centerIndex] <= yThreshold) {\n            continue;\n        }\n        const deltaX = x[centerIndex];\n        const currentDistance = Math.abs(deltaX - intervalCenter);\n        if (currentDistance < intervalWidth) {\n            if (currentDistance < minDistance) {\n                possible = k;\n            }\n            newLastIndex = k;\n        }\n        if (currentDistance >= minDistance)\n            break;\n        minDistance = currentDistance;\n    }\n    return { lastIndex: newLastIndex, possible };\n}\n//# sourceMappingURL=tryMatchOneIntervalWithMinData.js.map","import { tryMatchOneIntervalWithMinData } from \"./tryMatchOneIntervalWithMinData.js\";\n/**\n * Build the list of detected peaks by matching each `[left, right]` interval\n * with the best candidate index from `minData`.\n * @param options - Intervals, candidate indices and spectrum data.\n * @returns The detected peaks.\n */\nexport function getPeakFromIntervals(options) {\n    let lastK = -1;\n    const peaks = [];\n    const { x, ddY, yData, yThreshold, intervalR, intervalL, minData } = options;\n    for (let i = 0; i < intervalL.length; i++) {\n        const intervalWidth = (intervalR[i].x - intervalL[i].x) / 2;\n        const intervalCenter = (intervalR[i].x + intervalL[i].x) / 2;\n        const { possible, lastIndex } = tryMatchOneIntervalWithMinData({\n            x,\n            lastK,\n            minData,\n            yThreshold,\n            intervalWidth,\n            intervalCenter,\n            yData,\n        });\n        if (possible !== -1) {\n            const centerIndex = minData[possible];\n            const width = Math.abs(intervalR[i].x - intervalL[i].x);\n            peaks.push({\n                id: crypto.randomUUID(),\n                x: x[centerIndex],\n                y: yData[centerIndex],\n                width,\n                index: centerIndex,\n                ddY: ddY[centerIndex],\n                inflectionPoints: {\n                    from: intervalL[i],\n                    to: intervalR[i],\n                },\n            });\n        }\n        lastK = lastIndex;\n    }\n    return peaks;\n}\n//# sourceMappingURL=getPeaksFromIntervals.js.map","/**\n * Finds the indices where the first derivative crosses zero (sign change),\n * which are potential peak positions. This function does not detect zero-crossings\n * in regions with consecutive zero values in the derivative (flat regions).\n * @param input - Object containing the y values and their first derivative (dY).\n * @returns Array of indices where the first derivative crosses zero (excluding consecutive zeros).\n */\nexport function xGetCrossZeroPoints(input) {\n    const { y, dY } = input;\n    const crossDy = [];\n    for (let i = 1; i < y.length - 1; ++i) {\n        if (isLessAndGreaterThanZero(dY[i], dY[i + 1])) {\n            // push the index of the element closer to zero\n            crossDy.push(Math.abs(dY[i]) < Math.abs(dY[i + 1]) ? i : i + 1);\n        }\n        else if (\n        // Handle exact zero\n        dY[i] === 0 &&\n            isLessAndGreaterThanZero(dY[i - 1], dY[i + 1])) {\n            crossDy.push(i);\n        }\n    }\n    return crossDy;\n}\nfunction isLessAndGreaterThanZero(back, next) {\n    return (back < 0 && next > 0) || (back > 0 && next < 0);\n}\n//# sourceMappingURL=xGetCrossZeroPoints.js.map","import { getMinMaxIntervalsDy } from \"./getMinMaxIntervals.js\";\nimport { getPeakFromIntervals } from \"./getPeaksFromIntervals.js\";\nimport { xGetCrossZeroPoints } from \"./xGetCrossZeroPoints.js\";\n/**\n * Detect peaks using zero-crossings of the first derivative.\n * @param input - Spectrum values and its first/second derivatives.\n * @returns The detected peaks.\n */\nexport function firstDerivative(input) {\n    const { y, x, dY, dX, yData, yThreshold, ddY } = input;\n    const crossDy = xGetCrossZeroPoints(input);\n    const { intervalL, intervalR } = getMinMaxIntervalsDy(y, x, dY, dX);\n    return getPeakFromIntervals({\n        minData: crossDy,\n        intervalL,\n        intervalR,\n        x,\n        yData,\n        yThreshold,\n        ddY,\n    });\n}\n//# sourceMappingURL=firstDerivative.js.map","import { sgg, sggPair } from 'ml-savitzky-golay-generalized';\nimport { xIsEquallySpaced, xIsMonotonic, xMaxAbsoluteValue, xMaxValue, xMinMaxValues, xNoiseStandardDeviation, } from 'ml-spectra-processing';\nimport { autoAlgorithm } from \"./algorithms/autoAlgorithm.js\";\nimport { firstDerivative } from \"./algorithms/firstDerivative.js\";\nimport { secondDerivative } from \"./algorithms/secondDerivative.js\";\nimport { optimizeTop } from \"./utils/optimizeTop.js\";\n/**\n * Global spectra deconvolution.\n * @param data - Object with `x` and `y` arrays. `x` must be monotone increasing.\n * @param options - Peak detection options.\n * @returns The detected peaks, sorted by ascending `x`.\n */\nexport function gsd(data, options = {}) {\n    let { noiseLevel } = options;\n    const { sgOptions = {\n        windowSize: 9,\n        polynomial: 3,\n    }, smoothY = false, maxCriteria = true, maxAbsoluteRatio = 0, minMaxRatio = 0.00025, realTopDetection = false, peakDetectionAlgorithm = 'second', } = options;\n    if (maxAbsoluteRatio < 0 || maxAbsoluteRatio > 1) {\n        throw new Error('maxAbsoluteRatio must be between 0 and 1');\n    }\n    const { x } = data;\n    let { y } = data;\n    if (xIsMonotonic(x) !== 1) {\n        throw new Error('GSD only accepts monotone increasing x values');\n    }\n    // Copy so the `maxCriteria` / clipping loops below don't mutate the caller's array.\n    y = y.slice();\n    // If the max difference between delta x is less than 5%, then,\n    // we can assume it to be equally spaced variable\n    const isEquallySpaced = xIsEquallySpaced(x);\n    if (noiseLevel === undefined) {\n        if (isEquallySpaced) {\n            const noiseInfo = xNoiseStandardDeviation(y);\n            if (maxCriteria) {\n                noiseLevel = noiseInfo.median + 1.5 * noiseInfo.sd;\n            }\n            else {\n                noiseLevel = -noiseInfo.median + 1.5 * noiseInfo.sd;\n            }\n        }\n        else {\n            noiseLevel = 0;\n        }\n    }\n    else if (!maxCriteria) {\n        noiseLevel *= -1;\n    }\n    if (!maxCriteria) {\n        for (let i = 0; i < y.length; i++) {\n            y[i] = -y[i];\n        }\n    }\n    const maxAbsoluteValue = maxAbsoluteRatio > 0 ? maxAbsoluteRatio * xMaxAbsoluteValue(y) : noiseLevel;\n    if (noiseLevel !== undefined) {\n        for (let i = 0; i < y.length; i++) {\n            if (y[i] < noiseLevel) {\n                y[i] = noiseLevel;\n            }\n        }\n    }\n    const xValue = isEquallySpaced ? x[1] - x[0] : x;\n    const yData = smoothY\n        ? sgg(y, xValue, {\n            ...sgOptions,\n            derivative: 0,\n        })\n        : y;\n    const { min: minY, max: maxY } = xMinMaxValues(yData);\n    if (minY > maxY || minY === maxY)\n        return [];\n    const [dY, ddY] = sggPair(y, xValue, {\n        windowSize: sgOptions.windowSize,\n        polynomial: sgOptions.polynomial,\n        derivatives: [1, 2],\n    });\n    const yThreshold = xMaxValue([\n        noiseLevel,\n        minY + (maxY - minY) * minMaxRatio,\n        maxAbsoluteValue,\n    ]);\n    const dX = x[1] - x[0];\n    const peakData = { x, y, yData, dY, ddY, dX, yThreshold };\n    let peaks = [];\n    if (peakDetectionAlgorithm === 'first') {\n        peaks = firstDerivative(peakData);\n    }\n    else if (peakDetectionAlgorithm === 'second') {\n        peaks = secondDerivative(peakData);\n    }\n    else {\n        peaks = autoAlgorithm(peakData);\n    }\n    if (realTopDetection) {\n        optimizeTop({ x, y: yData }, peaks);\n    }\n    for (const peak of peaks) {\n        if (!maxCriteria) {\n            peak.y *= -1;\n            peak.ddY = peak.ddY * -1;\n        }\n    }\n    peaks.sort((a, b) => {\n        return a.x - b.x;\n    });\n    return peaks;\n}\n//# sourceMappingURL=gsd.js.map","/**\n * Two derivatives of one spectrum, in a single pass.\n */\nimport { isAnyArray } from 'is-any-array';\nimport { meanGap, raise } from \"./spacing.js\";\nimport { checkArguments } from \"./validate.js\";\nimport { cachedWeights } from \"./weights.js\";\n/**\n * Apply the Savitzky Golay algorithm for two derivative orders at once.\n *\n * Each y value is read once and multiplied into both accumulators, and the\n * window spacing is measured once and raised twice, where calling `sgg` twice\n * repeats both. Peak picking wants the first and second derivative of the same\n * trace, which is what the default asks for.\n *\n * Two and not a list: an accumulator per order behind a loop costs more than\n * sharing the reads saves, so a general version measured slower than calling\n * `sgg` repeatedly. Ask for more than two by calling this and `sgg`.\n * @param ys - Array of y values.\n * @param xs - Array of X or deltaX.\n * @param options - Options controlling window size, derivatives and polynomial order.\n * @returns The two derivative arrays, in the order requested.\n */\nexport function sggPair(ys, xs, options = {}) {\n    const { windowSize = 9, derivatives = [1, 2], polynomial = 3 } = options;\n    const [firstOrder, secondOrder] = derivatives;\n    checkArguments(ys, xs, windowSize, polynomial, derivatives);\n    const half = Math.floor(windowSize / 2);\n    const np = ys.length;\n    const first = new Float64Array(np);\n    const second = new Float64Array(np);\n    const firstWeights = cachedWeights(windowSize, polynomial, firstOrder);\n    const secondWeights = cachedWeights(windowSize, polynomial, secondOrder);\n    const constantH = !isAnyArray(xs);\n    const firstConstant = constantH ? raise(xs, firstOrder) : 0;\n    const secondConstant = constantH ? raise(xs, secondOrder) : 0;\n    for (let i = 0; i < half; i++) {\n        const low = half - i - 1;\n        const high = np - half + i;\n        const lowFirst = firstWeights[low];\n        const lowSecond = secondWeights[low];\n        const highFirst = firstWeights[half + i + 1];\n        const highSecond = secondWeights[half + i + 1];\n        let lowFirstSum = 0;\n        let lowSecondSum = 0;\n        let highFirstSum = 0;\n        let highSecondSum = 0;\n        for (let l = 0; l < windowSize; l++) {\n            const atLow = ys[l];\n            const atHigh = ys[np - windowSize + l];\n            lowFirstSum += lowFirst[l] * atLow;\n            lowSecondSum += lowSecond[l] * atLow;\n            highFirstSum += highFirst[l] * atHigh;\n            highSecondSum += highSecond[l] * atHigh;\n        }\n        const lowGap = constantH ? 0 : meanGap(xs, low, half);\n        const highGap = constantH ? 0 : meanGap(xs, high, half);\n        first[low] =\n            lowFirstSum / (constantH ? firstConstant : raise(lowGap, firstOrder));\n        second[low] =\n            lowSecondSum / (constantH ? secondConstant : raise(lowGap, secondOrder));\n        first[high] =\n            highFirstSum / (constantH ? firstConstant : raise(highGap, firstOrder));\n        second[high] =\n            highSecondSum /\n                (constantH ? secondConstant : raise(highGap, secondOrder));\n    }\n    // The loop this exists for: one load of each sample feeds both sums, and one\n    // spacing measurement feeds both divisors. The constant-spacing case is a\n    // second loop rather than a test inside this one, and the orders are raised\n    // inline rather than through a call, because both cost more per point than\n    // the sharing saves.\n    const firstCentre = firstWeights[half];\n    const secondCentre = secondWeights[half];\n    if (constantH) {\n        for (let i = windowSize; i <= np; i++) {\n            const from = i - windowSize;\n            let firstSum = 0;\n            let secondSum = 0;\n            for (let l = 0; l < windowSize; l++) {\n                const value = ys[from + l];\n                firstSum += firstCentre[l] * value;\n                secondSum += secondCentre[l] * value;\n            }\n            const into = i - half - 1;\n            first[into] = firstSum / firstConstant;\n            second[into] = secondSum / secondConstant;\n        }\n    }\n    else {\n        const firstIsOne = firstOrder === 1;\n        const firstIsTwo = firstOrder === 2;\n        const secondIsOne = secondOrder === 1;\n        const secondIsTwo = secondOrder === 2;\n        for (let i = windowSize; i <= np; i++) {\n            const from = i - windowSize;\n            let firstSum = 0;\n            let secondSum = 0;\n            for (let l = 0; l < windowSize; l++) {\n                const value = ys[from + l];\n                firstSum += firstCentre[l] * value;\n                secondSum += secondCentre[l] * value;\n            }\n            const into = i - half - 1;\n            const gap = meanGap(xs, into, half);\n            first[into] =\n                firstSum /\n                    (firstIsOne ? gap : firstIsTwo ? gap * gap : gap ** firstOrder);\n            second[into] =\n                secondSum /\n                    (secondIsOne ? gap : secondIsTwo ? gap * gap : gap ** secondOrder);\n        }\n    }\n    return [first, second];\n}\n//# sourceMappingURL=sggPair.js.map","import { getMinMaxIntervalsDy } from \"./getMinMaxIntervals.js\";\nimport { getPeakFromIntervals } from \"./getPeaksFromIntervals.js\";\n/**\n * Detect peaks using local minima of the second derivative (inflection points).\n * @param input - Spectrum values and its first/second derivatives.\n * @returns The detected peaks.\n */\nexport function secondDerivative(input) {\n    const { x, y, yData, dY, ddY, dX, yThreshold } = input;\n    const minddY = [];\n    const { intervalL, intervalR } = getMinMaxIntervalsDy(y, x, dY, dX);\n    // By the intermediate value theorem We cannot find 2 consecutive maximum or minimum\n    for (let i = 1; i < y.length - 1; ++i) {\n        // Minimum in second derivative\n        if (ddY[i] < ddY[i - 1] && ddY[i] < ddY[i + 1]) {\n            minddY.push(i);\n        }\n    }\n    return getPeakFromIntervals({\n        minData: minddY,\n        intervalL,\n        intervalR,\n        x,\n        yData,\n        yThreshold,\n        ddY,\n    });\n}\n//# sourceMappingURL=secondDerivative.js.map","import { getMinMaxIntervalsDy } from \"./getMinMaxIntervals.js\";\nimport { tryMatchOneIntervalWithMinData } from \"./tryMatchOneIntervalWithMinData.js\";\n/**\n * Peak detection that combines first-derivative zero-crossings and\n * second-derivative local minima to find peaks inside each interval.\n * @param input - Spectrum values together with its first and second derivatives.\n * @returns The detected peaks.\n */\nexport function autoAlgorithm(input) {\n    const { x, y, yData, dY, ddY, dX, yThreshold } = input;\n    const minddY = [];\n    const crossDy = [];\n    const { intervalL, intervalR } = getMinMaxIntervalsDy(y, x, dY, dX);\n    for (let i = 1; i < y.length - 1; ++i) {\n        if ((dY[i] < 0 && dY[i + 1] > 0) || (dY[i] > 0 && dY[i + 1] < 0)) {\n            // push the index of the element closer to zero\n            crossDy.push(Math.abs(dY[i]) < Math.abs(dY[i + 1]) ? i : i + 1);\n        }\n        // Handle exact zero\n        if (dY[i] === 0 &&\n            dY[i] < Math.abs(dY[i + 1]) &&\n            dY[i] < Math.abs(dY[i - 1])) {\n            crossDy.push(i);\n        }\n        // Minimum in second derivative\n        if (ddY[i] < ddY[i - 1] && ddY[i] < ddY[i + 1]) {\n            minddY.push(i);\n        }\n    }\n    const peaks = [];\n    let lastK = -1;\n    let lastJ = -1;\n    for (let i = 0; i < intervalL.length; i++) {\n        const intervalWidth = (intervalR[i].x - intervalL[i].x) / 2;\n        const intervalCenter = (intervalR[i].x + intervalL[i].x) / 2;\n        let yIndex = -1;\n        let match = tryMatchOneIntervalWithMinData({\n            x,\n            yData,\n            lastK,\n            yThreshold,\n            intervalWidth,\n            intervalCenter,\n            minData: crossDy,\n        });\n        lastK = match.lastIndex;\n        if (match.possible !== -1) {\n            yIndex = crossDy[match.possible];\n        }\n        else {\n            match = tryMatchOneIntervalWithMinData({\n                x,\n                yData,\n                yThreshold,\n                lastK: lastJ,\n                intervalWidth,\n                intervalCenter,\n                minData: minddY,\n            });\n            if (match.possible !== -1) {\n                yIndex = minddY[match.possible];\n            }\n            lastJ = match.lastIndex;\n        }\n        if (yIndex !== -1) {\n            const width = Math.abs(intervalR[i].x - intervalL[i].x);\n            peaks.push({\n                id: crypto.randomUUID(),\n                x: x[yIndex],\n                y: y[yIndex],\n                width,\n                index: yIndex,\n                ddY: ddY[yIndex],\n                inflectionPoints: {\n                    from: intervalL[i],\n                    to: intervalR[i],\n                },\n            });\n        }\n    }\n    return peaks;\n}\n//# sourceMappingURL=autoAlgorithm.js.map","/**\n * Refine the `x` and `y` coordinates of each peak by running a quadratic\n * interpolation over the peak and its 3 closest neighbors.\n * The correction is performed in place.\n * @param data - Object with `x` and `y` arrays.\n * @param peaks - Peaks to refine (mutated in place).\n */\nexport function optimizeTop(data, peaks) {\n    const { x, y } = data;\n    for (const peak of peaks) {\n        let currentIndex = peak.index;\n        // The detected peak could be moved 1 or 2 units to left or right.\n        if (y[currentIndex - 1] >= y[currentIndex - 2] &&\n            y[currentIndex - 1] >= y[currentIndex]) {\n            currentIndex--;\n        }\n        else if (y[currentIndex + 1] >= y[currentIndex] &&\n            y[currentIndex + 1] >= y[currentIndex + 2]) {\n            currentIndex++;\n        }\n        else if (y[currentIndex - 2] >= y[currentIndex - 3] &&\n            y[currentIndex - 2] >= y[currentIndex - 1]) {\n            currentIndex -= 2;\n        }\n        else if (y[currentIndex + 2] >= y[currentIndex + 1] &&\n            y[currentIndex + 2] >= y[currentIndex + 3]) {\n            currentIndex += 2;\n        }\n        // Quadratic interpolation on log-intensities to refine the peak top.\n        if (y[currentIndex - 1] > 0 &&\n            y[currentIndex + 1] > 0 &&\n            y[currentIndex] >= y[currentIndex - 1] &&\n            y[currentIndex] >= y[currentIndex + 1] &&\n            (y[currentIndex] !== y[currentIndex - 1] ||\n                y[currentIndex] !== y[currentIndex + 1])) {\n            const alpha = Math.log10(y[currentIndex - 1]);\n            const beta = Math.log10(y[currentIndex]);\n            const gamma = Math.log10(y[currentIndex + 1]);\n            const p = (0.5 * (alpha - gamma)) / (alpha - 2 * beta + gamma);\n            const xCurrent = x[currentIndex];\n            const xPrevious = x[currentIndex - 1];\n            peak.x = xCurrent + (xCurrent - xPrevious) * p;\n            peak.y =\n                y[currentIndex] -\n                    0.25 * (y[currentIndex - 1] - y[currentIndex + 1]) * p;\n        }\n    }\n}\n//# sourceMappingURL=optimizeTop.js.map","/**\n * Asserts that value is truthy.\n * @param value - Value to check.\n * @param message - Optional error message to throw.\n */\nexport function assert(value, message) {\n    if (!value) {\n        throw new Error(message || 'unreachable');\n    }\n}\n//# sourceMappingURL=assert.js.map","import { xMean } from 'ml-spectra-processing';\nimport { assert } from \"./assert.js\";\n/**\n * Build an optimization layout mapping actual per-peak parameter slots\n * to optimizer variables. The layout describes slots, grouped/shared\n * variables, variable bounds/initials, and provides a helper to\n * materialize actual peak parameter values from a variable vector.\n * @param internalPeaks - normalized internal peaks with parameter indices\n * @param peaks - original peak objects (for per-peak optimize flags)\n * @param options - user `OptimizeOptions`, may contain `linkedParameters`\n * @param yScale - y normalization factor (used when converting offsets)\n * @returns an `OptimizationLayout` describing variables and slots\n */\nexport function buildOptimizationLayout(internalPeaks, peaks, options, yScale = 1) {\n    const slots = buildParameterSlots(internalPeaks, peaks, options);\n    const variables = buildOptimizationVariables(slots, options.linkedParameters, yScale);\n    const variableMin = new Float64Array(variables.length);\n    const variableMax = new Float64Array(variables.length);\n    const variableInit = new Float64Array(variables.length);\n    const variableGrad = new Float64Array(variables.length);\n    const freeIndices = [];\n    for (let i = 0; i < variables.length; i++) {\n        const variable = variables[i];\n        variableMin[i] = variable.min;\n        variableMax[i] = variable.max;\n        variableInit[i] = variable.init;\n        variableGrad[i] = variable.gradientDifference;\n        if (variable.optimize) {\n            freeIndices.push(i);\n        }\n    }\n    return {\n        slots,\n        variables,\n        freeIndices,\n        variableMin,\n        variableMax,\n        variableInit,\n        variableGrad,\n        variableToPeakValues(variableValues) {\n            const actualValues = new Array(slots.length);\n            for (let i = 0; i < variables.length; i++) {\n                const variableValue = variableValues[i];\n                const members = variables[i].members;\n                for (const member of members) {\n                    actualValues[member.actualIndex] =\n                        variableValue * member.factor + member.offset;\n                }\n            }\n            return actualValues;\n        },\n    };\n}\n/**\n * Builds concrete parameter slots for each peak parameter.\n * @param internalPeaks - normalized peaks containing parameter metadata\n * @param peaks - original peaks used to resolve optimize flags\n * @param options - optimization options with parameter settings\n * @returns flattened parameter slots across all peaks\n */\nfunction buildParameterSlots(internalPeaks, peaks, options) {\n    const slots = [];\n    for (let peakIndex = 0; peakIndex < internalPeaks.length; peakIndex++) {\n        const internalPeak = internalPeaks[peakIndex];\n        for (let i = 0; i < internalPeak.parameters.length; i++) {\n            const parameter = internalPeak.parameters[i];\n            slots.push({\n                actualIndex: internalPeak.fromIndex + i,\n                peakIndex,\n                peakId: internalPeak.id,\n                parameter,\n                init: internalPeak.propertiesValues.init[i],\n                min: internalPeak.propertiesValues.min[i],\n                max: internalPeak.propertiesValues.max[i],\n                gradientDifference: internalPeak.propertiesValues.gradientDifference[i],\n                optimize: getOptimizeFlag(peaks[peakIndex], parameter, options),\n            });\n        }\n    }\n    return slots;\n}\n/**\n * Builds optimization variables from concrete parameter slots.\n * @param slots - flattened per-peak parameter slots\n * @param linkedParameters - optional linked parameter groups\n * @param yScale - y normalization factor for y-offset conversion\n * @returns sorted optimization variables ready for the optimizer\n */\nfunction buildOptimizationVariables(slots, linkedParameters, yScale) {\n    const groupedActualIndices = new Set();\n    const variables = [];\n    const slotLookup = new Map();\n    const idToIndices = new Map();\n    for (const slot of slots) {\n        slotLookup.set(getSlotKey(slot.peakIndex, slot.parameter), slot);\n        if (slot.peakId) {\n            const indices = idToIndices.get(slot.peakId) ?? [];\n            if (!indices.includes(slot.peakIndex)) {\n                indices.push(slot.peakIndex);\n            }\n            idToIndices.set(slot.peakId, indices);\n        }\n    }\n    for (const linkedParameter of linkedParameters ?? []) {\n        variables.push(buildLinkedVariable(linkedParameter, slotLookup, groupedActualIndices, idToIndices, yScale));\n    }\n    for (const slot of slots) {\n        if (groupedActualIndices.has(slot.actualIndex)) {\n            continue;\n        }\n        variables.push({\n            sortKey: slot.actualIndex,\n            parameter: slot.parameter,\n            init: slot.init,\n            min: slot.min,\n            max: slot.max,\n            gradientDifference: slot.gradientDifference,\n            optimize: slot.optimize,\n            members: [\n                {\n                    actualIndex: slot.actualIndex,\n                    peakIndex: slot.peakIndex,\n                    parameter: slot.parameter,\n                    factor: 1,\n                    offset: 0,\n                },\n            ],\n        });\n    }\n    variables.sort((a, b) => a.sortKey - b.sortKey);\n    return variables.map(({ sortKey: _sortKey, ...variable }) => variable);\n}\nfunction buildLinkedVariable(linkedParameter, slotLookup, groupedActualIndices, idToIndices, yScale) {\n    if (linkedParameter.peaks.length === 0) {\n        throw new Error(`Linked parameter for ${linkedParameter.parameter} must contain at least one peak`);\n    }\n    const resolvedMembers = linkedParameter.peaks.map((peak) => {\n        const slot = resolveLinkedSlot(peak, linkedParameter.parameter, slotLookup, idToIndices);\n        if (groupedActualIndices.has(slot.actualIndex)) {\n            throw new Error(`Peak ${String(peak.id)} parameter ${linkedParameter.parameter} is already linked`);\n        }\n        return {\n            slot,\n            factor: getFactor(peak, linkedParameter.parameter),\n            offset: getOffset(peak, linkedParameter.parameter, yScale),\n        };\n    });\n    const memberActualIndices = new Set();\n    for (const member of resolvedMembers) {\n        if (memberActualIndices.has(member.slot.actualIndex)) {\n            throw new Error(`Linked parameter for ${linkedParameter.parameter} contains the same peak more than once`);\n        }\n        memberActualIndices.add(member.slot.actualIndex);\n    }\n    const firstMember = resolvedMembers[0];\n    let sharedMin = Number.NEGATIVE_INFINITY;\n    let sharedMax = Number.POSITIVE_INFINITY;\n    const optimize = firstMember.slot.optimize;\n    const sharedInitCandidates = [];\n    for (const member of resolvedMembers) {\n        if (member.slot.optimize !== optimize) {\n            throw new Error(`Linked parameter ${linkedParameter.parameter} must use a consistent optimize flag across all members`);\n        }\n        if (member.slot.min > member.slot.max) {\n            throw new Error(`Linked parameter ${linkedParameter.parameter} has incompatible bounds across its members`);\n        }\n        const variableBounds = getMemberVariableBounds(member);\n        sharedMin = Math.max(sharedMin, variableBounds.min);\n        sharedMax = Math.min(sharedMax, variableBounds.max);\n        sharedInitCandidates.push((member.slot.init - member.offset) / member.factor);\n    }\n    if (sharedMin > sharedMax) {\n        throw new Error(`Linked parameter ${linkedParameter.parameter} has incompatible bounds across its members`);\n    }\n    for (const member of resolvedMembers) {\n        groupedActualIndices.add(member.slot.actualIndex);\n    }\n    return {\n        sortKey: Math.min(...resolvedMembers.map((member) => member.slot.actualIndex)),\n        parameter: linkedParameter.parameter,\n        init: xMean(sharedInitCandidates),\n        min: sharedMin,\n        max: sharedMax,\n        gradientDifference: Math.min(...resolvedMembers.map((m) => Math.abs(m.slot.gradientDifference))),\n        optimize,\n        members: resolvedMembers.map((member) => ({\n            actualIndex: member.slot.actualIndex,\n            peakIndex: member.slot.peakIndex,\n            parameter: member.slot.parameter,\n            factor: member.factor,\n            offset: member.offset,\n        })),\n    };\n}\nfunction resolveLinkedSlot(peak, parameter, slotLookup, idToIndices) {\n    const peakIndex = typeof peak.id === 'number'\n        ? peak.id\n        : resolvePeakIndexById(peak.id, idToIndices);\n    if (!Number.isInteger(peakIndex) || peakIndex < 0) {\n        throw new Error(`Invalid peak reference ${String(peak.id)}`);\n    }\n    const slot = slotLookup.get(getSlotKey(peakIndex, parameter));\n    if (!slot) {\n        throw new Error(`Unknown parameter ${parameter} for peak ${String(peak.id)}`);\n    }\n    return slot;\n}\nfunction resolvePeakIndexById(peakId, idToIndices) {\n    const indices = idToIndices.get(peakId);\n    if (!indices || indices.length === 0) {\n        throw new Error(`Unknown peak id ${peakId}`);\n    }\n    if (new Set(indices).size > 1) {\n        throw new Error(`Peak id ${peakId} is ambiguous because it is used by multiple peaks`);\n    }\n    return indices[0];\n}\nfunction getFactor(peak, parameter) {\n    const factor = peak.factor ?? 1;\n    if (!Number.isFinite(factor) || factor === 0) {\n        throw new Error(`Linked parameter ${parameter} must use a non-zero finite factor`);\n    }\n    return factor;\n}\nfunction getOffset(peak, parameter, yScale) {\n    const offset = peak.offset ?? 0;\n    if (!Number.isFinite(offset)) {\n        throw new Error(`Linked parameter ${parameter} must use a finite offset`);\n    }\n    if (parameter === 'y') {\n        return offset / yScale;\n    }\n    return offset;\n}\nfunction getMemberVariableBounds(member) {\n    const transformedMin = (member.slot.min - member.offset) / member.factor;\n    const transformedMax = (member.slot.max - member.offset) / member.factor;\n    return {\n        min: Math.min(transformedMin, transformedMax),\n        max: Math.max(transformedMin, transformedMax),\n    };\n}\nfunction getOptimizeFlag(peak, parameter, options) {\n    assert(peak);\n    let optimizeFlag = true;\n    const perPeakParam = peak.parameters?.[parameter];\n    const globalParam = options.parameters?.[parameter];\n    if (perPeakParam?.optimize !== undefined) {\n        if (typeof perPeakParam.optimize === 'function') {\n            optimizeFlag = perPeakParam.optimize(peak);\n        }\n        else {\n            const { optimize = true } = perPeakParam;\n            optimizeFlag = optimize;\n        }\n    }\n    else if (globalParam?.optimize !== undefined) {\n        if (typeof globalParam.optimize === 'function') {\n            optimizeFlag = globalParam.optimize(peak);\n        }\n        else {\n            const { optimize = true } = globalParam;\n            optimizeFlag = optimize;\n        }\n    }\n    return optimizeFlag;\n}\nfunction getSlotKey(peakIndex, parameter) {\n    return `${peakIndex}:${parameter}`;\n}\n//# sourceMappingURL=buildOptimizationLayout.js.map","/**\n * Reconstruct user-facing peak objects from internal peaks and a full\n * actual-parameter vector.\n * @template T - original Peak type\n * @param internalPeaks - internal peaks produced by `getInternalPeaks`\n * @param actualValues - flattened actual parameter values (not normalized for Y)\n * @param yScale - normalization factor previously applied to Y values\n * @returns array of optimized peaks with reconstructed shapes and ids\n */\nexport function reconstructPeaks(internalPeaks, actualValues, yScale) {\n    const newPeaks = [];\n    for (const peak of internalPeaks) {\n        const { id, shape, parameters, fromIndex } = peak;\n        let newPeak = { x: 0, y: 0, shape };\n        if (id) {\n            newPeak = { ...newPeak, id };\n        }\n        newPeak.x = actualValues[fromIndex];\n        newPeak.y = actualValues[fromIndex + 1] * yScale;\n        for (let i = 2; i < parameters.length; i++) {\n            //@ts-expect-error should be fixed once\n            newPeak.shape[parameters[i]] = actualValues[fromIndex + i];\n        }\n        newPeaks.push(newPeak);\n    }\n    return newPeaks;\n}\n//# sourceMappingURL=reconstructPeaks.js.map","export const DefaultParameters = {\n    x: {\n        init: (peak) => peak.x,\n        min: (peak, peakShape) => peak.x - peakShape.fwhm * 2,\n        max: (peak, peakShape) => peak.x + peakShape.fwhm * 2,\n        gradientDifference: (peak, peakShape) => peakShape.fwhm * 2e-3,\n    },\n    y: {\n        init: (peak) => peak.y,\n        min: (peak) => (peak.y < 0 ? -1.1 : 0),\n        max: (peak) => (peak.y < 0 ? 0 : 1.1),\n        gradientDifference: () => 1e-3,\n    },\n    fwhm: {\n        init: (peak, peakShape) => peakShape.fwhm,\n        min: (peak, peakShape) => peakShape.fwhm * 0.25,\n        max: (peak, peakShape) => peakShape.fwhm * 4,\n        gradientDifference: (peak, peakShape) => peakShape.fwhm * 2e-3,\n    },\n    fwhmG: {\n        init: (peak, peakShape) => peakShape.fwhm * 0.6,\n        min: (peak, peakShape) => peakShape.fwhm * 0.6 * 0.25,\n        max: (peak, peakShape) => peakShape.fwhm * 0.6 * 4,\n        gradientDifference: (peak, peakShape) => peakShape.fwhm * 0.6 * 2e-3,\n    },\n    fwhmL: {\n        init: (peak, peakShape) => peakShape.fwhm * 0.4,\n        min: (peak, peakShape) => peakShape.fwhm * 0.4 * 0.25,\n        max: (peak, peakShape) => peakShape.fwhm * 0.4 * 4,\n        gradientDifference: (peak, peakShape) => peakShape.fwhm * 0.4 * 2e-3,\n    },\n    mu: {\n        init: (peak, peakShape) => peakShape.mu,\n        min: () => 0,\n        max: () => 1,\n        gradientDifference: () => 0.01,\n    },\n    gamma: {\n        init: (peak, peakShape) => peakShape.gamma || 0.5,\n        min: () => -1,\n        max: () => 2,\n        gradientDifference: () => 0.01,\n    },\n};\n//# sourceMappingURL=DefaultParameters.js.map","import { getShape1D } from 'ml-peak-shape-generator';\nimport { assert } from \"../assert.js\";\nimport { DefaultParameters } from \"./DefaultParameters.js\";\nconst properties = ['init', 'min', 'max', 'gradientDifference'];\n/**\n * Return an array of internalPeaks that contains the exact init, min, max values based on the options\n * @param peaks\n * @param minMaxY\n * @param yScale\n * @param options\n * @returns\n */\nexport function getInternalPeaks(peaks, yScale, options = {}) {\n    let index = 0;\n    const internalPeaks = [];\n    for (const originalPeak of peaks) {\n        const normalizedPeak = {\n            ...originalPeak,\n            y: originalPeak.y / yScale,\n        };\n        const peak = normalizedPeak;\n        const { id, shape = options.shape || { kind: 'gaussian' } } = peak;\n        const shapeFct = getShape1D(shape);\n        const parameters = ['x', 'y', ...shapeFct.getParameters()];\n        const propertiesValuesInternal = {\n            min: [],\n            max: [],\n            init: [],\n            gradientDifference: [],\n        };\n        for (const parameter of parameters) {\n            for (const property of properties) {\n                // check if the property is specified in the peak\n                let propertyValue = peak?.parameters?.[parameter]?.[property];\n                if (propertyValue !== undefined) {\n                    propertyValue = getNormalizedValue(propertyValue, parameter, property, yScale);\n                    propertiesValuesInternal[property].push(propertyValue);\n                    continue;\n                }\n                // check if there are some global option, it could be a number or a callback\n                let generalParameterValue = options?.parameters?.[parameter]?.[property];\n                if (generalParameterValue !== undefined) {\n                    if (typeof generalParameterValue === 'number') {\n                        generalParameterValue = getNormalizedValue(generalParameterValue, parameter, property, yScale);\n                        propertiesValuesInternal[property].push(generalParameterValue);\n                        continue;\n                    }\n                    else {\n                        // callbacks receive user-provided peak values (not Y-normalized)\n                        let value = generalParameterValue(originalPeak);\n                        value = getNormalizedValue(value, parameter, property, yScale);\n                        propertiesValuesInternal[property].push(value);\n                        continue;\n                    }\n                }\n                // we just need to take the default parameters\n                assert(DefaultParameters[parameter], `No default parameter for ${parameter}`);\n                const defaultParameterValues = DefaultParameters[parameter][property];\n                propertiesValuesInternal[property].push(\n                //@ts-expect-error parameters and shape instance are guaranteed to be present in the defaultParameterValues function\n                defaultParameterValues(peak, shapeFct));\n            }\n        }\n        const fromIndex = index;\n        const toIndex = fromIndex + parameters.length - 1;\n        index += toIndex - fromIndex + 1;\n        const propertiesValues = {\n            min: propertiesValuesInternal.min,\n            max: propertiesValuesInternal.max,\n            init: propertiesValuesInternal.init,\n            gradientDifference: propertiesValuesInternal.gradientDifference,\n        };\n        internalPeaks.push({\n            id,\n            shape,\n            shapeFct,\n            parameters,\n            propertiesValues,\n            fromIndex,\n            toIndex,\n        });\n    }\n    return internalPeaks;\n}\nfunction getNormalizedValue(value, parameter, property, yScale) {\n    if (parameter === 'y') {\n        if (property === 'gradientDifference') {\n            return value;\n        }\n        else {\n            return value / yScale;\n        }\n    }\n    return value;\n}\n//# sourceMappingURL=getInternalPeaks.js.map","import { isAnyArray } from 'is-any-array';\nexport default function checkOptions(data, options) {\n    const { timeout, initialValues, weights = 1, damping = 1e-2, dampingStepUp = 11, dampingStepDown = 9, maxIterations = 100, errorTolerance = 1e-7, centralDifference = false, gradientDifference = 10e-2, improvementThreshold = 1e-3, } = options;\n    let { minValues, maxValues } = options;\n    if (damping <= 0) {\n        throw new Error('The damping option must be a positive number');\n    }\n    else if (!data.x || !data.y) {\n        throw new Error('The data parameter must have x and y elements');\n    }\n    else if (!isAnyArray(data.x) ||\n        data.x.length < 2 ||\n        !isAnyArray(data.y) ||\n        data.y.length < 2) {\n        throw new Error('The data parameter elements must be an array with more than 2 points');\n    }\n    else if (data.x.length !== data.y.length) {\n        throw new Error('The data parameter elements must have the same size');\n    }\n    if (!(initialValues && initialValues.length > 0)) {\n        throw new Error('The initialValues option is mandatory and must be an array');\n    }\n    const parameters = Array.from(initialValues);\n    const parLen = parameters.length;\n    maxValues = maxValues || new Array(parLen).fill(Number.MAX_SAFE_INTEGER);\n    minValues = minValues || new Array(parLen).fill(Number.MIN_SAFE_INTEGER);\n    if (maxValues.length !== minValues.length) {\n        throw new Error('minValues and maxValues must be the same size');\n    }\n    const gradientDifferenceArray = getGradientDifferenceArray(gradientDifference, parameters);\n    const filler = getFiller(weights, data.x.length);\n    const checkTimeout = getCheckTimeout(timeout);\n    const weightSquare = Array.from({ length: data.x.length }, (_, i) => filler(i));\n    return {\n        checkTimeout,\n        minValues,\n        maxValues,\n        parameters,\n        weightSquare,\n        damping,\n        dampingStepUp,\n        dampingStepDown,\n        maxIterations,\n        errorTolerance,\n        centralDifference,\n        gradientDifference: gradientDifferenceArray,\n        improvementThreshold,\n    };\n}\nfunction getGradientDifferenceArray(gradientDifference, parameters) {\n    if (typeof gradientDifference === 'number') {\n        return new Array(parameters.length).fill(gradientDifference);\n    }\n    else if (isAnyArray(gradientDifference)) {\n        const parLen = parameters.length;\n        if (gradientDifference.length !== parLen) {\n            return new Array(parLen).fill(gradientDifference[0]);\n        }\n        return Array.from(gradientDifference);\n    }\n    throw new Error('gradientDifference should be a number or array with length equal to the number of parameters');\n}\nfunction getFiller(weights, dataLength) {\n    if (typeof weights === 'number') {\n        const value = 1 / weights ** 2;\n        return () => value;\n    }\n    else if (isAnyArray(weights)) {\n        if (weights.length < dataLength) {\n            const value = 1 / weights[0] ** 2;\n            return () => value;\n        }\n        return (i) => 1 / weights[i] ** 2;\n    }\n    throw new Error('weights should be a number or array with length equal to the number of data points');\n}\nfunction getCheckTimeout(timeout) {\n    if (timeout !== undefined) {\n        if (typeof timeout !== 'number') {\n            throw new Error('timeout should be a number');\n        }\n        const endTime = Date.now() + timeout * 1000;\n        return () => Date.now() > endTime;\n    }\n    else {\n        return () => false;\n    }\n}\n//# sourceMappingURL=check_options.js.map","/**\n * the sum of the weighted squares of the errors (or weighted residuals) between the data.y\n * and the curve-fit function.\n *\n * @param data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param parameters - Array of current parameter values\n * @param parameterizedFunction - The parameters and returns a function with the independent variable as a parameter\n * @param weightSquare - Square of weights (must be same length as data.x)\n */\nexport default function errorCalculation(data, parameters, parameterizedFunction, weightSquare) {\n    let error = 0;\n    const func = parameterizedFunction(parameters);\n    for (let i = 0; i < data.x.length; i++) {\n        error += (data.y[i] - func(data.x[i])) ** 2 / weightSquare[i];\n    }\n    return error;\n}\n//# sourceMappingURL=error_calculation.js.map","import { CholeskyDecomposition, Matrix, inverse } from 'ml-matrix';\nimport gradientFunction from \"./gradient_function.js\";\n/**\n * Builds the (nbParams x nbPoints) Jacobian of the residuals from an analytical\n * model gradient. The residual is `y - model`, so the residual Jacobian is the\n * negative of the model gradient — matching the sign convention produced by the\n * finite-difference `gradientFunction`.\n * @param data - points to fit\n * @param params - current parameter values\n * @param jacobianFunction - returns, for an x, the model partials over params\n */\nfunction analyticalGradient(data, params, jacobianFunction) {\n    const nbParams = params.length;\n    const nbPoints = data.x.length;\n    const ans = Matrix.zeros(nbParams, nbPoints);\n    const gradient = jacobianFunction(params);\n    for (let point = 0; point < nbPoints; point++) {\n        const partials = gradient(data.x[point]);\n        for (let param = 0; param < nbParams; param++) {\n            ans.set(param, point, -partials[param]);\n        }\n    }\n    return ans;\n}\n/**\n * Matrix function over the samples\n *\n * @param data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param evaluatedData - Array of previous evaluated function values\n */\nfunction matrixFunction(data, evaluatedData) {\n    const m = data.x.length;\n    const ans = new Matrix(m, 1);\n    for (let point = 0; point < m; point++) {\n        ans.set(point, 0, data.y[point] - evaluatedData[point]);\n    }\n    return ans;\n}\n/**\n * Iteration for Levenberg-Marquardt\n *\n * @param data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param params - Array of previous parameter values\n * @param damping - Levenberg-Marquardt parameter\n * @param gradientDifference - The step size to approximate the jacobian matrix\n * @param centralDifference - If true the jacobian matrix is approximated by central differences otherwise by forward differences\n * @param parameterizedFunction - The parameters and returns a function with the independent variable as a parameter\n * @param weights - scale the gradient and residual error by weights\n * @param jacobianFunction - optional analytical Jacobian, replaces finite differences when provided\n */\nexport default function step(data, params, damping, gradientDifference, parameterizedFunction, centralDifference, weights, jacobianFunction) {\n    const func = parameterizedFunction(params);\n    const evaluatedData = new Float64Array(data.x.length);\n    for (let i = 0; i < data.x.length; i++) {\n        evaluatedData[i] = func(data.x[i]);\n    }\n    const gradientFunc = jacobianFunction\n        ? analyticalGradient(data, params, jacobianFunction)\n        : gradientFunction(data, evaluatedData, params, gradientDifference, parameterizedFunction, centralDifference);\n    const residualError = matrixFunction(data, evaluatedData);\n    const hessianApproximation = gradientFunc.mmulByTranspose(weights);\n    for (let i = 0; i < params.length; i++) {\n        hessianApproximation.set(i, i, hessianApproximation.get(i, i) + damping);\n    }\n    const jacobianWeightResidualError = gradientFunc.mmul(residualError.scale('row', { scale: weights }));\n    // (damping * I + Jᵀ W J) is symmetric positive-definite for damping > 0, so a\n    // Cholesky solve is faster and more numerically stable than forming the full\n    // inverse and multiplying. Fall back to the inverse only in the rare case the\n    // approximated Hessian is not positive-definite.\n    const cholesky = new CholeskyDecomposition(hessianApproximation);\n    const perturbations = cholesky.isPositiveDefinite()\n        ? cholesky.solve(jacobianWeightResidualError)\n        : inverse(hessianApproximation).mmul(jacobianWeightResidualError);\n    return {\n        perturbations,\n        jacobianWeightResidualError,\n    };\n}\n//# sourceMappingURL=step.js.map","import { Matrix } from 'ml-matrix';\n/**\n * Difference of the matrix function over the parameters\n * @param data Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param evaluatedData - Array of previous evaluated function values\n * @param params - Array of previous parameter values\n * @param gradientDifference - The step size to approximate the jacobian matrix\n * @param centralDifference - If true the jacobian matrix is approximated by central differences otherwise by forward differences\n * @param paramFunction - The parameters and returns a function with the independent variable as a parameter\n */\nexport default function gradientFunction(data, evaluatedData, params, gradientDifference, paramFunction, centralDifference) {\n    const nbParams = params.length;\n    const nbPoints = data.x.length;\n    const ans = Matrix.zeros(nbParams, nbPoints);\n    let rowIndex = 0;\n    for (let param = 0; param < nbParams; param++) {\n        if (gradientDifference[param] === 0)\n            continue;\n        let delta = gradientDifference[param];\n        let auxParams = params.slice();\n        auxParams[param] += delta;\n        const funcParam = paramFunction(auxParams);\n        if (!centralDifference) {\n            for (let point = 0; point < nbPoints; point++) {\n                ans.set(rowIndex, point, (evaluatedData[point] - funcParam(data.x[point])) / delta);\n            }\n        }\n        else {\n            auxParams = params.slice();\n            auxParams[param] -= delta;\n            delta *= 2;\n            const funcParam2 = paramFunction(auxParams);\n            for (let point = 0; point < nbPoints; point++) {\n                ans.set(rowIndex, point, (funcParam2(data.x[point]) - funcParam(data.x[point])) / delta);\n            }\n        }\n        rowIndex++;\n    }\n    return ans;\n}\n//# sourceMappingURL=gradient_function.js.map","import checkOptions from \"./check_options.js\";\nimport errorCalculation from \"./error_calculation.js\";\nimport step from \"./step.js\";\n/**\n * Curve fitting algorithm\n * @param data - Array of points to fit in the format [x1, x2, ... ], [y1, y2, ... ]\n * @param parameterizedFunction - Takes an array of parameters and returns a function with the independent variable as its sole argument\n * @param options - Options object\n */\nexport function levenbergMarquardt(data, parameterizedFunction, options) {\n    const checkedOptions = checkOptions(data, options);\n    const { checkTimeout, minValues, maxValues, parameters, weightSquare, dampingStepUp, dampingStepDown, maxIterations, errorTolerance, centralDifference, gradientDifference, improvementThreshold, } = checkedOptions;\n    let damping = checkedOptions.damping;\n    const { jacobianFunction } = options;\n    let error = errorCalculation(data, parameters, parameterizedFunction, weightSquare);\n    let optimalError = error;\n    let optimalParameters = parameters.slice();\n    let converged = error <= errorTolerance;\n    let iteration = 0;\n    for (; iteration < maxIterations && !converged; iteration++) {\n        const previousError = error;\n        const { perturbations, jacobianWeightResidualError } = step(data, parameters, damping, gradientDifference, parameterizedFunction, centralDifference, weightSquare, jacobianFunction);\n        for (let k = 0; k < parameters.length; k++) {\n            parameters[k] = Math.min(Math.max(minValues[k], parameters[k] - perturbations.get(k, 0)), maxValues[k]);\n        }\n        error = errorCalculation(data, parameters, parameterizedFunction, weightSquare);\n        if (isNaN(error))\n            break;\n        if (error < optimalError - errorTolerance) {\n            optimalError = error;\n            optimalParameters = parameters.slice();\n        }\n        const improvementMetric = (previousError - error) /\n            perturbations\n                .transpose()\n                .mmul(perturbations.mul(damping).add(jacobianWeightResidualError))\n                .get(0, 0);\n        if (improvementMetric > improvementThreshold) {\n            damping = Math.max(damping / dampingStepDown, 1e-7);\n        }\n        else {\n            damping = Math.min(damping * dampingStepUp, 1e7);\n        }\n        if (checkTimeout()) {\n            throw new Error(`The execution time is over to ${options.timeout} seconds`);\n        }\n        converged = error <= errorTolerance;\n    }\n    return {\n        parameterValues: optimalParameters,\n        parameterError: optimalError,\n        iterations: iteration,\n    };\n}\n//# sourceMappingURL=levenberg_marquardt.js.map","/**\n * Preparata, F. P., & Shamos, M. I. (2012). Computational geometry: an introduction. Springer Science & Business Media.\n * @param {Array} x - The array with x coordinates of the points.\n * @param {Array} y - The array with y coordinates of the points.\n * @return {Array} The indices of the points of anticlockwise lower convex hull\n * @private\n */\nexport default function antiLowerConvexHull(x, y) {\n  if (x.length !== y.length) {\n    throw new RangeError('X and Y vectors has different dimensions');\n  }\n\n  const nbPoints = x.length - 1;\n  if (nbPoints === 0) return [0];\n  if (nbPoints === 1) return [0, 1];\n\n  let currentPoint = 0;\n  let result = new Array(x.length).fill(true);\n  while (true) {\n    const a = currentPoint;\n    const b = moveOn(currentPoint, nbPoints, result);\n    const c = moveOn(moveOn(currentPoint, nbPoints, result), nbPoints, result);\n\n    const det =\n      x[c] * (y[a] - y[b]) + x[a] * (y[b] - y[c]) + x[b] * (y[c] - y[a]);\n\n    const leftTurn = det >= 0;\n\n    if (leftTurn) {\n      currentPoint = b;\n    } else {\n      result[b] = false;\n      currentPoint = moveBack(currentPoint, nbPoints, result);\n    }\n    if (c === nbPoints) break;\n  }\n\n  return result\n    .map((item, index) => (item === false ? false : index))\n    .filter((item) => item !== false);\n}\n\n/**\n * @param {number} currentPoint - The index of the current point to make the move\n * @param {number} nbPoints - The total number of points in the array\n * @param {Array} vector - The array with the points\n * @return {number} the index of the point after the move\n * @private\n */\n\nfunction moveBack(currentPoint, nbPoints, vector) {\n  let counter = currentPoint - 1;\n  while (vector[counter] === false) counter--;\n  return currentPoint === 0 ? nbPoints : counter;\n}\n\nfunction moveOn(currentPoint, nbPoints, vector) {\n  let counter = currentPoint + 1;\n  while (vector[counter] === false) counter++;\n  return currentPoint === nbPoints ? 0 : counter;\n}\n","import { xNorm, xMaxValue, xMinValue } from 'ml-spectra-processing';\n\nimport antiLowerConvexHull from './util/antiLowerConvexHull';\n\n/**\n * Performs a global optimization of required parameters\n * It will return an object containing:\n * - `minFunctionValue`: The minimum value found for the objetive function\n * - `optima`: Array of Array of values for all the variables where the function reach its minimum value\n * - `iterations`: Number of iterations performed in the process\n * - `finalState`: Internal state allowing to continue optimization (initialState)\n * @param {function} objectiveFunction Function to evaluate. It should accept an array of variables\n * @param {Array} lowerBoundaries Array containing for each variable the lower boundary\n * @param {Array} upperBoundaries Array containing for each variable the higher boundary\n * @param {Object} [options={}]\n * @param {number} [options.iterations] - Number of iterations.\n * @param {number} [options.epsilon] - Tolerance to choose best current value.\n * @param {number} [options.tolerance] - Minimum tollerance of the function.\n * @param {number} [options.tolerance2] - Minimum tollerance of the function.\n * @param {Object} [options.initialState={}}] - finalState of previous optimization.\n * @return {Object} {finalState, iterations, minFunctionValue}\n * */\n\nexport default function direct(\n  objectiveFunction,\n  lowerBoundaries,\n  upperBoundaries,\n  options = {},\n) {\n  const {\n    iterations = 50,\n    epsilon = 1e-4,\n    tolerance = 1e-16,\n    tolerance2 = 1e-12,\n    initialState = {},\n  } = options;\n\n  if (\n    objectiveFunction === undefined ||\n    lowerBoundaries === undefined ||\n    upperBoundaries === undefined\n  ) {\n    throw new RangeError('There is something undefined');\n  }\n\n  lowerBoundaries = new Float64Array(lowerBoundaries);\n  upperBoundaries = new Float64Array(upperBoundaries);\n\n  if (lowerBoundaries.length !== upperBoundaries.length) {\n    throw new Error(\n      'Lower bounds and Upper bounds for x are not of the same length',\n    );\n  }\n\n  //-------------------------------------------------------------------------\n  //                        STEP 1. Initialization\n  //-------------------------------------------------------------------------\n  let n = lowerBoundaries.length;\n  let diffBorders = upperBoundaries.map((x, i) => x - lowerBoundaries[i]);\n\n  let {\n    numberOfRectangles = 0,\n    totalIterations = 0,\n    unitaryCoordinates = [new Float64Array(n).fill(0.5)],\n    middlePoint = new Float64Array(n).map((value, index) => {\n      return (\n        lowerBoundaries[index] +\n        unitaryCoordinates[0][index] * diffBorders[index]\n      );\n    }),\n    bestCurrentValue = objectiveFunction(middlePoint),\n    fCalls = 1,\n    smallerDistance = 0,\n    edgeSizes = [new Float64Array(n).fill(0.5)],\n    diagonalDistances = [Math.sqrt(n * 0.5 ** 2)],\n    functionValues = [bestCurrentValue],\n    differentDistances = diagonalDistances,\n    smallerValuesByDistance = [bestCurrentValue],\n    choiceLimit = undefined,\n  } = initialState;\n  if (\n    initialState.originalCoordinates &&\n    initialState.originalCoordinates.length > 0\n  ) {\n    bestCurrentValue = xMinValue(functionValues);\n    choiceLimit =\n      epsilon * Math.abs(bestCurrentValue) > 1e-8\n        ? epsilon * Math.abs(bestCurrentValue)\n        : 1e-8;\n\n    smallerDistance = getMinIndex(\n      functionValues,\n      diagonalDistances,\n      choiceLimit,\n      bestCurrentValue,\n    );\n\n    unitaryCoordinates = initialState.originalCoordinates.slice();\n    for (let j = 0; j < unitaryCoordinates.length; j++) {\n      for (let i = 0; i < lowerBoundaries.length; i++) {\n        unitaryCoordinates[j][i] =\n          (unitaryCoordinates[j][i] - lowerBoundaries[i]) / diffBorders[i];\n      }\n    }\n  }\n\n  let iteration = 0;\n  //-------------------------------------------------------------------------\n  //                          Iteration loop\n  //-------------------------------------------------------------------------\n\n  while (iteration < iterations) {\n    //----------------------------------------------------------------------\n    //  STEP 2. Identify the set S of all potentially optimal rectangles\n    //----------------------------------------------------------------------\n\n    let S1 = [];\n    let idx = differentDistances.findIndex(\n      // eslint-disable-next-line no-loop-func\n      (e) => e === diagonalDistances[smallerDistance],\n    );\n    let counter = 0;\n    for (let i = idx; i < differentDistances.length; i++) {\n      for (let f = 0; f < functionValues.length; f++) {\n        if (\n          (functionValues[f] === smallerValuesByDistance[i]) &\n          (diagonalDistances[f] === differentDistances[i])\n        ) {\n          S1[counter++] = f;\n        }\n      }\n    }\n\n    let optimumValuesIndex, S3;\n    if (differentDistances.length - idx > 1) {\n      let a1 = diagonalDistances[smallerDistance];\n      let b1 = functionValues[smallerDistance];\n      let a2 = differentDistances[differentDistances.length - 1];\n      let b2 = smallerValuesByDistance[differentDistances.length - 1];\n      let slope = (b2 - b1) / (a2 - a1);\n      let constant = b1 - slope * a1;\n      let S2 = new Uint32Array(counter);\n      counter = 0;\n      for (let i = 0; i < S2.length; i++) {\n        let j = S1[i];\n        if (\n          functionValues[j] <=\n          slope * diagonalDistances[j] + constant + tolerance2\n        ) {\n          S2[counter++] = j;\n        }\n      }\n\n      let xHull = [];\n      let yHull = [];\n      for (let i = 0; i < counter; i++) {\n        xHull.push(diagonalDistances[S2[i]]);\n        yHull.push(functionValues[S2[i]]);\n      }\n\n      let lowerIndexHull = antiLowerConvexHull(xHull, yHull);\n\n      S3 = [];\n      for (let i = 0; i < lowerIndexHull.length; i++) {\n        S3.push(S2[lowerIndexHull[i]]);\n      }\n    } else {\n      S3 = S1.slice(0, counter);\n    }\n    optimumValuesIndex = S3;\n    //--------------------------------------------------------------\n    // STEPS 3,5: Select any rectangle j in S\n    //--------------------------------------------------------------\n    for (let k = 0; k < optimumValuesIndex.length; k++) {\n      let j = optimumValuesIndex[k];\n      let largerSide = xMaxValue(edgeSizes[j]);\n      let largeSidesIndex = new Uint32Array(edgeSizes[j].length);\n      counter = 0;\n      for (let i = 0; i < edgeSizes[j].length; i++) {\n        if (Math.abs(edgeSizes[j][i] - largerSide) < tolerance) {\n          largeSidesIndex[counter++] = i;\n        }\n      }\n      let delta = (2 * largerSide) / 3;\n      let bestFunctionValues = [];\n      for (let r = 0; r < counter; r++) {\n        let i = largeSidesIndex[r];\n        let firstMiddleCenter = unitaryCoordinates[j].slice();\n        let secondMiddleCenter = unitaryCoordinates[j].slice();\n        firstMiddleCenter[i] += delta;\n        secondMiddleCenter[i] -= delta;\n        let firstMiddleValue = new Float64Array(firstMiddleCenter.length);\n        let secondMiddleValue = new Float64Array(secondMiddleCenter.length);\n        for (let i = 0; i < firstMiddleCenter.length; i++) {\n          firstMiddleValue[i] =\n            lowerBoundaries[i] + firstMiddleCenter[i] * diffBorders[i];\n          secondMiddleValue[i] =\n            lowerBoundaries[i] + secondMiddleCenter[i] * diffBorders[i];\n        }\n        let firstMinValue = objectiveFunction(firstMiddleValue);\n        let secondMinValue = objectiveFunction(secondMiddleValue);\n        fCalls += 2;\n        bestFunctionValues.push({\n          minValue: Math.min(firstMinValue, secondMinValue),\n          index: r,\n        });\n        // [Math.min(firstMinValue, secondMinValue), r];\n        unitaryCoordinates.push(firstMiddleCenter, secondMiddleCenter);\n        functionValues.push(firstMinValue, secondMinValue);\n      }\n\n      let b = bestFunctionValues.sort((a, b) => a.minValue - b.minValue);\n      for (let r = 0; r < counter; r++) {\n        let u = largeSidesIndex[b[r].index];\n        let ix1 = numberOfRectangles + 2 * (b[r].index + 1) - 1;\n        let ix2 = numberOfRectangles + 2 * (b[r].index + 1);\n        edgeSizes[j][u] = delta / 2;\n        edgeSizes[ix1] = edgeSizes[j].slice();\n        edgeSizes[ix2] = edgeSizes[j].slice();\n        diagonalDistances[j] = xNorm(edgeSizes[j]);\n        diagonalDistances[ix1] = diagonalDistances[j];\n        diagonalDistances[ix2] = diagonalDistances[j];\n      }\n      numberOfRectangles += 2 * counter;\n    }\n\n    //--------------------------------------------------------------\n    //                  Update\n    //--------------------------------------------------------------\n\n    bestCurrentValue = xMinValue(functionValues);\n\n    choiceLimit =\n      epsilon * Math.abs(bestCurrentValue) > 1e-8\n        ? epsilon * Math.abs(bestCurrentValue)\n        : 1e-8;\n\n    smallerDistance = getMinIndex(\n      functionValues,\n      diagonalDistances,\n      choiceLimit,\n      bestCurrentValue,\n      iteration,\n    );\n\n    differentDistances = Array.from(new Set(diagonalDistances));\n    differentDistances = differentDistances.sort((a, b) => a - b);\n\n    smallerValuesByDistance = [];\n    for (let i = 0; i < differentDistances.length; i++) {\n      let minIndex;\n      let minValue = Number.POSITIVE_INFINITY;\n      for (let k = 0; k < diagonalDistances.length; k++) {\n        if (diagonalDistances[k] === differentDistances[i]) {\n          if (functionValues[k] < minValue) {\n            minValue = functionValues[k];\n            minIndex = k;\n          }\n        }\n      }\n      smallerValuesByDistance.push(functionValues[minIndex]);\n    }\n\n    let currentMin = [];\n    for (let j = 0; j < functionValues.length; j++) {\n      if (functionValues[j] === bestCurrentValue) {\n        let temp = [];\n        for (let i = 0; i < lowerBoundaries.length; i++) {\n          temp.push(\n            lowerBoundaries[i] + unitaryCoordinates[j][i] * diffBorders[i],\n          );\n        }\n        currentMin.push(temp);\n      }\n    }\n    iteration += 1;\n  }\n  //--------------------------------------------------------------\n  //                  Saving results\n  //--------------------------------------------------------------\n\n  let result = {};\n  result.minFunctionValue = bestCurrentValue;\n  result.iterations = iteration;\n  let originalCoordinates = [];\n  for (let j = 0; j < numberOfRectangles + 1; j++) {\n    let pair = [];\n    for (let i = 0; i < lowerBoundaries.length; i++) {\n      pair.push(lowerBoundaries[i] + unitaryCoordinates[j][i] * diffBorders[i]);\n    }\n    originalCoordinates.push(pair);\n  }\n\n  result.finalState = {\n    numberOfRectangles,\n    totalIterations: (totalIterations += iterations),\n    originalCoordinates,\n    middlePoint,\n    fCalls,\n    smallerDistance,\n    edgeSizes,\n    diagonalDistances,\n    functionValues,\n    differentDistances,\n    smallerValuesByDistance,\n    choiceLimit,\n  };\n\n  let minimizer = [];\n  for (let i = 0; i < functionValues.length; i++) {\n    if (functionValues[i] === bestCurrentValue) {\n      minimizer.push(originalCoordinates[i]);\n    }\n  }\n\n  result.optima = minimizer;\n  return result;\n}\n\nfunction getMinIndex(\n  functionValues,\n  diagonalDistances,\n  choiceLimit,\n  bestCurrentValue,\n) {\n  let item = [];\n  for (let i = 0; i < functionValues.length; i++) {\n    item[i] =\n      Math.abs(functionValues[i] - (bestCurrentValue + choiceLimit)) /\n      diagonalDistances[i];\n  }\n  const min = xMinValue(item);\n  let result = item.findIndex((x) => x === min);\n  return result;\n}\n","import direct from 'ml-direct';\n/**\n * Run a direct optimization on the provided data using a sum-of-shapes model.\n * @param data - The observed x/y data to fit.\n * @param sumOfShapes - A function returning the model prediction for a given parameter vector.\n * @param options - Optimization bounds and solver options.\n * @returns The optimized parameter values, the final objective error, and the number of iterations.\n */\nexport function directOptimization(data, sumOfShapes, options) {\n    const { minValues, maxValues, maxIterations, epsilon, tolerance, tolerance2, initialState, } = options;\n    const objectiveFunction = getObjectiveFunction(data, sumOfShapes);\n    const result = direct(objectiveFunction, \n    // direct internally converts ArrayLike to Float64Array,\n    // so we can safely cast minValues and maxValues to number[]\n    minValues, maxValues, {\n        iterations: maxIterations,\n        epsilon,\n        tolerance,\n        tolerance2,\n        initialState,\n    });\n    const { optima, minFunctionValue, iterations } = result;\n    return {\n        parameterError: minFunctionValue,\n        iterations,\n        parameterValues: optima[0],\n    };\n}\nfunction getObjectiveFunction(data, sumOfShapes) {\n    const { x, y } = data;\n    const nbPoints = x.length;\n    return (parameters) => {\n        const fct = sumOfShapes(parameters);\n        let error = 0;\n        for (let i = 0; i < nbPoints; i++) {\n            error += (y[i] - fct(x[i])) ** 2;\n        }\n        return error;\n    };\n}\n//# sourceMappingURL=directOptimization.js.map","import { xMaxAbsoluteValue } from 'ml-spectra-processing';\nimport { getSumOfShapes } from \"./shapes/getSumOfShapes.js\";\nimport { buildOptimizationLayout } from \"./util/buildOptimizationLayout.js\";\nimport { getFixedParametersResult } from \"./util/getFixedParametersResult.js\";\nimport { getInternalPeaks } from \"./util/internalPeaks/getInternalPeaks.js\";\nimport { reconstructPeaks } from \"./util/reconstructPeaks.js\";\nimport { selectMethod } from \"./util/selectMethod.js\";\n/**\n * Fits a set of points to the sum of a set of bell functions.\n * @param data - An object containing the x and y data to be fitted.\n * @param peaks - A list of initial parameters to be optimized. e.g. coming from a peak picking [{x, y, width}].\n * @param options - Options for optimize\n * @returns - An object with fitting error and the list of optimized parameters { parameters: [ {x, y, width} ], error } if the kind of shape is pseudoVoigt mu parameter is optimized.\n */\nexport function optimize(data, peaks, options = {}) {\n    // rescale data so the maximum Y value becomes 1\n    const max = xMaxAbsoluteValue(data.y);\n    const yScale = max === 0 ? 1 : max;\n    const internalPeaks = getInternalPeaks(peaks, yScale, options);\n    // need to rescale what is related to Y\n    const normalizedY = new Float64Array(data.y.length);\n    for (let i = 0; i < data.y.length; i++) {\n        normalizedY[i] = data.y[i] / yScale;\n    }\n    const optimizationLayout = buildOptimizationLayout(internalPeaks, peaks, options, yScale);\n    const { freeIndices, variableMin, variableMax, variableInit, variableGrad, variables, } = optimizationLayout;\n    const { algorithm, optimizationOptions } = selectMethod(options.optimization);\n    const baseSumOfShapes = getSumOfShapes(internalPeaks);\n    const sumOfShapesForVariables = (variableValues) => {\n        return baseSumOfShapes(optimizationLayout.variableToPeakValues(variableValues));\n    };\n    if (freeIndices.length === 0) {\n        return getFixedParametersResult(internalPeaks, normalizedY, data.x, optimizationLayout.variableToPeakValues(variableInit), baseSumOfShapes, yScale);\n    }\n    // prepare arrays to pass to the algorithm (reduced if needed)\n    let minValues;\n    let maxValues;\n    let initialValues;\n    let gradientDifferences;\n    let sumOfShapesToUse = sumOfShapesForVariables;\n    if (freeIndices.length === variables.length) {\n        // nothing to reduce\n        minValues = variableMin;\n        maxValues = variableMax;\n        initialValues = variableInit;\n        gradientDifferences = variableGrad;\n    }\n    else {\n        // wrapper that maps reduced (free) parameters into the full parameter vector\n        const sumOfShapesForReduced = (reducedParameters) => {\n            const full = new Float64Array(variables.length);\n            full.set(variableInit);\n            for (let k = 0; k < freeIndices.length; k++) {\n                full[freeIndices[k]] = reducedParameters[k];\n            }\n            return sumOfShapesForVariables(full);\n        };\n        minValues = new Float64Array(freeIndices.length);\n        maxValues = new Float64Array(freeIndices.length);\n        initialValues = new Float64Array(freeIndices.length);\n        gradientDifferences = new Float64Array(freeIndices.length);\n        for (let j = 0; j < freeIndices.length; j++) {\n            const i = freeIndices[j];\n            minValues[j] = variableMin[i];\n            maxValues[j] = variableMax[i];\n            initialValues[j] = variableInit[i];\n            gradientDifferences[j] = variableGrad[i];\n        }\n        sumOfShapesToUse = sumOfShapesForReduced;\n    }\n    const fitted = algorithm({ x: data.x, y: normalizedY }, sumOfShapesToUse, {\n        minValues,\n        maxValues,\n        initialValues,\n        gradientDifference: gradientDifferences,\n        ...optimizationOptions,\n    });\n    let fittedVariableValues;\n    if (freeIndices.length === variables.length) {\n        fittedVariableValues = fitted.parameterValues;\n    }\n    else {\n        const full = variableInit.slice();\n        for (let k = 0; k < freeIndices.length; k++) {\n            full[freeIndices[k]] = fitted.parameterValues[k];\n        }\n        fittedVariableValues = full;\n    }\n    const fittedValues = optimizationLayout.variableToPeakValues(fittedVariableValues);\n    return {\n        error: fitted.parameterError,\n        iterations: fitted.iterations,\n        peaks: reconstructPeaks(internalPeaks, fittedValues, yScale),\n    };\n}\n//# sourceMappingURL=index.js.map","import { levenbergMarquardt } from 'ml-levenberg-marquardt';\nimport { directOptimization } from \"./wrappers/directOptimization.js\";\n/**\n * Algorithm to select the method.\n * @param optimizationOptions - Optimization options\n * @returns - The algorithm and optimization options\n */\nexport function selectMethod(optimizationOptions = {}) {\n    const { kind = 'lm', options } = optimizationOptions;\n    switch (kind) {\n        case 'lm':\n        case 'levenbergMarquardt':\n            return {\n                algorithm: levenbergMarquardt,\n                optimizationOptions: {\n                    damping: 1.5,\n                    maxIterations: 100,\n                    errorTolerance: 1e-8,\n                    ...options,\n                },\n            };\n        case 'direct': {\n            return {\n                algorithm: directOptimization,\n                optimizationOptions: {\n                    maxIterations: 20,\n                    epsilon: 1e-4,\n                    tolerance: 1e-16,\n                    tolerance2: 1e-12,\n                    initialState: {},\n                    ...options,\n                },\n            };\n        }\n        default:\n            throw new Error(`Unknown fitting algorithm`);\n    }\n}\n//# sourceMappingURL=selectMethod.js.map","/**\n * This function returns the sumOfShapes function\n * This function gives sumOfShapes access to the peak list and the associated data\n * @param internalPeaks\n */\nexport function getSumOfShapes(internalPeaks) {\n    return function sumOfShapes(parameters) {\n        for (const peak of internalPeaks) {\n            for (let i = 2; i < peak.parameters.length; i++) {\n                const shapeFctKey = peak.parameters[i];\n                peak.shapeFct[shapeFctKey] = parameters[peak.fromIndex + i];\n            }\n        }\n        return (x) => {\n            let totalY = 0;\n            for (const peak of internalPeaks) {\n                const peakX = parameters[peak.fromIndex];\n                const y = parameters[peak.fromIndex + 1];\n                totalY += y * peak.shapeFct.fct(x - peakX);\n            }\n            return totalY;\n        };\n    };\n}\n//# sourceMappingURL=getSumOfShapes.js.map","import { reconstructPeaks } from \"./reconstructPeaks.js\";\n/**\n * Build result when no parameters are free to optimize.\n * Computes the fit error using the provided `globalInit` parameter vector\n * and reconstructs the output peak objects from `internalPeaks`.\n * @template T - input Peak type\n * @param internalPeaks - internal representation of peaks (with parameter indices)\n * @param normalizedY - observed Y values normalized by the global scale\n * @param x - X axis values\n * @param globalInit - full parameter vector (actual-space) used to evaluate the model\n * @param baseSumOfShapes - function that returns the spectrum function given parameters\n * @param yScale - the scale factor used to normalize Y (used to reconstruct peak amplitudes)\n * @returns an object containing `error`, `iterations` (0) and the reconstructed `peaks`\n */\nexport function getFixedParametersResult(internalPeaks, normalizedY, x, globalInit, baseSumOfShapes, yScale) {\n    const fct = baseSumOfShapes(globalInit);\n    let error = 0;\n    for (let i = 0; i < normalizedY.length; i++) {\n        error += (normalizedY[i] - fct(x[i])) ** 2;\n    }\n    return {\n        error,\n        iterations: 0,\n        peaks: reconstructPeaks(internalPeaks, globalInit, yScale),\n    };\n}\n//# sourceMappingURL=getFixedParametersResult.js.map","import { getShape1D } from 'ml-peak-shape-generator';\n/**\n * Add a `shape` property to peaks that do not have one.\n * If a peak already has a `shape` but no `fwhm`, the FWHM is computed from `peak.width`.\n * @param peaks - Peaks with a `width` property.\n * @param options - Shape options.\n * @returns A peak list where every peak has a `shape` property.\n */\nexport function addMissingShape(peaks, options = {}) {\n    const { shape = { kind: 'gaussian' }, output = structuredClone(peaks) } = options;\n    const defaultShapeInstance = getShape1D(shape);\n    return output.map((peak) => {\n        if (hasShape(peak)) {\n            if (!('fwhm' in peak.shape)) {\n                peak.shape.fwhm = getShape1D(peak.shape).widthToFWHM(peak.width);\n            }\n            return peak;\n        }\n        return {\n            ...peak,\n            shape: {\n                fwhm: defaultShapeInstance.widthToFWHM(peak.width),\n                ...shape,\n            },\n        };\n    });\n}\nfunction hasShape(peak) {\n    return 'shape' in peak;\n}\n//# sourceMappingURL=addMissingShape.js.map","/**\n * Splits a group of peaks into smaller subgroups whose size is approximately\n * limited by `maxNumberOfPeaks`.\n *\n * If the group contains more peaks than allowed, the function identifies the\n * largest normalized gaps between adjacent peaks and uses them as split points.\n *\n * The gap score is computed as:\n *\n * `score = distanceBetweenCenters / averagePeakWidth`\n *\n * where:\n * - `distanceBetweenCenters = peak[i + 1].x - peak[i].x`\n * - `averagePeakWidth = (peak[i].width + peak[i + 1].width) / 2`\n *\n * Larger scores indicate that two neighboring peaks are well separated\n * relative to their widths, making them good candidates for dividing the\n * fitting problem into independent subgroups.\n *\n * The algorithm:\n * 1. Computes the number of cuts required.\n * 2. Scores every boundary between adjacent peaks.\n * 3. Selects the boundaries with the largest scores.\n * 4. Splits the original group at those boundaries.\n * @param group - Ordered collection of peaks. Peaks should be sorted by\n * increasing `x` position before calling this function.\n * @param maxNumberOfPeaks - Desired maximum number of peaks per subgroup.\n * If the group size is less than or equal to this value, no splitting occurs.\n * @returns An array of peak subgroups. The returned groups preserve the\n * original peak ordering.\n */\nexport function splitGroup(group, maxNumberOfPeaks) {\n    const groups = [group];\n    while (true) {\n        const index = groups.findIndex((g) => g.length > maxNumberOfPeaks);\n        if (index === -1)\n            break;\n        const current = groups[index];\n        const cut = findBestCut(current);\n        groups.splice(index, 1, current.slice(0, cut), current.slice(cut));\n    }\n    return groups;\n}\nfunction findBestCut(group) {\n    let bestScore = -Infinity;\n    const candidates = [];\n    for (let i = 1; i < group.length; i++) {\n        const score = (group[i].x - group[i - 1].x) /\n            ((group[i].width + group[i - 1].width) / 2);\n        if (score > bestScore) {\n            bestScore = score;\n            candidates.length = 0;\n        }\n        if (score === bestScore) {\n            candidates.push({\n                index: i,\n                balance: Math.abs(i - (group.length - i)),\n            });\n        }\n    }\n    let bestScored = candidates[0];\n    for (const candidate of candidates) {\n        if (candidate.balance < bestScored.balance) {\n            bestScored = candidate;\n        }\n    }\n    return bestScored.index;\n}\n//# sourceMappingURL=splitGroup.js.map","import { splitGroup } from \"./splitGroup.js\";\n/**\n * Group peaks based on a width-aware factor.\n * Only `x` and `width` are used, so the current implementation does not take\n * peak asymmetry into account.\n * @param peaks - Peaks with `x` and `width` properties.\n * @param options - Grouping options.\n * @returns Groups of peaks sorted by ascending `x`.\n */\nexport function groupPeaks(peaks, options = {}) {\n    if (peaks.length === 0)\n        return [];\n    const { groupingFactor = 1, maxNumberOfPeaks = 15 } = options;\n    const sortedPeaks = peaks.toSorted((a, b) => a.x - b.x);\n    let previousPeak = sortedPeaks[0];\n    let currentGroup = [previousPeak];\n    const groups = [currentGroup];\n    for (let i = 1; i < sortedPeaks.length; i++) {\n        const peak = sortedPeaks[i];\n        if ((peak.x - previousPeak.x) / ((peak.width + previousPeak.width) / 2) <=\n            groupingFactor) {\n            currentGroup.push(peak);\n        }\n        else {\n            currentGroup = [peak];\n            groups.push(currentGroup);\n        }\n        previousPeak = peak;\n    }\n    if (maxNumberOfPeaks !== undefined) {\n        return groups.flatMap((group) => group.length > maxNumberOfPeaks\n            ? splitGroup(group, maxNumberOfPeaks)\n            : [group]);\n    }\n    return groups;\n}\n//# sourceMappingURL=groupPeaks.js.map","import { getShape1D } from 'ml-peak-shape-generator';\nimport { optimize } from 'ml-spectra-fitting';\nimport { xGetFromToIndex } from 'ml-spectra-processing';\nimport { addMissingShape } from \"../utils/addMissingShape.js\";\nimport { groupPeaks } from \"../utils/groupPeaks.js\";\n/**\n * Optimize the position (x), max intensity (y), full width at half maximum (fwhm)\n * and the ratio of gaussian contribution (mu) if it's required.\n * It currently supports three kind of shapes: gaussian, lorentzian and pseudovoigt.\n * Returns both the optimized peaks and per-group diagnostic logs.\n * @param data - An object containing the x and y data to be fitted.\n * @param peakList - A list of initial parameters to be optimized. e.g. coming from a peak picking [{x, y, width}].\n * @param options - Optimization options.\n * @returns An object with the optimized peaks and the per-group logs.\n */\nexport function optimizePeaksWithLogs(data, peakList, options = {}) {\n    const { fromTo = {}, shape = { kind: 'gaussian' }, maxNumberOfPeaks, groupingFactor, factorLimits = 2, parameters, optimization = {\n        kind: 'lm',\n        options: {\n            timeout: 10,\n        },\n    }, } = options;\n    // Optimize peaks in groups: fitting everything at once would be too slow and\n    // have too many free parameters.\n    const groups = groupPeaks(peakList, {\n        groupingFactor,\n        maxNumberOfPeaks,\n    });\n    const logs = [];\n    const results = [];\n    for (const peakGroup of groups) {\n        const start = Date.now();\n        const peaks = addMissingShape(peakGroup, { shape });\n        const firstPeak = peaks[0];\n        const lastPeak = peaks.at(-1);\n        const { from = firstPeak.x - firstPeak.width * factorLimits, to = lastPeak.x + lastPeak.width * factorLimits, } = fromTo;\n        const { fromIndex, toIndex } = xGetFromToIndex(data.x, { from, to });\n        const x = data.x instanceof Float64Array\n            ? data.x.subarray(fromIndex, toIndex)\n            : data.x.slice(fromIndex, toIndex);\n        const y = data.y instanceof Float64Array\n            ? data.y.subarray(fromIndex, toIndex)\n            : data.y.slice(fromIndex, toIndex);\n        const log = {\n            range: { from, to },\n            parameters: { optimization, parameters },\n            groupSize: peakGroup.length,\n            time: Date.now() - start,\n        };\n        if (x.length > 5) {\n            const { iterations, error, peaks: optimizedPeaks, } = optimize({ x, y }, peaks, {\n                shape,\n                parameters,\n                optimization,\n            });\n            for (const optimizedPeak of optimizedPeaks) {\n                results.push({\n                    ...optimizedPeak,\n                    width: getShape1D(optimizedPeak.shape).fwhmToWidth(optimizedPeak.shape.fwhm),\n                });\n            }\n            logs.push({\n                ...log,\n                iterations,\n                error,\n                message: 'optimization successful',\n            });\n        }\n        else {\n            results.push(...peaks);\n            logs.push({\n                ...log,\n                iterations: 0,\n                message: 'x length too small for optimization',\n            });\n        }\n    }\n    return { logs, optimizedPeaks: results };\n}\n//# sourceMappingURL=optimizePeaksWithLogs.js.map","/**\n * Assign a random UUID to every peak that does not already have an `id`.\n * @param peaks - Peaks possibly missing an `id`.\n * @param options - Options.\n * @param options.output - Destination array. Defaults to a deep clone of `peaks`.\n * @returns A peak list where every peak has an `id`.\n */\nexport function addMissingIDs(peaks, options = {}) {\n    const { output = structuredClone(peaks) } = options;\n    for (const peak of output) {\n        if (!('id' in peak)) {\n            peak.id = crypto.randomUUID();\n        }\n    }\n    return output;\n}\n//# sourceMappingURL=addMissingIDs.js.map","import { addMissingIDs } from \"../utils/addMissingIDs.js\";\nimport { addMissingShape } from \"../utils/addMissingShape.js\";\nimport { optimizePeaksWithLogs } from \"./optimizePeaksWithLogs.js\";\n/**\n * Join peaks that seem to belong to a broad signal into a single broad peak.\n * @param peakList - Detected peaks, possibly containing fragments of a broad signal.\n * @param options - Join options.\n * @returns The peak list with broad fragments fitted as a single peak.\n */\nexport function joinBroadPeaks(peakList, options = {}) {\n    const { shape = { kind: 'gaussian' }, optimization = { kind: 'lm', options: { timeout: 10 } }, broadWidth = 0.25, broadRatio = 0.0025, } = options;\n    let max = 0;\n    let maxI = 0;\n    let count = 1;\n    const broadLines = [];\n    if (peakList.length < 2) {\n        return addMissingIDs(addMissingShape(peakList.map(getGSDPeakOptimizedStructure), { shape }));\n    }\n    let maxDdy = Math.abs(peakList[0].ddY);\n    for (let i = 1; i < peakList.length; i++) {\n        const absDdy = Math.abs(peakList[i].ddY);\n        if (absDdy > maxDdy)\n            maxDdy = absDdy;\n    }\n    const newPeaks = [];\n    for (const peak of peakList) {\n        if (Math.abs(peak.ddY) <= broadRatio * maxDdy) {\n            broadLines.push(peak);\n        }\n        else {\n            newPeaks.push(getGSDPeakOptimizedStructure(peak));\n        }\n    }\n    // Sentinel: forces the final group to be flushed by the `else` branch below.\n    //@ts-expect-error Sentinel peak, x=+Infinity guarantees the distance check fails.\n    broadLines.push({ x: Number.MAX_VALUE, y: 0 });\n    let candidates = {\n        x: [broadLines[0].x],\n        y: [broadLines[0].y],\n    };\n    let indexes = [0];\n    for (let i = 1; i < broadLines.length; i++) {\n        if (Math.abs(broadLines[i - 1].x - broadLines[i].x) < broadWidth) {\n            candidates.x.push(broadLines[i].x);\n            candidates.y.push(broadLines[i].y);\n            if (broadLines[i].y > max) {\n                max = broadLines[i].y;\n                maxI = i;\n            }\n            indexes.push(i);\n            count++;\n        }\n        else {\n            if (count > 2) {\n                const initialWidth = Math.abs(candidates.x.at(-1) - candidates.x[0]);\n                const { logs, optimizedPeaks } = optimizePeaksWithLogs(candidates, [\n                    {\n                        id: crypto.randomUUID(),\n                        x: broadLines[maxI].x,\n                        y: max,\n                        width: initialWidth,\n                        parameters: {\n                            width: { max: initialWidth * 4, min: initialWidth * 0.8 },\n                        },\n                    },\n                ], { shape: { kind: 'pseudoVoigt' }, optimization });\n                max = 0;\n                maxI = 0;\n                const log = logs.find((l) => l.message === 'optimization successful');\n                if (log?.error !== undefined && log.error < 0.2) {\n                    newPeaks.push(optimizedPeaks[0]);\n                }\n                else {\n                    pushBackPeaks(broadLines, indexes, newPeaks);\n                }\n            }\n            else {\n                pushBackPeaks(broadLines, indexes, newPeaks);\n            }\n            candidates = { x: [broadLines[i].x], y: [broadLines[i].y] };\n            indexes = [i];\n            max = broadLines[i].y;\n            maxI = i;\n            count = 1;\n        }\n    }\n    newPeaks.sort((a, b) => a.x - b.x);\n    return addMissingIDs(newPeaks, { output: newPeaks });\n}\nfunction pushBackPeaks(broadLines, indexes, peaks) {\n    for (const index of indexes) {\n        peaks.push(getGSDPeakOptimizedStructure(broadLines[index]));\n    }\n}\nfunction getGSDPeakOptimizedStructure(peak) {\n    const { id, shape, x, y, width } = peak;\n    const newPeak = {\n        x,\n        y,\n        width,\n        shape,\n    };\n    if (id)\n        newPeak.id = id;\n    return newPeak;\n}\n//# sourceMappingURL=joinBroadPeaks.js.map","import { gsd } from 'ml-gsd';\nimport { xAdd, xFindClosestIndex, xMean } from 'ml-spectra-processing';\n/**\n * Filter that allows to calibrateX the x axis based on the presence of peaks\n * @param data\n * @param options\n */\nexport function calibrateX(data, options = {}) {\n    const { targetX = 0, nbPeaks = 1, from = data.x[0], to = data.x.at(-1), gsd: gsdOptions = {\n        minMaxRatio: 0.1,\n        realTopDetection: true,\n        smoothY: true,\n        sgOptions: {\n            windowSize: 7,\n            polynomial: 3,\n        },\n    }, } = options;\n    const fromIndex = xFindClosestIndex(data.x, from);\n    const toIndex = xFindClosestIndex(data.x, to);\n    let peaks = gsd({\n        x: data.x.subarray(fromIndex, toIndex),\n        y: data.y.subarray(fromIndex, toIndex),\n    }, gsdOptions);\n    peaks.sort((a, b) => b.y - a.y);\n    peaks = peaks.slice(0, nbPeaks);\n    if (peaks.length < nbPeaks)\n        return { data };\n    const middle = xMean(peaks.map((peak) => peak.x));\n    return { data: { x: xAdd(data.x, targetX - middle), y: data.y } };\n}\n//# sourceMappingURL=calibrateX.js.map","import { xApplyFunctionStr } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n * @param options\n */\nexport function xFunction(data, options = {}) {\n    return {\n        data: {\n            x: xApplyFunctionStr(data.x, {\n                variableLabel: 'x',\n                fctString: options.function,\n            }),\n            y: data.y,\n        },\n    };\n}\n//# sourceMappingURL=xFunction.js.map","import { xApplyFunctionStr } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n * @param options\n */\nexport function yFunction(data, options = {}) {\n    return {\n        data: {\n            x: data.x,\n            y: xApplyFunctionStr(data.y, {\n                variableLabel: 'y',\n                fctString: options.function,\n            }),\n        },\n    };\n}\n//# sourceMappingURL=yFunction.js.map","import { xAdd, xMaxValue } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n * @param options\n */\nexport function setMaxY(data, options = {}) {\n    const { max = 1 } = options;\n    const existingMax = xMaxValue(data.y);\n    if (existingMax === max) {\n        return { data };\n    }\n    return {\n        data: {\n            x: data.x,\n            y: xAdd(data.y, max - existingMax),\n        },\n    };\n}\n//# sourceMappingURL=setMaxY.js.map","import { xAdd, xMinValue } from 'ml-spectra-processing';\n/**\n * Filter that allows to\n * @param data\n * @param options\n */\nexport function setMinY(data, options = {}) {\n    const { min = 0 } = options;\n    const existingMin = xMinValue(data.y);\n    if (existingMin === min) {\n        return { data };\n    }\n    return {\n        data: {\n            x: data.x,\n            y: xAdd(data.y, min - existingMin),\n        },\n    };\n}\n//# sourceMappingURL=setMinY.js.map","// eslint-disable-next-line jsdoc/require-jsdoc\nexport function filterMatrix(matrix, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfilters) {\n    const result = {\n        data: matrix,\n    };\n    const logs = [];\n    /**\n     * todo\n     * for (let filter of filters) {\n     * const start = Date.now();\n     * // eslint-disable-next-line import/namespace\n     * const filterFct = Filters[filter.name];\n     * if (!filterFct) {\n     * throw new Error(`Unknown filter: ${filter.name}`);\n     * }\n     * result = filterFct(result.data, filter.options);\n     * logs.push({\n     * name: filter.name,\n     * time: Date.now() - start,\n     * });\n     * }\n     */\n    return { logs, data: result.data };\n}\n//# sourceMappingURL=filterMatrix.js.map","import { xEnsureFloat64, xyGrowingX } from 'ml-spectra-processing';\nimport * as Filters from \"./filters/filters.js\";\n/**\n * Apply filters on {x:[], y:[]}\n * @param data\n * @param filters\n * @returns\n */\nexport function filterXY(data, filters) {\n    let result = {\n        data: xyGrowingX({ x: xEnsureFloat64(data.x), y: xEnsureFloat64(data.y) }),\n    };\n    const logs = [];\n    for (const filter of filters) {\n        const start = Date.now();\n        if (!filter.name) {\n            // we ignore empty filter names\n            continue;\n        }\n        const filterFct = Filters[filter.name];\n        if (!filterFct) {\n            throw new Error(`Unknown filter: ${filter.name}`);\n        }\n        // @ts-expect-error some method have options and some other ones don't have any options\n        result = filterFct(result.data, filter.options);\n        result.data = xyGrowingX(result.data);\n        logs.push({\n            name: filter.name,\n            time: Date.now() - start,\n        });\n    }\n    return { logs, data: result.data };\n}\n//# sourceMappingURL=filterXY.js.map","import { xSequentialFillFromTo } from 'ml-spectra-processing';\nexport function getShortestPath(options) {\n    const { currUnAssCol, dualVariableForColumns, dualVariableForRows, rowAssignments, columnAssignments, matrix, } = options;\n    const nbRows = matrix.rows;\n    const nbColumns = matrix.columns;\n    const pred = new Float64Array(nbRows);\n    const scannedColumns = new Float64Array(nbColumns);\n    const scannedRows = new Float64Array(nbRows);\n    const rows2Scan = Array.from(xSequentialFillFromTo({ from: 0, to: nbRows - 1, size: nbRows }));\n    let numRows2Scan = nbRows;\n    let sink = -1;\n    let delta = 0;\n    let curColumn = currUnAssCol;\n    const shortestPathCost = new Array(nbRows).fill(Number.POSITIVE_INFINITY);\n    while (sink === -1) {\n        scannedColumns[curColumn] = 1;\n        let minVal = Number.POSITIVE_INFINITY;\n        let closestRowScan = -1;\n        for (let curRowScan = 0; curRowScan < numRows2Scan; curRowScan++) {\n            const curRow = rows2Scan[curRowScan];\n            const reducedCost = delta +\n                matrix.get(curRow, curColumn) -\n                dualVariableForColumns[curColumn] -\n                dualVariableForRows[curRow];\n            if (reducedCost < shortestPathCost[curRow]) {\n                pred[curRow] = curColumn;\n                shortestPathCost[curRow] = reducedCost;\n            }\n            if (shortestPathCost[curRow] < minVal) {\n                minVal = shortestPathCost[curRow];\n                closestRowScan = curRowScan;\n            }\n        }\n        if (!Number.isFinite(minVal)) {\n            return { dualVariableForColumns, dualVariableForRows, sink, pred };\n        }\n        const closestRow = rows2Scan[closestRowScan];\n        scannedRows[closestRow] = 1;\n        numRows2Scan -= 1;\n        rows2Scan.splice(closestRowScan, 1);\n        delta = shortestPathCost[closestRow];\n        if (rowAssignments[closestRow] === -1) {\n            sink = closestRow;\n        }\n        else {\n            curColumn = rowAssignments[closestRow];\n        }\n    }\n    dualVariableForColumns[currUnAssCol] += delta;\n    for (let sel = 0; sel < nbColumns; sel++) {\n        if (scannedColumns[sel] === 0)\n            continue;\n        if (sel === currUnAssCol)\n            continue;\n        dualVariableForColumns[sel] +=\n            delta - shortestPathCost[columnAssignments[sel]];\n    }\n    for (let sel = 0; sel < nbRows; sel++) {\n        if (scannedRows[sel] === 0)\n            continue;\n        dualVariableForRows[sel] -= delta - shortestPathCost[sel];\n    }\n    return {\n        sink,\n        pred,\n        dualVariableForColumns,\n        dualVariableForRows,\n    };\n}\n//# sourceMappingURL=getShortestPath.js.map","/*! @preserve\n * numeral.js\n * version : 2.0.6\n * author : Adam Draper\n * license : MIT\n * http://adamwdraper.github.com/Numeral-js/\n */\n\n(function (global, factory) {\n    if (typeof define === 'function' && define.amd) {\n        define(factory);\n    } else if (typeof module === 'object' && module.exports) {\n        module.exports = factory();\n    } else {\n        global.numeral = factory();\n    }\n}(this, function () {\n    /************************************\n        Variables\n    ************************************/\n\n    var numeral,\n        _,\n        VERSION = '2.0.6',\n        formats = {},\n        locales = {},\n        defaults = {\n            currentLocale: 'en',\n            zeroFormat: null,\n            nullFormat: null,\n            defaultFormat: '0,0',\n            scalePercentBy100: true\n        },\n        options = {\n            currentLocale: defaults.currentLocale,\n            zeroFormat: defaults.zeroFormat,\n            nullFormat: defaults.nullFormat,\n            defaultFormat: defaults.defaultFormat,\n            scalePercentBy100: defaults.scalePercentBy100\n        };\n\n\n    /************************************\n        Constructors\n    ************************************/\n\n    // Numeral prototype object\n    function Numeral(input, number) {\n        this._input = input;\n\n        this._value = number;\n    }\n\n    numeral = function(input) {\n        var value,\n            kind,\n            unformatFunction,\n            regexp;\n\n        if (numeral.isNumeral(input)) {\n            value = input.value();\n        } else if (input === 0 || typeof input === 'undefined') {\n            value = 0;\n        } else if (input === null || _.isNaN(input)) {\n            value = null;\n        } else if (typeof input === 'string') {\n            if (options.zeroFormat && input === options.zeroFormat) {\n                value = 0;\n            } else if (options.nullFormat && input === options.nullFormat || !input.replace(/[^0-9]+/g, '').length) {\n                value = null;\n            } else {\n                for (kind in formats) {\n                    regexp = typeof formats[kind].regexps.unformat === 'function' ? formats[kind].regexps.unformat() : formats[kind].regexps.unformat;\n\n                    if (regexp && input.match(regexp)) {\n                        unformatFunction = formats[kind].unformat;\n\n                        break;\n                    }\n                }\n\n                unformatFunction = unformatFunction || numeral._.stringToNumber;\n\n                value = unformatFunction(input);\n            }\n        } else {\n            value = Number(input)|| null;\n        }\n\n        return new Numeral(input, value);\n    };\n\n    // version number\n    numeral.version = VERSION;\n\n    // compare numeral object\n    numeral.isNumeral = function(obj) {\n        return obj instanceof Numeral;\n    };\n\n    // helper functions\n    numeral._ = _ = {\n        // formats numbers separators, decimals places, signs, abbreviations\n        numberToFormat: function(value, format, roundingFunction) {\n            var locale = locales[numeral.options.currentLocale],\n                negP = false,\n                optDec = false,\n                leadingCount = 0,\n                abbr = '',\n                trillion = 1000000000000,\n                billion = 1000000000,\n                million = 1000000,\n                thousand = 1000,\n                decimal = '',\n                neg = false,\n                abbrForce, // force abbreviation\n                abs,\n                min,\n                max,\n                power,\n                int,\n                precision,\n                signed,\n                thousands,\n                output;\n\n            // make sure we never format a null value\n            value = value || 0;\n\n            abs = Math.abs(value);\n\n            // see if we should use parentheses for negative number or if we should prefix with a sign\n            // if both are present we default to parentheses\n            if (numeral._.includes(format, '(')) {\n                negP = true;\n                format = format.replace(/[\\(|\\)]/g, '');\n            } else if (numeral._.includes(format, '+') || numeral._.includes(format, '-')) {\n                signed = numeral._.includes(format, '+') ? format.indexOf('+') : value < 0 ? format.indexOf('-') : -1;\n                format = format.replace(/[\\+|\\-]/g, '');\n            }\n\n            // see if abbreviation is wanted\n            if (numeral._.includes(format, 'a')) {\n                abbrForce = format.match(/a(k|m|b|t)?/);\n\n                abbrForce = abbrForce ? abbrForce[1] : false;\n\n                // check for space before abbreviation\n                if (numeral._.includes(format, ' a')) {\n                    abbr = ' ';\n                }\n\n                format = format.replace(new RegExp(abbr + 'a[kmbt]?'), '');\n\n                if (abs >= trillion && !abbrForce || abbrForce === 't') {\n                    // trillion\n                    abbr += locale.abbreviations.trillion;\n                    value = value / trillion;\n                } else if (abs < trillion && abs >= billion && !abbrForce || abbrForce === 'b') {\n                    // billion\n                    abbr += locale.abbreviations.billion;\n                    value = value / billion;\n                } else if (abs < billion && abs >= million && !abbrForce || abbrForce === 'm') {\n                    // million\n                    abbr += locale.abbreviations.million;\n                    value = value / million;\n                } else if (abs < million && abs >= thousand && !abbrForce || abbrForce === 'k') {\n                    // thousand\n                    abbr += locale.abbreviations.thousand;\n                    value = value / thousand;\n                }\n            }\n\n            // check for optional decimals\n            if (numeral._.includes(format, '[.]')) {\n                optDec = true;\n                format = format.replace('[.]', '.');\n            }\n\n            // break number and format\n            int = value.toString().split('.')[0];\n            precision = format.split('.')[1];\n            thousands = format.indexOf(',');\n            leadingCount = (format.split('.')[0].split(',')[0].match(/0/g) || []).length;\n\n            if (precision) {\n                if (numeral._.includes(precision, '[')) {\n                    precision = precision.replace(']', '');\n                    precision = precision.split('[');\n                    decimal = numeral._.toFixed(value, (precision[0].length + precision[1].length), roundingFunction, precision[1].length);\n                } else {\n                    decimal = numeral._.toFixed(value, precision.length, roundingFunction);\n                }\n\n                int = decimal.split('.')[0];\n\n                if (numeral._.includes(decimal, '.')) {\n                    decimal = locale.delimiters.decimal + decimal.split('.')[1];\n                } else {\n                    decimal = '';\n                }\n\n                if (optDec && Number(decimal.slice(1)) === 0) {\n                    decimal = '';\n                }\n            } else {\n                int = numeral._.toFixed(value, 0, roundingFunction);\n            }\n\n            // check abbreviation again after rounding\n            if (abbr && !abbrForce && Number(int) >= 1000 && abbr !== locale.abbreviations.trillion) {\n                int = String(Number(int) / 1000);\n\n                switch (abbr) {\n                    case locale.abbreviations.thousand:\n                        abbr = locale.abbreviations.million;\n                        break;\n                    case locale.abbreviations.million:\n                        abbr = locale.abbreviations.billion;\n                        break;\n                    case locale.abbreviations.billion:\n                        abbr = locale.abbreviations.trillion;\n                        break;\n                }\n            }\n\n\n            // format number\n            if (numeral._.includes(int, '-')) {\n                int = int.slice(1);\n                neg = true;\n            }\n\n            if (int.length < leadingCount) {\n                for (var i = leadingCount - int.length; i > 0; i--) {\n                    int = '0' + int;\n                }\n            }\n\n            if (thousands > -1) {\n                int = int.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' + locale.delimiters.thousands);\n            }\n\n            if (format.indexOf('.') === 0) {\n                int = '';\n            }\n\n            output = int + decimal + (abbr ? abbr : '');\n\n            if (negP) {\n                output = (negP && neg ? '(' : '') + output + (negP && neg ? ')' : '');\n            } else {\n                if (signed >= 0) {\n                    output = signed === 0 ? (neg ? '-' : '+') + output : output + (neg ? '-' : '+');\n                } else if (neg) {\n                    output = '-' + output;\n                }\n            }\n\n            return output;\n        },\n        // unformats numbers separators, decimals places, signs, abbreviations\n        stringToNumber: function(string) {\n            var locale = locales[options.currentLocale],\n                stringOriginal = string,\n                abbreviations = {\n                    thousand: 3,\n                    million: 6,\n                    billion: 9,\n                    trillion: 12\n                },\n                abbreviation,\n                value,\n                i,\n                regexp;\n\n            if (options.zeroFormat && string === options.zeroFormat) {\n                value = 0;\n            } else if (options.nullFormat && string === options.nullFormat || !string.replace(/[^0-9]+/g, '').length) {\n                value = null;\n            } else {\n                value = 1;\n\n                if (locale.delimiters.decimal !== '.') {\n                    string = string.replace(/\\./g, '').replace(locale.delimiters.decimal, '.');\n                }\n\n                for (abbreviation in abbreviations) {\n                    regexp = new RegExp('[^a-zA-Z]' + locale.abbreviations[abbreviation] + '(?:\\\\)|(\\\\' + locale.currency.symbol + ')?(?:\\\\))?)?$');\n\n                    if (stringOriginal.match(regexp)) {\n                        value *= Math.pow(10, abbreviations[abbreviation]);\n                        break;\n                    }\n                }\n\n                // check for negative number\n                value *= (string.split('-').length + Math.min(string.split('(').length - 1, string.split(')').length - 1)) % 2 ? 1 : -1;\n\n                // remove non numbers\n                string = string.replace(/[^0-9\\.]+/g, '');\n\n                value *= Number(string);\n            }\n\n            return value;\n        },\n        isNaN: function(value) {\n            return typeof value === 'number' && isNaN(value);\n        },\n        includes: function(string, search) {\n            return string.indexOf(search) !== -1;\n        },\n        insert: function(string, subString, start) {\n            return string.slice(0, start) + subString + string.slice(start);\n        },\n        reduce: function(array, callback /*, initialValue*/) {\n            if (this === null) {\n                throw new TypeError('Array.prototype.reduce called on null or undefined');\n            }\n\n            if (typeof callback !== 'function') {\n                throw new TypeError(callback + ' is not a function');\n            }\n\n            var t = Object(array),\n                len = t.length >>> 0,\n                k = 0,\n                value;\n\n            if (arguments.length === 3) {\n                value = arguments[2];\n            } else {\n                while (k < len && !(k in t)) {\n                    k++;\n                }\n\n                if (k >= len) {\n                    throw new TypeError('Reduce of empty array with no initial value');\n                }\n\n                value = t[k++];\n            }\n            for (; k < len; k++) {\n                if (k in t) {\n                    value = callback(value, t[k], k, t);\n                }\n            }\n            return value;\n        },\n        /**\n         * Computes the multiplier necessary to make x >= 1,\n         * effectively eliminating miscalculations caused by\n         * finite precision.\n         */\n        multiplier: function (x) {\n            var parts = x.toString().split('.');\n\n            return parts.length < 2 ? 1 : Math.pow(10, parts[1].length);\n        },\n        /**\n         * Given a variable number of arguments, returns the maximum\n         * multiplier that must be used to normalize an operation involving\n         * all of them.\n         */\n        correctionFactor: function () {\n            var args = Array.prototype.slice.call(arguments);\n\n            return args.reduce(function(accum, next) {\n                var mn = _.multiplier(next);\n                return accum > mn ? accum : mn;\n            }, 1);\n        },\n        /**\n         * Implementation of toFixed() that treats floats more like decimals\n         *\n         * Fixes binary rounding issues (eg. (0.615).toFixed(2) === '0.61') that present\n         * problems for accounting- and finance-related software.\n         */\n        toFixed: function(value, maxDecimals, roundingFunction, optionals) {\n            var splitValue = value.toString().split('.'),\n                minDecimals = maxDecimals - (optionals || 0),\n                boundedPrecision,\n                optionalsRegExp,\n                power,\n                output;\n\n            // Use the smallest precision value possible to avoid errors from floating point representation\n            if (splitValue.length === 2) {\n              boundedPrecision = Math.min(Math.max(splitValue[1].length, minDecimals), maxDecimals);\n            } else {\n              boundedPrecision = minDecimals;\n            }\n\n            power = Math.pow(10, boundedPrecision);\n\n            // Multiply up by precision, round accurately, then divide and use native toFixed():\n            output = (roundingFunction(value + 'e+' + boundedPrecision) / power).toFixed(boundedPrecision);\n\n            if (optionals > maxDecimals - boundedPrecision) {\n                optionalsRegExp = new RegExp('\\\\.?0{1,' + (optionals - (maxDecimals - boundedPrecision)) + '}$');\n                output = output.replace(optionalsRegExp, '');\n            }\n\n            return output;\n        }\n    };\n\n    // avaliable options\n    numeral.options = options;\n\n    // avaliable formats\n    numeral.formats = formats;\n\n    // avaliable formats\n    numeral.locales = locales;\n\n    // This function sets the current locale.  If\n    // no arguments are passed in, it will simply return the current global\n    // locale key.\n    numeral.locale = function(key) {\n        if (key) {\n            options.currentLocale = key.toLowerCase();\n        }\n\n        return options.currentLocale;\n    };\n\n    // This function provides access to the loaded locale data.  If\n    // no arguments are passed in, it will simply return the current\n    // global locale object.\n    numeral.localeData = function(key) {\n        if (!key) {\n            return locales[options.currentLocale];\n        }\n\n        key = key.toLowerCase();\n\n        if (!locales[key]) {\n            throw new Error('Unknown locale : ' + key);\n        }\n\n        return locales[key];\n    };\n\n    numeral.reset = function() {\n        for (var property in defaults) {\n            options[property] = defaults[property];\n        }\n    };\n\n    numeral.zeroFormat = function(format) {\n        options.zeroFormat = typeof(format) === 'string' ? format : null;\n    };\n\n    numeral.nullFormat = function (format) {\n        options.nullFormat = typeof(format) === 'string' ? format : null;\n    };\n\n    numeral.defaultFormat = function(format) {\n        options.defaultFormat = typeof(format) === 'string' ? format : '0.0';\n    };\n\n    numeral.register = function(type, name, format) {\n        name = name.toLowerCase();\n\n        if (this[type + 's'][name]) {\n            throw new TypeError(name + ' ' + type + ' already registered.');\n        }\n\n        this[type + 's'][name] = format;\n\n        return format;\n    };\n\n\n    numeral.validate = function(val, culture) {\n        var _decimalSep,\n            _thousandSep,\n            _currSymbol,\n            _valArray,\n            _abbrObj,\n            _thousandRegEx,\n            localeData,\n            temp;\n\n        //coerce val to string\n        if (typeof val !== 'string') {\n            val += '';\n\n            if (console.warn) {\n                console.warn('Numeral.js: Value is not string. It has been co-erced to: ', val);\n            }\n        }\n\n        //trim whitespaces from either sides\n        val = val.trim();\n\n        //if val is just digits return true\n        if (!!val.match(/^\\d+$/)) {\n            return true;\n        }\n\n        //if val is empty return false\n        if (val === '') {\n            return false;\n        }\n\n        //get the decimal and thousands separator from numeral.localeData\n        try {\n            //check if the culture is understood by numeral. if not, default it to current locale\n            localeData = numeral.localeData(culture);\n        } catch (e) {\n            localeData = numeral.localeData(numeral.locale());\n        }\n\n        //setup the delimiters and currency symbol based on culture/locale\n        _currSymbol = localeData.currency.symbol;\n        _abbrObj = localeData.abbreviations;\n        _decimalSep = localeData.delimiters.decimal;\n        if (localeData.delimiters.thousands === '.') {\n            _thousandSep = '\\\\.';\n        } else {\n            _thousandSep = localeData.delimiters.thousands;\n        }\n\n        // validating currency symbol\n        temp = val.match(/^[^\\d]+/);\n        if (temp !== null) {\n            val = val.substr(1);\n            if (temp[0] !== _currSymbol) {\n                return false;\n            }\n        }\n\n        //validating abbreviation symbol\n        temp = val.match(/[^\\d]+$/);\n        if (temp !== null) {\n            val = val.slice(0, -1);\n            if (temp[0] !== _abbrObj.thousand && temp[0] !== _abbrObj.million && temp[0] !== _abbrObj.billion && temp[0] !== _abbrObj.trillion) {\n                return false;\n            }\n        }\n\n        _thousandRegEx = new RegExp(_thousandSep + '{2}');\n\n        if (!val.match(/[^\\d.,]/g)) {\n            _valArray = val.split(_decimalSep);\n            if (_valArray.length > 2) {\n                return false;\n            } else {\n                if (_valArray.length < 2) {\n                    return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx));\n                } else {\n                    if (_valArray[0].length === 1) {\n                        return ( !! _valArray[0].match(/^\\d+$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n                    } else {\n                        return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n                    }\n                }\n            }\n        }\n\n        return false;\n    };\n\n\n    /************************************\n        Numeral Prototype\n    ************************************/\n\n    numeral.fn = Numeral.prototype = {\n        clone: function() {\n            return numeral(this);\n        },\n        format: function(inputString, roundingFunction) {\n            var value = this._value,\n                format = inputString || options.defaultFormat,\n                kind,\n                output,\n                formatFunction;\n\n            // make sure we have a roundingFunction\n            roundingFunction = roundingFunction || Math.round;\n\n            // format based on value\n            if (value === 0 && options.zeroFormat !== null) {\n                output = options.zeroFormat;\n            } else if (value === null && options.nullFormat !== null) {\n                output = options.nullFormat;\n            } else {\n                for (kind in formats) {\n                    if (format.match(formats[kind].regexps.format)) {\n                        formatFunction = formats[kind].format;\n\n                        break;\n                    }\n                }\n\n                formatFunction = formatFunction || numeral._.numberToFormat;\n\n                output = formatFunction(value, format, roundingFunction);\n            }\n\n            return output;\n        },\n        value: function() {\n            return this._value;\n        },\n        input: function() {\n            return this._input;\n        },\n        set: function(value) {\n            this._value = Number(value);\n\n            return this;\n        },\n        add: function(value) {\n            var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n            function cback(accum, curr, currI, O) {\n                return accum + Math.round(corrFactor * curr);\n            }\n\n            this._value = _.reduce([this._value, value], cback, 0) / corrFactor;\n\n            return this;\n        },\n        subtract: function(value) {\n            var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n            function cback(accum, curr, currI, O) {\n                return accum - Math.round(corrFactor * curr);\n            }\n\n            this._value = _.reduce([value], cback, Math.round(this._value * corrFactor)) / corrFactor;\n\n            return this;\n        },\n        multiply: function(value) {\n            function cback(accum, curr, currI, O) {\n                var corrFactor = _.correctionFactor(accum, curr);\n                return Math.round(accum * corrFactor) * Math.round(curr * corrFactor) / Math.round(corrFactor * corrFactor);\n            }\n\n            this._value = _.reduce([this._value, value], cback, 1);\n\n            return this;\n        },\n        divide: function(value) {\n            function cback(accum, curr, currI, O) {\n                var corrFactor = _.correctionFactor(accum, curr);\n                return Math.round(accum * corrFactor) / Math.round(curr * corrFactor);\n            }\n\n            this._value = _.reduce([this._value, value], cback);\n\n            return this;\n        },\n        difference: function(value) {\n            return Math.abs(numeral(this._value).subtract(value).value());\n        }\n    };\n\n    /************************************\n        Default Locale && Format\n    ************************************/\n\n    numeral.register('locale', 'en', {\n        delimiters: {\n            thousands: ',',\n            decimal: '.'\n        },\n        abbreviations: {\n            thousand: 'k',\n            million: 'm',\n            billion: 'b',\n            trillion: 't'\n        },\n        ordinal: function(number) {\n            var b = number % 10;\n            return (~~(number % 100 / 10) === 1) ? 'th' :\n                (b === 1) ? 'st' :\n                (b === 2) ? 'nd' :\n                (b === 3) ? 'rd' : 'th';\n        },\n        currency: {\n            symbol: '$'\n        }\n    });\n\n    \n\n(function() {\n        numeral.register('format', 'bps', {\n            regexps: {\n                format: /(BPS)/,\n                unformat: /(BPS)/\n            },\n            format: function(value, format, roundingFunction) {\n                var space = numeral._.includes(format, ' BPS') ? ' ' : '',\n                    output;\n\n                value = value * 10000;\n\n                // check for space before BPS\n                format = format.replace(/\\s?BPS/, '');\n\n                output = numeral._.numberToFormat(value, format, roundingFunction);\n\n                if (numeral._.includes(output, ')')) {\n                    output = output.split('');\n\n                    output.splice(-1, 0, space + 'BPS');\n\n                    output = output.join('');\n                } else {\n                    output = output + space + 'BPS';\n                }\n\n                return output;\n            },\n            unformat: function(string) {\n                return +(numeral._.stringToNumber(string) * 0.0001).toFixed(15);\n            }\n        });\n})();\n\n\n(function() {\n        var decimal = {\n            base: 1000,\n            suffixes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n        },\n        binary = {\n            base: 1024,\n            suffixes: ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']\n        };\n\n    var allSuffixes =  decimal.suffixes.concat(binary.suffixes.filter(function (item) {\n            return decimal.suffixes.indexOf(item) < 0;\n        }));\n        var unformatRegex = allSuffixes.join('|');\n        // Allow support for BPS (http://www.investopedia.com/terms/b/basispoint.asp)\n        unformatRegex = '(' + unformatRegex.replace('B', 'B(?!PS)') + ')';\n\n    numeral.register('format', 'bytes', {\n        regexps: {\n            format: /([0\\s]i?b)/,\n            unformat: new RegExp(unformatRegex)\n        },\n        format: function(value, format, roundingFunction) {\n            var output,\n                bytes = numeral._.includes(format, 'ib') ? binary : decimal,\n                suffix = numeral._.includes(format, ' b') || numeral._.includes(format, ' ib') ? ' ' : '',\n                power,\n                min,\n                max;\n\n            // check for space before\n            format = format.replace(/\\s?i?b/, '');\n\n            for (power = 0; power <= bytes.suffixes.length; power++) {\n                min = Math.pow(bytes.base, power);\n                max = Math.pow(bytes.base, power + 1);\n\n                if (value === null || value === 0 || value >= min && value < max) {\n                    suffix += bytes.suffixes[power];\n\n                    if (min > 0) {\n                        value = value / min;\n                    }\n\n                    break;\n                }\n            }\n\n            output = numeral._.numberToFormat(value, format, roundingFunction);\n\n            return output + suffix;\n        },\n        unformat: function(string) {\n            var value = numeral._.stringToNumber(string),\n                power,\n                bytesMultiplier;\n\n            if (value) {\n                for (power = decimal.suffixes.length - 1; power >= 0; power--) {\n                    if (numeral._.includes(string, decimal.suffixes[power])) {\n                        bytesMultiplier = Math.pow(decimal.base, power);\n\n                        break;\n                    }\n\n                    if (numeral._.includes(string, binary.suffixes[power])) {\n                        bytesMultiplier = Math.pow(binary.base, power);\n\n                        break;\n                    }\n                }\n\n                value *= (bytesMultiplier || 1);\n            }\n\n            return value;\n        }\n    });\n})();\n\n\n(function() {\n        numeral.register('format', 'currency', {\n        regexps: {\n            format: /(\\$)/\n        },\n        format: function(value, format, roundingFunction) {\n            var locale = numeral.locales[numeral.options.currentLocale],\n                symbols = {\n                    before: format.match(/^([\\+|\\-|\\(|\\s|\\$]*)/)[0],\n                    after: format.match(/([\\+|\\-|\\)|\\s|\\$]*)$/)[0]\n                },\n                output,\n                symbol,\n                i;\n\n            // strip format of spaces and $\n            format = format.replace(/\\s?\\$\\s?/, '');\n\n            // format the number\n            output = numeral._.numberToFormat(value, format, roundingFunction);\n\n            // update the before and after based on value\n            if (value >= 0) {\n                symbols.before = symbols.before.replace(/[\\-\\(]/, '');\n                symbols.after = symbols.after.replace(/[\\-\\)]/, '');\n            } else if (value < 0 && (!numeral._.includes(symbols.before, '-') && !numeral._.includes(symbols.before, '('))) {\n                symbols.before = '-' + symbols.before;\n            }\n\n            // loop through each before symbol\n            for (i = 0; i < symbols.before.length; i++) {\n                symbol = symbols.before[i];\n\n                switch (symbol) {\n                    case '$':\n                        output = numeral._.insert(output, locale.currency.symbol, i);\n                        break;\n                    case ' ':\n                        output = numeral._.insert(output, ' ', i + locale.currency.symbol.length - 1);\n                        break;\n                }\n            }\n\n            // loop through each after symbol\n            for (i = symbols.after.length - 1; i >= 0; i--) {\n                symbol = symbols.after[i];\n\n                switch (symbol) {\n                    case '$':\n                        output = i === symbols.after.length - 1 ? output + locale.currency.symbol : numeral._.insert(output, locale.currency.symbol, -(symbols.after.length - (1 + i)));\n                        break;\n                    case ' ':\n                        output = i === symbols.after.length - 1 ? output + ' ' : numeral._.insert(output, ' ', -(symbols.after.length - (1 + i) + locale.currency.symbol.length - 1));\n                        break;\n                }\n            }\n\n\n            return output;\n        }\n    });\n})();\n\n\n(function() {\n        numeral.register('format', 'exponential', {\n        regexps: {\n            format: /(e\\+|e-)/,\n            unformat: /(e\\+|e-)/\n        },\n        format: function(value, format, roundingFunction) {\n            var output,\n                exponential = typeof value === 'number' && !numeral._.isNaN(value) ? value.toExponential() : '0e+0',\n                parts = exponential.split('e');\n\n            format = format.replace(/e[\\+|\\-]{1}0/, '');\n\n            output = numeral._.numberToFormat(Number(parts[0]), format, roundingFunction);\n\n            return output + 'e' + parts[1];\n        },\n        unformat: function(string) {\n            var parts = numeral._.includes(string, 'e+') ? string.split('e+') : string.split('e-'),\n                value = Number(parts[0]),\n                power = Number(parts[1]);\n\n            power = numeral._.includes(string, 'e-') ? power *= -1 : power;\n\n            function cback(accum, curr, currI, O) {\n                var corrFactor = numeral._.correctionFactor(accum, curr),\n                    num = (accum * corrFactor) * (curr * corrFactor) / (corrFactor * corrFactor);\n                return num;\n            }\n\n            return numeral._.reduce([value, Math.pow(10, power)], cback, 1);\n        }\n    });\n})();\n\n\n(function() {\n        numeral.register('format', 'ordinal', {\n        regexps: {\n            format: /(o)/\n        },\n        format: function(value, format, roundingFunction) {\n            var locale = numeral.locales[numeral.options.currentLocale],\n                output,\n                ordinal = numeral._.includes(format, ' o') ? ' ' : '';\n\n            // check for space before\n            format = format.replace(/\\s?o/, '');\n\n            ordinal += locale.ordinal(value);\n\n            output = numeral._.numberToFormat(value, format, roundingFunction);\n\n            return output + ordinal;\n        }\n    });\n})();\n\n\n(function() {\n        numeral.register('format', 'percentage', {\n        regexps: {\n            format: /(%)/,\n            unformat: /(%)/\n        },\n        format: function(value, format, roundingFunction) {\n            var space = numeral._.includes(format, ' %') ? ' ' : '',\n                output;\n\n            if (numeral.options.scalePercentBy100) {\n                value = value * 100;\n            }\n\n            // check for space before %\n            format = format.replace(/\\s?\\%/, '');\n\n            output = numeral._.numberToFormat(value, format, roundingFunction);\n\n            if (numeral._.includes(output, ')')) {\n                output = output.split('');\n\n                output.splice(-1, 0, space + '%');\n\n                output = output.join('');\n            } else {\n                output = output + space + '%';\n            }\n\n            return output;\n        },\n        unformat: function(string) {\n            var number = numeral._.stringToNumber(string);\n            if (numeral.options.scalePercentBy100) {\n                return number * 0.01;\n            }\n            return number;\n        }\n    });\n})();\n\n\n(function() {\n        numeral.register('format', 'time', {\n        regexps: {\n            format: /(:)/,\n            unformat: /(:)/\n        },\n        format: function(value, format, roundingFunction) {\n            var hours = Math.floor(value / 60 / 60),\n                minutes = Math.floor((value - (hours * 60 * 60)) / 60),\n                seconds = Math.round(value - (hours * 60 * 60) - (minutes * 60));\n\n            return hours + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds);\n        },\n        unformat: function(string) {\n            var timeArray = string.split(':'),\n                seconds = 0;\n\n            // turn hours and minutes into seconds and add them all up\n            if (timeArray.length === 3) {\n                // hours\n                seconds = seconds + (Number(timeArray[0]) * 60 * 60);\n                // minutes\n                seconds = seconds + (Number(timeArray[1]) * 60);\n                // seconds\n                seconds = seconds + Number(timeArray[2]);\n            } else if (timeArray.length === 2) {\n                // minutes\n                seconds = seconds + (Number(timeArray[0]) * 60);\n                // seconds\n                seconds = seconds + Number(timeArray[1]);\n            }\n            return Number(seconds);\n        }\n    });\n})();\n\nreturn numeral;\n}));\n","/**\n * Fast Fourier Transform module\n * 1D-FFT/IFFT, 2D-FFT/IFFT (radix-2)\n */\nvar FFT = (function(){\n  var FFT;  \n  \n  if(typeof exports !== 'undefined') {\n    FFT = exports;   // for CommonJS\n  } else {\n    FFT = {};\n  }\n  \n  var version = {\n    release: '0.3.0',\n    date: '2013-03'\n  };\n  FFT.toString = function() {\n    return \"version \" + version.release + \", released \" + version.date;\n  };\n\n  // core operations\n  var _n = 0,          // order\n      _bitrev = null,  // bit reversal table\n      _cstb = null;    // sin/cos table\n\n  var core = {\n    init : function(n) {\n      if(n !== 0 && (n & (n - 1)) === 0) {\n        _n = n;\n        core._initArray();\n        core._makeBitReversalTable();\n        core._makeCosSinTable();\n      } else {\n        throw new Error(\"init: radix-2 required\");\n      }\n    },\n    // 1D-FFT\n    fft1d : function(re, im) {\n      core.fft(re, im, 1);\n    },\n    // 1D-IFFT\n    ifft1d : function(re, im) {\n      var n = 1/_n;\n      core.fft(re, im, -1);\n      for(var i=0; i<_n; i++) {\n        re[i] *= n;\n        im[i] *= n;\n      }\n    },\n     // 1D-IFFT\n    bt1d : function(re, im) {\n      core.fft(re, im, -1);\n    },\n    // 2D-FFT Not very useful if the number of rows have to be equal to cols\n    fft2d : function(re, im) {\n      var tre = [],\n          tim = [],\n          i = 0;\n      // x-axis\n      for(var y=0; y<_n; y++) {\n        i = y*_n;\n        for(var x1=0; x1<_n; x1++) {\n          tre[x1] = re[x1 + i];\n          tim[x1] = im[x1 + i];\n        }\n        core.fft1d(tre, tim);\n        for(var x2=0; x2<_n; x2++) {\n          re[x2 + i] = tre[x2];\n          im[x2 + i] = tim[x2];\n        }\n      }\n      // y-axis\n      for(var x=0; x<_n; x++) {\n        for(var y1=0; y1<_n; y1++) {\n          i = x + y1*_n;\n          tre[y1] = re[i];\n          tim[y1] = im[i];\n        }\n        core.fft1d(tre, tim);\n        for(var y2=0; y2<_n; y2++) {\n          i = x + y2*_n;\n          re[i] = tre[y2];\n          im[i] = tim[y2];\n        }\n      }\n    },\n    // 2D-IFFT\n    ifft2d : function(re, im) {\n      var tre = [],\n          tim = [],\n          i = 0;\n      // x-axis\n      for(var y=0; y<_n; y++) {\n        i = y*_n;\n        for(var x1=0; x1<_n; x1++) {\n          tre[x1] = re[x1 + i];\n          tim[x1] = im[x1 + i];\n        }\n        core.ifft1d(tre, tim);\n        for(var x2=0; x2<_n; x2++) {\n          re[x2 + i] = tre[x2];\n          im[x2 + i] = tim[x2];\n        }\n      }\n      // y-axis\n      for(var x=0; x<_n; x++) {\n        for(var y1=0; y1<_n; y1++) {\n          i = x + y1*_n;\n          tre[y1] = re[i];\n          tim[y1] = im[i];\n        }\n        core.ifft1d(tre, tim);\n        for(var y2=0; y2<_n; y2++) {\n          i = x + y2*_n;\n          re[i] = tre[y2];\n          im[i] = tim[y2];\n        }\n      }\n    },\n    // core operation of FFT\n    fft : function(re, im, inv) {\n      var d, h, ik, m, tmp, wr, wi, xr, xi,\n          n4 = _n >> 2;\n      // bit reversal\n      for(var l=0; l<_n; l++) {\n        m = _bitrev[l];\n        if(l < m) {\n          tmp = re[l];\n          re[l] = re[m];\n          re[m] = tmp;\n          tmp = im[l];\n          im[l] = im[m];\n          im[m] = tmp;\n        }\n      }\n      // butterfly operation\n      for(var k=1; k<_n; k<<=1) {\n        h = 0;\n        d = _n/(k << 1);\n        for(var j=0; j<k; j++) {\n          wr = _cstb[h + n4];\n          wi = inv*_cstb[h];\n          for(var i=j; i<_n; i+=(k<<1)) {\n            ik = i + k;\n            xr = wr*re[ik] + wi*im[ik];\n            xi = wr*im[ik] - wi*re[ik];\n            re[ik] = re[i] - xr;\n            re[i] += xr;\n            im[ik] = im[i] - xi;\n            im[i] += xi;\n          }\n          h += d;\n        }\n      }\n    },\n    // initialize the array (supports TypedArray)\n    _initArray : function() {\n      if(typeof Uint32Array !== 'undefined') {\n        _bitrev = new Uint32Array(_n);\n      } else {\n        _bitrev = [];\n      }\n      if(typeof Float64Array !== 'undefined') {\n        _cstb = new Float64Array(_n*1.25);\n      } else {\n        _cstb = [];\n      }\n    },\n    // zero padding\n    _paddingZero : function() {\n      // TODO\n    },\n    // makes bit reversal table\n    _makeBitReversalTable : function() {\n      var i = 0,\n          j = 0,\n          k = 0;\n      _bitrev[0] = 0;\n      while(++i < _n) {\n        k = _n >> 1;\n        while(k <= j) {\n          j -= k;\n          k >>= 1;\n        }\n        j += k;\n        _bitrev[i] = j;\n      }\n    },\n    // makes trigonometiric function table\n    _makeCosSinTable : function() {\n      var n2 = _n >> 1,\n          n4 = _n >> 2,\n          n8 = _n >> 3,\n          n2p4 = n2 + n4,\n          t = Math.sin(Math.PI/_n),\n          dc = 2*t*t,\n          ds = Math.sqrt(dc*(2 - dc)),\n          c = _cstb[n4] = 1,\n          s = _cstb[0] = 0;\n      t = 2*dc;\n      for(var i=1; i<n8; i++) {\n        c -= dc;\n        dc += t*c;\n        s += ds;\n        ds -= t*s;\n        _cstb[i] = s;\n        _cstb[n4 - i] = c;\n      }\n      if(n8 !== 0) {\n        _cstb[n8] = Math.sqrt(0.5);\n      }\n      for(var j=0; j<n4; j++) {\n        _cstb[n2 - j]  = _cstb[j];\n      }\n      for(var k=0; k<n2p4; k++) {\n        _cstb[k + n2] = -_cstb[k];\n      }\n    }\n  };\n  // aliases (public APIs)\n  var apis = ['init', 'fft1d', 'ifft1d', 'fft2d', 'ifft2d'];\n  for(var i=0; i<apis.length; i++) {\n    FFT[apis[i]] = core[apis[i]];\n  }\n  FFT.bt = core.bt1d;\n  FFT.fft = core.fft1d;\n  FFT.ifft = core.ifft1d;\n  \n  return FFT;\n}).call(this);\n","var bl=Object.defineProperty;var qe=(e,n)=>{for(var t in n)bl(e,t,{get:n[t],enumerable:!0})};export*from\"gyromagnetic-ratio\";import{xEnsureFloat64 as hl}from\"ml-spectra-processing\";function L(e,n){let{windowData:t,output:s=new Float64Array(e)}=n,i=s.length;if(i!==t.length)throw new RangeError(\"window function and data should have the same length\");for(let o=0;o<i;o++)s[o]*=t[o];return hl(s)}import{xDivide as Dl,xMaxValue as xl}from\"ml-spectra-processing\";function jn(e,n){let t=new Float64Array(n);for(let s=0;s<n;s++)t[s]=e(s);return t}function Mn(e,n){let{dw:t}=n,{lineBroadening:s}=e,i=-s*Math.PI*t;return o=>Math.exp(i*o)}function kn(e,n){let{dw:t,length:s}=n,{lineBroadening:i,lineBroadeningCenter:o}=e;if(o>1||o<0)throw new Error(\"The lineBroadeningCenter of gaussian shape should be inside of the window function: 0 - 1\");let a=Math.PI*i*t,r=o*(s-1);return m=>Math.exp(-1*((r-m)*a)**2)}function An(e,n){return Nt({exponent:1,...e},n)}function Nt(e,n){let{length:t}=n,{exponent:s,offset:i}=e;if(t===void 0)throw new Error(\"length options should exists for sineBell shape\");let o=Math.PI*i,a=Math.PI*(1-i)/(t-1);return r=>Math.sin(o+a*r)**s}function Rn(e,n){return Nt({...e,exponent:2},n)}function Nn(e,n){let{length:t,dw:s}=n,i=-s/e.lineBroadening;return o=>{let a=Math.exp(i*o);return a/(a**2+Math.exp(-i*(o-t))**2)}}function wn(e,n){let{kind:t,options:s}=e;switch(t){case\"exponential\":return Mn(s,n);case\"gaussian\":return kn(s,n);case\"sineBell\":return An(s,n);case\"sineSquare\":return Rn(s,n);case\"traf\":return Nn(s,n);default:throw new Error(`Unknown distribution ${t}`)}}function me(e){let{shapes:n,windowOptions:t}=e,s=new Float64Array(t.length).fill(1);for(let[i,o]of Object.entries(n)){let{options:a,apply:r=!0}=o;if(!r)continue;let m=jn(wn({kind:i,options:a},t),t.length);L(s,{windowData:m,output:s})}return Dl(s,xl(s),{output:s})}import{TopicMolecule as Nl}from\"openchemlib-utils\";import{Molecule as Al}from\"openchemlib\";import{agnes as Ol}from\"ml-hclust\";import{Matrix as Sl}from\"ml-matrix\";import{Molecule as En}from\"openchemlib\";function In(e,n={}){let t=n.output||structuredClone(e);for(let s of t)s.id=crypto.randomUUID();return t}var Hl={h:\"1H\",c:\"13C\"};function Tn(e){return Object.values(e).map(n=>Hl[n.toLowerCase()])}function vl(e){if(!e.from||!e.to)throw new Error(\"options from and to are mandatory\")}async function ce(e,n){vl(n);let{from:t,to:s,minLength:i=0,maxLength:o,predictions:a,includeDiagonal:r=!1}=n,m={...n.joinDistance,H:.05,C:.5},{correlationPaths:l=Pl(e,{fromLabel:t,toLabel:s,minLength:i,maxLength:o})}=n,c=e.getGroupedDiastereotopicAtomIDs()||[],u=[];for(let D of c||[])u.push({...D,pathInfo:structuredClone(l[D.atoms[0]])});let f=a[s],g=a[t];if(!g||!f)throw new Error(\"predictions are not availaible\");let d={x:g,y:f},p={x:{},y:{}};for(let D in p)for(let h of d[D].joinedSignals){if(!h.diaIDs)throw new Error(\"Signal has not diaIDs\");p[D][h.diaIDs[0]]=h}let C={};for(let D of u){let h=D.pathInfo;if(h.paths.length===0||!p.x[h.oclID])continue;let S=h.paths;for(let P of S){if(!p.y[l[P.to].oclID])continue;let H={x:h,y:l[P.to]},x=`${H.x.oclID}-${H.y.oclID}`;if(x===`${h.oclID}-${h.oclID}`||C[x])continue;let O={id:crypto.randomUUID(),x:0,y:0,z:100},v={id:crypto.randomUUID(),x:{delta:0,diaIDs:[],atoms:[]},y:{delta:0,diaIDs:[],atoms:[]},peaks:[]};for(let F of[\"x\",\"y\"]){let j=H[F].oclID;O[F]=p[F][j].delta,v[F].delta=p[F][j].delta,v[F].diaIDs=[j];let{atoms:k}=p[F][j];k&&(v[F].atoms=k)}v.peaks=[O],C[x]=v}}r&&jl(C,{paths:l,signalsByDiaID:p});let y=Object.values(C),b=Ml(y,{joinDistance:m,from:t,to:s});return{nuclei:Tn({from:t,to:s}),joinedSignals:y,signals:Fl(y),zones:b}}function Pl(e,n){let{fromLabel:t,toLabel:s,minLength:i,maxLength:o=Number.MAX_SAFE_INTEGER}=n,a=e.diaIDs,r=e.moleculeWithH,m=e.distanceMatrix,l=En.getAtomicNoFromLabel(t),c=En.getAtomicNoFromLabel(s),u=[];for(let f=0;f<r.getAllAtoms();f++){let g={oclID:a[f],paths:[]};for(let d=0;d<r.getAllAtoms();d++){if(f===d||r.getAtomicNo(d)!==c||r.getAtomicNo(f)!==l)continue;let p=m[f][d];p>=i&&p<=o&&g.paths.push({from:f,to:d})}u.push(g)}return u}function Fl(e){let n=[];for(let t of e)for(let s of t.x.atoms||[])for(let i of t.y.atoms||[]){let o=structuredClone(t);o.x.atoms=[s],o.y.atoms=[i],n.push(o)}return In(n)}function jl(e,n){let{paths:t=[],signalsByDiaID:s}=n;for(let i of t){let o=i.oclID;if(!s.x[o]||e[`${o}-${o}`])continue;let a=s.x[o].delta,r=s.y[o].delta,m={id:crypto.randomUUID(),x:{delta:a,diaIDs:[o],atoms:s.x[o].atoms},y:{delta:r,diaIDs:[o],atoms:s.y[o].atoms},peaks:[{id:crypto.randomUUID(),x:a,y:r,z:1,minX:a,maxX:a,minY:r,maxY:r}]};e[`${i.oclID}-${i.oclID}`]=m}}function Ml(e,n){if(e.length===0)return[];let{joinDistance:t,from:s,to:i}=n,o=new Sl(e.map(d=>[d.x.delta,d.y.delta])),a=o.minColumn(0),r=o.maxColumn(0),m=o.minColumn(1),l=o.maxColumn(1);o.mulColumn(0,1/(r-a)),o.mulColumn(1,1/(l-m));let c=Math.hypot(t[s]/(r-a),t[i]/(l-m)),u=Ol(o.to2DArray(),{method:\"centroid\"}),f=zn([u],c),g=[];for(let d of f){let p=[];d.isLeaf&&p.push(e[d.index]);for(let C of d.children)for(let y of C.indices())p.push(e[y]);g.push({id:crypto.randomUUID(),...kl(p,{joinDistance:t,from:s,to:i}),signals:p})}return g}function kl(e,n){let{joinDistance:t,from:s,to:i}=n,o=Number.MAX_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER,r=Number.MIN_SAFE_INTEGER,m=Number.MIN_SAFE_INTEGER;for(let l of e)l.x.delta<o&&(o=l.x.delta),l.x.delta>r&&(r=l.x.delta),l.y.delta<a&&(a=l.y.delta),l.y.delta>m&&(m=l.y.delta);return{x:{from:o-t[s],to:r+t[s]},y:{from:a-t[i],to:m+t[i]}}}function zn(e,n){let t=e.length;for(let s=0;s<e.length;s++){let i=e[s];i.height>n&&(e.push(...i.children),e.splice(s--,1))}return e.length<t?zn(e,n):e}async function Bn(e,n){let{minLength:t,maxLength:s,predictions:{H:i},includeDiagonal:o=!0,minCoupling:a=1.5}=n;if(!i)throw new Error(\"prediction is not availaible\");let r={...n,from:\"H\",to:\"H\",includeDiagonal:o};return(!t||!s)&&(r.correlationPaths=Rl(e,i,a)),ce(e,r)}function Rl(e,n,t){let s=e.diaIDs,i=[],o={},a=n.signals;for(let l of a){let c=l.diaIDs[0];o[c]??={};for(let u of l.js){if(!u.diaIDs||u.diaIDs.length===0)throw new Error(\"should contains assigned coupling by atoms\");let f=u.diaIDs[0];o[c][f]=Math.max(u.coupling,o[c][f]??Number.MIN_SAFE_INTEGER)}}let r=e.moleculeWithH,m=Al.getAtomicNoFromLabel(\"H\");for(let l=0;l<r.getAllAtoms();l++){let c={oclID:s[l],paths:[]};for(let u=0;u<r.getAllAtoms();u++)l!==u&&r.getAtomicNo(u)===m&&r.getAtomicNo(l)===m&&o[s[l]]?.[s[u]]>=t&&c.paths.push({from:l,to:u});i.push(c)}return i}function Ln(e,n){async function t(s){let i=await fetch(n,{headers:{accept:\"application/json\",\"content-type\":\"application/json\"},method:\"POST\",body:JSON.stringify({molfile:s.toMolfile({version:3})})});if(i.status!==200){let a=await i.text();throw new Error(`${i.statusText}: ${a}`)}let{data:o}=await i.json();return{nucleus:o.nucleus,joinedSignals:o.joinedSignals??[],signals:o.signals??[],ranges:o.ranges??[]}}return Object.defineProperty(t,\"name\",{value:`default${e[0].toUpperCase()}${e.slice(1)}Predictor`}),t}var Xn=Ln(\"proton\",\"https://nmr-prediction.service.zakodium.com/v1/predict/proton\"),qn=Ln(\"carbon\",\"https://nmr-prediction.service.zakodium.com/v1/predict/carbon\");async function Ye(e,n,t){let{cache:s,predictorOptions:i}=t;if(typeof s==\"function\"){let a=await s(e);if(a)return a}let o=await n(e,i);return typeof s==\"function\"&&await s(e,o),o}async function Yn(e,n={}){let{predictor:t=qn,predictorOptions:s={},cache:i}=n;return e.molecule.getAllAtoms()===0?{nucleus:\"13C\",joinedSignals:[],signals:[],ranges:[]}:Ye(e,t,{cache:i,predictorOptions:s})}async function Wn(e,n){let{minLength:t=2,maxLength:s=3,joinDistance:i}=n;return ce(e,{...n,from:\"H\",to:\"C\",minLength:t,maxLength:s,joinDistance:i})}async function Zn(e,n){let{minLength:t=1,maxLength:s=1,joinDistance:i}=n;return ce(e,{...n,from:\"H\",to:\"C\",minLength:t,maxLength:s,joinDistance:i})}async function Un(e,n={}){let{predictor:t=Xn,cache:s,predictorOptions:i={}}=n;return e.molecule.getAllAtoms()===0?{nucleus:\"1H\",joinedSignals:[],signals:[],ranges:[]}:Ye(e,t,{cache:s,predictorOptions:i})}function wt(e,n){if(e in n)return!0;let t=\"hsqc\"in n||\"hmbc\"in n;return e===\"C\"?t:e===\"H\"?t||\"cosy\"in n:!1}var wl={cosy:{predictor:Bn,required:[\"H\"],message:\"Proton prediction is missing so COSY could not be generated.\"},hsqc:{predictor:Zn,required:[\"H\",\"C\"],message:\"Carbon and / or proton prediction is missing so HSQC could not be generated.\"},hmbc:{predictor:Wn,required:[\"H\",\"C\"],message:\"Carbon and / or proton prediction is missing so HMBC could not be generated.\"}};async function V(e,n={}){let{logger:t,joinDistance:s={H:.05,C:.5},predictOptions:i={H:{},C:{},hsqc:{},hmbc:{},cosy:{}}}=n,o=new Nl(e),a=wt(\"H\",i)?await Un(o,{...i?.H}):void 0,r=wt(\"C\",i)?await Yn(o,i?.C):void 0,m={},l=o.diaIDs,c={};Vn(a,l)&&(c.H=a,\"H\"in i&&(m.proton=a)),Vn(r,l)&&(c.C=r,\"C\"in i&&(m.carbon=r));let f=[\"cosy\",\"hsqc\",\"hmbc\"].filter(d=>d in i).map(async d=>{let{predictor:p,required:C,message:y}=wl[d];if(C.every(b=>b in c)){let b=await p(o,{predictions:c,...i[d],joinDistance:s});return{key:d,result:b}}else t&&t.warn(y);return{key:d,result:void 0}}),g=await Promise.all(f);for(let{key:d,result:p}of g)p&&(m[d]=p);return{diaIDs:o.diaIDs,hoses:o.hoseCodes,distanceMatrix:o.distanceMatrix,moleculeWithHydrogens:o.moleculeWithH,groupedDiaIDs:o.getGroupedDiastereotopicAtomIDs()||[],molfile:o.toMolfile(),molfileWithH:o.toMolfileWithH(),spectra:m}}function Vn(e,n=[]){if(!e||e.ranges.length===0)return!1;let{signals:t}=e;for(let s of t)if(!s.diaIDs?.every(o=>n.includes(o)))return!1;return!0}import{xIsMonotonic as om,xRescale as am,xSequentialFillFromTo as rm}from\"ml-spectra-processing\";var ne=[{label:\"singlet\",value:\"s\",multiplicity:1,names:[]},{label:\"doublet\",value:\"d\",multiplicity:2,names:[]},{label:\"triplet\",value:\"t\",multiplicity:3,names:[]},{label:\"quartet\",value:\"q\",multiplicity:4,names:[]},{label:\"quintet\",value:\"i\",acs:\"quint\",multiplicity:5,names:[\"quint\",\"qui\",\"qnt\",\"pentet\",\"pnt\",\"pent\"]},{label:\"sextet\",value:\"h\",multiplicity:6,names:[\"x\",\"sxt\",\"sext\",\"hexuplet\",\"hex\"]},{label:\"septet\",value:\"p\",acs:\"sept\",multiplicity:7,names:[\"sept\",\"spt\",\"heptet\",\"hpt\",\"hept\"]},{label:\"octet\",value:\"o\",multiplicity:8,names:[\"oct\"]},{label:\"nonet\",value:\"n\",multiplicity:9,names:[\"non\"]},{label:\"multiplet\",value:\"m\",multiplicity:null,names:[\"massive\"]}];var It={};for(let{value:e,multiplicity:n,names:t}of ne){n&&(It[e]=n-1);for(let s of t)n&&(It[s]=n-1)}var q=It;function ue(e){let n=structuredClone(e),t=e.reduce((s,i)=>{let{atoms:o=[]}=i;return Math.max(...o,s)},0)+1;for(let[s,i]of e.entries()){let{js:o=[],atoms:a=[t++]}=i,{newCouplings:r,tempSignals:m}=Il(o,a,t+e.length);m.length>0&&n.push(...m),n[s].js=r,n[s].atoms=a}return n.sort((s,i)=>s.delta-i.delta),n}function Il(e,n,t){let s=[];return{newCouplings:e.reduce((o,a)=>{let{atoms:r=[],multiplicity:m,coupling:l}=a;if(r.length===0&&l&&m){let c=[],u=q[m];for(let f=0;f<u;f++)t++,c.push({coupling:l,multiplicity:\"d\",atoms:[t]}),s.push(Tl(l,[t],n));o.push(...c)}else o.push(a);return o},[]),tempSignals:s}}function Tl(e,n,t){return{delta:1e5,atoms:n,js:[{coupling:e,atoms:t}]}}import{Matrix as Bl}from\"ml-matrix\";import{Matrix as Tt}from\"ml-matrix\";import{simpleClustering as El}from\"ml-simple-clustering\";function Y(e){let{couplingConstants:n,connectivity:t}=e,s=Tt.checkMatrix(n),i=t?Tt.checkMatrix(t):zl(s),{levels:o=Array.from({length:i.rows},()=>2),clusters:a=El(i.to2DArray(),{out:\"indexes\"})}=e;return{...e,levels:o,clusters:a,connectivity:i,couplingConstants:s}}function zl(e){let n=Tt.ones(e.rows,e.rows);for(let t=0;t<e.rows;t++)for(let s=t;s<e.columns;s++)e.get(t,s)===0&&(n.set(t,s,0),n.set(s,t,0));return n}function Ll(e){for(let n of e){if(!n.js)throw new Error(\"there is not js\");if(!n.atoms)throw new Error(\"there is not atoms\");for(let t of n.js)if(!t.atoms)throw new Error(\"there is not atoms\")}}function G(e){Ll(e);let n=e.length,t=[],s=Bl.zeros(n,n),i={};for(let o=0;o<n;o++){t.push(e[o].delta);let a=e[o].atoms[0];i[a]=o}for(let o=0;o<n;o++){let{atoms:a,js:r}=e[o],m=a[0];for(let l of r){let{coupling:c,atoms:u}=l,f=u[0];s.set(i[m],i[f],c),s.set(i[f],i[m],c)}}return Y({couplingConstants:s,chemicalShifts:t})}import{generateSpectrum as em}from\"spectrum-generator\";import Wl from\"binary-search\";import{Matrix as Zl}from\"ml-matrix\";import{SparseMatrix as We}from\"ml-sparse-matrix\";import{EVD as Xl,Matrix as Et}from\"ml-matrix\";function Gn(e,n){let t=[];for(let r=0;r<n;r++){let m=ql(r);(t[m]??=[]).push(r)}let s=Et.zeros(n,n),i=new Float64Array(n),o=[],a=0;for(let r=0;r<t.length;r++){let m=t[r];if(!m)continue;let l=m.length;if(o[r]={states:m,firstColumn:a,size:l},l===1){let d=m[0];s.set(d,a,1),i[a]=e.get(d,d),a++;continue}let c=new Et(l,l);for(let d=0;d<l;d++)for(let p=0;p<l;p++)c.set(d,p,e.get(m[d],m[p]));let u=new Xl(c,{assumeSymmetric:!0}),f=u.eigenvectorMatrix,g=u.realEigenvalues;for(let d=0;d<l;d++){for(let p=0;p<l;p++)s.set(m[p],a,f.get(p,d));i[a]=g[d],a++}}return{V:s,diagB:i,blocks:o}}function zt(e,n,t,s){let i=Et.zeros(s,s);for(let o=0;o+1<n.length;o++){let a=n[o],r=n[o+1];if(!a||!r)continue;let m=r.size,l=a.size,c=r.states,u=r.firstColumn,f=a.firstColumn,g=new Float64Array(m*m),d=new Float64Array(m*l);for(let C=0;C<m;C++){let y=c[C],b=C*l;for(let D=0;D<l;D++)d[b+D]=t.get(y,f+D);for(let D=0;D<m;D++)g[D*m+C]=e.get(y,u+D)}let p=new Float64Array(m);for(let C=0;C<l;C++){for(let y=0;y<m;y++)p[y]=d[y*l+C];for(let y=0;y<m;y++){let b=y*m,D=0;for(let h=0;h<m;h++)D+=g[b+h]*p[h];D!==0&&i.set(u+y,f+C,D)}}}return i}function ql(e){let n=0;for(;e;)e&=e-1,n++;return n}import{SparseMatrix as Yl}from\"ml-sparse-matrix\";function Jn(e,n){let t=2*e*n,s=new Yl(t,t,{initialCapacity:2*e*n});for(let i=0;i<e;i++){let o=2*i*n,a=2*i*n;for(let r=0;r<n;r++)s.set(o+n+r,a+r,1)}return s}var Bt=.01;function $n(e,n={}){let{lineWidth:t=1,maxClusterSize:s=9,frequency:i=400}=n,o=Y(e),a=o.chemicalShifts.slice();for(let l=0;l<a.length;l++)a[l]=a[l]*i;let r=o.levels,m=[];for(let l of o.clusters){let c=l.map(C=>C<0?-C-1:C),u=1,f=0,g=[],d=[];if(l.length>s){let C=0;for(;l[C++]<0;);C=l[C-1],g.push(-a[C]);for(let y=0;y<l.length;y++)if(l[y]<0){let b=o.couplingConstants.get(C,c[y])/2,D=g.length;for(let h=0;h<D;h++)g.push(g[h]+b),g[h]-=b}g.sort((y,b)=>y-b),f=g.length,u=1;for(let y=0;y<f;y++)d.push(1)}else{let C=Vl(a,o.couplingConstants,r,o.connectivity,c),y=C.rows,{V:b,diagB:D,blocks:h}=Gn(C,y),S=new We(y,y),P=l.length;u=0;for(let F=0;F<P;F++){let j={rows:2**F},k={rows:2**(P-F-1)},M=Jn(j.rows,k.rows);l[F]>=0?(S.add(M.mul(l[F]+1)),u++):S.add(M.mul(l[F]))}let H=Zl.zeros(y,y);S.forEachNonZero((F,j,k)=>{if(k>0)for(let M=0;M<b.columns;M++){let A=b.get(j,M);A!==0&&H.set(F,M,H.get(F,M)+A)}return k});let x=H.clone();S.forEachNonZero((F,j,k)=>{if(k<0)for(let M=0;M<b.columns;M++){let A=b.get(j,M);A!==0&&x.set(F,M,x.get(F,M)+A)}return k}),H=zt(b,h,H,y);let O=new We(H.to2DArray(),{threshold:Bt});x=zt(b,h,x,y);let v=new We(x.to2DArray(),{threshold:Bt});v.forEachNonZero((F,j,k)=>k),Ul(v,Bt),v.forEachNonZero((F,j,k)=>{let M=O.get(F,j);M=Math.min(Math.abs(M),Math.abs(k)),M*=M,f+=M;let A=D[F]-D[j],R=Wl(g,A,(N,Z)=>N-Z);return R<0?(g.splice(-1-R,0,A),d.splice(-1-R,0,M)):d[R]+=M,k})}let p=g.length;if(p>0){u/=f;let C=t/64,y=g[0],b=d[0],D=1;for(let h=1;h<p;h++)Math.abs(g[h]-y/D)<C?(b+=d[h],y+=g[h],D++):(m.push({x:-y/D/i,y:b*u}),y=g[h],b=d[h],D=1);m.push({x:-y/D/i,y:b*u})}}return m.filter(l=>l.x<1e3)}function Ul(e,n){e.forEachNonZero((t,s,i)=>Math.abs(i)<=n?0:i)}function Vl(e,n,t,s,i){let o=i.length,a=1;for(let C of i)a*=t[C];let r=new Array(o),m=new Array(o);for(let C=0;C<o;C++)r[C]=1<<o-1-C,m[C]=e[i[C]]*.5;let l=[],c=[],u=[],f=[],g=[];for(let C=0;C<o;C++){let y=i[C];for(let b=C+1;b<o;b++){let D=i[b];if(s.get(y,D)===1){let h=n.get(y,D);l.push(r[C]),c.push(r[b]),u.push(r[C]|r[b]),f.push(h*.25),g.push(h*.5)}}}let d=l.length,p=new We(a,a,{initialCapacity:a*(d+1)});for(let C=0;C<a;C++){let y=0;for(let b=0;b<o;b++)y+=(C&r[b])===0?m[b]:-m[b];for(let b=0;b<d;b++)(C&l[b])===0==((C&c[b])===0)?y+=f[b]:(y-=f[b],p.set(C,C^u[b],g[b]));y!==0&&p.set(C,C,y)}return p}import $l from\"binary-search\";import{EVD as _l,Matrix as Kl}from\"ml-matrix\";import{SparseMatrix as W}from\"ml-sparse-matrix\";import{SparseMatrix as Gl}from\"ml-sparse-matrix\";function _n(e){let n=(e-1)/2,t=[],s=[];for(let l=0;l<e;l++)t.push(e-1-l-n),s.push(Math.sqrt(n*(n+1)-t[l]*(t[l]+1)));let i=Lt(s,1,e,e);for(let l=0;l<e;l++)s[l]=Math.sqrt(n*(n+1)-t[l]*(t[l]-1));let o=Lt(s,-1,e,e),a=i.clone().add(o).mul(.5),r=o.clone().mul(-1).add(i).mul(-.5),m=Lt(t,0,e,e);return{x:a,y:r,z:m,m:o,p:i}}function Lt(e,n,t,s){let i=new Gl(t,s,{initialCapacity:20});for(let o=0;o<e.length;o++)o-n>=0&&o-n<t&&o<s&&i.set(o-n,o,e[o]);return i}var Jl=_n(2);function Re(e){return e===2?Jl:_n(e)}var Ze=.01;function J(e,n={}){let{lineWidth:t=1,maxClusterSize:s=9,frequency:i=400}=n,o=Y(e),a=o.chemicalShifts.slice();for(let l=0;l<a.length;l++)a[l]=a[l]*i;let r=o.levels,m=[];for(let l of o.clusters){let c=l.map(C=>C<0?-C-1:C),u=1,f=0,g=[],d=[];if(l.length>s){let C=0;for(;l[C++]<0;);C=l[C-1],g.push(-a[C]);for(let y=0;y<l.length;y++)if(l[y]<0){let b=o.couplingConstants.get(C,c[y])/2,D=g.length;for(let h=0;h<D;h++)g.push(g[h]+b),g[h]-=b}g.sort((y,b)=>y-b),f=g.length,u=1;for(let y=0;y<f;y++)d.push(1)}else{let C=Ql(a,o.couplingConstants,r,o.connectivity,c),y=C.rows,b=new _l(C),D=b.eigenvectorMatrix,h=b.realEigenvalues,S=new W(y,y),P=l.length;u=0;for(let F=0;F<P;F++){let j=Re(r[c[F]]),k=1;for(let N=0;N<F;N++)k*=r[c[N]];let M=W.eye(k);k=1;for(let N=F+1;N<P;N++)k*=r[c[N]];let A=W.eye(k),R=M.kroneckerProduct(j.m).kroneckerProduct(A);l[F]>=0?(S.add(R.mul(l[F]+1)),u++):S.add(R.mul(l[F]))}let H=Kl.zeros(y,y);S.forEachNonZero((F,j,k)=>{if(k>0)for(let M=0;M<D.columns;M++){let A=D.get(j,M);A!==0&&H.set(F,M,H.get(F,M)+A)}return k});let x=H.clone();S.forEachNonZero((F,j,k)=>{if(k<0)for(let M=0;M<D.columns;M++){let A=D.get(j,M);A!==0&&x.set(F,M,x.get(F,M)+A)}return k}),H=D.transposeMultiply(H);let O=new W(H.to2DArray(),{threshold:Ze});Kn(O,Ze),x=D.transposeMultiply(x);let v=new W(x.to2DArray(),{threshold:Ze});v.forEachNonZero((F,j,k)=>k),Kn(v,Ze),v.forEachNonZero((F,j,k)=>{let M=H.get(F,j);M=Math.min(Math.abs(M),Math.abs(k)),M*=M,f+=M;let A=h[F]-h[j],R=$l(g,A,(N,Z)=>N-Z);return R<0?(g.splice(-1-R,0,A),d.splice(-1-R,0,M)):d[R]+=M,k})}let p=g.length;if(p>0){u/=f;let C=t/64,y=g[0],b=d[0],D=1;for(let h=1;h<p;h++)Math.abs(g[h]-y/D)<C?(b+=d[h],y+=g[h],D++):(m.push({x:-y/D/i,y:b*u}),y=g[h],b=d[h],D=1);m.push({x:-y/D/i,y:b*u})}}return m.filter(l=>l.x<1e3)}function Kn(e,n){e.forEachNonZero((t,s,i)=>Math.abs(i)<=n?0:i)}function Ql(e,n,t,s,i){let o=1;for(let r of i)o*=t[r];let a=new W(o,o);for(let r=0;r<i.length;r++){let m=i[r],l=Re(t[m]),c=1;for(let p=0;p<r;p++)c*=t[i[p]];let u=W.eye(c);c=1;for(let p=r+1;p<i.length;p++)c*=t[i[p]];let f=W.eye(c),g=e[m],d=u.kroneckerProduct(l.z).kroneckerProduct(f);a.add(d.mul(g));for(let p=0;p<i.length;p++){let C=i[p];if(s.get(m,C)===1){let y=Re(t[C]),b=1;for(let P=0;P<p;P++)b*=t[i[P]];let D=W.eye(b);b=1;for(let P=p+1;P<i.length;P++)b*=t[i[P]];let h=W.eye(b),S=u.kroneckerProduct(l.x).kroneckerProduct(f).mmul(D.kroneckerProduct(y.x).kroneckerProduct(h));S.add(u.kroneckerProduct(l.y).kroneckerProduct(f).mul(-1).mmul(D.kroneckerProduct(y.y).kroneckerProduct(h))),S.add(u.kroneckerProduct(l.z).kroneckerProduct(f).mmul(D.kroneckerProduct(y.z).kroneckerProduct(h))),a.add(S.mul(n.get(m,C)/2))}}}return a}function Qn(e,n={}){let t=Y(e),{lineWidth:s=1,frequency:i=400,from:o=0,to:a=10,nbPoints:r=16*1024,noise:m,baseline:l,shape:c={kind:\"gaussian\"},isProton:u=t.levels.every(g=>g===2)}=n,f=u?$n(t,n):J(t,n);return em(f,{generator:{from:o,to:a,nbPoints:r},peakOptions:{shape:c,width:s/i},noise:m,baseline:l})}import{agnes as tm}from\"ml-hclust\";import{Matrix as nm}from\"ml-matrix\";function $(e,n={}){let t=Y(e),{chemicalShifts:s,couplingConstants:i,connectivity:o}=t,{frequency:a=400,maxClusterSize:r=9}=n,m=sm(s,i,a),l=tm(m,{method:\"single\",isDistanceMatrix:!0}),c=[],u=s.length;Xt(l,c,{maxClusterSize:r,force:!1,nSpins:u,connectivity:o});let f=im(c,r),g=f.length,d=[];for(let p=0;p<g;p++){let C=[];for(let y=0;y<u;y++){let b=f[p][y];b!==0&&C.push(b<0?-(y+1):y)}d.push(C)}return d}function Xt(e,n,t){let{maxClusterSize:s,force:i,nSpins:o,connectivity:a}=t;if(!i&&e.size<=s)n.push(es(e.indices(),o));else for(let r of e.children)if(r.size<=s){let m=es(r.indices(),o),l=0;for(let c=0;c<o;c++)if(m[c]===1){for(let u=0;u<o;u++)a.get(c,u)===1&&m[u]===0&&(m[u]=-1,l++);l++}l<=s?n.push(m):r.index<0?Xt(r,n,{maxClusterSize:s,force:!0,nSpins:o,connectivity:a}):(m[r.index]=2,n.push(m))}else Xt(r,n,{maxClusterSize:s,force:!1,nSpins:o,connectivity:a})}function sm(e,n,t){let s=n.rows,i=n.columns,o=nm.zeros(s,s);for(let a=0;a<s;a++)for(let r=a;r<i;r++){let m=n.get(a,r);if(e[a]-e[r]!==0){let l=1-Math.abs(m/((e[a]-e[r])*t));o.set(a,r,l),o.set(r,a,l)}else a===r||m!==0||(o.set(a,r,1),o.set(r,a,1))}return o.to2DArray()}function im(e,n){for(let t=e.length-1;t>=0;t--){let s=e[t],i=s.length,o=0;for(;o<i&&s[o++]!==-1;);if(!(o>=i))for(let a=e.length-1;a>=t+1;a--){let r=e[a],m=0,l=0;for(let c=0;c<i;c++)s[c]*r[c]===-1&&l++,(s[c]!==0||r[c]!==0)&&m++;if(l>0&&m<=n){for(let c=0;c<i;c++)r[c]===1?s[c]=1:r[c]===-1&&s[c]!==1&&(s[c]=-1);e.splice(a,1)}}}return e}function es(e,n){let t=new Int16Array(n);for(let s of e)t[s]=1;return t}function lm(e){for(let n of e){if(!n.js)throw new Error(\"There is not js\");if(!n.atoms)throw new Error(\"There is not atoms\");for(let t of n.js)if(!t.atoms)throw new Error(\"There is not atoms\")}}function Ue(e,n={}){let t=ue(e);lm(t);let{frequency:s=400,shape:i={kind:\"gaussian\"},from:o=0,to:a=10,lineWidth:r=1,nbPoints:m=16*1024,maxValue:l=1e8,maxClusterSize:c=9,...u}=n;if(t.length===0)return{x:rm({from:o,to:a,size:m}),y:new Float64Array(m)};let f=G(t);f.clusters=$(f,{frequency:s,maxClusterSize:c});let g=Qn(f,{frequency:s,from:o,to:a,nbPoints:m,lineWidth:r,shape:i,maxClusterSize:c,...u});return l&&om(g.y)===0&&(g.y=am(g.y,{max:l})),g}import{getGyromagneticRatio as ts}from\"gyromagnetic-ratio\";function Ne(e,n){let{nucleus:t,frequency:s}=n,i=ts(e),o=ts(t);if(!o||!i)throw new Error(`${e} or ${t} is not supported`);return s*i/o}var sC=Ne;function ns(e,n){let{nbPoints:t,lineWidth:s,frequency:i}=n,o=[];for(let a in e)if(a===\"proton\"||a===\"carbon\"){let r=e[a];if(!r)continue;o.push(mm(r,{nbPoints:t,lineWidth:s,...n[a],experiment:a,frequency:i}))}return o}function mm(e,n){let{frequency:t=400,experiment:s}=n,i=Ne(e.nucleus,{nucleus:\"1H\",frequency:t}),{x:o,y:a}=Ue(e.signals,{...n,frequency:i});return{data:{x:o,re:a,im:null},info:{nucleus:e.nucleus,dimension:1,isComplex:!1,originFrequency:i,baseFrequency:i,pulseSequence:\"prediction\",experiment:s,isFt:!0},ranges:{values:e.ranges}}}import{xEnsureFloat64 as cm}from\"ml-spectra-processing\";import{generateSpectrum2D as um}from\"spectrum-generator\";function se(e){return typeof e!=\"object\"?{x:e,y:e}:{...e}}function ss(e,n={}){let{from:t=-1,to:s=12,nbPoints:i=512,factor:o=3}=n,{width:a=.02}=n,r={x:[],y:[],z:[]};for(let c of e)r.x.push(c.x.delta),r.y.push(c.y.delta),r.z.push(1e6);let{z:m,...l}=um(fm(r),{generator:{from:se(t),to:se(s),nbPoints:se(i)},peaks:{width:se(a),factor:o}});return{z:m.map(cm),...l}}function fm(e){let n=structuredClone(e);for(let t=0;t<n.x.length;t++)for(let s=t+1;s<n.x.length;s++)n.x[t]===n.x[s]&&n.y[t]===n.y[s]&&(n.z[t]+=n.z[s],n.x.splice(s,1),n.y.splice(s,1),n.z.splice(s,1),s--);return n}function is(e,n){let t=Ne(e[1],{nucleus:e[0],frequency:n});return[n,t]}function as(e,n){let t=[];for(let s in e){if(!dm(s)||!e[s])continue;let i=e[s];t.push(gm(i,{experiment:s,...n}))}return t}function gm(e,n){let{signals:t,zones:s,nuclei:i}=e,{experiment:o,frequency:a,width:r=pm(i),nbPoints:m,fromTo:l}=n,c=is(i,a),u=l[os(i[0])],f=l[os(i[1])],g=Cm(r,c),d=ss(t,{from:{x:u.from,y:f.from},to:{x:u.to,y:f.to},nbPoints:m,factor:3,width:g}),p=c.join(\",\");return{data:{rr:{...d,noise:.01}},info:{nucleus:i,originFrequency:p,baseFrequency:p,pulseSequence:o,experiment:\"2d\"},zones:{values:s}}}function dm(e){return[\"cosy\",\"hsqc\",\"hmbc\"].includes(e)}function pm(e){return{x:8,y:e[0]===e[1]?8:24}}function Cm(e,n){let t=se(e);return{x:t.x/n[0],y:t.y/n[1]}}function os(e){return e.includes(\"H\")?\"proton\":\"carbon\"}async function HC(e,n={}){let{logger:t,simulation:s={oneD:{},twoD:{}},prediction:i={}}=n,{spectra:o}=await V(e,{logger:t,...i});!(\"frequency\"in s)&&t&&t.warn(\"Frequency is settled to 400 MHz\");let{frequency:a=400,oneD:r,twoD:m}=s,l={proton:{from:-1,to:12},carbon:{from:-10,to:220},nbPoints:65536,lineWidth:1,...r},c={frequency:a,fromTo:{proton:l.proton,carbon:l.carbon},nbPoints:{x:1024,y:1024},...m},u=ns(o,{frequency:a,...l}),f=as(o,c);return{spectra:[...u,...f],molecules:[{molfile:e.toMolfile()}]}}import{TreeSet as Dm}from\"ml-tree-set\";function rs(e){let{restrictionByCS:n,predictions:t,targets:s,useIntegrationRestriction:i}=e,{tolerance:o,chemicalShiftRestriction:a}=n,r=Math.abs(o),m={};for(let l in t){let c=t[l];if(c.error&&(c.error=Math.abs(c.error)),m[l]=[],s)for(let u in s){let f=s[u];if(i&&f.integration>0?c.nbAtoms-f.integration<1:!0)if(!a||c.delta===void 0)m[l].push(u);else{let d=r;c.error&&(d=Math.max(d,c.error));let p=f.signals&&f.signals.length>0?f.signals[0].delta:(f.to+f.from)/2;Math.abs(c.delta-p-r)<4*r&&m[l].push(u)}}m[l].push(\"*\")}return m}function ls(e,n){let{useIntegrationRestriction:t,diaIDPeerPossibleAssignment:s,nbAllowedUnAssigned:i,restrictionByCS:o,predictions:a,targets:r}=n,{useChemicalShiftScore:m}=o,l=0,c=e.length,u={},f=[];for(let C=0;C<e.length;C++){let y=e[C];y&&y!==\"*\"&&(f.push(C),u[y]||(u[y]=[]),u[y].push(s[C])),y===\"*\"&&l++}if(l>i)return 0;let g=Object.keys(u);if(g.length===0)return 0;if(t)for(let C of g){let y=u[C],b=0;for(let h of y){let S=a[h];b+=S.allHydrogens}let{integration:D}=r[C];if(b-D>=.5)return 0}let d=m?ym(e,n):1,p=l/c;return d-p}function ym(e,n){let{tolerance:t}=n.restrictionByCS,{diaIDPeerPossibleAssignment:s,predictions:i,targets:o}=n,a=0,r=0;for(let m=0;m<e.length;m++){let l=e[m];if(l&&l!==\"*\"){r++;let c=s[m],u=i[c],f=o[l],g=t;if(u.error&&(g=Math.max(u.error,t)),u.delta===void 0)a+=1;else{let d=f.signals&&f.signals.length>0?f.signals[0].delta:(f.to+f.from)/2,p=Math.abs(u.delta-d);p<g?a+=1:(p=Math.abs(p-g),a+=-.25/g*p+1)}}}return r>0&&(a/=r),a}function qt(e,n,t,s){let{nSources:i,restrictionByCS:o,timeout:a,timeStart:r,maxSolutions:m,targets:l,predictions:c,lowerBoundScore:u,nbAllowedUnAssigned:f,possibleAssignmentMap:g,useIntegrationRestriction:d,diaIDPeerPossibleAssignment:p}=e;if(Date.now()-r>a)return;let C=p[n],y=g[C];for(let b of y){t[n]=b;let D=ls(t,{useIntegrationRestriction:d,diaIDPeerPossibleAssignment:p,nbAllowedUnAssigned:f,restrictionByCS:o,predictions:c,targets:l});if(D===0){b===\"*\"&&(t[n]=null);continue}n===i-1&&D>=u?bm(s,{predictions:c,partial:t,score:D,maxSolutions:m}):n<i-1&&qt({nSources:i,restrictionByCS:o,timeout:a,timeStart:r,maxSolutions:m,targets:l,predictions:c,lowerBoundScore:u,nbAllowedUnAssigned:f,possibleAssignmentMap:g,useIntegrationRestriction:d,diaIDPeerPossibleAssignment:p},n+1,structuredClone(t),s)}}function bm(e,n){let{score:t,maxSolutions:s,partial:i,predictions:o}=n;e.nSolutions++;let a={assignment:structuredClone(i),score:t/hm(i,o)};if(e.nSolutions>=s){let r=e.solutions.last();a.score>r.score&&(e.solutions.pollLast(),e.solutions.add(a))}else e.solutions.add(a),e.nSolutions++}function hm(e,n){let t=Object.keys(n).length,s=new Set(e),i=t-s.size;return i>0?2*i:1}var xm=(e,n)=>n.score-e.score;async function Ve(e){let{restrictionByCS:n={},useIntegrationRestriction:t,timeout:s,minScore:i,nbAllowedUnAssigned:o,maxSolutions:a,targets:r,joinedSignals:m}=e,{tolerance:l=1,useChemicalShiftScore:c=!1,chemicalShiftRestriction:u=!0}=n,f=m.length,g={};for(let h of m){let S=h.diaIDs[0],P=h.atoms[0];g[S]={...h,diaIDIndex:P,allHydrogens:h.nbAtoms}}let d=rs({restrictionByCS:{tolerance:l,useChemicalShiftScore:c,chemicalShiftRestriction:u},useIntegrationRestriction:t,predictions:g,targets:r}),p=Object.keys(d),C=new Array(f).fill(null),y={solutions:new Dm(xm),nSolutions:0},b=Date.now();qt({nSources:f,restrictionByCS:{tolerance:l,useChemicalShiftScore:c,chemicalShiftRestriction:u},timeout:s,timeStart:b,targets:r,predictions:g,maxSolutions:a,lowerBoundScore:i,nbAllowedUnAssigned:o,possibleAssignmentMap:d,diaIDPeerPossibleAssignment:p,useIntegrationRestriction:t},0,C,y);let D=[];for(let h of y.solutions.elements){let{assignment:S,score:P}=h,H=structuredClone(r);for(let x=0;x<S.length;x++){let O=S[x];if(typeof O!=\"string\")continue;let v=H[O];(!v.signals||v.signals.length===0)&&(v.signals=[{delta:(v.to+v.from)/2}]);let F=v.signals[0];F.diaIDs||(F.diaIDs=[]),O&&F.diaIDs.push(p[x])}D.push({score:P,assignment:Object.values(H)})}return D}function Hm(e){for(let n of e){if(!n.atoms)throw new Error(\"signal has not atoms property\");if(!n.diaIDs)throw new Error(\"signal has not diaIDs property\");if(!n.nbAtoms)throw new Error(\"signal has not nbAtoms property\")}}function Om(e){for(let n of e)if(n.integration===void 0)throw new Error(\"ranges has not integration property\")}async function BC(e,n,t={}){let{restrictionByCS:s,minScore:i=1,maxSolutions:o=10,nbAllowedUnAssigned:a=0,timeout:r=6e3,predictionOptions:m={}}=t;if(!n)throw new Error(\"It is needed a OCL molecule instance to assign\");let{spectra:l}=await V(n,{predictOptions:{H:m}}),c=l.proton?.joinedSignals||[];Om(e),Hm(c);let u={};for(let f of e){let{id:g=crypto.randomUUID()}=f;u[g]=structuredClone(f)}return Ve({restrictionByCS:s,timeout:r,minScore:i,nbAllowedUnAssigned:a,maxSolutions:o,targets:u,joinedSignals:c,useIntegrationRestriction:!0})}function Sm(e){for(let n of e){if(!n.atoms)throw new Error(\"signal has not atoms property\");if(!n.diaIDs)throw new Error(\"signal has not diaIDs property\");if(!n.nbAtoms)throw new Error(\"signal has not nbAtoms property\")}}function vm(e){let n=structuredClone(e);for(let t of n)t.integration===void 0&&(t.integration=0);return n}async function YC(e,n,t={}){let{restrictionByCS:s={},minScore:i=1,maxSolutions:o=10,nbAllowedUnAssigned:a=0,timeout:r=6e3,predictionOptions:m={}}=t,{spectra:l}=await V(n,{predictOptions:{C:m}}),c=l.carbon?.joinedSignals||[];Sm(c);let u=vm(e),f={};for(let g of u){let{id:d=crypto.randomUUID()}=g;f[d]=structuredClone(g)}return Ve({restrictionByCS:s,timeout:r,minScore:i,nbAllowedUnAssigned:a,maxSolutions:o,targets:f,joinedSignals:c,useIntegrationRestriction:!1})}import{ensureHeterotopicChiralBonds as Jm}from\"openchemlib-utils\";import{TreeSet as Ys}from\"ml-tree-set\";import{getConnectivityMatrix as Bm}from\"openchemlib-utils\";var zs={};qe(zs,{addLink:()=>_e,buildCorrelation:()=>ie,buildCorrelationData:()=>Jt,buildLink:()=>Je,buildState:()=>Yt,buildValues:()=>Gt,checkMatch:()=>I,findLinkedCorrelationsBySignalID:()=>$e,findLinksBySignalID:()=>$t,getAtomCounts:()=>we,getAtomTypeFromNucleus:()=>U,getCorrelationDelta:()=>T,getCorrelationIndex:()=>_,getCorrelationsByAtomType:()=>w,getLabel:()=>_t,getLabels:()=>km,getLinkDelta:()=>Zt,getLinkDim:()=>Wt,isEditedHSQC:()=>Ut,removeLink:()=>K,setCorrelation:()=>Mm,setPathLength:()=>Am});function we(e){let n=e?e.match(/[A-Z][a-z]{0,1}/g):[],t={};if(n)for(let s of n){let o=new RegExp(String.raw`(${s}\\d+)`,\"g\").exec(e),a=1;o&&(a=Number(o[0].split(s)[1])),t[s]=a}return t}function _(e,n){return e.findIndex(t=>t.id===n.id)}function w(e,n){return e?e.filter(t=>t.atomType===n):[]}function Yt(e,n){let t={},s=we(n),i=new Set(e.map(o=>o.atomType));for(let o of i){let a=w(e,o);if(a.some(r=>!r.pseudo)){let r={},m=s[o],l=a.reduce((u,f)=>f.pseudo?u:u+f.equivalence,0);if(o===\"H\"){for(let d of e)d.pseudo&&d.atomType!==\"H\"&&d.protonsCount.length===1&&!d.link.some(p=>p.experimentType===\"hsqc\")&&(l+=d.protonsCount[0]);let u=a.reduce((d,p)=>p.pseudo?d+1:d,0),f=a.flatMap(d=>Object.keys(d.attachment).length===0?_(e,d):[]);f.length>0&&(r.notAttached=f),l-=f.length-u,l<0&&(l=0);let g=a.flatMap(d=>Object.keys(d.attachment).length>1||Object.keys(d.attachment).some(p=>d.attachment[p].length>1)?_(e,d):[]);g.length>0&&(r.ambiguousAttachment=g)}m!==void 0&&a.some((f,g)=>!f.pseudo&&f.atomType===o&&g>=m)&&(r.outOfLimit=!0);let c=m===void 0?void 0:l===m;c===!1&&(r.incomplete=!0),t[o]={current:l,total:m,complete:c,error:r}}}return t}function I(e,n,t){return e-t<=n&&n<=e+t}function Wt(e){return e.experimentType===\"1d\"?1:2}function Zt(e){if(!e.pseudo)return Wt(e)===1?e.signal.delta:e.axis===\"x\"?e.signal.x.delta:e.signal.y.delta}function T(e){if(e.link.length>0)return Zt(e.link[0])}function Ge(e,n,t,s){for(let i=0;i<e.length;i++){let o=e[i];if(o.edited.protonsCount)continue;let a=T(o),r=[-1,-1];for(let m=0;m<n.length;m++)if(a!==void 0&&I(a,n[m].delta,s)){r[0]=m;break}for(let m=0;m<t.length;m++)if(a!==void 0&&I(a,t[m].delta,s)){r[1]=m;break}if(r[0]>=0){o.protonsCount=[1];continue}r[1]>=0?t[r[1]].sign===1?n.length>0?o.protonsCount=[3]:o.protonsCount=[1,3]:o.protonsCount=[2]:t.length>0?o.protonsCount=[0]:o.protonsCount=[]}return e}function ms(e,n,t,s){let i=w(e,s).filter(r=>!r.pseudo),o=(n[90]??[]).filter(r=>r.atomType===s).map(r=>r.signal),a=(n[135]??[]).filter(r=>r.atomType===s).map(r=>r.signal);return Ge(i,o,a,t[s]),e}function cs(e,n,t,s){let i=e.filter(a=>!a.pseudo&&a.atomType===s),o=(n.hsqc??[]).filter(a=>a.atomType[1]===s&&a.signal.sign!==0).map(a=>({delta:a.signal.y.delta,sign:a.signal.sign}));return Ge(i,[],o,t[s]),e}function us(e,n,t,s){let i=[];for(let o of e)!o.pseudo&&o.atomType!==\"H\"&&!i.includes(o.atomType)&&(i.push(o.atomType),Object.keys(n).length>0?ms(e,n,s,o.atomType):cs(e,t,s,o.atomType));return e}function fs(e){if(!e)return{};let n={};for(let t of e){if(t.info.isFid)continue;n[`${t.info.dimension}D`]||(n[`${t.info.dimension}D`]={});let s=t.info.experiment;s&&(n[`${t.info.dimension}D`][s]||(n[`${t.info.dimension}D`][s]=[]),n[`${t.info.dimension}D`][s].push(t))}return n}function U(e){return e.length>0?e.split(/\\d+/,2)[1]:\"\"}function fe(e,n,t,s,i,o){let a=(e[t]?.[s]??[]).filter(r=>{let l=((t===\"1D\"?r.ranges:r.zones)?.values??[]).length>0;return i?U(r.info.nucleus)===o&&l:l});a.length>0&&(n[o]=a)}function gs(e){let n={};for(let t of(e[\"1D\"]?.[\"1d\"]??[]).map(s=>U(s.info.nucleus)))fe(e,n,\"1D\",\"1d\",!0,t);return n}function ds(e){let n={};for(let t of Object.keys(e[\"1D\"]??{}).filter(s=>s!==\"1d\"))fe(e,n,\"1D\",t,!1,t);return n}function ps(e){let n={};for(let t of Object.keys(e[\"2D\"]??{}))fe(e,n,\"2D\",t,!1,t);return n}var ge=[\"signal\"];function Cs(e){let n={};for(let t in e){let s=[],i=e[t]||[];if(i.length===0)continue;let a=i[0];for(let r of a.ranges.values)for(let m of r.signals)!m.kind||!ge.includes(m.kind)||Pm(m,s)||s.push({experimentType:\"1d\",experimentID:a.id,integration:m.integration||r.integration,atomType:t,signal:{...m}});n[t]=s}return n}function Pm(e,n){for(let t of n)if(I(t.signal.delta,e.delta,0))return!0;return!1}function de(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t]!==n[t])return!1;return!0}function Ut(e){return e.info.pulseSequence?.includes(\"hsqced\")||!1}function ys(e){let n={};for(let t of Object.keys(e)){let s=[],i=[],o=[];for(let[a,r]of e[t].entries()){let m=r;o.some(l=>de(l,m.info.nucleus))||(o.push(m.info.nucleus),i.push(a))}for(let a of i){let r=e[t][a],m=r.info.nucleus.map(c=>U(c)),l=r.zones.values.flatMap(c=>c.signals.filter(u=>u.kind&&ge.includes(u.kind)));for(let c of l)s.some(u=>I(u.signal.x.delta,c.x.delta,0)&&I(u.signal.y.delta,c.y.delta,0))||s.push({experimentType:t,experimentID:r.id,atomType:m,signal:{...structuredClone(c),sign:Ut(r)&&c.peaks?c.peaks[0].z>=0?1:-1:0}})}n[t]=s}return n}function bs(e){let n={};for(let t of Object.keys(e).filter(s=>s===\"dept\"))for(let s of e[t]){let i=s,o=[],a=i.info.pulseSequence?.match(/\\d/g);if(a){let r=a.reduce((c,u)=>c+u),m=U(i.info.nucleus),l=i.ranges.values.flatMap(c=>c.signals.filter(u=>u.kind&&ge.includes(u.kind)).map(u=>({...u,sign:c.absolute>0?1:-1})));for(let c of l)o.some(u=>I(u.signal.delta,c.delta,0))||o.push({experimentType:t,experimentID:i.id,mode:r,atomType:m,signal:structuredClone(c)});n[r]=o}}return n}function hs(e){let n=fs(e),t=gs(n),s=ds(n),i=ps(n),o=Cs(t),a=ys(i),r=bs(s);return{signals1D:o,signals2D:a,signalsDEPT:r}}function Je(e){return{id:e.id||crypto.randomUUID(),experimentType:e.experimentType,experimentID:e.experimentID,atomType:e.atomType,signal:e.signal,axis:e.axis,match:e.match||[],experimentLabel:e.experimentLabel||\"\",pseudo:e.pseudo||!1,edited:e.edited||{}}}function $e(e,n){return e.filter(t=>t.link.some(s=>s.signal.id===n))}function _e(e,n){return e.link.push(n),e}function ie(e){return{id:e.id||crypto.randomUUID(),atomType:e.atomType,label:e.label||{},link:e.link||[],equivalence:e.equivalence||1,attachment:e.attachment||{},protonsCount:e.protonsCount||[],hybridization:e.hybridization||[],pseudo:e.pseudo||!1,edited:e.edited||{}}}function Ds(e,n){return e.link.some(t=>t.experimentType===n.experimentType&&t.experimentID===n.experimentID&&de(t.atomType,n.atomType)&&t.signal.id===n.signal.id&&t.axis===n.axis)}function oe(e){return e.link.length>0}function Vt(e,n,t,s){if(e.length===0){let i=ie({atomType:n});_e(i,t);let o=s.findIndex(a=>a.atomType===n&&a.pseudo&&!oe(a));o!==-1?s[o]=i:s.push(i)}else Ds(s[e[0]],t)||_e(s[e[0]],t)}function xs(e,n,t,s){e=e.filter(i=>i.link.length>0||i.pseudo);for(let i of Object.keys(n))for(let o of n[i])if($e(e,o.signal.id||\"\").length===0){let r=e.map((l,c)=>{let u=T(l);return!l.pseudo&&l.atomType===i&&u!==void 0&&I(u,o.signal.delta,s[i])?c:-1}).filter(l=>l>=0).filter((l,c,u)=>u.indexOf(l)===c),m=Je({experimentType:o.experimentType,experimentID:o.experimentID,signal:o.signal,atomType:[i]});Vt(r,i,m,e)}for(let i of Object.keys(t))for(let o of t[i])if($e(e,o.signal.id||\"\").length===0)for(let[r,m]of o.atomType.entries()){let l=r===0?\"x\":\"y\",c=e.map((f,g)=>{let d=T(f);return!f.pseudo&&f.atomType===m&&d!==void 0&&I(d,o.signal[l].delta,s[m])?g:-1}).filter(f=>f>=0).filter((f,g,d)=>d.indexOf(f)===g),u=Je({experimentType:o.experimentType,experimentID:o.experimentID,signal:o.signal,axis:l,atomType:o.atomType});Vt(c,m,u,e)}return e}function Hs(e,n){for(let t in n){let s=w(e,t).reduce((i,o)=>i+o.equivalence,0);for(let i=s;i<n[t];i++)e.push(ie({atomType:t,pseudo:!0}))}return e}function K(e,n){return e.link=e.link.filter(t=>t.id!==n),e}function Os(e,n){let t=e.match.indexOf(n);return t!==-1&&e.match.splice(t,1),e}function Ss(e,n){for(let t in n){let s=w(e,t);if(s.length>n[t]){let i=s.filter(o=>o.pseudo&&o.equivalence===1&&!oe(o));for(let o=s.length-1;o>=n[t]&&i.length!==0;o--){let a=i.pop();a&&e.splice(e.indexOf(a),1)}}}for(let t of e){if(!t.pseudo||t.equivalence>1||oe(t))continue;let s=[],i=_(e,t);for(let o of t.link){for(let a of o.match)e[a]?.link.some(r=>r.match.includes(i))||Os(o,a);o.match.length===0&&s.push(o)}for(let o of s)K(t,o.id);!t.edited.protonsCount&&!t.link.some(o=>o.experimentType===\"hsqc\")&&(t.protonsCount=[])}return Object.keys(n).length>0?e.filter(t=>Object.keys(n).includes(t.atomType)):e}function vs(e,n){for(let t in n){let s=w(e,t),i=s.filter(r=>!r.pseudo||r.equivalence>1||oe(r)),o=i.reduce((r,m)=>r+(m.equivalence-1),0),a=s.filter(r=>r.pseudo&&!i.some(m=>m.id===r.id));for(let r=0;r<s.length-(n[t]-o)&&a.length!==0;r++){let m=a.pop();m&&e.splice(e.indexOf(m),1)}}return e}function Ps(e,n){let t=we(n);return Object.keys(t).length===0&&(e=e.filter(s=>!s.pseudo)),e=Hs(e,t),e=vs(e,t),e=Ss(e,t),e}function Fs(e,n,t){let s=e.filter(o=>!o.pseudo),i=s.slice();for(let o of s)for(let a of o.link)if(a.experimentType===\"1d\")if((n[a.atomType[0]]??[]).some(r=>r.signal.id===a.signal.id)){let r=i.indexOf(o);r!==-1&&i.splice(r,1)}else a.pseudo||K(o,a.id);else if((t[a.experimentType]??[]).some(r=>r.signal.id===a.signal.id)){let r=i.indexOf(o);r!==-1&&i.splice(r,1)}else a.pseudo||K(o,a.id);for(let o of i){let a=e.indexOf(o);a!==-1&&e.splice(a,1)}return e}function Ke(e,n){return e.attachment[n]!==void 0&&e.attachment[n].length>0}function js(e,n){return Ke(e,n)||(e.attachment[n]=[]),e}function Ms(e,n,t){return js(e,n),e.attachment[n].includes(t)||e.attachment[n].push(t),e}function ks(e){return e.attachment={},e}function As(e){for(let n of e){ks(n);let t=n.link.filter(s=>s.experimentType===\"hsqc\"||s.experimentType===\"hmqc\");for(let s of t){let i=s.atomType[s.axis===\"x\"?1:0];for(let o of s.match)Ms(n,i,o)}}for(let n of e)n.atomType===\"H\"&&(n.equivalence=0);for(let n of e)if(n.atomType!==\"H\"&&n.protonsCount.length===1&&Ke(n,\"H\")){let{attachment:t,equivalence:s,protonsCount:i}=n,o=1;i[0]===3?o=3:i[0]===2&&(o=2);let a=s*o/t.H.length;for(let r of t.H)e[r].equivalence+=a}for(let n of e)n.atomType===\"H\"&&n.equivalence===0&&(n.equivalence=1);return e}function Rs(e){let n={};for(let t of e)(n[t.atomType]??!1)||(n[t.atomType]=0),n[t.atomType]++,t.label.origin=`${t.atomType}${n[t.atomType]}`;return e}function Ns(e,n){return e.match.includes(n)||e.match.push(n),e}function ws(e){return e.match=[],e}function Is(e){for(let n of e)for(let t of n.link){ws(t);let s=t.axis===\"x\"?t.atomType[1]:t.atomType[0];for(let i of w(e,s))if(n.id!==i.id){let o=_(e,i);for(let a of i.link)a.experimentType===t.experimentType&&a.experimentID===t.experimentID&&de(a.atomType,t.atomType)&&a.signal.id===t.signal.id&&a.axis!==t.axis&&Ns(t,o)}}for(let n of e){let t=n.link.filter(s=>s.match.length===0&&s.experimentType!==\"1d\"&&!s.edited?.moved);for(let s of t)K(n,s.id)}return e}function Ts(e){let n=[],t=e.map(s=>s.atomType).filter((s,i,o)=>o.indexOf(s)===i);t.sort(Fm);for(let s of t){let i=w(e,s);i.sort(jm),n=n.concat(i)}return n}function Fm(e,n){return e===\"C\"?-1:n===\"C\"?1:e===\"H\"?-1:n===\"H\"?1:e<n?-1:e>n?1:0}function jm(e,n){if(!e.pseudo&&!n.pseudo&&e.link.length>0&&n.link.length>0){let t=T(e),s=T(n);if(t!==void 0&&s!==void 0){if(t<s)return-1;if(t>s)return 1}}return!e.pseudo&&n.pseudo?-1:e.pseudo&&!n.pseudo?1:e.label.origin<n.label.origin?-1:e.label.origin>n.label.origin?1:0}function Gt(e,n){let{tolerance:t={},mf:s=\"\",values:i=[],skipDataUpdate:o=!1}=n,a=hs(e),r=i?i.slice():[];return o?r=r.filter(m=>m.link.length>0||m.pseudo):(r=Fs(r,a.signals1D,a.signals2D),r=xs(r,a.signals1D,a.signals2D,t)),r=us(r,a.signalsDEPT,a.signals2D,t),r=Ts(r),Is(r),As(r),r=Ps(r,s),Rs(r),r}function Jt(e,n){let t=e?Gt(e,n):[];return delete n.values,delete n.skipDataUpdate,{values:t,options:n,state:Yt(t,n.mf||\"\")}}function Mm(e,n,t){let s=e.values.slice(),i=s.findIndex(o=>o.id===n);return i!==-1?s[i]=ie({...t}):s.push(t),{values:s,state:e.state,options:e.options}}function $t(e,n){let t=[];for(let s of e)t=t.concat(s.link.filter(i=>i.signal.id===n));return t}function _t(e,n){let t=Object.keys(n.attachment).flatMap(i=>n.attachment[i].map(o=>e[o]?.label?n.label[e[o].label.origin]:\"\").filter(o=>o&&o.length>0)).filter((i,o,a)=>a.indexOf(i)===o);t.sort((i,o)=>Number(i.split(/[a-z]+/i,2)[1])-Number(o.split(/[a-z]+/i,2)[1])<0||Number(i.split(/[a-z]+/i,2)[1])-Number(o.split(/[a-z]+/i,2)[1])===0&&i.split(/\\d+/,2)[1]<o.split(/\\d+/,2)[1]?-1:1);let s=t.join(\"/\");return s.length>0?s:n.label.origin}function Es(e){return e.sort((n,t)=>Number(n.split(/[a-z]+/i,2)[1])-Number(t.split(/[a-z]+/i,2)[1])<0||Number(n.split(/[a-z]+/i,2)[1])-Number(t.split(/[a-z]+/i,2)[1])===0&&n.split(/\\d+/,2)[1]<t.split(/\\d+/,2)[1]?-1:1),e}function km(e,n,t){let s=n.link.filter(i=>i.experimentType===t).flatMap(i=>i.match.flatMap(o=>{let a=e[o];return _t(e,a)})).filter((i,o,a)=>i.length>0&&a.indexOf(i)===o);return Es(s)}function Am(e,n,t){let s=$t(e,n);for(let i of s){let o=i.signal;t?o.j?o.j.pathLength=t:o.j={pathLength:t}:delete o.j?.pathLength}return e}function Bs(e,n){let{restrictionByCS:t,predictions:s,targets:i}=n,{tolerance:o,chemicalShiftRestriction:a}=t,r=Object.keys(s);for(let m of r){let l=o[m],c=s[m],u=i[m];e[m]||(e[m]={});for(let f in c){let g=c[f];if(e[m][f]=[],u)for(let d in u){let p=u[d],{integration:C,protonsCount:y}=p;if(C?m===\"H\"?g.nbAtoms-C<1:y.length>0?y.includes(g.protonsCount):!0:!0)if(!a||g.delta===void 0)e[m][f].push(d);else{let D=T(p);if(D===void 0)continue;Math.abs(g.delta-D-l)<4*l&&e[m][f].push(d)}}e[m][f].push(\"*\")}}return e}function Rm(e,n,t){let s=e[0],{H:i=[]}=n[s].attachment,o=[{targetIDs:[s],attachments:new Set(i)}];for(let a=1;a<e.length;a++){let r=e[a],m=n[r],{H:l=[]}=m.attachment,c=!0;for(let u of o)if(l.some(g=>u.attachments.has(g))){c=!1,u.targetIDs.push(r);for(let g of l)u.attachments.add(g);break}c&&o.push({targetIDs:[r],attachments:new Set(l)})}return o.map(a=>({atomType:\"C\",targetIDs:a.targetIDs,integration:t?Array.from(a.attachments).reduce((r,m)=>t[m].integration+r,0):0}))}var Ls=Rm;function Xs(e,n){let{diaIDPeerPossibleAssignment:t,infoByAtomTypes:s,restrictionByCS:i,predictions:o,targets:a,correlations:r}=n,{tolerance:m,useChemicalShiftScore:l}=i,c=0,u=0,f={},g={},d=Object.keys(e);for(let H of d){let x=0,{nbAllowedUnAssigned:O}=s[H],v={},F=e[H]||[];f[H]=v,g[H]=[],u+=F.length;for(let j=0;j<F.length;j++){let k=F[j];k&&k!==\"*\"&&(g[H].push(j),v[k]||(v[k]=[]),v[k].push(t[H][j])),k===\"*\"&&x++}if(x>O)return 0;c+=x}let p={};for(let H in f)p[H]=Object.keys(f[H]);if(Object.values(p).every(H=>H.length===0))return 0;let y=wm.bind({},o),b=[];for(let H in e)if(H===\"C\"&&p[H].length>0)b.push(...Ls(p[H],a[H],r));else for(let x of p[H])b.push({atomType:H,targetIDs:[x],integration:a.H[x].integration});for(let H of b){let{integration:x,atomType:O,targetIDs:v}=H;if(x===void 0||Number.isNaN(x))continue;let F=0;for(let j of v){let k=f[O][j];for(let M of k){let{prediction:A,atomType:R}=y(M);O===R&&(F+=A.allHydrogens)}}if(F-x>=5)return 0}let D=1,h=1;if(l){h=0,D=0;for(let H of Object.keys(e)){let x=e[H],O=a[H];for(let v=0;v<x.length;v++){let F=x[v];if(F&&F!==\"*\"){D++;let j=t[H][v],k=o[H][j],M=O[F],A=m[H];if(k.delta===void 0)h+=1;else{let R=T(M);if(R===void 0)throw new Error(\"correlation has not delta\");let N=Math.abs(k.delta-R);N<A?h+=1:(N=Math.abs(N-A),h+=-.25/A*N+1)}}}}D>0&&(h/=D)}let S=0;if(Im(p)>1){let H={},x=[];for(let v of Object.keys(g))x=x.concat(g[v].map(F=>({index:F,atomType:v})));for(let v=0;v<x.length;v++){let{atomType:F,index:j}=x[v],k=o[F][t[F][j]];for(let M=v+1;M<x.length;M++){let{atomType:A,index:R}=x[M],N=o[A][t[A][R]],yl=k.pathLength[N.diaIDIndex]<5,ke=e[F][j],Ae=e[A][R];if(!ke||!Ae)continue;let Rt=ke>Ae?`${Ae} ${ke}`:`${ke} ${Ae}`,Pn=Nm({from:{targetID:ke,atomType:F},to:{targetID:Ae,atomType:A}},a),Fn=yl?Pn?1:0:Pn?0:1;H[Rt]=H[Rt]?Math.max(H[Rt],Fn):Fn}}let O=0;for(let v in H)O+=H[v];S=O/(x.length*(x.length-1)/2)}let P=c/u;return h===0?S-P:S===0?h-P:(h+S)/2-P}function Nm(e,n){let{from:t,to:s}=e;if(t.targetID===s.targetID)return!0;let i=n[t.atomType][t.targetID],o=n[s.atomType][s.targetID];for(let a of o.link)for(let r of i.link)if(r.signal.id===a.signal.id)return!0;return!1}function wm(e,n){let t=Object.keys(e);for(let s of t){let i=e[s];if(!i)throw new Error(`prediction by ${s}`);if(i[n])return{atomType:s,prediction:i[n]}}throw new Error(`There is not prediction for ${n}`)}function Im(e){let n=0;for(let t in e)n+=e[t].length;return n}function Kt(e,n,t,s){let{currentAtomTypes:i,restrictionByCS:o,timeout:a,timeStart:r,maxSolutions:m,targets:l,predictions:c,correlations:u,lowerBoundScore:f,possibleAssignmentMap:g,diaIDPeerPossibleAssignment:d}=e;if(!(Date.now()-r>a))for(let p of i){let{currentIndex:C,nSources:y}=n[p];if(C>=y-1&&t[p][C]!==null)continue;let b=d[p][C],D=g[p][b];for(let h of D){t[p][C]=h;let S=Xs(t,{diaIDPeerPossibleAssignment:d,infoByAtomTypes:n,restrictionByCS:o,predictions:c,correlations:u,targets:l});if(S!==0)if(Em(i,n)&&S>=f)Tm(s,{predictions:c,partial:t,score:S,maxSolutions:m});else{let P=structuredClone(n);P[p].currentIndex+=1,Kt({currentAtomTypes:i,restrictionByCS:o,timeout:a,timeStart:r,maxSolutions:m,targets:l,predictions:c,correlations:u,lowerBoundScore:f,possibleAssignmentMap:g,diaIDPeerPossibleAssignment:d},P,structuredClone(t),s)}}}}function Tm(e,n){let{score:t,maxSolutions:s,partial:i,predictions:o}=n,a={assignment:structuredClone(i),score:t/zm(i,o)};if(e.nSolutions>=s){let r=e.solutions.last();a.score>r.score&&(e.solutions.pollLast(),e.solutions.add(a))}else e.solutions.add(a),e.nSolutions++}function Em(e,n){let t=!0;for(let s of e){let{currentIndex:i,nSources:o}=n[s];t=t&&i>=o-1}return t}function zm(e,n){let t=0;for(let s in n){let i=Object.keys(n[s]).length,o=new Set(e[s]);t+=i-o.size}return t>0?2*t:1}function Q(e){return\"ranges\"in e}function qs(e,n){for(let t=0;t<n.length;t++){let s=n[t],i=Q(s)?s.ranges:s.zones;for(let o=0;o<i.length;o++){let a=i[o].signals||[];for(let r=0;r<a.length;r++)if(e===a[r].id)return{spectrumIndex:t,signalIndex:r,elementIndex:o}}}throw new Error(`There is not a signal with ${e} ID`)}var Ws=(e,n)=>n.score-e.score;function Lm(e){let n=[\"nbAtoms\",\"diaIDs\",\"atoms\"];for(let t of e)for(let s of n)if(!t[s])throw new Error(`property ${s} does not exist`)}var Xm={C:(e,n)=>e.getAllHydrogens(n),H:()=>1};async function Zs(e){let{spectra:n,molecule:t,restrictionByCS:s,timeout:i,minScore:o,nbAllowedUnAssigned:a={},maxSolutions:r,correlations:m,assignmentOrder:l,predictionOptions:c,predictions:u={},targets:f}=e,g=o,d={solutions:new Ys(Ws),nSolutions:0},p=Bm(t,{pathLength:!0}),C={},y={},b={},D={};for(let h of l){for(let H of h){let x={[H]:c[H]},O=u[H],v=await Zm({molecule:t,predictedSignals:O,options:x,atomType:H});Lm(v),y[H]||(y[H]={});let F=0;for(let j of v){let k=j.diaIDs[0],M=j.atoms[0],A=Xm[H](t,M);F+=j.nbAtoms*A,y[H][k]={...j,diaIDIndex:M,allHydrogens:j.nbAtoms*A,protonsCount:A,pathLength:p[M]}}for(let j in y[H])y[H][j].allHydrogens*=100/F;C[H]={nSources:v.length,currentIndex:0,nbAllowedUnAssigned:a[H]||0}}b=Bs(b,{restrictionByCS:s,predictions:y,targets:f}),D={};for(let H in b)D[H]=Object.keys(b[H]);let S=Ym(d,C,h);d={solutions:new Ys(Ws),nSolutions:0};let P=Date.now();for(let H of S)Kt({currentAtomTypes:h,restrictionByCS:s,timeout:i,timeStart:P,targets:f,predictions:y,correlations:m,maxSolutions:r,lowerBoundScore:g,possibleAssignmentMap:b,diaIDPeerPossibleAssignment:D},C,H,d)}return qm({store:d,spectra:n,diaIDPeerPossibleAssignment:D,targets:f})}function qm(e){let{store:n,spectra:t,diaIDPeerPossibleAssignment:s,targets:i}=e,{solutions:o}=n,a={},r=Object.keys(i);for(let l of r){let c=i[l];for(let u in c){let f=c[u];for(let g of f.link){let d=g.signal.id;a[d]||(a[g.signal.id]=qs(d,t))}}}let m=[];for(let l of o.elements){let c=structuredClone(t),{assignment:u,score:f}=l,g=Object.keys(u);for(let d of g){let p=i[d],C=u[d];for(let y=0;y<C.length;y++){let b=C[y];if(b===\"*\"||!b)continue;let D=p[b],h=s[d][y];for(let S of D.link){let{spectrumIndex:P,elementIndex:H,signalIndex:x}=a[S.signal.id],O=c[P];if(Q(O)){let{ranges:v}=O,j=v[H].signals[x];if(j.diaIDs||(j.diaIDs=[]),j.diaIDs.includes(h))continue;j.diaIDs.push(h)}else{let v=S.axis,F=O.zones[H].signals[x];if(F[v].diaIDs||(F[v].diaIDs=[]),F[v].diaIDs?.includes(h))continue;F[v].diaIDs?.push(h)}}}}m.push({score:f,assignment:c})}return m}function Ym(e,n,t){return e.nSolutions>0?e.solutions.elements.map(s=>{let i=s.assignment;for(let o of t)i[o]=Us(n[o].nSources);return i}):Wm(n,t)}function Wm(e,n){let t={},s=Object.keys(e);for(let i of s){let o=n.includes(i)?null:\"*\";t[i]=Us(e[i].nSources,o)}return[t]}function Us(e,n=null){let t=new Array(e);for(let s=0;s<e;s++)t[s]=n;return t}async function Zm(e){let{molecule:n,predictedSignals:t,options:s,atomType:i}=e;if(t)return t;let{spectra:o}=await V(n,{predictOptions:s});return o[i===\"C\"?\"carbon\":\"proton\"]?.joinedSignals||[]}function Vs(e=[]){let n=structuredClone(e),t=[];for(let s of n){if(!(\"info\"in s))throw new Error(\"each spectrum should contain info properties with nucleus information\");if(Q(s)){let{info:i,id:o}=s,a=Qe(s.ranges);t.push({id:o,info:i,ranges:a})}else{let{info:i,id:o,zones:a}=s,r=Qe(a);t.push({id:o,info:i,zones:r})}}return t}function Um(e){for(let n of e){if(!n.id)throw new Error(\"A range/zone has not an ID\");for(let t of n.signals||[])if(!t.id)throw new Error(\"A signal has not an ID\")}}function Qe(e){for(let n of e){n.id||(n.id=crypto.randomUUID());for(let t of n.signals||[])t.id||(t.id=crypto.randomUUID())}return Um(e),e}function Gs(e=[]){let n=structuredClone(e),t=[];for(let s of n)if(Q(s)){let{id:i,info:o}=s,a=Vm({id:i,info:o,ranges:s.ranges});t.push({id:i,info:o,ranges:{values:a}})}else{let{id:i,info:o,zones:a}=s;t.push({id:i,info:o,zones:{values:a}})}return t}function Vm(e){if(e.info.nucleus!==\"1H\")return e.ranges;let n=e.ranges.reduce((t,s)=>t+(s.integration??0),0);for(let t of e.ranges)if(t.integration&&(t.integration*=100/n,t.signals)){let s=t.signals.reduce((i,o)=>i+(o.integration??0),0);for(let i of t.signals)i.integration?i.integration*=t.integration/s:i.integration=t.integration}return e.ranges}function Js(e,n){let{H:t=[]}=e,s=0;for(let i of t){let o=n[i];s+=Number(o.link[0].signal.integration)}return s}function $s(e,n={}){let{tolerance:t={C:.25,H:.05}}=n,s=Gs(e),o=Jt(s,{tolerance:t}).values.map(r=>({...r,integration:0})),a={H:{},C:{}};for(let r of o){if(r.pseudo)continue;let{id:m,atomType:l,link:c,attachment:u}=r;(l===\"H\"||l===\"C\")&&(a[l][m]=r,l===\"H\"&&c.length>0?a[l][m].integration=c[0].signal.integration||0:a[l][m].integration=Js(u,o),a[l][m]=r)}return{targets:a,correlations:o}}function Qt(e,n=[]){let t=Gm(e),{hasHSQC:s,types:i}=t;if(n.length>0)return{assignmentOrder:n,experimentTypes:t};let o=[];return s?o.push([\"C\"],[\"H\"]):o.push(i.filter(a=>a===\"H\"||a===\"C\")),{assignmentOrder:o,experimentTypes:t}}function Gm(e){let n=new Set;for(let t of e)for(let s of t.link){let i=s.experimentType;i===\"1d\"&&(i=s.atomType[0].toUpperCase()),n.add(i)}return{types:Array.from(n),hasProton:n.has(\"H\"),hasCarbon:n.has(\"C\"),hasHSQC:n.has(\"hsqc\")}}async function My(e,n={}){let{restrictionByCS:t={},justAssign:s,minScore:i=.01,maxSolutions:o=10,nbAllowedUnAssigned:a,timeout:r=6e3,predictionOptions:m={},predictions:l={},correlation:c={}}=n,{tolerance:u={H:.2,C:1},useChemicalShiftScore:f=!1,chemicalShiftRestriction:g=!0}=t,d=e.molecule;if(!d)throw new Error(\"It is needed a molecule to assign\");d.addImplicitHydrogens(),Jm(d);let p=Vs(e.spectra),{targets:C,correlations:y}=$s(p,c),{assignmentOrder:b}=Qt(y,s);return await Zs({restrictionByCS:{tolerance:u,useChemicalShiftScore:f,chemicalShiftRestriction:g},spectra:p,molecule:d,timeout:r,minScore:i,maxSolutions:o,assignmentOrder:b,nbAllowedUnAssigned:a,correlations:y,targets:C,predictionOptions:m,predictions:l})}var $m={unspecified:\"Unspecified\",unknown:\"Unknown\",signal:\"Signal\",residualSolvent:\"Residual solvent\",reference:\"Reference\",nmrSolvent:\"NMR Solvent\",impurity:\"Impurity\",standard:\"Standard\",artifact:\"Artifact\",p1:\"Product 1\",p2:\"Product 2\",p3:\"Product 3\"};function _m(e){return typeof e==\"string\"&&$m[e]!==void 0}function ae(e){return e===void 0?\"signal\":_m(e)?e:\"unspecified\"}var et=new Set([\"signal\"]);var _s=ne.toSorted((e,n)=>e.multiplicity===null&&n.multiplicity===null?0:e.multiplicity===null?1:n.multiplicity===null?-1:e.multiplicity-n.multiplicity),en=_s.map(e=>e.value),tt=_s.map(e=>e.acs||e.value);import{Molecule as Km}from\"openchemlib\";import{TopicMolecule as Qm}from\"openchemlib-utils\";function Ie(e,n,t){let{name:s}=e,i=t[s],{idCode:o}=n[i];if(i===void 0)throw new Error(\"atom map does not exists\");return{...e,idCode:o,atom:i}}function Ks(e,n,t){let s=[];for(let i of e){let{from:o,to:a}=i;s.push({...i,from:o.map(r=>Ie(r,n,t)),to:a.map(r=>Ie(r,n,t))})}return s}function Qs(e,n,t){let s=[];for(let i of e){let{atoms:o}=i;s.push({...i,atoms:o.map(a=>Ie(a,n,t))})}return s}function ti(e,n){let t=[],s=tn(n),i=n[0].nucleusType.atomicNumber;for(let o of e){let a=tn(o.from),r=ei(s,a),l=o[r?\"to\":\"from\"],c=r?a:tn(o.to),{nucleusType:{atomicNumber:u},idCode:f}=l[0];!ei(s,c)||u!==i||t.push({coupling:o.value,atoms:l.map(g=>g.atom),diaIDs:[f]})}return t}function ei(e,n){for(let t of e)if(n.has(t))return!0;return!1}function tn(e){let n=e.filter(t=>t.shift!==null).map(t=>t.shift);return new Set(n)}function ni(e,n,t){let s=new Set,i=[];for(let o of e){let{name:a}=o,r=n[a],{idCode:m}=t[r];if(!r)throw new Error(\"atom mapping does not exists\");s.add(m),i.push(r)}return{diaIDs:Array.from(s),atoms:i}}function si(e){let n=[];for(let t of e){let{atoms:s=[],...i}=t;if(s.length>1)for(let o of s)n.push({...i,atoms:[o]});else n.push(t)}return n}function ii(e){let n=[];for(let t of e){let s=si(t.js);for(let i of t.atoms){let o={...t,atoms:[i],nbAtoms:1,js:s};n.push(o)}}return n}function oi(e,n){let{atomicNumber:t=1,atomMap:s,molfile:i}=n,o=[],a=Km.fromMolfile(i),m=new Qm(a).diaIDsAndInfo,l=Ks(e.couplings,m,s),c=Qs(e.shifts,m,s);for(let u of c){let{atoms:f,value:g}=u;if(!f.some(p=>p.nucleusType.atomicNumber===t))continue;let d={delta:g,nbAtoms:f.length,...ni(f,s,m),js:ti(l,f)};o.push(d)}return ii(o)}function ai(e){return{molarFraction:{value:e.v,low:e.vl,high:e.vh},fieldStrength:e.f,baseItensity:e.bi,intensityLimit:e.il,spinSystemFlags:e.sf,spinSystemType:mc(e.sst),analysisType:e.at,inchiKey:e.ik,populations:ec(e.p),lineShapes:lc(e.l),shiftGroups:ac(e.sg),shifts:tc(e.s),couplingGroups:rc(e.cg),couplings:nc(e.c),atoms:sc(e.a),bonds:ic(e.b)}}function ec(e){let n=[];for(let t of e)n.push({id:t.id,parentID:t.pid,name:t.n,remarks:t.r,population:{value:t.v,low:t.vl,high:t.vh},spinSystemFlags:t.sf});return n}function tc(e){let n=[];for(let t of e)n.push({id:t.id,parentID:t.pid,name:t.n,remarks:t.r,shiftGroup:t.sg});return n}function nc(e){let n=[];for(let t of e)n.push({id:t.id,parentID:t.pid,name:t.n,remarks:t.r,couplingGroup:t.cg,shifts:{from:t.s[0],to:t.s[1]}});return n}function sc(e){let n=[];for(let t of e)n.push({id:t.id,parentID:t.pid,name:t.n,remarks:t.r,nucleusType:cc(t.nc),cipRank:{canonical:t.crcan,rd:t.crrd,nmr:t.crnmr},ordinal:t.o,stereochemistryFlags:t.rs,spinSystemFlags:t.sf,formalcharge:t.fc,partialCharge:t.c,coordinates2D:t.c2d,coordinates3D:t.c3d,parent2D:t.p2d,shift:t.s});return n}function ic(e){let n=[];for(let t of e)n.push({id:t.id,bondType:oc(t.b),stereochemistryFlags:t.rs,spinSystemFlags:t.sf,atoms:t.a});return n}function oc(e){switch(e){case 0:return\"NONE\";case 1:return\"SINGLE\";case 2:return\"DOUBLE\";case 3:return\"TRIPLE\";case 4:return\"CONJUGATED\";case 5:return\"SINGLE_UP\";case 6:return\"SINGLE_DOWN\";default:throw new Error(`Unknown bond type: ${e}`)}}function ac(e){let n=[];for(let t of e)n.push({id:t.id,parentID:t.pid,name:t.n,remarks:t.r,shift:{value:t.v,low:t.vl,high:t.vh},spin2:t.s,spinCount:t.c,exchangeable:t.ex,spinSystemFlags:t.sf,gamma:t.g,iterationWeight:t.iw,response:{value:t.rs.v,low:t.rs.vl,high:t.rs.vh,sf:t.rs.sf},population:t.p,lineShape:t.l});return n}function rc(e){let n=[];for(let t of e)n.push({id:t.id,parentID:t.parentID,name:t.name,remarks:t.remarks,coupling:{value:t.v,low:t.vl,high:t.vh},spinSystemFlags:t.sf,couplingType:t.t});return n}function lc(e){let n=[];for(let t of e)n.push({id:t.id,parentID:t.pid,name:t.n,remarks:t.r,spinSystemFlags:t.sf,lineWidth:{value:t.l.v,low:t.l.low,high:t.l.high},gaussian:{value:t.g.v,low:t.g.low,high:t.g.high}});return n}function mc(e){switch(e){case 0:return\"NONE\";case 1:return\"SOLUTE\";case 2:return\"SOLVENT\";case 4:return\"IMPURITY\";case 8:return\"REFERENCE\";case 16:return\"CALIBRANT\";case 32:return\"ERROR_MESSAGE\";default:throw new Error(`Unexpected spinSystemType: ${e}`)}}function cc(e){return{atomicNumber:(e&65024)>>9,isotope:e&511}}function ri(e,n){let{logger:t}=n;t.debug(\"Parsing CT json results\");let s=ai(e),i=uc(s),o=fc(s);return{...s,shifts:i,couplings:o}}function uc(e){let n=e.shifts,t=gc(e),s=li(e),i=[];for(let o of n){let a=t[o.shiftGroup];if(!a)throw new Error(`Shift group ${o.shiftGroup} not found`);let r=s[o.id];if(!r)throw new Error(`Atom not found: ${o.id}`);i.push({atoms:r,value:a.shift.value})}return i}function fc(e){let n=e.couplings,t=dc(e.couplingGroups),s=li(e),i=[];for(let o of n){let a=t[o.couplingGroup];if(!a)throw new Error(`Coupling group ${o.couplingGroup} not found`);let r=s[o.shifts.from];if(!r)throw new Error(`Atom not found: ${o.shifts.from}`);let m=s[o.shifts.to];if(!m)throw new Error(`Atom not found: ${o.shifts.to}`);i.push({from:r,to:m,value:a.coupling.value})}return i}function li(e){let n={};for(let t of e.atoms){if(!t.shift)continue;let s=t.shift;n[s]||(n[s]=[]),n[s].push(t)}return n}function gc(e){let n={};for(let t of e.shiftGroups)n[t.id]=t;return n}function dc(e){let n={};for(let t of e)n[t.id]=t;return n}function mi(e){let n={};for(let t of e)n[t.name]=t.ordinal;return n}function o3(e,n,t){let s=ri(e,{logger:console}),i=mi(s.atoms),o=oi(s,{atomMap:i,molfile:n,...t});return{...s,signals:o}}var r3=[{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:171.69,assignment:\"CO\"}],from:171.685,to:171.695},{signals:[{delta:20.13,assignment:\"CH\\u2083\"}],from:20.125,to:20.134999999999998}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"c647453c-30a3-4743-b982-7e05ad6a4b5e\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:204.19,assignment:\"CO\"}],from:204.185,to:204.195},{signals:[{delta:30.17,assignment:\"CH\\u2083\"}],from:30.165000000000003,to:30.175}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"47453c30-a327-43b9-827e-05ad6a4b5ee9\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:116.79,assignment:\"CN\"}],from:116.78500000000001,to:116.795},{signals:[{delta:.45,assignment:\"CH\\u2083\"}],from:.445,to:.455}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"453c30a3-2743-4982-be05-ad6a4b5ee993\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:128.84,assignment:\"CH\"}],from:128.835,to:128.845}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"3c30a327-43b9-427e-85ad-6a4b5ee993c8\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:67.5,assignment:\"(CH\\u2083)\\u2083C\"}],from:67.495,to:67.505},{signals:[{delta:30.57,assignment:\"(CH\\u2083)\\u2083C\"}],from:30.565,to:30.575}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"30a32743-b982-4e05-ad6a-4b5ee993c878\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:125.69,assignment:\"CO\\u2082\"}],from:125.685,to:125.695}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"a32743b9-827e-45ad-aa4b-5ee993c8784f\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:193.37,assignment:\"CS\\u2082\"}],from:193.365,to:193.375}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"2743b982-7e05-4d6a-8b5e-e993c8784fdf\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:96.89,assignment:\"CCl\\u2084\"}],from:96.885,to:96.895}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"43b9827e-05ad-4a4b-9ee9-93c8784fdf0b\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:79.24,assignment:\"CH\"}],from:79.235,to:79.24499999999999}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"b9827e05-ad6a-4b5e-a993-c8784fdf0b20\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:71.34,assignment:\"CH\\u2082\"}],from:71.33500000000001,to:71.345}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"827e05ad-6a4b-4ee9-93c8-784fdf0b20e0\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:27.58,assignment:\"CH\\u2082\"}],from:27.575,to:27.584999999999997}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"7e05ad6a-4b5e-4993-8878-4fdf0b20e0a9\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:44.64,assignment:\"CH\\u2082\"}],from:44.635,to:44.645}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"05ad6a4b-5ee9-43c8-b84f-df0b20e0a9d7\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:54.67,assignment:\"CH\\u2082\"}],from:54.665,to:54.675000000000004}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"ad6a4b5e-e993-4878-8fdf-0b20e0a9d783\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.49,assignment:\"CH\\u2083\"}],from:15.485,to:15.495000000000001},{signals:[{delta:66.14,assignment:\"CH\\u2082\"}],from:66.135,to:66.145}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"6a4b5ee9-93c8-484f-9f0b-20e0a9d783a6\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:58.72,assignment:\"CH\\u2083\"}],from:58.714999999999996,to:58.725},{signals:[{delta:71.17,assignment:\"CH\\u2082\"}],from:71.165,to:71.175},{signals:[{delta:72.72,assignment:\"CH\\u2082\"}],from:72.715,to:72.725}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"4b5ee993-c878-4fdf-8b20-e0a9d783a609\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:161.96,assignment:\"CH\"}],from:161.955,to:161.965},{signals:[{delta:35.65,assignment:\"CH\\u2083\"}],from:35.644999999999996,to:35.655},{signals:[{delta:30.7,assignment:\"CH\\u2083\"}],from:30.695,to:30.705}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"5ee993c8-784f-4f0b-a0e0-a9d783a6095a\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:67.65,assignment:\"CH\\u2082\"}],from:67.64500000000001,to:67.655}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"e993c878-4fdf-4b20-a0a9-d783a6095add\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:58.72,assignment:\"CH\\u2083\"}],from:58.714999999999996,to:58.725},{signals:[{delta:72.58,assignment:\"CH\\u2082\"}],from:72.575,to:72.585}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"93c8784f-df0b-40e0-a9d7-83a6095add5b\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.79,assignment:\"CH\\u2083\"}],from:6.785,to:6.795}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"c8784fdf-0b20-40a9-9783-a6095add5b63\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.9,assignment:\"CH\\u2083\"}],from:18.895,to:18.904999999999998},{signals:[{delta:57.6,assignment:\"CH\\u2082\"}],from:57.595,to:57.605000000000004}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"784fdf0b-20e0-49d7-83a6-095add5b63fc\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:20.45,assignment:\"CH\\u2083CO\"}],from:20.445,to:20.455},{signals:[{delta:170.32,assignment:\"CO\"}],from:170.315,to:170.325},{signals:[{delta:60.3,assignment:\"CH\\u2082\"}],from:60.294999999999995,to:60.305},{signals:[{delta:14.37,assignment:\"CH\\u2083\"}],from:14.364999999999998,to:14.375}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"4fdf0b20-e0a9-4783-a609-5add5b63fc7d\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:123.09,assignment:\"CH\\u2082\"}],from:123.08500000000001,to:123.095}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"df0b20e0-a9d7-43a6-895a-dd5b63fc7d55\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:64.35,assignment:\"CH\\u2082\"}],from:64.345,to:64.35499999999999}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"0b20e0a9-d783-4609-9add-5b63fc7d5583\"},{names:[\"H grease\"],smiles:\"\",ranges:[{signals:[{delta:30.45,assignment:\"CH\\u2082\"}],from:30.445,to:30.455}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"20e0a9d7-83a6-495a-9d5b-63fc7d55838e\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:131.88,assignment:\"C\"}],from:131.875,to:131.885},{signals:[{delta:16.71,assignment:\"CH\\u2083\"}],from:16.705000000000002,to:16.715}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"e0a9d783-a609-4add-9b63-fc7d55838ec5\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.22,assignment:\"CH\\u2083\"}],from:14.215,to:14.225000000000001},{signals:[{delta:23.33,assignment:\"CH\\u2082(2,5)\"}],from:23.325,to:23.334999999999997},{signals:[{delta:32.34,assignment:\"CH\\u2082(3,4)\"}],from:32.335,to:32.345000000000006}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"a9d783a6-095a-4d5b-a3fc-7d55838ec5f2\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:1.83,assignment:\"CH\\u2083\"}],from:1.8250000000000002,to:1.835}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"d783a609-5add-4b63-bc7d-55838ec5f2d7\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:36.89,assignment:\"CH\\u2083\"}],from:36.885,to:36.895}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"83a6095a-dd5b-43fc-bd55-838ec5f2d7e0\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:135.72,assignment:\"CH(2)\"}],from:135.715,to:135.725},{signals:[{delta:122.2,assignment:\"CH(4,5)\"}],from:122.19500000000001,to:122.205}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"a6095add-5b63-4c7d-9583-8ec5f2d7e00d\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-4.9,assignment:\"CH\\u2084\"}],from:-4.905,to:-4.8950000000000005}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"095add5b-63fc-4d55-838e-c5f2d7e00d46\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:49.64,assignment:\"CH\\u2083\"}],from:49.635,to:49.645}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"5add5b63-fc7d-4583-8ec5-f2d7e00d46aa\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:62.49,assignment:\"CH\\u2083\"}],from:62.485,to:62.495000000000005}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"dd5b63fc-7d55-438e-85f2-d7e00d46aac8\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.18,assignment:\"CH\\u2083\"}],from:14.174999999999999,to:14.185},{signals:[{delta:23,assignment:\"CH\\u2082(2,4)\"}],from:22.995,to:23.005},{signals:[{delta:34.87,assignment:\"CH\\u2082(3)\"}],from:34.864999999999995,to:34.875}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"5b63fc7d-5583-4ec5-b2d7-e00d46aac848\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.6,assignment:\"CH\\u2083\"}],from:16.595000000000002,to:16.605},{signals:[{delta:16.82,assignment:\"CH\\u2082\"}],from:16.815,to:16.825}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"63fc7d55-838e-45f2-97e0-0d46aac8487f\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.7,assignment:\"CH\\u2083\"}],from:25.695,to:25.705},{signals:[{delta:66.14,assignment:\"CH\"}],from:66.135,to:66.145}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"fc7d5583-8ec5-42d7-a00d-46aac8487fd1\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.27,assignment:\"CH\\u2083\"}],from:19.265,to:19.275},{signals:[{delta:115.74,assignment:\"CH\\u2082\"}],from:115.735,to:115.74499999999999},{signals:[{delta:134.02,assignment:\"CH\"}],from:134.01500000000001,to:134.025}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"7d55838e-c5f2-47e0-8d46-aac8487fd181\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:150.57,assignment:\"CH(2,6)\"}],from:150.565,to:150.575},{signals:[{delta:124.08,assignment:\"CH(3,5)\"}],from:124.075,to:124.085},{signals:[{delta:135.99,assignment:\"CH(4)\"}],from:135.985,to:135.995}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"55838ec5-f2d7-400d-86aa-c8487fd1810e\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:118.03,assignment:\"CH(2,5)\"}],from:118.025,to:118.035},{signals:[{delta:107.74,assignment:\"CH(3,4)\"}],from:107.735,to:107.74499999999999}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"838ec5f2-d7e0-4d46-aac8-487fd1810efe\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:45.82,assignment:\"CH\\u2082(2,5)\"}],from:45.815,to:45.825},{signals:[{delta:26.17,assignment:\"CH\\u2082(3,4)\"}],from:26.165000000000003,to:26.175}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"8ec5f2d7-e00d-46aa-8848-7fd1810efe87\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{delta:1.2,assignment:\"CH\\u2083\"}],from:1.195,to:1.2049999999999998}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"c5f2d7e0-0d46-4ac8-887f-d1810efe8736\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:68.03,assignment:\"CH\\u2082(2,5)\"}],from:68.025,to:68.035},{signals:[{delta:26.19,assignment:\"CH\\u2082(3,4)\"}],from:26.185000000000002,to:26.195}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"f2d7e00d-46aa-4848-bfd1-810efe87365c\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.29,assignment:\"CH\\u2083\"}],from:21.285,to:21.294999999999998},{signals:[{delta:138.24,assignment:\"C(1)\"}],from:138.235,to:138.245},{signals:[{delta:129.47,assignment:\"CH(2,6)\"}],from:129.465,to:129.475},{signals:[{delta:128.71,assignment:\"CH(3,5)\"}],from:128.705,to:128.715},{signals:[{delta:125.84,assignment:\"CH(4)\"}],from:125.83500000000001,to:125.845}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"d7e00d46-aac8-487f-9181-0efe87365cbd\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:12.51,assignment:\"CH\\u2083\"}],from:12.504999999999999,to:12.515},{signals:[{delta:47.18,assignment:\"CH\\u2082\"}],from:47.175,to:47.185}],nucleus:\"13C\",solvent:\"THF-d\\u2088\",id:\"e00d46aa-c848-4fd1-810e-fe87365cbd0a\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:175.85,assignment:\"CO\"}],from:175.845,to:175.855},{signals:[{delta:20.91,assignment:\"CH\\u2083\"}],from:20.905,to:20.915}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"0d46aac8-487f-4181-8efe-87365cbd0a06\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:206.78,assignment:\"CO\"}],from:206.775,to:206.785},{signals:[{delta:31,assignment:\"CH\\u2083\"}],from:30.995,to:31.005}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"46aac848-7fd1-410e-be87-365cbd0a06f1\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:116.92,assignment:\"CN\"}],from:116.915,to:116.925},{signals:[{delta:2.03,assignment:\"CH\\u2083\"}],from:2.025,to:2.0349999999999997}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"aac8487f-d181-4efe-8736-5cbd0a06f100\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:128.68,assignment:\"CH\"}],from:128.675,to:128.685}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"c8487fd1-810e-4e87-b65c-bd0a06f10074\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:69.11,assignment:\"(CH\\u2083)\\u2083C\"}],from:69.105,to:69.115},{signals:[{delta:31.46,assignment:\"(CH\\u2083)\\u2083C\"}],from:31.455000000000002,to:31.465}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"487fd181-0efe-4736-9cbd-0a06f10074bd\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:125.26,assignment:\"CO\\u2082\"}],from:125.25500000000001,to:125.265}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"7fd1810e-fe87-465c-bd0a-06f10074bda3\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:192.95,assignment:\"CS\\u2082\"}],from:192.945,to:192.95499999999998}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"d1810efe-8736-4cbd-8a06-f10074bda34e\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:96.52,assignment:\"CCl\\u2084\"}],from:96.515,to:96.52499999999999}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"810efe87-365c-4d0a-86f1-0074bda34e74\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:77.99,assignment:\"CH\"}],from:77.985,to:77.99499999999999}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"0efe8736-5cbd-4a06-b100-74bda34e743f\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:70.47,assignment:\"CH\\u2082\"}],from:70.465,to:70.475}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"fe87365c-bd0a-46f1-8074-bda34e743f14\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:27.38,assignment:\"CH\\u2082\"}],from:27.375,to:27.384999999999998}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"87365cbd-0a06-4100-b4bd-a34e743f14ab\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:44.35,assignment:\"CH\\u2082\"}],from:44.345,to:44.355000000000004}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"365cbd0a-06f1-4074-bda3-4e743f14ab0c\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:54.24,assignment:\"CH\\u2082\"}],from:54.235,to:54.245000000000005}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"5cbd0a06-f100-44bd-a34e-743f14ab0cda\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.44,assignment:\"CH\\u2083\"}],from:15.434999999999999,to:15.445},{signals:[{delta:66.11,assignment:\"CH\\u2082\"}],from:66.105,to:66.115}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"bd0a06f1-0074-4da3-8e74-3f14ab0cdadc\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:58.95,assignment:\"CH\\u2083\"}],from:58.945,to:58.955000000000005},{signals:[{delta:70.7,assignment:\"CH\\u2082\"}],from:70.69500000000001,to:70.705},{signals:[{delta:72.25,assignment:\"CH\\u2082\"}],from:72.245,to:72.255}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"0a06f100-74bd-434e-b43f-14ab0cdadc97\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:162.57,assignment:\"CH\"}],from:162.565,to:162.575},{signals:[{delta:36.56,assignment:\"CH\\u2083\"}],from:36.555,to:36.565000000000005},{signals:[{delta:31.39,assignment:\"CH\\u2083\"}],from:31.385,to:31.395}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"06f10074-bda3-4e74-bf14-ab0cdadc97a5\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:67.47,assignment:\"CH\\u2082\"}],from:67.465,to:67.475}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"f10074bd-a34e-443f-94ab-0cdadc97a5ce\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:59.02,assignment:\"CH\\u2083\"}],from:59.015,to:59.025000000000006},{signals:[{delta:72.24,assignment:\"CH\\u2082\"}],from:72.235,to:72.24499999999999}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"0074bda3-4e74-4f14-ab0c-dadc97a5ce56\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.91,assignment:\"CH\\u2083\"}],from:6.905,to:6.915}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"74bda34e-743f-44ab-8cda-dc97a5ce5615\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.69,assignment:\"CH\\u2083\"}],from:18.685000000000002,to:18.695},{signals:[{delta:58.57,assignment:\"CH\\u2082\"}],from:58.565,to:58.575}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"bda34e74-3f14-4b0c-9adc-97a5ce5615a7\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:21.15,assignment:\"CH\\u2083CO\"}],from:21.145,to:21.154999999999998},{signals:[{delta:171.24,assignment:\"CO\"}],from:171.235,to:171.245},{signals:[{delta:60.63,assignment:\"CH\\u2082\"}],from:60.625,to:60.635000000000005},{signals:[{delta:14.37,assignment:\"CH\\u2083\"}],from:14.364999999999998,to:14.375}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"a34e743f-14ab-4cda-9c97-a5ce5615a721\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:123.2,assignment:\"CH\\u2082\"}],from:123.19500000000001,to:123.205}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"4e743f14-ab0c-4adc-97a5-ce5615a72147\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:64.08,assignment:\"CH\\u2082\"}],from:64.075,to:64.085}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"743f14ab-0cda-4c97-a5ce-5615a7214768\"},{names:[\"H grease\"],smiles:\"\",ranges:[{signals:[{delta:30.14,assignment:\"CH\\u2082\"}],from:30.135,to:30.145}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"3f14ab0c-dadc-47a5-8e56-15a72147682a\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:132.09,assignment:\"C\"}],from:132.085,to:132.095},{signals:[{delta:16.93,assignment:\"CH\\u2083\"}],from:16.925,to:16.935}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"14ab0cda-dc97-45ce-9615-a72147682a4c\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.28,assignment:\"CH\\u2083\"}],from:14.274999999999999,to:14.285},{signals:[{delta:23.07,assignment:\"CH\\u2082(2,5)\"}],from:23.065,to:23.075},{signals:[{delta:32.01,assignment:\"CH\\u2082(3,4)\"}],from:32.004999999999995,to:32.015}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"ab0cdadc-97a5-4e56-95a7-2147682a4c11\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:1.96,assignment:\"CH\\u2083\"}],from:1.955,to:1.9649999999999999}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"0cdadc97-a5ce-4615-a721-47682a4c118a\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:36.99,assignment:\"CH\\u2083\"}],from:36.985,to:36.995000000000005}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"dadc97a5-ce56-45a7-a147-682a4c118af0\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:135.76,assignment:\"CH(2)\"}],from:135.755,to:135.765},{signals:[{delta:122.16,assignment:\"CH(4,5)\"}],from:122.155,to:122.16499999999999}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"dc97a5ce-5615-4721-8768-2a4c118af087\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-4.33,assignment:\"CH\\u2084\"}],from:-4.335,to:-4.325}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"97a5ce56-15a7-4147-a82a-4c118af0876b\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:50.45,assignment:\"CH\\u2083\"}],from:50.445,to:50.455000000000005}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"a5ce5615-a721-4768-aa4c-118af0876bb8\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:63.03,assignment:\"CH\\u2083\"}],from:63.025,to:63.035000000000004}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"ce5615a7-2147-482a-8c11-8af0876bb83f\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.24,assignment:\"CH\\u2083\"}],from:14.235,to:14.245000000000001},{signals:[{delta:22.77,assignment:\"CH\\u2082(2,4)\"}],from:22.765,to:22.775},{signals:[{delta:34.57,assignment:\"CH\\u2082(3)\"}],from:34.565,to:34.575}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"5615a721-4768-4a4c-918a-f0876bb83f65\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.63,assignment:\"CH\\u2083\"}],from:16.625,to:16.634999999999998},{signals:[{delta:16.63,assignment:\"CH\\u2082\"}],from:16.625,to:16.634999999999998}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"15a72147-682a-4c11-8af0-876bb83f6561\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.43,assignment:\"CH\\u2083\"}],from:25.425,to:25.435},{signals:[{delta:64.67,assignment:\"CH\"}],from:64.665,to:64.675}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"a7214768-2a4c-418a-b087-6bb83f6561b9\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.47,assignment:\"CH\\u2083\"}],from:19.465,to:19.474999999999998},{signals:[{delta:115.7,assignment:\"CH\\u2082\"}],from:115.69500000000001,to:115.705},{signals:[{delta:134.21,assignment:\"CH\"}],from:134.205,to:134.215}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"2147682a-4c11-4af0-876b-b83f6561b9c7\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:150.27,assignment:\"CH(2,6)\"}],from:150.26500000000001,to:150.275},{signals:[{delta:124.06,assignment:\"CH(3,5)\"}],from:124.055,to:124.065},{signals:[{delta:136.16,assignment:\"CH(4)\"}],from:136.155,to:136.165}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"47682a4c-118a-4087-abb8-3f6561b9c7fc\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:117.93,assignment:\"CH(2,5)\"}],from:117.92500000000001,to:117.935},{signals:[{delta:108.02,assignment:\"CH(3,4)\"}],from:108.015,to:108.02499999999999}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"682a4c11-8af0-476b-b83f-6561b9c7fccf\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:47.02,assignment:\"CH\\u2082(2,5)\"}],from:47.015,to:47.025000000000006},{signals:[{delta:25.83,assignment:\"CH\\u2082(3,4)\"}],from:25.825,to:25.834999999999997}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"2a4c118a-f087-4bb8-bf65-61b9c7fccf26\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{delta:1.22,assignment:\"CH\\u2083\"}],from:1.215,to:1.2249999999999999}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"4c118af0-876b-483f-a561-b9c7fccf2640\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:68.16,assignment:\"CH\\u2082(2,5)\"}],from:68.155,to:68.16499999999999},{signals:[{delta:25.98,assignment:\"CH\\u2082(3,4)\"}],from:25.975,to:25.985}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"118af087-6bb8-4f65-a1b9-c7fccf26404a\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.53,assignment:\"CH\\u2083\"}],from:21.525000000000002,to:21.535},{signals:[{delta:138.36,assignment:\"C(1)\"}],from:138.35500000000002,to:138.365},{signals:[{delta:129.35,assignment:\"CH(2,6)\"}],from:129.345,to:129.355},{signals:[{delta:128.54,assignment:\"CH(3,5)\"}],from:128.535,to:128.545},{signals:[{delta:125.62,assignment:\"CH(4)\"}],from:125.61500000000001,to:125.625}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"8af0876b-b83f-4561-b9c7-fccf26404a60\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:12.12,assignment:\"CH\\u2083\"}],from:12.114999999999998,to:12.125},{signals:[{delta:46.75,assignment:\"CH\\u2082\"}],from:46.745,to:46.755}],nucleus:\"13C\",solvent:\"CD\\u2082Cl\\u2082\",id:\"f0876bb8-3f65-41b9-87fc-cf26404a6070\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:175.99,assignment:\"CO\"}],from:175.985,to:175.995},{signals:[{delta:20.81,assignment:\"CH\\u2083\"}],from:20.805,to:20.814999999999998}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"876bb83f-6561-49c7-bccf-26404a607083\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:207.07,assignment:\"CO\"}],from:207.065,to:207.075},{signals:[{delta:30.92,assignment:\"CH\\u2083\"}],from:30.915000000000003,to:30.925}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"6bb83f65-61b9-47fc-8f26-404a607083f1\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:116.43,assignment:\"CN\"}],from:116.42500000000001,to:116.435},{signals:[{delta:1.89,assignment:\"CH\\u2083\"}],from:1.885,to:1.8949999999999998}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"b83f6561-b9c7-4ccf-a640-4a607083f11b\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:128.37,assignment:\"CH\"}],from:128.365,to:128.375}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"3f6561b9-c7fc-4f26-804a-607083f11b7d\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:69.15,assignment:\"(CH\\u2083)\\u2083C\"}],from:69.14500000000001,to:69.155},{signals:[{delta:31.25,assignment:\"(CH\\u2083)\\u2083C\"}],from:31.245,to:31.255}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"6561b9c7-fccf-4640-8a60-7083f11b7d3b\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:124.99,assignment:\"CO\\u2082\"}],from:124.985,to:124.99499999999999}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"61b9c7fc-cf26-404a-a070-83f11b7d3ba3\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:192.83,assignment:\"CS\\u2082\"}],from:192.82500000000002,to:192.835}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"b9c7fccf-2640-4a60-b083-f11b7d3ba3da\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:96.34,assignment:\"CCl\\u2084\"}],from:96.33500000000001,to:96.345}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"c7fccf26-404a-4070-83f1-1b7d3ba3da5d\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:77.36,assignment:\"CH\"}],from:77.355,to:77.365}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"fccf2640-4a60-4083-b11b-7d3ba3da5d5a\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:70.55,assignment:\"CH\\u2082\"}],from:70.545,to:70.55499999999999}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"cf26404a-6070-43f1-9b7d-3ba3da5d5a2b\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:26.94,assignment:\"CH\\u2082\"}],from:26.935000000000002,to:26.945}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"26404a60-7083-411b-bd3b-a3da5d5a2be5\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:43.5,assignment:\"CH\\u2082\"}],from:43.495,to:43.505}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"404a6070-83f1-4b7d-bba3-da5d5a2be58a\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:53.52,assignment:\"CH\\u2082\"}],from:53.515,to:53.525000000000006}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"4a607083-f11b-4d3b-a3da-5d5a2be58a57\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.2,assignment:\"CH\\u2083\"}],from:15.194999999999999,to:15.205},{signals:[{delta:65.91,assignment:\"CH\\u2082\"}],from:65.905,to:65.91499999999999}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"607083f1-1b7d-4ba3-9a5d-5a2be58a5735\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:59.01,assignment:\"CH\\u2083\"}],from:59.004999999999995,to:59.015},{signals:[{delta:70.51,assignment:\"CH\\u2082\"}],from:70.50500000000001,to:70.515},{signals:[{delta:71.9,assignment:\"CH\\u2082\"}],from:71.89500000000001,to:71.905}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"7083f11b-7d3b-43da-9d5a-2be58a57358a\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:162.62,assignment:\"CH\"}],from:162.615,to:162.625},{signals:[{delta:36.5,assignment:\"CH\\u2083\"}],from:36.495,to:36.505},{signals:[{delta:31.45,assignment:\"CH\\u2083\"}],from:31.445,to:31.455}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"83f11b7d-3ba3-4a5d-9a2b-e58a57358a50\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:67.14,assignment:\"CH\\u2082\"}],from:67.135,to:67.145}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"f11b7d3b-a3da-4d5a-abe5-8a57358a5082\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:59.08,assignment:\"CH\\u2083\"}],from:59.074999999999996,to:59.085},{signals:[{delta:71.84,assignment:\"CH\\u2082\"}],from:71.83500000000001,to:71.845}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"1b7d3ba3-da5d-4a2b-a58a-57358a508247\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.89,assignment:\"CH\\u2083\"}],from:6.885,to:6.895}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"7d3ba3da-5d5a-4be5-8a57-358a508247d3\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.41,assignment:\"CH\\u2083\"}],from:18.405,to:18.415},{signals:[{delta:58.28,assignment:\"CH\\u2082\"}],from:58.275,to:58.285000000000004}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"3ba3da5d-5a2b-458a-9735-8a508247d342\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:21.04,assignment:\"CH\\u2083CO\"}],from:21.035,to:21.044999999999998},{signals:[{delta:171.36,assignment:\"CO\"}],from:171.35500000000002,to:171.365},{signals:[{delta:60.49,assignment:\"CH\\u2082\"}],from:60.485,to:60.495000000000005},{signals:[{delta:14.19,assignment:\"CH\\u2083\"}],from:14.184999999999999,to:14.195}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"a3da5d5a-2be5-4a57-b58a-508247d342ae\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:123.13,assignment:\"CH\\u2082\"}],from:123.125,to:123.13499999999999}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"da5d5a2b-e58a-4735-8a50-8247d342ae5c\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:63.79,assignment:\"CH\\u2082\"}],from:63.785,to:63.795}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"5d5a2be5-8a57-458a-9082-47d342ae5cde\"},{names:[\"H grease\"],smiles:\"\",ranges:[{signals:[{delta:29.71,assignment:\"CH\\u2082\"}],from:29.705000000000002,to:29.715}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"5a2be58a-5735-4a50-8247-d342ae5cde4b\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:132.21,assignment:\"C\"}],from:132.205,to:132.215},{signals:[{delta:16.98,assignment:\"CH\\u2083\"}],from:16.975,to:16.985}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"2be58a57-358a-4082-87d3-42ae5cde4b68\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.14,assignment:\"CH\\u2083\"}],from:14.135,to:14.145000000000001},{signals:[{delta:22.7,assignment:\"CH\\u2082(2,5)\"}],from:22.695,to:22.705},{signals:[{delta:31.64,assignment:\"CH\\u2082(3,4)\"}],from:31.635,to:31.645}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"e58a5735-8a50-4247-9342-ae5cde4b68dc\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:1.97,assignment:\"CH\\u2083\"}],from:1.965,to:1.9749999999999999}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"8a57358a-5082-47d3-82ae-5cde4b68dcdd\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:36.87,assignment:\"CH\\u2083\"}],from:36.864999999999995,to:36.875}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"57358a50-8247-4342-ae5c-de4b68dcdd84\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:135.38,assignment:\"CH(2)\"}],from:135.375,to:135.385},{signals:[{delta:122,assignment:\"CH(4,5)\"}],from:121.995,to:122.005}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"358a5082-47d3-42ae-9cde-4b68dcdd840b\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-4.63,assignment:\"CH\\u2084\"}],from:-4.635,to:-4.625}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"8a508247-d342-4e5c-9e4b-68dcdd840bbc\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:50.41,assignment:\"CH\\u2083\"}],from:50.404999999999994,to:50.415}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"508247d3-42ae-4cde-8b68-dcdd840bbc20\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:62.5,assignment:\"CH\\u2083\"}],from:62.495,to:62.505}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"8247d342-ae5c-4e4b-a8dc-dd840bbc20eb\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.08,assignment:\"CH\\u2083\"}],from:14.075,to:14.085},{signals:[{delta:22.38,assignment:\"CH\\u2082(2,4)\"}],from:22.375,to:22.384999999999998},{signals:[{delta:34.16,assignment:\"CH\\u2082(3)\"}],from:34.154999999999994,to:34.165}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"47d342ae-5cde-4b68-9cdd-840bbc20eb13\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.63,assignment:\"CH\\u2083\"}],from:16.625,to:16.634999999999998},{signals:[{delta:16.37,assignment:\"CH\\u2082\"}],from:16.365000000000002,to:16.375}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"d342ae5c-de4b-48dc-9d84-0bbc20eb13e5\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.14,assignment:\"CH\\u2083\"}],from:25.135,to:25.145},{signals:[{delta:64.5,assignment:\"CH\"}],from:64.495,to:64.505}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"42ae5cde-4b68-4cdd-840b-bc20eb13e528\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.5,assignment:\"CH\\u2083\"}],from:19.495,to:19.505},{signals:[{delta:115.74,assignment:\"CH\\u2082\"}],from:115.735,to:115.74499999999999},{signals:[{delta:133.91,assignment:\"CH\"}],from:133.905,to:133.915}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"ae5cde4b-68dc-4d84-8bbc-20eb13e528c4\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:149.9,assignment:\"CH(2,6)\"}],from:149.895,to:149.905},{signals:[{delta:123.75,assignment:\"CH(3,5)\"}],from:123.745,to:123.755},{signals:[{delta:135.96,assignment:\"CH(4)\"}],from:135.955,to:135.965}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"5cde4b68-dcdd-440b-bc20-eb13e528c490\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:117.77,assignment:\"CH(2,5)\"}],from:117.765,to:117.77499999999999},{signals:[{delta:107.98,assignment:\"CH(3,4)\"}],from:107.97500000000001,to:107.985}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"de4b68dc-dd84-4bbc-a0eb-13e528c4904e\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:46.93,assignment:\"CH\\u2082(2,5)\"}],from:46.925,to:46.935},{signals:[{delta:25.56,assignment:\"CH\\u2082(3,4)\"}],from:25.555,to:25.564999999999998}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"4b68dcdd-840b-4c20-ab13-e528c4904ed4\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{delta:1.19,assignment:\"CH\\u2083\"}],from:1.185,to:1.1949999999999998}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"68dcdd84-0bbc-40eb-93e5-28c4904ed4ee\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:67.97,assignment:\"CH\\u2082(2,5)\"}],from:67.965,to:67.975},{signals:[{delta:25.62,assignment:\"CH\\u2082(3,4)\"}],from:25.615000000000002,to:25.625}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"dcdd840b-bc20-4b13-a528-c4904ed4ee46\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.46,assignment:\"CH\\u2083\"}],from:21.455000000000002,to:21.465},{signals:[{delta:137.89,assignment:\"C(1)\"}],from:137.885,to:137.89499999999998},{signals:[{delta:129.07,assignment:\"CH(2,6)\"}],from:129.065,to:129.075},{signals:[{delta:128.26,assignment:\"CH(3,5)\"}],from:128.255,to:128.265},{signals:[{delta:125.33,assignment:\"CH(4)\"}],from:125.325,to:125.335}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"dd840bbc-20eb-43e5-a8c4-904ed4ee46af\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:11.61,assignment:\"CH\\u2083\"}],from:11.604999999999999,to:11.615},{signals:[{delta:46.25,assignment:\"CH\\u2082\"}],from:46.245,to:46.255}],nucleus:\"13C\",solvent:\"CDCl\\u2083\",id:\"840bbc20-eb13-4528-8490-4ed4ee46afba\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:175.3,assignment:\"CO\"}],from:175.29500000000002,to:175.305},{signals:[{delta:20.27,assignment:\"CH\\u2083\"}],from:20.265,to:20.275}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"0bbc20eb-13e5-48c4-904e-d4ee46afbaa8\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:204,assignment:\"CO\"}],from:203.995,to:204.005},{signals:[{delta:30.03,assignment:\"CH\\u2083\"}],from:30.025000000000002,to:30.035}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"bc20eb13-e528-4490-8ed4-ee46afbaa8bc\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:115.76,assignment:\"CN\"}],from:115.75500000000001,to:115.765},{signals:[{delta:.03,assignment:\"CH\\u2083\"}],from:.024999999999999998,to:.034999999999999996}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"20eb13e5-28c4-404e-94ee-46afbaa8bc5f\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:128.57,assignment:\"CH\"}],from:128.565,to:128.575}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"eb13e528-c490-4ed4-ae46-afbaa8bc5f24\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:68.12,assignment:\"(CH\\u2083)\\u2083C\"}],from:68.11500000000001,to:68.125},{signals:[{delta:30.49,assignment:\"(CH\\u2083)\\u2083C\"}],from:30.485,to:30.494999999999997}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"13e528c4-904e-44ee-86af-baa8bc5f244f\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:124.86,assignment:\"CO\\u2082\"}],from:124.855,to:124.865}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"e528c490-4ed4-4e46-afba-a8bc5f244f0d\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:192.71,assignment:\"CS\\u2082\"}],from:192.705,to:192.715}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"28c4904e-d4ee-46af-baa8-bc5f244f0d84\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:96.57,assignment:\"CCl\\u2084\"}],from:96.565,to:96.57499999999999}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"c4904ed4-ee46-4fba-a8bc-5f244f0d84af\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:77.89,assignment:\"CH\"}],from:77.885,to:77.895}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"904ed4ee-46af-4aa8-bc5f-244f0d84af33\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:70.86,assignment:\"CH\\u2082\"}],from:70.855,to:70.865}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"4ed4ee46-afba-48bc-9f24-4f0d84af331d\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:27.31,assignment:\"CH\\u2082\"}],from:27.305,to:27.314999999999998}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"d4ee46af-baa8-4c5f-a44f-0d84af331dd1\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:43.4,assignment:\"CH\\u2082\"}],from:43.394999999999996,to:43.405}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"ee46afba-a8bc-4f24-8f0d-84af331dd118\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:53.47,assignment:\"CH\\u2082\"}],from:53.464999999999996,to:53.475}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"46afbaa8-bc5f-444f-8d84-af331dd1185b\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.47,assignment:\"CH\\u2083\"}],from:15.465,to:15.475000000000001},{signals:[{delta:65.94,assignment:\"CH\\u2082\"}],from:65.935,to:65.945}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"afbaa8bc-5f24-4f0d-84af-331dd1185b40\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:58.62,assignment:\"CH\\u2083\"}],from:58.614999999999995,to:58.625},{signals:[{delta:70.92,assignment:\"CH\\u2082\"}],from:70.915,to:70.925},{signals:[{delta:72.39,assignment:\"CH\\u2082\"}],from:72.385,to:72.395}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"baa8bc5f-244f-4d84-af33-1dd1185b401d\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:161.93,assignment:\"CH\"}],from:161.925,to:161.935},{signals:[{delta:35.22,assignment:\"CH\\u2083\"}],from:35.214999999999996,to:35.225},{signals:[{delta:30.64,assignment:\"CH\\u2083\"}],from:30.635,to:30.645}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"a8bc5f24-4f0d-44af-b31d-d1185b401da2\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:67.17,assignment:\"CH\\u2082\"}],from:67.165,to:67.175}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"bc5f244f-0d84-4f33-9dd1-185b401da2e1\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:58.63,assignment:\"CH\\u2083\"}],from:58.625,to:58.635000000000005},{signals:[{delta:72.25,assignment:\"CH\\u2082\"}],from:72.245,to:72.255}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"5f244f0d-84af-431d-9118-5b401da2e1b2\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.94,assignment:\"CH\\u2083\"}],from:6.9350000000000005,to:6.945}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"244f0d84-af33-4dd1-985b-401da2e1b2c1\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.78,assignment:\"CH\\u2083\"}],from:18.775000000000002,to:18.785},{signals:[{delta:57.81,assignment:\"CH\\u2082\"}],from:57.805,to:57.815000000000005}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"4f0d84af-331d-4118-9b40-1da2e1b2c1aa\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:20.46,assignment:\"CH\\u2083CO\"}],from:20.455000000000002,to:20.465},{signals:[{delta:170.02,assignment:\"CO\"}],from:170.01500000000001,to:170.025},{signals:[{delta:60.08,assignment:\"CH\\u2082\"}],from:60.074999999999996,to:60.085},{signals:[{delta:14.23,assignment:\"CH\\u2083\"}],from:14.225,to:14.235000000000001}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"0d84af33-1dd1-485b-801d-a2e1b2c1aa92\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:122.92,assignment:\"CH\\u2082\"}],from:122.915,to:122.925}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"84af331d-d118-4b40-9da2-e1b2c1aa92ee\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:64.29,assignment:\"CH\\u2082\"}],from:64.28500000000001,to:64.295}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"af331dd1-185b-401d-a2e1-b2c1aa92ee65\"},{names:[\"H grease\"],smiles:\"\",ranges:[{signals:[{delta:30.31,assignment:\"CH\\u2082\"}],from:30.305,to:30.314999999999998}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"331dd118-5b40-4da2-a1b2-c1aa92ee6524\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:131.72,assignment:\"C\"}],from:131.715,to:131.725},{signals:[{delta:16.84,assignment:\"CH\\u2083\"}],from:16.835,to:16.845}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"1dd1185b-401d-42e1-b2c1-aa92ee6524e2\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.34,assignment:\"CH\\u2083\"}],from:14.334999999999999,to:14.345},{signals:[{delta:23.12,assignment:\"CH\\u2082(2,5)\"}],from:23.115000000000002,to:23.125},{signals:[{delta:32.06,assignment:\"CH\\u2082(3,4)\"}],from:32.055,to:32.065000000000005}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"d1185b40-1da2-41b2-81aa-92ee6524e29b\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:1.99,assignment:\"CH\\u2083\"}],from:1.985,to:1.9949999999999999}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"185b401d-a2e1-42c1-aa92-ee6524e29b74\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:36.8,assignment:\"CH\\u2083\"}],from:36.794999999999995,to:36.805}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"5b401da2-e1b2-41aa-92ee-6524e29b749f\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:135.57,assignment:\"CH(2)\"}],from:135.565,to:135.575},{signals:[{delta:122.13,assignment:\"CH(4,5)\"}],from:122.125,to:122.13499999999999}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"401da2e1-b2c1-4a92-ae65-24e29b749f72\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-4.34,assignment:\"CH\\u2084\"}],from:-4.345,to:-4.335}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"1da2e1b2-c1aa-42ee-a524-e29b749f721b\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:49.9,assignment:\"CH\\u2083\"}],from:49.894999999999996,to:49.905}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"a2e1b2c1-aa92-4e65-a4e2-9b749f721baa\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:61.14,assignment:\"CH\\u2083\"}],from:61.135,to:61.145}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"e1b2c1aa-92ee-4524-a29b-749f721baa00\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.27,assignment:\"CH\\u2083\"}],from:14.264999999999999,to:14.275},{signals:[{delta:22.79,assignment:\"CH\\u2082(2,4)\"}],from:22.785,to:22.794999999999998},{signals:[{delta:34.54,assignment:\"CH\\u2082(3)\"}],from:34.535,to:34.545}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"b2c1aa92-ee65-44e2-9b74-9f721baa00e4\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.65,assignment:\"CH\\u2083\"}],from:16.645,to:16.654999999999998},{signals:[{delta:16.63,assignment:\"CH\\u2082\"}],from:16.625,to:16.634999999999998}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"c1aa92ee-6524-429b-b49f-721baa00e438\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.24,assignment:\"CH\\u2083\"}],from:25.235,to:25.244999999999997},{signals:[{delta:64.12,assignment:\"CH\"}],from:64.11500000000001,to:64.125}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"aa92ee65-24e2-4b74-9f72-1baa00e43862\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.32,assignment:\"CH\\u2083\"}],from:19.315,to:19.325},{signals:[{delta:115.89,assignment:\"CH\\u2082\"}],from:115.885,to:115.895},{signals:[{delta:133.61,assignment:\"CH\"}],from:133.60500000000002,to:133.615}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"92ee6524-e29b-449f-b21b-aa00e43862cd\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:150.25,assignment:\"CH(2,6)\"}],from:150.245,to:150.255},{signals:[{delta:123.46,assignment:\"CH(3,5)\"}],from:123.455,to:123.46499999999999},{signals:[{delta:135.17,assignment:\"CH(4)\"}],from:135.165,to:135.17499999999998}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"ee6524e2-9b74-4f72-9baa-00e43862cd8c\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:117.61,assignment:\"CH(2,5)\"}],from:117.605,to:117.615},{signals:[{delta:108.15,assignment:\"CH(3,4)\"}],from:108.14500000000001,to:108.155}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"6524e29b-749f-421b-aa00-e43862cd8c69\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:47.12,assignment:\"CH\\u2082(2,5)\"}],from:47.114999999999995,to:47.125},{signals:[{delta:25.75,assignment:\"CH\\u2082(3,4)\"}],from:25.745,to:25.755}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"24e29b74-9f72-4baa-80e4-3862cd8c69c4\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{delta:1.37,assignment:\"CH\\u2083\"}],from:1.3650000000000002,to:1.375}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"e29b749f-721b-4a00-a438-62cd8c69c4f2\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:67.75,assignment:\"CH\\u2082(2,5)\"}],from:67.745,to:67.755},{signals:[{delta:25.79,assignment:\"CH\\u2082(3,4)\"}],from:25.785,to:25.794999999999998}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"9b749f72-1baa-40e4-b862-cd8c69c4f246\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.37,assignment:\"CH\\u2083\"}],from:21.365000000000002,to:21.375},{signals:[{delta:137.84,assignment:\"C(1)\"}],from:137.835,to:137.845},{signals:[{delta:129.33,assignment:\"CH(2,6)\"}],from:129.32500000000002,to:129.335},{signals:[{delta:128.51,assignment:\"CH(3,5)\"}],from:128.505,to:128.515},{signals:[{delta:125.66,assignment:\"CH(4)\"}],from:125.655,to:125.66499999999999}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"749f721b-aa00-4438-a2cd-8c69c4f2466a\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:12.39,assignment:\"CH\\u2083\"}],from:12.385,to:12.395000000000001},{signals:[{delta:46.82,assignment:\"CH\\u2082\"}],from:46.815,to:46.825}],nucleus:\"13C\",solvent:\"toluene- d\\u2088\",id:\"9f721baa-00e4-4862-8d8c-69c4f2466afe\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:175.82,assignment:\"CO\"}],from:175.815,to:175.825},{signals:[{delta:20.37,assignment:\"CH\\u2083\"}],from:20.365000000000002,to:20.375}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"721baa00-e438-42cd-8c69-c4f2466afe4e\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:204.43,assignment:\"CO\"}],from:204.425,to:204.435},{signals:[{delta:30.14,assignment:\"CH\\u2083\"}],from:30.135,to:30.145}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"1baa00e4-3862-4d8c-a9c4-f2466afe4ef8\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:116.02,assignment:\"CN\"}],from:116.015,to:116.02499999999999},{signals:[{delta:.2,assignment:\"CH\\u2083\"}],from:.195,to:.20500000000000002}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"aa00e438-62cd-4c69-84f2-466afe4ef8bd\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:128.62,assignment:\"CH\"}],from:128.615,to:128.625}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"00e43862-cd8c-49c4-b246-6afe4ef8bdc1\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:68.19,assignment:\"(CH\\u2083)\\u2083C\"}],from:68.185,to:68.195},{signals:[{delta:30.47,assignment:\"(CH\\u2083)\\u2083C\"}],from:30.465,to:30.474999999999998}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"e43862cd-8c69-44f2-866a-fe4ef8bdc134\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:124.76,assignment:\"CO\\u2082\"}],from:124.75500000000001,to:124.765}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"3862cd8c-69c4-4246-aafe-4ef8bdc134db\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:192.69,assignment:\"CS\\u2082\"}],from:192.685,to:192.695}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"62cd8c69-c4f2-466a-be4e-f8bdc134dbd5\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:96.44,assignment:\"CCl\\u2084\"}],from:96.435,to:96.445}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"cd8c69c4-f246-4afe-8ef8-bdc134dbd5ce\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:77.79,assignment:\"CH\"}],from:77.78500000000001,to:77.795}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"8c69c4f2-466a-4e4e-b8bd-c134dbd5ce1c\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:70.59,assignment:\"CH\\u2082\"}],from:70.58500000000001,to:70.595}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"69c4f246-6afe-4ef8-bdc1-34dbd5ce1caa\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:27.23,assignment:\"CH\\u2082\"}],from:27.225,to:27.235}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"c4f2466a-fe4e-48bd-8134-dbd5ce1caa3f\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:43.59,assignment:\"CH\\u2082\"}],from:43.585,to:43.595000000000006}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"f2466afe-4ef8-4dc1-b4db-d5ce1caa3f78\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:53.46,assignment:\"CH\\u2082\"}],from:53.455,to:53.465}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"466afe4e-f8bd-4134-9bd5-ce1caa3f787b\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.46,assignment:\"CH\\u2083\"}],from:15.455,to:15.465000000000002},{signals:[{delta:65.94,assignment:\"CH\\u2082\"}],from:65.935,to:65.945}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"6afe4ef8-bdc1-44db-95ce-1caa3f787be8\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:58.66,assignment:\"CH\\u2083\"}],from:58.654999999999994,to:58.665},{signals:[{delta:70.87,assignment:\"CH\\u2082\"}],from:70.86500000000001,to:70.875},{signals:[{delta:72.35,assignment:\"CH\\u2082\"}],from:72.345,to:72.35499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"fe4ef8bd-c134-4bd5-8e1c-aa3f787be837\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:162.13,assignment:\"CH\"}],from:162.125,to:162.135},{signals:[{delta:35.25,assignment:\"CH\\u2083\"}],from:35.245,to:35.255},{signals:[{delta:30.72,assignment:\"CH\\u2083\"}],from:30.715,to:30.724999999999998}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"4ef8bdc1-34db-45ce-9caa-3f787be83704\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:67.16,assignment:\"CH\\u2082\"}],from:67.155,to:67.16499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"f8bdc134-dbd5-4e1c-aa3f-787be8370418\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:58.68,assignment:\"CH\\u2083\"}],from:58.675,to:58.685},{signals:[{delta:72.21,assignment:\"CH\\u2082\"}],from:72.205,to:72.21499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"bdc134db-d5ce-4caa-bf78-7be8370418e3\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.96,assignment:\"CH\\u2083\"}],from:6.955,to:6.965}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"c134dbd5-ce1c-4a3f-b87b-e8370418e366\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.72,assignment:\"CH\\u2083\"}],from:18.715,to:18.724999999999998},{signals:[{delta:57.86,assignment:\"CH\\u2082\"}],from:57.855,to:57.865}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"34dbd5ce-1caa-4f78-bbe8-370418e366af\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:20.56,assignment:\"CH\\u2083CO\"}],from:20.555,to:20.564999999999998},{signals:[{delta:170.44,assignment:\"CO\"}],from:170.435,to:170.445},{signals:[{delta:60.21,assignment:\"CH\\u2082\"}],from:60.205,to:60.215},{signals:[{delta:14.19,assignment:\"CH\\u2083\"}],from:14.184999999999999,to:14.195}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"dbd5ce1c-aa3f-487b-a837-0418e366affb\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:122.96,assignment:\"CH\\u2082\"}],from:122.955,to:122.96499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"d5ce1caa-3f78-4be8-b704-18e366affb14\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:64.34,assignment:\"CH\\u2082\"}],from:64.33500000000001,to:64.345}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"ce1caa3f-787b-4837-8418-e366affb1482\"},{names:[\"H grease\"],smiles:\"\",ranges:[{signals:[{delta:30.22,assignment:\"CH\\u2082\"}],from:30.215,to:30.224999999999998}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"1caa3f78-7be8-4704-98e3-66affb148266\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:131.79,assignment:\"C\"}],from:131.785,to:131.795},{signals:[{delta:16.95,assignment:\"CH\\u2083\"}],from:16.945,to:16.955}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"aa3f787b-e837-4418-a366-affb14826665\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.32,assignment:\"CH\\u2083\"}],from:14.315,to:14.325000000000001},{signals:[{delta:23.04,assignment:\"CH\\u2082(2,5)\"}],from:23.035,to:23.044999999999998},{signals:[{delta:31.96,assignment:\"CH\\u2082(3,4)\"}],from:31.955000000000002,to:31.965}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"3f787be8-3704-48e3-a6af-fb14826665f0\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:2.05,assignment:\"CH\\u2083\"}],from:2.045,to:2.0549999999999997}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"787be837-0418-4366-affb-14826665f033\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:36.88,assignment:\"CH\\u2083\"}],from:36.875,to:36.885000000000005}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"7be83704-18e3-46af-bb14-826665f03331\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:135.76,assignment:\"CH(2)\"}],from:135.755,to:135.765},{signals:[{delta:122.16,assignment:\"CH(4,5)\"}],from:122.155,to:122.16499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"e8370418-e366-4ffb-9482-6665f03331e9\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-4.29,assignment:\"CH\\u2084\"}],from:-4.295,to:-4.285}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"370418e3-66af-4b14-8266-65f03331e951\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:49.97,assignment:\"CH\\u2083\"}],from:49.964999999999996,to:49.975}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"0418e366-affb-4482-a665-f03331e9513a\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:61.16,assignment:\"CH\\u2083\"}],from:61.154999999999994,to:61.165}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"18e366af-fb14-4266-a5f0-3331e9513a0c\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.25,assignment:\"CH\\u2083\"}],from:14.245,to:14.255},{signals:[{delta:22.72,assignment:\"CH\\u2082(2,4)\"}],from:22.715,to:22.724999999999998},{signals:[{delta:34.45,assignment:\"CH\\u2082(3)\"}],from:34.445,to:34.455000000000005}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"e366affb-1482-4665-b033-31e9513a0c8b\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.66,assignment:\"CH\\u2083\"}],from:16.655,to:16.665},{signals:[{delta:16.6,assignment:\"CH\\u2082\"}],from:16.595000000000002,to:16.605}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"66affb14-8266-45f0-b331-e9513a0c8bb3\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.18,assignment:\"CH\\u2083\"}],from:25.175,to:25.185},{signals:[{delta:64.23,assignment:\"CH\"}],from:64.22500000000001,to:64.235}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"affb1482-6665-4033-b1e9-513a0c8bb316\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.38,assignment:\"CH\\u2083\"}],from:19.375,to:19.384999999999998},{signals:[{delta:115.92,assignment:\"CH\\u2082\"}],from:115.915,to:115.925},{signals:[{delta:133.69,assignment:\"CH\"}],from:133.685,to:133.695}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"fb148266-65f0-4331-a951-3a0c8bb316a4\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:150.27,assignment:\"CH(2,6)\"}],from:150.26500000000001,to:150.275},{signals:[{delta:123.58,assignment:\"CH(3,5)\"}],from:123.575,to:123.585},{signals:[{delta:135.28,assignment:\"CH(4)\"}],from:135.275,to:135.285}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"14826665-f033-41e9-913a-0c8bb316a48e\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:117.78,assignment:\"CH(2,5)\"}],from:117.775,to:117.785},{signals:[{delta:108.21,assignment:\"CH(3,4)\"}],from:108.205,to:108.21499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"826665f0-3331-4951-ba0c-8bb316a48e3d\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:46.86,assignment:\"CH\\u2082(2,5)\"}],from:46.855,to:46.865},{signals:[{delta:25.65,assignment:\"CH\\u2082(3,4)\"}],from:25.645,to:25.654999999999998}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"6665f033-31e9-413a-8c8b-b316a48e3d69\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{delta:1.38,assignment:\"CH\\u2083\"}],from:1.375,to:1.3849999999999998}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"65f03331-e951-4a0c-8bb3-16a48e3d6932\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:67.8,assignment:\"CH\\u2082(2,5)\"}],from:67.795,to:67.80499999999999},{signals:[{delta:25.72,assignment:\"CH\\u2082(3,4)\"}],from:25.715,to:25.724999999999998}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"f03331e9-513a-4c8b-b316-a48e3d6932c7\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.1,assignment:\"CH\\u2083\"}],from:21.095000000000002,to:21.105},{signals:[{delta:137.91,assignment:\"C(1)\"}],from:137.905,to:137.915},{signals:[{delta:129.33,assignment:\"CH(2,6)\"}],from:129.32500000000002,to:129.335},{signals:[{delta:128.56,assignment:\"CH(3,5)\"}],from:128.555,to:128.565},{signals:[{delta:125.68,assignment:\"CH(4)\"}],from:125.67500000000001,to:125.685}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"3331e951-3a0c-4bb3-96a4-8e3d6932c7e1\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:12.35,assignment:\"CH\\u2083\"}],from:12.344999999999999,to:12.355},{signals:[{delta:46.77,assignment:\"CH\\u2082\"}],from:46.765,to:46.775000000000006}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2086\",id:\"31e9513a-0c8b-4316-a48e-3d6932c7e1c5\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:175.67,assignment:\"CO\"}],from:175.665,to:175.67499999999998},{signals:[{delta:20.4,assignment:\"CH\\u2083\"}],from:20.395,to:20.404999999999998}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"e9513a0c-8bb3-46a4-8e3d-6932c7e1c5ff\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:204.83,assignment:\"CO\"}],from:204.82500000000002,to:204.835},{signals:[{delta:30.12,assignment:\"CH\\u2083\"}],from:30.115000000000002,to:30.125}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"513a0c8b-b316-448e-bd69-32c7e1c5ffec\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:115.93,assignment:\"CN\"}],from:115.92500000000001,to:115.935},{signals:[{delta:.63,assignment:\"CH\\u2083\"}],from:.625,to:.635}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"3a0c8bb3-16a4-4e3d-a932-c7e1c5ffeca9\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:128.38,assignment:\"CH\"}],from:128.375,to:128.385}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"0c8bb316-a48e-4d69-b2c7-e1c5ffeca9e0\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:68.19,assignment:\"(CH\\u2083)\\u2083C\"}],from:68.185,to:68.195},{signals:[{delta:31.13,assignment:\"(CH\\u2083)\\u2083C\"}],from:31.125,to:31.134999999999998}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"8bb316a4-8e3d-4932-87e1-c5ffeca9e05e\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:126.08,assignment:\"CO\\u2082\"}],from:126.075,to:126.085}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"b316a48e-3d69-42c7-a1c5-ffeca9e05e44\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:192.49,assignment:\"CS\\u2082\"}],from:192.485,to:192.495}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"16a48e3d-6932-47e1-85ff-eca9e05e44ce\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:96.38,assignment:\"CCl\\u2084\"}],from:96.375,to:96.38499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"a48e3d69-32c7-41c5-bfec-a9e05e44ce1a\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:77.67,assignment:\"CH\"}],from:77.665,to:77.675}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"8e3d6932-c7e1-45ff-aca9-e05e44ce1a9c\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:70.55,assignment:\"CH\\u2082\"}],from:70.545,to:70.55499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"3d6932c7-e1c5-4fec-a9e0-5e44ce1a9c5a\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:26.99,assignment:\"CH\\u2082\"}],from:26.985,to:26.994999999999997}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"6932c7e1-c5ff-4ca9-a05e-44ce1a9c5a20\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:43.6,assignment:\"CH\\u2082\"}],from:43.595,to:43.605000000000004}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"32c7e1c5-ffec-49e0-9e44-ce1a9c5a2033\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:53.54,assignment:\"CH\\u2082\"}],from:53.535,to:53.545}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"c7e1c5ff-eca9-405e-84ce-1a9c5a203311\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.35,assignment:\"CH\\u2083\"}],from:15.344999999999999,to:15.355},{signals:[{delta:65.79,assignment:\"CH\\u2082\"}],from:65.78500000000001,to:65.795}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"e1c5ffec-a9e0-4e44-8e1a-9c5a203311ee\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:58.42,assignment:\"CH\\u2083\"}],from:58.415,to:58.425000000000004},{signals:[{delta:70.56,assignment:\"CH\\u2082\"}],from:70.555,to:70.565},{signals:[{delta:72.07,assignment:\"CH\\u2082\"}],from:72.065,to:72.07499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"c5ffeca9-e05e-44ce-9a9c-5a203311eec0\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:162.01,assignment:\"CH\"}],from:162.005,to:162.015},{signals:[{delta:35.45,assignment:\"CH\\u2083\"}],from:35.445,to:35.455000000000005},{signals:[{delta:30.71,assignment:\"CH\\u2083\"}],from:30.705000000000002,to:30.715}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"ffeca9e0-5e44-4e1a-9c5a-203311eec044\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:66.95,assignment:\"CH\\u2082\"}],from:66.94500000000001,to:66.955}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"eca9e05e-44ce-4a9c-9a20-3311eec044ca\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:58.31,assignment:\"CH\\u2083\"}],from:58.305,to:58.315000000000005},{signals:[{delta:71.81,assignment:\"CH\\u2082\"}],from:71.805,to:71.815}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"a9e05e44-ce1a-4c5a-a033-11eec044ca86\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.91,assignment:\"CH\\u2083\"}],from:6.905,to:6.915}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"e05e44ce-1a9c-4a20-b311-eec044ca860c\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.55,assignment:\"CH\\u2083\"}],from:18.545,to:18.555},{signals:[{delta:57.63,assignment:\"CH\\u2082\"}],from:57.625,to:57.635000000000005}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"5e44ce1a-9c5a-4033-91ee-c044ca860cd2\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:20.5,assignment:\"CH\\u2083CO\"}],from:20.495,to:20.505},{signals:[{delta:170.2,assignment:\"CO\"}],from:170.195,to:170.20499999999998},{signals:[{delta:60.06,assignment:\"CH\\u2082\"}],from:60.055,to:60.065000000000005},{signals:[{delta:14.07,assignment:\"CH\\u2083\"}],from:14.065,to:14.075000000000001}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"44ce1a9c-5a20-4311-aec0-44ca860cd2f9\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:122.95,assignment:\"CH\\u2082\"}],from:122.94500000000001,to:122.955}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"ce1a9c5a-2033-41ee-8044-ca860cd2f971\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:64.03,assignment:\"CH\\u2082\"}],from:64.025,to:64.035}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"1a9c5a20-3311-4ec0-84ca-860cd2f97164\"},{names:[\"H grease\"],smiles:\"\",ranges:[{signals:[{delta:30.11,assignment:\"CH\\u2082\"}],from:30.105,to:30.115}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"9c5a2033-11ee-4044-8a86-0cd2f97164e1\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:131.54,assignment:\"C\"}],from:131.535,to:131.545},{signals:[{delta:16.68,assignment:\"CH\\u2083\"}],from:16.675,to:16.685}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"5a203311-eec0-44ca-860c-d2f97164e10d\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.18,assignment:\"CH\\u2083\"}],from:14.174999999999999,to:14.185},{signals:[{delta:22.86,assignment:\"CH\\u2082(2,5)\"}],from:22.855,to:22.865},{signals:[{delta:31.77,assignment:\"CH\\u2082(3,4)\"}],from:31.765,to:31.775}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"203311ee-c044-4a86-8cd2-f97164e10d7c\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:1.92,assignment:\"CH\\u2083\"}],from:1.915,to:1.9249999999999998}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"cb05f283-20c3-4974-9994-f9494cf83777\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:36.64,assignment:\"CH\\u2083\"}],from:36.635,to:36.645}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"05f28320-c349-4499-94f9-494cf83777f7\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:135.5,assignment:\"CH(2)\"}],from:135.495,to:135.505},{signals:[{delta:121.96,assignment:\"CH(4,5)\"}],from:121.955,to:121.96499999999999}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"f28320c3-4974-4994-b949-4cf83777f76c\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-4.33,assignment:\"CH\\u2084\"}],from:-4.335,to:-4.325}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"8320c349-7499-44f9-894c-f83777f76c28\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:49.66,assignment:\"CH\\u2083\"}],from:49.654999999999994,to:49.665}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"20c34974-9994-4949-8cf8-3777f76c2873\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:61.68,assignment:\"CH\\u2083\"}],from:61.675,to:61.685}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"c3497499-94f9-494c-b837-77f76c287326\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.1,assignment:\"CH\\u2083\"}],from:14.094999999999999,to:14.105},{signals:[{delta:22.54,assignment:\"CH\\u2082(2,4)\"}],from:22.535,to:22.544999999999998},{signals:[{delta:34.26,assignment:\"CH\\u2082(3)\"}],from:34.254999999999995,to:34.265}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"49749994-f949-4cf8-b777-f76c28732696\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.56,assignment:\"CH\\u2083\"}],from:16.555,to:16.564999999999998},{signals:[{delta:16.48,assignment:\"CH\\u2082\"}],from:16.475,to:16.485}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"749994f9-494c-4837-b7f7-6c2873269613\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.14,assignment:\"CH\\u2083\"}],from:25.135,to:25.145},{signals:[{delta:64.18,assignment:\"CH\"}],from:64.17500000000001,to:64.185}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"9994f949-4cf8-4777-b76c-2873269613b1\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.32,assignment:\"CH\\u2083\"}],from:19.315,to:19.325},{signals:[{delta:115.86,assignment:\"CH\\u2082\"}],from:115.855,to:115.865},{signals:[{delta:133.57,assignment:\"CH\"}],from:133.565,to:133.575}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"94f9494c-f837-47f7-ac28-73269613b16b\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:149.93,assignment:\"CH(2,6)\"}],from:149.925,to:149.935},{signals:[{delta:123.49,assignment:\"CH(3,5)\"}],from:123.485,to:123.49499999999999},{signals:[{delta:135.32,assignment:\"CH(4)\"}],from:135.315,to:135.325}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"f9494cf8-3777-476c-a873-269613b16b7c\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:117.65,assignment:\"CH(2,5)\"}],from:117.64500000000001,to:117.655},{signals:[{delta:108.03,assignment:\"CH(3,4)\"}],from:108.025,to:108.035}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"494cf837-77f7-4c28-b326-9613b16b7c61\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:46.75,assignment:\"CH\\u2082(2,5)\"}],from:46.745,to:46.755},{signals:[{delta:25.59,assignment:\"CH\\u2082(3,4)\"}],from:25.585,to:25.595}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"4cf83777-f76c-4873-a696-13b16b7c6188\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{delta:1.09,assignment:\"CH\\u2083\"}],from:1.0850000000000002,to:1.095}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"f83777f7-6c28-4326-9613-b16b7c61884d\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:67.64,assignment:\"CH\\u2082(2,5)\"}],from:67.635,to:67.645},{signals:[{delta:25.68,assignment:\"CH\\u2082(3,4)\"}],from:25.675,to:25.685}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"3777f76c-2873-4696-93b1-6b7c61884dc0\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.23,assignment:\"CH\\u2083\"}],from:21.225,to:21.235},{signals:[{delta:137.65,assignment:\"C(1)\"}],from:137.645,to:137.655},{signals:[{delta:129.12,assignment:\"CH(2,6)\"}],from:129.115,to:129.125},{signals:[{delta:128.31,assignment:\"CH(3,5)\"}],from:128.305,to:128.315},{signals:[{delta:125.43,assignment:\"CH(4)\"}],from:125.42500000000001,to:125.435}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"77f76c28-7326-4613-b16b-7c61884dc0b7\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:11.87,assignment:\"CH\\u2083\"}],from:11.864999999999998,to:11.875},{signals:[{delta:46.36,assignment:\"CH\\u2082\"}],from:46.355,to:46.365}],nucleus:\"13C\",solvent:\"C\\u2086D\\u2085Cl\",id:\"f76c2873-2696-43b1-ab7c-61884dc0b7c8\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:172.31,assignment:\"CO\"}],from:172.305,to:172.315},{signals:[{delta:20.51,assignment:\"CH\\u2083\"}],from:20.505000000000003,to:20.515}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"6c287326-9613-416b-bc61-884dc0b7c8ed\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:205.87,assignment:\"CO\"}],from:205.865,to:205.875},{signals:[{delta:30.6,assignment:\"CH\\u2083\"}],from:30.595000000000002,to:30.605}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"28732696-13b1-4b7c-a188-4dc0b7c8ed11\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:117.6,assignment:\"CN\"}],from:117.595,to:117.60499999999999},{signals:[{delta:1.12,assignment:\"CH\\u2083\"}],from:1.1150000000000002,to:1.125}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"73269613-b16b-4c61-884d-c0b7c8ed11a2\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:129.15,assignment:\"CH\"}],from:129.145,to:129.155}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"269613b1-6b7c-4188-8dc0-b7c8ed11a2e9\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:68.13,assignment:\"(CH\\u2083)\\u2083C\"}],from:68.125,to:68.13499999999999},{signals:[{delta:30.72,assignment:\"(CH\\u2083)\\u2083C\"}],from:30.715,to:30.724999999999998}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"9613b16b-7c61-484d-80b7-c8ed11a2e930\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:125.81,assignment:\"CO\\u2082\"}],from:125.805,to:125.815}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"13b16b7c-6188-4dc0-b7c8-ed11a2e930a6\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:193.58,assignment:\"CS\\u2082\"}],from:193.57500000000002,to:193.585}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"b16b7c61-884d-40b7-88ed-11a2e930a6ce\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:96.65,assignment:\"CCl\\u2084\"}],from:96.64500000000001,to:96.655}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"6b7c6188-4dc0-47c8-ad11-a2e930a6ce8e\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:79.19,assignment:\"CH\"}],from:79.185,to:79.195}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"7c61884d-c0b7-48ed-91a2-e930a6ce8e3c\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:71.25,assignment:\"CH\\u2082\"}],from:71.245,to:71.255}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"61884dc0-b7c8-4d11-a2e9-30a6ce8e3c6f\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:27.51,assignment:\"CH\\u2082\"}],from:27.505000000000003,to:27.515}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"884dc0b7-c8ed-41a2-a930-a6ce8e3c6f2d\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:45.25,assignment:\"CH\\u2082\"}],from:45.245,to:45.255}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"4dc0b7c8-ed11-42e9-b0a6-ce8e3c6f2d02\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:54.95,assignment:\"CH\\u2082\"}],from:54.945,to:54.955000000000005}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"c0b7c8ed-11a2-4930-a6ce-8e3c6f2d023c\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.78,assignment:\"CH\\u2083\"}],from:15.774999999999999,to:15.785},{signals:[{delta:66.12,assignment:\"CH\\u2082\"}],from:66.11500000000001,to:66.125}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"b7c8ed11-a2e9-40a6-8e8e-3c6f2d023ccd\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:58.77,assignment:\"CH\\u2083\"}],from:58.765,to:58.775000000000006},{signals:[{delta:71.03,assignment:\"CH\\u2082\"}],from:71.025,to:71.035},{signals:[{delta:72.63,assignment:\"CH\\u2082\"}],from:72.625,to:72.63499999999999}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"c8ed11a2-e930-46ce-8e3c-6f2d023ccd9a\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:162.79,assignment:\"CH\"}],from:162.785,to:162.795},{signals:[{delta:36.15,assignment:\"CH\\u2083\"}],from:36.144999999999996,to:36.155},{signals:[{delta:31.03,assignment:\"CH\\u2083\"}],from:31.025000000000002,to:31.035}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"ed11a2e9-30a6-4e8e-bc6f-2d023ccd9af3\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:67.6,assignment:\"CH\\u2082\"}],from:67.595,to:67.60499999999999}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"11a2e930-a6ce-4e3c-af2d-023ccd9af36e\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:58.45,assignment:\"CH\\u2083\"}],from:58.445,to:58.455000000000005},{signals:[{delta:72.47,assignment:\"CH\\u2082\"}],from:72.465,to:72.475}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"a2e930a6-ce8e-4c6f-ad02-3ccd9af36ed6\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.88,assignment:\"CH\\u2083\"}],from:6.875,to:6.885}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"e930a6ce-8e3c-4f2d-823c-cd9af36ed649\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.89,assignment:\"CH\\u2083\"}],from:18.885,to:18.895},{signals:[{delta:57.72,assignment:\"CH\\u2082\"}],from:57.714999999999996,to:57.725}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"30a6ce8e-3c6f-4d02-bccd-9af36ed64953\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:20.83,assignment:\"CH\\u2083CO\"}],from:20.825,to:20.834999999999997},{signals:[{delta:170.96,assignment:\"CO\"}],from:170.955,to:170.965},{signals:[{delta:60.56,assignment:\"CH\\u2082\"}],from:60.555,to:60.565000000000005},{signals:[{delta:14.5,assignment:\"CH\\u2083\"}],from:14.495,to:14.505}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"a6ce8e3c-6f2d-423c-8d9a-f36ed64953f1\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:123.47,assignment:\"CH\\u2082\"}],from:123.465,to:123.475}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"ce8e3c6f-2d02-4ccd-9af3-6ed64953f178\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:64.26,assignment:\"CH\\u2082\"}],from:64.25500000000001,to:64.265}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"8e3c6f2d-023c-4d9a-b36e-d64953f1786e\"},{names:[\"H grease\"],smiles:\"\",ranges:[],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"3c6f2d02-3ccd-4af3-aed6-4953f1786e71\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:132.22,assignment:\"C\"}],from:132.215,to:132.225},{signals:[{delta:16.86,assignment:\"CH\\u2083\"}],from:16.855,to:16.865}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"6f2d023c-cd9a-436e-9649-53f1786e7183\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.34,assignment:\"CH\\u2083\"}],from:14.334999999999999,to:14.345},{signals:[{delta:23.28,assignment:\"CH\\u2082(2,5)\"}],from:23.275000000000002,to:23.285},{signals:[{delta:32.3,assignment:\"CH\\u2082(3,4)\"}],from:32.294999999999995,to:32.305}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"2d023ccd-9af3-4ed6-8953-f1786e7183fa\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:2.01,assignment:\"CH\\u2083\"}],from:2.005,to:2.0149999999999997}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"023ccd9a-f36e-4649-93f1-786e7183faa3\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:37.04,assignment:\"CH\\u2083\"}],from:37.035,to:37.045}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"3ccd9af3-6ed6-4953-b178-6e7183faa3f0\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:135.89,assignment:\"CH(2)\"}],from:135.885,to:135.89499999999998},{signals:[{delta:122.31,assignment:\"CH(4,5)\"}],from:122.305,to:122.315}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"cd9af36e-d649-43f1-b86e-7183faa3f05e\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-5.33,assignment:\"CH\\u2084\"}],from:-5.335,to:-5.325}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"9af36ed6-4953-4178-ae71-83faa3f05e23\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:49.77,assignment:\"CH\\u2083\"}],from:49.765,to:49.775000000000006}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"f36ed649-53f1-486e-b183-faa3f05e2352\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:63.21,assignment:\"CH\\u2083\"}],from:63.205,to:63.215}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"6ed64953-f178-4e71-83fa-a3f05e2352d3\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.29,assignment:\"CH\\u2083\"}],from:14.284999999999998,to:14.295},{signals:[{delta:22.98,assignment:\"CH\\u2082(2,4)\"}],from:22.975,to:22.985},{signals:[{delta:34.83,assignment:\"CH\\u2082(3)\"}],from:34.824999999999996,to:34.835}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"d64953f1-786e-4183-baa3-f05e2352d3d7\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.68,assignment:\"CH\\u2083\"}],from:16.675,to:16.685},{signals:[{delta:16.78,assignment:\"CH\\u2082\"}],from:16.775000000000002,to:16.785}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"4953f178-6e71-43fa-a3f0-5e2352d3d7f3\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.67,assignment:\"CH\\u2083\"}],from:25.665000000000003,to:25.675},{signals:[{delta:63.85,assignment:\"CH\"}],from:63.845,to:63.855000000000004}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"53f1786e-7183-4aa3-b05e-2352d3d7f3cd\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.42,assignment:\"CH\\u2083\"}],from:19.415000000000003,to:19.425},{signals:[{delta:116.03,assignment:\"CH\\u2082\"}],from:116.025,to:116.035},{signals:[{delta:134.34,assignment:\"CH\"}],from:134.335,to:134.345}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"f1786e71-83fa-43f0-9e23-52d3d7f3cd89\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:150.67,assignment:\"CH(2,6)\"}],from:150.665,to:150.67499999999998},{signals:[{delta:124.57,assignment:\"CH(3,5)\"}],from:124.565,to:124.57499999999999},{signals:[{delta:136.56,assignment:\"CH(4)\"}],from:136.555,to:136.565}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"786e7183-faa3-405e-a352-d3d7f3cd8970\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:117.98,assignment:\"CH(2,5)\"}],from:117.97500000000001,to:117.985},{signals:[{delta:108.04,assignment:\"CH(3,4)\"}],from:108.03500000000001,to:108.045}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"6e7183fa-a3f0-4e23-92d3-d7f3cd897017\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"7183faa3-f05e-4352-93d7-f3cd897017ac\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{delta:1.4,assignment:\"CH\\u2083\"}],from:1.395,to:1.4049999999999998}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"83faa3f0-5e23-42d3-97f3-cd897017ac19\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:68.07,assignment:\"CH\\u2082(2,5)\"}],from:68.065,to:68.07499999999999},{signals:[{delta:26.15,assignment:\"CH\\u2082(3,4)\"}],from:26.145,to:26.154999999999998}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"faa3f05e-2352-43d7-b3cd-897017ac1924\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.46,assignment:\"CH\\u2083\"}],from:21.455000000000002,to:21.465},{signals:[{delta:138.48,assignment:\"C(1)\"}],from:138.475,to:138.48499999999999},{signals:[{delta:129.76,assignment:\"CH(2,6)\"}],from:129.755,to:129.765},{signals:[{delta:129.03,assignment:\"CH(3,5)\"}],from:129.025,to:129.035},{signals:[{delta:126.12,assignment:\"CH(4)\"}],from:126.11500000000001,to:126.125}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"a3f05e23-52d3-47f3-8d89-7017ac19249b\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:12.49,assignment:\"CH\\u2083\"}],from:12.485,to:12.495000000000001},{signals:[{delta:47.07,assignment:\"CH\\u2082\"}],from:47.065,to:47.075}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"f05e2352-d3d7-43cd-8970-17ac19249bf2\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:171.93,assignment:\"CO\"}],from:171.925,to:171.935},{signals:[{delta:20.95,assignment:\"CH\\u2083\"}],from:20.945,to:20.955}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"5e2352d3-d7f3-4d89-b017-ac19249bf2c6\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:206.31,assignment:\"CO\"}],from:206.305,to:206.315},{signals:[{delta:30.56,assignment:\"CH\\u2083\"}],from:30.555,to:30.564999999999998}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"2352d3d7-f3cd-4970-97ac-19249bf2c654\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:117.91,assignment:\"CN\"}],from:117.905,to:117.91499999999999},{signals:[{delta:1.03,assignment:\"CH\\u2083\"}],from:1.0250000000000001,to:1.035}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"52d3d7f3-cd89-4017-ac19-249bf2c65446\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:128.3,assignment:\"CH\"}],from:128.29500000000002,to:128.305}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"d3d7f3cd-8970-47ac-9924-9bf2c65446d5\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:66.88,assignment:\"(CH\\u2083)\\u2083C\"}],from:66.875,to:66.88499999999999},{signals:[{delta:30.38,assignment:\"(CH\\u2083)\\u2083C\"}],from:30.375,to:30.384999999999998}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"d7f3cd89-7017-4c19-a49b-f2c65446d5d7\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:124.21,assignment:\"CO\\u2082\"}],from:124.205,to:124.21499999999999}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"f3cd8970-17ac-4924-9bf2-c65446d5d71a\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:192.63,assignment:\"CS\\u2082\"}],from:192.625,to:192.635}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"cd897017-ac19-449b-b2c6-5446d5d71afe\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:95.44,assignment:\"CCl\\u2084\"}],from:95.435,to:95.445}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"897017ac-1924-4bf2-8654-46d5d71afe1d\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:79.16,assignment:\"CH\"}],from:79.155,to:79.16499999999999}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"7017ac19-249b-42c6-9446-d5d71afe1d8b\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:69.85,assignment:\"CH\\u2082\"}],from:69.845,to:69.85499999999999}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"17ac1924-9bf2-4654-86d5-d71afe1d8b38\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:26.33,assignment:\"CH\\u2082\"}],from:26.325,to:26.334999999999997}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"ac19249b-f2c6-4446-95d7-1afe1d8b38c0\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:45.02,assignment:\"CH\\u2082\"}],from:45.015,to:45.025000000000006}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"19249bf2-c654-46d5-971a-fe1d8b38c030\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:54.84,assignment:\"CH\\u2082\"}],from:54.835,to:54.845000000000006}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"249bf2c6-5446-45d7-9afe-1d8b38c03070\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.12,assignment:\"CH\\u2083\"}],from:15.114999999999998,to:15.125},{signals:[{delta:62.05,assignment:\"CH\\u2082\"}],from:62.044999999999995,to:62.055}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"9bf2c654-46d5-471a-be1d-8b38c03070a9\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:57.98,assignment:\"CH\\u2083\"}],from:57.974999999999994,to:57.985},{signals:[{delta:69.54,assignment:\"CH\\u2082\"}],from:69.53500000000001,to:69.545},{signals:[{delta:71.25,assignment:\"CH\\u2082\"}],from:71.245,to:71.255}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"f2c65446-d5d7-4afe-9d8b-38c03070a932\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:162.29,assignment:\"CH\"}],from:162.285,to:162.295},{signals:[{delta:35.73,assignment:\"CH\\u2083\"}],from:35.724999999999994,to:35.735},{signals:[{delta:30.73,assignment:\"CH\\u2083\"}],from:30.725,to:30.735}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"c65446d5-d71a-4e1d-8b38-c03070a932f9\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:66.36,assignment:\"CH\\u2082\"}],from:66.355,to:66.365}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"5446d5d7-1afe-4d8b-b8c0-3070a932f94a\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:58.03,assignment:\"CH\\u2083\"}],from:58.025,to:58.035000000000004},{signals:[{delta:71.17,assignment:\"CH\\u2082\"}],from:71.165,to:71.175}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"46d5d71a-fe1d-4b38-8030-70a932f94a4b\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.61,assignment:\"CH\\u2083\"}],from:6.605,to:6.615}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"d5d71afe-1d8b-48c0-b070-a932f94a4bdd\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.51,assignment:\"CH\\u2083\"}],from:18.505000000000003,to:18.515},{signals:[{delta:56.07,assignment:\"CH\\u2082\"}],from:56.065,to:56.075}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"d71afe1d-8b38-4030-b0a9-32f94a4bdd84\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:20.68,assignment:\"CH\\u2083CO\"}],from:20.675,to:20.685},{signals:[{delta:170.31,assignment:\"CO\"}],from:170.305,to:170.315},{signals:[{delta:59.74,assignment:\"CH\\u2082\"}],from:59.735,to:59.745000000000005},{signals:[{delta:14.4,assignment:\"CH\\u2083\"}],from:14.395,to:14.405000000000001}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"1afe1d8b-38c0-4070-a932-f94a4bdd84a7\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:123.52,assignment:\"CH\\u2082\"}],from:123.515,to:123.52499999999999}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"fe1d8b38-c030-40a9-b2f9-4a4bdd84a7aa\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:62.76,assignment:\"CH\\u2082\"}],from:62.754999999999995,to:62.765}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"1d8b38c0-3070-4932-b94a-4bdd84a7aabc\"},{names:[\"H grease\"],smiles:\"\",ranges:[],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"8b38c030-70a9-42f9-8a4b-dd84a7aabc8c\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:131.1,assignment:\"C\"}],from:131.095,to:131.105},{signals:[{delta:16.6,assignment:\"CH\\u2083\"}],from:16.595000000000002,to:16.605}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"38c03070-a932-494a-8bdd-84a7aabc8c00\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:13.88,assignment:\"CH\\u2083\"}],from:13.875,to:13.885000000000002},{signals:[{delta:22.05,assignment:\"CH\\u2082(2,5)\"}],from:22.045,to:22.055},{signals:[{delta:30.95,assignment:\"CH\\u2082(3,4)\"}],from:30.945,to:30.955}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"c03070a9-32f9-4a4b-9d84-a7aabc8c00bb\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:1.96,assignment:\"CH\\u2083\"}],from:1.955,to:1.9649999999999999}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"3070a932-f94a-4bdd-84a7-aabc8c00bb03\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:36.42,assignment:\"CH\\u2083\"}],from:36.415,to:36.425000000000004}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"70a932f9-4a4b-4d84-a7aa-bc8c00bb03c3\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:135.15,assignment:\"CH(2)\"}],from:135.145,to:135.155},{signals:[{delta:121.55,assignment:\"CH(4,5)\"}],from:121.545,to:121.55499999999999}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"a932f94a-4bdd-44a7-aabc-8c00bb03c376\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-4.01,assignment:\"CH\\u2084\"}],from:-4.015,to:-4.005}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"32f94a4b-dd84-47aa-bc8c-00bb03c376fc\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:48.59,assignment:\"CH\\u2083\"}],from:48.585,to:48.595000000000006}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"f94a4bdd-84a7-4abc-8c00-bb03c376fc15\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:63.28,assignment:\"CH\\u2083\"}],from:63.275,to:63.285000000000004}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"4a4bdd84-a7aa-4c8c-80bb-03c376fc1516\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:13.28,assignment:\"CH\\u2083\"}],from:13.274999999999999,to:13.285},{signals:[{delta:21.7,assignment:\"CH\\u2082(2,4)\"}],from:21.695,to:21.705},{signals:[{delta:33.48,assignment:\"CH\\u2082(3)\"}],from:33.474999999999994,to:33.485}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"4bdd84a7-aabc-4c00-bb03-c376fc151687\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.34,assignment:\"CH\\u2083\"}],from:16.335,to:16.345},{signals:[{delta:15.67,assignment:\"CH\\u2082\"}],from:15.665,to:15.675}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"dd84a7aa-bc8c-40bb-83c3-76fc1516875b\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.43,assignment:\"CH\\u2083\"}],from:25.425,to:25.435},{signals:[{delta:64.92,assignment:\"CH\"}],from:64.915,to:64.925}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"84a7aabc-8c00-4b03-8376-fc1516875bd4\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.2,assignment:\"CH\\u2083\"}],from:19.195,to:19.205},{signals:[{delta:116.07,assignment:\"CH\\u2082\"}],from:116.065,to:116.07499999999999},{signals:[{delta:133.55,assignment:\"CH\"}],from:133.54500000000002,to:133.555}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"a7aabc8c-00bb-43c3-b6fc-1516875bd4f4\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:149.58,assignment:\"CH(2,6)\"}],from:149.57500000000002,to:149.585},{signals:[{delta:123.84,assignment:\"CH(3,5)\"}],from:123.83500000000001,to:123.845},{signals:[{delta:136.05,assignment:\"CH(4)\"}],from:136.04500000000002,to:136.055}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"aabc8c00-bb03-4376-bc15-16875bd4f4ad\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:117.32,assignment:\"CH(2,5)\"}],from:117.315,to:117.32499999999999},{signals:[{delta:107.07,assignment:\"CH(3,4)\"}],from:107.065,to:107.07499999999999}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"bc8c00bb-03c3-46fc-9516-875bd4f4adcc\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:46.51,assignment:\"CH\\u2082(2,5)\"}],from:46.504999999999995,to:46.515},{signals:[{delta:25.26,assignment:\"CH\\u2082(3,4)\"}],from:25.255000000000003,to:25.265}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"8c00bb03-c376-4c15-9687-5bd4f4adccd5\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"00bb03c3-76fc-4516-875b-d4f4adccd515\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:67.03,assignment:\"CH\\u2082(2,5)\"}],from:67.025,to:67.035},{signals:[{delta:25.14,assignment:\"CH\\u2082(3,4)\"}],from:25.135,to:25.145}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"bb03c376-fc15-4687-9bd4-f4adccd515fb\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:20.99,assignment:\"CH\\u2083\"}],from:20.985,to:20.994999999999997},{signals:[{delta:137.35,assignment:\"C(1)\"}],from:137.345,to:137.355},{signals:[{delta:128.88,assignment:\"CH(2,6)\"}],from:128.875,to:128.885},{signals:[{delta:128.18,assignment:\"CH(3,5)\"}],from:128.175,to:128.185},{signals:[{delta:125.29,assignment:\"CH(4)\"}],from:125.28500000000001,to:125.295}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"03c376fc-1516-475b-94f4-adccd515fb75\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:11.74,assignment:\"CH\\u2083\"}],from:11.735,to:11.745000000000001},{signals:[{delta:45.74,assignment:\"CH\\u2082\"}],from:45.735,to:45.745000000000005}],nucleus:\"13C\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"c376fc15-1687-4bd4-b4ad-ccd515fb756e\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:173.21,assignment:\"CO\"}],from:173.205,to:173.215},{signals:[{delta:20.73,assignment:\"CH\\u2083\"}],from:20.725,to:20.735}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"76fc1516-875b-44f4-adcc-d515fb756e9f\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:207.43,assignment:\"CO\"}],from:207.425,to:207.435},{signals:[{delta:30.91,assignment:\"CH\\u2083\"}],from:30.905,to:30.915}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"fc151687-5bd4-44ad-8cd5-15fb756e9f0b\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:118.26,assignment:\"CN\"}],from:118.25500000000001,to:118.265},{signals:[{delta:1.79,assignment:\"CH\\u2083\"}],from:1.7850000000000001,to:1.795}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"1516875b-d4f4-4dcc-9515-fb756e9f0bd5\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:129.32,assignment:\"CH\"}],from:129.315,to:129.325}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"16875bd4-f4ad-4cd5-95fb-756e9f0bd5ae\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:68.74,assignment:\"(CH\\u2083)\\u2083C\"}],from:68.735,to:68.74499999999999},{signals:[{delta:30.68,assignment:\"(CH\\u2083)\\u2083C\"}],from:30.675,to:30.685}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"875bd4f4-adcc-4515-bb75-6e9f0bd5ae32\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:125.89,assignment:\"CO\\u2082\"}],from:125.885,to:125.895}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"5bd4f4ad-ccd5-45fb-b56e-9f0bd5ae326e\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:193.6,assignment:\"CS\\u2082\"}],from:193.595,to:193.605}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"d4f4adcc-d515-4b75-ae9f-0bd5ae326ecd\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:96.68,assignment:\"CCl\\u2084\"}],from:96.67500000000001,to:96.685}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"f4adccd5-15fb-456e-9f0b-d5ae326ecd77\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:79.17,assignment:\"CH\"}],from:79.165,to:79.175}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"adccd515-fb75-4e9f-8bd5-ae326ecd77c8\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:71.22,assignment:\"CH\\u2082\"}],from:71.215,to:71.225}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"ccd515fb-756e-4f0b-95ae-326ecd77c873\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:27.63,assignment:\"CH\\u2082\"}],from:27.625,to:27.634999999999998}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"d515fb75-6e9f-4bd5-ae32-6ecd77c873bd\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:45.54,assignment:\"CH\\u2082\"}],from:45.535,to:45.545}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"15fb756e-9f0b-45ae-b26e-cd77c873bd0c\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:55.32,assignment:\"CH\\u2082\"}],from:55.315,to:55.325}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"fb756e9f-0bd5-4e32-aecd-77c873bd0ca1\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.63,assignment:\"CH\\u2083\"}],from:15.625,to:15.635000000000002},{signals:[{delta:66.32,assignment:\"CH\\u2082\"}],from:66.315,to:66.32499999999999}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"756e9f0b-d5ae-426e-8d77-c873bd0ca164\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:58.9,assignment:\"CH\\u2083\"}],from:58.894999999999996,to:58.905},{signals:[{delta:70.99,assignment:\"CH\\u2082\"}],from:70.985,to:70.99499999999999},{signals:[{delta:72.63,assignment:\"CH\\u2082\"}],from:72.625,to:72.63499999999999}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"6e9f0bd5-ae32-4ecd-b7c8-73bd0ca164c3\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:163.31,assignment:\"CH\"}],from:163.305,to:163.315},{signals:[{delta:36.57,assignment:\"CH\\u2083\"}],from:36.565,to:36.575},{signals:[{delta:31.32,assignment:\"CH\\u2083\"}],from:31.315,to:31.325}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"9f0bd5ae-326e-4d77-8873-bd0ca164c3b1\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:67.72,assignment:\"CH\\u2082\"}],from:67.715,to:67.725}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"0bd5ae32-6ecd-47c8-b3bd-0ca164c3b10c\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:58.89,assignment:\"CH\\u2083\"}],from:58.885,to:58.895},{signals:[{delta:72.47,assignment:\"CH\\u2082\"}],from:72.465,to:72.475}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"d5ae326e-cd77-4873-bd0c-a164c3b10cae\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.99,assignment:\"CH\\u2083\"}],from:6.985,to:6.995}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"ae326ecd-77c8-43bd-8ca1-64c3b10cae73\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.8,assignment:\"CH\\u2083\"}],from:18.795,to:18.805},{signals:[{delta:57.96,assignment:\"CH\\u2082\"}],from:57.955,to:57.965}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"326ecd77-c873-4d0c-a164-c3b10cae7357\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:21.16,assignment:\"CH\\u2083CO\"}],from:21.155,to:21.165},{signals:[{delta:171.68,assignment:\"CO\"}],from:171.675,to:171.685},{signals:[{delta:60.98,assignment:\"CH\\u2082\"}],from:60.974999999999994,to:60.985},{signals:[{delta:14.54,assignment:\"CH\\u2083\"}],from:14.534999999999998,to:14.545}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"6ecd77c8-73bd-4ca1-a4c3-b10cae735773\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:123.69,assignment:\"CH\\u2082\"}],from:123.685,to:123.695}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"cd77c873-bd0c-4164-83b1-0cae7357738a\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:64.22,assignment:\"CH\\u2082\"}],from:64.215,to:64.225}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"77c873bd-0ca1-44c3-b10c-ae7357738a07\"},{names:[\"H grease\"],smiles:\"\",ranges:[],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"c873bd0c-a164-43b1-8cae-7357738a076c\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:132.61,assignment:\"C\"}],from:132.60500000000002,to:132.615},{signals:[{delta:16.94,assignment:\"CH\\u2083\"}],from:16.935000000000002,to:16.945}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"73bd0ca1-64c3-410c-ae73-57738a076cdc\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.43,assignment:\"CH\\u2083\"}],from:14.424999999999999,to:14.435},{signals:[{delta:23.4,assignment:\"CH\\u2082(2,5)\"}],from:23.395,to:23.404999999999998},{signals:[{delta:32.36,assignment:\"CH\\u2082(3,4)\"}],from:32.355,to:32.365}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"bd0ca164-c3b1-4cae-b357-738a076cdc27\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:2.07,assignment:\"CH\\u2083\"}],from:2.065,to:2.0749999999999997}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"0ca164c3-b10c-4e73-9773-8a076cdc27b7\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:37.1,assignment:\"CH\\u2083\"}],from:37.095,to:37.105000000000004}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"a164c3b1-0cae-4357-b38a-076cdc27b760\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:136.33,assignment:\"CH(2)\"}],from:136.32500000000002,to:136.335},{signals:[{delta:122.78,assignment:\"CH(4,5)\"}],from:122.775,to:122.785}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"64c3b10c-ae73-4773-8a07-6cdc27b76027\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-4.61,assignment:\"CH\\u2084\"}],from:-4.615,to:-4.605}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"c3b10cae-7357-438a-876c-dc27b76027d8\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:49.9,assignment:\"CH\\u2083\"}],from:49.894999999999996,to:49.905}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"b10cae73-5773-4a07-acdc-27b76027d868\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:63.66,assignment:\"CH\\u2083\"}],from:63.654999999999994,to:63.665}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"0cae7357-738a-476c-9c27-b76027d8686c\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.37,assignment:\"CH\\u2083\"}],from:14.364999999999998,to:14.375},{signals:[{delta:23.08,assignment:\"CH\\u2082(2,4)\"}],from:23.075,to:23.084999999999997},{signals:[{delta:34.89,assignment:\"CH\\u2082(3)\"}],from:34.885,to:34.895}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"ae735773-8a07-4cdc-a7b7-6027d8686ca0\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.73,assignment:\"CH\\u2083\"}],from:16.725,to:16.735},{signals:[{delta:16.91,assignment:\"CH\\u2082\"}],from:16.905,to:16.915}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"7357738a-076c-4c27-b760-27d8686ca05b\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.55,assignment:\"CH\\u2083\"}],from:25.545,to:25.555},{signals:[{delta:64.3,assignment:\"CH\"}],from:64.295,to:64.30499999999999}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"57738a07-6cdc-47b7-a027-d8686ca05bd3\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.48,assignment:\"CH\\u2083\"}],from:19.475,to:19.485},{signals:[{delta:116.12,assignment:\"CH\\u2082\"}],from:116.11500000000001,to:116.125},{signals:[{delta:134.78,assignment:\"CH\"}],from:134.775,to:134.785}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"738a076c-dc27-4760-a7d8-686ca05bd3d2\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:150.76,assignment:\"CH(2,6)\"}],from:150.755,to:150.765},{signals:[{delta:127.76,assignment:\"CH(3,5)\"}],from:127.75500000000001,to:127.765},{signals:[{delta:136.89,assignment:\"CH(4)\"}],from:136.885,to:136.89499999999998}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"8a076cdc-27b7-4027-9868-6ca05bd3d2ad\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:118.47,assignment:\"CH(2,5)\"}],from:118.465,to:118.475},{signals:[{delta:108.31,assignment:\"CH(3,4)\"}],from:108.305,to:108.315}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"076cdc27-b760-47d8-a86c-a05bd3d2adb9\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:47.57,assignment:\"CH\\u2082(2,5)\"}],from:47.565,to:47.575},{signals:[{delta:26.34,assignment:\"CH\\u2082(3,4)\"}],from:26.335,to:26.345}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"6cdc27b7-6027-4868-aca0-5bd3d2adb937\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"dc27b760-27d8-486c-a05b-d3d2adb93757\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:68.33,assignment:\"CH\\u2082(2,5)\"}],from:68.325,to:68.335},{signals:[{delta:26.27,assignment:\"CH\\u2082(3,4)\"}],from:26.265,to:26.275}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"27b76027-d868-4ca0-9bd3-d2adb9375758\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.5,assignment:\"CH\\u2083\"}],from:21.495,to:21.505},{signals:[{delta:138.9,assignment:\"C(1)\"}],from:138.895,to:138.905},{signals:[{delta:129.94,assignment:\"CH(2,6)\"}],from:129.935,to:129.945},{signals:[{delta:129.23,assignment:\"CH(3,5)\"}],from:129.225,to:129.23499999999999},{signals:[{delta:126.28,assignment:\"CH(4)\"}],from:126.275,to:126.285}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"b76027d8-686c-405b-93d2-adb937575806\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:12.38,assignment:\"CH\\u2083\"}],from:12.375,to:12.385000000000002},{signals:[{delta:47.1,assignment:\"CH\\u2082\"}],from:47.095,to:47.105000000000004}],nucleus:\"13C\",solvent:\"CD\\u2083CN\",id:\"6027d868-6ca0-4bd3-92ad-b93757580605\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:177.96,assignment:\"CO\"}],from:177.955,to:177.965},{signals:[{delta:20.91,assignment:\"CH\\u2083\"}],from:20.905,to:20.915}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"27d8686c-a05b-43d2-adb9-3757580605d7\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:32.35,assignment:\"CO\"}],from:32.345,to:32.355000000000004},{signals:[{delta:214.98,assignment:\"CH\\u2083\"}],from:214.975,to:214.98499999999999}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"d8686ca0-5bd3-42ad-b937-57580605d76e\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:118.95,assignment:\"CN\"}],from:118.94500000000001,to:118.955},{signals:[{delta:1,assignment:\"CH\\u2083\"}],from:.995,to:1.005}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"686ca05b-d3d2-4db9-b757-580605d76e0b\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:129.84,assignment:\"CH\"}],from:129.835,to:129.845}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"6ca05bd3-d2ad-4937-9758-0605d76e0b43\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:72.35,assignment:\"(CH\\u2083)\\u2083C\"}],from:72.345,to:72.35499999999999},{signals:[{delta:31.07,assignment:\"(CH\\u2083)\\u2083C\"}],from:31.065,to:31.075}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"a05bd3d2-adb9-4757-9806-05d76e0b4366\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:126.92,assignment:\"CO\\u2082\"}],from:126.915,to:126.925}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"5bd3d2ad-b937-4758-8605-d76e0b4366ea\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:196.26,assignment:\"CS\\u2082\"}],from:196.255,to:196.265}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"d3d2adb9-3757-4806-85d7-6e0b4366eaeb\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:97.74,assignment:\"CCl\\u2084\"}],from:97.735,to:97.74499999999999}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"d2adb937-5758-4605-976e-0b4366eaeb6d\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:78.83,assignment:\"CH\"}],from:78.825,to:78.835}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"adb93757-5806-45d7-ae0b-4366eaeb6dbc\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:70.8,assignment:\"CH\\u2082\"}],from:70.795,to:70.80499999999999}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"b9375758-0605-476e-8b43-66eaeb6dbc78\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:28.34,assignment:\"CH\\u2082\"}],from:28.335,to:28.345}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"37575806-05d7-4e0b-8366-eaeb6dbc784b\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:45.28,assignment:\"CH\\u2082\"}],from:45.275,to:45.285000000000004}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"57580605-d76e-4b43-a6ea-eb6dbc784b57\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:54.46,assignment:\"CH\\u2082\"}],from:54.455,to:54.465}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"580605d7-6e0b-4366-aaeb-6dbc784b57be\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.33,assignment:\"CH\\u2083\"}],from:15.325,to:15.335},{signals:[{delta:67.55,assignment:\"CH\\u2082\"}],from:67.545,to:67.55499999999999}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"0605d76e-0b43-46ea-ab6d-bc784b57bef9\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:59.4,assignment:\"CH\\u2083\"}],from:59.394999999999996,to:59.405},{signals:[{delta:73.05,assignment:\"CH\\u2082\"}],from:73.045,to:73.05499999999999},{signals:[{delta:71.33,assignment:\"CH\\u2082\"}],from:71.325,to:71.335}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"05d76e0b-4366-4aeb-adbc-784b57bef9dc\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:166.01,assignment:\"CH\"}],from:166.005,to:166.015},{signals:[{delta:37.76,assignment:\"CH\\u2083\"}],from:37.754999999999995,to:37.765},{signals:[{delta:30.96,assignment:\"CH\\u2083\"}],from:30.955000000000002,to:30.965}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"d76e0b43-66ea-4b6d-bc78-4b57bef9dcc7\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:68.52,assignment:\"CH\\u2082\"}],from:68.515,to:68.52499999999999}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"6e0b4366-eaeb-4dbc-b84b-57bef9dcc77a\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:59.52,assignment:\"CH\\u2083\"}],from:59.515,to:59.525000000000006},{signals:[{delta:72.87,assignment:\"CH\\u2082\"}],from:72.86500000000001,to:72.875}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"0b4366ea-eb6d-4c78-8b57-bef9dcc77abd\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:7.01,assignment:\"CH\\u2083\"}],from:7.005,to:7.015}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"4366eaeb-6dbc-484b-97be-f9dcc77abd93\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.11,assignment:\"CH\\u2083\"}],from:18.105,to:18.115},{signals:[{delta:59.68,assignment:\"CH\\u2082\"}],from:59.675,to:59.685}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"66eaeb6d-bc78-4b57-bef9-dcc77abd93be\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:21.18,assignment:\"CH\\u2083CO\"}],from:21.175,to:21.185},{signals:[{delta:175.55,assignment:\"CO\"}],from:175.54500000000002,to:175.555},{signals:[{delta:62.7,assignment:\"CH\\u2082\"}],from:62.695,to:62.705000000000005},{signals:[{delta:14.36,assignment:\"CH\\u2083\"}],from:14.354999999999999,to:14.365}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"eaeb6dbc-784b-47be-b9dc-c77abd93be2f\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:124.08,assignment:\"CH\\u2082\"}],from:124.075,to:124.085}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"eb6dbc78-4b57-4ef9-9cc7-7abd93be2f15\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:64.87,assignment:\"CH\\u2082\"}],from:64.86500000000001,to:64.875}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"6dbc784b-57be-49dc-877a-bd93be2f1548\"},{names:[\"H grease\"],smiles:\"\",ranges:[],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"bc784b57-bef9-4cc7-babd-93be2f1548ae\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:134.04,assignment:\"C\"}],from:134.035,to:134.045},{signals:[{delta:17.04,assignment:\"CH\\u2083\"}],from:17.035,to:17.044999999999998}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"784b57be-f9dc-477a-bd93-be2f1548aedb\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.63,assignment:\"CH\\u2083\"}],from:14.625,to:14.635000000000002},{signals:[{delta:24.06,assignment:\"CH\\u2082(2,5)\"}],from:24.055,to:24.064999999999998},{signals:[{delta:33.17,assignment:\"CH\\u2082(3,4)\"}],from:33.165,to:33.175000000000004}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"4b57bef9-dcc7-4abd-93be-2f1548aedb47\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:2.09,assignment:\"CH\\u2083\"}],from:2.085,to:2.0949999999999998}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"57bef9dc-c77a-4d93-be2f-1548aedb4741\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:37.21,assignment:\"CH\\u2083\"}],from:37.205,to:37.215}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"bef9dcc7-7abd-43be-af15-48aedb47419f\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:136.58,assignment:\"CH(2)\"}],from:136.57500000000002,to:136.585},{signals:[{delta:122.93,assignment:\"CH(4,5)\"}],from:122.92500000000001,to:122.935}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"f9dcc77a-bd93-4e2f-9548-aedb47419fb5\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-5.88,assignment:\"CH\\u2084\"}],from:-5.885,to:-5.875}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"dcc77abd-93be-4f15-88ae-db47419fb596\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:50.67,assignment:\"CH\\u2083\"}],from:50.665,to:50.675000000000004}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"c77abd93-be2f-4548-aedb-47419fb596cc\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:63.17,assignment:\"CH\\u2083\"}],from:63.165,to:63.175000000000004}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"7abd93be-2f15-48ae-9b47-419fb596cca1\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.54,assignment:\"CH\\u2083\"}],from:14.534999999999998,to:14.545},{signals:[{delta:23.75,assignment:\"CH\\u2082(2,4)\"}],from:23.745,to:23.755},{signals:[{delta:35.76,assignment:\"CH\\u2082(3)\"}],from:35.754999999999995,to:35.765}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"bd93be2f-1548-4edb-8741-9fb596cca1cf\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.93,assignment:\"CH\\u2083\"}],from:16.925,to:16.935},{signals:[{delta:17.46,assignment:\"CH\\u2082\"}],from:17.455000000000002,to:17.465}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"93be2f15-48ae-4b47-819f-b596cca1cf4c\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.21,assignment:\"CH\\u2083\"}],from:25.205000000000002,to:25.215},{signals:[{delta:66.69,assignment:\"CH\"}],from:66.685,to:66.695}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"be2f1548-aedb-4741-9fb5-96cca1cf4c00\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.63,assignment:\"CH\\u2083\"}],from:19.625,to:19.634999999999998},{signals:[{delta:116.38,assignment:\"CH\\u2082\"}],from:116.375,to:116.38499999999999},{signals:[{delta:136,assignment:\"CH\"}],from:135.995,to:136.005}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"2f1548ae-db47-419f-b596-cca1cf4c00fb\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:149.76,assignment:\"CH(2,6)\"}],from:149.755,to:149.765},{signals:[{delta:126.27,assignment:\"CH(3,5)\"}],from:126.265,to:126.27499999999999},{signals:[{delta:139.62,assignment:\"CH(4)\"}],from:139.615,to:139.625}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"1548aedb-4741-4fb5-96cc-a1cf4c00fbbb\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:119.61,assignment:\"CH(2,5)\"}],from:119.605,to:119.615},{signals:[{delta:108.85,assignment:\"CH(3,4)\"}],from:108.845,to:108.85499999999999}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"48aedb47-419f-4596-8ca1-cf4c00fbbb05\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:47.43,assignment:\"CH\\u2082(2,5)\"}],from:47.425,to:47.435},{signals:[{delta:25.73,assignment:\"CH\\u2082(3,4)\"}],from:25.725,to:25.735}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"aedb4741-9fb5-46cc-a1cf-4c00fbbb05aa\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{delta:2.87,assignment:\"CH\\u2083\"}],from:2.865,to:2.875}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"db47419f-b596-4ca1-8f4c-00fbbb05aa19\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:69.53,assignment:\"CH\\u2082(2,5)\"}],from:69.525,to:69.535},{signals:[{delta:26.69,assignment:\"CH\\u2082(3,4)\"}],from:26.685000000000002,to:26.695}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"47419fb5-96cc-41cf-8c00-fbbb05aa196e\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.62,assignment:\"CH\\u2083\"}],from:21.615000000000002,to:21.625},{signals:[{delta:139.92,assignment:\"C(1)\"}],from:139.915,to:139.92499999999998},{signals:[{delta:130.58,assignment:\"CH(2,6)\"}],from:130.57500000000002,to:130.585},{signals:[{delta:129.79,assignment:\"CH(3,5)\"}],from:129.785,to:129.795},{signals:[{delta:126.82,assignment:\"CH(4)\"}],from:126.815,to:126.82499999999999}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"419fb596-cca1-4f4c-80fb-bb05aa196ec6\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:9.51,assignment:\"CH\\u2083\"}],from:9.504999999999999,to:9.515},{signals:[{delta:48.45,assignment:\"CH\\u2082\"}],from:48.445,to:48.455000000000005}],nucleus:\"13C\",solvent:\"TFE-d\\u2083\",id:\"9fb596cc-a1cf-4c00-bbbb-05aa196ec648\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:175.11,assignment:\"CO\"}],from:175.10500000000002,to:175.115},{signals:[{delta:20.56,assignment:\"CH\\u2083\"}],from:20.555,to:20.564999999999998}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"b596cca1-cf4c-40fb-bb05-aa196ec6483f\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:209.67,assignment:\"CO\"}],from:209.665,to:209.67499999999998},{signals:[{delta:30.67,assignment:\"CH\\u2083\"}],from:30.665000000000003,to:30.675}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"96cca1cf-4c00-4bbb-85aa-196ec6483f24\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:118.06,assignment:\"CN\"}],from:118.055,to:118.065},{signals:[{delta:.85,assignment:\"CH\\u2083\"}],from:.845,to:.855}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"cca1cf4c-00fb-4b05-aa19-6ec6483f243e\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{delta:129.34,assignment:\"CH\"}],from:129.335,to:129.345}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"a1cf4c00-fbbb-45aa-996e-c6483f243e43\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:69.4,assignment:\"(CH\\u2083)\\u2083C\"}],from:69.39500000000001,to:69.405},{signals:[{delta:30.91,assignment:\"(CH\\u2083)\\u2083C\"}],from:30.905,to:30.915}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"cf4c00fb-bb05-4a19-aec6-483f243e431b\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[{signals:[{delta:126.31,assignment:\"CO\\u2082\"}],from:126.305,to:126.315}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"4c00fbbb-05aa-496e-8648-3f243e431b3f\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:193.82,assignment:\"CS\\u2082\"}],from:193.815,to:193.825}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"00fbbb05-aa19-4ec6-883f-243e431b3f7b\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:97.21,assignment:\"CCl\\u2084\"}],from:97.205,to:97.21499999999999}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"fbbb05aa-196e-4648-bf24-3e431b3f7b3d\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{delta:79.44,assignment:\"CH\"}],from:79.435,to:79.445}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"bb05aa19-6ec6-483f-a43e-431b3f7b3d5f\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:71.47,assignment:\"CH\\u2082\"}],from:71.465,to:71.475}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"05aa196e-c648-4f24-be43-1b3f7b3d5f9d\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{delta:27.96,assignment:\"CH\\u2082\"}],from:27.955000000000002,to:27.965}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"aa196ec6-483f-443e-831b-3f7b3d5f9d26\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{delta:45.11,assignment:\"CH\\u2082\"}],from:45.105,to:45.115}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"196ec648-3f24-4e43-9b3f-7b3d5f9d2636\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{delta:54.78,assignment:\"CH\\u2082\"}],from:54.775,to:54.785000000000004}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"6ec6483f-243e-431b-bf7b-3d5f9d2636de\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:15.46,assignment:\"CH\\u2083\"}],from:15.455,to:15.465000000000002},{signals:[{delta:66.88,assignment:\"CH\\u2082\"}],from:66.875,to:66.88499999999999}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"c6483f24-3e43-4b3f-bb3d-5f9d2636de35\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:59.06,assignment:\"CH\\u2083\"}],from:59.055,to:59.065000000000005},{signals:[{delta:71.33,assignment:\"CH\\u2082\"}],from:71.325,to:71.335},{signals:[{delta:72.92,assignment:\"CH\\u2082\"}],from:72.915,to:72.925}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"483f243e-431b-4f7b-bd5f-9d2636de35b4\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:164.73,assignment:\"CH\"}],from:164.725,to:164.73499999999999},{signals:[{delta:36.89,assignment:\"CH\\u2083\"}],from:36.885,to:36.895},{signals:[{delta:31.61,assignment:\"CH\\u2083\"}],from:31.605,to:31.615}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"3f243e43-1b3f-4b3d-9f9d-2636de35b4e8\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:68.11,assignment:\"CH\\u2082\"}],from:68.105,to:68.115}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"243e431b-3f7b-4d5f-9d26-36de35b4e8e4\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:59.06,assignment:\"CH\\u2083\"}],from:59.055,to:59.065000000000005},{signals:[{delta:72.72,assignment:\"CH\\u2082\"}],from:72.715,to:72.725}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"3e431b3f-7b3d-4f9d-a636-de35b4e8e46a\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{delta:6.98,assignment:\"CH\\u2083\"}],from:6.9750000000000005,to:6.985}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"431b3f7b-3d5f-4d26-b6de-35b4e8e46a95\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:18.4,assignment:\"CH\\u2083\"}],from:18.395,to:18.404999999999998},{signals:[{delta:58.26,assignment:\"CH\\u2082\"}],from:58.254999999999995,to:58.265}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"1b3f7b3d-5f9d-4636-9e35-b4e8e46a957d\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:20.88,assignment:\"CH\\u2083CO\"}],from:20.875,to:20.884999999999998},{signals:[{delta:172.89,assignment:\"CO\"}],from:172.885,to:172.89499999999998},{signals:[{delta:61.5,assignment:\"CH\\u2082\"}],from:61.495,to:61.505},{signals:[{delta:14.49,assignment:\"CH\\u2083\"}],from:14.485,to:14.495000000000001}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"3f7b3d5f-9d26-46de-b5b4-e8e46a957d06\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{delta:123.46,assignment:\"CH\\u2082\"}],from:123.455,to:123.46499999999999}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"7b3d5f9d-2636-4e35-b4e8-e46a957d0676\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:64.3,assignment:\"CH\\u2082\"}],from:64.295,to:64.30499999999999}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"3d5f9d26-36de-45b4-a8e4-6a957d06769b\"},{names:[\"H grease\"],smiles:\"\",ranges:[],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"5f9d2636-de35-44e8-a46a-957d06769b83\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{delta:132.53,assignment:\"C\"}],from:132.525,to:132.535},{signals:[{delta:16.9,assignment:\"CH\\u2083\"}],from:16.895,to:16.904999999999998}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"9d2636de-35b4-48e4-aa95-7d06769b83b1\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{delta:14.45,assignment:\"CH\\u2083\"}],from:14.444999999999999,to:14.455},{signals:[{delta:23.68,assignment:\"CH\\u2082(2,5)\"}],from:23.675,to:23.685},{signals:[{delta:32.73,assignment:\"CH\\u2082(3,4)\"}],from:32.724999999999994,to:32.735}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"2636de35-b4e8-446a-957d-06769b83b192\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:1.99,assignment:\"CH\\u2083\"}],from:1.985,to:1.9949999999999999}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"36de35b4-e8e4-4a95-bd06-769b83b192a0\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:37,assignment:\"CH\\u2083\"}],from:36.995,to:37.005}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"de35b4e8-e46a-457d-8676-9b83b192a071\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:136.31,assignment:\"CH(2)\"}],from:136.305,to:136.315},{signals:[{delta:122.6,assignment:\"CH(4,5)\"}],from:122.595,to:122.60499999999999}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"35b4e8e4-6a95-4d06-b69b-83b192a0717b\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{delta:-4.9,assignment:\"CH\\u2084\"}],from:-4.905,to:-4.8950000000000005}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"b4e8e46a-957d-4676-9b83-b192a0717b51\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:49.86,assignment:\"CH\\u2083\"}],from:49.855,to:49.865}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"e8e46a95-7d06-469b-83b1-92a0717b5179\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:63.08,assignment:\"CH\\u2083\"}],from:63.074999999999996,to:63.085}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"e46a957d-0676-4b83-b192-a0717b5179f8\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{delta:14.39,assignment:\"CH\\u2083\"}],from:14.385,to:14.395000000000001},{signals:[{delta:23.38,assignment:\"CH\\u2082(2,4)\"}],from:23.375,to:23.384999999999998},{signals:[{delta:35.3,assignment:\"CH\\u2082(3)\"}],from:35.294999999999995,to:35.305}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"6a957d06-769b-43b1-92a0-717b5179f8b9\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{delta:16.8,assignment:\"CH\\u2083\"}],from:16.795,to:16.805},{signals:[{delta:17.19,assignment:\"CH\\u2082\"}],from:17.185000000000002,to:17.195}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"957d0676-9b83-4192-a071-7b5179f8b9ec\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:25.27,assignment:\"CH\\u2083\"}],from:25.265,to:25.275},{signals:[{delta:64.71,assignment:\"CH\"}],from:64.705,to:64.71499999999999}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"7d06769b-83b1-42a0-b17b-5179f8b9ec18\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{delta:19.5,assignment:\"CH\\u2083\"}],from:19.495,to:19.505},{signals:[{delta:116.04,assignment:\"CH\\u2082\"}],from:116.03500000000001,to:116.045},{signals:[{delta:134.61,assignment:\"CH\"}],from:134.60500000000002,to:134.615}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"06769b83-b192-4071-bb51-79f8b9ec18b0\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:150.07,assignment:\"CH(2,6)\"}],from:150.065,to:150.075},{signals:[{delta:125.53,assignment:\"CH(3,5)\"}],from:125.525,to:125.535},{signals:[{delta:138.35,assignment:\"CH(4)\"}],from:138.345,to:138.355}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"769b83b1-92a0-417b-9179-f8b9ec18b09d\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:118.28,assignment:\"CH(2,5)\"}],from:118.275,to:118.285},{signals:[{delta:108.11,assignment:\"CH(3,4)\"}],from:108.105,to:108.115}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"9b83b192-a071-4b51-b9f8-b9ec18b09db0\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:47.23,assignment:\"CH\\u2082(2,5)\"}],from:47.224999999999994,to:47.235},{signals:[{delta:26.29,assignment:\"CH\\u2082(3,4)\"}],from:26.285,to:26.294999999999998}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"83b192a0-717b-4179-b8b9-ec18b09db017\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{delta:2.1,assignment:\"CH\\u2083\"}],from:2.095,to:2.105}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"b192a071-7b51-49f8-b9ec-18b09db017ee\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:68.83,assignment:\"CH\\u2082(2,5)\"}],from:68.825,to:68.835},{signals:[{delta:26.48,assignment:\"CH\\u2082(3,4)\"}],from:26.475,to:26.485}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"92a0717b-5179-48b9-ac18-b09db017eeb8\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{delta:21.5,assignment:\"CH\\u2083\"}],from:21.495,to:21.505},{signals:[{delta:138.85,assignment:\"C(1)\"}],from:138.845,to:138.855},{signals:[{delta:129.91,assignment:\"CH(2,6)\"}],from:129.905,to:129.915},{signals:[{delta:129.2,assignment:\"CH(3,5)\"}],from:129.195,to:129.20499999999998},{signals:[{delta:126.29,assignment:\"CH(4)\"}],from:126.28500000000001,to:126.295}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"a0717b51-79f8-49ec-98b0-9db017eeb84c\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:11.09,assignment:\"CH\\u2083\"}],from:11.084999999999999,to:11.095},{signals:[{delta:46.96,assignment:\"CH\\u2082\"}],from:46.955,to:46.965}],nucleus:\"13C\",solvent:\"CD\\u2083OD\",id:\"717b5179-f8b9-4c18-b09d-b017eeb84cfd\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{delta:177.21,assignment:\"CO\"}],from:177.205,to:177.215},{signals:[{delta:21.03,assignment:\"CH\\u2083\"}],from:21.025000000000002,to:21.035}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"7b5179f8-b9ec-48b0-9db0-17eeb84cfdb6\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{delta:215.94,assignment:\"CO\"}],from:215.935,to:215.945},{signals:[{delta:30.89,assignment:\"CH\\u2083\"}],from:30.885,to:30.895}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"5179f8b9-ec18-409d-b017-eeb84cfdb61f\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{delta:119.68,assignment:\"CN\"}],from:119.67500000000001,to:119.685},{signals:[{delta:1.47,assignment:\"CH\\u2083\"}],from:1.465,to:1.4749999999999999}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"79f8b9ec-18b0-4db0-97ee-b84cfdb61f2e\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"f8b9ec18-b09d-4017-aeb8-4cfdb61f2ebe\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{delta:70.36,assignment:\"(CH\\u2083)\\u2083C\"}],from:70.355,to:70.365},{signals:[{delta:30.29,assignment:\"(CH\\u2083)\\u2083C\"}],from:30.285,to:30.294999999999998}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"b9ec18b0-9db0-47ee-b84c-fdb61f2ebe36\"},{names:[\"carbon dioxide\"],smiles:\"O=C=O\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"ec18b09d-b017-4eb8-8cfd-b61f2ebe36e4\"},{names:[\"carbon disulfide\"],smiles:\"S=C=S\",ranges:[{signals:[{delta:197.25,assignment:\"CS\\u2082\"}],from:197.245,to:197.255}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"18b09db0-17ee-484c-bdb6-1f2ebe36e44d\"},{names:[\"carbon tetrachloride\"],smiles:\"ClC(Cl)(Cl)Cl\",ranges:[{signals:[{delta:96.73,assignment:\"CCl\\u2084\"}],from:96.72500000000001,to:96.735}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"b09db017-eeb8-4cfd-b61f-2ebe36e44df4\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"9db017ee-b84c-4db6-9f2e-be36e44df4d4\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{delta:70.14,assignment:\"CH\\u2082\"}],from:70.135,to:70.145}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"65f0c1a6-7f80-4627-9c8a-1bdea7fe71e1\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"f0c1a67f-80a6-47dc-8a1b-dea7fe71e16c\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"c1a67f80-a627-4c8a-9bde-a7fe71e16ca3\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"a67f80a6-27dc-4a1b-9ea7-fe71e16ca363\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:14.77,assignment:\"CH\\u2083\"}],from:14.764999999999999,to:14.775},{signals:[{delta:66.42,assignment:\"CH\\u2082\"}],from:66.415,to:66.425}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"7f80a627-dc8a-4bde-a7fe-71e16ca36352\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{delta:58.67,assignment:\"CH\\u2083\"}],from:58.665,to:58.675000000000004},{signals:[{delta:70.05,assignment:\"CH\\u2082\"}],from:70.045,to:70.05499999999999},{signals:[{delta:71.63,assignment:\"CH\\u2082\"}],from:71.625,to:71.63499999999999}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"80a627dc-8a1b-4ea7-be71-e16ca36352b0\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{delta:165.53,assignment:\"CH\"}],from:165.525,to:165.535},{signals:[{delta:37.54,assignment:\"CH\\u2083\"}],from:37.535,to:37.545},{signals:[{delta:32.03,assignment:\"CH\\u2083\"}],from:32.025,to:32.035000000000004}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"a627dc8a-1bde-47fe-b1e1-6ca36352b063\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{delta:67.19,assignment:\"CH\\u2082\"}],from:67.185,to:67.195}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"27dc8a1b-dea7-4e71-a16c-a36352b063bd\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{delta:58.67,assignment:\"CH\\u2083\"}],from:58.665,to:58.675000000000004},{signals:[{delta:71.49,assignment:\"CH\\u2082\"}],from:71.485,to:71.49499999999999}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"dc8a1bde-a7fe-41e1-aca3-6352b063bd30\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"8a1bdea7-fe71-416c-a363-52b063bd305a\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{delta:17.47,assignment:\"CH\\u2083\"}],from:17.465,to:17.474999999999998},{signals:[{delta:58.05,assignment:\"CH\\u2082\"}],from:58.044999999999995,to:58.055}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"1bdea7fe-71e1-4ca3-a352-b063bd305ae6\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{delta:21.15,assignment:\"CH\\u2083CO\"}],from:21.145,to:21.154999999999998},{signals:[{delta:175.26,assignment:\"CO\"}],from:175.255,to:175.265},{signals:[{delta:62.32,assignment:\"CH\\u2082\"}],from:62.315,to:62.325},{signals:[{delta:13.92,assignment:\"CH\\u2083\"}],from:13.915,to:13.925}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"dea7fe71-e16c-4363-92b0-63bd305ae6f0\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"a7fe71e1-6ca3-4352-b063-bd305ae6f05f\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{delta:63.17,assignment:\"CH\\u2082\"}],from:63.165,to:63.175000000000004}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"fe71e16c-a363-42b0-a3bd-305ae6f05feb\"},{names:[\"H grease\"],smiles:\"\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"71e16ca3-6352-4063-bd30-5ae6f05febc8\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"e16ca363-52b0-43bd-b05a-e6f05febc893\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"6ca36352-b063-4d30-9ae6-f05febc89310\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{delta:2.31,assignment:\"CH\\u2083\"}],from:2.305,to:2.315}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"a36352b0-63bd-405a-a6f0-5febc8931096\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{delta:36.46,assignment:\"CH\\u2083\"}],from:36.455,to:36.465}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"6352b063-bd30-4ae6-b05f-ebc8931096ea\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{delta:136.65,assignment:\"CH(2)\"}],from:136.645,to:136.655},{signals:[{delta:122.43,assignment:\"CH(4,5)\"}],from:122.42500000000001,to:122.435}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"52b063bd-305a-46f0-9feb-c8931096ea9a\"},{names:[\"methane\"],smiles:\"C\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"b063bd30-5ae6-405f-abc8-931096ea9ade\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{delta:49.5,assignment:\"CH\\u2083\"}],from:49.495,to:49.505}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"63bd305a-e6f0-4feb-8893-1096ea9ade66\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{delta:63.22,assignment:\"CH\\u2083\"}],from:63.214999999999996,to:63.225}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"bd305ae6-f05f-4bc8-9310-96ea9ade66be\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"305ae6f0-5feb-4893-9096-ea9ade66be08\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"5ae6f05f-ebc8-4310-96ea-9ade66be0832\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{delta:24.38,assignment:\"CH\\u2083\"}],from:24.375,to:24.384999999999998},{signals:[{delta:64.88,assignment:\"CH\"}],from:64.875,to:64.88499999999999}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"e6f05feb-c893-4096-aa9a-de66be08328d\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"f05febc8-9310-46ea-9ade-66be08328dd2\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{delta:149.18,assignment:\"CH(2,6)\"}],from:149.175,to:149.185},{signals:[{delta:125.12,assignment:\"CH(3,5)\"}],from:125.11500000000001,to:125.125},{signals:[{delta:138.27,assignment:\"CH(4)\"}],from:138.26500000000001,to:138.275}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"5febc893-1096-4a9a-9e66-be08328dd279\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{delta:119.06,assignment:\"CH(2,5)\"}],from:119.055,to:119.065},{signals:[{delta:107.83,assignment:\"CH(3,4)\"}],from:107.825,to:107.835}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"ebc89310-96ea-4ade-a6be-08328dd27906\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{delta:46.83,assignment:\"CH\\u2082(2,5)\"}],from:46.824999999999996,to:46.835},{signals:[{delta:25.86,assignment:\"CH\\u2082(3,4)\"}],from:25.855,to:25.865}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"c8931096-ea9a-4e66-be08-328dd2790623\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"931096ea-9ade-46be-8832-8dd27906232a\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{delta:68.68,assignment:\"CH\\u2082(2,5)\"}],from:68.67500000000001,to:68.685},{signals:[{delta:25.67,assignment:\"CH\\u2082(3,4)\"}],from:25.665000000000003,to:25.675}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"1096ea9a-de66-4e08-b28d-d27906232a55\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"96ea9ade-66be-4832-8dd2-7906232a5599\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{delta:9.07,assignment:\"CH\\u2083\"}],from:9.065,to:9.075000000000001},{signals:[{delta:47.19,assignment:\"CH\\u2082\"}],from:47.184999999999995,to:47.195}],nucleus:\"13C\",solvent:\"D\\u2082O\",id:\"ea9ade66-be08-428d-9279-06232a559999\"}];var pe=[];for(let{label:e,value:n,names:t}of ne)pe.push(e,n,...t);pe.sort((e,n)=>n.length-e.length);pe=pe.map(e=>String.raw`(broad|br)?\\.?\\s?${e}\\s?(broad|br)?\\.?\\s*`);var pc=new RegExp(pe.join(\"|\"),\"g\"),Cc=new RegExp(`^(${pe.join(\"|\")})*$`),ci=/(?:broad|br)\\.?/;function Ce(e){if(!Cc.exec(e))return[];if(/^\\s*$/.exec(e))return[];let n=e.match(pc);if(!n)return[];let t=[];for(let s of n){let i=ci.test(s),o=s.replace(ci,\"\").replaceAll(\".\",\"\").trim();for(let a of ne)if(o===a.label||o===a.value||a.names.includes(o)){t.push({...a,match:s.trim(),isBroad:i});break}}return t}function nt(e,n={}){let{nucleus:t=\"1H\",frequency:s=400}=n,{tolerance:i=yc(t)/s}=n,o=0,{js:a=[],multiplicity:r,delta:m}=e;if(a.length>0)for(let l of a){let{coupling:c,multiplicity:u=\"d\"}=l;o+=q[u]*c/s}else r===\"m\"?o=16/s:(r===\"b\"||r===\"br s\")&&(o=7/s);return o=i+o/2,{from:m-o,to:m+o}}function yc(e){switch(e.toUpperCase()){case\"1H\":return 1.5;case\"13C\":return 3;default:return 2}}function st(e){let n=/ *(?<before>[^(]*?) *\\( *(?<inside>.*?) *\\) *(?<after>.*?) */.exec(e);return n?n.groups:{before:e,inside:\"\",after:\"\"}}function it(e,n={}){let{nucleus:t,frequency:s,logger:i}=n,o=st(e);if(!o.before)return;let a=/.*?(?<from>-?[0-9.]+)-?(?<to>-?[0-9.]*).*/.exec(o.before);if(!a?.groups)return;let r=a.groups.to!==\"\",m=Number(a.groups.from),l=r?Number(a.groups.to):m,c=o.inside.split(/ *, */),u={delta:Number.NaN,js:[]},f={from:m,to:l,signals:[u]},g=c.filter(y=>y.match(/^[0-9]+\\s*H$/));g.length===1&&(f.integration=Number(g[0].replace(\"H\",\"\")));let d=c.filter(y=>y.match(/^([br ]*)\\.*\\s*[a-zA-Z]+\\.*$/));if(d.length===1){let y=d[0];y===\"m\"?r?(u.delta=(m+l)/2,u.multiplicity=y):(u.delta=m,u.multiplicity=y):r||(u.delta=m,u.multiplicity=y)}else r?(u.delta=(m+l)/2,u.multiplicity=\"s\"):(u.delta=m,u.multiplicity=\"s\");let p=c.filter(y=>y.match(/(Hz|J|^[0-9.]+$)/)).map(y=>Number(y.replace(/J[0-9.]*\\s*=/,\"J =\").replaceAll(/[^0-9.]/g,\"\"))),C=Ce(u.multiplicity||\"\");if(C.length===p.length)for(let y=0;y<C.length;y++)u.js?u.js.push({coupling:p[y],multiplicity:C[y].value}):i?.error(`A range has not couplings: ${e}`);if(f.from===f.to&&(f={...f,...nt(u,{nucleus:t,frequency:s})}),Number.isNaN(f.from)||Number.isNaN(f.to)){i?.error(`A range could not be parsed: ${e}`);return}return f}async function h3(e=\"https://docs.google.com/spreadsheets/d/1uwyq_L38PMRWCcT4If_EhPbHKyY3q_2tpjV8vr5_zh0/edit?usp=sharing\",n={}){let{format:t=\"tsv\"}=n;e.includes(\"google.com\")&&(e=`https://googledocs.cheminfo.org/spreadsheets/d/${bc(e)}/export?format=tsv`);let s,i=await fetch(e);switch(t){case\"tsv\":s=hc(await i.text());break;case\"json\":s=await i.json();break;default:throw new Error(\"unknown database format\")}let o=[];for(let a of s.data){let r={id:crypto.randomUUID(),smiles:\"\",solvent:\"\",nucleus:\"\",jcampURL:\"\",names:[],meta:{},ranges:[]};for(let m=0;m<a.length;m++)switch(s.kinds[m]){case\"smiles\":r.smiles=a[m];break;case\"solvent\":r.solvent=a[m];break;case\"nucleus\":r.nucleus=a[m];break;case\"jcampURL\":r.jcampURL=a[m];break;case\"name\":r.names&&r.names.push(a[m]);break;case\"meta\":r.meta&&(r.meta[s.labels[m]]=a[m]);break;case\"signal\":{let l=it(a[m]);l&&r.ranges.push(l);break}default:throw new Error(`Unknown column kind: ${s.kinds[m]}`)}o.push(r)}return o}function bc(e){return e.replace(/.*\\/(?<uuid>[^/]{20,50}).*/,\"$<uuid>\")}function hc(e){let n=e.split(/\\r?\\n/).filter(o=>!/^\\s*$/.exec(o)).map(o=>o.split(\"\t\").map(a=>a.trim())),t=n[0],s=n[1],i=n.slice(2);return{labels:t,kinds:s,data:i}}var ui=[{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:2.46,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:2.455,to:2.465}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"3ad4a482-5195-4632-b303-1866ce21368d\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:1.89,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.885,to:1.8949999999999998}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"d4a48251-9536-42f3-8318-66ce21368da4\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:2.05,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:2.045,to:2.0549999999999997}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"a4825195-3632-4303-9866-ce21368da476\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:1.95,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.945,to:1.9549999999999998}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"82519536-32f3-4318-a6ce-21368da476df\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.31,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.305,to:7.3149999999999995}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"51953632-f303-4866-8e21-368da476dfb2\"},{names:[\"tert-butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.15,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.145,to:1.1549999999999998},{signals:[{js:[],delta:3.16,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:3.1550000000000002,to:3.165}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"953632f3-0318-46ce-a136-8da476dfb226\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:7.89,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.885,to:7.895}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"3632f303-1866-4e21-b68d-a476dfb226a6\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.57,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.565,to:3.5749999999999997}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"32f30318-66ce-4136-8da4-76dfb226a6c2\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.44,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.435,to:1.4449999999999998}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"f3031866-ce21-468d-a476-dfb226a6c262\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:3.77,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.765,to:3.775}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"031866ce-2136-4da4-b6df-b226a6c26284\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:5.51,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:5.505,to:5.515}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"1866ce21-368d-4476-9fb2-26a6c262845a\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.12,assignment:\"CH\\u2083\"}],integration:6,from:1.0975000000000001,to:1.1425},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.38,assignment:\"CH\\u2082\"}],integration:4,from:3.34875,to:3.41125}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"66ce2136-8da4-46df-b226-a6c262845a2b\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.43,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.4050000000000002,to:3.455},{signals:[{js:[],delta:3.53,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.505,to:3.5549999999999997},{signals:[{js:[],delta:3.28,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.275,to:3.2849999999999997}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"ce21368d-a476-4fb2-a6a6-c262845a2b62\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.91,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.905,to:7.915},{signals:[{js:[],delta:2.88,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.875,to:2.885},{signals:[{js:[],delta:2.76,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.755,to:2.7649999999999997}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"21368da4-76df-4226-a6c2-62845a2b6228\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.56,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.555,to:3.565}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"368da476-dfb2-46a6-8262-845a2b622830\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.28,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.275,to:3.2849999999999997},{signals:[{js:[],delta:3.43,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.4250000000000003,to:3.435}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"8da476df-b226-46c2-a284-5a2b622830de\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.85,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.845,to:.855}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"a476dfb2-26a6-4262-845a-2b622830decc\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.1,assignment:\"CH\\u2083\"}],integration:3,from:1.0775000000000001,to:1.1225},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.51,assignment:\"CH\\u2082\"}],integration:2,from:3.47875,to:3.54125},{signals:[{js:[],delta:3.3,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:3.295,to:3.3049999999999997}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"76dfb226-a6c2-4284-9a2b-622830decc40\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:1.94,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:1.935,to:1.9449999999999998},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:4.04,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:4.00875,to:4.07125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.19,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.1675,to:1.2125}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"dfb226a6-c262-445a-ab62-2830decc402b\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.36,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.355,to:5.365}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"b226a6c2-6284-4a2b-a228-30decc402b9a\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.48,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.475,to:3.485}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"26a6c262-845a-4b62-a830-decc402b9a56\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[],integration:6,from:.85,to:.91,multiplicity:\"m\"},{signals:[{js:[],delta:1.29,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.27625,to:1.30375}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"a6c26284-5a2b-4228-b0de-cc402b9a5697\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.18,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.1750000000000003,to:2.185}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"c262845a-2b62-4830-9ecc-402b9a56973e\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.89,assignment:\"CH\\u2083\"}],integration:6,from:.8675,to:.9125},{signals:[{js:[],delta:1.29,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.2650000000000001,to:1.315}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"62845a2b-6228-40de-8c40-2b9a56973ebb\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.07,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.065,to:.07500000000000001}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"845a2b62-2830-4ecc-802b-9a56973ebb6b\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.58,assignment:\"CH\\u2083\"}],integration:18,from:2.563125,to:2.5968750000000003}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"5a2b6228-30de-4c40-ab9a-56973ebb6b38\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.55,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.545,to:4.555}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"2b622830-decc-402b-9a56-973ebb6b388e\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.48,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.4750000000000005,to:7.485},{signals:[{js:[],delta:6.94,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:6.9350000000000005,to:6.945}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"622830de-cc40-4b9a-9697-3ebb6b388e25\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.19,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.185,to:.195}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"2830decc-402b-4a56-973e-bb6b388e2562\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.27,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.265,to:3.275},{signals:[{js:[],delta:3.02,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:3.015,to:3.025}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"30decc40-2b9a-4697-bebb-6b388e2562e4\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:4.31,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:4.305,to:4.3149999999999995}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"decc402b-9a56-473e-bb6b-388e2562e4e3\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.89,assignment:\"CH\\u2083\"}],integration:6,from:.8675,to:.9125},{signals:[{js:[],delta:1.31,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.2850000000000001,to:1.335}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"cc402b9a-5697-4ebb-ab38-8e2562e4e3ff\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.9,assignment:\"CH\\u2083\"}],integration:6,from:.87675,to:.92325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.33,assignment:\"CH\\u2082\"}],integration:2,from:1.27025,to:1.38975}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"402b9a56-973e-4b6b-b88e-2562e4e3ff42\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.08,assignment:\"CH\\u2083\"}],integration:6,from:1.0675000000000001,to:1.0925},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:3.82,assignment:\"CH\"}],integration:1,from:3.77,to:3.8699999999999997}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"2b9a5697-3ebb-4b38-8e25-62e4e3ff42de\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.69,assignment:\"CH\\u2083\"}],integration:3,from:1.67325,to:1.70675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.89,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.8725,to:4.9075},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:4.99,assignment:\"CH\\u2082(2)\"}],integration:1,from:4.96375,to:5.01625},{signals:[{js:[],delta:5.79,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.765,to:5.815}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"9a56973e-bb6b-488e-a562-e4e3ff42de33\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.54,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.514999999999999,to:8.565},{signals:[{js:[],delta:7.25,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.225,to:7.275},{signals:[{js:[],delta:7.65,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.625,to:7.675000000000001}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"56973ebb-6b38-4e25-a2e4-e3ff42de33be\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:9.96,assignment:\"NH\",multiplicity:\"br t\"}],integration:1,from:9.955,to:9.965000000000002},{signals:[{js:[],delta:6.66,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.635,to:6.6850000000000005},{signals:[{js:[],delta:6.02,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:5.994999999999999,to:6.045}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"973ebb6b-388e-4562-a4e3-ff42de33beb1\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:2.75,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:2.725,to:2.775},{signals:[{js:[],delta:1.59,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.5650000000000002,to:1.615}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"3ebb6b38-8e25-42e4-a3ff-42de33beb110\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.11,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.105,to:.115}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"bb6b388e-2562-44e3-bf42-de33beb110ac\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.62,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.595,to:3.645},{signals:[{js:[],delta:1.79,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.7650000000000001,to:1.815}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"6b388e25-62e4-43ff-82de-33beb110acf3\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.31,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.305,to:2.315},{signals:[{js:[],delta:7.1,assignment:\"CH(2,4,6)\",multiplicity:\"m\"}],integration:3,from:7.074999999999999,to:7.125},{signals:[{js:[],delta:7.19,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.165,to:7.215000000000001}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"388e2562-e4e3-4f42-9e33-beb110acf36e\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.97,assignment:\"CH\\u2083\"}],integration:6,from:.9475,to:.9924999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.46,assignment:\"CH\\u2082\"}],integration:4,from:2.42875,to:2.49125}],nucleus:\"1H\",solvent:\"THF-d\\u2088\",id:\"8e2562e4-e3ff-42de-b3be-b110acf36eaf\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:1.52,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:1.5150000000000001,to:1.525}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"2562e4e3-ff42-4e33-beb1-10acf36eaf59\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:2.06,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.055,to:2.065}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"62e4e3ff-42de-43be-b110-acf36eaf5900\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:2.12,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:2.115,to:2.125}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"e4e3ff42-de33-4eb1-90ac-f36eaf5900af\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:1.97,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.965,to:1.9749999999999999}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"e3ff42de-33be-4110-acf3-6eaf5900af2c\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.35,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.345,to:7.3549999999999995}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"ff42de33-beb1-40ac-b36e-af5900af2cf8\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.24,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.235,to:1.2449999999999999}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"42de33be-b110-4cf3-aeaf-5900af2cf81a\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:7.32,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.315,to:7.325}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"de33beb1-10ac-436e-af59-00af2cf81a2f\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.59,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.585,to:3.5949999999999998}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"33beb110-acf3-4eaf-9900-af2cf81a2fed\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.44,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.435,to:1.4449999999999998}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"beb110ac-f36e-4f59-80af-2cf81a2fed92\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:3.76,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.755,to:3.7649999999999997}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"b110acf3-6eaf-4900-af2c-f81a2fed9206\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:5.33,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:5.325,to:5.335}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"10acf36e-af59-40af-acf8-1a2fed9206c2\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.15,assignment:\"CH\\u2083\"}],integration:6,from:1.1275,to:1.1724999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.43,assignment:\"CH\\u2082\"}],integration:4,from:3.39875,to:3.46125}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"acf36eaf-5900-4f2c-b81a-2fed9206c261\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.57,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.545,to:3.5949999999999998},{signals:[{js:[],delta:3.5,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.475,to:3.525},{signals:[{js:[],delta:3.33,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.325,to:3.335}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"f36eaf59-00af-4cf8-9a2f-ed9206c261ed\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.96,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.955,to:7.965},{signals:[{js:[],delta:2.91,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.9050000000000002,to:2.915},{signals:[{js:[],delta:2.82,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.815,to:2.8249999999999997}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"6eaf5900-af2c-481a-afed-9206c261ed14\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.65,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.645,to:3.655}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"af5900af-2cf8-4a2f-ad92-06c261ed1488\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.34,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.335,to:3.3449999999999998},{signals:[{js:[],delta:3.49,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.4850000000000003,to:3.495}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"5900af2c-f81a-4fed-9206-c261ed148817\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.85,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.845,to:.855}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"00af2cf8-1a2f-4d92-86c2-61ed1488178e\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.19,assignment:\"CH\\u2083\"}],integration:3,from:1.1675,to:1.2125},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.66,assignment:\"CH\\u2082\"}],integration:2,from:3.62875,to:3.69125},{signals:[{js:[],delta:1.33,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:1.3250000000000002,to:1.335}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"af2cf81a-2fed-4206-8261-ed1488178ed2\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:2,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:1.995,to:2.005},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:4.08,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:4.04875,to:4.11125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.23,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.2075,to:1.2525}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"2cf81a2f-ed92-46c2-a1ed-1488178ed209\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.4,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.3950000000000005,to:5.405}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"f81a2fed-9206-4261-ad14-88178ed20960\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.66,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.6550000000000002,to:3.665}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"1a2fed92-06c2-41ed-9488-178ed20960f1\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[],integration:6,from:.84,to:.9,multiplicity:\"m\"},{signals:[{js:[],delta:1.27,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.25625,to:1.28375}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"2fed9206-c261-4d14-8817-8ed20960f149\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.2,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.1950000000000003,to:2.205}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"ed9206c2-61ed-4488-978e-d20960f1496e\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.89,assignment:\"CH\\u2083\"}],integration:6,from:.8675,to:.9125},{signals:[{js:[],delta:1.27,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.245,to:1.295}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"9206c261-ed14-4817-8ed2-0960f1496ed8\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.07,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.065,to:.07500000000000001}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"06c261ed-1488-478e-9209-60f1496ed868\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.6,assignment:\"CH\\u2083\"}],integration:18,from:2.583125,to:2.6168750000000003}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"c261ed14-8817-4ed2-8960-f1496ed868d8\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.59,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.585,to:4.595}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"61ed1488-178e-4209-a0f1-496ed868d88f\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.63,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.625,to:7.635},{signals:[{js:[],delta:7.07,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:7.065,to:7.075}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"ed148817-8ed2-4960-b149-6ed868d88f8d\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.21,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.205,to:.215}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"1488178e-d209-40f1-896e-d868d88f8d5b\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.42,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.415,to:3.425},{signals:[{js:[],delta:1.09,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:1.0850000000000002,to:1.095}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"88178ed2-0960-4149-aed8-68d88f8d5bbb\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:4.31,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:4.305,to:4.3149999999999995}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"178ed209-60f1-496e-9868-d88f8d5bbb41\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.89,assignment:\"CH\\u2083\"}],integration:6,from:.8675,to:.9125},{signals:[{js:[],delta:1.3,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.2750000000000001,to:1.325}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"8ed20960-f149-4ed8-a8d8-8f8d5bbb41a6\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.9,assignment:\"CH\\u2083\"}],integration:6,from:.87675,to:.92325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.32,assignment:\"CH\\u2082\"}],integration:2,from:1.26025,to:1.37975}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"d20960f1-496e-4868-988f-8d5bbb41a681\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.17,assignment:\"CH\\u2083\"}],integration:6,from:1.1575,to:1.1824999999999999},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:3.97,assignment:\"CH\"}],integration:1,from:3.9200000000000004,to:4.0200000000000005}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"0960f149-6ed8-48d8-8f8d-5bbb41a68163\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.71,assignment:\"CH\\u2083\"}],integration:3,from:1.69325,to:1.72675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.93,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.9125,to:4.9475},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:5.03,assignment:\"CH\\u2082(2)\"}],integration:1,from:5.00375,to:5.05625},{signals:[{js:[],delta:5.84,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.8149999999999995,to:5.865}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"60f1496e-d868-488f-8d5b-bb41a68163b9\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.59,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.565,to:8.615},{signals:[{js:[],delta:7.28,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.255,to:7.305000000000001},{signals:[{js:[],delta:7.68,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.654999999999999,to:7.705}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"f1496ed8-68d8-4f8d-9bbb-41a68163b96e\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:8.69,assignment:\"NH\",multiplicity:\"br t\"}],integration:1,from:8.684999999999999,to:8.695},{signals:[{js:[],delta:6.79,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.765,to:6.815},{signals:[{js:[],delta:6.19,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.165,to:6.215000000000001}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"496ed868-d88f-4d5b-bb41-a68163b96e99\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:2.82,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:2.795,to:2.8449999999999998},{signals:[{js:[],delta:1.67,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.645,to:1.6949999999999998}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"6ed868d8-8f8d-4bbb-81a6-8163b96e9999\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.09,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.08499999999999999,to:.095}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"d868d88f-8d5b-4b41-a681-63b96e999952\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.69,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.665,to:3.715},{signals:[{js:[],delta:1.82,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.7950000000000002,to:1.845}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"68d88f8d-5bbb-41a6-8163-b96e9999525e\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.34,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.335,to:2.3449999999999998},{signals:[{js:[],delta:7.15,assignment:\"CH(2,4,6)\",multiplicity:\"m\"}],integration:3,from:7.125,to:7.175000000000001},{signals:[{js:[],delta:7.24,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.215,to:7.265000000000001}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"d88f8d5b-bb41-4681-a3b9-6e9999525e01\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.99,assignment:\"CH\\u2083\"}],integration:6,from:.9675,to:1.0125},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.48,assignment:\"CH\\u2082\"}],integration:4,from:2.44875,to:2.51125}],nucleus:\"1H\",solvent:\"CD\\u2082Cl\\u2082\",id:\"8f8d5bbb-41a6-4163-b96e-9999525e0107\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:1.56,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:1.5550000000000002,to:1.565}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"8d5bbb41-a681-43b9-ae99-99525e0107da\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:2.1,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.095,to:2.105}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"5bbb41a6-8163-496e-9999-525e0107da57\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:2.17,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:2.165,to:2.175}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"bb41a681-63b9-4e99-9952-5e0107da5791\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:2.1,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.095,to:2.105}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"41a68163-b96e-4999-925e-0107da5791d0\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.36,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.355,to:7.365}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"a68163b9-6e99-4952-9e01-07da5791d029\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.28,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.2750000000000001,to:1.285}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"8163b96e-9999-425e-8107-da5791d029ab\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:7.26,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.255,to:7.265}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"63b96e99-9952-4e01-87da-5791d029ab22\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.67,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.665,to:3.675}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"b96e9999-525e-4107-9a57-91d029ab22e6\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.43,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.425,to:1.4349999999999998}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"6e999952-5e01-47da-9791-d029ab22e67b\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:3.73,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.725,to:3.735}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"9999525e-0107-4a57-91d0-29ab22e67b1a\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:5.3,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:5.295,to:5.305}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"99525e01-07da-4791-9029-ab22e67b1a6c\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.21,assignment:\"CH\\u2083\"}],integration:6,from:1.1875,to:1.2325},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.48,assignment:\"CH\\u2082\"}],integration:4,from:3.44875,to:3.51125}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"525e0107-da57-41d0-a9ab-22e67b1a6cf2\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.65,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.625,to:3.675},{signals:[{js:[],delta:3.57,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.545,to:3.5949999999999998},{signals:[{js:[],delta:3.39,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.3850000000000002,to:3.395}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"5e0107da-5791-4029-ab22-e67b1a6cf259\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:8.02,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:8.014999999999999,to:8.025},{signals:[{js:[],delta:2.96,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.955,to:2.965},{signals:[{js:[],delta:2.88,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.875,to:2.885}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"0107da57-91d0-49ab-a2e6-7b1a6cf259e5\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.71,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.705,to:3.715}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"07da5791-d029-4b22-a67b-1a6cf259e5a7\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.4,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.395,to:3.405},{signals:[{js:[],delta:3.55,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.545,to:3.5549999999999997}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"da5791d0-29ab-42e6-bb1a-6cf259e5a7ca\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.87,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.865,to:.875}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"5791d029-ab22-467b-9a6c-f259e5a7ca3e\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.25,assignment:\"CH\\u2083\"}],integration:3,from:1.2275,to:1.2725},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.72,assignment:\"CH\\u2082\"}],integration:2,from:3.68875,to:3.75125},{signals:[{js:[],delta:1.32,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:1.3150000000000002,to:1.325}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"91d029ab-22e6-4b1a-acf2-59e5a7ca3e20\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:2.05,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:2.045,to:2.0549999999999997},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:4.12,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:4.08875,to:4.15125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.26,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.2375,to:1.2825}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"d029ab22-e67b-4a6c-b259-e5a7ca3e202e\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.4,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.3950000000000005,to:5.405}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"29ab22e6-7b1a-4cf2-99e5-a7ca3e202e30\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.76,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.755,to:3.7649999999999997}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"ab22e67b-1a6c-4259-a5a7-ca3e202e302d\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[],integration:6,from:.84,to:.87,multiplicity:\"m\"},{signals:[{js:[],delta:1.25,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.23625,to:1.26375}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"22e67b1a-6cf2-49e5-a7ca-3e202e302d69\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.24,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.2350000000000003,to:2.245}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"e67b1a6c-f259-45a7-8a3e-202e302d6953\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.88,assignment:\"CH\\u2083\"}],integration:6,from:.8575,to:.9025},{signals:[{js:[],delta:1.26,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.235,to:1.285}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"7b1a6cf2-59e5-47ca-be20-2e302d6953ed\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.07,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.065,to:.07500000000000001}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"1a6cf259-e5a7-4a3e-a02e-302d6953ed4d\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.65,assignment:\"CH\\u2083\"}],integration:18,from:2.6331249999999997,to:2.666875}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"6cf259e5-a7ca-4e20-ae30-2d6953ed4dc1\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.62,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.615,to:4.625}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"f259e5a7-ca3e-402e-b02d-6953ed4dc1d7\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.67,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.665,to:7.675},{signals:[{js:[],delta:7.1,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:7.095,to:7.1049999999999995}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"59e5a7ca-3e20-4e30-ad69-53ed4dc1d75b\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.22,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.215,to:.225}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"e5a7ca3e-202e-402d-a953-ed4dc1d75bf5\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.49,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.4850000000000003,to:3.495},{signals:[{js:[],delta:1.09,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:1.0850000000000002,to:1.095}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"a7ca3e20-2e30-4d69-93ed-4dc1d75bf5d3\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:4.33,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:4.325,to:4.335}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"ca3e202e-302d-4953-ad4d-c1d75bf5d3f3\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.88,assignment:\"CH\\u2083\"}],integration:6,from:.8575,to:.9025},{signals:[{js:[],delta:1.27,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.245,to:1.295}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"3e202e30-2d69-43ed-8dc1-d75bf5d3f31d\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.9,assignment:\"CH\\u2083\"}],integration:6,from:.87675,to:.92325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.32,assignment:\"CH\\u2082\"}],integration:2,from:1.26025,to:1.37975}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"202e302d-6953-4d4d-81d7-5bf5d3f31dbe\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.22,assignment:\"CH\\u2083\"}],integration:6,from:1.2075,to:1.2325},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:4.04,assignment:\"CH\"}],integration:1,from:3.99,to:4.09}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"2e302d69-53ed-4dc1-975b-f5d3f31dbeae\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.73,assignment:\"CH\\u2083\"}],integration:3,from:1.71325,to:1.74675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.94,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.9225,to:4.9575000000000005},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:5.03,assignment:\"CH\\u2082(2)\"}],integration:1,from:5.00375,to:5.05625},{signals:[{js:[],delta:5.83,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.805,to:5.855}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"302d6953-ed4d-41d7-9bf5-d3f31dbeaef6\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.62,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.594999999999999,to:8.645},{signals:[{js:[],delta:7.29,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.265,to:7.315},{signals:[{js:[],delta:7.68,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.654999999999999,to:7.705}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"2d6953ed-4dc1-475b-b5d3-f31dbeaef6dc\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:8.4,assignment:\"NH\",multiplicity:\"br t\"}],integration:1,from:8.395,to:8.405000000000001},{signals:[{js:[],delta:6.83,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.805,to:6.855},{signals:[{js:[],delta:6.26,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.234999999999999,to:6.285}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"6953ed4d-c1d7-4bf5-93f3-1dbeaef6dcae\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:2.87,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:2.845,to:2.895},{signals:[{js:[],delta:1.68,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.655,to:1.7049999999999998}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"53ed4dc1-d75b-45d3-b31d-beaef6dcae0f\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.07,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.065,to:.07500000000000001}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"ed4dc1d7-5bf5-43f3-9dbe-aef6dcae0f08\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.76,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.735,to:3.7849999999999997},{signals:[{js:[],delta:1.85,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.8250000000000002,to:1.875}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"4dc1d75b-f5d3-431d-beae-f6dcae0f089c\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.36,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.355,to:2.3649999999999998},{signals:[{js:[],delta:7.17,assignment:\"CH(2,4,6)\",multiplicity:\"m\"}],integration:3,from:7.145,to:7.195},{signals:[{js:[],delta:7.25,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.225,to:7.275}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"c1d75bf5-d3f3-4dbe-aef6-dcae0f089ce5\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.03,assignment:\"CH\\u2083\"}],integration:6,from:1.0075,to:1.0525},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.53,assignment:\"CH\\u2082\"}],integration:4,from:2.49875,to:2.56125}],nucleus:\"1H\",solvent:\"CDCl\\u2083\",id:\"d75bf5d3-f31d-4eae-b6dc-ae0f089ce51b\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:.43,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:.425,to:.435}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"5bf5d3f3-1dbe-4ef6-9cae-0f089ce51bb1\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:1.57,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.5650000000000002,to:1.575}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"f5d3f31d-beae-46dc-ae0f-089ce51bb1a2\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:1.57,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:1.5650000000000002,to:1.575}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"d3f31dbe-aef6-4cae-8f08-9ce51bb1a21d\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:.69,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:.6849999999999999,to:.695}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"f31dbeae-f6dc-4e0f-889c-e51bb1a21dcc\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.12,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.115,to:7.125}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"1dbeaef6-dcae-4f08-9ce5-1bb1a21dcc47\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.03,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.0250000000000001,to:1.035},{signals:[{js:[],delta:.58,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:.575,to:.585}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"beaef6dc-ae0f-489c-a51b-b1a21dcc472a\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:6.1,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:6.095,to:6.1049999999999995}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"aef6dcae-0f08-4ce5-9bb1-a21dcc472ab0\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.36,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.355,to:3.3649999999999998}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"f6dcae0f-089c-451b-b1a2-1dcc472ab086\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.4,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.395,to:1.4049999999999998}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"dcae0f08-9ce5-4bb1-a21d-cc472ab08669\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:2.91,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:2.9050000000000002,to:2.915}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"ae0f089c-e51b-41a2-9dcc-472ab08669b5\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:4.32,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:4.315,to:4.325}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"0f089ce5-1bb1-421d-8c47-2ab08669b5cd\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.1,assignment:\"CH\\u2083\"}],integration:6,from:1.0775000000000001,to:1.1225},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.25,assignment:\"CH\\u2082\"}],integration:4,from:3.21875,to:3.28125}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"089ce51b-b1a2-4dcc-872a-b08669b5cd43\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.43,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.4050000000000002,to:3.455},{signals:[{js:[],delta:3.31,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.285,to:3.335},{signals:[{js:[],delta:3.12,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.115,to:3.125}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"9ce51bb1-a21d-4c47-aab0-8669b5cd43e2\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.57,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.565,to:7.575},{signals:[{js:[],delta:2.37,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.365,to:2.375},{signals:[{js:[],delta:1.96,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.955,to:1.9649999999999999}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"e51bb1a2-1dcc-472a-b086-69b5cd43e284\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.33,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.325,to:3.335}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"1bb1a21d-cc47-4ab0-8669-b5cd43e2842c\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.12,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.115,to:3.125},{signals:[{js:[],delta:3.31,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.305,to:3.315}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"b1a21dcc-472a-4086-a9b5-cd43e2842cb2\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.81,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.805,to:.8150000000000001}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"a21dcc47-2ab0-4669-b5cd-43e2842cb2c8\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.97,assignment:\"CH\\u2083\"}],integration:3,from:.9475,to:.9924999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.36,assignment:\"CH\\u2082\"}],integration:2,from:3.32875,to:3.39125},{signals:[{js:[],delta:.83,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:.825,to:.835}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"1dcc472a-b086-49b5-8d43-e2842cb2c88b\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:1.69,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:1.685,to:1.6949999999999998},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.87,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:3.83875,to:3.90125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.94,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:.9175,to:.9624999999999999}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"cc472ab0-8669-45cd-83e2-842cb2c88b81\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.25,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.245,to:5.255}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"472ab086-69b5-4d43-a284-2cb2c88b81eb\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.36,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.355,to:3.3649999999999998}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"2ab08669-b5cd-43e2-842c-b2c88b81eb96\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[],integration:6,from:.89,to:.96,multiplicity:\"m\"},{signals:[{js:[],delta:1.33,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.3162500000000001,to:1.34375}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"b08669b5-cd43-4284-acb2-c88b81eb96d6\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.1,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.095,to:2.105}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"8669b5cd-43e2-442c-b2c8-8b81eb96d6bd\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.88,assignment:\"CH\\u2083\"}],integration:6,from:.8575,to:.9025},{signals:[{js:[],delta:1.22,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.195,to:1.2449999999999999}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"69b5cd43-e284-4cb2-888b-81eb96d6bd71\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.1,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.095,to:.10500000000000001}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"b5cd43e2-842c-42c8-8b81-eb96d6bd718c\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.42,assignment:\"CH\\u2083\"}],integration:18,from:2.4031249999999997,to:2.436875}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"cd43e284-2cb2-488b-81eb-96d6bd718cba\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.5,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.495,to:4.505}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"43e2842c-b2c8-4b81-ab96-d6bd718cbabb\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.3,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.295,to:7.305},{signals:[{js:[],delta:6.86,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:6.855,to:6.865}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"e2842cb2-c88b-41eb-96d6-bd718cbabbca\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.17,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.165,to:.17500000000000002}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"842cb2c8-8b81-4b96-96bd-718cbabbca91\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.03,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.025,to:3.0349999999999997}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"2cb2c88b-81eb-46d6-bd71-8cbabbca9182\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:3.01,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.005,to:3.0149999999999997}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"b2c88b81-eb96-46bd-b18c-babbca9182ad\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.87,assignment:\"CH\\u2083\"}],integration:6,from:.8475,to:.8925},{signals:[{js:[],delta:1.25,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.225,to:1.275}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"c88b81eb-96d6-4d71-8cba-bbca9182ad01\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.89,assignment:\"CH\\u2083\"}],integration:6,from:.86675,to:.91325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.32,assignment:\"CH\\u2082\"}],integration:2,from:1.26025,to:1.37975}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"8b81eb96-d6bd-418c-babb-ca9182ad0197\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:.95,assignment:\"CH\\u2083\"}],integration:6,from:.9375,to:.9624999999999999},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:3.65,assignment:\"CH\"}],integration:1,from:3.6,to:3.6999999999999997}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"81eb96d6-bd71-4cba-bbca-9182ad0197c7\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.55,assignment:\"CH\\u2083\"}],integration:3,from:1.53325,to:1.56675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.92,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.9025,to:4.9375},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:4.98,assignment:\"CH\\u2082(2)\"}],integration:1,from:4.95375,to:5.0062500000000005},{signals:[{js:[],delta:5.7,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.675,to:5.7250000000000005}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"eb96d6bd-718c-4abb-8a91-82ad0197c7ba\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.47,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.445,to:8.495000000000001},{signals:[{js:[],delta:6.67,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:6.645,to:6.695},{signals:[{js:[],delta:6.99,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:6.965,to:7.015000000000001}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"96d6bd71-8cba-4bca-9182-ad0197c7ba25\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:7.71,assignment:\"NH\",multiplicity:\"br t\"}],integration:1,from:7.705,to:7.715},{signals:[{js:[],delta:6.43,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.404999999999999,to:6.455},{signals:[{js:[],delta:6.27,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.244999999999999,to:6.295}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"d6bd718c-babb-4a91-82ad-0197c7ba258f\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:2.54,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:2.515,to:2.565},{signals:[{js:[],delta:1.36,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.3350000000000002,to:1.385}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"bd718cba-bbca-4182-ad01-97c7ba258f07\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.26,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.255,to:.265}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"718cbabb-ca91-42ad-8197-c7ba258f07d2\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.54,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.515,to:3.565},{signals:[{js:[],delta:1.43,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.405,to:1.4549999999999998}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"8cbabbca-9182-4d01-97c7-ba258f07d2cf\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.11,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.105,to:2.1149999999999998},{signals:[],integration:3,from:6.96,to:7.01,multiplicity:\"m\"},{signals:[{js:[],delta:7.09,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.0649999999999995,to:7.115}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"babbca91-82ad-4197-87ba-258f07d2cf76\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.95,assignment:\"CH\\u2083\"}],integration:6,from:.9275,to:.9724999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.39,assignment:\"CH\\u2082\"}],integration:4,from:2.35875,to:2.42125}],nucleus:\"1H\",solvent:\"toluene-d\\u2088\",id:\"bbca9182-ad01-47c7-ba25-8f07d2cf760b\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:.4,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:.395,to:.405}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"ca9182ad-0197-47ba-a58f-07d2cf760b06\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:1.52,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.5150000000000001,to:1.525}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"9182ad01-97c7-4a25-8f07-d2cf760b0655\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:1.55,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:1.5450000000000002,to:1.555}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"82ad0197-c7ba-458f-87d2-cf760b06559f\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:.58,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:.575,to:.585}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"ad0197c7-ba25-4f07-92cf-760b06559f23\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.15,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.1450000000000005,to:7.155}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"0197c7ba-258f-47d2-8f76-0b06559f2342\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.05,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.0450000000000002,to:1.055},{signals:[{js:[],delta:.63,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:.625,to:.635}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"97c7ba25-8f07-42cf-b60b-06559f2342f4\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:6.15,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:6.1450000000000005,to:6.155}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"c7ba258f-07d2-4f76-8b06-559f2342f456\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.39,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.3850000000000002,to:3.395}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"ba258f07-d2cf-460b-8655-9f2342f4565a\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.4,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.395,to:1.4049999999999998}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"258f07d2-cf76-4b06-959f-2342f4565a96\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:2.9,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:2.895,to:2.905}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"8f07d2cf-760b-4655-9f23-42f4565a9681\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:4.27,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:4.265,to:4.2749999999999995}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"07d2cf76-0b06-459f-a342-f4565a9681f2\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.11,assignment:\"CH\\u2083\"}],integration:6,from:1.0875000000000001,to:1.1325},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.26,assignment:\"CH\\u2082\"}],integration:4,from:3.22875,to:3.29125}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"d2cf760b-0655-4f23-82f4-565a9681f284\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.46,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.435,to:3.485},{signals:[{js:[],delta:3.34,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.315,to:3.3649999999999998},{signals:[{js:[],delta:3.11,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.105,to:3.1149999999999998}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"cf760b06-559f-4342-b456-5a9681f28458\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.63,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.625,to:7.635},{signals:[{js:[],delta:2.36,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.355,to:2.3649999999999998},{signals:[{js:[],delta:1.86,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.8550000000000002,to:1.865}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"760b0655-9f23-42f4-965a-9681f28458e3\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.35,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.345,to:3.355}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"0b06559f-2342-4456-9a96-81f28458e3ce\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.12,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.115,to:3.125},{signals:[{js:[],delta:3.33,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.325,to:3.335}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"06559f23-42f4-465a-9681-f28458e3ce97\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.8,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.795,to:.805}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"559f2342-f456-4a96-81f2-8458e3ce9766\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.96,assignment:\"CH\\u2083\"}],integration:3,from:.9375,to:.9824999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.34,assignment:\"CH\\u2082\"}],integration:2,from:3.30875,to:3.37125},{signals:[{js:[],delta:.5,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:.495,to:.505}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"9f2342f4-565a-4681-b284-58e3ce9766fc\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:1.65,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:1.645,to:1.6549999999999998},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.89,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:3.85875,to:3.92125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.92,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:.8975000000000001,to:.9425}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"2342f456-5a96-41f2-8458-e3ce9766fcbf\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.25,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.245,to:5.255}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"42f4565a-9681-4284-98e3-ce9766fcbf3e\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.41,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.4050000000000002,to:3.415}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"f4565a96-81f2-4458-a3ce-9766fcbf3e4c\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[],integration:6,from:.9,to:.98,multiplicity:\"m\"},{signals:[{js:[],delta:1.32,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.3062500000000001,to:1.33375}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"565a9681-f284-48e3-8e97-66fcbf3e4cbd\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.13,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.125,to:2.135}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"5a9681f2-8458-43ce-9766-fcbf3e4cbdf3\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.89,assignment:\"CH\\u2083\"}],integration:6,from:.8675,to:.9125},{signals:[{js:[],delta:1.24,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.215,to:1.265}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"9681f284-58e3-4e97-a6fc-bf3e4cbdf34f\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.12,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.11499999999999999,to:.125}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"81f28458-e3ce-4766-bcbf-3e4cbdf34fd4\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.4,assignment:\"CH\\u2083\"}],integration:18,from:2.3831249999999997,to:2.416875}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"f28458e3-ce97-46fc-bf3e-4cbdf34fd49d\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.47,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.465,to:4.475}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"8458e3ce-9766-4cbf-be4c-bdf34fd49d29\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.33,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.325,to:7.335},{signals:[{js:[],delta:6.9,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:6.8950000000000005,to:6.905}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"58e3ce97-66fc-4f3e-8cbd-f34fd49d2907\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.16,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.155,to:.165}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"e3ce9766-fcbf-4e4c-bdf3-4fd49d290767\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.07,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.065,to:3.0749999999999997}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"ce9766fc-bf3e-4cbd-b34f-d49d290767c6\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:2.94,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.935,to:2.945}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"9766fcbf-3e4c-4df3-8fd4-9d290767c6a3\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.87,assignment:\"CH\\u2083\"}],integration:6,from:.8475,to:.8925},{signals:[{js:[],delta:1.23,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.205,to:1.255}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"66fcbf3e-4cbd-434f-949d-290767c6a35c\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.86,assignment:\"CH\\u2083\"}],integration:6,from:.83675,to:.88325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.26,assignment:\"CH\\u2082\"}],integration:2,from:1.20025,to:1.31975}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"fcbf3e4c-bdf3-4fd4-9d29-0767c6a35ce5\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:.95,assignment:\"CH\\u2083\"}],integration:6,from:.9375,to:.9624999999999999},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:3.67,assignment:\"CH\"}],integration:1,from:3.62,to:3.7199999999999998}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"bf3e4cbd-f34f-449d-a907-67c6a35ce585\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.55,assignment:\"CH\\u2083\"}],integration:3,from:1.53325,to:1.56675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.95,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.9325,to:4.9675},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:5.01,assignment:\"CH\\u2082(2)\"}],integration:1,from:4.98375,to:5.03625},{signals:[{js:[],delta:5.72,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.694999999999999,to:5.745}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"3e4cbdf3-4fd4-4d29-8767-c6a35ce585c8\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.53,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.504999999999999,to:8.555},{signals:[{js:[],delta:6.66,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:6.635,to:6.6850000000000005},{signals:[{js:[],delta:6.98,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:6.955,to:7.005000000000001}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"4cbdf34f-d49d-4907-a7c6-a35ce585c82c\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:7.8,assignment:\"NH\",multiplicity:\"br t\"}],integration:1,from:7.795,to:7.805},{signals:[{js:[],delta:6.48,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.455,to:6.505000000000001},{signals:[{js:[],delta:6.37,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.345,to:6.3950000000000005}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"bdf34fd4-9d29-4767-86a3-5ce585c82c55\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:2.54,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:2.515,to:2.565},{signals:[{js:[],delta:1.33,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.3050000000000002,to:1.355}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"f34fd49d-2907-47c6-a35c-e585c82c5555\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.29,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.285,to:.295}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"4fd49d29-0767-46a3-9ce5-85c82c555591\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.57,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.545,to:3.5949999999999998},{signals:[{js:[],delta:1.4,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.375,to:1.4249999999999998}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"d49d2907-67c6-435c-a585-c82c55559159\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.11,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.105,to:2.1149999999999998},{signals:[{js:[],delta:7.02,assignment:\"CH(2,4,6)\",multiplicity:\"m\"}],integration:3,from:6.994999999999999,to:7.045},{signals:[{js:[],delta:7.13,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.1049999999999995,to:7.155}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"9d290767-c6a3-4ce5-85c8-2c5555915908\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.96,assignment:\"CH\\u2083\"}],integration:6,from:.9375,to:.9824999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.4,assignment:\"CH\\u2082\"}],integration:4,from:2.36875,to:2.43125}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2086\",id:\"290767c6-a35c-4585-882c-55559159087d\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:1.03,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:1.0250000000000001,to:1.035}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"0767c6a3-5ce5-45c8-ac55-559159087d42\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:1.76,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.7550000000000001,to:1.765}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"67c6a35c-e585-482c-9555-9159087d42d6\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:1.77,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:1.7650000000000001,to:1.775}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"c6a35ce5-85c8-4c55-9591-59087d42d6db\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:1.21,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.205,to:1.2149999999999999}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"a35ce585-c82c-4555-9159-087d42d6dbf8\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.2,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.195,to:7.205}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"5ce585c8-2c55-4591-9908-7d42d6dbf8f6\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.12,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.1150000000000002,to:1.125},{signals:[{js:[],delta:1.3,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:1.2950000000000002,to:1.305}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"e585c82c-5555-4159-887d-42d6dbf8f60a\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:6.74,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:6.735,to:6.745}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"85c82c55-5591-4908-bd42-d6dbf8f60ac4\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.41,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.4050000000000002,to:3.415}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"c82c5555-9159-487d-82d6-dbf8f60ac4bf\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.37,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.3650000000000002,to:1.375}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"2c555591-5908-4d42-96db-f8f60ac4bf95\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:3.26,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.255,to:3.2649999999999997}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"55559159-087d-42d6-9bf8-f60ac4bf9543\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:4.77,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:4.765,to:4.7749999999999995}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"55915908-7d42-46db-b8f6-0ac4bf95430a\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.1,assignment:\"CH\\u2083\"}],integration:6,from:1.0775000000000001,to:1.1225},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.31,assignment:\"CH\\u2082\"}],integration:4,from:3.27875,to:3.34125}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"9159087d-42d6-4bf8-b60a-c4bf95430a06\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.49,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.4650000000000003,to:3.515},{signals:[{js:[],delta:3.37,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.345,to:3.395},{signals:[{js:[],delta:3.16,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.1550000000000002,to:3.165}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"59087d42-d6db-48f6-8ac4-bf95430a06db\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.73,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.7250000000000005,to:7.735},{signals:[{js:[],delta:2.51,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.505,to:2.5149999999999997},{signals:[{js:[],delta:2.3,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.295,to:2.3049999999999997}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"087d42d6-dbf8-460a-84bf-95430a06db47\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.45,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.4450000000000003,to:3.455}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"7d42d6db-f8f6-4ac4-bf95-430a06db470f\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.17,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.165,to:3.175},{signals:[{js:[],delta:3.37,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.365,to:3.375}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"42d6dbf8-f60a-44bf-9543-0a06db470fd2\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.79,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.785,to:.795}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"d6dbf8f6-0ac4-4f95-830a-06db470fd209\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.06,assignment:\"CH\\u2083\"}],integration:3,from:1.0375,to:1.0825},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.51,assignment:\"CH\\u2082\"}],integration:2,from:3.47875,to:3.54125},{signals:[{js:[],delta:1.39,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:1.385,to:1.3949999999999998}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"dbf8f60a-c4bf-4543-8a06-db470fd209ad\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:1.78,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:1.7750000000000001,to:1.785},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.96,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:3.92875,to:3.99125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.04,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.0175,to:1.0625}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"f8f60ac4-bf95-430a-86db-470fd209adca\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.29,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.285,to:5.295}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"f60ac4bf-9543-4a06-9b47-0fd209adca98\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.58,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.575,to:3.585}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"0ac4bf95-430a-46db-870f-d209adca98b8\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[],integration:6,from:.86,to:.92,multiplicity:\"m\"},{signals:[{js:[],delta:1.3,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.2862500000000001,to:1.31375}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"c4bf9543-0a06-4b47-8fd2-09adca98b85d\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.1,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.095,to:2.105}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"bf95430a-06db-470f-9209-adca98b85db4\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.85,assignment:\"CH\\u2083\"}],integration:6,from:.8275,to:.8724999999999999},{signals:[{js:[],delta:1.19,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.165,to:1.2149999999999999}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"95430a06-db47-4fd2-89ad-ca98b85db45f\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.1,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.095,to:.10500000000000001}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"430a06db-470f-4209-adca-98b85db45fe8\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.47,assignment:\"CH\\u2083\"}],integration:18,from:2.453125,to:2.4868750000000004}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"0a06db47-0fd2-49ad-8a98-b85db45fe879\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.49,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.485,to:4.495}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"06db470f-d209-4dca-98b8-5db45fe87967\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.53,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.525,to:7.535},{signals:[{js:[],delta:7.01,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:7.005,to:7.015}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"db470fd2-09ad-4a98-b85d-b45fe8796726\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.15,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.145,to:.155}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"470fd209-adca-48b8-9db4-5fe8796726c0\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.25,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.245,to:3.255},{signals:[{js:[],delta:1.3,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:1.2950000000000002,to:1.305}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"0fd209ad-ca98-485d-b45f-e8796726c032\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:3.59,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.585,to:3.5949999999999998}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"d209adca-98b8-4db4-9fe8-796726c032b2\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.84,assignment:\"CH\\u2083\"}],integration:6,from:.8175,to:.8624999999999999},{signals:[{js:[],delta:1.23,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.205,to:1.255}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"2484baf3-021c-4154-b71c-8dc862404978\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.84,assignment:\"CH\\u2083\"}],integration:6,from:.81675,to:.86325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.26,assignment:\"CH\\u2082\"}],integration:2,from:1.20025,to:1.31975}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"84baf302-1c81-44f7-9c8d-c862404978c3\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.04,assignment:\"CH\\u2083\"}],integration:6,from:1.0275,to:1.0525},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:3.82,assignment:\"CH\"}],integration:1,from:3.77,to:3.8699999999999997}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"baf3021c-8154-471c-8dc8-62404978c306\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.58,assignment:\"CH\\u2083\"}],integration:3,from:1.56325,to:1.5967500000000001},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.91,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.8925,to:4.9275},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:4.98,assignment:\"CH\\u2082(2)\"}],integration:1,from:4.95375,to:5.0062500000000005},{signals:[{js:[],delta:5.72,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.694999999999999,to:5.745}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"f3021c81-54f7-4c8d-8862-404978c3064b\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.51,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.485,to:8.535},{signals:[{js:[],delta:6.9,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:6.875,to:6.925000000000001},{signals:[{js:[],delta:7.25,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.225,to:7.275}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"021c8154-f71c-4dc8-a240-4978c3064b78\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:8.61,assignment:\"NH\",multiplicity:\"br t\"}],integration:1,from:8.604999999999999,to:8.615},{signals:[{js:[],delta:6.62,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.595,to:6.6450000000000005},{signals:[{js:[],delta:6.27,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.244999999999999,to:6.295}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"1c8154f7-1c8d-4862-8049-78c3064b78fd\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:2.64,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:2.615,to:2.665},{signals:[{js:[],delta:1.43,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.405,to:1.4549999999999998}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"8154f71c-8dc8-4240-8978-c3064b78fd49\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.14,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.135,to:.14500000000000002}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"54f71c8d-c862-4049-b8c3-064b78fd49ac\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.59,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.565,to:3.6149999999999998},{signals:[{js:[],delta:1.55,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.5250000000000001,to:1.575}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"f71c8dc8-6240-4978-8306-4b78fd49ac97\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.16,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.1550000000000002,to:2.165},{signals:[],integration:3,from:7.01,to:7.08,multiplicity:\"m\"},{signals:[],integration:2,from:7.1,to:7.17,multiplicity:\"m\"}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"1c8dc862-4049-48c3-864b-78fd49ac9794\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.93,assignment:\"CH\\u2083\"}],integration:6,from:.9075000000000001,to:.9525},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.39,assignment:\"CH\\u2082\"}],integration:4,from:2.35875,to:2.42125}],nucleus:\"1H\",solvent:\"C\\u2086D\\u2085Cl\",id:\"8dc86240-4978-4306-8b78-fd49ac979488\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:2.84,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:2.835,to:2.8449999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"c8624049-78c3-464b-b8fd-49ac9794886f\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:1.96,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.955,to:1.9649999999999999}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"62404978-c306-4b78-bd49-ac9794886f6a\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:2.09,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:2.085,to:2.0949999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"404978c3-064b-48fd-89ac-9794886f6a68\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:2.05,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.045,to:2.0549999999999997}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"4978c306-4b78-4d49-ac97-94886f6a6836\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.36,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.355,to:7.365}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"78c3064b-78fd-49ac-9794-886f6a6836b7\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.18,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.175,to:1.1849999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"c3064b78-fd49-4c97-9488-6f6a6836b70b\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:8.02,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:8.014999999999999,to:8.025}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"064b78fd-49ac-4794-886f-6a6836b70b2a\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.59,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.585,to:3.5949999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"4b78fd49-ac97-4488-af6a-6836b70b2a7a\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.43,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.425,to:1.4349999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"78fd49ac-9794-486f-aa68-36b70b2a7aa2\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:3.87,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.865,to:3.875}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"fd49ac97-9488-4f6a-a836-b70b2a7aa221\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:5.63,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:5.625,to:5.635}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"49ac9794-886f-4a68-b6b7-0b2a7aa2218d\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.11,assignment:\"CH\\u2083\"}],integration:6,from:1.0875000000000001,to:1.1325},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.41,assignment:\"CH\\u2082\"}],integration:4,from:3.37875,to:3.44125}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"ac979488-6f6a-4836-b70b-2a7aa2218dbe\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.56,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.535,to:3.585},{signals:[{js:[],delta:3.47,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.4450000000000003,to:3.495},{signals:[{js:[],delta:3.28,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.275,to:3.2849999999999997}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"9794886f-6a68-46b7-8b2a-7aa2218dbed6\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.96,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.955,to:7.965},{signals:[{js:[],delta:2.94,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.935,to:2.945},{signals:[{js:[],delta:2.78,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.775,to:2.7849999999999997}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"94886f6a-6836-470b-aa7a-a2218dbed615\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.59,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.585,to:3.5949999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"886f6a68-36b7-4b2a-baa2-218dbed615a1\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.28,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.275,to:3.2849999999999997},{signals:[{js:[],delta:3.46,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.455,to:3.465}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"6f6a6836-b70b-4a7a-a221-8dbed615a1e0\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.83,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.825,to:.835}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"6a6836b7-0b2a-4aa2-a18d-bed615a1e08e\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.12,assignment:\"CH\\u2083\"}],integration:3,from:1.0975000000000001,to:1.1425},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.57,assignment:\"CH\\u2082\"}],integration:2,from:3.53875,to:3.60125},{signals:[{js:[],delta:3.39,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:3.3850000000000002,to:3.395}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"6836b70b-2a7a-4221-8dbe-d615a1e08e7f\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:1.97,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:1.965,to:1.9749999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:4.05,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:4.01875,to:4.08125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.2,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.1775,to:1.2225}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"36b70b2a-7aa2-418d-bed6-15a1e08e7f29\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.38,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.375,to:5.385}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"b70b2a7a-a221-4dbe-9615-a1e08e7f294b\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.28,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.275,to:3.2849999999999997}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"0b2a7aa2-218d-4ed6-95a1-e08e7f294bb7\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.9,assignment:\"CH\\u2083\",multiplicity:\"m\"}],integration:6,from:.875,to:.925},{signals:[{js:[],delta:1.29,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.27625,to:1.30375}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"2a7aa221-8dbe-4615-a1e0-8e7f294bb7bc\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.17,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.165,to:2.175}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"7aa2218d-bed6-45a1-a08e-7f294bb7bc52\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.88,assignment:\"CH\\u2083\"}],integration:6,from:.8575,to:.9025},{signals:[{js:[],delta:1.28,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.2550000000000001,to:1.305}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"a2218dbe-d615-41e0-8e7f-294bb7bc5242\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.07,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.065,to:.07500000000000001}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"218dbed6-15a1-408e-bf29-4bb7bc524263\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.59,assignment:\"CH\\u2083\"}],integration:18,from:2.5731249999999997,to:2.606875}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"8dbed615-a1e0-4e7f-a94b-b7bc52426331\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.54,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.535,to:4.545}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"bed615a1-e08e-4f29-8bb7-bc5242633188\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.62,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.615,to:7.625},{signals:[{js:[],delta:7.04,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:7.035,to:7.045}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"d615a1e0-8e7f-494b-b7bc-524263318818\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.17,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.165,to:.17500000000000002}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"15a1e08e-7f29-4bb7-bc52-42633188185a\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.31,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.305,to:3.315},{signals:[{js:[],delta:3.12,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:3.115,to:3.125}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"a1e08e7f-294b-47bc-9242-633188185a18\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:4.43,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:4.425,to:4.435}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"e08e7f29-4bb7-4c52-8263-3188185a186d\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.88,assignment:\"CH\\u2083\"}],integration:6,from:.8575,to:.9025},{signals:[{js:[],delta:1.27,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.245,to:1.295}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"8e7f294b-b7bc-4242-a331-88185a186dbf\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.88,assignment:\"CH\\u2083\"}],integration:6,from:.85675,to:.90325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.31,assignment:\"CH\\u2082\"}],integration:2,from:1.25025,to:1.36975}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"7f294bb7-bc52-4263-b188-185a186dbf3c\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.1,assignment:\"CH\\u2083\"}],integration:6,from:1.0875000000000001,to:1.1125},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:3.9,assignment:\"CH\"}],integration:1,from:3.85,to:3.9499999999999997}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"294bb7bc-5242-4331-8818-5a186dbf3c22\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.68,assignment:\"CH\\u2083\"}],integration:3,from:1.66325,to:1.69675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.9,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.8825,to:4.9175},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:5,assignment:\"CH\\u2082(2)\"}],integration:1,from:4.97375,to:5.02625},{signals:[{js:[],delta:5.81,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.784999999999999,to:5.835}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"4bb7bc52-4263-4188-985a-186dbf3c222a\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.58,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.555,to:8.605},{signals:[{js:[],delta:7.35,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.324999999999999,to:7.375},{signals:[{js:[],delta:7.76,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.734999999999999,to:7.785}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"b7bc5242-6331-4818-9a18-6dbf3c222ad8\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:10.02,assignment:\"NH\",multiplicity:\"br t\"}],integration:1,from:10.014999999999999,to:10.025},{signals:[{js:[],delta:6.77,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.744999999999999,to:6.795},{signals:[{js:[],delta:6.07,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.045,to:6.095000000000001}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"bc524263-3188-485a-986d-bf3c222ad8ae\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"52426331-8818-4a18-adbf-3c222ad8ae1e\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.13,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.125,to:.135}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"42633188-185a-486d-bf3c-222ad8ae1e2e\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.63,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.605,to:3.655},{signals:[{js:[],delta:1.79,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.7650000000000001,to:1.815}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"63318818-5a18-4dbf-bc22-2ad8ae1e2e4b\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.32,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.315,to:2.3249999999999997},{signals:[],integration:3,from:7.1,to:7.2,multiplicity:\"m\"},{signals:[],integration:2,from:7.1,to:7.2,multiplicity:\"m\"}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"3188185a-186d-4f3c-a22a-d8ae1e2e4b80\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.96,assignment:\"CH\\u2083\"}],integration:6,from:.9375,to:.9824999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.45,assignment:\"CH\\u2082\"}],integration:4,from:2.41875,to:2.48125}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082CO\",id:\"88185a18-6dbf-4c22-aad8-ae1e2e4b8044\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:3.33,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:3.325,to:3.335}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"185a186d-bf3c-422a-98ae-1e2e4b8044bc\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:1.91,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.905,to:1.9149999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"5a186dbf-3c22-4ad8-ae1e-2e4b8044bc39\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:2.09,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:2.085,to:2.0949999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"186dbf3c-222a-48ae-9e2e-4b8044bc39e3\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:2.07,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.065,to:2.0749999999999997}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"6dbf3c22-2ad8-4e1e-ae4b-8044bc39e374\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.37,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.365,to:7.375}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"bf3c222a-d8ae-4e2e-8b80-44bc39e37405\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.11,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.1050000000000002,to:1.115},{signals:[{js:[],delta:4.19,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:4.1850000000000005,to:4.195}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"3c222ad8-ae1e-4e4b-8044-bc39e3740566\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:8.32,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:8.315,to:8.325000000000001}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"222ad8ae-1e2e-4b80-84bc-39e37405660a\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.51,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.505,to:3.5149999999999997}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"2ad8ae1e-2e4b-4044-bc39-e37405660a11\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.4,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.395,to:1.4049999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"d8ae1e2e-4b80-44bc-b9e3-7405660a11e7\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:3.9,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.895,to:3.905}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"ae1e2e4b-8044-4c39-a374-05660a11e7e2\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:5.76,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:5.755,to:5.765}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"1e2e4b80-44bc-49e3-b405-660a11e7e2ed\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.09,assignment:\"CH\\u2083\"}],integration:6,from:1.0675000000000001,to:1.1125},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.38,assignment:\"CH\\u2082\"}],integration:4,from:3.34875,to:3.41125}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"2e4b8044-bc39-4374-8566-0a11e7e2ed6d\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.51,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.485,to:3.5349999999999997},{signals:[{js:[],delta:3.38,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.355,to:3.405},{signals:[{js:[],delta:3.24,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.2350000000000003,to:3.245}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"4b8044bc-39e3-4405-a60a-11e7e2ed6d5e\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.95,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.945,to:7.955},{signals:[{js:[],delta:2.89,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.8850000000000002,to:2.895},{signals:[{js:[],delta:2.73,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.725,to:2.735}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"8044bc39-e374-4566-8a11-e7e2ed6d5ef5\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.57,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.565,to:3.5749999999999997}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"44bc39e3-7405-460a-91e7-e2ed6d5ef5f2\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.24,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.2350000000000003,to:3.245},{signals:[{js:[],delta:3.43,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.4250000000000003,to:3.435}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"bc39e374-0566-4a11-a7e2-ed6d5ef5f25f\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.82,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.815,to:.825}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"39e37405-660a-41e7-a2ed-6d5ef5f25f47\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.06,assignment:\"CH\\u2083\"}],integration:3,from:1.0375,to:1.0825},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.44,assignment:\"CH\\u2082\"}],integration:2,from:3.40875,to:3.47125},{signals:[{js:[],delta:4.63,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:4.625,to:4.635}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"e3740566-0a11-47e2-ad6d-5ef5f25f4780\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:1.99,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:1.985,to:1.9949999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:4.03,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:3.9987500000000002,to:4.06125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.17,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.1475,to:1.1925}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"7405660a-11e7-42ed-ad5e-f5f25f4780e8\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.41,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.405,to:5.415}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"05660a11-e7e2-4d6d-9ef5-f25f4780e862\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.34,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.335,to:3.3449999999999998}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"660a11e7-e2ed-4d5e-b5f2-5f4780e86228\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[],integration:6,from:.82,to:.88,multiplicity:\"m\"},{signals:[{js:[],delta:1.24,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.22625,to:1.25375}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"0a11e7e2-ed6d-4ef5-b25f-4780e8622801\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.14,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.1350000000000002,to:2.145}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"11e7e2ed-6d5e-45f2-9f47-80e86228014e\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.86,assignment:\"CH\\u2083\"}],integration:6,from:.8375,to:.8825},{signals:[{js:[],delta:1.25,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.225,to:1.275}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"e7e2ed6d-5ef5-425f-8780-e86228014ec5\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.06,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.055,to:.065}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"e2ed6d5e-f5f2-4f47-80e8-6228014ec5ac\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.53,assignment:\"CH\\u2083\"}],integration:18,from:2.5131249999999996,to:2.546875}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"ed6d5ef5-f25f-4780-a862-28014ec5acfa\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.61,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.605,to:4.615}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"6d5ef5f2-5f47-40e8-a228-014ec5acfa40\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.63,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.625,to:7.635},{signals:[{js:[],delta:7.01,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:7.005,to:7.015}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"5ef5f25f-4780-4862-a801-4ec5acfa405d\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.2,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.195,to:.20500000000000002}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"f5f25f47-80e8-4228-814e-c5acfa405da5\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.16,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.1550000000000002,to:3.165},{signals:[{js:[],delta:4.01,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:4.005,to:4.015}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"f25f4780-e862-4801-8ec5-acfa405da567\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:4.42,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:4.415,to:4.425}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"5f4780e8-6228-414e-85ac-fa405da56735\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.86,assignment:\"CH\\u2083\"}],integration:6,from:.8375,to:.8825},{signals:[{js:[],delta:1.27,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.245,to:1.295}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"4780e862-2801-4ec5-acfa-405da5673562\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.87,assignment:\"CH\\u2083\"}],integration:6,from:.84675,to:.89325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.29,assignment:\"CH\\u2082\"}],integration:2,from:1.23025,to:1.34975}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"80e86228-014e-45ac-ba40-5da567356209\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.04,assignment:\"CH\\u2083\"}],integration:6,from:1.0275,to:1.0525},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:3.78,assignment:\"CH\"}],integration:1,from:3.73,to:3.8299999999999996}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"e8622801-4ec5-4cfa-805d-a5673562092f\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.68,assignment:\"CH\\u2083\"}],integration:3,from:1.66325,to:1.69675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.94,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.9225,to:4.9575000000000005},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:5.03,assignment:\"CH\\u2082(2)\"}],integration:1,from:5.00375,to:5.05625},{signals:[{js:[],delta:5.8,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.7749999999999995,to:5.825}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"6228014e-c5ac-4a40-9da5-673562092faa\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.58,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.555,to:8.605},{signals:[{js:[],delta:7.39,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.364999999999999,to:7.415},{signals:[{js:[],delta:7.79,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.765,to:7.815}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"28014ec5-acfa-405d-a567-3562092faa1f\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:10.75,assignment:\"NH\",multiplicity:\"br t\"}],integration:1,from:10.745,to:10.755},{signals:[{js:[],delta:6.73,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.705,to:6.755000000000001},{signals:[{js:[],delta:6.01,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:5.984999999999999,to:6.035}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"014ec5ac-fa40-4da5-a735-62092faa1f30\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:2.67,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:2.645,to:2.695},{signals:[{js:[],delta:1.55,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.5250000000000001,to:1.575}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"4ec5acfa-405d-4567-b562-092faa1f302e\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:-.06,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:-.065,to:-.055}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"c5acfa40-5da5-4735-a209-2faa1f302e9a\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.6,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.575,to:3.625},{signals:[{js:[],delta:1.76,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.735,to:1.785}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"acfa405d-a567-4562-892f-aa1f302e9ad4\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.3,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.295,to:2.3049999999999997},{signals:[{js:[],delta:7.18,assignment:\"CH(2,4,6)\",multiplicity:\"m\"}],integration:3,from:7.154999999999999,to:7.205},{signals:[{js:[],delta:7.25,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.225,to:7.275}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"fa405da5-6735-4209-afaa-1f302e9ad415\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.93,assignment:\"CH\\u2083\"}],integration:6,from:.9075000000000001,to:.9525},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.43,assignment:\"CH\\u2082\"}],integration:4,from:2.39875,to:2.46125}],nucleus:\"1H\",solvent:\"(CD\\u2083)\\u2082SO\",id:\"405da567-3562-492f-aa1f-302e9ad41578\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:2.13,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:2.125,to:2.135}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"5da56735-6209-4faa-9f30-2e9ad4157846\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:1.96,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.955,to:1.9649999999999999}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"a5673562-092f-4a1f-b02e-9ad4157846b1\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:2.08,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:2.075,to:2.085}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"67356209-2faa-4f30-ae9a-d4157846b142\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:1.96,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.955,to:1.9649999999999999}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"3562092f-aa1f-402e-9ad4-157846b1423b\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.37,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.365,to:7.375}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"62092faa-1f30-4e9a-9415-7846b1423bfc\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.16,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.155,to:1.1649999999999998},{signals:[{js:[],delta:2.18,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:2.1750000000000003,to:2.185}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"092faa1f-302e-4ad4-9578-46b1423bfc05\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:7.58,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.575,to:7.585}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"2faa1f30-2e9a-4415-b846-b1423bfc05e7\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.51,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.505,to:3.5149999999999997}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"aa1f302e-9ad4-4578-86b1-423bfc05e7a1\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.44,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.435,to:1.4449999999999998}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"1f302e9a-d415-4846-b142-3bfc05e7a110\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:3.81,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.805,to:3.815}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"302e9ad4-1578-46b1-823b-fc05e7a11081\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:5.44,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:5.4350000000000005,to:5.445}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"2e9ad415-7846-4142-bbfc-05e7a11081c2\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.12,assignment:\"CH\\u2083\"}],integration:6,from:1.0975000000000001,to:1.1425},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.42,assignment:\"CH\\u2082\"}],integration:4,from:3.38875,to:3.45125}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"9ad41578-46b1-423b-bc05-e7a11081c2a6\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.53,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.505,to:3.5549999999999997},{signals:[{js:[],delta:3.45,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.4250000000000003,to:3.475},{signals:[{js:[],delta:3.29,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.285,to:3.295}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"d4157846-b142-4bfc-85e7-a11081c2a613\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.92,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.915,to:7.925},{signals:[{js:[],delta:2.89,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.8850000000000002,to:2.895},{signals:[{js:[],delta:2.77,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.765,to:2.775}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"157846b1-423b-4c05-a7a1-1081c2a6133f\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.6,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.595,to:3.605}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"7846b142-3bfc-45e7-a110-81c2a6133f09\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.28,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.275,to:3.2849999999999997},{signals:[{js:[],delta:3.45,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.4450000000000003,to:3.455}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"46b1423b-fc05-47a1-9081-c2a6133f0922\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.85,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.845,to:.855}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"b1423bfc-05e7-4110-81c2-a6133f092235\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.12,assignment:\"CH\\u2083\"}],integration:3,from:1.0975000000000001,to:1.1425},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.54,assignment:\"CH\\u2082\"}],integration:2,from:3.50875,to:3.57125},{signals:[{js:[],delta:2.47,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:2.4650000000000003,to:2.475}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"423bfc05-e7a1-4081-82a6-133f0922358c\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:1.97,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:1.965,to:1.9749999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:4.06,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:4.02875,to:4.09125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.2,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.1775,to:1.2225}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"3bfc05e7-a110-41c2-a613-3f0922358c57\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.41,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.405,to:5.415}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"fc05e7a1-1081-42a6-933f-0922358c5796\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.51,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.505,to:3.5149999999999997}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"05e7a110-81c2-4613-bf09-22358c579626\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"e7a11081-c2a6-433f-8922-358c579626e3\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.19,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.185,to:2.195}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"a11081c2-a613-4f09-a235-8c579626e325\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.89,assignment:\"CH\\u2083\"}],integration:6,from:.8675,to:.9125},{signals:[{js:[],delta:1.28,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.2550000000000001,to:1.305}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"1081c2a6-133f-4922-b58c-579626e32561\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.07,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.065,to:.07500000000000001}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"81c2a613-3f09-4235-8c57-9626e32561f1\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.57,assignment:\"CH\\u2083\"}],integration:18,from:2.5531249999999996,to:2.586875}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"c2a6133f-0922-458c-9796-26e32561f138\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.57,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.565,to:4.575}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"a6133f09-2235-4c57-9626-e32561f138d9\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.57,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.565,to:7.575},{signals:[{js:[],delta:7.01,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:7.005,to:7.015}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"133f0922-358c-4796-a6e3-2561f138d95e\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.2,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.195,to:.20500000000000002}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"3f092235-8c57-4626-a325-61f138d95e95\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.28,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.275,to:3.2849999999999997},{signals:[{js:[],delta:2.16,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:2.1550000000000002,to:2.165}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"0922358c-5796-46e3-a561-f138d95e95b7\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:4.31,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:4.305,to:4.3149999999999995}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"22358c57-9626-4325-a1f1-38d95e95b791\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.89,assignment:\"CH\\u2083\"}],integration:6,from:.8675,to:.9125},{signals:[{js:[],delta:1.29,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.2650000000000001,to:1.315}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"358c5796-26e3-4561-b138-d95e95b791c9\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.9,assignment:\"CH\\u2083\"}],integration:6,from:.87675,to:.92325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.33,assignment:\"CH\\u2082\"}],integration:2,from:1.27025,to:1.38975}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"8c579626-e325-41f1-b8d9-5e95b791c969\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.09,assignment:\"CH\\u2083\"}],integration:6,from:1.0775000000000001,to:1.1025},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:3.87,assignment:\"CH\"}],integration:1,from:3.8200000000000003,to:3.92}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"579626e3-2561-4138-995e-95b791c96985\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.7,assignment:\"CH\\u2083\"}],integration:3,from:1.68325,to:1.71675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.93,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.9125,to:4.9475},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:5.04,assignment:\"CH\\u2082(2)\"}],integration:1,from:5.01375,to:5.06625},{signals:[{js:[],delta:5.85,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.824999999999999,to:5.875}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"9626e325-61f1-48d9-9e95-b791c969853f\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.57,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.545,to:8.595},{signals:[{js:[],delta:7.33,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.305,to:7.355},{signals:[{js:[],delta:7.73,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.705,to:7.755000000000001}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"26e32561-f138-495e-95b7-91c969853f4f\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:9.27,assignment:\"NH\",multiplicity:\"br t\"}],integration:1,from:9.264999999999999,to:9.275},{signals:[{js:[],delta:6.75,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.725,to:6.775},{signals:[{js:[],delta:6.1,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.074999999999999,to:6.125}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"e32561f1-38d9-4e95-b791-c969853f4fc0\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:2.75,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:2.725,to:2.775},{signals:[{js:[],delta:1.61,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.5850000000000002,to:1.635}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"2561f138-d95e-45b7-91c9-69853f4fc0dd\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.08,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.075,to:.085}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"61f138d9-5e95-4791-8969-853f4fc0dd95\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.64,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.615,to:3.665},{signals:[{js:[],delta:1.8,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.7750000000000001,to:1.825}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"f138d95e-95b7-41c9-a985-3f4fc0dd958d\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.33,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.325,to:2.335},{signals:[],integration:3,from:7.1,to:7.3,multiplicity:\"m\"},{signals:[],integration:2,from:7.1,to:7.3,multiplicity:\"m\"}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"38d95e95-b791-4969-853f-4fc0dd958dc2\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.96,assignment:\"CH\\u2083\"}],integration:6,from:.9375,to:.9824999999999999},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.45,assignment:\"CH\\u2082\"}],integration:4,from:2.41875,to:2.48125}],nucleus:\"1H\",solvent:\"CD\\u2083CN\",id:\"d95e95b7-91c9-4985-bf4f-c0dd958dc29b\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:3.66,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:3.6550000000000002,to:3.665}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"5e95b791-c969-453f-8fc0-dd958dc29b9a\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:2.06,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.055,to:2.065}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"95b791c9-6985-4f4f-80dd-958dc29b9ad3\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:2.19,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:2.185,to:2.195}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"b791c969-853f-4fc0-9d95-8dc29b9ad3d0\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:1.95,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.945,to:1.9549999999999998}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"91c96985-3f4f-40dd-958d-c29b9ad3d03c\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.36,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.355,to:7.365}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"c969853f-4fc0-4d95-8dc2-9b9ad3d03c6b\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.28,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.2750000000000001,to:1.285},{signals:[{js:[],delta:2.2,multiplicity:\"s\",assignment:\"OH\"}],integration:1,from:2.1950000000000003,to:2.205}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"69853f4f-c0dd-458d-829b-9ad3d03c6bf5\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:7.33,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.325,to:7.335}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"853f4fc0-dd95-4dc2-9b9a-d3d03c6bf515\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.64,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.6350000000000002,to:3.645}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"3f4fc0dd-958d-429b-9ad3-d03c6bf5153f\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.47,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.465,to:1.4749999999999999}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"4fc0dd95-8dc2-4b9a-93d0-3c6bf5153fde\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:3.71,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.705,to:3.715}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"c0dd958d-c29b-4ad3-903c-6bf5153fde17\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:5.24,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:5.235,to:5.245}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"dd958dc2-9b9a-43d0-bc6b-f5153fde17fc\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.2,assignment:\"CH\\u2083\"}],integration:6,from:1.1775,to:1.2225},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.58,assignment:\"CH\\u2082\"}],integration:4,from:3.54875,to:3.61125}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"958dc29b-9ad3-403c-abf5-153fde17fcad\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.67,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.645,to:3.695},{signals:[{js:[],delta:3.62,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.595,to:3.645},{signals:[{js:[],delta:3.41,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.4050000000000002,to:3.415}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"8dc29b9a-d3d0-4c6b-b515-3fde17fcadb3\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.86,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.855,to:7.865},{signals:[{js:[],delta:2.98,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.975,to:2.985},{signals:[{js:[],delta:2.88,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.875,to:2.885}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"c29b9ad3-d03c-4bf5-953f-de17fcadb32d\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.76,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.755,to:3.7649999999999997}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"9b9ad3d0-3c6b-4515-bfde-17fcadb32da2\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.4,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.395,to:3.405},{signals:[{js:[],delta:3.61,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.605,to:3.6149999999999998}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"9ad3d03c-6bf5-453f-9e17-fcadb32da20d\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.85,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.845,to:.855}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"d3d03c6b-f515-4fde-97fc-adb32da20d8c\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.22,assignment:\"CH\\u2083\"}],integration:3,from:1.1975,to:1.2425},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.71,assignment:\"CH\\u2082\"}],integration:2,from:3.67875,to:3.74125}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"d03c6bf5-153f-4e17-bcad-b32da20d8ce3\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:2.03,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:2.025,to:2.0349999999999997},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:4.14,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:4.10875,to:4.17125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.26,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.2375,to:1.2825}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"3c6bf515-3fde-47fc-adb3-2da20d8ce3f6\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.4,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.3950000000000005,to:5.405}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"6bf5153f-de17-4cad-b32d-a20d8ce3f6ef\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.72,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.7150000000000003,to:3.725}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"f5153fde-17fc-4db3-ada2-0d8ce3f6efac\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[],integration:6,from:.88,to:.94,multiplicity:\"m\"},{signals:[{js:[],delta:1.33,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.3162500000000001,to:1.34375}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"153fde17-fcad-432d-a20d-8ce3f6efac86\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.24,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.2350000000000003,to:2.245}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"3fde17fc-adb3-4da2-8d8c-e3f6efac8654\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.91,assignment:\"CH\\u2083\"}],integration:6,from:.8875000000000001,to:.9325},{signals:[{js:[],delta:1.31,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.2850000000000001,to:1.335}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"de17fcad-b32d-420d-8ce3-f6efac8654fd\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.08,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.075,to:.085}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"17fcadb3-2da2-4d8c-a3f6-efac8654fd7c\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.63,assignment:\"CH\\u2083\"}],integration:18,from:2.6131249999999997,to:2.646875}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"fcadb32d-a20d-4ce3-b6ef-ac8654fd7c36\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.53,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.525,to:4.535}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"adb32da2-0d8c-43f6-afac-8654fd7c36b9\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.61,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.605,to:7.615},{signals:[{js:[],delta:7.03,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:7.025,to:7.035}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"b32da20d-8ce3-46ef-ac86-54fd7c36b99f\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.18,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.175,to:.185}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"2da20d8c-e3f6-4fac-8654-fd7c36b99ff8\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.44,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.435,to:3.445}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"a20d8ce3-f6ef-4c86-94fd-7c36b99ff8c0\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:4.28,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:4.275,to:4.285}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"0d8ce3f6-efac-4654-bd7c-36b99ff8c0f9\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.9,assignment:\"CH\\u2083\"}],integration:6,from:.8775000000000001,to:.9225},{signals:[{js:[],delta:1.33,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.3050000000000002,to:1.355}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"8ce3f6ef-ac86-44fd-bc36-b99ff8c0f948\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.9,assignment:\"CH\\u2083\"}],integration:6,from:.87675,to:.92325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.33,assignment:\"CH\\u2082\"}],integration:2,from:1.27025,to:1.38975}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"e3f6efac-8654-4d7c-b6b9-9ff8c0f948d2\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.2,assignment:\"CH\\u2083\"}],integration:6,from:1.1875,to:1.2125},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:4.05,assignment:\"CH\"}],integration:1,from:4,to:4.1}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"f6efac86-54fd-4c36-b99f-f8c0f948d208\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.7,assignment:\"CH\\u2083\"}],integration:3,from:1.68325,to:1.71675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.93,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.9125,to:4.9475},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:5.03,assignment:\"CH\\u2082(2)\"}],integration:1,from:5.00375,to:5.05625},{signals:[{js:[],delta:5.87,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.845,to:5.8950000000000005}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"efac8654-fd7c-46b9-9ff8-c0f948d20801\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.45,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.424999999999999,to:8.475},{signals:[{js:[],delta:7.4,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.375,to:7.425000000000001},{signals:[{js:[],delta:7.82,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.795,to:7.845000000000001}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"ac8654fd-7c36-499f-b8c0-f948d208016c\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:6.84,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.8149999999999995,to:6.865},{signals:[{js:[],delta:6.24,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.215,to:6.265000000000001}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"8654fd7c-36b9-4ff8-80f9-48d208016c07\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:3.11,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.085,to:3.135},{signals:[{js:[],delta:1.93,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.905,to:1.9549999999999998}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"54fd7c36-b99f-48c0-b948-d208016c0788\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.16,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.155,to:.165}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"fd7c36b9-9ff8-40f9-88d2-08016c07882c\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.78,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.755,to:3.8049999999999997},{signals:[{js:[],delta:1.91,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.885,to:1.9349999999999998}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"7c36b99f-f8c0-4948-9208-016c07882cca\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.33,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.325,to:2.335},{signals:[],integration:3,from:7.1,to:7.3,multiplicity:\"m\"},{signals:[],integration:2,from:7.1,to:7.3,multiplicity:\"m\"}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"36b99ff8-c0f9-48d2-8801-6c07882cca88\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.31,assignment:\"CH\\u2083\"}],integration:6,from:1.2875,to:1.3325},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.12,assignment:\"CH\\u2082\"}],integration:4,from:3.08875,to:3.15125}],nucleus:\"1H\",solvent:\"TFE-d\\u2083\",id:\"b99ff8c0-f948-4208-816c-07882cca8889\"},{names:[\"water\"],smiles:\"O\",ranges:[{signals:[{js:[],delta:4.87,multiplicity:\"s\",assignment:\"OH\"}],integration:2,from:4.865,to:4.875}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"9ff8c0f9-48d2-4801-ac07-882cca888979\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:1.99,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:1.985,to:1.9949999999999999}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"f8c0f948-d208-416c-8788-2cca88897927\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:2.15,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:2.145,to:2.155}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"c0f948d2-0801-4c07-882c-ca888979274e\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:2.03,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.025,to:2.0349999999999997}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"f948d208-016c-4788-acca-888979274e0f\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[{signals:[{js:[],delta:7.33,multiplicity:\"s\",assignment:\"CH\"}],integration:6,from:7.325,to:7.335}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"48d20801-6c07-482c-8a88-8979274e0f66\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.4,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.395,to:1.4049999999999998}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"d208016c-0788-4cca-8889-79274e0f6691\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[{signals:[{js:[],delta:7.9,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.8950000000000005,to:7.905}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"08016c07-882c-4a88-8979-274e0f66916b\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.64,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.6350000000000002,to:3.645}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"016c0788-2cca-4889-b927-4e0f66916b30\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[{signals:[{js:[],delta:1.45,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:12,from:1.445,to:1.4549999999999998}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"6c07882c-ca88-4979-a74e-0f66916b30e0\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[{signals:[{js:[],delta:3.78,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.775,to:3.7849999999999997}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"07882cca-8889-4927-8e0f-66916b30e07a\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[{signals:[{js:[],delta:5.49,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:2,from:5.485,to:5.495}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"882cca88-8979-474e-8f66-916b30e07a09\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.18,assignment:\"CH\\u2083\"}],integration:6,from:1.1575,to:1.2025},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.49,assignment:\"CH\\u2082\"}],integration:4,from:3.45875,to:3.52125}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"2cca8889-7927-4e0f-a691-6b30e07a09f5\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.61,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.585,to:3.635},{signals:[{js:[],delta:3.58,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.555,to:3.605},{signals:[{js:[],delta:3.35,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.345,to:3.355}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"ca888979-274e-4f66-916b-30e07a09f57b\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.97,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.965,to:7.975},{signals:[{js:[],delta:2.99,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.9850000000000003,to:2.995},{signals:[{js:[],delta:2.86,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.855,to:2.8649999999999998}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"88897927-4e0f-4691-ab30-e07a09f57b88\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.66,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.6550000000000002,to:3.665}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"8979274e-0f66-416b-b0e0-7a09f57b88fc\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.35,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.345,to:3.355},{signals:[{js:[],delta:3.52,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.515,to:3.525}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"79274e0f-6691-4b30-a07a-09f57b88fcde\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.85,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.845,to:.855}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"274e0f66-916b-40e0-ba09-f57b88fcde48\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.19,assignment:\"CH\\u2083\"}],integration:3,from:1.1675,to:1.2125},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.6,assignment:\"CH\\u2082\"}],integration:2,from:3.56875,to:3.63125}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"4e0f6691-6b30-407a-89f5-7b88fcde4838\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:2.01,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:2.005,to:2.0149999999999997},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:4.09,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:4.05875,to:4.12125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.24,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.2175,to:1.2625}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"0f66916b-30e0-4a09-b57b-88fcde483897\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.39,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.385,to:5.395}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"66916b30-e07a-49f5-bb88-fcde48389771\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.59,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.585,to:3.5949999999999998}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"916b30e0-7a09-457b-88fc-de48389771e9\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[{signals:[],integration:6,from:.86,to:.93,multiplicity:\"m\"},{signals:[{js:[],delta:1.29,multiplicity:\"br s\",assignment:\"CH\\u2082\"}],integration:10,from:1.27625,to:1.30375}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"6b30e07a-09f5-4b88-bcde-48389771e9c5\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[{signals:[{js:[],delta:2.19,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:2.185,to:2.195}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"30e07a09-f57b-48fc-9e48-389771e9c5b2\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.9,assignment:\"CH\\u2083\"}],integration:6,from:.8775000000000001,to:.9225},{signals:[{js:[],delta:1.29,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:8,from:1.2650000000000001,to:1.315}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"e07a09f5-7b88-4cde-8838-9771e9c5b2f3\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.07,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.065,to:.07500000000000001}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"7a09f57b-88fc-4e48-b897-71e9c5b2f3bc\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.64,assignment:\"CH\\u2083\"}],integration:18,from:2.623125,to:2.6568750000000003}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"09f57b88-fcde-4838-9771-e9c5b2f3bcf5\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[{signals:[{js:[],delta:4.56,multiplicity:\"s\",assignment:\"H\\u2082\"}],integration:2,from:4.555,to:4.5649999999999995}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"f57b88fc-de48-4897-b1e9-c5b2f3bcf52c\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.67,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.665,to:7.675},{signals:[{js:[],delta:7.05,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:7.045,to:7.055}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"7b88fcde-4838-4771-a9c5-b2f3bcf52c7c\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.2,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.195,to:.20500000000000002}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"88fcde48-3897-41e9-85b2-f3bcf52c7c8b\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.34,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.335,to:3.3449999999999998}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"fcde4838-9771-49c5-b2f3-bcf52c7c8ba3\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:4.34,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:4.335,to:4.345}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"de483897-71e9-45b2-b3bc-f52c7c8ba35d\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.9,assignment:\"CH\\u2083\"}],integration:6,from:.8775000000000001,to:.9225},{signals:[{js:[],delta:1.29,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:6,from:1.2650000000000001,to:1.315}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"48389771-e9c5-42f3-bcf5-2c7c8ba35df8\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.91,assignment:\"CH\\u2083\"}],integration:6,from:.88675,to:.93325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.34,assignment:\"CH\\u2082\"}],integration:2,from:1.28025,to:1.39975}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"389771e9-c5b2-43bc-b52c-7c8ba35df85d\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.5,assignment:\"CH\\u2083\"}],integration:6,from:1.4875,to:1.5125},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:3.92,assignment:\"CH\"}],integration:1,from:3.87,to:3.9699999999999998}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"9771e9c5-b2f3-4cf5-ac7c-8ba35df85d60\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.7,assignment:\"CH\\u2083\"}],integration:3,from:1.68325,to:1.71675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.91,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.8925,to:4.9275},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:5.01,assignment:\"CH\\u2082(2)\"}],integration:1,from:4.98375,to:5.03625},{signals:[{js:[],delta:5.82,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.795,to:5.845000000000001}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"71e9c5b2-f3bc-452c-bc8b-a35df85d6026\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.53,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.504999999999999,to:8.555},{signals:[{js:[],delta:7.44,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.415,to:7.465000000000001},{signals:[{js:[],delta:7.85,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.824999999999999,to:7.875}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"e9c5b2f3-bcf5-4c7c-8ba3-5df85d60266c\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:6.72,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.694999999999999,to:6.745},{signals:[{js:[],delta:6.08,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.055,to:6.105}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"c5b2f3bc-f52c-4c8b-a35d-f85d60266cc8\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:2.8,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:2.775,to:2.8249999999999997},{signals:[{js:[],delta:1.72,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.695,to:1.7449999999999999}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"b2f3bcf5-2c7c-4ba3-9df8-5d60266cc8db\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[{signals:[{js:[],delta:.1,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.095,to:.10500000000000001}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"f3bcf52c-7c8b-435d-b85d-60266cc8db1b\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.71,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.685,to:3.735},{signals:[{js:[],delta:1.87,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.8450000000000002,to:1.895}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"bcf52c7c-8ba3-4df8-9d60-266cc8db1beb\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[{signals:[{js:[],delta:2.32,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.315,to:2.3249999999999997},{signals:[{js:[],delta:7.16,assignment:\"CH(2,4,6)\",multiplicity:\"m\"}],integration:3,from:7.135,to:7.1850000000000005},{signals:[{js:[],delta:7.16,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.135,to:7.1850000000000005}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"f52c7c8b-a35d-485d-a026-6cc8db1bebc1\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.05,assignment:\"CH\\u2083\"}],integration:6,from:1.0275,to:1.0725},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.58,assignment:\"CH\\u2082\"}],integration:4,from:2.54875,to:2.61125}],nucleus:\"1H\",solvent:\"CD\\u2083OD\",id:\"2c7c8ba3-5df8-4d60-a66c-c8db1bebc1e6\"},{names:[\"water\"],smiles:\"O\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"7c8ba35d-f85d-4026-acc8-db1bebc1e6c8\"},{names:[\"acetic acid\"],smiles:\"CC(=O)O\",ranges:[{signals:[{js:[],delta:2.08,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.075,to:2.085}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"8ba35df8-5d60-466c-88db-1bebc1e6c8eb\"},{names:[\"acetone\"],smiles:\"CC(=O)C\",ranges:[{signals:[{js:[],delta:2.22,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:2.2150000000000003,to:2.225}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"a35df85d-6026-4cc8-9b1b-ebc1e6c8eb62\"},{names:[\"acetonitrile\"],smiles:\"CC#N\",ranges:[{signals:[{js:[],delta:2.06,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.055,to:2.065}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"5df85d60-266c-48db-9beb-c1e6c8eb6254\"},{names:[\"benzene\"],smiles:\"c1ccccc1\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"f85d6026-6cc8-4b1b-abc1-e6c8eb62545e\"},{names:[\"tert -butyl alcohol\"],smiles:\"CC(C)(C)O\",ranges:[{signals:[{js:[],delta:1.24,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:9,from:1.235,to:1.2449999999999999}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"5d60266c-c8db-4beb-81e6-c8eb62545efb\"},{names:[\"chloroform\"],smiles:\"ClC(Cl)Cl\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"60266cc8-db1b-4bc1-a6c8-eb62545efb53\"},{names:[\"18-crown-6\"],smiles:\"C1COCCOCCOCCOCCOCCO1\",ranges:[{signals:[{js:[],delta:3.8,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:24,from:3.795,to:3.8049999999999997}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"266cc8db-1beb-41e6-88eb-62545efb53ec\"},{names:[\"cyclohexane\"],smiles:\"C1CCCCC1\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"6cc8db1b-ebc1-46c8-ab62-545efb53ec08\"},{names:[\"1,2-dichloroethane\"],smiles:\"ClCCCl\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"c8db1beb-c1e6-48eb-a254-5efb53ec08de\"},{names:[\"dichloromethane\"],smiles:\"ClCCl\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"db1bebc1-e6c8-4b62-945e-fb53ec08ded4\"},{names:[\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.17,assignment:\"CH\\u2083\"}],integration:6,from:1.1475,to:1.1925},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.56,assignment:\"CH\\u2082\"}],integration:4,from:3.52875,to:3.59125}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"1bebc1e6-c8eb-4254-9efb-53ec08ded429\"},{names:[\"diglyme\"],smiles:\"COCCOCCOC\",ranges:[{signals:[{js:[],delta:3.67,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.645,to:3.695},{signals:[{js:[],delta:3.61,assignment:\"CH\\u2082\",multiplicity:\"m\"}],integration:4,from:3.585,to:3.635},{signals:[{js:[],delta:3.37,multiplicity:\"s\",assignment:\"OCH\\u2083\"}],integration:6,from:3.365,to:3.375}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"ebc1e6c8-eb62-445e-bb53-ec08ded429af\"},{names:[\"dimethylformamide\"],smiles:\"C(=O)N(C)C\",ranges:[{signals:[{js:[],delta:7.92,multiplicity:\"s\",assignment:\"CH\"}],integration:1,from:7.915,to:7.925},{signals:[{js:[],delta:3.01,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.005,to:3.0149999999999997},{signals:[{js:[],delta:2.85,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:2.845,to:2.855}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"c1e6c8eb-6254-4efb-93ec-08ded429aff3\"},{names:[\"1,4-dioxane\"],smiles:\"C1COCCOC1\",ranges:[{signals:[{js:[],delta:3.75,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:8,from:3.745,to:3.755}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"e6c8eb62-545e-4b53-ac08-ded429aff37b\"},{names:[\"DME\",\"diethyl ether\"],smiles:\"CCOCC\",ranges:[{signals:[{js:[],delta:3.37,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:3.365,to:3.375},{signals:[{js:[],delta:3.6,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.595,to:3.605}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"c8eb6254-5efb-43ec-88de-d429aff37b75\"},{names:[\"ethane\"],smiles:\"CC\",ranges:[{signals:[{js:[],delta:.82,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:6,from:.815,to:.825}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"eb62545e-fb53-4c08-9ed4-29aff37b75de\"},{names:[\"ethanol\"],smiles:\"CCO\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.17,assignment:\"CH\\u2083\"}],integration:3,from:1.1475,to:1.1925},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:3.65,assignment:\"CH\\u2082\"}],integration:2,from:3.61875,to:3.68125}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"62545efb-53ec-48de-9429-aff37b75de30\"},{names:[\"ethyl acetate\"],smiles:\"CC(=O)CC\",ranges:[{signals:[{js:[],delta:2.07,multiplicity:\"s\",assignment:\"CH\\u2083CO\"}],integration:3,from:2.065,to:2.0749999999999997},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:4.14,assignment:\"CH\\u2082CH\\u2083\"}],integration:2,from:4.10875,to:4.17125},{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:1.24,assignment:\"CH\\u2082CH\\u2083\"}],integration:3,from:1.2175,to:1.2625}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"545efb53-ec08-4ed4-a9af-f37b75de30d1\"},{names:[\"ethylene\"],smiles:\"C=C\",ranges:[{signals:[{js:[],delta:5.44,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:5.4350000000000005,to:5.445}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"5efb53ec-08de-4429-aff3-7b75de30d13e\"},{names:[\"ethylene glycol\"],smiles:\"OCCO\",ranges:[{signals:[{js:[],delta:3.65,multiplicity:\"s\",assignment:\"CH\\u2082\"}],integration:4,from:3.645,to:3.655}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"9ee29fb1-91db-4ba5-b28c-2f85d7229fb1\"},{names:[\"H grease\\u1DA0\"],smiles:\"\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"e29fb191-db1b-45f2-8c2f-85d7229fb1ae\"},{names:[\"hexamethylbenzene\"],smiles:\"CC1=C(C(=C(C(=C1C)C)C)C)C\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"9fb191db-1ba5-428c-af85-d7229fb1aed3\"},{names:[\"n-hexane\"],smiles:\"CCCCCC\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"b191db1b-a5f2-4c2f-85d7-229fb1aed368\"},{names:[\"HMDSO\"],smiles:\"C[Si](C)(C)O[Si](C)(C)C\",ranges:[{signals:[{js:[],delta:.28,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:18,from:.275,to:.28500000000000003}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"91db1ba5-f28c-4f85-9722-9fb1aed36811\"},{names:[\"HMPA\"],smiles:\"CN(C)P(=O)(N(C)C)N(C)C\",ranges:[{signals:[{js:[{coupling:9.5,multiplicity:\"d\"}],delta:2.61,assignment:\"CH\\u2083\"}],integration:18,from:2.5931249999999997,to:2.626875}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"db1ba5f2-8c2f-45d7-a29f-b1aed3681147\"},{names:[\"hydrogen\"],smiles:\"\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"1ba5f28c-2f85-4722-9fb1-aed368114712\"},{names:[\"imidazole\"],smiles:\"C1=CN=CN1\",ranges:[{signals:[{js:[],delta:7.78,multiplicity:\"s\",assignment:\"CH(2)\"}],integration:1,from:7.775,to:7.785},{signals:[{js:[],delta:7.14,multiplicity:\"s\",assignment:\"CH(4,5)\"}],integration:2,from:7.135,to:7.145}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"a5f28c2f-85d7-429f-b1ae-d36811471295\"},{names:[\"methane\"],smiles:\"C\",ranges:[{signals:[{js:[],delta:.18,multiplicity:\"s\",assignment:\"CH\\u2084\"}],integration:4,from:.175,to:.185}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"f28c2f85-d722-4fb1-aed3-6811471295bc\"},{names:[\"methanol\"],smiles:\"CO\",ranges:[{signals:[{js:[],delta:3.34,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:3.335,to:3.3449999999999998}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"8c2f85d7-229f-41ae-9368-11471295bc05\"},{names:[\"nitromethane\"],smiles:\"C[N+](=O)[O-]\",ranges:[{signals:[{js:[],delta:4.4,multiplicity:\"s\",assignment:\"CH\\u2083\"}],integration:3,from:4.3950000000000005,to:4.405}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"2f85d722-9fb1-4ed3-a811-471295bc05d0\"},{names:[\"n-pentane\"],smiles:\"CCCCC\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"85d7229f-b1ae-4368-9147-1295bc05d0d6\"},{names:[\"propane\"],smiles:\"CCC\",ranges:[{signals:[{js:[{coupling:7.3,multiplicity:\"t\"}],delta:.88,assignment:\"CH\\u2083\"}],integration:6,from:.85675,to:.90325},{signals:[{js:[{coupling:7.3,multiplicity:\"sept\"}],delta:1.3,assignment:\"CH\\u2082\"}],integration:2,from:1.24025,to:1.35975}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"d7229fb1-aed3-4811-8712-95bc05d0d6a8\"},{names:[\"2-propanol\"],smiles:\"CC(O)C\",ranges:[{signals:[{js:[{coupling:6,multiplicity:\"d\"}],delta:1.17,assignment:\"CH\\u2083\"}],integration:6,from:1.1575,to:1.1824999999999999},{signals:[{js:[{coupling:6,multiplicity:\"sept\"}],delta:4.02,assignment:\"CH\"}],integration:1,from:3.9699999999999998,to:4.069999999999999}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"229fb1ae-d368-4147-9295-bc05d0d6a885\"},{names:[\"propylene\"],smiles:\"CC=C\",ranges:[{signals:[{js:[{coupling:6.4,multiplicity:\"d\"},{coupling:1.5,multiplicity:\"t\"}],delta:1.7,assignment:\"CH\\u2083\"}],integration:3,from:1.68325,to:1.71675},{signals:[{js:[{coupling:10,multiplicity:\"d\"}],delta:4.95,assignment:\"CH\\u2082(1)\"}],integration:1,from:4.9325,to:4.9675},{signals:[{js:[{coupling:17,multiplicity:\"d\"}],delta:5.06,assignment:\"CH\\u2082(2)\"}],integration:1,from:5.0337499999999995,to:5.08625},{signals:[{js:[],delta:5.9,assignment:\"CH\",multiplicity:\"m\"}],integration:1,from:5.875,to:5.925000000000001}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"9fb1aed3-6811-4712-95bc-05d0d6a88510\"},{names:[\"pyridine\"],smiles:\"C1=CC=NC=C1\",ranges:[{signals:[{js:[],delta:8.52,assignment:\"CH(2,6)\",multiplicity:\"m\"}],integration:2,from:8.495,to:8.545},{signals:[{js:[],delta:7.45,assignment:\"CH(3,5)\",multiplicity:\"m\"}],integration:2,from:7.425,to:7.4750000000000005},{signals:[{js:[],delta:7.87,assignment:\"CH(4)\",multiplicity:\"m\"}],integration:1,from:7.845,to:7.8950000000000005}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"b1aed368-1147-4295-bc05-d0d6a88510f8\"},{names:[\"pyrrole\"],smiles:\"C1=CNC=C1\",ranges:[{signals:[{js:[],delta:6.93,assignment:\"CH(2,5)\",multiplicity:\"m\"}],integration:2,from:6.904999999999999,to:6.955},{signals:[{js:[],delta:6.26,assignment:\"CH(3,4)\",multiplicity:\"m\"}],integration:2,from:6.234999999999999,to:6.285}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"aed36811-4712-45bc-85d0-d6a88510f8b5\"},{names:[\"pyrrolidine\"],smiles:\"C1CCNC1\",ranges:[{signals:[{js:[],delta:3.07,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.045,to:3.0949999999999998},{signals:[{js:[],delta:1.87,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.8450000000000002,to:1.895}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"d3681147-1295-4c05-90d6-a88510f8b557\"},{names:[\"silicone grease\"],smiles:\"\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"68114712-95bc-45d0-96a8-8510f8b55765\"},{names:[\"tetrahydrofuran\"],smiles:\"C1COCC1\",ranges:[{signals:[{js:[],delta:3.74,assignment:\"CH\\u2082(2,5)\",multiplicity:\"m\"}],integration:4,from:3.7150000000000003,to:3.765},{signals:[{js:[],delta:1.88,assignment:\"CH\\u2082(3,4)\",multiplicity:\"m\"}],integration:4,from:1.855,to:1.9049999999999998}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"11471295-bc05-40d6-a885-10f8b5576534\"},{names:[\"toluene\"],smiles:\"Cc1ccccc1\",ranges:[],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"471295bc-05d0-46a8-8510-f8b55765349a\"},{names:[\"triethylamine\"],smiles:\"CCN(CC)CC\",ranges:[{signals:[{js:[{coupling:7,multiplicity:\"t\"}],delta:.99,assignment:\"CH\\u2083\"}],integration:6,from:.9675,to:1.0125},{signals:[{js:[{coupling:7,multiplicity:\"q\"}],delta:2.57,assignment:\"CH\\u2082\"}],integration:4,from:2.53875,to:2.60125}],nucleus:\"1H\",solvent:\"D\\u2082O\",id:\"1295bc05-d0d6-4885-90f8-b55765349ad7\"}];function nn(e,n){let{x:t,re:s,im:i}=e,o=me({shapes:n,windowOptions:{dw:t[1]-t[0],length:s.length}}),a=L(s,{windowData:o}),r=L(i,{windowData:o});return{x:t,re:a,im:r}}var Dc={updateXDomain:!0,updateYDomain:!1},xc={exponential:{apply:!0,options:{lineBroadening:.3}},sineBell:{apply:!1,options:{offset:0}},sineSquare:{apply:!1,options:{offset:0}},traf:{apply:!1,options:{lineBroadening:.3}},gaussian:{apply:!1,options:{lineBroadening:-.4,lineBroadeningCenter:.5}}};function Hc(e,n){if(!fi(e))throw new Error(\"apodization not applicable on this data\");let{x:t,re:s,im:i}=e.data,o=nn({x:t,re:s,im:i},n);e.data={...e.data,...o}}function fi(e){return!!(e.info.isComplex&&e.info.isFid)}function Oc(e,n){return{once:!0,reduce:n}}var gi={name:\"apodization\",label:\"Apodization / Window functions\",domainUpdateRules:Dc,apply:Hc,reduce:Oc,isApplicable:fi};import{xSequentialFillFromStep as jc}from\"ml-spectra-processing\";import{xEnsureFloat64 as yi}from\"ml-spectra-processing\";import{EigenvalueDecomposition as Sc,Matrix as vc}from\"ml-matrix\";import{matrixCreateEmpty as di}from\"ml-spectra-processing\";function pi(e,n){let t=di({nbRows:e,nbColumns:n}),s=di({nbRows:e,nbColumns:n});return{re:t,im:s}}var Pc=1e-14;function Ci(e,n){let{nbColumns:t}=n,s=Fc(e,n),i=2*t,o=new vc(i,i),a=new Float64Array(i);for(let g=0;g<t;g++){let d=s.re[g+1],p=s.im[g+1];a[g]=d[0],a[g+t]=p[0];for(let C=0;C<t;C++){let y=d[C+1],b=p[C+1];o.set(g,C,y),o.set(g,C+t,-b),o.set(g+t,C,b),o.set(g+t,C+t,y)}}let{realEigenvalues:r,eigenvectorMatrix:m}=new Sc(o,{assumeSymmetric:!0}),l=0;for(let g=0;g<i;g++)r[g]>l&&(l=r[g]);let c=l*Pc,u=new Float64Array(i);for(let g=0;g<i;g++){let d=r[g];if(d<=c)continue;let p=0;for(let C=0;C<i;C++)p+=m.get(C,g)*a[C];u[g]=p/d}let f={re:new Float64Array(t),im:new Float64Array(t)};for(let g=0;g<t;g++){let d=0,p=0;for(let C=0;C<i;C++){let y=u[C];d+=m.get(g,C)*y,p+=m.get(g+t,C)*y}f.re[g]=d,f.im[g]=p}return f}function Fc(e,n){let{re:t,im:s}=e,{offset:i,nbRows:o,nbColumns:a}=n,r=a+1,m=pi(r,r);for(let l=0;l<r;l++){let c=0,u=0;for(let f=0;f<o;f++){let g=t[i+f],d=s[i+f],p=t[i+l+f],C=s[i+l+f];c+=g*p+d*C,u+=g*C-d*p}m.re[0][l]=c,m.im[0][l]=u,m.re[l][0]=c,m.im[l][0]=-u}for(let l=1;l<r;l++){let c=m.re[l-1],u=m.im[l-1],f=i+l-1,g=f+o,d=t[f],p=s[f],C=t[g],y=s[g];for(let b=l;b<r;b++){let D=i+b-1,h=D+o,S=t[D],P=s[D],H=t[h],x=s[h],O=c[b-1]-(d*S+p*P)+(C*H+y*x),v=u[b-1]-(d*P-p*S)+(C*x-y*H);m.re[l][b]=O,m.im[l][b]=v,m.re[b][l]=O,m.im[b][l]=-v}}return m}function ye(e,n){let t=yi(e.re),s=yi(e.im),{nbCoefficients:i,nbPoints:o,nbInputs:a=t.length/2}=n,r=Math.abs(o),m=o<0?r:0,l=2*Math.ceil((a+r+i)/2);if(t.length<l-m)throw new RangeError(`The sum of nbPoints, nbInputs and nbCoefficients should be less than data length (${t.length})`);let c=new Float64Array(t.length),u=new Float64Array(s.length);o<0?(c.set(t.subarray(0,t.length-r),r),u.set(s.subarray(0,t.length-r),r)):(c.set(t.subarray(o),r),u.set(s.subarray(o),r));let f=Ci({re:t,im:s},{offset:r-m,nbRows:a,nbColumns:i}),g=f.re,d=f.im;for(let p=0;p<r;p++){let C=0,y=0,b=r-p;for(let D=0;D<i;D++){let h=b+D,S=h<r?c[h]:t[h-m],P=h<r?u[h]:s[h-m],H=g[D],x=d[D];C+=H*S-x*P,y+=H*P+x*S}c[b-1]=C,u[b-1]=y}return{re:c,im:u}}var Mc={updateXDomain:!0,updateYDomain:!0};function kc(e,n={}){if(!bi(e))throw new Error(\"Digital Filter is not applicable on this data\");let{info:t,filters:s,data:i,data:{re:o,im:a}}=e,{lpNumberOfCoefficients:r=0,tdOff:m=0}=t,{nbCoefficients:l=r,nbPoints:c=m/2,nbInputs:u=Math.floor(o.length/2-l-c)}=n,{re:f,im:g}=ye({re:o,im:a},{nbCoefficients:l,nbInputs:u,nbPoints:c}),d=s.find(C=>C.name===\"backwardLinearPrediction\");d&&(d.value={nbCoefficients:l,nbPoints:c,nbInputs:u});let p=i.x;Object.assign(i,{re:f,im:g,x:c<0?jc({from:0,size:f.length,step:p[1]-p[0]}):p})}function bi(e){return!!(e.info.isComplex&&e.info.isFid)}function Ac(e,n){return{once:!0,reduce:n}}var hi={name:\"backwardLinearPrediction\",label:\"Backward Linear Prediction Filter\",domainUpdateRules:Mc,apply:kc,reduce:Ac,isApplicable:bi};import{xEnsureFloat64 as su}from\"ml-spectra-processing\";import Rc from\"ml-airpls\";import{xEnsureFloat64 as Nc,xFindClosestIndex as wc}from\"ml-spectra-processing\";function Di(e,n){let{lambda:t=50,anchors:s=[],maxIterations:i,tolerance:o,autoDownsample:a=!0}=n,r=Array.from(new Float64Array(e.x.length));if(s.length>0)for(let l of s){let c=wc(e.x,l);r[c]=1}let{baseline:m}=Rc(e.x,e.y,{maxIterations:i,lambda:t,tolerance:o,controlPoints:r,autoDownsample:a});return Nc(m)}import{CholeskyDecomposition as Bc,Matrix as sn}from\"ml-matrix\";import{calculateAdaptiveWeights as Lc,xFindClosestIndex as Xc,xMultiply as qc,xSequentialFillFromStep as Yc}from\"ml-spectra-processing\";function xi(e,n,t){if(n===0)return 1;if(e===0||n>e)return 0;if(n>e-n&&(n=e-n),!t)return Ic(e,n);if(t[n]>0)return t[n];let s=1,i=e;for(let o=1;o<=n;o++){if(t[o]>0){i--,s=t[o];continue}s*=i--,s/=o,t[o]=s}return s}function Ic(e,n){let t=1,s=e;for(let i=1;i<=n;i++)t*=s--,t/=i;return t}import{xyMedianYAtXs as Tc}from\"ml-spectra-processing\";function ee(e,n,t={}){let{windowSize:s=Math.max(1,Math.floor(e.y.length/100))}=t;return Tc(e,n,{windowSize:s})}import{Matrix as Ec}from\"ml-matrix\";function Hi(e){let n=e.rows,t=e.columns,s=new Ec(n,n);for(let i=0;i<n;i++)for(let o=0;o<n;o++){let a=0;for(let r=0;r<t;r++)a+=e.get(o,r)*e.get(i,r);s.set(o,i,a)}return s}import{matrixCreateEmpty as zc}from\"ml-spectra-processing\";function Oi(e,n){let t=e.rows,s=e.columns,i=n.columns;if(n.rows!==t)throw new Error(\"Matrix dimensions are incompatible for multiplication\");let o=zc({nbRows:i,nbColumns:s});for(let a=0;a<s;a++)for(let r=0;r<i;r++){let m=0;for(let l=0;l<t;l++)m+=e.get(l,a)*n.get(l,r);o[r][a]=m}return o}function Si(e,n,t={}){let{maxIterations:s=100,tolerance:i=1e-6,factorStd:o=3,learningRate:a=.3,anchors:r,medianWindow:m}=t,{y:l}=e,{anchors:c,weights:u,controlPoints:f}=Vc(e,r,m),g=l.slice(),d=new Float64Array(l.length),p=0,C=1/0,{logger:y}=t,b=Math.max(1,l.length-1);for(let S=0;S<c.x.length;S++)c.x[S]/=b;let{binomialCoefficients:D,bernsteinMatrix:h}=Wc(l,n);for(;p<s&&C>i;){let S=Zc(c,{binomialCoefficients:D,degree:n,weights:u,logger:y});if(!S)return g;let H=Oi(h,S)[0];Lc(l,H,u,{controlPoints:f,learningRate:a,factorStd:o}),C=Uc(H,d,l.length),d.set(H),g=H,p++}return g}function Wc(e,n){let t=e.length,s=n,i=Math.max(1,t-1),o=new Float64Array(t);for(let m=0;m<t;m++)o[m]=m/i;let a=new Float64Array(s+1);for(let m=0;m<s+1;m++)a[m]=xi(s,m);let r=new sn(s+1,t);for(let m=0;m<t;m++)for(let l=0;l<=s;l++){let c=a[l]*o[m]**l*(1-o[m])**(s-l);r.set(l,m,c)}return{binomialCoefficients:a,bernsteinMatrix:r}}function Zc(e,n){let{degree:t,weights:s,binomialCoefficients:i,logger:o}=n;if(t<0)throw new Error(\"Degree must be non-negative.\");let{x:a,y:r}=e;if(r.length===0)return;let m=r.length,l=t,c=new sn(l+1,m);for(let u=0;u<m;u++)for(let f=0;f<=l;f++){let g=i[f]*a[u]**f*(1-a[u])**(l-f);c.set(f,u,s[u]*g)}try{let u=new Bc(Hi(c));if(!u.isPositiveDefinite())throw new Error(\"Matrix is not positive definite\");let f=c.columns,g=qc(r,s),d=sn.from1DArray(f,1,g);return u.solve(c.mmul(d))}catch(u){o?.error(u);return}}function Uc(e,n,t){let s=0;for(let i=0;i<t;i++)s+=(e[i]-n[i])**2;return Math.sqrt(s/t)}function Vc(e,n,t){let s=e.y.length;if(n&&n.length>2){let a=ee(e,n,{windowSize:t}),r=new Float64Array(a.y.length).fill(1),m=new Float64Array(a.y.length).fill(1),{x:l,y:c}=a;return{controlPoints:r,weights:m,anchors:{x:Gc(l,e.x),y:c}}}let i=new Float64Array(s).fill(0),o=new Float64Array(s).fill(1);return{anchors:{...e,x:Yc({from:0,step:1,size:s})},weights:o,controlPoints:i}}function Gc(e,n){let t=new Float64Array(e.length);for(let s=0;s<e.length;s++)t[s]=Xc(n,e[s]);return t}import{xEnsureFloat64 as ot}from\"ml-spectra-processing\";function vi(e,n={}){let{anchors:t=[],noiseThreshold:s=1,maxIterations:i=10,tolerance:o=1e-6,noisePercentile:a=10,medianWindow:r=Math.max(1,Math.floor(e.y.length/100)),noiseLevel:m=Kc(e.y,a)}=n,l=s*m,c,u;if(t.length>2){c=ot(t);let p=ee(e,c,{windowSize:r});u=ot(p.y)}else c=ot(e.x),u=ot(e.y);let f=e.y.length,g=new Float64Array(f),d=c.length;for(let p=0;p<i;p++){let C=Jc(c,u),y=_c(C,e.x),b=0;for(let h=0;h<f;h++){let S=y[h]-g[h];b+=S*S}if(g=y,b=Math.sqrt(b/f),p>0&&b<o*m)break;let D=0;for(let h=0;h<d;h++){let S=$c(C,c[h]);u[h]>S+l&&(u[h]=S,D++)}if(D===0&&p>0)break}return g}function Jc(e,n){let t=e.length;if(t<2)throw new Error(\"Need at least 2 knots.\");if(t!==n.length)throw new Error(\"xs and ys must be the same length.\");let s=Array.from({length:t},(y,b)=>b).toSorted((y,b)=>e[y]-e[b]),i=s.map(y=>e[y]),o=s.map(y=>n[y]),a=t-1,r=new Float64Array(a);for(let y=0;y<a;y++)r[y]=i[y+1]-i[y];let m=new Float64Array(t);for(let y=1;y<a;y++)m[y]=3/r[y]*(o[y+1]-o[y])-3/r[y-1]*(o[y]-o[y-1]);let l=new Float64Array(t),c=new Float64Array(t),u=new Float64Array(t);l[0]=1;for(let y=1;y<a;y++)l[y]=2*(i[y+1]-i[y-1])-r[y-1]*c[y-1],c[y]=r[y]/l[y],u[y]=(m[y]-r[y-1]*u[y-1])/l[y];l[a]=1;let f=new Float64Array(t);for(let y=a-1;y>=0;y--)f[y]=u[y]-c[y]*f[y+1];let g=[],d=[],p=[],C=[];for(let y=0;y<a;y++)g.push(o[y]),d.push((o[y+1]-o[y])/r[y]-r[y]*(f[y+1]+2*f[y])/3),p.push(f[y]),C.push((f[y+1]-f[y])/(3*r[y]));return{xs:i,a:g,b:d,c:p,d:C}}function $c(e,n){let{xs:t,a:s,b:i,c:o,d:a}=e,r=t.length-1,m=0,l=r-1;for(;m<l;){let f=m+l+1>>1;t[f]<=n?m=f:l=f-1}let c=Math.min(m,r-1),u=n-t[c];return s[c]+u*(i[c]+u*(o[c]+u*a[c]))}function _c(e,n){let{xs:t,a:s,b:i,c:o,d:a}=e,r=t.length-1,m=new Float64Array(n.length),l=0;for(let c=0;c<n.length;c++){let u=n[c];for(;l<r-1&&t[l+1]<=u;)l++;let f=u-t[l];m[c]=s[l]+f*(i[l]+f*(o[l]+f*a[l]))}return m}function Kc(e,n){let t=e.length,s=new Float64Array(t-1);for(let o=0;o<t-1;o++)s[o]=Math.abs(e[o+1]-e[o]);s.toSorted();let i=Math.max(0,Math.floor((t-1)*n/100)-1);return Math.max(s[i],1e-12)}import{PolynomialRegression as Qc}from\"ml-regression-polynomial\";import{xyEquallySpaced as eu}from\"ml-spectra-processing\";function Pi({x:e,y:n},t){let{degree:s,anchors:i=[]}=t,o={x:structuredClone(i),y:[]};if(o.x.length<2){let r=eu({x:e,y:n},{numberOfPoints:4096});o.x=r.x,o.y=r.y}else{let{y:r}=ee({x:e,y:n},o.x);o.y=r}return new Qc(o.x,o.y,s,{interceptAtZero:!1}).predict(e)}import{xFindClosestIndex as tu,xWhittakerSmoother as nu}from\"ml-spectra-processing\";function Fi(e,n={}){let{anchors:t=[],lambda:s=2e3,maxIterations:i=20,tolerance:o=.001,learningRate:a=.2}=n,r=new Float64Array(e.x.length);if(t.length>0)for(let l of t){let c=tu(e.x,l);r[c]=1}return nu(e.y,{lambda:s,maxIterations:i,learningRate:a,tolerance:o,controlPoints:r})}function ji({x:e,y:n},t){let{algorithm:s}=t;switch(s){case\"airpls\":return Di({x:e,y:n},t);case\"polynomial\":return Pi({x:e,y:n},t);case\"whittaker\":return Fi({x:e,y:n},t);case\"bernstein\":{let{degree:i}=t,o=Si({x:e,y:n},i,t);return su(o)}case\"cubic\":return vi({x:e,y:n},t);default:throw new Error(`baselineCorrection: algorithm unknown: ${t.algorithm}`)}}var iu={updateXDomain:!1,updateYDomain:!1};function ou(e,n){if(!Mi(e))throw new Error(\"Baseline correction not applicable on this data\");let{x:t,re:s}=e.data,i=ji({x:t,y:s},n),o=new Float64Array(t.length);for(let a=0;a<s.length;a++)o[a]=s[a]-i[a];Object.assign(e.data,{re:o})}function Mi(e){return!e.info.isFid}function au(e,n){return{once:!0,reduce:n}}var ki={name:\"baselineCorrection\",label:\"Baseline correction\",domainUpdateRules:iu,apply:ou,reduce:au,isApplicable:Mi};var ru={updateXDomain:!0,updateYDomain:!0};function lu(e,n){if(!Ai(e))throw new Error(\"Digital filter is not applicable on this data\");let{digitalFilterValue:t}=n,s=new Float64Array(e.data.re),i=new Float64Array(e.data.im),o=new Float64Array(s.length),a=new Float64Array(i.length),r=Math.floor(t);o.set(s.slice(r)),a.set(i.slice(r)),e.data.re=o,e.data.im=a,e.processingInfo.digitalFilterApplied=t}function Ai(e){return!!(e.info.isComplex&&e.info.isFid)}function mu(e,n){return{once:!0,reduce:n}}var Ri={name:\"digitalFilter\",label:\"Digital Filter\",domainUpdateRules:ru,apply:lu,reduce:mu,isApplicable:Ai};import{xEnsureFloat64 as on,xyEquallySpaced as Ni}from\"ml-spectra-processing\";var cu={updateXDomain:!1,updateYDomain:!1};function uu(e,n={}){if(!wi(e))throw new Error(\"Equally spaced is not applicable on this data\");let{from:t,to:s,numberOfPoints:i,exclusions:o}=n,{x:a,re:r,im:m}=e.data,l=Ni({x:a,y:r},{from:t,to:s,numberOfPoints:i,exclusions:o});if(e.data.x=on(l.x),e.data.re=on(l.y),m){let c=Ni({x:a,y:r},{from:t,to:s,numberOfPoints:i,exclusions:o});e.data.im=on(c.y)}}function wi(e){return!!(e.info.isComplex&&!e.info.isFid)}function fu(e,n){return{once:!1,reduce:n}}var Ii={name:\"equallySpaced\",label:\"Equally spaced\",domainUpdateRules:cu,apply:uu,reduce:fu,isApplicable:wi};import{xySetYValue as Ti}from\"ml-spectra-processing\";var gu={updateXDomain:!1,updateYDomain:!1};function du(e,n){if(!Ei(e))throw new Error(\"Exclusion zones filter not applicable on this data\");let{x:t,re:s,im:i}=e.data;e.data.re=Float64Array.from(Ti({x:t,y:s},{zones:n}).y),e.data.im=i&&Float64Array.from(Ti({x:t,y:i},{zones:n}).y)}function Ei(e){return!!e.info.isFt}function pu(e,n){return{once:!0,reduce:Cu(e.concat(n))}}var zi={name:\"exclusionZones\",label:\"Exclusion zones\",domainUpdateRules:gu,apply:du,reduce:pu,isApplicable:Ei};function Cu(e=[],n={}){let{from:t=Number.NEGATIVE_INFINITY,to:s=Number.POSITIVE_INFINITY}=n;t>s&&([t,s]=[s,t]),e=e.map(a=>a.from>a.to?{...a,from:a.to,to:a.from}:{...a}),e.sort((a,r)=>a.from!==r.from?a.from-r.from:a.to-r.to);for(let a of e)t>a.from&&(a.from=t),s<a.to&&(a.to=s);if(e=e.filter(a=>a.from<=a.to),e.length===0)return[];let i=e[0],o=[i];for(let a=1;a<e.length;a++){let r=e[a];r.from<=i.to?i.to<r.to&&(i.to=r.to):(i=r,o.push(i))}return o}import{isPowerOfTwo as hu,reimFFT as Du,reimPhaseCorrection as xu,xMean as Li,xMultiply as Hu}from\"ml-spectra-processing\";var E=Math.PI/180;import{nextPowerOfTwo as yu,xSequentialFillFromStep as bu}from\"ml-spectra-processing\";function Bi(e){let{x:n,re:t,im:s}=e.data,i=yu(n.length),o=new Float64Array(i),a=new Float64Array(i);o.set(t.slice(0,i)),a.set(s.slice(0,i));let r=bu({from:n[0],size:i,step:n[1]-n[0]});e.data={...e.data,re:o,im:a,x:r}}var Ou={updateXDomain:!0,updateYDomain:!0};function Su(e){if(!Xi(e))throw new Error(\"fft not applicable on this data\");ju(e);let{info:{aqMod:n}}=e;n===1&&Fu(e),hu(e.data.x.length)||Bi(e);let{data:t,info:s,processingInfo:i}=e;Object.assign(t,Du({re:t.re,im:s.reverse?Hu(t.im,-1):t.im},{applyZeroShift:!0}));let o=i.digitalFilterApplied;if(typeof o==\"number\"){let a=Math.floor(o),r=(o-a)*Math.PI*2,m=a%2?180*E:0;Object.assign(t,xu(t,m,-r,{reverse:!0}))}t.x=Pu(e),e.info={...s,isFid:!1,isFt:!0}}function Xi(e){return!!(e.info.isComplex&&e.info.isFid)}function vu(e,n){return{once:!0,reduce:n}}function Pu(e){let n=e.info,t=Number(n.baseFrequency),s=Number(n.frequencyOffset),i=Number(n.spectralWidth),o=s/t,a=.5*i,r=e.data.x.length,m=o-a,l=i/(r-1),c=new Float64Array(r);for(let u=0;u<r;u++)c[u]=m,m+=l;return c}function Fu(e){let n=e.data,t=n.re.length,s=new Float64Array(n.re),i=new Float64Array(n.im),o=Li(n.re.slice(t*.75>>0,t)),a=Li(n.im.slice(t*.75>>0,t));for(let r=0;r<t;r++)s[r]-=o,i[r]-=a;return Object.assign(e.data,{re:s,im:i}),e}function ju(e){let{data:n}=e;if(n.x.length!==n.re.length||n.x.length!==n.im.length)throw new Error(\"The length of data should be equal\")}var qi={name:\"fft\",label:\"FFT\",domainUpdateRules:Ou,apply:Su,reduce:vu,isApplicable:Xi};import{xSequentialFillFromStep as Au}from\"ml-spectra-processing\";import{Matrix as Mu,SVD as ku}from\"ml-matrix\";function Yi(e,n){let{nbCoefficients:t,nbInputs:s,nbPoints:i}=n;if(e.length<s+t+i)throw new RangeError(\"data length should be bigger than nbInputs + nbCoefficients + nbPoints\");let o=e.length-i-2,a=[];for(let u=0;u<s;u++){let f=new Float64Array(t);for(let g=0;g<t;g++)f[g]=e[o-u-g];a.push(f)}let r=new ku(a),m=new Float64Array(s);for(let u=0;u<s;u++)m[u]=e[o-u+1];let l=r.solve(Mu.from1DArray(m.length,1,m)).to1DArray(),{output:c=Float64Array.from(e)}=n;for(let u=0;u<i;u++){let f=0;for(let g=0;g<l.length;g++)f+=l[g]*c[o+1+u-g];c[o+u+2]=f}return{output:c,predicted:c.slice(o+2)}}function be(e,n){let{re:t,im:s}=e,{nbCoefficients:i,nbPoints:o,nbInputs:a=t.length}=n,r=Math.abs(o),m=o<0?r:0,l=2*Math.ceil((a+r+i)/2);if(t.length<l-m)throw new RangeError(`The sum of nbPoints, nbInputs and nbCoefficients should be less than data length (${t.length})`);let c=new Float64Array(2*l),u=t.length-l+m;for(let d=0;d<l-m;d++)c.set([t[u+d],s[u+d]],2*d);Yi(c,{nbInputs:a*2,nbCoefficients:i,nbPoints:r*2,output:c});let f=new Float64Array(t.length+m),g=new Float64Array(m+s.length);o<0?(f.set(t),g.set(s)):(f.set(t.slice(0,t.length-o)),g.set(s.slice(0,s.length-o)));for(let d=0;d<2*r;d+=2)f[f.length-1-(d>>1)]=c[c.length-2-d],g[f.length-1-(d>>1)]=c[c.length-1-d];return{re:f,im:g}}function he(e,n,t){let s=2*e,i=2*n;if(t===0){if(s<n)return 0;if(n<s&&s<i)return n;if(i<s)return t-n}return n<t?t-n:0}var Ru={updateXDomain:!0,updateYDomain:!0};function Nu(e,n={}){if(!Wi(e))throw new Error(\"Digital filter is not applicable on this data\");let{info:t,filters:s,data:i,data:{x:o,re:a,im:r}}=e,{lpNumberOfCoefficients:m=0,linearPredictionBin:l=0,spectrumSize:c=a.length,numberOfPoints:u=a.length}=t,{nbPoints:f=he(c,u,l)/-2,nbCoefficients:g=m,nbInputs:d=Math.floor(a.length-f-g)}=n,p=s.find(b=>b.name===\"forwardLinearPrediction\");p&&(p.value={nbCoefficients:g,nbPoints:f,nbInputs:d});let{re:C,im:y}=be({re:a,im:r},{nbCoefficients:g,nbInputs:d,nbPoints:f});Object.assign(i,{re:C,im:y,x:f<0?Au({from:0,size:C.length,step:o[1]-o[0]}):o})}function Wi(e){return!!(e.info.isComplex&&e.info.isFid)}function wu(e,n){return{once:!0,reduce:n}}var Zi={name:\"forwardLinearPrediction\",label:\"Forward Linear Prediction Filter\",domainUpdateRules:Ru,apply:Nu,reduce:wu,isApplicable:Wi};import{reimAbsolute as Tu,reimPhaseCorrection as Eu,xEnsureFloat64 as Ui}from\"ml-spectra-processing\";import{reimAutoPhaseCorrection as Iu}from\"ml-spectra-processing\";function at(e,n={}){let{minRegSize:t=5,maxDistanceToJoin:s=128,magnitudeMode:i=!1,factorNoise:o=5,reverse:a=!0}=n;return Iu(e.data,{minRegSize:t,maxDistanceToJoin:s,magnitudeMode:i,factorNoise:o,reverse:a})}var zu={updateXDomain:!1,updateYDomain:!1};function Bu(e,n={}){if(!Gi(e))throw new Error(\"Phase correction not applicable on this data\");let{absolute:t=!1}=n,s=e.filters?.find(i=>i.name===\"phaseCorrection\");if(t){let{re:i,im:o}=e.data;Tu({re:i,im:o},{output:i}),e.data.im=void 0,s&&(s.value={...s.value,ph0:0,ph1:0,absolute:t})}else if(\"ph0\"in n&&\"ph1\"in n){let{ph0:i=0,ph1:o=0}=n;Vi(e,{ph0:i,ph1:o}),s&&(s.value={...s.value,absolute:t})}else{let i=at(e);if(i.ph0===0&&i.ph1===0&&(i=at(e,{magnitudeMode:!0})),Vi(e,i),s){let{ph0:o,ph1:a}=i;s.value={...s.value,absolute:t,ph0:o,ph1:a}}}}function Vi(e,n){let{ph0:t,ph1:s}=n,{re:i,im:o}=e.data,a=Eu({re:i,im:o},t*Math.PI/180,s*Math.PI/180,{reverse:!0});e.data={...e.data,re:Ui(a.re),im:Ui(a.im)}}function Gi(e){return!!(e.info.isComplex&&!e.info.isFid)}function Lu(e,n){return{once:!0,reduce:n}}var Ji={name:\"phaseCorrection\",label:\"Phase correction\",domainUpdateRules:zu,apply:Bu,reduce:Lu,isApplicable:Gi};import{xAdd as Xu}from\"ml-spectra-processing\";var qu={updateXDomain:!0,updateYDomain:!1};function Yu(e,n){let{shift:t=0}=n;e.data.x=Xu(e.data.x,t),e.processingInfo.shiftX=t}function Wu(e,n){let{shift:t=0}=e,{shift:s=0}=n;return{once:!0,reduce:{shift:t+s}}}function Zu(){return!0}var $i={name:\"shiftX\",label:\"Shift X\",domainUpdateRules:qu,apply:Yu,reduce:Wu,isApplicable:Zu};import*as Uu from\"ml-signal-processing\";var Vu={updateXDomain:!0,updateYDomain:!0};function Gu(e,n){if(!_i(e))throw new Error(\"Signal processing is not applicable on this data\");e.data=$u(e,n)}function _i(e){return!!e.info.isFt}function Ju(e,n){return{once:!0,reduce:n}}function $u(e,n){let t=e.data.x.slice(0),s=e.data.x.slice(0),i=e.data.re.slice(0),o=e.data.im?.slice(0),a=n.filters.slice(),{range:{from:r,to:m},numberOfPoints:l,exclusionsZones:c}=n;a.push({name:\"equallySpaced\",options:{from:r,to:m,numberOfPoints:l,exclusions:c},properties:{}});for(let u of a){let f=Uu[u.name];if(!f)throw new Error(`Unknown filter: ${u.name}`);let g=u?.options||{},d=f({x:t,y:i},g);t=d.data.x,i=d.data.y,o&&(o=f({x:s,y:o},g).data.y)}return{x:t,re:i,im:o}}var Ki={name:\"signalProcessing\",label:\"Signal processing\",domainUpdateRules:Vu,apply:Gu,reduce:Ju,isApplicable:_i};import{xFindClosestIndex as Qi}from\"ml-spectra-processing\";function to(e,n){let{x:t,re:s,im:i}=e,o=t.length,{low:a,high:r}=_u(t,n),m=Math.max(0,a),l=Math.max(m,o-r),c={x:t.slice(m,l),re:s.slice(m,l)};return i&&(c.im=i.slice(m,l)),c}function _u(e,n){let{lowNbPoints:t=0,lowPercentage:s,lowValue:i,highNbPoints:o=0,highPercentage:a,highValue:r}=n,m=e.length,l={high:o,low:t};return eo(l,{low:s&&Math.round(s*m/100),high:a&&Math.round(a*m/100)}),eo(l,{low:i&&Qi(e,i),high:r&&m-Qi(e,r)-1}),l}function eo(e,n){n.high&&e.high<n.high&&(e.high=n.high),n.low&&e.low<n.low&&(e.low=n.low)}var Ku={updateXDomain:!0,updateYDomain:!1};function Qu(e,n){let{isFt:t}=e.info,s=t?{highNbPoints:n.leftNbPoints,lowNbPoints:n.rightNbPoints,highPercentage:n.leftPercentage,lowPercentage:n.rightPercentage,highValue:n.leftValue,lowValue:n.rightValue}:{highNbPoints:n.rightNbPoints,lowNbPoints:n.leftNbPoints,highPercentage:n.rightPercentage,lowPercentage:n.leftPercentage,highValue:n.rightValue,lowValue:n.leftValue},i=to(e.data,s);Object.assign(e.data,i)}function ef(e,n){return{once:!0,reduce:n}}function tf(e){let{x:n}=e.data;return n.length>0}var no={name:\"trim\",label:\"Trim\",domainUpdateRules:Ku,apply:Qu,reduce:ef,isApplicable:tf};import{xEnsureFloat64 as an,xreimZeroFilling as nf}from\"ml-spectra-processing\";var sf={updateXDomain:!0,updateYDomain:!1};function of(e,n){if(!so(e))throw new Error(\"Zero filling not applicable on this data\");let{nbPoints:t}=n;if(!t){console.error(\"Zero Filling: nbPoints is not defined\");return}let{x:s,re:i,im:o}=nf(e.data,t);e.data={...e.data,re:an(i),im:an(o),x:an(s)}}function so(e){return!!(e.info?.isComplex&&e.info?.isFid)}function af(e,n){return{once:!0,reduce:n}}var io={name:\"zeroFilling\",label:\"Zero Filling\",domainUpdateRules:sf,apply:of,reduce:af,isApplicable:so};var De={apodization:gi,baselineCorrection:ki,fft:qi,trim:no,backwardLinearPrediction:hi,forwardLinearPrediction:Zi,exclusionZones:zi,signalProcessing:Ki,digitalFilter:Ri,equallySpaced:Ii,phaseCorrection:Ji,shiftX:$i,zeroFilling:io};function rn(e){return et.has(e.kind)}function rt(e){let{x:n}=e.data;return(n.at(-1)-n[0])/1e4}import{gsd as mf}from\"ml-gsd\";import{zonesNormalize as oo}from\"ml-spectra-processing\";import{createFromToArray as rf}from\"ml-spectra-processing\";function lt(e,n,t){let{nbZones:s,padding:i,tolerance:o}=t,a=e[0],r=e.at(-1),m=r-a,l=a+m*i,c=r-m*i,u=rf({from:l,to:c,length:s}),f=[];for(let g of u)lf(f,n,g,{targetRange:o*m});return f}function lf(e,n,t,s){let{targetRange:i}=s,o=t-i,a=t+i,r=[];for(let l of n)l.to<o||l.from>a||r.push(l);if(r.length===0)return;r.sort((l,c)=>c.length-l.length);let m=r[0];e.includes(m)||e.push(m)}function S6(e,n={}){let{widthFactor:t=20,nbZones:s=5,padding:i=.05,tolerance:o=.01,minWidth:a=.02}=n,r=mf({x:e.x,y:e.re}),m={from:e.x[0],to:e.x.at(-1)},l=r.map(d=>({from:d.x-t*d.width,to:d.x+t*d.width})),c=a*(m.to-m.from),u=oo(l),f=oo([m],{exclusions:u}).filter(d=>d.to-d.from>c).map(d=>{let p=(d.from+d.to)/2,C=d.to-d.from;return{...d,middle:p,length:C}});return lt(e.x,f,{nbZones:s,padding:i,tolerance:o}).map(d=>({from:d.from,to:d.to,id:crypto.randomUUID()}))}import{Matrix as df}from\"ml-matrix\";import{sgg as fo}from\"ml-savitzky-golay-generalized\";import{isAnyArray as ao}from\"is-any-array\";import{Matrix as mo,WrapperMatrix2D as ro}from\"ml-matrix\";function mt(e){let n=lo(e.re),t=e.im?lo(e.im):mo.zeros(n.rows,n.columns);return{re:n,im:t}}function lo(e){if(mo.isMatrix(e))return e;if(ao(e))return e[0]&&ao(e[0])?ro.checkMatrix(e):ro.checkMatrix([e]);throw new Error(\"the argument is not an array\")}import{Matrix as cf}from\"ml-matrix\";import{xMean as uf,xStandardDeviation as ff}from\"ml-spectra-processing\";function uo(e){let n=[],t=[],{rows:s,columns:i}=e,[o,a]=gf(e);for(;a.length!==t.length;)if(a.length>0){[o,n]=[[],o],[a,t]=[[],a];let c=uf(t),u=ff(t,{mean:c}),f=c+3*u;for(let g=0;g<t.length;g++)t[g]<=f&&(o.push(n[g]),a.push(t[g]))}else o=n,a=t;let r=cf.zeros(s,i);for(let c of o){let u=c/i|0,f=c%i;r.set(u,f,1)}let m=(c,u)=>{let f=co(c,s),g=co(u,i),d=0;for(let p=f.from;p<f.to;p++)for(let C=g.from;C<g.to;C++)r.get(p,C)<1&&(d+=1);return d>0},l=r.clone();for(let c=0;c<s;c++)for(let u=0;u<i;u++)r.get(c,u)>0&&m(c,u)&&l.set(c,u,0);return l}function co(e,n){return{from:Math.max(e-5,0),to:Math.min(e+5,n)}}function gf(e){let n=e.mean()+3*e.standardDeviation(),t=[],s=[],{rows:i,columns:o}=e;for(let a=0;a<i;a++)for(let r=0;r<o;r++){let m=e.get(a,r);m<=n&&(t.push(a*o+r),s.push(m))}return[t,s]}function ct(e,n){let t=pf(e,n);return uo(t)}function pf(e,n){let{re:t,im:s}=mt(e),i=new df(t.rows,t.columns);for(let o=0;o<t.rows;o++){let a=fo(t.getRow(o),n),r=fo(s.getRow(o),n),m=new Float64Array(a.length);for(let l=0;l<a.length;l++)m[l]=a[l]**2+r[l]**2;i.setRow(o,m)}return i}function go(e,n={}){let{x:t,re:s,im:i}=e,{maxDistanceToJoin:o=64,minWidth:a=.02,nbZones:r=5,padding:m=.05,tolerance:l=.01}=n,c=ct({re:s,im:i},t[1]-t[0]).to1DArray(),u=0,f=0;for(let b=0;b<t.length;b++)if(!c[b])u++;else{if(u<o)for(let D=0;D<=u;D++)c[f+D]=1;for(;c[++b]&&b<t.length;);f=b,u=0}let g=[];for(let b=0;b<c.length;b++)if(c[b]>0){let D=b;for(;D<c.length&&c[D]>0;)D+=1;D>b&&g.push({from:t[b],to:t[D-1]}),b=D+1}let d={from:t[0],to:t.at(-1)},p=a*(d.to-d.from),C=g.filter(b=>b.to-b.from>p).map(b=>{let D=(b.from+b.to)/2,h=b.to-b.from;return{...b,middle:D,length:h}});return lt(t,C,{nbZones:r,padding:m,tolerance:l}).map(b=>({from:b.from,to:b.to,id:crypto.randomUUID()}))}import{zonesToXEquallySpaced as Cf}from\"ml-spectra-processing\";function po(e,n,t={}){let{numAnchors:s=10,windowSize:i=Math.max(1,Math.floor(e.y.length/100))}=t,o=Cf(n,s);return ee(e,o,{windowSize:i})}function Z6(e,n={}){let{numAnchors:t=10,...s}=n,i=go(e,s);return po({x:e.x,y:e.re},i,{numAnchors:t})}function xe(e){let n=e?.processingInfo?.shiftX;if(typeof n==\"number\")return n;let t=e?.filters?.find(s=>s.name===De.shiftX.name);return t?.enabled?t.value.shift:0}function Co(e,n,t){for(let{from:s,to:i}of n.ranges?.values||[])if(Math.abs(e.from-s)<t&&Math.abs(e.to-i)<t)return!0;return!1}import{xyIntegration as yf}from\"ml-spectra-processing\";function bf(e,n,t){let{originalFrom:s,originalTo:i,from:o,to:a}=e;return n===\"origin\"?{originalFrom:o-t,originalTo:a-t,from:o,to:a}:{originalFrom:s,originalTo:i,from:s+t,to:i+t}}function yo(e,n,t=\"origin\"){let{x:s,re:i}=n.data,o=xe(n);return e.map(a=>{let r=bf(a,t,o),m=yf({x:s,y:i},{from:r.from,to:r.to});return{...a,id:a.id||crypto.randomUUID(),...r,absolute:m,kind:ae(a.kind)}})}function hf(e,n,t){for(let{x:s}of n.peaks?.values||[])if(Math.abs(e.x-s)<t)return!0;return!1}function ln(e,n,t){let{originalX:s=0,x:i}=e;return n===\"origin\"?{originalX:i-t,x:i}:{originalX:s,x:s+t}}function bo(e,n,t={}){let{checkIsExisting:s=!0,shiftTarget:i=\"origin\"}=t,o=xe(n),a=rt(n),r=[];for(let m of e){let l=ln(m,i,o);(!s||s&&!hf(m,n,a))&&r.push({...m,id:m?.id||crypto.randomUUID(),...l})}return r}import{xyIntegration as Df}from\"ml-spectra-processing\";function ho(e){let n=q[e];if(!n)throw new Error(`multiplicity pattern ${e} is not supported`);return tt[n]}function ut(e,n){let t=e.js,s=\"\";if(t&&t.length>0)for(let i of t){let{multiplicity:o=\"\"}=i;s+=n?.acsFormat?ho(o):o}else e.delta?s=\"\":s=\"m\";return s}function xf(e,n,t){let{originalFrom:s,originalTo:i,from:o,to:a}=e;return n===\"origin\"?{originalFrom:o-t,originalTo:a-t,from:o,to:a}:{originalFrom:s,originalTo:i,from:(s||0)+t,to:(i||0)+t}}function Hf(e,n,t){let{delta:s,originalDelta:i}=e;return n===\"origin\"?{originalDelta:s-t,delta:s}:{originalDelta:i,delta:(i||0)+t}}function Of(e){let{signals:n=[],integration:t=0,...s}=e,i=[];for(let o of n){let{multiplicity:a,...r}=o;i.push({id:crypto.randomUUID(),js:[],multiplicity:a||ut(o),...r})}return{id:crypto.randomUUID(),integration:t,absolute:t||0,signals:i,...s}}function Do(e,n,t={}){let{checkIsExisting:s=!0,shiftTarget:i=\"origin\"}=t,{x:o,re:a}=n.data,r=xe(n),m=rt(n),l=e.map(Of);return s&&(l=l.filter(c=>s&&!Co(c,n,m)||c.id===\"new\")),l.map(c=>{let u=xf(c,i,r),f=Df({x:o,y:a},{from:u.from,to:u.to}),g=c.signals.map(d=>{let{kind:p,id:C,peaks:y=[],...b}=d,D=y.map(h=>{let S=ln(h,i,r);return{id:h?.id||crypto.randomUUID(),...h,...S}});return{kind:ae(p),id:C||crypto.randomUUID(),peaks:D,...b,...Hf(d,i,r)}});return{...c,id:c.id||crypto.randomUUID(),...u,absolute:f,signals:g}})}import{getShape1D as Sf}from\"ml-peak-shape-generator\";function mn(e){let{shape:n,y:t}=e;return n?Sf(n).getArea(t):0}function vf(e){let n=0;for(let t of e)n+=mn(t);return n}function Pf(e){let n,t=Number.NEGATIVE_INFINITY;for(let s of e)s.y>t&&(t=s.y,n=s);return n}function y8(e,n=!1){let{values:t,options:s}=e.peaks,i=0,o=Pf(t);if(o){let r=mn(o),m=o.relativeArea||100;i=r>0?m/r:0}let a=t.map(r=>({...r,relativeArea:mn(r)*i}));e.peaks.values=a,!s?.isSumConstant&&!n&&(s.sum=vf(a))}function He(e,n,t=null){let s=0;for(let i of e)if(t?.(i)){let o=i[n];if(!o||typeof o!=\"number\")continue;s+=Math.abs(o)}return s}function ft(e,n,t){return e.map(s=>({...s,[n]:s.absolute*t}))}function xo(e,n=!1){let{values:t,options:s}=e.integrals,i=He(t,\"absolute\",rn),o=0;if(s?.sum){if(s.isSumConstant||n)o=i>0?s.sum/i:0;else if(t?.[0]){let r=t[0];o=(r.integral||s.sum)/r.absolute}}let a=ft(t,\"integral\",o);e.integrals.values=a,!s?.isSumConstant&&!n&&(s.sum=He(a,\"integral\",rn))}var Ho={};qe(Ho,{checkSignalKinds:()=>cn});function cn(e,n){return!e.signals.some(t=>t.kind===void 0||!n.has(t.kind))}function un(e){return e.signals&&cn(e,et)}function Oo(e,n=!1){let{values:t,options:s}=e.ranges,i=He(t,\"absolute\",un),o=0;if(s?.sum){if(s.isSumConstant||n)o=i>0?s.sum/i:0;else if(t?.[0]){let r=t[0];o=(r.integration||s.sum)/r.absolute}}let a=ft(t,\"integration\",o);e.ranges.values=a,!s?.isSumConstant&&!n&&(s.sum=He(a,\"integration\",un))}function So(e){e.ranges.values=Do(e.ranges.values,e,{checkIsExisting:!1,shiftTarget:\"current\"}),Oo(e,!0)}import{matrixMinMaxZ as vo}from\"ml-spectra-processing\";var Ff={updateXDomain:!0,updateYDomain:!0};function jf(e,n={}){if(!Po(e))throw new Error(\"Apodization on dimension 1 is not applicable on this data\");let{re:t,im:s}=e.data,{z:i,minX:o,maxX:a}=t,r=s.z,m=i.length,l=[],c=[],u=me({shapes:n,windowOptions:{length:i[0].length,dw:(a-o)/(i[0].length-1)}});for(let p=0;p<m;p++)l.push(L(i[p],{windowData:u})),c.push(L(r[p],{windowData:u}));let f=vo(l),g=vo(c),d={re:{...t,z:l,minZ:f.min,maxZ:f.max},im:{...s,z:c,minZ:g.min,maxZ:g.max}};Object.assign(e.data,d)}function Po(e){return!!(e.info.isComplex&&e.info.isFid)}function Mf(e,n){return{once:!0,reduce:n}}var Fo={name:\"apodizationDimension1\",label:\"Apodization / Window functions on Dimension 1\",domainUpdateRules:Ff,apply:jf,reduce:Mf,isApplicable:Po};import{matrixCreateEmpty as jo,matrixMinMaxZ as Mo}from\"ml-spectra-processing\";function z(e,n){let t=new Float64Array(e.length);for(let s=0;s<e.length;s++)t[s]=e[s][n];return t}function B(e,n,t){for(let s=0;s<n.length;s++)e[s][t]=n[s];return e}var kf={updateXDomain:!0,updateYDomain:!0};function Af(e,n={}){if(!ko(e))throw new Error(\"Apodization on dimension 2 is not applicable on this data\");let{re:t,im:s}=e.data,{z:i,minY:o,maxY:a}=t,r=s.z,m=i.length,l=i[0].length,c=jo({nbRows:m,nbColumns:l,ArrayConstructor:Float64Array}),u=jo({nbRows:m,nbColumns:l,ArrayConstructor:Float64Array}),f=me({shapes:n,windowOptions:{length:i.length,dw:(a-o)/(i.length-1)}});for(let C=0;C<l;C++)B(c,L(z(i,C),{windowData:f}),C),B(u,L(z(r,C),{windowData:f}),C);let g=Mo(c),d=Mo(u),p={re:{...t,z:c,minZ:g.min,maxZ:g.max},im:{...s,z:u,minZ:d.min,maxZ:d.max}};Object.assign(e.data,p)}function ko(e){let{isComplex:n,isFt:t,isFtDimensionOne:s}=e.info;return!!(n&&s&&!t)}function Rf(e,n){return{once:!0,reduce:n}}var Ao={name:\"apodizationDimension2\",label:\"Apodization / Window functions on Dimension 2\",domainUpdateRules:kf,apply:Af,reduce:Rf,isApplicable:ko};import Nf from\"ml-airpls\";import{Matrix as wf,MatrixTransposeView as If}from\"ml-matrix\";import{createFromToArray as Tf,matrixCreateEmpty as Ef}from\"ml-spectra-processing\";function wo(e,n={}){let{onlyOnRows:t=!1}=n,s=mt({re:e.rr.z,im:e.ri?.z}),i=Ro(s,{from:e.rr.minX,to:e.rr.maxX}),o=s.re.subtract(i);if(!t){let a=o.transpose(),r=Ro({re:a},{from:e.rr.minY,to:e.rr.maxY});o.subtract(new If(r))}return{baseline:No(i),corrected:No(o)}}function Ro(e,n){let{from:t,to:s}=n,i=ct(e,s-t/(e.re.rows-1)),o=Tf({from:t,to:s,length:e.re.columns}),{re:a}=e,r={lambda:1e4,maxIterations:1},m=new wf(a.rows,a.columns);for(let l=0;l<a.rows;l++){let c=i.getRow(l),{baseline:u}=Nf(o,a.getRow(l),new Set(c).has(1)?{...r,controlPoints:c}:r);m.setRow(l,u)}return m}function No(e){let{rows:n,columns:t}=e,s=Ef({nbRows:n,nbColumns:t});for(let i=0;i<n;i++)for(let o=0;o<t;o++)s[i][o]=e.get(i,o);return s}var zf={updateXDomain:!1,updateYDomain:!1};function Bf(e){if(!Io(e))throw new Error(\"Phase correction is not applicable to raw data\");let{data:n}=e,{corrected:t}=wo(n);e.data={...n,rr:{...n.rr,z:t}}}function Io(e){return\"rr\"in e.data}function Lf(e,n){return{once:!0,reduce:n}}var To={name:\"baselineCorrectionTwoDimensions\",label:\"Baseline correction\",domainUpdateRules:zf,apply:Bf,reduce:Lf,isApplicable:Io};import{matrixMinMaxZ as Eo}from\"ml-spectra-processing\";var Xf={updateXDomain:!0,updateYDomain:!0};function qf(e,n={}){if(!zo(e))throw new Error(\"Backward linear prediction on dimension 1 is not applicable on this data\");let{data:t,data:{re:s,im:i},info:o,filters:a}=e,r=s.z,m=i.z,l=r.length,c=r[0].length,u=[],f=[],{lpNumberOfCoefficients:g=[15,15],tdOff:d=[0,0]}=o,{nbCoefficients:p=g[0],nbPoints:C=d[0]/2,nbInputs:y=Math.floor(c-Math.max(C,0)-p)}=n;if(C===0||p===0)return;let b=a.find(P=>P.name===\"blpDimension1\");b&&(b.value={nbCoefficients:p,nbPoints:C,nbInputs:y});for(let P=0;P<l;P++){let{re:H,im:x}=ye({re:r[P],im:m[P]},{nbInputs:y,nbPoints:C,nbCoefficients:p});u.push(H),f.push(x)}let D=Eo(u),h=Eo(f),S={re:{...s,z:u,minZ:D.min,maxZ:D.max},im:{...i,z:f,minZ:h.min,maxZ:h.max}};if(C<0){let P=r[0].length,{minX:H,maxX:x}=s,O=(x-H)/(P-1);S.re.maxX=x+O*Math.abs(C)}Object.assign(t,S)}function zo(e){return!!(e.info.isComplex&&e.info.isFid)}function Yf(e,n){return{once:!0,reduce:n}}var Bo={name:\"blpDimension1\",label:\"Backward-LP Dimension 1\",domainUpdateRules:Xf,apply:qf,reduce:Yf,isApplicable:zo};import{matrixCreateEmpty as Lo,matrixMinMaxZ as Xo}from\"ml-spectra-processing\";var Wf={updateXDomain:!0,updateYDomain:!0};function Zf(e,n={}){if(!qo(e))throw new Error(\"Backward linear prediction on dimension 2 is not applicable on this data\");let{info:t,filters:s,data:i,data:{re:o,im:a}}=e,r=o.z,m=a.z,l=r.length,c=r[0].length,{lpNumberOfCoefficients:u=[15,15],tdOff:f=[0,0]}=t,{nbCoefficients:g=u[1],nbPoints:d=f[1]/2,nbInputs:p=Math.floor(l-g-Math.max(d,0))}=n;if(d===0||g===0)return;let C=s.find(H=>H.name===\"blpDimension2\");C&&(C.value={nbCoefficients:g,nbPoints:d,nbInputs:p});let y=d<0?-1*d:0,b=Lo({nbRows:l+y,nbColumns:c}),D=Lo({nbRows:l+y,nbColumns:c});for(let H=0;H<c;H++){let{re:x,im:O}=ye({re:z(r,H),im:z(m,H)},{nbInputs:p,nbPoints:d,nbCoefficients:g});B(b,x,H),B(D,O,H)}let h=Xo(b),S=Xo(D),P={re:{...o,z:b,minZ:h.min,maxZ:h.max},im:{...a,z:D,minZ:S.min,maxZ:S.max}};if(d<0){let{minY:H,maxY:x}=o,O=(x-H)/(l-1),v=x+O*y;P.re.maxY=v,P.im.maxY=v}Object.assign(i,P)}function qo(e){let{isComplex:n,isFt:t,isFtDimensionOne:s}=e.info;return!!(n&&s&&!t)}function Uf(e,n){return{once:!0,reduce:n}}var Yo={name:\"blpDimension2\",label:\"Backward-LP Dimension 2\",domainUpdateRules:Wf,apply:Zf,reduce:Uf,isApplicable:qo};function Wo(e,n){let{digitalFilterValue:t=0}=n,s=new Float64Array(e.re),i=new Float64Array(e.im),o=Math.floor(t),a=0;o+=0;let r=new Float64Array(s.length),m=new Float64Array(i.length);return r.set(s.slice(o)),r.set(s.slice(a,o),s.length-o),m.set(i.slice(o)),m.set(i.slice(a,o),i.length-o),{re:r,im:m}}var Vf={updateXDomain:!1,updateYDomain:!1};function Gf(e,n){if(!Zo(e))throw new Error(\"Digital filter on dimension 1 is not applicable on this data\");let{data:t,data:{re:s,im:i}}=e,o=s.z,a=i.z,r=o.length,m=[],l=[],{digitalFilterValue:c}=n;if(!(!c||c===0)){for(let u=0;u<r;u++){let{re:f,im:g}=Wo({re:o[u],im:a[u]},{digitalFilterValue:c});m.push(f),l.push(g)}Object.assign(t.re,{z:m}),Object.assign(t.im,{z:l})}}function Zo(e){return!!(e.info.isComplex&&e.info.isFid)}function Jf(e,n){return{once:!0,reduce:n}}var Uo={name:\"digitalFilter2D\",label:\"Digital filter on Dimension 1\",domainUpdateRules:Vf,apply:Gf,reduce:Jf,isApplicable:Zo};import{xEnsureFloat64 as ea}from\"ml-spectra-processing\";import{matrixCreateEmpty as Jo,nextPowerOfTwo as $f,reimMatrixFFT as _f,reimMatrixPhaseCorrection as Kf}from\"ml-spectra-processing\";function Te(e){for(let n of e)for(let t=0;t<n.length;t++)n[t]=-n[t];return e}import{xMean as Vo}from\"ml-spectra-processing\";function Go(e,n){let{digitalFilterValue:t=0}=n,s=Math.round(t);for(let i=0;i<e.re.length;i++){let o=e.re[i],a=e.im[i],r=o.length,m=Vo(o.slice(r*.75>>0,r-s)),l=Vo(a.slice(r*.75>>0,r-s));for(let c=s;c<r-s;c++)o[c]-=m,a[c]-=l}}function $o(e,n={}){let{reverse:t,digitalFilterValue:s=0}=n;Go(e,{digitalFilterValue:s}),t&&(e.im=Te(e.im));let i=Qf(e);_f(i,{inPlace:!0,applyZeroShift:!0});let{phaseCorrection:o={}}=n,a=Math.floor(s),r=s*Math.PI*2,l=a%2?180*E:0,c=-r,{ph0:u,ph1:f,mode:g=\"no\"}=o;return g===\"pk\"&&u!==void 0&&f!==void 0&&(l+=u*Math.PI/180,c+=f*Math.PI/180),Kf(i,l,c,{reverse:!0,inPlace:!0}),i}function Qf(e){let n=e.re.length,t=$f(e.re[0].length);if(t>e.re[0].length){let s={re:Jo({nbRows:n,nbColumns:t}),im:Jo({nbRows:n,nbColumns:t})},{re:i,im:o}=e;for(let a=0;a<n;a++)s.re[a].set(i[a]),s.im[a].set(o[a]);return s}return e}import{xAdd as eg,xMultiply as tg,xSubtract as fn}from\"ml-spectra-processing\";function _o(e){let{re:{z:n},im:{z:t}}=e,s=[],i=[],o=n.length,a=o-o%2;for(let r=0;r<a;r+=2){let m=n[r],l=t[r],c=n[r+1],u=t[r+1];s.push(fn(tg(u,-1),l),fn(c,m)),i.push(eg(c,m),fn(u,l))}return{re:s,im:i}}import{matrixCreateEmpty as Ko,nextPowerOfTwo as ng}from\"ml-spectra-processing\";function Qo(e){let{data:n,info:t,meta:s={}}=e,{nuslist:i,NusTD:o}=s,a=t.acquisitionScheme?.toLowerCase(),r=n.re.z[0].length,m=ng(o[1]),l={re:[],im:[]};if(a===\"echo-antiecho\"){let c=i.map(f=>f*2),u=[\"re\",\"im\"];for(let f of u){let g=n[f].z,d=Ko({nbRows:m,nbColumns:r,ArrayConstructor:Float64Array}),p=n.re.z.length/2;for(let C=0;C<p;C++){let y=c[C];d[y].set(g[2*C]),d[y+1].set(g[2*C+1])}l[f]=d}}else{let c=[\"re\",\"im\"];for(let u of c){let f=n[u].z,g=Ko({nbRows:m,nbColumns:r,ArrayConstructor:Float64Array}),d=n.re.z.length;for(let p=0;p<d;p++){let C=i[p];g[C].set(f[p])}l[u]=g}}e.data={re:{...n.re,z:l.re},im:{...n.im,z:l.im}}}var sg={updateXDomain:!0,updateYDomain:!0};function ig(e,n){if(!ta(e))throw new Error(\"fft dimension 1 not applicable on this data\");let{data:t,info:s,meta:{nuslist:i=[]}={}}=e,{digitalFilter:o=0,reverse:a=[!1,!1]}=s,r=s.acquisitionScheme?.toLowerCase();if(t.re.z.length!==t.im.z.length||t.re.z[0].length!==t.im.z[0].length)throw new RangeError(\"real and imaginary data must have the same dimensionality\");let m=r===\"echo-antiecho\"?_o(t):{re:t.re.z,im:t.im.z},{re:l,im:c}=$o(m,{acquisitionScheme:r,...n,reverse:a[0],digitalFilterValue:o});t.re.z=l.map(ea),t.im.z=c.map(ea);let{isFid:u,...f}=s;e.info={...f,isFid:!1,isFtDimensionOne:!0},i.length>0&&Qo(e)}function ta(e){return!!(e.info.isComplex&&e.info.isFid)}function og(e,n){return{once:!0,reduce:n}}var na={name:\"fftDimension1\",label:\"FFT Dimension 1\",domainUpdateRules:sg,apply:ig,reduce:og,isApplicable:ta};import{matrixMinMaxZ as ug}from\"ml-spectra-processing\";import{nextPowerOfTwo as ag,reimMatrixFFTByColumns as rg,reimMatrixPhaseCorrection as lg}from\"ml-spectra-processing\";function ia(e,n={}){let t=e.re.length&-2;t>e.re.length&&(e.re.splice(t,1),e.im.splice(t,1));let s=e.re[0].length,{acquisitionScheme:i=\"\",reverse:o}=n,a={...n},r={};if(i===\"notPhaseSensitive\"){Te(e.im);let m=sa(e,a);r.rr=m.re,r.ir=m.im}else for(let m in e){let l=i===\"SEQ\"?t:t/2,c=new Array(l),u=new Array(l),f=e[m];if(i===\"SEQ\")for(let g=0;g<l;g++)c[g]=f[g],u[g]=new Float64Array(s);else{for(let g=0;g<l;g++)c[g]=f[2*g],u[g]=f[2*g+1];if(o&&Te(u),[\"states-tppi\",\"tppi\"].includes(i))for(let g=0;g<l;g+=2)for(let d=0;d<s;d++)c[g][d]=-c[g][d],u[g][d]=-u[g][d]}sa({re:c,im:u},a),m===\"re\"?(r.rr=c,r.ri=u):(r.ir=c,r.ii=u)}return r}function sa(e,n){let{acquisitionScheme:t,phaseCorrection:s={}}=n;for(let m=0;m<e.re.length;m++)e.re[m][0]*=.5,e.im[m][0]*=.5;mg(e);let i=rg(e,{applyZeroShift:t!==\"SEQ\",inPlace:!0}),{mode:o,ph0:a,ph1:r}=s;if(o&&o===\"mc\"||t===\"notPhaseSensitive\"){let{re:m,im:l}=i,c=m.length,u=m[0].length;for(let f=0;f<c;f++){let g=m[f],d=l[f];for(let p=0;p<u;p++)m[f][p]=cg(g[p],d[p])}}return o===\"pk\"&&a!==void 0&&r!==void 0&&lg(i,a*Math.PI/180,r*Math.PI/180,{direction:\"columns\",inPlace:!0}),i}function mg(e){let n=e.re[0].length,t=ag(e.re.length);if(t>e.re.length){let s=e.re.length;for(let i=s;i<t;i++)e.re.push(new Float64Array(n)),e.im.push(new Float64Array(n))}}function cg(e,n){let t=Math.abs(e),s=Math.abs(n);return s>t?s+.4*t:t+.4*s}function oa(e){let n=[],t=[];for(let s=0;s<e.baseFrequency.length;s++){let i=e.baseFrequency[s],o=e.frequencyOffset[s],a=e.spectralWidth[s],r=o/i;n.push(r-a*.5),t.push(r+a*.5)}return{minX:n[0],maxX:t[0],minY:n[1],maxY:t[1]}}var fg={updateXDomain:!0,updateYDomain:!0};function gg(e,n){if(!aa(e))throw new Error(\"fft dimension 2 not applicable on this data\");let t=e.data;if(t.re.z.length!==t.im.z.length||t.re.z[0].length!==t.im.z[0].length)throw new RangeError(\"real and imaginary data must have the same dimensionality\");let s={re:t.re.z,im:t.im.z},{reverse:i=[!1,!1],acquisitionScheme:o}=e.info,a=ia({re:s.re,im:s.im},{reverse:i[1],acquisitionScheme:o,...n});e.data={...dg(a,e.info)},e.info={...e.info,isFt:!0}}function dg(e,n){let t={},{acquisitionScheme:s}=n,i=oa(n),o=a=>{for(let r of a){let m=e[r],{min:l,max:c}=ug(m);t[r]={z:m,maxZ:c,minZ:l,...i}}return t};return o(s===\"notPhaseSensitive\"?[\"rr\",\"ir\"]:[\"rr\",\"ir\",\"ri\",\"ii\"])}function aa(e){let{isComplex:n,isFtDimensionOne:t,isFt:s}=e.info;return!!(n&&t&&!s)}function pg(e,n){return{once:!0,reduce:n}}var ra={name:\"fftDimension2\",label:\"FFT Dimension 2\",domainUpdateRules:fg,apply:gg,reduce:pg,isApplicable:aa};import{matrixMinMaxZ as la}from\"ml-spectra-processing\";var Cg={updateXDomain:!0,updateYDomain:!0};function yg(e,n={}){if(!ma(e))throw new Error(\"Forward Linear Prediction on dimension 1 is not applicable on this data\");let{info:t,data:s,data:{re:i,im:o},filters:a}=e,r=i.z,m=o.z,l=r.length,c=r[0].length,u=[],f=[],{lpNumberOfCoefficients:g=[0,0],linearPredictionBin:d=[0,0],spectrumSize:p=[c,l],numberOfPoints:C=[c,l]}=t,{nbPoints:y=he(p[0],C[0],d[0])/-2,nbCoefficients:b=g[0],nbInputs:D=Math.floor(c-b-Math.max(y,0))}=n,h=a.find(x=>x.name===\"flpDimension1\");if(h&&(h.value={nbCoefficients:b,nbPoints:y,nbInputs:D}),Math.abs(y)===0||b===0)return;for(let x=0;x<l;x++){let{re:O,im:v}=be({re:r[x].slice(),im:m[x].slice()},{nbCoefficients:b,nbInputs:D,nbPoints:y});u.push(O),f.push(v)}let S=la(u),P=la(f),H={re:{...i,z:u,minZ:S.min,maxZ:S.max},im:{...o,z:f,minZ:P.min,maxZ:P.max}};if(y<0){let{minX:x,maxX:O}=i,v=(O-x)/(c-1);H.re.maxX=O+v*Math.abs(y)}Object.assign(s,H)}function ma(e){return!!(e.info.isComplex&&e.info.isFid)}function bg(e,n){return{once:!0,reduce:n}}var ca={name:\"flpDimension1\",label:\"Fordward-LP Dimension 1\",domainUpdateRules:Cg,apply:yg,reduce:bg,isApplicable:ma};import{matrixCreateEmpty as ua,matrixMinMaxZ as fa}from\"ml-spectra-processing\";var hg={updateXDomain:!0,updateYDomain:!0};function Dg(e,n={}){if(!ga(e))throw new Error(\"Forward linear prediction on dimension 2 is not applicable on this data\");let{info:t,data:s,data:{re:i,im:o},filters:a}=e,r=i.z,m=o.z,l=r.length,c=r[0].length,{lpNumberOfCoefficients:u=[0,0],linearPredictionBin:f=[0,0],spectrumSize:g=[c,l],numberOfPoints:d=[c,l]}=t,{nbPoints:p=he(g[1],d[1],f[1])/-2,nbCoefficients:C=u[1],nbInputs:y=Math.floor(l-C-Math.max(p,0))}=n,b=a.find(O=>O.name===\"flpDimension2\");if(b&&(b.value={nbCoefficients:C,nbPoints:p,nbInputs:y}),Math.abs(p)===0||C===0)return;let D=p<0?-1*p:0,h=ua({nbRows:l+D,nbColumns:c}),S=ua({nbRows:l+D,nbColumns:c});for(let O=0;O<c;O++){let{re:v,im:F}=be({re:z(r,O),im:z(m,O)},{nbPoints:p,nbCoefficients:C,nbInputs:y});B(h,v,O),B(S,F,O)}let P=fa(h),H=fa(S),x={re:{...i,z:h,minZ:P.min,maxZ:P.max},im:{...o,z:S,minZ:H.min,maxZ:H.max}};Object.assign(s,x)}function ga(e){let{isComplex:n,isFt:t,isFtDimensionOne:s}=e.info;return!!(n&&s&&!t)}function xg(e,n){return{once:!0,reduce:n}}var da={name:\"flpDimension2\",label:\"Fordward-LP Dimension 2\",domainUpdateRules:hg,apply:Dg,reduce:xg,isApplicable:ga};import{matrixMinMaxZ as Da,nextPowerOfTwo as Mg,xHilbertTransform as xa}from\"ml-spectra-processing\";import{matrixCreateEmpty as gt,nextPowerOfTwo as Og,reimMatrixFFT as Sg}from\"ml-spectra-processing\";import{reimMatrixFFT as gn}from\"ml-spectra-processing\";function pa(e,n,t){let{maskFactors:s,keptRe:i,keptIm:o,dirty:a,rowMax:r}=t,{re:m,im:l}=e,c=[];if(a){for(let g=0;g<m.length;g++)a[g]&&c.push(g);if(c.length===0)return}let u=a?c.map(g=>m[g]):m,f=a?c.map(g=>l[g]):l;for(let g of f)g.fill(0);gn({re:u,im:f},{inverse:!0,inPlace:!0});for(let g=0;g<u.length;g++){let d=u[g],p=f[g];for(let C=0;C<n.length;C++){let y=n[C],b=s[C];i[C]=d[y]*b,o[C]=p[y]*b}d.fill(0),p.fill(0);for(let C=0;C<n.length;C++){let y=n[C];d[y]=i[C],p[y]=o[C]}}if(gn({re:u,im:f},{inPlace:!0}),r)for(let g=0;g<u.length;g++)r[a?c[g]:g]=Hg(u[g])}function Ca(e){let{re:n,im:t}=e,s=n[0].length,i=s>>1;for(let o of t)o.fill(0);gn({re:n,im:t},{inverse:!0,inPlace:!0});for(let o=0;o<n.length;o++){let a=n[o],r=t[o];for(let m=1;m<i;m++)a[m]*=2,r[m]*=2;for(let m=i+1;m<s;m++)a[m]=0,r[m]=0}return{re:n,im:t}}function ya(e){return Math.max(e*2,Math.min(e*4,1024))}function ba(e,n){let t=n>>1,s=new Float64Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];o===0||o===t?s[i]=1:o<t?s[i]=2:s[i]=0}return s}function Hg(e){let n=0;for(let t=0;t<e.length;t++){let s=Math.abs(e[t]);s>n&&(n=s)}return n}function dn(e,n){let{nusLength:t,nusIndices:s}=n,i=Og(t),o=e.re.z[0].length,a=ya(i),r={re:gt({nbRows:o,nbColumns:a}),im:gt({nbRows:o,nbColumns:a})},m={re:gt({nbRows:o,nbColumns:a}),im:gt({nbRows:o,nbColumns:a})};for(let P=0;P<o;P++){let H=r.re[P],x=r.im[P];for(let O=0;O<s.length;O++){let v=s[O];H[v]=e.re.z[v][P],x[v]=-e.im.z[v][P]}H[0]*=.5,x[0]*=.5}Sg(r,{inPlace:!0});let l=jg(r.re),{maxThreshold:c=.75,increaseFactor:u=7,percentToReachMax:f=1,threshold:g=.5,iterations:d=100,istMaxResolution:p=1}=n;ha(r,m,l,g);let C=c-g,y=Math.round(f*d),b=u/y,D=C/Math.tanh(u),h={maskFactors:ba(s,a),keptRe:new Float64Array(s.length),keptIm:new Float64Array(s.length),dirty:new Uint8Array(o).fill(1),rowMax:new Float64Array(o)};for(let P=0;P<=d;P++){pa(r,s,h);let H=vg(h.rowMax);if(H<=p*l/100)break;ha(r,m,H,P>y?c:Math.tanh(P*b)*D+g,h.dirty,h.rowMax)}let S=Ca(m);for(let P=0;P<S.re.length;P++)S.re[P][0]/=.5,S.im[P][0]/=.5;return{re:{...e.re,z:Pg(S.re,i)},im:{...e.im,z:Fg(S.im,i)}}}function ha(e,n,t,s,i,o){let a=t*s,r=e.re,m=n.re;for(let l=0;l<r.length;l++){if(o&&o[l]<=a){i&&(i[l]=0);continue}let c=r[l],u=m[l],f=!1;for(let g=0;g<c.length;g++){let d=c[g];if(d>a){let p=d-a;u[g]+=p,c[g]=a,f=!0}else if(d<-a){let p=d+a;u[g]+=p,c[g]=-a,f=!0}}i&&(i[l]=f?1:0)}}function vg(e){let n=0;for(let t=0;t<e.length;t++){let s=e[t];s>n&&(n=s)}return n}function Pg(e,n){let t=e.length,s=[];for(let i=0;i<n;i++){let o=new Float64Array(t);for(let a=0;a<t;a++)o[a]=e[a][i];s.push(o)}return s}function Fg(e,n){let t=e.length,s=[];for(let i=0;i<n;i++){let o=new Float64Array(t);for(let a=0;a<t;a++)o[a]=-e[a][i];s.push(o)}return s}function jg(e){let n=0,t=0,s=e[0].length;for(let i of e)for(let o=0;o<s;o++){let a=i[o];a>t?t=a:a<n&&(n=a)}return Math.max(t,-n)}var kg={updateXDomain:!0,updateYDomain:!0};function Ag(e){if(!Ha(e))throw new Error(\"NUS reconstruction requires data with the direct dimension (rows) already FFT-processed (F2 domain).\");let{data:n,meta:t={},info:s}=e;if(n.re.z.length!==n.im.z.length||n.re.z[0].length!==n.im.z[0].length)throw new RangeError(\"real and imaginary data must have the same dimensionality\");let i=s.acquisitionScheme?.toLowerCase(),{nuslist:o,NusTD:a}=t,r={re:n.re,im:n.im},m=Mg(a[1]),l={re:[],im:[]};if(i===\"echo-antiecho\"){m/=2;let f=r.re.z,g=f.length/2,d=[],p=[];for(let h=0;h<g;h++)d.push(f[2*h]),p.push(f[2*h+1]);let C={re:{...r.re,z:d},im:{...r.im,z:p}},y=dn(C,{nusIndices:o,nusLength:m}),b=[],D=y.re.z.length;for(let h=0;h<D;h++)b.push(y.re.z[h],y.im.z[h]);l.re=b;for(let h=0;h<D;h++)l.im.push(xa(y.re.z[h]),xa(y.im.z[h]))}else{let f=dn(r,{nusIndices:o,nusLength:m});l.re=f.re.z,l.im=f.im.z}let c=Da(l.re),u=Da(l.im);e.data={re:{...r.re,z:l.re,minZ:c.min,maxZ:c.max},im:{...r.im,z:l.im,minZ:u.min,maxZ:u.max}}}function Ha(e){let{nuslist:n}=e.meta??{},{isComplex:t,isFtDimensionOne:s,isFt:i}=e.info;return!!(n.length>0&&t&&s&&!i)}function Rg(e,n){return{once:!0,reduce:n}}var Oa={name:\"nusDimension2\",label:\"NUS Reconstruction\",domainUpdateRules:kg,apply:Ag,reduce:Rg,isApplicable:Ha};import{Matrix as Ct,MatrixTransposeView as va,WrapperMatrix2D as wg}from\"ml-matrix\";import{SparseMatrix as yt}from\"ml-sparse-matrix\";import{matrixCreateEmpty as Ig,xMaxIndex as Tg}from\"ml-spectra-processing\";function Oe(e){if([\"rr\",\"ir\",\"ri\",\"ii\"].some(n=>!(n in e)))throw new Error(\"four quadrants should has ir, ri and ii quadrants\")}function dt(e){if([\"rr\",\"ri\"].some(n=>!(n in e)))throw new Error(\"Two quadrants should has ri quadrant\")}import{reimMatrixPhaseCorrection as Ng}from\"ml-spectra-processing\";function Se(e,n){let{applyPhaseCorrection:t,keys:{re:s,im:i}}=n,o=t({re:e[s]?.z??[],im:e[i]?.z??[]},n),a={[s]:{...e[s],z:o.re,minZ:o.minRe,maxZ:o.maxRe},[i]:{...e[i],z:o.im,minZ:o.minIm,maxZ:o.maxIm}};return{...e,...a}}function pt(e,n){dt(e);let t=Se(e,{...n,applyPhaseCorrection:Sa,keys:{re:\"rr\",im:\"ir\"}});return\"ri\"in t&&\"ii\"in t?(Oe(t),Se(t,{...n,applyPhaseCorrection:Sa,keys:{re:\"ri\",im:\"ii\"}})):t}function Sa(e,n){let{ph0:t,ph1:s,reverse:i=!0,inPlace:o=!0}=n;return Ng(e,t*E,s*E,{reverse:i,inPlace:o,direction:\"rows\"})}function Fa(e,n={}){dt(e);let t=Pa({re:e.rr.z,im:e.ir.z},n),s=pt(e,{...t,inPlace:!1});Oe(s);let i=Pa({re:s.rr.z,im:s.ri.z},{transpose:!0,...n});return{horizontal:t,vertical:i}}function Pa(e,n={}){let{absolute:t,phases:s,threshold:i,nonZeros:o}=Bg(e,n),a=ja(t,s,i),{columns:r,rows:m,values:l}=o,c=Tg(l),u={x:r[c],y:m[c]};return Eg(a,{pivot:u,absolute:t,phases:s,threshold:i})}function Eg(e,n){let t=-30,s=30,i=8,o=Number.MAX_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER,{pivot:r,absolute:m}=n,{x:l}=r,{columns:c}=m,u=0,f=30,g=zg(n);for(;i>0&&u!==o;){o=u;for(let p=t;p<=s+1;p+=f){let C=e([g-p*l/c,p]);C<a&&([a,u]=[C,p])}t=g+Math.sign(g)*f,s=t,i--}t=u-f,s=u+f;let d=5;for(i=5,o=Number.MAX_SAFE_INTEGER;i>0;){o=u;let p=(s-t)/(d-1);for(let C=t;C<=s+1;C+=p){let y=e([g-C*l/c,C]);y<a&&([a,u]=[y,C])}t=u-p,s=u+p,i--}return{ph0:g-u*l/c,ph1:u}}function zg(e){let{pivot:t,absolute:s,phases:i,threshold:o}=e,{rows:a,columns:r}=s,m=new yt(a,r,{threshold:0}),l=new yt(a,r,{threshold:0}),{x:c,y:u}=t;for(let x=u-40;x<u+40;x++)for(let O=c-40;O<c+40;O++)m.set(x,O,s.get(x,O)),l.set(x,O,i.get(x,O));let f=ja(m,l,o),g=-15,d=15,p=12,C=0,y=Number.MAX_SAFE_INTEGER,b=Number.MAX_SAFE_INTEGER,D=15;for(;p>0&&C!==y;){y=C;for(let x=g;x<d+1;x+=D){let O=f([x,0]);O<=b&&([b,C]=[O,x])}g=C+Math.sign(C)*D,d=g,p--}g=C-15,d=C+15;let h=5;for(p=5;p>0;){let x=(d-g)/(h-1);for(let O=g;O<=d;O+=x){let v=f([O,0]);v<b&&([b,C]=[v,O])}g=C-x,d=C+x,p--}let S=s.get(u,c),P=i.get(u,c);return S*Math.cos(P+C*E)<0?C-Math.sign(C)*180:C}function Bg(e,n={}){let{re:t,im:s}=e,{transpose:i=!1}=n,o=i?new va(new Ct(t)):new Ct(t),a=i?new va(new Ct(s)):new Ct(s),{rows:r,columns:m}=o,l=Ig({nbRows:r,nbColumns:m});for(let C=0;C<r;C++)for(let y=0;y<m;y++)l[C][y]=Math.hypot(o.get(C,y),a.get(C,y));let{threshold:c=new wg(l).mean()*2}=n,u=new yt(l,{threshold:c}),f=new yt(u.rows,u.columns,{threshold:-1}),g=u.getNonZeros(),{columns:d,rows:p}=g;for(let C=0;C<p.length;C++){let[y,b]=[p[C],d[C]];f.set(y,b,Math.atan2(a.get(y,b),o.get(y,b)))}return{absolute:u,phases:f,threshold:c,nonZeros:g}}function ja(e,n,t){let s=e.columns;return i=>{let[o,a]=[...i],r=0;return e.forEachNonZero((m,l,c)=>{let u=o+l*a/s,f=c*Math.cos(n.get(m,l)+u*E);return Math.abs(f)>=t&&(r+=1),c}),r}}import{reimMatrixPhaseCorrection as Lg}from\"ml-spectra-processing\";function pn(e,n){Oe(e);let{quad:t}=n;return t===\"imag\"?Se(e,{...n,applyPhaseCorrection:Ma,keys:{re:\"ir\",im:\"ii\"}}):Se(e,{...n,applyPhaseCorrection:Ma,keys:{re:\"rr\",im:\"ri\"}})}function Ma(e,n){let{ph0:t,ph1:s,reverse:i=!0,inPlace:o=!0}=n;return Lg(e,t*E,s*E,{reverse:i,inPlace:o,direction:\"columns\"})}function Cn(e,n){let t=e,{horizontal:s,vertical:i}=n;return ka(s)&&(t=pt(t,s)),ka(i)&&(t=pn(t,i),t=pn(t,{...i,quad:\"imag\"})),t}function ka(e){return e?e?.ph0!==0||e?.ph1!==0:!1}var Xg={updateXDomain:!1,updateYDomain:!1};function qg(e,n){if(!Yg(e,n))throw new Error(\"Phase correction is not applicable to raw data\");let{data:t,filters:s}=e;if(\"horizontal\"in n||\"vertical\"in n)e.data={...t,...Cn(t,n)};else{let i=Fa(t,n.automatic);e.data={...t,...Cn(t,i)};let o=s?.find(a=>a.name===\"phaseCorrectionTwoDimensions\");o&&(o.value={...o.value,...i})}}function Yg(e,n){return Aa(e,n)}function Aa(e,n){let{horizontal:t,vertical:s}=n||{};if(t&&s)return[\"rr\",\"ir\",\"ri\",\"ii\"].every(i=>i in e.data);if(t)return[\"rr\",\"ri\"].every(i=>!(i in e.data));if(s){let{quad:i}=s;return i===\"imag\"?[\"ir\",\"ii\"].every(o=>o in e.data):[\"rr\",\"ir\"].every(o=>o in e.data)}return[\"rr\",\"ir\",\"ri\",\"ii\"].every(i=>i in e.data)}function Wg(e,n){return{once:!0,reduce:n}}var Ra={name:\"phaseCorrectionTwoDimensions\",label:\"Phase correction\",domainUpdateRules:Xg,apply:qg,reduce:Wg,isApplicable:Aa};var Zg={updateXDomain:!0,updateYDomain:!1};function Ug(e,n){let{shift:t}=n,s={...e.data};for(let i in s)s[i].minX+=t,s[i].maxX+=t;e.processingInfo.shiftDirect=t}function Vg(){return!0}function Gg(e,n){let{shift:t=0}=e,{shift:s}=n;return{once:!0,reduce:{shift:t+s}}}var Na={name:\"shift2DX\",label:\"Shift 2D X\",domainUpdateRules:Zg,apply:Ug,reduce:Gg,isApplicable:Vg};var Jg={updateXDomain:!1,updateYDomain:!0};function $g(e,n){let{shift:t}=n,s={...e.data};for(let i in s)s[i].minY+=t,s[i].maxY+=t;e.processingInfo.shiftIndirect=t}function _g(e,n){let{shift:t=0}=e,{shift:s}=n;return{once:!0,reduce:{shift:t+s}}}function Kg(){return!0}var wa={name:\"shift2DY\",label:\"Shift 2D Y\",domainUpdateRules:Jg,apply:$g,reduce:_g,isApplicable:Kg};import{matrixMinMaxZ as Qg}from\"ml-spectra-processing\";var ed={updateXDomain:!0,updateYDomain:!0};function td(e){if(!Ta(e))throw new Error(\"Symmetrization is only applicable to square matrices and FT data\");let n={...e.data},t=sd(n.rr.z),s=Qg(t);e.data={rr:{...n.rr,z:t,minZ:s.min,maxZ:s.max}},e.info.isComplex=!1}function Ta(e){if(e.info.isFt&&\"rr\"in e.data){let n=e.data.rr.z;return n[0].length===n.length}return!1}function nd(e,n){return{once:!0,reduce:n}}var Ia=Math.abs;function sd(e){let n=e.length,t=e[0].length;for(let s=0;s<n;s++)for(let i=s;i<t;i++){let o=Math.min(Ia(e[s][i]),Ia(e[i][s]));e[s][i]=o,e[i][s]=o}return e}var Ea={name:\"symmetrizeCosyLike\",label:\"Symmetrize COSY-like\",domainUpdateRules:ed,apply:td,reduce:nd,isApplicable:Ta};import{matrixMinMaxZ as za,reimZeroFilling as id}from\"ml-spectra-processing\";var od={updateXDomain:!0,updateYDomain:!0};function ad(e,n){if(!Ba(e))throw new Error(\"Zero filling on dimension 1 is not applicable on this data\");let{data:t,data:{re:s,im:i}}=e,{z:o}=s,a=i.z,r=o.length,m=o[0].length,l=[],c=[],{nbPoints:u}=n;for(let D=0;D<r;D++){let{re:h,im:S}=id({re:o[D].slice(),im:a[D].slice()},u);l.push(h),c.push(S)}let f=za(l),g=za(c),d={re:{...s,z:l,minZ:f.min,maxZ:f.max},im:{...i,z:c,minZ:g.min,maxZ:g.max}},{minX:p,maxX:C}=s,y=(C-p)/(m-1),b=p+y*u;d.re.maxX=b,d.im.maxX=b,Object.assign(t,d)}function Ba(e){return!!(e.info.isComplex&&e.info.isFid)}function rd(e,n){return{once:!0,reduce:n}}var La={name:\"zeroFillingDimension1\",label:\"Zero filling on Dimension 1\",domainUpdateRules:od,apply:ad,reduce:rd,isApplicable:Ba};import{matrixCreateEmpty as Xa,matrixMinMaxZ as qa,reimZeroFilling as ld}from\"ml-spectra-processing\";var md={updateXDomain:!0,updateYDomain:!0};function cd(e,n){if(!Ya(e))throw new Error(\"Zero filling on dimension 2 is not applicable on this data\");let{data:t,data:{re:s,im:i}}=e,o=s.z,a=i.z,r=o.length,m=o[0].length,{nbPoints:l}=n,c=Xa({nbRows:l,nbColumns:m}),u=Xa({nbRows:l,nbColumns:m});for(let D=0;D<m;D++){let{re:h,im:S}=ld({re:z(o,D),im:z(a,D)},l);B(c,h,D),B(u,S,D)}let f=qa(c),g=qa(u),d={re:{...s,z:c,minZ:f.min,maxZ:f.max},im:{...i,z:u,minZ:g.min,maxZ:g.max}},{minY:p,maxY:C}=s,y=(C-p)/(r-1),b=p+y*(l-1);d.re.maxY=b,d.im.maxY=b,Object.assign(t,d)}function Ya(e){let{isComplex:n,isFt:t,isFtDimensionOne:s}=e.info;return!!(n&&s&&!t)}function ud(e,n){return{once:!0,reduce:n}}var Wa={name:\"zeroFillingDimension2\",label:\"Zero filling on Dimension 2\",domainUpdateRules:md,apply:cd,reduce:ud,isApplicable:Ya};var re={zeroFillingDimension1:La,zeroFillingDimension2:Wa,apodizationDimension1:Fo,apodizationDimension2:Ao,phaseCorrectionTwoDimensions:Ra,baselineCorrectionTwoDimensions:To,digitalFilter2D:Uo,nusDimension2:Oa,symmetrizeCosyLike:Ea,fftDimension1:na,fftDimension2:ra,blpDimension1:Bo,blpDimension2:Yo,flpDimension1:ca,flpDimension2:da,shift2DX:Na,shift2DY:wa};function Za(e){let{data:n,info:t}=e,{minX:s,maxX:i,minY:o,maxY:a}=t.isFt?n.rr:n.re,r=Math.abs(i-s)/1e4,m=Math.abs(a-o)/1e4;return{x:r,y:m}}function Ua(e,n,t){let s=e.x||{from:0,to:0},i=e.y||{from:0,to:0};if(!n.zones?.values)return!1;for(let{x:o,y:a}of n.zones.values)if(Math.abs(s.from-o.from)<t.x&&Math.abs(s.to-o.to)<t.x&&Math.abs(i.from-a.from)<t.y&&Math.abs(i.to-a.to)<t.y)return!0;return!1}function Va(e){let n={x:0,y:0},{shiftDirect:t,shiftIndirect:s}=e.processingInfo,i=typeof t==\"number\",o=typeof s==\"number\";if(i&&(n.x=t),o&&(n.y=s),i&&o)return n;if(e?.filters)for(let a of e.filters)!i&&a.name===re.shift2DX.name&&(n.x=a?.enabled?a.value.shift:0),!o&&a.name===re.shift2DY.name&&(n.y=a?.enabled?a.value.shift:0);return n}function fd(e,n,t){let{x:s,y:i}=e;if(n===\"origin\")return{...e,x:{...s,originalDelta:s.delta-t.x},y:{...i,originalDelta:i.delta-t.y}};if(s.originalDelta===void 0||i.originalDelta===void 0)throw new TypeError('originalDelta must exist when shiftTarget is \"current\"');return{...e,x:{...s,originalDelta:s.originalDelta,delta:s.originalDelta+t.x},y:{...i,originalDelta:i.originalDelta,delta:i.originalDelta+t.y}}}function gd(e,n,t){let{x:s,y:i}=e;return n===\"origin\"?{x:{...s,originalFrom:s.from-t.x,originalTo:s.to-t.x},y:{...i,originalFrom:i.from-t.y,originalTo:i.to-t.y}}:{x:{...s,from:(s?.originalFrom||0)+t.x,to:(s?.originalTo||0)+t.x},y:{...i,from:(i?.originalFrom||0)+t.y,to:(i?.originalTo||0)+t.y}}}function dd(e,n,t){let{x:s,y:i,originalX:o=0,originalY:a=0}=e;return n===\"origin\"?{...e,originalX:s-t.x,originalY:i-t.y}:{...e,x:o+t.x,y:a+t.y}}function Ga(e,n,t={}){let{checkIsExisting:s=!0,shiftTarget:i=\"origin\"}=t,o=Va(n),a=Za(n);return s&&(e=e.filter(r=>!Ua(r,n,a))),e.map(r=>{r.x=r.x||{from:0,to:0},r.y=r.y||{from:0,to:0};let m=r.signals.map(l=>{let{id:c,kind:u}=l,f;return l.peaks&&(f=l.peaks.map(g=>{let d=dd(g,i,o);return{...g,...d,id:g.id||crypto.randomUUID()}})),{...fd(l,i,o),peaks:f,id:c||crypto.randomUUID(),kind:ae(u)}});return{...r,id:r.id||crypto.randomUUID(),...gd(r,i,o),signals:m,kind:ae(r.kind??m[0]?.kind)}})}import{WrapperMatrix2D as bd}from\"ml-matrix\";import{xBoxPlot as Ja}from\"ml-spectra-processing\";import{color as pd}from\"d3-color\";import{interpolateRgbBasis as Cd}from\"d3-interpolate\";import{xMinMaxValues as yd}from\"ml-spectra-processing\";function bt(e,n){let{minMax:t=yd(e),colors:s=[\"blue\",\"cyan\",\"yellow\",\"red\"]}=n,{min:i,max:o}=t,a=1/(o-i),r=[],m=Cd(s);for(let l of e)r.push(pd(m((l-i)*a))?.formatHex());return r}function hD(e,n={}){let t=new bd(e),s=hd(t),i=Object.keys(s);for(let o=1;o<t.columns;o++){let a=Ja(t.getColumn(o));for(let r of i)s[r][o]=a[r]}return{...s,color:bt(t.standardDeviation(\"column\"),n)}}function hd(e){let n=Ja(e.getColumn(0)),t={},s=Object.keys(n);for(let i of s)if(!t[i]){let o=new Float64Array(e.columns);o[0]=n[i],t[i]=o}return t}import{WrapperMatrix2D as Dd}from\"ml-matrix\";import{xCorrelation as xd}from\"ml-spectra-processing\";function SD(e,n,t={}){if(e.length===0||n<0||n>=e[0].length)throw new RangeError(\"Index should be between 0 and nbColumns - 1\");let s=new Dd(e);s.mean(\"column\");let i=e.length,o=e[0].length,a=new Float64Array(i),r=new Float64Array(i),m=new Float64Array(o);for(let c=0;c<i;c++)a[c]=e[c][n];let l={min:Number.MAX_SAFE_INTEGER,max:Number.MIN_SAFE_INTEGER};for(let c=0;c<o;c++){for(let f=0;f<i;f++)r[f]=e[f][c];let u=xd(a,r);u<l.min&&(l.min=u),u>l.max&&(l.max=u),m[c]=u}return{y:s.mean(\"column\"),correlations:m,color:bt(m,{minMax:l,...t})}}function FD(e,n=[]){let t=Ce(e);return!n.some(s=>t.some(i=>i.value===s))}function $a(e){let n=Ce(e);if(n.length===1)return n[0]}function RD(e){let n=$a(e);if(!n)throw new Error(`multiplet ${e} is not supported`);let{value:t,label:s}=n;return e===s?t:s}import{addMissingShape as vd}from\"ml-gsd\";import{getShape1D as Pd}from\"ml-peak-shape-generator\";import{generateSpectrum as Od}from\"spectrum-generator\";function _a(e,n){return n in e}function ht(e,n){let{frequency:t,convertTo:s,output:i=structuredClone(e)}=n,o=Hd(s,t);for(let a of i)if(a.width=o(a.width),_a(a,\"shape\")){let r=a.shape;r?.fwhm&&(r.fwhm=o(r.fwhm))}return i}function Hd(e,n){switch(e){case\"ppm\":return t=>t/n;case\"hz\":return t=>t*n;default:throw new Error(`Does not support convert to ${e}`)}}function ve(e,n){return ht(e,{...n,convertTo:\"ppm\"})}function Ka(e,n){let{frequency:t,nbPoints:s=1024,shape:i}=n;if(!t)throw new Error(\"frequency is mandatory\");let o=ve(e,{frequency:t});return Od(o,{generator:{...Sd(o,n),nbPoints:s,shape:i}})}function Sd(e,n){if(\"to\"in n&&\"from\"in n)return{from:n.from,to:n.to};e.sort((r,m)=>r.x-m.x);let t=e[0],s=e.at(-1),{frequency:i,from:o=t.x-t.width*2/i,to:a=s.x+s.width*2/i}=n;return{from:o,to:a}}function ZD(e,n){let t=vd([e])[0],s=Pd(t.shape).getFactor(),{frequency:i,from:o=t.x-e.width*s/i,to:a=t.x+e.width*s/i}=n;return Ka([e],{...n,from:o,to:a})}import{xSequentialFillFromTo as Fd}from\"ml-spectra-processing\";function Qa(e,n){let{from:t=0,to:s=10,nbPoints:i=1024,frequency:o=400,t2Relaxation:a=new Float64Array(e.length).fill(100)}=n,r=new Float64Array(i),m=new Float64Array(i),l=(s+t)/2,c=Math.abs(s-t),u=i/(c*o),f=Fd({size:i,from:0,to:u}),g=Math.PI*2;for(let d=0;d<e.length;d++){let{x:p,y:C}=e[d],y=a[d]*.001,b=g*o*(p-l);for(let D=0;D<i;D++)r[D]+=C*Math.exp(-f[D]/y)*Math.cos(b*f[D]),m[D]+=C*Math.exp(-f[D]/y)*Math.sin(b*f[D])}return{re:r,im:m}}import{linearSumAssignment as nr}from\"linear-sum-assignment\";import{Matrix as jd}from\"ml-matrix\";import{gaussianFct as Md}from\"ml-peak-shape-generator\";import{xFindClosestIndex as er,xMaxValue as sr}from\"ml-spectra-processing\";function ir(e,n,t={}){let s=structuredClone(e);s.sort((r,m)=>r.x-m.x);let i=s.map(r=>r.x),{markSolventPeaks:o=!1,solventZoneExtension:a=1.2}=t;for(let r of n){let m=r.peaks||kd(r);m.sort((O,v)=>O.x-v.x);let l=er(i,m.at(-1).x+a),c=er(i,m[0].x-a),u=s.filter((O,v)=>v>=c&&v<=l),f=[],g=[],d=[];for(let O of u){let{peaks:v,delta:F}=tr(O,r,m),j=Ad(v,u),k=0,M=0,A=0;for(let R=0;R<j.length;R++)M+=Math.abs(v[R].y-j[R].y),k+=Math.abs(v[R].x-j[R].x);j.length===0?(k=Number.MAX_SAFE_INTEGER,M=Number.MAX_SAFE_INTEGER,A=Number.MAX_SAFE_INTEGER):A=Md(Math.abs(r.delta-F),.5),f.push(M),g.push(k),d.push(A)}let[p,C,y]=[f,g,d].map(O=>{let v=sr(O);return v===0?1:v}),b=-1,D=Number.MAX_SAFE_INTEGER,h=[];for(let O=0;O<g.length;O++){let v=(f[O]/p+g[O]/C+1-d[O]/y)/3;h.push(v),D>v&&(b=O,D=v)}if(D<0||b<0)return s;let{peaks:S}=tr(u[b],r,m),P=or(S,u),{rowAssignments:H,gain:x}=nr(P,{maximaze:!1});if(x<0)return s;if(o)for(let O of H)s[O+c].kind=\"residualSolvent\";else{H.sort((O,v)=>v-O);for(let O of H)s.splice(O+c,1)}}return s}function kd(e,n={}){let t=ue([e]),s=G(t),{frequency:i=400,maxClusterSize:o=9}=n;return s.clusters=$(s,{frequency:i,maxClusterSize:o}),J(s).filter(r=>r.x<1e3)}function tr(e,n,t){let s=structuredClone(t),i=e.x-n.delta;t.length>1&&t.length%2===0&&(i+=t[0].x);let o=sr(s.map(r=>r.y)),a=0;for(let r of s)r.x+=i,r.y/=o,a+=r.x;return{peaks:s,delta:a/s.length}}function Ad(e,n){let t=or(e,n),{rowAssignments:s,gain:i}=nr(t,{maximaze:!1});if(i===-1)return[];let o=[],a=Number.NEGATIVE_INFINITY;for(let r of s)a<n[r].y&&(a=n[r].y),o.push({...n[r]});for(let r of o)r.y/=a;return o}function or(e,n){let t=n.length,s=e.length,i=new jd(s,t);for(let o=0;o<s;o++)for(let a=0;a<t;a++)i.set(o,a,Math.abs(e[o].x-n[a].x));return i}import{xyObjectCheck as Rd,xyObjectMinMaxValues as Nd}from\"ml-spectra-processing\";function ar(e,n){Rd(e,{minLength:1});let{minX:t,maxX:s,thresholdFactor:i=.2}=n,{minY:o,maxY:a}=Nd(e),r=wd(o,a)*i,m=e[0],l=Number.MAX_SAFE_INTEGER;for(let c of e)if(Math.abs(c.y)>=r){let u=Math.min(c.x-t,s-c.x);u<l&&(l=u,m=c)}return m}function wd(e,n){return Math.max(Math.abs(e),Math.abs(n))}function rr(e){return e.getAllAtoms()<1}import{Molecule as Id}from\"openchemlib\";function mx(e){return e?.match(/V[23]0/)?!rr(Id.fromMolfile(e)):!1}import{getShape1D as Td}from\"ml-peak-shape-generator\";import{xyIntegration as Ed}from\"ml-spectra-processing\";function Ee(e,n){return Math.abs(e.intensity*e.width/n*1.57)}function Dt(e,n){let t=0,s=0;for(let i of e)s+=Math.abs(Math.round(i.integralData.value));if(s!==n){t=n/s;for(let i of e)i.integralData.value*=t}}function le(e,n,t={}){let{frequencyCluster:s=16,integrationSum:i=100,integralType:o=\"sum\",frequency:a=400,nucleus:r=\"1H\"}=t;if(n.length===0)return[];let m=zd(n),l=lr(m[0],a,r),c,u=[],f={x:Number.MIN_SAFE_INTEGER},g=s/a;for(let d of m){if(Math.abs(d.x-f.x)>g)l=lr(d,a,r),d.kind&&(l.kind=d.kind),u.push(l);else{l.nbPeaks++,l.peaks.push({x:d.x,intensity:d.y,width:d.width,shape:d.shape});let p=Td(d.shape??{kind:\"gaussian\"}),y=Math.max(...l.peaks.map(h=>h.width))/a*.5,b=y*Math.min(18,Math.max(6,p.getFactor(.98))),D=l.peaks[0];l.startX=Math.min(l.startX,D.x-y),l.stopX=Math.max(l.stopX,d.x+y),l.integralData.from=D.x-b,l.integralData.to=d.x+b}f=d}for(let d of u){c=d.peaks;let p=d.integralData,C=0,y=0;for(let b of c){let D=Ee(b,a);C+=b.x*D,y+=D}d.delta=C/y,o===\"sum\"?p.value=Ed(e,{from:p.from,to:p.to}):p.value=y}return i>0&&Dt(u,i),u}function zd(e){let n={};for(let t of e)(n[t.kind??\"signal\"]??=[]).push(t);for(let t in n)n[t].sort((s,i)=>s.x-i.x);return Object.values(n).flat()}function lr(e,n,t){let s=e.width/n*.5,i=s*4;return{id:crypto.randomUUID(),delta:Number.NaN,nbPeaks:1,kind:\"signal\",startX:e.x-s,stopX:e.x+s,observe:n,nucleus:t,integralData:{from:e.x-i,to:e.x+i,value:0},peaks:[{x:e.x,intensity:e.y,width:e.width,shape:e.shape}]}}function xx(e,n,t={}){let{frequency:s=400}=t,i=Qe(structuredClone(e)),o=[];for(let m of i){let l=m.id;for(let c of m.signals||[]){let u=c.id;for(let f of c.peaks||[])o.push({...f,rangeID:l,signalID:u})}}let a=ir(o,n,{markSolventPeaks:!0}),r=Bd(a);for(let m of i)if(m.signals)for(let l of m.signals){if(!r.includes(l.id))continue;let c=[],u=[];for(let C of a)if(C.signalID===l.id){let{signalID:y,rangeID:b,...D}=C;C.kind===\"residualSolvent\"?u.push(D):c.push(D)}let f=c.length>0?le({x:[],y:[]},c,{integralType:\"peak\",frequency:s}):[];u.sort((C,y)=>C.x-y.x);let g=u[0].x,d=u.at(-1).x,p=le({x:[],y:[]},u,{integralType:\"peak\",frequencyCluster:(d-g)*s,frequency:s});m.signals=[...mr(f),...mr(p),...m.signals.filter(C=>C.id!==l.id)]}return i}function Bd(e){let n=new Set;for(let t of e)t.kind===\"residualSolvent\"&&n.add(t.signalID);return Array.from(n)}function mr(e){return e.map(n=>({id:crypto.randomUUID(),delta:n.delta,kind:n.kind||\"signal\",multiplicity:n.multiplicity,integration:n.integralData.value,peaks:n.peaks.map(t=>{let{intensity:s,...i}=t;return{y:s,...i}}),js:n.nmrJs||[]}))}import{isAnyArray as Wd}from\"is-any-array\";import X from\"numeral\";import{xSum as Ld}from\"ml-spectra-processing\";function cr(e,n){let t=e.reduce((s,i)=>{if(Number.isNaN(q[i]))throw new Error(`pattern ${i} is not in ${Object.keys(q).join(\" \")}`);return s+q[i]},0);if(!en[t])throw new Error(`The joined pattern from ${e.join(\",\")} doesn't exist`);return n?.acsFormat?tt[t]:en[t]}var yn=(e,n)=>e.localeCompare(n),Xd=(e,n)=>yn(e.diaIDs.toSorted(yn).join(\" \"),n.diaIDs.toSorted(yn).join(\" \")),fr=(e,n,t)=>Math.abs(e.coupling-n.coupling)<t,qd=(e,n,t)=>Xd(e,n)===0&&fr(e,n,t);function Ht(e,n={}){let{tolerance:t=.05,ignoreDiaIDs:s=!1,acsFormat:i=!1}=n;return!e.js||e.js.length<2?e:s?(gr(e),ur(e,fr,{tolerance:t,acsFormat:i})):(Yd(e),ur(e,qd,{tolerance:t,acsFormat:i}))}function ur(e,n,t){let{tolerance:s,acsFormat:i}=t;e.js.sort((r,m)=>m.coupling-r.coupling);let o=[e.js[0]],a=[o];for(let r=1;r<e.js.length;r++){let m=e.js[r],l=o.length-1;n(o[l],m,s)?o.push(m):(o=[m],a.push(o))}e.js=[];for(let r of a){let m=\"\";try{m=cr(r.filter(p=>p.multiplicity).map(p=>p.multiplicity),{acsFormat:i})}catch{e.js.push(...r);continue}let l=Ld(r.map(p=>p.coupling))/r.length,c=xt(r.filter(p=>p.atoms).flatMap(p=>p.atoms)),u=xt(r.filter(p=>p.assignment).flatMap(p=>p.assignment)).join(\" \"),f=xt(r.filter(p=>p.diaIDs).flatMap(p=>p.diaIDs)),g=xt(r.map(p=>p.pathLength)),d={coupling:l,multiplicity:m};f.length===1&&(d.diaIDs=f),g.length===1&&g[0]&&(d.pathLength=g[0]),u&&(d.assignment=u),c.length>0&&(d.atoms=c),e.js.push(d)}return e}function xt(e){return Array.from(new Set(e))}function Yd(e){gr(e);for(let n of e.js)if(!n.diaIDs)throw new Error(\"Missing diaIDs in coupling\")}function gr(e){if(!e.js)throw new Error(\"Missing JS data\")}var Zd={h:{nucleus:\"1H\",deltaFormat:\"0.00\",couplingFormat:\"0.0\",observedFrequency:400},c:{nucleus:\"13C\",deltaFormat:\"0.0\",couplingFormat:\"0.0\",observedFrequency:100},f:{nucleus:\"19F\",deltaFormat:\"0.00\",couplingFormat:\"0.0\",observedFrequency:400}};function Nx(e,n={}){let{nucleus:t=\"1H\",ascending:s}=n,i=t.toLowerCase().replaceAll(/[0-9]/g,\"\"),o={...Zd[i],nucleus:t,ascending:!1,format:\"IMJA\",...n},a=Ud(e,s),r=Vd(a,{...o});return r.length>0?`${r}.`:r}var dr=e=>Math.min(e.from,e.to);function Ud(e,n=!1){let t=n?1:-1,s=structuredClone(e);s.sort((i,o)=>t*(dr(i)-dr(o)));for(let i of s)i.signals?.sort((o,a)=>t*(o.delta-a.delta));return s}function Vd(e,n){let t=Gd(n);t.length===0&&(t=\"\\u03B4 \");let s=[];for(let i of e)i0(i,n.filter)||Jd(i,s,n);return s.length>0?t+s.join(\", \"):\"\"}function Gd(e){let n=[],t=`${Qd(e.nucleus)} NMR`;return e.solvent&&n.push(Kd(e.solvent)),e.observedFrequency&&n.push(`${X(e.observedFrequency*1).format(\"0\")} MHz`),n.length>0?t+=` (${n.join(\", \")}): \\u03B4 `:t+=\": \\u03B4 \",t}function Jd(e,n,t){let s=\"\",i=[],o=[e.from,e.to];if(e.signals&&(e.signals=e.signals.filter(a=>!t.filter||Cr(a))),e.signals&&e.signals.length>0){let a=e.signals;if(a.length>1){let r=X(Math.max(...o)),m=X(Math.min(...o));if(s+=`${m.format(t.deltaFormat)}-${r.format(t.deltaFormat)}`,s+=` (${pr(e,t)}`,a.some(l=>l.multiplicity||l.js&&l.js.length>0))for(let l of a){i=[],l.delta!==void 0&&(s=e0(s),s+=X(l.delta).format(t.deltaFormat));let c={from:Number.MIN_SAFE_INTEGER,to:Number.MAX_SAFE_INTEGER};Ot(c,l,i,t),i.length>0&&(s+=` (${i.join(\", \")})`)}s+=\")\"}else if(i=[],a[0].delta!==void 0)s+=X(a[0].delta).format(t.deltaFormat),Ot(e,a[0],i,t),i.length>0&&(s+=` (${i.join(\", \")})`);else{let r=X(Math.max(...o)),m=X(Math.min(...o));s+=`${m.format(t.deltaFormat)}-${r.format(t.deltaFormat)}`,Ot(e,a[0],i,t),i.length>0&&(s+=` (${i.join(\", \")})`)}}else{let a=X(Math.max(...o)),r=X(Math.min(...o));s+=`${r.format(t.deltaFormat)}-${a.format(t.deltaFormat)}`,Ot(e,{},i,t),i.length>0&&(s+=` (${i.join(\", \")})`)}n.push(s)}function pr(e,n){let t=\"\";if(e.pubIntegral)t=String(e.pubIntegral);else if(e.integration){let{nucleus:s}=n;t=X(e.integration).format(\"0\")+s.replaceAll(/[^a-zA-Z]/g,\"\")}return t}function $d(e,n,t){let s=pr(e,t);s.length>0&&n.push(s)}function _d(e,n){let t=e.multiplicity;if(!t){let s=Ht(e,{acsFormat:!0,tolerance:.05,ignoreDiaIDs:!0});t=ut(s)}t.length>0&&n.push(t)}function Ot(e,n,t,s){for(let i of s.format)switch(i.toUpperCase()){case\"I\":$d(e,t,s);break;case\"M\":_d(n,t);break;case\"A\":s0(n,t);break;case\"J\":n0(n,t,s);break;default:throw new Error(`Unknow format letter: ${i}`)}}function Kd(e){return e.replaceAll(/(?<num>[0-9]+)/g,\"<sub>$<num></sub>\")}function Qd(e){return e.replaceAll(/(?<num>[0-9]+)/g,\"<sup>$<num></sup>\")}function e0(e){return e.length>0&&!/ $/.exec(e)&&!/\\($/.exec(e)&&(e+=\", \"),e}function t0(e){return e=e.replaceAll(/(?<atom>[A-Z][a-z]?)(?<num>[0-9]+)/g,\"$<atom><sub>$<num></sub>\"),e=e.replaceAll(/\"(?<i>[^\"]*)\"/g,\"<i>$<i></i>\"),e}function n0(e,n,t){if(Wd(e.js)&&e.js.length>0){e.js.sort((i,o)=>o.coupling-i.coupling);let s=[];for(let i of e.js)i.coupling!==void 0&&s.push(X(i.coupling).format(t.couplingFormat));s.length>0&&n.push(`<i>J</i> = ${s.join(\", \")} Hz`)}}function s0(e,n){e.assignment&&n.push(t0(e.assignment))}function i0(e,n=!0){return!(!n||!e.signals||e.signals.length===0||e.signals.some(t=>Cr(t)))}function Cr(e){return e?.kind===\"signal\"||!e?.kind}function Ix(e){let n=[],t=[\"From\",\"To\",\"Integration\",\"Delta\",\"Assignment\",\"Multiplicity\"];for(let s=1;s<10;s++)t.push(`J Multiplicity ${s}`,`J Coupling ${s}`);n.push(t.join(\"\t\"));for(let s of e){let i=[s.from,s.to,s.integration||\"\"];if(s.signals)for(let o of s.signals){let a=i.slice(0);if(a.push(o.delta,o.assignment||\"\",o.multiplicity||\"\"),o.js)for(let r of o.js)a.push(r.multiplicity||\"\",r.coupling);n.push(a.join(\"\t\"))}else n.push(i.join(\"\t\"))}return n.join(`\n`)}import{xSequentialFillFromTo as o0,xSum as a0}from\"ml-spectra-processing\";import{SpectrumGenerator as r0}from\"spectrum-generator\";function l0(e){for(let n of e)if(!n.signals)throw new Error(\"range has not signals\")}var m0=(e=\"\")=>e.toUpperCase()===\"13C\"?{from:-5,to:206}:{from:-.5,to:10.5};function Lx(e,n={}){l0(e);let{frequency:t=400,lineWidth:s=1,nbPoints:i=16*1024,shape:o={kind:\"gaussian\"}}=n,a=(u,f)=>{for(let g=0;g<i;g++)u[g]+=f[g]},{from:r,to:m}=g0(e,n),l={to:m,from:r,nbPoints:i,shape:o,lineWidth:s,frequency:t},c=new Float64Array(i);for(let u of e){let{integration:f,signals:g=[]}=u,{multiplicity:d=\"\"}=u;if(d===\"m\"&&g.length===0){let{from:C,to:y}=u;g.push({delta:(C+y)/2,multiplicity:\"m\"})}let p=new Float64Array(i);for(let C of g){let{multiplicity:y}=C,b=y&&[\"m\",\"b\",\"br s\"].includes(y)?c0([C],l).y:Ue([C],l).y;yr(b,[C]),a(p,b)}u.integration&&yr(p,g,{integration:f}),a(c,p)}return{x:o0({from:r,to:m,size:i}),y:c}}function c0(e,n){let{lineWidth:t,frequency:s,...i}=n,o=new r0(i),a=t*3/s;for(let r of e){let{multiplicity:m,delta:l,integration:c=1}=r;if(m===\"b\"||m===\"br s\")o.addPeak({x:l,y:c,width:a});else{let u=u0(l,{lineWidth:t,frequency:s});o.addPeaks(u)}}return o.getSpectrum()}function u0(e,n){let{frequency:t,lineWidth:s,intensities:i=[1,2,5,4,5,7,5,4,5,2,1]}=n,o=s/t,a=o*1.5,r=[],m=e-a*i.length/2;for(let l=0;l<i.length;l++)r.push({x:m+a*l,y:i[l],width:o});return r}function f0(e){return e.reduce((n,t)=>n+(t.integration??1),0)}function yr(e,n,t={}){let{integration:s=f0(n)}=t,i=a0(e);if(i!==0){let o=s/i*1e6;for(let a=0;a<e.length;a++)e[a]*=o}}function g0(e,n){let{from:t,to:s}=m0(n.nucleus),i=Number.MAX_SAFE_INTEGER,o=Number.MIN_SAFE_INTEGER;for(let m of e)for(let l of m.signals||[])i>l.delta&&(i=l.delta),o<l.delta&&(o=l.delta);let{from:a=Math.min(i-.5,t),to:r=Math.max(o+.5,s)}=n;return{from:a,to:r}}import{levenbergMarquardt as H0}from\"ml-levenberg-marquardt\";import{getShape1D as O0}from\"ml-peak-shape-generator\";import{xMinMaxValues as S0}from\"ml-spectra-processing\";import d0 from\"ml-direct\";function br(e,n,t){let{minValues:s,maxValues:i,directOptions:o={}}=t,a=p0(e,n),r=d0(a,s,i,o);return{error:r.minFunctionValue,iterations:r.iterations,parameterValues:r.optima[0]}}function p0(e,n){let{x:t,y:s}=e,i=t.length;return o=>{let a=n(o),r=0;for(let m=0;m<i;m++)r+=(s[m]-a(t[m]))**2;return r}}import{getShape1D as y0}from\"ml-peak-shape-generator\";import{xyFindClosestPoint as b0}from\"ml-spectra-processing\";var ze={delta:{init:e=>e.signal.delta,min:e=>e.signal.delta-e.shape.fwhm*2,max:e=>e.signal.delta+e.shape.fwhm*2,gradientDifference:()=>.002},intensity:{init:e=>e.signal.intensity||1,min:()=>0,max:()=>1.5,gradientDifference:()=>.001},fwhm:{init:e=>e.shape.fwhm,min:e=>e.shape.fwhm*.25,max:e=>e.shape.fwhm*4,gradientDifference:e=>e.shape.fwhm*.002},mu:{init:e=>e.shape.mu||.5,min:()=>0,max:()=>1,gradientDifference:()=>.01},coupling:{init:e=>e.jCoupling.coupling,min:e=>e.jCoupling.coupling*.8,max:e=>e.jCoupling.coupling*1.2,gradientDifference:()=>.01}};import{xMaxValue as C0}from\"ml-spectra-processing\";function Pe(e,n){let{frequency:t,maxClusterSize:s=1}=n,i=ue(e),o=G(i);o.clusters=$(o,{frequency:t,maxClusterSize:s});let a=J(o,n).filter(m=>m.x<1e3),r=C0(a.map(m=>m.y));for(let m of a)m.y/=r;return a}var hr=[\"init\",\"min\",\"max\",\"gradientDifference\"];function Dr(e,n,t,s){let i=0,o=[],{shape:a={kind:\"gaussian\"},baseline:r,lineWidth:m=1,frequency:l}=s,c=r??t.min,u=h0({signals:n,data:e,shiftValue:c,frequency:l,range:t.range});for(let f of u){let{shape:g={...a},js:d}=f;g.fwhm||(g.fwhm=m),g.fwhm/=l;let p=y0(g),C=[\"delta\",\"intensity\",...p.getParameters()],y={min:[],max:[],init:[],gradientDifference:[]};for(let P of C)for(let H of hr)y[H].push(D0({signal:f,frequency:l,parameter:P,property:H,minMaxY:t,shapeFct:p}));for(let P of d)for(let H of hr){let x=\"coupling\",O=s?.parameters?.[x]?.[H];if(O)if(typeof O==\"number\")y[H].push(Be(O,x,H,t,l,r));else{let F=O({jCoupling:P});y[H].push(Be(F,x,H,t,l,r))}if(!ze[x])throw new Error(`No default parameter for ${x}`);let v=ze[x][H];y[H].push(v({jCoupling:P}))}let b=i,D=b+C.length-1,h=D+1,S=h+d.length-1;i+=S-b+1,o.push({shape:g,shapeFct:p,signal:f,parameters:C,propertiesValues:y,fromIndex:b,toIndex:D,fromIndexCoupling:h,toIndexCoupling:S})}return o}function h0(e){let{signals:n,data:t,frequency:s,shiftValue:i,range:o}=e,a=r=>{let m=Pe([r],{frequency:s,maxClusterSize:1}),l=m.reduce((u,f)=>f.y>u.y?f:u,m[0]),{y:c}=b0(t,l.x);return c};return n.map(r=>{let{intensity:m=a(r),js:l=[]}=r;return{...r,js:l,intensity:(m-i)/o}})}function D0(e){let{signal:n,frequency:t,parameter:s,property:i,minMaxY:o,shapeFct:a,baseline:r,parameters:m}=e,l=n?.parameters?.[s]?.[i];if(l)return Be(l,s,i,o,t,r);let c=m?.[s]?.[i];if(c){if(typeof c==\"number\")return Be(c,s,i,o,t,r);{let f=c(n);return Be(f,s,i,o,t,r)}}if(!ze[s])throw new Error(`No default parameter for ${s}`);let u=ze[s][i];return u({signal:n,shape:a})}function Be(e,n,t,s,i,o){return n===\"intensity\"?t===\"gradientDifference\"?e:o!==void 0?(e-o)/s.range:(e-s.min)/s.range:n===\"fwhm\"?e/i:e}var x0={maxClusterSize:1};function xr(e,n){let t={...x0,...n};return function(i){let o=[];for(let a of e){let r=i[a.fromIndex],m=i[a.fromIndex+1];for(let u=2;u<a.parameters.length;u++)a.shapeFct[a.parameters[u]]=i[a.fromIndex+u];let l=a.signal.js;for(let u=0;u<l.length;u++)l[u].coupling=i[a.fromIndexCoupling+u];let c=Pe([{delta:r,js:l}],t);o.push(...c.map(u=>({intensity:m,shape:a.shapeFct,...u})))}return a=>{let r=0;for(let m of o){let{x:l,y:c,intensity:u,shape:f}=m;r+=c*u*f.fct(a-l)}return r}}}var v0={damping:1.5,maxIterations:100,errorTolerance:1e-8},P0={iterations:25};function uH(e,n,t){let{optimization:s,simulation:i,...o}=t,a=S0(e.y),r={...a,range:a.max-a.min},m=Dr(e,n,r,{frequency:i.frequency,...o}),{baseline:l=r.min}=t,c=new Float64Array(e.y.length);for(let O=0;O<e.y.length;O++)c[O]=(e.y[O]-l)/r.range;let u=(m.at(-1)?.toIndexCoupling??-1)+1,f=new Float64Array(u),g=new Float64Array(u),d=new Float64Array(u),p=new Float64Array(u),C=0;for(let O of m){for(let v=0;v<O.parameters.length;v++)f[C]=O.propertiesValues.min[v],g[C]=O.propertiesValues.max[v],d[C]=O.propertiesValues.init[v],p[C++]=O.propertiesValues.gradientDifference[v];for(let v=O.parameters.length;v<O.parameters.length+O.signal.js.length;v++)f[C]=O.propertiesValues.min[v],g[C]=O.propertiesValues.max[v],d[C]=O.propertiesValues.init[v],p[C++]=O.propertiesValues.gradientDifference[v]}let y=xr(m,i),{kind:b,options:D}=s??{},[h,S]=b===\"direct\"?[br,P0]:[H0,v0],H=h({x:e.x,y:c},y,{minValues:f,maxValues:g,initialValues:d,gradientDifference:p,...S,...D}).parameterValues,x=[];for(let O of m){let v=O.signal.js.map((A,R)=>(A.coupling=H[O.fromIndexCoupling+R],A)),F=H[O.fromIndex],j=Pe([{delta:F,js:v}],i),k=H[O.fromIndex+1]*r.range+l,M=[];for(let{x:A,y:R}of j){let N={id:crypto.randomUUID(),x:A,y:k*R,width:0,shape:{...O.shape}};for(let Z=2;Z<O.parameters.length;Z++)N.shape[O.parameters[Z]]=H[O.fromIndex+Z];N.shape.fwhm*=i.frequency,N.width=O0(N.shape).fwhmToWidth(N.shape.fwhm),M.push(N)}x.push({delta:F,js:v,shape:{...M[0].shape},intensity:k,peaks:M})}return x}import{xMean as F0}from\"ml-spectra-processing\";var Hr=(e,n)=>e.localeCompare(n),j0=(e,n)=>{let t=`${e.diaIDs.join(\" \")}${e.pathLength}`,s=`${n.diaIDs.join(\" \")}${n.pathLength}`;return Hr(t,s)};function M0(e){for(let n of e){if(!n.js)throw new Error(\"there is not js\");if(!n.diaIDs)throw new Error(\"there is not diaIDs\");for(let t of n.js){if(!t.diaIDs)throw new Error(\"there is not diaIDs\");if(!t.pathLength)throw new Error(\"there is not pathLength\")}}}function pH(e,n={}){M0(e);let{joinCouplings:t={}}=n,{tolerance:s,ignoreDiaIDs:i}=t,o=structuredClone(e),a={};for(let m of o){m.js.sort(j0);let l=m.js.map(u=>`${u.diaIDs.join(\" \")} ${u.pathLength}`);l.sort(Hr);let c=`${m.diaIDs.join(\" \")} ${l.join(\" \")}`;a[c]||(a[c]=[]),a[c].push(m)}let r=[];for(let m of Object.values(a)){let l=[];for(let d=0;d<m[0].js.length;d++){let p=m[0].js[d];l.push({diaIDs:p.diaIDs,pathLength:p.pathLength,multiplicity:p.multiplicity,coupling:F0(m.map(C=>C.js[d].coupling))})}let c=0,u=0;for(let{delta:d,nbAtoms:p}of m)c+=d,u+=p||0;let f={id:crypto.randomUUID(),nbAtoms:u,delta:c/m.length,diaIDs:m[0].diaIDs,atoms:m.flatMap(d=>d.atoms||[]),js:l},g=m.map(d=>d.assignment).filter(Boolean).join(\" \");g.length>0&&(f.assignment=g),r.push(f)}return r=r.map(m=>{let l=Ht(m,{tolerance:s,ignoreDiaIDs:i});return l.js&&(l.multiplicity=l.js.length>0?l.js.map(c=>c.multiplicity).join(\"\"):\"s\"),l}),r.sort((m,l)=>m.delta-l.delta),r}function xH(e,n){let{lineBroadening:t=1,from:s=0,to:i=10,nbPoints:o=1024,frequency:a=400,maxClusterSize:r=9}=n,m=G(e);m.clusters=$(m,{frequency:a,maxClusterSize:r});let l=J(m,{frequency:a});return Qa(l,{lineBroadening:t,from:s,to:i,nbPoints:o,frequency:a})}function k0(e){for(let n of e)if(!n.nbAtoms)throw new Error(\"nbAtoms is mandatory\")}function SH(e,n={}){k0(e);let{tolerance:t=.05,frequency:s=400}=n,i=e.map(r=>({original:r}));for(let r of i){let m=nt(r.original,{frequency:s,tolerance:t});r.from=m.from,r.to=m.to}i.sort((r,m)=>r.from-m.from);let o=[],a={};for(let r of i)a.from===void 0||r.from>a.to?(a={id:crypto.randomUUID(),from:r.from,to:r.to,integration:r.original.nbAtoms,signals:[r.original]},o.push(a)):(a.integration+=r.original.nbAtoms,r.to>a.to&&(a.to=r.to),a.signals.push(r.original));return o}import{gyromagneticRatio as Or}from\"gyromagnetic-ratio\";function FH(e){if(e in Or)return e;if(e.toLowerCase()===\"proton\")return\"1H\";let n=e.replaceAll(/[^0-9]/g,\"\");if(!n)return e;for(let t in Or)if(t.includes(n))return t;return e}function AH(e,n={}){let{logger:t}=n,s={info:{dimension:1},ranges:[],acsString:e,normalized:e.replace(/\\.\\s*$/,\"\").replaceAll(/[\\r\\n\\t]/g,\" \").replaceAll(/[;:]/g,\",\").replaceAll(\"}\",\")\").replaceAll(\"{\",\"(\").replaceAll(/[\\u2011\\u2012\\u2013\\u2014\\u2015\\u2212]/g,\"-\")};return N0(s),A0(s,n),t?.info(`Found: ${s.ranges.length} ranges`),s}function A0(e,n={}){let{logger:t}=n;for(let s of e.parts)if(s.toLowerCase().includes(\"nmr\"))R0(e,s);else{e.info.frequency||(e.info.frequency=400,t?.warn(\"Frequency not defined, assuming 400 MHz\")),e.info.nucleus||(e.info.nucleus=\"1H\",t?.warn(\"Nucleus not defined, assuming 1H\"));let i=it(s,{...e.info,logger:t});i&&e.ranges.push(i)}}function R0(e,n){let t=st(n),s=t.before.replace(/[ -]*nmr[ -]*/i,\"\").replaceAll(/[ -]/g,\"\");if(/^[0-9]+[A-Z][a-z]?$/.exec(s)&&(e.info.nucleus=s),/^[A-Z][a-z]?[0-9]+$/.exec(s)&&(e.info.nucleus=s.replace(/^([A-Z][a-z]?)([0-9]+)$/,\"$2$1\")),t.inside){let i=t.inside.split(/[,]/),o=i.filter(r=>/[0-9]{2}/.exec(r));if(o.length>0){let r=o[0].replaceAll(/[^0-9]/g,\"\");r.length>1&&(e.info.frequency=Number(r))}let a=i.filter(r=>!r.match(/[0-9]{2}/));a.length>0&&(e.info.solvent=a[0].trim())}}function N0(e){let n=[],t=0;for(let a=0;a<e.normalized.length;a++)\",;)\".includes(e.normalized[a])&&(n.push(e.normalized.slice(t,a+1)),t=a+1);n.push(e.normalized.slice(t));let s=[],i=\"\",o=0;for(let a of n)i+=a,o+=(a.match(/\\(/g)||[]).length,o-=(a.match(/\\)/g)||[]).length,o===0&&(s.push(i),i=\"\");i&&s.push(i),s=s.filter(a=>!a.match(/^[,; ]*$/));for(let a=0;a<s.length;a++)s[a]=s[a].replace(/ *[,;]+$/,\"\").replaceAll(/  +/g,\" \").trim();e.parts=s}import{Matrix as w0,SVD as I0}from\"ml-matrix\";function wH(e,n){let{nbCoefficients:t,nbInputs:s,nbPoints:i}=n;if(e.length<s+t+i)throw new RangeError(\"data length should be bigger than nbInputs + nbCoefficients + nbPoints\");let o=[];for(let c=0;c<s;c++){let u=new Float64Array(t);for(let f=0;f<t;f++)u[f]=e[c+f+i+1];o.push(u)}let a=new I0(o),r=new Float64Array(s);for(let c=0;c<s;c++)r[c]=e[c+i];let m=a.solve(w0.from1DArray(r.length,1,r)).to1DArray(),{output:l=Float64Array.from(e)}=n;for(let c=0;c<i;c++){let u=0;for(let f=0;f<m.length;f++)u+=m[f]*l[f+i-c];l[i-c-1]=u}return{output:l,predicted:l.slice(0,i)}}import{reimPhaseCorrection as Fr,xMinValue as T0,xSubtract as Sr}from\"ml-spectra-processing\";import{analyseMultiplet as vr}from\"multiplet-analysis\";var Pr={minimalResolution:.1,critFoundJ:.75,maxTestedJ:17,minTestedJ:1,takeBestPartMultiplet:!0,correctVerticalOffset:!0,symmetrizeEachStep:!1,decreasingJvalues:!0,makeShortCutForSpeed:!0};function zH(e,n){let{x:t}=e,{re:s,im:i}=structuredClone(e),{autoPhase:o,analyzer:a={}}=n;if(o&&i){let m=T0(s);m>0&&(s=Sr(s,m),i&&(i=Sr(i,m)));let l=E0(s,i);s=Fr({re:s,im:i},jr(l),0).re}let r={x:t,y:s};return a.debug?vr(r,{...Pr,...a}):vr(r,{...Pr,...a})}function E0(e,n){let t=-180,s=180,i=6,o=10,a=0,r=Number.MAX_SAFE_INTEGER;for(;o>0;){let m=(s-t)/(i+1);for(let l=t;l<=s;l+=m){let c=Fr({re:e,im:n},jr(l),0),u=z0(c.re);u<r&&([r,a]=[u,l])}t=a-m,s=a+m,o--}return a}function jr(e){return e*Math.PI/180}function z0(e){let n=0;for(let t=0;t<e.length;t++){let s=e[t];s<0&&(n-=s)}return n}import{gsd as B0,joinBroadPeaks as L0,optimizePeaks as X0,setShape as q0}from\"ml-gsd\";import{savitzkyGolay as Y0}from\"ml-signal-processing\";import{xAbsoluteMedian as W0,xMaxAbsoluteValue as Ar,xNoiseSanPlot as Z0,xWhittakerSmoother as U0,xyExtract as V0}from\"ml-spectra-processing\";function Fe(e,n){return ht(e,{...n,convertTo:\"hz\"})}function te(e,n){let{from:t,to:s,frequency:i,noiseLevel:o,thresholdFactor:a=3,maxAbsoluteRatio:r=.05,minMaxRatio:m=.05,broadRatio:l=25e-5,useSanPlot:c=!1,smoothY:u=!0,optimize:f=!1,groupingFactor:g=2,factorLimits:d=2,realTopDetection:p=!0,shape:C={kind:\"pseudoVoigt\",mu:.5},optimization:y={kind:\"lm\"},broadWidth:b=.25,sgOptions:D={},direction:h=\"positive\",parameters:S,peakDetectionAlgorithm:P=\"auto\",sensitivity:H=100}=n,x=1/i/(e.x[1]-e.x[0]),O=Math.max(Math.round(x/2),5),{windowSize:v=O-O%2+1,polynomial:F=3}=D;if(!v)throw new Dn({windowSize:v,ws:O,pointsPerHz:x,frequency:i,x:e.x.slice(0,2),sgOptions:D,autoWindowSizeFormula:\"ws - (ws % 2) + 1\",pointsPerHzFormula:\"1 / frequency / (x[1] - x[0])\"});if(e.x.length<v)return[];let j,{maxAbsDdY:k}=n;if(t!==void 0&&s!==void 0){if(!(\"maxAbsDdY\"in n)){let N=Y0(e,{windowSize:v,polynomial:F,derivative:2});k=Ar(N.data.y)}j=V0(e,{zones:[{from:t,to:s}]})}else j=e;$0(H);let M=H!==100?U0(j.y,{lambda:50.1-H/2,maxIterations:1}):j.y,A=J0(j.y,{noiseLevel:o,useSanPlot:c,thresholdFactor:a}),R={shape:C,smoothedY:M,maxAbsDdY:k,frequency:i,broadWidth:b,optimize:f,factorLimits:d,groupingFactor:g,maxCriteria:!0,peakDetectionAlgorithm:P,sgOptions:{windowSize:v,polynomial:F},broadRatio:l,minMaxRatio:m,maxAbsoluteRatio:r,noiseLevel:A.positive,smoothY:u,parameters:S,optimization:y,realTopDetection:p};switch(h){case\"positive\":return hn(j,R);case\"negative\":return Mr(j,A,R);case\"both\":return[...hn(j,R),...Mr(j,A,R)];default:{let N=h;throw new Error(`Unknown distribution ${N}`)}}}function Mr(e,n,t){return t.noiseLevel=-Math.abs(n.negative),t.maxCriteria=!1,hn(e,t)}function hn(e,n){let{maxAbsDdY:t,smoothedY:s,frequency:i,broadWidth:o,optimize:a,maxCriteria:r,groupingFactor:m,factorLimits:l,sgOptions:c,maxAbsoluteRatio:u,minMaxRatio:f,broadRatio:g,noiseLevel:d,smoothY:p,parameters:C,optimization:y,realTopDetection:b,peakDetectionAlgorithm:D}=n,h=B0({...e,y:s},{sgOptions:c,maxCriteria:r,maxAbsoluteRatio:u,minMaxRatio:f,noiseLevel:d,smoothY:p,realTopDetection:b,peakDetectionAlgorithm:D}),S={...n.shape??{kind:\"gaussian\"}};typeof S?.fwhm==\"number\"&&(S.fwhm=S.fwhm/i);let P=q0(h,{output:h,shape:S}),H=o?L0(P,{shape:S,broadWidth:o,optimization:y,broadRatio:G0(h,{maxAbsDdY:t,broadRatio:g})}).map(bn):P.map(bn);return Fe(a?X0(e,H,{shape:S,groupingFactor:m,factorLimits:l,parameters:C,optimization:y}).map(bn):H,{frequency:i})}function G0(e,n={}){let{maxAbsDdY:t,broadRatio:s=.0025}=n;if(t&&e.length>0){let i=Ar(e.map(o=>o.ddY));return s*t/i}return s}function kr(e){return{positive:e,negative:-e}}function J0(e,n){let{noiseLevel:t,useSanPlot:s,thresholdFactor:i}=n;return t?kr(t):s?Z0(e,{factorStd:i}):kr(W0(e)*i)}function bn(e){let{id:n,shape:t,x:s,y:i,width:o}=e;return{id:n,x:s,y:i,width:o,shape:t}}var Dn=class extends Error{data;constructor(n){super(\"windowSize must be an odd integer >= 5, check data property of this error for contextual information\"),this.data=n}};function $0(e){if(e<1||e>100)throw new RangeError(\"The value of sensitivity should lie between (1, 100)\")}import{xGetFromToIndex as vp,xyMaxYPoint as Pp}from\"ml-spectra-processing\";function Nr(e,n=1){e.sort((t,s)=>t.from-s.from);for(let t=0;t<e.length-1;t++){let s=e[t],i=e[t+1];if(s.to>i.from){let o=Array.isArray(s.signals),a=Array.isArray(i.signals),r=o&&a,{separationHz:m,midpoint:l}=r?_0(s,i,n):{separationHz:0,midpoint:void 0};if(!(!r||m<18)){if(l!==void 0){let g=Math.max(l,i.from);s.to=g,i.from=g}continue}s.id=crypto.randomUUID(),s.to=Math.max(i.to,s.to),(o||a)&&(s.signals=s.signals&&i.signals?s.signals.concat(i.signals):s.signals??i.signals);let u=s.integration??0,f=i.integration??0;(s.integration!==void 0||i.integration!==void 0)&&(s.integration=u+f),e.splice(t+1,1),t--}}return e}function Rr(e){return e.signals?.flatMap(n=>n.peaks?.map(t=>t.x)??[])??[]}function _0(e,n,t){let s=Rr(e),i=Rr(n),o=1/0,a;for(let r of s)for(let m of i){let l=Math.abs(r-m)*t;l<o&&(o=l,a=(r+m)/2)}return{separationHz:o===1/0?0:o,midpoint:a}}import{getShape1D as K0}from\"ml-peak-shape-generator\";var St=[\"s\",\"d\",\"t\",\"q\",\"quint\",\"h\",\"sept\",\"o\",\"n\"],Q0=2.5,ep=1,tp={jAxis:\"x\",intensity:\"intensity\"};function np(e){if(!(\"symRank\"in e))throw new Error(\"Internal error, symRank was not calculated\");if(!(\"mask\"in e))throw new Error(\"Internal Error, mask was not added\")}var Er={compilePattern:(e,n={})=>{let{jAxisKey:t=tp,symRatio:s=2.5}=n,i=lp(e,{...n,symRatio:s,maxError:Q0,iteration:1,jAxisKey:t});if(i.multiplicity=\"m\",i.asymmetric=!0,np(i),i.symRank>=.95&&i.peaksComp.length<32){i.asymmetric=!1;let o,a,r,m=1,l=[];for(let c=0;c<9;c++){let u=mp(i,c),f=!1;if(u.length===1&&c===0)f=!0;else if(u.length<=1)continue;let g=rp(u);a=2**c;let d=null,p=1;for(;!f&&(d=ap(g,a))!==null&&p<400;){let C=new Array(d.length);m=1;for(let h=0;h<d.length;h++){C[h]=new Array(d[h]);for(let S=0;S<d[h];S++)C[h][S]=m++}l=[];let y=1;l.push(u[1].x-u[0].x),o=u[0].x,C[0].splice(0,1),C[1].splice(0,1),m=1;let b=2;for(r=2**c-1;l.length<c&&b<r&&m<u.length;){for(p+=1,y++;m<u.length&&C[m].length===0;)m++;if(m<u.length){l.push(u[m].x-u[0].x),C[m].splice(0,1),b++;for(let h=2;h<=y;h++){let S=0;for(let P=0;P<h;P++)S+=l[P];for(let P=1;P<C.length;P++)if(Math.abs(u[P].x-(o+S))<.25){C[P].splice(0,1),b++;break}}}}let D=op(l);f=!0;for(let h=0;h<D.length;h++)D[h].intensity!==d[h]&&(f=!1)}f&&sp(i,l)}}for(let o of i.peaksComp)o.x/=i.observe,o.width*=i.observe;return i}};function sp(e,n){let t=e.peaksComp,s=t.length,i=t[0],o=t[s-1],a=t.length>1?18:8,r=Math.max(...t.map(u=>u.width)),m=r*.5,l=K0(o.shape??{kind:\"gaussian\"}),c=m*Math.min(a,Math.max(6,l.getFactor(.98)));e.startX=i.x/e.observe-r,e.stopX=o.x/e.observe+r,e.integralData.from=i.x/e.observe-c,e.integralData.to=o.x/e.observe+c,e.maskPattern=e.mask2,e.multiplicity=ip(e,n),e.pattern=e.multiplicity}function ip(e,n){let s=\"\",i=1,o=[];if(n&&n.length>0){n.sort((r,m)=>m-r);for(let r=0;r<n.length-1;r++)Math.abs(n[r]-n[r+1])<.05?i++:(o.push({coupling:Math.abs(n[r]),multiplicity:St[i]}),s+=St[i],i=1);let a=n.length-1;o.push({coupling:Math.abs(n[a]),multiplicity:St[i]}),s+=St[i],e.nmrJs=o}else s=\"s\",Math.abs(e.startX-e.stopX)*e.observe>16&&(s=\"br s\");return s}function op(e){let t=[{x:0,intensity:2**e.length}];for(let s of e)for(let i=t.length-1;i>=0;i--)t.push({x:t[i].x+s/2,intensity:t[i].intensity/2}),t[i].x=t[i].x-s/2,t[i].intensity=t[i].intensity/2;t.sort((s,i)=>s.x-i.x);for(let s=t.length-2;s>=0;s--)Math.abs(t[s].x-t[s+1].x)<.1&&(t[s].intensity+=t[s+1].intensity,t.splice(s+1,1));return t}function ap(e,n){let t=Math.ceil(e.values.length*.5),s=e.values.length,i=0,o;for(;i!==n;){for(o=!1;!o;)if(o=!0,e.currentIndex[e.active]++,e.currentIndex[e.active]>=e.values[e.active].length){if(e.active+1===t)return null;e.currentIndex[e.active]=0,o=!1,e.active++}else e.active=0;i=0;for(let a=0;a<t;a++)i+=e.values[a][e.currentIndex[a]]*2;e.values.length%2!==0&&(i-=e.values[t-1][e.currentIndex[t-1]])}if(i===n){let a=new Array(s);for(let r=0;r<t;r++)a[r]=e.values[r][e.currentIndex[r]],a[s-r-1]=e.values[r][e.currentIndex[r]];return a}return null}function rp(e){let n=new Array(e.length),t=new Array(e.length),s,i;n[0]=[1],n[e.length-1]=[1],t[0]=-1,t[e.length-1]=0;for(let o=1;o<e.length-1;o++){s=Math.round(e[o].intensity*.85),i=Math.round(e[o].intensity*1.15),n[o]=[];for(let a=s;a<=i;a++)n[o].push(a);t[o]=0}return{values:n,currentIndex:t,active:0}}function lp(e,n){let t=xn(e,n);if(!t.peaksComp)throw new Error(\"internal peaksComp was not created\");let s=t.peaksComp,i=t.mask,o=e.delta;e.delta=(e.peaks[0].x+e.peaks.at(-1).x)/2;let a=xn(e,n);if(!a.peaksComp)throw new Error(\"internal peaksComp was not created\");return a.peaksComp.length>s.length?a:(e.delta=o,e.peaksComp=s,e.mask=i,t)}function xn(e,n){let{symRatio:t,iteration:s,jAxisKey:{jAxis:i,intensity:o}}=n,a=structuredClone(e),r,m,l,c,u,f=new Array(a.peaks.length);for(let x=0;x<f.length;x++){let O=a.peaks[x];f[x]={...O,x:O[i]*a.observe,intensity:O[o],width:O.width/a.observe}}for(let x=f.length-2;x>=0;x--)Math.abs(f[x].x-f[x+1].x)<.25&&(f[x].x=f[x].x*f[x].intensity+f[x+1].x*f[x+1].intensity,f[x].intensity=f[x].intensity+f[x+1].intensity,f[x].x/=f[x].intensity,f[x].intensity/=2,f[x].width+=f[x+1].width,f.splice(x+1,1));a.peaksComp=f;let g=f.length,d=new Array(g);a.mask=d;let p=0,C=f.length-1,y=a.delta*a.observe,b=[(f[0].x+f[g-1].x)/2,1],D=Math.min(wr(Math.abs(y-b[0])),n.maxError),h=0;for(let x=0;x<g;x++)d[x]=!0,h+=f[x].intensity;for(;p<=C;){if(d[p]=!0,d[C]=!0,p===C)g>2&&Math.abs(f[p].x-y)>D&&(d[p]=!1);else if(r=Math.max(f[p].intensity,f[C].intensity),m=Math.min(f[p].intensity,f[C].intensity),c=r/m,c>t)f[p].intensity===m?(d[p]=!1,C++):(d[C]=!1,p--);else{let x=Math.abs(f[p].x-y),O=Math.abs(f[C].x-y);Math.abs(x-O)<D?(l=Math.min(f[p].intensity,f[C].intensity),u=Math.min(f[p].width,f[C].width),f[p].intensity=l,f[C].intensity=l,f[p].width=u,f[C].width=u,b=[b[0]+(f[C].x+f[p].x)/2,b[1]+1]):Math.max(x,O)===O?(d[C]=!1,p--):(d[p]=!1,C++)}if(p++,C--,s===1&&(y=Ir(f,d),Number.isNaN(y)))return a.symRank=0,a;D=wr(Math.abs(y-b[0]/b[1]))}for(let x=g-1;x>=0;x--)d[x]===!1&&f.splice(x,1);if(y=Ir(f),Number.isNaN(y))return a.symRank=0,a;a.delta=y/a.observe;let S=0,P=0;if(f.length>1){for(let x=Math.ceil(f.length/2)-1;x>=0;x--)S+=(3+Math.min(Math.abs(f[x].x-y),Math.abs(f[f.length-1-x].x-y)))/(3+Math.max(Math.abs(f[x].x-y),Math.abs(f[f.length-1-x].x-y)))*f[x].intensity,P+=f[x].intensity;S/=P}else f.length===1&&(S=1);let H=0;for(let x of f)H+=x.intensity;if(S-=(h-H)/h*.12,S>.8&&S<.97&&s<2)return xn(a,{...n,maxError:ep,iteration:2});if(f.length>1){let x;for(let O=Math.ceil(f.length/2)-1;O>=0;O--)x=(f[O].x-f[f.length-1-O].x)/2,f[O].x=y+x,f[f.length-1-O].x=y-x}return a.symRank=S,a}function wr(e){let n=e*2.5;return n<.75&&(n=.75),n>3&&(n=3),n}function mp(e,n){let t=structuredClone(e.peaksComp),s=0,i=0;for(let a of t)s+=a.intensity;s=2**n/s,e.mask2=e.mask.slice();let o=e.mask2.length-1;for(let a=t.length-1;a>=0;a--){for(t[a].intensity*=s;o>=0&&!e.mask2[o];)o--;t[a].intensity<.75?(t.splice(a,1),e.mask2[o]=!1):i+=t[a].intensity,o--}i=2**n/i;for(let a=t.length-1;a>=0;a--)t[a].intensity*=i;return t}function Ir(e,n=[]){let t=0,s=0,i;if(n.length>0)for(let o=0;o<e.length;o++)n[o]&&(i=Tr(e[o]),t+=i,s+=i*e[o].x);else for(let o of e)i=Tr(o),t+=i,s+=i*o.x;return s/t}function Tr(e){return Math.abs(e.intensity*e.width*1.57)}function cp(e){if(!e.mask)throw new Error(\"Internal Error, mask was not added\");if(!e.mask2)throw new Error(\"Internal Error, mask2 was not added\");if(!e.maskPattern)throw new Error(\"Internal Error, maskPattern was not added\")}function je(e,n,t={}){let{solvent:s,symRatio:i=1.5,integrationSum:o=100,joinOverlapRanges:a=!0,clean:r=.4,compile:m=!1,integralType:l=\"sum\",frequency:c=400,frequencyCluster:u=16,keepPeaks:f=!1,nucleus:g=\"1H\",shape:d={kind:\"gaussian\"}}=t,p={solvent:s,integrationSum:o,integralType:l,frequencyCluster:u,frequency:c,nucleus:g};if(n.length===0)return[];e.x[0]>e.x[1]&&(e.x=e.x.toReversed(),e.y=e.y.toReversed());let{peaks:C,solventSignals:y}=up(e,n,p),b=le(e,C,p);if(r)for(let h=0;h<b.length;h++)Math.abs(b[h].integralData.value)<r&&b.splice(h,1);if(m){let h,S;for(let P=0;P<b.length;P++){b[P]=Er.compilePattern(b[P],{symRatio:i});let H=b[P];if(H.maskPattern&&H.multiplicity!==\"m\"&&H.multiplicity!==\"\"){cp(H),h=0,S=0;let x=[];for(let O=H.maskPattern.length-1;O>=0;O--)if(S+=Ee(H.peaks[O],c),!H.maskPattern[O]){let v=H.peaks.splice(O,1)[0];x.push({x:v.x,y:v.intensity,width:v.width,shape:v.shape??d}),H.mask.splice(O,1),H.mask2.splice(O,1),H.maskPattern.splice(O,1),H.nbPeaks--,h+=Ee(v,c)}if(x.length>0){h=h*H.integralData.value/S,H.integralData.value-=h;let O=[];for(let F=x.length-1;F>=0;F--)O.push(x[F]);p.integrationSum=Math.abs(h);let v=le(e,O,p);for(let F of v)b.push(F)}}}Dt(b,o)}if(b.push(...y),b.sort((h,S)=>h.delta-S.delta),r)for(let h=b.length-1;h>=0;h--)Math.abs(b[h].integralData.value)<r&&b.splice(h,1);let D=[];for(let h=0;h<b.length;h++){let S=b[h],P={id:crypto.randomUUID(),from:S.integralData.from,to:S.integralData.to,integration:S.integralData.value},H={delta:S.delta,kind:S.kind||\"signal\",multiplicity:S.multiplicity,assignment:S.assignment,peaks:S.peaks.map(x=>{let{intensity:O,...v}=x;return{y:O,...v}})};S.nmrJs&&(H.js=S.nmrJs),P.signals=[H],D[h]=P}if(a&&(D=Nr(D,c)),!f)for(let h of D)for(let S of h.signals||[])delete S.peaks;return D}function up(e,n,t){let s=[],i=[];for(let c of n)[\"nmrSolvent\",\"residualSolvent\"].includes(c.kind||\"\")?s.push(c):i.push(c);if(s.length===0)return{peaks:i,solventSignals:[]};let{solvent:a,...r}=t,l=le(e,s,{...r,frequencyCluster:50}).map(c=>({...c,assignment:a}));return{peaks:i,solventSignals:l}}import{xMaxValue as fp}from\"ml-spectra-processing\";var zr=[{names:[\"CD2Cl2\"],smiles:\"[2H]C([2H])(Cl)Cl\",ranges:[{signals:[{delta:53.5,assignment:\"CD2\",js:[{spin:1,nbCouplings:2,coupling:27.6}]}],from:53.73,to:54.73}],nucleus:\"13C\",solvent:\"cd2cl2\"},{names:[\"CDCl3\"],smiles:\"[2H]C(Cl)(Cl)Cl\",ranges:[{signals:[{delta:77,assignment:\"CD\",js:[{spin:1,nbCouplings:1,coupling:32.2}]}],from:76.58,to:77.45}],nucleus:\"13C\",solvent:\"cdcl3\"},{names:[\"DMSO-d6\"],smiles:\"C([2H])([2H])([2H])S(=O)C([2H])([2H])[2H]\",ranges:[{signals:[{delta:40,assignment:\"CD3\",js:[{spin:1,nbCouplings:3,coupling:21}]}],from:39.15,to:40.78}],nucleus:\"13C\",solvent:\"dmso\"},{names:[\"C6H6\",\"Benzene\"],smiles:\"\",ranges:[{signals:[{delta:127.7,assignment:\"CD\",js:[{spin:1,nbCouplings:1,coupling:24.26}]}],from:127.45,to:127.92}],nucleus:\"13C\",solvent:\"c6h6\"}];function gp(e,n){let{frequency:t,solventFeatures:s,tolerance:i=.1,minScore:o=.99}=n,{delta:a,js:r}=s.ranges[0].signals[0],m=hp(r[0],t),l=e.map(yp),c=pp(l,m,{delta:a,minScore:o,tolerance:i});if(c)for(let u of c.peaks){let f=l.findIndex(g=>g.id===u.id);l[f].kind=\"nmrSolvent\"}return l}function Lr(e,n){let{solvent:t=\"\",logger:s,...i}=n,o=dp(t);return o?gp(e,{...i,solventFeatures:o}):(s&&s.error(`There is not support for solvent: ${t}`),e)}function dp(e){let n=e.toLocaleLowerCase();return n===\"(cd3)2so\"&&(n=\"dmso\"),zr.find(s=>s.solvent===n)}function pp(e,n,t){let{delta:s,minScore:i=.7,tolerance:o=.1}=t,a=n.toSorted((g,d)=>g.x-d.x),[r,m=r]=[a[0],a.at(-1)],l=s+r.x-o,c=s+m.x+o,u=e.filter(g=>g.x>=l&&g.x<=c).toSorted((g,d)=>g.x-d.x),f;for(let g of u){let d=a.findIndex(H=>H.x===0);if(d===-1||Math.abs(g.x-s)>=o)continue;let p=a.slice(0,d),C=a.slice(d+1),y=u.filter(H=>H.x<g.x),b=u.filter(H=>H.x>g.x),D=Br(p,y,g,o),h=Br(C,b,g,o);if(!D||!h)continue;let S=[...D.peaks,g,...h.peaks],P=bp(S,a,g);P>=i&&(!f||P>f.score)&&(f={peaks:S,centerPeak:g,score:P})}return f}function Br(e,n,t,s){if(e.length===0)return{peaks:[],score:0};let i=Math.max(Math.abs(t.y),Number.EPSILON),o=[],a=n.map(()=>({score:-1/0,previousIndex:-1}));for(let c=0;c<e.length;c++){let u=e[c],f=n.map(()=>({score:-1/0,previousIndex:-1})),g={score:-1/0,index:-1};for(let d=0;d<n.length;d++){d>0&&a[d-1].score>g.score&&(g={score:a[d-1].score,index:d-1});let p=n[d],C=t.x+u.x;if(Math.abs(p.x-C)>=s)continue;let y=Cp(p,u,t,i);c===0?f[d]={score:y,previousIndex:-1}:g.index!==-1&&(f[d]={score:g.score+y,previousIndex:g.index})}o.push(f),a=f}let r=-1,m=-1/0;for(let c=0;c<a.length;c++)a[c].score>m&&(m=a[c].score,r=c);if(r===-1)return;let l=[];for(let c=o.length-1;c>=0;c--)l.unshift(n[r]),r=o[c][r].previousIndex;return{peaks:l,score:m}}function Cp(e,n,t,s){let i=Math.abs(e.x-t.x-n.x),o=Math.abs(e.y/s*100-n.y),a=Math.max(0,1-i),r=Math.max(0,1-o/100);return(a+r)/2}function yp(e){return{id:crypto.randomUUID(),...e}}function bp(e,n,t){let s=Math.max(...e.map(a=>a.y)),i=e.map(a=>({x:a.x-t.x,y:a.y/s*100})).toSorted((a,r)=>a.x-r.x),o=[...n].toSorted((a,r)=>a.x-r.x);if(i.length!==o.length){let a=Math.min(i.length,o.length),r=0;for(let m=0;m<a;m++){let l=Math.abs(i[m].x-o[m].x),c=Math.abs(i[m].y-o[m].y),u=Math.max(0,1-l),f=Math.max(0,1-c/100);r+=u*.4+f*.6}return r/a}else{let a=0;for(let r=0;r<i.length;r++){let m=Math.abs(i[r].x-o[r].x),l=Math.abs(i[r].y-o[r].y),c=Math.max(0,1-m),u=Math.max(0,1-l/100);a+=(c+u)/2}return a/i.length}}function hp(e,n){let{spin:t,nbCouplings:s,coupling:i}=e,o=Dp(s,t),a=i/n,r=-(o.length-1)/2*a,m=[],l=fp(o);for(let c=0;c<o.length;c++)m.push({y:o[c]/l*100,x:r+a*c});return m}function Dp(e,n=1){if(e===0)return[1];let t=2*n+1,s;if(t===2){s=[1];for(let i=0;i<e-0;i++)s.push(s[i]*(e-i-0)/(i+1));return s}else{if(s=[1],e===0)return s;for(let o=0;o<t-1;o++)s.push(1);let i=s;for(let o=0;o<e-1;o++){s=[];for(let a=0;a<t;a++)if(a===0)for(let r of i)s.push(r);else{for(let r=0;r<i.length-1;r++)s[r+a]+=i[r];s.push(1)}i=s}return s}}function Xr(e,n){let{impurities:t={},peakPicking:s,ranges:i={},identifyNMRSolvent:o=!0}=n,{frequency:a,shape:r}=s,{solvent:m}=t,l=te(e,s);return o&&(l=Lr(l,{solvent:m,frequency:a,tolerance:1})),je(e,l,{shape:r,solvent:m,...{frequencyCluster:0,joinOverlapRanges:!1},...i})}function qr(e,n){let{peakPicking:t,ranges:s={}}=n,i=te(e,t);return je(e,i,{shape:t.shape,...s})}var xp={\"\\u2080\":\"0\",\"\\u2081\":\"1\",\"\\u2082\":\"2\",\"\\u2083\":\"3\",\"\\u2084\":\"4\",\"\\u2085\":\"5\",\"\\u2086\":\"6\",\"\\u2087\":\"7\",\"\\u2088\":\"8\",\"\\u2089\":\"9\"};function Hn(e){return e.replaceAll(/[₀₁₂₃₄₅₆₇₈₉]/g,t=>xp[t])}var Me={};for(let e of ui){let{names:n=[],ranges:t}=e,s=Hn(e.solvent).toLocaleLowerCase();Me[s]||(Me[s]={});let i=Me[s],o=n.map(Hn);for(let a of o){i[a]||(i[a]=[]);let r=i[a];for(let{signals:m=[]}of t)for(let l of m){let{delta:c,assignment:u=\"\",js:f=[],multiplicity:g=\"\"}=l;r.push({shift:c,proton:u,coupling:f.length>0?f[0].coupling:0,multiplicity:g})}}}var Hp=[\"water\"];function Yr(e,n={}){let{error:t=.025,solvent:s,frequency:i=400}=n,o=structuredClone(e),a=Sp(s);if(!a)return o;for(let r=o.length-1;r>=0;r--){let m=o[r];Op({...m,width:m.width/i},a,t)&&(o[r].kind=\"impurity\")}return o}function Op(e,n,t){let s=t+e.width;for(let i of Hp){let o=n[i];for(let a of o)if(Math.abs(a.shift-e.x)<s)return!0}return!1}function Sp(e=\"\"){if(!e)return null;let n=e.toLocaleLowerCase();return n===\"(cd3)2so\"&&(n=\"dmso\"),n===\"meod\"&&(n=\"cd3od\"),Me[n]?Me[n]:null}function Wr(e,n){let{impurities:t={},peakPicking:s,ranges:i={},identifyImpurities:o=!1}=n,{frequency:a,shape:r}=s,{solvent:m}=t,l=te(e,s);return o&&(l=Yr(l,{...t,frequency:a})),je(e,l,{compile:!0,shape:r,solvent:m,...i})}function FO(e,n){let{from:t,to:s,sgOptions:i}=n.peakPicking,{fromIndex:o,toIndex:a}=vp(e.x,{from:t,to:s}),r=i?.windowSize??7;if(a-o<=r)return n.logger?.info(\"Too small window for accurate multiplicity determination\"),[{from:e.x[o],to:e.x[a],signals:[{delta:Pp(e,{fromIndex:o,toIndex:a}).x,multiplicity:\"\",js:[]}]}];let{ranges:m={}}=n,{nucleus:l=\"\"}=m;switch(l){case\"1H\":return Wr(e,n);case\"13C\":return Xr(e,n);default:return qr(e,n)}}import{BaseRegression as Fp}from\"ml-regression-base\";import{SimpleLinearRegression as jp}from\"ml-regression-simple-linear\";import{xyCheck as Mp}from\"ml-spectra-processing\";function RO(e,n){Mp(e,{minLength:2});let{x:t,y:s}=e,{gyromagneticRatio:i,gradientPulseDuration:o,timeCorrection:a}=n,r=new Float64Array(t.length),m=new Float64Array(t.length);for(let d=0;d<t.length;d++)r[d]=Math.log(s[d]),m[d]=t[d]**2;let l=new jp(m,r),{slope:c,intercept:u}=l.toJSON(),f=-c/a/(i*o)**2,g=Math.exp(u);return{regression:new On(f,g,n),coefficient:f,signalAbsenseDiffussion:g}}var On=class extends Fp{coefficient;signalAbsenseDiffussion;gyromagneticRatio;gradientPulseDuration;timeCorrection;constructor(n,t,s){let{gyromagneticRatio:i,gradientPulseDuration:o,timeCorrection:a}=s;super(),this.coefficient=n,this.signalAbsenseDiffussion=t,this.gyromagneticRatio=i,this.gradientPulseDuration=o,this.timeCorrection=a}_predict(n){return this.signalAbsenseDiffussion*Math.exp(-this.timeCorrection*this.coefficient*(n*this.gyromagneticRatio*this.gradientPulseDuration)**2)}};import{levenbergMarquardt as kp}from\"ml-levenberg-marquardt\";import{BaseRegression as Ap}from\"ml-regression-base\";import{xyCheck as Rp}from\"ml-spectra-processing\";var Np={damping:1.5,maxIterations:100,errorTolerance:1e-8};function EO(e,n={}){Rp(e,{minLength:2});let{optimization:t={}}=n,{options:s={},shapeFunc:i=wp}=t,{x:o,y:a}=e,r=o.length-1,m=o[r],l=a[r],c=[a[0]-a[0]*.5,0],u=[l+l*.5,m],f=[l,(c[1]+u[1])*.5],g=kp(e,i,{initialValues:f,minValues:c,maxValues:u,...Np,...s}),[d,p]=g.parameterValues;return{relaxationT1:p,fullMagnetization:d,regression:new Sn(d,p)}}function wp(e){let[n,t]=e;return s=>n*(1-2*Math.exp(-s/t))}var Sn=class extends Ap{fullMagnetization;relaxationT1;constructor(n,t){super(),this.relaxationT1=t,this.fullMagnetization=n}_predict(n){return this.fullMagnetization*(1-2*Math.exp(-n/this.relaxationT1))}};import{ExponentialRegression as Ip}from\"ml-regression-exponential\";import{xyCheck as Tp}from\"ml-spectra-processing\";function XO(e){Tp(e,{minLength:2});let{x:n,y:t}=e,s=new Ip(n,t),{A:i,B:o}=s.toJSON();return{regression:s,rateConstant:i,initialConcentration:o}}import{optimizePeaks as Ep}from\"ml-gsd\";function UO(e,n,t){let{frequency:s}=t,i=ve(n,{frequency:s}),o=Ep(e,i,t);return Fe(o,{frequency:s,output:o})}import{optimizePeaks as zp}from\"ml-gsd\";var Zr=[{groupingFactor:10,optimization:{kind:\"lm\",options:{maxIterations:20,errorTolerance:.001}},parameters:{fwhm:{optimize:!0,min:e=>(e.shape?.fwhm??0)/2,max:e=>(e.shape?.fwhm??0)*2},mu:{optimize:!1},x:{optimize:!1},y:{optimize:!0,init:e=>e.y*.8}}},{groupingFactor:10,optimization:{kind:\"lm\",options:{maxIterations:20,errorTolerance:5e-4}},parameters:{fwhm:{optimize:!0,min:e=>(e.shape?.fwhm??0)/2,max:e=>(e.shape?.fwhm??0)*2},mu:{optimize:!1},x:{optimize:!1},y:{optimize:!0}}},{groupingFactor:10,optimization:{kind:\"lm\",options:{maxIterations:20,errorTolerance:1e-5}},parameters:{fwhm:{optimize:!0,min:e=>(e.shape?.fwhm??0)/2,max:e=>(e.shape?.fwhm??0)*2},mu:{optimize:!0},x:{optimize:!1},y:{optimize:!0}}},{groupingFactor:10,optimization:{kind:\"lm\",options:{maxIterations:20,errorTolerance:5e-4}},parameters:{fwhm:{optimize:!0,min:e=>(e.shape?.fwhm??0)/3,max:e=>(e.shape?.fwhm??0)*3},mu:{optimize:!0},x:{optimize:!0},y:{optimize:!0}}},{groupingFactor:10,optimization:{kind:\"lm\",options:{maxIterations:20,errorTolerance:1e-4}},parameters:{fwhm:{optimize:!0,min:e=>(e.shape?.fwhm??0)/2,max:e=>(e.shape?.fwhm??0)*2},mu:{optimize:!1},x:{optimize:!0},y:{optimize:!0}}},{groupingFactor:10,optimization:{kind:\"lm\",options:{maxIterations:20,errorTolerance:1e-8}},parameters:{fwhm:{optimize:!0,min:e=>(e.shape?.fwhm??0)/2,max:e=>(e.shape?.fwhm??0)*2},mu:{optimize:!0},x:{optimize:!0},y:{optimize:!0}}}];function QO(e,n,t){let{frequency:s,optimization:i,parameters:o,stages:a=Zr,...r}=t,{kind:m,options:l={}}=i??{},{maxIterations:c,...u}=l,f=0;for(let D of a)f+=D.optimization?.options?.maxIterations??0;let g=[],d=a.length,p=c!==void 0&&c>f?Bp(c,d):[];for(let D=0;D<d;D+=1){let h=a[D];if(c===void 0){g.push(h.optimization?.options?.maxIterations);continue}if(p.length>0){g.push(p[D]);continue}g.push(c)}let C=D=>{let h=a[D],S=h.optimization??{kind:void 0,options:{}},P={...u,...S.options,maxIterations:g[D]};return{...h,...r,optimization:{kind:m??S.kind,options:P},parameters:Lp(h.parameters,o)}},b=ve(n,{frequency:s}).toSorted((D,h)=>D.x-h.x);for(let D=0;D<a.length;D+=1)b=zp(e,b,C(D)).filter(S=>S.y!==0);return Fe(b,{frequency:s,output:b})}function Bp(e,n){let t=Math.floor(e/n),s=e%n;return Array.from({length:n},(i,o)=>o<s?t+1:t)}function Lp(e,n){if(!e)return n??{};if(!n)return e;let t={...e};for(let s of Object.keys(n))t[s]={...e[s],...n[s]};return t}function sS(e,n={}){let{thresholdFactor:t=.2,frequency:s=600}=n,i=te(e,{frequency:s,direction:\"both\"});return ar(i,{thresholdFactor:t,minX:e.x[0],maxX:e.x.at(-1)})}import{isAnyArray as Kp}from\"is-any-array\";import*as Pt from\"ml-matrix-convolution\";import*as tl from\"ml-matrix-peaks-finder\";import{simpleClustering as Qp}from\"ml-simple-clustering\";function Ur(e,n={}){let{output:t=structuredClone(e)}=n;for(let s of t)\"id\"in s||(s.id=crypto.randomUUID());return t}import{levenbergMarquardt as Xp}from\"ml-levenberg-marquardt\";import{Gaussian2D as qp}from\"ml-peak-shape-generator\";var vt=[-1,-1,-1,0,0,1,1,1],vn=[-1,0,1,-1,1,-1,0,1],Yp=[-2,-2,-2,-2,-2,-1,-1,0,0,1,1,2,2,2,2,2],Wp=[-2,-1,0,1,2,-2,2,-2,2,-2,2,-2,-1,0,1,2];function Gr(e,n){let{nCols:t,absoluteData:s,originalData:i,minX:o,maxX:a,minY:r,maxY:m}=n,l=[];for(let c of e){let u=Math.round(c.x),f=Math.round(c.y),g=u+f*t,{index:d,isMax:p}=Vr(s,{xIndex:u,yIndex:f,nCols:t,shell:1});g=p?d:Vr(s,{xIndex:u,yIndex:f,nCols:t,shell:2}).index;let C=Zp(i,{nCols:t,index:g,minY:r,maxY:m,minX:o,maxX:a});l.push(C)}return l}function Vr(e,n){let{xIndex:t,yIndex:s,shell:i,nCols:o}=n,a=t+s*o,[r,m]=i>1?[Yp,Wp]:[vt,vn],l=!1;for(let c=0;c<r.length;c++){let u=t+r[c],f=s+m[c];if(e[u+f*o]>=e[a]){l=!0;let g=u+f*o;for(let d=0;d<vn.length;d++){let p=u+vt[d],C=f+vn[d];if(e[p+C*o]>e[g]){l=!1;break}}l&&(a=g)}}return{index:a,isMax:l}}function Zp(e,n){let{nCols:t,index:s,minY:i,maxY:o,minX:a,maxX:r}=n,m=e.length/t,l=(r-a)/(t-1),c=(o-i)/(m-1),u=s%t,f=(s-u)/t,g=1,d=1,p=0,C=new Array(vt.length+1),y=new Array(vt.length+1);for(let x=-1,O=0;x<2;x++)for(let v=-1;v<2;v++,y[O]=O++){let F=e[u+v+(f+x)*t];p=Math.max(p,Math.abs(F)),C[g+v+(d+x)*3]=F}if(p===0)return{x:u,y:f,z:0};for(let x=0;x<C.length;x++)C[x]/=p;let b=[g+1,d+1,1.5,1,1],D=[g-1,d-1,-1.5,.001,.001],h=[g,d,C[g+d*3],.2,.2],S=[1e-4,1e-4,.001,.001,.001],P=Up(l,c,3),H=Xp({x:y,y:C},P,{damping:1.5,maxIterations:100,errorTolerance:1e-8,initialValues:h,gradientDifference:S,maxValues:b,minValues:D}).parameterValues;return{x:H[0]+u-1,y:H[1]+f-1,z:H[2]*p}}function Up(e,n,t){let s=new qp;return i=>o=>{let a=i.length/5,r=0,m=o%t,l=(o-m)/t;for(let c=0;c<a;c++)s.fwhm={x:i[c+3*a],y:i[c+4*a]},r+=i[c+2*a]*s.fct((m-i[c])*e,(l-i[c+a])*n);return r}}function $r(e={}){let{sigma:n=1.4,xLength:t=9,yLength:s=9}=e,i=-40/Jr(0,0,n),o=(t-1)/2,a=(s-1)/2,r=[];for(let m=0;m<t;m++){let l=[];for(let c=0;c<s;c++)l.push(Jr(m-o,c-a,n)*i);r.push(l)}return r}var Jr=(e,n,t)=>{let s=-(e**2+n**2)/2/t**2;return-(1/Math.PI/t**4)*(1+s)*Math.exp(s)};function _r(e,n){let t=Number.NEGATIVE_INFINITY;for(let s=e.length-1;s>=0;s--)Math.abs(e[s].z)>t&&(t=Math.abs(e[s].z));t*=n;for(let s=e.length-1;s>=0;s--)Math.abs(e[s].z)<t&&e.splice(s,1);return e}function Kr(e){let n=Jp(e),t=e.slice(),s;for(let a=t.length-1;a>=0;a--){let r=t[a];if(r.peaks&&r.peaks.length>1&&n[a][1]++,n[a][0]===1){let m=Qr(t,n,r,-1,!0);m>=0&&(n[a][1]+=2,n[m][1]+=2)}}for(let a=t.length-1;a>=0;a--){let r=t[a];n[a][0]===0&&(s=Gp(t,n,r,!0),n[a][1]+=s)}let i=0;for(let a=t.length-1;a>=0;a--)n[a][0]!==0&&n[a][1]>2&&(i++,i+=Vp(t,n,t[a],n[a])),n[a][1]>=2&&n[a][0]===0&&i++;let o=new Array(i);i--;for(let a=t.length-1;a>=0;a--)(n[a][0]!==0&&n[a][1]>2||n[a][0]===0&&n[a][1]>1)&&(o[i--]=t[a]);return o}function Vp(e,n,t,s){let i=Qr(e,n,t,-s[0],!0),o=0,a,r=null;if(i<0){let u=t.y.delta,f=t.x.delta;a={x:{nucleus:t.x.nucleus,resolution:t.x.resolution,delta:u},y:{nucleus:t.y.nucleus,resolution:t.y.resolution,delta:f},peaks:[{x:u,y:f,z:1,maxX:f,minX:f,maxY:u,minY:u}]},e.push(a),r=[-s[0],s[1]],n.push(r),o++}let m,l=!1,c=!1;for(let u=e.length-1;u>=0;u--)m=e[u],n[u][0]===0&&(Math.abs(m.x.delta-t.x.delta)<.05&&(l=!0),Math.abs(m.y.delta-t.y.delta)<.05&&(c=!0));if(!l){let u=t.y.delta,f=t.x.delta;a={x:{delta:u,nucleus:t.x.nucleus,resolution:t.x.resolution},y:{delta:f,nucleus:t.y.nucleus,resolution:t.y.resolution},peaks:[{x:f,y:f,z:1,maxX:f,minX:f,maxY:f,minY:f}]},e.push(a),r=[0,s[1]],n.push(r),o++}if(!c){let u=t.y.delta;a={x:{delta:u,nucleus:t.x.nucleus,resolution:t.x.resolution},y:{delta:u,nucleus:t.y.nucleus,resolution:t.y.resolution},peaks:[{x:u,y:u,z:1,maxX:u,minX:u,maxY:u,minY:u}]},e.push(a),r=[0,s[1]],n.push(r),o++}return o}function Gp(e,n,t,s){let i=0,o=t.x.delta*4,a=[],r=[],m;for(let l=e.length-1;l>=0;l--)m=e[l],n[l][0]!==0&&(Math.abs(m.x.delta-t.x.delta)<.05?(i++,s&&n[l][1]++,a.push(l),o+=m.x.delta):Math.abs(m.y.delta-t.y.delta)<.05&&(i++,s&&n[l][1]++,r.push(l),o+=m.y.delta));if(o/=a.length+r.length+4,a.length>0)for(let l=a.length-1;l>=0;l--)e[a[l]].x.delta=o;if(r.length>0)for(let l=r.length-1;l>=0;l--)e[r[l]].y.delta=o;return t.x.delta=o,t.y.delta=o,i}function Qr(e,n,t,s,i){for(let o=e.length-1;o>=0;o--)if(n[o][0]===s&&$p(t,e[o],i)<.05){if(i){let a=t.x.delta,r=e[o].x.delta;e[o].y.delta=a,t.y.delta=r}else{let a=(e[o].x.delta+t.x.delta)/2,r=(e[o].y.delta+t.y.delta)/2;e[o].x.delta=a,e[o].y.delta=r,t.x.delta=a,t.y.delta=r}return o}return-1}function Jp(e){let n=new Array(e.length);for(let t=e.length-1;t>=0;t--)if(n[t]=[0,0],Math.abs(e[t].x.delta-e[t].y.delta)<=.05){n[t][1]=1;let s=(e[t].x.delta*2+e[t].y.delta)/3;e[t].x.delta=s,e[t].y.delta=s}else e[t].x.delta-e[t].y.delta>0?n[t][0]=1:n[t][0]=-1;return n}function $p(e,n,t){return t?Math.hypot(e.x.delta-n.y.delta,e.y.delta-n.x.delta):Math.hypot(e.x.delta-n.x.delta,e.y.delta-n.y.delta)}function el(e,n){let{minX:t,maxX:s,minY:i,maxY:o,z:a}=e,r=n.width,m=a[0].length,l=a.length,c=(o-i)/(l-1),u=(s-t)/(m-1),f=r-l,g=Math.max(r-m,0);g%2&&g++,f%2&&f++;let d=g/2,p=f/2,C=[];for(let y=0;y<l+f;y++)C.push(new Float64Array(m+g));for(let y=0;y<l;y++)for(let b=0;b<m;b++)C[y+p].set(a[y],d);return{...e,z:C,minX:t-d*u,maxX:s+d*u,minY:i-p*c,maxY:o+p*c}}var e1=[[0,0,1,2,2,2,1,0,0],[0,1,4,7,7,7,4,1,0],[1,4,5,3,0,3,5,4,1],[2,7,3,-12,-23,-12,3,7,2],[2,7,0,-23,-40,-23,0,7,2],[2,7,3,-12,-23,-12,3,7,2],[1,4,5,3,0,3,5,4,1],[0,1,3,7,7,7,3,1,0],[0,0,1,2,2,2,1,0,0]];function nl(e,n){let{sizeToPad:t=14,realTopDetection:s=!0,nuclei:i=[\"1H\",\"1H\"],observedFrequencies:o,enhanceSymmetry:a=!1,clean:r=!0,maxPercentCutOff:m=.03,tolerances:l=[24,24],convolutionByFFT:c=!0,kernel:u}=n,{thresholdFactor:f=.5}=n;if(!Kp(o))throw new Error(\"observedFrequencies is mandatory\");f=f===0?1:Math.abs(f);let g=e.z[0].length,d=e.z.length;d<t&&(e=el(e,{width:t}),g=e.z[0].length,d=e.z.length);let p=new Float64Array(g*d),C=new Float64Array(g*d);for(let S=0;S<d;S++){let P=e.z[S];for(let H=0;H<g;H++){let x=S*g+H;p[x]=Math.abs(P[H]),C[x]=P[H]}}let y=u?$r(u):e1,b=c?Pt.fft(p,y,{rows:d,cols:g}):Pt.direct(p,y,{rows:d,cols:g}),D=tl.findPeaks2DRegion(p,{originalData:C,filteredData:b,rows:d,cols:g,nStdDev:f});r&&(D=_r(D,m));let h=t1(Ur(D),{nRows:d,nCols:g,minX:e.minX,maxX:e.maxX,minY:e.minY,maxY:e.maxY,absoluteData:p,originalData:C,tolerances:l,nuclei:i,observedFrequencies:o,realTopDetection:s});return a&&(h=Kr(h)),h}function t1(e,n){let{nCols:t,nRows:s,absoluteData:i,originalData:o,observedFrequencies:a,tolerances:r,nuclei:m,realTopDetection:l,minY:c,maxY:u,minX:f,maxX:g}=n,[d,p]=m,[C,y]=r,[b,D]=a,h=(u-c)/(s-1),S=(g-f)/(t-1);if(l){let O=Gr(e,{nCols:t,absoluteData:i,originalData:o,minX:f,maxX:g,minY:c,maxY:u});for(let v=0;v<e.length;v++)Object.assign(e[v],O[v])}for(let O=e.length-1;O>=0;O--){let{x:v,y:F}=e[O];e[O].x=f+S*v,e[O].y=c+h*F,e[O].minX=f+S*e[O].minX,e[O].minY=c+h*e[O].minY,e[O].maxX=f+S*e[O].maxX,e[O].maxY=c+h*e[O].maxY}let P=[];for(let O=0;O<e.length;O++)for(let v=O;v<e.length;v++)Math.abs(e[O].x-e[v].x)*b<C&&Math.abs(e[O].y-e[v].y)*D<y?P.push(1):P.push(0);let H=Qp(P),x=[];if(H)for(let O of H){let v={id:crypto.randomUUID(),x:{delta:0,nucleus:d,resolution:S},y:{delta:0,nucleus:p,resolution:h},peaks:[]},F=[],j=0;for(let k=0;k<O.length;k++)if(O[k]===1){let M=Math.abs(e[k].z);F.push(e[k]),v.x.delta+=e[k].x*M,v.y.delta+=e[k].y*M,j+=M}v.x.delta/=j,v.y.delta/=j,v.peaks=F,x.push(v)}return x}function sl(e){let n=[];for(let t of e){let s=[Number.MAX_VALUE,0],i=[Number.MAX_VALUE,0];for(let o of t.peaks||[])o.minX<s[0]&&(s[0]=o.minX),o.maxX>s[1]&&(s[1]=o.maxX),o.minY<i[0]&&(i[0]=o.minY),o.maxY>i[1]&&(i[1]=o.maxY);n.push({id:crypto.randomUUID(),x:{from:s[0],to:s[1]},y:{from:i[0],to:i[1]},signals:[t]})}return n}function Ft(e,n,t={}){let{z:s,minX:i,minY:o,maxX:a,maxY:r}=e,m=s.length,l=s[0].length,c=(r-o)/(m-1),u=(a-i)/(l-1),f={delta:c,min:o,size:m},g={delta:u,min:i,size:l},d=0,p=[];for(let y of n){let b=il(y.x,g),D=il(y.y,f),h=0;for(let P=D.fromIndex;P<=D.toIndex;P++){let H=s[P];for(let x=b.fromIndex;x<=b.toIndex;x++)h+=H[x]}let S=h*Math.abs(u*c);S>d?d=S:-S>d&&(d=-S),p.push({...y,absolute:S,integration:S})}let{maxIntegrationValue:C=100}=t;if(C!==0){let y=C/d;for(let b of p)b.integration*=y}return p}function il(e,{min:n,delta:t,size:s}){let{from:i,to:o}=e,a=Math.round((i-n)/t),r=Math.round((o-n)/t);return{fromIndex:Math.max(0,Math.min(a,r)),toIndex:Math.min(s-1,Math.max(a,r))}}function OS(e,n){let t=nl(e,n),s=sl(t);return Ft(e,s)}function PS(e,n){return Ft(e,[n],{maxIntegrationValue:0})[0]}var cl={};qe(cl,{applyFilter:()=>kt,applyFilters:()=>s1,deleteFilter:()=>o1,enableFilter:()=>i1,reapplyFilters:()=>Le});function ol(e){let{x:n,re:t,im:s}=e||{x:[],re:[],im:[]};return{x:n.slice(),re:t.slice(),im:s?.slice()}}function jt(e,n){let t=e.filters.findIndex(s=>s.name===n);return e.filters.length===t+1}function Mt(e,n){let t=e.filters.findIndex(s=>s.name===n.name);e.filters[t]={...e.filters[t],...n}}function al(e){e.integrals.values=yo(e.integrals.values,e,\"current\"),xo(e,!0)}function rl(e){e.peaks.values=bo(e.peaks.values,e,{checkIsExisting:!1,shiftTarget:\"current\"})}function n1(e){if(!e.originalData)throw new Error(\"Not original data available\");e.data=ol(e.originalData);let{originalInfo:n,originalProcessingInfo:t}=e;n&&(e.info={...n}),e.processingInfo={...t}}function ml(e){rl(e),So(e),al(e)}function s1(e,n=[],t={}){let{forceReapply:s=!1,filterIndex:i,logger:o}=t,a=!1;for(let r of n){let m=a1(e,r.name);if(m){let{once:l,reduce:c}=De[r.name].reduce(m.value,r.value);l?(a||(a=!0),r.value=c,c!=null&&c!==void 0&&Mt(e,r)):ll(e,r,{filterIndex:i})}else ll(e,r,{filterIndex:i})}if(s)Le(e,{logger:o});else if(a)n.length===1&&jt(e,n[0].name)?kt(e,n[0],o):Le(e,{logger:o});else for(let r of n)kt(e,r,o);ml(e)}function Le(e,n={}){let{filters:t=e.filters,logger:s}=n;n1(e);for(let i=0;i<t.length;i++){let o=e.filters[i];if(delete o.error,o.enabled)try{kt(e,o,s)}catch(a){e.filters[i]={...o,error:a.message}}}ml(e)}function i1(e,n){let{id:t,enabled:s,logger:i}=n;e.filters=e.filters.slice(0).map(o=>({...o,enabled:o.id===t?s??!o.enabled:o.enabled})),Le(e,{logger:i})}function o1(e,n,t){let s=e.filters.find(i=>i.id===n);e.filters=e.filters.slice(0).filter(i=>i.id!==n),!(s&&!s.enabled)&&Le(e,{logger:t})}function a1(e,n){return e.filters.find(t=>t.name===n)}function ll(e,n,t={}){let{filterIndex:s}=t,i=crypto.randomUUID(),o={...n,id:i,enabled:!0};typeof s==\"number\"&&s!==-1?e.filters=[...e.filters.slice(0,s+1),o,...e.filters.slice(s+1)]:e.filters.push(o)}function kt(e,n,t){let{name:s,value:i}=n,o=Date.now();De[s].apply(e,i);let a=Date.now()-o;t?.debug(`Filter: ${s} takes ${a} ms`)}var Cl={};qe(Cl,{applyFilter:()=>At,applyFilters:()=>m1,deleteFilter:()=>u1,enableFilter:()=>c1,reapplyFilters:()=>Xe});function fl(e){let n={};if(r1(e))for(let t in e)ul(n,t,e[t]);else for(let t in e)ul(n,t,e[t]);return n}function r1(e){return\"rr\"in e}function ul(e,n,t){if(t){let{z:s,...i}=t;e[n]={z:s.slice(),...i}}}function gl(e){e.zones.values=Ga(e.zones.values,e,{checkIsExisting:!1,shiftTarget:\"current\"})}function l1(e){if(!e.originalData)throw new Error(\"Not original data available\");e.data=fl(e.originalData);let{originalInfo:n,originalProcessingInfo:t}=e;n&&(e.info={...n}),e.processingInfo={...t}}function pl(e){gl(e)}function m1(e,n=[],t={}){let{forceReapply:s=!1,filterIndex:i,logger:o}=t,a=!1;for(let r of n){let m=e.filters.find(l=>l.name===r.name);if(m){let{once:l,reduce:c}=re[r.name].reduce(m.value,r.value);r.value=c,l?(a||(a=!0),c!=null&&c!==void 0&&Mt(e,r)):dl(e,r,{filterIndex:i})}else dl(e,r,{filterIndex:i})}if(s)Xe(e,{logger:o});else if(a)n.length===1&&jt(e,n[0].name)?At(e,n[0]):Xe(e,{logger:o});else for(let r of n)At(e,r,o);pl(e)}function Xe(e,n={}){let{filters:t=e.filters,logger:s}=n;l1(e);for(let i=0;i<t.length;i++){let o=e.filters[i];if(delete o.error,!!o.enabled)try{At(e,o,s)}catch(a){e.filters[i]={...o,error:a.message}}}pl(e)}function c1(e,n){let{enabled:t,id:s,logger:i}=n;e.filters=e.filters.slice(0).map(o=>({...o,enabled:o.id===s?t??!o.enabled:o.enabled})),Xe(e,{logger:i})}function u1(e,n,t){let s=e.filters.find(i=>i.id===n);e.filters=e.filters.slice(0).filter(i=>i.id!==n),!(s&&!s.enabled)&&Xe(e,{logger:t})}function dl(e,n,t={}){let{filterIndex:s}=t,i=crypto.randomUUID(),o={...n,id:i,enabled:!0};typeof s==\"number\"&&s!==-1?e.filters=[...e.filters.slice(0,s+1),o,...e.filters.slice(s+1)]:e.filters.push(o)}function At(e,n,t){let{name:s,value:i}=n,o=Date.now();re[s].apply(e,i);let a=Date.now()-o;t?.debug(`Filter: ${s} takes ${a} ms`)}export{De as Filters1D,cl as Filters1DManager,re as Filters2D,Cl as Filters2DManager,ne as MultiplicityPatterns,Ho as RangeUtilities,Dn as XYAutoPeaksPickingWindowSizeError,nn as apodizationXReIm,L as apodize,at as autoPhaseCorrection,is as calculateRelativeFrequency,r3 as carbonImpurities,rn as checkIntegralKind,FD as checkMultiplicity,zs as correlationApi,tt as couplingACSPatterns,en as couplingPatterns,me as createApodizationWindowData,xc as default1DApodization,ae as ensureValidSignalKind,$o as fftDirectDimension,ia as fftIndirectDimension,$a as findMultiplet,ar as findPivot,YC as get13CAssignments,rt as get1DErrorFactor,BC as get1HAssignments,Za as get2DErrorFactor,My as getAssignments,Z6 as getBaselineAnchors,S6 as getBaselineZones,go as getBaselineZonesByDietrich,h3 as getDatabase,sC as getFrequency,ln as getPeakDelta,Ne as getRelativeFrequency,xe as getShiftX,rr as isEmptyMolecule,mx as isMolfileNotEmpty,Co as isRangeExists,Ua as isZoneExists,yo as mapIntegrals,bo as mapPeaks,Do as mapRanges,Ga as mapZones,xx as markSolventPeaks,hD as matrixToBoxPlot,SD as matrixToStocsy,FH as normalizeNucleus,uH as optimizeSignals,o3 as parseCT,ZD as peakToXY,Qa as peaksToFID,Ka as peaksToXY,V as predict,HC as predictSpectra,ui as protonImpurities,nt as rangeFromSignal,Nx as rangesToACS,Ix as rangesToTSV,Lx as rangesToXY,ye as reimComplexBackwardLinearPrediction,AH as resurrect,Ht as signalJoinCouplings,$m as signalKindLabelMapping,et as signalKindsToInclude,ut as signalMultiplicityPattern,ss as signals2DToZ,pH as signalsJoin,xH as signalsToFID,SH as signalsToRanges,Ue as signalsToXY,Qn as simulate1D,ir as solventSuppression,Ce as splitPatterns,RD as translateMultiplet,xo as updateIntegralsRelativeValues,y8 as updatePeaksRelativeValues,So as updateRanges,Oo as updateRangesRelativeValues,wH as xBackwardLinearPrediction,Yi as xForwardLinearPrediction,zH as xreimMultipletAnalysis,to as xreimTrim,te as xyAutoPeaksPicking,FO as xyAutoRangesPicking,ji as xyBaselineCalculation,RO as xyCalculateDiffussionCoefficient,EO as xyCalculateT1,sS as xyGetPivot,XO as xyKineticFirstOrder,UO as xyPeaksOptimization,QO as xyPeaksOptimizationByStages,Fa as xyzAutoPhaseCorrection,nl as xyzAutoSignalsPicking,OS as xyzAutoZonesPicking,Cn as xyzPhaseCorrection,PS as xyzZoneIntegration,Ft as xyzZonesIntegration};\n","import { isAnyArray } from 'is-any-array';\nimport { getOutputArray } from \"./getOutputArray.js\";\n/**\n * This function divide the first array by the second array or a constant value to each element of the first array\n * @param array1 - first array\n * @param array2 - second array or number\n * @param options - options\n */\nexport function xDivide(array1, array2, options = {}) {\n    let isConstant = false;\n    let constant = 0;\n    if (isAnyArray(array2)) {\n        if (array1.length !== array2.length) {\n            throw new RangeError('size of array1 and array2 must be identical');\n        }\n    }\n    else {\n        isConstant = true;\n        constant = array2;\n    }\n    const array3 = getOutputArray(options.output, array1.length);\n    if (isConstant) {\n        for (let i = 0; i < array1.length; i++) {\n            array3[i] = array1[i] / constant;\n        }\n    }\n    else {\n        for (let i = 0; i < array1.length; i++) {\n            array3[i] = array1[i] / array2[i];\n        }\n    }\n    return array3;\n}\n//# sourceMappingURL=xDivide.js.map","import { xFindClosestIndex } from \"../x/xFindClosestIndex.js\";\nimport { xMedian } from \"../x/xMedian.js\";\n/**\n * Computes the median of Y values in a sliding window around each target x position.\n * For each value in xValues, the closest index in data.x is found and the median\n * of the surrounding y values (within the window) is returned.\n * @param data - object with x (sorted in increasing order) and y arrays of the same length.\n * @param xValues - array of x positions at which to compute the median.\n * @param options - options for the median computation.\n * @returns A new DataXY with x = xValues and y = computed medians.\n */\nexport function xyMedianYAtXs(data, xValues, options = {}) {\n    const { windowSize = 5, symmetric = false } = options;\n    const { x, y } = data;\n    const halfWindow = Math.floor(windowSize / 2);\n    const lastIndex = y.length - 1;\n    const result = new Float64Array(xValues.length);\n    for (let i = 0; i < xValues.length; i++) {\n        const centerIndex = xFindClosestIndex(x, xValues[i]);\n        let currentHalfWindow = halfWindow;\n        if (symmetric) {\n            if (centerIndex < currentHalfWindow)\n                currentHalfWindow = centerIndex;\n            if (lastIndex - centerIndex < currentHalfWindow) {\n                currentHalfWindow = lastIndex - centerIndex;\n            }\n        }\n        const fromIndex = Math.max(0, centerIndex - currentHalfWindow);\n        const toIndex = Math.min(y.length, centerIndex + currentHalfWindow + 1);\n        result[i] = xMedian(y, { exact: false, fromIndex, toIndex });\n    }\n    return { x: xValues, y: result };\n}\n//# sourceMappingURL=xyMedianYAtXs.js.map","import { getFFT } from \"../utils/fftCache.js\";\nimport { zeroShift } from \"./zeroShift.js\";\n/**\n * Computes the FFT of a complex spectrum.\n * @param data - complex spectrum.\n * @param options - options.\n * @returns FFT of complex spectrum.\n */\nexport function reimFFT(data, options = {}) {\n    const { inverse = false, applyZeroShift = false, inPlace = false } = options;\n    const { re, im } = data;\n    const size = re.length;\n    const csize = size << 1;\n    let complexArray = new Float64Array(csize);\n    for (let i = 0; i < csize; i += 2) {\n        complexArray[i] = re[i >>> 1];\n        complexArray[i + 1] = im[i >>> 1];\n    }\n    const fft = getFFT(size);\n    let output = new Float64Array(csize);\n    if (inverse) {\n        if (applyZeroShift)\n            complexArray = zeroShift(complexArray, true);\n        fft.inverseTransform(output, complexArray);\n    }\n    else {\n        fft.transform(output, complexArray);\n        if (applyZeroShift)\n            output = zeroShift(output);\n    }\n    if (inPlace) {\n        for (let i = 0; i < csize; i += 2) {\n            re[i >>> 1] = output[i];\n            im[i >>> 1] = output[i + 1];\n        }\n        return data;\n    }\n    const newRe = new Float64Array(size);\n    const newIm = new Float64Array(size);\n    for (let i = 0; i < csize; i += 2) {\n        newRe[i >>> 1] = output[i];\n        newIm[i >>> 1] = output[i + 1];\n    }\n    return { re: newRe, im: newIm };\n}\n//# sourceMappingURL=reimFFT.js.map","import { reimZeroFilling } from \"../reim/index.js\";\n/**\n * This function makes a zero filling to re and im part.\n * @param data - object of kind {x:[], re:[], im:[]}\n * @param totalLength - final number of points\n * @returns zero-filled DataXReIm object.\n */\nexport function xreimZeroFilling(data, totalLength) {\n    const { x, re, im } = data;\n    const length = x.length;\n    if (totalLength === 0 || length === totalLength)\n        return data;\n    if (length > totalLength) {\n        return {\n            x: x.slice(0, totalLength),\n            re: re.slice(0, totalLength),\n            im: im.slice(0, totalLength),\n        };\n    }\n    const newX = new Float64Array(totalLength);\n    newX.set(x);\n    const deltaX = (x.at(-1) - x[0]) / (length - 1);\n    for (let i = length; i < totalLength; i++) {\n        newX[i] = newX[i - 1] + deltaX;\n    }\n    return {\n        x: newX,\n        ...reimZeroFilling({ re, im }, totalLength),\n    };\n}\n//# sourceMappingURL=xreimZeroFilling.js.map","import { zeroShift } from \"../reim/zeroShift.js\";\nimport { getFFT } from \"../utils/fftCache.js\";\n/**\n * Apply FFT to each column of a complex matrix, reusing a single FFT instance for\n * all columns to avoid repeated instantiation overhead.\n * All columns must have the same length (all rows must have the same number of columns).\n * @param data - complex matrix with re and im arrays of Float64Array rows\n * @param options - options\n * @returns complex matrix with transformed columns\n */\nexport function reimMatrixFFTByColumns(data, options = {}) {\n    const { re, im } = data;\n    const numRows = re.length;\n    if (numRows === 0)\n        return { re: [], im: [] };\n    const { inverse = false, applyZeroShift = false, inPlace = false } = options;\n    const numColumns = re[0].length;\n    const csize = numRows << 1;\n    // Validate all rows have the same number of columns\n    for (let j = 0; j < numRows; j++) {\n        if (re[j].length !== numColumns || im[j].length !== numColumns) {\n            throw new RangeError(`All rows must have the same length. Expected ${numColumns} but row ${j} has length ${re[j].length}.`);\n        }\n    }\n    if (numColumns === 0) {\n        return { re: new Array(numRows), im: new Array(numRows) };\n    }\n    // Single FFT instance and working buffers reused across all columns\n    const fft = getFFT(numRows);\n    const complexArray = new Float64Array(csize);\n    const output = new Float64Array(csize);\n    const resultRe = new Array(numRows);\n    const resultIm = new Array(numRows);\n    // Initialize result arrays\n    for (let i = 0; i < numRows; i++) {\n        resultRe[i] = inPlace ? re[i] : new Float64Array(numColumns);\n        resultIm[i] = inPlace ? im[i] : new Float64Array(numColumns);\n    }\n    // Process each column\n    for (let col = 0; col < numColumns; col++) {\n        // Extract column data into complex array\n        for (let row = 0; row < numRows; row++) {\n            complexArray[row << 1] = re[row][col];\n            complexArray[(row << 1) + 1] = im[row][col];\n        }\n        const colRe = new Float64Array(numRows);\n        const colIm = new Float64Array(numRows);\n        if (inverse) {\n            const input = applyZeroShift\n                ? zeroShift(complexArray, true)\n                : complexArray;\n            fft.inverseTransform(output, input);\n            for (let i = 0; i < csize; i += 2) {\n                colRe[i >>> 1] = output[i];\n                colIm[i >>> 1] = output[i + 1];\n            }\n        }\n        else {\n            fft.transform(output, complexArray);\n            const source = applyZeroShift ? zeroShift(output) : output;\n            for (let i = 0; i < csize; i += 2) {\n                colRe[i >>> 1] = source[i];\n                colIm[i >>> 1] = source[i + 1];\n            }\n        }\n        // Store transformed column back into result matrix\n        for (let row = 0; row < numRows; row++) {\n            resultRe[row][col] = colRe[row];\n            resultIm[row][col] = colIm[row];\n        }\n    }\n    return { re: resultRe, im: resultIm };\n}\n//# sourceMappingURL=reimMatrixFFTByColumns.js.map","import { xCheck } from \"./xCheck.js\";\nimport { xGetFromToIndex } from \"./xGetFromToIndex.js\";\n/**\n * Computes the index of the maximum of the given values\n * @param array - array of numbers\n * @param  options - options\n * @returns - index\n */\nexport function xMaxIndex(array, options = {}) {\n    xCheck(array);\n    const { fromIndex, toIndex } = xGetFromToIndex(array, options);\n    let maxIndex = fromIndex;\n    for (let i = fromIndex + 1; i <= toIndex; i++) {\n        if (array[i] > array[maxIndex]) {\n            maxIndex = i;\n        }\n    }\n    return maxIndex;\n}\n//# sourceMappingURL=xMaxIndex.js.map","import { zonesNormalize } from \"../zones/index.js\";\nimport { xyCheck } from \"./xyCheck.js\";\n/**\n * Extract zones from a XY data.\n * @param data - object that contains property x (an ordered increasing array) and y (an array).\n * @param options - options.\n * @returns extracted DataXY containing only the points within the specified zones.\n */\nexport function xyExtract(data, options = {}) {\n    xyCheck(data);\n    const { x, y } = data;\n    let { zones } = options;\n    zones = zonesNormalize(zones);\n    if (x === undefined ||\n        y === undefined ||\n        !Array.isArray(zones) ||\n        zones.length === 0) {\n        return data;\n    }\n    const newX = [];\n    const newY = [];\n    let currentZone = zones[0];\n    let position = 0;\n    loop: for (let i = 0; i < x.length; i++) {\n        while (currentZone.to < x[i]) {\n            position++;\n            currentZone = zones[position];\n            if (!currentZone) {\n                i = x.length;\n                break loop;\n            }\n        }\n        if (x[i] >= currentZone.from) {\n            newX.push(x[i]);\n            newY.push(y[i]);\n        }\n    }\n    return { x: newX, y: newY };\n}\n//# sourceMappingURL=xyExtract.js.map","import { xAbsolute } from \"./xAbsolute.js\";\nimport { xMedian } from \"./xMedian.js\";\n/**\n * This function calculates the median after taking the xAbsolute values of the points.\n * @param array - the array for which we want to calculate the absolute value\n * @returns - median\n */\nexport function xAbsoluteMedian(array) {\n    return xMedian(xAbsolute(array));\n}\n//# sourceMappingURL=xAbsoluteMedian.js.map","import { getShape1D } from 'ml-peak-shape-generator';\n/**\n * Append a `shape` property (including `fwhm`) to every peak.\n * @param peaks - Peaks with a `width` property.\n * @param options - Shape options.\n * @returns A peak list where every peak has a `shape` property.\n */\nexport function setShape(peaks, options = {}) {\n    const { shape = { kind: 'gaussian' }, output = structuredClone(peaks) } = options;\n    const shapeInstance = getShape1D(shape);\n    return output.map((peak) => ({\n        ...peak,\n        shape: { ...shape, fwhm: shapeInstance.widthToFWHM(peak.width) },\n    }));\n}\n//# sourceMappingURL=setShape.js.map","import { optimizePeaksWithLogs } from \"./optimizePeaksWithLogs.js\";\n/**\n * Optimize the position (x), max intensity (y), full width at half maximum (fwhm)\n * and the ratio of gaussian contribution (mu) if it's required.\n * @param data - An object containing the x and y data to be fitted.\n * @param peakList - A list of initial parameters to be optimized. e.g. coming from a peak picking [{x, y, width}].\n * @param options - Optimization options.\n * @returns The optimized peaks.\n */\nexport function optimizePeaks(data, peakList, options = {}) {\n    return optimizePeaksWithLogs(data, peakList, options).optimizedPeaks;\n}\n//# sourceMappingURL=optimizePeaks.js.map","import { globalConfig } from \"./core.js\";\n// functions\nexport function assertEqual(val) {\n    return val;\n}\nexport function assertNotEqual(val) {\n    return val;\n}\nexport function toZod() {\n    return (schema) => schema;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n    throw new Error(\"Unexpected value in exhaustive check\");\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n    const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n    const values = Object.entries(entries)\n        .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n        .map(([_, v]) => v);\n    return values;\n}\nexport function joinValues(array, separator = \"|\") {\n    return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n    if (typeof value === \"bigint\")\n        return value.toString();\n    return value;\n}\n// the accessor lives on a shared prototype: an own accessor makes every box a dictionary-mode object (~360 B and a slow load per read against ~100 B and an inlined getter here)\nclass Cached {\n    constructor(getter) {\n        this._getter = getter;\n        this._value = undefined;\n    }\n    get value() {\n        const getter = this._getter;\n        if (getter !== undefined) {\n            this._value = getter();\n            this._getter = undefined;\n        }\n        return this._value;\n    }\n}\nexport function cached(getter) {\n    return new Cached(getter);\n}\nexport function nullish(input) {\n    return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n    const start = source.startsWith(\"^\") ? 1 : 0;\n    const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n    return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n    const ratio = val / step;\n    const roundedRatio = Math.round(ratio);\n    // `val` and `step` each round to a double before the division rounds again, so a true decimal multiple's quotient can sit up to 1.5 of these scaled epsilons from the integer. A 1x tolerance therefore rejected 2.03 as a multiple of 0.07; 4x covers the worst case with margin.\n    const tolerance = 4 * Number.EPSILON * Math.max(Math.abs(ratio), 1);\n    if (Math.abs(ratio - roundedRatio) < tolerance)\n        return 0;\n    return ratio - roundedRatio;\n}\nconst EVALUATING = /* @__PURE__*/ Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n    let value = undefined;\n    Object.defineProperty(object, key, {\n        get() {\n            if (value === EVALUATING) {\n                // Circular reference detected, return undefined to break the cycle\n                return undefined;\n            }\n            if (value === undefined) {\n                value = EVALUATING;\n                value = getter();\n            }\n            return value;\n        },\n        set(v) {\n            Object.defineProperty(object, key, {\n                value: v,\n                // configurable: true,\n            });\n            // object[key] = v;\n        },\n        configurable: true,\n    });\n}\nexport function objectClone(obj) {\n    return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n    Object.defineProperty(target, prop, {\n        value,\n        writable: true,\n        enumerable: true,\n        configurable: true,\n    });\n}\n/**\n * Whichever object a def's `shape` currently answers from: the one the caller passed until the first read, the frozen copy after it.\n *\n * Its keys and descriptors read without invoking anything, which is what lets a discriminated union check its discriminator, and the cycle walk read a shape, without resolving a getter that references the schema being constructed. A def that answers `shape` from an accessor of its own has none.\n */\nexport function rawShape(def) {\n    const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n    return desc?.get ? desc.get.raw : desc?.value;\n}\n// where a builder reads its source's keys and descriptors, resolving only a shape a def answers for itself. A shape resolves by object spread, so only its enumerable keys are ever part of it.\nfunction sourceShape(schema) {\n    return rawShape(schema._zod.def) ?? schema._zod.def.shape;\n}\n// a key whose value is not settled yet, self-caching so every read after the first gets the same one\nfunction deferProp(target, key, getter) {\n    Object.defineProperty(target, key, {\n        get() {\n            const value = getter();\n            assignProp(this, key, value);\n            return value;\n        },\n        enumerable: true,\n        configurable: true,\n    });\n}\n// Writes a settled key. A plain assignment is much cheaper than `defineProperty` and produces the same descriptor, but it runs whatever setter already answers to the key — an accessor this shape deferred, or an inherited one, which `__proto__` has on every object and prototype pollution can add for any name.\nfunction putProp(target, key, value) {\n    if (key in target)\n        assignProp(target, key, value);\n    else\n        target[key] = value;\n}\n/**\n * Copies `keys` of `source`'s shape onto `target`, each value passed through `wrap`.\n *\n * A key the source has resolved is copied through now, so the derived shape states it outright and nothing has to resolve it to learn what it holds. A key the source still defers stays deferred, and reads back through the source's own `shape`, so it resolves once and both shapes get that one schema.\n */\nfunction mirrorShape(target, source, keys, wrap) {\n    const raw = sourceShape(source);\n    for (const key of keys) {\n        const desc = Object.getOwnPropertyDescriptor(raw, key);\n        if (!desc.enumerable)\n            continue;\n        if (desc.get) {\n            deferProp(target, key, () => {\n                const value = source._zod.def.shape[key];\n                return wrap ? wrap(value, key) : value;\n            });\n        }\n        else\n            putProp(target, key, wrap ? wrap(desc.value, key) : desc.value);\n    }\n}\n// same, for a plain shape a caller passed rather than a schema's\nfunction mirrorProps(target, source) {\n    for (const key of Reflect.ownKeys(source)) {\n        const desc = Object.getOwnPropertyDescriptor(source, key);\n        if (!desc.enumerable)\n            continue;\n        if (desc.get)\n            deferProp(target, key, () => source[key]);\n        else\n            putProp(target, key, desc.value);\n    }\n}\nexport function mergeDefs(...defs) {\n    const mergedDescriptors = {};\n    for (const def of defs) {\n        const descriptors = Object.getOwnPropertyDescriptors(def);\n        Object.assign(mergedDescriptors, descriptors);\n    }\n    return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n    return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n    if (!path)\n        return obj;\n    return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n    const keys = Object.keys(promisesObj);\n    const promises = keys.map((key) => promisesObj[key]);\n    return Promise.all(promises).then((results) => {\n        const resolvedObj = {};\n        for (let i = 0; i < keys.length; i++) {\n            resolvedObj[keys[i]] = results[i];\n        }\n        return resolvedObj;\n    });\n}\nexport function randomString(length = 10) {\n    const chars = \"abcdefghijklmnopqrstuvwxyz\";\n    let str = \"\";\n    for (let i = 0; i < length; i++) {\n        str += chars[Math.floor(Math.random() * chars.length)];\n    }\n    return str;\n}\nexport function esc(str) {\n    return JSON.stringify(str);\n}\nexport function slugify(input) {\n    return input\n        .toLowerCase()\n        .trim()\n        .replace(/[^\\w\\s-]/g, \"\")\n        .replace(/[\\s_-]+/g, \"-\")\n        .replace(/^-+|-+$/g, \"\");\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n    return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = /* @__PURE__*/ cached(() => {\n    // Skip the probe under `jitless`: strict CSPs report the caught `new Function` as a `securitypolicyviolation` even though the throw is swallowed.\n    if (globalConfig.jitless) {\n        return false;\n    }\n    // @ts-ignore\n    if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n        return false;\n    }\n    try {\n        const F = Function;\n        new F(\"\");\n        return true;\n    }\n    catch (_) {\n        return false;\n    }\n});\nexport function isPlainObject(o) {\n    if (isObject(o) === false)\n        return false;\n    // modified constructor\n    const ctor = o.constructor;\n    if (ctor === undefined)\n        return true;\n    if (typeof ctor !== \"function\")\n        return true;\n    // modified prototype\n    const prot = ctor.prototype;\n    if (isObject(prot) === false)\n        return false;\n    // ctor doesn't have static `isPrototypeOf`\n    if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n        return false;\n    }\n    return true;\n}\nexport function shallowClone(o) {\n    if (isPlainObject(o))\n        return { ...o };\n    if (Array.isArray(o))\n        return [...o];\n    if (o instanceof Map)\n        return new Map(o);\n    if (o instanceof Set)\n        return new Set(o);\n    return o;\n}\nexport function numKeys(data) {\n    let keyCount = 0;\n    for (const key in data) {\n        if (Object.prototype.hasOwnProperty.call(data, key)) {\n            keyCount++;\n        }\n    }\n    return keyCount;\n}\nexport const getParsedType = (data) => {\n    const t = typeof data;\n    switch (t) {\n        case \"undefined\":\n            return \"undefined\";\n        case \"string\":\n            return \"string\";\n        case \"number\":\n            return Number.isNaN(data) ? \"nan\" : \"number\";\n        case \"boolean\":\n            return \"boolean\";\n        case \"function\":\n            return \"function\";\n        case \"bigint\":\n            return \"bigint\";\n        case \"symbol\":\n            return \"symbol\";\n        case \"object\":\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            if (data === null) {\n                return \"null\";\n            }\n            if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n                return \"promise\";\n            }\n            if (typeof Map !== \"undefined\" && data instanceof Map) {\n                return \"map\";\n            }\n            if (typeof Set !== \"undefined\" && data instanceof Set) {\n                return \"set\";\n            }\n            if (typeof Date !== \"undefined\" && data instanceof Date) {\n                return \"date\";\n            }\n            // @ts-ignore\n            if (typeof File !== \"undefined\" && data instanceof File) {\n                return \"file\";\n            }\n            return \"object\";\n        default:\n            throw new Error(`Unknown data type: ${t}`);\n    }\n};\nexport const propertyKeyTypes = /* @__PURE__*/ new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = /* @__PURE__*/ new Set([\n    \"string\",\n    \"number\",\n    \"bigint\",\n    \"boolean\",\n    \"symbol\",\n    \"undefined\",\n]);\nexport function escapeRegex(str) {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n    const cl = new inst._zod.constr(def ?? inst._zod.def);\n    if (!def || params?.parent)\n        cl._zod.parent = inst;\n    return cl;\n}\nexport function normalizeParams(_params) {\n    const params = _params;\n    if (!params)\n        return {};\n    if (typeof params === \"string\")\n        return { error: () => params };\n    if (params?.message !== undefined) {\n        if (params?.error !== undefined)\n            throw new Error(\"Cannot specify both `message` and `error` params\");\n        params.error = params.message;\n    }\n    delete params.message;\n    if (typeof params.error === \"string\")\n        return { ...params, error: () => params.error };\n    return params;\n}\nexport function createTransparentProxy(getter) {\n    let target;\n    return new Proxy({}, {\n        get(_, prop, receiver) {\n            target ?? (target = getter());\n            return Reflect.get(target, prop, receiver);\n        },\n        set(_, prop, value, receiver) {\n            target ?? (target = getter());\n            return Reflect.set(target, prop, value, receiver);\n        },\n        has(_, prop) {\n            target ?? (target = getter());\n            return Reflect.has(target, prop);\n        },\n        deleteProperty(_, prop) {\n            target ?? (target = getter());\n            return Reflect.deleteProperty(target, prop);\n        },\n        ownKeys(_) {\n            target ?? (target = getter());\n            return Reflect.ownKeys(target);\n        },\n        getOwnPropertyDescriptor(_, prop) {\n            target ?? (target = getter());\n            return Reflect.getOwnPropertyDescriptor(target, prop);\n        },\n        defineProperty(_, prop, descriptor) {\n            target ?? (target = getter());\n            return Reflect.defineProperty(target, prop, descriptor);\n        },\n    });\n}\nexport function stringifyPrimitive(value) {\n    if (typeof value === \"bigint\")\n        return value.toString() + \"n\";\n    if (typeof value === \"string\")\n        return `\"${value}\"`;\n    return `${value}`;\n}\nexport function optionalKeys(shape) {\n    return Object.keys(shape).filter((k) => {\n        return shape[k]._zod.optin !== undefined && shape[k]._zod.optout === \"optional\";\n    });\n}\n// Wrapped in a `@__PURE__` IIFE: esbuild never tree-shakes a top-level initializer that contains a member access on `Number`, so the bare object literal survived into every bundle.\nexport const NUMBER_FORMAT_RANGES = /*@__PURE__*/ (() => ({\n    safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n    int32: [-2147483648, 2147483647],\n    uint32: [0, 4294967295],\n    float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n    float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n}))();\nexport const BIGINT_FORMAT_RANGES = {\n    int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n    uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n    const currDef = schema._zod.def;\n    const checks = currDef.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        throw new Error(\".pick() cannot be used on object schemas containing refinements\");\n    }\n    const newShape = {};\n    mirrorShape(newShape, schema, maskedKeys(schema, mask));\n    return clone(schema, mergeDefs(currDef, { shape: newShape, checks: [] }));\n}\n// the mask keys that select something, checked against the source's shape without resolving it\nfunction maskedKeys(schema, mask) {\n    const raw = sourceShape(schema);\n    const keys = [];\n    // `for...in` skips symbols, so a symbol in the mask would select nothing\n    for (const key of Reflect.ownKeys(mask)) {\n        if (!Object.getOwnPropertyDescriptor(raw, key)?.enumerable) {\n            throw new Error(`Unrecognized key: \"${String(key)}\"`);\n        }\n        if (mask[key])\n            keys.push(key);\n    }\n    return keys;\n}\nexport function omit(schema, mask) {\n    const currDef = schema._zod.def;\n    const checks = currDef.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        throw new Error(\".omit() cannot be used on object schemas containing refinements\");\n    }\n    const omitted = new Set(maskedKeys(schema, mask));\n    const newShape = {};\n    mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)).filter((key) => !omitted.has(key)));\n    return clone(schema, mergeDefs(currDef, { shape: newShape, checks: [] }));\n}\nexport function extend(schema, shape) {\n    if (!isPlainObject(shape)) {\n        throw new Error(\"Invalid input to extend: expected a plain object\");\n    }\n    const checks = schema._zod.def.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        // Only throw if new shape overlaps with existing shape. Use getOwnPropertyDescriptor to check key existence without accessing values\n        const existingShape = sourceShape(schema);\n        for (const key of Reflect.ownKeys(shape)) {\n            if (Object.getOwnPropertyDescriptor(existingShape, key) !== undefined) {\n                throw new Error(\"Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.\");\n            }\n        }\n    }\n    return clone(schema, mergeDefs(schema._zod.def, { shape: extended(schema, shape) }));\n}\n// the source's keys, then the caller's overlaid on top\nfunction extended(schema, shape) {\n    const newShape = {};\n    mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)));\n    mirrorProps(newShape, shape);\n    return newShape;\n}\nexport function safeExtend(schema, shape) {\n    if (!isPlainObject(shape)) {\n        throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n    }\n    return clone(schema, mergeDefs(schema._zod.def, { shape: extended(schema, shape) }));\n}\nexport function merge(a, b) {\n    if (!b?._zod?.def) {\n        throw new Error(\"Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.\");\n    }\n    if (a._zod.def.checks?.length) {\n        throw new Error(\".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.\");\n    }\n    const newShape = {};\n    mirrorShape(newShape, a, Reflect.ownKeys(sourceShape(a)));\n    mirrorShape(newShape, b, Reflect.ownKeys(sourceShape(b)));\n    const def = mergeDefs(a._zod.def, {\n        shape: newShape,\n        get catchall() {\n            return b._zod.def.catchall;\n        },\n        checks: b._zod.def.checks ?? [],\n    });\n    return clone(a, def);\n}\nexport function partial(Class, schema, mask, name = \"partial\") {\n    const currDef = schema._zod.def;\n    const checks = currDef.checks;\n    const hasChecks = checks && checks.length > 0;\n    if (hasChecks) {\n        throw new Error(`.${name}() cannot be used on object schemas containing refinements`);\n    }\n    const selected = mask ? new Set(maskedKeys(schema, mask)) : undefined;\n    const newShape = {};\n    mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)), Class &&\n        ((value, key) => (selected && !selected.has(key) ? value : new Class({ type: \"optional\", innerType: value }))));\n    return clone(schema, mergeDefs(schema._zod.def, { shape: newShape, checks: [] }));\n}\nexport function required(Class, schema, mask) {\n    const selected = mask ? new Set(maskedKeys(schema, mask)) : undefined;\n    const newShape = {};\n    mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)), (value, key) => \n    // overwrite with non-optional\n    selected && !selected.has(key) ? value : new Class({ type: \"nonoptional\", innerType: value }));\n    return clone(schema, mergeDefs(schema._zod.def, { shape: newShape }));\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n    if (x.aborted === true)\n        return true;\n    for (let i = startIndex; i < x.issues.length; i++) {\n        if (x.issues[i]?.continue !== true) {\n            return true;\n        }\n    }\n    return false;\n}\n// Checks for explicit abort (continue === false), as opposed to implicit abort (continue === undefined). Used to respect `abort: true` in .refine() even for checks that have a `when` function.\nexport function explicitlyAborted(x, startIndex = 0) {\n    if (x.aborted === true)\n        return true;\n    for (let i = startIndex; i < x.issues.length; i++) {\n        if (x.issues[i]?.continue === false) {\n            return true;\n        }\n    }\n    return false;\n}\nexport function prefixIssues(path, issues) {\n    return issues.map((iss) => {\n        var _a;\n        (_a = iss).path ?? (_a.path = []);\n        iss.path.unshift(path);\n        return iss;\n    });\n}\nexport function unwrapMessage(message) {\n    return typeof message === \"string\" ? message : message?.message;\n}\n/* A check holds no link back to the schema it is attached to — the same check instance is shared by every clone of that schema — so the owner is stamped onto the issues a check just raised, at the only point where both are in scope. Runs on the failure path only; `start` is the issue count from before the check ran. */\nexport function attachSchema(issues, start, inst) {\n    var _a;\n    for (let i = start; i < issues.length; i++) {\n        (_a = issues[i]).schema ?? (_a.schema = inst);\n    }\n}\nexport function finalizeIssue(iss, ctx, config) {\n    var _a;\n    // A schema that raised an issue itself owns it outright, and outranks any stamp an enclosing check left in `attachSchema`. String formats and z.custom() are schema and check at once, so when they act as a check they defer to that stamp instead.\n    const traits = iss.inst?._zod?.traits;\n    if (traits?.has(\"$ZodType\")) {\n        if (traits.has(\"$ZodCheck\"))\n            (_a = iss).schema ?? (_a.schema = iss.inst);\n        else\n            iss.schema = iss.inst;\n    }\n    // Decreasing specificity, first map to return a message wins. `inst` is whatever raised the issue, so a check's own map outranks the owning schema's.\n    const schemaError = iss.schema !== iss.inst ? iss.schema?._zod.def?.error : undefined;\n    const message = iss.message\n        ? iss.message\n        : (unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n            unwrapMessage(schemaError?.(iss)) ??\n            unwrapMessage(ctx?.error?.(iss)) ??\n            unwrapMessage(config.customError?.(iss)) ??\n            unwrapMessage(config.localeError?.(iss)) ??\n            \"Invalid input\");\n    // an explicit own-key copy beats object rest with excluded keys, which v8 routes through a generic runtime call; Object.keys rather than for-in so an issue pushed with a prototype does not leak inherited keys, and an own __proto__ key is dropped rather than assigned through the setter\n    const full = {};\n    for (const k of Object.keys(iss)) {\n        if (k === \"inst\" || k === \"schema\" || k === \"continue\" || k === \"input\" || k === \"__proto__\")\n            continue;\n        full[k] = iss[k];\n    }\n    full.path ?? (full.path = []);\n    full.message = message;\n    if (ctx?.reportInput) {\n        full.input = iss.input;\n    }\n    return full;\n}\nexport function getSizableOrigin(input) {\n    if (input instanceof Set)\n        return \"set\";\n    if (input instanceof Map)\n        return \"map\";\n    // @ts-ignore\n    if (input instanceof File)\n        return \"file\";\n    return \"unknown\";\n}\nconst highSurrogate = /[\\uD800-\\uDBFF]/;\n// Code points in `str`: a surrogate pair counts once, a lone surrogate as itself. Hand-rolled because the string iterator allocates and runs ~250x slower on this path; the regex probe exits ~50x quicker for a string with no astral characters.\nexport function codePointLength(str) {\n    const units = str.length;\n    if (!highSurrogate.test(str))\n        return units;\n    let count = units;\n    for (let i = 0; i < units - 1; i++) {\n        if ((str.charCodeAt(i) & 0xfc00) === 0xd800 && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n            count--;\n            i++;\n        }\n    }\n    return count;\n}\nexport function getLengthableOrigin(input) {\n    if (Array.isArray(input))\n        return \"array\";\n    if (typeof input === \"string\")\n        return \"string\";\n    return \"unknown\";\n}\nexport function parsedType(data) {\n    const t = typeof data;\n    switch (t) {\n        case \"number\": {\n            return Number.isNaN(data) ? \"nan\" : \"number\";\n        }\n        case \"object\": {\n            if (data === null) {\n                return \"null\";\n            }\n            if (Array.isArray(data)) {\n                return \"array\";\n            }\n            const obj = data;\n            if (obj && Object.getPrototypeOf(obj) !== Object.prototype && \"constructor\" in obj && obj.constructor) {\n                return obj.constructor.name;\n            }\n        }\n    }\n    return t;\n}\nexport function issue(...args) {\n    const [iss, input, inst] = args;\n    if (typeof iss === \"string\") {\n        return {\n            message: iss,\n            code: \"custom\",\n            input,\n            inst,\n        };\n    }\n    return { ...iss };\n}\nexport function cleanEnum(obj) {\n    return Object.entries(obj)\n        .filter(([k, _]) => {\n        // return true if NaN, meaning it's not a number, thus a string key\n        return Number.isNaN(Number.parseInt(k, 10));\n    })\n        .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n    const binaryString = atob(base64);\n    const bytes = new Uint8Array(binaryString.length);\n    for (let i = 0; i < binaryString.length; i++) {\n        bytes[i] = binaryString.charCodeAt(i);\n    }\n    return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n    let binaryString = \"\";\n    for (let i = 0; i < bytes.length; i++) {\n        binaryString += String.fromCharCode(bytes[i]);\n    }\n    return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n    const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n    const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n    return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n    return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n    const cleanHex = hex.replace(/^0x/, \"\");\n    if (cleanHex.length % 2 !== 0) {\n        throw new Error(\"Invalid hex string length\");\n    }\n    const bytes = new Uint8Array(cleanHex.length / 2);\n    for (let i = 0; i < cleanHex.length; i += 2) {\n        bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n    }\n    return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n    return Array.from(bytes)\n        .map((b) => b.toString(16).padStart(2, \"0\"))\n        .join(\"\");\n}\n// instanceof\nexport class Class {\n    constructor(..._args) { }\n}\n//////////    PROTOTYPE INSTALLERS     //////////\n//\n// Members live on the prototype and materialize per instance on first read, which keeps own-property count under the step where V8 stops using inline slots. Changing anything here means re-measuring runtime, memory and bundle size together — see \"The three axes\" in AGENTS.md.\n/**\n * Installs a trait's members on its prototype. Each value builds that member for the instance on first read; the built value shadows the accessor as an own property, so a detached `const { parse } = schema` keeps working.\n *\n * Call this from a `proto` initializer, which runs once per prototype — never per instance.\n */\nexport function members(proto, table) {\n    for (const key in table) {\n        const desc = Object.getOwnPropertyDescriptor(table, key);\n        // a getter installs as written, so it stays live: `description` reads through to the registry on every access. not enumerable: an object literal's is, and a prototype member never was\n        if (desc.get)\n            Object.defineProperty(proto, key, { ...desc, enumerable: false });\n        // a method materializes bound on first read, which is what keeps a detached member working: `const opt = schema.optional; opt()`\n        else\n            defineBound(proto, key, desc.value);\n    }\n}\n/** Shadows a prototype member with an own value, so a getter that builds from the instance runs once. */\nexport function own(inst, key, value, enumerable = true) {\n    Object.defineProperty(inst, key, { configurable: true, writable: true, enumerable, value });\n    return value;\n}\n/** Like {@link own}, for a member that was never an own data property and has to stay out of `Object.keys`. */\nexport function hide(inst, key, value) {\n    return own(inst, key, value, false);\n}\n/** Adds members a table derives from the instance: each builds on first read and shadows as own data, and assignment shadows the same way, as when these were own properties. */\nexport /*@__NO_SIDE_EFFECTS__*/ function derived(computes, table) {\n    for (const key in computes) {\n        const compute = computes[key];\n        // an object literal's accessor is configurable and enumerable, and `members` copies the descriptor as written\n        Object.defineProperty(table, key, {\n            configurable: true,\n            enumerable: true,\n            get() {\n                return own(this, key, compute(this));\n            },\n            set(value) {\n                own(this, key, value);\n            },\n        });\n    }\n    return table;\n}\nfunction defineBound(proto, key, fn) {\n    Object.defineProperty(proto, key, {\n        configurable: true,\n        get() {\n            // vitest's spyOn calls a prototype getter bare to find the function it wraps, so a nullish receiver answers the raw method\n            return this == null ? fn : own(this, key, fn.bind(this));\n        },\n        set(value) {\n            own(this, key, value);\n        },\n    });\n}\n/** Returns the prototype to install on, or `undefined` if this group is already installed on it. */\nfunction claim(inst, sentinel) {\n    const proto = Object.getPrototypeOf(inst);\n    // Runs on every construction, so `in` rather than the costlier `hasOwnProperty.call`. Sentinels are keys the group itself defines.\n    return sentinel in proto ? undefined : proto;\n}\n// The internals whose init chain is installing. A second call for the same one is a derived constructor overriding its base, so it must not construct another schema in between or the override is dropped.\nlet installing;\n// Set while a getter is running, so a value that resolved through a recursion break is not memoized. One shared descriptor shadows the key for the duration, which costs no per-key allocation.\nlet broke = false;\nconst breaker = {\n    configurable: true,\n    get() {\n        broke = true;\n        return undefined;\n    },\n};\n/**\n * Installs a lazily-derived internal on the `_zod` prototype of `inst`'s\n * constructor, computed from the internals object itself and cached there on\n * first read. One accessor per constructor rather than one per instance.\n */\nexport function defineLazyInternal(inst, key, compute) {\n    const proto = Object.getPrototypeOf(inst._zod);\n    if (key in proto && installing !== inst._zod) {\n        // A repeat construction: everything is installed already. Cleared here so the reference is not held past the first construction of every type.\n        installing = undefined;\n        return;\n    }\n    installing = inst._zod;\n    Object.defineProperty(proto, key, {\n        configurable: true,\n        get() {\n            // Shadowed before computing so a re-entrant read from a recursive schema resolves to undefined instead of running the getter again.\n            Object.defineProperty(this, key, breaker);\n            const outer = broke;\n            broke = false;\n            try {\n                const value = compute(this);\n                // A result that resolved through a recursion break is recomputed once the graph is complete; everything else memoizes, undefined included.\n                if (broke)\n                    delete this[key];\n                else\n                    Object.defineProperty(this, key, { configurable: true, writable: true, value });\n                broke = broke || outer;\n                return value;\n            }\n            catch (err) {\n                // A compute that threw memoizes nothing, so a later read runs it again and fails the same way. The shadow goes with it, since leaving it installed would answer undefined for every later read.\n                delete this[key];\n                broke = broke || outer;\n                throw err;\n            }\n        },\n        set(value) {\n            Object.defineProperty(this, key, { configurable: true, writable: true, value });\n        },\n    });\n}\n/**\n * Installs `key` on `inst`'s prototype, computed by `make` on first read and cached there as an own\n * data property. One accessor per constructor rather than one per instance, because an own accessor\n * puts every instance after the first into v8 dictionary mode. The key doubles as the sentinel.\n */\nexport function installLazyProp(inst, key, make, enumerable) {\n    const proto = claim(inst, key);\n    if (!proto)\n        return;\n    Object.defineProperty(proto, key, {\n        configurable: true,\n        get() {\n            // Shadowed before computing, so a re-entrant read from a self-referential shape resolves to undefined instead of running the getter again. A data property rather than an accessor: an own accessor is the dictionary-mode transition this exists to avoid.\n            const desc = { configurable: true, writable: true, enumerable, value: undefined };\n            Object.defineProperty(this, key, desc);\n            // a compute that throws leaves the shadow behind, so later reads answer undefined instead of re-throwing; `defineLazy` did the same, and `defineLazyInternal`'s delete-on-catch would cost bytes in every bundle for a case only a throwing user getter reaches\n            desc.value = make(this);\n            Object.defineProperty(this, key, desc);\n            return desc.value;\n        },\n        set(value) {\n            Object.defineProperty(this, key, { configurable: true, writable: true, enumerable, value });\n        },\n    });\n}\n/** Marks the thunk `_catch` synthesises for a constant catch value. `Function.length` cannot tell that thunk from a user callback — rest and defaulted parameters both report arity 0 — and a user callback reads `ctx.error`, whose issues only finalize correctly against the caller's per-parse error map. Provenance can say what arity cannot. A plain string key rather than `Symbol.for`, whose call at module scope no bundler can prove pure — the same shape that anchored `urlCanParse` into every build. */\nexport const CONSTANT_CATCH = \"~constantCatch\";\n/** Wraps a constant catch value in a thunk tagged with {@link CONSTANT_CATCH}. */\nexport function constantCatch(value) {\n    const fn = () => value;\n    fn[CONSTANT_CATCH] = true;\n    return fn;\n}\n","var _a;\nimport { members as installMembers } from \"./util.js\";\n/** A special constant with type `never` */\nexport const NEVER = /*@__PURE__*/ Object.freeze({\n    status: \"aborted\",\n});\n/* Shared descriptor for installing `_zod`; defineProperty reads it\n * synchronously, so reusing one object avoids a per-instance allocation. */\nconst _zodDesc = { value: undefined, enumerable: false };\n// null where suppressing the capture would be unrecoverable: `parse()` puts the frames back with `captureStackTrace`, so without it the throw would lose its stack. also latched to null once `stackTraceLimit` proves unassignable, which a realm can do at any point by hardening Error\nlet _E = \"captureStackTrace\" in Error ? Error : null;\n// v8 captures a stack trace inside the Error constructor, which dominates a failed parse; costs only the frames, and parse() restores those. the constructor must RUN: Object.create is cheaper and passes instanceof, but Error.isError and util.types.isNativeError check an internal slot\nfunction newError(Definition) {\n    const E = _E;\n    if (E) {\n        const saved = E.stackTraceLimit;\n        if (typeof saved === \"number\") {\n            try {\n                E.stackTraceLimit = 0;\n            }\n            catch {\n                _E = null;\n                return new Definition();\n            }\n            try {\n                return new Definition();\n            }\n            finally {\n                E.stackTraceLimit = saved;\n            }\n        }\n    }\n    return new Definition();\n}\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, \n/** This trait's members, installed once on every prototype that composes it. They cannot be declared in the initializer above: that runs per instance, and the prototype is shared. */\nproto, params) {\n    // Prototype for this constructor's `_zod` internals. Lazily-derived fields (`values`, `pattern`, `optin`, …) install here once rather than as an accessor on every instance.\n    const zodProto = {};\n    // Assigning the fields in the constructor body is what gives instances in-object slots; building the object literally and reparenting it costs a second allocation and a generic property copy.\n    function Internals(def) {\n        this.def = def;\n        this.constr = _;\n        this.traits = new Set();\n    }\n    Internals.prototype = zodProto;\n    const protoMembers = proto;\n    // One trait's members land on every prototype whose chain composes it, so the answer is per prototype rather than per trait.\n    const initialized = protoMembers && new WeakSet();\n    function init(inst, def) {\n        if (!inst._zod) {\n            _zodDesc.value = new Internals(def);\n            try {\n                Object.defineProperty(inst, \"_zod\", _zodDesc);\n            }\n            finally {\n                // Cleared even on throw, so the shared descriptor never leaks one instance's internals into the next.\n                _zodDesc.value = undefined;\n            }\n        }\n        else if (inst._zod.traits.has(name)) {\n            return;\n        }\n        inst._zod.traits.add(name);\n        initializer(inst, def);\n        if (initialized) {\n            // `super(def)` from a user subclass gives `this` a prototype the subclass owns, and installing there would overwrite whatever the subclass declared. `constr` built the instance, so its prototype is the one below the subclass's that should carry the members. A receiver whose chain never reaches that prototype installs on its own, which for a plain object handed straight to `init` means `Object.prototype` — unchanged from before.\n            const own = Object.getPrototypeOf(inst);\n            const ctorProto = inst._zod.constr.prototype;\n            let up = own;\n            while (up && up !== ctorProto)\n                up = Object.getPrototypeOf(up);\n            const target = up ?? own;\n            if (!initialized.has(target)) {\n                initialized.add(target);\n                installMembers(target, protoMembers);\n            }\n        }\n        // support prototype modifications; for-in avoids the array allocation of Object.keys on the (usually empty) prototype\n        const proto = _.prototype;\n        for (const k in proto) {\n            if (!Object.prototype.hasOwnProperty.call(proto, k))\n                continue;\n            if (!(k in inst)) {\n                inst[k] = proto[k].bind(inst);\n            }\n        }\n    }\n    // doesn't work if Parent has a constructor with arguments\n    const Parent = params?.Parent ?? Object;\n    class Definition extends Parent {\n    }\n    Object.defineProperty(Definition, \"name\", { value: name });\n    function _(def) {\n        const inst = params?.Parent ? newError(Definition) : this;\n        init(inst, def);\n        const deferred = inst._zod.deferred;\n        if (deferred) {\n            for (const fn of deferred) {\n                fn();\n            }\n            // Released: initializers run once, and the list would otherwise be retained for the schema's lifetime.\n            inst._zod.deferred = undefined;\n        }\n        // Global post-processor hook. Internal: installed by `import \"zod/compile\"` to enable AOT compilation for every constructed schema. Runs last, once the instance is fully built, because it hands the instance to compile(). The post-processor is expected to be reentrancy-guarded by its own implementation.\n        const pp = globalThis.__zod_globalConfig?.postProcessor;\n        if (pp)\n            pp(inst);\n        return inst;\n    }\n    Object.defineProperty(_, \"init\", { value: init });\n    Object.defineProperty(_, Symbol.hasInstance, {\n        value: (inst) => {\n            if (params?.Parent && inst instanceof params.Parent)\n                return true;\n            return inst?._zod?.traits?.has(name);\n        },\n    });\n    Object.defineProperty(_, \"name\", { value: name });\n    return _;\n}\n//////////////////////////////   UTILITIES   ///////////////////////////////////////\nexport const $brand = /*@__PURE__*/ Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n    constructor() {\n        super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n    }\n}\nexport class $ZodEncodeError extends Error {\n    constructor(name) {\n        super(`Encountered unidirectional transform during encode: ${name}`);\n        this.name = \"ZodEncodeError\";\n    }\n}\n(_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {});\nexport const globalConfig = globalThis.__zod_globalConfig;\nexport function config(newConfig) {\n    if (newConfig)\n        Object.assign(globalConfig, newConfig);\n    return globalConfig;\n}\n","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\n/* Computing the message eagerly is expensive (pretty-printed JSON of all\n * issues), so defer it until first read. The accessor functions and\n * descriptors are shared across instances to keep error construction\n * cheap; the computed message is cached on the internals object. The\n * setter preserves plain assignment semantics for consumers that\n * overwrite `message`. */\nfunction _getMessage() {\n    const internals = this._zod;\n    internals.message ?? (internals.message = JSON.stringify(internals.def, util.jsonStringifyReplacer, 2));\n    return internals.message;\n}\nfunction _setMessage(value) {\n    this._zod.message = value;\n}\nconst _messageDesc = {\n    get: _getMessage,\n    set: _setMessage,\n    enumerable: true,\n    configurable: true,\n};\nconst _issuesDesc = { value: undefined, enumerable: false };\n/* Prototypes that already carry the lazy `toString`. Seeded with the\n * intrinsics so that `init` on a foreign object — it accepts any object —\n * can never install an accessor onto a prototype we do not own. */\nconst _installedToString = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]);\nconst initializer = (inst, def) => {\n    inst.name = \"$ZodError\";\n    // `_zod` is already non-enumerable: $constructor's init defined it with this same descriptor\n    _issuesDesc.value = def;\n    Object.defineProperty(inst, \"issues\", _issuesDesc);\n    // Clear the shared slot; a retained `value` pins the last error's issues.\n    _issuesDesc.value = undefined;\n    Object.defineProperty(inst, \"message\", _messageDesc);\n    /* `toString` lives as a non-enumerable lazy getter on the shared\n     * prototype; on first access it caches a per-instance closure so\n     * detached usage still works. */\n    const proto = Object.getPrototypeOf(inst);\n    if (!_installedToString.has(proto)) {\n        _installedToString.add(proto);\n        Object.defineProperty(proto, \"toString\", {\n            configurable: true,\n            enumerable: false,\n            get() {\n                const value = () => this.message;\n                Object.defineProperty(this, \"toString\", { value, configurable: true, writable: true });\n                return value;\n            },\n            set(value) {\n                Object.defineProperty(this, \"toString\", { value, configurable: true, writable: true });\n            },\n        });\n    }\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, undefined, {\n    Parent: Error,\n});\n/** Get-or-create `obj[key]` as an own data property. A path segment naming an inherited member\n * (\"toString\", \"constructor\") would otherwise read through to the prototype, and assigning\n * \"__proto__\" would hit the setter instead of creating a key. */\nfunction node(obj, key, make) {\n    if (!Object.prototype.hasOwnProperty.call(obj, key)) {\n        if (key === \"__proto__\") {\n            Object.defineProperty(obj, key, { value: make(), writable: true, enumerable: true, configurable: true });\n        }\n        else {\n            obj[key] = make();\n        }\n    }\n    return obj[key];\n}\nexport function flattenError(error, mapper = (issue) => issue.message) {\n    const fieldErrors = {};\n    const formErrors = [];\n    for (const sub of error.issues) {\n        if (sub.path.length > 0) {\n            node(fieldErrors, sub.path[0], () => []).push(mapper(sub));\n        }\n        else {\n            formErrors.push(mapper(sub));\n        }\n    }\n    return { formErrors, fieldErrors };\n}\nexport function formatError(error, mapper = (issue) => issue.message) {\n    const fieldErrors = { _errors: [] };\n    const processError = (error, path = []) => {\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path]));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues }, [...path, ...issue.path]);\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues }, [...path, ...issue.path]);\n            }\n            else {\n                const fullpath = [...path, ...issue.path];\n                if (fullpath.length === 0) {\n                    fieldErrors._errors.push(mapper(issue));\n                }\n                else {\n                    let curr = fieldErrors;\n                    let i = 0;\n                    while (i < fullpath.length) {\n                        const el = fullpath[i];\n                        const terminal = i === fullpath.length - 1;\n                        // `_errors` is reserved by this legacy format, so merge a matching path segment into the current node instead of treating its array as a child.\n                        if (el === \"_errors\") {\n                            if (terminal)\n                                curr._errors.push(mapper(issue));\n                            i++;\n                            continue;\n                        }\n                        // A path element may collide with an inherited property name such as\n                        // \"__proto__\" or \"constructor\". Truthiness checks read the prototype\n                        // (so no node is created, then ._errors.push throws), and bracket\n                        // assignment of \"__proto__\" hits the setter instead of creating an\n                        // own key. Guard the read with hasOwnProperty and create the node\n                        // with defineProperty so any path element becomes a real own key.\n                        if (!Object.prototype.hasOwnProperty.call(curr, el)) {\n                            Object.defineProperty(curr, el, {\n                                value: { _errors: [] },\n                                enumerable: true,\n                                writable: true,\n                                configurable: true,\n                            });\n                        }\n                        const node = curr[el];\n                        if (terminal) {\n                            node._errors.push(mapper(issue));\n                        }\n                        curr = node;\n                        i++;\n                    }\n                }\n            }\n        }\n    };\n    processError(error);\n    return fieldErrors;\n}\nexport function treeifyError(error, mapper = (issue) => issue.message) {\n    const result = { errors: [] };\n    const processError = (error, path = []) => {\n        var _a;\n        for (const issue of error.issues) {\n            if (issue.code === \"invalid_union\" && issue.errors.length) {\n                // regular union error\n                issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path]));\n            }\n            else if (issue.code === \"invalid_key\") {\n                processError({ issues: issue.issues }, [...path, ...issue.path]);\n            }\n            else if (issue.code === \"invalid_element\") {\n                processError({ issues: issue.issues }, [...path, ...issue.path]);\n            }\n            else {\n                const fullpath = [...path, ...issue.path];\n                if (fullpath.length === 0) {\n                    result.errors.push(mapper(issue));\n                    continue;\n                }\n                let curr = result;\n                let i = 0;\n                while (i < fullpath.length) {\n                    const el = fullpath[i];\n                    const terminal = i === fullpath.length - 1;\n                    if (typeof el === \"string\") {\n                        curr.properties ?? (curr.properties = {});\n                        // el may collide with an inherited property name (\"__proto__\",\n                        // \"constructor\", ...); ??= reads the prototype so the node is never\n                        // created and curr.errors.push throws. Guard with hasOwnProperty and\n                        // create the node with defineProperty so \"__proto__\" becomes a real\n                        // own key rather than invoking the prototype setter.\n                        if (!Object.prototype.hasOwnProperty.call(curr.properties, el)) {\n                            Object.defineProperty(curr.properties, el, {\n                                value: { errors: [] },\n                                enumerable: true,\n                                writable: true,\n                                configurable: true,\n                            });\n                        }\n                        curr = curr.properties[el];\n                    }\n                    else {\n                        curr.items ?? (curr.items = []);\n                        (_a = curr.items)[el] ?? (_a[el] = { errors: [] });\n                        curr = curr.items[el];\n                    }\n                    if (terminal) {\n                        curr.errors.push(mapper(issue));\n                    }\n                    i++;\n                }\n            }\n        }\n    };\n    processError(error);\n    return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n *   issues: [\n *     {\n *       expected: 'string',\n *       code: 'invalid_type',\n *       path: [ 'username' ],\n *       message: 'Invalid input: expected string'\n *     },\n *     {\n *       expected: 'number',\n *       code: 'invalid_type',\n *       path: [ 'favoriteNumbers', 1 ],\n *       message: 'Invalid input: expected number'\n *     }\n *   ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n *   ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n *   ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n    const segs = [];\n    const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n    for (const seg of path) {\n        if (typeof seg === \"number\")\n            segs.push(`[${seg}]`);\n        else if (typeof seg === \"symbol\")\n            segs.push(`[${JSON.stringify(String(seg))}]`);\n        else if (/[^\\w$]/.test(seg))\n            segs.push(`[${JSON.stringify(seg)}]`);\n        else {\n            if (segs.length)\n                segs.push(\".\");\n            segs.push(seg);\n        }\n    }\n    return segs.join(\"\");\n}\nexport function prettifyError(error) {\n    const lines = [];\n    // sort by path length\n    const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n    // Process each issue\n    for (const issue of issues) {\n        lines.push(`✖ ${issue.message}`);\n        if (issue.path?.length)\n            lines.push(`  → at ${toDotPath(issue.path)}`);\n    }\n    // Convert Map to formatted string\n    return lines.join(\"\\n\");\n}\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\n// Always both keys, so the `_params` read site in `_parse` sees one object shape rather than two.\nfunction finalizeParams(callee, params) {\n    return { callee: params?.callee ?? callee, Err: params?.Err };\n}\nexport const _parse = (_Err) => {\n    const fn = (schema, value, _ctx, _params) => {\n        const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n        const result = schema._zod.run({ value, issues: [] }, ctx);\n        if (result instanceof Promise) {\n            throw new core.$ZodAsyncError();\n        }\n        if (result.issues.length) {\n            const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n            util.captureStackTrace(e, _params?.callee ?? fn);\n            throw e;\n        }\n        return result.value;\n    };\n    return fn;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => {\n    const fn = async (schema, value, _ctx, params) => {\n        const ctx = _ctx ? { ..._ctx, async: true } : { async: true };\n        let result = schema._zod.run({ value, issues: [] }, ctx);\n        if (result instanceof Promise)\n            result = await result;\n        if (result.issues.length) {\n            const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n            util.captureStackTrace(e, params?.callee ?? fn);\n            throw e;\n        }\n        return result.value;\n    };\n    return fn;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n    const result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    return result.issues.length ? failure(_Err, result.issues, ctx) : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\n// the error is built on the first read of `error`: finalizing the issues and constructing the instance is most of a failing parse, and a caller that only branches on `success` never pays it. a getter in the literal keeps this small; the alternative, one shared accessor descriptor plus a hidden state slot, reads ~15% faster but costs ~75 B gzipped in every bundle\nfunction failure(Err, issues, ctx) {\n    let error;\n    return {\n        success: false,\n        get error() {\n            if (!error) {\n                error = new Err(issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n                // finalizeIssue drops `input`, so the built error holds nothing; keeping the raw issues past this point pins the parsed value for the life of the result\n                issues = undefined;\n                ctx = undefined;\n            }\n            return error;\n        },\n        set error(e) {\n            error = e;\n            // a replacement makes the getter's branch unreachable, so the captures have to go here too\n            issues = undefined;\n            ctx = undefined;\n        },\n    };\n}\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, async: true } : { async: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    return result.issues.length ? failure(_Err, result.issues, ctx) : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n// registry mirrors of the compiler's sentinels, so this module never imports the compiler\nconst COMPILE_INVALID = /* @__PURE__ */ Symbol.for(\"zod.compile.invalid\");\nconst COMPILE_FALLBACK = /* @__PURE__ */ Symbol.for(\"zod.compile.fallback\");\n// Deliberately tiny, because v8 will not inline a body carrying the fallback's object literals and throw. Everything that is not the compiled happy path lives in validateFallback, and that split is worth ~35% on a compiled schema.\nexport const validate = ((schema, value, _ctx) => {\n    const validator = schema._zod.bag.validator;\n    if (validator !== undefined) {\n        if (validator(value) !== COMPILE_INVALID)\n            return true;\n        // a definite sentinel means the runtime would reject, so skip the re-parse; a ctx can still change the answer\n        if (validator.definite === true && _ctx === undefined)\n            return false;\n    }\n    return validateFallback(schema, value, _ctx);\n});\nfunction validateFallback(schema, value, _ctx) {\n    const ctx = _ctx\n        ? { ..._ctx, async: false, abortEarly: true }\n        : { async: false, abortEarly: true };\n    const fallbackRun = schema._zod.bag.fallbackRun;\n    let result;\n    if (fallbackRun) {\n        // skip nested fast paths on the fallback, so user callbacks keep the at-most-twice bound\n        ctx[COMPILE_FALLBACK] = true;\n        result = fallbackRun({ value, issues: [] }, ctx);\n    }\n    else {\n        result = schema._zod.run({ value, issues: [] }, ctx);\n    }\n    if (result instanceof Promise) {\n        throw new core.$ZodAsyncError();\n    }\n    return result.issues.length === 0;\n}\n// no fast path: the compiler keeps async parses on the runtime, because a promise-returning callback that is not declared async compiles to a throw\nexport const validateAsync = async (schema, value, _ctx) => {\n    const ctx = _ctx\n        ? { ..._ctx, async: true, abortEarly: true }\n        : { async: true, abortEarly: true };\n    let result = schema._zod.run({ value, issues: [] }, ctx);\n    if (result instanceof Promise)\n        result = await result;\n    return result.issues.length === 0;\n};\nexport const _encode = (_Err) => {\n    const parse = _parse(_Err);\n    const fn = (schema, value, _ctx, _params) => {\n        const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n        return parse(schema, value, ctx, finalizeParams(fn, _params));\n    };\n    return fn;\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => {\n    const parse = _parse(_Err);\n    const fn = (schema, value, _ctx, _params) => {\n        return parse(schema, value, _ctx, finalizeParams(fn, _params));\n    };\n    return fn;\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => {\n    const parseAsync = _parseAsync(_Err);\n    const fn = async (schema, value, _ctx, _params) => {\n        const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n        return (await parseAsync(schema, value, ctx, finalizeParams(fn, _params)));\n    };\n    return fn;\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => {\n    const parseAsync = _parseAsync(_Err);\n    const fn = async (schema, value, _ctx, _params) => {\n        return await parseAsync(schema, value, _ctx, finalizeParams(fn, _params));\n    };\n    return fn;\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n    return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n    return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n    const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n    return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n    return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n","import * as util from \"./util.js\";\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link cuid2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const cuid = /^[cC][0-9a-z]{6,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\nexport function nanoidOfLength(length) {\n    return new RegExp(`^[a-zA-Z0-9_-]{${length}}$`);\n}\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n    if (!version)\n        return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;\n    return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const email = /^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const html5Email = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const rfc5322Email = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const browserEmail = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\n// Single character class, not an alternation: the two properties overlap (U+1F9B0-U+1F9B3), so `(A|B)+` backtracks exponentially on a failed match. The leading lookahead then demands one anchor — a pictograph, a regional indicator, or the enclosing keycap — because `\\p{Emoji_Component}` on its own covers ASCII digits, `#`, `*`, ZWJ, variation selectors and skin tone modifiers, none of which is an emoji without a base.\nconst _emoji = `^(?=[\\\\s\\\\S]*[\\\\p{Extended_Pictographic}\\\\p{Regional_Indicator}\\\\u20E3])[\\\\p{Extended_Pictographic}\\\\p{Emoji_Component}]+$`;\nexport function emoji() {\n    return new RegExp(_emoji, \"u\");\n}\nexport const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nexport const ipv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;\nexport const mac = (delimiter) => {\n    const escapedDelim = util.escapeRegex(delimiter ?? \":\");\n    return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`);\n};\nexport const cidrv4 = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/([0-9]|[1-2][0-9]|3[0-2])$/;\nexport const cidrv6 = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const hostname = /^(?=.{1,253}\\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\\.?$/;\nexport const domain = /^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}$/;\nexport const httpProtocol = /^https?$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces) E.164: leading digit must be 1-9; total digits (excluding '+') between 7-15\nexport const e164 = /^\\+[1-9]\\d{6,14}$/;\n// Credit card shape: 12–19 digits, optionally separated by single spaces or single hyphens. ISO/IEC 7812 caps the PAN at 19 digits; 12 is the shortest issued length (Maestro).\nexport const creditCard = /^\\d(?:[ -]?\\d){11,18}$/;\n// ISO 4217 alpha codes from the SIX list, regenerated by scripts/update-iso-4217.ts\nexport const currencyCode = /^(?:AED|AFN|ALL|AMD|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|UYI|UYU|UYW|UZS|VED|VES|VND|VUV|WST|XAD|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XCG|XDR|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWG)$/;\n// iban electronic format: 2-letter country, check digits 02-98 (the only values `98 - remainder` can produce), 11-30 bban characters\nexport const iban = /^[A-Z]{2}(?!00|01|99)\\d{2}[A-Z0-9]{11,30}$/;\nconst dateSource = `(?:(?:\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\\\d|30)|(?:02)-(?:0[1-9]|1\\\\d|2[0-8])))`;\n/** Anchors a pattern source. The interpolation lives here rather than at the call site because\n * esbuild will not drop a `@__PURE__` call whose own argument interpolates a variable, but it\n * will drop `anchor(dateSource)`. Keeping it inline pinned `date` into every bundle. */\nfunction anchor(source) {\n    return new RegExp(`^${source}$`);\n}\nexport const date = /*@__PURE__*/ anchor(dateSource);\nfunction timeSource(args) {\n    const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n    const regex = typeof args.precision === \"number\"\n        ? args.precision === -1\n            ? `${hhmm}`\n            : args.precision === 0\n                ? `${hhmm}:[0-5]\\\\d`\n                : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n        : args.seconds\n            ? `${hhmm}:[0-5]\\\\d(?:\\\\.\\\\d+)?`\n            : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n    return regex;\n}\nexport function time(args) {\n    return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n    const opts = [\"Z\"];\n    // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n    if (args.offset)\n        opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n    // RFC 3339 mandates seconds wherever the time carries a `Z` or an offset, so only the unqualified form `local` adds may omit them\n    const qualified = `${timeSource({ precision: args.precision, seconds: true })}(?:${opts.join(\"|\")})`;\n    const timeRegex = args.local ? `${qualified}|${timeSource({ precision: args.precision })}` : qualified;\n    return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\n// the unbounded form of `string()` as a literal, so every plain string shares one instance instead of building its own\nexport const anyString = /^[\\s\\S]{0,}$/;\nexport const string = (params) => {\n    const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n    return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?$/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n    return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n    return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n    var _a;\n    inst._zod ?? (inst._zod = {});\n    inst._zod.def = def;\n    (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\n/** Default `when` for size-based checks: run only on non-nullish values with a `size`. */\nconst _whenHasSize = (payload) => {\n    const val = payload.value;\n    return !util.nullish(val) && val.size !== undefined;\n};\n/** Default `when` for length-based checks: run only on non-nullish values with a `length`. */\nconst _whenHasLength = (payload) => {\n    const val = payload.value;\n    return !util.nullish(val) && val.length !== undefined;\n};\nconst numericOriginMap = {\n    number: \"number\",\n    bigint: \"bigint\",\n    object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin: numericOriginMap[typeof payload.value] ?? origin,\n            code: \"too_big\",\n            maximum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const origin = numericOriginMap[typeof def.value];\n    inst._zod.check = (payload) => {\n        if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n            return;\n        }\n        payload.issues.push({\n            origin: numericOriginMap[typeof payload.value] ?? origin,\n            code: \"too_small\",\n            minimum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n            input: payload.value,\n            inclusive: def.inclusive,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (typeof payload.value !== typeof def.value)\n            throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n        const isMultiple = typeof payload.value === \"bigint\"\n            ? // `value % 0n` throws, and nothing is a multiple of zero — the number branch already fails this way via NaN\n                def.value !== BigInt(0) && payload.value % def.value === BigInt(0)\n            : util.floatSafeRemainder(payload.value, def.value) === 0;\n        if (isMultiple)\n            return;\n        payload.issues.push({\n            origin: typeof payload.value,\n            code: \"not_multiple_of\",\n            divisor: def.value,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    def.format = def.format || \"float64\";\n    const isInt = def.format?.includes(\"int\");\n    const origin = isInt ? \"int\" : \"number\";\n    const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (isInt) {\n            if (!Number.isInteger(input)) {\n                // invalid_format issue\n                // payload.issues.push({\n                //   expected: def.format,\n                //   format: def.format,\n                //   code: \"invalid_format\",\n                //   input,\n                //   inst,\n                // });\n                // invalid_type issue\n                payload.issues.push({\n                    expected: origin,\n                    format: def.format,\n                    code: \"invalid_type\",\n                    continue: false,\n                    input,\n                    inst,\n                });\n                return;\n                // not_multiple_of issue\n                // payload.issues.push({\n                //   code: \"not_multiple_of\",\n                //   origin: \"number\",\n                //   input,\n                //   inst,\n                //   divisor: 1,\n                // });\n            }\n            if (!Number.isSafeInteger(input)) {\n                if (input > 0) {\n                    // too_big\n                    payload.issues.push({\n                        input,\n                        code: \"too_big\",\n                        maximum: Number.MAX_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        inclusive: true,\n                        continue: !def.abort,\n                    });\n                }\n                else {\n                    // too_small\n                    payload.issues.push({\n                        input,\n                        code: \"too_small\",\n                        minimum: Number.MIN_SAFE_INTEGER,\n                        note: \"Integers must be within the safe integer range.\",\n                        inst,\n                        origin,\n                        inclusive: true,\n                        continue: !def.abort,\n                    });\n                }\n                return;\n            }\n        }\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_small\",\n                minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"number\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n    $ZodCheck.init(inst, def); // no format checks\n    const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        if (input < minimum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_small\",\n                minimum: minimum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n        if (input > maximum) {\n            payload.issues.push({\n                origin: \"bigint\",\n                input,\n                code: \"too_big\",\n                maximum,\n                inclusive: true,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = _whenHasSize);\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size <= def.maximum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = _whenHasSize);\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size >= def.minimum)\n            return;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = _whenHasSize);\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const size = input.size;\n        if (size === def.size)\n            return;\n        const tooBig = size > def.size;\n        payload.issues.push({\n            origin: util.getSizableOrigin(input),\n            ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = _whenHasLength);\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const units = input.length;\n        // Strings are measured in Unicode code points, not UTF-16 units. A code point is at most two units, so a string that already fits in units fits in code points; only an overflow has to be counted.\n        const length = typeof input === \"string\" && units > def.maximum ? util.codePointLength(input) : units;\n        if (length <= def.maximum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_big\",\n            maximum: def.maximum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = _whenHasLength);\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const units = input.length;\n        // A code point is one or two UTF-16 units, so fewer units than the floor can never reach it and twice the floor always clears it. Only in between is the exact count in doubt.\n        const length = typeof input === \"string\" && units >= def.minimum && units < def.minimum * 2\n            ? util.codePointLength(input)\n            : units;\n        if (length >= def.minimum)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        payload.issues.push({\n            origin,\n            code: \"too_small\",\n            minimum: def.minimum,\n            inclusive: true,\n            input,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n    var _a;\n    $ZodCheck.init(inst, def);\n    (_a = inst._zod.def).when ?? (_a.when = _whenHasLength);\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const units = input.length;\n        // A code point is one or two UTF-16 units, so outside `[length, length * 2]` units the target is missed either way — and missed in the same direction in both measures.\n        const length = typeof input === \"string\" && units >= def.length && units <= def.length * 2\n            ? util.codePointLength(input)\n            : units;\n        if (length === def.length)\n            return;\n        const origin = util.getLengthableOrigin(input);\n        const tooBig = length > def.length;\n        payload.issues.push({\n            origin,\n            ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n            inclusive: true,\n            exact: true,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n    var _a, _b;\n    $ZodCheck.init(inst, def);\n    if (def.pattern)\n        (_a = inst._zod).check ?? (_a.check = (payload) => {\n            def.pattern.lastIndex = 0;\n            if (def.pattern.test(payload.value))\n                return;\n            payload.issues.push({\n                origin: \"string\",\n                code: \"invalid_format\",\n                format: def.format,\n                input: payload.value,\n                ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n                inst,\n                continue: !def.abort,\n            });\n        });\n    else\n        (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n    $ZodCheckStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        def.pattern.lastIndex = 0;\n        if (def.pattern.test(payload.value))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"regex\",\n            input: payload.value,\n            pattern: def.pattern.toString(),\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.lowercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.uppercase);\n    $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const escapedRegex = util.escapeRegex(def.includes);\n    // `String.prototype.includes(sub, position)` matches `sub` at `position`\n    // OR LATER, so the pattern must allow at least `position` leading chars\n    // (`{N,}`), not exactly `position` chars (`{N}`).\n    const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position},}${escapedRegex}` : escapedRegex);\n    def.pattern = pattern;\n    inst._zod.check = (payload) => {\n        if (payload.value.includes(def.includes, def.position))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"includes\",\n            includes: def.includes,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.check = (payload) => {\n        if (payload.value.startsWith(def.prefix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"starts_with\",\n            prefix: def.prefix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n    def.pattern ?? (def.pattern = pattern);\n    inst._zod.check = (payload) => {\n        if (payload.value.endsWith(def.suffix))\n            return;\n        payload.issues.push({\n            origin: \"string\",\n            code: \"invalid_format\",\n            format: \"ends_with\",\n            suffix: def.suffix,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n///////////////////////////////////\n/////    $ZodCheckProperty    /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n    if (result.issues.length) {\n        payload.issues.push(...util.prefixIssues(property, result.issues));\n    }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        const result = def.schema._zod.run({\n            value: payload.value[def.property],\n            issues: [],\n        }, {});\n        if (result instanceof Promise) {\n            return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n        }\n        handleCheckPropertyResult(result, payload, def.property);\n        return;\n    };\n});\nexport const $ZodCheckProperties = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperties\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    util.hide(inst, Symbol.iterator, function* () {\n        yield inst;\n    });\n    // key and schema snapshotted together: reading one live and the other cached lets a later mutation of the caller's shape object pair a stale key with a missing schema\n    let entries;\n    inst._zod.check = (payload) => {\n        // the base schema already typed the value, so only a nullish one is rejected here: the properties read on a primitive too, matching z.property() on a string's length\n        if (payload.value == null) {\n            payload.issues.push({ expected: \"object\", code: \"invalid_type\", input: payload.value, inst });\n            return undefined;\n        }\n        entries ?? (entries = Reflect.ownKeys(def.shape).map((key) => [key, def.shape[key]]));\n        const input = payload.value;\n        let proms;\n        for (const [key, schema] of entries) {\n            const result = schema._zod.run({ value: input[key], issues: [] }, {});\n            if (result instanceof Promise) {\n                proms ?? (proms = []);\n                proms.push(result.then((result) => handleCheckPropertyResult(result, payload, key)));\n            }\n            else {\n                handleCheckPropertyResult(result, payload, key);\n            }\n        }\n        if (proms)\n            return Promise.all(proms).then(() => undefined);\n        return undefined;\n    };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    const mimeSet = new Set(def.mime);\n    inst._zod.check = (payload) => {\n        if (mimeSet.has(payload.value.type))\n            return;\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.mime,\n            input: payload.value.type,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n    $ZodCheck.init(inst, def);\n    inst._zod.check = (payload) => {\n        payload.value = def.tx(payload.value);\n    };\n});\n","export class Doc {\n    constructor(args = [], closed = {}) {\n        this.content = [];\n        this.indent = 0;\n        this.args = args;\n        this.closed = closed;\n    }\n    // the compiler catches a child's throw and keeps writing into this doc, so the indent has to unwind with it\n    indented(fn) {\n        this.indent += 1;\n        try {\n            fn(this);\n        }\n        finally {\n            this.indent -= 1;\n        }\n    }\n    write(arg) {\n        if (typeof arg === \"function\") {\n            arg(this, { execution: \"sync\" });\n            arg(this, { execution: \"async\" });\n            return;\n        }\n        const content = arg;\n        const lines = content.split(\"\\n\").filter((x) => x);\n        const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n        const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n        for (const line of dedented) {\n            this.content.push(line);\n        }\n    }\n    compile() {\n        const F = Function;\n        const content = this?.content ?? [``];\n        const factory = new F(...Object.keys(this.closed), `return function (${this.args.join(\", \")}) {\\n${content.join(\"\\n\")}\\n};`);\n        return factory(...Object.values(this.closed));\n    }\n}\n","export const version = {\n    major: 4,\n    minor: 6,\n    patch: 5,\n};\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n    var _a;\n    inst ?? (inst = {});\n    inst._zod.def = def; // set _def property\n    inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n    inst._zod.version = version;\n    const defChecks = inst._zod.def.checks;\n    // if inst is itself a checks.$ZodCheck, run it as a check\n    const checks = inst._zod.traits.has(\"$ZodCheck\")\n        ? [inst, ...(defChecks ?? [])]\n        : defChecks?.length\n            ? [...defChecks]\n            : [];\n    for (const ch of checks) {\n        for (const fn of ch._zod.onattach) {\n            fn(inst);\n        }\n    }\n    if (checks.length === 0) {\n        // deferred initializer inst._zod.parse is not yet defined\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        inst._zod.deferred?.push(() => {\n            inst._zod.run = inst._zod.parse;\n        });\n    }\n    else {\n        const runChecks = (payload, checks, ctx) => {\n            if (payload.memo)\n                return payload;\n            let isAborted = util.aborted(payload);\n            let asyncResult;\n            for (const ch of checks) {\n                if (ch._zod.def.when) {\n                    if (util.explicitlyAborted(payload))\n                        continue;\n                    const shouldRun = ch._zod.def.when(payload);\n                    if (!shouldRun)\n                        continue;\n                }\n                else if (isAborted) {\n                    continue;\n                }\n                const currLen = payload.issues.length;\n                const _ = ch._zod.check(payload);\n                if (_ instanceof Promise && ctx?.async === false) {\n                    throw new core.$ZodAsyncError();\n                }\n                if (asyncResult || _ instanceof Promise) {\n                    asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n                        await _;\n                        const nextLen = payload.issues.length;\n                        if (nextLen === currLen)\n                            return;\n                        util.attachSchema(payload.issues, currLen, inst);\n                        if (!isAborted)\n                            isAborted = util.aborted(payload, currLen);\n                    });\n                }\n                else {\n                    const nextLen = payload.issues.length;\n                    if (nextLen === currLen)\n                        continue;\n                    util.attachSchema(payload.issues, currLen, inst);\n                    if (!isAborted)\n                        isAborted = util.aborted(payload, currLen);\n                }\n            }\n            if (asyncResult) {\n                return asyncResult.then(() => {\n                    return payload;\n                });\n            }\n            return payload;\n        };\n        const handleCanaryResult = (canary, payload, ctx) => {\n            // abort if the canary is aborted\n            if (util.aborted(canary)) {\n                canary.aborted = true;\n                return canary;\n            }\n            // run checks first, then\n            const checkResult = runChecks(payload, checks, ctx);\n            if (checkResult instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n            }\n            return inst._zod.parse(checkResult, ctx);\n        };\n        inst._zod.run = (payload, ctx) => {\n            if (ctx.skipChecks) {\n                return inst._zod.parse(payload, ctx);\n            }\n            if (ctx.direction === \"backward\") {\n                // run canary initial pass (no checks)\n                const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n                if (canary instanceof Promise) {\n                    return canary.then((canary) => {\n                        return handleCanaryResult(canary, payload, ctx);\n                    });\n                }\n                return handleCanaryResult(canary, payload, ctx);\n            }\n            // forward\n            const result = inst._zod.parse(payload, ctx);\n            if (result instanceof Promise) {\n                if (ctx.async === false)\n                    throw new core.$ZodAsyncError();\n                return result.then((result) => runChecks(result, checks, ctx));\n            }\n            return runChecks(result, checks, ctx);\n        };\n    }\n}, {\n    // Wrappers extend this by installing a richer factory over it; reading it eagerly would defeat the laziness.\n    get \"~standard\"() {\n        return util.hide(this, \"~standard\", standardProps(this));\n    },\n    set \"~standard\"(value) {\n        util.own(this, \"~standard\", value);\n    },\n});\n/** The Standard Schema surface for `inst`. Shared so wrappers can extend it without forcing it. */\n// a Standard Schema result only reports issues, so a failure finalizes them straight off the raw payload: no ZodError, and no lazy result to read through\nconst toStandardResult = (r, ctx) => r.issues.length ? { issues: r.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())) } : { value: r.value };\nasync function validateAsync(inst, value) {\n    const ctx = { async: true };\n    return toStandardResult((await inst._zod.run({ value, issues: [] }, ctx)), ctx);\n}\nexport function standardProps(inst) {\n    return {\n        validate: (value) => {\n            const ctx = { async: false };\n            try {\n                const r = inst._zod.run({ value, issues: [] }, ctx);\n                if (!(r instanceof Promise))\n                    return toStandardResult(r, ctx);\n            }\n            catch (_) { }\n            // async function so a synchronously throwing check rejects instead of escaping validate\n            return validateAsync(inst, value);\n        },\n        vendor: \"zod\",\n        version: 1,\n    };\n}\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // a format's own pattern, else unbounded; a template literal derives the check-aware form itself\n    inst._zod.pattern = def.pattern ?? regexes.anyString;\n    inst._zod.parse = (payload, _) => {\n        if (def.coerce)\n            try {\n                payload.value = String(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"string\")\n            return payload;\n        payload.issues.push({\n            expected: \"string\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n    // check initialization must come first\n    checks.$ZodCheckStringFormat.init(inst, def);\n    $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.guid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n    if (def.version) {\n        const versionMap = {\n            v1: 1,\n            v2: 2,\n            v3: 3,\n            v4: 4,\n            v5: 5,\n            v6: 6,\n            v7: 7,\n            v8: 8,\n        };\n        const v = versionMap[def.version];\n        if (v === undefined)\n            throw new Error(`Invalid UUID version: \"${def.version}\"`);\n        def.pattern ?? (def.pattern = regexes.uuid(v));\n    }\n    else\n        def.pattern ?? (def.pattern = regexes.uuid());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.email);\n    $ZodStringFormat.init(inst, def);\n});\n/** The `://` guard rejected the input before the URL constructor saw it. */\nexport const URL_BAD_FORMAT = 1;\n/** The URL parser rejected the input. */\nexport const URL_UNPARSEABLE = 2;\nexport function canParseURL(input) {\n    try {\n        if (typeof URL !== \"undefined\" && typeof URL.canParse === \"function\")\n            return URL.canParse(input);\n        new URL(input);\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport function validateURL(trimmed, def) {\n    if (!(\"normalize\" in def) && !(\"hostname\" in def) && !(\"protocol\" in def)) {\n        return canParseURL(trimmed) || URL_UNPARSEABLE;\n    }\n    return parseURLObject(trimmed, def);\n}\n/** Parses a URL while preserving the non-normalizing HTTP guard. */\nexport function parseURLObject(trimmed, def) {\n    // When normalize is off, require :// for http/https URLs. This prevents strings like \"http:example.com\" or \"https:/path\" from being silently accepted\n    if (!def.normalize && def.protocol?.source === regexes.httpProtocol.source && !/^https?:\\/\\//i.test(trimmed)) {\n        return URL_BAD_FORMAT;\n    }\n    try {\n        if (typeof URL !== \"undefined\") {\n            const URLStatic = URL;\n            if (typeof URLStatic.parse === \"function\")\n                return URLStatic.parse(trimmed) ?? URL_UNPARSEABLE;\n        }\n        // @ts-ignore\n        return new URL(trimmed);\n    }\n    catch {\n        return URL_UNPARSEABLE;\n    }\n}\nconst asciiTabOrNewline = /[\\t\\n\\r]/g;\n/** The URL parser deletes every ASCII tab, LF and CR from its input before it parses, so `new URL(\"https://exa\\nmple.com\")` reports on `example.com`. Applying the same deletion to the returned value closes the half of that divergence which can move the host; the parser's other rewrite, stripping C0 controls at the edges, cannot. */\nexport function stripTabAndNewline(value) {\n    return value.replace(asciiTabOrNewline, \"\");\n}\nexport function urlHostnameOk(url, hostname) {\n    hostname.lastIndex = 0;\n    return hostname.test(url.hostname);\n}\nexport function urlProtocolOk(url, protocol) {\n    protocol.lastIndex = 0;\n    return protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol);\n}\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        try {\n            // Trim whitespace from input\n            const trimmed = payload.value.trim();\n            const url = validateURL(trimmed, def);\n            if (url === URL_BAD_FORMAT) {\n                payload.issues.push({\n                    code: \"invalid_format\",\n                    format: \"url\",\n                    note: \"Invalid URL format\",\n                    input: payload.value,\n                    inst,\n                    continue: !def.abort,\n                });\n                return;\n            }\n            if (url === URL_UNPARSEABLE) {\n                payload.issues.push({\n                    code: \"invalid_format\",\n                    format: \"url\",\n                    input: payload.value,\n                    inst,\n                    continue: !def.abort,\n                });\n                return;\n            }\n            if (url === true) {\n                payload.value = stripTabAndNewline(trimmed);\n                return;\n            }\n            if (def.hostname && !urlHostnameOk(url, def.hostname)) {\n                payload.issues.push({\n                    code: \"invalid_format\",\n                    format: \"url\",\n                    note: \"Invalid hostname\",\n                    pattern: def.hostname.source,\n                    input: payload.value,\n                    inst,\n                    continue: !def.abort,\n                });\n            }\n            if (def.protocol && !urlProtocolOk(url, def.protocol)) {\n                payload.issues.push({\n                    code: \"invalid_format\",\n                    format: \"url\",\n                    note: \"Invalid protocol\",\n                    pattern: def.protocol.source,\n                    input: payload.value,\n                    inst,\n                    continue: !def.abort,\n                });\n            }\n            // Set the output value based on normalize flag\n            payload.value = def.normalize ? url.href : stripTabAndNewline(trimmed);\n            return;\n        }\n        catch (_) {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"url\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.emoji());\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n    if (def.length !== undefined && (!Number.isInteger(def.length) || def.length < 1))\n        throw new Error(`Invalid nanoid length: ${def.length}`);\n    def.pattern ?? (def.pattern = def.length === undefined ? regexes.nanoid : regexes.nanoidOfLength(def.length));\n    $ZodStringFormat.init(inst, def);\n});\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link $ZodCUID2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cuid2);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ulid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.xid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ksuid);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.datetime(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.date);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.time(def));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.duration);\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv4);\n    $ZodStringFormat.init(inst, def);\n});\n/** An IPv6 address is written with hex digits, colons and dots, and nothing else. The guard is what makes the check below an IPv6 check: `new URL(\"http://[...]\")` parses an authority, not an address, so `@` and `\\` re-delimit it and `\"::@1\\\\\"` validates against the host `0.0.0.1`. The URL parser also deletes ASCII tab, LF and CR rather than failing, which is how `\"::1\\n\"` validated as `::1`. */\nconst ipv6Alphabet = /^[0-9a-fA-F:.]+$/;\nexport function isValidIPv6(value) {\n    if (!ipv6Alphabet.test(value))\n        return false;\n    return canParseURL(`http://[${value}]`);\n}\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.ipv6);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (!isValidIPv6(payload.value)) {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"ipv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\nexport const $ZodMAC = /*@__PURE__*/ core.$constructor(\"$ZodMAC\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.mac(def.delimiter));\n    $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv4);\n    $ZodStringFormat.init(inst, def);\n});\nexport function isValidCIDRv6(value) {\n    const parts = value.split(\"/\");\n    if (parts.length !== 2)\n        return false;\n    const [address, prefix] = parts;\n    if (!prefix)\n        return false;\n    const prefixNum = Number(prefix);\n    if (`${prefixNum}` !== prefix)\n        return false;\n    if (prefixNum < 0 || prefixNum > 128)\n        return false;\n    return isValidIPv6(address);\n}\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (!isValidCIDRv6(payload.value)) {\n            payload.issues.push({\n                code: \"invalid_format\",\n                format: \"cidrv6\",\n                input: payload.value,\n                inst,\n                continue: !def.abort,\n            });\n        }\n    };\n});\n//////////////////////////////   ZodBase64   //////////////////////////////\nexport function isValidBase64(data) {\n    if (data === \"\")\n        return true;\n    // atob ignores whitespace, so reject it up front.\n    if (/\\s/.test(data))\n        return false;\n    if (data.length % 4 !== 0)\n        return false;\n    try {\n        // @ts-ignore\n        atob(data);\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\n// lax on purpose: the quantified regexes.base64 overflows the regex stack on multi-MB input and its leading ^$| alternation leaks through template-literal composition; isValidBase64 enforces length and padding\nexport const base64Charset = /^[0-9a-zA-Z+/]*={0,2}$/;\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n    def.pattern ?? (def.pattern = base64Charset);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidBase64(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n//////////////////////////////   ZodBase64URL   //////////////////////////////\n// lax on purpose: the quantified regexes.base64url overflows the regex stack on multi-MB input; isValidBase64 enforces length on the padded string\nexport const base64urlCharset = /^[A-Za-z0-9_-]*$/;\nexport function isValidBase64URL(data) {\n    if (!base64urlCharset.test(data))\n        return false;\n    const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n    const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n    return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n    def.pattern ?? (def.pattern = base64urlCharset);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidBase64URL(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"base64url\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n    def.pattern ?? (def.pattern = regexes.e164);\n    $ZodStringFormat.init(inst, def);\n});\n//////////////////////////////   ZodCreditCard   //////////////////////////////\nconst CC_SANITIZE = /[- ]/g;\n/** Luhn checksum on a digit-only string. Adapted from valibot (MIT). */\nfunction isLuhnAlgo(digits) {\n    let length = digits.length;\n    let bit = 1;\n    let sum = 0;\n    while (length) {\n        const value = digits.charCodeAt(--length) - 48;\n        bit ^= 1;\n        sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value] : value;\n    }\n    return sum % 10 === 0;\n}\nexport function isValidCreditCard(input) {\n    if (!regexes.creditCard.test(input))\n        return false;\n    return isLuhnAlgo(input.replace(CC_SANITIZE, \"\"));\n}\nexport const $ZodCreditCard = /*@__PURE__*/ core.$constructor(\"$ZodCreditCard\", (inst, def) => {\n    // Shape only — the Luhn check below is not expressible as a pattern, so consumers of `pattern` (JSON Schema, template literals) get the length and separator rules alone.\n    def.pattern ?? (def.pattern = regexes.creditCard);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidCreditCard(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"credit_card\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n//////////////////////////////   ZodIBAN   //////////////////////////////\n// iso 7064 mod 97-10 checksum without BigInt\nfunction isIso7064Mod97(iban) {\n    let remainder = 0;\n    const len = iban.length;\n    for (let i = 4; i < len; i++) {\n        const code = iban.charCodeAt(i);\n        remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97;\n    }\n    for (let i = 0; i < 4; i++) {\n        const code = iban.charCodeAt(i);\n        remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97;\n    }\n    return remainder === 1;\n}\nexport function isValidIBAN(input) {\n    if (!regexes.iban.test(input))\n        return false;\n    return isIso7064Mod97(input);\n}\nexport const $ZodIBAN = /*@__PURE__*/ core.$constructor(\"$ZodIBAN\", (inst, def) => {\n    // shape only — checksum is not expressible as a pattern\n    def.pattern ?? (def.pattern = regexes.iban);\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidIBAN(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"iban\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\n//////////////////////////////   ZodJWT   //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n    try {\n        const tokensParts = token.split(\".\");\n        if (tokensParts.length !== 3)\n            return false;\n        const [header] = tokensParts;\n        if (!header)\n            return false;\n        // @ts-ignore\n        const parsedHeader = JSON.parse(atob(header));\n        if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n            return false;\n        if (!parsedHeader.alg)\n            return false;\n        if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n            return false;\n        return true;\n    }\n    catch {\n        return false;\n    }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (isValidJWT(payload.value, def.alg))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: \"jwt\",\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n    $ZodStringFormat.init(inst, def);\n    inst._zod.check = (payload) => {\n        if (def.fn(payload.value))\n            return;\n        payload.issues.push({\n            code: \"invalid_format\",\n            format: def.format,\n            input: payload.value,\n            inst,\n            continue: !def.abort,\n        });\n    };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.number;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Number(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n            return payload;\n        }\n        const received = typeof input === \"number\"\n            ? Number.isNaN(input)\n                ? \"NaN\"\n                : !Number.isFinite(input)\n                    ? String(input)\n                    : undefined\n            : undefined;\n        payload.issues.push({\n            expected: \"number\",\n            code: \"invalid_type\",\n            input,\n            inst,\n            ...(received ? { received } : {}),\n        });\n        return payload;\n    };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumberFormat\", (inst, def) => {\n    checks.$ZodCheckNumberFormat.init(inst, def);\n    $ZodNumber.init(inst, def); // no format checks\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.boolean;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = Boolean(payload.value);\n            }\n            catch (_) { }\n        const input = payload.value;\n        if (typeof input === \"boolean\")\n            return payload;\n        payload.issues.push({\n            expected: \"boolean\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.bigint;\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce)\n            try {\n                payload.value = BigInt(payload.value);\n            }\n            catch (_) { }\n        if (typeof payload.value === \"bigint\")\n            return payload;\n        payload.issues.push({\n            expected: \"bigint\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigIntFormat\", (inst, def) => {\n    checks.$ZodCheckBigIntFormat.init(inst, def);\n    $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"symbol\")\n            return payload;\n        payload.issues.push({\n            expected: \"symbol\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.undefined;\n    inst._zod.values = new Set([undefined]);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"undefined\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.pattern = regexes.null;\n    inst._zod.values = new Set([null]);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (input === null)\n            return payload;\n        payload.issues.push({\n            expected: \"null\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        payload.issues.push({\n            expected: \"never\",\n            code: \"invalid_type\",\n            input: payload.value,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (typeof input === \"undefined\")\n            return payload;\n        payload.issues.push({\n            expected: \"void\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (def.coerce) {\n            try {\n                payload.value = new Date(payload.value);\n            }\n            catch (_err) { }\n        }\n        const input = payload.value;\n        const isDate = input instanceof Date;\n        const isValidDate = isDate && !Number.isNaN(input.getTime());\n        if (isValidDate)\n            return payload;\n        payload.issues.push({\n            expected: \"date\",\n            code: \"invalid_type\",\n            input,\n            ...(isDate ? { received: \"Invalid Date\" } : {}),\n            inst,\n        });\n        return payload;\n    };\n});\nfunction handleArrayResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const memo = core.globalConfig.memoizer;\n    memo?.attach(inst);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                expected: \"array\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = memo ? memo.alloc(inst, payload, Array(input.length), ctx) : Array(input.length);\n        const proms = [];\n        const abortEarly = ctx?.abortEarly;\n        for (let i = 0; i < input.length; i++) {\n            const item = input[i];\n            const result = def.element._zod.run({\n                value: item,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n            }\n            else {\n                handleArrayResult(result, payload, i);\n                // the element's payload is authoritative here, since handleArrayResult forwards every issue; an object's is not, because it drops a failed absent optional\n                if (abortEarly && result.issues.length !== 0 && util.aborted(result))\n                    break;\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload; //handleArrayResultsAsync(parseResults, final);\n    };\n});\nfunction handlePropertyResult(result, final, key, input, optin, optout) {\n    const isPresent = key in input;\n    const isOptionalOut = optout === \"optional\";\n    // The middle rung means \"absence permitted, nothing supplied in its place\", so an absent key contributes nothing — whatever the schema made of `undefined` is invented, not substituted. Only `optional` reaches this with a value: `defaulted` substitutes, and a schema that isn't optional-out has to keep the key.\n    if (!isPresent && isOptionalOut && optin === \"optional\") {\n        return;\n    }\n    if (result.issues.length) {\n        // For optional-in/out schemas, ignore errors on absent keys.\n        if (optin !== undefined && isOptionalOut && !isPresent) {\n            return;\n        }\n        final.issues.push(...util.prefixIssues(key, result.issues));\n    }\n    if (!isPresent && optin === undefined) {\n        if (!result.issues.length) {\n            final.issues.push({\n                code: \"invalid_type\",\n                expected: \"nonoptional\",\n                input: undefined,\n                path: [key],\n            });\n        }\n        return;\n    }\n    if (result.value === undefined) {\n        if (isPresent || (optin === \"defaulted\" && !isOptionalOut)) {\n            final.value[key] = undefined;\n        }\n    }\n    else {\n        final.value[key] = result.value;\n    }\n}\n// one shared instance; a fresh [] per schema cost 56 bytes retained\nconst NO_SYMBOL_KEYS = [];\nfunction normalizeDef(def) {\n    const keys = Object.keys(def.shape);\n    const ownSymbols = Object.getOwnPropertySymbols(def.shape);\n    const symbolKeys = ownSymbols.length ? ownSymbols : NO_SYMBOL_KEYS;\n    // aliases `keys` when there are no symbols, so a string-only shape keeps one array\n    const allKeys = symbolKeys.length ? [...keys, ...symbolKeys] : keys;\n    for (const k of allKeys) {\n        if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n            throw new Error(`Invalid element at key \"${String(k)}\": expected a Zod schema`);\n        }\n    }\n    const okeys = util.optionalKeys(def.shape);\n    return {\n        ...def,\n        allKeys,\n        symbolKeys,\n        // string-only: handleCatchall matches it against `for...in`, which never yields a symbol\n        keySet: new Set(keys),\n        numKeys: keys.length,\n        optionalKeys: new Set(okeys),\n    };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst, abortEarly) {\n    const unrecognized = [];\n    const keySet = def.keySet;\n    const _catchall = def.catchall._zod;\n    const t = _catchall.def.type;\n    const optin = _catchall.optin;\n    const optout = _catchall.optout;\n    // starts at 0, not the current length: the shape phase already ran and may have aborted\n    let seen = 0;\n    for (const key in input) {\n        if (abortEarly && payload.issues.length !== seen) {\n            if (util.aborted(payload, seen))\n                break;\n            seen = payload.issues.length;\n        }\n        // Must precede the __proto__ branch: a declared key is not unrecognized, even though the shape loop deliberately strips __proto__ from the parsed output.\n        if (keySet.has(key))\n            continue;\n        // Don't copy an undeclared __proto__ into the result; assignment to a plain {} would replace the result prototype. But in strict mode it is still an unknown key, so report it before skipping.\n        if (key === \"__proto__\") {\n            if (t === \"never\")\n                unrecognized.push(key);\n            continue;\n        }\n        if (t === \"never\") {\n            unrecognized.push(key);\n            continue;\n        }\n        const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n        if (r instanceof Promise) {\n            proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, optin, optout)));\n        }\n        else {\n            handlePropertyResult(r, payload, key, input, optin, optout);\n        }\n    }\n    if (unrecognized.length) {\n        payload.issues.push({\n            code: \"unrecognized_keys\",\n            keys: unrecognized,\n            input,\n            inst,\n            // Describes the shape of the input, not the validity of the parsed value, so it never aborts. The parse still fails; the schema's own checks just get to run first, and an enclosing intersection can reconcile the key against a sibling operand.\n            continue: true,\n        });\n    }\n    if (!proms.length)\n        return payload;\n    return Promise.all(proms).then(() => {\n        return payload;\n    });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodType.init(inst, def);\n    const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n    // a cloned def carries its source's accessor, which knows the shape it answers from; adopting that keeps the clone's keys readable without running it\n    const sh = desc?.get ? desc.get.raw : (def.shape ?? {});\n    if (sh) {\n        // Freezes the shape on first read, so its getters resolve once and every later read sees the same schemas.\n        const get = () => {\n            const newSh = { ...sh };\n            Object.defineProperty(def, \"shape\", { value: newSh });\n            get.raw = newSh;\n            return newSh;\n        };\n        get.raw = sh;\n        Object.defineProperty(def, \"shape\", { get });\n    }\n    const _normalized = util.cached(() => normalizeDef(def));\n    util.defineLazyInternal(inst, \"propValues\", (zod) => {\n        const shape = zod.def.shape;\n        const propValues = {};\n        for (const key in shape) {\n            const field = shape[key]._zod;\n            if (field.values) {\n                if (!Object.prototype.hasOwnProperty.call(propValues, key)) {\n                    util.assignProp(propValues, key, new Set());\n                }\n                for (const v of field.values)\n                    propValues[key].add(v);\n                // An omittable slot reads back as undefined at a discriminator lookup, so it has to claim undefined: two options that can both omit the key are not discriminable on it.\n                if (field.optin !== undefined)\n                    propValues[key].add(undefined);\n            }\n        }\n        return propValues;\n    });\n    const isObject = util.isObject;\n    const catchall = def.catchall;\n    let value;\n    const memo = core.globalConfig.memoizer;\n    memo?.attach(inst);\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        payload.value = memo ? memo.alloc(inst, payload, {}, ctx) : {};\n        const proms = [];\n        const shape = value.shape;\n        const abortEarly = ctx?.abortEarly;\n        let seen = payload.issues.length;\n        for (const key of value.allKeys) {\n            if (abortEarly && payload.issues.length !== seen) {\n                if (util.aborted(payload, seen))\n                    break;\n                seen = payload.issues.length;\n            }\n            if (key === \"__proto__\")\n                continue;\n            const el = shape[key];\n            const optin = el._zod.optin;\n            const optout = el._zod.optout;\n            const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n            if (r instanceof Promise) {\n                proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, optin, optout)));\n            }\n            else {\n                handlePropertyResult(r, payload, key, input, optin, optout);\n            }\n        }\n        if (!catchall) {\n            return proms.length ? Promise.all(proms).then(() => payload) : payload;\n        }\n        return handleCatchall(proms, input, payload, ctx, _normalized.value, inst, abortEarly === true);\n    };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n    // requires cast because technically $ZodObject doesn't extend\n    $ZodObject.init(inst, def);\n    const superParse = inst._zod.parse;\n    const _normalized = util.cached(() => normalizeDef(def));\n    const memo = core.globalConfig.memoizer;\n    const generateFastpass = (shape) => {\n        const normalized = _normalized.value;\n        const syms = normalized.symbolKeys;\n        // a symbol has no source literal, so it is read as `syms[i]` off the closed-over scope\n        const doc = new Doc([\"payload\", \"ctx\"], { shape, inst, memo, syms });\n        const parseStr = (k) => `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n        // prefixes in place, like util.prefixIssues. newResult must land before the early return: a catchall runs after this and would otherwise write onto the caller's input\n        const prefixStr = (id, k) => `\n          let ${id}_ab = false;\n          for (let i = 0; i < ${id}.issues.length; i++) {\n            const iss = ${id}.issues[i];\n            iss.path = iss.path ? [${k}, ...iss.path] : [${k}];\n            payload.issues.push(iss);\n            if (iss.continue !== true) ${id}_ab = true;\n          }\n          if (${id}_ab && ctx && ctx.abortEarly) {\n            payload.value = newResult;\n            return payload;\n          }`;\n        doc.write(`const input = payload.value;`);\n        const ids = Object.create(null);\n        let counter = 0;\n        for (const key of normalized.allKeys) {\n            ids[key] = `key_${counter++}`;\n        }\n        // A: preserve key order {\n        doc.write(memo ? `const newResult = memo.alloc(inst, payload, {}, ctx);` : `const newResult = {};`);\n        for (const key of normalized.allKeys) {\n            if (key === \"__proto__\")\n                continue;\n            const id = ids[key];\n            const k = typeof key === \"symbol\" ? `syms[${syms.indexOf(key)}]` : util.esc(key);\n            const isPresent = `${k} in input`;\n            const schema = shape[key];\n            const optin = schema?._zod?.optin;\n            const isOptionalIn = optin !== undefined;\n            const isOptionalOut = schema?._zod?.optout === \"optional\";\n            doc.write(`const ${id} = ${parseStr(k)};`);\n            if (isOptionalIn && isOptionalOut) {\n                // For optional-in/out schemas, ignore errors on absent keys — and, like the interpreted path, drop the value produced alongside them. The middle rung goes further: it permits absence without supplying anything in its place, so an absent key contributes nothing at all.\n                const assign = optin === \"optional\" ? `${id}_present` : `${id}.value !== undefined || ${id}_present`;\n                doc.write(`\n        const ${id}_present = ${isPresent};\n        if (!${id}.issues.length || ${id}_present) {\n          if (${id}.issues.length) {${prefixStr(id, k)}\n          }\n\n          if (${assign}) {\n            newResult[${k}] = ${id}.value;\n          }\n        }\n\n      `);\n            }\n            else if (!isOptionalIn) {\n                doc.write(`\n        const ${id}_present = ${isPresent};\n        if (${id}.issues.length) {${prefixStr(id, k)}\n        }\n        if (!${id}_present && !${id}.issues.length) {\n          payload.issues.push({\n            code: \"invalid_type\",\n            expected: \"nonoptional\",\n            input: undefined,\n            path: [${k}]\n          });\n          if (ctx && ctx.abortEarly) {\n            payload.value = newResult;\n            return payload;\n          }\n        }\n\n        if (${id}_present) {\n          newResult[${k}] = ${id}.value;\n        }\n\n      `);\n            }\n            else {\n                doc.write(`\n        if (${id}.issues.length) {${prefixStr(id, k)}\n        }\n      `);\n                if (optin === \"defaulted\") {\n                    doc.write(`newResult[${k}] = ${id}.value;`);\n                }\n                else {\n                    doc.write(`\n        if (${id}.value !== undefined || ${isPresent}) {\n          newResult[${k}] = ${id}.value;\n        }\n      `);\n                }\n            }\n        }\n        doc.write(`payload.value = newResult;`);\n        doc.write(`return payload;`);\n        // closing `shape` in is what pays: turbofan specializes the parser against that one shape object, so every `shape[k]._zod.run` folds to a known callee. as a parameter it stays a generic load and measures 13% slower even with the forwarding frame gone\n        return doc.compile();\n    };\n    let fastpass;\n    const isObject = util.isObject;\n    const jit = !core.globalConfig.jitless;\n    const allowsEval = util.allowsEval;\n    const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n    const catchall = def.catchall;\n    let value;\n    inst._zod.parse = (payload, ctx) => {\n        value ?? (value = _normalized.value);\n        const input = payload.value;\n        if (!isObject(input)) {\n            payload.issues.push({\n                expected: \"object\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n            // always synchronous\n            if (!fastpass)\n                fastpass = generateFastpass(def.shape);\n            payload = fastpass(payload, ctx);\n            if (!catchall)\n                return payload;\n            return handleCatchall([], input, payload, ctx, value, inst, ctx?.abortEarly === true);\n        }\n        return superParse(payload, ctx);\n    };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n    for (const result of results) {\n        if (result.issues.length === 0) {\n            final.value = result.value;\n            return final;\n        }\n    }\n    const nonaborted = results.filter((r) => !util.aborted(r));\n    if (nonaborted.length === 1) {\n        final.value = nonaborted[0].value;\n        return nonaborted[0];\n    }\n    final.issues.push({\n        code: \"invalid_union\",\n        input: final.value,\n        inst,\n        errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n    });\n    return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.options.some((o) => o._zod.optin === \"defaulted\")\n        ? \"defaulted\"\n        : zod.def.options.some((o) => o._zod.optin !== undefined)\n            ? \"optional\"\n            : undefined);\n    util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n    util.defineLazyInternal(inst, \"values\", (zod) => {\n        if (zod.def.options.every((o) => o._zod.values)) {\n            return new Set(zod.def.options.flatMap((option) => Array.from(option._zod.values)));\n        }\n        return undefined;\n    });\n    util.defineLazyInternal(inst, \"pattern\", (zod) => {\n        if (zod.def.options.every((o) => o._zod.pattern)) {\n            const patterns = zod.def.options.map((o) => o._zod.pattern);\n            return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n        }\n        return undefined;\n    });\n    const first = def.options.length === 1 ? def.options[0]._zod.run : null;\n    inst._zod.parse = (payload, ctx) => {\n        if (first) {\n            return first(payload, ctx);\n        }\n        let async = false;\n        const results = [];\n        for (const option of def.options) {\n            const result = option._zod.run({\n                value: payload.value,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                results.push(result);\n                async = true;\n            }\n            else {\n                if (result.issues.length === 0)\n                    return result;\n                results.push(result);\n            }\n        }\n        if (!async)\n            return handleUnionResults(results, payload, inst, ctx);\n        return Promise.all(results).then((results) => {\n            return handleUnionResults(results, payload, inst, ctx);\n        });\n    };\n});\nfunction handleExclusiveUnionResults(results, final, inst, ctx) {\n    const matches = [];\n    for (let i = 0; i < results.length; i++) {\n        if (results[i].issues.length === 0)\n            matches.push(i);\n    }\n    if (matches.length === 1) {\n        final.value = results[matches[0]].value;\n        return final;\n    }\n    if (matches.length === 0) {\n        // No matches - same as regular union\n        final.issues.push({\n            code: \"invalid_union\",\n            input: final.value,\n            inst,\n            errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n        });\n    }\n    else {\n        // Multiple matches - exclusive union failure\n        final.issues.push({\n            code: \"invalid_union\",\n            input: final.value,\n            inst,\n            errors: [],\n            inclusive: false,\n            matches,\n        });\n    }\n    return final;\n}\nexport const $ZodXor = /*@__PURE__*/ core.$constructor(\"$ZodXor\", (inst, def) => {\n    $ZodUnion.init(inst, def);\n    def.inclusive = false;\n    const first = def.options.length === 1 ? def.options[0]._zod.run : null;\n    inst._zod.parse = (payload, ctx) => {\n        if (first) {\n            return first(payload, ctx);\n        }\n        let async = false;\n        const results = [];\n        for (const option of def.options) {\n            const result = option._zod.run({\n                value: payload.value,\n                issues: [],\n            }, ctx);\n            if (result instanceof Promise) {\n                results.push(result);\n                async = true;\n            }\n            else {\n                results.push(result);\n            }\n        }\n        if (!async)\n            return handleExclusiveUnionResults(results, payload, inst, ctx);\n        return Promise.all(results).then((results) => {\n            return handleExclusiveUnionResults(results, payload, inst, ctx);\n        });\n    };\n});\n/** Returns the option whose discriminator claims `value`, or throws if ambiguous. */\nexport function getDiscriminatedOption(union, value) {\n    const internals = union._zod;\n    let map = internals.bag.optionsMap;\n    if (!map) {\n        map = discriminatorMap(internals.def);\n        internals.bag.optionsMap = map;\n    }\n    const option = map.get(value);\n    if (option === null)\n        throw new Error(`Ambiguous discriminator value \"${String(value)}\"`);\n    return option;\n}\nfunction discriminatorMap(def) {\n    const map = new Map();\n    for (const option of def.options) {\n        const values = option._zod.propValues?.[def.discriminator];\n        if (!values || values.size === 0)\n            throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n        for (const value of values) {\n            if (map.has(value)) {\n                if (value !== undefined)\n                    throw new Error(`Duplicate discriminator value \"${String(value)}\"`);\n                // keep the collision marked so a later member cannot reclaim it\n                map.set(value, null);\n            }\n            else {\n                map.set(value, option);\n            }\n        }\n    }\n    return map;\n}\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n    def.inclusive = false;\n    $ZodUnion.init(inst, def);\n    const _super = inst._zod.parse;\n    util.defineLazyInternal(inst, \"propValues\", (zod) => {\n        const propValues = {};\n        let undefinedCount = 0;\n        for (const option of zod.def.options) {\n            const pv = option._zod.propValues;\n            if (!pv || Object.keys(pv).length === 0)\n                throw new Error(`Invalid discriminated union option at index \"${zod.def.options.indexOf(option)}\"`);\n            if (pv[zod.def.discriminator]?.has(undefined))\n                undefinedCount++;\n            for (const [k, v] of Object.entries(pv)) {\n                if (!Object.prototype.hasOwnProperty.call(propValues, k)) {\n                    util.assignProp(propValues, k, new Set());\n                }\n                for (const val of v) {\n                    propValues[k].add(val);\n                }\n            }\n        }\n        if (!zod.def.unionFallback && undefinedCount > 1)\n            propValues[zod.def.discriminator]?.delete(undefined);\n        return propValues;\n    });\n    // Checked now rather than in the lookup map below, so an option that lacks the discriminator fails at the `discriminatedUnion` call instead of on the first object parsed. Options whose shape cannot be enumerated without resolving it — pipes and lazies — are left to the map.\n    def.options.forEach((option, i) => {\n        const propShape = util.rawShape(option._zod.def);\n        if (propShape && !Object.prototype.hasOwnProperty.call(propShape, def.discriminator)) {\n            throw new Error(`Invalid discriminated union option at index \"${i}\"`);\n        }\n    });\n    const disc = util.cached(() => discriminatorMap(def));\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isObject(input)) {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"object\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const value = input?.[def.discriminator];\n        const opt = disc.value.get(value);\n        // forward metadata cannot choose an encoder for an absent tag\n        if (opt && (value !== undefined || ctx.direction !== \"backward\")) {\n            return opt._zod.run(payload, ctx);\n        }\n        // Fall back to union matching when the fast discriminator path fails:\n        // - explicitly enabled via unionFallback, or\n        // - during backward direction (encode), since codec-based discriminators have different values in forward vs backward directions\n        if (def.unionFallback || ctx.direction === \"backward\") {\n            return _super(payload, ctx);\n        }\n        // no matching discriminator\n        payload.issues.push({\n            code: \"invalid_union\",\n            errors: [],\n            note: \"No matching discriminator\",\n            discriminator: def.discriminator,\n            options: Array.from(disc.value.keys()).filter((value) => disc.value.get(value) !== null),\n            input,\n            path: [def.discriminator],\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n        const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n        const async = left instanceof Promise || right instanceof Promise;\n        if (async) {\n            return Promise.all([left, right]).then(([left, right]) => {\n                return handleIntersectionResults(payload, left, right);\n            });\n        }\n        return handleIntersectionResults(payload, left, right);\n    };\n});\nexport function mergeValues(a, b) {\n    // const aType = parse.t(a);\n    // const bType = parse.t(b);\n    if (a === b) {\n        return { valid: true, data: a };\n    }\n    if (a instanceof Date && b instanceof Date && +a === +b) {\n        return { valid: true, data: a };\n    }\n    if (util.isPlainObject(a) && util.isPlainObject(b)) {\n        const bKeys = Object.keys(b);\n        const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n        const newObj = { ...a, ...b };\n        if (Object.prototype.hasOwnProperty.call(newObj, \"__proto__\"))\n            delete newObj.__proto__;\n        for (const key of sharedKeys) {\n            if (key === \"__proto__\")\n                continue;\n            const sharedValue = mergeValues(a[key], b[key]);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newObj[key] = sharedValue.data;\n        }\n        return { valid: true, data: newObj };\n    }\n    if (Array.isArray(a) && Array.isArray(b)) {\n        if (a.length !== b.length) {\n            return { valid: false, mergeErrorPath: [] };\n        }\n        const newArray = [];\n        for (let index = 0; index < a.length; index++) {\n            const itemA = a[index];\n            const itemB = b[index];\n            const sharedValue = mergeValues(itemA, itemB);\n            if (!sharedValue.valid) {\n                return {\n                    valid: false,\n                    mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n                };\n            }\n            newArray.push(sharedValue.data);\n        }\n        return { valid: true, data: newArray };\n    }\n    return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n    // Track which side(s) reject each key. A key rejection is reported only when BOTH sides reject it, so a key owned by one branch survives the other's key schema. strictObject reports these as unrecognized_keys; a record with an open key schema reports one invalid_key per key.\n    const unrecKeys = new Map();\n    let unrecIssue;\n    const keyIssues = new Map();\n    const collect = (iss, side) => {\n        let keys;\n        if (iss.code === \"unrecognized_keys\" && !iss.path?.length) {\n            unrecIssue ?? (unrecIssue = iss);\n            keys = iss.keys;\n        }\n        else if (iss.code === \"invalid_key\" && iss.origin === \"record\" && iss.path?.length === 1) {\n            const k = String(iss.path[0]);\n            if (!keyIssues.has(k))\n                keyIssues.set(k, iss);\n            keys = [k];\n        }\n        else {\n            return false;\n        }\n        for (const k of keys) {\n            if (!unrecKeys.has(k))\n                unrecKeys.set(k, {});\n            unrecKeys.get(k)[side] = true;\n        }\n        return true;\n    };\n    for (const iss of left.issues) {\n        if (!collect(iss, \"l\"))\n            result.issues.push(iss);\n    }\n    for (const iss of right.issues) {\n        if (!collect(iss, \"r\"))\n            result.issues.push(iss);\n    }\n    // Report only keys rejected by BOTH sides\n    const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k);\n    if (bothKeys.length) {\n        const aggregated = unrecIssue ? bothKeys.filter((k) => unrecIssue.keys.includes(k)) : [];\n        if (aggregated.length)\n            result.issues.push({ ...unrecIssue, keys: aggregated });\n        for (const k of bothKeys) {\n            if (!aggregated.includes(k) && keyIssues.has(k))\n                result.issues.push(keyIssues.get(k));\n        }\n    }\n    const merged = mergeValues(left.value, right.value);\n    if (!merged.valid) {\n        if (util.aborted(result))\n            return result;\n        throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n    }\n    result.value = merged.data;\n    return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const items = def.items;\n    const memo = core.globalConfig.memoizer;\n    memo?.attach(inst);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!Array.isArray(input)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"tuple\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        payload.value = memo ? memo.alloc(inst, payload, [], ctx) : [];\n        const proms = [];\n        const optinStart = getTupleOptStart(items, \"optin\");\n        const optoutStart = getTupleOptStart(items, \"optout\");\n        if (!def.rest) {\n            if (input.length < optinStart) {\n                payload.issues.push({\n                    code: \"too_small\",\n                    minimum: optinStart,\n                    inclusive: true,\n                    input,\n                    inst,\n                    origin: \"array\",\n                });\n                return payload;\n            }\n            if (input.length > items.length) {\n                payload.issues.push({\n                    code: \"too_big\",\n                    maximum: items.length,\n                    inclusive: true,\n                    input,\n                    inst,\n                    origin: \"array\",\n                });\n            }\n        }\n        // Run every item in parallel, collecting results into an indexed array. The post-processing in `handleTupleResults` walks them in order so it can decide whether an absent optional-output error can truncate the tail or must be reported to preserve required output.\n        const itemResults = new Array(items.length);\n        // only tracked when there is a rest loop to skip\n        const abortEarly = def.rest ? ctx?.abortEarly : undefined;\n        let itemAborted = false;\n        for (let i = 0; i < items.length; i++) {\n            const r = items[i]._zod.run({ value: input[i], issues: [] }, ctx);\n            if (r instanceof Promise) {\n                proms.push(r.then((rr) => {\n                    itemResults[i] = rr;\n                }));\n            }\n            else {\n                itemResults[i] = r;\n                if (abortEarly && !itemAborted && r.issues.length)\n                    itemAborted = util.aborted(r);\n            }\n        }\n        // sound because rest is non-empty exactly when every fixed index is present, the one case handleTupleResults cannot discard an item's issues\n        if (def.rest && !itemAborted) {\n            let i = items.length - 1;\n            const rest = input.slice(items.length);\n            let seen = payload.issues.length;\n            for (const el of rest) {\n                if (abortEarly && payload.issues.length !== seen) {\n                    if (util.aborted(payload, seen))\n                        break;\n                    seen = payload.issues.length;\n                }\n                i++;\n                const result = def.rest._zod.run({ value: el, issues: [] }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((r) => handleTupleResult(r, payload, i)));\n                }\n                else {\n                    handleTupleResult(result, payload, i);\n                }\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => handleTupleResults(itemResults, payload, items, input, optoutStart));\n        }\n        return handleTupleResults(itemResults, payload, items, input, optoutStart);\n    };\n});\nfunction getTupleOptStart(items, key) {\n    for (let i = items.length - 1; i >= 0; i--) {\n        // optin is a three-rung ladder so any rung above `undefined` permits an absent slot; optout stays two-valued.\n        const omittable = key === \"optin\" ? items[i]._zod.optin !== undefined : items[i]._zod.optout === \"optional\";\n        if (!omittable)\n            return i + 1;\n    }\n    return 0;\n}\nfunction handleTupleResult(result, final, index) {\n    if (result.issues.length) {\n        final.issues.push(...util.prefixIssues(index, result.issues));\n    }\n    final.value[index] = result.value;\n}\nfunction handleTupleResults(itemResults, final, items, input, optoutStart) {\n    // Walk results in order. Mirror $ZodObject's swallow-on-absent-optional rule, but only after `optoutStart`: the first index where the output tuple tail can be absent.\n    for (let i = 0; i < items.length; i++) {\n        const r = itemResults[i];\n        const isPresent = i < input.length;\n        // The array analog of `handlePropertyResult`'s absent-key early return: the middle rung permits absence without supplying anything in its place, so the tail truncates here instead of materializing whatever the item made of `undefined`.\n        if (!isPresent && i >= optoutStart && items[i]._zod.optin === \"optional\") {\n            final.value.length = i;\n            break;\n        }\n        if (r.issues.length) {\n            if (!isPresent && i >= optoutStart) {\n                final.value.length = i;\n                break;\n            }\n            final.issues.push(...util.prefixIssues(i, r.issues));\n        }\n        final.value[i] = r.value;\n    }\n    // Drop trailing slots that produced `undefined` for absent input\n    // (the array analog of an absent optional key on an object). The\n    // `i >= input.length` floor is critical: an explicit `undefined`\n    // *inside* the input must be preserved even when the schema is\n    // optional-out (e.g. `z.string().or(z.undefined())` accepting an\n    // explicit undefined value).\n    for (let i = final.value.length - 1; i >= input.length; i--) {\n        if (items[i]._zod.optout === \"optional\" && final.value[i] === undefined) {\n            final.value.length = i;\n        }\n        else {\n            break;\n        }\n    }\n    return final;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const memo = core.globalConfig.memoizer;\n    memo?.attach(inst);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!util.isPlainObject(input)) {\n            payload.issues.push({\n                expected: \"record\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        // no guard in either loop below: a record's invalid_key aborts but an enclosing intersection can reconcile it, so a stopped loop hides keys the sibling does not own and the intersection then rejects nothing\n        const proms = [];\n        const values = def.keyType._zod.values;\n        if (values && !def.partial) {\n            payload.value = memo ? memo.alloc(inst, payload, {}, ctx) : {};\n            const recordKeys = new Set();\n            for (const key of values) {\n                if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n                    recordKeys.add(typeof key === \"number\" ? key.toString() : key);\n                    // A declared __proto__ is stripped but is not an unrecognized key.\n                    if (key === \"__proto__\")\n                        continue;\n                    const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n                    if (keyResult instanceof Promise) {\n                        throw new Error(\"Async schemas not supported in object keys currently\");\n                    }\n                    if (keyResult.issues.length) {\n                        payload.issues.push({\n                            code: \"invalid_key\",\n                            origin: \"record\",\n                            issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                            input: key,\n                            path: [key],\n                            inst,\n                        });\n                        continue;\n                    }\n                    const outKey = keyResult.value;\n                    if (outKey === \"__proto__\")\n                        continue;\n                    const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                    if (result instanceof Promise) {\n                        proms.push(result.then((result) => {\n                            if (result.issues.length) {\n                                payload.issues.push(...util.prefixIssues(key, result.issues));\n                            }\n                            payload.value[outKey] = result.value;\n                        }));\n                    }\n                    else {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[outKey] = result.value;\n                    }\n                }\n            }\n            let unrecognized;\n            for (const key in input) {\n                if (!recordKeys.has(key)) {\n                    if (def.mode === \"loose\") {\n                        // skip __proto__ so it can't replace the result prototype via the assignment setter on the plain {} we build into\n                        if (key === \"__proto__\")\n                            continue;\n                        payload.value[key] = input[key];\n                    }\n                    else {\n                        unrecognized = unrecognized ?? [];\n                        unrecognized.push(key);\n                    }\n                }\n            }\n            if (unrecognized && unrecognized.length > 0) {\n                payload.issues.push({\n                    code: \"unrecognized_keys\",\n                    input,\n                    inst,\n                    keys: unrecognized,\n                    continue: true,\n                });\n            }\n        }\n        else {\n            payload.value = memo ? memo.alloc(inst, payload, {}, ctx) : {};\n            // An enumerable key schema declares which keys the record owns, so a key outside the set is unrecognized. A non-enumerable one (regex, refine) is a constraint every key must satisfy, so a failing key is invalid. Only the former is reconcilable against the other side of an intersection.\n            let unrecognized;\n            // Reflect.ownKeys for Symbol-key support; filter non-enumerable to match z.object()\n            for (const key of Reflect.ownKeys(input)) {\n                if (key === \"__proto__\")\n                    continue;\n                if (!Object.prototype.propertyIsEnumerable.call(input, key))\n                    continue;\n                let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n                if (keyResult instanceof Promise) {\n                    throw new Error(\"Async schemas not supported in object keys currently\");\n                }\n                // Numeric string fallback: if key is a numeric string and failed, retry with Number(key). This handles z.number(), z.literal([1, 2, 3]), and unions containing numeric literals\n                const checkNumericKey = typeof key === \"string\" && regexes.number.test(key) && keyResult.issues.length;\n                if (checkNumericKey) {\n                    const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx);\n                    if (retryResult instanceof Promise) {\n                        throw new Error(\"Async schemas not supported in object keys currently\");\n                    }\n                    if (retryResult.issues.length === 0) {\n                        keyResult = retryResult;\n                    }\n                }\n                if (keyResult.issues.length) {\n                    if (def.mode === \"loose\") {\n                        // Pass through unchanged\n                        payload.value[key] = input[key];\n                    }\n                    else if (values) {\n                        unrecognized = unrecognized ?? [];\n                        unrecognized.push(key);\n                    }\n                    else {\n                        // Default \"strict\" behavior: error on invalid key\n                        payload.issues.push({\n                            code: \"invalid_key\",\n                            origin: \"record\",\n                            issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n                            input: key,\n                            path: [key],\n                            inst,\n                        });\n                    }\n                    continue;\n                }\n                // the guard above tests the raw input key, but the key schema can normalize an ordinary key into __proto__; re-check the key we actually write under\n                const outKey = keyResult.value;\n                if (outKey === \"__proto__\")\n                    continue;\n                const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n                if (result instanceof Promise) {\n                    proms.push(result.then((result) => {\n                        if (result.issues.length) {\n                            payload.issues.push(...util.prefixIssues(key, result.issues));\n                        }\n                        payload.value[outKey] = result.value;\n                    }));\n                }\n                else {\n                    if (result.issues.length) {\n                        payload.issues.push(...util.prefixIssues(key, result.issues));\n                    }\n                    payload.value[outKey] = result.value;\n                }\n            }\n            if (unrecognized && unrecognized.length > 0) {\n                payload.issues.push({\n                    code: \"unrecognized_keys\",\n                    input,\n                    inst,\n                    keys: unrecognized,\n                    continue: true,\n                });\n            }\n        }\n        if (proms.length) {\n            return Promise.all(proms).then(() => payload);\n        }\n        return payload;\n    };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const memo = core.globalConfig.memoizer;\n    memo?.attach(inst);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Map)) {\n            payload.issues.push({\n                expected: \"map\",\n                code: \"invalid_type\",\n                input,\n                inst,\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = memo ? memo.alloc(inst, payload, new Map(), ctx) : new Map();\n        const abortEarly = ctx?.abortEarly;\n        let seen = payload.issues.length;\n        for (const [key, value] of input) {\n            if (abortEarly && payload.issues.length !== seen) {\n                if (util.aborted(payload, seen))\n                    break;\n                seen = payload.issues.length;\n            }\n            const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n            const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n            if (keyResult instanceof Promise || valueResult instanceof Promise) {\n                proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n                    handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n                }));\n            }\n            else {\n                handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n            }\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n    if (keyResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, keyResult.issues));\n        }\n        else {\n            final.issues.push({\n                code: \"invalid_key\",\n                origin: \"map\",\n                input,\n                inst,\n                issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    if (valueResult.issues.length) {\n        if (util.propertyKeyTypes.has(typeof key)) {\n            final.issues.push(...util.prefixIssues(key, valueResult.issues));\n        }\n        else {\n            final.issues.push({\n                origin: \"map\",\n                code: \"invalid_element\",\n                input,\n                inst,\n                key: key,\n                issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n            });\n        }\n    }\n    final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const memo = core.globalConfig.memoizer;\n    memo?.attach(inst);\n    inst._zod.parse = (payload, ctx) => {\n        const input = payload.value;\n        if (!(input instanceof Set)) {\n            payload.issues.push({\n                input,\n                inst,\n                expected: \"set\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        const proms = [];\n        payload.value = memo ? memo.alloc(inst, payload, new Set(), ctx) : new Set();\n        const abortEarly = ctx?.abortEarly;\n        let seen = payload.issues.length;\n        for (const item of input) {\n            if (abortEarly && payload.issues.length !== seen) {\n                if (util.aborted(payload, seen))\n                    break;\n                seen = payload.issues.length;\n            }\n            const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n            if (result instanceof Promise) {\n                proms.push(result.then((result) => handleSetResult(result, payload)));\n            }\n            else\n                handleSetResult(result, payload);\n        }\n        if (proms.length)\n            return Promise.all(proms).then(() => payload);\n        return payload;\n    };\n});\nfunction handleSetResult(result, final) {\n    if (result.issues.length) {\n        final.issues.push(...result.issues);\n    }\n    final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const values = util.getEnumValues(def.entries);\n    const valuesSet = new Set(values);\n    inst._zod.values = valuesSet;\n    util.defineLazyInternal(inst, \"pattern\", (zod) => {\n        const patternValues = util.getEnumValues(zod.def.entries).filter((k) => util.propertyKeyTypes.has(typeof k));\n        // unmatchable fallback, RE2-safe: an empty alternation would compile to /^()$/, which matches \"\"\n        return new RegExp(patternValues.length ? `^(${patternValues.map((o) => util.escapeRegex(o.toString())).join(\"|\")})$` : \"^[^\\\\s\\\\S]$\");\n    });\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (valuesSet.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const values = new Set(def.values);\n    inst._zod.values = values;\n    util.defineLazyInternal(inst, \"pattern\", (zod) => {\n        const vals = zod.def.values;\n        // unmatchable fallback, RE2-safe: an empty alternation would compile to /^()$/, which matches \"\"\n        return new RegExp(vals.length\n            ? `^(${vals\n                .map((o) => typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o))\n                .join(\"|\")})$`\n            : \"^[^\\\\s\\\\S]$\");\n    });\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        if (values.has(input)) {\n            return payload;\n        }\n        payload.issues.push({\n            code: \"invalid_value\",\n            values: def.values,\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        const input = payload.value;\n        // @ts-ignore\n        if (input instanceof File)\n            return payload;\n        payload.issues.push({\n            expected: \"file\",\n            code: \"invalid_type\",\n            input,\n            inst,\n        });\n        return payload;\n    };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"optional\";\n    core.globalConfig.memoizer?.guard(inst);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(inst.constructor.name);\n        }\n        const _out = def.transform(payload.value, payload);\n        if (ctx.async) {\n            const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        if (_out instanceof Promise) {\n            throw new core.$ZodAsyncError();\n        }\n        payload.value = _out;\n        return payload;\n    };\n});\nfunction handleOptionalResult(payload, result) {\n    // A substituting schema that still failed has no usable answer; yield undefined. Its issues are simply dropped: it ran on a payload of its own, so there is no shared array to truncate and nothing of the caller's to lose with it.\n    payload.value = result.issues.length ? undefined : result.value;\n    return payload;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // .optional() propagates absence rather than substituting for it, so a defaulted inner keeps its rung.\n    util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.innerType._zod.optin === \"defaulted\" ? \"defaulted\" : \"optional\");\n    inst._zod.optout = \"optional\";\n    util.defineLazyInternal(inst, \"values\", (zod) => {\n        const values = zod.def.innerType._zod.values;\n        return values ? new Set([...values, undefined]) : undefined;\n    });\n    util.defineLazyInternal(inst, \"pattern\", (zod) => {\n        const pattern = zod.def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        if (payload.value === undefined) {\n            // Only the top rung substitutes a value for absence; everything else leaves it intact, which is what .optional() means.\n            if (def.innerType._zod.optin !== \"defaulted\")\n                return payload;\n            // Its own payload, for the same reason $ZodCatch gets one: a pipe forwards an unrecognized key through the caller's issues array, and this must not read that as the substituting schema failing and drop it.\n            const result = def.innerType._zod.run({ value: payload.value, issues: [] }, ctx);\n            if (result instanceof Promise)\n                return result.then((result) => handleOptionalResult(payload, result));\n            return handleOptionalResult(payload, result);\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodExactOptional = /*@__PURE__*/ core.$constructor(\"$ZodExactOptional\", (inst, def) => {\n    // Call parent init - inherits optin/optout = \"optional\"\n    $ZodOptional.init(inst, def);\n    // Override values/pattern to NOT add undefined\n    util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n    util.defineLazyInternal(inst, \"pattern\", (zod) => zod.def.innerType._zod.pattern);\n    // Override parse to just delegate (no undefined handling)\n    inst._zod.parse = (payload, ctx) => {\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.innerType._zod.optin);\n    util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.innerType._zod.optout);\n    util.defineLazyInternal(inst, \"pattern\", (zod) => {\n        const pattern = zod.def.innerType._zod.pattern;\n        return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n    });\n    util.defineLazyInternal(inst, \"values\", (zod) => {\n        return zod.def.innerType._zod.values ? new Set([...zod.def.innerType._zod.values, null]) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        // Forward direction (decode): allow null to pass through\n        if (payload.value === null)\n            return payload;\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // inst._zod.qin = \"true\";\n    inst._zod.optin = \"defaulted\";\n    util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply defaults for undefined input\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n            /**\n             * $ZodDefault returns the default value immediately in forward direction.\n             * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe.   */\n            return payload;\n        }\n        // Forward direction: continue with default handling\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleDefaultResult(result, def));\n        }\n        return handleDefaultResult(result, def);\n    };\n});\nfunction handleDefaultResult(payload, def) {\n    if (payload.value === undefined) {\n        payload.value = def.defaultValue;\n    }\n    return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.optin = \"defaulted\";\n    util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply prefault for undefined input\n        if (payload.value === undefined) {\n            payload.value = def.defaultValue;\n        }\n        return def.innerType._zod.run(payload, ctx);\n    };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazyInternal(inst, \"values\", (zod) => {\n        const v = zod.def.innerType._zod.values;\n        return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n    });\n    inst._zod.parse = (payload, ctx) => {\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleNonOptionalResult(result, inst));\n        }\n        return handleNonOptionalResult(result, inst);\n    };\n});\nfunction handleNonOptionalResult(payload, inst) {\n    if (!payload.issues.length && payload.value === undefined) {\n        payload.issues.push({\n            code: \"invalid_type\",\n            expected: \"nonoptional\",\n            input: payload.value,\n            inst,\n        });\n    }\n    return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(\"ZodSuccess\");\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => {\n                payload.value = result.issues.length === 0;\n                return payload;\n            });\n        }\n        payload.value = result.issues.length === 0;\n        return payload;\n    };\n});\nfunction handleCatchResult(payload, result, def, ctx) {\n    if (!result.issues.length) {\n        payload.value = result.value;\n        // The value carries up, so the flag describing it has to carry with it: a back-edge into a node still being parsed must not be frozen by an enclosing readonly, and its checks belong to the node itself. Guarded so the ordinary case adds no own property.\n        if (result.memo)\n            payload.memo = true;\n        return payload;\n    }\n    // Spread the inner's own payload, not ours: `value` has to stay the input the catch was handed, and the inner ran on a payload of its own so its issues are already private to this call.\n    payload.value = def.catchValue({\n        ...result,\n        value: payload.value,\n        error: {\n            issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n        },\n        input: payload.value,\n    });\n    return payload;\n}\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.innerType._zod.optin === \"defaulted\" ? \"defaulted\" : \"optional\");\n    util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.innerType._zod.optout);\n    util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        // Forward direction (decode): apply catch logic\n        const result = def.innerType._zod.run({ value: payload.value, issues: [] }, ctx);\n        if (result instanceof Promise) {\n            return result.then((result) => handleCatchResult(payload, result, def, ctx));\n        }\n        return handleCatchResult(payload, result, def, ctx);\n    };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"nan\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazyInternal(inst, \"values\", (zod) => zod.def.in._zod.values);\n    util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.in._zod.optin);\n    util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.out._zod.optout);\n    util.defineLazyInternal(inst, \"propValues\", (zod) => zod.def.in._zod.propValues);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            const right = def.out._zod.run(payload, ctx);\n            if (right instanceof Promise) {\n                return right.then((right) => handlePipeResult(right, def.in, ctx));\n            }\n            return handlePipeResult(right, def.in, ctx);\n        }\n        const left = def.in._zod.run(payload, ctx);\n        if (left instanceof Promise) {\n            return left.then((left) => handlePipeResult(left, def.out, ctx));\n        }\n        return handlePipeResult(left, def.out, ctx);\n    };\n});\nfunction handlePipeResult(left, next, ctx) {\n    // Any issue stops the pipe, so a failing refinement never feeds its transform. An unrecognized key is the exception: it describes the input's extra properties, not the value being piped, and an enclosing intersection may yet reconcile it.\n    if (left.issues.some((iss) => iss.code !== \"unrecognized_keys\")) {\n        // prevent further checks\n        left.aborted = true;\n        return left;\n    }\n    return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazyInternal(inst, \"values\", (zod) => zod.def.in._zod.values);\n    util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.in._zod.optin);\n    util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.out._zod.optout);\n    util.defineLazyInternal(inst, \"propValues\", (zod) => zod.def.in._zod.propValues);\n    inst._zod.parse = (payload, ctx) => {\n        const direction = ctx.direction || \"forward\";\n        if (direction === \"forward\") {\n            const left = def.in._zod.run(payload, ctx);\n            if (left instanceof Promise) {\n                return left.then((left) => handleCodecAResult(left, def, ctx));\n            }\n            return handleCodecAResult(left, def, ctx);\n        }\n        else {\n            const right = def.out._zod.run(payload, ctx);\n            if (right instanceof Promise) {\n                return right.then((right) => handleCodecAResult(right, def, ctx));\n            }\n            return handleCodecAResult(right, def, ctx);\n        }\n    };\n});\nfunction handleCodecAResult(result, def, ctx) {\n    if (result.issues.length) {\n        // prevent further checks\n        result.aborted = true;\n        return result;\n    }\n    const direction = ctx.direction || \"forward\";\n    if (direction === \"forward\") {\n        const transformed = def.transform(result.value, result);\n        if (transformed instanceof Promise) {\n            return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n        }\n        return handleCodecTxResult(result, transformed, def.out, ctx);\n    }\n    else {\n        const transformed = def.reverseTransform(result.value, result);\n        if (transformed instanceof Promise) {\n            return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n        }\n        return handleCodecTxResult(result, transformed, def.in, ctx);\n    }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n    // Check if transform added any issues\n    if (left.issues.length) {\n        left.aborted = true;\n        return left;\n    }\n    return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodPreprocess = /*@__PURE__*/ core.$constructor(\"$ZodPreprocess\", (inst, def) => {\n    $ZodPipe.init(inst, def);\n});\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n    $ZodType.init(inst, def);\n    util.defineLazyInternal(inst, \"propValues\", (zod) => zod.def.innerType._zod.propValues);\n    util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n    util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.innerType?._zod?.optin);\n    util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.innerType?._zod?.optout);\n    inst._zod.parse = (payload, ctx) => {\n        if (ctx.direction === \"backward\") {\n            return def.innerType._zod.run(payload, ctx);\n        }\n        const result = def.innerType._zod.run(payload, ctx);\n        if (result instanceof Promise) {\n            return result.then(handleReadonlyResult);\n        }\n        return handleReadonlyResult(result);\n    };\n});\nfunction handleReadonlyResult(payload) {\n    // A repeat visit hands back a node that is still being built; freezing it here would make the rest of its keys fail to assign.\n    if (!payload.memo)\n        payload.value = Object.freeze(payload.value);\n    return payload;\n}\n// a leaf's pattern source with its own checks folded in: the last pattern-carrying check wins, else length bounds narrow the catch-all, else an integer format narrows the number form. the fold lives here instead of on `_zod.pattern` so a bundle without template literals never pays for it\nfunction leafPattern(schema) {\n    const def = schema._zod.def;\n    let pattern = def.pattern;\n    let isInt = !!def.format?.includes(\"int\");\n    let minimum;\n    let maximum;\n    for (const ch of def.checks ?? []) {\n        const d = ch._zod.def;\n        if (d.pattern)\n            pattern = d.pattern;\n        isInt || (isInt = !!d.format?.includes(\"int\"));\n        const lo = d.minimum ?? d.length;\n        const hi = d.maximum ?? d.length;\n        if (lo !== undefined && (minimum === undefined || lo > minimum))\n            minimum = lo;\n        if (hi !== undefined && (maximum === undefined || hi < maximum))\n            maximum = hi;\n    }\n    if (pattern)\n        return pattern.source;\n    // an empty range matches nothing at runtime, and `{8,5}` is not a legal quantifier\n    if (minimum !== undefined && maximum !== undefined && minimum > maximum)\n        return \"(?!)\";\n    if (minimum !== undefined || maximum !== undefined)\n        return regexes.string({ minimum, maximum }).source;\n    const own = schema._zod.pattern;\n    return (isInt && own === regexes.number ? regexes.integer : own)?.source;\n}\n// a part's pattern source. a wrapper's pattern embeds its inner pattern's source verbatim, so the folded form is substituted in place without knowing the wrapper's own composition; a union's options are joined the way the union builds its own pattern\nfunction partPattern(schema) {\n    const def = schema._zod.def;\n    const own = schema._zod.pattern?.source;\n    // lazy resolves its inner on the internals, not the def\n    const inner = def.innerType ?? schema._zod.innerType;\n    if (inner) {\n        const before = inner._zod.pattern?.source;\n        const after = partPattern(inner);\n        if (own && before && after && after !== before) {\n            return own.replace(util.cleanRegex(before), () => util.cleanRegex(after));\n        }\n        return own;\n    }\n    if (def.options) {\n        const sources = def.options.map(partPattern);\n        if (sources.every(Boolean))\n            return `^(${sources.map((s) => util.cleanRegex(s)).join(\"|\")})$`;\n    }\n    return leafPattern(schema);\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n    $ZodType.init(inst, def);\n    const regexParts = [];\n    for (const part of def.parts) {\n        if (typeof part === \"object\" && part !== null) {\n            // is Zod schema\n            const source = partPattern(part);\n            if (!source) {\n                throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n            }\n            regexParts.push(util.cleanRegex(source));\n        }\n        else if (part === null || util.primitiveTypes.has(typeof part)) {\n            regexParts.push(util.escapeRegex(`${part}`));\n        }\n        else {\n            throw new Error(`Invalid template literal part: ${part}`);\n        }\n    }\n    inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"string\") {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                expected: \"string\",\n                code: \"invalid_type\",\n            });\n            return payload;\n        }\n        inst._zod.pattern.lastIndex = 0;\n        if (!inst._zod.pattern.test(payload.value)) {\n            payload.issues.push({\n                input: payload.value,\n                inst,\n                code: \"invalid_format\",\n                format: def.format ?? \"template_literal\",\n                pattern: inst._zod.pattern.source,\n            });\n            return payload;\n        }\n        return payload;\n    };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // Defined, not assigned: the classic prototype exposes `_def` as a getter with no setter.\n    Object.defineProperty(inst, \"_def\", { value: def });\n    inst._zod.def = def;\n    inst.implement = (func) => {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implement() must be called with a function\");\n        }\n        // Defined inline so the closure stays anonymous: binding it to a `const` first names it, which costs 256 bytes per implemented function.\n        return Object.defineProperty(function (...args) {\n            const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n            const result = Reflect.apply(func, this, parsedArgs);\n            if (inst._def.output) {\n                return parse(inst._def.output, result);\n            }\n            return result;\n        }, \"_zod\", { value: inst._zod, enumerable: false });\n    };\n    inst.implementAsync = (func) => {\n        if (typeof func !== \"function\") {\n            throw new Error(\"implementAsync() must be called with a function\");\n        }\n        return Object.defineProperty(async function (...args) {\n            const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n            const result = await Reflect.apply(func, this, parsedArgs);\n            if (inst._def.output) {\n                return await parseAsync(inst._def.output, result);\n            }\n            return result;\n        }, \"_zod\", { value: inst._zod, enumerable: false });\n    };\n    inst._zod.parse = (payload, _ctx) => {\n        if (typeof payload.value !== \"function\") {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: \"function\",\n                input: payload.value,\n                inst,\n            });\n            return payload;\n        }\n        // Check if output is a promise type to determine if we should use async implementation\n        const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n        if (hasPromiseOutput) {\n            payload.value = inst.implementAsync(payload.value);\n        }\n        else {\n            payload.value = inst.implement(payload.value);\n        }\n        return payload;\n    };\n    inst.input = (...args) => {\n        const F = inst.constructor;\n        if (Array.isArray(args[0])) {\n            return new F({\n                type: \"function\",\n                input: new $ZodTuple({\n                    type: \"tuple\",\n                    items: args[0],\n                    rest: args[1],\n                }),\n                output: inst._def.output,\n            });\n        }\n        return new F({\n            type: \"function\",\n            input: args[0],\n            output: inst._def.output,\n        });\n    };\n    inst.output = (output) => {\n        const F = inst.constructor;\n        return new F({\n            type: \"function\",\n            input: inst._def.input,\n            output,\n        });\n    };\n    return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, ctx) => {\n        return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n    };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n    $ZodType.init(inst, def);\n    // Cache the resolved inner type on the shared `def` so all clones of this lazy (e.g. via `.describe()`/`.meta()`) share the same inner instance, preserving identity for cycle detection on recursive schemas.\n    util.defineLazy(inst._zod, \"innerType\", () => {\n        const d = def;\n        if (!d._cachedInner)\n            d._cachedInner = def.getter();\n        return d._cachedInner;\n    });\n    util.defineLazyInternal(inst, \"pattern\", (zod) => zod.innerType?._zod?.pattern);\n    util.defineLazyInternal(inst, \"propValues\", (zod) => zod.innerType?._zod?.propValues);\n    util.defineLazyInternal(inst, \"optin\", (zod) => zod.innerType?._zod?.optin ?? undefined);\n    util.defineLazyInternal(inst, \"optout\", (zod) => zod.innerType?._zod?.optout ?? undefined);\n    inst._zod.parse = (payload, ctx) => {\n        const inner = inst._zod.innerType;\n        return inner._zod.run(payload, ctx);\n    };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n    checks.$ZodCheck.init(inst, def);\n    $ZodType.init(inst, def);\n    inst._zod.parse = (payload, _) => {\n        return payload;\n    };\n    inst._zod.check = (payload) => {\n        const input = payload.value;\n        const r = def.fn(input);\n        if (r instanceof Promise) {\n            return r.then((r) => handleRefineResult(r, payload, input, inst));\n        }\n        handleRefineResult(r, payload, input, inst);\n        return;\n    };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n    if (!result) {\n        const _iss = {\n            code: \"custom\",\n            input,\n            inst, // incorporates params.error into issue reporting\n            path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n            continue: !inst._zod.def.abort,\n            // params: inst._zod.def.params,\n        };\n        if (inst._zod.def.params)\n            _iss.params = inst._zod.def.params;\n        payload.issues.push(util.issue(_iss));\n    }\n}\n","import * as util from \"./util.js\";\nexport class $ZodCyclicError extends Error {\n    constructor() {\n        super(`Cannot parse a reference cycle that closes through a transform`);\n        this.name = \"ZodCyclicError\";\n    }\n}\n/** Keyed off the context object every schema in one parse call already shares. */\nconst STATE = \"~memo\";\nconst NO_ISSUES = [];\n// a value a cycle can close through\nfunction isRef(value) {\n    return value !== null && typeof value === \"object\";\n}\n// Receivers prefix paths in place, so the cache and every hand-out need their own copies.\nfunction cloneIssues(issues) {\n    return issues.map((iss) => (iss.path ? { ...iss, path: iss.path.slice() } : { ...iss }));\n}\nconst recursive = /*@__PURE__*/ new WeakMap();\n/** What the walk established, in order of certainty: ordered so the strongest answer among children wins. */\nconst NONE = 0;\nconst ASSUMED = 1;\nconst PROVEN = 2;\n/** Whether this schema's subtree contains a cycle, so one parse can re-enter it. */\nfunction isRecursive(inst, stack, resolve) {\n    const cached = recursive.get(inst);\n    if (cached !== undefined)\n        return cached ? PROVEN : NONE;\n    // Relative to the walk in progress, so not cached.\n    if (stack.has(inst))\n        return PROVEN;\n    stack.add(inst);\n    let result = NONE;\n    const check = (child) => {\n        if (result !== PROVEN && child?._zod) {\n            const answer = isRecursive(child, stack, resolve);\n            if (answer > result)\n                result = answer;\n        }\n    };\n    // `Reflect.ownKeys` rather than `Object.keys`, so a cycle through a declared symbol key is still seen\n    const shape = (sh, spread) => {\n        let answer = NONE;\n        for (const key of Reflect.ownKeys(sh)) {\n            const desc = Object.getOwnPropertyDescriptor(sh, key);\n            // an object resolves its shape by spread, so a key it does not enumerate is never parsed; `z.properties` reads every own key and so keeps them all\n            if (spread && !desc.enumerable)\n                continue;\n            // resolving runs user code, and a factory mints a fresh subtree per read, so an edge the walk can't follow counts as a cycle\n            const child = desc.get ? ASSUMED : desc.value?._zod ? isRecursive(desc.value, stack, resolve) : NONE;\n            if (child > answer)\n                answer = child;\n        }\n        return answer;\n    };\n    const merge = (answer) => {\n        if (answer > result)\n            result = answer;\n    };\n    const def = inst._zod.def;\n    const kind = def.type;\n    switch (kind) {\n        case \"object\": {\n            const raw = util.rawShape(def);\n            // a def with no raw shape answers `shape` from an accessor of its own, and running that can mint a whole fresh subtree\n            merge(raw ? shape(raw, true) : ASSUMED);\n            check(def.catchall);\n            break;\n        }\n        case \"array\":\n            check(def.element);\n            break;\n        case \"tuple\":\n            for (const el of def.items)\n                check(el);\n            check(def.rest);\n            break;\n        case \"record\":\n        case \"map\":\n            check(def.keyType);\n            check(def.valueType);\n            break;\n        case \"set\":\n            check(def.valueType);\n            break;\n        case \"union\":\n            for (const el of def.options)\n                check(el);\n            break;\n        case \"intersection\":\n            check(def.left);\n            check(def.right);\n            break;\n        case \"optional\":\n        case \"nullable\":\n        case \"default\":\n        case \"prefault\":\n        case \"catch\":\n        case \"readonly\":\n        case \"nonoptional\":\n        case \"promise\":\n        case \"success\":\n            check(def.innerType);\n            break;\n        case \"pipe\":\n            check(def.in);\n            check(def.out);\n            break;\n        case \"function\":\n            check(def.input);\n            check(def.output);\n            break;\n        // `$ZodLazy` caches its inner on the def, so a resolved edge is followed exactly\n        case \"lazy\": {\n            const inner = def._cachedInner ?? (resolve ? inst._zod.innerType : undefined);\n            // walked with resolution off: one hop sees past the deferral, and a lazy that yields only another unresolved lazy is generative, so it stops there\n            merge(inner ? isRecursive(inner, stack, false) : ASSUMED);\n            break;\n        }\n        // a leaf by choice: `parts` are regex fragments, not data positions\n        case \"template_literal\":\n        // leaves\n        case \"string\":\n        case \"number\":\n        case \"int\":\n        case \"boolean\":\n        case \"bigint\":\n        case \"symbol\":\n        case \"undefined\":\n        case \"null\":\n        case \"void\":\n        case \"never\":\n        case \"any\":\n        case \"unknown\":\n        case \"date\":\n        case \"nan\":\n        case \"enum\":\n        case \"literal\":\n        case \"file\":\n        case \"transform\":\n        case \"custom\":\n            break;\n        default: {\n            // a new built-in kind becomes a compile error here\n            kind;\n            // a user-defined kind can still hold children, and only its author knows where, so fall back to scanning the def — skipping accessors, since reading one can run user code\n            for (const key in def) {\n                const desc = Object.getOwnPropertyDescriptor(def, key);\n                if (!desc || desc.get)\n                    continue;\n                const value = desc.value;\n                if (!value || typeof value !== \"object\")\n                    continue;\n                if (value._zod)\n                    check(value);\n                else if (Array.isArray(value))\n                    for (const el of value)\n                        check(el);\n            }\n        }\n    }\n    stack.delete(inst);\n    return settle(inst, result);\n}\n/** An assumed answer must not outlive the resolution that settles it, so only a certain one is cached. */\nfunction settle(inst, answer) {\n    if (answer !== ASSUMED)\n        recursive.set(inst, answer === PROVEN);\n    return answer;\n}\n/**\n * Whether one parse can re-enter this schema, i.e. its subtree contains a cycle.\n * Exported for `z.compile`, which refuses to compile such a schema: cycle\n * breaking is driven from here off state keyed on the parse context, and a\n * generated fast path has no context to key on.\n */\nexport function isRecursiveSchema(inst) {\n    // z.compile never parses, so nothing would ever resolve a lazy for it; it runs once and already treats a throw here as recursive\n    return isRecursive(inst, new Set(), true) !== NONE;\n}\nfunction bucketFor(state, inst) {\n    let bucket = state.buckets.get(inst);\n    if (!bucket) {\n        bucket = new WeakMap();\n        state.buckets.set(inst, bucket);\n    }\n    return bucket;\n}\n// Set immediately before delegating to core and cleared immediately after, so `alloc` registers only for a visit this module is driving.\nlet handoff;\n// Allocated but unfinished entries. `alloc` and the matching pop both happen in the synchronous part of a parse, so they nest even when children are async, and one stack serves every schema.\nconst open = [];\nconst memo = {\n    alloc(_inst, payload, empty) {\n        const bucket = handoff;\n        if (!bucket)\n            return empty;\n        handoff = undefined;\n        const entry = { value: empty, issues: null };\n        bucket.set(payload.value, entry);\n        open.push(entry);\n        return empty;\n    },\n    guard(inst) {\n        var _a;\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        inst._zod.deferred.push(() => {\n            const base = inst._zod.parse;\n            const wrapped = (payload, ctx) => {\n                // The value is a placeholder a back-edge is still waiting on, so the cycle closes through this transform. Its output can't exist in time to bind.\n                if (ctx.direction !== \"backward\" && isBackEdge(ctx, payload.value))\n                    throw new $ZodCyclicError();\n                return base(payload, ctx);\n            };\n            inst._zod.parse = wrapped;\n            if (inst._zod.run === base)\n                inst._zod.run = wrapped;\n        });\n    },\n    attach(inst) {\n        var _a;\n        let isRecursiveInst;\n        let rechecked = false;\n        // a recursive schema is re-entered many times per parse and its bucket never changes\n        let lastCtx;\n        let lastBucket;\n        // Wraps `parse` in a deferred so it sees the container's final parse. Core's own deferred copies `parse` into `run` when there are no checks, and it ran first, so `run` is patched to match; with checks, `run` reads `parse` dynamically.\n        (_a = inst._zod).deferred ?? (_a.deferred = []);\n        inst._zod.deferred.push(() => {\n            const base = inst._zod.parse;\n            const wrapped = (payload, ctx) => {\n                if (isRecursiveInst === undefined) {\n                    const walked = isRecursive(inst, new Set(), false);\n                    if (walked === NONE) {\n                        // Nothing here can ever fire, so take it back out.\n                        inst._zod.parse = base;\n                        if (inst._zod.run === wrapped)\n                            inst._zod.run = base;\n                        return base(payload, ctx);\n                    }\n                    // this parse resolves the deferred edges on its own path, so ask once more before latching\n                    if (walked === PROVEN || rechecked)\n                        isRecursiveInst = true;\n                    else\n                        rechecked = true;\n                }\n                const input = payload.value;\n                if (!isRef(input))\n                    return base(payload, ctx);\n                let state = ctx[STATE];\n                if (!state) {\n                    state = { buckets: new WeakMap(), backEdges: undefined };\n                    ctx[STATE] = state;\n                }\n                let bucket;\n                if (lastCtx === ctx) {\n                    bucket = lastBucket;\n                }\n                else {\n                    bucket = bucketFor(state, inst);\n                    lastCtx = ctx;\n                    lastBucket = bucket;\n                }\n                const hit = bucket.get(input);\n                if (hit) {\n                    payload.value = hit.value;\n                    if (hit.issues) {\n                        if (hit.issues.length)\n                            payload.issues.push(...cloneIssues(hit.issues));\n                    }\n                    else {\n                        // Still being parsed: its own checks cover it, so skip them here.\n                        payload.memo = true;\n                        state.backEdges ?? (state.backEdges = new WeakSet());\n                        state.backEdges.add(hit.value);\n                    }\n                    return payload;\n                }\n                handoff = bucket;\n                const depth = open.length;\n                const result = base(payload, ctx);\n                handoff = undefined;\n                // A container that rejected its input outright allocated nothing.\n                const entry = open.length > depth ? open.pop() : undefined;\n                // Both paths written out so the sync one allocates no closure. It runs once per node, and capturing here cost more than everything else combined.\n                if (result instanceof Promise) {\n                    return result.then((r) => {\n                        if (entry)\n                            entry.issues = r.issues.length ? cloneIssues(r.issues) : NO_ISSUES;\n                        return r;\n                    });\n                }\n                if (entry)\n                    entry.issues = result.issues.length ? cloneIssues(result.issues) : NO_ISSUES;\n                return result;\n            };\n            inst._zod.parse = wrapped;\n            if (inst._zod.run === base)\n                inst._zod.run = wrapped;\n        });\n    },\n};\n/** The memoizer that gives containers cycle support. `zod` installs it by default; `zod/mini` opts in with `config({ memoizer: memoizer() })`. */\nexport function memoizer() {\n    return memo;\n}\n/** Whether this value is a node a back-edge resolved to before it finished. */\nexport function isBackEdge(ctx, value) {\n    const backEdges = ctx[STATE]?.backEdges;\n    return backEdges !== undefined && isRef(value) && backEdges.has(value);\n}\n","import * as util from \"../core/util.js\";\nconst error = () => {\n    const Sizable = {\n        string: { unit: \"characters\", verb: \"to have\" },\n        file: { unit: \"bytes\", verb: \"to have\" },\n        array: { unit: \"items\", verb: \"to have\" },\n        set: { unit: \"items\", verb: \"to have\" },\n        map: { unit: \"entries\", verb: \"to have\" },\n    };\n    function getSizing(origin) {\n        return Sizable[origin] ?? null;\n    }\n    const FormatDictionary = {\n        regex: \"input\",\n        email: \"email address\",\n        url: \"URL\",\n        emoji: \"emoji\",\n        uuid: \"UUID\",\n        uuidv4: \"UUIDv4\",\n        uuidv6: \"UUIDv6\",\n        nanoid: \"nanoid\",\n        guid: \"GUID\",\n        cuid: \"cuid\",\n        cuid2: \"cuid2\",\n        ulid: \"ULID\",\n        xid: \"XID\",\n        ksuid: \"KSUID\",\n        datetime: \"ISO datetime\",\n        date: \"ISO date\",\n        time: \"ISO time\",\n        duration: \"ISO duration\",\n        ipv4: \"IPv4 address\",\n        ipv6: \"IPv6 address\",\n        mac: \"MAC address\",\n        cidrv4: \"IPv4 range\",\n        cidrv6: \"IPv6 range\",\n        base64: \"base64-encoded string\",\n        base64url: \"base64url-encoded string\",\n        json_string: \"JSON string\",\n        e164: \"E.164 number\",\n        currency_code: \"currency code\",\n        credit_card: \"credit card number\",\n        iban: \"IBAN\",\n        jwt: \"JWT\",\n        template_literal: \"input\",\n    };\n    // type names: missing keys = do not translate (use raw value via ?? fallback)\n    const TypeDictionary = {\n        // Compatibility: \"nan\" -> \"NaN\" for display\n        nan: \"NaN\",\n        // All other type names omitted - they fall back to raw values via ?? operator\n    };\n    function getTypeName(type, input) {\n        if (type === \"number\" && typeof input === \"number\" && !Number.isFinite(input)) {\n            return String(input);\n        }\n        return TypeDictionary[type] ?? type;\n    }\n    return (issue) => {\n        switch (issue.code) {\n            case \"invalid_type\": {\n                const expected = getTypeName(issue.expected);\n                const receivedType = util.parsedType(issue.input);\n                const received = getTypeName(receivedType, issue.input);\n                return `Invalid input: expected ${expected}, received ${received}`;\n            }\n            case \"invalid_value\":\n                if (issue.values.length === 1)\n                    return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n                return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n            case \"too_big\": {\n                const adj = issue.exact ? \"exactly \" : issue.inclusive ? \"<=\" : \"<\";\n                const sizing = getSizing(issue.origin);\n                if (sizing)\n                    return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n                return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n            }\n            case \"too_small\": {\n                const adj = issue.exact ? \"exactly \" : issue.inclusive ? \">=\" : \">\";\n                const sizing = getSizing(issue.origin);\n                if (sizing) {\n                    return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n                }\n                return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n            }\n            case \"invalid_format\": {\n                const _issue = issue;\n                if (_issue.format === \"starts_with\") {\n                    return `Invalid string: must start with \"${_issue.prefix}\"`;\n                }\n                if (_issue.format === \"ends_with\")\n                    return `Invalid string: must end with \"${_issue.suffix}\"`;\n                if (_issue.format === \"includes\")\n                    return `Invalid string: must include \"${_issue.includes}\"`;\n                if (_issue.format === \"regex\")\n                    return `Invalid string: must match pattern ${_issue.pattern}`;\n                return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n            }\n            case \"not_multiple_of\":\n                return `Invalid number: must be a multiple of ${issue.divisor}`;\n            case \"unrecognized_keys\":\n                return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n            case \"invalid_key\":\n                return `Invalid key in ${issue.origin}`;\n            case \"invalid_union\":\n                if (issue.options && Array.isArray(issue.options) && issue.options.length > 0) {\n                    const opts = issue.options.map((o) => `'${o}'`).join(\" | \");\n                    return `Invalid discriminator value. Expected ${opts}`;\n                }\n                if (issue.inclusive === false) {\n                    return \"Invalid input: more than one option matched\";\n                }\n                return \"Invalid input\";\n            case \"invalid_element\":\n                return `Invalid value in ${issue.origin}`;\n            default:\n                return `Invalid input`;\n        }\n    };\n};\nexport default function () {\n    return {\n        localeError: error(),\n    };\n}\n","var _a;\nexport const $output = /*@__PURE__*/ Symbol(\"ZodOutput\");\nexport const $input = /*@__PURE__*/ Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n    constructor() {\n        this._map = new WeakMap();\n        this._idmap = new Map();\n    }\n    add(schema, ..._meta) {\n        const meta = _meta[0];\n        this._map.set(schema, meta);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            this._idmap.set(meta.id, schema);\n        }\n        return this;\n    }\n    clear() {\n        this._map = new WeakMap();\n        this._idmap = new Map();\n        return this;\n    }\n    remove(schema) {\n        const meta = this._map.get(schema);\n        if (meta && typeof meta === \"object\" && \"id\" in meta) {\n            this._idmap.delete(meta.id);\n        }\n        this._map.delete(schema);\n        return this;\n    }\n    get(schema) {\n        // return this._map.get(schema) as any;\n        // inherit metadata\n        const p = schema._zod.parent;\n        if (p) {\n            const pm = { ...(this.get(p) ?? {}) };\n            delete pm.id; // do not inherit id\n            const f = { ...pm, ...this._map.get(schema) };\n            return Object.keys(f).length ? f : undefined;\n        }\n        return this._map.get(schema);\n    }\n    has(schema) {\n        return this._map.has(schema);\n    }\n}\n// registries\nexport function registry() {\n    return new $ZodRegistry();\n}\n(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());\nexport const globalRegistry = globalThis.__zod_globalRegistry;\n","import * as checks from \"./checks.js\";\nimport * as registries from \"./registries.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nfunction snapshotChecks(def) {\n    if (def.checks)\n        def.checks = [...def.checks];\n    return def;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _string(Class, params) {\n    return new Class(snapshotChecks({ type: \"string\", ...util.normalizeParams(params) }));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedString(Class, params) {\n    return new Class(snapshotChecks({ type: \"string\", coerce: true, ...util.normalizeParams(params) }));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _email(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"email\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _guid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"guid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v4\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v6\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv7(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"uuid\",\n        check: \"string_format\",\n        abort: false,\n        version: \"v7\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _emoji(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"emoji\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nanoid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"nanoid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link _cuid2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\n// @__NO_SIDE_EFFECTS__\nexport function _cuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cuid2(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cuid2\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ulid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ulid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _xid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"xid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ksuid(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ksuid\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"ipv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mac(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"mac\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv4(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv4\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv6(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"cidrv6\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64url(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"base64url\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _e164(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"e164\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _creditCard(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"credit_card\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _iban(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"iban\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _jwt(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"jwt\",\n        check: \"string_format\",\n        abort: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport const TimePrecision = {\n    Any: null,\n    Minute: -1,\n    Second: 0,\n    Millisecond: 3,\n    Microsecond: 6,\n};\n// @__NO_SIDE_EFFECTS__\nexport function _isoDateTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"datetime\",\n        check: \"string_format\",\n        offset: false,\n        local: false,\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDate(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"date\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoTime(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"time\",\n        check: \"string_format\",\n        precision: null,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDuration(Class, params) {\n    return new Class({\n        type: \"string\",\n        format: \"duration\",\n        check: \"string_format\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _number(Class, params) {\n    return new Class(snapshotChecks({ type: \"number\", checks: [], ...util.normalizeParams(params) }));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedNumber(Class, params) {\n    return new Class(snapshotChecks({ type: \"number\", coerce: true, checks: [], ...util.normalizeParams(params) }));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"safeint\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float32\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float64(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"float64\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"int32\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint32(Class, params) {\n    return new Class({\n        type: \"number\",\n        check: \"number_format\",\n        abort: false,\n        format: \"uint32\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _boolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBoolean(Class, params) {\n    return new Class({\n        type: \"boolean\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _bigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBigint(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"int64\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint64(Class, params) {\n    return new Class({\n        type: \"bigint\",\n        check: \"bigint_format\",\n        abort: false,\n        format: \"uint64\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _symbol(Class, params) {\n    return new Class({\n        type: \"symbol\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _undefined(Class, params) {\n    return new Class({\n        type: \"undefined\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _null(Class, params) {\n    return new Class({\n        type: \"null\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _any(Class) {\n    return new Class({\n        type: \"any\",\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _unknown(Class) {\n    return new Class({\n        type: \"unknown\",\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _never(Class, params) {\n    return new Class({\n        type: \"never\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _void(Class, params) {\n    return new Class({\n        type: \"void\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _date(Class, params) {\n    return new Class({\n        type: \"date\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedDate(Class, params) {\n    return new Class({\n        type: \"date\",\n        coerce: true,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nan(Class, params) {\n    return new Class({\n        type: \"nan\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lt(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lte(value, params) {\n    return new checks.$ZodCheckLessThan({\n        check: \"less_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\n// @__NO_SIDE_EFFECTS__\nexport function _gt(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: false,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _gte(value, params) {\n    return new checks.$ZodCheckGreaterThan({\n        check: \"greater_than\",\n        ...util.normalizeParams(params),\n        value,\n        inclusive: true,\n    });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\n// @__NO_SIDE_EFFECTS__\nexport function _positive(params) {\n    return _gt(0, params);\n}\n// negative\n// @__NO_SIDE_EFFECTS__\nexport function _negative(params) {\n    return _lt(0, params);\n}\n// nonpositive\n// @__NO_SIDE_EFFECTS__\nexport function _nonpositive(params) {\n    return _lte(0, params);\n}\n// nonnegative\n// @__NO_SIDE_EFFECTS__\nexport function _nonnegative(params) {\n    return _gte(0, params);\n}\n// @__NO_SIDE_EFFECTS__\nexport function _multipleOf(value, params) {\n    return new checks.$ZodCheckMultipleOf({\n        check: \"multiple_of\",\n        ...util.normalizeParams(params),\n        value,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxSize(maximum, params) {\n    return new checks.$ZodCheckMaxSize({\n        check: \"max_size\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minSize(minimum, params) {\n    return new checks.$ZodCheckMinSize({\n        check: \"min_size\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _size(size, params) {\n    return new checks.$ZodCheckSizeEquals({\n        check: \"size_equals\",\n        ...util.normalizeParams(params),\n        size,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxLength(maximum, params) {\n    const ch = new checks.$ZodCheckMaxLength({\n        check: \"max_length\",\n        ...util.normalizeParams(params),\n        maximum,\n    });\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minLength(minimum, params) {\n    return new checks.$ZodCheckMinLength({\n        check: \"min_length\",\n        ...util.normalizeParams(params),\n        minimum,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _length(length, params) {\n    return new checks.$ZodCheckLengthEquals({\n        check: \"length_equals\",\n        ...util.normalizeParams(params),\n        length,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _regex(pattern, params) {\n    return new checks.$ZodCheckRegex({\n        check: \"string_format\",\n        format: \"regex\",\n        ...util.normalizeParams(params),\n        pattern,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lowercase(params) {\n    return new checks.$ZodCheckLowerCase({\n        check: \"string_format\",\n        format: \"lowercase\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uppercase(params) {\n    return new checks.$ZodCheckUpperCase({\n        check: \"string_format\",\n        format: \"uppercase\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _includes(includes, params) {\n    return new checks.$ZodCheckIncludes({\n        check: \"string_format\",\n        format: \"includes\",\n        ...util.normalizeParams(params),\n        includes,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _startsWith(prefix, params) {\n    return new checks.$ZodCheckStartsWith({\n        check: \"string_format\",\n        format: \"starts_with\",\n        ...util.normalizeParams(params),\n        prefix,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _endsWith(suffix, params) {\n    return new checks.$ZodCheckEndsWith({\n        check: \"string_format\",\n        format: \"ends_with\",\n        ...util.normalizeParams(params),\n        suffix,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _property(property, schema, params) {\n    return new checks.$ZodCheckProperty({\n        check: \"property\",\n        property,\n        schema,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _properties(shape, params) {\n    return new checks.$ZodCheckProperties({\n        check: \"properties\",\n        shape,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mime(types, params) {\n    return new checks.$ZodCheckMimeType({\n        check: \"mime_type\",\n        mime: types,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _overwrite(tx) {\n    return new checks.$ZodCheckOverwrite({\n        check: \"overwrite\",\n        tx,\n    });\n}\n// normalize\n// @__NO_SIDE_EFFECTS__\nexport function _normalize(form) {\n    return _overwrite((input) => input.normalize(form));\n}\n// trim\n// @__NO_SIDE_EFFECTS__\nexport function _trim() {\n    return _overwrite((input) => input.trim());\n}\n// toLowerCase\n// @__NO_SIDE_EFFECTS__\nexport function _toLowerCase() {\n    return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\n// @__NO_SIDE_EFFECTS__\nexport function _toUpperCase() {\n    return _overwrite((input) => input.toUpperCase());\n}\n// slugify\n// @__NO_SIDE_EFFECTS__\nexport function _slugify() {\n    return _overwrite((input) => util.slugify(input));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _array(Class, element, params) {\n    return new Class({\n        type: \"array\",\n        element,\n        // get element() {\n        //   return element;\n        // },\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _union(Class, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        ...util.normalizeParams(params),\n    });\n}\nexport function _xor(Class, options, params) {\n    return new Class({\n        type: \"union\",\n        options,\n        inclusive: false,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n    return new Class({\n        type: \"union\",\n        options: options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _intersection(Class, left, right) {\n    return new Class({\n        type: \"intersection\",\n        left,\n        right,\n    });\n}\n// export function _tuple(\n//   Class: util.SchemaClass<schemas.$ZodTuple>,\n//   items: [],\n//   params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\n// @__NO_SIDE_EFFECTS__\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new Class({\n        type: \"tuple\",\n        items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _record(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"record\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _map(Class, keyType, valueType, params) {\n    return new Class({\n        type: \"map\",\n        keyType,\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _set(Class, valueType, params) {\n    return new Class({\n        type: \"set\",\n        valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _enum(Class, values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    // if (Array.isArray(values)) {\n    //   for (const value of values) {\n    //     entries[value] = value;\n    //   }\n    // } else {\n    //   Object.assign(entries, values);\n    // }\n    // const entries: util.EnumLike = {};\n    // for (const val of values) {\n    //   entries[val] = val;\n    // }\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n    return new Class({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _literal(Class, value, params) {\n    return new Class({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _file(Class, params) {\n    return new Class({\n        type: \"file\",\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _transform(Class, fn) {\n    return new Class({\n        type: \"transform\",\n        transform: fn,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _optional(Class, innerType) {\n    return new Class({\n        type: \"optional\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nullable(Class, innerType) {\n    return new Class({\n        type: \"nullable\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _default(Class, innerType, defaultValue) {\n    return new Class({\n        type: \"default\",\n        innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nonoptional(Class, innerType, params) {\n    return new Class({\n        type: \"nonoptional\",\n        innerType,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _success(Class, innerType) {\n    return new Class({\n        type: \"success\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _catch(Class, innerType, catchValue) {\n    return new Class({\n        type: \"catch\",\n        innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : util.constantCatch(catchValue)),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _pipe(Class, in_, out) {\n    return new Class({\n        type: \"pipe\",\n        in: in_,\n        out,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _readonly(Class, innerType) {\n    return new Class({\n        type: \"readonly\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _templateLiteral(Class, parts, params) {\n    return new Class({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lazy(Class, getter) {\n    return new Class({\n        type: \"lazy\",\n        getter,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _promise(Class, innerType) {\n    return new Class({\n        type: \"promise\",\n        innerType,\n    });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _custom(Class, fn, _params) {\n    const norm = util.normalizeParams(_params);\n    norm.abort ?? (norm.abort = true); // default to abort:false\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...norm,\n    });\n    return schema;\n}\n// same as _custom but defaults to abort:false\n// @__NO_SIDE_EFFECTS__\nexport function _refine(Class, fn, _params) {\n    const schema = new Class({\n        type: \"custom\",\n        check: \"custom\",\n        fn: fn,\n        ...util.normalizeParams(_params),\n    });\n    return schema;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _superRefine(fn, params) {\n    const ch = _check((payload) => {\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                if (!(\"input\" in _issue))\n                    _issue.input = payload.value;\n                _issue.inst ?? (_issue.inst = ch);\n                _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        return fn(payload.value, payload);\n    }, params);\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _check(fn, params) {\n    const ch = new checks.$ZodCheck({\n        check: \"custom\",\n        ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function describe(description) {\n    const ch = new checks.$ZodCheck({ check: \"describe\" });\n    ch._zod.onattach = [\n        (inst) => {\n            const existing = registries.globalRegistry.get(inst) ?? {};\n            registries.globalRegistry.add(inst, { ...existing, description });\n        },\n    ];\n    ch._zod.check = () => { }; // no-op check\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function meta(metadata) {\n    const ch = new checks.$ZodCheck({ check: \"meta\" });\n    ch._zod.onattach = [\n        (inst) => {\n            const existing = registries.globalRegistry.get(inst) ?? {};\n            registries.globalRegistry.add(inst, { ...existing, ...metadata });\n        },\n    ];\n    ch._zod.check = () => { }; // no-op check\n    return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringbool(Classes, _params) {\n    const params = util.normalizeParams(_params);\n    let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n    let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n    if (params.case !== \"sensitive\") {\n        truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n        falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n    }\n    const truthySet = new Set(truthyArray);\n    const falsySet = new Set(falsyArray);\n    const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n    const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n    const _String = Classes.String ?? schemas.$ZodString;\n    const stringSchema = new _String({ type: \"string\", error: params.error });\n    const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n    const codec = new _Codec({\n        type: \"pipe\",\n        in: stringSchema,\n        out: booleanSchema,\n        transform: ((input, payload) => {\n            let data = input;\n            if (params.case !== \"sensitive\")\n                data = data.toLowerCase();\n            if (truthySet.has(data)) {\n                return true;\n            }\n            else if (falsySet.has(data)) {\n                return false;\n            }\n            else {\n                payload.issues.push({\n                    code: \"invalid_value\",\n                    expected: \"stringbool\",\n                    values: [...truthySet, ...falsySet],\n                    input: payload.value,\n                    inst: codec,\n                    continue: false,\n                });\n                return {};\n            }\n        }),\n        reverseTransform: ((input, _payload) => {\n            if (input === true) {\n                return truthyArray[0] || \"true\";\n            }\n            else {\n                return falsyArray[0] || \"false\";\n            }\n        }),\n        error: params.error,\n    });\n    codec._zod.bag.truthy = truthyArray;\n    codec._zod.bag.falsy = falsyArray;\n    codec._zod.bag.case = params.case ?? \"insensitive\";\n    return codec;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n    const params = util.normalizeParams(_params);\n    const def = {\n        check: \"string_format\",\n        type: \"string\",\n        format,\n        fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n        ...params,\n    };\n    if (fnOrRegex instanceof RegExp) {\n        def.pattern = fnOrRegex;\n    }\n    const inst = new Class(def);\n    return inst;\n}\n","import { globalRegistry } from \"./registries.js\";\nimport { assignProp } from \"./util.js\";\nfunction assignProps(target, ...sources) {\n    for (const source of sources) {\n        for (const key of Reflect.ownKeys(source)) {\n            if (Object.prototype.propertyIsEnumerable.call(source, key)) {\n                assignProp(target, key, source[key]);\n            }\n        }\n    }\n    return target;\n}\n// function initializeContext<T extends schemas.$ZodType>(inputs: JSONSchemaGeneratorParams<T>): ToJSONSchemaContext<T> {\n//   return {\n//     processor: inputs.processor,\n//     metadataRegistry: inputs.metadata ?? globalRegistry,\n//     target: inputs.target ?? \"draft-2020-12\",\n//     unrepresentable: inputs.unrepresentable ?? \"throw\",\n//   };\n// }\nexport function initializeContext(params) {\n    // Normalize target: convert old non-hyphenated versions to hyphenated versions\n    let target = params?.target ?? \"draft-2020-12\";\n    if (target === \"draft-4\")\n        target = \"draft-04\";\n    if (target === \"draft-7\")\n        target = \"draft-07\";\n    return {\n        processors: params.processors ?? {},\n        metadataRegistry: params?.metadata ?? globalRegistry,\n        target,\n        unrepresentable: params?.unrepresentable ?? \"throw\",\n        override: params?.override ?? (() => { }),\n        io: params?.io ?? \"output\",\n        counter: 0,\n        seen: new Map(),\n        sharedDefsExtractedFor: undefined,\n        sharedEmitDoneFor: undefined,\n        cycles: params?.cycles ?? \"ref\",\n        reused: params?.reused ?? \"inline\",\n        intersections: [],\n        deferred: [],\n        external: params?.external ?? undefined,\n    };\n}\n/**\n * Applies the `unrepresentable` setting at a site that has no JSON Schema equivalent. Throws\n * `message` unless the setting (or the handler's return value) says otherwise. Returns `true` if a\n * custom JSON Schema was written into `json`, in which case the caller must not write its own.\n */\nexport function handleUnrepresentable(schema, ctx, json, params, message) {\n    const result = typeof ctx.unrepresentable === \"function\"\n        ? ctx.unrepresentable({ zodSchema: schema, path: params.path, message })\n        : ctx.unrepresentable;\n    if (result === \"any\")\n        return false;\n    if (result === undefined || result === \"throw\")\n        throw new Error(message);\n    Object.assign(json, result);\n    return true;\n}\n// never rename this back to `process`: bundler polyfills inject a top-level `const process` that a lexical declaration of the same name collides with (#6397)\nexport function processSchema(schema, ctx, _params = { path: [], schemaPath: [] }) {\n    var _a;\n    const def = schema._zod.def;\n    // check for schema in seens\n    const seen = ctx.seen.get(schema);\n    if (seen) {\n        seen.count++;\n        // check if cycle\n        const isCycle = _params.schemaPath.includes(schema);\n        if (isCycle) {\n            seen.cycle = _params.path;\n        }\n        return seen.schema;\n    }\n    // initialize\n    const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n    ctx.seen.set(schema, result);\n    ctx.sharedDefsExtractedFor = undefined;\n    ctx.sharedEmitDoneFor = undefined;\n    // custom method overrides default behavior\n    const overrideSchema = schema._zod.toJSONSchema?.();\n    if (overrideSchema) {\n        result.schema = overrideSchema;\n    }\n    else {\n        const params = {\n            ..._params,\n            schemaPath: [..._params.schemaPath, schema],\n            path: _params.path,\n        };\n        if (schema._zod.processJSONSchema) {\n            schema._zod.processJSONSchema(ctx, result.schema, params);\n        }\n        else {\n            const _json = result.schema;\n            const processor = ctx.processors[def.type];\n            if (!processor) {\n                throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`);\n            }\n            processor(schema, ctx, _json, params);\n        }\n        const parent = schema._zod.parent;\n        if (parent) {\n            // Also set ref if processor didn't (for inheritance)\n            if (!result.ref)\n                result.ref = parent;\n            processSchema(parent, ctx, params);\n            ctx.seen.get(parent).isParent = true;\n        }\n    }\n    // metadata\n    const meta = ctx.metadataRegistry.get(schema);\n    if (meta)\n        assignProps(result.schema, meta);\n    if (ctx.io === \"input\" && isTransforming(schema)) {\n        // examples/defaults only apply to output type of pipe\n        delete result.schema.examples;\n        delete result.schema.default;\n    }\n    // set prefault as default\n    if (ctx.io === \"input\" && \"_prefault\" in result.schema)\n        (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n    delete result.schema._prefault;\n    // pulling fresh from ctx.seen in case it was overwritten\n    const _result = ctx.seen.get(schema);\n    return _result.schema;\n}\n/** @deprecated Renamed to `processSchema`. An export alias declares no binding, so it is safe to keep. */\nexport { processSchema as process };\n// Escape a reference token for use in a JSON Pointer fragment (RFC 6901): `~` becomes `~0` and `/` becomes `~1`. The `~` replacement must run first.\nfunction encodeJSONPointerSegment(segment) {\n    return segment.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexport function extractDefs(ctx, schema\n// params: EmitParams\n) {\n    // iterate over seen map;\n    const root = ctx.seen.get(schema);\n    if (!root)\n        throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n    // With `external` set, every registered schema resolves through the external branch of `makeURI`, so the root branch below produces the same ref the external branch would — this pass is identical whichever schema it is called with, and only needs to run once.\n    if (ctx.external && ctx.sharedDefsExtractedFor === ctx.external)\n        return;\n    // Track ids to detect duplicates across different schemas\n    const idToSchema = new Map();\n    for (const entry of ctx.seen.entries()) {\n        const id = ctx.metadataRegistry.get(entry[0])?.id;\n        if (id) {\n            const existing = idToSchema.get(id);\n            if (existing && existing !== entry[0]) {\n                throw new Error(`Duplicate schema id \"${id}\" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);\n            }\n            idToSchema.set(id, entry[0]);\n        }\n    }\n    // returns a ref to the schema defId will be empty if the ref points to an external schema (or #)\n    const makeURI = (entry) => {\n        // comparing the seen objects because sometimes multiple schemas map to the same seen object. e.g. lazy\n        // external is configured\n        const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n        if (ctx.external) {\n            const externalId = ctx.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${ctx.counter++}`;\n            // check if schema is in the external registry\n            const uriGenerator = ctx.external.uri ?? ((id) => id);\n            if (externalId) {\n                return { ref: uriGenerator(externalId) };\n            }\n            // otherwise, add to __shared\n            const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`;\n            entry[1].defId = id; // set defId so it will be reused if needed\n            return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${encodeJSONPointerSegment(id)}` };\n        }\n        const uriPrefix = `#`;\n        const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n        // an id-less root has nowhere to be extracted to, so it stays inline and self-references as `#`\n        if (entry[1] === root && !entry[1].schema.id) {\n            return { ref: uriPrefix };\n        }\n        // self-contained schema\n        const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`;\n        return { defId, ref: defUriPrefix + encodeJSONPointerSegment(defId) };\n    };\n    // stored cached version in `def` property remove all properties, set $ref\n    const extractToDef = (entry) => {\n        // if the schema is already a reference, do not extract it\n        if (entry[1].schema.$ref) {\n            return;\n        }\n        const seen = entry[1];\n        const { ref, defId } = makeURI(entry);\n        seen.def = { ...seen.schema };\n        // defId won't be set if the schema is a reference to an external schema or if the schema is the root schema\n        if (defId)\n            seen.defId = defId;\n        // wipe away all properties except $ref\n        const schema = seen.schema;\n        for (const key in schema) {\n            delete schema[key];\n        }\n        schema.$ref = ref;\n    };\n    // throw on cycles\n    // break cycles\n    if (ctx.cycles === \"throw\") {\n        for (const entry of ctx.seen.entries()) {\n            const seen = entry[1];\n            if (seen.cycle) {\n                throw new Error(\"Cycle detected: \" +\n                    `#/${seen.cycle?.join(\"/\")}/<root>` +\n                    '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n            }\n        }\n    }\n    // extract schemas into $defs\n    for (const entry of ctx.seen.entries()) {\n        const seen = entry[1];\n        // convert root schema to # $ref\n        if (schema === entry[0]) {\n            extractToDef(entry); // this has special handling for the root schema\n            continue;\n        }\n        // extract schemas that are in the external registry\n        if (ctx.external) {\n            const ext = ctx.external.registry.get(entry[0])?.id;\n            if (schema !== entry[0] && ext) {\n                extractToDef(entry);\n                continue;\n            }\n        }\n        // extract schemas with `id` meta\n        const id = ctx.metadataRegistry.get(entry[0])?.id;\n        if (id) {\n            extractToDef(entry);\n            continue;\n        }\n        // break cycles\n        if (seen.cycle) {\n            // any\n            extractToDef(entry);\n            continue;\n        }\n        // extract reused schemas\n        if (seen.count > 1) {\n            if (ctx.reused === \"ref\") {\n                extractToDef(entry);\n            }\n        }\n    }\n    if (ctx.external)\n        ctx.sharedDefsExtractedFor = ctx.external;\n}\n/** Rewrites `anyOf: [{type: \"a\"}, {type: \"b\"}]` to `type: [\"a\", \"b\"]`, which every JSON Schema draft treats as equivalent and most consumers render far better for the nullable case. Only branches that are a bare type assertion qualify — anything carrying a constraint, `$ref`, `const` or metadata is left alone. Runs after `flattenRef`, so a branch an override decorated or `$defs` extraction turned into a `$ref` is no longer bare and correctly stays in `anyOf`. `oneOf` is excluded: `integer` and `number` overlap, so \"exactly one\" and \"at least one\" are not the same there. OpenAPI 3.0 is excluded: its `type` must be a single string. */\nfunction compactTypeUnion(schema) {\n    const options = schema.anyOf;\n    if (!Array.isArray(options) || options.length === 0 || schema.type !== undefined)\n        return;\n    const types = [];\n    for (const option of options) {\n        if (!option || typeof option !== \"object\")\n            return;\n        // A branch that is itself a compactible union folds into this one — nested `anyOf` and a flat `type` array say the same thing. Compacting it first also makes the result independent of the order this pass walks the seen map in.\n        compactTypeUnion(option);\n        const keys = Object.keys(option);\n        if (keys.length !== 1 || keys[0] !== \"type\")\n            return;\n        const type = option.type;\n        for (const member of Array.isArray(type) ? type : [type]) {\n            if (typeof member !== \"string\")\n                return;\n            if (!types.includes(member))\n                types.push(member);\n        }\n    }\n    delete schema.anyOf;\n    // A `type` array must be non-empty and unique (metaschema); a single member is spelled as a bare string.\n    schema.type = types.length === 1 ? types[0] : types;\n}\n/** Keywords `foldIntersection` knows how to combine. Anything else — `$ref`, `patternProperties`,\n * an annotation like `description` — makes a member unfoldable, so a constraint this does not\n * understand leaves the `allOf` alone instead of being silently dropped or misattributed. */\nconst FOLDABLE_KEYS = new Set([\"type\", \"properties\", \"required\", \"additionalProperties\"]);\nconst UNION_KEYS = [\"oneOf\", \"anyOf\"];\n/** A member's constraint on a key it does not declare itself. A `catchall` states one; `false`, an absent `additionalProperties`, and the empty schema a loose object emits state nothing. */\nfunction undeclaredConstraint(member) {\n    const extra = member.additionalProperties;\n    if (extra === undefined || extra === false || typeof extra !== \"object\" || extra === null)\n        return null;\n    return Object.keys(extra).length ? extra : null;\n}\n/** Combines object members into the single object they describe together, or returns `null` if any of them carries a keyword outside {@link FOLDABLE_KEYS}. */\nfunction foldObjects(members) {\n    const objects = [];\n    for (const member of members) {\n        // A boolean subschema is legal JSON Schema and carries no keywords to fold.\n        if (typeof member !== \"object\" || member.type !== \"object\")\n            return null;\n        for (const key in member) {\n            if (!FOLDABLE_KEYS.has(key))\n                return null;\n        }\n        objects.push(member);\n    }\n    const properties = {};\n    const required = new Set();\n    for (const object of objects) {\n        for (const key in object.properties) {\n            // `in` would report a `__proto__` key as already present via the prototype chain and skip it.\n            if (Object.prototype.hasOwnProperty.call(properties, key))\n                continue;\n            // Every member constrains this key: the ones that declare it say how, and a `catchall` member constrains it too even though it does not name it. The key has to satisfy all of them, which is the same intersection one level down.\n            const parts = [];\n            for (const other of objects) {\n                const part = other.properties?.[key] ?? undeclaredConstraint(other);\n                if (part === null || part === undefined)\n                    continue;\n                if (!parts.some((seen) => JSON.stringify(seen) === JSON.stringify(part)))\n                    parts.push(part);\n            }\n            const merged = parts.length === 1\n                ? parts[0]\n                : (foldObjects(parts) ?? { allOf: parts });\n            assignProp(properties, key, merged);\n        }\n        for (const key of object.required ?? [])\n            required.add(key);\n    }\n    const folded = { type: \"object\", properties };\n    if (required.size)\n        folded.required = [...required];\n    // A key no member declares is rejected only when every member rejects it, so the fold is closed only when every member is. Otherwise it carries whatever the `catchall` members demand of such a key.\n    if (objects.every((object) => object.additionalProperties === false)) {\n        folded.additionalProperties = false;\n    }\n    else {\n        const constraints = [];\n        for (const object of objects) {\n            const constraint = undeclaredConstraint(object);\n            if (constraint && !constraints.some((seen) => JSON.stringify(seen) === JSON.stringify(constraint)))\n                constraints.push(constraint);\n        }\n        if (constraints.length === 1)\n            folded.additionalProperties = constraints[0];\n        else if (constraints.length > 1)\n            folded.additionalProperties = { allOf: constraints };\n    }\n    return folded;\n}\n/** `additionalProperties` in an `allOf` member sees only that member's own `properties`, so two\n * closed object members reject each other's keys and the schema validates nothing. Zod's parser\n * pools the key sets instead — `handleIntersectionResults` reports a key as unrecognized only when\n * *every* side rejects it — so the emitted schema has to pool them too, and folding the members\n * into one object is the encoding that says so on every target.\n *\n * This runs from `finalize`, after `extractDefs`, which is what keeps it clear of the `$ref`\n * machinery: a member extracted into `$defs` is already a `$ref` by now and declines to fold, so it\n * keeps its reference and its own closedness rather than being inlined as a stale copy. */\nfunction foldIntersection(json) {\n    const allOf = json.allOf;\n    if (!Array.isArray(allOf) || allOf.length < 2)\n        return;\n    // An `override` runs before this pass and may have written object keywords onto the intersection itself. Those are deliberate, so decline rather than overwrite them.\n    for (const key of FOLDABLE_KEYS)\n        if (key in json)\n            return;\n    // An intersection distributes over a union: `A & (X | Y)` is `(A & X) | (A & Y)`. Only the first union is distributed over; a second one stays among the members every branch folds against, where it fails the object check and declines the whole intersection rather than multiplying out.\n    const unions = allOf.filter((m) => UNION_KEYS.some((k) => Array.isArray(m[k])));\n    let folded = null;\n    if (!unions.length) {\n        folded = foldObjects(allOf);\n    }\n    else {\n        const union = unions[0];\n        const keyword = UNION_KEYS.find((k) => Array.isArray(union[k]));\n        if (Object.keys(union).length !== 1)\n            return;\n        const rest = allOf.filter((m) => m !== union);\n        const branches = union[keyword].map((branch) => foldObjects([...rest, branch]));\n        if (branches.some((b) => !b))\n            return;\n        folded = { [keyword]: branches };\n    }\n    if (!folded)\n        return;\n    delete json.allOf;\n    assignProps(json, folded);\n}\nexport function finalize(ctx, schema) {\n    const root = ctx.seen.get(schema);\n    if (!root)\n        throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n    // flatten refs - inherit properties from parent schemas\n    const flattenRef = (zodSchema) => {\n        const seen = ctx.seen.get(zodSchema);\n        // already processed\n        if (seen.ref === null)\n            return;\n        const schema = seen.def ?? seen.schema;\n        const _cached = { ...schema };\n        const ref = seen.ref;\n        seen.ref = null; // prevent infinite recursion\n        if (ref) {\n            flattenRef(ref);\n            const refSeen = ctx.seen.get(ref);\n            const refSchema = refSeen.schema;\n            // merge referenced schema into current\n            if (refSchema.$ref && (ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\")) {\n                // older drafts can't combine $ref with other properties\n                schema.allOf = schema.allOf ?? [];\n                schema.allOf.push(refSchema);\n            }\n            else {\n                assignProps(schema, refSchema);\n            }\n            // restore child's own properties (child wins)\n            assignProps(schema, _cached);\n            const isParentRef = zodSchema._zod.parent === ref;\n            // For parent chain, child is a refinement - remove parent-only properties\n            if (isParentRef) {\n                for (const key in schema) {\n                    if (key === \"$ref\" || key === \"allOf\")\n                        continue;\n                    if (!(key in _cached)) {\n                        delete schema[key];\n                    }\n                }\n            }\n            // When ref was extracted to $defs, remove properties that match the definition\n            if (refSchema.$ref && refSeen.def) {\n                for (const key in schema) {\n                    if (key === \"$ref\" || key === \"allOf\")\n                        continue;\n                    if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) {\n                        delete schema[key];\n                    }\n                }\n            }\n        }\n        // If parent was extracted (has $ref), propagate $ref to this schema. This handles cases like: readonly().meta({id}).describe() where processor sets ref to innerType but parent should be referenced\n        const parent = zodSchema._zod.parent;\n        if (parent && parent !== ref) {\n            // Ensure parent is processed first so its def has inherited properties\n            flattenRef(parent);\n            const parentSeen = ctx.seen.get(parent);\n            if (parentSeen?.schema.$ref) {\n                schema.$ref = parentSeen.schema.$ref;\n                // De-duplicate with parent's definition\n                if (parentSeen.def) {\n                    for (const key in schema) {\n                        if (key === \"$ref\" || key === \"allOf\")\n                            continue;\n                        if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) {\n                            delete schema[key];\n                        }\n                    }\n                }\n            }\n        }\n        // execute overrides\n        ctx.override({\n            zodSchema: zodSchema,\n            jsonSchema: schema,\n            path: seen.path ?? [],\n        });\n    };\n    // Flattening walks the whole map and clears each `ref` as it goes, so a second call over the same map is a no-op scan. Skip it outright once it has run for a registry conversion.\n    if (!ctx.external || ctx.sharedEmitDoneFor !== ctx.external) {\n        for (const entry of [...ctx.seen.entries()].reverse()) {\n            flattenRef(entry[0]);\n        }\n        if (ctx.target !== \"openapi-3.0\") {\n            for (const entry of ctx.seen.entries()) {\n                compactTypeUnion(entry[1].def ?? entry[1].schema);\n            }\n        }\n        for (const rewrite of ctx.deferred)\n            rewrite();\n        // After flattening, every member that was extracted is a `$ref`, so the fold sees the final shape. A schema that inherits an intersection — through `z.lazy`, or any `ref` chain — holds the same `allOf` array, so fold by array identity to catch every copy.\n        if (ctx.intersections.length) {\n            const carriers = new Map();\n            for (const seen of ctx.seen.values()) {\n                for (const json of [seen.schema, seen.def]) {\n                    const allOf = json?.allOf;\n                    if (!Array.isArray(allOf))\n                        continue;\n                    const existing = carriers.get(allOf);\n                    if (existing)\n                        existing.push(json);\n                    else\n                        carriers.set(allOf, [json]);\n                }\n            }\n            for (const allOf of ctx.intersections) {\n                for (const json of carriers.get(allOf) ?? [])\n                    foldIntersection(json);\n            }\n        }\n    }\n    const result = {};\n    if (ctx.target === \"draft-2020-12\") {\n        result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n    }\n    else if (ctx.target === \"draft-07\") {\n        result.$schema = \"http://json-schema.org/draft-07/schema#\";\n    }\n    else if (ctx.target === \"draft-04\") {\n        result.$schema = \"http://json-schema.org/draft-04/schema#\";\n    }\n    else if (ctx.target === \"openapi-3.0\") {\n        // OpenAPI 3.0 schema objects should not include a $schema property\n    }\n    else {\n        // Arbitrary string values are allowed but won't have a $schema property set\n    }\n    if (ctx.external?.uri) {\n        const id = ctx.external.registry.get(schema)?.id;\n        if (!id)\n            throw new Error(\"Schema is missing an `id` property\");\n        result.$id = ctx.external.uri(id);\n    }\n    // when the root was extracted into $defs, `root.schema` is the `$ref` wrapper and `root.def` is the body that now lives under $defs\n    assignProps(result, root.defId ? root.schema : (root.def ?? root.schema));\n    // The `id` in `.meta()` is a Zod-specific registration tag used to extract schemas into $defs — it is not user-facing JSON Schema metadata. Strip it from the output body where it would otherwise leak. The id is preserved implicitly via the $defs key (and via $ref paths).\n    const rootMetaId = ctx.metadataRegistry.get(schema)?.id;\n    if (rootMetaId !== undefined && result.id === rootMetaId)\n        delete result.id;\n    // build defs object. With `external`, `defs` is the shared object every schema writes into, so the same entries are reassigned on every call. Without it, `defs` is fresh per call and must be rebuilt.\n    const defs = ctx.external?.defs ?? {};\n    if (!ctx.external || ctx.sharedEmitDoneFor !== ctx.external) {\n        for (const entry of ctx.seen.entries()) {\n            const seen = entry[1];\n            if (seen.def && seen.defId) {\n                if (seen.def.id === seen.defId)\n                    delete seen.def.id;\n                assignProp(defs, seen.defId, seen.def);\n            }\n        }\n    }\n    if (ctx.external)\n        ctx.sharedEmitDoneFor = ctx.external;\n    // set definitions in result\n    if (ctx.external) {\n    }\n    else {\n        if (Object.keys(defs).length > 0) {\n            if (ctx.target === \"draft-2020-12\") {\n                result.$defs = defs;\n            }\n            else {\n                result.definitions = defs;\n            }\n        }\n    }\n    try {\n        // this \"finalizes\" this schema and ensures all cycles are removed each call to finalize() is functionally independent though the seen map is shared\n        const finalized = JSON.parse(JSON.stringify(result));\n        Object.defineProperty(finalized, \"~standard\", {\n            value: {\n                ...schema[\"~standard\"],\n                jsonSchema: {\n                    input: createStandardJSONSchemaMethod(schema, \"input\", ctx.processors),\n                    output: createStandardJSONSchemaMethod(schema, \"output\", ctx.processors),\n                },\n            },\n            enumerable: false,\n            writable: false,\n        });\n        return finalized;\n    }\n    catch (_err) {\n        throw new Error(\"Error converting schema to JSON.\");\n    }\n}\nfunction isTransforming(_schema, _ctx) {\n    const ctx = _ctx ?? { seen: new Set() };\n    if (ctx.seen.has(_schema))\n        return false;\n    ctx.seen.add(_schema);\n    const def = _schema._zod.def;\n    if (def.type === \"transform\")\n        return true;\n    if (def.type === \"array\")\n        return isTransforming(def.element, ctx);\n    if (def.type === \"set\")\n        return isTransforming(def.valueType, ctx);\n    if (def.type === \"lazy\")\n        return isTransforming(def.getter(), ctx);\n    if (def.type === \"promise\" ||\n        def.type === \"optional\" ||\n        def.type === \"nonoptional\" ||\n        def.type === \"nullable\" ||\n        def.type === \"readonly\" ||\n        def.type === \"default\" ||\n        def.type === \"prefault\" ||\n        def.type === \"catch\") {\n        return isTransforming(def.innerType, ctx);\n    }\n    if (def.type === \"intersection\") {\n        return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n    }\n    if (def.type === \"record\" || def.type === \"map\") {\n        return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n    }\n    if (def.type === \"pipe\") {\n        if (_schema._zod.traits.has(\"$ZodCodec\"))\n            return true;\n        return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n    }\n    if (def.type === \"object\") {\n        for (const key in def.shape) {\n            if (isTransforming(def.shape[key], ctx))\n                return true;\n        }\n        return false;\n    }\n    if (def.type === \"union\") {\n        for (const option of def.options) {\n            if (isTransforming(option, ctx))\n                return true;\n        }\n        return false;\n    }\n    if (def.type === \"tuple\") {\n        for (const item of def.items) {\n            if (isTransforming(item, ctx))\n                return true;\n        }\n        if (def.rest && isTransforming(def.rest, ctx))\n            return true;\n        return false;\n    }\n    return false;\n}\n/**\n * Creates a toJSONSchema method for a schema instance.\n * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing.\n */\nexport const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {\n    const ctx = initializeContext({ ...params, processors });\n    processSchema(schema, ctx);\n    extractDefs(ctx, schema);\n    return finalize(ctx, schema);\n};\nexport const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => {\n    const { libraryOptions, target } = params ?? {};\n    const ctx = initializeContext({ ...(libraryOptions ?? {}), target, io, processors });\n    processSchema(schema, ctx);\n    extractDefs(ctx, schema);\n    return finalize(ctx, schema);\n};\n","import * as regexes from \"./regexes.js\";\nimport { base64Charset, base64urlCharset } from \"./schemas.js\";\nimport { extractDefs, finalize, handleUnrepresentable, initializeContext, processSchema, } from \"./to-json-schema.js\";\nimport { BIGINT_FORMAT_RANGES, NUMBER_FORMAT_RANGES, assignProp, getEnumValues } from \"./util.js\";\nconst narrowMin = (agg, key, value) => {\n    if (agg[key] === undefined || value > agg[key])\n        agg[key] = value;\n};\nconst narrowMax = (agg, key, value) => {\n    if (agg[key] === undefined || value < agg[key])\n        agg[key] = value;\n};\nconst narrowBoth = (agg, value) => {\n    narrowMin(agg, \"minimum\", value);\n    narrowMax(agg, \"maximum\", value);\n};\nconst addDivisor = (agg, value) => {\n    agg.multipleOf ?? (agg.multipleOf = []);\n    if (!agg.multipleOf.includes(value))\n        agg.multipleOf.push(value);\n};\nconst addPattern = (agg, pattern) => {\n    agg.patterns ?? (agg.patterns = new Set());\n    agg.patterns.add(pattern);\n};\nconst intersectMime = (agg, mime) => {\n    agg.mime = agg.mime ? agg.mime.filter((m) => mime.includes(m)) : [...mime];\n};\n// last-wins, matching the bag's historical write order; the flag keeps an integer format from being lost to a later float one\nconst setFormat = (agg, format) => {\n    agg.format = format;\n    if (format.includes(\"int\"))\n        agg.isInt = true;\n};\nconst minContributor = (agg, def) => narrowMin(agg, \"minimum\", def.minimum);\nconst maxContributor = (agg, def) => narrowMax(agg, \"maximum\", def.maximum);\nconst formatContributor = (ranges) => (agg, def) => {\n    setFormat(agg, def.format);\n    const [minimum, maximum] = ranges[def.format];\n    narrowMin(agg, \"minimum\", minimum);\n    narrowMax(agg, \"maximum\", maximum);\n};\nconst contributors = {\n    greater_than: (agg, def) => narrowMin(agg, def.inclusive ? \"minimum\" : \"exclusiveMinimum\", def.value),\n    less_than: (agg, def) => narrowMax(agg, def.inclusive ? \"maximum\" : \"exclusiveMaximum\", def.value),\n    multiple_of: (agg, def) => addDivisor(agg, def.value),\n    number_format: formatContributor(NUMBER_FORMAT_RANGES),\n    bigint_format: formatContributor(BIGINT_FORMAT_RANGES),\n    min_length: minContributor,\n    max_length: maxContributor,\n    length_equals: (agg, def) => narrowBoth(agg, def.length),\n    min_size: minContributor,\n    max_size: maxContributor,\n    size_equals: (agg, def) => narrowBoth(agg, def.size),\n    string_format: (agg, def) => {\n        setFormat(agg, def.format);\n        if (def.pattern)\n            addPattern(agg, def.pattern);\n        if (def.format === \"base64\" || def.format === \"base64url\")\n            agg.contentEncoding = def.format;\n        if (def.local || def.precision === -1)\n            agg.laxFormat = true;\n    },\n    mime_type: (agg, def) => intersectMime(agg, def.mime),\n};\nexport function aggregateChecks(schema) {\n    const agg = {};\n    const def = schema._zod.def;\n    // a format schema is its own first check, same rule as $ZodType init\n    const list = schema._zod.traits.has(\"$ZodCheck\")\n        ? [schema, ...(def.checks ?? [])]\n        : (def.checks ?? []);\n    for (const ch of list)\n        contributors[ch._zod.def.check]?.(agg, ch._zod.def);\n    // reconcile with the bag so third-party onattach contributions still land; first-party residue is never tighter than the fold, so merging it back is idempotent for one and additive for the other\n    const bag = schema._zod.bag;\n    if (bag.minimum !== undefined)\n        narrowMin(agg, \"minimum\", bag.minimum);\n    if (bag.exclusiveMinimum !== undefined)\n        narrowMin(agg, \"exclusiveMinimum\", bag.exclusiveMinimum);\n    if (bag.maximum !== undefined)\n        narrowMax(agg, \"maximum\", bag.maximum);\n    if (bag.exclusiveMaximum !== undefined)\n        narrowMax(agg, \"exclusiveMaximum\", bag.exclusiveMaximum);\n    if (bag.multipleOf !== undefined)\n        addDivisor(agg, bag.multipleOf);\n    if (bag.format !== undefined) {\n        agg.format ?? (agg.format = bag.format);\n        if (bag.format.includes(\"int\"))\n            agg.isInt = true;\n    }\n    if (bag.mime)\n        intersectMime(agg, bag.mime);\n    for (const pattern of bag.patterns ?? [])\n        addPattern(agg, pattern);\n    return agg;\n}\nconst formatMap = {\n    guid: \"uuid\",\n    url: \"uri\",\n    datetime: \"date-time\",\n    json_string: \"json-string\",\n    regex: \"\", // do not set\n};\n// ==================== SIMPLE TYPE PROCESSORS ====================\n// the runtime patterns are lax so parse paths never overflow the regex stack; the emitted schema swaps in the exact block forms, which zod itself never executes\nconst exactPatterns = new Map([\n    [base64Charset, regexes.base64],\n    [base64urlCharset, regexes.base64url],\n]);\nconst exactPattern = (p) => exactPatterns.get(p) ?? p;\nexport const stringProcessor = (schema, ctx, _json, _params) => {\n    const json = _json;\n    json.type = \"string\";\n    const { minimum, maximum, format, patterns, contentEncoding, laxFormat } = aggregateChecks(schema);\n    if (typeof minimum === \"number\")\n        json.minLength = minimum;\n    if (typeof maximum === \"number\")\n        json.maxLength = maximum;\n    // custom pattern overrides format\n    if (format) {\n        json.format = formatMap[format] ?? format;\n        if (json.format === \"\")\n            delete json.format; // empty format is not valid\n        // `z.iso.time()` is never full-time, and `laxFormat` carries the datetime shapes that also accept what their keyword forbids\n        if (format === \"time\" || laxFormat) {\n            delete json.format;\n        }\n    }\n    if (contentEncoding)\n        json.contentEncoding = contentEncoding;\n    if (patterns && patterns.size > 0) {\n        const patternList = [...patterns].map(exactPattern);\n        if (patternList.length === 1)\n            json.pattern = patternList[0].source;\n        else if (patternList.length > 1) {\n            json.allOf = [\n                ...patternList.map((regex) => ({\n                    ...(ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\"\n                        ? { type: \"string\" }\n                        : {}),\n                    pattern: regex.source,\n                })),\n            ];\n        }\n    }\n};\nexport const numberProcessor = (schema, ctx, _json, params) => {\n    const json = _json;\n    const { minimum, maximum, multipleOf, exclusiveMaximum, exclusiveMinimum, isInt } = aggregateChecks(schema);\n    json.type = isInt ? \"integer\" : \"number\";\n    // when both minimum and exclusiveMinimum exist, pick the more restrictive one\n    const exMin = typeof exclusiveMinimum === \"number\" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY);\n    const exMax = typeof exclusiveMaximum === \"number\" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY);\n    const legacy = ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\";\n    if (exMin) {\n        if (legacy) {\n            json.minimum = exclusiveMinimum;\n            json.exclusiveMinimum = true;\n        }\n        else {\n            json.exclusiveMinimum = exclusiveMinimum;\n        }\n    }\n    else if (typeof minimum === \"number\") {\n        json.minimum = minimum;\n    }\n    if (exMax) {\n        if (legacy) {\n            json.maximum = exclusiveMaximum;\n            json.exclusiveMaximum = true;\n        }\n        else {\n            json.exclusiveMaximum = exclusiveMaximum;\n        }\n    }\n    else if (typeof maximum === \"number\") {\n        json.maximum = maximum;\n    }\n    if (multipleOf) {\n        // JSON Schema requires a divisor strictly greater than zero, and a non-finite one does not survive JSON at all. A negative divisor accepts exactly what its absolute value accepts, so it still maps; zero, NaN and Infinity have no keyword form.\n        const divisors = new Set();\n        for (const divisor of multipleOf) {\n            if (Number.isFinite(divisor) && divisor !== 0)\n                divisors.add(Math.abs(divisor));\n            else\n                handleUnrepresentable(schema, ctx, json, params, `A multipleOf divisor of ${divisor} cannot be represented in JSON Schema`);\n        }\n        // chained divisors are a conjunction the keyword cannot carry alone, so extras ride an allOf, same as stacked patterns\n        const [first, ...rest] = divisors;\n        if (first !== undefined)\n            json.multipleOf = first;\n        if (rest.length)\n            json.allOf = [...(json.allOf ?? []), ...rest.map((m) => ({ multipleOf: m }))];\n    }\n};\nexport const booleanProcessor = (_schema, _ctx, json, _params) => {\n    json.type = \"boolean\";\n};\nexport const bigintProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"BigInt cannot be represented in JSON Schema\");\n};\nexport const symbolProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"Symbols cannot be represented in JSON Schema\");\n};\nexport const nullProcessor = (_schema, ctx, json, _params) => {\n    if (ctx.target === \"openapi-3.0\") {\n        json.type = \"string\";\n        json.nullable = true;\n        json.enum = [null];\n    }\n    else {\n        json.type = \"null\";\n    }\n};\nexport const undefinedProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"Undefined cannot be represented in JSON Schema\");\n};\nexport const voidProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"Void cannot be represented in JSON Schema\");\n};\nexport const neverProcessor = (_schema, _ctx, json, _params) => {\n    json.not = {};\n};\nexport const anyProcessor = (_schema, _ctx, _json, _params) => {\n    // empty schema accepts anything\n};\nexport const unknownProcessor = (_schema, _ctx, _json, _params) => {\n    // empty schema accepts anything\n};\nexport const dateProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"Date cannot be represented in JSON Schema\");\n};\nexport const enumProcessor = (schema, _ctx, json, _params) => {\n    const def = schema._zod.def;\n    const values = getEnumValues(def.entries);\n    // an empty enum accepts nothing, same as z.never()\n    if (values.length === 0) {\n        json.not = {};\n        return;\n    }\n    // Number enums can have both string and number values\n    if (values.every((v) => typeof v === \"number\"))\n        json.type = \"number\";\n    if (values.every((v) => typeof v === \"string\"))\n        json.type = \"string\";\n    json.enum = values;\n};\nexport const literalProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    // a literal with no values accepts nothing, same as z.never()\n    if (def.values.length === 0) {\n        json.not = {};\n        return;\n    }\n    const vals = [];\n    for (const val of def.values) {\n        if (val === undefined) {\n            // a custom schema replaces the whole literal, so there is nothing left to accumulate\n            if (handleUnrepresentable(schema, ctx, json, params, \"Literal `undefined` cannot be represented in JSON Schema\"))\n                return;\n            // otherwise do not add to vals\n        }\n        else if (typeof val === \"bigint\") {\n            if (handleUnrepresentable(schema, ctx, json, params, \"BigInt literals cannot be represented in JSON Schema\"))\n                return;\n            vals.push(Number(val));\n        }\n        else {\n            vals.push(val);\n        }\n    }\n    if (vals.length === 0) {\n        // do nothing (an undefined literal was stripped)\n    }\n    else if (vals.length === 1) {\n        const val = vals[0];\n        json.type = val === null ? \"null\" : typeof val;\n        if (ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\") {\n            json.enum = [val];\n        }\n        else {\n            json.const = val;\n        }\n    }\n    else {\n        if (vals.every((v) => typeof v === \"number\"))\n            json.type = \"number\";\n        if (vals.every((v) => typeof v === \"string\"))\n            json.type = \"string\";\n        if (vals.every((v) => typeof v === \"boolean\"))\n            json.type = \"boolean\";\n        if (vals.every((v) => v === null))\n            json.type = \"null\";\n        json.enum = vals;\n    }\n};\nexport const nanProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"NaN cannot be represented in JSON Schema\");\n};\nexport const templateLiteralProcessor = (schema, _ctx, json, _params) => {\n    const _json = json;\n    const pattern = schema._zod.pattern;\n    if (!pattern)\n        throw new Error(\"Pattern not found in template literal\");\n    _json.type = \"string\";\n    _json.pattern = pattern.source;\n};\nexport const fileProcessor = (schema, _ctx, json, _params) => {\n    const _json = json;\n    _json.type = \"string\";\n    _json.format = \"binary\";\n    _json.contentEncoding = \"binary\";\n    const { minimum, maximum, mime } = aggregateChecks(schema);\n    if (minimum !== undefined)\n        _json.minLength = minimum;\n    if (maximum !== undefined)\n        _json.maxLength = maximum;\n    if (!mime)\n        return;\n    // an empty intersection means the mime checks share no value, so nothing passes at runtime; `anyOf` must be non-empty, so the false schema is `not: {}`\n    if (mime.length === 0)\n        _json.not = {};\n    else if (mime.length === 1)\n        _json.contentMediaType = mime[0];\n    // only contentMediaType differs, so the shared props stay at the root\n    else\n        _json.anyOf = mime.map((m) => ({ contentMediaType: m }));\n};\nexport const successProcessor = (_schema, _ctx, json, _params) => {\n    json.type = \"boolean\";\n};\nexport const customProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"Custom types cannot be represented in JSON Schema\");\n};\nexport const functionProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"Function types cannot be represented in JSON Schema\");\n};\nexport const transformProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"Transforms cannot be represented in JSON Schema\");\n};\nexport const mapProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"Map cannot be represented in JSON Schema\");\n};\nexport const setProcessor = (schema, ctx, json, params) => {\n    handleUnrepresentable(schema, ctx, json, params, \"Set cannot be represented in JSON Schema\");\n};\n// ==================== COMPOSITE TYPE PROCESSORS ====================\nexport const arrayProcessor = (schema, ctx, _json, params) => {\n    const json = _json;\n    const def = schema._zod.def;\n    const { minimum, maximum } = aggregateChecks(schema);\n    if (typeof minimum === \"number\")\n        json.minItems = minimum;\n    if (typeof maximum === \"number\")\n        json.maxItems = maximum;\n    json.type = \"array\";\n    json.items = processSchema(def.element, ctx, {\n        ...params,\n        path: [...params.path, \"items\"],\n    });\n};\n// Transform and catch set `optin = \"optional\"` at runtime so the parser lets them observe an\n// absent key, but their declared input type stays required. An input JSON Schema describes the\n// declared type, so resolve past them to the schema that actually carries the optionality.\n// Used by both `objectProcessor` (for `required`) and `tupleProcessor` (for `minItems`); see\n// wiki/optionality.md, \"The JSON Schema emitter reads the *static* value\".\nfunction inputOptin(schema) {\n    const def = schema._zod.def;\n    if (def.type === \"pipe\" && def.in._zod.traits.has(\"$ZodTransform\")) {\n        return inputOptin(def.out);\n    }\n    if (def.type === \"catch\") {\n        return inputOptin(def.innerType);\n    }\n    return schema._zod.optin;\n}\nexport const objectProcessor = (schema, ctx, _json, params) => {\n    const json = _json;\n    const def = schema._zod.def;\n    const shape = def.shape;\n    // dropping it while still emitting `additionalProperties: false` would emit a schema that rejects data this one requires\n    const symbolKeys = Object.getOwnPropertySymbols(shape);\n    if (symbolKeys.length &&\n        handleUnrepresentable(schema, ctx, json, params, \"Symbol keys cannot be represented in JSON Schema\")) {\n        return;\n    }\n    json.type = \"object\";\n    json.properties = {};\n    for (const key in shape) {\n        // assignProp so a __proto__ key becomes an own property instead of hitting the inherited setter on the plain {} we build into\n        assignProp(json.properties, key, processSchema(shape[key], ctx, {\n            ...params,\n            path: [...params.path, \"properties\", key],\n        }));\n    }\n    // required keys\n    const requiredKeys = [];\n    for (const key of Object.keys(shape)) {\n        const field = def.shape[key];\n        if (ctx.io === \"input\" ? inputOptin(field) === undefined : field._zod.optout === undefined) {\n            requiredKeys.push(key);\n        }\n    }\n    if (requiredKeys.length > 0) {\n        json.required = requiredKeys;\n    }\n    // catchall\n    if (def.catchall?._zod.def.type === \"never\") {\n        // strict\n        json.additionalProperties = false;\n    }\n    else if (!def.catchall) {\n        // regular\n        if (ctx.io === \"output\")\n            json.additionalProperties = false;\n    }\n    else if (def.catchall) {\n        json.additionalProperties = processSchema(def.catchall, ctx, {\n            ...params,\n            path: [...params.path, \"additionalProperties\"],\n        });\n    }\n};\nexport const unionProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    // Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches). This includes both z.xor() and discriminated unions\n    const isExclusive = def.inclusive === false;\n    const options = def.options.map((x, i) => processSchema(x, ctx, {\n        ...params,\n        path: [...params.path, isExclusive ? \"oneOf\" : \"anyOf\", i],\n    }));\n    if (isExclusive) {\n        json.oneOf = options;\n    }\n    else {\n        json.anyOf = options;\n    }\n};\nexport const intersectionProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    const a = processSchema(def.left, ctx, {\n        ...params,\n        path: [...params.path, \"allOf\", 0],\n    });\n    const b = processSchema(def.right, ctx, {\n        ...params,\n        path: [...params.path, \"allOf\", 1],\n    });\n    const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n    const allOf = [\n        ...(isSimpleIntersection(a) ? a.allOf : [a]),\n        ...(isSimpleIntersection(b) ? b.allOf : [b]),\n    ];\n    json.allOf = allOf;\n    // Recorded innermost first, so a nested intersection has already folded by the time this one is considered. The array is the handle rather than the schema, because a wrapper that inherits this schema shares the same array; `finalize` folds every object holding it. See `foldIntersection`.\n    ctx.intersections.push(allOf);\n};\nexport const tupleProcessor = (schema, ctx, _json, params) => {\n    const json = _json;\n    const def = schema._zod.def;\n    json.type = \"array\";\n    const prefixPath = ctx.target === \"draft-2020-12\" ? \"prefixItems\" : \"items\";\n    const restPath = ctx.target === \"draft-2020-12\" ? \"items\" : ctx.target === \"openapi-3.0\" ? \"items\" : \"additionalItems\";\n    const prefixItems = def.items.map((x, i) => processSchema(x, ctx, {\n        ...params,\n        path: [...params.path, prefixPath, i],\n    }));\n    const rest = def.rest\n        ? processSchema(def.rest, ctx, {\n            ...params,\n            path: [...params.path, restPath, ...(ctx.target === \"openapi-3.0\" ? [def.items.length] : [])],\n        })\n        : null;\n    let minItems = def.items.length;\n    while (minItems > 0) {\n        const item = def.items[minItems - 1];\n        const optional = ctx.io === \"input\" ? inputOptin(item) !== undefined : item._zod.optout === \"optional\";\n        if (!optional)\n            break;\n        minItems--;\n    }\n    const maxItems = def.items.length;\n    const isClosed = !def.rest;\n    if (ctx.target === \"draft-2020-12\") {\n        json.prefixItems = prefixItems;\n        if (isClosed) {\n            json.items = false;\n        }\n        else if (rest) {\n            json.items = rest;\n        }\n        if (minItems > 0)\n            json.minItems = minItems;\n        if (isClosed)\n            json.maxItems = maxItems;\n    }\n    else if (ctx.target === \"openapi-3.0\") {\n        json.items = {\n            anyOf: prefixItems,\n        };\n        if (rest) {\n            json.items.anyOf.push(rest);\n        }\n        if (minItems > 0)\n            json.minItems = minItems;\n        if (isClosed)\n            json.maxItems = maxItems;\n    }\n    else {\n        json.items = prefixItems;\n        if (isClosed) {\n            json.additionalItems = false;\n        }\n        else if (rest) {\n            json.additionalItems = rest;\n        }\n        if (minItems > 0)\n            json.minItems = minItems;\n        if (isClosed)\n            json.maxItems = maxItems;\n    }\n    // explicit user-defined length checks take precedence\n    const { minimum, maximum } = aggregateChecks(schema);\n    if (typeof minimum === \"number\")\n        json.minItems = minimum;\n    if (typeof maximum === \"number\")\n        json.maxItems = maximum;\n};\n/** JSON object keys are always strings, so a numeric record key schema is re-expressed over the\n * numeric-string form the record parser matches. Deferred to `finalize`, after the flatten: a key\n * behind a wrapper only carries its own `type` before then, and a union key only has its branches.\n *\n * A numeric bound cannot apply to a property name, so `minimum` and its siblings are dropped rather\n * than carried over: keeping them beside `type: \"string\"` reproduces the match-nothing schema this\n * exists to fix. A key that carries one therefore emits wider than the record parses — `z.record(z.number().min(5), V)`\n * accepts `\"3\"` — which is the deliberate trade, since throwing on it would reject an ordinary schema\n * outright. */\nfunction stringifyKeyNames(bySchema, json, visited) {\n    // an extracted key that rewrites cannot go on sharing its definition — the string form a key position needs is not the number form every other reference wants — so it inlines. One that does not rewrite keeps the `$ref`.\n    if (json.$ref) {\n        // a recursive key holds its own reference inside its definition, so a node already on the path is left alone rather than resolved again\n        if (visited.has(json))\n            return json;\n        visited.add(json);\n        const def = bySchema.get(json)?.def;\n        if (!def)\n            return json;\n        const inlined = stringifyKeyNames(bySchema, def, visited);\n        return inlined === def ? json : inlined;\n    }\n    for (const keyword of [\"anyOf\", \"oneOf\"]) {\n        const branches = json[keyword];\n        if (!Array.isArray(branches))\n            continue;\n        const mapped = branches.map((branch) => stringifyKeyNames(bySchema, branch, visited));\n        // rebuilding regardless would detach a key that had nothing to re-express, dropping its `$ref` and leaking the internal `id`\n        if (mapped.some((branch, i) => branch !== branches[i]))\n            json = { ...json, [keyword]: mapped };\n    }\n    // a member that already admits a string leaves the key unconstrained, so the node's own type re-expresses only when every member is numeric\n    const types = Array.isArray(json.type) ? json.type : [json.type];\n    const numericType = !types.includes(\"string\") && types.some((t) => t === \"number\" || t === \"integer\");\n    // a heterogeneous key carries no type at all, so its numeric members are caught here instead\n    const values = json.enum ?? (json.const !== undefined ? [json.const] : undefined);\n    if (!numericType && !values?.some((v) => typeof v === \"number\"))\n        return json;\n    const { minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, format, id, ...rest } = json;\n    if (rest.enum)\n        rest.enum = rest.enum.map((v) => (typeof v === \"number\" ? String(v) : v));\n    else if (typeof rest.const === \"number\")\n        rest.const = String(rest.const);\n    // a heterogeneous key keeps its absent type: the stringified members already say what a key may be\n    if (!numericType)\n        return rest;\n    rest.type = \"string\";\n    if (!values)\n        rest.pattern = (types.includes(\"number\") ? regexes.number : regexes.integer).source;\n    return rest;\n}\n/** Every record of one conversion, so the carriers are found in a single pass rather than once per record. */\nconst pendingRecords = new WeakMap();\nfunction rewriteKeyNames(ctx) {\n    // an extracted key is resolved by the object `extractToDef` left in its place, so the map is built once rather than searched per reference. `_zod.toJSONSchema` can hand the same object to two schemas, so the first entry carrying a body wins, as a search would have found it.\n    const bySchema = new Map();\n    for (const entry of ctx.seen.values()) {\n        if (entry.def && !bySchema.has(entry.schema))\n            bySchema.set(entry.schema, entry);\n    }\n    const rewrites = new Map();\n    for (const record of pendingRecords.get(ctx) ?? []) {\n        const seen = ctx.seen.get(record);\n        const names = (seen?.def ?? seen?.schema)?.propertyNames;\n        if (!names || names === true || rewrites.has(names))\n            continue;\n        const rewritten = stringifyKeyNames(bySchema, names, new Set());\n        if (rewritten !== names)\n            rewrites.set(names, rewritten);\n    }\n    if (!rewrites.size)\n        return;\n    // the flatten has already copied each record's own properties onto every wrapper by reference, and an extracted body is another such copy, so every carrier holding a rewritten key is updated together\n    for (const entry of ctx.seen.values()) {\n        for (const carrier of [entry.schema, entry.def]) {\n            const rewritten = carrier && rewrites.get(carrier.propertyNames);\n            if (rewritten)\n                carrier.propertyNames = rewritten;\n        }\n    }\n}\nexport const recordProcessor = (schema, ctx, _json, params) => {\n    const json = _json;\n    const def = schema._zod.def;\n    json.type = \"object\";\n    // For looseRecord with regex patterns, use patternProperties. This correctly represents \"only validate keys matching the pattern\" semantics and composes well with allOf (intersections)\n    const keyType = def.keyType;\n    const patterns = aggregateChecks(keyType).patterns;\n    if (def.mode === \"loose\" && patterns && patterns.size > 0) {\n        // Use patternProperties for looseRecord with regex patterns\n        const valueSchema = processSchema(def.valueType, ctx, {\n            ...params,\n            path: [...params.path, \"patternProperties\", \"*\"],\n        });\n        json.patternProperties = {};\n        for (const pattern of patterns) {\n            assignProp(json.patternProperties, exactPattern(pattern).source, valueSchema);\n        }\n    }\n    else {\n        // Default behavior: use propertyNames + additionalProperties\n        if (ctx.target === \"draft-07\" || ctx.target === \"draft-2020-12\") {\n            json.propertyNames = processSchema(def.keyType, ctx, {\n                ...params,\n                path: [...params.path, \"propertyNames\"],\n            });\n            let pending = pendingRecords.get(ctx);\n            if (!pending) {\n                pending = [];\n                pendingRecords.set(ctx, pending);\n                ctx.deferred.push(() => rewriteKeyNames(ctx));\n            }\n            pending.push(schema);\n        }\n        json.additionalProperties = processSchema(def.valueType, ctx, {\n            ...params,\n            path: [...params.path, \"additionalProperties\"],\n        });\n    }\n    // Add required for keys with discrete values (enum, literal, etc.)\n    const keyValues = keyType._zod.values;\n    // Every key shares one value schema, so an optional-in value makes the whole key set omittable on input. Output keeps them: the exhaustive branch assigns every key, even one whose value came back undefined.\n    const omittableOnInput = ctx.io === \"input\" && inputOptin(def.valueType) !== undefined;\n    if (keyValues && !def.partial && !omittableOnInput) {\n        const validKeyValues = [...keyValues].filter((v) => typeof v === \"string\" || typeof v === \"number\");\n        if (validKeyValues.length > 0) {\n            json.required = validKeyValues.map(String);\n        }\n    }\n};\nexport const nullableProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    const inner = processSchema(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    if (ctx.target === \"openapi-3.0\") {\n        seen.ref = def.innerType;\n        json.nullable = true;\n    }\n    else {\n        json.anyOf = [inner, { type: \"null\" }];\n    }\n};\nexport const nonoptionalProcessor = (schema, ctx, _json, params) => {\n    const def = schema._zod.def;\n    processSchema(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n};\n/** Round-trips a default value through JSON so the emitted schema is guaranteed to be valid JSON.\n * A BigInt has no reliable encoding, so it goes through `unrepresentable` like any other\n * unrepresentable value. Returns a sentinel when the caller must not write a default of its own. */\nconst UNREPRESENTABLE_DEFAULT = Symbol();\nfunction serializeDefaultValue(value, schema, ctx, json, params) {\n    let unrepresentable = false;\n    const serialized = JSON.stringify(value, (_, val) => {\n        if (typeof val !== \"bigint\")\n            return val;\n        unrepresentable = true;\n        return null;\n    });\n    if (!unrepresentable)\n        return JSON.parse(serialized);\n    handleUnrepresentable(schema, ctx, json, params, \"BigInt defaults cannot be represented in JSON Schema\");\n    return UNREPRESENTABLE_DEFAULT;\n}\nexport const defaultProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    processSchema(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n    const value = serializeDefaultValue(def.defaultValue, schema, ctx, json, params);\n    if (value !== UNREPRESENTABLE_DEFAULT)\n        json.default = value;\n};\nexport const prefaultProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    processSchema(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n    if (ctx.io !== \"input\")\n        return;\n    const value = serializeDefaultValue(def.defaultValue, schema, ctx, json, params);\n    if (value !== UNREPRESENTABLE_DEFAULT)\n        json._prefault = value;\n};\nexport const catchProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    processSchema(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n    let catchValue;\n    try {\n        catchValue = def.catchValue(undefined);\n    }\n    catch {\n        handleUnrepresentable(schema, ctx, json, params, \"Dynamic catch values are not supported in JSON Schema\");\n        return;\n    }\n    json.default = catchValue;\n};\nexport const pipeProcessor = (schema, ctx, _json, params) => {\n    const def = schema._zod.def;\n    const inIsTransform = def.in._zod.traits.has(\"$ZodTransform\");\n    const innerType = ctx.io === \"input\" ? (inIsTransform ? def.out : def.in) : def.out;\n    processSchema(innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = innerType;\n};\nexport const readonlyProcessor = (schema, ctx, json, params) => {\n    const def = schema._zod.def;\n    processSchema(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n    json.readOnly = true;\n};\nexport const promiseProcessor = (schema, ctx, _json, params) => {\n    const def = schema._zod.def;\n    processSchema(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n};\nexport const optionalProcessor = (schema, ctx, _json, params) => {\n    const def = schema._zod.def;\n    processSchema(def.innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = def.innerType;\n};\nexport const lazyProcessor = (schema, ctx, _json, params) => {\n    const innerType = schema._zod.innerType;\n    processSchema(innerType, ctx, params);\n    const seen = ctx.seen.get(schema);\n    seen.ref = innerType;\n};\n// ==================== ALL PROCESSORS ====================\nexport const allProcessors = {\n    string: stringProcessor,\n    number: numberProcessor,\n    boolean: booleanProcessor,\n    bigint: bigintProcessor,\n    symbol: symbolProcessor,\n    null: nullProcessor,\n    undefined: undefinedProcessor,\n    void: voidProcessor,\n    never: neverProcessor,\n    any: anyProcessor,\n    unknown: unknownProcessor,\n    date: dateProcessor,\n    enum: enumProcessor,\n    literal: literalProcessor,\n    nan: nanProcessor,\n    template_literal: templateLiteralProcessor,\n    file: fileProcessor,\n    success: successProcessor,\n    custom: customProcessor,\n    function: functionProcessor,\n    transform: transformProcessor,\n    map: mapProcessor,\n    set: setProcessor,\n    array: arrayProcessor,\n    object: objectProcessor,\n    union: unionProcessor,\n    intersection: intersectionProcessor,\n    tuple: tupleProcessor,\n    record: recordProcessor,\n    nullable: nullableProcessor,\n    nonoptional: nonoptionalProcessor,\n    default: defaultProcessor,\n    prefault: prefaultProcessor,\n    catch: catchProcessor,\n    pipe: pipeProcessor,\n    readonly: readonlyProcessor,\n    promise: promiseProcessor,\n    optional: optionalProcessor,\n    lazy: lazyProcessor,\n};\nexport function toJSONSchema(input, params) {\n    if (\"_idmap\" in input) {\n        // Registry case\n        const registry = input;\n        const ctx = initializeContext({ ...params, processors: allProcessors });\n        const defs = {};\n        // First pass: process all schemas to build the seen map\n        for (const entry of registry._idmap.entries()) {\n            const [_, schema] = entry;\n            processSchema(schema, ctx);\n        }\n        const schemas = {};\n        const external = {\n            registry,\n            uri: params?.uri,\n            defs,\n        };\n        // Update the context with external configuration\n        ctx.external = external;\n        // Second pass: emit each schema\n        for (const entry of registry._idmap.entries()) {\n            const [key, schema] = entry;\n            extractDefs(ctx, schema);\n            assignProp(schemas, key, finalize(ctx, schema));\n        }\n        if (Object.keys(defs).length > 0) {\n            const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n            schemas.__shared = {\n                [defsSegment]: defs,\n            };\n        }\n        return { schemas };\n    }\n    // Single schema case\n    const ctx = initializeContext({ ...params, processors: allProcessors });\n    processSchema(input, ctx);\n    extractDefs(ctx, input);\n    return finalize(ctx, input);\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\n/* Prototypes that already carry the lazy helper methods. Seeded with the\n * intrinsics so that `init` on a foreign object — it accepts any object —\n * can never install an accessor onto a prototype we do not own. */\nconst _installedErrorProtos = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]);\n/* Helper methods live as non-enumerable lazy getters on the shared\n * prototype instead of own properties on every instance. On first\n * access the getter allocates the per-instance closure and caches it\n * as a non-enumerable own property, so detached usage still works and\n * the allocation only happens for methods actually touched. */\nfunction _lazyMethod(proto, key, make) {\n    Object.defineProperty(proto, key, {\n        configurable: true,\n        enumerable: false,\n        get() {\n            const value = make(this);\n            Object.defineProperty(this, key, { value, configurable: true, writable: true });\n            return value;\n        },\n        set(value) {\n            Object.defineProperty(this, key, { value, configurable: true, writable: true });\n        },\n    });\n}\nconst initializer = (inst, issues) => {\n    $ZodError.init(inst, issues);\n    inst.name = \"ZodError\";\n    const proto = Object.getPrototypeOf(inst);\n    if (_installedErrorProtos.has(proto))\n        return;\n    _installedErrorProtos.add(proto);\n    _lazyMethod(proto, \"format\", (self) => (mapper) => core.formatError(self, mapper));\n    _lazyMethod(proto, \"flatten\", (self) => (mapper) => core.flattenError(self, mapper));\n    _lazyMethod(proto, \"addIssue\", (self) => (issue) => {\n        self.issues.push(issue);\n        self.message = JSON.stringify(self.issues, util.jsonStringifyReplacer, 2);\n    });\n    _lazyMethod(proto, \"addIssues\", (self) => (issues) => {\n        self.issues.push(...issues);\n        self.message = JSON.stringify(self.issues, util.jsonStringifyReplacer, 2);\n    });\n    Object.defineProperty(proto, \"isEmpty\", {\n        configurable: true,\n        enumerable: false,\n        get() {\n            return this.issues.length === 0;\n        },\n    });\n};\nexport const ZodError = /*@__PURE__*/ core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = /*@__PURE__*/ core.$constructor(\"ZodError\", initializer, undefined, {\n    Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\nexport { validate, validateAsync } from \"../core/index.js\";\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as processors from \"../core/json-schema-processors.js\";\nimport * as regexes from \"../core/regexes.js\";\nimport { createStandardJSONSchemaMethod, createToJSONSchemaMethod } from \"../core/to-json-schema.js\";\nimport en from \"../locales/en.js\";\nimport * as checks from \"./checks.js\";\nimport * as parse from \"./parse.js\";\n// Register English as the default locale on first ZodType construction. Hooked into the `ZodType` `$constructor` (rather than a top-level `config(en())` in `external.ts`) so bundlers honoring `sideEffects: false` can't tree-shake it out — see #5953, #5725. An explicit `z.config(z.locales.xx())` call wins regardless of order, since this only sets the default when none is present.\nfunction _ensureDefaultLocale() {\n    if (!core.globalConfig.localeError)\n        core.config(en());\n}\n// the default memoizer is read by the core container init, which runs before `ZodType.init`, so each container calls this first\nfunction _ensureDefaultMemoizer() {\n    if (!core.globalConfig.memoizer)\n        core.config({ memoizer: core.memoizer() });\n}\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n    _ensureDefaultLocale();\n    core.$ZodType.init(inst, def);\n    inst.def = def;\n    inst.type = def.type;\n    return inst;\n}, {\n    check(...chks) {\n        const def = this.def;\n        return this.clone(util.mergeDefs(def, {\n            checks: [\n                ...(def.checks ?? []),\n                ...chks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n            ],\n        }), { parent: true });\n    },\n    with(...chks) {\n        return this.check(...chks);\n    },\n    clone(def, params) {\n        return core.clone(this, def, params);\n    },\n    brand() {\n        return this;\n    },\n    register(reg, meta) {\n        reg.add(this, meta);\n        return this;\n    },\n    refine(check, params) {\n        return this.check(refine(check, params));\n    },\n    superRefine(refinement, params) {\n        return this.check(superRefine(refinement, params));\n    },\n    overwrite(fn) {\n        return this.check(checks.overwrite(fn));\n    },\n    optional() {\n        return optional(this);\n    },\n    exactOptional() {\n        return exactOptional(this);\n    },\n    nullable() {\n        return nullable(this);\n    },\n    nullish() {\n        return optional(nullable(this));\n    },\n    nonoptional(params) {\n        return nonoptional(this, params);\n    },\n    array() {\n        return array(this);\n    },\n    or(arg) {\n        return union([this, arg]);\n    },\n    and(arg) {\n        return intersection(this, arg);\n    },\n    transform(tx) {\n        return pipe(this, transform(tx));\n    },\n    default(d) {\n        return _default(this, d);\n    },\n    prefault(d) {\n        return prefault(this, d);\n    },\n    catch(params) {\n        return _catch(this, params);\n    },\n    pipe(target) {\n        return pipe(this, target);\n    },\n    readonly() {\n        return readonly(this);\n    },\n    describe(description) {\n        const cl = this.clone();\n        core.globalRegistry.add(cl, { description });\n        return cl;\n    },\n    meta(...args) {\n        // overloaded: meta() returns the registered metadata, meta(data) returns a clone with `data` registered. The mapped type picks up the second overload, so we accept variadic any-args and return `any` to satisfy both at runtime.\n        if (args.length === 0)\n            return core.globalRegistry.get(this);\n        const cl = this.clone();\n        core.globalRegistry.add(cl, args[0]);\n        return cl;\n    },\n    isOptional() {\n        return this.safeParse(undefined).success;\n    },\n    isNullable() {\n        return this.safeParse(null).success;\n    },\n    apply(fn, ...args) {\n        return args.length === 0 ? fn(this) : fn(this, ...args);\n    },\n    // Overrides core's `~standard` to add `jsonSchema`. Must stay a prototype entry: redefining it per instance demotes instances to dictionary mode.\n    get \"~standard\"() {\n        return util.hide(this, \"~standard\", {\n            ...core.standardProps(this),\n            jsonSchema: {\n                input: createStandardJSONSchemaMethod(this, \"input\"),\n                output: createStandardJSONSchemaMethod(this, \"output\"),\n            },\n        });\n    },\n    set \"~standard\"(value) {\n        util.own(this, \"~standard\", value);\n    },\n    parse: function _parse(data, params) {\n        return parse.parse(this, data, params, { callee: _parse });\n    },\n    parseAsync: async function _parseAsync(data, params) {\n        return await parse.parseAsync(this, data, params, { callee: _parseAsync });\n    },\n    safeParse(data, params) {\n        return parse.safeParse(this, data, params);\n    },\n    async safeParseAsync(data, params) {\n        return parse.safeParseAsync(this, data, params);\n    },\n    // `spa` is an alias: same function object as `safeParseAsync`, as before.\n    get spa() {\n        return this?.safeParseAsync;\n    },\n    set spa(value) {\n        util.own(this, \"spa\", value);\n    },\n    validate(data, params) {\n        return parse.validate(this, data, params);\n    },\n    validateAsync(data, params) {\n        return parse.validateAsync(this, data, params);\n    },\n    encode: function _encode(data, params) {\n        return parse.encode(this, data, params, { callee: _encode });\n    },\n    decode: function _decode(data, params) {\n        return parse.decode(this, data, params, { callee: _decode });\n    },\n    encodeAsync: async function _encodeAsync(data, params) {\n        return await parse.encodeAsync(this, data, params, { callee: _encodeAsync });\n    },\n    decodeAsync: async function _decodeAsync(data, params) {\n        return await parse.decodeAsync(this, data, params, { callee: _decodeAsync });\n    },\n    safeEncode(data, params) {\n        return parse.safeEncode(this, data, params);\n    },\n    safeDecode(data, params) {\n        return parse.safeDecode(this, data, params);\n    },\n    async safeEncodeAsync(data, params) {\n        return parse.safeEncodeAsync(this, data, params);\n    },\n    async safeDecodeAsync(data, params) {\n        return parse.safeDecodeAsync(this, data, params);\n    },\n    toJSONSchema(params) {\n        return createToJSONSchemaMethod(this, {})(params);\n    },\n    // Reads through to the registry on every access, so it must not cache.\n    get description() {\n        return core.globalRegistry.get(this)?.description;\n    },\n    // No setter: `schema._def = x` throws, as it did when `_def` was a non-writable own property.\n    get _def() {\n        return this._zod.def;\n    },\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.stringProcessor(inst, ctx, json, params);\n}, \n/*@__PURE__*/ util.derived({\n    format: (inst) => processors.aggregateChecks(inst).format ?? null,\n    minLength: (inst) => processors.aggregateChecks(inst).minimum ?? null,\n    maxLength: (inst) => processors.aggregateChecks(inst).maximum ?? null,\n}, {\n    regex(...args) {\n        return this.check(checks.regex(...args));\n    },\n    includes(...args) {\n        return this.check(checks.includes(...args));\n    },\n    startsWith(...args) {\n        return this.check(checks.startsWith(...args));\n    },\n    endsWith(...args) {\n        return this.check(checks.endsWith(...args));\n    },\n    min(...args) {\n        return this.check(checks.minLength(...args));\n    },\n    max(...args) {\n        return this.check(checks.maxLength(...args));\n    },\n    length(...args) {\n        return this.check(checks.length(...args));\n    },\n    nonempty(...args) {\n        return this.check(checks.minLength(1, ...args));\n    },\n    lowercase(params) {\n        return this.check(checks.lowercase(params));\n    },\n    uppercase(params) {\n        return this.check(checks.uppercase(params));\n    },\n    trim() {\n        return this.check(checks.trim());\n    },\n    normalize(...args) {\n        return this.check(checks.normalize(...args));\n    },\n    toLowerCase() {\n        return this.check(checks.toLowerCase());\n    },\n    toUpperCase() {\n        return this.check(checks.toUpperCase());\n    },\n    slugify() {\n        return this.check(checks.slugify());\n    },\n}));\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n    core.$ZodString.init(inst, def);\n    _ZodString.init(inst, def);\n}, {\n    email(params) {\n        return this.check(core._email(ZodEmail, params));\n    },\n    url(params) {\n        return this.check(core._url(ZodURL, params));\n    },\n    jwt(params) {\n        return this.check(core._jwt(ZodJWT, params));\n    },\n    emoji(params) {\n        return this.check(core._emoji(ZodEmoji, params));\n    },\n    guid(params) {\n        return this.check(core._guid(ZodGUID, params));\n    },\n    uuid(params) {\n        return this.check(core._uuid(ZodUUID, params));\n    },\n    uuidv4(params) {\n        return this.check(core._uuidv4(ZodUUID, params));\n    },\n    uuidv6(params) {\n        return this.check(core._uuidv6(ZodUUID, params));\n    },\n    uuidv7(params) {\n        return this.check(core._uuidv7(ZodUUID, params));\n    },\n    nanoid(params) {\n        return this.check(core._nanoid(ZodNanoID, params));\n    },\n    cuid(params) {\n        return this.check(core._cuid(ZodCUID, params));\n    },\n    cuid2(params) {\n        return this.check(core._cuid2(ZodCUID2, params));\n    },\n    ulid(params) {\n        return this.check(core._ulid(ZodULID, params));\n    },\n    base64(params) {\n        return this.check(core._base64(ZodBase64, params));\n    },\n    base64url(params) {\n        return this.check(core._base64url(ZodBase64URL, params));\n    },\n    xid(params) {\n        return this.check(core._xid(ZodXID, params));\n    },\n    ksuid(params) {\n        return this.check(core._ksuid(ZodKSUID, params));\n    },\n    ipv4(params) {\n        return this.check(core._ipv4(ZodIPv4, params));\n    },\n    ipv6(params) {\n        return this.check(core._ipv6(ZodIPv6, params));\n    },\n    cidrv4(params) {\n        return this.check(core._cidrv4(ZodCIDRv4, params));\n    },\n    cidrv6(params) {\n        return this.check(core._cidrv6(ZodCIDRv6, params));\n    },\n    e164(params) {\n        return this.check(core._e164(ZodE164, params));\n    },\n    datetime(params) {\n        return this.check(core._isoDateTime(ZodISODateTime, params));\n    },\n    date(params) {\n        return this.check(core._isoDate(ZodISODate, params));\n    },\n    time(params) {\n        return this.check(core._isoTime(ZodISOTime, params));\n    },\n    duration(params) {\n        return this.check(core._isoDuration(ZodISODuration, params));\n    },\n});\nexport function string(params) {\n    return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n    core.$ZodStringFormat.init(inst, def);\n    _ZodString.init(inst, def);\n});\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n    core.$ZodISODateTime.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n    core.$ZodISODate.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n    core.$ZodISOTime.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n    core.$ZodISODuration.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmail.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n    return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodGUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n    return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodUUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n    return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n    return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n    return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n    return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodURL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n    return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n    return core._url(ZodURL, {\n        protocol: regexes.httpProtocol,\n        hostname: regexes.domain,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodEmoji.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n    return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodNanoID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n    return core._nanoid(ZodNanoID, params);\n}\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link ZodCUID2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\n/**\n * Validates a CUID v1 string.\n *\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link cuid2 | `z.cuid2()`} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport function cuid(params) {\n    return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCUID2.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n    return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodULID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n    return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodXID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n    return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodKSUID.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n    return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n    return core._ipv4(ZodIPv4, params);\n}\nexport const ZodMAC = /*@__PURE__*/ core.$constructor(\"ZodMAC\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodMAC.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function mac(params) {\n    return core._mac(ZodMAC, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodIPv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n    return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n    core.$ZodCIDRv4.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n    return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n    core.$ZodCIDRv6.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n    return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n    return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodBase64URL.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n    return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodE164.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n    return core._e164(ZodE164, params);\n}\nexport const ZodCreditCard = /*@__PURE__*/ core.$constructor(\"ZodCreditCard\", (inst, def) => {\n    core.$ZodCreditCard.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function creditCard(params) {\n    return core._creditCard(ZodCreditCard, params);\n}\nexport const ZodIBAN = /*@__PURE__*/ core.$constructor(\"ZodIBAN\", (inst, def) => {\n    core.$ZodIBAN.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function iban(params) {\n    return core._iban(ZodIBAN, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodJWT.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n    return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n    // ZodStringFormat.init(inst, def);\n    core.$ZodCustomStringFormat.init(inst, def);\n    ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n    return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"hostname\", regexes.hostname, _params);\n}\nexport function hex(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"hex\", regexes.hex, _params);\n}\nexport function currencyCode(_params) {\n    return core._stringFormat(ZodCustomStringFormat, \"currency_code\", regexes.currencyCode, _params);\n}\nexport function hash(alg, params) {\n    const enc = params?.enc ?? \"hex\";\n    const format = `${alg}_${enc}`;\n    const regex = core.regexes[format];\n    if (!regex)\n        throw new Error(`Unrecognized hash format: ${format}`);\n    return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n    core.$ZodNumber.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.numberProcessor(inst, ctx, json, params);\n    inst.isFinite = true;\n}, \n/*@__PURE__*/ util.derived({\n    minValue: (inst) => {\n        const { minimum, exclusiveMinimum } = processors.aggregateChecks(inst);\n        return Math.max(minimum ?? Number.NEGATIVE_INFINITY, exclusiveMinimum ?? Number.NEGATIVE_INFINITY);\n    },\n    maxValue: (inst) => {\n        const { maximum, exclusiveMaximum } = processors.aggregateChecks(inst);\n        return Math.min(maximum ?? Number.POSITIVE_INFINITY, exclusiveMaximum ?? Number.POSITIVE_INFINITY);\n    },\n    isInt: (inst) => {\n        const { isInt, multipleOf } = processors.aggregateChecks(inst);\n        return !!isInt || !!multipleOf?.some(Number.isSafeInteger);\n    },\n    format: (inst) => processors.aggregateChecks(inst).format ?? null,\n}, {\n    gt(value, params) {\n        return this.check(checks.gt(value, params));\n    },\n    gte(value, params) {\n        return this.check(checks.gte(value, params));\n    },\n    min(value, params) {\n        return this.check(checks.gte(value, params));\n    },\n    lt(value, params) {\n        return this.check(checks.lt(value, params));\n    },\n    lte(value, params) {\n        return this.check(checks.lte(value, params));\n    },\n    max(value, params) {\n        return this.check(checks.lte(value, params));\n    },\n    int(params) {\n        return this.check(int(params));\n    },\n    safe(params) {\n        return this.check(int(params));\n    },\n    positive(params) {\n        return this.check(checks.gt(0, params));\n    },\n    nonnegative(params) {\n        return this.check(checks.gte(0, params));\n    },\n    negative(params) {\n        return this.check(checks.lt(0, params));\n    },\n    nonpositive(params) {\n        return this.check(checks.lte(0, params));\n    },\n    multipleOf(value, params) {\n        return this.check(checks.multipleOf(value, params));\n    },\n    step(value, params) {\n        return this.check(checks.multipleOf(value, params));\n    },\n    finite() {\n        return this;\n    },\n}));\nexport function number(params) {\n    return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n    core.$ZodNumberFormat.init(inst, def);\n    ZodNumber.init(inst, def);\n});\nexport function int(params) {\n    return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n    return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n    return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n    return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n    return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n    core.$ZodBoolean.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.booleanProcessor(inst, ctx, json, params);\n});\nexport function boolean(params) {\n    return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n    core.$ZodBigInt.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.bigintProcessor(inst, ctx, json, params);\n}, \n/*@__PURE__*/ util.derived({\n    minValue: (inst) => processors.aggregateChecks(inst).minimum ?? null,\n    maxValue: (inst) => processors.aggregateChecks(inst).maximum ?? null,\n    format: (inst) => processors.aggregateChecks(inst).format ?? null,\n}, {\n    gte(value, params) {\n        return this.check(checks.gte(value, params));\n    },\n    min(value, params) {\n        return this.check(checks.gte(value, params));\n    },\n    gt(value, params) {\n        return this.check(checks.gt(value, params));\n    },\n    lt(value, params) {\n        return this.check(checks.lt(value, params));\n    },\n    lte(value, params) {\n        return this.check(checks.lte(value, params));\n    },\n    max(value, params) {\n        return this.check(checks.lte(value, params));\n    },\n    positive(params) {\n        return this.check(checks.gt(BigInt(0), params));\n    },\n    negative(params) {\n        return this.check(checks.lt(BigInt(0), params));\n    },\n    nonpositive(params) {\n        return this.check(checks.lte(BigInt(0), params));\n    },\n    nonnegative(params) {\n        return this.check(checks.gte(BigInt(0), params));\n    },\n    multipleOf(value, params) {\n        return this.check(checks.multipleOf(value, params));\n    },\n}));\nexport function bigint(params) {\n    return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n    core.$ZodBigIntFormat.init(inst, def);\n    ZodBigInt.init(inst, def);\n});\nexport function int64(params) {\n    return core._int64(ZodBigIntFormat, params);\n}\nexport function uint64(params) {\n    return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n    core.$ZodSymbol.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.symbolProcessor(inst, ctx, json, params);\n});\nexport function symbol(params) {\n    return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n    core.$ZodUndefined.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.undefinedProcessor(inst, ctx, json, params);\n});\nfunction _undefined(params) {\n    return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n    core.$ZodNull.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.nullProcessor(inst, ctx, json, params);\n});\nfunction _null(params) {\n    return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n    core.$ZodAny.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.anyProcessor(inst, ctx, json, params);\n});\nexport function any() {\n    return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n    core.$ZodUnknown.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.unknownProcessor(inst, ctx, json, params);\n});\nexport function unknown() {\n    return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n    core.$ZodNever.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.neverProcessor(inst, ctx, json, params);\n});\nexport function never(params) {\n    return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n    core.$ZodVoid.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.voidProcessor(inst, ctx, json, params);\n});\nfunction _void(params) {\n    return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n    core.$ZodDate.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.dateProcessor(inst, ctx, json, params);\n    inst.min = (value, params) => inst.check(checks.gte(value, params));\n    inst.max = (value, params) => inst.check(checks.lte(value, params));\n}, \n/*@__PURE__*/ util.derived({\n    minDate: (inst) => {\n        const { minimum } = processors.aggregateChecks(inst);\n        return minimum ? new Date(minimum) : null;\n    },\n    maxDate: (inst) => {\n        const { maximum } = processors.aggregateChecks(inst);\n        return maximum ? new Date(maximum) : null;\n    },\n}, {}));\nexport function date(params) {\n    return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n    _ensureDefaultMemoizer();\n    core.$ZodArray.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.arrayProcessor(inst, ctx, json, params);\n    inst.element = def.element;\n}, {\n    min(n, params) {\n        return this.check(checks.minLength(n, params));\n    },\n    nonempty(params) {\n        return this.check(checks.minLength(1, params));\n    },\n    max(n, params) {\n        return this.check(checks.maxLength(n, params));\n    },\n    length(n, params) {\n        return this.check(checks.length(n, params));\n    },\n    unwrap() {\n        return this.element;\n    },\n});\nexport function array(element, params) {\n    return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n    const shape = schema._zod.def.shape;\n    return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n    _ensureDefaultMemoizer();\n    core.$ZodObjectJIT.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.objectProcessor(inst, ctx, json, params);\n    util.installLazyProp(inst, \"shape\", (self) => self._zod.def.shape, false);\n}, {\n    keyof() {\n        return _enum(Object.keys(this._zod.def.shape));\n    },\n    catchall(catchall) {\n        // `mergeDefs` rather than a spread: spreading reads `shape`, and resolving it can mint a whole fresh subtree\n        return this.clone(util.mergeDefs(this._zod.def, { catchall: catchall }));\n    },\n    passthrough() {\n        return this.clone(util.mergeDefs(this._zod.def, { catchall: unknown() }));\n    },\n    loose() {\n        return this.clone(util.mergeDefs(this._zod.def, { catchall: unknown() }));\n    },\n    strict() {\n        return this.clone(util.mergeDefs(this._zod.def, { catchall: never() }));\n    },\n    strip() {\n        return this.clone(util.mergeDefs(this._zod.def, { catchall: undefined }));\n    },\n    extend(incoming) {\n        return util.extend(this, incoming);\n    },\n    safeExtend(incoming) {\n        return util.safeExtend(this, incoming);\n    },\n    merge(other) {\n        return util.merge(this, other);\n    },\n    pick(mask) {\n        return util.pick(this, mask);\n    },\n    omit(mask) {\n        return util.omit(this, mask);\n    },\n    partial(...args) {\n        return util.partial(ZodOptional, this, args[0]);\n    },\n    exactPartial(...args) {\n        return util.partial(ZodExactOptional, this, args[0], \"exactPartial\");\n    },\n    required(...args) {\n        return util.required(ZodNonOptional, this, args[0]);\n    },\n});\nexport function object(shape, params) {\n    const def = {\n        type: \"object\",\n        shape: shape ?? {},\n        ...util.normalizeParams(params),\n    };\n    return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        shape,\n        catchall: never(),\n        ...util.normalizeParams(params),\n    });\n}\n// looseObject\nexport function looseObject(shape, params) {\n    return new ZodObject({\n        type: \"object\",\n        shape,\n        catchall: unknown(),\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n    core.$ZodUnion.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n    inst.options = def.options;\n});\nexport function union(options, params) {\n    return new ZodUnion({\n        type: \"union\",\n        options: options,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodXor = /*@__PURE__*/ core.$constructor(\"ZodXor\", (inst, def) => {\n    ZodUnion.init(inst, def);\n    core.$ZodXor.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n    inst.options = def.options;\n});\n/** Creates an exclusive union (XOR) where exactly one option must match.\n * Unlike regular unions that succeed when any option matches, xor fails if\n * zero or more than one option matches the input. */\nexport function xor(options, params) {\n    return new ZodXor({\n        type: \"union\",\n        options: options,\n        inclusive: false,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n    ZodUnion.init(inst, def);\n    core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n    // const [options, params] = args;\n    return new ZodDiscriminatedUnion({\n        type: \"union\",\n        options: options,\n        discriminator,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n    core.$ZodIntersection.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.intersectionProcessor(inst, ctx, json, params);\n});\nexport function intersection(left, right) {\n    return new ZodIntersection({\n        type: \"intersection\",\n        left: left,\n        right: right,\n    });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n    _ensureDefaultMemoizer();\n    core.$ZodTuple.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.tupleProcessor(inst, ctx, json, params);\n}, {\n    rest(rest) {\n        return this.clone({\n            ...this._zod.def,\n            rest: rest,\n        });\n    },\n    partial() {\n        const def = this._zod.def;\n        // a refinement was authored against the full arity; partialing would run it on a shorter array\n        if (def.checks?.length)\n            throw new Error(\".partial() cannot be used on tuple schemas containing refinements\");\n        return this.clone({\n            ...def,\n            items: def.items.map((item) => new ZodOptional({ type: \"optional\", innerType: item })),\n        });\n    },\n});\nexport function tuple(items, _paramsOrRest, _params) {\n    const hasRest = _paramsOrRest instanceof core.$ZodType;\n    const params = hasRest ? _params : _paramsOrRest;\n    const rest = hasRest ? _paramsOrRest : null;\n    return new ZodTuple({\n        type: \"tuple\",\n        items: items,\n        rest,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n    _ensureDefaultMemoizer();\n    core.$ZodRecord.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.recordProcessor(inst, ctx, json, params);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n    // v3-compat: z.record(valueType, params?) — defaults keyType to z.string()\n    if (!valueType || !valueType._zod) {\n        return new ZodRecord({\n            type: \"record\",\n            keyType: string(),\n            valueType: keyType,\n            ...util.normalizeParams(valueType),\n        });\n    }\n    return new ZodRecord({\n        type: \"record\",\n        keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n    return new ZodRecord({\n        type: \"record\",\n        keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n        partial: true,\n    });\n}\nexport function looseRecord(keyType, valueType, params) {\n    return new ZodRecord({\n        type: \"record\",\n        keyType,\n        valueType: valueType,\n        mode: \"loose\",\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n    _ensureDefaultMemoizer();\n    core.$ZodMap.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.mapProcessor(inst, ctx, json, params);\n    inst.keyType = def.keyType;\n    inst.valueType = def.valueType;\n    inst.min = (...args) => inst.check(core._minSize(...args));\n    inst.nonempty = (params) => inst.check(core._minSize(1, params));\n    inst.max = (...args) => inst.check(core._maxSize(...args));\n    inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function map(keyType, valueType, params) {\n    return new ZodMap({\n        type: \"map\",\n        keyType: keyType,\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n    _ensureDefaultMemoizer();\n    core.$ZodSet.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.setProcessor(inst, ctx, json, params);\n    inst.min = (...args) => inst.check(core._minSize(...args));\n    inst.nonempty = (params) => inst.check(core._minSize(1, params));\n    inst.max = (...args) => inst.check(core._maxSize(...args));\n    inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n    return new ZodSet({\n        type: \"set\",\n        valueType: valueType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n    core.$ZodEnum.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.enumProcessor(inst, ctx, json, params);\n    inst.enum = def.entries;\n    // reuse the parsed value set so a numeric TS enum's reverse-mapping keys stay out\n    inst.options = [...inst._zod.values];\n    const keys = new Set(Object.keys(def.entries));\n    inst.extract = (values, params) => {\n        const newEntries = {};\n        for (const value of values) {\n            if (keys.has(value)) {\n                newEntries[value] = def.entries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n    inst.exclude = (values, params) => {\n        const newEntries = { ...def.entries };\n        for (const value of values) {\n            if (keys.has(value)) {\n                delete newEntries[value];\n            }\n            else\n                throw new Error(`Key ${value} not found in enum`);\n        }\n        return new ZodEnum({\n            ...def,\n            checks: [],\n            ...util.normalizeParams(params),\n            entries: newEntries,\n        });\n    };\n});\nfunction _enum(values, params) {\n    const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n    return new ZodEnum({\n        type: \"enum\",\n        entries,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n    core.$ZodLiteral.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.literalProcessor(inst, ctx, json, params);\n    inst.values = new Set(def.values);\n    Object.defineProperty(inst, \"value\", {\n        get() {\n            if (def.values.length > 1) {\n                throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n            }\n            return def.values[0];\n        },\n    });\n});\nexport function literal(value, params) {\n    return new ZodLiteral({\n        type: \"literal\",\n        values: Array.isArray(value) ? value : [value],\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n    core.$ZodFile.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.fileProcessor(inst, ctx, json, params);\n    inst.min = (size, params) => inst.check(core._minSize(size, params));\n    inst.max = (size, params) => inst.check(core._maxSize(size, params));\n    inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n    return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n    _ensureDefaultMemoizer();\n    core.$ZodTransform.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.transformProcessor(inst, ctx, json, params);\n    inst._zod.parse = (payload, _ctx) => {\n        if (_ctx.direction === \"backward\") {\n            throw new core.$ZodEncodeError(inst.constructor.name);\n        }\n        payload.addIssue = (issue) => {\n            if (typeof issue === \"string\") {\n                payload.issues.push(util.issue(issue, payload.value, def));\n            }\n            else {\n                // for Zod 3 backwards compatibility\n                const _issue = issue;\n                if (_issue.fatal)\n                    _issue.continue = false;\n                _issue.code ?? (_issue.code = \"custom\");\n                if (!(\"input\" in _issue))\n                    _issue.input = payload.value;\n                _issue.inst ?? (_issue.inst = inst);\n                // _issue.continue ??= true;\n                payload.issues.push(util.issue(_issue));\n            }\n        };\n        const output = def.transform(payload.value, payload);\n        if (output instanceof Promise) {\n            return output.then((output) => {\n                payload.value = output;\n                return payload;\n            });\n        }\n        payload.value = output;\n        return payload;\n    };\n});\nexport function transform(fn) {\n    return new ZodTransform({\n        type: \"transform\",\n        transform: fn,\n    });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n    core.$ZodOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n    return new ZodOptional({\n        type: \"optional\",\n        innerType: innerType,\n    });\n}\nexport const ZodExactOptional = /*@__PURE__*/ core.$constructor(\"ZodExactOptional\", (inst, def) => {\n    core.$ZodExactOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function exactOptional(innerType) {\n    return new ZodExactOptional({\n        type: \"optional\",\n        innerType: innerType,\n    });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n    core.$ZodNullable.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.nullableProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n    return new ZodNullable({\n        type: \"nullable\",\n        innerType: innerType,\n    });\n}\n// nullish\nexport function nullish(innerType) {\n    return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n    core.$ZodDefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.defaultProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n    return new ZodDefault({\n        type: \"default\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n    core.$ZodPrefault.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.prefaultProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n    return new ZodPrefault({\n        type: \"prefault\",\n        innerType: innerType,\n        get defaultValue() {\n            return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n        },\n    });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n    core.$ZodNonOptional.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.nonoptionalProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n    return new ZodNonOptional({\n        type: \"nonoptional\",\n        innerType: innerType,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n    core.$ZodSuccess.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.successProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n    return new ZodSuccess({\n        type: \"success\",\n        innerType: innerType,\n    });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n    core.$ZodCatch.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.catchProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n    inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n    return new ZodCatch({\n        type: \"catch\",\n        innerType: innerType,\n        catchValue: (typeof catchValue === \"function\" ? catchValue : core.util.constantCatch(catchValue)),\n    });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n    core.$ZodNaN.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.nanProcessor(inst, ctx, json, params);\n});\nexport function nan(params) {\n    return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n    core.$ZodPipe.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.pipeProcessor(inst, ctx, json, params);\n    inst.in = def.in;\n    inst.out = def.out;\n});\nexport function pipe(in_, out) {\n    return new ZodPipe({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        // ...util.normalizeParams(params),\n    });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n    ZodPipe.init(inst, def);\n    core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n    return new ZodCodec({\n        type: \"pipe\",\n        in: in_,\n        out: out,\n        transform: params.decode,\n        reverseTransform: params.encode,\n    });\n}\nexport function invertCodec(codec) {\n    const def = codec._zod.def;\n    return new ZodCodec({\n        type: \"pipe\",\n        in: def.out,\n        out: def.in,\n        transform: def.reverseTransform,\n        reverseTransform: def.transform,\n    });\n}\nexport const ZodPreprocess = /*@__PURE__*/ core.$constructor(\"ZodPreprocess\", (inst, def) => {\n    ZodPipe.init(inst, def);\n    core.$ZodPreprocess.init(inst, def);\n});\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n    core.$ZodReadonly.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.readonlyProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n    return new ZodReadonly({\n        type: \"readonly\",\n        innerType: innerType,\n    });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n    core.$ZodTemplateLiteral.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.templateLiteralProcessor(inst, ctx, json, params);\n});\nexport function templateLiteral(parts, params) {\n    return new ZodTemplateLiteral({\n        type: \"template_literal\",\n        parts,\n        ...util.normalizeParams(params),\n    });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n    core.$ZodLazy.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.lazyProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n    return new ZodLazy({\n        type: \"lazy\",\n        getter: getter,\n    });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n    core.$ZodPromise.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.promiseProcessor(inst, ctx, json, params);\n    inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n    return new ZodPromise({\n        type: \"promise\",\n        innerType: innerType,\n    });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n    core.$ZodFunction.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.functionProcessor(inst, ctx, json, params);\n});\nexport function _function(params) {\n    return new ZodFunction({\n        type: \"function\",\n        input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n        output: params?.output ?? unknown(),\n    });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n    core.$ZodCustom.init(inst, def);\n    ZodType.init(inst, def);\n    inst._zod.processJSONSchema = (ctx, json, params) => processors.customProcessor(inst, ctx, json, params);\n});\n// custom checks\nexport function check(fn) {\n    const ch = new core.$ZodCheck({\n        check: \"custom\",\n        // ...util.normalizeParams(params),\n    });\n    ch._zod.check = fn;\n    return ch;\n}\nexport function custom(fn, _params) {\n    return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n    return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn, params) {\n    return core._superRefine(fn, params);\n}\n// Re-export describe and meta from core\nexport const describe = core.describe;\nexport const meta = core.meta;\nexport const ZodInstanceOf = /*@__PURE__*/ core.$constructor(\"ZodInstanceOf\", (inst, def) => {\n    ZodCustom.init(inst, def);\n}, {\n    properties(shape, params) {\n        // asserts in place, so the narrowed output type is truthful without a wrapper\n        return this.check(core._properties(shape, params));\n    },\n});\nfunction _instanceof(cls, params = {}) {\n    const inst = new ZodInstanceOf({\n        type: \"custom\",\n        check: \"custom\",\n        fn: (data) => data instanceof cls,\n        abort: true,\n        ...util.normalizeParams(params),\n    });\n    inst._zod.bag.Class = cls;\n    // Override check to emit invalid_type instead of custom\n    inst._zod.check = (payload) => {\n        if (!(payload.value instanceof cls)) {\n            payload.issues.push({\n                code: \"invalid_type\",\n                expected: cls.name,\n                input: payload.value,\n                inst,\n                path: [...(inst._zod.def.path ?? [])],\n            });\n        }\n    };\n    return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n    Codec: ZodCodec,\n    Boolean: ZodBoolean,\n    String: ZodString,\n}, ...args);\nexport function json(params) {\n    const jsonSchema = lazy(() => {\n        return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n    });\n    return jsonSchema;\n}\n// preprocess\nexport function preprocess(fn, schema) {\n    return new ZodPreprocess({\n        type: \"pipe\",\n        in: transform(fn),\n        out: schema,\n    });\n}\n","import * as core from \"../core/index.js\";\nimport * as schemas from \"./schemas.js\";\nexport function string(params) {\n    return core._coercedString(schemas.ZodString, params);\n}\nexport function number(params) {\n    return core._coercedNumber(schemas.ZodNumber, params);\n}\nexport function boolean(params) {\n    return core._coercedBoolean(schemas.ZodBoolean, params);\n}\nexport function bigint(params) {\n    return core._coercedBigint(schemas.ZodBigInt, params);\n}\nexport function date(params) {\n    return core._coercedDate(schemas.ZodDate, params);\n}\n","const t=Symbol.for(\"@ts-pattern/matcher\"),e=Symbol.for(\"@ts-pattern/isVariadic\"),n=\"@ts-pattern/anonymous-select-key\",r=t=>Boolean(t&&\"object\"==typeof t),i=e=>e&&!!e[t],o=(n,s,c)=>{if(i(n)){const e=n[t](),{matched:r,selections:i}=e.match(s);return r&&i&&Object.keys(i).forEach(t=>c(t,i[t])),r}if(r(n)){if(!r(s))return!1;if(Array.isArray(n)){if(!Array.isArray(s))return!1;let t=[],r=[],u=[];for(const o of n.keys()){const s=n[o];i(s)&&s[e]?u.push(s):u.length?r.push(s):t.push(s)}if(u.length){if(u.length>1)throw new Error(\"Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.\");if(s.length<t.length+r.length)return!1;const e=s.slice(0,t.length),n=0===r.length?[]:s.slice(-r.length),i=s.slice(t.length,0===r.length?Infinity:-r.length);return t.every((t,n)=>o(t,e[n],c))&&r.every((t,e)=>o(t,n[e],c))&&(0===u.length||o(u[0],i,c))}return n.length===s.length&&n.every((t,e)=>o(t,s[e],c))}return Reflect.ownKeys(n).every(e=>{const r=n[e];return(e in s||i(u=r)&&\"optional\"===u[t]().matcherType)&&o(r,s[e],c);var u})}return Object.is(s,n)},s=e=>{var n,o,u;return r(e)?i(e)?null!=(n=null==(o=(u=e[t]()).getSelectionKeys)?void 0:o.call(u))?n:[]:Array.isArray(e)?c(e,s):c(Object.values(e),s):[]},c=(t,e)=>t.reduce((t,n)=>t.concat(e(n)),[]);function u(...t){if(1===t.length){const[e]=t;return t=>o(e,t,()=>{})}if(2===t.length){const[e,n]=t;return o(e,n,()=>{})}throw new Error(`isMatching wasn't given the right number of arguments: expected 1 or 2, received ${t.length}.`)}function a(t){return Object.assign(t,{optional:()=>h(t),and:e=>d(t,e),or:e=>y(t,e),select:e=>void 0===e?v(t):v(e,t)})}function l(t){return Object.assign((t=>Object.assign(t,{[Symbol.iterator](){let n=0;const r=[{value:Object.assign(t,{[e]:!0}),done:!1},{done:!0,value:void 0}];return{next:()=>{var t;return null!=(t=r[n++])?t:r.at(-1)}}}}))(t),{optional:()=>l(h(t)),select:e=>l(void 0===e?v(t):v(e,t))})}function h(e){return a({[t]:()=>({match:t=>{let n={};const r=(t,e)=>{n[t]=e};return void 0===t?(s(e).forEach(t=>r(t,void 0)),{matched:!0,selections:n}):{matched:o(e,t,r),selections:n}},getSelectionKeys:()=>s(e),matcherType:\"optional\"})})}const f=(t,e)=>{for(const n of t)if(!e(n))return!1;return!0},g=(t,e)=>{for(const[n,r]of t.entries())if(!e(r,n))return!1;return!0},m=(t,e)=>{const n=Reflect.ownKeys(t);for(const r of n)if(!e(r,t[r]))return!1;return!0};function d(...e){return a({[t]:()=>({match:t=>{let n={};const r=(t,e)=>{n[t]=e};return{matched:e.every(e=>o(e,t,r)),selections:n}},getSelectionKeys:()=>c(e,s),matcherType:\"and\"})})}function y(...e){return a({[t]:()=>({match:t=>{let n={};const r=(t,e)=>{n[t]=e};return c(e,s).forEach(t=>r(t,void 0)),{matched:e.some(e=>o(e,t,r)),selections:n}},getSelectionKeys:()=>c(e,s),matcherType:\"or\"})})}function p(e){return{[t]:()=>({match:t=>({matched:Boolean(e(t))})})}}function v(...e){const r=\"string\"==typeof e[0]?e[0]:void 0,i=2===e.length?e[1]:\"string\"==typeof e[0]?void 0:e[0];return a({[t]:()=>({match:t=>{let e={[null!=r?r:n]:t};return{matched:void 0===i||o(i,t,(t,n)=>{e[t]=n}),selections:e}},getSelectionKeys:()=>[null!=r?r:n].concat(void 0===i?[]:s(i))})})}function b(t){return!0}function w(t){return\"number\"==typeof t}function S(t){return\"string\"==typeof t}function j(t){return\"bigint\"==typeof t}const K=a(p(b)),O=a(p(b)),E=K,x=t=>Object.assign(a(t),{startsWith:e=>{return x(d(t,(n=e,p(t=>S(t)&&t.startsWith(n)))));var n},endsWith:e=>{return x(d(t,(n=e,p(t=>S(t)&&t.endsWith(n)))));var n},minLength:e=>x(d(t,(t=>p(e=>S(e)&&e.length>=t))(e))),length:e=>x(d(t,(t=>p(e=>S(e)&&e.length===t))(e))),maxLength:e=>x(d(t,(t=>p(e=>S(e)&&e.length<=t))(e))),includes:e=>{return x(d(t,(n=e,p(t=>S(t)&&t.includes(n)))));var n},regex:e=>{return x(d(t,(n=e,p(t=>S(t)&&Boolean(t.match(n))))));var n}}),A=x(p(S)),N=t=>Object.assign(a(t),{between:(e,n)=>N(d(t,((t,e)=>p(n=>w(n)&&t<=n&&e>=n))(e,n))),lt:e=>N(d(t,(t=>p(e=>w(e)&&e<t))(e))),gt:e=>N(d(t,(t=>p(e=>w(e)&&e>t))(e))),lte:e=>N(d(t,(t=>p(e=>w(e)&&e<=t))(e))),gte:e=>N(d(t,(t=>p(e=>w(e)&&e>=t))(e))),int:()=>N(d(t,p(t=>w(t)&&Number.isInteger(t)))),finite:()=>N(d(t,p(t=>w(t)&&Number.isFinite(t)))),positive:()=>N(d(t,p(t=>w(t)&&t>0))),negative:()=>N(d(t,p(t=>w(t)&&t<0)))}),P=N(p(w)),k=t=>Object.assign(a(t),{between:(e,n)=>k(d(t,((t,e)=>p(n=>j(n)&&t<=n&&e>=n))(e,n))),lt:e=>k(d(t,(t=>p(e=>j(e)&&e<t))(e))),gt:e=>k(d(t,(t=>p(e=>j(e)&&e>t))(e))),lte:e=>k(d(t,(t=>p(e=>j(e)&&e<=t))(e))),gte:e=>k(d(t,(t=>p(e=>j(e)&&e>=t))(e))),positive:()=>k(d(t,p(t=>j(t)&&t>0))),negative:()=>k(d(t,p(t=>j(t)&&t<0)))}),T=k(p(j)),B=a(p(function(t){return\"boolean\"==typeof t})),_=a(p(function(t){return\"symbol\"==typeof t})),W=a(p(function(t){return null==t})),$=a(p(function(t){return null!=t}));var z={__proto__:null,matcher:t,optional:h,array:function(...e){return l({[t]:()=>({match:t=>{if(!Array.isArray(t))return{matched:!1};if(0===e.length)return{matched:!0};const n=e[0];let r={};if(0===t.length)return s(n).forEach(t=>{r[t]=[]}),{matched:!0,selections:r};const i=(t,e)=>{r[t]=(r[t]||[]).concat([e])};return{matched:t.every(t=>o(n,t,i)),selections:r}},getSelectionKeys:()=>0===e.length?[]:s(e[0])})})},set:function(...e){return a({[t]:()=>({match:t=>{if(!(t instanceof Set))return{matched:!1};let n={};if(0===t.size)return{matched:!0,selections:n};if(0===e.length)return{matched:!0};const r=(t,e)=>{n[t]=(n[t]||[]).concat([e])},i=e[0];return{matched:f(t,t=>o(i,t,r)),selections:n}},getSelectionKeys:()=>0===e.length?[]:s(e[0])})})},map:function(...e){return a({[t]:()=>({match:t=>{if(!(t instanceof Map))return{matched:!1};let n={};if(0===t.size)return{matched:!0,selections:n};const r=(t,e)=>{n[t]=(n[t]||[]).concat([e])};if(0===e.length)return{matched:!0};var i;if(1===e.length)throw new Error(`\\`P.map\\` wasn't given enough arguments. Expected (key, value), received ${null==(i=e[0])?void 0:i.toString()}`);const[s,c]=e;return{matched:g(t,(t,e)=>{const n=o(s,e,r),i=o(c,t,r);return n&&i}),selections:n}},getSelectionKeys:()=>0===e.length?[]:[...s(e[0]),...s(e[1])]})})},record:function(...e){return a({[t]:()=>({match:t=>{if(null===t||\"object\"!=typeof t||Array.isArray(t))return{matched:!1};var n;if(0===e.length)throw new Error(`\\`P.record\\` wasn't given enough arguments. Expected (value) or (key, value), received ${null==(n=e[0])?void 0:n.toString()}`);let r={};const i=(t,e)=>{r[t]=(r[t]||[]).concat([e])},[s,c]=1===e.length?[A,e[0]]:e;return{matched:m(t,(t,e)=>{const n=\"string\"!=typeof t||Number.isNaN(Number(t))?null:Number(t),r=null!==n&&o(s,n,i),u=o(s,t,i),a=o(c,e,i);return(u||r)&&a}),selections:r}},getSelectionKeys:()=>0===e.length?[]:[...s(e[0]),...s(e[1])]})})},intersection:d,union:y,not:function(e){return a({[t]:()=>({match:t=>({matched:!o(e,t,()=>{})}),getSelectionKeys:()=>[],matcherType:\"not\"})})},when:p,select:v,any:K,unknown:O,_:E,string:A,number:P,bigint:T,boolean:B,symbol:_,nullish:W,nonNullable:$,instanceOf:function(t){return a(p(function(t){return e=>e instanceof t}(t)))},shape:function(t){return a(p(u(t)))}};class I extends Error{constructor(t){let e;try{e=JSON.stringify(t)}catch(n){e=t}super(`Pattern matching error: no pattern matches value ${e}`),this.input=void 0,this.input=t}}const L={matched:!1,value:void 0};function M(t){return new R(t,L)}class R{constructor(t,e){this.input=void 0,this.state=void 0,this.input=t,this.state=e}with(...t){if(this.state.matched)return this;const e=t[t.length-1],r=[t[0]];let i;3===t.length&&\"function\"==typeof t[1]?i=t[1]:t.length>2&&r.push(...t.slice(1,t.length-1));let s=!1,c={};const u=(t,e)=>{s=!0,c[t]=e},a=!r.some(t=>o(t,this.input,u))||i&&!Boolean(i(this.input))?L:{matched:!0,value:e(s?n in c?c[n]:c:this.input,this.input)};return new R(this.input,a)}when(t,e){if(this.state.matched)return this;const n=Boolean(t(this.input));return new R(this.input,n?{matched:!0,value:e(this.input,this.input)}:L)}otherwise(t){return this.state.matched?this.state.value:t(this.input)}exhaustive(t=F){return this.state.matched?this.state.value:t(this.input)}run(){return this.exhaustive()}returnType(){return this}narrow(){return this}}function F(t){throw new I(t)}export{I as NonExhaustiveError,z as P,z as Pattern,u as isMatching,M as match};\n//# sourceMappingURL=index.js.map\n","var Gi=Object.defineProperty;var Yt=(e,t)=>{for(var r in t)Gi(e,r,{get:t[r],enumerable:!0})};function H(e){let t=[];for(let r of e){if(!r)continue;let{groups:{value:n,unit:i}={}}=r.trim().match(/[$$]*\\s*(?<value>[\\d.]+)\\s*(?<unit>[a-zA-Z]+)/)||{};t.push(Yi(n,i))}return t}function Yi(e,t){switch(t.toLowerCase()){case\"s\":return Number.parseFloat(e);case\"ms\":return Number.parseFloat(e)/1e3;case\"m\":case\"min\":return Number.parseFloat(e)*60;default:return Number.NaN}}import{isAnyArray as Kt}from\"is-any-array\";function L(e){if(Zi(e))return Ki(e)?e.map(Zt):Zt(e);if(typeof e==\"object\"&&e!==null){let t={};for(let r in e)t[r]=L(e[r]);return t}return e}function Zi(e){return Kt(e)}function Zt(e){return Float64Array.from(e)}function Ki(e){return Kt(e[0])}import{isAnyArray as Vo}from\"is-any-array\";import{getOneIfArray as Ro}from\"@zakodium/nmrium-core\";import{FileCollection as hl}from\"file-collection\";var Qt=[\"acqus\",\"acqu2s\"],ye=[\"procs\",\"proc2s\"];function er(e){return e.is1D?Qi(e):e.is2D?eo(e):{checked:!1,message:\"Multi-dimensional n > 2 is not supported\"}}function Qi(e){let t=e.isFID?[\"acqus\"]:[\"acqus\",\"procs\"],r=t.every(n=>e[n]);return{checked:r,message:r?\"\":`File: ${e[e.isFID?\"fid\":\"1r\"]?.relativePath} is ignored, files: ${t.join(\",\")} are required.`}}function eo(e){let t=e.isFID?Qt:Qt.concat(ye),r=t.every(n=>e[n]);return r&&e.isFID&&ye.some(n=>e[n])&&!ye.every(n=>e[n])&&(r=!1,t.push(...ye)),{checked:r,message:r?\"\":`File: ${e.name} is ignored, files: ${t.join(\",\")} are required.`}}function nt(e,t={}){let{logger:r,processingNumbers:n,experimentNumbers:i,dataSelection:o=\"both\",keep1D:s=!0,keep2D:c=!0,onlyFirstProcessedData:a=!0}=t,m={},l=e.files.map(p=>p.relativePath);for(let p of e){let y,d,f,h=p.relativePath.split(\"/\"),b=h.indexOf(\"pdata\");if(b!==-1)y=Number(h[b+1]),d=Number(h[b-1]),f=h.slice(0,-3).join(\"/\");else if(ro(p,l)){let S=h.indexOf(p.name);d=Number(h[S-1]),f=h.slice(0,-1).join(\"/\")}else continue;if(Number.isNaN(d)&&(d=void 0),Number.isNaN(y)&&(y=void 0),i&&!i.includes(d))continue;m[f]||(m[f]={name:f,expno:d,processedData:{},fileCollectionItems:[]});let D=m[f];if(p.name===\"title\"&&(D.title=p),p.name===\"vdlist\"&&(D.vdlist=p),p.name===\"difflist\"&&(D.difflist=p),y){D.processedData||(D.processedData={}),D.processedData[y]||(D.processedData[y]={fileCollectionItems:[],name:f,expno:d,procno:y});let S=D.processedData[y];S.fileCollectionItems.push(p),p.name.match(/^(?:1r|1i|2rr|2ir|2ii|2ri|procs|proc2s|title|integrals.txt)$/)&&(S[p.name]=p),p.name===\"2rr\"&&(S.is2D=!0,S.isFT=!0),p.name===\"1r\"&&(S.is1D=!0,S.isFT=!0)}else D.fileCollectionItems.push(p),p.name.match(/^(?:ser|fid|acqus|acqu2s|nuslist)$/)&&(D[p.name]=p),p.name===\"ser\"&&(D.is2D=!0,D.isFID=!0),p.name===\"fid\"&&(D.is1D=!0,D.isFID=!0);p.name===\"QuantFactorSample.xml\"&&(D.quantFactorSample=p)}if(n)for(let p in m){let y=m[p].processedData,d={};for(let f in y)n.includes(Number.parseInt(f,10))&&(d[f]=y[f]);m[p].processedData=d}else if(a)for(let p in m){let y=m[p].processedData,d=Object.keys(y??{});d.sort((h,b)=>Number(h)-Number(b));let f=d[0];y&&f!==void 0&&(m[p].processedData={firstProcessedNumber:y[f]})}let u=no(r),g=[];for(let p in m){let y=m[p],{processedData:d,...f}=y;if(u(y,o)){let b=Object.keys(d??{});if(d&&b.length>0){let D=d[b[0]];D.procs&&(f.fileCollectionItems.push(D.procs),f.procs=D.procs),D.proc2s&&(f.fileCollectionItems.push(D.proc2s),f.proc2s=D.proc2s),D[\"integrals.txt\"]&&(f.integrals=D[\"integrals.txt\"])}g.push(f)}let h=\"ser\"in f||\"fid\"in f;if(o===\"fid\"||o===\"preferFID\"&&h){r?.warn(\"Skipping FT data because it does not match the import filters\");continue}for(let b in d){let D=d[b];(D[\"1r\"]||D[\"2rr\"])&&(f.acqus&&D.fileCollectionItems.push(f.acqus),f.acqu2s&&D.fileCollectionItems.push(f.acqu2s),f.vdlist&&(D.vdlist=f.vdlist),g.push({integrals:D[\"integrals.txt\"],acqus:f.acqus,acqu2s:f.acqu2s,...D}))}}return s||(r?.warn(\"Skipping 1D data because it does not match the import filters\"),g=g.filter(p=>!p.is1D)),c||(r?.warn(\"Skipping 2D data because it does not match the import filters\"),g=g.filter(p=>!p.is2D)),to(g,r)}function to(e,t){return e.filter(r=>{let{checked:n,message:i}=er(r);return n||t?.warn(i),n})}function ro(e,t){return e.name.match(/^(?:ser|acqus|acqu2s|nuslist|vdlist|difflist|QuantFactorSample.xml)$/)||e.name.match(/^fid$/)&&t.includes(e.relativePath.replace(/fid$/,\"acqus\"))}function no(e){return(t,r)=>{let{processedData:n}=t,i=Object.keys(n??{}),o=n&&i.length>0&&[\"1r\",\"1i\",\"2rr\"].some(l=>l in n[i[0]]),s=\"ser\"in t||\"fid\"in t,m=s&&(r!==\"ft\"&&r!==\"preferFT\"||r===\"preferFT\"&&!o);return s&&!m&&e?.warn(\"Skipping RAW data because it does not match import filters\"),m}}function he(e){if(e===void 0||Array.isArray(e)&&e.length===0)return{epoch:null,date:\"\"};let t=e[0]*1e3;return{epoch:t,date:new Date(t).toUTCString()}}function be(e,t){for(let r in t.meta)e.meta[r]===void 0&&(e.meta[r]=t.meta[r]);for(let r in t.info)e.info[r]===void 0&&(e.info[r]=t.info[r]);for(let r in e.meta)Array.isArray(e.meta[r])||(e.meta[r]=[e.meta[r]])}import{convert as io}from\"jcampconverter\";async function U(e,t){if(!e)return tr();let r=await e.text(),{keepRecordsRegExp:n=/.*/}=t,i=io(r,{keepRecordsRegExp:n});return i.flatten.length===0?tr():i.flatten[0]}function tr(){return{info:{},meta:{},tmp:{},spectra:[],ntuples:{}}}async function rr(e){let r=(await e.integrals?.text())?.split(/\\r?\\n/).slice(3).filter(Boolean)??[],n=[];for(let i=1;i<r.length;i++){let o=r[i].replace(/^\\s*/,\"\").replaceAll(/[\\s\\t]+/g,\";\").match(/\\d+;(?<from>[0-9.]+);(?<to>[0-9.]+);(?<integration>[0-9.]+)/)?.groups;if(o){let{from:s,to:c,integration:a}=o;n.push({from:Number.parseFloat(s),to:Number.parseFloat(c),integration:Number.parseFloat(a)})}}return n}function it(e,t=\"utf8\"){return new TextDecoder(t).decode(e)}var oo=new TextEncoder;function nr(e){return oo.encode(e)}var so=1024*8,ao=(()=>{let e=new Uint8Array(4),t=new Uint32Array(e.buffer);return!((t[0]=1)&e[0])})(),ot={int8:globalThis.Int8Array,uint8:globalThis.Uint8Array,int16:globalThis.Int16Array,uint16:globalThis.Uint16Array,int32:globalThis.Int32Array,uint32:globalThis.Uint32Array,uint64:globalThis.BigUint64Array,int64:globalThis.BigInt64Array,float32:globalThis.Float32Array,float64:globalThis.Float64Array},C=class e{buffer;byteLength;byteOffset;length;offset;lastWrittenByte;littleEndian;_data;_mark;_marks;constructor(t=so,r={}){let n=!1;typeof t==\"number\"?t=new ArrayBuffer(t):(n=!0,this.lastWrittenByte=t.byteLength);let i=r.offset?r.offset>>>0:0,o=t.byteLength-i,s=i;(ArrayBuffer.isView(t)||t instanceof e)&&(t.byteLength!==t.buffer.byteLength&&(s=t.byteOffset+i),t=t.buffer),n?this.lastWrittenByte=o:this.lastWrittenByte=0,this.buffer=t,this.length=o,this.byteLength=o,this.byteOffset=s,this.offset=0,this.littleEndian=!0,this._data=new DataView(this.buffer,s,o),this._mark=0,this._marks=[]}available(t=1){return this.offset+t<=this.length}isLittleEndian(){return this.littleEndian}setLittleEndian(){return this.littleEndian=!0,this}isBigEndian(){return!this.littleEndian}setBigEndian(){return this.littleEndian=!1,this}skip(t=1){return this.offset+=t,this}back(t=1){return this.offset-=t,this}seek(t){return this.offset=t,this}mark(){return this._mark=this.offset,this}reset(){return this.offset=this._mark,this}pushMark(){return this._marks.push(this.offset),this}popMark(){let t=this._marks.pop();if(t===void 0)throw new Error(\"Mark stack empty\");return this.seek(t),this}rewind(){return this.offset=0,this}ensureAvailable(t=1){if(!this.available(t)){let n=(this.offset+t)*2,i=new Uint8Array(n);i.set(new Uint8Array(this.buffer)),this.buffer=i.buffer,this.length=n,this.byteLength=n,this._data=new DataView(this.buffer)}return this}readBoolean(){return this.readUint8()!==0}readInt8(){return this._data.getInt8(this.offset++)}readUint8(){return this._data.getUint8(this.offset++)}readByte(){return this.readUint8()}readBytes(t=1){return this.readArray(t,\"uint8\")}readArray(t,r){let n=ot[r].BYTES_PER_ELEMENT*t,i=this.byteOffset+this.offset,o=this.buffer.slice(i,i+n);if(this.littleEndian===ao&&r!==\"uint8\"&&r!==\"int8\"){let c=new Uint8Array(this.buffer.slice(i,i+n));c.reverse();let a=new ot[r](c.buffer);return this.offset+=n,a.reverse(),a}let s=new ot[r](o);return this.offset+=n,s}readInt16(){let t=this._data.getInt16(this.offset,this.littleEndian);return this.offset+=2,t}readUint16(){let t=this._data.getUint16(this.offset,this.littleEndian);return this.offset+=2,t}readInt32(){let t=this._data.getInt32(this.offset,this.littleEndian);return this.offset+=4,t}readUint32(){let t=this._data.getUint32(this.offset,this.littleEndian);return this.offset+=4,t}readFloat32(){let t=this._data.getFloat32(this.offset,this.littleEndian);return this.offset+=4,t}readFloat64(){let t=this._data.getFloat64(this.offset,this.littleEndian);return this.offset+=8,t}readBigInt64(){let t=this._data.getBigInt64(this.offset,this.littleEndian);return this.offset+=8,t}readBigUint64(){let t=this._data.getBigUint64(this.offset,this.littleEndian);return this.offset+=8,t}readChar(){return String.fromCharCode(this.readInt8())}readChars(t=1){let r=\"\";for(let n=0;n<t;n++)r+=this.readChar();return r}readUtf8(t=1){return it(this.readBytes(t))}decodeText(t=1,r=\"utf8\"){return it(this.readBytes(t),r)}writeBoolean(t){return this.writeUint8(t?255:0),this}writeInt8(t){return this.ensureAvailable(1),this._data.setInt8(this.offset++,t),this._updateLastWrittenByte(),this}writeUint8(t){return this.ensureAvailable(1),this._data.setUint8(this.offset++,t),this._updateLastWrittenByte(),this}writeByte(t){return this.writeUint8(t)}writeBytes(t){this.ensureAvailable(t.length);for(let r=0;r<t.length;r++)this._data.setUint8(this.offset++,t[r]);return this._updateLastWrittenByte(),this}writeInt16(t){return this.ensureAvailable(2),this._data.setInt16(this.offset,t,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeUint16(t){return this.ensureAvailable(2),this._data.setUint16(this.offset,t,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeInt32(t){return this.ensureAvailable(4),this._data.setInt32(this.offset,t,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeUint32(t){return this.ensureAvailable(4),this._data.setUint32(this.offset,t,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat32(t){return this.ensureAvailable(4),this._data.setFloat32(this.offset,t,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat64(t){return this.ensureAvailable(8),this._data.setFloat64(this.offset,t,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigInt64(t){return this.ensureAvailable(8),this._data.setBigInt64(this.offset,t,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigUint64(t){return this.ensureAvailable(8),this._data.setBigUint64(this.offset,t,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeChar(t){return this.writeUint8(t.charCodeAt(0))}writeChars(t){for(let r=0;r<t.length;r++)this.writeUint8(t.charCodeAt(r));return this}writeUtf8(t){return this.writeBytes(nr(t))}toArray(){return new Uint8Array(this.buffer,this.byteOffset,this.lastWrittenByte)}getWrittenByteLength(){return this.lastWrittenByte-this.byteOffset}_updateLastWrittenByte(){this.offset>this.lastWrittenByte&&(this.lastWrittenByte=this.offset)}};import{isAnyArray as co}from\"is-any-array\";import{matrixCreateEmpty as mo,xSequentialFillFromStep as lo}from\"ml-spectra-processing\";function ir(e){for(let t in e){let{z:r}=e[t],{minX:n,minY:i,maxX:o,maxY:s}=e[t];if(n>o){[n,o]=[o,n];for(let c of r)c.reverse()}i>s&&(r.reverse(),[i,s]=[s,i]),e[t]={...e[t],z:r,minX:n,minY:i,maxY:s,maxX:o}}}function De(e,t){let{x:r,minMax:n,nbSubSpectra:i,template:o}=t;e.spectra||(e.spectra=[]);for(let s=0;s<i;s++){let c={};for(let a in n)c[a]=n[a].z[s];e.spectra.push({...o,data:{...c,x:r}})}}function xe(e,t,r={}){let n={};for(let y in e)e[y]&&(n[y]=new C(e[y]));let i=Fe(t.meta.SI),o=Fe(t.meta.SW_p),s=Fe(t.meta.SF),c=s,a=Fe(t.shiftOffsetVal||t.meta.OFFSET);t.meta.observeFrequency=s,t.meta.brukerReference=c,t.meta.DATATYPE=\"NMR Spectrum\";let m=Number.parseInt(t.meta.BYTORDP,10);m=m?0:1;let l=t.meta.nbSubSpectra||1;if(m)for(let y in n)n[y].setLittleEndian();else for(let y in n)n[y].setBigEndian();let u={dataType:\"NMR Spectrum\",nbPoints:i,firstX:a,lastX:a-o/s,xUnit:\"PPM\",yUnit:\"Arbitrary\",isXYdata:!0,isFT:!0,nucleus:t.meta.NUC1,observeFrequency:s,title:t.meta.TITLE,deltaX:-(o/s)/(i-1)},g=u.deltaX,p=lo({from:a,step:g,size:i});if(l===1){let y={};for(let d in n){let f=n[d],h=new Float64Array(i);for(let b=0;b<i;++b)h[b]=f.readInt32();y[d]=h}t.spectra.push({...u,data:{...y,x:p}})}else{let{meta:y}=t,d=Number(y.SF[1]),f=Number(y.SW_p[1]||y.SW[1]),h=Number(y.OFFSET[1]),b=h-f/d,D={};for(let S in n)D[S]={minY:h,maxY:b,minX:p[0],maxX:p.at(-1),...po(y,n[S])};ir(D),r.keepSpectra&&De(t,{minMax:D,x:p,nbSubSpectra:l,template:u}),t.minMax=D}}function Fe(e){return Number(co(e)?e[0]:e)}function po(e,t){let r=e.SI.toReversed(),n=e.XDIM.toReversed(),i=r.map((p,y)=>Number.parseInt(String(p/n[y]),10)),[o,s]=r,[c,a]=n,m=mo({nbRows:o,nbColumns:s}),[l,u]=[Number.MAX_SAFE_INTEGER,Number.MIN_SAFE_INTEGER],g=[];for(let p=0;p<i[0];p++)for(let y=0;y<i[1];y++){let d=y*a,f=p*c;g.push([f,d])}for(let[p,y]of g)for(let d=0;d<c;d++)for(let f=0;f<a;f++){let h=t.readInt32();l>h&&(l=h),u<h&&(u=h),m[d+p][f+y]=h}return{z:m,minZ:l,maxZ:u}}import{createStepArray as yo,xMinMaxValues as ho}from\"ml-spectra-processing\";var Y={};Yt(Y,{DQD:()=>go,QF:()=>uo,QSEQ:()=>G,QSIM:()=>fo});var uo=0,fo=1,G=2,go=3;function Se(e,t,r){let n=Number.parseInt(t.meta.TD[0],10),i=new C(e),o=t.meta.nbSubSpectra||1,s=t.meta.AQ_mod,a=Number.parseInt(t.meta.DTYPA,10)===2,m=Number.parseFloat(t.meta.SW_h[0]),l=Number.parseFloat(t.meta.SFO1[0]);t.meta.DATATYPE=\"NMR FID\";let u=1/(2*m),g=n*u,p=Number.parseInt(t.meta.BYTORDA,10);p=p?0:1,p?i.setLittleEndian():i.setBigEndian();let y=s===2?u:2*u,d=bo({nbSubSpectra:o,isFloat:a,aqMode:s,td:n}),f={dataType:\"NMR FID\",dataTable:\"(X++(R..R))\",nbPoints:d,firstX:0,lastX:g,nucleus:t.meta.NUC1,xUnit:\"Sec\",yUnit:\"Arbitrary\",isXYdata:!0,isFID:!0,observeFrequency:l,title:t.meta.TITLE,deltaX:y},h=yo({length:d,step:y});if(o<2){let b=sr(i,{nbPoints:d,isFloat:a,aqMode:s});t.spectra=[{data:{x:h,...b},...f}]}else{let b={minX:h[0],maxX:h.at(-1),minY:0,maxY:o,minZ:0,maxZ:0},D=s===2?{re:{z:[],...b}}:{re:{z:[],...b},im:{z:[],...b}},S={re:{min:Number.MAX_SAFE_INTEGER,max:Number.MIN_SAFE_INTEGER},im:{min:Number.MAX_SAFE_INTEGER,max:Number.MIN_SAFE_INTEGER}};for(let P=0;P<o;P++){let F=sr(i,{nbPoints:d,isFloat:a,aqMode:s});S.re=or(F.re,S.re),S.im=or(F.im??new Float64Array,S.im),D.re.z.push(F.re),D.im&&F.im&&D.im.z.push(F.im)}D.re={...D.re,minZ:S.re.min,maxZ:S.re.max},D.im={...D.im,minZ:S.im.min,maxZ:S.im.max},r?.keepSpectra&&De(t,{minMax:D,x:h,nbSubSpectra:o,template:f}),t.minMax=D}}function or(e,t){let{min:r,max:n}=ho(e),{min:i,max:o}=t;return{min:Math.min(i,r),max:Math.max(o,n)}}function sr(e,t){let{nbPoints:r,isFloat:n,aqMode:i}=t,o={re:new Float64Array(r),im:null},s=n?\"readFloat64\":\"readInt32\";if(i===2)for(let c=0;c<r;c++)o.re[c]=e[s]();else{o.im=new Float64Array(r);for(let c=0;c<r;c++)o.re[c]=e[s](),o.im[c]=e[s]()}return o}function bo(e){let{nbSubSpectra:t,isFloat:r,aqMode:n,td:i}=e,o=i;if(t>1){let s=r?128:256;o=Math.trunc(Math.ceil(i/s)*s)}return n===2?o:o/2>>0}async function ar(e,t){let r={},n=[],i=e[\"1r\"]||e[\"1i\"]?[\"1r\",\"1i\"]:[\"fid\"];function o(c,a){return c.then(m=>{r[a]=m})}for(let c of i){let a=e[c];a&&n.push(o(a.arrayBuffer(),c))}n.push(U(e.procs,t).then(c=>{r.procs=c}),U(e.acqus,t).then(c=>{r.acqus=c})),e.quantFactorSample&&n.push(xo(e).then(c=>{r.ereticFactor=c})),e.integrals&&n.push(rr(e).then(c=>{r.integrals=c}));let s=Do(e);return s&&n.push(s.text().then(c=>{r.titleFile=c})),await Promise.all(n),Fo(r)}function Do(e){if(\"title\"in e&&e.title)return e.title}function Fo(e){let t={...e.procs};be(t,e.acqus);let r={...t.info};t.info=r;let n={...t.meta};t.meta=n;let{epoch:i,date:o}=he(n.DATE);return i!==null&&Object.assign(r,{epoch:i,date:o}),e.integrals&&Object.assign(t,{integrals:e.integrals}),e.ereticFactor&&(r.ereticFactor=e.ereticFactor),e.titleFile&&(n.TITLE_FILE=e.titleFile),e[\"1r\"]||e[\"1i\"]?xe({re:e[\"1r\"],im:e[\"1i\"]},t):e.fid&&Se(e.fid,t),t}async function xo(e){let r=(await e.quantFactorSample?.text())?.match(/<Application[\\w\\W]+<Eretic_Factor>(?<ereticFactor>[\\d.]+)/);return Number(r?.groups?.ereticFactor)}function st(e,t){for(let r in t.meta)r in e.meta?(Array.isArray(e.meta[r])||(e.meta[r]=[e.meta[r]]),e.meta[r].push(t.meta[r])):e.meta[r]===void 0&&(e.meta[r]=[t.meta[r]]);return e}async function cr(e,t){let r={},n=[],i=[\"2rr\",\"2ri\",\"2ir\",\"2ii\",\"ser\"];function o(s,c){return s.then(a=>{r[c]=a})}for(let s of i){let c=e[s];c&&n.push(o(c.arrayBuffer(),s))}if(n.push(o(U(e.procs,t),\"procs\"),o(U(e.proc2s,t),\"proc2s\"),o(U(e.acqus,t),\"acqus\"),o(U(e.acqu2s,t),\"acqu2s\")),\"nuslist\"in e&&e.nuslist){let s=e.nuslist;n.push(o(s.text(),\"nuslist\"))}return e.vdlist&&n.push(o(e.vdlist.text(),\"vdlist\")),e.difflist&&n.push(o(e.difflist.text(),\"difflist\")),await Promise.all(n),So(r,t)}function So(e,t){let r=st(e.procs,e.proc2s),n=st(e.acqus,e.acqu2s);be(r,n);let{epoch:i,date:o}=he(r.meta.DATE);if(o.length>0&&(r.info={...r.info,epoch:i,date:o}),e.nuslist&&(r.info.nuslist=e.nuslist.split(/\\r?\\n/).filter(Boolean).map(Number.parseFloat)),e.vdlist){let d=[];for(let f of e.vdlist.split(`\n`)){if(!f)continue;let[h,b]=f.trim().match(/\\s*([\\d.]+)\\s*([a-zA-Z]+)/)?.slice(1)||[];b&&d.push(`${h}${b}`)}r.meta.vdlist=d}if(e.difflist){let d=[];for(let f of e.difflist.split(`\n`)){if(!f)continue;let[h]=f.trim().match(/\\s*([\\d.]+)\\s*/)?.slice(1)||[];d.push(h)}r.meta.difflist=d}r.meta.SW_p||(r.meta.SW_p=r.meta.SW_h),r.meta.SF||(r.meta.SF=r.meta.SFO1);let s=[\"2rr\",\"2ri\",\"2ir\",\"2ii\"].some(d=>d in e);r.meta.nbSubSpectra=s?Number.parseInt(r.meta.SI[1],10):Number.parseInt(r.meta.TD[1],10);let c=0,a=0,m=0,l=0;if(s){let d=Number(r.meta.SF[1]),f=Number(r.meta.SW_p[1]||r.meta.SW[1]);l=Number(r.meta.OFFSET[1]),m=Number(r.meta.OFFSET[0]),c=l,a=l-f/d,r.meta.firstY=c,r.meta.lastY=a,xe({rr:e[\"2rr\"],ri:e[\"2ri\"],ir:e[\"2ir\"],ii:e[\"2ii\"]},r,t)}else if(e.ser){c=0,a=r.meta.nbSubSpectra;let d=Number(r.meta.SW[0]),f=Number(r.meta.SW[1]),h=Number(r.meta.SFO1[0]),b=Number(r.meta.SFO1[1]),D=Number(r.meta.O1[0]),S=Number(r.meta.O1[1]);m=D/h+d/2,l=S/b+f/2,Se(e.ser,r,t)}if(t.keepSpectra){let{nbSubSpectra:d}=r.meta,f=(a-c)/(d-1),h=c;for(let b=0;b<d;b++)h+=f,r.spectra[b].pageValue=h}let{NUC1:u,AXNUC:g,SF:p}=r.meta,y=g||u||[];return r.info[\"2D_Y_NUCLEUS\"]=y[1],r.info[\"2D_X_NUCLEUS\"]=y[0],r.info[\"2D_Y_FRECUENCY\"]=p[1],r.info[\"2D_X_FRECUENCY\"]=p[0],r.info[\"2D_Y_OFFSET\"]=l,r.info[\"2D_X_OFFSET\"]=m,r.info.twoD=!0,r.twoD=!0,r}async function ct(e,t={}){let r,n=!1,i=!1;if([\"ser\",\"2rr\",\"2ri\",\"2ir\",\"2ii\"].some(s=>s in e))n=!0,r=await cr(e,t);else if(e[\"1r\"]||e[\"1i\"]||e.fid)i=!0,r=await ar(e,t);else throw new RangeError(\"The current files are invalid\");let o={name:e.name,expno:e.expno,isFID:!!e.isFID};for(let s in e){let c=s;(typeof e[c]).match(/number|string|boolean/)&&(o[c]=e[c])}r.source=n?{...o,is2D:n}:{...o,is1D:i},t.keepFiles&&(r.source.files=e.fileCollectionItems),r.meta.DATE=Number(r.meta.DATE),r.meta.GRPDLY&&(at(r.meta,\"DSPFVS\",r.meta.DSPFVS),at(r.meta,\"GRPDLY\",r.meta.GRPDLY),at(r.meta,\"DECIM\",r.meta.DECIM));for(let s in r.meta)Array.isArray(r.meta[s])&&(r.meta[s].length===1||typeof r.meta[s][0]==\"string\"&&r.meta[s][0].includes(\"(0..\"))&&(r.meta[s]=r.meta[s][0]);return r}function at(e,t,r){r!==void 0&&(Array.isArray(r)?e[t]=r.slice():e[t]=[r])}import{convert as Ml}from\"jcampconverter\";var $={};Yt($,{ECHO_ANTIECHO:()=>To,QF:()=>Ao,QSEC:()=>Io,STATES:()=>Mo,STATES_TPPI:()=>Oo,TTPI:()=>No});var Ao=1,Io=2,No=3,Mo=4,Oo=5,To=6;var Eo=new Map([[String(Y.QSIM),\"notPhaseSensitive\"],[\"notphasesensitive\",\"notPhaseSensitive\"],[String(Y.QSEQ),\"QSEQ\"],[\"qseq\",\"QSEQ\"],[String($.TTPI),\"TPPI\"],[\"tppi\",\"TPPI\"],[String($.STATES),\"States\"],[\"states\",\"States\"],[String($.STATES_TPPI),\"States-TPPI\"],[\"tppi-states\",\"States-TPPI\"],[\"states-tppi\",\"States-TPPI\"],[String($.ECHO_ANTIECHO),\"Echo-antiecho\"],[\"echo-antiecho\",\"Echo-antiecho\"]]);function mr(e){let t=String(e).toLowerCase().replaceAll(\" \",\"\");return Eo.get(t)}function x(e,t,r,n=!1){r===void 0||t in e&&!n||(Array.isArray(r)?e[t]=r.map(lr):e[t]=[lr(r)])}function lr(e){return typeof e==\"string\"&&(e.startsWith(\"<\")&&e.endsWith(\">\")&&(e=e.slice(1,-1)),e=e.replace(/\\$.*/,\"\").trim()),e}function Z(e){return Array.isArray(e)?e.map(pr):pr(e)}function pr(e){return typeof e==\"string\"?Number.parseFloat(e):e}function M(e,t,r){r!==void 0&&x(e,t,Z(r))}function ur(e,t,r){let{prefix:n=\"\"}=r,i=t[`${n}.ACQUISITIONSCHEME`]||t[`${n}FnMODE`];i&&x(e,\"acquisitionScheme\",mr(Ro(i,1))),x(e,\"acquisitionMode\",t[`${n}.ACQUISITIONMODE`]),M(e,\"lpNumberOfCoefficients\",t[`${n}NCOEF`]),M(e,\"linearPredictionBin\",t[`${n}LPBIN`]),M(e,\"tdOff\",t[`${n}TDoff`])}import{getOneIfArray as qo}from\"@zakodium/nmrium-core\";import{getOneIfArray as ko}from\"@zakodium/nmrium-core\";function Pe(e={},t={},r={}){e===null&&(e={}),typeof e==\"string\"&&(e={pulseSequence:e});let n=Array.isArray(e.pulseSequence)?e.pulseSequence[0]:e.pulseSequence||\"\";if(typeof n!=\"string\")return e.dimension?`${e.dimension}d`:\"\";if(n=n.toLowerCase(),n.includes(\"zg\")||n.includes(\"single_pulse_dec\")||n.includes(\"udeft\"))return\"1d\";if(n.includes(\"hsqct\")||n.includes(\"invi\")&&(n.includes(\"ml\")||n.includes(\"di\")))return\"hsqctocsy\";if(n.includes(\"hsqc\")||n.includes(\"invi\"))return\"hsqc\";if(n.includes(\"hmbc\")||n.includes(\"inv4\")&&n.includes(\"lp\"))return\"hmbc\";if(n.includes(\"hmqc\"))return\"hmqc\";if(n.includes(\"cosy\"))return\"cosy\";if(n.includes(\"jres\"))return\"jres\";if(n.includes(\"dosy\"))return\"dosy\";if(n.includes(\"tocsy\")||n.includes(\"mlev\")||n.includes(\"dipsi\"))return\"tocsy\";if(n.includes(\"noesy\"))return\"noesy\";if(n.includes(\"roesy\"))return\"roesy\";if(n.includes(\"dept\"))return\"dept\";if(n.includes(\"jmod\")||n.includes(\"apt\"))return\"aptjmod\";if(n.includes(\"inad\"))return\"inadequate\";if(n.includes(\"adeq\"))return\"adequate\";let{prefix:i=\"\"}=r,o=(ko(t[`${i}SPECTYP`])||\"\").replace(/^<(.*)>$/,\"$1\").toLowerCase();return o.length>0&&o!==\"undefined\"?o:e.dimension?`${e.dimension}d`:\"\"}import{UTCDate as wo}from\"@date-fns/utc\";import{getOneIfArray as Co}from\"@zakodium/nmrium-core\";import{getTime as dr,isValid as gr,parse as vo,parseISO as Lo}from\"date-fns\";import{removeComment as zo}from\"jcampconverter\";function fr(e,t){if(t!==null&&Number.isInteger(t)){e.epoch=t;let r=new Date(t);e.date=r.toISOString(),e.localeDate=r.toLocaleString()}}function yr(e,t,r={}){let n=t.LONGDATE??Co(t.DATE);if(!n)return;let{separator:i}=r,o=Number(n)*1e3;fr(e,o||_o(n,i))}function _o(e,t){let r=zo(e,t),n=Lo(r,{});if(gr(n)){let o=n.getTimezoneOffset()*60*1e3;return dr(n)-o}let i=[\"dd/MM/yyyy HH:mm:ss\",\"EEE MMM dd HH:mm:ss yyyy\",\"dd/MM/yyyy HH:mm:ss\",\"yyyy/MM/dd HH:mm:ss.SSS X\",\"yyyy/MM/dd HH:mm:ssX\",\"yyyy/MM/dd HH:mm:ss.SSS\",\"yyyy/MM/dd HH:mm:ss\",\"yyyy/MM/dd HH:mm\",\"yyyy/MM/dd\",\"yy/MM/dd\"];for(let o of i){let s=vo(r,o,new wo,{useAdditionalDayOfYearTokens:!0});if(gr(s))return dr(s)}return null}function hr(e,t,r){let{prefix:n=\"\",separator:i}=r;(t.LONGDATE||t.DATE)&&yr(e,t,{separator:i}),x(e,\"pulseSequence\",t[\".PULSESEQUENCE\"]||t[\".PULPROG\"]||t[`${n}PULPROG`]);let o=t[`${n}OWNER`];if(o&&x(e,\"owner\",o.replaceAll(/\\$\\$.*/gm,\"\")),x(e,\"title\",t.TITLE),x(e,\"aqMod\",t[`${n}AQ_mod`]),x(e,\"windowMultiplicationMode\",t[`${n}WDW`]),x(e,\"experiment\",Pe(e,t,{prefix:n})),x(e,\"solvent\",t[\".SOLVENTNAME\"]||qo(t[`${n}SOLVENT`])),x(e,\"temperature\",t[`${n}TE`]||t[\".TE\"]),x(e,\"type\",t.DATATYPE),x(e,\"dataClass\",t[`${n}DATACLASS`]),x(e,\"phc0\",t[`${n}PHC0`]),x(e,\"phc1\",t[`${n}PHC1`]),e.type){let s=e.type[0].toUpperCase();s.includes(\"FID\")?(e.isFid=!0,e.isComplex=!0):s.includes(\"SPECTRUM\")&&(e.isFt=!0)}if(x(e,\"firstX\",t[`${n}FIRSTX`]),x(e,\"lastX\",t[`${n}LASTX`]),x(e,\"numberOfPoints\",t[`${n}NPOINTS`]),`${n}REVERSE`in t){let s=t[`${n}REVERSE`];e.reverse=(Array.isArray(s)?s:[s]).map(c=>typeof c==\"string\"?c.includes(\"yes\"):c)}}function br(e){let{JCAMPDX:t=\"\",ORIGIN:r=\"\"}=e,n=String(t).toLowerCase()+String(r).toLowerCase();return\"SPECTROMETER/DATASYSTEM\"in e&&(n=e[\"SPECTROMETER/DATASYSTEM\"]),(n.includes(\"mestre\")||n.includes(\"nova\"))&&(n=\"mnova\"),n}import{isAnyArray as jo}from\"is-any-array\";import{calculateRelativeFrequency as Uo}from\"nmr-processing\";function Dr(e,t,r){let{prefix:n=\"\",logger:i}=r;if(M(e,\"originFrequency\",t[`${n}SFO1`]),e.dimension===1&&M(e,\"originFrequency\",t[\".OBSERVEFREQUENCY\"]),!e.originFrequency&&e.dimension===2&&\".OBSERVEFREQUENCY\"in t){let o=Z(t[\".OBSERVEFREQUENCY\"]);if(jo(o)&&o.length>1){let s=t[`${n}SYMBOL`].split(\",\"),c=s.findIndex(m=>m.includes(\"2\")),a=s.findIndex(m=>m.includes(\"1\"));c!==-1&&a!==-1?e.originFrequency=[o[c],o[a]]:e.originFrequency=o.slice()}else typeof o==\"number\"&&(e.originFrequency=Uo(e.nucleus,o))}(!e.originFrequency||e.originFrequency.some(o=>Number.isNaN(o)||o===0))&&(e.originFrequency=e.dimension>1?[400,400]:[400],i?.warn(\"Frequency could not be determined, set to 400 MHz\"))}function w(e,t,r=\"\"){return e.every(n=>`${r}${n}`in t)}import{matrixTranspose as Bo}from\"ml-spectra-processing\";function pe(e,t){return Bo(e).map(t)}function Fr(e,t,r){let{prefix:n=\"\"}=r,i=t[`${n}REFERENCE_POINT`];if(!(\"baseFrequency\"in e)&&\"originFrequency\"in e&&x(e,\"baseFrequency\",e.originFrequency),!(\"frequencyOffset\"in e)&&i&&w([\"spectralWidth\",\"baseFrequency\"],e)){let o=typeof i==\"number\"?i:Number(t[`${n}REFERENCE_POINT`].match(/(?<reference>[+-]?\\d+(?:\\.\\d+)?)\\s*.*/)?.groups?.reference);if(!Number.isNaN(o)){let{spectralWidth:s,baseFrequency:c}=e;x(e,\"frequencyOffset\",.5*s[0]*c[0]-o)}}if(!(\"frequencyOffset\"in e)&&w([\"baseFrequency\",\"originFrequency\"],e)){let{baseFrequency:o,originFrequency:s}=e;x(e,\"frequencyOffset\",pe([s,o],c=>(c[0]-c[1])*1e6))}!e.frequencyOffset[0]&&\".SHIFTREFERENCE\"in t&&$o(t,e)}function $o(e,t){let r=e[\".SHIFTREFERENCE\"],n=r.trim().startsWith(\"(\")?/\\((?<data>[^)]+)\\)/:/(?<data>[^)]+)/,i=r.match(n);if(i.groups.data){let o=i.groups.data.split(\",\");if(o.length<4)return;let s=Number.parseInt(t.numberOfPoints,10),c=Number.parseInt(o[2],10),a=Number.parseFloat(o[3]),m;if(t.isFid){if(!w([\"numberOfPoints\",\"spectralWidth\"],t))return;m=a+(s*.5-c)*t.spectralWidth/s}else if(w([\"firstX\",\"lastX\",\"numberOfPoints\"],t)){let l=Number.parseFloat(t.firstX),u=Number.parseFloat(t.lastX),g=(u+l)/2,p=(u-l)/(s+1),y=p<0?l:u+(c-1)*p;m=(g-y)/t.baseFrequency+a}m!==void 0&&!Number.isNaN(m)&&(t.frequencyOffset=m*t.baseFrequency)}}import{isAnyArray as K}from\"is-any-array\";function Ae(e){return typeof e==\"number\"}function Ie(e){let{phc0:t,phc1:r}=e;return!K(t)&&!Ae(t)||!K(r)&&!Ae(r)||K(t)&&!Ae(t[0])||K(r)&&!Ae(r[0])?{}:(K(r)?r[0]*=-1:r*=-1,K(t)?t[0]*=-1:t*=-1,{phc0:t,phc1:r})}function xr(e,t){let r=t.PAGE;e.pulseSequence=t.EXPERIMENT||t[\".PULSESEQUENCE\"];let n=[],{dimension:i,isComplex:o,pulseSequence:s}=e;if(i===2&&s===\"T1\"){let m=o?2:1;for(let l=0;l<r.length;l+=m){let u=r[l].replace(/T1=/,\"\");n.push(Number(u))}t.vdlistValues=n}e.nucleus=i>1?[t.T2NUCLEUS,t.T1NUCLEUS]:[t.T2NUCLEUS];let{phc0:c,phc1:a}=e;if(c&&a){let m=Ie({phc0:c,phc1:a});Object.assign(e,m)}}import{getOneIfArray as Ar}from\"@zakodium/nmrium-core\";import{getGyromagneticRatio as Wo}from\"gyromagnetic-ratio\";function Pr(e,t,r){if(e>0)return e;if(t>14||t===0)return 0;if(Sr[t]){let n=Sr[t];if(!n[r])throw new Error(`decim ${r} not in lookup table for dspfvs ${t}`);return n[r]}else throw new Error(`dspfvs ${t} not in lookup table`)}var Sr={10:{2:44.75,3:33.5,4:66.625,6:59.08333333333333,8:68.5625,12:60.375,16:69.53125,24:61.02083333333333,32:70.015625,48:61.34375,64:70.2578125,96:61.50520833333333,128:70.37890625,192:61.5859375,256:70.439453125,384:61.62630208333333,512:70.4697265625,768:61.646484375,1024:70.48486328125,1536:61.65657552083333,2048:70.492431640625},11:{2:46,3:36.5,4:48,6:50.16666666666667,8:53.25,12:69.5,16:72.25,24:70.16666666666667,32:72.75,48:70.5,64:73,96:70.66666666666667,128:72.5,192:71.33333333333333,256:72.25,384:71.66666666666667,512:72.125,768:71.83333333333333,1024:72.0625,1536:71.91666666666667,2048:72.03125},12:{2:46,3:36.5,4:48,6:50.16666666666667,8:53.25,12:69.5,16:71.625,24:70.16666666666667,32:72.125,48:70.5,64:72.375,96:70.66666666666666,128:72.5,192:71.333333333,256:72.25,384:71.66666666666667,512:72.125,768:71.83333333333333,1024:72.0625,1536:71.91666666666667,2048:72.03125},13:{2:2.75,3:2.833333333333333,4:2.875,6:2.916666666666667,8:2.9375,12:2.958333333333333,16:2.96875,24:2.979166666666667,32:2.984375,48:2.989583333333333,64:2.9921875,96:2.994791666666667}};function Ir(e,t,r){let{prefix:n=\"\",separator:i=`\n`}=r,o=e.nucleus[0],s=Wo(o);if(x(e,\"probeName\",t[`${n}PROBHD`]),x(e,\"baseFrequency\",t[`${n}BF1`]||t[`${n}SF`]),M(e,\"scaleFactor\",t[`${n}NC_proc`]),\"scaleFactor\"in e&&(e.scaleFactor=e.scaleFactor.map(a=>2**a)),!(\"baseFrequency\"in e)&&\"originFrequency\"in e?x(e,\"baseFrequency\",e.originFrequency):e.baseFrequency=Z(e.baseFrequency),s&&w([\"baseFrequency\",\"originFrequency\"],e)){let a=2*Math.PI*(e.baseFrequency[0]/s)*1e6;x(e,\"fieldStrength\",a)}if(M(e,\"spectralWidth\",t[`${n}SW`]||t[`${n}QM_SPECTRAL_WIDTH`]),e.dimension===1&&t[`${n}SweepWidth`]&&e.originFrequency&&M(e,\"spectralWidth\",t[`${n}SweepWidth`]/e.originFrequency[0]),x(e,\"numberOfPoints\",t[`${n}TD`],!0),x(e,\"spectrumSize\",t[`${n}SI`]??e.numberOfPoints),x(e,\"sampleName\",t[`${n}NAME`]),t[`${n}FNTYPE`]!==void 0&&x(e,\"acquisitionMode\",Number.parseInt(t[`${n}FNTYPE`],10)),t[`${n}VARNAME`]?.split(\",\",1)[0]===\"TIME\"){let a=typeof t.LAST==\"string\"?t.LAST.replace(\" \",\"\").split(\",\",1)[0]:t.LAST;M(e,\"acquisitionTime\",a)}if(!e.acquisitionTime&&w([\"numberOfPoints\",\"spectralWidth\"],e)){let{spectralWidth:a,originFrequency:m,numberOfPoints:l}=e;x(e,\"acquisitionTime\",(l[0]-1)/(2*a[0]*m[0]))}if(t[`${n}P`]){let a=1e6/(Ar(t[`${n}P`]).split(i)[1].split(\" \",2)[1]*4);x(e,\"pulseStrength90\",a)}if(t[`${n}D`]){let a=Ar(t[`${n}D`]).split(i)[1].split(\" \",2)[1];M(e,\"relaxationTime\",a)}if(M(e,\"numberOfScans\",t[`${n}NS`]||t[`${n}QM_NSCANS`]),x(e,\"groupDelay\",t[`${n}GRPDLY`]),x(e,\"dspfvs\",t[`${n}DSPFVS`]),x(e,\"decim\",t[`${n}DECIM`]),e.isFid&&(\"groupDelay\"in e||w([\"dspfvs\",\"decim\"],e))){let{groupDelay:a,dspfvs:m,decim:l}=e,u=Pr(a?.[0]??0,m?.[0],l?.[0]);x(e,\"digitalFilter\",u)}if(w([\"numberOfPoints\",\"spectralWidth\"],e)){let{spectralWidth:a,numberOfPoints:m,isFid:l,acquisitionTime:u}=e,g=m.map((p,y)=>l?u[0]/(p-1):a[y]/(p-1));x(e,\"increment\",g)}}function W(e,t=\",\"){if(e&&typeof e==\"string\")return e.split(t)}function Nr(e,t,r){let{prefix:n=\"\"}=r,i=e.dimension<2,o=e.dataClass?.[0].toUpperCase()===\"NTUPLES\",s=w([\"LAST\",\"FIRST\",\"VARDIM\",\"SYMBOL\"],t,n);if(i&&(o||s)&&(x(e,\"last\",W(t[`${n}LAST`])),x(e,\"first\",W(t[`${n}FIRST`])),x(e,\"varDim\",W(t[`${n}VARDIM`])),x(e,\"symbols\",W(t[`${n}SYMBOL`])),e.symbols&&Array.isArray(e.symbols))){e.symbols.includes(\"R\")&&e.symbols.includes(\"I\")&&(e.isComplex=!0);let c=e.symbols.findIndex(a=>a.toLowerCase()===\"x\");if(M(e,\"firstX\",e.first[c]),M(e,\"lastX\",e.last[c]),M(e,\"numberOfPoints\",e.varDim[c]),!(\"spectralWidth\"in e)){let{lastX:a,numberOfPoints:m,firstX:l,originFrequency:u,isFid:g}=e;x(e,\"spectralWidth\",g?pe([m,a],p=>p[0]/(2*p[1])):pe([a,l,u],p=>Math.abs(p[0]-p[1])/p[2]))}}}import{normalizeNucleus as Jo}from\"nmr-processing\";function Ne(e,t,r){let n=[];if(e[`${r}AXNUC`]&&(n=e[`${r}AXNUC`],Array.isArray(n)||(n=[n]),n=z(n)),n.length===0&&e[`${r}NUC1`]&&(n=e[`${r}NUC1`],Array.isArray(n)||(n=[n]),n=z(n)),n.length===0&&e[\".NUCLEUS\"]){let s=W(e[\".NUCLEUS\"]);if(e[`${r}SYMBOL`]){let c=e[`${r}SYMBOL`].split(\",\"),a=c.findIndex(l=>l.includes(\"2\")),m=c.findIndex(l=>l.includes(\"1\"));a!==-1&&m!==-1&&s?n=z([s[a],s[m]]):n=z(s).toReversed()}else n=z(s)}n.length===0&&e[\".OBSERVENUCLEUS\"]&&(n=z([e[\".OBSERVENUCLEUS\"]])),n.length===0&&t.experiment&&(n=z(Mr(t.experiment[0]))),Xo(e)&&(n=[e[\"2D_X_NUCLEUS\"].replaceAll(/[^A-Za-z0-9]/g,\"\"),e[\"2D_Y_NUCLEUS\"].replaceAll(/[^A-Za-z0-9]/g,\"\")]);let{pulseSequence:i=[\"\"],experiment:o}=t;return!i[0].toLowerCase().match(\"1d\")&&o&&(o[0].match(\"jres\")||o[0].match(\"dosy\"))&&(n=Mr(o[0])),n.map(Jo)}function Xo(e){return e[\"2D_X_NUCLEUS\"]&&!e[\"2D_X_NUCLEUS\"].includes(\"off\")&&e[\"2D_Y_NUCLEUS\"]&&!e[\"2D_Y_NUCLEUS\"].includes(\"off\")}function Mr(e){return typeof e!=\"string\"?[]:(e=e.toLowerCase(),e.includes(\"jres\")?[\"1H\",\"Hz\"]:e.includes(\"dosy\")?[\"1H\",\"D\"]:e.includes(\"hmbc\")||e.includes(\"hsqc\")?[\"1H\",\"13C\"]:e.includes(\"cosy\")||e.includes(\"tocsy\")?[\"1H\",\"1H\"]:[])}function z(e){if(!e)return[];let t=e.map(n=>String(n).replaceAll(/[^A-Za-z0-9]/g,\"\").replace(\"NA\",\"\").replace(\"off\",\"\")),r=0;for(let n of t)n||r++;return r===0?t:[]}function Or(e,t,r){let{logger:n,prefix:i=\"\"}=r;if(e.nucleus=Ne(t,e,i),e.nucleus.length===0)if(n)n.warn(\"No nucleus detected, assuming 1H\"),e.nucleus=[\"1H\"];else throw new Error(\"No nucleus detected\");e.dimension=e.nucleus.length}function Tr(e,t,r={}){let{prefix:n=\"\",separator:i=`\n`}=r;x(e,\"spectralWidth\",t[`${n}SweepWidth`]/e.originFrequency[0]);let o=t[`${n}.PULSESEQUENCE`].split(i),s=[];t[\".OBSERVENUCLEUS\"]&&s.push(t[\".OBSERVENUCLEUS\"]),t.INDIRECTNUCLEUS&&s.push(t.INDIRECTNUCLEUS),e.nucleus=z(s),e.pulseSequence=o[0];let c=o.slice(2,-1);if(s.length>1)if(s[0]===s[1])e.spectralWidth.push(e.spectralWidth[0]);else{let a=JSON.stringify(c).match(/\\$\\$SW1=\\s*(?<sw>[+-]?(?:[0-9]*[.])?[0-9]+)/);if(a?.groups){let m=Number.parseFloat(a.groups.sw);e.spectralWidth.push(m/e.originFrequency[1])}}}function Q(e,t={}){let{prefix:r=\"\",logger:n}=t,i={creator:br(e),dimension:0,nucleus:[],isFid:!1,isFt:!1},o=JSON.stringify(e),s=/\\r\\n/.exec(o)?`\\r\n`:`\n`,c=[hr,Or,ur,Dr],{creator:a=\"\"}=i;a.includes(\"nanalysis\")?c.push(xr):a.toLocaleLowerCase().includes(\"oxford instruments\")&&c.push(Tr),a!==\"mnova\"&&a!==\"mestre\"&&c.push(Ir),c.push(Nr,Fr);for(let m of c)m(i,e,{prefix:r,logger:n,separator:s});return Ho(i)}function Ho(e){return e.dimension===1&&(e.nucleus=[e.nucleus]),Object.fromEntries(Object.entries(e).map(([t,r])=>[t,Vo(r)&&r.length===1?r[0]:r]))}import{NMRiumCore as mc}from\"@zakodium/nmrium-core\";import{defineNMRiumPlugin as as}from\"@zakodium/nmrium-core\";import{nextPowerOfTwo as Qo}from\"ml-spectra-processing\";function Er(e){let{phc0:t=0,phc1:r=0}=e;return Rr([t,r])?{}:{ph0:t,ph1:r}}function Rr(e){return Array.isArray(e)?e.every(t=>!t&&t===0):Rr([e])}import{Filters1D as Go,Filters2D as Yo}from\"nmr-processing\";var Zo=new Set;function Me(e,t){let{filter:r,experimentalFeatures:n=!1}=t,{name:i}=r;({...Go,...Yo})[i]&&(e.some(s=>s.name===i)||Zo.has(i)&&!n||e.push({...r,enabled:!0}))}import{Filters1D as Ko}from\"nmr-processing\";var mt=[\"digitalFilter\",\"backwardLinearPrediction\",\"forwardLinearPrediction\",\"apodization\",\"zeroFilling\",\"fft\",[\"shiftX\",\"phaseCorrection\"],\"trim\",\"baselineCorrection\"],ee={};for(let e=0;e<mt.length;e++){let t=mt[e];for(let r of Array.isArray(t)?t:[t])ee[r]=e}for(let e of Object.values(Ko))e.name in ee||(ee[e.name]=mt.length);function kr(e,t={}){let{data:r,info:n,meta:i,filters:o}=e,{autoProcessing:s,experimentalFeatures:c}=t,a=(p,y)=>Me(p,{...y,experimentalFeatures:c}),m=r.re.length,{fileIdentifier:l}=i||{},{tdOff:u,digitalFilter:g}=n;g&&g>0&&a(o,{filter:{name:\"digitalFilter\",value:{digitalFilterValue:g}}}),s&&(l?.toLowerCase().includes(\"jeol\")&&a(o,{filter:{name:\"trim\",value:{leftPercentage:10,rightPercentage:10}}}),u&&Math.abs(u)>0&&a(o,{filter:{name:\"backwardLinearPrediction\",value:{nbInputs:m/2}}}),a(o,{filter:{name:\"apodization\",value:{exponential:{apply:!0,options:{lineBroadening:1}}}}}),a(o,{filter:{name:\"zeroFilling\",value:{nbPoints:Qo(m)*2}}}),a(o,{filter:{name:\"fft\",value:{}}}),a(o,{filter:{name:\"phaseCorrection\",value:Er(n)}}),o.sort((p,y)=>ee[p.name]-ee[y.name]))}import{nextPowerOfTwo as os}from\"ml-spectra-processing\";import{getOneIfArray as wr}from\"@zakodium/nmrium-core\";var es=[\"no\",\"exponential\",\"modifiedGaussian\",\"sine\",\"qsine\",\"trap\",\"user\",\"sinc\",\"qsinc\",\"traf\",\"trafs\"];function ts(e){return e in vr}function lt(e,t){let{prefix:r=\"\",index:n=0}=t,i=wr(e[`${r}WDW`],n),o=es[i?Number(i):0],s={};if(!ts(o))return s;let c=vr[o];if(c){let{kind:a,parameters:m}=c,l={};for(let u in m){let g=m[u],{source:p,processor:y,value:d}=g;if(p){let f=wr(e[`${r}${p}`],n),h=Number.parseFloat(String(f));if(Number.isNaN(h))continue;l[u]=y?y(h):h}else d!==void 0&&(l[u]=d)}s[a]={apply:!0,options:l}}return s}var vr={exponential:{kind:\"exponential\",parameters:{lineBroadening:{source:\"LB\"}}},modifiedGaussian:{kind:\"gaussian\",parameters:{lineBroadening:{source:\"LB\"},lineBroadeningCenter:{source:\"GB\"}}},sine:{kind:\"sineBell\",parameters:{offset:{source:\"SSB\",processor:Cr},exponent:{value:1}}},qsine:{kind:\"sineSquare\",parameters:{offset:{source:\"SSB\",processor:Cr}}},traf:{kind:\"traf\",parameters:{lineBroadening:{source:\"LB\"}}}};function Cr(e){return e===0||e===1?0:1/e}var Lr={sineBell:_r({offset:0})},zr={cosy:{...Lr},hmbc:{...Lr},hsqc:{sineBell:_r({offset:.5})}},rs={...zr};function pt(e=\"\",t=1){let r=ns(e),n={},i=t===1?zr[r||\"\"]:rs[r||\"\"];return i&&(n=structuredClone(i)),n}function _r(e){return{apply:!0,options:e}}function ns(e){let r=e.toLowerCase().match(/cosy|hsqc|hmbc/);return r?r[0]:null}function qr(e,t={}){let{prefix:r=\"\",experiment:n=Pe(e)}=t;return e[`${r}WDW`]?{f2:lt(e,{...t,index:0}),f1:lt(e,{...t,index:1})}:{f2:pt(n,1),f1:pt(n,2)}}import{Filters2D as is}from\"nmr-processing\";var ut=[\"digitalFilter2D\",\"blpDimension1\",\"flpDimension1\",\"apodizationDimension1\",\"zeroFillingDimension1\",\"fftDimension1\",\"blpDimension2\",\"flpDimension2\",\"nusDimension2\",\"apodizationDimension2\",\"zeroFillingDimension2\",\"fftDimension2\",\"phaseCorrectionTwoDimensions\",[\"shift2DX\",\"shift2DY\",\"symmetrizeCosyLike\"]],te={};for(let e=0;e<ut.length;e++){let t=ut[e];for(let r of Array.isArray(t)?t:[t])te[r]=e}for(let e of Object.values(is))e.name in te||(te[e.name]=ut.length);function Ur(e,t={}){let{data:r,info:n,meta:i,filters:o}=e,{experimentalFeatures:s}=t,c=(b,D)=>Me(b,{...D,experimentalFeatures:s}),a=r.re.z.length,m=r.re.z[0].length,{OFFSET:l}=i||{},{tdOff:u,experiment:g=\"\"}=n,p=n.spectrumSize,{nuslist:y,NusTD:d}=i;Array.isArray(p)&&p.length>1?(y&&(p[1]=Math.max(os(d[1]),1024)),p[1]=jr(p[1],a),p[0]=jr(p[0],m)):p=[Math.max(m,1024),Math.max(a,1024)];let f=g.toLowerCase().includes(\"cosy\");u&&Math.abs(u[0])>0&&c(o,{filter:{name:\"blpDimension1\",value:{nbInputs:m/2}}});let h=qr(i,{experiment:g});if(c(o,{filter:{name:\"apodizationDimension1\",value:h.f2}}),c(o,{filter:{name:\"zeroFillingDimension1\",value:{nbPoints:p[0]}}}),c(o,{filter:{name:\"fftDimension1\",value:{}}}),i&&\"nuslist\"in i&&c(o,{filter:{name:\"nusDimension2\",value:{}}}),c(o,{filter:{name:\"apodizationDimension2\",value:h.f1}}),c(o,{filter:{name:\"zeroFillingDimension2\",value:{nbPoints:p[f?0:1]}}}),f&&c(o,{filter:{name:\"symmetrizeCosyLike\",value:{}}}),c(o,{filter:{name:\"fftDimension2\",value:{}}}),l){let{spectralWidth:b,originFrequency:D,frequencyOffset:S}=n,P=ss({shiftOffset:l,spectralWidth:b,frequencyOffset:S,originFrequency:D});c(o,{filter:{name:\"shift2DX\",value:{shift:P[0]}}}),c(o,{filter:{name:\"shift2DY\",value:{shift:P[1]}}})}o.sort((b,D)=>te[b.name]-te[D.name])}function jr(e,t,r=1024){return e<t?Math.max(t,r):e>t?Math.min(e,r):Math.max(t,r)}function ss(e){let{shiftOffset:t,spectralWidth:r,frequencyOffset:n,originFrequency:i}=e,o=[];for(let s=0;s<2;s++)o.push(t[s]-r[s]/2-n[s]/i[s]);return o}function Br(e,t={}){let{data:r}=e;if(!r)return;let{spectra:n}=r;for(let i of n){let{dimension:o,isFid:s}=i.info;if(s){if(o===1)kr(i,t);else if(o===2){if(!t.autoProcessing)continue;Ur(i,t)}}}}function ft(){return as({id:\"@zakodium/nmrium-core-plugins#AutoPostProcessingPlugin\",version:2,shouldSerialize:!1,migrations:[{minCore:20,up:e=>(e.plugins&&delete e.plugins[\"@zakodium/nmrium-core-plugins#AutoPostProcessingPlugin\"],e)}],onReadProcess:{onProcessing:Br}})}import{defineNMRiumPlugin as ds}from\"@zakodium/nmrium-core\";import{formatSpectra as cs}from\"@zakodium/nmrium-core\";var ms={keepRecordsRegExp:/.*/,keepFiles:!0};async function Oe(e,t={}){let r={spectra:[],molecules:[]},{converter:n={},selector:i={},logger:o}=t,s=nt(e,{logger:o,...ps(i)}),c=[];for(let m of s)c.push(ct(m,{...ms,...n,keepFiles:!0}).then(l=>ls(l,t)));let a=await Promise.allSettled(c);for(let m=0;m<a.length;m++){let l=a[m];if(l.status===\"fulfilled\"){let u=Ie(l.value.info);r.spectra.push({...l.value,info:{...l.value.info,...u}})}else if(l.reason){let u=s[m].name;o?.warn(`Bruker data: ${u}, fails with: ${l.reason}`);continue}}return o&&o[r.spectra.length>0?\"info\":\"debug\"](`Loaded ${r.spectra.length} spectra from Bruker files`),cs(r)}function ls(e,t={}){let{logger:r}=t,n={...e.info,...e.meta},i=Q(n,{logger:r}),o={};if(us(e)){let u=e.minMax;for(let g in u){let p=(i.isFid,u[g]);p&&(p.z=L(p.z))}o.components=e.minMax}else i.dimension===1&&(o.components=e.spectra);let{source:s}=e,{expno:c,name:a,files:m}=s;n.vdlist&&(n.vdlistValues=H(n.vdlist));let l={dependentVariables:[o],meta:n,info:{...i,experimentNumber:c,name:a}};return m&&(l.selector={files:m.map(u=>u.relativePath)}),fs(l,e),l}function ps(e){let{general:t={},bruker:r={}}=e,{processingNumbers:n,experimentNumbers:i,...o}=r;return{...t,...o,processingNumbers:$r(n),experimentNumbers:$r(i)}}function $r(e){if(e)return e.split(/[^\\d]+/).filter(Boolean).map(t=>Number.parseInt(t,10))}function us(e){let{info:t}=e;return t.twoD}function fs(e,t){if(!(\"integrals\"in t))return;let{integrals:r=[]}=t;e.integrals={values:r.map(n=>{let{from:i,to:o,integration:s}=n;return{from:i,to:o,integral:s,kind:\"signal\"}})}}function gs(e,t){let{selector:r,converter:n,logger:i}=t??{};return Oe(e,{converter:n?.bruker,selector:r,logger:i})}function dt(){return ds({id:\"@zakodium/nmrium-core-plugins#BrukerLoaderPlugin\",version:1,shouldSerialize:!0,migrations:[],onReadProcess:{onFiles:gs}})}import{defineNMRiumPlugin as Ks}from\"@zakodium/nmrium-core\";import{formatSpectra as Hs}from\"@zakodium/nmrium-core\";import{createTree as Gs}from\"jcampconverter\";function Wr(e,t,r={}){let{selector:n={}}=r;for(let i=0;i<e.spectra.length;i++){let o=e.spectra[i];o.selector={files:[t.relativePath],jcamp:{index:i,...n}}}return e}import{convert as ys}from\"jcampconverter\";function gt(e,t,r){let{dataType:n,children:i}=e,o=n===\"LINK\"&&i?i:[e];for(let s of o){if(s.dataType===\"LINK\"){gt(s,t,r);continue}let c=ys(s.jcamp,r);t.push(...c.flatten)}}function Vr(e,t={}){let r=[],n=Hr(e,t);for(let s of n?e:[])s.dataType===\"LINK\"?s.children=yt(s.children,t):s=yt([s],t)[0],s&&r.push(s);let{name:i,logger:o}=t;return e.length===0&&o?.warn(`There is no data ${i?`in ${i}`:\"in the JCAMP-DX\"}`),r}function yt(e=[],t={}){let{name:r,logger:n,tree:i=[],dataSelection:o=\"both\"}=t,s=[];for(let l of e){let{dataType:u,dataClass:g}=l;if(u===\"LINK\")l.children=yt(l.children,t);else if(i.some(p=>{let{dataClass:y=g,dataType:d=u}=p;return g===y&&u===d})){n?.warn(`Skipping ${g} and ${u} ${r?`in ${r}`:\"in the JCAMP-DX\"}, \n        because it didn't match the import filters`);continue}s.push(l)}let c=[],a=s.some(Xr),m=s.some(Jr);for(let l of s){if(o!==\"both\"&&l.dataType!==\"LINK\"){if(Xr(l)&&(o===\"ft\"||o===\"preferFT\"&&m)){n?.warn(`Skipping raw data ${r?`in ${r}`:\"in the JCAMP-DX\"} because it didn't match the import filters`);continue}if(Jr(l)&&(o===\"fid\"||o===\"preferFID\"&&a)){n?.warn(`Skipping FFT data ${r?`in ${r}`:\"in the JCAMP-DX\"} because it didn't match the import filters`);continue}}c.push(l)}return c}function Jr(e){return e.dataType?.toUpperCase().includes(\"SPECTRUM\")&&e.dataClass&&!e.dataClass.toUpperCase().includes(\"PEAK\")}function Xr(e){return e.dataType?.toUpperCase().includes(\"FID\")}function Hr(e,t={}){let{logger:r,name:n=\"\"}=t;for(let i of e){if(i.dataType===\"LINK\"&&Hr(i.children,t))return!0;let{dataType:o=\"\"}=i,s=o.toLowerCase();if(s.length>0){if(s.includes(\"spectrum\")&&!s.includes(\"nmr\"))return r?.warn(`File ${n} was ignored because it is a ${o}`),!1;if(s.includes(\"nmr\"))return!0}}return!1}import{generateID as Kr}from\"@zakodium/nmrium-core\";import{parseJcampCS as Ss}from\"jcampconverter\";import*as Ps from\"openchemlib\";import{isMolfileNotEmpty as hs}from\"nmr-processing\";import*as Gr from\"openchemlib\";async function Yr(e,t={}){let{logger:r,selector:n}=t;if(n?.files&&!n.files.includes(e.relativePath))return{molecules:[],spectra:[]};let i=await e.text(),o=re(i),s={molecules:o,spectra:[]};return o.length===0&&r?.debug(`${e.name} is an empty molfile`),s}function re(e){let t=[];if(!hs(e))return[];let n=Gr.Molecule.fromMolfile(e,{customLabelPosition:\"superscript\"}).toMolfileV3();return t.push({molfile:n}),t}import{isMolfileNotEmpty as Ds}from\"nmr-processing\";import*as Fs from\"openchemlib\";import{getDiastereotopicAtomIDsFromMolfile as xs}from\"openchemlib-utils\";var bs=new Set([\"ndnmrspectrum\",\"ndnmrfid\",\"nmrspectrum\",\"nmrfid\"]);function Te(e){let{dataType:t=\"\",dataClass:r=\"\"}=e,n=t.replaceAll(/\\s/g,\"\").toLowerCase(),i=r.replaceAll(/\\s/g,\"\").toLowerCase();return bs.has(n)&&i!==\"peaktable\"}function Zr(e,t,r={}){let{spectra:n,info:i,meta:o}=e,s=n[0].data,c=[],a={x:\"delta\",y:\"intensity\",w:\"width\",m:\"multiplicity\",a:\"atom\"},{logger:m,name:l,spectraData:u}=r,{CROSSREFERENCE:g}=i,p=typeof g!=\"string\"?g:g.split(/\\r?\\n/).map(F=>F.trim()).filter(Boolean),y=p.find(F=>F?.toLowerCase().includes(\"structure\"));if(y===void 0)return m&&m.warn(`There is not a structure reference for ${l} file, assignment object could not be completed`),null;let d=Number.parseInt(y?.toLowerCase().replace(/_/,\"\").replace(/structure:\\s*blockid\\s*=\\s*(?<blockId>.*)/,\"$<blockId>\"),10);if(Number.isNaN(d)||d<1)return m&&m.warn(`Structure block_id not found for ${l} file, assignment object could not be completed`),null;let h=u?.molecules?.find(F=>F.blockId===d)?.molfile??\"\";if(h===\"\"){let F=t.find(I=>I.info.BLOCKID===d),{MOLFILE:A=\"\"}=F?.meta||{};h=A}if(!Ds(h))return m&&m.warn(`Empty molfile for ${l} file with structure block_id = ${d}, assignment object could not be completed`),null;let b=xs(Fs,h),D=Ne({...i,...o},{},\"\");for(let F=0;F<s.x.length;F++){let A={};for(let I in s){let N=s[I][F];typeof N==\"string\"&&N.startsWith(\"<\")&&N.endsWith(\">\")&&(N=N.slice(1,-1)),A[a[I]]=N}if(\"atom\"in A){let I=b.map[A.atom-1];D.includes(\"1H\")?I.nbHydrogens>0?(A.diaIDs=I.hydrogenOCLIDs,A.nbHydrogens=I.nbHydrogens):(A.diaIDs=[I.oclID],A.nbHydrogens=I.nbHydrogens):(A.diaIDs=[I.oclID],A.nbHydrogens=1)}c.push(A)}let S={};for(let F of c){let{delta:A,diaIDs:I}=F,N=`${A}_${I.join(\"_\")}`;if(S[N])S[N].atoms.push(F.atom);else{let{atom:V,...q}=F;S[N]={...q,atoms:[V]}}}let P=[];for(let F of p)F.toLowerCase().includes(\"spectrum\")&&P.push(Number(F.toLowerCase().replace(/_/,\"\").replace(/.*:\\s*blockid=(?<blockId>.*)/,\"$<blockId>\")));if(P.length===0){for(let F of t)if(Te(F)){let{BLOCKID:A}=F.info;P.push(Number(A))}P.length>1&&(P=[],m&&m.warn(`There is not a spectral cross-reference for the peak assignment in the ${l} file`))}return{moleculeBlockID:d,spectraBlockIDs:P,assignments:Object.values(S),molecule:b.molecule}}function Qr(e,t,r,n){for(let i of e){let{meta:o,dataClass:s=\"\",dataType:c=\"\",info:a,jcampCS:m}=i,l=Number.parseInt(String(a.BLOCKID),10);o.MOLFILE?Ms(String(o.MOLFILE),t,l):m&&Ns(i,t,l),As(s,c)&&Is(t,i,e,n),Te(i)&&r.push(i)}}function As(e,t){return e?.toLowerCase().includes(\"assignments\")&&t?.toLowerCase().includes(\"assignments\")}function Is(e,t,r,n){let i=Zr(t,r,{spectraData:e,logger:n.logger,name:n.name});if(e.assignmentsByBlocks||(e.assignmentsByBlocks={}),i){let{spectraBlockIDs:o}=i;for(let s of o)e.assignmentsByBlocks[s]=i}}function Ns(e,t,r){t.molecules||(t.molecules=[]);let n=Ss(e,{OCL:Ps}),i=re(n?.molfile||\"\");i.length>0&&t.molecules.push({id:Kr(),blockId:r,...i[0]})}function Ms(e,t,r){t.molecules||(t.molecules=[]);let n=re(e);t.molecules.push({id:Kr(),blockId:r,...n[0]})}import{generateID as fn}from\"@zakodium/nmrium-core\";import{matrixMinMaxZ as un,reimPhaseCorrection as _s}from\"ml-spectra-processing\";import{xyAutoRangesPicking as qs}from\"nmr-processing\";function ne(e){return e.slice(0,Math.max(0,e.lastIndexOf(\".\")))}function ie(e){e.sort((t,r)=>t.from-r.from);for(let t=0;t<e.length-1;t++)e[t].to>e[t+1].from&&(e[t].to=Math.max(e[t+1].to,e[t].to),e[t].signals=e[t].signals.concat(e[t+1].signals),e[t].integration+=e[t+1].integration,e.splice(t+1,1),t--);return e}import{splitPatterns as ks}from\"nmr-processing\";import{xMaxValue as Os}from\"ml-spectra-processing\";function ue(e){return e.trim().slice(1,-1).split(/,\\s*/).map(t=>t.trim())}var Ts={I:\"id\",X:\"from\",Y:\"to\",Hs:\"delta\",An:\"integration\",H:\"nbAtoms\",C:\"multiplicity\",N:\"assignment\",\"(J)\":\"js\"},en=[\"I\",\"X\",\"Y\",\"Hs\",\"An\",\"H\",\"C\",\"N\",\"(J)\"];function tn(e){let t={headersFromParenthesis:[],headersFromComments:[],comments:[],data:[],multiplets:[]},r=e.split(/\\r?\\n/).filter(n=>n.trim()!==\"\");if(r.length===0)return t;if(r[0].startsWith(\"(\")&&!r[0].match(/\\d/)){let n=r.shift();t.headersFromParenthesis=ue(n)}return t.comments=r.filter(n=>n.startsWith(\"$$\")).map(n=>n.replace(/^\\$\\$\\s*/,\"\")),t.headersFromComments=Rs(t.comments),t.data=r.filter(n=>!n.startsWith(\"$$\")).map(ue),t.multiplets=Es(t),t}function Es(e,t={}){let{logger:r}=t,n=e.data[0].map((a,m)=>m).filter(a=>e.data.every(m=>Number.isNaN(m[a])||Number.isNaN(Number(m[a]))));if(r?.trace(`Parsing JCAMP-DX assignment: stringColumnIndexes: ${n.join(\",\")}`),n.length===0)return r?.warn(\"Parsing JCAMP-DX assignment: No string columns found. Skipping parsing of assignment.\"),[];let i=n[0],o;if(e.headersFromParenthesis.length>0&&e.headersFromParenthesis[i]===\"C\")o=e.headersFromParenthesis;else if(e.headersFromComments.length>0&&e.headersFromComments[i]===\"C\")o=e.headersFromComments;else if(en[i]===\"C\")o=en;else return r?.warn(\"No header found for multiplicity. Skipping parsing of assignment.\"),[];return Os(e.data.map(a=>a.length))>o.length&&r?.warn(\"Some assignments are containing more values than headers\"),e.data.map(a=>{let m={};for(let l=0;l<o.length;l++){let u=o[l];m[Ts[u]||u]=a[l]}return m})}function Rs(e){return e.map(t=>t.split(\":\",1)[0].trim()).filter(t=>t.length>0)}function rn(e,t={}){let{logger:r}=t,n=tn(e),i={multiplets:[],comments:n.comments};for(let o of n.multiplets){let{id:s,from:c,to:a,delta:m,integration:l,nbAtoms:u,assignment:g,multiplicity:p,js:y}=o,d={id:s,js:[],multiplicity:\"\",...ws({from:c,to:a,delta:m,integration:l,nbAtoms:u})};if(typeof y==\"string\"){let f=y.split(/\\s+/).map(Number.parseFloat),h=0,b=ks(p).map(P=>{let F=(P?.multiplicity||1)-1;return h+=F,{value:P.value,multiplicity:P?.multiplicity,js:f.slice(h-F,h)}}),D=b.reduce((P,F)=>P+(F.multiplicity?F.multiplicity-1:0),0);f.length!==D&&r?.warn(`The number of j values (${f.length}) is not equal to the sum of the multiplicities - 1 (${D})`);let S=[];for(let P of b){if(P.js.every(F=>F===P.js[0])){S.push(P);continue}if(P.multiplicity!==P.js.length+1){S.push(P);continue}for(let F=0;F<P.multiplicity-1;F++)S.push({value:\"d\",multiplicity:2,js:[P.js[F]]})}S.sort((P,F)=>F.js[0]-P.js[0]),d.js=S.map(P=>({coupling:P.js[0],multiplicity:P.value}))}typeof g==\"string\"&&(d.assignment=vs(g)),typeof p==\"string\"&&(d.multiplicity=p),i.multiplets.push(d)}return i}function ws(e){let t={};for(let r in e){let n=e[r],i=typeof n==\"number\"?n:Number.parseFloat(n);Number.isNaN(i)||(t[r]=i)}return t}var Cs={quot:'\"',apos:\"'\",comma:\",\",amp:\"&\",lpar:\"(\",rpar:\")\",lt:\"<\",gt:\">\",colon:\":\",semi:\";\"};function vs(e){return e.replaceAll(/&(\\w+);/gi,(t,r)=>Cs[r.toLowerCase()]||t)}function nn(e){let t=e.split(/\\r?\\n/).filter(n=>n.trim()!==\"\"),r=[];for(let n of t)if(n.startsWith(\"(\")){let[i,o,s]=ue(n).map(Number.parseFloat);r.push({id:i,x:o,y:s})}return r}function on(e,t={}){let r={};if(!e[\"OBSERVED MULTIPLETS\"])return[];let n=rn(e[\"OBSERVED MULTIPLETS\"],t);if(!n)return[];let{multiplets:i}=n;for(let o of i){let{id:s,from:c,to:a,integration:m=0,...l}=o;r[s]={from:c,to:a,integration:m,signals:[{id:s,...l}]}}if(e[\"OBSERVED MULTIPLETS PEAKS\"]){let o=nn(e[\"OBSERVED MULTIPLETS PEAKS\"]),s={};for(let c of o){let{id:a,x:m,y:l}=c;s[a]||(s[a]=[]),s[a].push({x:m,y:l,width:.05})}for(let c in r)s[c]&&(r[c].signals[0].peaks=s[c])}return ie(Object.values(r))}function sn(e,t){let n=[...e.getMolecularFormula().formula.matchAll(/(?<element>[A-Z][a-z]?)(?<count>\\d*)/g)].map(o=>({element:o?.groups?.element,count:o?.groups?.count?Number(o.groups.count):1})),i=[...t.nucleus[0].matchAll(/[0-9]*(?<element>[A-Z][a-z]?)/g,\"$element\")][0].groups.element;return n.find(o=>o.element===i)?.count||100}function an(e){let t={};return\".PHASE0\"in e&&(t.ph0=Number.parseFloat(e[\".PHASE0\"]),t.ph1=Number.parseFloat(e[\".PHASE1\"])),t}function ht(e){let{ph0:t,ph1:r}=e;return Number.isFinite(t)&&Number.isFinite(r)}import{generateID as cn}from\"@zakodium/nmrium-core\";function mn(e,t,r){for(let n=0;n<e.length;n++){if(t.includes(n))continue;let{delta:i,multiplicity:o=\"\",diaIDs:s}=e[n],c=i-.01,a=i+.01;r.push({from:c,to:a,integration:1,id:cn(),signals:[{id:cn(),delta:i,multiplicity:o,diaIDs:s}]})}}import{linearSumAssignment as Ls}from\"linear-sum-assignment\";import{xCostMatrix as zs}from\"ml-spectra-processing\";function ln(e,t){let r=e.map(s=>s.delta),n=t.map(s=>s.delta),i=zs(n,r,{fct:(s,c)=>Math.abs(s-c)}),{rowAssignments:o}=Ls(i,{maximaze:!1});return Array.from(o)}function pn(e,t){let{assignments:r,ranges:n,integrationSum:i,moleculeId:o}=t;r?.sort((a,m)=>m.delta-a.delta);let s=[],c=[];for(let a of n){let m=0,{from:l,to:u}=a,g=[];for(let p=m;p<r.length;p++){let{delta:y}=r[p];y<=u&&y>=l?(g.push(r[p]),c.push(p)):y>u&&(m=p)}if(g.length>0){let p=a.signals,y=[],d=g.length>1&&p.length>1?ln(p,g):[0];for(let f=0;f<g.length;f++){let h=d[f],{delta:b,multiplicity:D,diaIDs:S}=g[f];h>-1?y.push({...p[h],diaIDs:S}):y.push({delta:b,multiplicity:D,diaIDs:S})}a.signals=y,s.push(a)}}mn(r,c,s),s.sort((a,m)=>a.from-m.from),e.ranges={values:ie(s).map(a=>{let{integration:m,...l}=a;return l}),options:{sum:i,isSumConstant:!0,sumAuto:!0}},e.ranges.options.moleculeId=String(o)}function dn(e,t,r,n,i){let{logger:o}=i,s={components:gn(e)?Bs(e,r.isFid):Us(e)},{name:c=r.title||`jcamp_${fn()}`}=i,a={dependentVariables:[s],meta:t,info:{...r,name:ne(c)}};return js(e)&&$s(a,n,t,e,r,{logger:o}),a}function gn(e){return\"minMax\"in e}function js(e){return!gn(e)}function Us(e){return e.spectra.map(t=>{let r=L(t.data);return{...t,data:r}})}function Bs(e,t){let r={...e.minMax,z:L(e.minMax?.z)};return t?Ws(r):{rr:r}}function $s(e,t,r,n,i,o){let{assignmentsByBlocks:s}=t,c=an(r);ht(c)&&Js(e,c);let a=String(n.info.BLOCKID);if(s?.[a]){let{molecule:m,assignments:l,moleculeBlockID:u}=s[a],g=sn(m,i),p=L(n.spectra[0].data);if(p.x[0]>p.x[1])for(let h of n.spectra)h.data.x.reverse(),h.data.y.reverse();ht(c)&&n.spectra.length>1&&Xs(n,c);let{x:y,y:d}=p,f=on(r,o)??qs({x:y,y:d},{peakPicking:{frequency:i.originFrequency},ranges:{frequency:i.originFrequency,integrationSum:g}});pn(e,{moleculeId:u,ranges:f,assignments:l,integrationSum:g})}}function Ws(e){let{z:t,...r}=e,n=[],i=[];for(let c=0;c<t.length;c+=2)n.push(t[c].slice()),i.push(t[c+1].slice());let o=un(n),s=un(i);return{re:{...r,z:n,minZ:o.min,maxZ:o.max},im:{...r,z:i,minZ:s.min,maxZ:s.max}}}function Js(e,t){let{ph0:r,ph1:n}=t;e.filters||(e.filters=[]),e.filters.push({id:fn(),name:\"phaseCorrection\",value:{ph0:r,ph1:n,absolute:!1},enabled:!0})}function Xs(e,t){let{ph0:r,ph1:n}=t,{re:i,im:o}=_s({re:e.spectra[0].data.y,im:e.spectra[1].data.y},r*Math.PI/180,n*Math.PI/180,{inPlace:!0});return{re:i,im:o}}function yn(e,t,r){let{logger:n}=r,i=[];for(let o of e)if(o.spectra&&o.spectra.length>0||o.minMax){Vs(o);let s={...o.info,...o.meta},c=Q(s,{logger:n});if(c.experiment===\"wobble_curve\")continue;i.push(dn(o,s,c,t,r))}return i}function Vs(e){let t=e.meta[\"BRUKER FILE EXP\"];if(!t)return;let n=(Array.isArray(t)?t:[t]).find(o=>o.slice(0,10).includes(\"vdlist\"));if(!n)return;let i=n.split(`\n`).slice(1);e.info.vdlistValues=H(i)}async function Ee(e,t={}){let r=await e.text(),n=hn(r,{name:e.name,...t});return Wr(n,e,t)}function hn(e,t={}){let r={spectra:[],molecules:[]},{name:n,converter:i={},selector:o={},logger:s}=t,{keepRecordsRegExp:c=/.*/}=i,a={keepSpectra:!0,noContour:!0,noTrimRegExp:/\\$MOLFILE/,keepRecordsRegExp:c,logger:s},m=Vr(Gs(e),{name:n,...o,logger:s});for(let l of m)Ys(l,r,a,n);if(Zs(r,o),r.spectra.length===0&&m.length>0){let l=r.molecules.length===0?\" nor molecule\":\"\";s?.warn(`No spectra${l} data was loaded from file ${n}`)}return Hs(r)}function Ys(e,t,r,n){let i=[],o=[],s={molecules:[]},{logger:c}=r,a={name:n,logger:c};gt(e,o,r),Qr(o,s,i,a),t.spectra.push(...yn(i,s,a)),t.molecules.push(...s.molecules)}function Zs(e,t){t.index!==void 0&&(e.spectra=e.spectra.slice(t.index,t.index+1))}function Qs(e,t={}){let{selector:r={},converter:n,logger:i}=t;return i?.debug(`Reading JCAMP-DX file: ${e.name}`),Ee(e,{selector:ea(r),converter:n?.jcamp,logger:i})}function ea(e={}){let{jcamp:t={},general:r={}}=e,{dataSelection:n=\"both\"}=r;return{dataSelection:n,...t}}function bt(){return Ks({id:\"@zakodium/nmrium-core-plugins#JCAMPDXLoaderPlugin\",version:1,shouldSerialize:!0,migrations:[],onReadProcess:{supportedExtensions:[\"jcamp\",\"jdx\",\"dx\"],onFile:Qs}})}import{defineNMRiumPlugin as ba}from\"@zakodium/nmrium-core\";function bn(e){if(e===void 0)return{epoch:null,date:\"\"};let t=e*1e3;return{epoch:t,date:new Date(t).toUTCString()}}var Dn={0:\"bigEndian\",1:\"littleEndian\"},Fn={0:\"NONE\",1:\"GSX\",2:\"ALPHA\",3:\"ECLIPSE\",4:\"MASS_SPEC\",5:\"COMPILER\",6:\"OTHER_NMR\",7:\"UNKNOWN\",8:\"GEMINI\",9:\"UNITY\",10:\"ASPECT\",11:\"UX\",12:\"FELIX\",13:\"LAMBDA\",14:\"GE_1280\",15:\"GE_OMEGA\",16:\"CHEMAGNETICS\",17:\"CDFF\",18:\"GALACTIC\",19:\"TRIAD\",20:\"GENERIC_NMR\",21:\"GAMMA\",22:\"JCAMP_DX\",23:\"AMX\",24:\"DMX\",25:\"ECA\",26:\"ALICE\",27:\"NMR_PIPE\",28:\"SIMPSON\"},xn={0:\"64Bit Float\",1:\"32Bit Float\",2:\"Reserved\",3:\"Reserved\"},Sn={1:\"One_D\",2:\"Two_D\",3:\"Three_D\",4:\"Four_D\",5:\"Five_D\",6:\"Six_D\",7:\"Seven_D\",8:\"Eight_D\",9:\"not for NMR data formats\",10:\"not for NMR data formats\",11:\"not for NMR data formats\",12:\"Small_Two_D\",13:\"Small_Three_D\",14:\"Small_Four_D\"},Pn={0:\"None\",1:\"Real\",2:\"TPPI\",3:\"Complex\",4:\"Real_Complex\",5:\"Envelope\"},An={\"-8\":\"Yotta\",\"-6\":\"Exa\",\"-7\":\"Zetta\",\"-5\":\"Pecta\",\"-4\":\"Tera\",\"-3\":\"Giga\",\"-2\":\"Mega\",\"-1\":\"Kilo\",0:\"None\",1:\"Milli\",2:\"Micro\",3:\"Nano\",4:\"Pico\",5:\"Femto\",6:\"Atto\",7:\"Zepto\"},In={Yotta:24,Exa:21,Zetta:18,Pecta:15,Tera:12,Giga:9,Mega:6,Kilo:3,None:0,Milli:-3,Micro:-6,Nano:-9,Pico:-12,Femto:-15,Atto:-18,Zepto:-21},Nn={0:\"None\",1:\"Abundance\",2:\"Ampere\",3:\"Candela\",4:\"Celsius\",5:\"Coulomb\",6:\"Degree\",7:\"Electronvolt\",8:\"Farad\",9:\"Sievert\",10:\"Gram\",11:\"Gray\",12:\"Henry\",13:\"Hertz\",14:\"Kelvin\",15:\"Joule\",16:\"Liter\",17:\"Lumen\",18:\"Lux\",19:\"Meter\",20:\"Mole\",21:\"Newton\",22:\"Ohm\",23:\"Pascal\",24:\"Percent\",25:\"Point\",26:\"Ppm\",27:\"Radian\",28:\"Second\",29:\"Siemens\",30:\"Steradian\",31:\"Tesla\",32:\"Volt\",33:\"Watt\",34:\"Weber\",35:\"Decibel\",36:\"Dalton\",37:\"Thompson\",38:\"Ugeneric\",39:\"LPercent \",40:\"PPT\",41:\"PPB \",42:\"Index\"},Dt={0:\"Ranged\",1:\"Listed\",2:\"Sparse\",3:\"Listed\"};function v(e,t){return e.paramArray.find(r=>r.name===t)}function Mn(e,t){let r=e.paramArray.find(d=>d.name===\"orders\"),n=e.paramArray.find(d=>d.name===\"factors\"),i=e.paramArray.find(d=>d.name===\"x_sweep\"),o=e.paramArray.find(d=>d.name===\"x_acq_time\"),s=e.paramArray.find(d=>d.name===\"x_points\");if(!r||!n||!i||!o||!s){t?.error(\"There is not all parameters to calculate the number of point of digital filter\");return}let c=r.value,a=Number.parseInt(c.slice(0,1),10),m=c.slice(1).length/a,l=0,u=new Int8Array(a),g=1,p=0;for(let d=0;d<a;d++)u[d]=Number.parseInt(n.value.slice(p,p+1),10),p+=1;for(let d=0;d<a;d++){let f=1;for(let h=d;h<a;h++)f*=u[h];l+=(Number.parseInt(c.slice(g,g+m),10)-1)/f,g+=m}return l/=2,l/i.value/o.value*(s.value-1)}function T(e,t){let r=v(e,t);if(r===void 0)return{magnitude:\"NA\",unit:\"NA\"};let n=r.unit[0],i=n.base,o=In[n.prefix];return{magnitude:r.value*10**o,unit:i}}function Ft(e){let t=e.readBytes(4),r=1990+(t[0]>>1),n=(t[0]<<3&8)+(t[1]>>5),i=t[2]&31;return{year:r,month:n,day:i}}function Re(e,t){let r=[];for(let n=0;n<t;n++){let i=e.readByte(),o=i>>4,s=An[o],c=i&15,a=e.readInt8(),m=Nn[a];r.push({prefix:s,power:c,base:m})}return r}function J(e,t){let r=[];for(let n=0;n<t;n++){let i=e.readChar();i!==\"\\0\"&&r.push(i)}return r.join(\"\")}function xt(e,t){let r=[];for(let n=0;n<t;n++){let i=e.readChar();i!==\" \"&&r.push(i)}return r.join(\"\")}function E(e,t,r){let n=[];for(let i=0;i<t;i++)switch(r){case\"readUint32\":n.push(e.readUint32());break;case\"readFloat64\":n.push(e.readFloat64());break;case\"readFloat32\":n.push(e.readFloat32());break;case\"readUint8\":n.push(e.readUint8());break;default:break}return n}function ke(e,t,r){let n=new Float64Array(t);for(let i=0;i<t;i++)n[i]=r===\"readFloat32\"?e.readFloat32():e.readFloat64();return n}function On(e,t){let r=[];for(let n=0;n<t;n++)r.push(e.readBoolean());return r}function Tn(e,t,r){let n=1,i=0;for(let o of t.dataAxisType)o===\"Real_Complex\"&&i===0&&(n+=1,i+=1),o===\"Complex\"&&(n*=2);if(t.dataType!==\"32Bit Float\"&&t.dataType!==\"64Bit Float\"){r?.error(\"Only 32Bit Float and 64Bit Float data types are implemented yet\");return}if(t.dataFormat===\"One_D\"){if(n!==1&&n!==2){r?.error(\"One_D data must have one or two data sections\");return}return ra(e,t,n)}else if(t.dataFormat===\"Two_D\"){if(n===2)return na(e,t);if(n===4)return ia(e,t);r?.error(\"Two_D data must have two or four data sections\");return}else{r?.error(\"Only One_D and two_D data formats are implemented yet\");return}}function ra(e,t,r){return r===1?{re:St(e,t)}:{re:St(e,t),im:St(e,t)}}function St(e,t){return t.dataType===\"32Bit Float\"?ke(e,t.dataPoints[0],\"readFloat32\"):ke(e,t.dataPoints[0],\"readFloat64\")}var _=32;function na(e,t){let r=t.dataPoints[0],i=t.dataPoints[1]/_,o=r/_;return{re:oe(e,t,i,o),im:oe(e,t,i,o)}}function ia(e,t){let r=t.dataPoints[0],i=t.dataPoints[1]/_,o=r/_;return{re:{re:oe(e,t,i,o),im:oe(e,t,i,o)},im:{re:oe(e,t,i,o),im:oe(e,t,i,o)}}}function oe(e,t,r,n){let i=[],o=t.dataType===\"32Bit Float\"?\"readFloat32\":\"readFloat64\";for(let s=0;s<r;s++){let c=Array.from({length:_},()=>new Float64Array(n*_));for(let a=0;a<n;a++)for(let m=0;m<_;m++){let l=ke(e,_,o);c[m].set(l,a*_)}i.push(...c)}return i}function En(e){let t=e.readChars(8),r=e.readInt8(),n=Dn[r],i=e.readUint8(),o=e.readUint16(),s=e.readUint8(),c=e.readByte().toString(2).split(\"\").map(k=>!!Number(k)),a=e.readByte(),m=a>>6,l=xn[m],u=a&63,g=Sn[u],p=e.readInt8(),y=Fn[p],d=E(e,8,\"readUint8\"),f=E(e,8,\"readUint8\").map(k=>Pn[k]),h=Re(e,8),b=J(e,124),D=[];for(let k of E(e,4,\"readUint8\")){let ge=k>>4,rt=k&15;D.push(Dt[ge],Dt[rt])}let S=E(e,8,\"readUint32\"),P=E(e,8,\"readUint32\"),F=E(e,8,\"readUint32\"),A=E(e,8,\"readFloat64\"),I=E(e,8,\"readFloat64\"),N=Ft(e),V=Ft(e),q=J(e,16),Qe=J(e,128),et=J(e,128),de=J(e,128),me=[];for(let k=0;k<8;k++)me.push(J(e,32));let le=E(e,8,\"readFloat64\"),tt=E(e,8,\"readFloat64\"),j=On(e,8);e.skip(3);let Ci=!!(e.readByte()>>7),vi=e.readUint32(),Li=e.readUint32(),zi=e.readUint32(),_i=e.readUint32(),qi=E(e,8,\"readUint32\"),ji=E(e,8,\"readUint32\"),Ui=e.readUint32(),Bi=e.readUint32()<<32|e.readUint32(),$i=e.readUint32()<<32|e.readUint32(),Wi=e.readUint32(),Ji=e.readUint32()<<32|e.readUint32(),Xi=e.readUint32(),Vi=e.readUint32()<<32|e.readUint32(),Hi=E(e,8,\"readUint8\"),Ht=[];for(let k=0;k<2;k++){let ge=[],rt=e.readInt16();for(let Gt=0;Gt<5;Gt++)ge.push(e.readInt16());Ht.push({scaler:rt,unit:ge})}return{fileIdentifier:t,endian:n,majorVersion:i,minorVersion:o,dataDimensionNumber:s,dataDimensionExist:c,dataType:l,dataFormat:g,dataInstrument:y,translate:d,dataAxisType:f,dataUnits:h,title:b,dataAxisRanged:D,dataPoints:S,dataOffsetStart:P,dataOffsetStop:F,dataAxisStart:A,dataAxisStop:I,creationTime:N,revisionTime:V,nodeName:q,site:Qe,author:et,comment:de,dataAxisTitles:me,baseFreq:le,zeroPoint:tt,reversed:j,annotationOK:Ci,historyUsed:vi,historyLength:Li,paramStart:zi,paramLength:_i,ListStart:qi,ListLength:ji,dataStart:Ui,dataLength:Bi,contextStart:$i,contextLength:Wi,annoteStart:Ji,annoteLength:Xi,totalSize:Vi,unitLocation:Hi,compoundUnit:Ht}}var oa={0:\"String\",1:\"Integer\",2:\"Float\",3:\"Complex\",4:\"Infinity\"};function Rn(e){let t=e.readUint32(),r=e.readUint32(),n=e.readUint32(),i=e.readUint32(),o=[];for(let s=0;s<n+1;s++){e.skip(4);let c=e.readInt16(),a=Re(e,5);e.skip(16);let m=e.readInt32(),l=oa[m];e.seek(e.offset-20);let u;switch(l){case\"String\":u=xt(e,16);break;case\"Integer\":u=e.readInt32(),e.skip(12);break;case\"Float\":u=e.readFloat64(),e.skip(8);break;case\"Complex\":u={Real:e.readFloat64(),Imag:e.readFloat64()};break;case\"Infinity\":u=e.readInt32(),e.skip(12);break;default:e.skip(16);break}e.skip(4);let g=xt(e,28);o.push({name:g.toLowerCase(),scaler:c,unit:a,value:u,valueType:l})}return{parameterSize:t,lowIndex:r,highIndex:n,totalSize:i,paramArray:o}}function kn(e,t){let r=new C(e);r.setBigEndian();let n=En(r);n.endian===\"littleEndian\"&&r.setLittleEndian(),r.seek(n.paramStart);let i=Rn(r);r.seek(n.dataStart);let o=Tn(r,n,t),s=[],c=[],a=[],m=[],l=[],u=[],g=[],p=[],y=[],d=[];if(n.dataFormat===\"One_D\"||n.dataFormat===\"Two_D\"){let h=bn(v(i,\"actual_start_time\")?.value);h.date&&(c.push(h.date),a.push(h.epoch)),s.push(v(i,\"x_domain\")?.value),m.push(T(i,\"x_acq_time\")),l.push(T(i,\"x_sweep\")),u.push(T(i,\"x_sweep_clipped\")),g.push(T(i,\"x_resolution\")),p.push(T(i,\"x_freq\")),y.push(T(i,\"x_offset\")),d.push(n.dataUnits[0].base)}return n.dataFormat===\"Two_D\"&&(s.push(v(i,\"y_domain\")?.value),m.push(T(i,\"y_acq_time\")),l.push(T(i,\"y_sweep\")),g.push(T(i,\"y_resolution\")),p.push(T(i,\"y_freq\")),y.push(T(i,\"y_offset\")),d.push(n.dataUnits[1].base)),{info:{sampleName:v(i,\"sample_id\")?.value,creationTime:n.creationTime,revisionTime:n.revisionTime,author:n.author,comment:n.comment,solvent:v(i,\"solvent\")?.value,temperature:T(i,\"temp_get\"),probeName:v(i,\"probe_id\")?.value,fieldStrength:T(i,\"field_strength\"),experiment:v(i,\"experiment\")?.value,dimension:n.dataDimensionNumber,nucleus:s,date:c,epoch:a,pulseStrength90:T(i,\"x90\"),numberOfScans:v(i,\"scans\")?.value,relaxationTime:T(i,\"relaxation_delay\"),dataPoints:n.dataPoints.slice(0,n.dataDimensionNumber),dataOffsetStart:n.dataOffsetStart,dataOffsetStop:n.dataOffsetStop,dataUnits:d,dataSections:o?Object.keys(o):void 0,originFrequency:p,frequencyOffset:y,acquisitionTime:m,spectralWidth:l,spectralWidthClipped:u,dataAxisStart:n.dataAxisStart,dataAxisStop:n.dataAxisStop,resolution:g,decimationRate:v(i,\"decimation_rate\")?.value,paramList:JSON.stringify(i.paramArray.map(h=>h.name)),digitalFilter:Mn(i,t),reverse:n.reversed.map(h=>!h)},headers:n,parameters:i,data:o}}import{formatSpectra as ma}from\"@zakodium/nmrium-core\";import{getGyromagneticRatio as la}from\"gyromagnetic-ratio\";import{isAnyArray as pa}from\"is-any-array\";import ua from\"lodash.merge\";import{normalizeNucleus as fa}from\"nmr-processing\";import{isAnyArray as se}from\"is-any-array\";var wn={0:\"uint8\",1:\"uint16\",2:\"uint32\",3:\"uint64\",4:\"int8\",5:\"int16\",6:\"int32\",7:\"int64\",8:\"float32\",9:\"float64\",10:\"complex64\",11:\"complex128\"},Cn={0:\"scalar\",1:\"vector\",2:\"matrix\",3:\"symetricMatrix\",4:\"pixel\"};function vn(e,t,r={}){let{quantityType:n=0,encoding:i=\"none\",name:o=\"\",unit:s=\"\",quantityName:c=\"\",sparseSampling:a={},from:m=[0],to:l=[-1]}=r;if(se(e))throw new Error(\"JEOL with an array of data is not yet supported\");if(!(\"re\"in e&&\"im\"in e))throw new Error(\"Only re/im data is supported\");let u=At(e,m,l),{componentLabels:g=u.componentLabels,description:p=\"\",application:y=\"\"}=r;return{type:\"internal\",quantityType:Cn[n],numericType:wn[t],encoding:i,name:o,unit:s,quantityName:c,componentLabels:g,sparseSampling:a,description:p,application:y,components:u.components,dataLength:u.dataLength}}function sa(e){return se(e.re)&&se(e.im)}function aa(e){return!se(e.re[0])}function At(e,t,r){let n=[],i=[],o=[];if(sa(e))if(aa(e)){n[0]=Pt(t[0],r[0],e.re.length);let s=new Float64Array(n[0]);for(let c=0;c<n[0];c+=2){let a=c+t[0]*2;s[c]=e.re[a/2],s[c+1]=e.im[a/2]}o.push(s),i.push(\"complex\")}else if(se(e.re[0])){n[0]=ca(t[1],r[1],e.re.length),n[1]=Pt(t[0],r[0],e.re[0].length);for(let s=0;s<n[0];s++){let c=new Float64Array(n[1]);for(let a=0;a<n[1];a+=2){let m=a+t[0]*2;c[a]=e.re[s][m/2],c[a+1]=e.im[s][m/2]}o.push(c)}}else throw new Error(\"check your object\");else if(se(e.re.re)){n[0]=Pt(t[1],r[1],e.re.re.length);let s=At(e.re,t,r).components,c=At(e.im,t,r).components;for(let a=0;a<n[0]/2;a++)o.push(s[a],c[a])}else throw new Error(\"check the dimension or the type of data in your array\");return{dataLength:n,componentLabels:i,components:o}}function ca(e,t,r){return t-e+1<r?t-e+1:r}function Pt(e,t,r){return t-e+1<r?(t-e+1)*2:r*2}async function zn(e,t={}){let r=await e.arrayBuffer(),{name:n=ne(e.name)}=t,i={spectra:[],molecules:[]},s=ya(r)[0],{metadata:c,...a}=s.description,m=0,l=a.dimension===1?\"1d\":\"2d\",u=\"NMR SPECTRUM\",g=a.dimension===1?a.nucleus[0]:a.nucleus,p=a.spectralWidthClipped[0],y;s.dependentVariables&&(a.dimension===1?y=da(s):a.dimension===2&&(y=ga(s)));for(let f in a)Array.isArray(a[f])&&a[f].length===1&&(a[f]=a[f][0]);let d={data:y,info:{...a,acquisitionMode:m,experiment:l,type:u,nucleus:g,spectralWidthClipped:p,name:n},meta:c,selector:{files:[e.relativePath]}};return i.spectra=[d],ma(i)}function da(e){let t=e.dimensions[0],r=e.dependentVariables,n=t.quantityName,i=t.count,o=t.increment.magnitude,s=t.originOffset.magnitude,c=t.coordinatesOffset.magnitude,a=r[0].components[0],m=new Float64Array(i),l=new Float64Array(i);for(let d=a.length-1,f=0;d>0;d-=2)m[f]=a[d-1],l[f++]=a[d];let u={},[g,p]=[0,0];switch(n){case\"frequency\":p=0+c/s*1e6,g=o/s*1e6,u.re=m,u.im=l;break;case\"time\":p=s,g=o,u.re=m.toReversed(),u.im=l.toReversed();break;default:break}let y=[];for(let d=0;d<i;d++)y.push(p+d*g);return u.x=y,u}function ga(e){let t=e.dimensions,r=e.dependentVariables,n=t[0].quantityName,i=[],o=[],s=Number.MIN_SAFE_INTEGER,c=Number.MAX_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER,m=Number.MIN_SAFE_INTEGER;for(let g of r[0].components){let p=new Float64Array(g.length/2),y=new Float64Array(g.length/2);for(let d=g.length-1,f=0;d>0;d-=2){let h=g[d-1],b=g[d];h>s&&(s=h),h<c&&(c=h),b>m&&(m=b),b<a&&(a=b),p[f]=h,y[f++]=b}n===\"frequency\"?(i.push(p),o.push(y)):(i.push(p.toReversed()),o.push(y.toReversed()))}let l={re:{z:i,minZ:c,maxZ:s},im:{z:o,minZ:a,maxZ:m}},u=[\"X\",\"Y\"];for(let g=0;g<u.length;g++){let p=t[g].count,y=t[g].increment.magnitude,d=t[g].originOffset.magnitude,f=t[g].coordinatesOffset.magnitude,h=u[g];for(let b of[\"re\",\"im\"])n===\"frequency\"?(l[b][`min${h}`]=0+f/d*1e6,l[b][`max${h}`]=p*(y/d)*1e6):(l[b][`min${h}`]=d,l[b][`max${h}`]=p*y)}return l}function ya(e){let t=kn(e),r=t.info,n=t.headers,{paramArray:i,...o}=t.parameters,s={};for(let f of i){let{name:h,value:b}=f;s[h]=It(b,r.dimension)}let c=t.data,a={title:`title: ${n.title} / comment: ${n.comment} / author:${n.author} / site: ${n.site}`,nucleus:r.nucleus.map(fa),sampleName:r.sampleName,date:r.date,epoch:r.epoch,localeDate:new Date(r.epoch[0]).toLocaleString(),author:r.author,solvent:r.solvent,temperature:r.temperature.magnitude,probeName:r.probeName||\"\",fieldStrength:r.fieldStrength.magnitude},m=a.nucleus.map(la);a.baseFrequency=m.map(f=>r.fieldStrength.magnitude*f/(2*Math.PI*1e6)),a.reverse=It(r.reverse,r.dimension),a.pulseSequence=r.experiment,a.temperature=r.temperature?.unit?.toLowerCase()===\"celsius\"?273.15+r.temperature.magnitude:r.temperature.magnitude,a.digitalFilter=r.digitalFilter,a.pulseStrength90=1/(4*r.pulseStrength90.magnitude),a.numberOfScans=r.numberOfScans,a.relaxationTime=r.relaxationTime.magnitude,a.isComplex=r.dataSections?r.dataSections.includes(\"im\"):!1,a.isFid=r.dataUnits[0]===\"Second\",a.isFt=r.dataUnits[0]===\"Ppm\",a.dimension=r.dimension,a.originFrequency=r.originFrequency.map(f=>f.magnitude/1e6).slice(0,r.dimension),a.numberOfPoints=r.dataPoints.slice(0,1),a.frequencyOffset=r.frequencyOffset.map((f,h)=>f.magnitude*a.baseFrequency[h]).slice(0,r.dimension),a.acquisitionTime=r.acquisitionTime.map(f=>f.magnitude).slice(0,r.dimension),a.spectralWidth=r.spectralWidth.map((f,h)=>f.magnitude/r.originFrequency[h].magnitude*1e6).slice(0,r.dimension),a.spectralWidthClipped=r.spectralWidthClipped.map((f,h)=>f.magnitude/a.baseFrequency[h]*1e6).slice(0,r.dimension);let l=[],u={},g;for(let f=0;f<r.dimension;f++){if(g={magnitude:r.acquisitionTime[f].magnitude/(r.dataPoints[f]-1),unit:\"s\"},r.dataUnits[f]===\"Second\")u.quantityName=\"time\",u.originOffset={magnitude:0,unit:\"s\"},f===0?u.coordinatesOffset={magnitude:r.digitalFilter*g.magnitude,unit:\"s\"}:u.coordinatesOffset={magnitude:0,unit:\"s\"},u.reciprocal={originOffset:{magnitude:r.originFrequency[f].magnitude,unit:\"Hz\"},quantityName:\"frequency\",coordinatesOffset:{magnitude:r.frequencyOffset[f].magnitude*r.originFrequency[f].magnitude/1e6,unit:\"Hz\"}};else if(r.dataUnits[f]===\"Ppm\"){u.quantityName=\"frequency\";let h=r.originFrequency[f].magnitude;u.originOffset={magnitude:h,unit:\"Hz\"};let b=r.dataOffsetStart[f],S=r.dataOffsetStop[f]-b+1;g={magnitude:ha(r,f)/(S-1),unit:\"Hz\"};let A=r.dataAxisStop[f]*h/1e6;u.coordinatesOffset={magnitude:A,unit:\"Hz\"},S!==r.dataPoints[f]&&(r.dataPoints[f]=S)}f===0?u.description=\"direct dimension\":u.description=\"indirect dimension\",l.push({label:n.dataAxisTitles[f],count:r.dataPoints[f],increment:g,type:\"linear\",description:String(u.description)||\"\",application:u.application||{},coordinatesOffset:u.coordinatesOffset||0,originOffset:u.originOffset||0,quantityName:String(u.quantityName)||\"\",reciprocal:u.reciprocal||{},period:u.period||0,complexFFT:u.complexFFT||!1})}let p=[vn(c,11,{unit:\"none\",quantityName:\"relative intensity\",from:r.dataOffsetStart,to:r.dataOffsetStop})],y={...a};return delete y.paramList,y.metadata={...Ln(n,r.dimension),...Ln(o,r.dimension),...ua({},s)},[{timeStamp:Date.now(),description:y,dimensions:l,dependentVariables:p}]}function ha(e,t){let{spectralWidth:r,spectralWidthClipped:n}=e;return n[t].magnitude!==\"NA\"?n[t].magnitude:r[t].magnitude}function Ln(e,t){let r={};for(let n in e)r[n]=It(e[n],t);return r}function It(e,t){return pa(e)?t>1?e.slice(0,t):e[0]:e}function Da(e,t={}){let{logger:r}=t;return r?.debug(`Reading JEOL file: ${e.name}`),zn(e,{name:e.name,logger:r})}function Nt(){return ba({id:\"@zakodium/nmrium-core-plugins#JEOLLoaderPlugin\",version:1,shouldSerialize:!0,migrations:[],onReadProcess:{supportedExtensions:[\"jdf\"],onFile:Da}})}import{defineNMRiumPlugin as Fa}from\"@zakodium/nmrium-core\";function xa(e,t={}){let{logger:r,selector:n}=t;return r?.debug(`Reading molfile file: ${e.name}`),Yr(e,{logger:r,selector:n})}function Mt(){return Fa({id:\"@zakodium/nmrium-core-plugins#MolfileLoaderPlugin\",version:1,shouldSerialize:!0,migrations:[],onReadProcess:{supportedExtensions:[\"mol\"],onFile:xa}})}import{defineNMRiumPlugin as Va}from\"@zakodium/nmrium-core\";import{FileCollection as Xg}from\"file-collection\";import{Molecule as Kn}from\"openchemlib\";import{getShortestPaths as Sa}from\"openchemlib-utils\";function _n(e,t){let{molecule:r,map:n}=t;r.addImplicitHydrogens();let i=Sa(r,{toLabel:\"H\",maxLength:1});for(let s in e){let c=e[s],a=c.atoms;if(a.length!==0){if(c.position=[],a[0].toLowerCase().includes(\"h\")){let m=Number(a[0].toLowerCase().replace(\"h\",\"\"))-1;m=n.indexOf(m);let l=i[m].find(u=>u&&u.length>1);c.position=i[l[0]].filter(u=>u&&u.length>1).map(u=>u.at(-1))}else if(a[0].toLowerCase().match(/\\w/s))for(let m of a){let l=n.indexOf(Number(m)-1);c.position.push(l)}}}let o=r.getDiastereotopicAtomIDs();for(let s in e){let c=[];if(\"position\"in e[s])for(let a of e[s].position)c.includes(o[a])||c.push(o[a]);e[s].diaIDs=c}return e}async function qn(e,t){let{fileCollection:r,root:n}=t,i=e.data.filter(s=>s.value.spectrum_location),o=[];for(let s of i){if(!s){new Error(`There is not spectrum for ${e}`);return}let c=s.value.spectrum_location;if(c.match(/file:/s)){let a=n+c.replace(/file:[./]*/s,\"\"),m=a.match(/[ser|fid]/s)?/([.*/]*\\w+\\/[0-9]+\\/).*/:/(.*\\w+\\/[0-9]+\\/)pdata\\/.*/,l=a.replace(m,\"$1\"),u=a.replace(/.*\\/[0-9]+\\/pdata\\/([0-9]+)\\/.*/,\"$1\"),g=r.filter(p=>{if(p.relativePath.match(\"pdata\")&&u!==p.relativePath.replace(/.*\\/[0-9]+\\/pdata\\/([0-9]+)\\/.*/,\"$1\"))return!1;let y=p.relativePath.replace(/([.*/]*\\w+\\/[0-9]+\\/).*/,\"$1\");return!(l!==y&&![\"ser\",\"fid\"].some(d=>a===`${y}${d}`))});o.push({type:\"brukerFiles\",fileCollection:g})}else c.match(\"http\")&&o.push({type:\"url\",value:c})}return o}async function jn(e,t){let{fileCollection:r,root:n}=t,i=e.data.find(a=>a.value.jcamp_location);if(!i){new Error(`There is not spectrum for ${e}`);return}let o=i.value.jcamp_location,s=n+o.replace(/file:/s,\"\"),c=r.filter(a=>a.relativePath===s);if(c.files.length===0){new Error(`There is not jcamp with path: ${s}`);return}return[{name:s,type:\"jcamp\",fileCollection:c}]}function Un(e={}){let t={};for(let r of e.data||[]){let{label:n,atoms:i,shift:o}=r.value;t[n]={shift:o,atoms:i}}return t}function Bn(e){let t=e.match(/([0-9])\\w_/s)?.[1];if(t===\"1\")return e.slice(3).replaceAll(/(?<nucleus>[0-9]+\\w+)#\\w+/g,\"$<nucleus>\");if(t===\"2\"){let r=[],n=e.slice(12).split(\"_\");for(let i=0;i<n.length;i+=2)r.push(n[i].replaceAll(/(?<nucleus>[0-9]+\\w+)#\\w+/g,\"$<nucleus>\"))}return[]}var Pa=[\"delta\",\"nbAtoms\",\"multiplicity\",\"jCoupling\"];function $n(e,t){let r={};for(let i of Pa){let o=e[i];o&&(r[i]=o)}if(r.integration=e.integration?Number(e.integration):e.nbAtoms?Number(e.nbAtoms):null,e.assignment)for(let i of e.assignment){let o=t[i];r.diaIDs||(r.diaIDs=[]),o?.diaIDs&&r.diaIDs.push(...o.diaIDs)}let n=!1;if(r.jCoupling&&(n=r.jCoupling.some(i=>Object.keys(i).includes(\"label\"))),n){for(let i of r.jCoupling)if(i.label){let o=t[i.label];o?.diaIDs&&(i.diaIDs=o.diaIDs)}}return r.delta&&(r.delta=Number.parseFloat(r.delta)),r}var Aa=[\"intensity\",\"volume\",\"activeCoupling\"],Ia={x:[\"f1Width\",\"f1Coupling\"],y:[\"f2Width\",\"f2Coupling\"]};function Wn(e,t){let r={};for(let n of Aa)e[n]&&(r[n]=e[n]);for(let n in e.delta){r[n]||(r[n]={});let i=e.delta[n];for(let o of i)r[n].diaIDs||(r[n].diaIDs=[]),t[o]?(r[n].diaIDs.push(...t[o].diaIDs),r[n].delta=Number.parseFloat(t[o].shift)):r[n].delta=Number.parseFloat(o);for(let o of Ia[n])if(e[o]){let s=o.toLowerCase().replace(/f\\w(\\w+)/,\"$1\");r[n][s]=e[o]}}return r}async function Jn(e,t){let{moleculeAndMap:r}=t,n={molecules:[{molfile:r.molecule.toMolfile()}],spectra:[]},i=n.spectra,o=n.molecules;e.SMILES?.data.length>0&&(o[0].smiles=e.SMILES.data[0].value);let s=Un(e.ASSIGNMENT);s=_n(s,r);for(let c in e){let a=c.toLowerCase();if(!a.match(/[1|2]d_/s))continue;let m=e[c].data.find(h=>h.value.larmor),l=e[c].data.find(h=>h.value.pulseprogram),u=Bn(c),g=a.replace(/([1|2]d)_.*/,\"$1\"),p=g===\"2d\"?Wn:$n,y={source:{jcampURL:null},nucleus:u,frequency:m?.value.larmor,experiment:l?l.value.pulseprogram.trim():g,headComment:e[c].headComment},d=e[c].data.filter(h=>h.value.delta);y.signals=d.map(h=>{let b=p(h.value,s);return b.comment=h.comment,b});let f=await Na(e[c],t);if(!f.jcamp&&!f.bruker)i.push(y);else for(let h in f)f[h]&&i.push({...y,source:{...y.source,file:f[h]}})}return n}async function Na(e,t){return{jcamp:await jn(e,t),bruker:await qn(e,t)}}function we(e,t={}){let{include:r,exclude:n,filter:i,modifiers:o={},forEach:s={},dynamicTyping:c=!0,mixedEOL:a=!1}=t;if(typeof e!=\"string\")throw new TypeError('Parameter \"sdf\" must be a string');let m=`\n`;if(a)e=e.replaceAll(`\\r\n`,`\n`),e=e.replaceAll(\"\\r\",`\n`);else{let y=new Set(e.slice(0,1e3));y.has(`\\r\n`)?m=`\\r\n`:y.has(\"\\r\")&&(m=\"\\r\")}let l=e.split(new RegExp(String.raw`${m}\\$\\$\\$\\$.*${m}`)),u=[],g={},p=Date.now();for(let y of l){let d=y.split(`${m}>`);if(d.length>0&&d[0].length>5){let f={molfile:d[0]+m},h=[];for(let b=1;b<d.length;b++){let D=d[b].split(m),S=D[0].indexOf(\"<\"),P=D[0].indexOf(\">\"),F=D[0].slice(S+1,P);if(h.push(F),g[F]||(g[F]={label:F,counter:0,nbLines:\"\",isNumeric:c,keep:!1},!n?.includes(F)&&(!r||r.includes(F))&&(g[F].keep=!0,o[F]&&(g[F].modifier=o[F]),s[F]&&(g[F].forEach=s[F]))),g[F].keep){for(let A=1;A<D.length-1;A++)f[F]?f[F]+=m+D[A]:f[F]=D[A];if(g[F].modifier){let A=g[F].modifier(f[F]);A==null?delete f[F]:f[F]=A}g[F].isNumeric&&(!Number.isFinite(+f[F])||f[F].match(/^0[0-9]/))&&(g[F].isNumeric=!1)}}if(!i||i(f)){u.push(f);for(let b of h)g[b].counter++}}}for(let y in g){let d=g[y];if(d.isNumeric){d.minValue=1/0,d.maxValue=-1/0;for(let f of u)if(f[y]){let h=Number.parseFloat(f[y]);f[y]=h,h>d.maxValue&&(d.maxValue=h),h<d.minValue&&(d.minValue=h)}}}for(let y in g)g[y].always=g[y].counter===u.length;return{time:Date.now()-p,molecules:u,labels:Object.keys(g),statistics:Object.values(g)}}function Ot(e){let t={};for(let{key:r,value:n}of e)t[r]=n;return t}function Ce(e){let t=[];e=e.replaceAll(/,([0-9])/g,\":$1\");for(let r of e.split(\":\")){let n,i=\"\",o=r.indexOf(\"(\");o===-1?(n=Number(r),t.push({coupling:n})):(n=Number(r.slice(0,o)),i=r.slice(o+1,-1),t.push({coupling:n,label:i}))}return t}function Xn(e){let t={};e=e.replaceAll(\" \",\"\"),e=e.replaceAll(/[l=] /g,\"\"),e=e.replaceAll(/,(\\w=)/g,\":$1\");let r=e.split(\":\");for(let[n,i]of r.entries()){let o=i.toLowerCase(),s=o.replace(/^.*=/,\"\"),c=o.replace(/[=].*/,\"\");Number.parseFloat(c)&&n===0?t.delta=s:t[Ma(c)]=Oa(s,c)}return t}function Ma(e){switch(e){case\"j\":return\"jCoupling\";case\"s\":return\"multiplicity\";case\"l\":return\"assignment\";case\"n\":return\"nbAtoms\";case\"e\":case\"i\":return\"integration\";default:return\"\"}}function Oa(e,t){switch(t){case\"l\":return Ta(e);case\"j\":return Ce(e);default:return e}}function Ta(e){return e.replaceAll(/\\s*/g,\"\").split(\",\")}var Ea=[\"y\",\"x\"];function Vn(e){e=e.replaceAll(\" \",\"\"),e=e.replaceAll(/[l=] /g,\"\"),e=e.replaceAll(/,(\\w+=)/g,\":$1\");let t=e.split(\":\"),r=Ra(t[0]);for(let n=1;n<t.length;n++){let{value:i,key:o}=Hn(t[n]);r[wa(o)]=ka(i,o)}return r}function Ra(e){let{value:t}=Hn(e),r={delta:{}},n=t.split(\"/\");for(let i=0;i<n.length;i++){let o=n[i].replaceAll(/[(|)]/g,\"\").split(\",\");r.delta[Ea[i]]=Array.isArray(o)?o:[o]}return r}function Hn(e){let t=e.toLowerCase();return{value:t.replace(/^.*=/,\"\"),key:t.replace(/[=].*/,\"\")}}function ka(e,t){switch(t){case\"ja\":case\"j1\":case\"j2\":return Ce(e);default:return e}}function wa(e){switch(e){case\"ja\":return\"activeCoupling\";case\"j1\":return\"f1Coupling\";case\"j2\":return\"f2Coupling\";case\"i\":return\"intensity\";case\"s\":return\"volume\";case\"w1\":return\"f1Width\";case\"w2\":return\"f2Width\";default:return e}}function Yn(e,t){let r=Ca(t),n=e.match(/[=]/g);return!n&&!e.match(\",\")?t.toLowerCase().match(/2d/)?r(e):e:t.toLowerCase().match(/[1|2]d/)&&n&&!e.match(\",\")?Zn(e):r(e)}function Ca(e){let t=e.toLowerCase();switch(t.match(/1d/)&&(t=\"1d\"),t.match(/2d/)&&(t=\"2d\"),t){case\"id\":return Zn;case\"1d\":return Xn;case\"2d\":return Vn;case\"assignment\":case\"signals\":return Gn;case\"j\":return Gn;default:return r=>r}}function Zn(e){let t=e.replace(/^.*=/,\"\"),r=e.replace(/[=].*/,\"\").toLowerCase();return Ot([{key:r,value:t}])}function Gn(e){let t=e.replaceAll(\" \",\"\").split(\",\");return Ot([{key:\"label\",value:t[0].toLowerCase()},{key:\"shift\",value:t.slice(1,2)},{key:\"atoms\",value:t.slice(2)}])}async function Tt(e){let t=[];for(let r of e.files){let n=r.relativePath.split(\"/\");if(/^[^.].+sdf|nmredata$/.exec(r.name)){let i=await r.text();if(!i.match(\"NMREDATA\"))continue;let o=we(i,{mixedEOL:!0}),s=n.slice(0,-1).join(\"/\");t.push({...o,filename:r.name,filePath:r.relativePath,root:s!==\"\"?`${s}/`:\"\"})}}return t}function Qn(e){let{sdf:t,fileCollection:r}=e,{molecule:n}=e,i=Et(t);n??=Kn.fromMolfile(i.molecules[0].molfile),n.addImplicitHydrogens();let o=Kn.fromMolfileWithAtomMap(n.toMolfile()),s=va(i);return Jn(s,{moleculeAndMap:o,root:i.root,fileCollection:r})}function va(e){let t=Et(e),r={name:t.filename},n=La(t);for(let i of Object.keys(n)){r[i]||(r[i]={data:[]});let o=r[i],s=n[i].split(`\n`);for(let c of s){let a=c.replaceAll(/;.*/g,\"\").replaceAll(\"\\r\",\"\"),m=c.match(\";\")?c.replaceAll(/.*;+(.*)/g,\"$1\"):\"\";if(a.length===0){o.headComment||(o.headComment=[]),o.headComment.push(m);continue}let l=Yn(a,i);o.data.push({comment:m,value:l})}}return r}function La(e){let t=Et(e),r=Number.parseFloat(t.molecules[0].NMREDATA_VERSION),n={};for(let i of t.labels)if(i.toLowerCase().match(\"nmredata\")){if(!t.molecules[0]?.[i])continue;let o=i.replace(/NMREDATA_/,\"\"),s=String(t.molecules[0][i]);s=r>1?s.replaceAll(/\\n*/g,\"\"):s,s=s.replaceAll(/\\\\\\n*/g,`\n`),n[o]=s}return n}function Et(e,t={}){if(typeof e==\"string\"){let{filename:r=\"nmredata.sdf\",root:n=\"\"}=t;return{...we(e,{mixedEOL:!0}),root:n,filename:r,filePath:r}}return e}import{generateID as ri}from\"@zakodium/nmrium-core\";import{generateID as ei}from\"@zakodium/nmrium-core\";import{xyIntegration as za}from\"ml-spectra-processing\";function ti(e,t){let{x:r,re:n}=t.data;return e.map(i=>{let o=za({x:r,y:n},{from:i.from,to:i.to}),s=[];for(let c of i.signals||[]){let{kind:a=null,id:m,js:l=[],diaIDs:u=[],...g}=c;s.push({...g,kind:a||\"signal\",js:l,id:m||ei(),diaIDs:u})}return{...i,id:i.id||ei(),absolute:o,signals:s}})}function ni(e,t){let r=[],{baseFrequency:n=500}=t.info;for(let i of e){let{delta:o,diaIDs:s=[],multiplicity:c=\"\",integration:a=0,jCoupling:m=[]}=i,l=_a({delta:o,js:m,frequency:n});if(m.length===c.length){m.sort((u,g)=>g.coupling-u.coupling);for(let u=0;u<m.length;u++)m[u].multiplicity=c[u]}r.push({id:ri(),...l,integration:a,signals:[{id:ri(),js:m,delta:o,diaIDs:s,multiplicity:c}]})}t.ranges.values=ti(ie(r),t)}function _a(e){let{delta:t,js:r=[],frequency:n}=e,i=.5;for(let o of r)i+=o.coupling;return i/=n,{from:t-i,to:t+i}}import{generateID as ii}from\"@zakodium/nmrium-core\";var qa=[\"x\",\"y\"],ja={x:0,y:0};function oi(e,t,r={}){let n=[],{shift:i=ja}=r,{originFrequency:o=[400,400]}=t.info,s={x:o[0],y:o[1]};for(let c of e){let a={x:{},y:{},id:ii(),kind:\"signal\"},m={id:ii(),kind:\"signal\",peaks:[]},l={x:10,y:10};for(let u of qa){let{coupling:g=[],delta:p,diaIDs:y=[]}=c[u];for(let d of g)l[u]+=d.coupling;if(c.activeCoupling){let{activeCoupling:d=[]}=c;for(let f of d)l[u]+=f.coupling}l[u]/=s[u],a[u]={from:p-l[u],to:p+l[u]},m[u]={delta:p,diaIDs:y,originalDelta:p-i[u]}}n.push({...a,signals:[m]})}t.zones.values=n}function si(e){return Ua(e.data)}function Ua(e){return\"rr\"in e||!(\"x\"in e)&&\"re\"in e}async function ai(e,t,r={}){let n={spectra:[],molecules:[]},i=await Ba(e,t,r);if(i.spectra.length>0){let{spectra:o,molecules:s,usedFiles:c}=i;n.spectra.push(...o),n.molecules.push(...s);let a=e.files.length;for(let m=a-1;m>=0;m--){let l=e.files[m].relativePath;!l.match(/acqu.*/s)&&c.includes(l)&&e.files.splice(m,1)}}return n}async function Ba(e,t,r){let n=[],i=await Tt(e),o={spectra:[],molecules:[]};if(i.length===0)return{...o,usedFiles:n};let s=[];for(let a of i){let m=Qn({sdf:a,fileCollection:e}).then(l=>{let{spectra:u,molecules:g=[]}=l;return n.push(a.root+a.filename),o.molecules.push(...g),$a(u,t,r)});s.push(m)}let c=await Promise.allSettled(s);for(let a of c)a.status===\"fulfilled\"?(o.spectra.push(...a.value.spectra),n.push(...a.value.usedFiles)):a.reason&&r?.logger?.error(a.reason);return{...o,usedFiles:n}}async function $a(e,t,r){let n=[],i=[],o={spectra:[],molecules:[]};for(let s of e){let c=Wa(s.source,t,r).then(a=>{let{spectra:m,files:l}=a;n.push(...l);for(let u of m)si(u)?oi(s.signals,u):ni(s.signals,u);o.spectra.push(...m)});i.push(c)}return await Promise.allSettled(i),{...o,usedFiles:n}}async function Wa(e,t,r={}){let{file:n,jcampURL:i}=e,{converter:o,logger:s}=r;if(i){let m=await Ja(i,t,o?.jcamp);if(m)return{...m,files:[]}}let c=[];for(let m of n||[])c.push(Xa(m,r).then(l=>({...l,files:m.fileCollection.files.map(u=>u.relativePath)})));let a=await Promise.allSettled(c);for(let m of a){if(m.status===\"fulfilled\")return m.value;m.reason&&s?.error(m.reason)}return{spectra:[],molecules:[],files:[]}}async function Ja(e,t,r={}){let n={entries:[{relativePath:e}]},i={name:ne(e||\"\"),xy:!0,noContours:!0,...r},{state:{data:o}}=await t.readFromWebSource(n,i);return o}async function Xa(e,t={}){let{converter:r,selector:n,logger:i}=t;switch(e.type){case\"jcamp\":return Ee(e.fileCollection.files[0],{name:e?.fileCollection.files[0].name||\"\",converter:r?.jcamp,selector:n?.jcamp,logger:i});case\"brukerFiles\":return Oe(e.fileCollection,{converter:r?.bruker,selector:n});default:throw new Error(\"There is not a supported source\")}}function Rt(e){return Va({id:\"@zakodium/nmrium-core-plugins#NMReDATALoaderPlugin\",version:1,shouldSerialize:!0,migrations:[],onReadProcess:{onFiles(t,r){return ai(t,e,r)}}})}import{defineNMRiumPlugin as Ya}from\"@zakodium/nmrium-core\";import{parse as Ha}from\"sdf-parser\";function ci(e,t={}){let{mixedEOL:r}=t,{molecules:n}=Ha(e,{mixedEOL:r}),i=[];for(let[o,{molfile:s}]of n.entries()){let c=re(s).entries();for(let[a,m]of c)m.selector={sdfIndex:o,molfileIndex:a},i.push(m)}return i}async function mi(e,t={}){let{logger:r,mixedEOL:n,selector:i}=t;if(i?.files&&!i.files.includes(e.relativePath))return{molecules:[],spectra:[]};let o=await e.text(),s=ci(o,{mixedEOL:n,selector:i});for(let a of s)a.selector={...a.selector,files:[e.relativePath]};let c={molecules:Ga(s,i),spectra:[]};return r&&r[s.length>0?\"info\":\"debug\"](`Loaded ${c.molecules.length} molecules from the ${e.name} file`),c}function Ga(e,t){if(!t)return e;let{sdfIndex:r,molfileIndex:n}=t;return e.filter(i=>(typeof r==\"number\"?r===i.selector?.sdfIndex:!0)&&(typeof n==\"number\"?n===i.selector?.molfileIndex:!0))}function Za(e,t={}){let{logger:r,selector:n}=t;return r?.debug(`Reading sdf file: ${e.name}`),mi(e,{logger:r,selector:n})}function kt(){return Ya({id:\"@zakodium/nmrium-core-plugins#SDFLoaderPlugin\",version:1,shouldSerialize:!0,migrations:[],onReadProcess:{supportedExtensions:[\"sdf\"],onFile:Za}})}import{defineNMRiumPlugin as Qa}from\"@zakodium/nmrium-core\";import{Molecule as Ka}from\"openchemlib\";function li(e,t){let r=t?.smilesIndex,n=[],i=e.split(/\\r?\\n/).filter(Boolean);for(let[o,s]of i.entries()){if(typeof r==\"number\"&&r!==o)continue;let a=Ka.fromSmiles(s).toMolfile();n.push({molfile:a,selector:{smilesIndex:o}})}return n}async function pi(e,t={}){let{logger:r,selector:n}=t;if(n?.files&&!n.files.includes(e.relativePath))return{molecules:[],spectra:[]};let i=await e.text(),o=li(i,n);for(let c of o)c.selector={...c.selector,files:[e.relativePath]};let s={molecules:o,spectra:[]};return r?.info(`Found ${o.length} molecules from the ${e.name} file`),s}function wt(){return Qa({id:\"@zakodium/nmrium-core-plugins#SMILESLoaderPlugin\",version:1,shouldSerialize:!0,migrations:[],onReadProcess:{supportedExtensions:[\"smi\",\"smiles\"],onFile:pi}})}import{defineNMRiumPlugin as ac}from\"@zakodium/nmrium-core\";import{formatSpectra as ic}from\"@zakodium/nmrium-core\";import{createFromToArray as tc}from\"ml-spectra-processing/utils\";function ui(e){e.setLittleEndian();let t=e.offset,r=96;e.offset=r/8;let n=e.readInt32(),i=[2,4],o=[2**25,2**26];if(!i.includes(n))if(o.includes(n))e.setBigEndian();else throw new Error(`Unexpected value of eBytes (${n}). Expect one of\n                    ${i.concat(o).join(\",\")}`);return e.offset=t,e.isBigEndian()?\"BE\":\"LE\"}var ve=class{storesData;isSpectrum;isInt32;isFloat32;isComplex;isHypercomplex;isBaselineCorrected;constructor(t){if(this.storesData=(t&1)!==0,!this.storesData)throw new Error(\"No data stored in file. Exiting...\");if(this.isSpectrum=(t&2)!==0,this.isSpectrum)throw new Error(\"Script only analyzes FIDs. Found spectrum.\");if(this.isInt32=(t&4)!==0,this.isFloat32=(t&8)!==0,this.isComplex=(t&16)!==0,this.isHypercomplex=(t&32)!==0,this.isHypercomplex)throw new Error(\"Script does not analyze hypercomplex data (yet).\");this.isBaselineCorrected=(t&64)!==0}},Le=class extends ve{moreBlocks;npComplex;nfComplex;niComplex;ni2Complex;constructor(t){super(t),this.moreBlocks=(t&128)!==0,this.npComplex=(t&256)!==0,this.nfComplex=(t&512)!==0,this.niComplex=(t&1024)!==0,this.ni2Complex=(t&2048)!==0}},ze=class extends ve{isAcqPar;isSecondFT;isTransformed;is3D;isNp;isNf;isNi;isNi2;constructor(t){super(t),this.isAcqPar=(t&128)!==0,this.isSecondFT=(t&256)!==0,this.isTransformed=(t&512)!==0,this.is3D=(t&1024)!==0,this.isNp=(t&2048)!==0,this.isNf=(t&4096)!==0,this.isNi=(t&8192)!==0,this.isNi2=(t&16384)!==0}},_e=class{lines;length;index;eol;constructor(t,r={}){let{eol:n=`\n`,index:i=0}=r;this.eol=n,this.index=i,this.lines=t.split(this.eol),this.length=this.lines.length}readLine(){if(this.index>=this.length)throw new Error(`Last index is ${this.length-1}. Current index ${this.index}.`);return this.lines[this.index++]}readLines(t){let r=this.lines.slice(this.index,this.index+t);return this.index+=t,r}},qe=class{softwareVersion;typeOfFile;vendorIdStatus;constructor(t){this.softwareVersion=t&2**6-1,this.typeOfFile={fidFile:(t&64)!==0,dataFile:(t&128)!==0,data3DFile:(t&256)!==0},this.vendorIdStatus={isVar:(t&0)!==0,isQOne:(t&2048)!==0,isMakeFid:(t&4096)!==0,isJeol:(t&8192)!==0,isBru:(t&16384)!==0,isMag:(t&6144)!==0,isOx:(t&10240)!==0,ipVers:(t&63)!==0,ipFileId:(t&1984)!==0,ipVendorId:(t&30720)!==0}}},je=class{npPhMode;npAvMode;npPwrMode;nfPhMode;nfAvMode;nfPwrMode;niPhMode;niAvMode;niPwrMode;ni2PhMode;ni2AvMode;ni2PwrMode;niPaMode;ni2PaMode;constructor(t){this.npPhMode=(t&1)!==0,this.npAvMode=(t&2)!==0,this.npPwrMode=(t&4)!==0,this.nfPhMode=(t&16)!==0,this.nfAvMode=(t&32)!==0,this.nfPwrMode=(t&64)!==0,this.niPhMode=(t&256)!==0,this.niAvMode=(t&512)!==0,this.niPwrMode=(t&1024)!==0,this.ni2PhMode=(t&8)!==0,this.ni2AvMode=(t&256)!==0,this.ni2PwrMode=(t&8192)!==0,this.niPaMode=(t&16384)!==0,this.ni2PaMode=(t&32768)!==0}};var Ue=class{scale;status;index;mode;ctCount;lpVal;rpVal;lvl;tlt;data;constructor(t,r,n){n&&(t.offset=n),this.scale=t.readInt16(),this.status=new Le(t.readInt16()),this.index=t.readInt16(),this.mode=new je(t.readInt16()),this.ctCount=t.readInt32(),this.lpVal=t.readFloat32(),this.rpVal=t.readFloat32(),this.lvl=t.readFloat32(),this.tlt=t.readFloat32(),this.data=ec(t,r)}};function ec(e,t){let{np:r,nTraces:n,status:{isFloat32:i,isInt32:o}}=t;return i?Ct(e,n,r,\"readFloat32\"):o?Ct(e,n,r,\"readInt32\"):Ct(e,n,r,\"readInt16\")}function Ct(e,t,r,n){let i=[],o;n===\"readFloat32\"?o={re:new Float32Array(r/2),im:new Float32Array(r/2)}:n===\"readInt32\"?o={re:new Int32Array(r/2),im:new Int32Array(r/2)}:o={re:new Int16Array(r/2),im:new Int16Array(r/2)};for(let s=0;s<t;s++){for(let c=0;c<r;c+=2)o.re[c>>>1]=e[n](),o.im[c>>>1]=e[n]();i[s]=o}return i}var Be=class{nBlocks;nTraces;np;eBytes;tBytes;bBytes;version;status;nBlockHeaders;constructor(t){t.offset=0,this.nBlocks=t.readInt32(),this.nTraces=t.readInt32(),this.np=t.readInt32(),this.eBytes=t.readInt32(),this.tBytes=t.readInt32(),this.bBytes=t.readInt32(),this.version=new qe(t.readInt16()),this.status=new ze(t.readInt16()),this.nBlockHeaders=t.readInt32()}};var vt=class{name;subType;basicType;maxValue;minValue;stepSize;gGroup;dGroup;protection;active;intptr;constructor(t){let r=t.split(\" \");this.name=r[0],this.subType=Number.parseInt(r[1],10),this.basicType=Number.parseInt(r[2],10),this.maxValue=Number.parseFloat(r[3]),this.minValue=Number.parseFloat(r[4]),this.stepSize=Number.parseFloat(r[5]),this.gGroup=Number.parseInt(r[6],10),this.dGroup=Number.parseInt(r[7],10),this.protection=Number.parseInt(r[8],10),this.active=Number.parseInt(r[9],10),this.intptr=Number.parseInt(r[10],10)}};function fi(e){let t=[],r=new _e(e.readChars(e.length));for(;r.index<r.length-1;){let n=[],i=[],o=new vt(r.readLine()),s=r.readLine();if(o.basicType!==0){if(o.basicType===1)n=s.split(\" \").slice(1).map(l=>Number.parseFloat(l));else if(o.basicType===2){n=s.split('\"').slice(1,2);let m=Number.parseInt(s.split(\" \",1)[0],10);for(;m>1;)n.push(r.readLine().split('\"',2)[1]),m--}}let c=r.readLine(),a=Number.parseInt(c.split(\" \",1)[0],10);a!==0&&(o.basicType===1?i=c.split(\" \").slice(1):o.basicType===2&&(i=c.split('\"').filter((m,l)=>l%2===1))),t.push({...o,values:n,enumerable:a,enumerables:i})}return t}async function di(e){let t={};function r(a,m){return a.then(l=>{t[m]=l})}let n=[];for(let a of e)switch(a.name.toLowerCase()){case\"fid\":{n.push(r(a.arrayBuffer(),\"fidB\"));break}case\"procpar\":{n.push(r(a.arrayBuffer(),\"procparB\"));break}default:break}if(await Promise.all(n),!t.fidB||!t.procparB)throw new RangeError(\"fid and procpar must exist.\");let i=new C(t.fidB);ui(i);let o=new Be(i);if(o.nBlocks!==1)throw new Error(\"We currently do not support 2D varian spectra \");let s=fi(new C(t.procparB)),c;for(let a of s)if(a.name===\"at\"){c=a.values[0];break}if(typeof c!=\"number\")throw new Error(\"acquisition time parameter must exist and be a number.\");{let a=tc({from:0,to:c,length:o.np/2,distribution:\"uniform\"}),m=new Ue(i,o);return{meta:o,fid:m,procpar:s,x:a}}}import{isAnyArray as oc}from\"is-any-array\";import{xMultiply as sc}from\"ml-spectra-processing\";import{normalizeNucleus as rc}from\"nmr-processing\";function gi(e,t){let{meta:r,procpar:n}=e,i={};for(let h of n)i[h.name]=h.values;let o={},s={},{np:c,solvent:a,sfrq:m,reffrq:l,temp:u,rp:g,sw:p,rfl:y,rfp:d,tn:f}=i;x(o,\"numberOfPoints\",c&&Number(B(c))/2),x(o,\"solvent\",B(a)),x(o,\"originFrequency\",B(m)),x(o,\"baseFrequency\",B(l)),(Number.isNaN(o.originFrequency)||o.originFrequency===0)&&(o.originFrequency=400,t?.warn(\"The frequency could not be determined and was set to 400MHz\")),x(o,\"temperature\",B(u)),x(o,\"phc0\",g&&Number(g[0])),x(s,\"rfl\",y&&Number(B(y))),x(s,\"rfp\",d&&Number(B(d))),x(s,\"sw\",p&&Number(B(p)));for(let h in s){let b=s[h];Array.isArray(b)&&b.length===1&&(s[h]=b[0])}if(!(\"baseFrequency\"in o)&&\"originFrequency\"in o){let h=Number.parseFloat(o.originFrequency);if([\"sw\",\"rfl\",\"rfp\"].every(b=>b in s)){let{sw:b=1,rfl:D=1,rfp:S=1}=nc(s,[\"sw\",\"rfl\",\"rfp\"]);x(o,\"baseFrequency\",h-(b/2-D+S)/1e6)}else x(o,\"baseFrequency\",h)}x(o,\"frequencyOffset\",(o.originFrequency-o.baseFrequency)*1e6),x(o,\"spectralWidth\",p&&Number(p[0])/o.baseFrequency);for(let h in o)o[h].length===1&&(o[h]=o[h][0]);return f&&(o.nucleus=f.map(rc)),o.dimension=1,o.isFid=!r.status.isSpectrum,{info:o,meta:{...s,...yi(r),...i}}}function B(e){return e&&(Array.isArray(e)?e[0]:e)}function nc(e,t){let r={};for(let n of t){let i=e[n];i&&typeof i==\"number\"&&(r[n]=i)}return r}function yi(e){let t={};for(let r of Object.keys(e)){let n=e[r];typeof n==\"object\"&&n!==null&&n.constructor&&n.constructor!==Object?t[r]=yi(n):t[r]=n}return t}function hi(e){let t={},r=new Set(e.files.map(n=>n.relativePath));for(let n of e){let i=n.name.toLowerCase();if(i.match(/^(?:fid|procpar|text|log)$/)){if(i.match(/^(?:fid|text|log)$/)){let c=n.relativePath.replace(/(?:fid|text|log)$/,\"procpar\");if(!r.has(c))continue}let o=n.relativePath.split(\"/\"),s=o.slice(0,-1).join(\"/\");t[s]||(t[s]={name:o.at(-2),files:[]}),t[s].files.push(n)}}return Object.values(t)}async function bi(e,t={}){let{logger:r,selector:n}=t,i=hi(e);r&&r.debug(`Found ${Object.keys(i).length} varian experiments`);let o=[],s={spectra:[],molecules:[]};e:for(let a of i){let{name:m,files:l}=a;if(n?.files){let g=l;if(g.length===0)continue;let p=new Set(n.files);for(let y of g)if(!p.has(y.relativePath))continue e}let u=di(l).then(g=>{let{info:p,meta:y}=gi(g),d=g.fid.data[0],f=oc(d.im),h={data:{...d,x:g.x},meta:y,info:{isComplex:f,name:m,...p},display:{name:m}};if(p.isFid&&f){let{im:b}=h.data;sc(b,-1,{output:b})}h.selector={files:l.map(b=>b.relativePath)},s.spectra.push(h)});o.push(u)}let c=await Promise.allSettled(o);for(let a=0;a<c.length;a++){let m=c[a];if(m.status===\"rejected\"&&m.reason){let l=i[a].name;r?.warn(`Varian data: ${l}, fails with: ${m.reason}`)}}return s.spectra.length>0&&r?.info(`Loaded ${s.spectra.length}  spectra from Varian files`),ic(s)}function cc(e,t){let{logger:r}=t??{};return bi(e,{logger:r})}function Lt(){return ac({id:\"@zakodium/nmrium-core-plugins#VarianLoaderPlugin\",version:1,shouldSerialize:!0,migrations:[],onReadProcess:{onFiles:cc}})}function lc(e,t=[]){return[Rt(e),Lt(),dt(),bt(),Mt(),kt(),wt(),Nt(),ft()].concat(t)}function pc(e=[]){let t=new mc;return t.registerPlugins(lc(t,e)),t}import{getOneIfArray as Fi}from\"@zakodium/nmrium-core\";import{from1DNMRVariables as uc}from\"convert-to-jcamp\";function Di(e,t){return e.filters.find(r=>r.name===t)}function fc(e,t={}){let{onlyReal:r=!1}=t,{info:n,meta:i,data:o,filters:s}=e,{owner:c,title:a,isFid:m,spectralWidth:l,baseFrequency:u,originFrequency:g,nucleus:p,solvent:y,scaleFactor:d,frequencyOffset:f,decim:h,dspfvs:b,digitalFilter:D}=n,S=Fi(u||g),{x:P,re:F,im:A}=o,I=new Float64Array(F),N=!r&&A?new Float64Array(A):void 0,V=Di(e,\"fft\")?.enabled,q={owner:c,isFid:m,title:a,nucleus:p,solvent:y,scaleFactor:d,spectralWidth:l,frequencyOffset:f,originFrequency:g,baseFrequency:S,dataType:!m||V?\"NMR SPECTRUM\":\"NMR FID\",dataClass:!r&&A?\"NTUPLES\":\"XYDATA\"};if(m){let me=s.find(le=>le.name===\"digitalFilter\");if(me&&!V){let{value:{digitalFilterValue:le},enabled:tt}=me;if(tt){let j=Math.floor(le);I.set(F.slice(F.length-j)),I.set(F.slice(0,F.length-j),j),A&&N&&(N.set(A.slice(A.length-j)),N.set(A.slice(0,A.length-j),j))}}zt(q,\"decim\",h),zt(q,\"dspfvs\",b),zt(q,\"digitalFilter\",D)}let Qe=dc(i,xi),et={xyEncoding:\"DIFDUP\",nmrInfo:q,meta:Qe},de={x:{data:P,label:n.isFid?\"TIME\":\"FREQUENCY\",units:n.isFid?\"second\":\"HZ\",symbol:\"X\"},r:{data:I,label:`${n.isFid?\"FID\":\"SPECTRUM\"}/REAL`,units:\"ARBITRARY UNITS\",symbol:\"R\"}};return N&&(de.i={data:N,label:`${n.isFid?\"FID\":\"SPECTRUM\"}/IMAG`,units:\"ARBITRARY UNITS\",symbol:\"I\"}),uc(de,et)}function zt(e,t,r){r!==void 0&&(e[t]=Fi(r))}var xi=[\"title\",\"decim\",\"dspfvs\",\"grpdly\",\"bf1\",\"sw\",\"offset\",\".solvent\",\"owner\",\"firsty\",\"page\",\"vardim\",\"symbol\",\"symbols\",\"varform\",\"vartype\",\"datatype\",\"dataclass\",\".observefrequency\",\".observenucleus\",\"ncproc\"];function dc(e,t=xi){let r=new Set(t);return Object.fromEntries(Object.entries(e).filter(([n])=>!r.has(n.toLocaleLowerCase().replaceAll(/[\\s|_]*/g,\"\"))))}import{defineNMRiumPlugin as em}from\"@zakodium/nmrium-core\";import{castSpectrum1D as gc,defineProcessingOperator as yc,isSpectrum1D as hc}from\"@zakodium/nmrium-core\";import{Filters1D as _t}from\"nmr-processing\";import{z as O}from\"zod\";var ae=O.coerce.number,bc=O.object({exponential:O.object({apply:O.boolean(),options:O.object({lineBroadening:ae()})}).optional(),sineBell:O.object({apply:O.boolean(),options:O.object({offset:ae()})}).optional(),sineSquare:O.object({apply:O.boolean(),options:O.object({offset:ae()})}).optional(),traf:O.object({apply:O.boolean(),options:O.object({lineBroadening:ae()})}).optional(),gaussian:O.object({apply:O.boolean(),options:O.object({lineBroadening:ae(),lineBroadeningCenter:ae().min(0).max(1)})}).optional()}),$e=yc({id:\"@zakodium/nmrium-core-plugins#apodization1D\",domainUpdateRules:_t.apodization.domainUpdateRules,schemaSettings:bc,getDefaultSettings:()=>({exponential:{apply:!0,options:{lineBroadening:.3}}}),isApplicable(e){return hc(e)?_t.apodization.isApplicable(e):!1},apply(e,t){gc(e),_t.apodization.apply(e,t)}});import{castSpectrum1D as Si,defineProcessingOperator as Dc,isSpectrum1D as Fc}from\"@zakodium/nmrium-core\";import{Filters1D as qt}from\"nmr-processing\";import{z as We}from\"zod\";var xc=We.object({nbPoints:We.number().optional(),nbInputs:We.number().optional(),nbCoefficients:We.number().optional()}),Je=Dc({id:\"@zakodium/nmrium-core-plugins#backwardLinearPrediction1D\",schemaSettings:xc,getDefaultSettings:e=>(Si(e),{nbInputs:e.data.re.length/2}),domainUpdateRules:qt.backwardLinearPrediction.domainUpdateRules,isApplicable(e){return Fc(e)?qt.backwardLinearPrediction.isApplicable(e):!1},apply(e,t){return Si(e),qt.backwardLinearPrediction.apply(e,t)}});import{castSpectrum1D as Sc,defineProcessingOperator as Pc,isSpectrum1D as Ac}from\"@zakodium/nmrium-core\";function X(e){if(e===void 0)throw new Error(\"unexpected undefined value\")}import{Filters1D as jt}from\"nmr-processing\";import{z as Ic}from\"zod\";var Nc=Ic.number().positive(),Xe=Pc({id:\"@zakodium/nmrium-core-plugins#digitalFilter1D\",schemaOptions:Nc,isApplicable(e){return Ac(e)?jt.digitalFilter.isApplicable(e):!1},apply(e,t){Sc(e),jt.digitalFilter.apply(e,{digitalFilterValue:t})},computeOptions:e=>{let t=e.info.digitalFilter;if(X(t),t<=0)throw new Error(\"digitalFilter must be positive\");return t},domainUpdateRules:jt.digitalFilter.domainUpdateRules});import{castSpectrum1D as Mc,defineProcessingOperator as Oc,isSpectrum1D as Tc}from\"@zakodium/nmrium-core\";import{Filters1D as Ut}from\"nmr-processing\";var Ve=Oc({id:\"@zakodium/nmrium-core-plugins#fft1D\",domainUpdateRules:Ut.fft.domainUpdateRules,isApplicable(e){return Tc(e)?Ut.fft.isApplicable(e):!1},apply(e){return Mc(e),Ut.fft.apply(e,{})}});import{castSpectrum1D as He,defineProcessingOperator as Ec,isSpectrum1D as Rc}from\"@zakodium/nmrium-core\";import{Filters1D as Bt,autoPhaseCorrection as Pi}from\"nmr-processing\";import{match as kc}from\"ts-pattern\";import{z as R}from\"zod\";var fe=R.coerce.number,Ge=R.object({pivotIndex:fe().optional()}),wc=R.object({...Ge.shape,mode:R.literal(\"absolute\")}),Cc=R.object({...Ge.shape,mode:R.literal(\"manual\"),ph0:fe(),ph1:fe()}),vc=R.object({...Ge.shape,mode:R.literal(\"automatic-compute\")}),Lc=R.object({...Ge.shape,mode:R.literal(\"automatic-info\")}),zc=R.discriminatedUnion(\"mode\",[wc,Cc,vc,Lc]),_c=R.object({absolute:R.boolean().optional(),ph0:fe().optional(),ph1:fe().optional()}),Ye=Ec({id:\"@zakodium/nmrium-core-plugins#phaseCorrection1D\",schemaSettings:zc,schemaOptions:_c,getDefaultSettings:e=>{He(e);let{phc0:t=0,phc1:r=0}=e.info;return t===0&&r===0?{mode:\"automatic-compute\"}:{mode:\"automatic-info\"}},domainUpdateRules:Bt.phaseCorrection.domainUpdateRules,isApplicable(e){return Rc(e)?Bt.phaseCorrection.isApplicable(e):!1},apply(e,t){return He(e),Bt.phaseCorrection.apply(e,t)},computeOptions(e,t){return kc(t).with({mode:\"manual\"},({ph0:r,ph1:n})=>({ph0:r,ph1:n})).with({mode:\"absolute\"},()=>({absolute:!0})).with({mode:\"automatic-compute\"},()=>{He(e);let r=Pi(e);r.ph0===0&&r.ph1===0&&(r=Pi(e,{magnitudeMode:!0}));let{ph0:n,ph1:i}=r;return{ph0:n,ph1:i}}).with({mode:\"automatic-info\"},()=>{He(e);let{phc0:r,phc1:n}=e.info;return X(r),X(n),{ph0:r,ph1:n}}).exhaustive()}});import{castSpectrum1D as qc,defineProcessingOperator as jc,isSpectrum1D as Uc}from\"@zakodium/nmrium-core\";import{Filters1D as $t}from\"nmr-processing\";import{z as Bc}from\"zod\";var $c=Bc.coerce.number(),Ai=jc({id:\"@zakodium/nmrium-core-plugins#shiftX1D\",schemaSettings:$c,getDefaultSettings:()=>0,domainUpdateRules:$t.shiftX.domainUpdateRules,isApplicable(e){return Uc(e)?$t.shiftX.isApplicable(e):!1},apply(e,t){return qc(e),$t.shiftX.apply(e,{shift:t})}});import{assertSpectrum1D as Wc,castSpectrum1D as Jc,defineProcessingOperator as Xc}from\"@zakodium/nmrium-core\";import{Filters1D as Wt}from\"nmr-processing\";import{z as Ii}from\"zod\";var Vc=Ii.coerce.number,ce=Vc().optional(),Hc=Ii.object({leftPercentage:ce,rightPercentage:ce,leftValue:ce,rightValue:ce,leftNbPoints:ce,rightNbPoints:ce}),Ze=Xc({id:\"@zakodium/nmrium-core-plugins#trim1D\",domainUpdateRules:Wt.trim.domainUpdateRules,schemaSettings:Hc,getDefaultSettings:()=>({leftPercentage:10,rightPercentage:10}),isApplicable(e){return Wc(e),Wt.trim.isApplicable(e)},apply(e,t){Jc(e),Wt.trim.apply(e,t)}});import{castSpectrum1D as Ni,defineProcessingOperator as Gc,isSpectrum1D as Yc}from\"@zakodium/nmrium-core\";import{nextPowerOfTwo as Zc}from\"ml-spectra-processing\";import{Filters1D as Jt}from\"nmr-processing\";import{z as Kc}from\"zod\";var Qc=Kc.number(),Ke=Gc({id:\"@zakodium/nmrium-core-plugins#zeroFilling1D\",schemaSettings:Qc,getDefaultSettings:e=>(Ni(e),Zc(e.data.x.length)*2),domainUpdateRules:Jt.zeroFilling.domainUpdateRules,isApplicable(e){return Yc(e)?Jt.zeroFilling.isApplicable(e):!1},apply(e,t){return Ni(e),Jt.zeroFilling.apply(e,{nbPoints:t})}});var Mi=[$e,Je,Xe,Ve,Ye,Ai,Ze,Ke];function tm(){return em({id:\"@zakodium/nmrium-core-plugins#Spectrum1DProcessingsPlugin\",version:1,shouldSerialize:!0,migrations:[],operators:Mi})}import{defineNMRiumPlugin as am}from\"@zakodium/nmrium-core\";import{castSpectrum2D as rm,defineProcessingOperator as nm,isSpectrum2D as im}from\"@zakodium/nmrium-core\";import{Filters2D as Xt}from\"nmr-processing\";import{z as om}from\"zod\";var sm=om.number().positive(),Oi=nm({id:\"@zakodium/nmrium-core-plugins#digitalFilter2D\",schemaOptions:sm,computeOptions:e=>{let t=e.info.digitalFilter;if(X(t),t<=0)throw new Error(\"digitalFilter must be positive\");return t},isApplicable(e){return im(e)?Xt.digitalFilter2D.isApplicable(e):!1},apply(e,t){rm(e),Xt.digitalFilter2D.apply(e,{digitalFilterValue:t})},domainUpdateRules:Xt.digitalFilter2D.domainUpdateRules});var Ti=[Oi];function cm(){return am({id:\"@zakodium/nmrium-core-plugins#Spectrum2DProcessingsPlugin\",version:1,shouldSerialize:!0,migrations:[],operators:Ti})}import{defineNMRiumPlugin as um}from\"@zakodium/nmrium-core\";import{generateID as mm}from\"@zakodium/nmrium-core\";import{Pattern as lm,match as Ei}from\"ts-pattern\";function Ri(e){let t=e.data?.spectra;if(t)for(let r of t)pm(r)}function pm(e){e.processings||(e.processings=e.filters.flatMap(t=>{let r=t.enabled,n=t.id??mm();return Ei(t).returnType().with({name:\"apodization\"},i=>({uid:n,operatorId:\"@zakodium/nmrium-core-plugins#apodization1D\",enabled:r,settings:i.value,options:i.value,error:i.error})).with({name:\"backwardLinearPrediction\"},i=>({uid:n,operatorId:\"@zakodium/nmrium-core-plugins#backwardLinearPrediction1D\",enabled:r,settings:i.value,options:i.value,error:i.error})).with({name:\"digitalFilter\"},i=>({uid:n,operatorId:\"@zakodium/nmrium-core-plugins#digitalFilter1D\",enabled:r,settings:null,options:i.value.digitalFilterValue,error:i.error})).with({name:\"fft\"},i=>({uid:n,operatorId:\"@zakodium/nmrium-core-plugins#fft1D\",enabled:r,settings:null,options:null,error:i.error})).with({name:\"phaseCorrection\"},i=>({uid:n,operatorId:\"@zakodium/nmrium-core-plugins#phaseCorrection1D\",enabled:r,settings:Ei(i.value).returnType().with({absolute:!0},()=>({mode:\"absolute\"})).with(lm.when(o=>\"ph0\"in o&&\"ph1\"in o),({ph0:o,ph1:s})=>({mode:\"manual\",ph0:o??0,ph1:s??0})).otherwise(()=>({mode:\"automatic-compute\"})),options:i.value,error:i.error})).with({name:\"shiftX\"},i=>({uid:n,operatorId:\"@zakodium/nmrium-core-plugins#shiftX1D\",enabled:r,settings:i.value.shift,options:i.value.shift,error:i.error})).with({name:\"zeroFilling\"},i=>({uid:n,operatorId:\"@zakodium/nmrium-core-plugins#zeroFilling1D\",enabled:r,settings:i.value.nbPoints,options:i.value.nbPoints,error:i.error})).with({name:\"digitalFilter2D\"},i=>{let o=i.value.digitalFilterValue??0;return{uid:n,operatorId:\"@zakodium/nmrium-core-plugins#digitalFilter2D\",enabled:r,settings:null,options:o,error:i.error}}).with({name:\"trim\"},i=>{let o=i.value,s={...o};return{uid:n,operatorId:\"@zakodium/nmrium-core-plugins#trim1D\",enabled:r,settings:o,options:s,error:i.error}}).otherwise(()=>[])}),e.filters=[])}function fm(){return um({id:\"@zakodium/nmrium-core-plugins#FiltersToProcessingsMigratorPlugin\",version:1,shouldSerialize:!1,migrations:[],onReadProcess:{onProcessing:Ri}})}import{defineNMRiumPlugin as Dm}from\"@zakodium/nmrium-core\";import{generateID as dm,isSpectrum1D as gm,isSpectrum2D as ym}from\"@zakodium/nmrium-core\";function wi(e,t){let r=e.data?.spectra;if(r)for(let n of r)n.info.isFid&&(gm(n)?hm(n,t):ym(n)&&bm(n,t))}var Vt={\"@zakodium/nmrium-core-plugins#digitalFilter1D\":0,\"@zakodium/nmrium-core-plugins#backwardLinearPrediction1D\":1,\"@zakodium/nmrium-core-plugins#apodization1D\":2,\"@zakodium/nmrium-core-plugins#zeroFilling1D\":3,\"@zakodium/nmrium-core-plugins#fft1D\":4,\"@zakodium/nmrium-core-plugins#shiftX1D\":5,\"@zakodium/nmrium-core-plugins#phaseCorrection1D\":5,\"@zakodium/nmrium-core-plugins#trim1D\":6},ki=Object.keys(Vt).length;function hm(e,t){let{autoProcessing:r}=t;e.processings??=[];let{processings:n,info:i}=e,o=e.meta||{},s=new Set(n.map(a=>a.operatorId));function c(a){s.has(a.operatorId)||n.push({...a,uid:dm(),enabled:!0,error:void 0,options:void 0})}{let{digitalFilter:a}=i;a&&a>0&&c({operatorId:\"@zakodium/nmrium-core-plugins#digitalFilter1D\",settings:Xe.getDefaultSettings(e)})}if(r){((typeof o.fileIdentifier==\"string\"?o.fileIdentifier:void 0)?.toLowerCase().includes(\"jeol\")??!1)&&c({operatorId:\"@zakodium/nmrium-core-plugins#trim1D\",settings:Ze.getDefaultSettings(e)});{let{tdOff:a}=i;a&&Math.abs(a)>0&&c({operatorId:\"@zakodium/nmrium-core-plugins#backwardLinearPrediction1D\",settings:Je.getDefaultSettings(e)})}c({operatorId:\"@zakodium/nmrium-core-plugins#apodization1D\",settings:$e.getDefaultSettings(e)}),c({operatorId:\"@zakodium/nmrium-core-plugins#zeroFilling1D\",settings:Ke.getDefaultSettings(e)}),c({operatorId:\"@zakodium/nmrium-core-plugins#fft1D\",settings:Ve.getDefaultSettings(e)}),c({operatorId:\"@zakodium/nmrium-core-plugins#phaseCorrection1D\",settings:Ye.getDefaultSettings(e)}),n.sort((a,m)=>{let l=Vt[a.operatorId]??ki,u=Vt[m.operatorId]??ki;return l-u})}}function bm(e,t){let{autoProcessing:r}=t}function Fm(){return Dm({id:\"@zakodium/nmrium-core-plugins#AutoProcessingsPipelinePlugin\",version:1,shouldSerialize:!1,migrations:[],onReadProcess:{onProcessing:wi}})}var TD={convertTimeList:H,convertToFloatArray:L,getInfoFromMeta:Q};export{TD as __INTERNAL_UTILITIES,ft as autoPostProcessing,Fm as autoProcessingsPipeline,dt as brukerLoader,pc as default,fm as filtersToProcessingsMigrator,pc as init,bt as jcampDXLoader,Nt as jeolLoader,Mt as molfileLoader,Rt as nmreDATALoader,hn as processJCAMPDX,ci as readSDF,li as readSMILES,lc as recommended,kt as sdfLoader,wt as smilesLoader,tm as spectrum1DProcessings,fc as spectrum1DToJCAMPDX,cm as spectrum2DProcessings,Lt as varianLoader};\n","/**\n * Create an array with numbers starting from \"from\" with step \"step\" of length \"length\".\n * @param options - options.\n * @returns array of distributed numbers with step \"step\" from \"from\".\n */\nexport function createStepArray(options = {}) {\n    const { from = 0, step = 1, length = 1000 } = options;\n    const array = new Float64Array(length);\n    let index = 0;\n    while (index < length) {\n        array[index] = from + step * index;\n        index++;\n    }\n    return array;\n}\n//# sourceMappingURL=createStepArray.js.map","import { matrixCheck } from \"./matrixCheck.js\";\nimport { matrixCreateEmpty } from \"./matrixCreateEmpty.js\";\nexport function matrixTranspose(matrix, options = {}) {\n    matrixCheck(matrix);\n    const { ArrayConstructor } = options;\n    const nbRows = matrix.length;\n    const nbColumns = matrix[0].length;\n    // Create new matrix with swapped dimensions\n    const result = matrixCreateEmpty({\n        nbColumns: nbRows,\n        nbRows: nbColumns,\n        ArrayConstructor,\n    });\n    for (let i = 0; i < nbRows; i++) {\n        for (let j = 0; j < nbColumns; j++) {\n            result[j][i] = matrix[i][j];\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=matrixTranspose.js.map","import { Matrix } from 'ml-matrix';\nimport { getShortestPath } from \"./getShortestPath.js\";\n/**\n * Implementation of Jonker-Volgenant shortest augmenting path algorithm based\n * on the publication [On implementing 2D rectangular assignment algorithms](https://doi.org/10.1109/TAES.2016.140952)\n */\nexport function linearSumAssignment(\n/**\n * Cost matrix\n */\ninput, options = {}) {\n    const { maximaze = true } = options;\n    let matrix = Matrix.checkMatrix(input);\n    let didFlip = false;\n    if (matrix.columns > matrix.rows) {\n        didFlip = true;\n        matrix = matrix.transpose();\n    }\n    const nbRows = matrix.rows;\n    const nbColumns = matrix.columns;\n    const matrixDelta = maximaze ? matrix.max() : matrix.min();\n    matrix = matrix.subtract(matrixDelta);\n    if (maximaze)\n        matrix = matrix.mul(-1);\n    let rowAssignments = new Float64Array(nbRows).fill(-1);\n    let columnAssignments = new Float64Array(nbColumns).fill(-1);\n    let dualVariableForColumns = new Float64Array(nbColumns);\n    let dualVariableForRows = new Float64Array(nbRows);\n    for (let currUnAssCol = 0; currUnAssCol < nbColumns; currUnAssCol++) {\n        const currentAugmenting = getShortestPath({\n            matrix,\n            currUnAssCol,\n            dualVariableForColumns,\n            dualVariableForRows,\n            rowAssignments,\n            columnAssignments,\n        });\n        const { sink, pred } = currentAugmenting;\n        if (sink === -1) {\n            return {\n                rowAssignments,\n                columnAssignments,\n                gain: -1,\n                dualVariableForColumns,\n                dualVariableForRows,\n            };\n        }\n        dualVariableForColumns = currentAugmenting.dualVariableForColumns;\n        dualVariableForRows = currentAugmenting.dualVariableForRows;\n        let j = sink;\n        for (let i = pred[j]; true; i = pred[j]) {\n            rowAssignments[j] = i;\n            const h = columnAssignments[i];\n            columnAssignments[i] = j;\n            j = h;\n            if (i === currUnAssCol)\n                break;\n        }\n    }\n    let gain = 0;\n    for (let curCol = 0; curCol < nbColumns; curCol++) {\n        gain += matrix.get(columnAssignments[curCol], curCol);\n    }\n    gain = (maximaze ? -1 : 1) * gain + matrixDelta * nbColumns;\n    if (didFlip) {\n        [columnAssignments, rowAssignments] = [rowAssignments, columnAssignments];\n        [dualVariableForColumns, dualVariableForRows] = [\n            dualVariableForRows,\n            dualVariableForColumns,\n        ];\n    }\n    return {\n        rowAssignments,\n        columnAssignments,\n        gain,\n        dualVariableForColumns,\n        dualVariableForRows,\n    };\n}\n//# sourceMappingURL=index.js.map","/**\n * Get the shortest path between each pair of atoms in the molecule\n * @param {import('openchemlib').Molecule} molecule\n * @param {object} [options={}]\n * @param {string} [options.fromLabel='H']\n * @param {string} [options.toLabel='H']\n * @param {number} [options.maxLength=4]\n * @returns {Array<Array>} A matrix containing on each cell (i,j) the shortest path from atom i to atom j\n */\nexport function getShortestPaths(molecule, options = {}) {\n    const OCL = molecule.getOCL();\n    const { fromLabel = '', toLabel = '', maxLength = 3 } = options;\n    const fromAtomicNumber = OCL.Molecule.getAtomicNoFromLabel(fromLabel);\n    const toAtomicNumber = OCL.Molecule.getAtomicNoFromLabel(toLabel);\n    const nbAtoms = molecule.getAllAtoms();\n    const allShortestPaths = new Array(nbAtoms);\n    for (let i = 0; i < nbAtoms; i++) {\n        allShortestPaths[i] = new Array(nbAtoms);\n    }\n    for (let from = 0; from < nbAtoms; from++) {\n        allShortestPaths[from][from] = [from];\n        for (let to = from + 1; to < nbAtoms; to++) {\n            if ((fromAtomicNumber === 0 ||\n                molecule.getAtomicNo(from) === fromAtomicNumber) &&\n                (toAtomicNumber === 0 || molecule.getAtomicNo(to) === toAtomicNumber)) {\n                const path = [];\n                molecule.getPath(path, from, to, maxLength);\n                if (path.length > 0) {\n                    allShortestPaths[from][to] = path.slice();\n                    allShortestPaths[to][from] = path.toReversed();\n                }\n                else {\n                    allShortestPaths[from][to] = null;\n                    allShortestPaths[to][from] = null;\n                }\n            }\n            else {\n                allShortestPaths[from][to] = null;\n                allShortestPaths[to][from] = null;\n            }\n        }\n    }\n    return allShortestPaths;\n}\n//# sourceMappingURL=getShortestPaths.js.map","import { ensureString } from 'ensure-string';\nimport { getEntriesBoundaries } from \"./getEntriesBoundaries.js\";\nimport { getMolecule } from \"./util/getMolecule.js\";\n/**\n * Synchronously parse an SDF file into an array of molecule objects.\n * @param sdf - The SDF content as a string, `ArrayBuffer`, or `ArrayBufferView`.\n * @param options - Parsing options.\n * @returns A {@link ParseResult} containing molecules and statistics.\n * @example\n * ```ts\n * import { readFileSync } from 'node:fs';\n * import { parse } from 'sdf-parser';\n *\n * const sdf = readFileSync('compounds.sdf', 'utf8');\n * const { molecules, statistics } = parse(sdf);\n * ```\n */\nexport function parse(sdf, options = {}) {\n    options = { ...options };\n    if (options.modifiers === undefined)\n        options.modifiers = {};\n    if (options.forEach === undefined)\n        options.forEach = {};\n    if (options.dynamicTyping === undefined)\n        options.dynamicTyping = true;\n    // ensureString converts ArrayBuffer/ArrayBufferView to string\n    const sdfString = ensureString(sdf);\n    if (typeof sdfString !== 'string') {\n        throw new TypeError('Parameter \"sdf\" must be a string');\n    }\n    if (options.eol === undefined) {\n        options.eol = '\\n';\n        if (!options.mixedEOL && sdfString.slice(0, 1000).includes('\\r\\n')) {\n            options.eol = '\\r\\n';\n        }\n    }\n    let workingSdf = sdfString;\n    if (options.mixedEOL) {\n        workingSdf = workingSdf.replaceAll('\\r\\n', '\\n');\n    }\n    const eol = options.eol;\n    const modifiers = options.modifiers;\n    const forEachMap = options.forEach;\n    const dynamicTyping = options.dynamicTyping;\n    const entriesBoundaries = getEntriesBoundaries(workingSdf, `${eol}$$$$`, eol);\n    const molecules = [];\n    const labels = {};\n    const start = Date.now();\n    for (const boundary of entriesBoundaries) {\n        const sdfPart = workingSdf.slice(...boundary);\n        if (sdfPart.length < 40)\n            continue;\n        const currentLabels = [];\n        const molecule = getMolecule(sdfPart, labels, currentLabels, {\n            eol,\n            dynamicTyping,\n            modifiers,\n            forEach: forEachMap,\n            include: options.include,\n            exclude: options.exclude,\n        });\n        if (!molecule)\n            continue;\n        if (!options.filter || options.filter(molecule)) {\n            molecules.push(molecule);\n            for (const label of currentLabels) {\n                labels[label].counter++;\n            }\n        }\n    }\n    // Convert all numeric fields and compute min/max\n    for (const label in labels) {\n        const currentLabel = labels[label];\n        if (currentLabel.isNumeric) {\n            currentLabel.minValue = Infinity;\n            currentLabel.maxValue = -Infinity;\n            for (const molecule of molecules) {\n                if (molecule[label]) {\n                    const value = Number.parseFloat(molecule[label]);\n                    molecule[label] = value;\n                    if (value > (currentLabel.maxValue ?? -Infinity)) {\n                        currentLabel.maxValue = value;\n                    }\n                    if (value < (currentLabel.minValue ?? Infinity)) {\n                        currentLabel.minValue = value;\n                    }\n                }\n            }\n        }\n    }\n    for (const key in labels) {\n        labels[key].always = labels[key].counter === molecules.length;\n    }\n    const statistics = [];\n    for (const key in labels) {\n        const info = labels[key];\n        statistics.push({\n            label: key,\n            counter: info.counter,\n            isNumeric: info.isNumeric,\n            keep: info.keep,\n            minValue: info.minValue,\n            maxValue: info.maxValue,\n            always: info.always ?? false,\n        });\n    }\n    return {\n        time: Date.now() - start,\n        molecules,\n        labels: Object.keys(labels),\n        statistics,\n    };\n}\n//# sourceMappingURL=parse.js.map","/**\n * Get the [start, end] boundaries of each SDF entry in a string.\n *\n * Uses `indexOf` for fast splitting without regex overhead.\n * @param string - The full SDF string.\n * @param substring - The delimiter to search for (e.g. `'\\n$$$$'`).\n * @param eol - The end-of-line character used to skip past the delimiter line.\n * @returns An array of `[start, end]` index pairs, one per SDF entry.\n */\nexport function getEntriesBoundaries(string, substring, eol) {\n    const res = [];\n    let previous = 0;\n    let next = 0;\n    while (next !== -1) {\n        next = string.indexOf(substring, previous);\n        if (next !== -1) {\n            res.push([previous, next]);\n            const nextMatch = string.indexOf(eol, next + substring.length);\n            if (nextMatch === -1) {\n                next = -1;\n            }\n            else {\n                previous = nextMatch + eol.length;\n                next = previous;\n            }\n        }\n        else {\n            res.push([previous, string.length]);\n        }\n    }\n    return res;\n}\n//# sourceMappingURL=getEntriesBoundaries.js.map","/**\n * Select the files of one experiment out of the whole archive.\n *\n * Bruker stores an experiment in its own directory, and the reader names the\n * spectrum after that directory, so the files are the ones below it. The\n * directory can be at any depth, and a nested zip counts as one, because the\n * archive is expanded before this runs. A format that holds a whole experiment\n * in a single file is named after that file instead, without its extension.\n *\n * An archive whose parameter files sit at its very root — someone zipped the\n * contents of an `expno` rather than the directory — leaves the reader with no\n * name at all, and then every file belongs to the one experiment.\n * @param collection - Every file of the archive.\n * @param name - `info.name` of the spectrum, as the reader set it.\n * @returns The files of that experiment, or `null` when the name matches no\n *   file, or matches several and picking one would be a guess.\n */\nexport function findExperimentFiles(collection, name) {\n    if (!name)\n        return collection.files.length > 0 ? collection : null;\n    const directory = `${name}/`;\n    const inDirectory = collection.filter((file) => file.relativePath.startsWith(directory));\n    if (inDirectory.files.length > 0)\n        return inDirectory;\n    const matches = collection.files.filter((file) => withoutExtension(file.relativePath) === name);\n    const only = matches.length === 1 ? matches[0] : undefined;\n    if (!only)\n        return null;\n    return collection.filter((file) => file === only);\n}\nfunction withoutExtension(relativePath) {\n    const base = relativePath.slice(relativePath.lastIndexOf('/') + 1);\n    const dot = base.lastIndexOf('.');\n    return dot === -1 ? base : base.slice(0, dot);\n}\n//# sourceMappingURL=findExperimentFiles.js.map","/**\n * Normalise the `info` of a spectrum into the metadata of one experiment.\n *\n * The reader returns a scalar for a 1D experiment and an array for a 2D one on\n * every per-dimension value, so those are widened to arrays here and the\n * consumer never has to test which it got.\n * @param info - The `info` object of a spectrum read by the NMRium core.\n * @returns The acquisition parameters of the experiment.\n */\nexport function toExperimentMeta(info) {\n    return {\n        name: info.name,\n        experimentNumber: info.experimentNumber ?? experimentNumberOf(info.name),\n        nucleus: toArray(info.nucleus),\n        dimension: info.dimension,\n        isFid: Boolean(info.isFid),\n        solvent: info.solvent,\n        pulseSequence: info.pulseSequence,\n        experiment: info.experiment,\n        baseFrequency: toArray(info.baseFrequency),\n        originFrequency: toArray(info.originFrequency),\n        fieldStrength: info.fieldStrength,\n        numberOfScans: info.numberOfScans,\n        temperature: info.temperature,\n        date: info.date,\n        probeName: info.probeName,\n        title: info.title,\n    };\n}\nfunction toArray(value) {\n    if (value === undefined)\n        return [];\n    return Array.isArray(value) ? value : [value];\n}\n/**\n * The reader parses the `expno` out of the directory name, which it cannot do\n * when the experiment arrived as its own zip: `Number('10.zip')` is `NaN`. The\n * number is still there to be read, so take it, and only when the whole name\n * is that number.\n * @param name - `info.name` of the spectrum.\n * @returns The experiment number, or `undefined` when the name holds none.\n */\nfunction experimentNumberOf(name) {\n    if (!name)\n        return undefined;\n    const segment = name.slice(name.lastIndexOf('/') + 1);\n    const withoutExtension = segment.replace(/\\.[^.]+$/, '');\n    return /^\\d+$/.test(withoutExtension) ? Number(withoutExtension) : undefined;\n}\n//# sourceMappingURL=toExperimentMeta.js.map","import { NMRiumCore } from '@zakodium/nmrium-core';\nimport { recommended } from '@zakodium/nmrium-core-plugins';\nimport { FileCollection } from 'file-collection';\nimport { findExperimentFiles } from \"./utils/findExperimentFiles.js\";\nimport { toExperimentMeta } from \"./utils/toExperimentMeta.js\";\n/**\n * Split an archive holding several NMR experiments into one zip per\n * experiment, each with the acquisition parameters read from its own parameter\n * files.\n *\n * A Bruker archive stores every experiment in its own numbered directory\n * (`expno`) next to the others, so a single upload usually carries a whole\n * series. This returns them separated, ready to be stored or displayed one by\n * one.\n *\n * An `expno` that holds only parameter files, with no `fid` and no processed\n * data, is not an experiment and does not appear in the result: the reader\n * rejects it before this sees it. Calibration and setup directories such as\n * `98888` disappear that way.\n * @param zip - The archive: a `File`, `Blob`, `ArrayBuffer`, `Uint8Array` or a\n *   `ReadableStream`, so the same call works in the browser and in Node.js.\n * @param options - Which experiments to keep and which data to describe.\n * @returns One entry per experiment, in the order the reader found them.\n * @example\n * ```ts\n * const entries = await splitNmrZip(await file.arrayBuffer());\n * for (const { meta, zip } of entries) {\n *   console.log(meta.experimentNumber, meta.solvent, meta.pulseSequence);\n * }\n * ```\n */\nexport async function splitNmrZip(zip, options = {}) {\n    const { dataSelection = 'preferFT', keep1D = true, keep2D = true, experimentNumbers, logger, } = options;\n    const collection = await FileCollection.fromZip(zip, { logger });\n    const core = new NMRiumCore();\n    core.registerPlugins(recommended(core));\n    const { state } = await core.read(collection, {\n        logger,\n        selector: {\n            bruker: {\n                dataSelection,\n                keep1D,\n                keep2D,\n                experimentNumbers: experimentNumbers?.join(','),\n            },\n            // A composite JCAMP-DX holds the FID and the spectrum in one file, and\n            // without this both come back, pointing at that same single file. The\n            // JCAMP-DX loader reads the setting from `general`, not from `jcamp`.\n            general: { dataSelection },\n        },\n    });\n    const found = [];\n    for (const spectrum of state.data?.spectra ?? []) {\n        const meta = toExperimentMeta(spectrum.info);\n        const files = findExperimentFiles(collection, meta.name);\n        if (!files) {\n            logger?.warn(`no file matches \"${meta.name}\", experiment skipped`);\n            continue;\n        }\n        found.push({ meta, files });\n    }\n    return Promise.all(found.map(async ({ meta, files }) => ({ meta, zip: await files.toZip() })));\n}\n//# sourceMappingURL=splitNmrZip.js.map"],"names":["toString","Object","prototype","isAnyArray","value","tag","call","endsWith","includes","reimAbsolute","data","options","length","re","output","Float64Array","im","i","Math","hypot","getOutputArray","undefined","TypeError","xAbsolute","array","tmpArray","slice","xMedian","input","exact","fromIndex","toIndex","middleIndex","calcMiddle","median","quickSelect","low","high","middle","currentLow","currentHigh","swap","j","temp","floor","xCheck","minLength","Error","xFindClosestIndex","target","sorted","abs","index","diff","Number","POSITIVE_INFINITY","currentDiff","xGetFromToIndex","x","from","to","xAdd","array1","array2","isConstant","constant","array3","xApplyFunctionStr","variableLabel","fctString","fct","Function","replaceAll","toReturn","isNaN","xBinning","binSize","numberOfPoints","keepFirstAndLast","RangeError","isInteger","innerLength","innerBins","start","end","sum","k","binByNumberOfPoints","effectiveBinSize","innerBinCount","ceil","min","outputLength","CholeskyDecomposition","matrix","EigenvalueDecomposition","Matrix","MatrixTransposeView","SVD","WrapperMatrix2D","inverse","solve","absDiff","a","b","xMean","sumValue","xStandardDeviation","values","sqrt","unbiased","mean","sqrError","xVariance","xEnsureFloat64","FFT","size","this","_csize","table","Array","angle","PI","cos","sin","power","t","_width","_bitrev","shift","revShift","_out","_data","_inv","Uint8Array","Uint16Array","buffer","fft","fromComplexArray","complex","storage","res","createComplexArray","toComplexArray","completeSpectrum","spectrum","half","transform","out","_transform4","realTransform","_realTransform4","inverseTransform","outOff","step","len","bitrev","off","_singleTransform2","_singleTransform4","inv","quarterLen","limit","A","B","C","D","Ar","Ai","Br","Bi","Cr","Ci","Dr","Di","MAr","MAi","tableBr","tableBi","MBr","MBi","tableCr","tableCi","MCr","MCi","tableDr","tableDi","MDr","MDi","T0r","T0i","T1r","T1i","T2r","T2i","T3r","T3i","FAr","FAi","FCr","FCi","FBr","FBi","FDr","FDi","evenR","evenI","oddR","oddI","leftR","leftI","rightR","rightI","step2","step3","_singleRealTransform2","_singleRealTransform4","halfLen","hquarterLen","SFAr","SFAi","SFBr","SFBi","SA","SB","fftCache","maxSize","instances","Map","constructor","clear","get","set","getFFT","createNumberArray","ArrayConstructor","fill","createDoubleArray","createFromToArray","includeFrom","includeTo","distribution","div","delta","base","firstExponent","log","isPowerOfTwo","n","nextPowerOfTwo","xSubtract","calculateAdaptiveWeights","yData","baseline","weights","controlPoints","factorStd","learningRate","absResiduals","mad","threshold","rawWeights","exp","oneMinusLearningRate","weight","xHilbertTransform","forceFFT","hilbertTransformWithFFT","resampling","inClockwise","result","aSum","cSum","hilbertTransform","hilbertSignal","oldLength","ratio","currentIndex","xMaxValue","maxValue","xMinValue","minValue","xIsEquallySpaced","tolerance","maxDx","minDx","MAX_SAFE_INTEGER","absoluteDifference","xIsMonotonic","at","xMaxAbsoluteValue","xMinMaxValues","max","xMultiply","simpleNormInvMagnitude","P1","Q1","P2","Q2","P3","Q3","P4","Q4","P5","Q5","polyval","c","p","coef","calc","v","P","Q","Y","s","simpleNormInvRaw","SQRT2","val","q","g","r","sign","NaN","NEGATIVE_INFINITY","erfcinv","xNoiseSanPlot","mask","cutOffFromPositive","refine","magnitudeMode","scaleFactor","fixOffset","filter","_e","sort","reverse","prepareData","medianIndex","firstNegativeValueIndex","findIndex","e","lastPositiveValueIndex","signPositive","signNegative","createNegativeSign","skyPoint","cutOff","determineCutOff","noiseLevelPositive","calculateNoiseLevel","positive","negative","snr","sanplot","generateSanPlot","fromTo","percentiles","getPercentiles","simpleNormInvValue","cutOffDist","noiseLevel","cloneSign","cutOffSignalsIndex","cutOffSignals","considerList","inverseQuantileFn","indexMax","safeFrom","safeTo","safeStep","normalizedFrom","normalizedTo","sigmaEstimates","startQuantile","endQuantile","quantileFraction","sigma","round","isFinite","push","halfWindow","bestVariance","bestQuantileFraction","windowCenter","windowFloor","windowTop","count","absSigma","meanSigma","variance","logBaseY","key","scale","y","log10","logOfBase","maxIndex","percentile","xNoiseStandardDeviation","averageDeviations","xMedianAbsoluteDeviation","sd","xNorm","element","xNormed","algorithm","absoluteSumValue","absoluteSum","currentMaxValue","factor","sumFactor","xSum","String","xParetoNormalization","sqrtSD","xRolling","window","padding","padded","fromEnd","toEnd","xPadding","newArray","subarray","xSequentialFillFromStep","parameters","xSequentialFillFromTo","matrixCreateEmpty","nbRows","nbColumns","newMatrix","row","matrixCheck","firstLength","matrixCholeskySolver","nonZerosArray","dimension","permutationEncoded","pinv","Int32Array","mt","ar","ac","nnz","ap","ai","ax","lnz","idx","colOffset","col","adr","d","lp","parent","lnzArray","flag","pattern","bp1","apLoc","aiLoc","parentLoc","lnzLoc","flagLoc","kk","p2","ldlSymbolic","nz","lx","li","axLoc","lpLoc","liLoc","lxLoc","dLoc","yLoc","patternLoc","yi","lKi","top","p2col","ldlNumeric","perm","xLoc","bLoc","ldlPerm","ldlLsolve","ldlDsolve","ldlLTsolve","ldlPermt","matrixCuthillMckee","list","adj","visited","l","toVisit","eol","ptr","nbhd","u","matrixMinMaxZ","column","addWeights","leftHandSide","rightHandSide","nbPoints","newLeftHandSide","newRightHandSide","w","diag","next","xWhittakerSmoother","restOptions","lambda","maxIterations","getWeightsAndControlPoints","prevBaseline","baseDiag","lower","upper","main","rhs","solution","workC","workD","iteration","Infinity","solveTridiagonalFloat64","calculateDelta","whittakerByThomas","upperTriangularNonZeros","permutationEncodedArray","last","createSystemMatrix","cho","newBaseline","whittakerByCholesky","cp","dp","cprime","dprime","denom","reimPhaseCorrection","phi0","phi1","inPlace","outRe","outIm","firstAngle","alpha","beta","cosTheta","sinTheta","ii","newSinTheta","reimAutoPhaseCorrection","minRegSize","factorNoise","maxDistanceToJoin","finalPeaks","magnitudeData","ds","dk","holoborodko","peaksDs","robustBaseLineRegionsDetection","peaksSp","map","sp","detectBaselineRegions","indexMask","x0","counter","reTmp","imTmp","autoPhaseRegion","ph1","ph0","determiningGlobalValues","area","toRadians","ph0Values","sxtw","swx","sw","sxtwy","swy","detMx","inMx","weightedLinearRegression","maxDiff","MIN_SAFE_INTEGER","predictedPh0","splice","stop","maxSteps","bestAng","minArea","dAng","negArea","getNegArea","phased","sumX","change","prev","degree","zeroShift","xRotate","reimZeroFilling","totalLength","newRE","newIM","reimMatrixFFT","numRows","applyZeroShift","csize","complexArray","resultRe","resultIm","reRow","imRow","source","reimMatrixPhaseCorrection","direction","minRe","maxRe","minIm","maxIm","numColumns","xyCheck","xyMaxYPoint","current","xyEnsureGrowingX","prevX","zonesNormalize","zones","exclusions","zone","currentZone","beforeExclusionsZones","normalizedExclusions","currentExclusionIndex","results","zoneIndex","zonesWithPoints","normalizedZones","zonesWithNumberOfPoints","unitsPerPoint","reduce","previous","currentTotal","tempZone","tempZoneNumberOfPoints","zonesToXEquallySpaced","zonesWithPointsRes","xResult","zoneXValues","concat","integral","x1","slope","intercept","getSlope","y0","y1","xyEquallySpaced","xLength","variant","yResult","zoneResult","processZone","halfStep","lastStep","previousX","MAX_VALUE","previousY","nextX","nextY","frontOutsideSpectra","backOutsideSpectra","currentValue","currentPoints","equallySpacedSlot","initialOriginalStep","lastOriginalStep","sumAtMin","sumAtMax","add","equallySpacedSmooth","xyFilterX","currentZoneIndex","newX","newY","position","xyGrowingX","toReversed","xyIntegration","currentxyIntegration","xySetYValue","isArray","loop","assert","message","finalMessage","is","condition","MAX_32_BITS","MAX_16_BITS","MAX_8_BITS","LOCAL_FILE_HEADER_SIGNATURE","SPLIT_ZIP_FILE_SIGNATURE","TEMPORARY_SPLIT_ZIP_FILE_SIGNATURE","DATA_DESCRIPTOR_RECORD_SIGNATURE","DIGITAL_SIGNATURE_RECORD_SIGNATURE","CENTRAL_FILE_HEADER_SIGNATURE","END_OF_CENTRAL_DIR_SIGNATURE","ZIP64_END_OF_CENTRAL_DIR_SIGNATURE","ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE","CENTRAL_FILE_HEADER_LENGTH","END_OF_CENTRAL_DIR_LENGTH","ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH","ZIP64_END_OF_CENTRAL_DIR_LENGTH","EXTRAFIELD_TYPE_AES","EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP","EXTRAFIELD_TYPE_USDZ","EXTRAFIELD_TYPE_INFOZIP","EXTRAFIELD_TYPE_UNIX","BITFLAG_LANG_ENCODING_FLAG","BITFLAG_MASKED_LOCAL_HEADERS","FILE_ATTR_MSDOS_DIR_MASK","FILE_ATTR_UNIX_TYPE_MASK","FILE_ATTR_UNIX_TYPE_DIR","FILE_ATTR_UNIX_TYPE_SYMLINK","FILE_ATTR_UNIX_SETUID_MASK","FILE_ATTR_UNIX_SETGID_MASK","FILE_ATTR_UNIX_STICKY_MASK","VERSION_ZIP64","VERSION_MADE_BY_UNIX","DIRECTORY_SIGNATURE","HEADER_SIZE","HEADER_OFFSET_SIGNATURE","HEADER_OFFSET_COMPRESSED_SIZE","HEADER_OFFSET_UNCOMPRESSED_SIZE","MAX_DATE","Date","MIN_DATE","UNDEFINED_VALUE","INFINITY_VALUE","UNDEFINED_TYPE","FUNCTION_TYPE","OBJECT_TYPE","STRING_TYPE","BOOLEAN_TYPE","EMPTY_UINT8_ARRAY","SYMBOL_ASYNC_DISPOSE","Symbol","asyncDispose","OPTION_PASSWORD","OPTION_RAW_PASSWORD","OPTION_PASS_THROUGH","OPTION_SIGNAL","OPTION_USE_WEB_WORKERS","OPTION_USE_COMPRESSION_STREAM","OPTION_TRANSFER_STREAMS","OPTION_PREVENT_CLOSE","OPTION_ENCRYPTION_STRENGTH","OPTION_EXTENDED_TIMESTAMP","OPTION_NTFS_TIMESTAMP","OPTION_KEEP_ORDER","OPTION_LEVEL","OPTION_BUFFERED_WRITE","OPTION_CREATE_TEMP_STREAM","OPTION_DATA_DESCRIPTOR_SIGNATURE","OPTION_USE_UNICODE_FILE_NAMES","OPTION_DATA_DESCRIPTOR","OPTION_SUPPORT_ZIP64_SPLIT_FILE","OPTION_ENCODE_TEXT","OPTION_OFFSET","OPTION_USDZ","OPTION_UNIX_EXTRA_FIELD_TYPE","OPTION_LOCAL_EXTRA_FIELD","OPTION_CENTRAL_EXTRA_FIELD","OPTION_MAX_APPENDED_DATA_SIZE","OPTION_SIGN_CENTRAL_DIRECTORY","OPTION_ENTRY","TEXT_TYPE_FILENAME","TEXT_TYPE_COMMENT","STRICTNESS_STRICT","STRICTNESS_BALANCED","STRICTNESS_TOLERANT","PASS_THROUGH_COMPRESSED","checkFunctionOption","checkSignalOption","signal","addEventListener","aborted","throwIfAborted","reason","DOMException","checkPasswordOption","password","rawPassword","checkPassThroughOption","passThrough","checkInteger","errorMessage","checkIntegerOption","toNumber","trim","maxWorkers","navigator","hardwareConcurrency","DEFAULT_CONFIGURATION","workerURI","wasmURI","chunkSize","terminateWorkerTimeout","workerStarvationTimeout","workerStartupTimeout","useWebWorkers","useCompressionStream","transferStreams","CompressionStream","DecompressionStream","PROPERTY_NAME_MAX_WORKERS","PROPERTY_NAME_BASE_URI","URI_PROPERTY_NAMES","NUMBER_PROPERTY_NAMES","FUNCTION_PROPERTY_NAMES","CONFIGURABLE_PROPERTY_NAMES","config","getConfiguration","getChunkSize","normalizeChunkSize","checkConfiguration","configuration","checkedConfiguration","propertyName","propertyValue","checkPropertyValue","normalizeConfiguration","CompressionStreamZlib","DecompressionStreamZlib","normalizedConfiguration","assign","CompressionStreamFallback","DecompressionStreamFallback","setDefaultConfiguration","first","second","toExactUint8Array","byteOffset","byteLength","getDataView","DataView","isErrorObject","error","Boolean","T","T0","T1","T2","T3","T4","T5","T6","T7","Crc32","crc","append","offset","view","getInt32","Crc32Stream","TransformStream","stream","crc32","super","chunk","controller","enqueue","flush","setUint32","encodeText","TextEncoder","unescape","encodeURIComponent","charCodeAt","encode","SHA1_BLOCK_LENGTH","SHA1_DIGEST_LENGTH","SHA1_PADDING","SHA1_ZERO","SHA1_INITIAL_STATE","S_BOX","tablesInitialized","createEngine","authenticationKey","s2","multiplyByTwo","initTables","roundKeys","rounds","keyWords","total","roundConstant","word","substituteWord","expandKey","keystream","BLOCK_LENGTH","hmac","createHmac","counter0","counter1","counter2","counter3","process","decrypt","update","nextKeystream","setInt32","indexByte","encrypt","digest","s0","swapBytes","s1","s3","t0","t1","t2","t3","indexKey","sha1","state","schedule","block","blockView","lengthBytes","blockLength","compress","bits","resultView","indexWord","createSha1","innerKey","outerKey","keyByte","innerDigest","GET_RANDOM_VALUES_SUPPORTED","crypto","getRandomValues","ERR_INVALID_PASSWORD","ERR_INVALID_AUTHENTICATION_CODE","ERR_ABORT_CHECK_PASSWORD","PBKDF2_ALGORITHM","name","PBKDF2_ITERATIONS","BASE_KEY_ALGORITHM","hash","DERIVED_BITS_ALGORITHM","iterations","DERIVED_BITS_USAGE","SALT_LENGTH","KEY_LENGTH","AUTHENTICATION_CODE_LENGTH","CRYPTO_API_SUPPORTED","subtle","DERIVE_BITS_SUPPORTED","importKey","deriveBits","createDefaultEngine","AESDecryptionStream","encryptionStrength","checkPasswordOnly","checkAuthenticationCode","aesCrypto","initAesCrypto","strength","resolveReady","ready","async","preamble","passwordVerificationKey","createKeys","passwordVerification","disposeEngine","createDecryptionKeys","discarded","engine","pendingInput","originalAuthenticationCode","decryptedChunkArray","authenticationCode","invalidAuthenticationCode","setDisposingReadable","AESEncryptionStream","salt","createEncryptionKeys","encryptedChunkArray","Promise","resolve","encodePassword","reader","readable","getReader","ReadableStream","pull","done","read","close","cancel","catch","defineProperty","paddingStart","paddingEnd","inputLength","alignedLength","inputArray","expand","dispose","keyLength","compositeKey","baseKey","indexBlock","pbkdf2","deriveKey","begin","HEADER_LENGTH","ZipCryptoDecryptionStream","initZipCrypto","zipCrypto","decryptedHeader","ZipCryptoEncryptionStream","header","cryptoKeys","crcKey0","crcKey2","updateKeys","getByte","byte","key1","key0","imul","getInt8","key2","number","toCompatibleReadable","streamToBlob","contentType","blobOptions","type","Blob","Response","blob","then","chunks","pipeTo","WritableStream","write","toCompatibleWritable","writable","writer","getWriter","abort","ERR_UNSUPPORTED_COMPRESSION","registeredCodecs","codecStreams","getRegisteredCodec","compressionMethod","getCodecStreams","format","ensureCodecStreams","codecURI","has","streams","setCodecStreams","ERR_INVALID_UNCOMPRESSED_SIZE","ERR_INVALID_COMPRESSED_DATA","ERR_CODEC_OUT_OF_MEMORY","ERR_INVALID_CRC32","FORMAT_DEFLATE_RAW","FORMAT_GZIP","GZIP_HEADER_BYTES","DeflateStream","compressed","encrypted","computeCrc32","level","deflate64","inputSize","crc32Stream","encryptionStream","gzipCrc32Stream","GzipCompressionStream","getGzipCodecStream","useGzipCrc32","pipeThrough","pipeThroughBackpressured","createCodecStream","uncompressedSize","GzipToRawDeflateStream","pipeThroughCompressionStream","mapMemoryError","gzipStream","setReadable","getUint32","headerBytesLeft","trailerCandidate","droppedLength","availableLength","emitLength","emittedFromTrailer","dataView","pipeThroughGzipDecompressionStream","outputSize","sourceErrors","outputCrc32","resolvePull","trailerWritten","settled","streamController","resumePump","inputReader","outputCapacity","readSource","trailer","pump","fail","drain","mapError","mapCodecError","desiredSize","InflateStream","checkCrc32","rawBitFlag","decryptionStream","gzipCrc32","Set","GzipDecompressionStream","mapInflateStreamError","computedCrc32","formatSupportByStream","supportsFormat","StreamClass","supportByFormat","supported","supportsDeflateRaw","CodecStreamClass","CodecStreamNative","CodecStreamFallback","requiresModule","CompressionStreamNative","Stream","codecStream","transformStream","isMemoryError","code","mappedError","cause","MESSAGE_START","MESSAGE_PULL","MESSAGE_DATA","MESSAGE_CLOSE","CODEC_DEFLATE","CODEC_INFLATE","CodecStream","codec","codecType","startsWith","inputSizeStream","outputSizeStream","ChunkStream","pendingChunks","pendingLength","shiftChunk","resultOffset","firstChunk","remainingLength","concatChunks","ERR_WORKER_STARTUP_TIMEOUT","webWorkerSupported","createWorkerFailed","webWorkerBackend","initModule","supportsDeflate","NativeStream","FallbackStream","loadModule","disableWebWorker","workerData","createWorker","CodecWorker","workerOptions","onTaskFinished","streamOptions","busy","generation","ProgressWatcherStream","terminate","worker","terminateResolvers","interface","terminated","pendingTasks","forEach","Worker","createWorkerInterface","onstart","onprogress","onend","chunkOffset","callHandler","handler","run","runWorker","chunkStream","modulePromise","deflate","moduleLoaded","preventClose","preventAbort","MODULE_WORKER_OPTIONS","ERROR_EVENT_TYPE","ABORT_EVENT_TYPE","webWorkerSource","webWorkerURI","webWorkerOptions","transferStreamsSupported","structuredClone","backend","releaseWorkerStreams","releaseLock","terminateWorker","getWebWorker","url","baseURI","isModuleType","useBlobURI","resolvedURI","resolvedOptions","isFunctionURI","isDataURI","isBlobURI","URL","revokeObjectURL","event","workerAlive","clearStartupTimeout","messageId","errorValue","resolveResult","rejectResult","stale","errorData","stack","codecImportFailed","responseError","getResponseError","sendMessage","succeed","releaseWriter","onMessage","onWorkerError","startupTimeout","clearTimeout","preventDefault","workerStartupFailed","startupError","transferables","postMessage","reject","destinationFailed","destinationError","closed","abortPipe","writableSource","abortController","AbortController","aborting","onAbort","removeAbortListener","removeEventListener","watchClosedStream","streamsTransferred","setTimeout","onStartupTimeout","resultValue","closeWritable","workerFailed","reportedError","locked","runWebWorker","pool","pendingRequests","starvationTimeout","starvationDelay","indexWorker","resolveCodecURI","streamCopy","workerSupported","find","clearTerminateTimeout","armStarvationTimeout","getWorker","clearStarvationTimeout","tasks","resolveTask","getInlineWorkerOptions","onInlineTaskFinished","all","runPendingRequestsInline","terminateTimeout","onWorkerStarvation","CP437","split","decodeText","encoding","decode","isUTF8Text","some","TextDecoder","fatal","ignoreBOM","toLowerCase","stringValue","indexCharacter","decodeCP437","PROPERTY_NAME_WRITABLE","DISK_BOUNDARY","init","initialized","Reader","createReadable","dataSize","readUint8Array","Writer","writeUint8Array","blobSliceReliable","blobSliceProbe","BlobReader","sourceBlob","streamReader","streamedLength","readSize","offsetEnd","arrayBuffer","BlobWriter","blobPromise","getData","TextReader","text","TextWriter","utf8","decodeTextRemovingBOM","Uint8ArrayReader","Uint8ArrayWriter","defaultBufferSize","initSize","requiredLength","newLength","previousArray","SplitDataReader","readers","lastDiskNumber","initDiskReader","diskOffsets","diskReader","diskOffset","getDiskOffset","diskNumber","currentDiskNumber","currentReaderOffset","currentReader","currentReaderSize","chunkLength","SplitDataWriter","writerGenerator","diskSourceWriter","diskWritable","diskWriter","availableSize","endDisk","writeChunk","initStream","closeDiskWriter","closeDisk","streamWriter","GenericReader","GenericWriter","ownsWritable","addWarning","warnings","filename","warning","PROPERTY_NAME_FILENAME","PROPERTY_NAME_RAW_FILENAME","PROPERTY_NAME_COMMENT","PROPERTY_NAME_RAW_COMMENT","PROPERTY_NAME_UNCOMPRESSED_SIZE","PROPERTY_NAME_COMPRESSED_SIZE","PROPERTY_NAME_OFFSET","PROPERTY_NAME_DISK_NUMBER_START","PROPERTY_NAME_LAST_MODIFICATION_DATE","PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE","PROPERTY_NAME_LAST_ACCESS_DATE","PROPERTY_NAME_RAW_LAST_ACCESS_DATE","PROPERTY_NAME_CREATION_DATE","PROPERTY_NAME_RAW_CREATION_DATE","PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES","PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES","PROPERTY_NAME_MSDOS_ATTRIBUTES_RAW","PROPERTY_NAME_MSDOS_ATTRIBUTES","PROPERTY_NAME_MS_DOS_COMPATIBLE","PROPERTY_NAME_ZIP64","PROPERTY_NAME_ENCRYPTED","PROPERTY_NAME_VERSION","PROPERTY_NAME_VERSION_MADE_BY","PROPERTY_NAME_ZIPCRYPTO","PROPERTY_NAME_DIRECTORY","PROPERTY_NAME_EXECUTABLE","PROPERTY_NAME_COMPRESSION_METHOD","PROPERTY_NAME_SIGNATURE","PROPERTY_NAME_EXTRA_FIELD","PROPERTY_NAME_UID","PROPERTY_NAME_GID","PROPERTY_NAME_UNIX_MODE","PROPERTY_NAME_SETUID","PROPERTY_NAME_SETGID","PROPERTY_NAME_STICKY","PROPERTY_NAMES","Entry","INTERPRETED_EXTRA_FIELD_TYPES","getEncryptionOverhead","ERR_BAD_FORMAT","ERR_EOCDR_NOT_FOUND","ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND","ERR_CENTRAL_DIRECTORY_NOT_FOUND","ERR_LOCAL_FILE_HEADER_NOT_FOUND","ERR_EXTRAFIELD_ZIP64_NOT_FOUND","ERR_ENCRYPTED","ERR_UNSUPPORTED_ENCRYPTION","ERR_SPLIT_ZIP_FILE","ERR_OVERLAPPING_ENTRY","ERR_ENTRY_DATA_OUT_OF_BOUNDS","ERR_AMBIGUOUS_ARCHIVE","ERR_ENCRYPTED_CENTRAL_DIRECTORY","ERR_UNSAFE_FILENAME","ERR_INVALID_STRICTNESS","ERR_INVALID_FILENAME_VALIDATION","ERR_INVALID_MAX_APPENDED_DATA_SIZE","ERR_UNSUPPORTED_UINT64","WARNING_UNSORTED_CENTRAL_DIRECTORY","WARNING_UNKNOWN_VERSION","WARNING_COMPRESSED_PATCHED_DATA","WARNING_MALFORMED_EXTRA_FIELD","WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA","WARNING_WRAPPED_ENTRIES_COUNT","WARNING_APPENDED_DATA","WARNING_PREPENDED_DATA","WARNING_PREPENDED_CENTRAL_DIRECTORY","WARNING_TRAILING_CENTRAL_DIRECTORY_DATA","WARNING_DUPLICATE_FILENAME","WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY","WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY","WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME","WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG","WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD","WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES","DRIVE_LETTER_REGEXP","PARENT_DIRECTORY_REGEXP","CHARSET_UTF8","CHARSET_CP437","BITFLAG_AMBIGUITY_MASK","BITFLAG_ENCRYPTED","ZIP64_PROPERTIES","ZIP64_EXTRACTION","getValue","bytes","getBigUint64","MAX_SAFE_UINT64","BigInt","ZipReader","readRanges","indexes","sortedRanges","pendingRanges","getEntriesGenerator","zipReader","strictness","getStrictness","checkAmbiguity","rejectAmbiguousEndOfDirectory","maxAppendedDataSize","getMaxAppendedDataSize","getOptionValue","filenameValidation","isStrictnessValue","getFilenameValidation","normalizeFilename","endOfDirectoryInfo","endOfDirectoryReachingEndCount","findEndOfCentralDirectory","getFirstSignature","startsWithSplitZipSignature","throwAmbiguousArchive","endOfDirectoryView","directoryDataLength","directoryDataOffset","commentOffset","commentLength","getUint16","appendedDataOffset","appendedDataLength","expectedLastDiskNumber","prependedCentralDirectory","startOffset","zip64EndOfDirectory","zip64EndOfDirectoryVersion2","directoryEncryptionInfo","filesLength","prependedDataLength","zip64EndOfDirectoryLength","requiresZip64","endOfDirectoryLocatorArray","endOfDirectoryLocatorView","endOfDirectoryArray","expectedDirectoryDataOffset","originalDirectoryDataOffset","extensibleDataLength","rawExtensibleData","extensibleDataView","hashDataLength","compressedSize","encryptionAlgorithm","bitLength","flags","hashAlgorithm","hashData","getDirectoryEncryptionInfo","reportAmbiguity","declaredDirectoryDataLength","centralDirectoryEndOffset","directoryArray","directoryView","storedPointsAtDirectory","detectEncryptedCentralDirectory","reconcile","expectedDirectoryDataLength","directoryOffset","directoryLength","decryptCentralDirectory","getFunctionOptionValue","decryptedDirectory","dataAfterEncryptedDirectory","encryptedDirectoryDataLength","getEncryptedDirectoryDataLength","filenameEncoding","commentEncoding","filenames","duplicateFilename","previousEntryPosition","recoverWrappedFilesLength","getWrappedFilesLength","indexFile","fileEntry","ZipEntry","readCommonHeader","languageEncodingFlag","bitFlag","filenameOffset","filenameLength","extraFieldLength","versionMadeBy","msDosCompatible","unixCompatible","endOffset","rawEntryData","rawFilename","rawComment","filenameUTF8","commentUTF8","externalFileAttributes","msdosAttributesRaw","msdosAttributes","readOnly","hidden","system","directory","archive","offsetFileEntry","rawFilenameEncoding","rawCommentEncoding","normalizedFilename","isUnsafeFilename","comment","zip64","diskNumberStart","internalFileAttributes","rawExtraField","readCommonFooter","entryPosition","version","unixExternalUpper","unixMode","setuid","setgid","sticky","symlink","executable","modeIsDir","upperIsDir","extraFieldAES","entry","arrayBufferPromise","wrappedFilesLength","offsetAfterSignature","digitalSignature","readDigitalSignature","signatureRecordOffset","signatureRecordLength","extractPrependedData","extractAppendedData","splitZipSignatureLength","signature","startsWithSplitZipMarker","prependedData","appendedData","getEntries","entries","zipEntry","extraFieldZip64","rawLastModDate","dataDescriptor","localDirectory","localHeaderOffset","dataArray","passThroughCompression","passThroughEncryption","originalCompressionMethod","dataOffset","checkLocalDirectoryOption","entryStrictness","checkLocalDirectory","getCheckLocalDirectory","checkLocalFilenameOption","checkLocalFilename","getCheckLocalFilename","rawLocalFilename","trailingDataArray","maskedLocalDirectory","byteValue","validateLocalDirectory","lastAccessDate","creationDate","uid","gid","registeredCodec","checkOverlappingEntry","checkOverlappingEntryOnly","checkCrc32Option","vendorVersion","abortError","dataDescriptorLength","dataDescriptorView","DATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH","candidates","zip64Layout","readDataDescriptor","candidate","localDataDescriptor","getDataDescriptorLength","range","overlappingRange","previousRange","nextRange","rangesOverlap","findOverlappingRange","otherRange","overlappingEntry","mergedRanges","indexSorted","indexPending","mergeRanges","detectOverlappingEntry","getDecodableOutputSize","writtenSize","failedOutputSize","writableWriter","maxOffset","signatureRecordArray","signatureRecordView","signatureDataLength","lastModDate","getDate","extraField","rawExtraFieldView","offsetExtraField","malformedExtraField","extraFieldView","missingProperties","indexMissingProperty","extraction","readExtraFieldZip64","extraFieldUnicodePath","readExtraFieldUnicode","extraFieldUnicodeComment","getUint8","vendorId","readExtraFieldAES","extraFieldPkwareUnix","readExtraFieldUnixDates","extraFieldUnixType1","extraFieldNTFS","tag1Data","tagValue","attributeSize","tag1View","rawLastAccessDate","rawCreationDate","extraFieldData","getDateNTFS","readExtraFieldNTFS","extraFieldUnix","unixIdsRead","readExtraFieldUnix","extraFieldInfoZip","extraFieldExtendedTimestamp","timeProperties","timeRawProperties","indexProperty","time","rawPropertyName","readExtraFieldExtendedTimestamp","extraFieldUSDZ","extraFieldUnicode","valid","computedCrc32View","nameCrc32","isInfoZip","uidSize","unpackUnixId","gidSize","inheritedOptions","resolveStrictness","inheritedStrictness","pathParts","pop","test","rejectAmbiguous","anchoredLength","remoteProbeBudget","remaining","plausibleEndOfDirectoryInfo","anchoredView","anchoredOffset","anchoredArray","scanEndOfCentralDirectory","reachability","getCentralDirectoryReachability","getEndOfCentralDirectoryInfo","searchLength","firstSignatureInfo","plausibleInfo","searchView","searchOffset","searchArray","record","seekEndOfCentralDirectory","scanLength","scanOffset","scanArray","scanView","readSignature","directoryDiskNumber","centralDirectoryOffset","signatureOffset","timeRaw","date","sourceController","gen","pendingEntries","entryStream","dataReader","delete","highWaterMark","createEntryStream","defineProperties","enumerable","entryStreams","allSettled","return","ERR_DUPLICATED_NAME","ERR_INVALID_COMMENT","ERR_INVALID_ENTRY_COMMENT","ERR_INVALID_ENTRY_COMMENT_TYPE","ERR_INVALID_ENTRY_NAME","ERR_INVALID_VERSION","ERR_INVALID_ENCRYPTION_STRENGTH","ERR_UNSUPPORTED_ENCRYPTION_USDZ","ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH","ERR_INVALID_EXTRAFIELD_DATA","MIN_UNIX_TIME","MAX_UNIX_TIME","MIN_NTFS_TIME","MAX_NTFS_TIME","ERR_UNSUPPORTED_FORMAT","ERR_UNDEFINED_UNCOMPRESSED_SIZE","ERR_UNDEFINED_COMPRESSION_METHOD","ERR_UNDEFINED_CRC32","ERR_UNDEFINED_READER","ERR_INVALID_READER","ERR_ZIP_NOT_EMPTY","ERR_INVALID_UID","ERR_INVALID_GID","ERR_INVALID_UNIX_MODE","ERR_INVALID_UNIX_EXTRA_FIELD_TYPE","ERR_INVALID_UNIX_ID_SIZE","ERR_INVALID_MSDOS_ATTRIBUTES","ERR_INVALID_MSDOS_DATA","ERR_INVALID_LEVEL","ERR_INVALID_SIGNATURE_DATA","ERR_INVALID_ENTRY","ERR_ZIP_CRYPTO_LAST_MOD_DATE","WARNING_COMPRESSION_UNAVAILABLE","WARNING_CLAMPED_LAST_MODIFICATION_DATE","EXTRAFIELD_DATA_AES","INFOZIP_EXTRA_FIELD_TYPE","UNIX_EXTRA_FIELD_TYPE","LEVEL_BY_BITFLAG_LEVEL","workers","ZipWriter","addSplitZipSignature","fileEntries","initialOffset","pendingAddFileCalls","pendingErrors","bufferedWrites","directWrites","lastFileEntry","archiveClosed","prependZip","watchPromiseError","zipWriter","appendZipEntries","prependZipEntries","appendZip","resolveAppendZip","promiseAppendZip","appendedFilenames","releaseLockWriter","writerLocked","lockWriter","signatureArray","writeData","getSplitZipSignatureArray","entryPositions","sortedEntries","firstEntry","secondEntry","getSourceOffset","copiedLength","sourceOffset","copyData","exceedsAvailableSize","getLocalHeaderLength","getSegmentOffset","getDiskNumber","baseOffset","copyZipData","removeExtraFieldZip64","getLength","zip64UncompressedSize","zip64CompressedSize","bitFlagValue","getBitFlag","headerArray","headerView","getHeaderArrayData","zip64Enabled","zip64DiskNumberStart","rawExtraFieldZip64","rawExtraFieldAES","rawExtraFieldExtendedTimestamp","rawExtraFieldNTFS","rawExtraFieldUnix","rawCentralExtraField","promiseAddFile","entryOptions","passThroughOptions","lastModDateOverride","userExtraField","field","getUserExtraField","unixExtraFieldType","dosLastModDate","getTime","getHours","getMinutes","getDosTimeHighByte","getSourceEntryOptions","attributesInfo","getNumberOptionValue","hasMsDosProvided","externalFileAttributesProvided","FILE_ATTR_UNIX_DEFAULT_MASK","unixModeProvided","msdDir","raw","normalizeMsdosAttributes","resolveAttributes","metadataInfo","getDateOptionValue","extendedTimestamp","ntfsTimestamp","keepOrder","bufferedWrite","createTempStream","dataDescriptorSignature","useUnicodeFileNames","isPrintableASCIIText","serializeExtraField","rawLocalExtraField","codecVersionNeeded","versionNeeded","resolveMetadata","previousFileEntry","pendingFileEntry","releaseLockFileEntry","lockFileEntry","sizesInfo","metadata","contentSize","hasContent","maximumCompressedSize","unknownSize","encryptedEntry","encryptionOverhead","getMaximumCompressedSize","isCompressed","emptyEntry","resolveEntrySizes","resolveSizes","storesAE2","headerInfo","rawLastModDateOption","rawLocalExtraFieldZip64","uncompressedFile","zip64ExtraFieldComplete","writeLocalExtraFieldZip64","createRecordWriter","writeUint16","writeUint64","extraFieldExtendedTimestampFlag","extraFieldExtendedTimestampTime","writeBytes","lastModTimeUnix","getTimeUnix","lastModTimeUnixInRange","timeUnix","extraFieldTimestampLength","extraFieldTimestamp","writeUint8","writeUint32","clampUnixTime","lastModTimeNTFS","getTimeNTFS","skip","uidBytes","packUnixId","gidBytes","payloadLength","setUint16","localExtraFieldZip64Length","maximumUsdzExtraFieldLength","clampedLastModDate","storedLastModDate","localHeader","localHeaderArray","localHeaderView","lastModDateClamped","getHeaderInfo","dataDescriptorInfo","dataDescriptorArray","dataDescriptorOffset","getDataDescriptorInfo","metadataSize","entryInfo","usdz","directWrite","writingBufferedEntryData","writingEntryData","writerSizeBeforeEntry","fileWriter","flushedBufferedSize","lockPreviousFileEntry","requestLockWriter","writeSplitZipSignature","appendExtraFieldUSDZ","skipDiskIfNeeded","entryOffset","setBigUint64","setEntryInfo","createFileEntry","previousMetadataSize","updateLocalHeader","flushBufferedData","hasCorruptedEntries","corruptedEntry","getFileEntry","addFile","pendingEntry","addFileEntry","deletePendingAddFileCall","remove","getWriterData","watcher","recorded","unobservedWatchers","failed","observed","unobservedErrors","entryErrors","zip64Entries","files","zip64Offset","rawExtraFieldTimestamp","createDirectoryRecords","directoryStart","directoryEnd","directoryDiskOffset","directoryStartDiskNumber","directoryStartDiskOffset","directoryEndDiskEntriesLength","indexFileEntry","fileEntryOffset","directoryRecordLength","directoryRecord","arraySet","entriesLength","writeDirectoryRecords","signatureLength","signCentralDirectory","signatureData","signatureRecord","writeDigitalSignatureRecord","cdInfo","fileEntriesLength","endOfdirectoryRecord","diskFileEntriesLength","writeEndOfDirectoryRecord","closeFile","WatchedPromise","onFulfilled","onRejected","promise","watchedPromise","extraFieldSize","zipWriterOffset","extraBytesLength","rawExtraFieldUSDZ","extraFieldUSDZView","previousLocalHeaderArray","localHeaderArrayView","id","setUint8","HEADER_OFFSET_FILENAME_LENGTH","HEADER_OFFSET_EXTRAFIELD_LENGTH","onChunkWritten","timeNTFS","defaultValue","typedArray","arrayLikes","arrayLike","headerRecord","dateArray","Uint32Array","dateView","getSeconds","getFullYear","getMonth","rawText","every","characterCode","o","f","lengthCounts","symbols","FORMAT_DEFLATE","FORMAT_DEFLATE64_RAW","COMPRESSION_FORMATS","DECOMPRESSION_FORMATS","wasm","malloc","free","memory","initError","setZlibCode","_make","isCompress","outBufferSize","outBuffer","inBufferSize","in","streamHandle","streamEnded","readableController","writableController","resolveWrite","cancelReason","backpressure","cancelled","_process","deflate_process","_last_consumed","deflate_last_consumed","_end","deflate_end","deflate_new","deflate_init_gzip","deflate_init_raw","deflate_init","inflate9_process","inflate9_last_consumed","inflate9_end","inflate9_new","inflate9_init_raw","inflate_process","inflate_last_consumed","inflate_end","inflate_new","inflate_init_raw","inflate_init_gzip","inflate_init","disposeStream","resumeWrite","heap","last_consumed","toRead","signedCode","prod","consumed","processChunk","produced","flushStream","endResult","supportedFormats","BUFFER_LENGTH","getHeap","exports","initializedModule","uri","response","fetch","dataURI","base64","binary","atob","arrayBufferFromDataURI","wasmInstance","WebAssembly","instantiate","wasmAPI","setWasmExports","instance","aes_hmac_new","instantiateModule","setInitError","createEngineFunction","cloneExtendedSourceItem","cloneFileItem","fileItem","mergeOptions","override","unzip","ungzip","logger","ignoreDotfiles","recursive","zipExtensions","gzipExtensions","context","aes_hmac_init","aes_hmac_end","createContext","scratch","aes_hmac_process","initModuleFunction","configureWorker","X","U","h","R","replace","indexOf","configureZlibModule","createObjectURL","configureWebWorker","defaultOptions","getNameInfo","pathname","relativePath","appendArrayBuffer","fileCollection","originalRelativePath","blobInput","uuid","randomUUID","lastModified","dateModified","now","baseURL","extra","getExtendedSourceFromArrayBuffer","appendExtendedSource","normalizeRelativePath","path","appendFileList","fileList","file","webkitRelativePath","toSourceAppend","shouldAddItem","exclude","include","isMatchAnyPattern","patterns","isMatchPattern","sourceItemToExtendedSourceItem","alternativeBaseURL","globalThis","location","href","fileURL","_blobPromise","getBlobCached","blobGetter","pipeFetchToStream","streamFromAsyncBlob","appendSource","promises","appendText","getExtendedSourceFromText","getZipReader","contentReader","zipContent","ArrayBuffer","UNSUPPORTED_ZIP_CONTENT_ERROR","getZipContentReader","toIumSourceToPath","toIumSourceToLegacyPath","pathnameToSafePath","fromIumSourceToPath","legacyZipPath","zipPath","fromIumSourceToLegacyPath","sourceToZipPath","baseUrl","sourceToZipPathLegacy","decodeURIComponent","migrations","paths","sources","migrateIumIndex","migration","fromIum","validateMimetype","zipFiles","mimetype","legacyPath","rawData","JSON","parse","FileCollection","protocol","legacyPathname","appendEntry","lastSlash","lastIndexOf","extendedSource","shouldAvoidCompression","lastSlashIndex","unzipExtensions","ungzipExtensions","toStoreExtensions","ext","lastDotIndex","extension","UNSUPPORTED_EXTRA_FILE_CONTENT_ERROR","getExtraFileContentReader","fileContent","variableName","fileItemUngzip","ungzipOptions","isGzip","sourceUUID","toUngzip","info","SIGNATURE_NORMAL","SIGNATURES","isZip","SUPPORTED_MIMETYPE_FILENAME","SUPPORTED_MIMETYPE_FILENAME_SIZE","str","fileEntryToData","entryToFileItem","fileItemUnzip","zipFileItems","uint8Array","isView","fileItemsFromZip","fileItems","recursiveFiles","expandAndFilter","originalFileItem","entryToSource","toClone","itemOptions","sourceFile","convertExtendedSourceToFile","existingFiles","removeFile","string","stringify","fileToRemove","sourceIndex","appendWebSource","webSourceURL","json","webSource","appendPath","appendFileCollection","other","subPath","self","sanitizedSubPath","otherSource","otherFile","subroot","sub","pathMatch","addedSources","topFile","subSource","toIum","includeData","getExtraFiles","newSource","addOptions","extraFiles","extraFile","fileReader","alphabetical","toZip","finalPaths","collection","ium","fromZip","fromPath","collectionOptions","fromSource","fromCollection","isIum","EXTRA_FIELD_SIZE_OFFSET","nameSize","UNCOMPRESSION_SIZE_OFFSET","fileSize","COMPRESSION_METHOD_OFFSET","startExtraField","startFileData","FILENAME_SIZE_OFFSET","minimalTotalSize","iterator","predicate","newCollection","sourcesMap","filteredFiles","filteredSources","filterFileCollection","HASH_UNDEFINED","argsTag","funcTag","objectTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","global","freeSelf","root","freeExports","nodeType","freeModule","module","moduleExports","freeProcess","nodeUtil","types","require","binding","nodeIsTypedArray","isTypedArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","hasOwnProperty","maskSrcKey","exec","keys","IE_PROTO","nativeObjectToString","objectCtorString","reIsNative","RegExp","Buffer","allocUnsafe","getPrototype","func","arg","overArg","getPrototypeOf","objectCreate","create","propertyIsEnumerable","symToStringTag","toStringTag","getNative","nativeIsBuffer","isBuffer","nativeMax","nativeNow","nativeCreate","baseCreate","object","proto","isObject","Hash","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","iteratee","baseTimes","isIndex","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","configurable","getMapData","pairs","LARGE_ARRAY_SIZE","baseFor","keysFunc","iterable","props","baseGetTag","isOwn","unmasked","getRawTag","objectToString","baseIsArguments","isObjectLike","baseIsNative","isFunction","toSource","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","mergeFunc","safeGet","stacked","newValue","isCommon","isTyped","isArrayLike","copyArray","cloneBuffer","cloneTypedArray","Ctor","isPlainObject","isNew","copyObject","keysIn","toPlainObject","initCloneObject","baseMergeDeep","baseRest","setToString","args","arguments","otherArgs","thisArg","apply","overRest","identity","baseSetToString","lastCalled","stamp","isLength","baseUnary","assigner","merge","guard","isIterateeCall","O","bind","meta","peaks","filters","ranges","integrals","processingInfo","originalProcessingInfo","selector","sourceId","dependentVariables","m","display","Mt","components","nucleus","se","fileCollectionId","S","At","phc0","phc1","isFid","isComplex","isVisible","isPeaksMarkersVisible","isRealSpectrumVisible","isVisibleInDomain","isSumConstant","sumAuto","originalData","originalInfo","I","M","Et","E","rr","ri","ir","Ut","z","ce","minX","minY","maxX","maxY","_t","jt","L","isPositiveVisible","isNegativeVisible","spectrumSize","flatten","currentRow","zt","Lt","acquisitionScheme","Vt","minZ","maxZ","noise","pe","Bt","Wt","Ee","pulseSequence","vdlistValues","Zt","Xt","Kt","vd","PAGE","parseFloat","Yt","spectra","molecules","N","ur","mr","fr","dr","gr","domainUpdateRules","isApplicable","schemaSettings","schemaOptions","computeOptions","getDefaultSettings","Le","operationIds","registerOperation","executeOperation","operationId","kind","executePipeline","operations","operationIndex","intermediateValue","yr","signals","deltaX","resolutionX","nucleusX","deltaY","resolutionY","nucleusY","shiftX","shiftY","resolution","Pr","label","lineBroadening","gaussBroadening","lineBroadeningCenter","xr","hr","formatting","nuclei","panels","ppm","hz","Or","je","open","visible","Be","shape","exponent","Ze","general","labelStyle","fontSize","fontWeight","fontStyle","We","defaultPeakShape","fwhm","mu","Ke","columns","jpath","spectraLabel","fields","valueStyle","Nr","jGraphTolerance","defaultViewOptions","showDeleteAction","showZoomAction","showEditAction","showSerialNumber","absolute","relative","deltaPPM","deltaHz","coupling","showMultiplicity","showAssignment","showAssignmentLabel","showKind","floatingTablePreferences","signalKinds","tablePreferences","Rr","peakWidth","intensity","gamma","showEditPeakShapeAction","Xe","$e","vr","stroke","strokeOpacity","strokeWidth","Tr","Ge","tickStyle","Ye","axis","primaryTicks","secondaryTicks","wr","kr","absoluteArea","show","relativeArea","qe","plugins","shouldSerialize","Fr","peak","diaID","originDelta","atomIDs","jcampURL","isFt","jcampSpectrumIndex","match","groups","sourceSelector","jcamp","originFrom","originTo","originX","originY","originZ","digitalFilter","phaseCorrection","digitalFilterValue","settings","workspaces","_","isDeleteAllow","enabled","exponential","gaussian","shapes","compose","showAtomNumber","atomAnnotation","showLabel","br","diaIDs","assignment","nbAtoms","contourOptions","spectraContourLevels","zoom","units1D","units2D","Ir","anchors","Z","W","K","$","Fe","Qe","processings","Lr","Vr","operatorId","et","jr","_r","Ur","tt","G","keep1D","keep2D","onlyReal","dataSelection","warn","J","nmriumState","onReadProcess","onProcessing","spectrumProcessor","H","converter","onFiles","supportedExtensions","onFile","flatMap","plugin","status","spectraResult","unserializedSpectrum","migrator","ot","Wr","rt","ee","Zr","te","moleculesResult","unserializedMolecule","molecule","Kr","oe","ne","nmriumObjectInput","fromSourceOptions","nt","aggregator","containsNmrium","fileFilter","ie","it","Xr","selectorRoot","onLoadProcessing","experimentalFeatures","Yr","Gr","st","$r","qr","autoProcessing","Jr","lt","Qr","parseInt","ct","Hr","pt","views","eo","subRoots","ro","ut","V","oo","no","io","dt","actionType","forceRawSpectra","po","ao","gt","lo","co","so","includeSettings","includeView","mo","externalData","fo","join","Ae","registerPlugin","console","debug","operators","operatorsUI","registerPlugins","getPlugin","getOperator","getOperationOperator","yt","migrate","minCore","maxCore","up","Je","processSpectrum","readNMRiumArchive","readNMRiumObject","readNMRiumFile","readFromWebSource","bruker","keepFiles","Reflect","ft","serializeNmriumState","serializeNmriumArchive","uo","St","serializePlugins","slot","supportedToDeprecatedSlots","ui","zr","He","slotOperator","slotOperators","ensureString","uint8","parseString","lowercase","getGyromagneticRatio","realNucleus","gyromagneticRatio","nucleusNumber","filteredNuclei","getGyromagneticNucleus","fromEntries","_ref","quickSelectMedian","times","series","ms","pageValue","chromatogram","xFactor","yFactor","isXYdata","firstX","firstY","codePointAt","F","trace","isPeaktable","variables","ue","isXYAdata","lastY","ntuples","symbol","units","toUpperCase","ae","noContour","contourLines","nbContourLevels","fe","noiseMultiplier","zValue","lines","segments","minMax","observeFrequency","shiftOffsetVal","xUnits","lastX","tmp","$NUC2","$NUC1","yType","xType","pageSymbol","dynamicTyping","le","de","twoD","wantXY","profiling","keepSpectra","charAt","vardim","varname","yUnits","he","removeComments","keepRecordsRegExp","canonicDataLabels","canonicMetadataLabels","withoutXY","noTrimRegExp","ge","children","datatable","title","dataType","dataClass","jcampDX","jcampCS","shiftOffsetNum","vartype","varform","page","sampleDescription","be","OCL","ATOMLIST","BONDLIST","Te","atomNumber","nbImplicitHydrogens","xe","atomNumber1","atomNumber2","bondType","Ne","CHARGE","Se","XYRASTER","Ce","STEREOCENTER","atoms","bonds","charges","xyRasters","stereocenters","Molecule","cBondTypeSingle","cBondTypeDouble","cBondTypeTriple","cBondTypeQuadruple","getAtomicNoFromLabel","addAtom","setAtomMapNo","addBond","setBondType","setAtomCharge","setAtomX","setAtomY","setAtomZ","ensureHelperArrays","cHelperParities","isAtomStereoCenter","getAtomParity","cAtomParityUnknown","cAtomParity1","cAtomParity2","setAtomParity","inventCoordinates","keepHydrogens","ye","molfile","toMolfile","UTCDateMini","setTime","UTC","getTimezoneOffset","getOwnPropertyNames","method","utcMethod","UTCDate","toDateString","toTimeString","weekdayFormat","dateFormat","timeFormat","toLocaleString","locales","timeZone","toLocaleDateString","toLocaleTimeString","Intl","DateTimeFormat","weekday","month","day","hour12","hour","minute","millisecondsInWeek","millisecondsInMinute","millisecondsInHour","constructFromSymbol","for","constructFrom","toDate","argument","addDays","amount","_date","setDate","getDefaultOptions","startOfWeek","weekStartsOn","locale","getDay","setHours","startOfISOWeek","getTimezoneOffsetInMilliseconds","utcDate","getMilliseconds","setUTCFullYear","startOfISOWeekYear","year","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getISOWeekYear","fourthOfJanuary","isValid","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","width","defaultWidth","formats","formatLong","full","long","medium","short","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","localize","ordinalNumber","dirtyNumber","_options","rem100","era","narrow","abbreviated","wide","quarter","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findKey","valueCallback","rest","parsePattern","parseResult","any","enUS","formatDistance","token","tokenValue","addSuffix","comparison","formatRelative","_baseDate","firstWeekContainsDate","getWeekYear","firstWeekOfNextYear","firstWeekOfThisYear","getWeek","firstWeek","startOfWeekYear","dateLongFormatter","timeLongFormatter","longFormatters","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","weekYearTokenRE","throwTokens","isProtectedWeekYearToken","warnOrThrowProtectedError","_message","subject","Setter","subPriority","validate","_utcDate","ValueSetter","validateValue","setValue","priority","DateTimezoneSetter","reference","timestampIsSet","date_","isConstructor","transpose","Parser","dateString","setter","_value","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","hours","minutes","seconds","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","trunc","isLeapYearIndex","setISOWeek","week","getISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","setDay","currentDay","setISODay","getISODay","parsers","incompatibleTokens","isTwoDigitYear","unit","normalizedTwoDigitYear","_flags","firstWeekOfYear","setMonth","setWeek","isLeapYear","subpriority","wholeWeekDays","isPM","setMinutes","setSeconds","pow","setMilliseconds","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dateStr","formatStr","referenceDate","invalidDate","getInternalDefaultOptions","defaultLocale","subFnOptions","setters","tokens","substring","firstCharacter","longFormatter","usedTokens","useAdditionalWeekYearTokens","parser","incompatibleToken","usedToken","fullToken","cleanEscapedString","uniquePrioritySetters","setterArray","parseISO","additionalDigits","dateStrings","dateTimeDelimiter","timeString","timeZoneDelimiter","substr","timezone","splitDateString","parseYearResult","regex","captures","restDateString","century","parseYear","dateRegex","isWeekDate","dayOfYear","parseDateUnit","dayOfWeek","_year","validateWeekDate","isoWeekYear","fourthOfJanuaryDay","getUTCDay","setUTCDate","getUTCDate","dayOfISOWeekYear","daysInMonths","validateDate","validateDayOfYearDate","parseDate","timestamp","timeRegex","parseTimeUnit","validateTime","parseTime","tmpDate","getUTCFullYear","getUTCMonth","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","timezoneString","timezoneRegex","_hours","validateTimezone","parseTimezone","xAtomicNumber","getXAtomicNumber","getOCL","cPseudoAtomX","makeRacemic","cHelperCIP","getAllAtoms","cAtomParityNone","setAtomESR","cESRTypeAnd","tagAtom","iAtom","customLabel","getAtomLabel","setAtomCustomLabel","getAtomicNo","setAtomicNo","setAtomMass","getAtomMass","getCompactCopyWithoutCustomLabels","tempMolecule","getCompactCopy","getChiralOrHeterotopicCarbons","internalMolecule","addImplicitHydrogens","cHelperSymmetryStereoHeterotopicity","getAtoms","getStereoBond","getNeighbourSymmetries","stereoBond","getAtomPreferredStereoBond","cBondTypeUp","getBondAtom","connAtom","setBondAtom","addPossibleChiralBonds","neighbourSymmetries","getAllConnAtoms","getConnAtom","symmetryRank","getSymmetryRank","getDiastereotopicAtomIDs","esrType","atLeastThreeAtoms","cHelperBitNeighbours","heterotopicCarbons","ensureHeterotopicChiralBonds","symmetryRanks","xAtomNumber","getSymmetryRanks","numberAtoms","ids","cache","rank","getCanonizedIDCode","CANONIZER_ENCODE_ATOM_CUSTOM_LABELS","getDiastereotopicAtomIDsFromMolfile","fromMolfileWithAtomMap","diaIDsArray","cHelperNeighbours","newDiaIDs","newDiaID","oclID","hydrogenOCLIDs","nbHydrogens","atom","heavyAtom","getDiastereotopicAtomIDsAndH","destination","getMolecule","sdfPart","labels","currentLabels","modifiers","parts","isNumeric","keep","modifier","modifiedValue","document","IS_PAPA_WORKER","_handle","_finished","_completed","_halted","_input","_baseIndex","_partialLine","_rowCount","_start","_nextChunk","isFirstChunk","_completeResults","errors","streamer","_config","parseChunk","skipFirstNLines","newline","quoteChar","guessLineEndings","beforeFirstChunk","paused","cursor","preview","workerId","WORKER_ID","finished","complete","_sendError","RemoteChunkSize","_readChunk","_chunkLoaded","XMLHttpRequest","withCredentials","onload","onerror","_chunkError","ontimeout","_chunkTimeout","downloadRequestBody","downloadTimeout","timeout","downloadRequestHeaders","setRequestHeader","send","readyState","responseText","getResponseHeader","statusText","LocalChunkSize","FileReader","webkitSlice","mozSlice","FileReaderSync","readAsText","pause","resume","on","_streamData","_streamEnd","_streamError","_checkIsFinished","_streamCleanUp","removeListener","skipEmptyLines","DefaultDelimiter","dynamicTypingFunction","delimiter","RECORD_SEP","UNIT_SEP","comments","successful","bestDelimiter","delimitersToGuess","getCharIndex","fastMode","escapeChar","BAD_DELIMITERS","transformHeader","linebreak","truncated","renamedHeaders","userError","userStep","userChunk","userComplete","WORKERS_SUPPORTED","NODE_STREAM_INPUT","download","File","webkitURL","BLOB_URL","onmessage","unparse","quotes","escapeFormulae","toISOString","fromCharCode","BYTE_ORDER_MARK","ParserHandle","NetworkStreamer","FileStreamer","StringStreamer","ReadableStreamStreamer","Kl","copyMolecule","vt","getIDCodeAndCoordinates","clipboard","writeText","idCode","coordinates","pasteMolecule","WS","tU","Jl","padStart","Qw","R9","devicePixelRatio","$2","ctx","textAlign","textBaseline","currentFontSize","currentFont","font","currentColor","currentLineWidth","canvasCache","clearRect","kt","getBackgroundRGB","getForegroundRGB","getSelectionBackgroundRGB","getLineWidth","setRGB","fillStyle","strokeStyle","setFont","getFontSize","getBounds","measureText","actualBoundingBoxLeft","actualBoundingBoxAscent","actualBoundingBoxRight","height","drawString","fillText","drawCenteredString","setLineWidth","lineWidth","fillRectangle","fillRect","fillCircle","beginPath","arc","drawLine","moveTo","lineTo","drawPolygon","getX","getY","getSize","drawRectangle","strokeRect","fillPolygon","drawImage","C1","u1","h1","createElement","P0","imageData","z0","getContext","globalAlpha","putImageData","isDarkBackground","Yl","canvasElement","changeListener","drawContext","getCanvasWidth","getCanvasHeight","getDrawContext","onChange","what","isUserEvent","getClipboardHandler","$S","CSSStyleSheet","replaceSync","ow","button","fireMouseEvent","offsetX","offsetY","shiftKey","ctrlKey","altKey","pointerId","MOUSE_EVENT_RELEASED","MOUSE_EVENT_PRESSED","MOUSE_EVENT_CLICKED","detail","MOUSE_EVENT_ENTERED","MOUSE_EVENT_EXITED","MOUSE_EVENT_DRAGGED","MOUSE_EVENT_MOVED","Xl","setDimensions","style","tI","Uw","Zl","HOTSPOT_32","IMAGE_NAME_32","cPointerCursor","cTextCursor","getCursor","buildCursor","Wl","rootElement","elements","dialogElement","setLayout","hLayout","AI","vLayout","component","x2","y2","createTextField","createLabel","Lw","createComboBox","yw","createCheckBox","lw","setEventConsumer","consumer","showMessage","alert","showDialog","getBoundingClientRect","marginBlock","left","right","body","parentElement","clientWidth","offsetTop","getRootNode","gridTemplateColumns","gridTemplateRows","fireOk","I0","gridColumn","gridRow","getElement","flexDirection","gap","textContent","fireCancel","showModal","disposeDialog","a2","setEventHandler","eventHandler","fireEvent","setText","getText","selectedIndex","setEnabled","disabled","addItem","getSelectedIndex","setSelectedIndex","setSelectedItem","getSelectedItem","removeAllItems","innerHTML","setEditable","checked","checkBox","isSelected","setSelected","eU","getWidth","getHeight","getRGB","toDataURL","_l","dialogRoot","JavaEditorArea","register","javaUiHelper","cursorManager","grabFocus","focus","preventScroll","setCursor","showHelpDialog","createImage","ImageData","createImageFromBase64","repeat","_S","Uint8ClampedArray","createDialog","runLater","requestAnimationFrame","setImmediate","nI","initialMode","initialFragment","dataset","openchemlibCanvasEditor","alignItems","backgroundColor","touchAction","userSelect","webkitUserSelect","attachShadow","mode","adoptedStyleSheets","tabIndex","outline","S8","JP","MODE_REACTION","MODE_MULTIPLE_FRAGMENTS","$8t","setFragment","setMolecule","setReaction","setEditorArea","tu","eu","repaint","Au","ResizeObserver","contentRect","observe","nu","Pu","ru","platform","metaKey","KEY_CTRL","KEY_ALT","KEY_SHIFT","KEY_DELETE","KEY_HELP","KEY_ESCAPE","KEY_ENTER","_8t","fireKeyEvent","KEY_EVENT_PRESSED","KEY_EVENT_RELEASED","clipboardData","fromText","addPastedOrDropped","aS","editorArea","toolbar","uiHelper","destroy","disconnect","a8t","fromCodePoint","E8","trt","QI","programName","keepIdCode","rD","compatMode","setInterval","clearInterval","nrt","AU","nU","iD","Tw","cw","ww","gw","dw","al","fD","Bw","DD","v1","vw","Fw","kw","ki","th","u0","mw","bw","PU","jw","Rw","rU","eh","pw","Mw","Cw","Hw","Vw","Ew","Sw","Iw","xw","Nw","Gw","Ow","qw","zw","Kw","Jw","Yw","Xw","Zw","Ww","lI","wI","Ah","iu","_w","$w","iU","p9","WA","aw","t7","e7","A7","n7","P7","r7","i7","f7","D7","u7","fu","fU","uD","Q7","Du","o7","U7","nh","mi","uu","Ph","rh","ih","QD","fh","Dh","uh","oD","UD","Qh","DU","L7","s7","y7","oh","l7","h7","c7","w7","g7","d7","pI","uU","B7","VI","f2","EI","eb","N1","Dq","xI","SI","uq","NI","II","oc","Qz","Ex","Uh","Ft","Lh","YP","QU","cA","n1","bD","Qu","TU","Yn","i8","sh","smartsMode","skipCoordinateTemplates","makeHydrogenExplicit","noCactvs","singleDotSeparator","createSmartsWarnings","zc","uZ","oU","v7","F7","S9","ou","LD","k7","m7","CU","b7","yh","lh","bi","hP","Q0","hh","O0","YI","QA","Ni","WI","c0","_u","Th","j7","mA","ch","R7","p7","BQ","M7","C7","wh","gD","ex","Li","sD","_K","ji","UU","Tk","gh","cP","H7","V7","fM","Ri","KL","M9","H1","E7","Px","LU","sU","yU","ix","yD","Ct","R1","S7","we","l0","c1","dh","pr","Z0","Uu","Lu","lD","I7","x7","Ux","ZG","Xi","er","NB","CK","N7","G7","rX","O7","Vtt","q7","$U","z7","K7","J7","XP","Y7","X7","Ps","pi","hD","TD","Z7","$i","Mi","I8","ZP","lU","W7","cD","Bh","xu","hU","vh","_7","WP","$7","Fh","uv","a7","zu","jb","B0","Rt","oA","ze","Fn","wD","HD","bA","qA","tg","dD","kh","_A","O1","D3","eg","Mr","Ag","ng","_P","su","M0","mh","cU","Pg","GU","rg","ig","XB","bh","x8","jh","fg","zh","Dg","p1","Td","ug","cc","Rh","wc","Hi","gl","Er","Ro","yu","zU","lu","hF","jx","RI","rd","sN","iN","QN","wU","Z1","W1","ph","Qg","Mh","db","sx","C0","KU","Ch","C9","jA","hu","Tu","tj","Q6","og","kn","Cx","Hh","m0","w0","Ug","Lg","Hx","Oo","qo","Vh","g5","eS","So","gU","Ji","sg","Sr","yg","UA","d1","TP","cu","wu","Vi","J0","dU","Jtt","BD","PZ","BU","yq","vD","gu","lg","$P","hg","Tg","cg","wg","vU","FD","gg","dg","FU","Eh","Ei","Bg","GA","MA","Sh","z1","k9","kU","Sl","vg","sl","Fg","ID","kg","un","aP","mg","bg","Qf","Nt","EA","Ih","jg","Rg","CA","Ox","pg","Go","CL","Mg","eM","r1t","Cg","Hg","I1","Si","du","Bu","$g","xh","H9","Cv","mU","YU","Vg","bU","vu","jU","Eg","wP","Sg","RU","Ig","xg","Ng","Fu","m2","Ii","s9","N8","Mf","K1","Nh","Jx","R6","Gg","Og","om","tA","Ve","Xn","A0","ku","qg","zg","Gh","Oh","xi","pU","Ue","qh","MU","Kg","Jg","Yg","pf","K2","B9","F9","tf","uJ","HU","Ac","zA","Xg","Zf","nn","Zg","R8","d6","YB","Wg","Kh","U8","t8","jd","_g","N0","G8","dP","Bn","bu","LA","toFixed","ag","U0","td","H0","ed","kD","Ek","QG","ju","e8","VU","Ad","mD","nd","iP","Pd","ve","Dz","fd","Dd","ud","Xq","Zo","pd","Jh","Qd","tW","zn","e0","od","Yh","E9","iL","NY","EU","gP","Xh","g8","Ru","d8","Ud","V9","Zh","W0","Uo","O8","wn","Gi","gn","i0","q8","Wh","v8","r0","A8","_h","$h","Qn","DF","sA","aA","LL","Ld","pL","fN","Jt","hE","xd","lE","yE","FJ","SU","dL","uN","Nb","Wq","ah","wv","OL","IU","m6","b1","e3","z8","PP","backingJsObject","mn","eA","LN","yd","A3","ld","n3","QS","pu","hd","xU","eT","kc","TN","jD","$H","TE","Mu","D$","Ot","g0","Y1","b0","t$","ktt","NU","XA","Pe","cd","createSymmetryRank","considerStereoheterotopicity","encodeAtomCustomLabels","encodeAtomSelection","assignParitiesToTetrahedralN","coordsAre3d","createPseudoStereoGroups","distinguishRacemicOrGroups","tieBreakFreeValenceAtoms","encodeAtomCustomLabelsWithoutRanking","neglectAnyStereoInformation","q1","i$","wd","ep","gd","dd","bn","K8","Bd","Fd","OU","r3","RL","Oi","Cu","An","qU","I9","vN","MY","Jp","RD","n8","FN","Rd","pD","aF","kN","yb","kd","Tj","md","Xc","Yc","Vc","Uc","Wc","ss","dZ","bd","x9","MD","Hu","Mk","i3","Zn","Md","Pt","bN","Cd","Hd","LR","Vd","$8","EO","CD","I5","qi","Ed","AA","tG","gx","f3","$B","qD","Sd","Id","F2","Nd","e1","SN","ub","Gd","Vu","Od","qd","zd","uF","oR","u3","BP","Kd","Jd","Yd","JU","Xd","HT","J8","wz","fT","Hc","Zd","Wd","ringMatchMode","iE","tX","N9","Kc","e9","XU","JO","I3","IN","R0","M1","IA","o3","_d","xt","$d","n0","G9","m8","ZU","Gu","Yu","rB","qN","fb","ND","Y9","k3","xB","nA","K3","_D","G3","rm","zj","qT","Qv","kB","HF","UY","hI","cI","nl","Pl","rl","il","S5","ni","qn","QP","DP","Nq","TI","_n","Ml","U9","a8","hf","wk","ab","SV","FT","$5","lA","ntt","l3","iY","sK","$R","t6","UL","J3","m$","KD","Al","tk","c4","Lc","PL","Z9","NX","Mb","rZ","eX","Ib","rz","ly","Pf","W4","c8","KW","oK","Jz","Ty","hA","V3","GP","As","GD","hb","kb","ib","lb","Ie","WD","nL","F5","AE","nE","dG","as","T1t","pB","VD","ad","tB","zi","WU","U3","O9","eB","L3","k5","Zc","AB","O3","fF","nB","Ki","Gc","_U","Mc","ED","Wn","En","q0","Pn","wG","PB","Dk","_N","RF","YL","iB","l6","Yy","fB","SD","CT","y3","Vs","DB","uB","py","q9","z9","QB","$4","rM","Fc","mO","aU","oB","Dc","pj","UB","P8","Eu","j1","D0","OA","cF","Y3","d_","Va","ht","wt","o1","oi","wQ","dn","mT","t1t","Ntt","G_","Su","LB","Ub","tL","Y8","Gt","$A","eL","vP","iG","wL","Sx","Ev","fG","tr","U1","$n","$c","h3","L1","f1","sB","vc","N8t","yB","G8t","lB","O8t","hB","$F","$D","El","FP","VQ","NL","TB","K9","oG","cB","si","W8","qt","qL","EW","r8","wB","BA","gB","AL","c3","aR","w3","xD","vL","dB","BB","Jj","Cb","G0","p5","yX","vB","Zk","X8","FB","g3","Iu","Es","d3","mB","g6","bo","$b","E1","vi","In","n9","V0","KQ","$9","em","vT","m_","Qi","fR","jP","ys","_k","IQ","v2","me","mP","u6","Jo","x$","bB","A1","Qt","bt","S1","D1","o0","V1","Vj","i1t","Z8","jB","l8","gG","RB","kP","yA","Bc","MB","Cc","xA","Yi","B3","f8","Ju","jn","J9","v3","zL","CB","matchAtomCharge","matchAtomMass","matchDBondToDelocalized","matchAromDBondToDelocalized","AZ","HB","VB","EB","an","Uf","_8","rL","My","F3","MG","IB","fL","v0","CG","VG","J1","m3","Ou","D8","Ku","GB","gZ","Zi","It","OB","b3","x4","DL","qB","zB","Yq","uL","zb","j3","SP","QL","K0","Nu","SG","Rn","oL","KB","NG","Ip","ZQ","aj","RZ","fy","RX","Qs","R3","GG","z1t","e5","vY","Qx","p3","Sn","OG","JB","xb","ML","Eo","ZB","$t","WB","OD","Jc","Ic","fJ","_B","aB","pn","NA","X9","u8","tv","ev","Av","qu","M3","k6","PS","af","AS","NE","nS","GE","rS","OE","C3","N3","F0","Wi","tO","r9","Y2","H3","Ry","sL","nv","yL","Mn","Q8","lL","E3","Pv","en","pT","a0","i9","S3","rv","Nj","oj","KT","Ttt","iv","y9","n2","bP","hL","fv","Cs","SR","Dv","V4","JE","Is","E4","YE","rE","XE","y_","Tc","E6","S6","fO","$k","oO","zD","o8","pP","Tt","Cn","TL","hO","x3","ov","Fb","Uv","Lv","sv","yv","lv","hv","Tv","cv","_0","pA","wO","lG","hG","TG","gO","W9","_9","_i","G1","gv","Am","cL","Ez","jN","EF","JJ","Hn","removeAtIndex","JD","dv","Bv","TT","q3","vv","Fv","rQ","g1","f0","kv","k2","JA","z3","HX","mv","bv","BO","Op","Ra","vO","iS","pb","kq","sJ","VN","Fq","Yx","ZO","$T","ti","oP","UP","gN","Bq","jv","Rv","YD","gL","X3","RA","Z3","MS","pv","sF","Mv","BL","getAtIndex","W3","Hv","lJ","Hm","TA","Ec","Vv","l1","k0","$6","Xu","CI","pJ","RP","Ks","Zu","bb","IE","xG","xE","pl","$u","_$","_3","Wu","YT","Sv","Iv","u9","xv","$3","FL","Nv","NO","pc","yn","ws","yW","a3","Mz","Tb","DG","zx","aq","qc","r5","Ul","yN","tT","Gv","Ov","cb","cs","oM","tP","Wk","K_","qv","iM","Un","kL","XQ","B2","OY","YQ","bT","p$","OO","zv","Kv","Jv","GN","mL","bL","Yv","jL","IY","Xv","vm","Cj","AT","a9","Zv","Wv","Kq","RR","_v","j5","sk","$v","av","bG","XD","nT","JQ","k$","iW","tF","eF","AF","nF","HL","PA","VL","X_","Zm","EL","PF","ke","SL","WO","_O","M6","Ja","rF","iF","IL","Qc","PT","ZD","rT","iT","xL","K8t","xn","V6","LM","Qm","QF","oF","tq","sn","_1","au","L8","tQ","wl","GL","UF","Mj","LF","rq","cG","BS","vS","FS","yF","__elementTypeCategory$","DT","lF","Kb","$s","zT","ln","Us","__elementTypeId$","uT","nc","TF","Uq","Lq","sq","Wp","A4","dM","h9","T9","c9","w9","g9","w8","Vf","mj","xa","L9","jp","O$","v5","Ltt","yY","QT","lT","oT","DM","wF","lc","gF","ef","cn","UT","hq","Tq","LT","dF","IO","Bj","dq","Bb","Yp","BF","vF","gc","fS","B8","dc","eQ","FF","kF","rA","ei","mF","dj","bj","sT","JL","bF","jF","Vq","RT","XL","yT","eP","VA","AQ","Rq","pq","Qb","LX","ZL","jo","PO","pF","nQ","dE","BE","xq","MF","w1","WL","CF","VF","Zz","Xz","PJ","_L","SF","IF","vn","p8","$L","xF","Xb","hT","vtt","Tf","HA","_6","Ftt","Z5","ik","PQ","d2","f9","eN","tN","tb","fa","Bm","NF","NN","dm","GF","QO","YA","Hf","ho","zf","rs","HQ","pa","OF","qJ","qF","aD","iQ","hn","fQ","nr","Me","itt","ip","m1","rP","dA","E0","my","uP","hi","lr","xT","NP","d9","F8","Fs","W$","k8","l9","Z6","xf","Po","Nf","M2","m1t","zF","hy","AP","Af","aL","KF","ts","rf","nf","JF","YF","XF","es","gs","ZF","WF","t9","cT","ns","zW","Wb","_F","kT","Ws","yS","sS","YK","c_","ek","Re","Vn","Ns","sz","wT","DQ","Ak","nk","gT","N2","_Z","Pk","Ts","dT","xP","rk","BT","zz","Tz","fk","cz","WT","Ln","D9","uk","wA","ER","R2","j2","If","KA","sR","PR","kE","d1t","uQ","Qk","Fz","__java$exception","ok","Kk","Uk","Lk","qP","f1t","jz","yk","lk","$1","pz","Rk","hc","QY","KE","hk","Hz","Vz","Gs","QQ","Sz","MP","toArray","oQ","ck","xj","w2","gk","Oz","Kz","IJ","Kn","Bk","jT","UQ","contains","Rb","vk","QM","hl","Fk","EG","uK","az","LQ","sQ","mk","yQ","eK","Ik","bk","nK","jk","fs","j1t","s8","xl","Dt","A9","Oe","uA","tS","WE","aE","j8","_E","$E","ll","ZE","i4","f4","D4","lQ","kS","Xo","pk","q2","V2","rK","k1","ba","nM","Ck","iK","Hk","e2","fK","DK","Vk","ON","fm","UM","Ds","Lj","Sk","Oc","Pc","hQ","us","xk","Nk","Gk","fY","Ok","TQ","o9","qk","zk","Pp","Jk","MT","uM","Wf","ME","dQ","wK","cR","fZ","os","CP","cJ","IT","gM","cQ","Yk","Xk","r_","YZ","nP","c1t","ff","CN","Sb","p1t","R1t","cE","Nz","VT","VO","pK","DY","I4","kY","TY","ET","Da","vz","ak","A2","mS","yO","gQ","tm","ST","Df","uf","VK","xx","Nx","rO","nm","vf","EK","Hb","Pm","kQ","SK","Ls","IK","wo","wa","x8t","tZ","SQ","h$","OR","hp","uY","GT","aV","xp","Dm","um","zE","pE","z8t","UE","G4","dl","gi","$j","Um","XK","OT","xK","Lm","GK","DA","gX","F1t","Ya","fz","_m","sa","sm","dJ","ym","pQ","TW","OK","Oy","lm","KK","cO","XR","Ej","hm","JK","atan","Qo","Tm","J6","Lb","Y6","LS","$0","cm","fP","WK","A6","DR","v_","wm","Hj","gm","Py","_p","da","NT","c6","m4","b8","VE","ay","tl","b4","ZV","el","j4","R4","WV","p4","_V","$V","s5","di","Ti","cy","wy","gy","dy","N6","G6","Do","By","vy","O6","q6","z6","Sf","Ef","On","Ao","ko","y1t","v1t","SE","r2","LP","o2","X1","Fy","Itt","_tt","RK","U6","i5","Fm","km","mm","bm","rG","Bx","tJ","sO","eJ","Ly","yc","zY","jQ","AJ","jm","Bs","P9","Rm","sc","wi","XV","Aj","ca","A1t","b2","jc","Ztt","toPrecision","Mm","of","Cm","ls","QJ","oJ","Pi","Vm","hs","HP","hJ","TJ","Em","vQ","Sm","gJ","Im","xm","xZ","VP","Nm","vJ","aZ","Gm","K6","fA","C2","Om","Co","FQ","RQ","Oj","v$","ej","Ys","k_","Xtt","qY","Ms","kJ","aY","MR","m5","OJ","gY","qm","C1t","M1t","H1t","JT","mJ","bJ","ob","hashCode","RJ","i2","Gb","tn","zm","Km","Jm","acos","XT","MJ","mN","HJ","Ym","ZT","ZJ","Xm","mQ","qW","bC","go","btt","L1t","Wm","xJ","_T","x5","ec","Mo","a4","tc","vE","C$","dN","$m","j0","EP","vb","wb","XJ","D2","_J","IP","RG","mf","Att","vs","Ab","yo","y8","U5","aJ","Gn","Zb","nb","nY","gA","De","Pb","Lf","rb","oY","ml","kl","Fl","bl","Io","jl","containsKey","Db","aT","mb","equals","bE","wX","bQ","Rl","O1t","xo","$p","yJ","jX","XW","jZ","qR","vX","YV","Q9","IW","jtt","wj","hY","cY","sf","_j","Rf","t5","qb","vA","lX","yf","sb","c2","YW","MQ","FR","lf","Wj","iy","G5","A5","n5","kR","Kj","gb","wE","CY","bX","YY","HY","Jf","ks","u2","SY","d0","GY","Up","Hs","PX","f5","J2","Ba","XY","D5","bs","js","WY","Fj","Bo","Rs","cl","Nc","u5","_b","CQ","z4","o5","ps","uS","FA","DS","lY","Vb","Cy","U2","aQ","L_","oy","Aa","EQ","fi","Eb","L5","Uy","bp","oX","XZ","y5","kf","h5","Ob","TX","cX","jI","iR","Az","l5","GQ","Jb","FX","kX","dK","Yb","Z$","FK","lK","ic","suppressed","pX","gf","c5","w5","HE","d5","I2","FE","mc","GX","xN","Ptt","x1t","gS","hS","lS","TS","cS","wS","B5","Gz","tz","tY","v9","eY","nj","ZX","Nn","qE","WX","L0","execScript","L2","Ss","S4","u_","X2","Yo","qK","VY","Pj","rj","h8","ij","fj","pR","OI","bI","Dj","pS","H2","i6","I_","Y_","jW","WZ","uj","cf","nZ","Qj","dS","b5","DZ","a1","R5","Uj","lq","sj","Lo","IR","wf","UR","$Q","L6","yj","lj","hj","wZ","M5","xs","xQ","C5","cj","oz","vZ","H5","NQ","V5","tp","FZ","e1t","o$","s$","Fo","kZ","E5","l2","h2","A$","z_","gj","Gj","MZ","PG","wx","jq","kK","SZ","IZ","Os","OQ","dX","GZ","qs","JZ","np","uR","zs","fc","rc","F4","uc","Ho","Vo","a6","mC","$Z","qQ","Sy","hM","CJ","VZ","gW","_s","Gtt","eW","AW","vj","rtt","Wtt","PW","rW","kj","df","uW","jj","Rj","QW","k4","CE","hK","UW","LW","sW","lW","hW","Rc","H6","M4","PE","Sj","Ij","dW","nJ","iA","Vl","uX","Ko","Pq","Ha","N5","BW","FW","Bf","or","bW","Cp","rY","EJ","qj","CW","HW","VW","E1t","O5","Js","Yj","NW","Xj","q5","OW","Zj","z5","mW","cZ","MW","ey","ua","Uz","K5","J5","tR","Hp","$y","eR","RS","bS","jS","Y5","Gy","d4","s4","LC","X5","AR","nR","aK","W5","Zs","S_","Fp","h6","zG","jK","V$","A_","P_","ka","g2","EZ","T$","n1t","Fa","i_","f_","Q_","o_","zQ","_5","H_","XG","U_","Dp","ci","DX","Ytt","F6","s_","rR","Ff","h_","Fi","uE","TR","P$","vp","$$","a_","QR","ky","w_","a5","g_","b_","yR","lR","hR","j_","R_","Mq","_q","e6","wR","p_","m9","tD","Ny","Kp","V_","aX","n6","E_","gK","Lx","vx","Xs","ctt","x_","iX","gR","dR","J_","BR","P6","yy","vR","Xy","CZ","atan2","jR","HS","sE","__","$_","SW","Gq","J4","nW","o1t","GW","e$","jJ","Zp","J$","b$","z$","ta","Lz","gtt","Ma","n$","r$","sM","sY","sr","LJ","V1t","mR","r6","bR","lN","u$","Q$","U$","f6","y$","CR","HR","yZ","w$","NR","VR","vI","p6","D6","g$","iZ","jf","bf","F$","W_","yM","j$","R$","xR","M$","E$","GR","L$","yp","FG","b6","KR","BG","Ep","vG","X$","M_","Z_","S$","T8","N$","G$","Qy","Wy","_R","xtt","Ett","YR","ny","zR","jE","eG","dx","za","rp","PM","CS","la","Y$","pY","B1t","ry","ztt","fX","c$","Oa","kp","na","ltt","lastIndex","JR","zC","TM","HZ","YC","ZC","a$","BX","JX","mtt","B6","zo","ia","Sa","WJ","q_","Tp","Ktt","Bz","EY","Mtt","ja","La","ea","ty","ZR","WR","JW","Qp","_W","_y","YX","Utt","Rtt","cr","Yf","Ua","AO","rN","o6","ya","LY","UJ","Ay","Ka","oa","g1t","fp","C_","Vp","Ca","B_","f$","ptt","ftt","SJ","op","To","FO","Np","KG","PC","JG","Ui","I6","x6","tan","Ap","ZK","NZ","F_","WQ","l1t","P1t","_Q","Xf","o4","s6","y6","S1t","ma","wp","O4","mE","aN","XX","Lp","$W","ZY","pC","MC","CC","HC","RY","VC","fq","EC","SC","hX","IC","kW","xC","t_","NC","VX","vl","$f","I1t","Y4","Dy","uy","Tl","JY","gp","Btt","Na","mX","Ga","KZ","UO","LE","yG","Bp","iz","Za","aW","SX","O_","UX","zp","yl","QE","_a","E2","mz","DW","Gp","aa","htt","Yz","ett","sy","Mp","EE","lM","mp","utt","MN","YJ","No","eZ","tE","eE","qG","stt","Rp","w6","oS","US","bc","pp","S0","wtt","Iy","bq","jC","Sp","ZW","uz","MI","oW","Y8t","h1t","wY","X8t","N_","asin","Qa","RW","Stt","S2","u4","CM","kI","qp","K4","mZ","u1t","_G","UK","fx","Ia","QX","Ott","$J","tM","BY","Xp","ra","Ta","Ctt","dtt","dY","lZ","X6","OX","Q1t","HK","e4","UZ","Mx","q1t","nX","v6","GV","z2","X4","Z4","D1t","OZ","RM","U4","qy","L4","OM","qM","zM","zy","y4","KM","l4","h4","JM","YM","XM","ZM","WM","_M","$M","aM","tC","eC","AC","nC","rC","w4","iC","fC","DC","uC","g4","QC","oC","UC","Ky","B4","sC","yC","lC","hC","TC","cC","Jy","wC","gC","v4","dC","BC","vC","FC","kC","C4","H4","fl","Dl","Kf","U1t","eO","ott","k1t","$tt","att","K$","_I","s1t","D_","T_","n_","q4","Hy","Vy","Ey","F1","h0","Y0","ZA","p0","B1","kA","nG","AM","UN","w1t","pW","Wa","e_","l$","HM","VM","EM","SM","IM","xM","NM","GM","gE","_4","M8","sP","yP","rn","Jn","fn","cM","wM","t4","j6","$Y","FM","kM","mM","bM","jM","r4","fW","va","KV","JV","WW","AK","xz","sZ","b9","eD","r1","C8","AD","nD","PD","C6","Bl","WC","_C","$C","aC","tH","eH","AH","nH","PH","rH","iH","fH","DH","uH","QH","oH","UH","LH","sH","yH","lH","hH","TH","cH","wH","gH","dH","BH","vH","FH","kH","mH","bH","jH","RH","pH","MH","CH","HH","VH","EH","SH","IH","xH","NH","GH","OH","qH","zH","KH","JH","YH","XH","ZH","WH","_H","aH","tV","eV","AV","nV","PV","rV","iV","fV","DV","uV","QV","oV","UV","LV","sV","yV","lV","hV","TV","cV","wV","gV","dV","BV","vV","FV","kV","mV","bV","jV","RV","_f","HV","OV","qV","IV","zV","EV","Sc","xc","Nl","Gl","Dn","_c","tw","ew","Aw","nw","Pw","rw","iw","fw","zP","Dw","H8","Z2","W2","SS","Ol","IS","xS","NS","GS","i1","uw","OS","qS","zS","j9","KS","KP","_2","ql","Wo","JS","lP","zl","YS","_o","XS","$o","ZS","qO","V8","vW","pV","MV","Zy","CV","VV","Ht","__moduleStartupDone","Tn","Cf","by","W6","jy","n4","xy","BM","vM","pM","MM","Gf","Of","RC","vo","OP","GC","OC","qC","KC","JC","XC","xV","NV","qf","ul","fE","DE","Ql","N4","G2","ol","oE","Ll","O2","goog","pN","MO","mK","addAll","containsAll","isEmpty","removeAll","retainAll","addAtIndex","addAllAtIndex","dz","setAtIndex","subList","AY","bZ","YO","XO","compareTo","ordinal","N1t","$z","RE","Oq","Jq","G1t","_z","qZ","pZ","Zq","MK","GI","EX","drawDottedLine","bO","getCanMolecule","ga","getEncodedCoordinates","getEncodedMapping","getFinalRank","getGraphAtoms","yx","getGraphIndexes","getIDCode","hasCIPParityDistinctionProblem","invalidateCoordinates","normalizeEnantiomer","setParities","getConformerCount","getNextConformerAsMolecule","HG","getOneConformerAsMolecule","getPotentialConformerCount","Kx","wW","initializeConformers","strategy","maxTorsionSets","use60degreeSteps","assessDruglikeness","q$","getDetail","CO","getDruglikenessString","QZ","_minimise","getTotalEnergy","hx","e0t","A0t","n0t","getAllCommonSubstructures","Cl","getMCS","Iz","getScore","Cq","addFragment","kO","addMissingChirality","addMolecule","addOrChangeAtom","addOrChangeBond","addRing","addRingToAtom","addRingToBond","addSubstituent","calculateTorsion","canonizeCharge","center","Wz","changeAtom","changeAtomCharge","changeBond","convertStereoBondsToSingleBonds","copyAtom","copyBond","copyMoleculeByAtoms","copyMoleculeByBonds","copyMoleculeProperties","deleteAtom","deleteAtomOrBond","deleteAtoms","cK","deleteBond","DN","deleteBondAndSurrounding","deleteMarkedAtomsAndBonds","deleteMolecule","deleteSelectedAtoms","findAlleneCenterAtom","findAlleneEndAtom","findAtom","findBINAPChiralityBond","findBond","findRingSystem","getAbsoluteAtomParity","getAbsoluteBondParity","rx","Rx","getAllBonds","getAllConnAtomsPlusMetalBonds","getAllHydrogens","getAromaticRingCount","Hq","getAtomAbnormalValence","getAtomCIPParity","getAtomCharge","getAtomColor","getAtomCustomLabel","getAtomESRGroup","getAtomESRType","getAtomList","getAtomListString","getAtomMapNo","getAtomPi","getAtomQueryFeaturesObject","aromatic","notAromatic","notChain","not2RingBonds","not3RingBonds","not4RingBonds","noMoreNeighbours","moreNeighbours","matchStereo","not0PiElectrons","not1PiElectron","not2PiElectrons","not0Hydrogen","not1Hydrogen","not2Hydrogen","not3Hydrogen","not0Neighbours","not1Neighbour","not2Neighbours","not3Neighbours","not4Neighbours","notChargeNeg","notCharge0","noChargePos","ringSize0","ringSize3","ringSize4","ringSize5","ringSize6","ringSize7","ringSizeLarge","qtt","getAtomRadical","getAtomRingBondCount","getAtomRingCount","getAtomRingSize","getAtomX","getAtomY","getAtomZ","getAverageBondLength","getAverageTopologicalAtomDistance","ZZ","getBond","getBondAngle","getBondBridgeMaxSize","getBondBridgeMinSize","getBondCIPParity","getBondESRGroup","getBondESRType","getBondLength","getBondOrder","getBondParity","getBondPreferredStereoBond","jY","getBondQueryFeatures","getBondQueryFeaturesObject","single","double","triple","delocalized","metalLigand","quadruple","quintuple","notRing","ring","nonAromatic","ringSize","brigdeMin","brigdeSpan","H$","getBondRingSize","getBondType","getBondTypeSimple","getBonds","pG","getCenterOfGravity","Rz","getChiralText","getChirality","getConnAtoms","getConnBond","getConnBondOrder","getCoordinates","getDefaultMaxValenceUncharged","Iq","AX","getElectronValenceCorrection","getExcludedNeighbourCount","getExplicitHydrogens","getFinalRanks","getFisherProjectionParity","getFragmentAtoms","getFragmentNumbers","getFragments","mq","getFreeValence","getHandleHydrogenMap","getHelperArrayStatus","getHoseCodes","maxSphereSize","BK","getIDCoordinates","yz","getImplicitHigherValence","getImplicitHydrogens","getIndex","$N","getLowestFreeValence","getMaxAtoms","getMaxBonds","getMaxValence","getMaxValenceUncharged","getMetalBondedConnAtoms","getMolecularFormula","getMoleculeColor","getMolweight","bY","getName","getNonHydrogenNeighbourCount","getNumberOfHydrogens","tK","getOccupiedValence","getPath","getPathBonds","getPathLength","getRingSet","getRotatableBondCount","getStereoCenterCount","getStereoProblem","getSubstituent","getSubstituentSize","getZNeighbour","invalidateHelperArrays","HI","skipDefaultTemplates","keepMarkedAtomCoordinates","preferMarkedAtomCoordinates","seed","is3D","isAlkaliMetal","Aq","isAllylicAtom","nN","isAmideTypeBond","qX","isAromaticAtom","isAromaticBond","isAtomConfigurationUnknown","isAtomMarkedForDeletion","Vx","isAtomParityPseudo","isAutoMappedAtom","isBINAPChiralityBond","isBondBackgroundHilited","isBondBridge","isBondForegroundHilited","isBondMarkedForDeletion","Gx","isBondParityPseudo","isBondParityUnknownOrNone","isChalcogene","isDelocalizedBond","isEarthAlkaliMetal","nq","isElectronegative","isElectropositive","KY","isFlatNitrogen","isFragment","isHalogene","xO","isMarkedAtom","isMetalAtom","isNaturalAbundance","isNitrogenFamily","isOrganicAtom","isPseudoRotatableBond","isPurelyOrganic","MX","isRingAtom","isRingBond","isSelectedAtom","isSelectedBond","isSimpleHydrogen","lz","isSmallRingAtom","isSmallRingBond","isStabilizedAtom","PN","isStereoBond","markAtomForDeletion","markBondForDeletion","JI","normalizeAmbiguousBonds","removeAtomColors","removeAtomCustomLabels","removeAtomMarkers","removeAtomSelection","sG","removeBondHiliting","removeExplicitHydrogens","removeQueryFeatures","renumberESRGroups","rotate","jG","scaleCoords","setAllAtoms","XI","setAllBonds","ZI","setAssignParitiesToNitrogen","Fx","setAtomAbnormalValence","setAtomCIPParity","setAtomColor","setAtomConfigurationUnknown","setAtomList","setAtomMarker","setAtomQueryFeature","setAtomRadical","setAtomSelection","setBondBackgroundHiliting","UG","setBondCIPParity","setBondESR","setBondForegroundHiliting","LG","setBondOrder","setBondParity","setBondParityUnknownOrNone","setBondQueryFeature","setChirality","setCoordinates","setHelperValidity","gI","setHydrogenProtection","dI","setMaxAtoms","setMaxBonds","setMoleculeColor","BI","setName","setParitiesValid","setStereoBondFromAtomParity","setStereoBondFromBondParity","setStereoBondsFromParity","setToRacemate","setUnknownParitiesToExplicitlyUnknown","shareSameFragment","stripIsotopInfo","zK","stripSmallFragments","stripStereoInformation","suggestBondType","JN","supportsImplicitHydrogen","swapAtoms","swapBonds","toIsomericSmiles","createSmarts","includeMapping","kekulizedOutput","toMolfileV3","toSVG","maxAVBL","inflateToMaxAVBL","inflateToHighResAVBL","chiralTextBelowMolecule","chiralTextAboveMolecule","chiralTextOnFrameTop","chiralTextOnFrameBottom","B$","noTabus","showBondNumber","highlightQueryFeatures","showMapping","suppressChiralText","suppressCIPParity","suppressESR","noCarbonLabelWithCustomLabel","noAtomCustomLabels","showSymmetryAny","showSymmetrySimple","showSymmetryStereoHeterotopicity","noImplicitAtomLabelColors","noStereoProblem","noColorOnESRAndCIP","noImplicitHydrogen","drawBondsInGray","ha","toSmarts","toSmiles","translate","nO","translateCoords","zoomAndRotate","zoomAndRotateInit","L0t","y0t","h0t","c0t","w0t","g0t","d0t","G0t","K0t","_0t","$0t","a0t","tet","eet","Pet","ret","iet","fet","oet","Uet","yet","Tet","wet","det","vet","Fet","ket","bet","jet","pet","Met","Cet","Vet","Eet","Get","Oet","Jet","Yet","Xet","Zet","Wet","_et","$et","aet","PAt","rAt","iAt","fAt","uAt","QAt","LAt","RAt","pAt","HAt","IAt","zAt","WAt","_At","ent","unt","Cnt","Hnt","Vnt","Ent","Snt","Int","acceptorCount","zq","donorCount","bz","logP","logPString","Qtt","logS","IX","logSString","Pa","polarSurfaceArea","gq","polarSurfaceAreaString","rotatableBondCount","stereoCenterCount","addCatalyst","addCatalystAt","ox","addProduct","addProductAt","Wx","addReactant","addReactantAt","_x","clone","getCatalyst","px","getCatalysts","getHighestMapNo","getMergedCopy","oZ","getMolecules","YN","AN","getProduct","getProducts","getReactant","getReactants","getReactionCenterMapNos","Htt","hZ","kx","isPerfectlyMapped","ttt","isReactionLayoutRequired","I$","removeCatalysts","BJ","mI","toRxn","toRxnV3","cW","validateMapping","qa","setReactant","d$","determineAromaticity","getAtomIndex","getBondIndex","$q","getHeteroPosition","Dx","getRingAtoms","getRingBonds","getRingSize","getSharedRing","isAromatic","isAtomMember","isBondMember","isDelocalized","ux","qualifiesAsAmideTypeBond","validateMemberIndex","getField","AG","getFieldData","getFieldNames","zN","_Y","getNextFieldData","getNextMolFile","$a","findFragmentInMolecule","countMode","BZ","getMatchList","yK","isFragmentInMolecule","setMol","createIndex","zX","DO","uO","getSmartsWarning","lO","KN","parseMolecule","noCoordinates","noStereo","parseReaction","dO","setRandomSeed","FI","assessRisk","xW","Ea","applyTransformation","qz","TZ","absoluteWeight","cq","formula","vK","relativeWeight","wq","clearAll","getGenericEditorArea","getMode","getReaction","moleculeChanged","zO","bK","toolChanged","mG","build16x16CursorImage","_X","createNativeDialog","createPopupMenu","openChemistryFile","oq","NK","sX","IG","kG","EN","QK","q8t","aG","getOrDefault","putIfAbsent","put","containsValue","keySet","putAll","XN","$O","iO","qq","Ix","$G","J8t","Il","oN","xY","YG","KX","Dtt","PY","BACKBONE","NORMAL","NOSTEREO","NOSTEREO_TAUTOMER","TAUTOMER","STRATEGY_ADAPTIVE_RANDOM","STRATEGY_LIKELY_RANDOM","STRATEGY_LIKELY_SYSTEMATIC","STRATEGY_PURE_RANDOM","calculate","zZ","DRUGLIKENESS_UNKNOWN","MMFF94","MMFF94S","MMFF94SPLUS","EDITOR_EVENT_HIGHLIGHT_ATOM_CHANGED","EDITOR_EVENT_HIGHLIGHT_BOND_CHANGED","EDITOR_EVENT_MOLECULE_CHANGED","EDITOR_EVENT_SELECTION_CHANGED","HOTSPOT_16","IMAGE_DATA_16","KEY_BACK_SPACE","MODE_DRAWING_OBJECTS","MODE_MARKUSH_STRUCTURE","TableLayoutFill","TableLayoutPreferred","cChainCursor","cDeleteCursor","cFistCursor","cHandCursor","cHandPlusCursor","cInvisibleCursor","cLassoCursor","cLassoPlusCursor","cPointedHandCursor","cSelectRectCursor","cSelectRectPlusCursor","cZoomCursor","CANONIZER_ASSIGN_PARITIES_TO_TETRAHEDRAL_N","CANONIZER_CONSIDER_DIASTEREOTOPICITY","CANONIZER_CONSIDER_ENANTIOTOPICITY","CANONIZER_CONSIDER_STEREOHETEROTOPICITY","CANONIZER_COORDS_ARE_3D","CANONIZER_CREATE_PSEUDO_STEREO_GROUPS","CANONIZER_CREATE_SYMMETRY_RANK","CANONIZER_DISTINGUISH_RACEMIC_OR_GROUPS","CANONIZER_ENCODE_ATOM_CUSTOM_LABELS_WITHOUT_RANKING","CANONIZER_ENCODE_ATOM_SELECTION","CANONIZER_NEGLECT_ANY_STEREO_INFORMATION","CANONIZER_TIE_BREAK_FREE_VALENCE_ATOMS","FISCHER_PROJECTION_LIMIT","FISCHER_PROJECTION_RING_LIMIT","STEREO_ANGLE_LIMIT","VALIDATION_ERRORS_STEREO","VALIDATION_ERROR_AMBIGUOUS_CONFIGURATION","VALIDATION_ERROR_ESR_CENTER_UNKNOWN","VALIDATION_ERROR_OVER_UNDER_SPECIFIED","cAtomCIPParityNone","cAtomCIPParityProblem","cAtomCIPParityRorM","cAtomCIPParitySorP","cAtomColorBlue","cAtomColorDarkGreen","cAtomColorDarkRed","cAtomColorGreen","cAtomColorMagenta","cAtomColorNone","cAtomColorOrange","cAtomColorRed","cAtomLabel","cAtomParityIsPseudo","cAtomQFAny","cAtomQFAromState","cAtomQFAromStateBits","cAtomQFAromStateShift","cAtomQFAromatic","cAtomQFCharge","cAtomQFChargeBits","cAtomQFChargeShift","cAtomQFDepictedFeatures","cAtomQFENeighbourBits","cAtomQFENeighbourShift","cAtomQFENeighbours","cAtomQFExcludeGroup","cAtomQFFlatNitrogen","cAtomQFHeteroAromatic","cAtomQFHydrogen","cAtomQFHydrogenBits","cAtomQFHydrogenShift","cAtomQFIsNotStereo","cAtomQFIsStereo","cAtomQFMatchStereo","cAtomQFMoreNeighbours","cAtomQFNarrowing","cAtomQFNeighbourBits","cAtomQFNeighbourShift","cAtomQFNeighbours","cAtomQFNewRingSize","cAtomQFNewRingSizeBits","cAtomQFNewRingSizeShift","cAtomQFNoMoreNeighbours","cAtomQFNoOfBits","cAtomQFNot0ENeighbours","cAtomQFNot0Hydrogen","cAtomQFNot0Neighbours","cAtomQFNot0PiElectrons","cAtomQFNot1ENeighbour","cAtomQFNot1Hydrogen","cAtomQFNot1Neighbour","cAtomQFNot1PiElectron","cAtomQFNot2ENeighbours","cAtomQFNot2Hydrogen","cAtomQFNot2Neighbours","cAtomQFNot2PiElectrons","cAtomQFNot2RingBonds","cAtomQFNot3ENeighbours","cAtomQFNot3Hydrogen","cAtomQFNot3Neighbours","cAtomQFNot3RingBonds","cAtomQFNot4ENeighbours","cAtomQFNot4Neighbours","cAtomQFNot4RingBonds","cAtomQFNotAromatic","cAtomQFNotChain","cAtomQFNotCharge0","cAtomQFNotChargeNeg","cAtomQFNotChargePos","cAtomQFPiElectronBits","cAtomQFPiElectronShift","cAtomQFPiElectrons","cAtomQFRingSize0","cAtomQFRingSize3","cAtomQFRingSize4","cAtomQFRingSize5","cAtomQFRingSize6","cAtomQFRingSize7","cAtomQFRingSizeLarge","cAtomQFRingState","cAtomQFRingStateBits","cAtomQFRingStateShift","cAtomQFRxnParityBits","cAtomQFRxnParityHint","cAtomQFRxnParityInvert","cAtomQFRxnParityRacemize","cAtomQFRxnParityRetain","cAtomQFRxnParityShift","cAtomQFSimpleFeatures","cAtomQFSmallRingSize","cAtomQFSmallRingSizeBits","cAtomQFSmallRingSizeShift","cAtomQFStereoState","cAtomQFStereoStateBits","cAtomQFStereoStateShift","cAtomRadicalState","cAtomRadicalStateD","cAtomRadicalStateNone","cAtomRadicalStateS","cAtomRadicalStateShift","cAtomRadicalStateT","cAtomValence","cBondCIPParityEorP","cBondCIPParityNone","cBondCIPParityProblem","cBondCIPParityZorM","cBondParityEor1","cBondParityNone","cBondParityUnknown","cBondParityZor2","cBondQFAllFeatures","cBondQFAromState","cBondQFAromStateBits","cBondQFAromStateShift","cBondQFAromatic","cBondQFBondTypes","cBondQFBondTypesBits","cBondQFBondTypesShift","cBondQFBridge","cBondQFBridgeBits","cBondQFBridgeMin","cBondQFBridgeMinBits","cBondQFBridgeMinShift","cBondQFBridgeShift","cBondQFBridgeSpan","cBondQFBridgeSpanBits","cBondQFBridgeSpanShift","cBondQFDelocalized","cBondQFDepictedFeatures","cBondQFDouble","cBondQFMatchFormalOrder","cBondQFMatchStereo","cBondQFMetalLigand","cBondQFNarrowing","cBondQFNoOfBits","cBondQFNotAromatic","cBondQFNotRing","cBondQFQuadruple","cBondQFQuintuple","cBondQFRareBondTypes","cBondQFRareBondTypesBits","cBondQFRareBondTypesShift","cBondQFRing","cBondQFRingSize","cBondQFRingSizeBits","cBondQFRingSizeShift","cBondQFRingState","cBondQFRingStateBits","cBondQFRingStateShift","cBondQFSimpleFeatures","cBondQFSingle","cBondQFTriple","cBondTypeCross","cBondTypeDeleted","cBondTypeDelocalized","cBondTypeDown","cBondTypeIncreaseOrder","cBondTypeMaskSimple","cBondTypeMaskStereo","cBondTypeMetalLigand","cBondTypeQuintuple","cChiralityDiastereomers","cChiralityEpimers","cChiralityIsomerCountMask","cChiralityKnownEnantiomer","cChiralityMeso","cChiralityNotChiral","cChiralityRacemic","cChiralityUnknown","cChiralityUnknownEnantiomer","cCommonOxidationState","cDefaultAVBL","cDefaultAllowedPseudoAtoms","cDefaultAtomValence","cESRGroupBits","cESRMaxGroups","cESRTypeAbs","cESRTypeOr","cHelperAll","cHelperBitCIP","cHelperBitIncludeNitrogenParities","cHelperBitParities","cHelperBitRings","cHelperBitRingsSimple","cHelperBitSymmetrySimple","cHelperBitSymmetryStereoHeterotopicity","cHelperBitsStereo","cHelperNone","cHelperRings","cHelperRingsSimple","cHelperSymmetrySimple","cMaxAtomicNo","cMaxConnAtoms","cMoleculeColorDefault","cMoleculeColorNeutral","cPseudoAtomA","cPseudoAtomAttachmentPoint","cPseudoAtomPolymer","cPseudoAtomR","cPseudoAtomsAGroups","cPseudoAtomsAll","cPseudoAtomsAminoAcids","cPseudoAtomsHydrogenIsotops","cPseudoAtomsRGroups","cRoundedMass","fromIDCode","gz","fromMolfile","BN","fromSmiles","getAngle","getAngleDif","getDefaultAverageBondLength","isAtomicNoElectronegative","isAtomicNoElectropositive","setDefaultAverageBondLength","fromMolecules","fromRxn","Xa","ytt","mY","CATALYST_DELIMITER","INCLUDE_ALL","INCLUDE_CATALYSTS","INCLUDE_COORDS","INCLUDE_DEFAULT","INCLUDE_DRAWING_OBJECTS","INCLUDE_MAPPING","INCLUDE_RXN_CODE_ONLY","MOLECULE_DELIMITER","OBJECT_DELIMITER","PRODUCT_IDENTIFIER","RETAIN_REACTANT_AND_PRODUCT_ORDER","ensureCoordinates","GO","keepAbsoluteCoordinates","sortByIDCode","$x","_register","MAX_SMALL_RING_SIZE","MODE_SMALL_AND_LARGE_RINGS","MODE_SMALL_AND_LARGE_RINGS_AND_AROMATICITY","MODE_SMALL_RINGS_AND_AROMATICITY","MODE_SMALL_RINGS_ONLY","bitCount","getHexStringFromIndex","CX","getIndexFromHexString","xX","getKeyIDCode","getSimilarityAngleCosine","wJ","getSimilarityTanimoto","PK","RISK_HIGH","RISK_LOW","RISK_NAMES","RISK_NO","RISK_UNKNOWN","TYPE_IRRITANT","TYPE_MUTAGENIC","TYPE_REPRODUCTIVE_EFFECTIVE","TYPE_TUMORIGENIC","getHoseCodesFromDiastereotopicID","$X","$isInstance","$implements__java_io_Serializable","$implements__java_lang_CharSequence","$implements__java_lang_Cloneable","$implements__java_lang_Comparable","java","lang","Number$impl","copyOf","Pz","Qq","vq","getIdentityHashCode","getNextHash","getObjectIdentityHashCode","toDoubleFromUnsignedInt","VS","Z8t","Eq","$gwt","ez","__errFn","__moduleName","__moduleBase","__softPermutationId","__computePropValue","permProps","ES","ert","X0","GenericEditorArea","GenericEditorToolbar","GenericUIHelper","Reaction","ReactionEncoder","setOnChangeListener","removeOnChangeListener","isDestroyed","CanvasEditor","registerCustomElement","customElements","HTMLElement","static","freeze","MOLECULE","REACTION","idcode","fragment","MODE_MOLECULE","readonly","setAttribute","removeAttribute","requestIdleCallback","MODE","CustomEvent","bubbles","dispatchEvent","connectedCallback","getAttribute","hasAttribute","disconnectedCallback","adoptedCallback","attributeChangedCallback","rI","define","head","prepend","hw","ConformerGenerator","ForceFieldMMFF94","maxIts","gradTol","funcTol","minimise","changeCustomLabelPosition","iI","getNextCustomAtomLabel","fI","customLabelPosition","DI","includeCustomAtomLabelsAsALines","includeCustomAtomLabelsAsVLines","removeCustomAtomLabels","uI","oI","factorTextSize","autoCrop","autoCropMargin","UI","LI","Resources","registerFromUrl","Prt","getBuiltinModule","dirname","registerFromNodejs","readFileSync","sI","Aot","not","Pot","rot","Canonizer","iot","CanonizerUtil","fot","Dot","DrugScoreCalculator","uot","DruglikenessPredictor","Qot","oot","MCS","Uot","Lot","MoleculeProperties","sot","yot","lot","Reactor","hot","Tot","RingCollection","cot","SDFileParser","wot","SSSearcher","got","SSSearcherWithIndex","dot","SmilesParser","Bot","ToxicityPredictor","vot","Transformer","Fot","Util","kot","Heap","defaultCmp","heapify","heappop","heappush","heappushpop","heapreplace","insort","nlargest","nsmallest","updateItem","_siftdown","_siftup","cmp","mid","item","lastelt","returnitem","_len","_ref1","_results","_results1","pos","elem","los","startpos","newitem","parentpos","childpos","endpos","rightpos","nodes","pushpop","peek","empty","insert","front","copy","GAUSSIAN_EXP_FACTOR","LN2","ROOT_PI_OVER_LN2","ROOT_LN2","ROOT_THREE","ROOT_2LN2","ROOT_2LN2_MINUS_ONE","Gaussian","gaussianWidthToFWHM","fwhmToWidth","gaussianFwhmToWidth","widthToFWHM","gaussianFct","getArea","calculateGaussianHeight","getGaussianArea","getFactor","getGaussianFactor","getGaussianData","calculateHeight","getParameters","toJSON","derivative","dFwhm","gaussianDerivative","ln1MinusXSqrd","lnEtcBy2Plus2","firstSqrt","erfinv","Lorentzian","lorentzianFwhmToWidth","lorentzianWidthToFWHM","lorentzianFct","getLorentzianArea","getLorentzianFactor","getLorentzianData","calculateLorentzianHeight","denominator","lorentzianDerivative","lorentzianQuantile","halfResidual","LorentzianDispersive","lorentzianDispersiveFct","getLorentzianDispersiveData","lorentzianDispersiveDerivative","sqrtLn2","pGaussian","erf","pPseudoVoigt","pLorentz","PseudoVoigt","pseudoVoigtFwhmToWidth","pseudoVoigtWidthToFWHM","pseudoVoigtFct","getPseudoVoigtArea","getPseudoVoigtFactor","calculatePseudoVoigtHeight","getPseudoVoigtData","dMu","lorentz","dEdt","dLdt","dEdfwhm","dLdfwhm","pseudoVoigtDerivative","lorentzian","pTarget","tol","maxIter","pseudoVoigtFindFactor","PseudoVoigtTCH","_fwhmG","_fwhmL","_fwhm","_mu","_lorentzianWidthFraction","fwhmG","fwhmL","lorentzianWidthFraction","effectiveFwhm","computeEffectiveWidth","lorentzianFraction","gaussianWidthFraction","dFwhmG","dFwhmL","dFwhmDfwhmG","dFwhmDfwhmL","dPolyDfraction","dMuDfwhmG","dMuDfwhmL","denominator2","pseudoVoigtTCHDerivative","fraction","GeneralizedLorentzian","generalizedLorentzianFwhmToWidth","generalizedLorentzianWidthToFWHM","generalizedLorentzianFct","getGeneralizedLorentzianArea","getGeneralizedLorentzianFactor","getGeneralizedLorentzianData","calculateGeneralizedLorentzianHeight","dGamma","rational","dFctDu","duDx","duDfwhm","generalizedLorentzianDerivative","generalizedLorentzianQuantile","SplitGaussian","fwhmLow","fwhmHigh","splitGaussianFct","calculateSplitGaussianHeight","getSplitGaussianArea","getSplitGaussianData","dFwhmLow","dFwhmHigh","splitGaussianDerivative","getShape1D","haystack","needle","comparator","assertNumber","ascending","largestPrime","primeNumbers","nextPrime","binarySearch","defaultMinLoadFactor","defaultMaxLoadFactor","HashTable","minLoadFactor","maxLoadFactor","distinct","freeEntries","lowWaterMark","initialCapacity","capacity","chooseHighWaterMark","indexOfKey","indexOfInsertion","newCapacity","chooseGrowCapacity","rehash","noRehash","maybeShrinkCapacity","minLoad","maxLoad","decrement","indexOfValue","ensureCapacity","minCapacity","oldCapacity","oldTable","oldValues","oldState","newTable","newValues","newState","forEachKey","callback","forEachValue","forEachPair","SparseMatrix","rows","_init","eye","to2DArray","isSquare","isSymmetric","symmetric","forEachNonZero","bandWidth","isBanded","cardinality","mmul","otherCols","otherRows","otherValues","getNonZeros","nbOtherActive","withEachNonZero","mmulSmall","thisCols","thisRows","thisValues","nbThisActive","mmulLowDensity","csr","oStart","oEnd","mmulMediumDensity","kroneckerProduct","nbStates","activeIndex","cooMatrix","csrRowPtr","numberOfNonZeros","cooToCsr","setThreshold","newThreshold","trans","addS","addM","subS","subM","subtract","subtractS","subtractM","mul","mulS","mulM","multiply","multiplyS","multiplyM","divS","divM","divide","divideS","divideM","mod","modS","modM","modulus","modulusS","modulusM","and","andS","andM","orS","orM","xor","xorS","xorM","leftShift","leftShiftS","leftShiftM","signPropagatingRightShift","signPropagatingRightShiftS","signPropagatingRightShiftM","rightShift","rightShiftS","rightShiftM","zeroFillRightShift","zeroFillRightShiftS","zeroFillRightShiftM","acosh","asinh","atanh","cbrt","clz32","cosh","expm1","fround","log1p","log2","sinh","tanh","updateSystem","newVector","airPLS","xWork","yWork","optionsWork","shouldDownsample","autoDownsample","maxResolution","originalLength","targetResolution","downsampledControlPoints","Int8Array","getDownSampleData","indexFrom","indexTo","getControlPoints","sumNegDifferences","corrected","stopCriterion","xAbsoluteSum","getStopCriterion","lowerTriangularNonZeros","getDeltaMatrix","prevNegSum","applyCorrection","absChange","finalBaseline","finalCorrected","xTarget","sparseIndex","targetX","leftIdx","rightIdx","xyInterpolateLinear","checkArrayLength","klass","tensorProduct","BaseRegression","predict","_predict","xVal","train","precision","toLaTeX","score","ySum","chi2","rmsd","xSquared","ySquared","maybeToPrecision","figures","PolynomialRegression","powers","coefficients","interceptAtZero","nCoefficients","to1DArray","regress","_toFormula","isLaTeX","sup","closeSup","coefficient","load","centerMean","centerMedian","normed","divideBySD","rescale","currentMin","currentMax","xRescale","paretoNormalization","iterativePolynomialBaseline","numberPoints","regressionOptions","Regression","regression","fitting","oldFitting","baselineCorrectionRegression","correctedSpectrum","rollingAverageBaseline","xRollingAverage","rollingBallBaseline","maxima","minima","windowM","windowS","windowLeft","windowRight","rollingBall","rollingMedianBaseline","xRollingMedian","airPLSBaseline","airpls","baselineFct","meanGap","raise","spacing","checkArguments","windowSize","polynomial","derivatives","keptShapes","KEPT_WEIGHTS","keptWeights","nextSlot","cachedWeights","known","built","fullWeights","gramPoly","Grampoly","genFact","sgg","ans","constantH","wg1","wg2","firstDerivative","secondDerivative","thirdDerivative","savitzkyGolay","ensureGrowing","reverseIfNeeded","equallySpaced","filterX","setMaxX","existingMax","setMinX","existingMin","getMinMaxIntervalsDy","lastMax","lastMin","intervalL","intervalR","tryMatchOneIntervalWithMinData","lastK","minData","yThreshold","intervalWidth","intervalCenter","minDistance","possible","newLastIndex","centerIndex","currentDistance","getPeakFromIntervals","ddY","inflectionPoints","isLessAndGreaterThanZero","back","crossDy","xGetCrossZeroPoints","gsd","sgOptions","smoothY","maxCriteria","maxAbsoluteRatio","minMaxRatio","realTopDetection","peakDetectionAlgorithm","isEquallySpaced","noiseInfo","maxAbsoluteValue","xValue","firstOrder","secondOrder","firstWeights","secondWeights","firstConstant","secondConstant","lowFirst","lowSecond","highFirst","highSecond","lowFirstSum","lowSecondSum","highFirstSum","highSecondSum","atLow","atHigh","lowGap","highGap","firstCentre","secondCentre","firstSum","secondSum","into","firstIsOne","firstIsTwo","secondIsOne","secondIsTwo","sggPair","peakData","minddY","lastJ","yIndex","autoAlgorithm","xCurrent","xPrevious","optimizeTop","buildOptimizationLayout","internalPeaks","yScale","slots","peakIndex","internalPeak","parameter","actualIndex","peakId","propertiesValues","gradientDifference","optimize","getOptimizeFlag","buildParameterSlots","linkedParameters","groupedActualIndices","slotLookup","idToIndices","getSlotKey","indices","linkedParameter","buildLinkedVariable","sortKey","members","_sortKey","variable","buildOptimizationVariables","variableMin","variableMax","variableInit","variableGrad","freeIndices","variableToPeakValues","variableValues","actualValues","variableValue","member","resolvedMembers","resolvePeakIndexById","resolveLinkedSlot","getOffset","memberActualIndices","firstMember","sharedMin","sharedMax","sharedInitCandidates","variableBounds","getMemberVariableBounds","transformedMin","transformedMax","optimizeFlag","perPeakParam","globalParam","reconstructPeaks","newPeaks","newPeak","DefaultParameters","peakShape","properties","getNormalizedValue","property","checkOptions","initialValues","damping","dampingStepUp","dampingStepDown","errorTolerance","centralDifference","improvementThreshold","minValues","maxValues","parLen","gradientDifferenceArray","getGradientDifferenceArray","filler","dataLength","getFiller","checkTimeout","endTime","getCheckTimeout","weightSquare","errorCalculation","parameterizedFunction","params","jacobianFunction","evaluatedData","gradientFunc","nbParams","zeros","gradient","point","partials","param","analyticalGradient","paramFunction","rowIndex","auxParams","funcParam","funcParam2","gradientFunction","residualError","matrixFunction","hessianApproximation","mmulByTranspose","jacobianWeightResidualError","cholesky","perturbations","isPositiveDefinite","levenbergMarquardt","checkedOptions","optimalError","optimalParameters","converged","previousError","parameterValues","parameterError","antiLowerConvexHull","currentPoint","moveOn","moveBack","vector","getMinIndex","functionValues","diagonalDistances","choiceLimit","bestCurrentValue","directOptimization","sumOfShapes","epsilon","tolerance2","initialState","objectiveFunction","getObjectiveFunction","lowerBoundaries","upperBoundaries","diffBorders","numberOfRectangles","totalIterations","unitaryCoordinates","middlePoint","fCalls","smallerDistance","edgeSizes","differentDistances","smallerValuesByDistance","originalCoordinates","optimumValuesIndex","xHull","yHull","lowerIndexHull","largerSide","largeSidesIndex","bestFunctionValues","firstMiddleCenter","secondMiddleCenter","firstMiddleValue","secondMiddleValue","firstMinValue","secondMinValue","ix1","ix2","minIndex","minFunctionValue","pair","finalState","minimizer","optima","direct","originalPeak","shapeFct","propertiesValuesInternal","generalParameterValue","defaultParameterValues","getInternalPeaks","normalizedY","optimizationLayout","optimizationOptions","selectMethod","optimization","baseSumOfShapes","shapeFctKey","totalY","peakX","getSumOfShapes","sumOfShapesForVariables","globalInit","getFixedParametersResult","gradientDifferences","sumOfShapesToUse","sumOfShapesForReduced","reducedParameters","fitted","fittedVariableValues","fittedValues","addMissingShape","defaultShapeInstance","hasShape","findBestCut","group","bestScore","balance","bestScored","groupPeaks","groupingFactor","maxNumberOfPeaks","sortedPeaks","toSorted","previousPeak","currentGroup","cut","splitGroup","optimizePeaksWithLogs","peakList","factorLimits","logs","peakGroup","firstPeak","lastPeak","groupSize","optimizedPeaks","optimizedPeak","addMissingIDs","pushBackPeaks","broadLines","getGSDPeakOptimizedStructure","calibrateX","nbPeaks","gsdOptions","xFunction","function","yFunction","setMaxY","setMinY","filterFct","Filters","getShortestPath","currUnAssCol","dualVariableForColumns","dualVariableForRows","rowAssignments","columnAssignments","pred","scannedColumns","scannedRows","rows2Scan","numRows2Scan","sink","curColumn","shortestPathCost","minVal","closestRowScan","curRowScan","curRow","reducedCost","closestRow","sel","factory","numeral","decimal","unformatRegex","defaults","currentLocale","zeroFormat","nullFormat","defaultFormat","scalePercentBy100","Numeral","unformatFunction","regexp","isNumeral","regexps","unformat","stringToNumber","obj","numberToFormat","roundingFunction","leadingCount","abbrForce","int","signed","thousands","negP","optDec","abbr","trillion","billion","million","neg","abbreviations","thousand","delimiters","abbreviation","stringOriginal","currency","search","subString","multiplier","correctionFactor","accum","maxDecimals","optionals","boundedPrecision","optionalsRegExp","splitValue","minDecimals","localeData","reset","culture","_decimalSep","_thousandSep","_currSymbol","_valArray","_abbrObj","_thousandRegEx","inputString","formatFunction","corrFactor","curr","currI","difference","space","suffixes","suffix","bytesMultiplier","before","after","toExponential","timeArray","_cstb","core","_initArray","_makeBitReversalTable","_makeCosSinTable","fft1d","ifft1d","bt1d","fft2d","tre","tim","ifft2d","_paddingZero","n2p4","apis","ifft","windowData","windowOptions","headers","accept","joinedSignals","multiplicity","names","acs","frequency","atomType","pseudo","equivalence","protonsCount","link","experimentType","attachment","notAttached","ambiguousAttachment","outOfLimit","incomplete","edited","hsqc","addLink","buildCorrelation","buildCorrelationData","buildLink","buildState","buildValues","checkMatch","findLinkedCorrelationsBySignalID","findLinksBySignalID","getAtomCounts","getAtomTypeFromNucleus","getCorrelationDelta","getCorrelationIndex","getCorrelationsByAtomType","getLabel","getLabels","getLinkDelta","getLinkDim","isEditedHSQC","removeLink","setCorrelation","setPathLength","experiment","experimentID","integration","signals1D","signals2D","signalsDEPT","experimentLabel","hybridization","origin","skipDataUpdate","moved","pathLength","unspecified","unknown","residualSolvent","nmrSolvent","impurity","standard","artifact","isBroad","updateXDomain","updateYDomain","once","realEigenvalues","eigenvectorMatrix","assumeSymmetric","nbCoefficients","nbInputs","lpNumberOfCoefficients","tdOff","xValues","currentHalfWindow","medianWindow","binomialCoefficients","bernsteinMatrix","from1DArray","noiseThreshold","noisePercentile","digitalFilterApplied","aqMod","newRe","newIm","baseFrequency","frequencyOffset","spectralWidth","linearPredictionBin","exclusionsZones","lowNbPoints","lowPercentage","lowValue","highNbPoints","highPercentage","highValue","leftNbPoints","rightNbPoints","leftPercentage","rightPercentage","leftValue","rightValue","apodization","baselineCorrection","backwardLinearPrediction","forwardLinearPrediction","exclusionZones","signalProcessing","zeroFilling","isMatrix","checkMatrix","getRow","setRow","standardDeviation","originalX","originalDelta","checkIsExisting","shiftTarget","originalFrom","originalTo","checkSignalKinds","isFtDimensionOne","onlyOnRows","nuslist","NusTD","colRe","colIm","maskFactors","keptRe","keptIm","dirty","rowMax","nusLength","nusIndices","maxThreshold","increaseFactor","percentToReachMax","istMaxResolution","applyPhaseCorrection","phases","nonZeros","pivot","quad","horizontal","vertical","automatic","shiftDirect","shiftIndirect","zeroFillingDimension1","zeroFillingDimension2","apodizationDimension1","apodizationDimension2","phaseCorrectionTwoDimensions","baselineCorrectionTwoDimensions","digitalFilter2D","nusDimension2","symmetrizeCosyLike","fftDimension1","fftDimension2","blpDimension1","blpDimension2","flpDimension1","flpDimension2","shift2DX","shift2DY","originalY","convertTo","mx","integralData","frequencyCluster","integrationSum","integralType","flat","startX","stopX","thresholdFactor","broadRatio","useSanPlot","broadWidth","sensitivity","pointsPerHz","autoWindowSizeFormula","pointsPerHzFormula","maxAbsDdY","smoothedY","shapeInstance","maxI","maxDdy","absDdy","initialWidth","separationHz","midpoint","jAxis","compilePattern","jAxisKey","symRatio","peaksComp","maxError","asymmetric","symRank","maskPattern","mask2","nmrJs","active","solvent","joinOverlapRanges","clean","compile","keepPeaks","solventSignals","smiles","spin","nbCouplings","solventFeatures","minScore","centerPeak","toLocaleLowerCase","EPSILON","previousIndex","unshift","proton","peakPicking","impurities","identifyImpurities","identifyNMRSolvent","forceReapply","filterIndex","applyFilter","applyFilters","deleteFilter","enableFilter","reapplyFilters","getEnumValues","numericValues","joinValues","separator","stringifyPrimitive","jsonStringifyReplacer","Cached","getter","_getter","cached","cleanRegex","assignProp","prop","rawShape","def","desc","getOwnPropertyDescriptor","sourceShape","schema","_zod","deferProp","putProp","mirrorShape","wrap","mergeDefs","defs","mergedDescriptors","descriptors","getOwnPropertyDescriptors","esc","captureStackTrace","_args","allowsEval","globalConfig","jitless","userAgent","ctor","prot","shallowClone","propertyKeyTypes","escapeRegex","inst","constr","normalizeParams","_params","NUMBER_FORMAT_RANGES","safeint","int32","uint32","float32","float64","BIGINT_FORMAT_RANGES","int64","uint64","maskedKeys","ownKeys","extended","newShape","mirrorProps","partial","Class","checks","selected","innerType","startIndex","issues","continue","explicitlyAborted","prefixIssues","iss","unwrapMessage","attachSchema","finalizeIssue","traits","schemaError","customError","localeError","reportInput","highSurrogate","codePointLength","getLengthableOrigin","issue","own","hide","derived","computes","compute","defineBound","installing","broke","breaker","defineLazyInternal","outer","err","installLazyProp","make","sentinel","claim","constantCatch","_zodDesc","$constructor","initializer","Internals","protoMembers","WeakSet","ctorProto","installMembers","Parent","Definition","saved","stackTraceLimit","newError","deferred","__zod_globalConfig","postProcessor","hasInstance","$ZodAsyncError","$ZodEncodeError","newConfig","_messageDesc","internals","util","_issuesDesc","_installedToString","$ZodError","node","finalizeParams","callee","Err","_parse","_Err","_ctx","_parseAsync","_safeParse","failure","success","_safeParseAsync","COMPILE_INVALID","COMPILE_FALLBACK","validator","bag","definite","abortEarly","fallbackRun","validateFallback","_encode","_decode","_encodeAsync","parseAsync","_decodeAsync","_safeEncode","_safeDecode","_safeEncodeAsync","_safeDecodeAsync","boolean","$ZodCheck","onattach","_whenHasLength","payload","numericOriginMap","bigint","$ZodCheckLessThan","check","inclusive","maximum","$ZodCheckGreaterThan","minimum","$ZodCheckMultipleOf","isMultiple","roundedRatio","divisor","$ZodCheckNumberFormat","isInt","expected","isSafeInteger","note","$ZodCheckMaxLength","when","$ZodCheckMinLength","$ZodCheckLengthEquals","tooBig","$ZodCheckOverwrite","tx","Doc","content","indent","indented","execution","minIndent","trimStart","dedented","line","major","minor","patch","$ZodType","defChecks","runChecks","memo","asyncResult","isAborted","currLen","handleCanaryResult","canary","checkResult","skipChecks","standardProps","toStandardResult","validateAsync","vendor","$ZodNumber","regexes","coerce","received","$ZodNumberFormat","$ZodBoolean","$ZodUnknown","$ZodNever","handleArrayResult","final","$ZodArray","memoizer","attach","alloc","proms","handlePropertyResult","optin","optout","isPresent","isOptionalOut","NO_SYMBOL_KEYS","normalizeDef","ownSymbols","getOwnPropertySymbols","symbolKeys","allKeys","okeys","numKeys","optionalKeys","handleCatchall","unrecognized","_catchall","catchall","seen","$ZodObject","newSh","_normalized","zod","propValues","$ZodObjectJIT","superParse","fastpass","jit","fastEnabled","normalized","syms","doc","parseStr","prefixStr","isOptionalIn","generateFastpass","handleUnionResults","nonaborted","$ZodUnion","option","$ZodDiscriminatedUnion","_super","undefinedCount","discriminator","unionFallback","propShape","disc","discriminatorMap","opt","$ZodIntersection","handleIntersectionResults","mergeValues","bKeys","sharedKeys","newObj","__proto__","sharedValue","mergeErrorPath","unrecKeys","unrecIssue","keyIssues","collect","side","bothKeys","aggregated","merged","$ZodEnum","valuesSet","patternValues","$ZodLiteral","vals","$ZodTransform","handleOptionalResult","$ZodOptional","$ZodExactOptional","$ZodNullable","$ZodDefault","handleDefaultResult","$ZodPrefault","$ZodNonOptional","handleNonOptionalResult","handleCatchResult","catchValue","$ZodCatch","$ZodPipe","handlePipeResult","$ZodReadonly","handleReadonlyResult","$ZodCustom","handleRefineResult","_iss","$ZodCyclicError","STATE","NO_ISSUES","isRef","cloneIssues","WeakMap","isRecursive","child","answer","items","keyType","valueType","inner","_cachedInner","settle","handoff","_inst","bucket","wrapped","backEdges","isBackEdge","isRecursiveInst","lastCtx","lastBucket","rechecked","walked","buckets","bucketFor","hit","depth","Sizable","verb","getSizing","FormatDictionary","email","emoji","uuidv4","uuidv6","nanoid","guid","cuid","cuid2","ulid","xid","ksuid","datetime","duration","ipv4","ipv6","mac","cidrv4","cidrv6","base64url","json_string","e164","currency_code","credit_card","iban","jwt","template_literal","TypeDictionary","nan","getTypeName","receivedType","sizing","_issue","prefix","opts","$ZodRegistry","_map","_idmap","_meta","__zod_globalRegistry","globalRegistry","snapshotChecks","_lt","_lte","_gt","_gte","_multipleOf","_minLength","_superRefine","_check","addIssue","assignProps","initializeContext","processors","metadataRegistry","unrepresentable","sharedDefsExtractedFor","sharedEmitDoneFor","cycles","reused","intersections","external","handleUnrepresentable","zodSchema","processSchema","schemaPath","cycle","overrideSchema","toJSONSchema","processJSONSchema","_json","processor","ref","isParent","isTransforming","examples","default","_prefault","encodeJSONPointerSegment","segment","extractDefs","idToSchema","existing","extractToDef","$ref","defId","defsSegment","externalId","registry","uriGenerator","defUriPrefix","makeURI","compactTypeUnion","anyOf","FOLDABLE_KEYS","UNION_KEYS","undeclaredConstraint","additionalProperties","foldObjects","objects","required","part","allOf","folded","constraints","constraint","foldIntersection","unions","union","keyword","branches","branch","finalize","flattenRef","_cached","refSeen","refSchema","parentSeen","jsonSchema","rewrite","carriers","$schema","$id","rootMetaId","$defs","definitions","finalized","createStandardJSONSchemaMethod","_err","_schema","libraryOptions","narrowMin","agg","narrowMax","narrowBoth","addDivisor","multipleOf","addPattern","intersectMime","mime","setFormat","minContributor","maxContributor","formatContributor","contributors","greater_than","less_than","multiple_of","number_format","bigint_format","min_length","max_length","length_equals","min_size","max_size","size_equals","string_format","contentEncoding","local","laxFormat","mime_type","aggregateChecks","exclusiveMinimum","exclusiveMaximum","inputOptin","UNREPRESENTABLE_DEFAULT","serializeDefaultValue","serialized","optionalProcessor","_installedErrorProtos","_lazyMethod","mapper","fieldErrors","_errors","processError","fullpath","terminal","formErrors","ZodRealError","safeParse","safeParseAsync","encodeAsync","decodeAsync","safeEncode","safeDecode","safeEncodeAsync","safeDecodeAsync","_ensureDefaultLocale","_ensureDefaultMemoizer","ZodType","chks","with","brand","reg","ZodCustom","superRefine","refinement","overwrite","optional","exactOptional","ZodExactOptional","nullable","nullish","nonoptional","ZodNonOptional","ZodArray","ZodUnion","ZodIntersection","pipe","ZodTransform","ZodDefault","prefault","ZodPrefault","ZodCatch","ZodReadonly","describe","description","isOptional","isNullable","spa","createToJSONSchemaMethod","_def","ZodNumber","numberProcessor","exMin","exMax","legacy","divisors","gte","lte","safe","nonnegative","nonpositive","finite","ZodNumberFormat","ZodBoolean","booleanProcessor","ZodUnknown","ZodNever","neverProcessor","never","arrayProcessor","minItems","maxItems","nonempty","unwrap","ZodObject","objectProcessor","requiredKeys","keyof","ZodEnum","_enum","passthrough","loose","strict","strip","extend","incoming","existingShape","safeExtend","pick","currDef","omit","omitted","ZodOptional","exactPartial","unionProcessor","isExclusive","oneOf","ZodDiscriminatedUnion","intersectionProcessor","isSimpleIntersection","enumProcessor","enum","extract","newEntries","ZodLiteral","literalProcessor","const","literal","transformProcessor","ZodNullable","nullableProcessor","defaultProcessor","removeDefault","prefaultProcessor","nonoptionalProcessor","catchProcessor","removeCatch","ZodPipe","pipeProcessor","inIsTransform","in_","readonlyProcessor","customProcessor","schemas","is1D","isFID","is2D","processingNumbers","experimentNumbers","onlyFirstProcessedData","expno","processedData","fileCollectionItems","vdlist","difflist","procno","isFT","quantFactorSample","firstProcessedNumber","procs","proc2s","acqus","acqu2s","epoch","toUTCString","int8","int16","Int16Array","uint16","BigUint64Array","BigInt64Array","Float32Array","lastWrittenByte","littleEndian","_mark","_marks","available","isLittleEndian","setLittleEndian","isBigEndian","setBigEndian","seek","mark","pushMark","popMark","rewind","ensureAvailable","readBoolean","readUint8","readInt8","readByte","readBytes","readArray","BYTES_PER_ELEMENT","readInt16","getInt16","readUint16","readInt32","readUint32","readFloat32","getFloat32","readFloat64","getFloat64","readBigInt64","getBigInt64","readBigUint64","readChar","readChars","readUtf8","writeBoolean","writeInt8","setInt8","_updateLastWrittenByte","writeByte","writeInt16","setInt16","writeInt32","writeFloat32","setFloat32","writeFloat64","setFloat64","writeBigInt64","setBigInt64","writeBigUint64","writeChar","writeChars","writeUtf8","getWrittenByteLength","nbSubSpectra","template","SW_p","OFFSET","brukerReference","DATATYPE","BYTORDP","xUnit","yUnit","NUC1","TITLE","XDIM","DQD","QSEQ","QSIM","AQ_mod","DTYPA","SW_h","SFO1","BYTORDA","isFloat","aqMode","dataTable","ereticFactor","titleFile","DATE","TITLE_FILE","fid","ser","AXNUC","GRPDLY","DSPFVS","DECIM","ECHO_ANTIECHO","QSEC","STATES","STATES_TPPI","TTPI","LONGDATE","localeDate","JCAMPDX","ORIGIN","originFrequency","EXPERIMENT","T2NUCLEUS","T1NUCLEUS","LAST","acquisitionTime","groupDelay","dspfvs","decim","varDim","INDIRECTNUCLEUS","creator","fileIdentifier","modifiedGaussian","sine","qsine","traf","sineBell","cosy","hmbc","shiftOffset","experimentNumber","tree","spectraData","CROSSREFERENCE","blockId","BLOCKID","MOLFILE","moleculeBlockID","spectraBlockIDs","assignments","assignmentsByBlocks","headersFromParenthesis","headersFromComments","multiplets","quot","apos","comma","amp","lpar","rpar","colon","semi","rowsArray","columnsArray","maximaze","didFlip","matrixDelta","currentAugmenting","gain","curCol","moleculeId","matchAll","Yotta","Exa","Zetta","Pecta","Tera","Giga","Mega","Kilo","None","Milli","Micro","Nano","Pico","Femto","Atto","Zepto","paramArray","magnitude","dataAxisType","dataFormat","dataPoints","scaler","endian","majorVersion","minorVersion","dataDimensionNumber","dataDimensionExist","dataInstrument","dataUnits","dataAxisRanged","dataOffsetStart","dataOffsetStop","dataAxisStart","dataAxisStop","creationTime","revisionTime","nodeName","site","author","dataAxisTitles","baseFreq","zeroPoint","reversed","annotationOK","historyUsed","historyLength","paramStart","paramLength","ListStart","ListLength","dataStart","contextStart","contextLength","annoteStart","annoteLength","totalSize","unitLocation","compoundUnit","Real","Imag","parameterSize","lowIndex","highIndex","sampleName","temperature","probeName","fieldStrength","pulseStrength90","numberOfScans","relaxationTime","dataSections","spectralWidthClipped","decimationRate","paramList","quantityType","quantityName","sparseSampling","componentLabels","application","numericType","originOffset","coordinatesOffset","reciprocal","increment","period","complexFFT","timeStamp","dimensions","acquisitionMode","fromLabel","toLabel","maxLength","fromAtomicNumber","toAtomicNumber","allShortestPaths","spectrum_location","jcamp_location","jCoupling","mixedEOL","nbLines","always","statistics","sdf","NMREDATA_VERSION","headComment","moleculeAndMap","SMILES","ASSIGNMENT","larmor","pulseprogram","filePath","activeCoupling","usedFiles","noContours","sdfString","workingSdf","forEachMap","entriesBoundaries","nextMatch","getEntriesBoundaries","boundary","currentLabel","sdfIndex","molfileIndex","smilesIndex","storesData","isSpectrum","isInt32","isFloat32","isHypercomplex","isBaselineCorrected","moreBlocks","npComplex","nfComplex","niComplex","ni2Complex","isAcqPar","isSecondFT","isTransformed","isNp","isNf","isNi","isNi2","readLine","readLines","softwareVersion","typeOfFile","vendorIdStatus","fidFile","dataFile","data3DFile","isVar","isQOne","isMakeFid","isJeol","isBru","isMag","isOx","ipVers","ipFileId","ipVendorId","npPhMode","npAvMode","npPwrMode","nfPhMode","nfAvMode","nfPwrMode","niPhMode","niAvMode","niPwrMode","ni2PhMode","ni2AvMode","ni2PwrMode","niPaMode","ni2PaMode","ctCount","lpVal","rpVal","lvl","tlt","nTraces","nBlocks","eBytes","tBytes","bBytes","nBlockHeaders","subType","basicType","stepSize","gGroup","dGroup","protection","intptr","fidB","procparB","enumerables","procpar","sfrq","reffrq","rfl","rfp","sineSquare","pivotIndex","exhaustive","findExperimentFiles","inDirectory","matches","withoutExtension","only","toExperimentMeta","experimentNumberOf","splitNmrZip","zip","NMRiumCore","recommended","found"],"mappings":"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KAAK,IAAIA,EAAE,IAAI,GAAGA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,KAAK,IAAIA,EAAE,IAAI,GAAGA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,GAAGA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,SAASA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,KAAK,EAAE,MAAM,SAASA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAE,MAAM,KAAK,IAAIA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAAE,IAAI,EAAEA,EAA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